The described technology relates to video compression, and more specifically, to adaptive video encoding using a perceptual model.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Digital video consumes large amounts of storage and transmission capacity. A typical raw digital video sequence includes 15 or 30 frames per second. Each frame can include tens or hundreds of thousands of pixels (also called pels). Each pixel represents a tiny element of the picture. In raw form, a computer commonly represents a pixel with 24 bits. Thus, the number of bits per second, or bit rate, of a typical raw digital video sequence can be 5 million bits/second or more.
Most computers and computer networks lack the resources to process raw digital video. For this reason, engineers use compression (also called coding or encoding) to reduce the bit rate of digital video. Compression can be lossless, in which quality of the video does not suffer but decreases in bit rate are limited by the complexity of the video. Or, compression can be lossy, in which quality of the video suffers but decreases in bit rate are more dramatic. Decompression reverses compression.
In general, video compression techniques include intraframe compression and interframe compression. Intraframe compression techniques compress individual frames, typically called I-frames or key frames. Interframe compression techniques compress frames with reference to preceding and/or following frames, and the compressed frame are typically called predicted frames, P-frames, or B-frames.
For example, Microsoft Corporation's Windows Media Video, Version 8 [“WMV8”] includes a video encoder and a video decoder. The WMV8 encoder uses intraframe and interframe compression, and the WMV8 decoder uses intraframe and interframe decompression.
Intraframe Compression in WMV8
The encoder then quantizes 120 the DCT coefficients, resulting in an 8×8 block of quantized DCT coefficients 125. For example, the encoder applies a uniform, scalar quantization step size to each coefficient. Quantization is lossy. Since low frequency DCT coefficients tend to have higher values, quantization results in loss of precision but not complete loss of the information for the coefficients. On the other hand, since high frequency DCT coefficients tend to have values of zero or close to zero, quantization of the high frequency coefficients typically results in contiguous regions of zero values. In addition, in some cases high frequency DCT coefficients are quantized more coarsely than low frequency DCT coefficients, resulting in greater loss of precision/information for the high frequency DCT coefficients.
The encoder then prepares the 8×8 block of quantized DCT coefficients 125 for entropy encoding, which is a form of lossless compression. The exact type of entropy encoding can vary depending on whether a coefficient is a DC coefficient (lowest frequency), an AC coefficient (other frequencies) in the top row or left column, or another AC coefficient.
The encoder encodes the DC coefficient 126 as a differential from the DC coefficient 136 of a neighboring 8×8 block, which is a previously encoded neighbor (e.g., top or left) of the block being encoded. (
The entropy encoder can encode the left column or top row of AC coefficients as a differential from a corresponding column or row of the neighboring 8×8 block.
The encoder scans 150 the 8×8 block 145 of predicted, quantized AC DCT coefficients into a one-dimensional array 155 and then entropy encodes the scanned AC coefficients using a variation of run length coding 160. The encoder selects an entropy code from one or more run/level/last tables 165 and outputs the entropy code.
Interframe Compression in WMV8
Interframe compression in the WMV8 encoder uses block-based motion compensated prediction coding followed by transform coding of the residual error.
For example, the WMV8 encoder splits a predicted frame into 8×8 blocks of pixels. Groups of four 8×8 blocks form macroblocks. For each macroblock, a motion estimation process is performed. The motion estimation approximates the motion of the macroblock of pixels relative to a reference frame, for example, a previously coded, preceding frame. In
The encoder then prepares the 8×8 block 355 of quantized DCT coefficients for entropy encoding. The encoder scans 360 the 8×8 block 355 into a one-dimensional array 365 with 64 elements, such that coefficients are generally ordered from lowest frequency to highest frequency, which typically creates long runs of zero values.
The encoder entropy encodes the scanned coefficients using a variation of run length coding 370. The encoder selects an entropy code from one or more run/level/last tables 375 and outputs the entropy code.
In summary of
The amount of change between the original and reconstructed frame is termed the distortion and the number of bits required to code the frame is termed the rate for the frame. The amount of distortion is roughly inversely proportional to the rate. In other words, coding a frame with fewer bits (greater compression) will result in greater distortion, and vice versa.
Standards for Video Compression and Decompression
Aside from WMV8, several other versions of Windows Media Video use video compression and decompression, including Windows Media Video 9. Aside from these, several international standards relate to video compression and decompression. These standards include the Motion Picture Experts Group [“MPEG”] 1, 2, and 4 standards and the H.261, H.262, H.263, and H.264 standards from the International Telecommunication Union [“ITU”]. Like WMV8, encoders according to these products and standards use a combination of intraframe and interframe compression.
Differential Quantization
In general, differential quantization is a technique in which the amount of quantization applied to various macroblocks or blocks within a single video frame can vary. Differential quantization has been adopted or used in various standards. One benefit of differential quantization is to control bit rate at finer resolution to meet hardware requirements. One common problem that occurs when it is used, however, is that the visual quality is compromised, especially when it is used in low bit rate encoding. For example, signaling quantization parameters individually per each block in a frame of video can consume a significant proportion of bits in the compressed bitstream, especially at low bit rates, which bits could otherwise be used to encode better quality video in other ways.
U.S. Patent Application Publication No. 20050013500 describes various differential quantization techniques.
Adaptive Quantization
U.S. Patent Application Publication No. 20050036699 describes various adaptive quantization techniques. With adaptive multiple quantization, a video or other digital media codec can adaptively select among multiple quantizers to apply to transform coefficients based on content or bit rate constraints, so as to improve quality through rate-distortion optimization. The switch in quantizers can be signaled at the sequence level or frame level of the bitstream syntax, or can be implicitly specified in the syntax.
Rate Control
U.S. Patent Application Publication No. 20020186890 describes various rate and quality control techniques in which median filtering is adjusted. Based upon the buffer level, a video encoder changes the median filter kernel applied to video information. If the buffer starts to get too full, the video encoder increases the size of the kernel, which tends to smooth the video information, introduce slight blurriness, and deplete the buffer.
Given the critical importance of video compression and decompression to digital video, it is not surprising that video compression and decompression are richly developed fields. Whatever the benefits of previous video compression and decompression techniques, however, they do not have the advantages of the following techniques and tools.
The described technologies provide methods and systems for adaptive video encoding using a perceptual model. The following summary describes a few of the features described in the detailed description, but is not intended to summarize the technology.
In one example, for each of plural blocks of video data, a computer method classifies blocks of video data according to content of the blocks, and adaptively encodes the blocks based at least in part upon the block classification. In one such example, and depending at least in part on the block classification, adaptive encoding includes either adaptive median filtering, selectively dropping a last non-zero transform coefficient, adaptively re-sizing the dead zone, or adjusting a quantization step size.
In another example, blocks of video data are classified based in part on a block gradient which is determined by plural pixel gradients. In one example, a block classification such as smooth, texture, or edge is based at least in part on a block value. In one such example, a block value is determined based on an average of pixel gradients, in another example, the block value is determined based on a median of pixel gradients.
In certain examples, a pixel gradient can be quantified as a sum of differences, where the sum of differences is determined based upon both luminance and or chrominance samples. In one such example, luminance samples are downsampled for the block before the sum of differences is determined.
In certain examples, adaptive median filtering is performed on a motion compensation prediction residual and includes changing filter dimensions depending on the block classification.
In another example, selective dropping of a last non-zero coefficient further depends at least in part on a number of consecutive zero coefficients preceding the last non-zero coefficient in a zig-zag scan. In other examples, a quantization step size adjustment includes applying differential quantization depending at least in part on the block classification.
An example video encoder includes a region detector module for classifying blocks of video frames, an adaptive filter module for median filtering motion compensation error data based upon block classifications, and an adaptive quantization module for differentially quantizing the motion compensation error data based upon the block classifications.
In another example, a video encoder includes an adaptive quantization module that selectively drops isolated last non-zero transform coefficients based on the block classifications, and/or changes quantization dead-zones based on the block classifications.
Additional features and advantages will be made apparent from the following detailed description, which proceeds with reference to the accompanying drawings.
For purposes of illustration, the various aspects of the innovations described herein are incorporated into or used by embodiments of a video encoder and decoder (together, “codec”) illustrated in
With reference to
A computing environment may have additional features. For example, the computing environment 500 includes storage 540, one or more input devices 550, one or more output devices 560, and one or more communication connections 570. An interconnection mechanism (not shown) such as a bus, controller, or network interconnects the components of the computing environment 500. Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment 500, and coordinates activities of the components of the computing environment 500.
The storage 540 may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or any other medium which can be used to store information and which can be accessed within the computing environment 500. The storage 540 stores instructions for the software 580 implementing the video encoder or decoder.
The input device(s) 550 may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing environment 500. For audio or video encoding, the input device(s) 550 may be a sound card, video card, TV tuner card, or similar device that accepts audio or video input in analog or digital form, or a CD-ROM or CD-RW that reads audio or video samples into the computing environment 500. The output device(s) 560 may be a display, printer, speaker, CD-writer, or another device that provides output from the computing environment 500.
The communication connection(s) 570 enable communication over a communication medium to another computing entity. The communication medium conveys information such as computer-executable instructions, audio or video input or output, or other data in a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired or wireless techniques implemented with an electrical, optical, RF, infrared, acoustic, or other carrier.
The techniques and tools can be described in the general context of computer-readable media. Computer-readable media are any available media that can be accessed within a computing environment. By way of example, and not limitation, with the computing environment 500, computer-readable media include memory 520, storage 540, communication media, and combinations of any of the above.
The techniques and tools can be described in the general context of computer-executable instructions, such as those included in program modules, being executed in a computing environment on a target real or virtual processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Computer-executable instructions for program modules may be executed within a local or distributed computing environment.
For the sake of presentation, the detailed description uses terms like “indicate,” “choose,” “obtain,” and “apply” to describe computer operations in a computing environment. These terms are high-level abstractions for operations performed by a computer, and should not be confused with acts performed by a human being. The actual computer operations corresponding to these terms vary depending on implementation.
The relationships shown between modules within the encoder and decoder indicate the main flow of information in the encoder and decoder; other relationships are not shown for the sake of simplicity. In particular, unless indicated otherwise,
The encoder 600 and decoder 700 are block-based and use a 4:2:0 macroblock format. Each macroblock includes four 8×8 luminance blocks (at times treated as one 16×16 macroblock) and two 8×8 chrominance blocks. The encoder 600 and decoder 700 also can use a 4:1:1 macroblock format with each macroblock including four 8×8 luminance blocks and four 4×8 chrominance blocks.
Depending on implementation and the type of compression desired, modules of the encoder or decoder can be added, omitted, split into multiple modules, combined with other modules, and/or replaced with like modules. In alternative embodiments, encoder or decoders with different modules and/or other configurations of modules perform one or more of the described techniques.
The encoder system 600 compresses predicted frames and key frames. For the sake of presentation,
A current frame 605 is evaluated by a region detector 606 in order to detect or classify regions of the frame according to content in those regions. For example, the region detector 606 may characterize macroblocks, blocks, or other sets of pixels of the current frame 605 as smooth, texture, or edge regions depending on their content. These characterizations are used to adapt how the regions are encoded. For example, macroblocks or blocks are evaluated to determine whether they are perceptually (1) smooth, (2) textured, or (3) represent edge or transition regions. Alternatively, the region detector 606 used other and/or additional characterizations according to the same perceptual criteria or different perceptual criteria. Moreover, although
A predicted frame (also called P-frame, B-frame, or inter-coded frame) is represented in terms of prediction (or difference) from one or more reference (or anchor) frames. A prediction residual is the difference between what was predicted and the original frame. In contrast, a key frame (also called I-frame, intra-coded frame) is compressed without reference to other frames.
If the current frame 605 is a forward-predicted frame, a motion estimator 610 estimates motion of macroblocks or other sets of pixels of the current frame 605 with respect to a reference frame, which is the reconstructed previous frame 625 buffered in a frame store (e.g., frame store 620). If the current frame 605 is a bi-directionally-predicted frame (a B-frame), a motion estimator 610 estimates motion in the current frame 605 with respect to two reconstructed reference frames. Typically, a motion estimator estimates motion in a B-frame with respect to a temporally previous reference frame and a temporally future reference frame. Accordingly, the encoder system 600 can comprise separate stores 620 and 622 for backward and forward reference frames. Various techniques are known for providing motion estimation.
The motion estimator 610 can estimate motion by pixel, ½ pixel, ¼ pixel, or other increments, and can switch the resolution of the motion estimation on a frame-by-frame basis or other basis. The resolution of the motion estimation can be the same or different horizontally and vertically. The motion estimator 610 outputs as side information motion information 615 such as motion vectors. A motion compensator 630 applies the motion information 615 to the reconstructed frame(s) 625 to form a motion-compensated current frame 635. The prediction is rarely perfect, however, and the difference between the motion-compensated current frame 635 and the original current frame 605 is the prediction residual 645.
In
A frequency transformer 660 converts the spatial domain video information into frequency domain (i.e., spectral) data. For block-based video frames, the frequency transformer 660 applies a discrete cosine transform [“DCT”] or variant of DCT to blocks of the pixel data or prediction residual data, producing blocks of DCT coefficients. Alternatively, the frequency transformer 660 applies another conventional frequency transform such as a Fourier transform or uses wavelet or subband analysis. In some embodiments, the frequency transformer 660 applies an 8×8, 8×4, 4×8, or other size frequency transforms (e.g., DCT) to prediction residuals for predicted frames.
A quantizer 670 then quantizes the blocks of spectral data coefficients. Optionally, the quantizer 670 is an adaptive quantizer that adaptively quantizes blocks based on a block characterization or value information 608 generated by the region detector 606. If an adaptive quantizer is utilized, one or more adaptive quantization mechanisms are employed based on the information 608 generated by the region detector 606. In one example, an isolated last non-zero transform coefficient may be dropped (reduced to zero), for example, in texture regions. As another example, an adaptive adjustment of a dead-zone size for quantization is provided during transform coefficient quantization in texture regions. As still another example, a differential quantization metric is provided during transform coefficient quantization, for example, to categorically adjust quantization in smooth vs. non-smooth regions.
When a reconstructed current frame is needed for subsequent motion estimation/compensation, an inverse quantizer 676 performs inverse quantization on the quantized spectral data coefficients. An inverse frequency transformer 666 then performs the inverse of the operations of the frequency transformer 660, producing a reconstructed prediction residual (for a predicted frame) or a reconstructed key frame.
If the current frame 605 was a key frame, the reconstructed key frame is taken as the reconstructed current frame (not shown). If the current frame 605 was a predicted frame, the reconstructed prediction residual is added to the motion-compensated current frame 635 to form the reconstructed current frame. If desirable, a frame store (e.g., frame store 620) buffers the reconstructed current frame for use in predicting another frame. In some embodiments, the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the blocks of the frame.
The entropy coder 680 compresses the output of the quantizer 670 as well as certain side information (e.g., motion information 615 and/or quantization step sizes). Typical entropy coding techniques include arithmetic coding, differential coding, Huffman coding, run length coding, LZ coding, dictionary coding, and combinations of the above. The entropy coder 680 typically uses different coding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, different kinds of side information), and can choose from among multiple code tables within a particular coding technique.
The entropy coder 680 puts compressed video information 695 in the buffer 690. A buffer level indicator is fed back to bit rate adaptive modules.
The compressed video information 695 is depleted from the buffer 690 at a constant or relatively constant bit rate and stored for subsequent streaming at that bit rate. Therefore, the level of the buffer 690 is primarily a function of the entropy of the filtered, quantized video information, which affects the efficiency of the entropy coding. Alternatively, the encoder system 600 streams compressed video information immediately following compression, and the level of the buffer 690 also depends on the rate at which information is depleted from the buffer 690 for transmission.
Before or after the buffer 690, the compressed video information 695 can be channel coded for transmission over the network. The channel coding can apply error detection and correction data to the compressed video information 695.
The decoder system 700 decompresses predicted frames and key frames. For the sake of presentation,
A buffer 790 receives the information 795 for the compressed video sequence and makes the received information available to the entropy decoder 780. The buffer 790 typically receives the information at a rate that is fairly constant over time, and includes a jitter buffer to smooth short-term variations in bandwidth or transmission. The buffer 790 can include a playback buffer and other buffers as well. Alternatively, the buffer 790 receives information at a varying rate. Before or after the buffer 790, the compressed video information can be channel decoded and processed for error detection and correction.
The entropy decoder 780 entropy decodes entropy-coded quantized data as well as entropy-coded side information (e.g., motion information 715 and/or quantization step sizes), typically applying the inverse of the entropy encoding performed in the encoder. Entropy decoding techniques include arithmetic decoding, differential decoding, Huffman decoding, run length decoding, LZ decoding, dictionary decoding, and combinations of the above. The entropy decoder 780 frequently uses different decoding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, different kinds of side information), and can choose from among multiple code tables within a particular decoding technique.
A motion compensator 730 applies motion information 715 to one or more reference frames 725 to form a prediction 735 of the frame 705 being reconstructed. For example, the motion compensator 730 uses a macroblock motion vector to find a macroblock in a reference frame 725. A frame buffer (e.g., frame buffer 720) stores previously reconstructed frames for use as reference frames. Typically, B-frames have more than one reference frame (e.g., a temporally previous reference frame and a temporally future reference frame). Accordingly, the decoder system 700 can comprise separate frame buffers 720 and 722 for backward and forward reference frames.
The motion compensator 730 can compensate for motion at pixel, ½ pixel, ¼ pixel, or other increments, and can switch the resolution of the motion compensation on a frame-by-frame basis or other basis. The resolution of the motion compensation can be the same or different horizontally and vertically. Alternatively, a motion compensator applies another type of motion compensation. The prediction by the motion compensator is rarely perfect, so the decoder 700 also reconstructs prediction residuals.
When the decoder needs a reconstructed frame for subsequent motion compensation, a frame buffer (e.g., frame buffer 720) buffers the reconstructed frame for use in predicting another frame. In some embodiments, the decoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the blocks of the frame.
An inverse quantizer 770 inverse quantizes entropy-decoded data. In general, the inverse quantizer applies uniform, scalar inverse quantization to the entropy-decoded data with a step-size that varies on a frame-by-frame basis or other basis, where the quantization step size information is signaled in the bitstream.
An inverse frequency transformer 760 converts the quantized, frequency domain data into spatial domain video information. For block-based video frames, the inverse frequency transformer 760 applies an inverse DCT [“IDCT”] or variant of IDCT to blocks of the DCT coefficients, producing pixel data or prediction residual data for key frames or predicted frames, respectively. Alternatively, the frequency transformer 760 applies another conventional inverse frequency transform such as a Fourier transform or uses wavelet or subband synthesis. In some embodiments, the inverse frequency transformer 760 applies an 8×8, 8×4, 4×8, or other size inverse frequency transforms (e.g., IDCT) to prediction residuals for predicted frames.
Perceptual importance of a local region within a video frame changes spatially due to variance of detail complexity over the frame. Human eyes are more sensitive to distortions in smooth regions and edge regions (e.g., object boundaries) in video frames than to distortions in texture regions. Existing video codecs fail to adequately exploit this aspect of the human perception. Using the described techniques, smooth regions and edge regions can be coded at higher quality for a given bit rate by allocating more bits (introducing less distortion) to the smooth regions and edge regions and allocating fewer bits (reducing quality, introducing more distortion) to texture regions. One goal is to improve the overall perceptual quality of the coded video at the same bit rate compared to the previous codec. Various video codec features are described that adaptively allocate bits across blocks or macroblocks of a video frame according to their perceptual characterization, thereby allocating bits differentially buy providing more uniform perceptual quality of the coded video. Often, it is desirable to improve the perceived quality at the same bitrate compared with existing codecs. At other times, it is desirable to maintain a present quality at a reduced bitrate. Various aspects of these features are encoder improvements that may not require any change in the bitstream. The provided features are applicable to both the current encoder profiles (VC-1 and Microsoft Research video encoders) as well as previous profiles (WMV Advanced, WMV3, etc.).
Various features are discussed that may be used in adaptive encoding that employs a perceptual model for video codec. Such features are generally described as (1) detection of different regions (e.g., smooth, edge, texture, etc.), (2) adaptive median filtering, (3) adaptive isolated transform coefficient dropping, (4) adaptive dead zone sizing during quantization, and (5) adaptive differential quantization.
Methods and systems are described for detecting or characterizing different regions of a video frame. Using this characterization information, the video encoding is adapted. For example, more bits are spent on smooth regions and edge regions, while fewer bits are spent on texture regions. These distinctions allow controlling perceivable distortion—when distortion must be introduced to lower bit rate, more distortion is added where it is less easily perceived and less distortion is added where it is more easily perceived.
Improved features include fast detection of different region types using a gradient comparison. For example, variations between adjacent pixels in a block are determined by comparing luminance and/or chrominance sample values. Determined differences between adjacent pixels are used to determine the extent of intensity variance within a block, macroblock, or other video frame region (hereafter “block”). Various metrics can be used to determine the intensity variance between pixel data within a block in order to determine how a human would perceive the block, for example, as smooth or textured.
A median intensity variance can be computed for a block in order to characterize the block. For example, a histogram can be used to determine a median variance for a block. Characterized blocks can be labeled, for example, as smooth, edge, or texture. Alternatively, other and/or additional labels are used. A median variance can also be used as input to a more precise function, with or without requiring labels, where the more precise function provides finer grained control encoding adaptation based on a determined block median.
One or more of the encoding variations are provided based on block characterization. The variations may be used together or separately, and they may be used in combination with other and/or additional encoding variations. In a first variation, an adaptive median filtering is provided based on block characterization. For example, increased median filtering is provided for texture regions. In a second variation, an isolated last non-zero transform coefficient may be dropped, for example, in texture regions. In a third variation, an adaptive adjustment of a dead zone is provided during transform coefficient quantization if desirable in texture regions. In a fourth variation, a differential quantization metric is applied during transform coefficient quantization, for example, depending on whether a region is smooth or non-smooth.
Optionally, values or distinctions used to characterize blocks or to alter various aspects of adaptive encoding may depend on one or more user settings. For example, a user selects an encoding scenario, wizard profile, or other high-level description of an encoding path, and values associated with the scenario/profile/description are set for one or more of the region detection, adaptive median filtering, coefficient dropping conditions, dead zone variance, or adaptive differential quantization. Or, the value for one or more of these options is directly set by a user through a user interface. Alternatively, one or more of these options has a value set when an encoder is installed in a computer system or device, depending on the system/device profile. In another example, one or more of these options is set adaptively by the encoder based on how much computational power is available.
Various aspects of these features are described throughout this disclosure. However, neither the titles of the features, nor the placement within paragraphs of the description of various aspects of features, are meant to limit how various aspects are used or combined with aspects of other features. After reading this disclosure, one of ordinary skill in the art will appreciate that the description proceeds with titles and examples in order to instruct the reader, and that once the concepts are grasped, aspects of the features are applied in practice with no such pedagogical limitations.
With reference to
At 810, the video encoder 600 characterizes a block based on the determined intensity variance within the block of the video frame. For example, the sum of the differences between a pixel and its adjacent pixels is computed for the pixels in the block. This sum of differences value indicates an extend of intensity variance between a pixel and its surrounding pixels. For example, surrounding pixels comprise two or more other pixels adjacent to or nearly adjacent to a pixel, such as above or below, to the left or right, or diagonal to a pixel. The difference between a pixel's intensity and the intensities of its surrounding pixels is computed based on differences in luminance and/or chrominance data. A computed difference value is assigned to the pixel (e.g., a pixel gradient). A difference value is computed in this way for plural or all pixels in a block (e.g., a block gradient), or for some sub-sampled set thereof. The difference values assigned to pixels in a block are evaluated to determine a characterization for the block (e.g., a block value). In one example, the pixel gradients for pixels in a block are evaluated to determine a median difference value for the block gradient (e.g., a block median). Optionally, the block value is used to classify a block (e.g., smooth, edge, or texture; texture or non-texture; smooth or non-smooth; etc.). Thus, intensity differences between pixels within a block provide a measure of intensity variance for a block, macroblock, or video frame region (generally, “block”).
A block median is not required to determine a block value. An intensity variance or block characterization may also be based on an average value for difference values assigned to pixels in the block (e.g., a block average). The block median or average (e.g., a block value) can be used to classify the block and/or can be used as input to a finer grained control function. The characterization or control function adaptively varies one or more aspects of encoding.
Alternatively, instead of computing an intensity variance to characterize a block, the encoder 600 uses another metric to vary adaptive encoding according to one or more of the adaptive encoding variations described herein.
At 820, the encoder adaptively encodes blocks of the video frame based on the block characterization. One or more encoding features are adapted and provided based on the block characterization. In one implementation, an adaptive median filtering is provided based on block characterization. For example, increased median filtering is provided for texture regions. An isolated last non-zero transform coefficient may be dropped, for example, in texture regions. An adaptive adjustment of a dead zone is provided during transform coefficient quantization if desirable in texture regions. A differential quantization pattern is applied during transform coefficient quantization, for example, in smooth regions vs. non-smooth regions, and the differential quantization information is signaled in an output bit stream. In common encoding scenarios, regions classified as texture are quantized more strongly, which saves bits.
Although
At 830, the encoder signals the adaptively encoded bit stream. When differential quantization is used by the encoder to encode based on block characterization, for example, the video encoder 600 encodes information in the compressed bit stream using a signaling scheme described below for signaling the differential quantization to the video decoder 700.
At 840, a corresponding video decoder 700 reads the adaptively encoded bit stream. For example, the video decoder 700 reads the signaled differential quantization information. At 850, the decoder 700 decodes the compressed bit stream, for example, dequantizing blocks according to signaled differential quantization information.
As shown in the downsampled luminance block 910, a pixel 914 is compared to four pixels near it, and a sum of the difference between the pixel 914 and its surrounding vertical and horizontal pixels is computed. In this example, the pixel 914 is located at position Y′(r, c). Thus an equation provides the sum of the differences for luminance intensity values for this pixel 914 as compared to its surrounding pixels:
L1(r,c)=[|Y′(r,c)−Y′(r,c−1)|+|Y′(r,c)−Y′(r−1,c)|+|Y′(r,c)−Y′(r,c+1)|+|Y′(r,c)−Y(r+1,c)|]/4
As shown, Y′(r, c) is the luminance component of the pixel 914 at row r and column c in the downsampled block Y′. The output of the equation L1 provides an indication of how the pixel 914 differs in luminance intensity from its pixel neighbors within the block Y′. This luminance intensity difference measurement is an example of a pixel gradient.
Optionally, chrominance data 904, 906 may be considered alone instead of luminance data, or may be considered together with luminance data to determine intensity differences for region detection or classification. Thus, an equation for the sum of the differences for luminance intensity values and chrominance intensity values for corresponding pixels 914, 916, 918 in luminance and chrominance blocks for the pixel block can be represented as the average of the differences in intensity values of the surrounding pixels as shown in the following equation:
G1(r,c)={[|Y′(r,c)−Y′(r,c−1)|+|Y′(r,c)−Y′(r−1,c)|+|Y′(r,c)−Y′(r,c+1)|+|Y′(r,c)−Y′(r+1,c)|]+[|U(r,c)−U(r,c−1)|+|U(r,c)−U(r−1,c)|+|U(r,c)−U(r,c+1)|+|U(r,c)−U(r+1,c)|]+[|V(r,c)−V(r,c−1)|+|V(r,c)−V(r−1,c)|+|V(r,c)−V(r,c+1)|+|V(r,c)−V(r+1,c)|]}/12
The output of the equation G1(r, c) is an example of a pixel gradient for the pixel located at (r, c), and the pixel gradient provides an indication of how the pixel 914, 916, 918 differs in luminance and chrominance intensity from its surrounding pixel neighbors. In this example, the pixel gradient value G1(r, c) is based only on pixels that are immediately vertical or horizontal, but does not consider other pixels in the neighborhood. It is contemplated that other pixel data may also be considered in creation of a pixel gradient in other variations of region detection or classification. For example, diagonal pixels could be considered as part of, or instead of the provided arrangement. Or, intensity differences across a longer stretch (e.g., 2 or 3 pixels) could be considered.
Notice also, that the output of the preceding equation provides only an indication of how a single pixel differs from its neighbors in luminance and chrominance intensity. In order to characterize the intensity variance for an entire block, the same analysis is performed on plural or all pixels within the block. In one such example, a block 908 of pixel gradients is created that contains plural pixel gradients, and a block gradient is derived therefrom. A block gradient provides a more complete indication of how pixels within a block differ in intensity from each other. As noted, computing a pixel gradient or a gradient block may include luminance comparisons alone, chrominance comparisons alone, or both luminance and chrominance comparisons together.
If desirable, the above equation G1(r, c) may be varied to account for missing block boundary values. For example, pixels outside the block may be extrapolated or assumed to be the same as other adjacent pixel data within the block when adapting the equation G1(r, c) to account for boundary values. Or, the denominator of the equations may be reduced and surrounding pixels in certain directions ignored in the comparisons, for example, where those surrounding pixels are outside of the block. As shown, a block 908 of pixel gradients may provide pixel gradient data for all pixels in the block. Or, a block 908 of pixel gradients may include pixel gradient data for less than all pixels in the block.
Of course, other metrics may be used to characterize or value blocks once the pixel gradients or blocks of pixel gradients are obtained. For example, blocks may be characterized according to an average of pixel gradient values. Finally, once a block value is assigned it can be used in a characterization scheme (e.g., smooth or non-smooth; smooth, texture, edge; etc.) or in a finer grained control function, in order to determine how the block value is used in an adaptive encoding strategy.
Thus, a block median may be selected by ordering plural pixel gradients and selecting a median gradient value from the ordered values. For example, a sample set of pixel gradients within a block, such as {10, 14, 28, 36, 38}, will have a block value assigned equal to the median pixel gradient in the set, or 28. In another example, a block value is determined based on the average gradient in the set, or 25.2. Of course, the set may be obtained from a complete block gradient, or a subset thereof.
As previously discussed, a block is valued according to some region detection or classification scheme. For example, a region type depends on a gradient index histogram. One or more various encoding mechanisms are adapted using the block characterization or value.
Table 1 provides an adaptive coding scheme using block characterizations as described with reference to
In Table 1, the term QP denotes a quantization size. The various adaptive features are discussed throughout this document and will be further discussed below. Alternatively, an encoder uses another mapping of adaptive feature decisions to block characterizations.
Optionally, an encoder provides a median filter in different sizes or strengths based on different block characterizations. In the encoder 600 of
As known in the art, simple translational motion estimation and compensation involve prediction with a motion vector which indicates how to move a set of pixels or a block. The movement of the set of pixels or block is expressed as a displacement of pixels. The simple displacement of a set of pixels or block often causes a prediction error. Thus, a bit stream often includes an error block for mitigating this prediction error. When motion compensation works, encoding a block of prediction error or residual data requires fewer bits than encoding the same area with intraframe compression, because the prediction error often includes less energy.
Even when motion compensation succeeds for a block, there may be information content in the prediction residual for the block. The information content appears as isolated, “salt and pepper” noise values among areas with zero residual values for motion-compensated prediction has mostly succeeded, or the information content may appear as edges where a new part of an object has been exposed that was not in a reference frame. A median filter tends to smooth residual information (removing isolated noise values) while at the same time preserving useful detail (such as edges) in the residual information. The smoothing adds redundancy, which makes subsequent lossless compression more efficient. To control how much the video information is filtered, the video encoder changes the median filter kernel applied to the residual information based upon the block characterizations.
For example, for a texture region, a strong 5×5 median filter is used to filter the prediction residual. A weak 3×1 median filter is used to filter the prediction residual for a smooth region or an edge region. In the encoder 600 of
Optionally, a user is provided the opportunity to vary the median filter. For example, a user may select stronger median filtering. In one such implementation, a strong 5×5 median filter is used for texture regions while a weak 3×3 filter is used for smooth or edge regions.
A stronger filter is applied to texture regions because, when distortion must be introduced to meet coding constraints, human perception is less sensitive to distortion introduced in the texture regions, whereas human perception is more sensitive to distortion introduced in smooth regions. Further variations in median filters are contemplated for adaptive encoding as computing resources increase.
Before a block of transform coefficients is entropy coded using run length coding, run level coding, or many other types of entropy coding, the block of transform coefficients is scanned into a one-dimensional array according to a scan pattern (often called a zigzag pattern). After quantization of the transform coefficients (and even before quantization to some extent), one common pattern in the transform coefficients is to have non-zero values at the start of the array (corresponding to the low frequency coefficients conventionally shown at the top left of a two-dimensional block), followed by mostly zero values, followed by an isolated non-zero transform coefficient (corresponding to a high frequency coefficient conventionally shown at the bottom right of the two-dimensional block). For example, for an 8×8 block of quantized transform coefficients (64 values), the resulting scan often has only a few non-zero coefficients at the beginning followed by many zeros, and then possibly just a few more non-zero coefficients at the end (e.g., 700, 90, 90, −89, 0, 100, 0, 0, 0, . . . , 500).
Optionally, an encoder provides an adaptive quantizer 670 or other module, that drops the last non-zero coefficient(s) in the scan, based on a characterization of the perceptual region. For example, the last non-zero coefficient(s) may be dropped in texture or edge regions, or just for texture regions.
In another example, if a block is characterized as a texture block, and there is a certain number of zeros before a last non-zero coefficient (e.g., 40 zeros, 50 zeros, 60 zeros, etc.), the last non-zero coefficient is dropped (changed to zero). The number of zeros is contemplated to vary depending on the desired likelihood for dropping trailing coefficients, evolving computing efficiency, a desired level of detail, and/or a user indication of desired detail.
Optionally, adaptive sizing of a dead zone is used during quantizing the transform coefficients. A dead-zone is the region within which zero output is generated for some transform coefficient during quantization.
Table 2 is an example of how an encoder adaptively quantizes transform coefficients by changing the size of the dead zone.
As shown in Table 2, a larger dead-zone is used for edge regions or texture regions. For a smooth region, a transform coefficient with a magnitude of anything less than or equal to 100 is assigned a quantized value of 0, and typically will be reconstructed as 0. For a non-smooth region, a transform coefficient with a magnitude of anything less than or equal to 400 is assigned a quantized value of 0, and typically will be reconstructed as 0. As a result, the non-smooth regions are more likely to include redundancy (due to introduction of distortion), and fewer bits will be required in lossless compression to represent the non-smooth regions as compared to smooth regions.
In the encoder of
In another example, an encoder adaptively quantizes transform coefficients in a frequency dependent manner (or, in practice, in a manner that depends on order in a one-dimensional array following zigzag scanning).
Although a fine-grained function is shown in
Quantization for different dead zone sizes depending on frequency/order may be used in conjunction with or instead of different dead zone sizes for different types of content/block characterizations.
Moreover, for the sake of simplicity, Tables 2 and 3 and
When blocks are a quantized distinctly, quantizer selection information may be provided to the decoder (along with step size information) as side information.
Alternatively, instead of using separate quantizers for different dead zone sizes, a single quantizer is used with different effective dead zone sizes for different types of blocks. In other words, the same set of quantized value tokens is basically used for coefficients regardless of dead zone size, but when the dead zone size is increased, the zero-value token is simply used for the one-value token, two-value token, etc. to map a wider range of coefficients around zero to the quantized value of zero. The other tokens (e.g., three-value token, four-value token, etc.) are the same. The one-value token, two-value token, etc. are unused, which makes entropy coding a bit less efficient, but selection between different quantizers and reconstruction rules is not needed.
Using differential quantization, an encoder may apply coarser quantization to some blocks while applying finer quantization to other blocks, depending on the block characterizations for those blocks. For example, smooth regions in a picture are coded with lower QP while texture regions or edge regions are coded with higher QP. This scheme will save bits in texture or edge regions by introducing distortion not likely to be noticed, and improve the overall perceptual quality of the encoded video.
The concept of differential quantization (often called D-Quant for short) is that macroblocks or other blocks within a video frame can be quantized using different quantization values (e.g., QPs). The quantization values for the decoder to use in reconstruction are then signaled in the bitstream.
An example syntax describes how macroblock level QP (MQUANT) is reconstructed at a decoder. A video clip header may indicate whether bi-level quantization is employed. Then, if bi-level quantization is employed, for each video frame within the clip, a syntax element indicates a bi-level profile for the frame (e.g., DQPROFILE==AllMacroblocks) 1402.
With reference to the pseudocode in
The method determines whether the frame contains differential quantization 1402. Next, the method determines 1404 whether a macroblock is assigned one of two bi-level quantization values (e.g., PQUANT or ALTQUANT), or whether MQUANT is assigned 1406 for a macroblock by one of two equations 1408, 1410.
For example, a frame header may provide information from which PQUANT and ALTPQUANT are reconstructed as default quantization values.
If a simple bi-level quantization is indicated for the frame 1404, the method determines which default value to use by a single bit in a macroblock header 1412.
If an assigned quantization is indicated 1406, then if MQDIFF is not equal to seven 1414, then MQUANT is set equal to PQUANT plus MQDIFF. However, if MQDIFF is equal to seven, then MQUANT is set according to a five bit value for a given macroblock.
MQDIFF is a variable-sized syntax element present in certain macroblocks in I and P frames. The MQDIFF element is present when the picture layer syntax element DQPROFILE is set to indicate ‘All Macroblocks’. The syntax depends on the DQBILEVEL syntax element as described below.
If DQBILEVEL=1, then MQDIFF is a 1 bit syntax element and the ABSMQ syntax element does not follow in the bitstream. If MQDIFF=zero 1412, then MQUANT=PQUANT (meaning that PQUANT is used to dequantize the current macroblock). If MQDIFF=one 1416, then MQUANT=ALTPQUANT.
If DQBILEVEL=zero 1406, then MQDIFF is a 3 bit syntax element present in the bit stream. In this case MQDIFF decodes either to an MQUANT differential or to an escape code as follows. If MQDIFF does not equal seven 1410, then MQDIFF is the differential added to PQUANT, and the ABSMQ syntax element does not follow in the bitstream. If MQDIFF is seven 1410, ABSMQ directly encodes the value of MQUANT.
Having described and illustrated the principles of our invention with reference to illustrated examples, it will be recognized that the examples can be modified in arrangement and detail without departing from such principles. Additionally, as will be apparent to ordinary computer scientists, portions of the examples or complete examples can be combined with other portions of other examples in whole or in part. It should be understood that the programs, processes, or methods described herein are not related or limited to any particular type of computer apparatus, unless indicated otherwise. Various types of general purpose or specialized computer apparatus may be used with or perform operations in accordance with the teachings described herein. Elements of the illustrated embodiment shown in software may be implemented in hardware and vice versa. Techniques from one example can be incorporated into any of the other examples.
In view of the many possible embodiments to which the principles of the invention may be applied, it should be recognized that the details are illustrative only and should not be taken as limiting the scope of our invention. Rather, we claim as our invention all such embodiments as may come within the scope and spirit of the following claims and equivalents thereto.
Number | Name | Date | Kind |
---|---|---|---|
762026 | Connstein | Jun 1904 | A |
4583114 | Catros | Apr 1986 | A |
4679079 | Catros et al. | Jul 1987 | A |
4774574 | Daly et al. | Sep 1988 | A |
4821119 | Gharavi | Apr 1989 | A |
4862264 | Wells et al. | Aug 1989 | A |
4965830 | Barham et al. | Oct 1990 | A |
4992889 | Yamagami et al. | Feb 1991 | A |
5072295 | Murakami et al. | Dec 1991 | A |
5128758 | Azadegan et al. | Jul 1992 | A |
5136377 | Johnston et al. | Aug 1992 | A |
5144426 | Tanaka et al. | Sep 1992 | A |
5146324 | Miller et al. | Sep 1992 | A |
5179442 | Azadegan et al. | Jan 1993 | A |
5237410 | Inoue | Aug 1993 | A |
5241395 | Chen | Aug 1993 | A |
5253058 | Gharavi | Oct 1993 | A |
5263088 | Hazu et al. | Nov 1993 | A |
5301242 | Gonzales et al. | Apr 1994 | A |
5303058 | Fukuda et al. | Apr 1994 | A |
5317396 | Fujinami | May 1994 | A |
5317672 | Crossman et al. | May 1994 | A |
5333212 | Ligtenberg | Jul 1994 | A |
5351310 | Califano et al. | Sep 1994 | A |
5374958 | Yanagihara | Dec 1994 | A |
5412429 | Glover | May 1995 | A |
5452104 | Lee | Sep 1995 | A |
5461421 | Moon | Oct 1995 | A |
5473377 | Kim | Dec 1995 | A |
5481553 | Suzuki et al. | Jan 1996 | A |
5506916 | Nishihara et al. | Apr 1996 | A |
5510785 | Segawa et al. | Apr 1996 | A |
5537440 | Eyuboglu et al. | Jul 1996 | A |
5537493 | Wilkinson | Jul 1996 | A |
5539469 | Jung | Jul 1996 | A |
5559557 | Kato | Sep 1996 | A |
5565920 | Lee et al. | Oct 1996 | A |
5587708 | Chiu | Dec 1996 | A |
5606371 | Gunnewick et al. | Feb 1997 | A |
5623424 | Azadegan et al. | Apr 1997 | A |
5631644 | Katata et al. | May 1997 | A |
5654760 | Ohtsuki | Aug 1997 | A |
5657087 | Jeong et al. | Aug 1997 | A |
5663763 | Yagasaki et al. | Sep 1997 | A |
5724097 | Hibi et al. | Mar 1998 | A |
5724456 | Boyack et al. | Mar 1998 | A |
5731836 | Lee | Mar 1998 | A |
5731837 | Hurst, Jr. | Mar 1998 | A |
5739861 | Music | Apr 1998 | A |
5751358 | Suzuki et al. | May 1998 | A |
5751379 | Markandey et al. | May 1998 | A |
5761088 | Hulyalkar et al. | Jun 1998 | A |
5764803 | Jacquin et al. | Jun 1998 | A |
5781788 | Woo et al. | Jul 1998 | A |
5786856 | Hall et al. | Jul 1998 | A |
5802213 | Gardos | Sep 1998 | A |
5809178 | Anderson et al. | Sep 1998 | A |
5815097 | Schwartz et al. | Sep 1998 | A |
5819035 | Devaney et al. | Oct 1998 | A |
5825310 | Tsutsui | Oct 1998 | A |
5835145 | Ouyang et al. | Nov 1998 | A |
5835237 | Ebrahimi | Nov 1998 | A |
5844613 | Chaddha | Dec 1998 | A |
5850482 | Meany et al. | Dec 1998 | A |
5867167 | Deering | Feb 1999 | A |
5870435 | Choi et al. | Feb 1999 | A |
5877813 | Lee et al. | Mar 1999 | A |
5878166 | Legall | Mar 1999 | A |
5880775 | Ross | Mar 1999 | A |
5883672 | Suzuki et al. | Mar 1999 | A |
5926791 | Ogata et al. | Jul 1999 | A |
5969764 | Sun et al. | Oct 1999 | A |
5970173 | Lee et al. | Oct 1999 | A |
5990957 | Ryoo | Nov 1999 | A |
6044115 | Horiike et al. | Mar 2000 | A |
6049630 | Wang et al. | Apr 2000 | A |
6058362 | Malvar | May 2000 | A |
6072831 | Chen | Jun 2000 | A |
6084636 | Fujiwara | Jul 2000 | A |
6088392 | Rosenberg | Jul 2000 | A |
6091777 | Guetz et al. | Jul 2000 | A |
6104751 | Artieri | Aug 2000 | A |
6118817 | Wang | Sep 2000 | A |
6118903 | Liu | Sep 2000 | A |
6125140 | Wilkinson | Sep 2000 | A |
6148107 | Ducloux et al. | Nov 2000 | A |
6148109 | Boon et al. | Nov 2000 | A |
6160846 | Chiang et al. | Dec 2000 | A |
6167091 | Okada et al. | Dec 2000 | A |
6182034 | Malvar | Jan 2001 | B1 |
6212232 | Reed et al. | Apr 2001 | B1 |
6215905 | Lee et al. | Apr 2001 | B1 |
6223162 | Chen et al. | Apr 2001 | B1 |
6240135 | Kim | May 2001 | B1 |
6240380 | Malvar | May 2001 | B1 |
6243497 | Chiang et al. | Jun 2001 | B1 |
6249614 | Bocharova et al. | Jun 2001 | B1 |
6256422 | Mitchell et al. | Jul 2001 | B1 |
6256423 | Krishnamurthy | Jul 2001 | B1 |
6263022 | Chen et al. | Jul 2001 | B1 |
6263024 | Matsumoto | Jul 2001 | B1 |
6275614 | Krishnamurthy et al. | Aug 2001 | B1 |
6278735 | Mohsenian | Aug 2001 | B1 |
6292588 | Shen et al. | Sep 2001 | B1 |
6314208 | Konstantinides et al. | Nov 2001 | B1 |
6337881 | Chaddha | Jan 2002 | B1 |
6347116 | Haskell et al. | Feb 2002 | B1 |
6348945 | Hayakawa | Feb 2002 | B1 |
6356709 | Abe et al. | Mar 2002 | B1 |
6359928 | Wang et al. | Mar 2002 | B1 |
6360017 | Chiu et al. | Mar 2002 | B1 |
6370502 | Wu et al. | Apr 2002 | B1 |
6373894 | Florencio et al. | Apr 2002 | B1 |
6385343 | Kuroda et al. | May 2002 | B1 |
6389171 | Washington | May 2002 | B1 |
6393155 | Bright et al. | May 2002 | B1 |
6408026 | Tao | Jun 2002 | B1 |
6418166 | Wu et al. | Jul 2002 | B1 |
6438167 | Shimizu et al. | Aug 2002 | B1 |
6456744 | Lafe | Sep 2002 | B1 |
6463100 | Cho et al. | Oct 2002 | B1 |
6466620 | Lee | Oct 2002 | B1 |
6473534 | Merhav et al. | Oct 2002 | B1 |
6490319 | Yang | Dec 2002 | B1 |
6493385 | Sekiguchi et al. | Dec 2002 | B1 |
6519284 | Pesquet-Popescu et al. | Feb 2003 | B1 |
6526096 | Lainema et al. | Feb 2003 | B2 |
6546049 | Lee | Apr 2003 | B1 |
6571019 | Kim et al. | May 2003 | B1 |
6593925 | Hakura et al. | Jul 2003 | B1 |
6600836 | Thyagarajan et al. | Jul 2003 | B1 |
6647152 | Willis et al. | Nov 2003 | B2 |
6654417 | Hui | Nov 2003 | B1 |
6678422 | Sharma et al. | Jan 2004 | B1 |
6687294 | Yan et al. | Feb 2004 | B2 |
6704718 | Burges et al. | Mar 2004 | B2 |
6721359 | Bist et al. | Apr 2004 | B1 |
6728317 | Demos | Apr 2004 | B1 |
6731811 | Rose | May 2004 | B1 |
6738423 | Lainema et al. | May 2004 | B1 |
6747660 | Olano et al. | Jun 2004 | B1 |
6759999 | Doyen | Jul 2004 | B1 |
6760482 | Taubman | Jul 2004 | B1 |
6765962 | Lee et al. | Jul 2004 | B1 |
6771830 | Goldstein et al. | Aug 2004 | B2 |
6785331 | Jozawa et al. | Aug 2004 | B1 |
6788740 | Van der Schaar et al. | Sep 2004 | B1 |
6792157 | Koshi et al. | Sep 2004 | B1 |
6795584 | Karczewicz et al. | Sep 2004 | B2 |
6801572 | Yamada et al. | Oct 2004 | B2 |
6807317 | Mathew et al. | Oct 2004 | B2 |
6810083 | Chen et al. | Oct 2004 | B2 |
6831947 | Ribas Corbera | Dec 2004 | B2 |
6862320 | Isu et al. | Mar 2005 | B1 |
6865291 | Zador | Mar 2005 | B1 |
6873654 | Rackett | Mar 2005 | B1 |
6876703 | Ismaeil et al. | Apr 2005 | B2 |
6882753 | Chen et al. | Apr 2005 | B2 |
6907142 | Kalevo et al. | Jun 2005 | B2 |
6909745 | Puri et al. | Jun 2005 | B1 |
6947045 | Ostermann et al. | Sep 2005 | B1 |
6975680 | Demos | Dec 2005 | B2 |
6977659 | Dumitras et al. | Dec 2005 | B2 |
6990242 | Malvar | Jan 2006 | B2 |
7016546 | Fukuhara et al. | Mar 2006 | B2 |
7020204 | Auvray et al. | Mar 2006 | B2 |
7027506 | Lee et al. | Apr 2006 | B2 |
7027507 | Wu | Apr 2006 | B2 |
7035473 | Zeng et al. | Apr 2006 | B1 |
7042941 | Laksono et al. | May 2006 | B1 |
7058127 | Lu et al. | Jun 2006 | B2 |
7099389 | Yu et al. | Aug 2006 | B1 |
7110455 | Wu et al. | Sep 2006 | B2 |
7162096 | Horowitz | Jan 2007 | B1 |
7200277 | Joshi et al. | Apr 2007 | B2 |
7289154 | Gindele | Oct 2007 | B2 |
7295609 | Sato et al. | Nov 2007 | B2 |
7301999 | Filippini et al. | Nov 2007 | B2 |
7307639 | Dumitras et al. | Dec 2007 | B1 |
7356085 | Gavrilescu et al. | Apr 2008 | B2 |
7463780 | Fukuhara et al. | Dec 2008 | B2 |
7471830 | Lim et al. | Dec 2008 | B2 |
7580584 | Holcomb et al. | Aug 2009 | B2 |
7738554 | Lin et al. | Jun 2010 | B2 |
7778476 | Alvarez et al. | Aug 2010 | B2 |
7801383 | Sullivan | Sep 2010 | B2 |
7869517 | Ghanbari | Jan 2011 | B2 |
7889790 | Sun | Feb 2011 | B2 |
7995649 | Zuo et al. | Aug 2011 | B2 |
20010048718 | Bruls et al. | Dec 2001 | A1 |
20020021756 | Jayant et al. | Feb 2002 | A1 |
20020044602 | Ohki | Apr 2002 | A1 |
20020118748 | Inomata et al. | Aug 2002 | A1 |
20020118884 | Cho et al. | Aug 2002 | A1 |
20020136297 | Shimada et al. | Sep 2002 | A1 |
20020136308 | Le Maguet et al. | Sep 2002 | A1 |
20020154693 | Demos et al. | Oct 2002 | A1 |
20020186890 | Lee et al. | Dec 2002 | A1 |
20030021482 | Lan et al. | Jan 2003 | A1 |
20030053702 | Hu | Mar 2003 | A1 |
20030095599 | Lee et al. | May 2003 | A1 |
20030103677 | Tastl et al. | Jun 2003 | A1 |
20030108100 | Sekiguchi et al. | Jun 2003 | A1 |
20030113026 | Srinivasan et al. | Jun 2003 | A1 |
20030128754 | Akimoto et al. | Jul 2003 | A1 |
20030128756 | Oktem | Jul 2003 | A1 |
20030138150 | Srinivasan | Jul 2003 | A1 |
20030185420 | Sefcik et al. | Oct 2003 | A1 |
20030194010 | Srinivasan et al. | Oct 2003 | A1 |
20030206582 | Srinivasan et al. | Nov 2003 | A1 |
20030215011 | Wang et al. | Nov 2003 | A1 |
20030219073 | Lee et al. | Nov 2003 | A1 |
20030223493 | Ye et al. | Dec 2003 | A1 |
20030235247 | Wu et al. | Dec 2003 | A1 |
20040008901 | Avinash | Jan 2004 | A1 |
20040022316 | Ueda et al. | Feb 2004 | A1 |
20040036692 | Alcorn et al. | Feb 2004 | A1 |
20040090397 | Doyen et al. | May 2004 | A1 |
20040091168 | Jones et al. | May 2004 | A1 |
20040151243 | Bhaskaran et al. | Aug 2004 | A1 |
20040158719 | Lee et al. | Aug 2004 | A1 |
20040190610 | Song et al. | Sep 2004 | A1 |
20040202376 | Schwartz et al. | Oct 2004 | A1 |
20040228406 | Song | Nov 2004 | A1 |
20040264568 | Florencio | Dec 2004 | A1 |
20040264580 | Chiang Wei Yin et al. | Dec 2004 | A1 |
20050002575 | Joshi et al. | Jan 2005 | A1 |
20050008075 | Chang | Jan 2005 | A1 |
20050013365 | Mukerjee et al. | Jan 2005 | A1 |
20050013497 | Hsu et al. | Jan 2005 | A1 |
20050013498 | Srinivasan et al. | Jan 2005 | A1 |
20050013500 | Lee et al. | Jan 2005 | A1 |
20050015246 | Thumpudi et al. | Jan 2005 | A1 |
20050015259 | Thumpudi et al. | Jan 2005 | A1 |
20050024487 | Chen et al. | Feb 2005 | A1 |
20050031034 | Kamaci et al. | Feb 2005 | A1 |
20050036699 | Holcomb et al. | Feb 2005 | A1 |
20050041738 | Lin et al. | Feb 2005 | A1 |
20050052294 | Liang et al. | Mar 2005 | A1 |
20050053151 | Lin et al. | Mar 2005 | A1 |
20050053158 | Regunathan et al. | Mar 2005 | A1 |
20050084009 | Furukawa et al. | Apr 2005 | A1 |
20050084013 | Wang et al. | Apr 2005 | A1 |
20050094731 | Xu et al. | May 2005 | A1 |
20050105612 | Sung et al. | May 2005 | A1 |
20050105622 | Gokhale | May 2005 | A1 |
20050123274 | Crinon et al. | Jun 2005 | A1 |
20050135484 | Lee et al. | Jun 2005 | A1 |
20050147163 | Li et al. | Jul 2005 | A1 |
20050152451 | Byun | Jul 2005 | A1 |
20050180500 | Chiang et al. | Aug 2005 | A1 |
20050180502 | Puri | Aug 2005 | A1 |
20050190836 | Lu et al. | Sep 2005 | A1 |
20050207492 | Pao | Sep 2005 | A1 |
20050232501 | Mukerjee | Oct 2005 | A1 |
20050238096 | Holcomb et al. | Oct 2005 | A1 |
20050259729 | Sun | Nov 2005 | A1 |
20050276493 | Xin et al. | Dec 2005 | A1 |
20060013307 | Olivier et al. | Jan 2006 | A1 |
20060013309 | Ha et al. | Jan 2006 | A1 |
20060018552 | Malayath et al. | Jan 2006 | A1 |
20060034368 | Klivington | Feb 2006 | A1 |
20060038826 | Daly | Feb 2006 | A1 |
20060056508 | Lafon et al. | Mar 2006 | A1 |
20060071825 | Demos | Apr 2006 | A1 |
20060083308 | Schwarz et al. | Apr 2006 | A1 |
20060088098 | Vehvilainen | Apr 2006 | A1 |
20060098733 | Matsumura et al. | May 2006 | A1 |
20060104350 | Liu | May 2006 | A1 |
20060104527 | Koto et al. | May 2006 | A1 |
20060126724 | Cote | Jun 2006 | A1 |
20060126728 | Yu et al. | Jun 2006 | A1 |
20060133478 | Wen | Jun 2006 | A1 |
20060133479 | Chen et al. | Jun 2006 | A1 |
20060140267 | He et al. | Jun 2006 | A1 |
20060165176 | Raveendran et al. | Jul 2006 | A1 |
20060188014 | Civanlar et al. | Aug 2006 | A1 |
20060197777 | Cha et al. | Sep 2006 | A1 |
20060227868 | Chen et al. | Oct 2006 | A1 |
20060238444 | Wang et al. | Oct 2006 | A1 |
20060239576 | Mukherjee | Oct 2006 | A1 |
20060245506 | Lin et al. | Nov 2006 | A1 |
20060256851 | Wang et al. | Nov 2006 | A1 |
20060256867 | Turaga et al. | Nov 2006 | A1 |
20060257037 | Samadani | Nov 2006 | A1 |
20060268991 | Segall et al. | Nov 2006 | A1 |
20070002946 | Bouton et al. | Jan 2007 | A1 |
20070009039 | Ryu | Jan 2007 | A1 |
20070009042 | Craig et al. | Jan 2007 | A1 |
20070053603 | Monro | Mar 2007 | A1 |
20070081586 | Raveendran et al. | Apr 2007 | A1 |
20070081588 | Raveendran et al. | Apr 2007 | A1 |
20070140333 | Chono et al. | Jun 2007 | A1 |
20070147497 | Bao et al. | Jun 2007 | A1 |
20070160138 | Wedi et al. | Jul 2007 | A1 |
20070160151 | Bolton et al. | Jul 2007 | A1 |
20070189626 | Tanizawa et al. | Aug 2007 | A1 |
20070201553 | Shindo | Aug 2007 | A1 |
20070230565 | Tourapis et al. | Oct 2007 | A1 |
20070237221 | Hsu et al. | Oct 2007 | A1 |
20070237222 | Xia et al. | Oct 2007 | A1 |
20070237236 | Chang et al. | Oct 2007 | A1 |
20070237237 | Chang et al. | Oct 2007 | A1 |
20070248163 | Zuo et al. | Oct 2007 | A1 |
20070248164 | Zuo et al. | Oct 2007 | A1 |
20070258518 | Tu et al. | Nov 2007 | A1 |
20070258519 | Srinivasan | Nov 2007 | A1 |
20080008394 | Segall | Jan 2008 | A1 |
20080031346 | Segall | Feb 2008 | A1 |
20080068446 | Barkley et al. | Mar 2008 | A1 |
20080080615 | Tourapis et al. | Apr 2008 | A1 |
20080089410 | Lu et al. | Apr 2008 | A1 |
20080101465 | Chono et al. | May 2008 | A1 |
20080187042 | Jasinschi | Aug 2008 | A1 |
20080192822 | Chang et al. | Aug 2008 | A1 |
20080240235 | Holcomb et al. | Oct 2008 | A1 |
20080240250 | Lin et al. | Oct 2008 | A1 |
20080240257 | Chang et al. | Oct 2008 | A1 |
20080260278 | Zuo et al. | Oct 2008 | A1 |
20080304562 | Chang et al. | Dec 2008 | A1 |
20090207919 | Yin et al. | Aug 2009 | A1 |
20090213930 | Ye et al. | Aug 2009 | A1 |
20090245587 | Holcomb et al. | Oct 2009 | A1 |
20090290635 | Kim et al. | Nov 2009 | A1 |
20090296808 | Regunathan et al. | Dec 2009 | A1 |
20100177826 | Bhaumik et al. | Jul 2010 | A1 |
Number | Date | Country |
---|---|---|
1327074 | Feb 1994 | CA |
0932306 | Jul 1999 | EP |
1465349 | Oct 2004 | EP |
1871113 | Dec 2007 | EP |
897363 | May 1962 | GB |
05-227525 | Sep 1993 | JP |
07-222145 | Aug 1995 | JP |
07-250327 | Sep 1995 | JP |
08-336139 | Dec 1996 | JP |
10-336656 | Dec 1998 | JP |
11-041610 | Feb 1999 | JP |
2003061090 | Feb 2003 | JP |
6-296275 | Oct 2004 | JP |
07-281949 | Oct 2007 | JP |
132895 | Oct 1998 | KR |
WO 9721302 | Jun 1997 | WO |
WO 9948300 | Sep 1999 | WO |
WO 0021207 | Apr 2000 | WO |
WO 0072599 | Nov 2000 | WO |
WO 0207438 | Jan 2002 | WO |
WO 2004100554 | Nov 2004 | WO |
WO 2004100556 | Nov 2004 | WO |
WO 2005065030 | Jul 2005 | WO |
WO 2005076614 | Aug 2005 | WO |
WO 2006075895 | Jul 2006 | WO |
WO 2006112620 | Oct 2006 | WO |
WO 2007015047 | Feb 2007 | WO |
WO 2007130580 | Nov 2007 | WO |
Entry |
---|
Atzori et al., “Adaptive Anisotropic Filtering (AAF) for Real-Time Visual Enhancement of MPEG-Coded Video Sequences,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 12, No. 5, pp. 285-298 (May 2002). |
Augustine et al., “Region of Interest Editing of MPEG-2 Video Streams in the Compressed Domain,” 2004 IEEE Int'l Conf. on Multimedia and Expo: ICME'04, vol. 1, Issue 27-30, pp. 559-562 (Jun. 2004). |
Bist et al., “Adaptive Quantization for Low Bit Rate Video Coding,” Proc. 1998 Int'l Conf. on Image Processing (ICIP 98), pp. 925-928 (Oct. 1998). |
Chrysafis et al., “Context-based Adaptive Image Coding,” Proc. of the 30th Asilomar Conf. on Signals, Systems, and Computers, 5 pp. (Nov. 1996). |
De Simone, et al., “A comparative study of JPEG 2000, AVC/H.264, and HD Photo,” SPIE Optics and Photonics, Applications of Digital Image Processing XXX, 12 pp. (Aug. 2007). |
Farvardin et al., “Optimum quantizer performance for a class of non-Gaussian memoryless sources,” IEEE Trans. Inform. Theory, vol. IT-30, No. 3, pp. 485-497 (May 1984). |
Flierl et al., “A Video Codec Incorporating Block-Based Multi-Hypothesis Motion-Compensated Prediction,” in Proceedings of the SPIE Conference on Visual Communications and Image Processing, Perth, Australia, vol. 4067, pp. 238-249 (Jun. 2000). |
Flierl et al., “Generalized B Pictures and the Draft H.264/Avc Video Compression Standard,” in IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, No. 7, pp. 587-597 (Jul. 2003). |
Foos et al., “Jpeg 2000 compression of medical imagery,” Proc. SPIE, vol. 3980, pp. 85-96 (Feb. 2000). |
Garrigues et al., “Atom position coding in a matching pursuit based video coder,” Lecture Notes in Computer Science, 4 pp. (Sep. 2005). |
Gish et al., “Asymptotically efficient quantizing,” IEEE Trans. Inform. Theory, vol. IT-14, No. 5 (Sep. 1968). |
Golner et al., “Region Based Variable Quantization for JPEG Image Compression,” IEEE Symp. on Circuits and Systems, pp. 604-607 (Aug. 2000). |
Golston et al., “Video codecs tutorial: Trade-offs with H.264, VC-1 and other advanced codecs,” Video/Imaging Design Line, 9 pp. (Mar. 2006). |
“H.264 & IPTV Over DSL—Enabling New Telco Revenue Opportunities,” White Paper, 12 pp. (May 15, 2004). |
Hannuksela et al., “Sub-picture: ROI coding and unequal error protection,” Proc. 2002 Int'l Conf. on Image Processing, vol. 3, Issue 24-28, pp. 537-540 (Jun. 2002). |
“ISO/IEC 11172-2 Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbit/s,” MPEG (Moving Pictures Expert Group), International Organization for Standardization, MPEG1 Video, 122 pp. (Aug. 1993). |
“ISO/IEC 13818-2. Generic coding of moving pictures and associated audio information,” MPEG (Moving Pictures Expert Group), International Organization for Standardization, MPEG2 Video, 23 pp. (Dec. 2000). |
ISO/IEC, “Information Technology—Coding of Audio-Visual Objects: Visual, ISO/IEC 14496-2, Committee Draft,” 330 pp. (Mar. 1998). |
ISO/IEC, “14496-2: Information Technology—Coding of Audio-Visual Objects—Part 2: Visual,” 724 pp. (Jun. 2004). |
ITU-T, “ITU-T Recommendation H.261: Video Codec for Audiovisual Services at px 64 kbits,” 28 pp. (Mar. 1993). |
ITU-T, “ITU-T Recommendation H.262: Information Technology—Generic Coding of Moving Pictures and Associated Audio Information: Video,” 218 pp. (Jul. 1995). |
ITU-T, “ITU-T Recommendation H.263: Video Coding for Low Bit Rate Communication,” 167 pp. (Feb. 1998). |
Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, “Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 ISO/IEC 14496-10 AVC,” 253 pp. (May 2003). |
Kim et al., “Still image coding based on vector quantization and fractal approximation,” IEEE Transactions on Image Processing, vol. 5, No. 4, pp. 587-597 (Apr. 1996). |
Kopp, “Lossless Wavelet Based Image Compression with Adaptive 2D Decomposition,” Proc. 4th Int'l Conf. in Central Europe on Computer Graphics and Visualization 96, pp. 141-149 (Feb. 12-16, 1996). |
Lam et al., “A mathematical analysis of the DCT coefficient distributions for images,” IEEE Trans. Image Proc., vol. IP-9, No. 10, pp. 1661-1666 (Oct. 2000). |
U.S. Appl. No. 10/846,140, filed May 15, 2004, Sullivan. |
LeGall, “MPEG: A Video Compression Standard for Multimedia Application,” Communications of the ACM, vol. 34, No. 4, pp. 47-58 (Apr. 1991). |
LeGall, “The MPEG Video Compression Algorithm,” Signal Processing: Image Communication 4, vol. 4, No. 2, pp. 129-140 (Apr. 1992). |
Lei et al., “Rate Adaptation Transcoding for Precoded Video Streams,” 13 pp. (month unknown 2000). |
Limb, “A Picture-Coding Algorithm for the Merli Scan,” IEEE Transactions on Communications, pp. 300-305 (Apr. 1973). |
Lin et al, “Low-complexity face-assisted coding scheme for low bit rate video telephony,” IEICE Trans. Inf. & Sys., vol. E86-D, No. 1, pp. 101-108 (Jan. 2003). |
Lin et al, “Low-complexity face-assisted video coding,” Proc. 2000 Int'l Conf. on Image Processing, vol. 2, pp. 207-210 (Sep. 2000). |
Lloyd, “Least squares quantization in PCM,” IEEE Trans. Inform. Theory, vol. IT-28, No. 2, pp. 7-12 (Mar. 1982) (reprint of work originally presented in Jul. 1957). |
Loomis, “Using the Advanced Settings of the Windows Media Video 9 Advanced Profile Codec,” 13 pp. (Document dated Apr. 2006) [Downloaded from the World Wide Web on May 31, 2007]. |
Lopresto et al., “Image Coding Based on Mixture Modeling of Wavelet Coefficients and a Fast Estimation-Quantization Framework,” Proc. IEEE Data Compression Conference, (Snowbird, UT), pp. 221-230 (Mar. 1997). |
Mallat, “A theory for multiresolution signal decomposition: the wavelet representation,” IEEE Trans. Pattern Anal. and Machine Intell., vol. PAMI-11, No. 7, pp. 674-692 (Jul. 1989). |
Masala et al., “Perceptually Optimized MPEG Compression of Synthetic Video Sequences,” Proc. ICIP, pp. I-601-I-604 (Sep. 2005). |
Max, “Quantizing for minimum distortion,” IEEE Trans. Inform. Theory, vol. IT-6, No. 1, pp. 7-12 (Mar. 1960). |
Microsoft Corporation, “Microsoft Debuts New Windows Media Player 9 Series, Redefining Digital Media on the PC,” 4 pp. (Sep. 4, 2002) [Downloaded from the World Wide Web on May 14, 2004]. |
Mitra et al., “Two-Stage Color Palettization for Error Diffusion,” Proceedings of SPIE, pp. 207-217 (Jun. 2002). |
Mook, “Next-Gen Windows Media Player Leaks to the Web,” BetaNews, 17 pp. (Jul. 19, 2002) [Downloaded from the World Wide Web on Aug. 8, 2003]. |
Muller, “Distribution shape of two-dimensional DCT coefficients of natural images,” IEE Electronics Letters, vol. 29, No. 22 (Oct. 1993). |
Murakami et al., “Comparison between DPCM and Hadamard transform coding in the composite coding of the NTSC color TV signal,” IEEE Trans. on Commun., vol. COM-30, No. 3, pp. 469-479 (Mar. 1982). |
Musmann et al., “Advances in Picture Coding,” Proceedings of the IEEE, vol. 73, No. 4, pp. 523-548 (Apr. 1985). |
Neff et al., “Modulus Quantization for Matching Pursuit Video Coding,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 10, No. 6, pp. 895-912 (Sep. 2000). |
Nguyen et al., “Set Theoretic Compression with an Application to Image Coding,” IEEE Transactions on Image Processing, vol. 7, No. 7, pp. 1051-1056 (Jul. 1998). |
Park et al., “A post processing method for reducing quantization effects in low bit-rate moving picture coding,” IEEE Trans. Circuits Syst. Video Technology, vol. 9, pp. 161-171 (Feb. 1999). |
Puri et al., “Motion-Compensated Video Coding with Adaptive Perceptual Quantization,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 1, No. 4, pp. 351-361 (Dec. 1991). |
Radha et al., “The MPEG-4 Fine-Grained Scalable Video Coding Method for Multimedia Streaming Over IP,” IEEE Trans. on Multimedia, vol. 3, No. 1, pp. 53-68 (Mar. 2001). |
Reininger et al., “Distribution of two-dimensional DCT coefficients for images,” IEEE Trans. On Commun., vol. COM-31, No. 6, pp. 835-839 (Jun. 1983). |
Ribas Corbera et al., “Rate Control in DCT Video Coding for Low-Delay Communications,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 9, No. 1, pp. 172-185 (Feb. 1999). |
Schallauer et al., “PRESTO—Preservation Technologies for European Broadcast Archives, D5.4—High Quality Compression for Film and Video,” 80 pp. (Sep. 18, 2002). |
Schuster et al., “A Theory for the Optimal Bit Allocation Between Displacement Vector Field and Displaced Frame Difference,” IEEE J. on Selected Areas in Comm., vol. 15, No. 9, pp. 1739-1751 (Dec. 1997). |
Shen et al., “Rate-Distortion Optimization for Fast Hierarchical B-Picture Transcoding,” IEEE, pp. 5279-5282 (May 2006). |
Shoushun et al., “Adaptive-Quantization Digital Image Sensor for Low-Power Image Compression,” in IEEE Transactions on Circuits and Systems—I: Regular Papers, vol. 54, No. 1, pp. 13-25 (Jan. 2007). |
Sony Electronics Inc., “Sony Vizaro DVD Encoder System DVA-V700,” 4 pp. (Apr. 2001). |
Sullivan, “Efficient scalar quantization of exponential and Laplacian random variables,” IEEE Trans. Inform. Theory, vol. IT-42, No. 5, pp. 1365-1374 (Sep. 1996). |
Sullivan et al., “Rate-Distortion Optimization for Video Compression,” IEEE Signal Processing Magazine, pp. 74-90 (Nov. 1998). |
Sullivan et al., “The H.264/AVC Advanced V ideo Coding Standard: Overview and Introduction to the Fidelity Range Extensions,” 21 pp. (Aug. 2004). |
Tao et al., “Adaptive Model-driven Bit Allocation for MPEG Video Coding,” IEEE Transactions on Circuits and Systems for Video Tech., vol. 10, No. 1, pp. 147-157 (Feb. 2000). |
Tsang et al., “Fuzzy Based Rate Control for Real-Time MPEG Video,” IEEE Transactions on Fuzzy Systems, pp. 504-516 (Nov. 1998). |
Wang, et al., “A Framework for Adaptive Scalable Video Coding Using Wyner-Ziv Techniques,” EURASIP Journal on Applied Signal Processing, pp. 1-18 (month unknown, 2006). |
Wien, “Variable Block-Size Transforms for Hybrid Video Coding,” Dissertation, 182 pp. (Feb. 2004). |
Wu et al., “Context-Based, Adaptive, Lossless Image Coding,” IEEE Trans. Communications, vol. 45, pp. 437-444 (Apr. 1997). |
Wu et al., “Joint Estimation of Forward and Backward Motion Vectors for Interpolative Prediction of Video,” IEEE Transactions on Image Processing, vol. 3, No. 5, pp. 684-687 (Sep. 1994). |
Xiong et al., “Wavelet Packet Image Coding Using Space-Frequency Quantization,” IEEE Transactions on Image Processing, vol. 7, No. 6, pp. 892-898 (Jun. 1998). |
Yang et al., “Rate Control for Videophone Using Local Perceptual Cues,” IEEE Transactions on Circuits and Systems for Video Tech., vol. 15, No. 4, pp. 496-507 (Apr. 2005). |
Yuen et al., “A survey of hybrid MC/DPCM/DCT video coding distortions,” Signal Processing, vol. 70, pp. 247-278 (Nov. 1998). |
Zaid et al., “Wavelet Image Coding with Adaptive Thresholding,” 4 pp. (Jul. 2002). |
Zhang et al., “Adaptive Field/Frame Selection for High Compression Coding,” SPIE Conf. on Image and Video Communications and Processing, 13 pp. (Jan. 2003). |
Chang et al., “Adaptive Wavelet Thresholding for Image Denoising and Compression,” IEEE Trans on Image Processing, vol. 9, No. 9, pp. 1532-1546 (Sep. 2000). |
Gavrilescu et al., “Embedded Multiple Description Scalar Quantizers,” IEE Electronics Letters, vol. 39, No. 13, 12 pp. (Jun. 2003). |
Luo et al., “A Scene Adaptive and Signal Adaptive Quantization for Subband Image and Video Compression Using Wavelets,” IEEE Trans. on Circuits and Systems for Video Tech., vol. 7, No. 2, pp. 343-357 (Apr. 1997). |
Watson et al., “Visibility of Wavelet Quantization Noise,” IEEE Trans. on Image Processing, vol. 6, No. 8, pp. 1164-1175 (Aug. 1997). |
Joshi et al., “Comparison of generalized Gaussian and Laplacian modeling in DCT image coding,” IEEE Signal Proc. Letters, vol. SPL-2, No. 5, pp. 81-82 (May 1995). |
Donoho et al., “Data compression and Harmonic Analysis,” IEEE transaction on information theory, vol. 44, No. 6, pp. 2435-2476 (Oct. 1998). |
ISO/IEC, “Study text (version 3) of ISO/IEC 14496-10:2005/FPDAM3 Scalable Video Coding (in integrated form with ISO/IEC 14996-10),” ISO/IEC JTC 1/SC29/WG 11 N8962, pp. 59-103, 175-196, 404-423, 453-470 (Apr. 2007). |
ITU-T, “CCITT Recommendation T.81: Information Technology—Digital Compression and Coding of Continuous-Tone Still Images—Requirements and Guidelines,” 190 pp. (Sep. 1992). |
ITU-T, “ITU-T Recommendation T.84: Terminals for Telematic Services—Information Technology—Digital Compression and Coding of Continuous-Tone Still Images: Extensions,” 84 pp. (Jul. 1996). |
ITU-T, “ITU-T Recommendation T.801: JPEG 2000 image coding system: Extensions,” 334 pp. (Aug. 2002). |
Man et al., “Three-Dimensional Subband Coding Techniques for Wireless Video Communications,” IEEE Trans. on Circuits and Systems for Video Technology, vol. 12, No. 6, pp. 386-397 (Jun. 2002). |
Marcellin et al., “An overview of quantization in JPEG 2000,” Signal Processing: Image Communication, vol. 17, pp. 73-84 (Jan. 2002). |
Srinivasan et al., “HD Photo: A new image coding technology for digital photography,” Proc. of SPIE, vol. 6696, 19 pp. (Jan. 2007). |
Tong, “A perceptually adaptive JPEG coder,” Thesis, University of Toronto, 124 pp. (1997). |
Watson, “Perceptual Optimization of DCT Color Quantization Matrices,” IEEE Conf. on Image Processing, pp. 100-104 (Nov. 1994). |
Yoo et al., “Adaptive Quantization of Image Subbands with Efficient Overhead Rate Selection,” IEEE Conf. on Image Processing, pp. 361-364 (Sep. 1996). |
Calderbank et al., “Wavelet transforms that map integers to integers,” Mathematics Subject Classification, Aug. 1996, 39 pages. |
Chai et al., “Face Segmentation Using Skin-Color Map in Videophone Applications,” IEEE Transaction on Circuits and Systems for Video Technology, vol. 9, No. 4, pp. 551-564, Jun. 1999. |
Correia et al., “Classification of Video Segmentation Application Scenarios,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 14, No. 5, pp. 735-741, May 2004. |
Daly et al., “Face-Based Visually-Optimized Image Sequence Coding,” 1998 International Conference on Image Processing, vol. 3, pp. 443-447, Oct. 1998. |
Eleftheriadis et al., “Dynamic Rate Shaping of Compressed Digital Video,” IEEE Transactions on Multimedia, vol. 8, No. 2, Apr. 2006, pp. 297-314. |
Lee et al., “Spatio-Temporal Model-Assisted Compatible Coding for Low and Very Low Bitrate Videotelephony,” 3rd IEEE International Conference on Image Processing, 4 pages, Sep. 1996. |
Malah, “Time-Domain Algorithms for Harmonic Reduction and Time Scaling of Speech Signals,” IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. ASSP-27, No. 2, Apr. 1979, 13 pages. |
Richardson, H.264 and MPEG-4 Video Compression, pp. 50-56 and 187-196 (2003). |
Number | Date | Country | |
---|---|---|---|
20060268990 A1 | Nov 2006 | US |