Video data compression with integrated lossy and lossless compression
First Claim
1. A method for reducing video data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
- dividing each frame of video data into blocks, and segmenting each block into blocks of smaller size;
compressing video data from an encoder prior to inputting into a frame memory over an external bus;
wherein each block is compressed by first predicting and compressing each original block, and then determining if a number of bits used during compression is within an allowed range;
decompressing compressed video data from the frame memory after retrieving over the external bus;
compressing the video data by lossy compression if the number of bits used during compression is not within an allowed range; and
generating a noise compensation bit to indicate an amount of noise introduced during compression.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus to compress video data to smaller size and embed extra information into the compressed data using the integrated lossy and lossless compressions is described. The method can be used to compress reference frames of a video codec (coder/decoder) combines codec where the small noise is critical and to reduce bus bandwidth. Data transfer between an encoder and an external frame memory connected via an external bus in a video codec is reduced by compressing data from the encoder prior to inputting into the frame memory over the external bus, and decompressing the compressed data from the frame memory after retrieving over the external bus. Reference frames are compressed to variable size without causing any considerable artifact to reduce bus bandwidth between the encoder core and external memory. In the method, lossy and lossless compression is integrated to maximize the compression efficiency.
21 Citations
58 Claims
-
1. A method for reducing video data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
-
dividing each frame of video data into blocks, and segmenting each block into blocks of smaller size; compressing video data from an encoder prior to inputting into a frame memory over an external bus; wherein each block is compressed by first predicting and compressing each original block, and then determining if a number of bits used during compression is within an allowed range; decompressing compressed video data from the frame memory after retrieving over the external bus; compressing the video data by lossy compression if the number of bits used during compression is not within an allowed range; and generating a noise compensation bit to indicate an amount of noise introduced during compression. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method for reducing video data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
-
dividing each frame of video data into blocks, and segmenting each block into blocks of smaller size; compressing data from an encoder prior to inputting into a frame memory over an external bus; wherein each block is compressed by first predicting and compressing each original block, and then determining if a number of bits used during compression is within an allowed range; decompressing compressed data from the frame memory after retrieving over the external bus; compressing the video data by lossy compression if the number of bits used during compression is not within an allowed range; and wherein the video data is processed by an uncompression process if lossy compression is not allowed. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A method for reducing video data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
-
dividing each frame of video data into blocks, and segmenting each block into blocks of smaller size; compressing data from an encoder prior to inputting into a frame memory over an external bus; wherein each block is compressed by first predicting and compressing each original block, and then determining if a number of bits used during compression is within an allowed range; decompressing compressed data from the frame memory after retrieving over the external bus; compressing the video data by lossy compression if the number of bits used during compression is not within an allowed range; wherein the video data is processed by an uncompression process if lossy compression is not allowed; and wherein the uncompression process is performed by first processing a first pixel by reading the first pixel, taking some bits out of the first pixel and sending the removed bits to FIFO, reading additional bits of header and attaching the header bits to the remaining bits of the first pixel, storing the result in a compression buffer, decompressing the processed first pixel, and storing the decompressed first pixel in a decompression buffer. - View Dependent Claims (44)
-
-
45. A method for reducing video data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
-
dividing each frame of video data into blocks, and segmenting each block into subblocks; determining a maximum precision for each subblock; compressing each subblock using a maximum precision for that subblock;
said subblocks are compressed from an encoder prior to inputting into a frame memory over an external bus;wherein the video data is compressed by combination of lossless compression and lossy compression; and decompressing compressed video data from the frame memory after retrieving over the external bus. - View Dependent Claims (46, 47)
-
-
48. A method for reducing video data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
-
dividing each frame of video into blocks; compressing video data from an encoder prior to inputting into a frame memory over an external bus; wherein each block is compressed by first predicting and compressing each original block, and then determining if a number of bits used during compression is within an allowed range; packing compressed video data into a packet and storing the packet in the frame memory if the number of bits used during compression is within an allowed range; decompressing the compressed video data from the frame memory after retrieving over the external bus; and determining if the block is compressed by lossy compression, and if so, compensating the decompressed block by reading a noise compensation bit to reduce noise; wherein the compressed video data from frame memory is decompressed by first determining if each block is compressed, and if compressed, decoding each block using an identical precision used in compressing the block.
-
-
49. A method for reducing data transfer between an encoder and an external frame memory connected via an external bus in a video codec, comprising:
-
compressing video data, by lossy compression, from an encoder prior to inputting into a frame memory over an external bus; and decompressing compressed video data from the frame memory after retrieving over the external bus; wherein in said lossy compression, compression noise is compensated by estimating noise in compression and embedding noise information in a compressed block; and wherein noise is compensated during decompression. - View Dependent Claims (50, 51, 52, 53)
-
-
54. A method for reducing video data transfer between an encoder and an external frame memory connected through an external bus in a video codec, comprising:
-
compressing video data, by lossy compression, from an encoder prior to inputting into a frame memory over a external bus; and decompressing compressed video data from the frame memory after retrieving over the external bus; wherein during compression a least significant bit is truncated and a majority truncated bit is set as a noise compensation bit, and during decompression the least significant bits are set to the majority truncated bit. - View Dependent Claims (55, 56, 57, 58)
-
Specification