mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avfilter/vf_delogo: round to the closest value
When the interpolated value is divided by the sum of weights, no rounding is done, which means the value is truncated. This results in a slight bias towards dark green in the interpolated area. Rounding properly removes the bias. I measured this change to reduce the interpolation error by 1 to 2 % on average on a number of sample input and logo area combinations. Signed-off-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
c8905e0d67
commit
e74f1a121e
@ -61,7 +61,7 @@ static void apply_delogo(uint8_t *dst, int dst_linesize,
|
|||||||
unsigned int band, int show, int direct)
|
unsigned int band, int show, int direct)
|
||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
uint64_t interp, weightl, weightr, weightt, weightb;
|
uint64_t interp, weightl, weightr, weightt, weightb, weight;
|
||||||
uint8_t *xdst, *xsrc;
|
uint8_t *xdst, *xsrc;
|
||||||
|
|
||||||
uint8_t *topleft, *botleft, *topright;
|
uint8_t *topleft, *botleft, *topright;
|
||||||
@ -125,7 +125,8 @@ static void apply_delogo(uint8_t *dst, int dst_linesize,
|
|||||||
(botleft[x-logo_x1] +
|
(botleft[x-logo_x1] +
|
||||||
botleft[x-logo_x1-1] +
|
botleft[x-logo_x1-1] +
|
||||||
botleft[x-logo_x1+1]) * weightb;
|
botleft[x-logo_x1+1]) * weightb;
|
||||||
interp /= (weightl + weightr + weightt + weightb) * 3U;
|
weight = (weightl + weightr + weightt + weightb) * 3U;
|
||||||
|
interp = ROUNDED_DIV(interp, weight);
|
||||||
|
|
||||||
if (y >= logo_y+band && y < logo_y+logo_h-band &&
|
if (y >= logo_y+band && y < logo_y+logo_h-band &&
|
||||||
x >= logo_x+band && x < logo_x+logo_w-band) {
|
x >= logo_x+band && x < logo_x+logo_w-band) {
|
||||||
|
@ -1,110 +1,110 @@
|
|||||||
#tb 0: 32768/982057
|
#tb 0: 32768/982057
|
||||||
0, 0, 0, 1, 126720, 0xd975ec13
|
0, 0, 0, 1, 126720, 0xcefaec47
|
||||||
0, 1, 1, 1, 126720, 0xae91ecb1
|
0, 1, 1, 1, 126720, 0xa416ece5
|
||||||
0, 2, 2, 1, 126720, 0xae91ecb1
|
0, 2, 2, 1, 126720, 0xa416ece5
|
||||||
0, 3, 3, 1, 126720, 0xae91ecb1
|
0, 3, 3, 1, 126720, 0xa416ece5
|
||||||
0, 4, 4, 1, 126720, 0x6b51ecf3
|
0, 4, 4, 1, 126720, 0x60d6ed27
|
||||||
0, 5, 5, 1, 126720, 0x3015f463
|
0, 5, 5, 1, 126720, 0x259af497
|
||||||
0, 6, 6, 1, 126720, 0x68eaf4a3
|
0, 6, 6, 1, 126720, 0x5e6ff4d7
|
||||||
0, 7, 7, 1, 126720, 0xd68bf483
|
0, 7, 7, 1, 126720, 0xcc10f4b7
|
||||||
0, 8, 8, 1, 126720, 0xa8c0b7e3
|
0, 8, 8, 1, 126720, 0x2811b819
|
||||||
0, 9, 9, 1, 126720, 0x1bf4b8a3
|
0, 9, 9, 1, 126720, 0x9b36b8d9
|
||||||
0, 10, 10, 1, 126720, 0x1546b8e3
|
0, 10, 10, 1, 126720, 0x9488b919
|
||||||
0, 11, 11, 1, 126720, 0x9ac0b8c7
|
0, 11, 11, 1, 126720, 0x316cb902
|
||||||
0, 12, 12, 1, 126720, 0x7de8b913
|
0, 12, 12, 1, 126720, 0xfd2ab949
|
||||||
0, 13, 13, 1, 126720, 0xfd78bb83
|
0, 13, 13, 1, 126720, 0x7cc9bbb9
|
||||||
0, 14, 14, 1, 126720, 0x5bd9bc03
|
0, 14, 14, 1, 126720, 0xdb1bbc39
|
||||||
0, 15, 15, 1, 126720, 0xa6eebba7
|
0, 15, 15, 1, 126720, 0x3d9abbe2
|
||||||
0, 16, 16, 1, 126720, 0x42e4b8f3
|
0, 16, 16, 1, 126720, 0xc226b929
|
||||||
0, 17, 17, 1, 126720, 0xd97fadf0
|
0, 17, 17, 1, 126720, 0x3623ae2e
|
||||||
0, 18, 18, 1, 126720, 0xf28299ce
|
0, 18, 18, 1, 126720, 0x8aff9a0d
|
||||||
0, 19, 19, 1, 126720, 0x9843a809
|
0, 19, 19, 1, 126720, 0x7c85a832
|
||||||
0, 20, 20, 1, 126720, 0x619aba40
|
0, 20, 20, 1, 126720, 0xbe2fba7e
|
||||||
0, 21, 21, 1, 126720, 0xe216a860
|
0, 21, 21, 1, 126720, 0xb4eea89c
|
||||||
0, 22, 22, 1, 126720, 0xe2ccab69
|
0, 22, 22, 1, 126720, 0x2ce0ab91
|
||||||
0, 23, 23, 1, 126720, 0x4e2caa85
|
0, 23, 23, 1, 126720, 0x5808aace
|
||||||
0, 24, 24, 1, 126720, 0x11c9bca0
|
0, 24, 24, 1, 126720, 0x6e5ebcde
|
||||||
0, 25, 25, 1, 126720, 0xc13da72d
|
0, 25, 25, 1, 126720, 0x9202a769
|
||||||
0, 26, 26, 1, 126720, 0x894fed60
|
0, 26, 26, 1, 126720, 0x7df4eed2
|
||||||
0, 27, 27, 1, 126720, 0xa3f0b765
|
0, 27, 27, 1, 126720, 0x4763b8e7
|
||||||
0, 28, 28, 1, 126720, 0x645d06eb
|
0, 28, 28, 1, 126720, 0x06970809
|
||||||
0, 29, 29, 1, 126720, 0xfcfd88a8
|
0, 29, 29, 1, 126720, 0xf30189d0
|
||||||
0, 30, 30, 1, 126720, 0xe73704a2
|
0, 30, 30, 1, 126720, 0x4a6b05c1
|
||||||
0, 31, 31, 1, 126720, 0xa548bdf5
|
0, 31, 31, 1, 126720, 0x5caebf3d
|
||||||
0, 32, 32, 1, 126720, 0x2b0207b7
|
0, 32, 32, 1, 126720, 0x640d08d4
|
||||||
0, 33, 33, 1, 126720, 0x8fd6d84c
|
0, 33, 33, 1, 126720, 0x4b72d969
|
||||||
0, 34, 34, 1, 126720, 0x1c1fde83
|
0, 34, 34, 1, 126720, 0xbfe8df9d
|
||||||
0, 35, 35, 1, 126720, 0x1b69afd3
|
0, 35, 35, 1, 126720, 0xfc26b0f5
|
||||||
0, 36, 36, 1, 126720, 0x8c487b48
|
0, 36, 36, 1, 126720, 0x142b7c58
|
||||||
0, 37, 37, 1, 126720, 0x0e0fb90a
|
0, 37, 37, 1, 126720, 0x1b5dba4c
|
||||||
0, 38, 38, 1, 126720, 0x0b6ba745
|
0, 38, 38, 1, 126720, 0x5fcea883
|
||||||
0, 39, 39, 1, 126720, 0xfe09d22e
|
0, 39, 39, 1, 126720, 0xd9f7d365
|
||||||
0, 40, 40, 1, 126720, 0x686bff72
|
0, 40, 40, 1, 126720, 0xb8a300aa
|
||||||
0, 41, 41, 1, 126720, 0x5b7e4f75
|
0, 41, 41, 1, 126720, 0x675650a6
|
||||||
0, 42, 42, 1, 126720, 0x8fa61ee2
|
0, 42, 42, 1, 126720, 0xf06d2016
|
||||||
0, 43, 43, 1, 126720, 0xa26462ef
|
0, 43, 43, 1, 126720, 0x4ee56425
|
||||||
0, 44, 44, 1, 126720, 0x362d6606
|
0, 44, 44, 1, 126720, 0x98ec6723
|
||||||
0, 45, 45, 1, 126720, 0x53faca36
|
0, 45, 45, 1, 126720, 0x80d4cb5b
|
||||||
0, 46, 46, 1, 126720, 0xc0cacf66
|
0, 46, 46, 1, 126720, 0x8d1cd091
|
||||||
0, 47, 47, 1, 126720, 0xd3cbe8d2
|
0, 47, 47, 1, 126720, 0xaca8e9fe
|
||||||
0, 48, 48, 1, 126720, 0x2eb48a4c
|
0, 48, 48, 1, 126720, 0x1ae18b52
|
||||||
0, 49, 49, 1, 126720, 0x2d209870
|
0, 49, 49, 1, 126720, 0xe53d997a
|
||||||
0, 50, 50, 1, 126720, 0x416c8ed3
|
0, 50, 50, 1, 126720, 0xcb4b8ff3
|
||||||
0, 51, 51, 1, 126720, 0x6f01b114
|
0, 51, 51, 1, 126720, 0x9682b249
|
||||||
0, 52, 52, 1, 126720, 0x90b997d8
|
0, 52, 52, 1, 126720, 0xf4e19918
|
||||||
0, 53, 53, 1, 126720, 0x7ec89b01
|
0, 53, 53, 1, 126720, 0x28849c20
|
||||||
0, 54, 54, 1, 126720, 0xe0409cab
|
0, 54, 54, 1, 126720, 0xe4b89dda
|
||||||
0, 55, 55, 1, 126720, 0xb919d2e5
|
0, 55, 55, 1, 126720, 0xe981d407
|
||||||
0, 56, 56, 1, 126720, 0xffd04880
|
0, 56, 56, 1, 126720, 0x73ad4998
|
||||||
0, 57, 57, 1, 126720, 0x96d18686
|
0, 57, 57, 1, 126720, 0x346387bd
|
||||||
0, 58, 58, 1, 126720, 0x7c038101
|
0, 58, 58, 1, 126720, 0xa07c822f
|
||||||
0, 59, 59, 1, 126720, 0x1c21af69
|
0, 59, 59, 1, 126720, 0xd911b08b
|
||||||
0, 60, 60, 1, 126720, 0x24c56040
|
0, 60, 60, 1, 126720, 0x7a1b6161
|
||||||
0, 61, 61, 1, 126720, 0x0e9bf22d
|
0, 61, 61, 1, 126720, 0xa451f33f
|
||||||
0, 62, 62, 1, 126720, 0xc3ead681
|
0, 62, 62, 1, 126720, 0xb9aed79d
|
||||||
0, 63, 63, 1, 126720, 0xad8df3c2
|
0, 63, 63, 1, 126720, 0x50c6f4e5
|
||||||
0, 64, 64, 1, 126720, 0x5aa9d7ba
|
0, 64, 64, 1, 126720, 0x6ed9d8e3
|
||||||
0, 65, 65, 1, 126720, 0xf19b3400
|
0, 65, 65, 1, 126720, 0xea6d352a
|
||||||
0, 66, 66, 1, 126720, 0xf87e3604
|
0, 66, 66, 1, 126720, 0xb8f4373b
|
||||||
0, 67, 67, 1, 126720, 0x2ca02d20
|
0, 67, 67, 1, 126720, 0xf5a52e4c
|
||||||
0, 68, 68, 1, 126720, 0xa28fbbd3
|
0, 68, 68, 1, 126720, 0xf8dbbd01
|
||||||
0, 69, 69, 1, 126720, 0xe19ceb00
|
0, 69, 69, 1, 126720, 0x7395ec3c
|
||||||
0, 70, 70, 1, 126720, 0xfb4745d7
|
0, 70, 70, 1, 126720, 0x1249470b
|
||||||
0, 71, 71, 1, 126720, 0x49390fda
|
0, 71, 71, 1, 126720, 0xf12a1105
|
||||||
0, 72, 72, 1, 126720, 0xf96cd182
|
0, 72, 72, 1, 126720, 0xef38d2ba
|
||||||
0, 73, 73, 1, 126720, 0xd9ba5903
|
0, 73, 73, 1, 126720, 0xa1325a34
|
||||||
0, 74, 74, 1, 126720, 0x2b733180
|
0, 74, 74, 1, 126720, 0xc38232b1
|
||||||
0, 75, 75, 1, 126720, 0x853df361
|
0, 75, 75, 1, 126720, 0x08f9f498
|
||||||
0, 76, 76, 1, 126720, 0x8e550793
|
0, 76, 76, 1, 126720, 0xf6f208c5
|
||||||
0, 77, 77, 1, 126720, 0x38ad1eba
|
0, 77, 77, 1, 126720, 0x694b1fed
|
||||||
0, 78, 78, 1, 126720, 0x97061e8d
|
0, 78, 78, 1, 126720, 0xac811fc2
|
||||||
0, 79, 79, 1, 126720, 0x555247d1
|
0, 79, 79, 1, 126720, 0x2f2b4903
|
||||||
0, 80, 80, 1, 126720, 0xfc51abde
|
0, 80, 80, 1, 126720, 0x4a4aad01
|
||||||
0, 81, 81, 1, 126720, 0x63dd56bd
|
0, 81, 81, 1, 126720, 0xce4557e3
|
||||||
0, 82, 82, 1, 126720, 0xf7841010
|
0, 82, 82, 1, 126720, 0x257a1145
|
||||||
0, 83, 83, 1, 126720, 0x1f5c0aa0
|
0, 83, 83, 1, 126720, 0x94580be2
|
||||||
0, 84, 84, 1, 126720, 0xce64ed63
|
0, 84, 84, 1, 126720, 0x2422ee8a
|
||||||
0, 85, 85, 1, 126720, 0x03930478
|
0, 85, 85, 1, 126720, 0x801905b7
|
||||||
0, 86, 86, 1, 126720, 0x7aea387f
|
0, 86, 86, 1, 126720, 0x4de639ba
|
||||||
0, 87, 87, 1, 126720, 0xfc6f2e64
|
0, 87, 87, 1, 126720, 0x24d22fa8
|
||||||
0, 88, 88, 1, 126720, 0x7bdce1d1
|
0, 88, 88, 1, 126720, 0xbb38e309
|
||||||
0, 89, 89, 1, 126720, 0x2a4913dc
|
0, 89, 89, 1, 126720, 0xb8ec150d
|
||||||
0, 90, 90, 1, 126720, 0x7ad90d87
|
0, 90, 90, 1, 126720, 0xc9fb0eb7
|
||||||
0, 91, 91, 1, 126720, 0x55480e14
|
0, 91, 91, 1, 126720, 0xb6e40f48
|
||||||
0, 92, 92, 1, 126720, 0xbecc87f4
|
0, 92, 92, 1, 126720, 0xd7028922
|
||||||
0, 93, 93, 1, 126720, 0x78bdd1f8
|
0, 93, 93, 1, 126720, 0x3a24d332
|
||||||
0, 94, 94, 1, 126720, 0x8ee9a460
|
0, 94, 94, 1, 126720, 0x06b2a598
|
||||||
0, 95, 95, 1, 126720, 0x2448194c
|
0, 95, 95, 1, 126720, 0xf2041a92
|
||||||
0, 96, 96, 1, 126720, 0x641a8bd0
|
0, 96, 96, 1, 126720, 0xc58a8d10
|
||||||
0, 97, 97, 1, 126720, 0x82dc27ff
|
0, 97, 97, 1, 126720, 0x0d99293d
|
||||||
0, 98, 98, 1, 126720, 0x25fee625
|
0, 98, 98, 1, 126720, 0x7b72e768
|
||||||
0, 99, 99, 1, 126720, 0x8156f7c0
|
0, 99, 99, 1, 126720, 0x0c62f900
|
||||||
0, 100, 100, 1, 126720, 0x724bbb10
|
0, 100, 100, 1, 126720, 0xcdb7bc31
|
||||||
0, 101, 101, 1, 126720, 0xd0cabc9a
|
0, 101, 101, 1, 126720, 0x04d3bdc2
|
||||||
0, 102, 102, 1, 126720, 0x7a769176
|
0, 102, 102, 1, 126720, 0x0355928e
|
||||||
0, 103, 103, 1, 126720, 0xf2ee0c0c
|
0, 103, 103, 1, 126720, 0x84310d32
|
||||||
0, 104, 104, 1, 126720, 0xccabeac0
|
0, 104, 104, 1, 126720, 0xc202ebe6
|
||||||
0, 105, 105, 1, 126720, 0x8fb96efc
|
0, 105, 105, 1, 126720, 0x0cf2703a
|
||||||
0, 106, 106, 1, 126720, 0x67d5583c
|
0, 106, 106, 1, 126720, 0xe4c95979
|
||||||
0, 107, 107, 1, 126720, 0xcdc65fff
|
0, 107, 107, 1, 126720, 0x4f846144
|
||||||
0, 108, 108, 1, 126720, 0x7d241678
|
0, 108, 108, 1, 126720, 0x3f1a17a4
|
||||||
|
Loading…
Reference in New Issue
Block a user