[FFmpeg-devel] More H.264 predictive lossless

Jason Garrett-Glaser darkshikari
Wed Oct 8 03:39:01 CEST 2008


On Tue, Oct 7, 2008 at 6:14 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Tue, Oct 07, 2008 at 01:42:06PM -0700, Jason Garrett-Glaser wrote:
>> On mplayerhq, mixedqps_lossless.h264 is now available.  This test clip
>> uses the following features in addition to predictive lossless:
>>
>> 1. Deblocking
>> 2. CABAC
>> 3. B-frames (pyramidal, with weights)
>> 4. All macroblock types, including 8x8dct and PCM.
>> 5. Random distribution of QPs, with 50% lossless and 50% ranging from 1 to 31.
>>
>> CoreAVC plays it correctly.
>>
>> The clip is also notable for breaking the patch we previously
>> considered for adding predictive lossless support, due to the fact
>> that negative residuals added to a zeroed block end up being stored as
>> zeros due to clipping.
>>
>> Since x264 has committing Predictive Lossless replacing the old
>> lossless mode (which was removed from the spec), we're going to need
>> to support this mode soon enough.
>>
>> Michael, any comments or ideas?
>
> There are patches laying around that need to be reviewed, bugs
> some in h.264 i wanted to fix ...
> i cant to all at once ...
> so if someone wants to work on this (or anything else), it surely would
> be welcome ...

More important is I'm not exactly sure how to do this.  In order to
make it work correctly, the prediction needs to be done as part of
transform_bypass's "idct".  However, this has two problems:

1.  Requires a "pred" argument to be passed to the idct.
2.  Requires the idct to be run regardless, even if nnz == 0.

I'm not sure how to get around the second problem without
significantly slowing down the current code.

Dark Shikari




More information about the ffmpeg-devel mailing list