f4d5d7e8de
In 16x8 motion compensation, for lower 16x8 region, the input to mpeg_motion() for motion_y was "motion_y + 16", which causes wrong rounding. For 4:2:0, chroma scaling for y is dividing by two and rounding toward zero. When motion_y < 0 and motion_y + 16 > 0, the rounding direction of "motion_y" and "motion_y + 16" is different and rounding "motion_y + 16" would be incorrect. We should input "motion_y" as is to round correctly. I add "is_16x8" flag to do that. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
36 lines
1.8 KiB
Plaintext
36 lines
1.8 KiB
Plaintext
#tb 0: 1/25
|
|
#media_type 0: video
|
|
#codec_id 0: rawvideo
|
|
#dimensions 0: 720x576
|
|
#sar 0: 16/15
|
|
0, 9, 9, 1, 622080, 0xff496bf5
|
|
0, 10, 10, 1, 622080, 0x513c8bd9
|
|
0, 11, 11, 1, 622080, 0x4e474368
|
|
0, 12, 12, 1, 622080, 0x1248abe9
|
|
0, 13, 13, 1, 622080, 0xa705c158
|
|
0, 14, 14, 1, 622080, 0xf9048e95
|
|
0, 15, 15, 1, 622080, 0x78b5c1a2
|
|
0, 16, 16, 1, 622080, 0x0efa8be8
|
|
0, 17, 17, 1, 622080, 0xd3396eac
|
|
0, 18, 18, 1, 622080, 0x5870cbdd
|
|
0, 19, 19, 1, 622080, 0x086fa311
|
|
0, 20, 20, 1, 622080, 0x7ce9bced
|
|
0, 21, 21, 1, 622080, 0xe7e0e0e1
|
|
0, 22, 22, 1, 622080, 0x5af3e14b
|
|
0, 23, 23, 1, 622080, 0xbf221d96
|
|
0, 24, 24, 1, 622080, 0x43d90a62
|
|
0, 25, 25, 1, 622080, 0x267a57b6
|
|
0, 26, 26, 1, 622080, 0x88d942eb
|
|
0, 27, 27, 1, 622080, 0x34ff87bf
|
|
0, 28, 28, 1, 622080, 0xa849b5ec
|
|
0, 29, 29, 1, 622080, 0x8302f51f
|
|
0, 30, 30, 1, 622080, 0xac9e7315
|
|
0, 31, 31, 1, 622080, 0x38b284fc
|
|
0, 32, 32, 1, 622080, 0x1ff0c6c4
|
|
0, 33, 33, 1, 622080, 0x50bf1ba5
|
|
0, 34, 34, 1, 622080, 0xe9bd1240
|
|
0, 35, 35, 1, 622080, 0x22116da3
|
|
0, 36, 36, 1, 622080, 0x6f3e887a
|
|
0, 37, 37, 1, 622080, 0x46b82bc5
|
|
0, 38, 38, 1, 622080, 0xeaaf69ee
|