[FFmpeg-devel] [PATCH] PAFF: Derivation process for chroma motion vector

Martin Zlomek martin.zlomek
Mon Oct 15 19:30:09 CEST 2007


On Mon, 15 Oct 2007 18:51:45 +0200, Jeff Downs <heydowns at borg.com> wrote:

> On Mon, 15 Oct 2007, Loren Merritt wrote:
>
>> In MBAFF, the reference list is generated as a list of frames, and then
>> split to make fields. So a field pair is always adjacent in the list,  
>> and
>> ref_index&1 is the parity.
>>
>> In PAFF, fields may be independently reordered in the list (and even if
>> no reordering is used, the default order isn't always the same as
>> MBAFF), so use pic->reference&1 instead. But you also need to change
>> pic_as_field() to set reference appropriately.
>>
>> pic->reference&1 could work in MBAFF too, if you set reference
>> approriately in fill_mbaff_ref_list().
>
> Loren is right on in his description of the problem.
> I glossed over this when I originally wrote the PAFF support.
>
> The attached patch implements the above approach, fixing chroma MV  
> offsets
> for PAFF whilst not keeping around a second approach for MBAFF.
>
> I ran both current svn and svn+patch against all MBAFF complaince bit
> streams from JVT.  Output of ffmpeg is equal w/ and w/out patch.
>
> Benchmarks results of 10 runs each (this was on PAFF content),
> Current svn:
> User: avg: 22.294  stddev: 0.027  med: 22.306
>
> svn + patch:
> User: avg: 22.194  stddev: 0.049  med: 22.177
>
>
>
> Suggested commit message:
> "Fix chroma mv offsets for PAFF in a way that is compatible with MBAFF by
> setting Picture.reference to indicate parity for all Pictures in  
> reference
> list"

Great, thank you.



-- 
Martin Zlomek
martin.zlomek at email.cz




More information about the ffmpeg-devel mailing list