The present invention relates to video decoders and, more specifically, to an improved video encoder/decoder that utilizes an improved hypothetical reference decoder.
Video coding refers generally to coding motion picture information to transmission over a bandwidth limited channel. Various video coding techniques are known. The most common techniques, such as those are standardized in the ITU H-series and MPEG-series coding specifications, employ motion compensation prediction to reduce channel bandwidth. Motion compensated video coders exploit temporal redundancy between frames of a video sequence by predicting video content of a new frame currently being decoded with reference to video content of other frames that were previously decoded. At a decoder, having received and decoded a first number of frames, the video decoder is able to use decoded video content of the previously decoded frames to generate content of other frames.
An encoder often estimates performance of a hypothetical reference decoder (HRD) to confirm coding decisions that it makes during the coding process. The operation of an HRD is described in the H.264 standard. A simplified description of the operation of the HRD of H.264 is presented with reference to
According to the standard H.264, the encoded data is assumed to be decoded instantaneously in the HRD by an instantaneous decoding process at the CPB removal time. Compliance with the standard H.264 is typically maintained in practical decoders by providing a CPB and a corresponding DPB that is larger than that required to comply with the standard. Presently, CPB size is determined by the encoder, which encodes the data, inserts size and other parameters, such as input rate, in the encoded data bitstream.
With reference to
The CPB 210 as modeled by the HRD receives encoded from the channel at an input rate shown, for discussion purposes, as R
Real world decoders 220 can be either hardware or software devices. In hardware decoders, the CPB 210 is commonly a memory component whose size is predetermined at the time of manufacture. In software (SW) decoders, the CPB 210 is commonly a span of memory allocated from a larger memory space. Software latency can cause input rates and exit rates to vary instantaneously even though overall input and exit rates may be steady.
Since present encoders use the H.264 standard HRD to model a CPB having a finite input rate and a finite size but an infinite exit rate, the HRD can artificially lower the size required for CPBs to buffer the coded video data. Often, decoder designers will make accommodation for CPBs that are much larger, i.e., have a memory capacity greater than necessary to ensure overflow/underflow events, as specified by the H.264 standard, do not occur. Of course, a designer can specify their own buffer accommodations, overflow/underflow events, or other coding/decoding parameters as desired.
The CPB of HRD 200, although having a finite input bitrate, has a theoretical infinite output bitrate, which is impractical. There is a need to implement a system that allows for modeling the output bitrate of the CPB to a practical limit. A practical limit on the output bitrate allows for more efficient allocation of buffer and decoder resources for decoding picture data for output.
Disclosed is a method of controlling a video decoder, including a monitoring of channel data representing coded video data generated by an encoder to identify parameters of a hypothetical reference decoder (HRD) used by the encoder during coding operations. A parameter representing an exit data rate requirement of a coded picture buffer (CPB) of the HRD is compared against exit rate performance of the video decoder. If the exit rate performance of the video decoder matches the exit rate requirement of the HRD, the coded video data is decoded. Otherwise, the video decoder may be disabled from decoding the coded video data with full speed and accuracy.
Further disclosed is a method of controlling a video decoder having multiple decoding profiles, including monitoring channel data representing coded video data generated by an encoder to identify parameters of a hypothetical reference decoder (HRD) used by the encoder during coding operations. A parameter representing an exit data rate requirement of a coded picture buffer (CPB) of the HRD is compared against exit rate performance of the video decoder's profiles. If the exit rate performance of at least one decoder profile matches the exit rate requirement of the HRD, a matching decoder profile is selected, and decoding the coded video data using the selected decoder profile proceeds. Otherwise, apply a degradation scheme, including disabling the video decoder from the decoding the coded video data.
The disclosed coding and decoding method and system include an exit rate estimate capability in the improved HRD and identify the exit rate in the coded video bitstream. Decoders, both software and hardware, can make more efficient allocations of CPB buffer sizes using the improved HRD as described below.
According to the present embodiments, the HRD 300 models a CPB 315 and/or a decoder 320 using a parameter representing an exit rate of the CPB 315. The exit rate is illustrated in
By using the HRD 300, the coded data in the CPB 315 can be expected to exit the CPB in B-bit sizes within a time interval T as opposed to the infinite exit rate of conventional HRDs.
In another embodiment, an exit rate of the decoder 320 also can be modeled by the HRD. Again, previously known HRDs presume that a decoder processes data instantaneously and that the input rate to the DPB is infinite. Under the current proposal, the input rate of the DPB can be modeled as a finite quantity.
As noted previously, the H.264 standard includes its own HRD, which models a CPB having a finite input data rate and an infinite exit data rate. The principles of the present invention extend this model by constraining the exit data rate to a finite quantity. If convenient, the CPB 315 of the present invention may be modeled as having two components provided therein—an H.264 CPB 310 and a temporary picture buffer (TPB) 330. The H.264 CPB 310 may be modeled according to conventional norms, having a finite input data rate and an infinite exit rate, The TPB 330 is modeled as receiving data from the H.264 CPB 310 and, therefore, is modeled as having an infinite input rate. The TPB 330 further may be modeled as having a finite exit rate as discussed above. In this regard, it is equivalent to consider the CPB 315 as a single buffer having finite input and exit rates or as a concatenation of two buffers, one of which has a finite input rate but an infinite exit rate and the second of which as an infinite input rate but a finite exit rate.
As noted previously, the H.264 standard includes its own HRD, which models a DPB having a infinite input data rate and a finite exit data rate. The principles of the present invention extend this model by constraining the input data rate to a finite quantity. If convenient, the DPB 325 of the present invention may be modeled as having two components provided therein—a temporary picture buffer (TPB) 331 and an H.264 DPB 340. The H.264 DPB 340 may be modeled according to conventional norms, having an infinite input data rate and a finite exit rate. The TPB 331 is modeled as receiving data from the decoder 320 and, therefore, is modeled as having an infinite input rate. The TPB 331 further may be modeled as having a finite input rate equal to the finite exit rate of the decoder 320 as discussed above. In this regard, it is equivalent to consider the DPB 325 as a single buffer having finite input and exit rates or as a concatenation of two buffers, one of which has a finite input rate but an infinite exit rate and the second of which as an infinite input rate but a finite exit rate.
As noted, as an encoder codes source video data, it models performance of a decoder using the data rate constraints via the HRD to determine if processing errors are likely to arise when a decoder processes coded video data to recover the source video. If no processing errors are detected, the encoder validates the coded video data and stores the coded video data in a file for later use along with data identifying HRD parameters used during coding. According to an embodiment of the present invention, the file may include the CPB exit rate parameter and DPB input rate parameters discussed above. A decoder may refer to these parameters when receiving the file and determine whether or how to decode the coded video data in response thereto.
All decoders are resource constrained devices, but the resources may vary considerably from decoder to decoder. Thus, the CPB 415 of each decoder may have predetermined limits upon its input data rate and its exit data rate. Similarly, the DPB 425 may have predetermined limits upon its input data rate and its exit data rate. In hardware devices, the sizes and data rates of each buffer 415, 425 typically may be determined when the devices are designed. Although software devices may provide for some flexibility in buffer size and data rates, they also have limits; further, resources allocated to decoder software elements would not be available for other applications that may compete with the decoder software for resources. According to an embodiment of the present invention, a decoder controller 460 may review the CPB exit rate parameters and/or DPB input rate parameters from a coded video data file and compare it to the decoder's local capabilities to determine whether or how to decode it.
Software decoders by their nature allow for a plurality of different configurations or profiles. The decoder profiles can specify a number of different resources, such as decoders of varying capabilities, buffer sizes and buffer data rates. Depending upon the requirements of the encoder, various combinations of decoders and buffers can be assigned for decoding the coded data. As stated above, the differing profiles may not be available if the decoder resources are allocated to other applications.
The foregoing description provides an HRD that estimates CPB exit rate parameters and/or DPB input rate parameters of a decoder. The improved HRD model is expected to be useful to decoder designers to provide better estimates of CPB and/or DPB buffers sizes that will be needed to decode coded video data. It is also useful to encoder designers to achieve better performance, both in terms of video quality and encoding resource usage, since more accurate decoder model information is available. As noted above, the undefined nature of the CPB exit rate parameters and/or DPB input rate parameters often led decoder designers to over-estimate buffer sizes that would be needed for these respective units, often by large margins. By improving the HRD model as proposed above, it is expected that decoder designers will be able to design decoders using buffer size estimates that track real-world decoding environments more accurately than possible under the prior models.
Several embodiments of the present invention are specifically illustrated and described herein. However, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
This application is a divisional of U.S. patent application Ser. No. 13/731,819, filed Dec. 31, 2012, which is a continuation of U.S. patent application Ser. No. 12/013,094, filed Jan. 11, 2008, which issued as U.S. Pat. No. 8,345,774 on Jan. 1, 2013.
Number | Name | Date | Kind |
---|---|---|---|
7075584 | Crinon | Jul 2006 | B2 |
7453938 | Haskell et al. | Nov 2008 | B2 |
8345774 | Wu et al. | Jan 2013 | B2 |
8675740 | Wu et al. | Mar 2014 | B2 |
20050175098 | Narasimhan et al. | Aug 2005 | A1 |
20050201471 | Hannuksela et al. | Sep 2005 | A1 |
20050254575 | Hannuksela et al. | Nov 2005 | A1 |
20060002479 | Fernandes | Jan 2006 | A1 |
20060120463 | Wang | Jun 2006 | A1 |
20060126728 | Yu et al. | Jun 2006 | A1 |
20060198446 | Ribas-Corbera et al. | Sep 2006 | A1 |
20060198466 | Wright et al. | Sep 2006 | A1 |
20070002946 | Bouton et al. | Jan 2007 | A1 |
20070153914 | Hannuksela et al. | Jul 2007 | A1 |
20070201500 | Deshpande | Aug 2007 | A1 |
20080232459 | Auyeung | Sep 2008 | A1 |
20100034254 | Wang | Feb 2010 | A1 |
20100074340 | Luo et al. | Mar 2010 | A1 |
20100091837 | Zhu et al. | Apr 2010 | A1 |
20110002397 | Wang et al. | Jan 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
20140153653 A1 | Jun 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13731819 | Dec 2012 | US |
Child | 14175555 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12013094 | Jan 2008 | US |
Child | 13731819 | US |