US20020061066A1 - Method and apparatus for digital data compression - Google Patents
Method and apparatus for digital data compression Download PDFInfo
- Publication number
- US20020061066A1 US20020061066A1 US10/035,492 US3549201A US2002061066A1 US 20020061066 A1 US20020061066 A1 US 20020061066A1 US 3549201 A US3549201 A US 3549201A US 2002061066 A1 US2002061066 A1 US 2002061066A1
- Authority
- US
- United States
- Prior art keywords
- data
- frame
- difference
- value
- transmitted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims description 175
- 238000013144 data compression Methods 0.000 title claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 55
- 230000003190 augmentative effect Effects 0.000 claims description 42
- 230000000717 retained effect Effects 0.000 claims description 40
- 238000013139 quantization Methods 0.000 claims description 39
- 238000009825 accumulation Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 11
- 238000005056 compaction Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 4
- 230000006872 improvement Effects 0.000 claims description 4
- 230000002829 reductive effect Effects 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims description 4
- 230000001427 coherent effect Effects 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims 15
- 238000005549 size reduction Methods 0.000 claims 13
- 238000007906 compression Methods 0.000 abstract description 72
- 230000006835 compression Effects 0.000 abstract description 69
- 230000006837 decompression Effects 0.000 abstract description 19
- 230000033001 locomotion Effects 0.000 abstract description 14
- 230000003068 static effect Effects 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 14
- 230000003416 augmentation Effects 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 11
- 238000003786 synthesis reaction Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000011946 reduction process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000004438 eyesight Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 240000004050 Pentaglottis sempervirens Species 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
Definitions
- the present invention relates to digital data compression, and in particular to a scheme for temporal coherent image data compression, and more particularly to a self-adaptive compression scheme for motion digital video compression.
- the information furnace further allows users to consume the content in their preferred locations (and even be mobile in the home if desired), enables multiple users to simultaneously interact with the content, and reduces the cost of the appliances used to access the content (computing resources, such as the CPU, memory and modem are leveraged from a central source).
- Such images often include a very high amount of energy in their high-frequency spatial range, as compared to so-called “natural” images (e.g., a picture of a person). Transmitting these images within a communication channel also requires the use of significant bandwidth. Accordingly, to transport such information efficiently, and in real time, digital imaging applications hinge on the use of data compression techniques to reduce the amount of information to be transmitted within the network to manageable levels.
- image data compression often involves reducing the amount of data required to represent a digital image.
- One common basis of the reduction process is the removal of redundant data.
- inherent non-linearities in human visual perception can be leveraged to reduce the amount of data to be displayed in succeeding frames of a motion video. Accordingly, existing compression schemes exploit correlation in both space and time for video signals. Spatial compression is known as intra-frame compression, while temporal compression is known as inter-frame compression.
- Lossy compression methods tend to be acceptable because they generally exploit nonlinear aspects of human visual system.
- the human eye is much more receptive to fine detail in the luminance (or brightness) of an image, than in the chrominance (or color) thereof.
- the eye is less sensitive to distortions in the high-frequency range of an image's spatial spectrum, especially in the presence of motion.
- the human eye is more forgiving to the presence of high frequency compression coding artifacts (e.g., distortion of edges) in a moving video than in a static image. That is, motion images may mask compression coding artifacts that would be otherwise visible in still images.
- these prior compression processes do not include means for correcting distortions that may be present in earlier-transmitted frames.
- earlier-transmitted frames are updated by compressing and transmitting the difference between a current frame and a preceding frame.
- the compression process is made more efficient, as subsequent frames do not need to be compressed in their entirety if the extent of the changes between frames is limited.
- the inter-frame changes may be only those sections of the frames of the video corresponding to the swinging movements of the pendulum. Only these changes need to be compressed and transmitted, without the need to transmit the same feature rich background in all the frames. Then to reconstruct the current frame, the preceding-transmitted frame is updated with the transmitted changes.
- a method for enhancing the quality of digital images recovered from compressed data in an inter-frame redundancy-removing scheme is provided.
- a self-adaptive feedback scheme is deployed in an image compression/decompression system so as to include means for the compensation of the distortion component from prior frame compression in subsequent difference frame compression.
- This may be implemented by storing each transmitted frame after a full compress/decompress cycle, and transmitting the difference data (which includes the inverse, or negative, of the distortion component from compression of the transmitted frame) representing the difference between the stored frame and the incoming new frame. Consequently, the quality of static regions in the recovered images may be improved with each subsequent iteration by taking the distortion component in the prior frame into consideration along with the inter-frame motion information.
- the feedback loop thus forms a self-adaptive iterative cycle.
- wavelet analysis is deployed to enhance the efficiency of a data compression scheme that employs adaptive feedback.
- Each incoming image frame represented in the spatial domain is transformed into the wavelet domain before being compressed and transmitted (e.g., to a remote receiver).
- the compressed data may be fed back and stored in an accumulation buffer without wavelet synthesis.
- difference data to be transmitted in the next frame is obtained by comparing the incoming frame and the stored frame, which are both in wavelet represention.
- data quantization may be carried out using a number of bit allocation planes for each of a number of Mallat blocks to be transmitted and/or retained for storage, so as to meet transmission bandwidth limitations and/or data storage space limitations in a data compression scheme.
- the number of bit planes allocated to a given Mallat block is determined in accordance with required accuracy or resolution for a frequency range represented by that block. Low frequency blocks may be given a higher priority over high frequency blocks and, accordingly, may have more bit planes allocated than are allocated for the high frequency blocks.
- a post augmentation scheme may be deployed at the decompression side of a compression/decompression system to enhance the accuracy of data that was subject to quantization (e.g., arising from Mallat blocks that were assigned an incomplete number of bit planes).
- the actual value of the recovered data is taken to be between the indicated value with non-transmitted bits being one and its indicated value with all non-transmitted bits being zero.
- the reconstructed value may be taken to be the average or median of the above two values, which statistically minimizes the quantization error, being in the middle of “uncertainty” interval.
- FIG. 1 illustrates components of a digital wireless home network according to one embodiment of the present invention.
- FIG. 2A is a functional representation of a server component of the digital wireless home network illustrated in FIG. 1 according to one embodiment of the present invention.
- FIG. 2B is a functional representation of a set-top controller component of the digital wireless home network illustrated in FIG. 1 according to one embodiment of the present invention.
- FIG. 3 illustrates some of the functional components of a video processor for the server component of the digital wireless home network illustrated in FIG. 2A according to one embodiment of the present invention.
- FIG. 4 is a schematic block diagram of a compression engine that adopts an adaptive feedback scheme in accordance with one aspect of the present invention.
- FIG. 5 is a schematic block diagram of a complementary decompression engine for decompression data compressed by the compression engine of FIG. 4.
- FIG. 6 is a more detailed schematic block diagram of an implementation of the compression scheme having the feedback feature of the present invention.
- FIG. 7 is a schematic illustration of the filter function of the wavelet filter bank.
- FIG. 8 is a schematic illustration of a frame split into Mallat blocks.
- FIG. 9 is a schematic illustration of a two-dimensional wavelet analysis stage.
- FIG. 10 is a schematic illustration of a wavelet analysis filter tree structure.
- FIG. 11 is a schematic illustration of a bit-plane representation of an 8-bit digital image.
- FIG. 12 is a schematic illustration of allocation of bit planes in each Mallat block for transmission in accordance with one embodiment of the bid budget allocation scheme.
- FIG. 13 is a more detailed schematic block diagram of an implementation of the complementary decompression scheme for the compression scheme illustrated in FIG. 6.
- FIG. 14 is a schematic illustration of a two-dimensional wavelet synthesis stage.
- FIG. 1 illustrates a digital wireless home network 10 configured in accordance with one embodiment of the present invention.
- Digital wireless home network 10 has at its heart a personal computer 12 and an accompanying server 14 .
- personal computer 12 and server 14 act as a central aggregation point for digital content (e.g., video, audio and graphical information), which content may then be wirelessly distributed to various locations and appliances, including television 16 .
- Television 16 receives this digital content through set-top controller 18 , which is coupled in wireless communication with server 14 .
- set-top controller 18 which is coupled in wireless communication with server 14 .
- the wireless communication link between server 14 and set-top controller 18 may be replaced by a wired communication link.
- server 14 and set-top controller 18 are illustrated as separate components, in other embodiments the functions of server 14 may be included wholly or partially within personal computer 12 and those of set-top controller 18 may be included wholly or partially within television 16 .
- video information included within the digital content transferred to television 16 across network 10 is video information.
- the video information comprises digitally encoded video images relating to applications such as video-conferencing, interactive computing, entertainment and/or educational programming, etc.
- this video information is transferred in a compressed data format to ease bandwidth requirements on the wireless (or wired) communication link.
- the video information transferred to television 16 may originate as synthetic or computer-generated video information as may be produced or utilized by an application program running on personal computer 12 .
- network 10 allows a user session (separate from any other session that may be hosted on personal computer 12 ) to be initiated using set-top controller 18 as a gateway to personal computer 12 (e.g., via server 14 ).
- set-top controller 18 as a gateway to personal computer 12 (e.g., via server 14 ).
- television 16 may be used as a display device for this session.
- computer-generated images (such as may comprise a user desktop and/or application specific image) will be displayed on television 16 .
- the computer-generated video information for display on television 16 will be first produced at host computer 12 in a format more suited for display on a conventional, noninterlaced computer monitor. This is because computer application programs and operating systems are generally configured to provide video information for display on such devices. Therefore, before this video information can be displayed on television 16 , it will have to be converted into a compatible format, for example, interlaced NTSC-compatible video.
- Server 14 and set-top controller 18 provide the necessary video display processing means to generate video information suitable for display on television 16 from the computer-generated video information provided by host computer 12 .
- FIGS. 2A and 2B illustrate the functional components of server 14 and set-top controller 18 used in the conversion of the video information to a format suitable for display on television 16 .
- video processor 20 receives video information from host computer 12 .
- Video processor 20 is responsible for scaling the video information to a size appropriate for display on television 16 .
- computer-generated video information is produced with a vertical resolution that exceeds the usable display range of television 16 , thus vertical scaling is required to fit the information into the display area provided by television 16 .
- video processor 20 may utilize anti-flicker filtering to reduce or eliminate the effects of flicker on the eventual display.
- video processor 20 is configured to convert or transform the R-G-B information into another color scheme, e.g., Y-Cr-Cb color space, which is more suitable for transmission to television 16 .
- Y-Cr-Cb color space Y represents the luminance component of the video information while Cr and Cb represent the chrominance components.
- the converted (and perhaps scaled) video information 21 is provided to video compressor 22 where it is reformatted prior to transmission to television 16 .
- video compressor 22 Any of a number of conventional video compression techniques may be used to reduce the bandwidth requirements of the video information 21 .
- a video compressor that utilizes wavelet compression technology may be used.
- wavelet compression technology as discussed in detail below
- the use of a video compressor 22 is optional, however, any scheme which does not employ some form of video compression will require more bandwidth for the transmission of the video information than schemes which do.
- the compressed video data 23 is provided to a radio 24 , which may packetize the data for transmission across the wireless communication link to set-top controller 18 .
- radio 24 may packetize the data for transmission across the wireless communication link to set-top controller 18 .
- other suitable media access devices e.g., Ethernet access modules, etc.
- radio 22 communicates with set-top controller 18 using a wireless, spread spectrum communication protocol adapted for use in network 10 .
- Radio 26 is configured to operate according to the same protocol as radio 24 in server 14 ; hence, the two radios 24 and 26 serve as the communication access devices for network 10 . As indicated above, in other embodiments, e.g., where different communications media are used, other suitable communication media access devices may be used. Radio 26 may perform frame reconstruction operations to build up a complete frame of information from several packets that were transmitted by radio 24 . Ultimately, radio 26 provides a frame's worth of compressed video information to a video decompression engine 28 .
- Video decompression engine 28 expands the compressed video information received from server 14 into a decompressed format and provides the resulting video information signals 29 to a display processor 30 .
- Display processor 30 formats the video signals 29 into the required format for display on television 16 .
- display processor 30 may provide the necessary horizontal and or vertical synchronization signals as well as dithering control and interlacing sequences required to display the video information on a conventional NTSC compatible television 16 .
- set-top controller 18 provides NTSC (or other, e.g., PAL) compatible television video signals 31 to television 16 .
- FIG. 3 now illustrates one embodiment of video processor 20 of server 14 in more detail.
- Video processor 20 includes a color space correction (CSC) block 38 .
- CSC block 38 transforms R-G-B video information signals 37 to Y-Cb-Cr video information signals 39 prior to transmission of the video information from the server 14 to the set-top controller 18 .
- CSC block 38 performs this conversion according to the following formulas:
- the inverse transforms (e.g., for use a display processor 30 ) are:
- the R-G-B color information for each pixel of a frame received from host computer 12 is preferably presented to CSC block 38 in 16-bit format, with five bits of red and blue color information each, and six bits of green color information.
- CSC block 38 receives the R-G-B color information from host computer 12 and the R-G-B color information from CSC block 38 in 16-bit format, with five bits of red and blue color information each, and six bits of green color information.
- these values are preferably rounded up (i.e., normalized) to eight bit values.
- bit roll over schemes such as the following may be used:
- the five bits of color information may be padded with the three most significant bits thereof as new least significant bits.
- the six-bit green color information may be padded to eight bits, using the two most significant bits thereof as new least significant bits.
- Other methods such as adding random “noise” to the least significant bits of the eight-bit color value representations may also be used.
- a unique mid-banding scheme as described in co-pending application Ser. No. 09/151,473, entitled “Method and Apparatus for Color Space Conversion of Video Signals”, filed Sep. 11, 1998, by Michael I. Persiantsev and Rajugopal R. Gubbi and assigned to the assignee of the present application, is used to produce the eight-bit color value representations from the R 5 G 6 B 5 video information signals.
- FIG. 4 is a schematic block diagram of a compression engine 40 , which illustrates the concept of the adaptive feedback scheme used by video compressor 22 .
- the compression engine 40 includes a mapper 42 that transforms (in a lossless manner) the image data into a format suitable for digital compression encoding. Also present is an encoder 44 for data compression (a lossy device).
- a decoder 46 which is coupled to the encoder along a feedback path, provides data decompression (and is a lossless device).
- the decoder 46 is coupled to the output of the encoder 44 and to the input of the encoder 44 via a subtractor 48 .
- An accumulation buffer 50 is provided to store the decompressed data output of the decoder 46 .
- the compressed data from the encoder 44 is transmitted to a storage device 51 and/or to another site (e.g., set-top controller 18 ) via a transmission channel 52 (e.g., a wired or wireless channel).
- the mapper 42 may be configured to perform lossless transforms such as sub-band encoding, which may include transformation of two-dimensional spatial image data into spatial frequency filtered sub-bands (e.g., wavelet analysis). If the raw image data is in analog form, the mapper 42 may also be configured to perform conversion of the analog signal into digital data prior to such transformation (possibly, involving some loss).
- lossless transforms such as sub-band encoding, which may include transformation of two-dimensional spatial image data into spatial frequency filtered sub-bands (e.g., wavelet analysis). If the raw image data is in analog form, the mapper 42 may also be configured to perform conversion of the analog signal into digital data prior to such transformation (possibly, involving some loss).
- the encoder 44 may include a quantizer (a lossy device) and an entropy encoder (e.g., a Huffman, or arithmetic, entropy encoder, a lossless device) such as are well known in the art, and the decoder 46 may include an entropy decoder (e.g., a Huffman, or arithmetic, entropy decoder).
- a quantizer a lossy device
- an entropy encoder e.g., a Huffman, or arithmetic, entropy encoder, a lossless device
- the decoder 46 may include an entropy decoder (e.g., a Huffman, or arithmetic, entropy decoder).
- FIG. 5 is a schematic block diagram of a complementary decompression engine 60 as may be utilized in video decompressor 28 .
- the decompression engine 60 is functionally the reverse of the compression engine 40 . It is structured essentially in reverse of the compression engine 40 , except that the feedback loop is omitted.
- decompression engine 60 includes a decoder 62 (a lossless device that may include an entropy decoder) for decompressing the incoming compressed data from the storage device 51 or received over the transmission channel 52 .
- decoder 62 a lossless device that may include an entropy decoder
- an inverse mapper 64 for inverse transformation of the decompressed data (e.g., wavelet synthesis filter bank, a lossless transformation) and further into a form (e.g., analog signals) that is suitable, for example, for displaying the transmitted image using a display 66 .
- An accumulation buffer 68 is provided to store the decompressed frame data.
- the first video frame X 1 enters the encoder 44 and is compressed into compressed frame [X 1 ] (a lossy process; [X 1 ] includes a loss or distortion component).
- compressed frame [X 1 ] is transmitted via the channel 52 , the same data is simultaneously forwarded to the decoder 46 .
- the compressed frame [X 1 ] is decompressed by the decoder 46 into decompressed data ⁇ X 1 ⁇ (a lossless process), which is stored in the accumulation buffer 50 as decompressed frame data ⁇ X 1 > (which includes a distortion component).
- the encoder 44 compresses this difference data into compressed difference data [X 2 ] (including a new distortion component for this difference data).
- the difference data [X 2 ] will contain at least an order of magnitude less energy than frame X 1 . That is, changes between consecutive frames for a typical 30 frames per second video sequence will be small.
- difference data [X 2 ] lends itself to much easier compression (i.e., because there are fewer non-zero pixels and more bits per non-zero pixel, there is expected to be less distortion).
- the compressed difference data [X 2 ] is transmitted via the channel 22 .
- the compressed difference data [X 2 ] is also decompressed by the decoder 46 into decompressed difference data ⁇ X 2 ⁇ , and added to the decompressed frame data ⁇ X 1 > in the accumulation buffer 50 to form decompressed frame data ⁇ X 2 >.
- the compressed data [X 1 ] received over the channel 52 is decompressed by the decoder 62 into decompressed data ⁇ X 1 ⁇ in a lossless process, which decompressed data is then stored in the accumulation buffer 68 as decompressed frame data ⁇ X 1 >.
- the decompressed data ⁇ X 1 ⁇ is reconstructed frame data ⁇ X 1 >.
- the inverse mapper 64 reverse transforms the decompressed data ⁇ X 1 > into a form suitable for display or further display processing.
- the next compressed data received is the difference data [X 2 ].
- This difference data is decompressed by the decoder 62 into decompressed difference data ⁇ X 2 ⁇ and added to the preceding decompressed frame data ⁇ X 1 > in the accumulation buffer 68 to form new decompressed frame data ⁇ X 2 > (which will be processed by the inverse mapper 64 ).
- the decompression engine 60 operates on all the incoming compressed data [X 1 ] in this iterative fashion. It is noted that for ease of discussion of the feedback scheme, ⁇ X 1 ⁇ and [X 1 ] refer to difference data for all i>1 (the exception for “key frames” will be discussed later below).
- each subsequent frame that is compressed and transmitted in essence contains information relating to the motion aspect of the consecutive frames, and the distortion (e.g., from quantization) resulting from the compression of the earlier frame or frames. Accordingly, the distortions from earlier frames are not ignored, but are instead saved and applied towards improving the quality of subsequent frames.
- the self-adaptive quality enhancing effect of the present invention will become apparent following the discussion of the underlying mathematical theory of the present invention below.
- the input frames to the compression engine 40 may be component frames (such as representing one of the Y-Cr-Cb or R-G-B color components).
- all subsequent new frames are taken to be “difference frames” that are referenced against frame changes following the first frame (“key frame”) in the inter-frame redundancy reduction process described above.
- W vector space transformation operator, e.g., wavelet analysis (linear, lossless transform) in the mapper 42 ;
- Q quantization operator (nonlinear, lossy) in the encoder 44 ;
- W ⁇ 1 the inverse transformation operator, e.g., wavelet synthesis (lossless transform) in the inverse mapper 64 ;
- H encodetropy encoder operator (lossless) in the encoder 44 ;
- H ⁇ 1 entropy decoder operator (lossless) in the decoder 62 ;
- T overall compress/decompress sequence operator.
- Tx (1+ ⁇ ) x, where
- FIG. 6 one embodiment of an implementation of a compression scheme having the adaptive feedback feature of the present invention is explained in greater detail with reference to the compression and transmission of a sequence of digital video images that are represented in the R-G-B, 24-bit (true color), space.
- R-G-B representation is the usual format used by digital computers to produce digital video images.
- a color space converter 70 is provided to transform the incoming video signal from one color space representation into another color space representation that is more efficient for data compression.
- the color space converter 70 may be part of a graphics processor.
- the image pixels generated by a computer for display on a monitor are typically represented in R-G-B color space.
- R-G-B are primary color components, each manifesting a single color (red, green or blue), and in combination manifest secondary colors. It is necessary for all these color components to be present to manifest the secondary colors. Accordingly, in order to represent the values of the color components digitally (i.e., in bits) for each image pixel, a certain, constant, number of bits (e.g., 8 bits) are allocated to each component.
- RGB data is inherently limited.
- Y is luminance
- U and V are chrominance components, which together represent the brightness and the color of an image pixel.
- the human eye is more sensitive to variations in luminance across an image frame but less sensitive to variations in chrominance. Hence, it is possible to allocate fewer samples to the chrominance components for each frame. Specifically, the same chrominance value may be used for every pair of pixels without significantly degrading the quality of the reconstructed image as perceived by the human eye.
- the color space transformation may apply a 4:2:0 or 4:2:2 subsampling technique.
- 4:2:0 subsampling for every 4 pixels in a 2 ⁇ 2 block, separate luminance values Y are provided for each pixel, one average value for U, and one average value for V.
- 4:2:2 subsampling for every pair of adjacent pixels on one scan line. separate luminance values are provided for each, and average chrominance values are provided for both U and V components.
- the amount of data for an image represented in Y-U-V space is two-thirds the amount of data necessary to represent the same image in the R-G-B space (provided the same integer precision is used for each color component).
- Each of the Y, U and V frames are subject to compression and transmission as discussed above, and the frames are decompressed and reconstructed at the receiver side.
- the Y, U and V frames are subject to a data compaction process at a wavelet filter bank 72 prior to compression.
- the wavelet filter bank 72 performs wavelet analysis and data compaction.
- wavelet analysis is, by itself, well known in the art, the application of wavelet analysis in the compression scheme of the present invention is new.
- the wavelet analysis in the context of the present invention will be discussed below. Reference may be made to G. Strang and T. Nguen, Wavelets and Filter Banks, Wellesley-Cambridge Press, 1996, for a further understanding of wavelet analysis techniques in general. Further, it should be recognized that there are a number of available algorithms that may be adopted for wavelet analysis.
- the algorithm developed by Analog Devices, Inc. and incorporated in its ADV 601 chip is one example of a suitable algorithm for wavelet analysis.
- wavelet analysis converts a frame represented in spatial domain into wavelet domain (i.e., space-frequency domain). It is a mathematical transformation, involving the use of a set of filters and decimators to implement two-dimensional sub-band coding. Thus, two-dimensional spatial video data is transformed into frequency filtered sub-bands for each frame and the frequency components are subsequently quantized.
- FIG. 7 schematically illustrates the wavelet analysis process.
- H 1 and H 0 are the analysis high-pass and low-pass filters, respectively, while F 1 and F 0 are the synthesis counterparts thereof.
- the filters are designed such that in the absence of a quantizer, perfect reconstruction of the incoming signal is achieved.
- the analysis part of a wavelet filter bank expands the image area into separated bands 74 (called Mallat blocks) in each dimension, as shown in FIG. 8.
- L and H denote an output of the low-pass and high-pas filter stages, respectively, and the indices x and y denote the dimension (horizontal or vertical) in which the filter was applied.
- the original block 76 (frame) is filtered at stage 78 into high and low frequency blocks 80 and 82 in the horizontal (x) direction (including decimation by 2 in the x direction, forming L x and H x blocks).
- the high and low frequency blocks 80 and 82 are subsequently filtered at stage 84 into high and low frequency blocks 86 and 88 in the vertical (y) direction (including decimation by 2 in the y direction, forming H y and L y blocks in each of the L and H blocks).
- the result of the first filter stage then is formation of the L x H x , H x H x , L x L y and H y L y blocks 90 . Then in the next iteration, the L x L y block gets substituted for the original block 76 , and the analysis stage is repeated at the next resolution, and so on for subsequent stages.
- FIG. 10 illustrates the wavelet analysis filter tree structure for the first three representative stages of filtering.
- FIG. 8 shows the color component frame having been split into sub-band (Mallat) blocks after four stages of the logarithmic wavelet analysis filter bank. In one embodiment, five filtering stages are used.
- the above filtering process may be applied to each of the Y, U and V component frames of each image frame. That is, values of the Y, U and V color components corresponding to each line of pixels of the image frame may be subject to the filtering process.
- a five-stage filter bank based on bi-orthogonal ( 9 , 7 ) filters is applied to frames in Y-U-V (4:2:2 subsampled) format.
- a memory is used to store the image data during this process, to simplify the iterative sub-band coding cycle it may be convenient to rearrange the data in the memory holding the filtered image data such that the low-frequency block always starts at the beginning of the addressible memory space. This way, it is only necessary to specify the dimensions of the block being processed, and use the same algorithm for multiple filtering stages.
- the low frequency (LL) block contains a large amount of information in the image representation within a frame.
- LL low frequency
- the high frequency blocks contain significantly much less energy.
- wavelet filtered data i.e., the Mallat blocks
- This new frame's “signature” 98 is compared with the preceding frame's signature that has been stored in a signature holder 100 .
- the “signature” can be determined by referring to the luminance (Y) component of the entire LL block, which represents the “bird's-eye view” of a frame. Note that for a 640 ⁇ 480-pixel frame after five stages of wavelet filtering, the size of the LL block is only 20 ⁇ 15 pixels, or 300 samples.
- a “signature” can be thought of as a vector of dimension 300 . Differencing “signatures” may then be accomplished using a vector subtraction operation. Depending on whether or not the signature difference exceeds a preset threshold, a decision is made at stage 102 as to whether the new frame should be considered a new “key” frame, or be treated as a difference frame. For the first frame in the video sequence, the signature of the preceding frame is null, so the first frame will always be treated as a key frame.
- the new frame is considered a key frame.
- the frame is quantized by the adaptive quantizer 104 as is (i.e., without further modification), and is subsequently transmitted to the receiver with a “KF” (key frame) flag.
- KF key frame
- the frame is determined to be a difference frame, it is directed to a subtractor 106 where the content of the compressed preceding frame (stored in an accumulation buffer 108 ) is subtracted from it, forming a difference.
- This difference is then quantized in the adaptive quantizer 104 , and the quantized difference value is subsequently transmitted to the receiver with a “D”(difference) flag. Having received a D frame, the receiver will add it to the contents of its frame buffer.
- the adaptive quantizer 104 examines the statistics of each block and selects a set of “bin widths”, or quantization intervals, depending on the energy of the data in the block.
- the quantizer may adopt any suitable known algorithm, such as a scalar or vector quantization scheme [see, e.g., A. Gersho and R. M. Gray, Vector Quantization and Signal Compression, Kluwer, 1992].
- the bin widths are set narrower to reduce quantization error.
- the objective is to satisfy a limited bit budget (e.g., determined by factors such as the available transmission bandwidth in the channel 52 ) and to minimize the overall distortion introduced by quantization.
- the Mallat blocks are quantized in the order from low frequency (high resolution) to high frequency (low resolution) blocks. During this process, an attempt should be made to balance or equalize the bit budget within each resolution, and between the two chroma components within each block, to avoid spatial non-uniformity and color skew in the restored frame.
- the quantized data is then forwarded to an entropy encoder 110 .
- the quantized frame regardless of whether it is a key or a difference frame, is dequantized by the dequantizer 112 and is added to the contents of the accumulation buffer 108 (in the case of a difference frame), or is used to replace the previous frame stored therein (in the case of a key frame).
- the data in the accumulation buffer 108 is in the wavelet domain. It is not necessary to de-waveletize this data, as it can be conveniently used as is for comparison with the new incoming frame that has been converted into wavelet representation.
- the signature of the current frame in the accumulation buffer 108 is determined as described above and stored in the signature holder 100 , as it represents the image stored in the accumulation buffer 108 .
- the entropy encoder 110 the data is compressed and transmitted out (this later action may be accomplished using a radio or other media access device as described above). Further, the entropy encoder 110 may be implemented in accordance with Huffman or arithmetical entropy encoding that is well known in the art. See, e.g., M. Nelson and J. L. Gailly, The Data Compression Book, M&T Books, 1995.
- the high frequency blocks (characterized, typically, by relatively low energy and large zero areas) lend themselves well to efficient run length encoding. It may be desirable, however, to subject the lowest frequency LL block (having relatively high energy and low data redundancy) to a different encoding scheme to improve efficiency.
- the output of the entropy encoder 110 is transmitted to the receiver via wired or wireless means, with a KF or D flag depending on the key or difference frame attribute of the data.
- bit budget for transmission or storage may be limited.
- a bit budget allocation scheme has been developed to allocate the bits of the Mallat blocks to be retained for transmission or storage and the priority thereof.
- the bit budget allocation scheme is an implied, or indirect, quantization scheme, which can be better understood given a discussion of bit planes.
- each pixel (see FIG. 11, at 114 ) of Y, U or V data in a frame is represented by an 8-bit byte (i.e., values ranging from 0 to 255).
- the frame is composed of eight 1-bit planes 116 , ranging from plane 0 for the least significant bit to plane 7 for the most significant bit.
- plane 0 contains all the lowest order bits in the bytes comprising the pixel samples in the frame
- plane 7 contains all the highest order bits.
- bit plane 7 corresponds exactly with an image threshold at gray level 128 for an 8-bit data.
- the lower order bit planes contribute to more subtle details in the image.
- the value of the samples within a quadrant of the full range value i.e., the value of the sample can be determined with an accuracy of a quadrant.
- a sample have a “1” in the 7-bit plane and a “1” in the 6-bit plane necessarily has a value at or above 192.
- a sample having a “0” in the 7-bit plane and “0” at the 6-bit plane has a value below 64. Similar analysis will show that the value of the sample can be determined to be in the other two quadrants (i.e., equal or greater than 128 but less than 192 and equal or greater than 64 but less than 128).
- the value of the samples may be narrowed to within one quarter of their full range value, which is equivalent to allocating 2 bits per block's sample. It follows that every following bit plane is a binary refinement (i.e., by a factor of 2). Consequently, depending on the available transmission bandwidth, it may be adequate to transmit only the upper bit planes without too much compromise on the precision of the blocks.
- the lower frequency blocks should be allocated a larger number of bit planes to be transmitted, so as to provide as much precision as possible for higher image details contained therein.
- the high frequency blocks may only have a few or no bit planes transmitted, depending on whether there is budget remaining in the bandwidth.
- Second resolution blocks 119 11 bit planes
- bit planes are transmitted in the order described above, until the bit budget for the transmission bandwidth has been reached. The bit planes remaining will be “discarded” (i.e., taken as having “zero” value and are not transmitted) and the bit planes for the next frame are then transmitted with the same bit allocation.
- bit budget allocation scheme does not involve data compression. It merely prioritizes the data to be transmitted in accordance with the frequency level of the Mallat blocks, and the data that cannot fit into the transmission bandwidth will have to be truncated and not transmitted. In other words, it is an implied, or indirect, quantization scheme. The low priority data is thus lost due to the limited transmission bandwidth budget.
- the bit budget allocation scheme is therefore a lossy transmission scheme, as any scheme involving data quantization must be. Because the allocation is the same for each frame, such loss cannot be recovered by the feedback scheme for compression (which is for recovering quantization errors) described earlier.
- the bid budget allocation scheme may be implemented as part of the adaptive quantizer 104 or, with some modification to the embodiment depicted in FIG. 8, as part of the entropy encoder 110 .
- the bit-planes that are designated to be transmitted may be subject to run length (entropy) encoding before they are transmitted.
- the data received goes through essentially the reverse of the compression cycle at the transmission side.
- FIG. 13 one embodiment of an implementation of a decompression scheme that complements the adaptive feedback feature of the present invention is explained with reference to the compressed data received from the compression and transmission implementation of FIG. 6.
- An entropy decoder 130 decodes the frame of compressed Y-U-V wavelet data stream received via the transmission channel 52 into a quantized set of wavelet domain bands (i.e. the Mallat blocks shown in FIG. 8).
- the entropy decoder 130 should be selected to complement the specific entropy encoder on the transmission side, so that the compressed data can be properly decoded to recover the original data. If a bit allocation scheme similar to that described above was used on the transmission side, the entropy decoder 130 should be configured to recognize the incoming data stream in accordance with the bit plane sequence discussed above.
- a post augmentation scheme is introduced to augment the values represented by the limited number of transmitted bit planes.
- the post augmentation scheme an assumption is made that the actual value of the data received is taken to be an augmented value that lies between the indicated value represented by the bit planes and the value represented by the next possible higher binary value that can be represented by the allocated bit planes.
- the augmented value is the average or median value between the two binary values. This statically minimizes the error introduced by the implied data quantization as a result of the limited bit plane transmissions.
- the actual value of the sample is augmented and taken to be the middle of the quadrant, or 160 (the integer value of the average of 128 and 191).
- the sample value is augmented to be the average or median of its indicated value with all non-transmitted bit planes being zero and its indicated value with all non-transmitted bit planes being one.
- the indicated value of the sample is 64.
- the actual sample value is taken to be 96, which is the average of 64 and 127.
- the same analysis applies to sample represented by other transmitted bit planes. For the example when the 7-bit is “1” and the 6-bit is also “1”, the indicated value is 192, but the augmented value would be 224 (i.e., the average of 192 and 255).
- the underlying rationale for the post augmentation scheme is that, from a statistical perspective, there is an uniform probability distribution for values between two binary bits (e.g., between 128 and 255 ). Therefore, the average of these two values would render a value with statistically minimized error, because for each pixel a maximum introduced error is only 50% of what it could be without post-augmentation.
- the error present in this scheme is reduced as increasing number of bit planes are transmitted, as the uncertainty between two lower binary bit values decreases, and such uncertainty is also marginal in reference to the full range (e.g., the uncertainty between 3-bits (8) and 4-bits (16) is small and is marginal in reference to 255 full range). It follows that even if there was 50% error in making the augmentation to a higher value, the error may still be marginal.
- the post augmentation scheme may be implemented as part of the entropy decoder 130 or dequantizer 132 .
- a dequantizer 132 may be provided to scale up the quantized data into large-range values.
- the KF/D flag in the data is identified at stage 134 to determine whether the incoming frame is a key frame or a difference frame. If it is a key frame, it replaces the frame data in the accumulation frame buffer 136 . (The first frame by its nature would be a key frame.) If it is a difference frame, it is added to the existing frame data in the accumulation buffer 136 .
- the accumulation buffer 136 therefore holds the most current Y-U-V frame data represented in wavelet domain. This data needs to be converted back to spatial domain by wavelet synthesis.
- the wavelet synthesis stage 138 is conceptually an exact reversal of the wavelet analysis stage.
- the sequence of operation is inversed compared to that in the wavelet filter bank 72 . Specifically, two lowest blocks (in each dimension) are taken together, up-sampled by 2, and run through the synthesis filters, as shown in FIG. 14. The procedure is repeated for four additional iterations (if the wavelet analysis involved 5 stages), by substituting the then four lowest frequency blocks (including the preceding restored block 150 as one of the four blocks), until an original image size is obtained.
- the wavelet synthesis many adopt the algorithm developed by Analog Devices, Inc. and implemented in its ADV 601 chip.
- the output of the synthesis filter bank is the decompressed image in Y-U-V space.
- the Y-U-V data may then be converted into R-G-B color space by a converter 142 , if desired (e.g., for display by a computer monitor or further processing by a digital computer).
- the Y-U-V data may be further processed for display by a television set.
- the compression engine of the present invention may be implemented in integrated circuits such as an ASIC (Application Specific Integrated Circuit) or made part of a graphics processor.
- ASIC Application Specific Integrated Circuit
- the feedback scheme of the present invention is also applicable to (and easily integrated into) any existing intraframe compression algorithm. Given the disclosure herein of the various structures, processes and functions of the present invention, it is within the ability of one skilled in the art to design the programs, software, coding, etc., which are necessary to implement the present invention.
- the post augmentation scheme may be applied in any system that involves recovery of quantized data.
- the bit allocation scheme may be applied in any system that involves data processing and/or transmission with limited bandwidth constraints. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiments, but only by the scope of the appended claims.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The quality of digital images recovered from compressed data in an inter-frame redundancy-removing scheme is enhanced using a self-adaptive feedback scheme in an image compression/decompression system so as to include means for the compensation of the distortion component from prior frame compression in subsequent difference frame compression. Each transmitted frame is stored after a full compress/decompress cycle, and difference data (which includes the inverse of the distortion component from compression of the transmitted frame) representing the difference between the stored frame and the incoming new frame is transmitted. Consequently, the quality of static regions in the recovered images may be improved with each subsequent iteration by taking the distortion component in the prior frame into consideration along with the inter-frame motion information. The feedback loop thus forms a self-adaptive iterative cycle.
Description
- The present invention relates to digital data compression, and in particular to a scheme for temporal coherent image data compression, and more particularly to a self-adaptive compression scheme for motion digital video compression.
- With the convergence of digital information in the home, a need has arisen for the integration of home computers with other information appliances. In co-pending application Ser. Nos. 08/792,003 and 08/792.361, both filed Jan. 31, 1997, and assigned to the Assignee of the present invention, an exemplary digital wireless home network was described. The network has at its heart an information furnace that allows users to enjoy a variety of multimedia content distributed from a host computer to various appliances throughout the home. Within this vision of the information furnace, the home computer is established as the central aggregation point for digital content in the home, which content is then wirelessly distributed to locations and appliances throughout the home that are optimal for its consumption. These alternative consumption locations enable new dynamics in the use of multimedia content, including mobility, comfort, social interaction, and linkages with other household appliances, such as audio/visual systems. The information furnace further allows users to consume the content in their preferred locations (and even be mobile in the home if desired), enables multiple users to simultaneously interact with the content, and reduces the cost of the appliances used to access the content (computing resources, such as the CPU, memory and modem are leveraged from a central source).
- The distribution of video information as part of the home network environment presents certain challenges for the network designer. For example, with the increasing popularity of multimedia applications there is increasing use of digitally encoded visual data. Thus, digitally encoded video images will need to be transmitted across wired and wireless communication channels of the network, for applications such as video-conferencing, interactive computing, entertainment programming, etc. These digital images are, by nature of their graphical content, relatively more complex than, say, digital audio and, thus, require significant bandwidth within the communication channels to transport the complex information embodying the images. Further, multimedia applications often include “synthetic”, or computer-generated, images (e.g., the image of a spread-sheet or a page generated by a word processing application) that have little or no relative motion from frame to frame, but are nevertheless high contrast images. Such images often include a very high amount of energy in their high-frequency spatial range, as compared to so-called “natural” images (e.g., a picture of a person). Transmitting these images within a communication channel also requires the use of significant bandwidth. Accordingly, to transport such information efficiently, and in real time, digital imaging applications hinge on the use of data compression techniques to reduce the amount of information to be transmitted within the network to manageable levels.
- In light of the above, it is not surprising that image data compression often involves reducing the amount of data required to represent a digital image. One common basis of the reduction process is the removal of redundant data. In addition, inherent non-linearities in human visual perception can be leveraged to reduce the amount of data to be displayed in succeeding frames of a motion video. Accordingly, existing compression schemes exploit correlation in both space and time for video signals. Spatial compression is known as intra-frame compression, while temporal compression is known as inter-frame compression.
- Generally, methods that achieve high compression ratios (e.g., over 50:1) are lossy, in that the data that is reconstructed from a compressed image is not identical to the original. The “losses” experienced in the compression process are manifested as distortions in the reconstructed images. While lossless compression methods do exist, their compression ratios are far lower. For most commercial, industrial and consumer applications, lossy methods are preferred because they save on required storage space and communication channel bandwidth.
- Lossy compression methods tend to be acceptable because they generally exploit nonlinear aspects of human visual system. For instance, the human eye is much more receptive to fine detail in the luminance (or brightness) of an image, than in the chrominance (or color) thereof. Also, the eye is less sensitive to distortions in the high-frequency range of an image's spatial spectrum, especially in the presence of motion. As a result, in viewing a sequence of images reconstructed from a lossy compression scheme, the human eye is more forgiving to the presence of high frequency compression coding artifacts (e.g., distortion of edges) in a moving video than in a static image. That is, motion images may mask compression coding artifacts that would be otherwise visible in still images.
- Various techniques have been adopted as industry standards for motion image compression, including Recommendation H.261 of the Consultative Committee on International Telephony and Telegraphy (CCITT) for video conferencing, and schemes proposed by the Moving Pictures Expert Group (MPEG) for full-motion compression for digital storage medium. While such video compression methods can compress data at high ratios with acceptable quality in the decompressed images, they do not necessarily provide high data compression ratios for use in limited bandwidth environments such as home networks.
- Further, these prior compression processes do not include means for correcting distortions that may be present in earlier-transmitted frames. For example, in those prior video compression schemes that attempt to improve compression efficiency by reducing inter-frame redundancy with the use of “motion estimation” and/or “motion prediction”, earlier-transmitted frames are updated by compressing and transmitting the difference between a current frame and a preceding frame. In this manner, the compression process is made more efficient, as subsequent frames do not need to be compressed in their entirety if the extent of the changes between frames is limited. For example, in a video recording of a swinging pendulum in front of a static but feature-rich background, the inter-frame changes may be only those sections of the frames of the video corresponding to the swinging movements of the pendulum. Only these changes need to be compressed and transmitted, without the need to transmit the same feature rich background in all the frames. Then to reconstruct the current frame, the preceding-transmitted frame is updated with the transmitted changes.
- Although these schemes tend to conserve bandwidth, it is likely that distortions will be present in the earlier-transmitted frames. Thus, such distortions are necessarily carried through to subsequent frames. Moreover, with each new frame, additional compression distortions will be introduced into the reconstructed images. Consequently, the compression distortions tend to accumulate from frame to frame, yet these prior compression schemes do not provide means to reduce or eliminate these distortions.
- In one embodiment, a method for enhancing the quality of digital images recovered from compressed data in an inter-frame redundancy-removing scheme is provided. Briefly, a self-adaptive feedback scheme is deployed in an image compression/decompression system so as to include means for the compensation of the distortion component from prior frame compression in subsequent difference frame compression. This may be implemented by storing each transmitted frame after a full compress/decompress cycle, and transmitting the difference data (which includes the inverse, or negative, of the distortion component from compression of the transmitted frame) representing the difference between the stored frame and the incoming new frame. Consequently, the quality of static regions in the recovered images may be improved with each subsequent iteration by taking the distortion component in the prior frame into consideration along with the inter-frame motion information. The feedback loop thus forms a self-adaptive iterative cycle.
- In a further embodiment, wavelet analysis is deployed to enhance the efficiency of a data compression scheme that employs adaptive feedback. Each incoming image frame represented in the spatial domain is transformed into the wavelet domain before being compressed and transmitted (e.g., to a remote receiver). The compressed data may be fed back and stored in an accumulation buffer without wavelet synthesis. Then, difference data to be transmitted in the next frame is obtained by comparing the incoming frame and the stored frame, which are both in wavelet represention.
- In another embodiment, data quantization may be carried out using a number of bit allocation planes for each of a number of Mallat blocks to be transmitted and/or retained for storage, so as to meet transmission bandwidth limitations and/or data storage space limitations in a data compression scheme. The number of bit planes allocated to a given Mallat block is determined in accordance with required accuracy or resolution for a frequency range represented by that block. Low frequency blocks may be given a higher priority over high frequency blocks and, accordingly, may have more bit planes allocated than are allocated for the high frequency blocks.
- In still another embodiment, a post augmentation scheme may be deployed at the decompression side of a compression/decompression system to enhance the accuracy of data that was subject to quantization (e.g., arising from Mallat blocks that were assigned an incomplete number of bit planes). According to this scheme, the actual value of the recovered data is taken to be between the indicated value with non-transmitted bits being one and its indicated value with all non-transmitted bits being zero. For example, the reconstructed value may be taken to be the average or median of the above two values, which statistically minimizes the quantization error, being in the middle of “uncertainty” interval.
- Still further embodiments are discussed in the following description and its accompanying drawings.
- The present invention is illustrated by way of example, and not limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:
- FIG. 1 illustrates components of a digital wireless home network according to one embodiment of the present invention.
- FIG. 2A is a functional representation of a server component of the digital wireless home network illustrated in FIG. 1 according to one embodiment of the present invention.
- FIG. 2B is a functional representation of a set-top controller component of the digital wireless home network illustrated in FIG. 1 according to one embodiment of the present invention.
- FIG. 3 illustrates some of the functional components of a video processor for the server component of the digital wireless home network illustrated in FIG. 2A according to one embodiment of the present invention.
- FIG. 4 is a schematic block diagram of a compression engine that adopts an adaptive feedback scheme in accordance with one aspect of the present invention.
- FIG. 5 is a schematic block diagram of a complementary decompression engine for decompression data compressed by the compression engine of FIG. 4.
- FIG. 6 is a more detailed schematic block diagram of an implementation of the compression scheme having the feedback feature of the present invention.
- FIG. 7 is a schematic illustration of the filter function of the wavelet filter bank.
- FIG. 8 is a schematic illustration of a frame split into Mallat blocks.
- FIG. 9 is a schematic illustration of a two-dimensional wavelet analysis stage.
- FIG. 10 is a schematic illustration of a wavelet analysis filter tree structure.
- FIG. 11 is a schematic illustration of a bit-plane representation of an 8-bit digital image.
- FIG. 12 is a schematic illustration of allocation of bit planes in each Mallat block for transmission in accordance with one embodiment of the bid budget allocation scheme.
- FIG. 13 is a more detailed schematic block diagram of an implementation of the complementary decompression scheme for the compression scheme illustrated in FIG. 6.
- FIG. 14 is a schematic illustration of a two-dimensional wavelet synthesis stage.
- A video processing scheme that may find application in a digital wireless home network or other computer network environments is disclosed herein. Although discussed with reference to certain illustrated embodiments, upon review of this specification, those of ordinary skill in the art will recognize that the present invention may find application in a variety of systems. Therefore, in the following description the illustrated embodiments should be regarded as exemplary only and should not be deemed to limit the scope of the present invention.
- FIG. 1 illustrates a digital
wireless home network 10 configured in accordance with one embodiment of the present invention. Digitalwireless home network 10 has at its heart apersonal computer 12 and an accompanyingserver 14. Together,personal computer 12 andserver 14 act as a central aggregation point for digital content (e.g., video, audio and graphical information), which content may then be wirelessly distributed to various locations and appliances, includingtelevision 16.Television 16 receives this digital content through set-top controller 18, which is coupled in wireless communication withserver 14. Of course, in other embodiments, the wireless communication link betweenserver 14 and set-top controller 18 may be replaced by a wired communication link. Also, althoughserver 14 and set-top controller 18 are illustrated as separate components, in other embodiments the functions ofserver 14 may be included wholly or partially withinpersonal computer 12 and those of set-top controller 18 may be included wholly or partially withintelevision 16. - Included within the digital content transferred to
television 16 acrossnetwork 10 is video information. In one embodiment, the video information comprises digitally encoded video images relating to applications such as video-conferencing, interactive computing, entertainment and/or educational programming, etc. Preferably, this video information is transferred in a compressed data format to ease bandwidth requirements on the wireless (or wired) communication link. - Within the environment of
network 10, the video information transferred totelevision 16 may originate as synthetic or computer-generated video information as may be produced or utilized by an application program running onpersonal computer 12. For example,network 10 allows a user session (separate from any other session that may be hosted on personal computer 12) to be initiated using set-top controller 18 as a gateway to personal computer 12 (e.g., via server 14). Thus,television 16 may be used as a display device for this session. As part of the session, computer-generated images (such as may comprise a user desktop and/or application specific image) will be displayed ontelevision 16. - In general, the computer-generated video information for display on
television 16 will be first produced athost computer 12 in a format more suited for display on a conventional, noninterlaced computer monitor. This is because computer application programs and operating systems are generally configured to provide video information for display on such devices. Therefore, before this video information can be displayed ontelevision 16, it will have to be converted into a compatible format, for example, interlaced NTSC-compatible video.Server 14 and set-top controller 18 provide the necessary video display processing means to generate video information suitable for display ontelevision 16 from the computer-generated video information provided byhost computer 12. - FIGS. 2A and 2B illustrate the functional components of
server 14 and set-top controller 18 used in the conversion of the video information to a format suitable for display ontelevision 16. As shown in FIG. 2A,video processor 20 receives video information fromhost computer 12.Video processor 20 is responsible for scaling the video information to a size appropriate for display ontelevision 16. In general, computer-generated video information is produced with a vertical resolution that exceeds the usable display range oftelevision 16, thus vertical scaling is required to fit the information into the display area provided bytelevision 16. As part of the scaling process,video processor 20 may utilize anti-flicker filtering to reduce or eliminate the effects of flicker on the eventual display. - Many times, computer-generated video information is produced in an R-G-B (red-green-blue) format common to computer display devices. Although such video information may be transmitted within
digital network 10, in one embodiment,video processor 20 is configured to convert or transform the R-G-B information into another color scheme, e.g., Y-Cr-Cb color space, which is more suitable for transmission totelevision 16. In Y-Cr-Cb color space, Y represents the luminance component of the video information while Cr and Cb represent the chrominance components. - The converted (and perhaps scaled)
video information 21 is provided tovideo compressor 22 where it is reformatted prior to transmission totelevision 16. Any of a number of conventional video compression techniques may be used to reduce the bandwidth requirements of thevideo information 21. In one embodiment, a video compressor that utilizes wavelet compression technology (as discussed in detail below) may be used. As indicated above, the use of avideo compressor 22 is optional, however, any scheme which does not employ some form of video compression will require more bandwidth for the transmission of the video information than schemes which do. - The compressed
video data 23 is provided to aradio 24, which may packetize the data for transmission across the wireless communication link to set-top controller 18. In those schemes that rely on a wired communication link, other suitable media access devices (e.g., Ethernet access modules, etc.) may be used in place ofradio 22. In one embodiment,radio 22 communicates with set-top controller 18 using a wireless, spread spectrum communication protocol adapted for use innetwork 10. - Now referring to FIG. 2B, at set-
top controller 18 the video information fromserver 14 is received byradio 26.Radio 26 is configured to operate according to the same protocol asradio 24 inserver 14; hence, the tworadios network 10. As indicated above, in other embodiments, e.g., where different communications media are used, other suitable communication media access devices may be used.Radio 26 may perform frame reconstruction operations to build up a complete frame of information from several packets that were transmitted byradio 24. Ultimately,radio 26 provides a frame's worth of compressed video information to avideo decompression engine 28. -
Video decompression engine 28 expands the compressed video information received fromserver 14 into a decompressed format and provides the resulting video information signals 29 to adisplay processor 30.Display processor 30 formats the video signals 29 into the required format for display ontelevision 16. For example, in some embodiments,display processor 30 may provide the necessary horizontal and or vertical synchronization signals as well as dithering control and interlacing sequences required to display the video information on a conventional NTSCcompatible television 16. Thus, set-top controller 18 provides NTSC (or other, e.g., PAL) compatible television video signals 31 totelevision 16. - FIG. 3 now illustrates one embodiment of
video processor 20 ofserver 14 in more detail.Video processor 20 includes a color space correction (CSC)block 38. As noted above,CSC block 38 transforms R-G-B video information signals 37 to Y-Cb-Cr video information signals 39 prior to transmission of the video information from theserver 14 to the set-top controller 18. In one embodiment,CSC block 38 performs this conversion according to the following formulas: - Y=0.257R+0.504G+0.098B+16
- Cb=−0.148R−0.291G+0.439B+128
- Cr=0.439R−0.368G−0.071B+128
- The inverse transforms (e.g., for use a display processor30) are:
- R=1.164(Y−16)+1.596(Cr−128)
- G=1.164(Y−16)−0.813(Cr−128)−0.392(Cb−128)
- B=1.164(Y−16)+2.017(Cb−128)
- In practice, it is expected that nominal ranges for Y, Cb and Cr are16-235, 16-240 and 16-240, respectively, with a value of 128 equal to zero.
- The R-G-B color information for each pixel of a frame received from
host computer 12 is preferably presented toCSC block 38 in 16-bit format, with five bits of red and blue color information each, and six bits of green color information. Thus, there will be 32 (25) grades of R and B component and 64 (26) grades of G component. Before converting the R-G-B color information to Y-Cr-Cb color information, however, these values are preferably rounded up (i.e., normalized) to eight bit values. - Many schemes exist for converting the R5G6B5 information to R8G8B8 information. For example, bit roll over schemes such as the following may be used:
- X5→x4x3x2x1x0[x4x3x2] (8.0), where X represents R or B; and
- X6→x5x4x3x2x1x0[x5x4] (8.0), where X represents G.
- That is, to produce the eight bit representations of the five-bit red and blue color values, the five bits of color information may be padded with the three most significant bits thereof as new least significant bits. Similarly, the six-bit green color information may be padded to eight bits, using the two most significant bits thereof as new least significant bits. Other methods, such as adding random “noise” to the least significant bits of the eight-bit color value representations may also be used. In one particular embodiment, however, a unique mid-banding scheme, as described in co-pending application Ser. No. 09/151,473, entitled “Method and Apparatus for Color Space Conversion of Video Signals”, filed Sep. 11, 1998, by Michael I. Persiantsev and Rajugopal R. Gubbi and assigned to the assignee of the present application, is used to produce the eight-bit color value representations from the R5G6B5 video information signals.
- The midbanded R-G-B video information signals may then be converted to Y-Cr-Cb video information signals and the resulting image data applied to
video compressor 22.Video compressor 22 provides an adaptive feedback feature, which automatically and continually builds up the quality of transmitted compressed images. FIG. 4 is a schematic block diagram of acompression engine 40, which illustrates the concept of the adaptive feedback scheme used byvideo compressor 22. Thecompression engine 40 includes amapper 42 that transforms (in a lossless manner) the image data into a format suitable for digital compression encoding. Also present is anencoder 44 for data compression (a lossy device). Adecoder 46, which is coupled to the encoder along a feedback path, provides data decompression (and is a lossless device). Specifically, thedecoder 46 is coupled to the output of theencoder 44 and to the input of theencoder 44 via asubtractor 48. Anaccumulation buffer 50 is provided to store the decompressed data output of thedecoder 46. The compressed data from theencoder 44 is transmitted to astorage device 51 and/or to another site (e.g., set-top controller 18) via a transmission channel 52 (e.g., a wired or wireless channel). - The
mapper 42 may be configured to perform lossless transforms such as sub-band encoding, which may include transformation of two-dimensional spatial image data into spatial frequency filtered sub-bands (e.g., wavelet analysis). If the raw image data is in analog form, themapper 42 may also be configured to perform conversion of the analog signal into digital data prior to such transformation (possibly, involving some loss). Theencoder 44 may include a quantizer (a lossy device) and an entropy encoder (e.g., a Huffman, or arithmetic, entropy encoder, a lossless device) such as are well known in the art, and thedecoder 46 may include an entropy decoder (e.g., a Huffman, or arithmetic, entropy decoder). Althoughencoder 44 anddecoder 46 are schematically shown by separate blocks they could be embodied in a single physical unit having both encoding and decoding functions. The specific structures of themapper 42,encoder 44 anddecoder 46 are not critical to the feedback concept of the present invention. - FIG. 5 is a schematic block diagram of a
complementary decompression engine 60 as may be utilized invideo decompressor 28. Thedecompression engine 60 is functionally the reverse of thecompression engine 40. It is structured essentially in reverse of thecompression engine 40, except that the feedback loop is omitted. Specifically,decompression engine 60 includes a decoder 62 (a lossless device that may include an entropy decoder) for decompressing the incoming compressed data from thestorage device 51 or received over thetransmission channel 52. Also included is aninverse mapper 64, for inverse transformation of the decompressed data (e.g., wavelet synthesis filter bank, a lossless transformation) and further into a form (e.g., analog signals) that is suitable, for example, for displaying the transmitted image using adisplay 66. Anaccumulation buffer 68 is provided to store the decompressed frame data. As is in the case of thecompression engine 40, the exact structures and substructures of the various components of thedecompression engine 60 are not critical to the feedback concept of the present invention. - The operations of the compression and decompression engines are as follows. Given the example of a sequence of N video frames, the
mapper 42 produces transformed frames X1 (i=0 to N; X0 =0) that are suitable for digital compression encoding. The first video frame X1 enters theencoder 44 and is compressed into compressed frame [X1] (a lossy process; [X1] includes a loss or distortion component). While the compressed frame [X1] is transmitted via thechannel 52, the same data is simultaneously forwarded to thedecoder 46. The compressed frame [X1] is decompressed by thedecoder 46 into decompressed data {X1} (a lossless process), which is stored in theaccumulation buffer 50 as decompressed frame data <X1> (which includes a distortion component). - When the next frame X2 arrives, the stored decompressed frame data <X1> is subtracted from the frame X2 by the
subtractor 48. Accordingly, the “image” frame that is fed to the encoder contains the inter-frame image difference and the distortion component from the previous frame, which is represented by the difference data (X2−<X1>). Theencoder 44 compresses this difference data into compressed difference data [X2] (including a new distortion component for this difference data). Unless a scene change occurs between frame X1 and X2, the difference data [X2] will contain at least an order of magnitude less energy than frame X1. That is, changes between consecutive frames for a typical 30 frames per second video sequence will be small. Therefore difference data [X2] lends itself to much easier compression (i.e., because there are fewer non-zero pixels and more bits per non-zero pixel, there is expected to be less distortion). The compressed difference data [X2] is transmitted via thechannel 22. The compressed difference data [X2] is also decompressed by thedecoder 46 into decompressed difference data {X2}, and added to the decompressed frame data <X1> in theaccumulation buffer 50 to form decompressed frame data <X2>. - Data <X2> is subtracted from the next frame X3 and so on. This iterative process is repeated for all the frames X1. It is noted that for ease of discussion of the feedback scheme, the data representations [X1] and <X1> refer to difference data for all i>1 (an exception for “key frames” is discussed below).
- At the receive side, the compressed data [X1] received over the
channel 52 is decompressed by thedecoder 62 into decompressed data {X1} in a lossless process, which decompressed data is then stored in theaccumulation buffer 68 as decompressed frame data <X1>. In this first iteration (i=1), the decompressed data {X1} is reconstructed frame data <X1>. Theinverse mapper 64 reverse transforms the decompressed data <X1> into a form suitable for display or further display processing. The next compressed data received is the difference data [X2]. This difference data is decompressed by thedecoder 62 into decompressed difference data {X2} and added to the preceding decompressed frame data <X1> in theaccumulation buffer 68 to form new decompressed frame data <X2> (which will be processed by the inverse mapper 64). Thedecompression engine 60 operates on all the incoming compressed data [X1] in this iterative fashion. It is noted that for ease of discussion of the feedback scheme, {X1} and [X1] refer to difference data for all i>1 (the exception for “key frames” will be discussed later below). - Thus, in accordance with the feedback scheme of the present invention, each subsequent frame that is compressed and transmitted in essence contains information relating to the motion aspect of the consecutive frames, and the distortion (e.g., from quantization) resulting from the compression of the earlier frame or frames. Accordingly, the distortions from earlier frames are not ignored, but are instead saved and applied towards improving the quality of subsequent frames. The self-adaptive quality enhancing effect of the present invention will become apparent following the discussion of the underlying mathematical theory of the present invention below.
- It is noted that in practice, the input frames to the
compression engine 40 may be component frames (such as representing one of the Y-Cr-Cb or R-G-B color components). Further, in the above example, all subsequent new frames are taken to be “difference frames” that are referenced against frame changes following the first frame (“key frame”) in the inter-frame redundancy reduction process described above. In a real video sequence, however, there may be other “key frames” in the video sequence depending on the extent of the inter-frame image changes. If a change is significant (e.g., above a preset threshold), then the new frame may become a new key frame reference for subsequent difference frames in the redundancy reduction process, until a next key frame comes along. Without the key frame distinction, if the extent of the inter-frame differences were large (e.g., in the event of scene change), inter-frame redundancy reduction may become inefficient if difference frames were continued to be used. The process for distinguishing key frames versus difference frames and the applicability of key frames and difference frames in the feedback scheme of the present invention will be discussed in greater detail below. - The underlying mathematical theory of the self-adaptive quality enhancing effect of the present feedback scheme for video data compression will now be explained with reference to the following designations:
- xi=incoming data frames, for i=1, 2, . . . N;
- W=vector space transformation operator, e.g., wavelet analysis (linear, lossless transform) in the
mapper 42; - Q=quantization operator (nonlinear, lossy) in the
encoder 44; - W−1=the inverse transformation operator, e.g., wavelet synthesis (lossless transform) in the
inverse mapper 64; - H=entropy encoder operator (lossless) in the
encoder 44; - H−1=entropy decoder operator (lossless) in the
decoder 62; - T=overall compress/decompress sequence operator.
- The compress/decompress operator T can be expressed as T=W−1H−1HQW, with the sequence of operations going from right to left. Since the only lossy operator in this expression is quantization Q, operator T can be simplified to T=W−1QW.
- Assuming that a single step of compress/decompress operation results in the transmission of the image x and introduction of an error δ, then
- Tx=(1+δ)x, where |δ|<<1.
- Then, after transmitting and storing the result of the first frame compression/decompression, Tx1, in the
accumulation buffer 50 at the transmitter side (and in theaccumulation buffer 68 at the receiver side), subtracting it from the second frame x2, compressing it and transmitting the difference (x2−Tx1), adding the decompressed addition T(x2−Tx1) to the previously stored Tx1 in theaccumulation buffer 68 at the receiver side, then the second frame transmission received at the receiver is given by: - TX 1 +T(x 2 −Tx 1)=(1+δ1)x 1+(1+δ2)[x 2−(1+δ1)x 1 ]=X 2+δ2(x 2 −x 1)−δ1δ2 x 1 which is approximately=x 2+δ2(x 2 −x 1)
- Comparing this result with the result of the first frame transmission, (x1+δ1x1), it can be seen that a single iteration brought the magnitude of the error introduced by compression down, by an order of magnitude proportional to the difference between the frames versus the frame itself. In addition, adaptive quantizers usually employed in encoding implementations work in such a way that the less energy a frame has, the less distortion is introduced by the quantizer at a given bit transmission budget. Therefore, it can be safely stated that for quantization of the second (difference) frame, δ2 is approximately equal to δ1(x2−x1)/x1, or |δ2|<<|δ1|. Accordingly, it can be appreciated that the cumulative error in the reconstructed image is reduced with each new frame of the image.
- One implementation of the feedback scheme may be regarded as follows. After frame x has been compressed into frame y (=HQWx), frame y is transmitted and decompressed on the receiver side. Frame y is transformed to received frame XR=W−1H−1y. At the same time, z=W−1QW is stored on the transmitter side. When the next frame x+ arrives, the difference (x+−z) is determined, to create a new image where each component (R-G-B or Y-Cr-Cb) of every pixel will be equal to the difference between the corresponding components of x+ and z.
- It is interesting to note that by storing the result of a full (compress/decompress) cycle in the transmitter, and taking only a difference for further transmission, the feedback feature of the present invention effectively closes a transformation loop, thus turning it into a self-adapting iterative cycle. It should be further noted that an image compression scheme having such closed loop feedback essentially builds up the quality of static regions in the images while simultaneously transmitting inter-frame motion information represented by the interframe difference data.
- I. Compression Processing
- With the foregoing concept and theory of the present feedback scheme in mind, and referring to FIG. 6, one embodiment of an implementation of a compression scheme having the adaptive feedback feature of the present invention is explained in greater detail with reference to the compression and transmission of a sequence of digital video images that are represented in the R-G-B, 24-bit (true color), space. As indicated above, such R-G-B representation is the usual format used by digital computers to produce digital video images. a.
- Color Space Conversion
- A
color space converter 70 is provided to transform the incoming video signal from one color space representation into another color space representation that is more efficient for data compression. Thecolor space converter 70 may be part of a graphics processor. For example, the image pixels generated by a computer for display on a monitor are typically represented in R-G-B color space. R-G-B are primary color components, each manifesting a single color (red, green or blue), and in combination manifest secondary colors. It is necessary for all these color components to be present to manifest the secondary colors. Accordingly, in order to represent the values of the color components digitally (i.e., in bits) for each image pixel, a certain, constant, number of bits (e.g., 8 bits) are allocated to each component. Consequently, there is a significant amount of data to be compressed for each frame (e.g., for a 640×480-pixel frame, the number of data points is 3 times the number of pixels). Further, in order to maintain the quality of the reconstructed images, the compression efficiency of RGB data is inherently limited. In order to increase data compression efficiency for purpose of data transmission through limited bandwidth channels, it is desirable to transform the RGB data into the Y-Cr-Cb (or Y-U-V) color vector space. Here, Y is luminance, and U and V are chrominance components, which together represent the brightness and the color of an image pixel. - The human eye is more sensitive to variations in luminance across an image frame but less sensitive to variations in chrominance. Hence, it is possible to allocate fewer samples to the chrominance components for each frame. Specifically, the same chrominance value may be used for every pair of pixels without significantly degrading the quality of the reconstructed image as perceived by the human eye.
- For example, the color space transformation may apply a 4:2:0 or 4:2:2 subsampling technique. Regarding 4:2:0 subsampling, for every 4 pixels in a 2×2 block, separate luminance values Y are provided for each pixel, one average value for U, and one average value for V. Regarding 4:2:2 subsampling, for every pair of adjacent pixels on one scan line. separate luminance values are provided for each, and average chrominance values are provided for both U and V components. Thus, for a frame having 640×480 pixels, there would be 680×480 Y data points, 320×480 U data points and 320×480 V data points. Accordingly, as compared to luminance, only half as many data points are required to represent the U and V components of each frame. By using the 4:2:2 scheme then, the amount of data for an image represented in Y-U-V space is two-thirds the amount of data necessary to represent the same image in the R-G-B space (provided the same integer precision is used for each color component). Each of the Y, U and V frames are subject to compression and transmission as discussed above, and the frames are decompressed and reconstructed at the receiver side.
- b. Wavelet Analysis
- To further reduce the size of the data that is to be compressed and transmitted, the Y, U and V frames are subject to a data compaction process at a
wavelet filter bank 72 prior to compression. Thewavelet filter bank 72 performs wavelet analysis and data compaction. Although the general theory of wavelet analysis is, by itself, well known in the art, the application of wavelet analysis in the compression scheme of the present invention is new. For the sake of completeness, the wavelet analysis in the context of the present invention will be discussed below. Reference may be made to G. Strang and T. Nguen, Wavelets and Filter Banks, Wellesley-Cambridge Press, 1996, for a further understanding of wavelet analysis techniques in general. Further, it should be recognized that there are a number of available algorithms that may be adopted for wavelet analysis. The algorithm developed by Analog Devices, Inc. and incorporated in its ADV 601 chip is one example of a suitable algorithm for wavelet analysis. - Generally, wavelet analysis converts a frame represented in spatial domain into wavelet domain (i.e., space-frequency domain). It is a mathematical transformation, involving the use of a set of filters and decimators to implement two-dimensional sub-band coding. Thus, two-dimensional spatial video data is transformed into frequency filtered sub-bands for each frame and the frequency components are subsequently quantized.
- FIG. 7 schematically illustrates the wavelet analysis process. H1 and H0 are the analysis high-pass and low-pass filters, respectively, while F1 and F0 are the synthesis counterparts thereof. The filters are designed such that in the absence of a quantizer, perfect reconstruction of the incoming signal is achieved. When applied to a two-dimensional image, the analysis part of a wavelet filter bank expands the image area into separated bands 74 (called Mallat blocks) in each dimension, as shown in FIG. 8. Here L and H denote an output of the low-pass and high-pas filter stages, respectively, and the indices x and y denote the dimension (horizontal or vertical) in which the filter was applied.
- Referring also to FIG. 9, in the first filter stage or iteration in sub-band coding to obtain the Mallat blocks, the original block76 (frame) is filtered at
stage 78 into high and low frequency blocks 80 and 82 in the horizontal (x) direction (including decimation by 2 in the x direction, forming Lx and Hx blocks). The high and low frequency blocks 80 and 82 are subsequently filtered atstage 84 into high and low frequency blocks 86 and 88 in the vertical (y) direction (including decimation by 2 in the y direction, forming Hy and Ly blocks in each of the L and H blocks). The result of the first filter stage then is formation of the LxHx, HxHx, LxLy and HyLy blocks 90. Then in the next iteration, the LxLy block gets substituted for theoriginal block 76, and the analysis stage is repeated at the next resolution, and so on for subsequent stages. - FIG. 10 illustrates the wavelet analysis filter tree structure for the first three representative stages of filtering. FIG. 8 shows the color component frame having been split into sub-band (Mallat) blocks after four stages of the logarithmic wavelet analysis filter bank. In one embodiment, five filtering stages are used.
- The above filtering process may be applied to each of the Y, U and V component frames of each image frame. That is, values of the Y, U and V color components corresponding to each line of pixels of the image frame may be subject to the filtering process. Referring back to FIG. 8, the result of a four-stage analysis is shown. It is noted that the shaded
area 62 in the lower left corner represents the lowest frequency (LL) block in both x and y dimensions, (LxLy)4 whose size is only (½×½)4={fraction (1/256)} of the original size of the component frame. - In one embodiment of the present invention, a five-stage filter bank based on bi-orthogonal (9, 7) filters is applied to frames in Y-U-V (4:2:2 subsampled) format. Where a memory is used to store the image data during this process, to simplify the iterative sub-band coding cycle it may be convenient to rearrange the data in the memory holding the filtered image data such that the low-frequency block always starts at the beginning of the addressible memory space. This way, it is only necessary to specify the dimensions of the block being processed, and use the same algorithm for multiple filtering stages.
- It is noted that no compression (lossy or lossless) occurs at the wavelet analysis stage; this stage is just a transformation of the original signal into a different domain. However, the nature of this transform is well suited for compression for several reasons. As can be seen from the arrangement of low and high pass filters in the logarithmic tree in FIG. 10, the data in all Mallat blocks, except for the last (LL) one, are high pass filtered. This means that the mean pixel values in these high frequency blocks are typically zero, with a histogram (a probability distribution function) of the pixel values following a Gaussian (approximately exp(−x2)) distribution. The information contained in the high frequency blocks corresponds to sharp changes within a frame. However, the low frequency (LL) block contains a large amount of information in the image representation within a frame. For example, for a natural image (e.g., a person's facial image) having gradual changes between pixels, most of the signal energy is concentrated in the LL block. The high frequency blocks contain significantly much less energy.
- The high frequency nature of all blocks but one (the smallest LL block) means that the data in them are more likely to contain zeros or strings of zeros than unfiltered image data. As previously noted, human vision is less sensitive to these higher frequencies, therefore the high-frequency blocks, occupying the most of the area, can be quantized “harder” (i.e., subjected to coarser sampling) than the low-frequency blocks without compromising image quality. Harder quantization results in more efficient run length coding and, consequently, more efficient compression.
- c. Key Frame/Difference Frame
- Referring back to FIG. 6, after the analysis at the
wavelet filter bank 72, wavelet filtered data (i.e., the Mallat blocks) for the entire image frame (including separate Y, U and V components of the frame) is stored in anew frame buffer 96. This new frame's “signature” 98 is compared with the preceding frame's signature that has been stored in asignature holder 100. In one embodiment, the “signature” can be determined by referring to the luminance (Y) component of the entire LL block, which represents the “bird's-eye view” of a frame. Note that for a 640×480-pixel frame after five stages of wavelet filtering, the size of the LL block is only 20×15 pixels, or 300 samples. - Therefore, a “signature” can be thought of as a vector of dimension300. Differencing “signatures” may then be accomplished using a vector subtraction operation. Depending on whether or not the signature difference exceeds a preset threshold, a decision is made at
stage 102 as to whether the new frame should be considered a new “key” frame, or be treated as a difference frame. For the first frame in the video sequence, the signature of the preceding frame is null, so the first frame will always be treated as a key frame. - In case the signature threshold is exceeded (e.g., for the first frame, or when there is significant motion in the image so as to cause the inter-frame images to change significantly), the new frame is considered a key frame. In such cases, the frame is quantized by the
adaptive quantizer 104 as is (i.e., without further modification), and is subsequently transmitted to the receiver with a “KF” (key frame) flag. Upon receiving a KF frame, the receiver will replace the contents of its frame buffer with the new arrival. - If the frame is determined to be a difference frame, it is directed to a
subtractor 106 where the content of the compressed preceding frame (stored in an accumulation buffer 108) is subtracted from it, forming a difference. This difference is then quantized in theadaptive quantizer 104, and the quantized difference value is subsequently transmitted to the receiver with a “D”(difference) flag. Having received a D frame, the receiver will add it to the contents of its frame buffer. - d. Quantization
- The
adaptive quantizer 104 examines the statistics of each block and selects a set of “bin widths”, or quantization intervals, depending on the energy of the data in the block. To quantize the data, the quantizer may adopt any suitable known algorithm, such as a scalar or vector quantization scheme [see, e.g., A. Gersho and R. M. Gray, Vector Quantization and Signal Compression, Kluwer, 1992]. Generally, for higher energy blocks, the bin widths are set narrower to reduce quantization error. The objective is to satisfy a limited bit budget (e.g., determined by factors such as the available transmission bandwidth in the channel 52) and to minimize the overall distortion introduced by quantization. The Mallat blocks are quantized in the order from low frequency (high resolution) to high frequency (low resolution) blocks. During this process, an attempt should be made to balance or equalize the bit budget within each resolution, and between the two chroma components within each block, to avoid spatial non-uniformity and color skew in the restored frame. - e. Feedback
- The quantized data is then forwarded to an
entropy encoder 110. At the same time, the quantized frame, regardless of whether it is a key or a difference frame, is dequantized by thedequantizer 112 and is added to the contents of the accumulation buffer 108 (in the case of a difference frame), or is used to replace the previous frame stored therein (in the case of a key frame). It is noted that the data in theaccumulation buffer 108 is in the wavelet domain. It is not necessary to de-waveletize this data, as it can be conveniently used as is for comparison with the new incoming frame that has been converted into wavelet representation. The signature of the current frame in theaccumulation buffer 108 is determined as described above and stored in thesignature holder 100, as it represents the image stored in theaccumulation buffer 108. - f. Entropy Encoding
- At the
entropy encoder 110, the data is compressed and transmitted out (this later action may be accomplished using a radio or other media access device as described above). Further, theentropy encoder 110 may be implemented in accordance with Huffman or arithmetical entropy encoding that is well known in the art. See, e.g., M. Nelson and J. L. Gailly, The Data Compression Book, M&T Books, 1995. The high frequency blocks (characterized, typically, by relatively low energy and large zero areas) lend themselves well to efficient run length encoding. It may be desirable, however, to subject the lowest frequency LL block (having relatively high energy and low data redundancy) to a different encoding scheme to improve efficiency. The output of theentropy encoder 110 is transmitted to the receiver via wired or wireless means, with a KF or D flag depending on the key or difference frame attribute of the data. - g. Bid Budget Allocation
- In cases of limited transmission bandwidth or storage space, the bit budget for transmission or storage may be limited. In accordance with another aspect of the present invention, to ensure that the LL block is retained (for transmission or storage) with as much precision as possible within a limited transmission bandwidth or storage space, a bit budget allocation scheme has been developed to allocate the bits of the Mallat blocks to be retained for transmission or storage and the priority thereof. The bit budget allocation scheme is an implied, or indirect, quantization scheme, which can be better understood given a discussion of bit planes.
- For ease of discussion, consider that each pixel (see FIG. 11, at114) of Y, U or V data in a frame is represented by an 8-bit byte (i.e., values ranging from 0 to 255). Imagine that the frame is composed of eight 1-
bit planes 116, ranging from plane 0 for the least significant bit to plane 7 for the most significant bit. In terms of 8-bit bytes, plane 0 contains all the lowest order bits in the bytes comprising the pixel samples in the frame, and plane 7 contains all the highest order bits. Thus, the higher order bit planes contain visually significant data. In fact, bit plane 7 corresponds exactly with an image threshold at gray level 128 for an 8-bit data. The lower order bit planes contribute to more subtle details in the image. - In accordance with the present invention, in cases of limited transmission bandwidth, generally only the higher order bit planes are transmitted. Further, the different Mallat blocks are prioritized in accordance with their resolution levels, in that more bit planes of the lower frequency blocks are allocated to be transmitted.
- The reasoning behind the bit plane allocation is as follows. By transmitting the 7-bit plane of all samples for a block, it is possible to determine that those samples that have a binary “1” value in this bit plane will have a value at or above 128 (i.e., 27), and those samples that have a binary “0” in this bit plane will have a value below 128. Accordingly, by transmitting only one eighth of the data for the samples in the block, it can be determined which sample is greater or less than half of their full-scale value, and in which half it will be.
- By transmitting next the 6-bit plane, one can further quantize the value of the samples within a quadrant of the full range value (i.e., the value of the sample can be determined with an accuracy of a quadrant). For example, a sample have a “1” in the 7-bit plane and a “1” in the 6-bit plane necessarily has a value at or above 192. A sample having a “0” in the 7-bit plane and “0” at the 6-bit plane has a value below 64. Similar analysis will show that the value of the sample can be determined to be in the other two quadrants (i.e., equal or greater than 128 but less than 192 and equal or greater than 64 but less than 128). By the time the two highest bit planes have been transmitted then, the value of the samples may be narrowed to within one quarter of their full range value, which is equivalent to allocating 2 bits per block's sample. It follows that every following bit plane is a binary refinement (i.e., by a factor of 2). Consequently, depending on the available transmission bandwidth, it may be adequate to transmit only the upper bit planes without too much compromise on the precision of the blocks.
- In view of the asymmetric level of detail and precision between the higher and lower frequency blocks, the lower frequency blocks should be allocated a larger number of bit planes to be transmitted, so as to provide as much precision as possible for higher image details contained therein. The high frequency blocks may only have a few or no bit planes transmitted, depending on whether there is budget remaining in the bandwidth.
- Consider now the example of a 16-bit fixed-point representation of samples in a frame, where 9 bits carry the integer part, and the remaining 7 bits the fractional part of a sample. There would be 16 bit planes, from 0-bit to 15-bit planes. The 15-bit plane represents the sign of the data, the 14-bit to 7-bit planes represent the integer part of the data, and the 6-bit to 0-bit planes represent the fractional part of the data. According to one embodiment of the present invention, the number of upper bit planes to be transmitted for different frequency levels of the Mallat blocks are as follows (higher level of blocks are adjacent the preceding level of blocks, see FIG. 9):
- LL block=16 bit planes
- First resolution blocks118=12 bit planes
- Second resolution blocks119=11 bit planes
- Third resolution blocks121=10 bit planes
- Fourth resolution blocks122=9 bit planes
- Fifth resolution blocks123=8 bit planes
- All the allocated bit planes within a given resolution are transmitted in sequence for all blocks within such resolution before the bit planes of the next resolution are transmitted.
- As mentioned above, an attempt should be made to balance or equalize the bit budget within each resolution, and between the two chroma components within each block, to avoid spatial non-uniformity and color skew in the restored frame. This is achieved by transmitting bit planes in the same bit level for all the blocks in a given resolution before transmitting the bit planes in the next bit level. If there is insufficient transmission bit budget to accommodate transmission of the bit planes in the same level for all the blocks in the same resolution, then none of such bit planes should be transmitted. For each frame, the bit planes are transmitted in the order described above, until the bit budget for the transmission bandwidth has been reached. The bit planes remaining will be “discarded” (i.e., taken as having “zero” value and are not transmitted) and the bit planes for the next frame are then transmitted with the same bit allocation.
- It is noted that the bit budget allocation scheme does not involve data compression. It merely prioritizes the data to be transmitted in accordance with the frequency level of the Mallat blocks, and the data that cannot fit into the transmission bandwidth will have to be truncated and not transmitted. In other words, it is an implied, or indirect, quantization scheme. The low priority data is thus lost due to the limited transmission bandwidth budget. The bit budget allocation scheme is therefore a lossy transmission scheme, as any scheme involving data quantization must be. Because the allocation is the same for each frame, such loss cannot be recovered by the feedback scheme for compression (which is for recovering quantization errors) described earlier.
- The bid budget allocation scheme may be implemented as part of the
adaptive quantizer 104 or, with some modification to the embodiment depicted in FIG. 8, as part of theentropy encoder 110. The bit-planes that are designated to be transmitted may be subject to run length (entropy) encoding before they are transmitted. - While the bid budget allocation scheme has been described using the example of limited transmission bandwidth, it should be understood that the bit budget allocation scheme may be adopted for limited storage space without departing from the scope and spirit of the present invention. Moreover, it should be appreciated that the foregoing sequence of steps is iterated for each incoming frame.
- II. Decompression Processing
- At the receiver side, the data received goes through essentially the reverse of the compression cycle at the transmission side. Referring to FIG. 13, one embodiment of an implementation of a decompression scheme that complements the adaptive feedback feature of the present invention is explained with reference to the compressed data received from the compression and transmission implementation of FIG. 6.
- a. Entropy Decoding
- An
entropy decoder 130 decodes the frame of compressed Y-U-V wavelet data stream received via thetransmission channel 52 into a quantized set of wavelet domain bands (i.e. the Mallat blocks shown in FIG. 8). Theentropy decoder 130 should be selected to complement the specific entropy encoder on the transmission side, so that the compressed data can be properly decoded to recover the original data. If a bit allocation scheme similar to that described above was used on the transmission side, theentropy decoder 130 should be configured to recognize the incoming data stream in accordance with the bit plane sequence discussed above. - b. Post Augmentation
- According to another aspect of the present invention, to enhance the accuracy of received (i.e., recovered) data that was subject to the bit allocation scheme, a post augmentation scheme is introduced to augment the values represented by the limited number of transmitted bit planes. For to the post augmentation scheme, an assumption is made that the actual value of the data received is taken to be an augmented value that lies between the indicated value represented by the bit planes and the value represented by the next possible higher binary value that can be represented by the allocated bit planes. More particularly, in accordance with one embodiment of the present invention, the augmented value is the average or median value between the two binary values. This statically minimizes the error introduced by the implied data quantization as a result of the limited bit plane transmissions.
- To illustrate, consider sample data that is represented by 8-bits. Consider further that only two bit planes (7-bit and 6-bit planes) were transmitted for a block. For a sample that has a “1” in the 7-bit plane and “0” in the 6-bit plane, the transmitted value is 128. However, it can be deduced that the actual value of this sample must lie in the third quadrant of the full range, i.e. between 27 and the next possible
binary value 26, when the 6-bit plane is also “1” (i.e., between 128 and 27+(25+24+23+22+21+20)=27+(25+1−1)=191). According to one embodiment of the post augmentation scheme, the actual value of the sample is augmented and taken to be the middle of the quadrant, or 160 (the integer value of the average of 128 and 191). To put it in another way, the sample value is augmented to be the average or median of its indicated value with all non-transmitted bit planes being zero and its indicated value with all non-transmitted bit planes being one. - In another example, if the 7-bit is “0” and the 6-bit is “1”, the indicated value of the sample is 64. According to the post augmentation scheme, the actual sample value is taken to be 96, which is the average of 64 and 127. The same analysis applies to sample represented by other transmitted bit planes. For the example when the 7-bit is “1” and the 6-bit is also “1”, the indicated value is 192, but the augmented value would be 224 (i.e., the average of 192 and 255).
- The underlying rationale for the post augmentation scheme is that, from a statistical perspective, there is an uniform probability distribution for values between two binary bits (e.g., between 128 and 255 ). Therefore, the average of these two values would render a value with statistically minimized error, because for each pixel a maximum introduced error is only 50% of what it could be without post-augmentation. The error present in this scheme is reduced as increasing number of bit planes are transmitted, as the uncertainty between two lower binary bit values decreases, and such uncertainty is also marginal in reference to the full range (e.g., the uncertainty between 3-bits (8) and 4-bits (16) is small and is marginal in reference to 255 full range). It follows that even if there was 50% error in making the augmentation to a higher value, the error may still be marginal.
- There is one exception to the augmentation scheme described above. In the event that the 7-bit and 6-bit are both “0”, it would not be proper to augment the value of the sample to 32, the average of 0 and 63 (or b2 6). It certainly would not be appropriate to give the sample an augmented value between 0 and 255 (i.e., 128). To do so would require an assumption that does not commensurate with the many unknowns about those bit planes that have not been transmitted. For example, in case only two upper bit planes have been transmitted, the remaining six bit planes may all take on null values. To otherwise use an augmented value of 32 would result in gross error in reference to the range of 0 to 64. This may result in unpleasant artifacts in the restored image. In such instances, it is safer to assume the sample value to be 0. Because the lower bit planes contain less significant bits, even if the actual value of the sample is not 0, the error resulting from assigning 0 to be the actual value may still be marginal from a statistical perspective. Accordingly, in the absence of any value indicated by the transmitted bit planes, it is better (statistically) to assign a value of 0 to the sample. The post augmentation scheme may be implemented as part of the
entropy decoder 130 ordequantizer 132. - c. Dequantizer
- A
dequantizer 132 may be provided to scale up the quantized data into large-range values. The KF/D flag in the data is identified atstage 134 to determine whether the incoming frame is a key frame or a difference frame. If it is a key frame, it replaces the frame data in theaccumulation frame buffer 136. (The first frame by its nature would be a key frame.) If it is a difference frame, it is added to the existing frame data in theaccumulation buffer 136. Theaccumulation buffer 136 therefore holds the most current Y-U-V frame data represented in wavelet domain. This data needs to be converted back to spatial domain by wavelet synthesis. - d. Wavelet Synthesis
- The
wavelet synthesis stage 138 is conceptually an exact reversal of the wavelet analysis stage. The sequence of operation is inversed compared to that in thewavelet filter bank 72. Specifically, two lowest blocks (in each dimension) are taken together, up-sampled by 2, and run through the synthesis filters, as shown in FIG. 14. The procedure is repeated for four additional iterations (if the wavelet analysis involved 5 stages), by substituting the then four lowest frequency blocks (including the preceding restoredblock 150 as one of the four blocks), until an original image size is obtained. To complement the algorithm adopted for the wavelet analysis described above, the wavelet synthesis many adopt the algorithm developed by Analog Devices, Inc. and implemented in its ADV 601 chip. - e. Color Space Conversion
- The output of the synthesis filter bank is the decompressed image in Y-U-V space. The Y-U-V data may then be converted into R-G-B color space by a
converter 142, if desired (e.g., for display by a computer monitor or further processing by a digital computer). Alternatively, the Y-U-V data may be further processed for display by a television set. - The foregoing describes the various aspects of the present invention. The compression engine of the present invention may be implemented in integrated circuits such as an ASIC (Application Specific Integrated Circuit) or made part of a graphics processor. The feedback scheme of the present invention is also applicable to (and easily integrated into) any existing intraframe compression algorithm. Given the disclosure herein of the various structures, processes and functions of the present invention, it is within the ability of one skilled in the art to design the programs, software, coding, etc., which are necessary to implement the present invention.
- While the invention has been described with respect to the described embodiments in accordance therewith, it will be apparent to those skilled in the art that various modifications and improvements may be made without departing from the scope and spirit of the invention. Certain parts or components may be omitted from the system described in reference to the figures (e.g., the color space converter may be omitted if the incoming stream is already in the desired fonnat for data compression). The feedback scheme, post augmentation scheme, and bit budget allocation scheme may be adopted in part or together in a system, or independently and separately adopted in different systems. A compression system may not need to adopt all the foregoing schemes. Furthermore, the individual schemes may be advantageously applied to other types of systems without departing from the scope and spirit of the present invention. For example, the post augmentation scheme may be applied in any system that involves recovery of quantized data. The bit allocation scheme may be applied in any system that involves data processing and/or transmission with limited bandwidth constraints. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiments, but only by the scope of the appended claims.
Claims (153)
1. A method, comprising:
storing first image frame data representing a first frame of a video image sequence;
subtracting the first image frame data from second image frame data representing a next frame of the video image sequence to produce difference data; and
updating the first image frame data with the difference data.
2. The method of claim 1 further comprising transmitting the difference data.
3. The method of claim 1 further comprising transforming the first image frame data from a first format to a second format prior to storing the first image frame data.
4. The method of claim 3 wherein the first image frame data is stored in the first format during the step of storing.
5. The method of claim 4 further comprising compressing the first image frame data prior to storing the first image frame data.
6. The method of claim 5 wherein the first image frame data is compressed following the step of transforming.
7. The method of claim 6 further comprising decompressing the first image frame data prior to storing the first image frame data.
8. The method of claim 7 wherein the second format comprises a wavelet representation.
9. The method of claim 2 further comprising encoding the difference data prior to the step of transmitting.
10. A method comprising:
transmitting preceding frame data through a transmission channel;
subtracting the preceding frame data from subsequent frame data to produce difference data; and
transmitting the difference data.
11. The method of claim 10 further comprising storing the preceding frame data prior to the subtracting.
12. The method of claim 11 further comprising updating the stored preceding frame data with the difference data.
13. The method of claim 10 further comprising reconstructing the subsequent frame data from the preceding frame data and the difference data.
14. A method comprising the steps of:
transmitting preceding frame data through a transmission channel having a limited transmission bandwidth;
feeding back transmitted preceding frame data to a current frame; and
updating the transmitted preceding frame with difference data representing the difference between the transmitted preceding frame and the current frame.
15. The method of claim 14 wherein updating the transmitted preceding frame comprises transmitting the difference data through the transmission channel.
16. The method of claim 14 wherein updating the transmitted preceding frame further comprises combining the transmitted preceding frame with the difference data to reconstruct the current frame.
17. The method of claim 14 further comprising the steps of:
receiving the transmitted preceding frame;
receiving the transmitted difference data;
reconstructing the current frame based on the transmitted preceding frame and the transmitted difference data.
18. The method of claim 14 further comprising the step of compressing the preceding frame.
19. The method of claim 16 , wherein the difference data includes data representing inter-frame differences between the preceding frame and the current frame as well as information representing a distortion component arising from data compression of the preceding frame.
20. The method of claim 19 , wherein the data compression comprises quantization and the distortion component comprises quantization losses.
21. The method of claim 20 , wherein the transmitted preceding frame comprises quantized data and the difference data represents the difference between data representing the current frame and data obtained by dequantizing the quantized data in the transmitted preceding frame.
22. The method of claim 20 , wherein the transmitted preceding frame comprises compressed data and the difference data represents the difference between data representing the current frame and data obtained by decompressing the compressed data in the transmitted preceding frame.
23. The method of claim 20 , further comprising compressing the difference data prior to transmission.
24. The method of claim 19 , wherein the preceding frame comprises video images.
25. The method of claim 19 , wherein the preceding frame comprises temporal coherent images.
26. The method of claim 19 , wherein the preceding frame comprises natural images and/or synthetic images.
27. The method of claim 14 further comprising the step of storing data representing the transmitted preceding frame in an accumulation buffer.
28. The method of claim 27 , wherein the data stored in the accumulation buffer is deserved from the data in the transmitted preceding frame.
29. The method of claim 27 , further comprising the step of updating the data stored in the accumulation buffer with the transmitted difference data to obtain data representing the current frame.
30. The method of claim 29 , wherein the difference data used to update the data stored in the accumulation buffer is decompressed from data in the transmitted difference data.
31. The method of claim 27 further comprising the step of determining whether the current frame is a key frame or a difference frame, wherein in the event a key frame is encountered, the difference data represents the entire current frame.
32. The method of claim 31 wherein in the event the current frame is a difference frame, the difference data is added to the data stored in the accumulation buffer, and in the event the current frame is a key frame, the difference data replaces the data stored in the accumulation buffer.
33. The method of claim 14 further comprising the step of transforming the preceding frame into a wavelet domain before it is transmitted.
34. The method of claim 33 further comprising the step of transforming the current frame into the wavelet domain before obtaining the difference data.
35. The method of claim 34 wherein the transmitted preceding frame is subject to data compression by quantization of the data blocks.
36. The method of claim 35 wherein the extent of quantization is relatively less for higher resolution blocks compared to lower resolution blocks.
37. The method of claim 36 wherein the transmitted preceding frame and difference data are transmitted to a receiving device, comprising one of a decompaction device, a storage device or a remote transmission device.
38. A method comprising the steps of:
compressing a first merge frame and transmitting the first merge frame in compressed format;
obtaining difference data that represents difference between a second merge frame and data representing the transmitted first merge frame; and
applying the difference data to the transmitted first frame for reconstructing a transmitted second frame.
39. A method comprising the steps of:
(a) applying an incoming frame as a target frame;
(b) compacting the target frame to obtain a compacted target frame;
(c) determine whether a next incoming frame is a difference frame or a key frame;
(d) if the next incoming frame is a difference frame, comparing said incoming frame with the compacted target frame to obtain a difference data frame to be applied as a next target frame;
(e) repeating steps (b) to (d) for a desired number of incoming frames or until a key frame is encountered.
40. A method as in claim 39 further comprising the step of storing the compacted target frame prior to step (c).
41. A method as in claim 39 further comprising the step of decompacting the compacted target frame to obtain a decompacted target frame prior to step (c).
42. A method as in claim 41 further comprising the step of storing the decompacted target frame.
43. A method as in claim 39 further comprising the steps of:
(h) if the next incoming frame is a key frame, applying the next incoming frame as the next target frame; and
(i) repeating steps (b) to (h) for the desired number of incoming frames.
44. A method as in claim 39 further comprising the step of transforming each incoming frame into a wavelet domain before applying the incoming frames as target frames, wherein data in each incoming frame in the wavelet domain has been filtered into data blocks, each data block representing a certain resolution of the corresponding incoming frame.
45. A method as in claim 44 wherein the next incoming frame and the compacted target frame are compared by comparison in the wavelet domain.
46. A method as in claim 45 wherein the target frame is compacted by quantization of its data blocks.
47. A method as in claim 46 wherein the extent of quantization is relatively less for higher resolution data blocks of the incoming frames compared to lower resolution data blocks thereof.
48. A method as in claim 39 wherein in step (c), the next incoming frame is determined to be a difference frame or a key frame by comparing an energy signature of the next incoming frame to an energy signature of a preceding incoming frame.
49. A method as in claim 48 wherein the energy signature of the next incoming frame is represented by a lowest resolution data block in a wavelet domain.
50. A method as in claim 39 wherein the compaction step (b) comprises an implied quantization scheme.
51. A method as in claim 50 wherein each incoming frame comprises data arranged in bit planes in a number of data blocks within a wavelet domain, and the implied quantization scheme comprises the step of allocating a number of such bit planes to be retained for each data block within the wavelet domain.
52. A method as in claim 51 wherein the allocating step comprises allocating a larger number of the bit planes for data blocks of higher resolution and a lesser number of the bit planes for data blocks of lower resolution.
53. A method as in claim 52 wherein the implied quantization scheme allocates the number of bit planes to be retained for data transmission and/or data storage.
54. A method as in claim 39 further comprising the step of transforming an incoming sequence of image frames represented in true color components into luminance and chrominance components, wherein the transforming step comprises the steps of:
reducing the number of bits used to represent one or more of the true color components; and
prior to such bit size reduction, augmenting the value of the one or more true color components by a predetermined fraction of an increment of the expected bit representation after the bit size reduction.
55. A method as in claim 54 wherein the predetermined fraction is one-half of the increment.
56. A method as in claim 39 further comprising the steps of:
reducing the number of bits used to represent data of each incoming frame;
prior to such bit size reduction, augmenting the value of the data by a predetermined fraction of an increment of the expected bit representation after the bit size reduction.
57. A method as in claim 56 wherein the predetermined fraction is one-half of the increment.
58. A method as in claim 39 further comprising the step of reconstructing one or more of the incoming frames from a number of allocated bit planes thereof, wherein the reconstructing step comprises augmenting each value indicated by the allocated bit planes of each corresponding incoming frame by an amount between that value and a next possible higher binary value that can be represented by the allocated bit planes of the corresponding incoming frame.
59. A method as in claim 58 wherein each value is augmented to an average between said indicated value and said next possible higher binary value.
60. A method as in claim 58 wherein each value is augmented to be between a first value represented by the bits of the allocated bit planes of the corresponding incoming frame along with non-retained lower significant bits being one and a second value represented by the bits of the allocated bit planes of the corresponding incoming frame along with non-retained lower significant bits being zero.
61. A method as in claim 60 wherein each value is augmented to an average between the first and second values.
62. A method as in claim 39 further comprising truncating lower significant bits of data of each incoming frame so us to retain only higher significant bits thereof, and reconstructing the data by augmenting each value represented by the data to be between a first value represented by the higher significant bits along with non-retained lower significant bits being one and a second value represented by higher significant bits along with non-retained lower significant bits being zero.
63. A method as in claim 62 wherein each value is augmented to an average between the first and second values.
64. A method as in claim 39 wherein the incoming frames comprise digital video frames.
65. A method of reconstructing image frames based on compacted data transmitted from a source, comprising the steps of:
receiving first frame data representing a first frame that has been compacted;
receiving difference data representing a difference between a second frame and the compacted first frame; and
applying the difference data to the first frame data to reconstruct the second frame.
66. A system for compacting image frames for transmission through limited transmission bandwidth with reduced distortion, comprising:
means for transmitting preceding frame data through the limited transmission bandwidth;
means for feeding back transmitted preceding frame data to a current frame; and
means for updating the transmitted preceding frame with difference data representing the difference.
67. A method comprising:
allocating a predetermined number of higher significant bits to be retained for each of a number of digital data samples; and
discarding non-retained lower significant bits of the digital data samples for further data handling.
68. A method as in claim 67 wherein the digital data samples represent data of different resolutions.
69. A method as in claim 68 wherein allocating comprises allocating a larger number of higher significant bits for those of the digital data samples that represent data of higher resolution and allocating a lesser number of higher significant bits for those of the digital data samples that represent data of lower resolution.
70. A method as in claim 67 further comprising the step of reconstructing the digital data samples from the bits allocated by augmenting each value indicated by the allocated bits of each corresponding sample by an amount between that indicated value and a next possible higher binary value that can be represented by the allocated bits of the corresponding sample.
71. A method as in claim 70 wherein each value is augmented to be between a first value represented by the allocated bits of a corresponding sample along with the non-retained lower significant bits of that sample being one, and a second value represented by the allocated bits of the corresponding sample along with the non-retained lower significant bits of that sample being zero.
72. A method as in claim 67 wherein the samples are represented by bit planes, ranging from bit planes comprising higher significant bits to bit planes comprising lower significant bits, and wherein a predetermined number of bit planes of higher significant bits are allocated to be retained and non-retained bit planes of lower significant bits are treated as zeros and discarded for further data handling.
73. A method as in claim 72 wherein the bit planes define a frame of samples.
74. A method as in claim 73 wherein the samples are represented in a wavelet domain, and wherein the digital data of the samples has been filtered into data blocks, each data block representing a certain resolution of a corresponding frame.
75. A method as in claim 74 wherein the allocating step allocates a predetermined number of bit planes to be retained for each corresponding data block within the wavelet domain.
76. A method as in claim 75 wherein the predetermined number of bit planes for each corresponding data block varies, depending on the resolution of the corresponding data block.
77. A method as in claim 76 wherein a larger number of bit planes are allocated for corresponding data blocks of higher resolution and a lesser number of bit planes are allocated for corresponding data blocks of lower resolution.
78. A method as in claim 77 further comprising the step of reconstructing frames from the allocated bit planes by augmenting each value indicated by the allocated bit planes of a corresponding data block by an amount between that value and a next possible higher binary value that can be represented by the allocated bit planes of that corresponding data block.
79. A method as in claim 78 wherein each value is augmented to an average between the indicated value and the next possible higher binary value.
80. A method as in claim 78 wherein each value is augmented to be between a first value represented by the bits of the allocated bit planes along with non-retained lower significant bits being one and a second value represented by the bits of the allocated bit planes along with non-retained lower significant bits being zero.
81. A method as in claim 80 wherein each value is augmented to an average between the first and second values.
82. A method as in claim 67 further comprising transmitting the allocated bits across a limited transmission bandwidth channel.
83. A method as in claim 67 further comprising storing the allocated bits in a limited storage bandwidth device.
84. A method for reconstructing digital data, comprising augmenting each value representing the data to be between a first value represented by a number of retained higher significant bits of the data along with a number of non-retained lower significant bits of the data being one, and a second value represented by the number of retained higher significant bits of the data along with the number of non-retained lower significant bits being zero.
85. A method as in claim 84 wherein each value is augmented to an average between said first and second values.
86. A method as in claim 84 wherein the digital data values are represented in bit planes ranging from bit planes comprising higher significant bits to bit planes comprising lower significant bits, wherein the bit planes of lower significant bits are truncated and the bit planes of higher significant bits are retained, and wherein each digital data value is augmented to be between a first value represented by the bits of the retained bit planes along with non-retained lower significant bits being one and a second value represented by the bits of the retained bit planes along with non-retained lower significant bits being zero.
87. A method as in claim 86 wherein each value is augmented to an average between the first and second values.
88. A method for improving the accuracy of binary data values that are subject to bit size reduction, comprising the step of augmenting the values of the binary data prior to the bit size reduction by a predetermined fraction of an increment of the expected bit representation after bit size reduction, so as to improve the accuracy of the binary data values upon reconstruction.
89. A method as in claim 88 wherein the predetermined fraction is one-half of the increment.
90. A method comprising:
obtaining difference data that represents a difference between data representing a current frame and data representing a transmitted preceding frame; and
transmitting the difference data, wherein the difference data is to be applied for reconstructing a transmitted current frame.
91. A method as in claim 90 , wherein the preceding frame is subject to data compaction prior to transmission.
92. A method as in claim 91 , wherein the data compaction comprises quantization and the preceding frame includes a distortion component comprising quantization losses.
93. A method as in claim 92 , wherein the difference data includes data representing inter-frame differences between the preceding frame and the current frame as well as information representing a distortion component arising from data compaction of the preceding frame.
94. A method as in claim 91 , further comprising the step of compacting the difference data prior to transmission.
95. A method as in claim 90 , wherein the transmitted preceding frame comprises quantized data and the difference data represents the difference between data representing the current frame and data obtained by dequantizing the quantized data in the transmitted preceding frame.
96. A method as in claim 90 , wherein the transmitted preceding frame comprises compressed data and the difference data represents the difference between data representing the current frame and data obtained by decompressing the compressed data in the transmitted preceding frame.
97. A method as in claim 90 further comprising the step of storing data representing the transmitted preceding frame in an accumulation buffer.
98. A method as in claim 97 , wherein the data stored in the accumulation buffer is data decompacted from data compacted in the transmitted preceding frame.
99. A method as in claim 97 , further comprising the step of updating the data stored in the accumulation buffer with the transmitted difference data to obtain data representing the current frame.
100. A method as in claim 99 , wherein the difference data used to update the data stored in the accumulation buffer is decompacted from data compacted in the transmitted difference data.
101. A method as in claim 90 further comprising the step of determining whether the current frame is a key frame or a difference frame, wherein in the event a key frame is encountered, the difference data represents the entire current frame.
102. A method as in claim 101 wherein in the event the current frame is a difference frame, the difference data is added to the data stored in the accumulation buffer, and in the event the current frame is a key frame, the difference data replaces the data stored in the accumulation buffer.
103. A method as in claim 90 further comprising the step of transforming the data representing the preceding frame from a spatial domain into a wavelet domain before transmitting the preceding frame, wherein the data in the wavelet domain has been filtered into data blocks, each representing a certain resolution of the preceding frame.
104. A method as in claim 103 further comprising the step of transforming the data representing the current frame from the spatial domain into the wavelet domain before obtaining the difference data, wherein the difference data is obtained by comparison between the current frame and transmitted preceding frame in the wavelet domain.
105. A method as in claim 104 wherein the transmitted preceding frame is subject to data compaction by quantization of the data blocks.
106. A method as in claim 105 wherein relatively less quantization is applied for higher resolution data blocks compared to lower resolution data blocks.
107. A method as in claim 106 wherein the transmitted preceding frame and difference data are transmitted to a receiving device comprising one of a decompaction device, a storage device, or a remote transmission device.
108. A method as in claim 105 wherein the data representing the preceding frame and the data representing the current frame are subject to an implied quantization scheme in the wavelet domain.
109. A method as in claim 108 wherein each frame comprises data arranged in bit planes in each block within the wavelet domain, and the implied quantization scheme comprises the step of allocating the number of bit planes to be retained for each data block within the wavelet domain.
110. A method as in claim 109 wherein the allocating step comprises the step of allocating a larger number of bit planes for data blocks of higher resolution and a lesser number of bit planes for data blocks of lower resolution.
111. A method as in claim 110 wherein the implied quantization scheme allocates the number of bit planes to be retained for data transmission or data storage.
112. A method as in claim 90 further comprising the step of transforming the data representing the current frame from true color components into luminance and chrominance components wherein the transforming comprises:
reducing the number of bits representing one or more of the true color components:
prior to such bit reduction, augmenting the value represented by the bits of the one or more true color components by a predetermined fraction of an increment of the expected bit representation after the bit size reduction.
113. A method as in claim 112 wherein the predetermined fraction is one-half of the increment.
114. A method as in claim 90 further comprising the steps of:
reducing the number of bits representing each data value of each frame;
prior to such bit size reduction, augmenting the value represented by the bits of each data value by a predetermined fraction of an increment of the expected bit representation after the bit size reduction.
115. A method as in claim 114 wherein the predetermined fraction is one-half of the increment.
116. A method as in claim 90 further comprising the step of reconstructing the transmitted current frame from a number of allocated bit planes by augmenting each value indicated by the allocated bit planes by an amount between the indicated value and a next possible higher binary value that can be represented by the allocated bit planes.
117. A method as in claim 116 wherein each value is augmented to an average between the indicated value and the next possible higher binary value.
118. A method as in claim 116 wherein each value is augmented to be between a first value represented by the bits of the allocated bit planes along with non-retained lower significant bits being one and a second value represented by the bits of the allocated bit planes along with non-retained lower significant bits being zero.
119. A method as in claim 118 wherein each value is augmented to an average between the first and second values.
120. A method as in claim 90 further comprising the steps of truncating lower significant bits of the data representing the current frame so as to retain only higher significant bits, and reconstructing the data of the transmitted current frame by augmenting each value represented by that data to be between a first value represented by the higher significant bits along with non-retained lower significant bits being one and a second value represented by the higher significant bits along with the non-retained lower significant bits being zero.
121. A method as in claim 120 wherein each value is augmented to an average between the first and second values.
122. A method as in claim 90 wherein the current and preceding frames are digital video frames.
123. A method as in claim 90 , wherein the current and preceding frames include video images.
124. A method as in claim 90 , wherein the current and preceding frames include temporal coherent images.
125. A method as in claim 90 , wherein the current and preceding frames include natural images and/or synthetic images.
126. A system for handling image frames through limited bandwidth with reduced distortions comprising:
comparison means for obtaining difference data that represents a difference between data representing a current frame and data representing a compacted preceding frame;
means for transmitting the difference data; and
means for applying the difference data to reconstruct a transmitted current frame.
127. A method for compacting a sequence of image frames that are represented in spatial domain comprising:
transforming each frame into wavelet domain, wherein each wavelet domain frame is filtered into data blocks, each data block including data representing a certain resolution of the frame; and
quantizing the data in each data block.
128. A method as in claim 127 , wherein the data in each of the data blocks is quantized to a different extent depending on the resolution of the respective data block.
129. A method as in claim 128 , wherein the data in data blocks representing higher resolution blocks is quantized to a relatively lesser extent and the data in data blocks representing lower resolution blocks is quantized to a relatively higher extent.
130. A method as in claim 129 further comprising the step of comparing a transmitted preceding frame and a current frame in the wavelet domain to obtain a difference data that is to be applied to reconstruct a transmitted current frame based on the transmitted preceding frame.
131. A method as in claim 130 further comprising the step of determining whether the current frame is a difference frame or a key frame prior to obtaining the difference data.
132. A method as in claim 131 wherein the current frame is determined to be a difference frame or a key frame by comparing an energy signature of the current frame to an energy signature of the preceding frame.
133. A method as in claim 132 wherein the energy signature of the current frame is represented by a lowest resolution data block in the wavelet domain.
134. A method as in claim 127 wherein the image frames in the wavelet domain are subjected to an implied quantization scheme.
135. A method as in claim 134 wherein each frame comprises data arranged in bit planes in each data block within the wavelet domain, and the implied quantization scheme comprises the step of allocating the number of bit planes to be retained for each data block within the wavelet domain.
136. A method as in claim 135 wherein the allocating step comprises the step of allocating a larger number of bit planes for data blocks of higher resolution and a lesser number of bit planes for data blocks of lower resolution.
137. A method as in claim 136 wherein the implied quantization scheme allocates the number of bit planes to be retained for data transmission.
138. A method as in claim 137 wherein the implied quantization scheme allocates the number of bit planes to be retained for data storage.
139. A method as in claim 127 further comprising the step of transforming the sequence of image frames represented in true color components into luminance and chrominance components, wherein transforming comprises:
reducing the number of bits used to represent one or more of the true color components; and
prior to such bit reduction, augmenting the value of the one or more true color components by a predetermined fraction of an increment of the expected bit representation after the bit size reduction.
140. A method as in claim 139 wherein the predetermined fraction is one-half of the increment.
141. A method as in claim 127 further comprising the steps of:
reducing the bit size of values representing data of each frame;
prior to the bit size reduction, augmenting the values of the data by a predetermined fraction of an increment of the expected bit representation after the bit size reduction.
142. A method as in claim 141 wherein the predetermined fraction is one-half of the increment.
143. A method as in claim 127 further comprising the step of reconstructing the frames from a number of allocated bit planes by augmenting each value indicated by the allocated bit planes by an amount between said indicated value and the next possible higher binary value that can be represented by the allocated bit planes.
144. A method as in claim 143 wherein each value is augmented to an average between said indicated value and said next possible higher binary value.
145. A method as in claim 143 wherein each value is augmented to be between a first value represented by the bits of the allocated bit planes along with non-retained lower significant bits being one and a second value represented by the bits of the allocated bit planes along with non-retained lower significant bits being zero.
146. A method as in claim 145 wherein each value is augmented to an average between the first and second values.
147. A method as in claim 127 further comprising the steps of truncating lower significant bits of data values of each frame so as to retain only higher significant bits thereof, and reconstructing the frames by augmenting data values so truncated to be between a first value represented by the higher significant bits along with non-retained lower significant bits being one and a second value represented by the higher significant bits along with non-retained lower significant bits being zero.
148. A method as in claim 147 wherein each data value is augmented to an average between the first and second values.
149. A method as in claim 127 wherein the frames comprise digital video frames.
150. A method as in claim 149 wherein the digital video frames comprise synthetic and/or natural images.
151. In a system for compaction of image frames that are in a spatial domain, which is structured and configured to update a transmitted preceding frame that underwent compaction using inter-frame differences between a current frame and the preceding frame, an improvement for reducing distortions comprising:
transformation means for transforming the frames into a wavelet domain; and
means for quantizing the data in the wavelet domain.
152. The improvement of claim 151 wherein the data in the wavelet domain is selectively quantized depending on the current frame resolution represented by the data.
153. The improvement of claim 152 further comprising comparison means for obtaining difference data that represents a difference between data representing the current frame and data representing the compacted preceding frame; wherein the difference data is to be applied for reconstructing a transmitted current frame based on the transmitted preceding frame.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/035,492 US20020061066A1 (en) | 1998-10-01 | 2001-11-08 | Method and apparatus for digital data compression |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16494298A | 1998-10-01 | 1998-10-01 | |
US09/654,220 US6347155B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US10/035,492 US20020061066A1 (en) | 1998-10-01 | 2001-11-08 | Method and apparatus for digital data compression |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/654,220 Continuation US6347155B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
Publications (1)
Publication Number | Publication Date |
---|---|
US20020061066A1 true US20020061066A1 (en) | 2002-05-23 |
Family
ID=22596753
Family Applications (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/653,967 Expired - Lifetime US6310974B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/654,321 Expired - Lifetime US6310975B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,902 Expired - Lifetime US6310976B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,752 Expired - Lifetime US6314207B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,905 Expired - Lifetime US6310973B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,903 Expired - Lifetime US6307971B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,962 Expired - Lifetime US6310977B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/654,220 Expired - Lifetime US6347155B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/654,221 Expired - Lifetime US6310979B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,968 Expired - Lifetime US6310978B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US10/035,492 Abandoned US20020061066A1 (en) | 1998-10-01 | 2001-11-08 | Method and apparatus for digital data compression |
Family Applications Before (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/653,967 Expired - Lifetime US6310974B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/654,321 Expired - Lifetime US6310975B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,902 Expired - Lifetime US6310976B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,752 Expired - Lifetime US6314207B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,905 Expired - Lifetime US6310973B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,903 Expired - Lifetime US6307971B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,962 Expired - Lifetime US6310977B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/654,220 Expired - Lifetime US6347155B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/654,221 Expired - Lifetime US6310979B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
US09/653,968 Expired - Lifetime US6310978B1 (en) | 1998-10-01 | 2000-09-01 | Method and apparatus for digital data compression |
Country Status (1)
Country | Link |
---|---|
US (11) | US6310974B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040047511A1 (en) * | 2002-07-09 | 2004-03-11 | Aware, Inc. | Iterative compression parameter control technique for images |
US20050157783A1 (en) * | 2004-01-15 | 2005-07-21 | Sony Corporation | Adaptive bandwidth allocation method and system for AV signal distribution |
AU2004260051B2 (en) * | 2003-07-14 | 2009-03-26 | Halliburton Energy Services, Inc. | Method and apparatus for mud pulse telemetry |
US8483497B2 (en) | 2003-06-05 | 2013-07-09 | Aware, Inc. | Image quality control techniques |
US9852523B2 (en) * | 2016-02-24 | 2017-12-26 | Ondrej Jamri{hacek over (s)}ka | Appearance transfer techniques maintaining temporal coherence |
US9870638B2 (en) | 2016-02-24 | 2018-01-16 | Ondrej Jamri{hacek over (s)}ka | Appearance transfer techniques |
US10566997B2 (en) * | 2017-12-05 | 2020-02-18 | Electronics And Telecommunications Research Institute | Apparatus and method for data compression and decompression based on calculation of error vector magnitude |
US11921674B2 (en) * | 2017-03-31 | 2024-03-05 | Beijing Zitiao Network Technology Co., Ltd. | Data compression by using cognitive created dictionaries |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995539A (en) * | 1993-03-17 | 1999-11-30 | Miller; William J. | Method and apparatus for signal transmission and reception |
JP3196681B2 (en) * | 1997-03-13 | 2001-08-06 | ヤマハ株式会社 | Communication data temporary storage device |
EP0940994B1 (en) * | 1998-03-06 | 2014-04-16 | Canon Kabushiki Kaisha | Image processing apparatus and method and storage medium storing steps realizing such method |
JP2000115794A (en) * | 1998-09-30 | 2000-04-21 | Toshiba Corp | Flicker prevention device, image display system, and recoding medium recording program and read by computer |
US7158681B2 (en) * | 1998-10-01 | 2007-01-02 | Cirrus Logic, Inc. | Feedback scheme for video compression system |
US6470048B1 (en) * | 1999-07-12 | 2002-10-22 | Pixelon.Com, Inc. | Frequency-based video data substitution for increased video compression ratios |
US7366020B2 (en) * | 1999-07-28 | 2008-04-29 | Samsung Electronics Co., Ltd. | Flash memory device capable of preventing an overerase of flash memory cells and erase method thereof |
US6914827B2 (en) * | 1999-07-28 | 2005-07-05 | Samsung Electronics Co., Ltd. | Flash memory device capable of preventing an over-erase of flash memory cells and erase method thereof |
US7170941B2 (en) * | 1999-08-13 | 2007-01-30 | Patapsco Designs Inc. | Temporal compression |
US6584228B1 (en) * | 2000-04-28 | 2003-06-24 | Avxing International Ltd. Cayman | Image coding embedded in matrix operation |
US7218784B1 (en) * | 2000-05-01 | 2007-05-15 | Xerox Corporation | Method and apparatus for controlling image quality and compression ratios |
US6775420B2 (en) * | 2000-06-12 | 2004-08-10 | Sharp Laboratories Of America, Inc. | Methods and systems for improving display resolution using sub-pixel sampling and visual error compensation |
US6807319B2 (en) * | 2000-06-12 | 2004-10-19 | Sharp Laboratories Of America, Inc. | Methods and systems for improving display resolution in achromatic images using sub-pixel sampling and visual error filtering |
US6898323B2 (en) * | 2001-02-15 | 2005-05-24 | Ricoh Company, Ltd. | Memory usage scheme for performing wavelet processing |
US6757429B2 (en) * | 2001-02-21 | 2004-06-29 | Boly Media Communications Inc. | Method of compressing digital images |
US6710819B2 (en) * | 2001-02-22 | 2004-03-23 | Ati Technologies, Inc. | Method and system for improved display filtering |
US20020118301A1 (en) * | 2001-02-27 | 2002-08-29 | Michael Persiantsev | Digital video effects created from spatial frequency banded frames |
US6947486B2 (en) * | 2001-03-23 | 2005-09-20 | Visioprime | Method and system for a highly efficient low bit rate video codec |
US6968396B1 (en) * | 2001-07-26 | 2005-11-22 | Openwave Systems Inc. | Reloading of hypermedia pages by sending only changes |
US6804733B1 (en) * | 2001-12-06 | 2004-10-12 | Emc Corporation | Optimizer improved data compression |
US6731286B2 (en) * | 2001-12-11 | 2004-05-04 | Lecroy Corporation | Data compaction for fast display |
JP3857611B2 (en) * | 2002-05-20 | 2006-12-13 | 富士通株式会社 | Data compression program, data compression method, and data compression apparatus |
GB0218961D0 (en) * | 2002-08-15 | 2002-09-25 | Koninkl Philips Electronics Nv | Transmission method and system |
US6792057B2 (en) | 2002-08-29 | 2004-09-14 | Bae Systems Information And Electronic Systems Integration Inc | Partial band reconstruction of frequency channelized filters |
JP2004153751A (en) * | 2002-11-01 | 2004-05-27 | Ricoh Co Ltd | Image processing apparatus and image processing method |
US7212676B2 (en) | 2002-12-30 | 2007-05-01 | Intel Corporation | Match MSB digital image compression |
KR100547853B1 (en) * | 2003-07-28 | 2006-01-31 | 삼성전자주식회사 | Discrete wavelet transform apparatus and method for adaptively encoding still images based on energy of each block |
KR20050075578A (en) * | 2004-01-16 | 2005-07-21 | 삼성전자주식회사 | Scalable video encoding method supporting closed-loop optimization and apparatus thereof |
US7471843B2 (en) * | 2004-02-04 | 2008-12-30 | Sharp Laboratories Of America, Inc. | System for improving an image displayed on a display |
US7580579B2 (en) * | 2004-12-20 | 2009-08-25 | Hewlett-Packard Development Company, L.P. | Image-adaptive quantization for JPEG compression |
US7684632B2 (en) * | 2005-05-16 | 2010-03-23 | Hewlett-Packard Development Company, L.P. | Estimating image compression quantization parameter values |
GB2429593A (en) | 2005-08-26 | 2007-02-28 | Electrosonic Ltd | Data compressing using a wavelet compression scheme |
SG135081A1 (en) * | 2006-03-03 | 2007-09-28 | Matrixview Ltd | Streaming repetition coded compression |
GB0905317D0 (en) * | 2008-07-14 | 2009-05-13 | Musion Ip Ltd | Video processing and telepresence system and method |
TWI377511B (en) * | 2008-12-05 | 2012-11-21 | Ind Tech Res Inst | Flame detecting method and system |
US8811756B2 (en) | 2011-07-11 | 2014-08-19 | International Business Machines Corporation | Image compression |
KR20160019104A (en) * | 2013-08-12 | 2016-02-18 | 인텔 코포레이션 | Techniques for low power video compression and transmission |
US9992252B2 (en) | 2015-09-29 | 2018-06-05 | Rgb Systems, Inc. | Method and apparatus for adaptively compressing streaming video |
US10503158B2 (en) | 2016-12-14 | 2019-12-10 | General Electric Company | System and method for reconstructing and augmenting high frequency data |
US10732902B1 (en) | 2018-09-26 | 2020-08-04 | Amazon Technologies, Inc. | Using feedback for adaptive data compression |
US10979737B1 (en) | 2019-01-30 | 2021-04-13 | Vulcan Inc. | Key and difference block video compression |
US11470355B1 (en) | 2019-01-30 | 2022-10-11 | Vulcan Inc. | Quality control engine for video compression |
US10939138B1 (en) | 2019-01-30 | 2021-03-02 | Vulcan Inc. | Quality control engine for video decompression |
US11134276B1 (en) | 2019-01-30 | 2021-09-28 | Vulcan Inc. | Key and difference block video decompression |
US20230421173A1 (en) * | 2022-06-27 | 2023-12-28 | Ati Technologies Ulc | Huffman Packing for Delta Compression |
US11966597B1 (en) | 2022-09-29 | 2024-04-23 | Amazon Technologies, Inc. | Multi-domain configurable data compressor/de-compressor |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54114920A (en) * | 1978-02-28 | 1979-09-07 | Kokusai Denshin Denwa Co Ltd | Television signal adaptive forecasting encoding system |
US4302775A (en) | 1978-12-15 | 1981-11-24 | Compression Labs, Inc. | Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback |
US4394774A (en) | 1978-12-15 | 1983-07-19 | Compression Labs, Inc. | Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback |
JPS5836090A (en) | 1981-08-27 | 1983-03-02 | Kokusai Denshin Denwa Co Ltd <Kdd> | Estimating and encoding system for median of television signal |
US4532651A (en) * | 1982-09-30 | 1985-07-30 | International Business Machines Corporation | Data filter and compression apparatus and method |
US4546385A (en) * | 1983-06-30 | 1985-10-08 | International Business Machines Corporation | Data compression method for graphics images |
FR2554995B1 (en) | 1983-11-15 | 1989-05-05 | Thomson Cgr | METHOD FOR COMPRESSING A SUCCESSION OF DIGITAL INFORMATION AND DEVICE USING THE SAME |
JPS62193383A (en) | 1986-02-20 | 1987-08-25 | Kokusai Denshin Denwa Co Ltd <Kdd> | Moving image signal transmitting system |
US4698689A (en) * | 1986-03-28 | 1987-10-06 | Gte Laboratories Incorporated | Progressive image transmission |
US4704628A (en) | 1986-07-16 | 1987-11-03 | Compression Labs, Inc. | Combined intraframe and interframe transform coding system |
GB8710737D0 (en) | 1987-05-06 | 1987-06-10 | British Telecomm | Video image encoding |
WO1990016130A1 (en) | 1989-06-19 | 1990-12-27 | Fujitsu Limited | Dynamic image encoder and dynamic image decoder |
US5046119A (en) | 1990-03-16 | 1991-09-03 | Apple Computer, Inc. | Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode |
US5091782A (en) | 1990-04-09 | 1992-02-25 | General Instrument Corporation | Apparatus and method for adaptively compressing successive blocks of digital video |
FR2663178B1 (en) | 1990-06-06 | 1995-07-21 | Thomson Csf | METHOD FOR HIERARCHICAL ESTIMATION OF MOTION IN A SEQUENCE OF IMAGES. |
US5177796A (en) | 1990-10-19 | 1993-01-05 | International Business Machines Corporation | Image data processing of correlated images |
DE69226095T2 (en) * | 1991-01-17 | 1999-03-11 | Sharp K.K., Osaka | Image coding and decoding system using an orthogonal transformation and bit allocation method |
CA2062200A1 (en) | 1991-03-15 | 1992-09-16 | Stephen C. Purcell | Decompression processor for video applications |
JP2924430B2 (en) | 1991-04-12 | 1999-07-26 | 三菱電機株式会社 | Motion compensated predictive coding apparatus and motion compensated predictive decoding apparatus |
US5146325A (en) | 1991-04-29 | 1992-09-08 | Rca Thomson Licensing Corporation | Video signal decompression apparatus for independently compressed even and odd field data |
US5185819A (en) | 1991-04-29 | 1993-02-09 | General Electric Company | Video signal compression apparatus for independently compressing odd and even fields |
US5212742A (en) * | 1991-05-24 | 1993-05-18 | Apple Computer, Inc. | Method and apparatus for encoding/decoding image data |
AU657510B2 (en) * | 1991-05-24 | 1995-03-16 | Apple Inc. | Improved image encoding/decoding method and apparatus |
JPH0595540A (en) | 1991-09-30 | 1993-04-16 | Sony Corp | Dynamic picture encoder |
JP2991833B2 (en) | 1991-10-11 | 1999-12-20 | 松下電器産業株式会社 | Interlace scanning digital video signal encoding apparatus and method |
JP2830883B2 (en) | 1991-10-31 | 1998-12-02 | 日本ビクター株式会社 | Video encoding device and decoding device therefor |
JPH05137131A (en) | 1991-11-13 | 1993-06-01 | Sony Corp | Inter-frame motion predicting method |
JP3161614B2 (en) | 1991-11-30 | 2001-04-25 | ソニー株式会社 | Video decoding device |
US5875108A (en) * | 1991-12-23 | 1999-02-23 | Hoffberg; Steven M. | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US5901246A (en) * | 1995-06-06 | 1999-05-04 | Hoffberg; Steven M. | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
JP3068304B2 (en) | 1992-01-21 | 2000-07-24 | 日本電気株式会社 | Video coding and decoding systems |
US5408542A (en) | 1992-05-12 | 1995-04-18 | Apple Computer, Inc. | Method and apparatus for real-time lossless compression and decompression of image data |
JP3443867B2 (en) | 1992-06-26 | 2003-09-08 | ソニー株式会社 | Image signal encoding / decoding method and image signal recording medium |
US5440345A (en) * | 1992-07-17 | 1995-08-08 | Kabushiki Kaisha Toshiba | High efficient encoding/decoding system |
AU5802694A (en) | 1992-12-15 | 1994-07-04 | Viacom International | Method for reducing noise in digital video information |
US5467134A (en) | 1992-12-22 | 1995-11-14 | Microsoft Corporation | Method and system for compressing video data |
JP3163830B2 (en) | 1993-03-29 | 2001-05-08 | ソニー株式会社 | Image signal transmission method and apparatus |
US5497338A (en) | 1993-04-09 | 1996-03-05 | Sharp Kabushiki Kaisha | Motion vector detecting circuit |
US5815646A (en) | 1993-04-13 | 1998-09-29 | C-Cube Microsystems | Decompression processor for video applications |
US5432870A (en) | 1993-06-30 | 1995-07-11 | Ricoh Corporation | Method and apparatus for compressing and decompressing images of documents |
NL9301358A (en) | 1993-08-04 | 1995-03-01 | Nederland Ptt | Transcoder. |
KR0127329B1 (en) | 1993-08-14 | 1997-12-29 | 구자홍 | Buffer control apparatus for intraframe using tct |
US5509089A (en) | 1993-09-09 | 1996-04-16 | Intel Corporation | Method and system for encoding images using temporal filtering |
US5493514A (en) * | 1993-11-24 | 1996-02-20 | Intel Corporation | Process, apparatus, and system for encoding and decoding video signals |
KR970003799B1 (en) | 1993-12-29 | 1997-03-21 | 양승택 | Image signal transferring device |
US5592226A (en) * | 1994-01-26 | 1997-01-07 | Btg Usa Inc. | Method and apparatus for video data compression using temporally adaptive motion interpolation |
US5553160A (en) | 1994-09-01 | 1996-09-03 | Intel Corporation | Method and apparatus for dynamically selecting an image compression process based on image size and color resolution |
US5748786A (en) * | 1994-09-21 | 1998-05-05 | Ricoh Company, Ltd. | Apparatus for compression using reversible embedded wavelets |
US5881176A (en) * | 1994-09-21 | 1999-03-09 | Ricoh Corporation | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser |
US5867602A (en) * | 1994-09-21 | 1999-02-02 | Ricoh Corporation | Reversible wavelet transform and embedded codestream manipulation |
US5966465A (en) * | 1994-09-21 | 1999-10-12 | Ricoh Corporation | Compression/decompression using reversible embedded wavelets |
US5870502A (en) * | 1996-04-08 | 1999-02-09 | The Trustees Of Columbia University In The City Of New York | System and method for a multiresolution transform of digital image information |
JP3844844B2 (en) * | 1997-06-06 | 2006-11-15 | 富士通株式会社 | Moving picture coding apparatus and moving picture coding method |
US6125201A (en) * | 1997-06-25 | 2000-09-26 | Andrew Michael Zador | Method, apparatus and system for compressing data |
-
2000
- 2000-09-01 US US09/653,967 patent/US6310974B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/654,321 patent/US6310975B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/653,902 patent/US6310976B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/653,752 patent/US6314207B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/653,905 patent/US6310973B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/653,903 patent/US6307971B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/653,962 patent/US6310977B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/654,220 patent/US6347155B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/654,221 patent/US6310979B1/en not_active Expired - Lifetime
- 2000-09-01 US US09/653,968 patent/US6310978B1/en not_active Expired - Lifetime
-
2001
- 2001-11-08 US US10/035,492 patent/US20020061066A1/en not_active Abandoned
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040047511A1 (en) * | 2002-07-09 | 2004-03-11 | Aware, Inc. | Iterative compression parameter control technique for images |
US9538193B2 (en) | 2003-06-05 | 2017-01-03 | Aware, Inc. | Image quality control techniques |
US8483497B2 (en) | 2003-06-05 | 2013-07-09 | Aware, Inc. | Image quality control techniques |
US8655090B2 (en) | 2003-06-05 | 2014-02-18 | Aware, Inc. | Image quality control techniques |
US9076190B2 (en) | 2003-06-05 | 2015-07-07 | Aware, Inc. | Image quality control techniques |
US9392290B2 (en) | 2003-06-05 | 2016-07-12 | Aware, Inc. | Image quality control techniques |
AU2004260051B2 (en) * | 2003-07-14 | 2009-03-26 | Halliburton Energy Services, Inc. | Method and apparatus for mud pulse telemetry |
AU2004260051C1 (en) * | 2003-07-14 | 2009-08-13 | Halliburton Energy Services, Inc. | Method and apparatus for mud pulse telemetry |
NO337594B1 (en) * | 2003-07-14 | 2016-05-09 | Halliburton Energy Services Inc | Method and apparatus for sludge pulse telemetry |
US20050157783A1 (en) * | 2004-01-15 | 2005-07-21 | Sony Corporation | Adaptive bandwidth allocation method and system for AV signal distribution |
US9852523B2 (en) * | 2016-02-24 | 2017-12-26 | Ondrej Jamri{hacek over (s)}ka | Appearance transfer techniques maintaining temporal coherence |
US9870638B2 (en) | 2016-02-24 | 2018-01-16 | Ondrej Jamri{hacek over (s)}ka | Appearance transfer techniques |
US11921674B2 (en) * | 2017-03-31 | 2024-03-05 | Beijing Zitiao Network Technology Co., Ltd. | Data compression by using cognitive created dictionaries |
US10566997B2 (en) * | 2017-12-05 | 2020-02-18 | Electronics And Telecommunications Research Institute | Apparatus and method for data compression and decompression based on calculation of error vector magnitude |
Also Published As
Publication number | Publication date |
---|---|
US6347155B1 (en) | 2002-02-12 |
US6310973B1 (en) | 2001-10-30 |
US6310976B1 (en) | 2001-10-30 |
US6310975B1 (en) | 2001-10-30 |
US6310977B1 (en) | 2001-10-30 |
US6310979B1 (en) | 2001-10-30 |
US6310974B1 (en) | 2001-10-30 |
US6314207B1 (en) | 2001-11-06 |
US6310978B1 (en) | 2001-10-30 |
US6307971B1 (en) | 2001-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6310975B1 (en) | Method and apparatus for digital data compression | |
US7158681B2 (en) | Feedback scheme for video compression system | |
Aravind et al. | Image and video coding standards | |
US4663660A (en) | Compressed quantized image-data transmission technique suitable for use in teleconferencing | |
EP0517834B1 (en) | Image data compression using adaptive block size selection | |
US5107345A (en) | Adaptive block size image compression method and system | |
KR100880039B1 (en) | Method and system for achieving coding gains in wavelet-based image codecs | |
US5740278A (en) | Facsimile-based video compression method and system | |
EP1113672A2 (en) | Quantization matrix for still and moving picture coding | |
AU2186692A (en) | Adaptive block size image compression method and system | |
US6865229B1 (en) | Method and apparatus for reducing the “blocky picture” effect in MPEG decoded images | |
JPH01200883A (en) | Decoder | |
US20020001416A1 (en) | Image processing circuit and method for modifying a pixel value | |
GB2488094A (en) | Image compression using sum and difference pixel replacement and lowest bit discarding | |
Rabbani et al. | An optimized image data compression technique utilized in the Kodak SV9600 still video transceiver | |
KR20020078523A (en) | Method of image compression and device for the same | |
JP3205370B2 (en) | Color image signal encoding device and decoding device | |
KR100556857B1 (en) | A method of improvement video coding with partial enhancement for rse-fgs video streaming | |
Gentile et al. | Visually lossless compression of color images | |
Chiu | Perceptual facsimile-based video compression | |
Sayood et al. | Studies on image compression and image reconstruction | |
Bagal et al. | Vocabulary Speech Recognition System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: CIRRUS LOGIC, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SHAREWAVE, INC.;REEL/FRAME:016871/0768 Effective date: 20051012 |