From a17db6215a1600021c9d4a7d6c7923ac5816ea70 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Date: Wed, 2 Apr 2025 15:06:43 +0200 Subject: [PATCH 20/23] avcodec/mjpegenc_huffman: Avoid AV_QSORT to sort entries by length It is unnecessary; all one needs to ensure that shorter codes precede longer ones is to get the number of codes for each length. Then the codes of length 1 occupy the first count[1] positions, the codes of length 2 the next count[2]... Doing so gives a 3.4% speedup of ff_mjpeg_encode_huffman_close() here; it also saves about 340B. The new code sorts codes of the same length in order of ascending symbol. The old code did not and therefore the FATE checksums needed to be updated. Due to MJPEG's 0xFF unescaping file sizes as well as file checksums needed to be updated; the decoded picture hashes stayed the same. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/mjpegenc_huffman.c | 33 ++++++--------- libavcodec/tests/mjpegenc_huffman.c | 6 ++- tests/ref/fate/jpg-icc | 6 +-- tests/ref/lavf/jpg | 4 +- tests/ref/lavf/smjpeg | 4 +- tests/ref/seek/vsynth_lena-mjpeg | 40 +++++++++---------- tests/ref/vsynth/vsynth1-mjpeg | 4 +- tests/ref/vsynth/vsynth1-mjpeg-422 | 4 +- tests/ref/vsynth/vsynth1-mjpeg-444 | 4 +- tests/ref/vsynth/vsynth1-mjpeg-huffman | 4 +- tests/ref/vsynth/vsynth1-mjpeg-trell | 4 +- tests/ref/vsynth/vsynth1-mjpeg-trell-huffman | 4 +- tests/ref/vsynth/vsynth2-mjpeg | 4 +- tests/ref/vsynth/vsynth2-mjpeg-422 | 4 +- tests/ref/vsynth/vsynth2-mjpeg-444 | 4 +- tests/ref/vsynth/vsynth2-mjpeg-huffman | 4 +- tests/ref/vsynth/vsynth2-mjpeg-trell | 4 +- tests/ref/vsynth/vsynth2-mjpeg-trell-huffman | 4 +- tests/ref/vsynth/vsynth3-mjpeg | 4 +- tests/ref/vsynth/vsynth3-mjpeg-422 | 4 +- tests/ref/vsynth/vsynth3-mjpeg-444 | 4 +- tests/ref/vsynth/vsynth3-mjpeg-huffman | 4 +- tests/ref/vsynth/vsynth3-mjpeg-trell | 4 +- tests/ref/vsynth/vsynth3-mjpeg-trell-huffman | 4 +- tests/ref/vsynth/vsynth_lena-mjpeg | 4 +- tests/ref/vsynth/vsynth_lena-mjpeg-422 | 4 +- tests/ref/vsynth/vsynth_lena-mjpeg-444 | 4 +- tests/ref/vsynth/vsynth_lena-mjpeg-huffman | 4 +- tests/ref/vsynth/vsynth_lena-mjpeg-trell | 4 +- .../vsynth/vsynth_lena-mjpeg-trell-huffman | 4 +- 30 files changed, 91 insertions(+), 98 deletions(-) diff --git a/libavcodec/mjpegenc_huffman.c b/libavcodec/mjpegenc_huffman.c index 16c0930524..bd31a29729 100644 --- a/libavcodec/mjpegenc_huffman.c +++ b/libavcodec/mjpegenc_huffman.c @@ -65,20 +65,6 @@ static int compare_by_prob(const void *a, const void *b) return a_val.prob - b_val.prob; } -/** - * Comparison function for two HuffTables by length - * - * @param a First HuffTable to compare - * @param b Second HuffTable to compare - * @return < 0 for less than, 0 for equals, > 0 for greater than - */ -static int compare_by_length(const void *a, const void *b) -{ - HuffTable a_val = *(HuffTable *) a; - HuffTable b_val = *(HuffTable *) b; - return a_val.length - b_val.length; -} - /** * Computes the length of the Huffman encoding for each distinct input value. * Uses package merge algorithm as follows: @@ -97,10 +83,12 @@ static int compare_by_length(const void *a, const void *b) * * @param prob_table input array of a PTable for each distinct input value * @param distincts output array of a HuffTable that will be populated by this function + * @param bits[out] the number of values of a given length * @param size size of the prob_table array * @param max_length max length of an encoding */ static void mjpegenc_huffman_compute_bits(PTable *prob_table, HuffTable *distincts, + uint8_t counts[/* max_length + 1 */], int size, int max_length) { PackageMergerList list_a, list_b, *to = &list_a, *from = &list_b, *temp; @@ -157,6 +145,7 @@ static void mjpegenc_huffman_compute_bits(PTable *prob_table, HuffTable *distinc for (i = 0; i < from->item_idx[min]; i++) { nbits[from->items[i]]++; } + memset(counts, 0, sizeof(counts[0]) * max_length + 1); // we don't want to return the 256 bit count (it was just in here to prevent // all 1s encoding) j = 0; @@ -164,6 +153,7 @@ static void mjpegenc_huffman_compute_bits(PTable *prob_table, HuffTable *distinc if (nbits[i] > 0) { distincts[j].code = i; distincts[j].length = nbits[i]; + counts[nbits[i]]++; j++; } } @@ -188,6 +178,7 @@ void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17], int nval; PTable val_counts[257]; HuffTable distincts[256]; + unsigned index[17]; av_assert1(max_nval <= FF_ARRAY_ELEMS(val_counts) - 1); @@ -202,12 +193,12 @@ void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17], } val_counts[nval].value = 256; val_counts[nval].prob = 0; - mjpegenc_huffman_compute_bits(val_counts, distincts, nval + 1, 16); - AV_QSORT(distincts, nval, HuffTable, compare_by_length); - memset(bits, 0, sizeof(bits[0]) * 17); - for (int i = 0; i < nval; i++) { - val[i] = distincts[i].code; - bits[distincts[i].length]++; - } + mjpegenc_huffman_compute_bits(val_counts, distincts, bits, nval + 1, 16); + + index[1] = 0; + for (int i = 1; i < 16; ++i) + index[i + 1] = index[i] + bits[i]; + for (int i = 0; i < nval; i++) + val[index[distincts[i].length]++] = distincts[i].code; } diff --git a/libavcodec/tests/mjpegenc_huffman.c b/libavcodec/tests/mjpegenc_huffman.c index 39ad10c454..6125776afc 100644 --- a/libavcodec/tests/mjpegenc_huffman.c +++ b/libavcodec/tests/mjpegenc_huffman.c @@ -36,6 +36,7 @@ static int check_lengths(int L, int expected_length, { HuffTable lengths[256]; PTable val_counts[256]; + uint8_t unused[17]; int actual_length = 0, i, j, k, prob, length; int ret = 0; double cantor_measure = 0; @@ -45,7 +46,7 @@ static int check_lengths(int L, int expected_length, val_counts[i] = (PTable){.value = i, .prob = probs[i]}; } - mjpegenc_huffman_compute_bits(val_counts, lengths, nprobs, L); + mjpegenc_huffman_compute_bits(val_counts, lengths, unused, nprobs, L); for (i = 0; i < nprobs; i++) { // Find the value's prob and length @@ -134,10 +135,11 @@ int main(int argc, char **argv) }; // Actual code lengths HuffTable distincts[5]; + uint8_t unused[17]; // Build optimal huffman tree using an internal function, to allow for // smaller-than-normal test cases. This mutates val_counts by sorting. - mjpegenc_huffman_compute_bits(val_counts, distincts, + mjpegenc_huffman_compute_bits(val_counts, distincts, unused, FF_ARRAY_ELEMS(distincts), 3); for (i = 0; i < FF_ARRAY_ELEMS(distincts); i++) { diff --git a/tests/ref/fate/jpg-icc b/tests/ref/fate/jpg-icc index ee1aca4df1..f081113c9d 100644 --- a/tests/ref/fate/jpg-icc +++ b/tests/ref/fate/jpg-icc @@ -1,5 +1,5 @@ -5c83d22a628d01c095704f58328f63c9 *tests/data/fate/jpg-icc.mjpeg -11016 tests/data/fate/jpg-icc.mjpeg +9cd60fcae22de246eb38891b64f53574 *tests/data/fate/jpg-icc.mjpeg +11012 tests/data/fate/jpg-icc.mjpeg #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo @@ -19,7 +19,7 @@ best_effort_timestamp_time=0.000000 duration=1 duration_time=0.040000 pkt_pos=0 -pkt_size=11016 +pkt_size=11012 width=128 height=128 crop_top=0 diff --git a/tests/ref/lavf/jpg b/tests/ref/lavf/jpg index 1420d46c6c..a3a5d17538 100644 --- a/tests/ref/lavf/jpg +++ b/tests/ref/lavf/jpg @@ -1,3 +1,3 @@ -64885ae70c3450b50196ce687a672dbe *tests/data/images/jpg/02.jpg -26062 tests/data/images/jpg/02.jpg +02c570d54499483977282f4ed5c7c0e3 *tests/data/images/jpg/02.jpg +26064 tests/data/images/jpg/02.jpg tests/data/images/jpg/%02d.jpg CRC=0x1c357a3e diff --git a/tests/ref/lavf/smjpeg b/tests/ref/lavf/smjpeg index 832b8e99a6..7bab0d94f1 100644 --- a/tests/ref/lavf/smjpeg +++ b/tests/ref/lavf/smjpeg @@ -1,3 +1,3 @@ -659757345ce01f8a5c4c1373bd073d41 *tests/data/lavf/lavf.smjpeg -728268 tests/data/lavf/lavf.smjpeg +091108f9382943669b86ecbe2a724022 *tests/data/lavf/lavf.smjpeg +728347 tests/data/lavf/lavf.smjpeg tests/data/lavf/lavf.smjpeg CRC=0x29d58fb8 diff --git a/tests/ref/seek/vsynth_lena-mjpeg b/tests/ref/seek/vsynth_lena-mjpeg index 41f0c615ea..b374fcd9ca 100644 --- a/tests/ref/seek/vsynth_lena-mjpeg +++ b/tests/ref/seek/vsynth_lena-mjpeg @@ -1,46 +1,46 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11224 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11222 ret: 0 st:-1 flags:0 ts:-1.000000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11224 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11222 ret: 0 st:-1 flags:1 ts: 1.894167 -ret: 0 st: 0 flags:1 dts: 1.880000 pts: 1.880000 pos: 592510 size: 14069 +ret: 0 st: 0 flags:1 dts: 1.880000 pts: 1.880000 pos: 592358 size: 14068 ret: 0 st: 0 flags:0 ts: 0.800000 -ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos: 232724 size: 12267 +ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos: 232624 size: 12259 ret:-1 st: 0 flags:1 ts:-0.320000 ret:-1 st:-1 flags:0 ts: 2.576668 ret: 0 st:-1 flags:1 ts: 1.470835 -ret: 0 st: 0 flags:1 dts: 1.480000 pts: 1.480000 pos: 453244 size: 13732 +ret: 0 st: 0 flags:1 dts: 1.480000 pts: 1.480000 pos: 453092 size: 13736 ret: 0 st: 0 flags:0 ts: 0.360000 -ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos: 104162 size: 11211 +ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos: 104126 size: 11212 ret:-1 st: 0 flags:1 ts:-0.760000 ret:-1 st:-1 flags:0 ts: 2.153336 ret: 0 st:-1 flags:1 ts: 1.047503 -ret: 0 st: 0 flags:1 dts: 1.040000 pts: 1.040000 pos: 307478 size: 12725 +ret: 0 st: 0 flags:1 dts: 1.040000 pts: 1.040000 pos: 307356 size: 12720 ret: 0 st: 0 flags:0 ts:-0.040000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11224 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11222 ret: 0 st: 0 flags:1 ts: 2.840000 -ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 620688 size: 14145 +ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 620522 size: 14138 ret: 0 st:-1 flags:0 ts: 1.730004 -ret: 0 st: 0 flags:1 dts: 1.720000 pts: 1.720000 pos: 536394 size: 13965 +ret: 0 st: 0 flags:1 dts: 1.720000 pts: 1.720000 pos: 536240 size: 13969 ret: 0 st:-1 flags:1 ts: 0.624171 -ret: 0 st: 0 flags:1 dts: 0.640000 pts: 0.640000 pos: 184556 size: 11973 +ret: 0 st: 0 flags:1 dts: 0.640000 pts: 0.640000 pos: 184488 size: 11963 ret: 0 st: 0 flags:0 ts:-0.480000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11224 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11222 ret: 0 st: 0 flags:1 ts: 2.400000 -ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 620688 size: 14145 +ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 620522 size: 14138 ret: 0 st:-1 flags:0 ts: 1.306672 -ret: 0 st: 0 flags:1 dts: 1.320000 pts: 1.320000 pos: 399054 size: 13347 +ret: 0 st: 0 flags:1 dts: 1.320000 pts: 1.320000 pos: 398920 size: 13343 ret: 0 st:-1 flags:1 ts: 0.200839 -ret: 0 st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos: 59930 size: 10980 +ret: 0 st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos: 59914 size: 10975 ret: 0 st: 0 flags:0 ts:-0.920000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11224 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5652 size: 11222 ret: 0 st: 0 flags:1 ts: 2.000000 -ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 620688 size: 14145 +ret: 0 st: 0 flags:1 dts: 1.960000 pts: 1.960000 pos: 620522 size: 14138 ret: 0 st:-1 flags:0 ts: 0.883340 -ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos: 257278 size: 12415 +ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos: 257176 size: 12411 ret:-1 st:-1 flags:1 ts:-0.222493 ret:-1 st: 0 flags:0 ts: 2.680000 ret: 0 st: 0 flags:1 ts: 1.560000 -ret: 0 st: 0 flags:1 dts: 1.560000 pts: 1.560000 pos: 480846 size: 13843 +ret: 0 st: 0 flags:1 dts: 1.560000 pts: 1.560000 pos: 480696 size: 13840 ret: 0 st:-1 flags:0 ts: 0.460008 -ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 137982 size: 11451 +ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 137932 size: 11451 ret:-1 st:-1 flags:1 ts:-0.645825 diff --git a/tests/ref/vsynth/vsynth1-mjpeg b/tests/ref/vsynth/vsynth1-mjpeg index 89ed7dd9c0..b81d4eeb1a 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg +++ b/tests/ref/vsynth/vsynth1-mjpeg @@ -1,4 +1,4 @@ -827f4da674de95b4227aadda8dbdaa77 *tests/data/fate/vsynth1-mjpeg.avi -1391436 tests/data/fate/vsynth1-mjpeg.avi +76fde1dcc129b6f1f67f2b93cb2e145e *tests/data/fate/vsynth1-mjpeg.avi +1391234 tests/data/fate/vsynth1-mjpeg.avi f46e58458ea57495a494650f7153829d *tests/data/fate/vsynth1-mjpeg.out.rawvideo stddev: 7.87 PSNR: 30.21 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-422 b/tests/ref/vsynth/vsynth1-mjpeg-422 index 095f2b2497..21db2ab23b 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-422 +++ b/tests/ref/vsynth/vsynth1-mjpeg-422 @@ -1,4 +1,4 @@ -eb0f7dc02efd5f4ab7ea3c73617801a3 *tests/data/fate/vsynth1-mjpeg-422.avi -1611674 tests/data/fate/vsynth1-mjpeg-422.avi +b1ee6bf4a661ef8578689059d4064057 *tests/data/fate/vsynth1-mjpeg-422.avi +1611644 tests/data/fate/vsynth1-mjpeg-422.avi bc62d53cce32a595a0c6e9c318e4ce3e *tests/data/fate/vsynth1-mjpeg-422.out.rawvideo stddev: 7.45 PSNR: 30.69 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-444 b/tests/ref/vsynth/vsynth1-mjpeg-444 index 77609c5a45..194efbc069 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-444 +++ b/tests/ref/vsynth/vsynth1-mjpeg-444 @@ -1,4 +1,4 @@ -bfde676dad356228f77aa319f046db8a *tests/data/fate/vsynth1-mjpeg-444.avi -1831606 tests/data/fate/vsynth1-mjpeg-444.avi +e68c62b1796a5ac024e7fd6a264f9fa9 *tests/data/fate/vsynth1-mjpeg-444.avi +1831406 tests/data/fate/vsynth1-mjpeg-444.avi c51ee467d03242dfc1e4536b0485d00f *tests/data/fate/vsynth1-mjpeg-444.out.rawvideo stddev: 7.37 PSNR: 30.77 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-huffman b/tests/ref/vsynth/vsynth1-mjpeg-huffman index 7591c5b393..6616c729c2 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-huffman +++ b/tests/ref/vsynth/vsynth1-mjpeg-huffman @@ -1,4 +1,4 @@ -827f4da674de95b4227aadda8dbdaa77 *tests/data/fate/vsynth1-mjpeg-huffman.avi -1391436 tests/data/fate/vsynth1-mjpeg-huffman.avi +76fde1dcc129b6f1f67f2b93cb2e145e *tests/data/fate/vsynth1-mjpeg-huffman.avi +1391234 tests/data/fate/vsynth1-mjpeg-huffman.avi f46e58458ea57495a494650f7153829d *tests/data/fate/vsynth1-mjpeg-huffman.out.rawvideo stddev: 7.87 PSNR: 30.21 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-trell b/tests/ref/vsynth/vsynth1-mjpeg-trell index e978c636de..8375221988 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-trell +++ b/tests/ref/vsynth/vsynth1-mjpeg-trell @@ -1,4 +1,4 @@ -e097a118dd37b3ab5607278d7b675ea3 *tests/data/fate/vsynth1-mjpeg-trell.avi -1361112 tests/data/fate/vsynth1-mjpeg-trell.avi +90b6f3d07eef09b96cfe6de0b9ae893d *tests/data/fate/vsynth1-mjpeg-trell.avi +1360912 tests/data/fate/vsynth1-mjpeg-trell.avi 548de4f6098cbc3d8b65574bb93faf09 *tests/data/fate/vsynth1-mjpeg-trell.out.rawvideo stddev: 7.67 PSNR: 30.42 MAXDIFF: 62 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman b/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman index f54b3663f1..aaa87e96d2 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman +++ b/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman @@ -1,4 +1,4 @@ -e097a118dd37b3ab5607278d7b675ea3 *tests/data/fate/vsynth1-mjpeg-trell-huffman.avi -1361112 tests/data/fate/vsynth1-mjpeg-trell-huffman.avi +90b6f3d07eef09b96cfe6de0b9ae893d *tests/data/fate/vsynth1-mjpeg-trell-huffman.avi +1360912 tests/data/fate/vsynth1-mjpeg-trell-huffman.avi 548de4f6098cbc3d8b65574bb93faf09 *tests/data/fate/vsynth1-mjpeg-trell-huffman.out.rawvideo stddev: 7.67 PSNR: 30.42 MAXDIFF: 62 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg b/tests/ref/vsynth/vsynth2-mjpeg index b3954bbb5f..bd9791c73f 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg +++ b/tests/ref/vsynth/vsynth2-mjpeg @@ -1,4 +1,4 @@ -2a959ad89469d88894d03dc9ce83e8b9 *tests/data/fate/vsynth2-mjpeg.avi -792950 tests/data/fate/vsynth2-mjpeg.avi +fd9061a1055cf2018fc4de38dc0dcf1d *tests/data/fate/vsynth2-mjpeg.avi +792756 tests/data/fate/vsynth2-mjpeg.avi fe498d9edaa947e435e4f353c194ef3d *tests/data/fate/vsynth2-mjpeg.out.rawvideo stddev: 4.87 PSNR: 34.37 MAXDIFF: 55 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-422 b/tests/ref/vsynth/vsynth2-mjpeg-422 index 4978501f35..f8049ef7ae 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-422 +++ b/tests/ref/vsynth/vsynth2-mjpeg-422 @@ -1,4 +1,4 @@ -67a35df8ef714568db0362f4dce400fb *tests/data/fate/vsynth2-mjpeg-422.avi -877718 tests/data/fate/vsynth2-mjpeg-422.avi +92567a5474b6decd50eb187f685aa6e2 *tests/data/fate/vsynth2-mjpeg-422.avi +877630 tests/data/fate/vsynth2-mjpeg-422.avi 7fae296bb4290d09971a629040eac072 *tests/data/fate/vsynth2-mjpeg-422.out.rawvideo stddev: 4.69 PSNR: 34.69 MAXDIFF: 55 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-444 b/tests/ref/vsynth/vsynth2-mjpeg-444 index 6321301571..e1b8edbd6b 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-444 +++ b/tests/ref/vsynth/vsynth2-mjpeg-444 @@ -1,4 +1,4 @@ -24e04a6e3b645b3314e522cc6b4d3fb7 *tests/data/fate/vsynth2-mjpeg-444.avi -1005214 tests/data/fate/vsynth2-mjpeg-444.avi +3ed573850f79cd56fe8ddef2bdf2c5cf *tests/data/fate/vsynth2-mjpeg-444.avi +1005048 tests/data/fate/vsynth2-mjpeg-444.avi fbeca59755dfb2b5e2f2c9781756d634 *tests/data/fate/vsynth2-mjpeg-444.out.rawvideo stddev: 4.57 PSNR: 34.93 MAXDIFF: 55 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-huffman b/tests/ref/vsynth/vsynth2-mjpeg-huffman index 17601e20f8..01bf3919f3 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-huffman +++ b/tests/ref/vsynth/vsynth2-mjpeg-huffman @@ -1,4 +1,4 @@ -2a959ad89469d88894d03dc9ce83e8b9 *tests/data/fate/vsynth2-mjpeg-huffman.avi -792950 tests/data/fate/vsynth2-mjpeg-huffman.avi +fd9061a1055cf2018fc4de38dc0dcf1d *tests/data/fate/vsynth2-mjpeg-huffman.avi +792756 tests/data/fate/vsynth2-mjpeg-huffman.avi fe498d9edaa947e435e4f353c194ef3d *tests/data/fate/vsynth2-mjpeg-huffman.out.rawvideo stddev: 4.87 PSNR: 34.37 MAXDIFF: 55 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-trell b/tests/ref/vsynth/vsynth2-mjpeg-trell index 993aaca60f..dca288e927 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-trell +++ b/tests/ref/vsynth/vsynth2-mjpeg-trell @@ -1,4 +1,4 @@ -d6a09ff8a46c297934496d8089cdd2a2 *tests/data/fate/vsynth2-mjpeg-trell.avi -734896 tests/data/fate/vsynth2-mjpeg-trell.avi +04a8a2d77a681f5781afdea8b6df367e *tests/data/fate/vsynth2-mjpeg-trell.avi +734780 tests/data/fate/vsynth2-mjpeg-trell.avi 8612dfee87e32268f6f533188a097785 *tests/data/fate/vsynth2-mjpeg-trell.out.rawvideo stddev: 5.03 PSNR: 34.10 MAXDIFF: 67 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman b/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman index de7a029315..ff1acb539b 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman +++ b/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman @@ -1,4 +1,4 @@ -d6a09ff8a46c297934496d8089cdd2a2 *tests/data/fate/vsynth2-mjpeg-trell-huffman.avi -734896 tests/data/fate/vsynth2-mjpeg-trell-huffman.avi +04a8a2d77a681f5781afdea8b6df367e *tests/data/fate/vsynth2-mjpeg-trell-huffman.avi +734780 tests/data/fate/vsynth2-mjpeg-trell-huffman.avi 8612dfee87e32268f6f533188a097785 *tests/data/fate/vsynth2-mjpeg-trell-huffman.out.rawvideo stddev: 5.03 PSNR: 34.10 MAXDIFF: 67 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth3-mjpeg b/tests/ref/vsynth/vsynth3-mjpeg index ebcbc784e5..ed170d029f 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg +++ b/tests/ref/vsynth/vsynth3-mjpeg @@ -1,4 +1,4 @@ -62a7732fcb9288a7223671b23ce06fa0 *tests/data/fate/vsynth3-mjpeg.avi -48170 tests/data/fate/vsynth3-mjpeg.avi +d64096d2f87e910e6b3a4ee87b002d2d *tests/data/fate/vsynth3-mjpeg.avi +48156 tests/data/fate/vsynth3-mjpeg.avi a6daba607898eb6e1a172c2368084a67 *tests/data/fate/vsynth3-mjpeg.out.rawvideo stddev: 8.61 PSNR: 29.43 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-422 b/tests/ref/vsynth/vsynth3-mjpeg-422 index cc2bbe2224..f36ce0444d 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-422 +++ b/tests/ref/vsynth/vsynth3-mjpeg-422 @@ -1,4 +1,4 @@ -9aa0f90dac7ef923a0be0d93ca7dc039 *tests/data/fate/vsynth3-mjpeg-422.avi -52620 tests/data/fate/vsynth3-mjpeg-422.avi +719eac54f73a371d6393dfe9ebe54cb2 *tests/data/fate/vsynth3-mjpeg-422.avi +52606 tests/data/fate/vsynth3-mjpeg-422.avi 7c64ab866add1e59fe7c34feed006df1 *tests/data/fate/vsynth3-mjpeg-422.out.rawvideo stddev: 8.22 PSNR: 29.82 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-444 b/tests/ref/vsynth/vsynth3-mjpeg-444 index 1149953b62..2c1660a941 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-444 +++ b/tests/ref/vsynth/vsynth3-mjpeg-444 @@ -1,4 +1,4 @@ -c063ea1cddfc2a360b92f05d1811ea93 *tests/data/fate/vsynth3-mjpeg-444.avi -53954 tests/data/fate/vsynth3-mjpeg-444.avi +08c7bd010cbb0057f867ee235cf029f3 *tests/data/fate/vsynth3-mjpeg-444.avi +53970 tests/data/fate/vsynth3-mjpeg-444.avi 8bbbfeab8b3f6788719e1f0f77ce8612 *tests/data/fate/vsynth3-mjpeg-444.out.rawvideo stddev: 8.21 PSNR: 29.84 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-huffman b/tests/ref/vsynth/vsynth3-mjpeg-huffman index 00a4cef6f0..858fdcf444 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-huffman +++ b/tests/ref/vsynth/vsynth3-mjpeg-huffman @@ -1,4 +1,4 @@ -62a7732fcb9288a7223671b23ce06fa0 *tests/data/fate/vsynth3-mjpeg-huffman.avi -48170 tests/data/fate/vsynth3-mjpeg-huffman.avi +d64096d2f87e910e6b3a4ee87b002d2d *tests/data/fate/vsynth3-mjpeg-huffman.avi +48156 tests/data/fate/vsynth3-mjpeg-huffman.avi a6daba607898eb6e1a172c2368084a67 *tests/data/fate/vsynth3-mjpeg-huffman.out.rawvideo stddev: 8.61 PSNR: 29.43 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-trell b/tests/ref/vsynth/vsynth3-mjpeg-trell index 5bfa3e0e12..79048a12cb 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-trell +++ b/tests/ref/vsynth/vsynth3-mjpeg-trell @@ -1,4 +1,4 @@ -7cbc02d85a572b5ea871c014ce27ab4c *tests/data/fate/vsynth3-mjpeg-trell.avi -47834 tests/data/fate/vsynth3-mjpeg-trell.avi +56a71287275ab4cda4b62580b875437f *tests/data/fate/vsynth3-mjpeg-trell.avi +47848 tests/data/fate/vsynth3-mjpeg-trell.avi 07822517628b20d54621df666ea79af3 *tests/data/fate/vsynth3-mjpeg-trell.out.rawvideo stddev: 8.27 PSNR: 29.78 MAXDIFF: 55 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman b/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman index 965a9e7792..755d625de2 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman +++ b/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman @@ -1,4 +1,4 @@ -7cbc02d85a572b5ea871c014ce27ab4c *tests/data/fate/vsynth3-mjpeg-trell-huffman.avi -47834 tests/data/fate/vsynth3-mjpeg-trell-huffman.avi +56a71287275ab4cda4b62580b875437f *tests/data/fate/vsynth3-mjpeg-trell-huffman.avi +47848 tests/data/fate/vsynth3-mjpeg-trell-huffman.avi 07822517628b20d54621df666ea79af3 *tests/data/fate/vsynth3-mjpeg-trell-huffman.out.rawvideo stddev: 8.27 PSNR: 29.78 MAXDIFF: 55 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg b/tests/ref/vsynth/vsynth_lena-mjpeg index f56928dd55..5737e71ab6 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg +++ b/tests/ref/vsynth/vsynth_lena-mjpeg @@ -1,4 +1,4 @@ -d8b968d6ecaa83bb120eb0dd08c3f6df *tests/data/fate/vsynth_lena-mjpeg.avi -635642 tests/data/fate/vsynth_lena-mjpeg.avi +eaf893d7b56dbc6cbb8a6da507f93926 *tests/data/fate/vsynth_lena-mjpeg.avi +635468 tests/data/fate/vsynth_lena-mjpeg.avi 095f88a721813c2a1c34b26303c1139a *tests/data/fate/vsynth_lena-mjpeg.out.rawvideo stddev: 4.33 PSNR: 35.40 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-422 b/tests/ref/vsynth/vsynth_lena-mjpeg-422 index bb862da006..3f95a7a0e9 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-422 +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-422 @@ -1,4 +1,4 @@ -494812cc00c2d51df2d9cbc03dc9eecd *tests/data/fate/vsynth_lena-mjpeg-422.avi -707466 tests/data/fate/vsynth_lena-mjpeg-422.avi +7690001a0545408b5f24fe759c317531 *tests/data/fate/vsynth_lena-mjpeg-422.avi +707328 tests/data/fate/vsynth_lena-mjpeg-422.avi 16d2be35266d303dff3361e4535e8dd8 *tests/data/fate/vsynth_lena-mjpeg-422.out.rawvideo stddev: 4.18 PSNR: 35.70 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-444 b/tests/ref/vsynth/vsynth_lena-mjpeg-444 index cef6dd9eec..998c08658e 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-444 +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-444 @@ -1,4 +1,4 @@ -52996e606d20fe34c327a206be066091 *tests/data/fate/vsynth_lena-mjpeg-444.avi -807472 tests/data/fate/vsynth_lena-mjpeg-444.avi +0226bade7ead7283c068dc3f087b0056 *tests/data/fate/vsynth_lena-mjpeg-444.avi +807310 tests/data/fate/vsynth_lena-mjpeg-444.avi 0db1c1942d750b107acf2acfbe08eacb *tests/data/fate/vsynth_lena-mjpeg-444.out.rawvideo stddev: 4.05 PSNR: 35.96 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-huffman b/tests/ref/vsynth/vsynth_lena-mjpeg-huffman index 5f5e19bb67..95239e4ac4 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-huffman +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-huffman @@ -1,4 +1,4 @@ -d8b968d6ecaa83bb120eb0dd08c3f6df *tests/data/fate/vsynth_lena-mjpeg-huffman.avi -635642 tests/data/fate/vsynth_lena-mjpeg-huffman.avi +eaf893d7b56dbc6cbb8a6da507f93926 *tests/data/fate/vsynth_lena-mjpeg-huffman.avi +635468 tests/data/fate/vsynth_lena-mjpeg-huffman.avi 095f88a721813c2a1c34b26303c1139a *tests/data/fate/vsynth_lena-mjpeg-huffman.out.rawvideo stddev: 4.33 PSNR: 35.40 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-trell b/tests/ref/vsynth/vsynth_lena-mjpeg-trell index ca7f1b1d03..88679a4c77 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-trell +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-trell @@ -1,4 +1,4 @@ -8217aef7ee16709b2c0591a9a28d9bb8 *tests/data/fate/vsynth_lena-mjpeg-trell.avi -582648 tests/data/fate/vsynth_lena-mjpeg-trell.avi +11855d1b59e8276db2ea2cf1719b9801 *tests/data/fate/vsynth_lena-mjpeg-trell.avi +582520 tests/data/fate/vsynth_lena-mjpeg-trell.avi 8c5c05e82a959ccc8b3c4ba8e4123bbe *tests/data/fate/vsynth_lena-mjpeg-trell.out.rawvideo stddev: 4.51 PSNR: 35.04 MAXDIFF: 60 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman b/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman index 2eb1658363..0baabc28d2 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman @@ -1,4 +1,4 @@ -8217aef7ee16709b2c0591a9a28d9bb8 *tests/data/fate/vsynth_lena-mjpeg-trell-huffman.avi -582648 tests/data/fate/vsynth_lena-mjpeg-trell-huffman.avi +11855d1b59e8276db2ea2cf1719b9801 *tests/data/fate/vsynth_lena-mjpeg-trell-huffman.avi +582520 tests/data/fate/vsynth_lena-mjpeg-trell-huffman.avi 8c5c05e82a959ccc8b3c4ba8e4123bbe *tests/data/fate/vsynth_lena-mjpeg-trell-huffman.out.rawvideo stddev: 4.51 PSNR: 35.04 MAXDIFF: 60 bytes: 7603200/ 7603200 -- 2.45.2