[FFmpeg-devel] [PATCH/RFC] avutil/pixelutils: port ppc/altivec sad functions

Guillaume POIRIER poirierg at gmail.com
Sun Aug 24 21:52:17 CEST 2014


On Sun, Aug 24, 2014 at 9:39 PM, Clément Bœsch <u at pkh.me> wrote:

>> $ make fate-pixelutils
>> TEST    pixelutils
>> --- ./tests/ref/fate/pixelutils 2014-08-24 12:18:09.000000000 +0200
>> +++ tests/data/fate/pixelutils  2014-08-24 14:20:02.000000000 +0200
>> @@ -1,7 +1,7 @@
>>  [OK] [UU] SAD [random] 2x2=409 ref=409
>>  [OK] [UU] SAD [random] 4x4=1370 ref=1370
>>  [OK] [UU] SAD [random] 8x8=5178 ref=5178
>> -[OK] [UU] SAD [random] 16x16=20946 ref=20946
>> +[FAIL] [UU] SAD [random] 16x16=21951 ref=20946
>>  [OK] [AU] SAD [random] 2x2=320 ref=320
>>  [OK] [AU] SAD [random] 4x4=1522 ref=1522
>>  [OK] [AU] SAD [random] 8x8=5821 ref=5821
>> Test pixelutils failed. Look at tests/data/fate/pixelutils.err for details.
>> make: *** [fate-pixelutils] Error 1
> Interesting. So it means aligned read on unaligned addresses doesn't
> explode but raise random results (just like if it was masking the lower
> bits)?

Yes, actually, an Altivec read doesn't look at the lower bits of the
data pointer. There's no run-time exception triggered like in x86 with
vector aligned reads (in case of unaligned accesses). It's pretty
inconvenient, but it simplifies the hardware implementation.

Best regards,

Wearing a Rolex is like driving an Audi: It says you've got some
money, but nothing to say.
John Lefèvre

More information about the ffmpeg-devel mailing list