Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/2] fate: add mse and peak error comparison with reference image
@ 2025-01-22  2:04 pal
  2025-01-22  2:04 ` [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests pal
  0 siblings, 1 reply; 5+ messages in thread
From: pal @ 2025-01-22  2:04 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Pierre-Anthony Lemieux

From: Pierre-Anthony Lemieux <pal@palemieux.com>

As discussed at [1], this draft patch adds the ability to create FATE tests that
compare FFMPEG processing results with a reference image, using peak error and mse
error metrics.

[1] https://ffmpeg.org/pipermail/ffmpeg-devel/2024-November/335778.html

This is useful for testing codecs that are not necessarily bit accurate across platforms.

The patch applies this new test metric to a single JPEG 2000 conformance file.

Looking forward to your feedback on the overall approach before I extend it to all lossly
JPEG 2000 conformance files.

---
 libavfilter/vf_psnr.c | 70 +++++++++++++++++++++++++++++++++++--------
 tests/fate-run.sh     | 32 ++++++++++++++++++++
 2 files changed, 90 insertions(+), 12 deletions(-)

diff --git a/libavfilter/vf_psnr.c b/libavfilter/vf_psnr.c
index 4a173c73d9..3f55562cec 100644
--- a/libavfilter/vf_psnr.c
+++ b/libavfilter/vf_psnr.c
@@ -36,6 +36,11 @@
 #include "framesync.h"
 #include "psnr.h"
 
+typedef struct Score {
+    uint64_t mse;
+    uint64_t peak;
+} Score;
+
 typedef struct PSNRContext {
     const AVClass *class;
     FFFrameSync fs;
@@ -47,7 +52,9 @@ typedef struct PSNRContext {
     int stats_header_written;
     int stats_add_max;
     int max[4], average_max;
+    int peak[4];
     int is_rgb;
+    int bpp;
     uint8_t rgba_map[4];
     char comps[4];
     int nb_components;
@@ -55,7 +62,7 @@ typedef struct PSNRContext {
     int planewidth[4];
     int planeheight[4];
     double planeweight[4];
-    uint64_t **score;
+    Score **score;
     PSNRDSPContext dsp;
 } PSNRContext;
 
@@ -65,7 +72,7 @@ typedef struct PSNRContext {
 static const AVOption psnr_options[] = {
     {"stats_file", "Set file where to store per-frame difference information", OFFSET(stats_file_str), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
     {"f",          "Set file where to store per-frame difference information", OFFSET(stats_file_str), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
-    {"stats_version", "Set the format version for the stats file.",               OFFSET(stats_version),  AV_OPT_TYPE_INT,    {.i64=1},    1, 2, FLAGS },
+    {"stats_version", "Set the format version for the stats file.",               OFFSET(stats_version),  AV_OPT_TYPE_INT,    {.i64=1},    1, 3, FLAGS },
     {"output_max",  "Add raw stats (max values) to the output log.",            OFFSET(stats_add_max), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
     { NULL }
 };
@@ -89,17 +96,18 @@ typedef struct ThreadData {
     int ref_linesize[4];
     int planewidth[4];
     int planeheight[4];
-    uint64_t **score;
+    int bpp;
+    Score **score;
     int nb_components;
     PSNRDSPContext *dsp;
 } ThreadData;
 
 static
-int compute_images_mse(AVFilterContext *ctx, void *arg,
+int compute_images_stats(AVFilterContext *ctx, void *arg,
                        int jobnr, int nb_jobs)
 {
     ThreadData *td = arg;
-    uint64_t *score = td->score[jobnr];
+    Score *score = td->score[jobnr];
 
     for (int c = 0; c < td->nb_components; c++) {
         const int outw = td->planewidth[c];
@@ -111,12 +119,31 @@ int compute_images_mse(AVFilterContext *ctx, void *arg,
         const uint8_t *main_line = td->main_data[c] + main_linesize * slice_start;
         const uint8_t *ref_line = td->ref_data[c] + ref_linesize * slice_start;
         uint64_t m = 0;
+        uint64_t p = 0;
         for (int i = slice_start; i < slice_end; i++) {
             m += td->dsp->sse_line(main_line, ref_line, outw);
+            if (td->bpp > 8) {
+                uint16_t *mp = (uint16_t*) main_line;
+                uint16_t *rp = (uint16_t*) ref_line;
+                for (int j = 0; j < outw; j++) {
+                    int diff = abs(*mp++ - *rp++);
+                    if(diff > p)
+                        p = diff;
+                }
+            } else {
+                uint8_t *mp = main_line;
+                uint8_t *rp = ref_line;
+                for (int j = 0; j < outw; j++) {
+                    int diff = abs(*mp++ - *rp++);
+                    if(diff > p)
+                        p = diff;
+                }
+            }
             ref_line += ref_linesize;
             main_line += main_linesize;
         }
-        score[c] = m;
+        score[c].mse = m;
+        score[c].peak = p;
     }
 
     return 0;
@@ -163,6 +190,7 @@ static int do_psnr(FFFrameSync *fs)
         td.ref_linesize[c] = ref->linesize[c];
         td.planewidth[c] = s->planewidth[c];
         td.planeheight[c] = s->planeheight[c];
+        td.bpp = s->bpp;
     }
 
     if (master->color_range != ref->color_range) {
@@ -172,12 +200,15 @@ static int do_psnr(FFFrameSync *fs)
                av_color_range_name(ref->color_range));
     }
 
-    ff_filter_execute(ctx, compute_images_mse, &td, NULL,
+    ff_filter_execute(ctx, compute_images_stats, &td, NULL,
                       FFMIN(s->planeheight[1], s->nb_threads));
 
     for (int j = 0; j < s->nb_threads; j++) {
-        for (int c = 0; c < s->nb_components; c++)
-            comp_sum[c] += s->score[j][c];
+        for (int c = 0; c < s->nb_components; c++) {
+            comp_sum[c] += s->score[j][c].mse;
+            if (s->score[j][c].peak > s->peak[c])
+                s->peak[c] = s->score[j][c].peak;
+        }
     }
 
     for (int c = 0; c < s->nb_components; c++)
@@ -204,8 +235,8 @@ static int do_psnr(FFFrameSync *fs)
     set_meta(metadata, "lavfi.psnr.psnr_avg", 0, get_psnr(mse, 1, s->average_max));
 
     if (s->stats_file) {
-        if (s->stats_version == 2 && !s->stats_header_written) {
-            fprintf(s->stats_file, "psnr_log_version:2 fields:n");
+        if (s->stats_version >= 2 && !s->stats_header_written) {
+            fprintf(s->stats_file, "psnr_log_version:3 fields:n");
             fprintf(s->stats_file, ",mse_avg");
             for (int j = 0; j < s->nb_components; j++) {
                 fprintf(s->stats_file, ",mse_%c", s->comps[j]);
@@ -219,6 +250,11 @@ static int do_psnr(FFFrameSync *fs)
                 for (int j = 0; j < s->nb_components; j++) {
                     fprintf(s->stats_file, ",max_%c", s->comps[j]);
                 }
+                if (s->stats_version == 3) {
+                    for (int j = 0; j < s->nb_components; j++) {
+                        fprintf(s->stats_file, ",peak_%c", s->comps[j]);
+                    }
+                }
             }
             fprintf(s->stats_file, "\n");
             s->stats_header_written = 1;
@@ -234,12 +270,18 @@ static int do_psnr(FFFrameSync *fs)
             fprintf(s->stats_file, "psnr_%c:%0.2f ", s->comps[j],
                     get_psnr(comp_mse[c], 1, s->max[c]));
         }
-        if (s->stats_version == 2 && s->stats_add_max) {
+        if (s->stats_version >= 2 && s->stats_add_max) {
             fprintf(s->stats_file, "max_avg:%d ", s->average_max);
             for (int j = 0; j < s->nb_components; j++) {
                 int c = s->is_rgb ? s->rgba_map[j] : j;
                 fprintf(s->stats_file, "max_%c:%d ", s->comps[j], s->max[c]);
             }
+            if (s->stats_version == 3) {
+                for (int j = 0; j < s->nb_components; j++) {
+                    int c = s->is_rgb ? s->rgba_map[j] : j;
+                    fprintf(s->stats_file, "peak_%c:%d ", s->comps[j], s->peak[c]);
+                }
+            }
         }
         fprintf(s->stats_file, "\n");
     }
@@ -314,6 +356,9 @@ static int config_input_ref(AVFilterLink *inlink)
     s->max[2] = (1 << desc->comp[2].depth) - 1;
     s->max[3] = (1 << desc->comp[3].depth) - 1;
 
+    for (j = 0; j < s->nb_components; j++)
+        s->peak[j] = 0;
+
     s->is_rgb = ff_fill_rgba_map(s->rgba_map, inlink->format) >= 0;
     s->comps[0] = s->is_rgb ? 'r' : 'y' ;
     s->comps[1] = s->is_rgb ? 'g' : 'u' ;
@@ -334,6 +379,7 @@ static int config_input_ref(AVFilterLink *inlink)
     }
     s->average_max = lrint(average_max);
 
+    s->bpp = desc->comp[0].depth;
     ff_psnr_init(&s->dsp, desc->comp[0].depth);
 
     s->score = av_calloc(s->nb_threads, sizeof(*s->score));
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 45dcb6e8dc..27c2e68ee0 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -72,6 +72,38 @@ do_tiny_psnr(){
     fi
 }
 
+# $1 is the reference image
+# $2 is the test image
+# $3 is the maximum MSE allowed across components
+# $4 is the maximum peak error allowed across components
+mse_peak_error(){
+    stats=$(run ffmpeg${PROGSUF}${EXECSUF} -i "$1" -i "$2" -filter_complex "psnr=stats_version=3:output_max=1:f=-" -f null - -hide_banner -loglevel error)
+    for item in y u v r g b a; do
+        mse=$(echo $stats | sed -nE "s/.*mse_$item:([0-9.]+).*/\1/p")
+        if [ -z "$mse" ]; then
+            continue
+        fi
+        mse_exceeded=$(echo "$mse > $3" | bc -l)
+        if [ "$mse_exceeded" != 0 ]; then
+            echo "MSE value $mse exceeded the specified maximum $3"
+            echo $stats
+            return 1
+        fi
+        peak=$(echo $stats | sed -nE "s/.*peak_$item:([0-9.]+).*/\1/p")
+        if [ -z "$peak" ]; then
+            echo "peak_$item value missing when mse_$item was present"
+        fi
+        peak_exceeded=$(echo "$peak > $4" | bc -l)
+        if [ "$peak_exceeded" != 0 ]; then
+            echo "Peak value $peak exceeded the specified maximum $4"
+            echo $stats
+            return 1
+        fi
+    done
+    echo "Passed"
+    return 0
+}
+
 oneoff(){
     do_tiny_psnr "$1" "$2" MAXDIFF
 }
-- 
2.34.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests
  2025-01-22  2:04 [FFmpeg-devel] [PATCH 1/2] fate: add mse and peak error comparison with reference image pal
@ 2025-01-22  2:04 ` pal
  2025-01-22  2:20   ` Pierre-Anthony Lemieux
  0 siblings, 1 reply; 5+ messages in thread
From: pal @ 2025-01-22  2:04 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Pierre-Anthony Lemieux

From: Pierre-Anthony Lemieux <pal@palemieux.com>

---
 tests/fate/jpeg2000.mak                  | 126 ++++++++++++++++++++++-
 tests/ref/fate/jpeg2000dec-ds0_hm_15_b8  |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_02_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_02_b12 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_03_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_03_b14 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_04_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_04_b12 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_05_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_05_b12 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_07_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_07_b15 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_07_b16 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_08_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_08_b15 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_08_b16 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_09_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_10_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_11_b10 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_12_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_14_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_15_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_15_b14 |   6 ++
 tests/ref/fate/jpeg2000dec-ds0_ht_16_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_01_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_01_b12 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_02_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_02_b12 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_03_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_03_b12 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_04_b9  |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_05_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-ds1_ht_06_b11 |   6 ++
 tests/ref/fate/jpeg2000dec-hifi_ht1_02   |   6 ++
 tests/ref/fate/jpeg2000dec-hifi_p1_02    |   6 ++
 tests/ref/fate/jpeg2000dec-p1_01         |   6 ++
 tests/ref/fate/jpeg2000dec-p1_02         |   6 ++
 tests/ref/fate/jpeg2000dec-p1_03         |   6 ++
 tests/ref/fate/jpeg2000dec-p1_04         |   1 +
 tests/ref/fate/jpeg2000dec-p1_05         |   6 ++
 tests/ref/fate/jpeg2000dec-p1_06         |   6 ++
 41 files changed, 360 insertions(+), 1 deletion(-)
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_hm_15_b8
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_02_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_02_b12
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_03_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_03_b14
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_04_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_04_b12
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_05_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_05_b12
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_07_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_07_b15
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_07_b16
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_08_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_08_b15
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_08_b16
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_09_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_10_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_11_b10
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_12_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_14_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_15_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_15_b14
 create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_16_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_01_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_01_b12
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_02_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_02_b12
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_03_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_03_b12
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_04_b9
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_05_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_06_b11
 create mode 100644 tests/ref/fate/jpeg2000dec-hifi_ht1_02
 create mode 100644 tests/ref/fate/jpeg2000dec-hifi_p1_02
 create mode 100644 tests/ref/fate/jpeg2000dec-p1_01
 create mode 100644 tests/ref/fate/jpeg2000dec-p1_02
 create mode 100644 tests/ref/fate/jpeg2000dec-p1_03
 create mode 100644 tests/ref/fate/jpeg2000dec-p1_04
 create mode 100644 tests/ref/fate/jpeg2000dec-p1_05
 create mode 100644 tests/ref/fate/jpeg2000dec-p1_06

diff --git a/tests/fate/jpeg2000.mak b/tests/fate/jpeg2000.mak
index a99b0c4e0c..75656feb12 100644
--- a/tests/fate/jpeg2000.mak
+++ b/tests/fate/jpeg2000.mak
@@ -60,8 +60,132 @@ fate-jpeg2000dec-p0_15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpe
 FATE_JPEG2000DEC += fate-jpeg2000dec-p0_16
 fate-jpeg2000dec-p0_16: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_16.j2k
 
+FATE_JPEG2000DEC += fate-jpeg2000dec-p1_01
+fate-jpeg2000dec-p1_01: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_01.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-p1_02
+fate-jpeg2000dec-p1_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_02.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-p1_03
+fate-jpeg2000dec-p1_03: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_03.j2k
+
+# The MSE and Peak Error values are 16x those found in ISO/IEC 15444-4: the latter assume 12-bit samples while FFMPEG decodes
+# to 16-bit samples
+FATE_JPEG2000DEC += fate-jpeg2000dec-p1_04
+fate-jpeg2000dec-p1_04: CMD = mse_peak_error $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_04.j2k \
+																							$(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/c1p1_04-0.j2c \
+																							49280 9984
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-p1_05
+fate-jpeg2000dec-p1_05: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_05.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-p1_06
+fate-jpeg2000dec-p1_06: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_06.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-hifi_ht1_02
+fate-jpeg2000dec-hifi_ht1_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/hifi_ht1_02.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-hifi_p1_02
+fate-jpeg2000dec-hifi_p1_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/hifi_p1_02.j2k
+
 FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_01_b11
-fate-jpeg2000dec-ds0_ht_01_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/ds0_ht_01_b11.j2k
+fate-jpeg2000dec-ds0_ht_01_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_01_bset/ds0_ht_01_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_02_b11
+fate-jpeg2000dec-ds0_ht_02_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_02_bset/ds0_ht_02_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_02_b12
+fate-jpeg2000dec-ds0_ht_02_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_02_bset/ds0_ht_02_b12.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_03_b11
+fate-jpeg2000dec-ds0_ht_03_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_03_bset/ds0_ht_03_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_03_b14
+fate-jpeg2000dec-ds0_ht_03_b14: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_03_bset/ds0_ht_03_b14.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_04_b11
+fate-jpeg2000dec-ds0_ht_04_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_04_bset/ds0_ht_04_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_04_b12
+fate-jpeg2000dec-ds0_ht_04_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_04_bset/ds0_ht_04_b12.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_05_b11
+fate-jpeg2000dec-ds0_ht_05_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_05_bset/ds0_ht_05_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_05_b12
+fate-jpeg2000dec-ds0_ht_05_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_05_bset/ds0_ht_05_b12.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_07_b11
+fate-jpeg2000dec-ds0_ht_07_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_07_bset/ds0_ht_07_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_07_b15
+fate-jpeg2000dec-ds0_ht_07_b15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_07_bset/ds0_ht_07_b15.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_07_b16
+fate-jpeg2000dec-ds0_ht_07_b16: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_07_bset/ds0_ht_07_b16.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_08_b11
+fate-jpeg2000dec-ds0_ht_08_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_08_bset/ds0_ht_08_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_08_b15
+fate-jpeg2000dec-ds0_ht_08_b15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_08_bset/ds0_ht_08_b15.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_08_b16
+fate-jpeg2000dec-ds0_ht_08_b16: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_08_bset/ds0_ht_08_b16.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_09_b11
+fate-jpeg2000dec-ds0_ht_09_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_09_bset/ds0_ht_09_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_10_b11
+fate-jpeg2000dec-ds0_ht_10_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_10_bset/ds0_ht_10_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_11_b10
+fate-jpeg2000dec-ds0_ht_11_b10: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_11_bset/ds0_ht_11_b10.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_12_b11
+fate-jpeg2000dec-ds0_ht_12_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_12_bset/ds0_ht_12_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_14_b11
+fate-jpeg2000dec-ds0_ht_14_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_14_bset/ds0_ht_14_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_hm_15_b8
+fate-jpeg2000dec-ds0_hm_15_b8: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_15_bset/ds0_hm_15_b8.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_15_b11
+fate-jpeg2000dec-ds0_ht_15_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_15_bset/ds0_ht_15_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_15_b14
+fate-jpeg2000dec-ds0_ht_15_b14: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_15_bset/ds0_ht_15_b14.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_16_b11
+fate-jpeg2000dec-ds0_ht_16_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_16_bset/ds0_ht_16_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_01_b11
+fate-jpeg2000dec-ds1_ht_01_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_01_bset/ds1_ht_01_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_01_b12
+fate-jpeg2000dec-ds1_ht_01_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_01_bset/ds1_ht_01_b12.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_02_b11
+fate-jpeg2000dec-ds1_ht_02_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_02_bset/ds1_ht_02_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_02_b12
+fate-jpeg2000dec-ds1_ht_02_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_02_bset/ds1_ht_02_b12.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_03_b11
+fate-jpeg2000dec-ds1_ht_03_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_03_bset/ds1_ht_03_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_03_b12
+fate-jpeg2000dec-ds1_ht_03_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_03_bset/ds1_ht_03_b12.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_04_b9
+fate-jpeg2000dec-ds1_ht_04_b9: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_04_bset/ds1_ht_04_b9.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_05_b11
+fate-jpeg2000dec-ds1_ht_05_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_05_bset/ds1_ht_05_b11.j2k
+
+FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_06_b11
+fate-jpeg2000dec-ds1_ht_06_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_06_bset/ds1_ht_06_b11.j2k
 
 FATE_JPEG2000DEC += $(FATE_JPEG2000DEC-yes)
 
diff --git a/tests/ref/fate/jpeg2000dec-ds0_hm_15_b8 b/tests/ref/fate/jpeg2000dec-ds0_hm_15_b8
new file mode 100644
index 0000000000..e508fb61e0
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_hm_15_b8
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 256x256
+#sar 0: 0/1
+0,          0,          0,        1,    65536, 0x252408c0
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_02_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b11
new file mode 100644
index 0000000000..0ec1189148
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 64x126
+#sar 0: 0/1
+0,          0,          0,        1,     8064, 0x32fbc710
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_02_b12 b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b12
new file mode 100644
index 0000000000..f96d24c121
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b12
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 64x126
+#sar 0: 0/1
+0,          0,          0,        1,     8064, 0xd634c70c
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_03_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b11
new file mode 100644
index 0000000000..c2fb29eb42
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 256x256
+#sar 0: 0/1
+0,          0,          0,        1,    65536, 0x33783820
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_03_b14 b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b14
new file mode 100644
index 0000000000..e508fb61e0
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b14
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 256x256
+#sar 0: 0/1
+0,          0,          0,        1,    65536, 0x252408c0
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_04_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b11
new file mode 100644
index 0000000000..84a5f12d1b
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+0,          0,          0,        1,   921600, 0xfd6c1b89
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_04_b12 b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b12
new file mode 100644
index 0000000000..4c3ec322e4
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b12
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+0,          0,          0,        1,   921600, 0x38311bba
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_05_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b11
new file mode 100644
index 0000000000..218240db0a
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1024x1024
+#sar 0: 0/1
+0,          0,          0,        1,  2621440, 0xe5b6ada4
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_05_b12 b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b12
new file mode 100644
index 0000000000..410a08a62c
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b12
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1024x1024
+#sar 0: 0/1
+0,          0,          0,        1,  2621440, 0x9608ad8b
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_07_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b11
new file mode 100644
index 0000000000..add2665ea1
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 2048x2048
+#sar 0: 0/1
+0,          0,          0,        1, 25165824, 0x5992b06f
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_07_b15 b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b15
new file mode 100644
index 0000000000..865ba44b50
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b15
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 2048x2048
+#sar 0: 0/1
+0,          0,          0,        1, 25165824, 0x17b04b02
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_07_b16 b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b16
new file mode 100644
index 0000000000..e561a1b780
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b16
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 2048x2048
+#sar 0: 0/1
+0,          0,          0,        1, 25165824, 0x9685aad6
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_08_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b11
new file mode 100644
index 0000000000..456acc586c
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 513x3072
+#sar 0: 0/1
+0,          0,          0,        1,  9455616, 0xe9e06d04
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_08_b15 b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b15
new file mode 100644
index 0000000000..c330595f83
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b15
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 513x3072
+#sar 0: 0/1
+0,          0,          0,        1,  9455616, 0xade3bd10
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_08_b16 b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b16
new file mode 100644
index 0000000000..ef28d600e1
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b16
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 513x3072
+#sar 0: 0/1
+0,          0,          0,        1,  9455616, 0x0af3ab70
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_09_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_09_b11
new file mode 100644
index 0000000000..ff78bf9dc7
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_09_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 17x37
+#sar 0: 0/1
+0,          0,          0,        1,      629, 0xf35d38d6
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_10_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_10_b11
new file mode 100644
index 0000000000..16c4e5e39d
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_10_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 64x64
+#sar 0: 0/1
+0,          0,          0,        1,    12288, 0x68638483
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_11_b10 b/tests/ref/fate/jpeg2000dec-ds0_ht_11_b10
new file mode 100644
index 0000000000..9b15604361
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_11_b10
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 128x1
+#sar 0: 0/1
+0,          0,          0,        1,      128, 0xae9630db
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_12_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_12_b11
new file mode 100644
index 0000000000..435c124c99
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_12_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 3x5
+#sar 0: 0/1
+0,          0,          0,        1,       15, 0x2a170596
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_14_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_14_b11
new file mode 100644
index 0000000000..5d28e611a0
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_14_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 49x49
+#sar 0: 0/1
+0,          0,          0,        1,     7203, 0x61d40b41
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_15_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b11
new file mode 100644
index 0000000000..c2fb29eb42
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 256x256
+#sar 0: 0/1
+0,          0,          0,        1,    65536, 0x33783820
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_15_b14 b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b14
new file mode 100644
index 0000000000..e508fb61e0
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b14
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 256x256
+#sar 0: 0/1
+0,          0,          0,        1,    65536, 0x252408c0
diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_16_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_16_b11
new file mode 100644
index 0000000000..d923cc2109
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds0_ht_16_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 128x128
+#sar 0: 0/1
+0,          0,          0,        1,    16384, 0x04a3647e
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_01_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b11
new file mode 100644
index 0000000000..04eb8ddde3
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 61x99
+#sar 0: 0/1
+0,          0,          0,        1,     6039, 0x14c29859
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_01_b12 b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b12
new file mode 100644
index 0000000000..43648bcae9
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b12
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 61x99
+#sar 0: 0/1
+0,          0,          0,        1,     6039, 0x317c985b
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_02_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b11
new file mode 100644
index 0000000000..1f9f4417f8
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+0,          0,          0,        1,   921600, 0x45301bbf
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_02_b12 b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b12
new file mode 100644
index 0000000000..4c3ec322e4
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b12
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+0,          0,          0,        1,   921600, 0x38311bba
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_03_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b11
new file mode 100644
index 0000000000..3dab71b456
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1024x1024
+#sar 0: 0/1
+0,          0,          0,        1,  2621440, 0x3fcfaba7
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_03_b12 b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b12
new file mode 100644
index 0000000000..586e7eda07
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b12
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1024x1024
+#sar 0: 0/1
+0,          0,          0,        1,  2621440, 0x147fa9f7
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9 b/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9
new file mode 100644
index 0000000000..7ba4ec2b27
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1024x1024
+#sar 0: 0/1
+0,          0,          0,        1,  2097152, 0x9df478aa
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_05_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_05_b11
new file mode 100644
index 0000000000..eccae681cc
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_05_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 512x512
+#sar 0: 0/1
+0,          0,          0,        1,   786432, 0x3027e817
diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_06_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_06_b11
new file mode 100644
index 0000000000..732f8fb3f9
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-ds1_ht_06_b11
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 12x12
+#sar 0: 0/1
+0,          0,          0,        1,      432, 0x137dc974
diff --git a/tests/ref/fate/jpeg2000dec-hifi_ht1_02 b/tests/ref/fate/jpeg2000dec-hifi_ht1_02
new file mode 100644
index 0000000000..d9e2d15789
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-hifi_ht1_02
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 128x128
+#sar 0: 0/1
+0,          0,          0,        1,    98304, 0xb6a6f1d6
diff --git a/tests/ref/fate/jpeg2000dec-hifi_p1_02 b/tests/ref/fate/jpeg2000dec-hifi_p1_02
new file mode 100644
index 0000000000..d969c072fe
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-hifi_p1_02
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 128x128
+#sar 0: 0/1
+0,          0,          0,        1,    98304, 0xc740c83c
diff --git a/tests/ref/fate/jpeg2000dec-p1_01 b/tests/ref/fate/jpeg2000dec-p1_01
new file mode 100644
index 0000000000..43648bcae9
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-p1_01
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 61x99
+#sar 0: 0/1
+0,          0,          0,        1,     6039, 0x317c985b
diff --git a/tests/ref/fate/jpeg2000dec-p1_02 b/tests/ref/fate/jpeg2000dec-p1_02
new file mode 100644
index 0000000000..4c3ec322e4
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-p1_02
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+0,          0,          0,        1,   921600, 0x38311bba
diff --git a/tests/ref/fate/jpeg2000dec-p1_03 b/tests/ref/fate/jpeg2000dec-p1_03
new file mode 100644
index 0000000000..586e7eda07
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-p1_03
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1024x1024
+#sar 0: 0/1
+0,          0,          0,        1,  2621440, 0x147fa9f7
diff --git a/tests/ref/fate/jpeg2000dec-p1_04 b/tests/ref/fate/jpeg2000dec-p1_04
new file mode 100644
index 0000000000..863339fb8c
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-p1_04
@@ -0,0 +1 @@
+Passed
diff --git a/tests/ref/fate/jpeg2000dec-p1_05 b/tests/ref/fate/jpeg2000dec-p1_05
new file mode 100644
index 0000000000..eccae681cc
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-p1_05
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 512x512
+#sar 0: 0/1
+0,          0,          0,        1,   786432, 0x3027e817
diff --git a/tests/ref/fate/jpeg2000dec-p1_06 b/tests/ref/fate/jpeg2000dec-p1_06
new file mode 100644
index 0000000000..732f8fb3f9
--- /dev/null
+++ b/tests/ref/fate/jpeg2000dec-p1_06
@@ -0,0 +1,6 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 12x12
+#sar 0: 0/1
+0,          0,          0,        1,      432, 0x137dc974
-- 
2.34.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests
  2025-01-22  2:04 ` [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests pal
@ 2025-01-22  2:20   ` Pierre-Anthony Lemieux
  2025-01-26  2:23     ` Michael Niedermayer
  0 siblings, 1 reply; 5+ messages in thread
From: Pierre-Anthony Lemieux @ 2025-01-22  2:20 UTC (permalink / raw)
  To: ffmpeg-devel

You will need to add "c1p1_04-0.j2c" [1]  to
"fate-suite\jpeg2000\itu-iso\codestreams_profile1".

[1] https://github.com/user-attachments/files/18033833/c1p1_04-0.zip

On Tue, Jan 21, 2025 at 6:04 PM <pal@sandflow.com> wrote:
>
> From: Pierre-Anthony Lemieux <pal@palemieux.com>
>
> ---
>  tests/fate/jpeg2000.mak                  | 126 ++++++++++++++++++++++-
>  tests/ref/fate/jpeg2000dec-ds0_hm_15_b8  |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_02_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_02_b12 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_03_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_03_b14 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_04_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_04_b12 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_05_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_05_b12 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_07_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_07_b15 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_07_b16 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_08_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_08_b15 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_08_b16 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_09_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_10_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_11_b10 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_12_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_14_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_15_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_15_b14 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds0_ht_16_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_01_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_01_b12 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_02_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_02_b12 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_03_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_03_b12 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_04_b9  |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_05_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-ds1_ht_06_b11 |   6 ++
>  tests/ref/fate/jpeg2000dec-hifi_ht1_02   |   6 ++
>  tests/ref/fate/jpeg2000dec-hifi_p1_02    |   6 ++
>  tests/ref/fate/jpeg2000dec-p1_01         |   6 ++
>  tests/ref/fate/jpeg2000dec-p1_02         |   6 ++
>  tests/ref/fate/jpeg2000dec-p1_03         |   6 ++
>  tests/ref/fate/jpeg2000dec-p1_04         |   1 +
>  tests/ref/fate/jpeg2000dec-p1_05         |   6 ++
>  tests/ref/fate/jpeg2000dec-p1_06         |   6 ++
>  41 files changed, 360 insertions(+), 1 deletion(-)
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_hm_15_b8
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_02_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_02_b12
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_03_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_03_b14
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_04_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_04_b12
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_05_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_05_b12
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_07_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_07_b15
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_07_b16
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_08_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_08_b15
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_08_b16
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_09_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_10_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_11_b10
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_12_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_14_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_15_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_15_b14
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_16_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_01_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_01_b12
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_02_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_02_b12
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_03_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_03_b12
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_04_b9
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_05_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-ds1_ht_06_b11
>  create mode 100644 tests/ref/fate/jpeg2000dec-hifi_ht1_02
>  create mode 100644 tests/ref/fate/jpeg2000dec-hifi_p1_02
>  create mode 100644 tests/ref/fate/jpeg2000dec-p1_01
>  create mode 100644 tests/ref/fate/jpeg2000dec-p1_02
>  create mode 100644 tests/ref/fate/jpeg2000dec-p1_03
>  create mode 100644 tests/ref/fate/jpeg2000dec-p1_04
>  create mode 100644 tests/ref/fate/jpeg2000dec-p1_05
>  create mode 100644 tests/ref/fate/jpeg2000dec-p1_06
>
> diff --git a/tests/fate/jpeg2000.mak b/tests/fate/jpeg2000.mak
> index a99b0c4e0c..75656feb12 100644
> --- a/tests/fate/jpeg2000.mak
> +++ b/tests/fate/jpeg2000.mak
> @@ -60,8 +60,132 @@ fate-jpeg2000dec-p0_15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpe
>  FATE_JPEG2000DEC += fate-jpeg2000dec-p0_16
>  fate-jpeg2000dec-p0_16: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_16.j2k
>
> +FATE_JPEG2000DEC += fate-jpeg2000dec-p1_01
> +fate-jpeg2000dec-p1_01: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_01.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-p1_02
> +fate-jpeg2000dec-p1_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_02.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-p1_03
> +fate-jpeg2000dec-p1_03: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_03.j2k
> +
> +# The MSE and Peak Error values are 16x those found in ISO/IEC 15444-4: the latter assume 12-bit samples while FFMPEG decodes
> +# to 16-bit samples
> +FATE_JPEG2000DEC += fate-jpeg2000dec-p1_04
> +fate-jpeg2000dec-p1_04: CMD = mse_peak_error $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_04.j2k \
> +                                                                                                                                                                                       $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/c1p1_04-0.j2c \
> +                                                                                                                                                                                       49280 9984
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-p1_05
> +fate-jpeg2000dec-p1_05: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_05.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-p1_06
> +fate-jpeg2000dec-p1_06: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/p1_06.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-hifi_ht1_02
> +fate-jpeg2000dec-hifi_ht1_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/hifi_ht1_02.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-hifi_p1_02
> +fate-jpeg2000dec-hifi_p1_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile1/hifi_p1_02.j2k
> +
>  FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_01_b11
> -fate-jpeg2000dec-ds0_ht_01_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/ds0_ht_01_b11.j2k
> +fate-jpeg2000dec-ds0_ht_01_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_01_bset/ds0_ht_01_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_02_b11
> +fate-jpeg2000dec-ds0_ht_02_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_02_bset/ds0_ht_02_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_02_b12
> +fate-jpeg2000dec-ds0_ht_02_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_02_bset/ds0_ht_02_b12.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_03_b11
> +fate-jpeg2000dec-ds0_ht_03_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_03_bset/ds0_ht_03_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_03_b14
> +fate-jpeg2000dec-ds0_ht_03_b14: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_03_bset/ds0_ht_03_b14.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_04_b11
> +fate-jpeg2000dec-ds0_ht_04_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_04_bset/ds0_ht_04_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_04_b12
> +fate-jpeg2000dec-ds0_ht_04_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_04_bset/ds0_ht_04_b12.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_05_b11
> +fate-jpeg2000dec-ds0_ht_05_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_05_bset/ds0_ht_05_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_05_b12
> +fate-jpeg2000dec-ds0_ht_05_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_05_bset/ds0_ht_05_b12.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_07_b11
> +fate-jpeg2000dec-ds0_ht_07_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_07_bset/ds0_ht_07_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_07_b15
> +fate-jpeg2000dec-ds0_ht_07_b15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_07_bset/ds0_ht_07_b15.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_07_b16
> +fate-jpeg2000dec-ds0_ht_07_b16: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_07_bset/ds0_ht_07_b16.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_08_b11
> +fate-jpeg2000dec-ds0_ht_08_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_08_bset/ds0_ht_08_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_08_b15
> +fate-jpeg2000dec-ds0_ht_08_b15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_08_bset/ds0_ht_08_b15.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_08_b16
> +fate-jpeg2000dec-ds0_ht_08_b16: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_08_bset/ds0_ht_08_b16.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_09_b11
> +fate-jpeg2000dec-ds0_ht_09_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_09_bset/ds0_ht_09_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_10_b11
> +fate-jpeg2000dec-ds0_ht_10_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_10_bset/ds0_ht_10_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_11_b10
> +fate-jpeg2000dec-ds0_ht_11_b10: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_11_bset/ds0_ht_11_b10.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_12_b11
> +fate-jpeg2000dec-ds0_ht_12_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_12_bset/ds0_ht_12_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_14_b11
> +fate-jpeg2000dec-ds0_ht_14_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_14_bset/ds0_ht_14_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_hm_15_b8
> +fate-jpeg2000dec-ds0_hm_15_b8: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_15_bset/ds0_hm_15_b8.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_15_b11
> +fate-jpeg2000dec-ds0_ht_15_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_15_bset/ds0_ht_15_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_15_b14
> +fate-jpeg2000dec-ds0_ht_15_b14: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_15_bset/ds0_ht_15_b14.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds0_ht_16_b11
> +fate-jpeg2000dec-ds0_ht_16_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile0/p0_16_bset/ds0_ht_16_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_01_b11
> +fate-jpeg2000dec-ds1_ht_01_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_01_bset/ds1_ht_01_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_01_b12
> +fate-jpeg2000dec-ds1_ht_01_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_01_bset/ds1_ht_01_b12.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_02_b11
> +fate-jpeg2000dec-ds1_ht_02_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_02_bset/ds1_ht_02_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_02_b12
> +fate-jpeg2000dec-ds1_ht_02_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_02_bset/ds1_ht_02_b12.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_03_b11
> +fate-jpeg2000dec-ds1_ht_03_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_03_bset/ds1_ht_03_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_03_b12
> +fate-jpeg2000dec-ds1_ht_03_b12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_03_bset/ds1_ht_03_b12.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_04_b9
> +fate-jpeg2000dec-ds1_ht_04_b9: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_04_bset/ds1_ht_04_b9.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_05_b11
> +fate-jpeg2000dec-ds1_ht_05_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_05_bset/ds1_ht_05_b11.j2k
> +
> +FATE_JPEG2000DEC += fate-jpeg2000dec-ds1_ht_06_b11
> +fate-jpeg2000dec-ds1_ht_06_b11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/htj2k_bsets_profile1/p1_06_bset/ds1_ht_06_b11.j2k
>
>  FATE_JPEG2000DEC += $(FATE_JPEG2000DEC-yes)
>
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_hm_15_b8 b/tests/ref/fate/jpeg2000dec-ds0_hm_15_b8
> new file mode 100644
> index 0000000000..e508fb61e0
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_hm_15_b8
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 256x256
> +#sar 0: 0/1
> +0,          0,          0,        1,    65536, 0x252408c0
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_02_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b11
> new file mode 100644
> index 0000000000..0ec1189148
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 64x126
> +#sar 0: 0/1
> +0,          0,          0,        1,     8064, 0x32fbc710
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_02_b12 b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b12
> new file mode 100644
> index 0000000000..f96d24c121
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_02_b12
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 64x126
> +#sar 0: 0/1
> +0,          0,          0,        1,     8064, 0xd634c70c
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_03_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b11
> new file mode 100644
> index 0000000000..c2fb29eb42
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 256x256
> +#sar 0: 0/1
> +0,          0,          0,        1,    65536, 0x33783820
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_03_b14 b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b14
> new file mode 100644
> index 0000000000..e508fb61e0
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_03_b14
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 256x256
> +#sar 0: 0/1
> +0,          0,          0,        1,    65536, 0x252408c0
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_04_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b11
> new file mode 100644
> index 0000000000..84a5f12d1b
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 640x480
> +#sar 0: 0/1
> +0,          0,          0,        1,   921600, 0xfd6c1b89
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_04_b12 b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b12
> new file mode 100644
> index 0000000000..4c3ec322e4
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_04_b12
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 640x480
> +#sar 0: 0/1
> +0,          0,          0,        1,   921600, 0x38311bba
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_05_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b11
> new file mode 100644
> index 0000000000..218240db0a
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1024x1024
> +#sar 0: 0/1
> +0,          0,          0,        1,  2621440, 0xe5b6ada4
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_05_b12 b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b12
> new file mode 100644
> index 0000000000..410a08a62c
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_05_b12
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1024x1024
> +#sar 0: 0/1
> +0,          0,          0,        1,  2621440, 0x9608ad8b
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_07_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b11
> new file mode 100644
> index 0000000000..add2665ea1
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 2048x2048
> +#sar 0: 0/1
> +0,          0,          0,        1, 25165824, 0x5992b06f
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_07_b15 b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b15
> new file mode 100644
> index 0000000000..865ba44b50
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b15
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 2048x2048
> +#sar 0: 0/1
> +0,          0,          0,        1, 25165824, 0x17b04b02
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_07_b16 b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b16
> new file mode 100644
> index 0000000000..e561a1b780
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_07_b16
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 2048x2048
> +#sar 0: 0/1
> +0,          0,          0,        1, 25165824, 0x9685aad6
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_08_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b11
> new file mode 100644
> index 0000000000..456acc586c
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 513x3072
> +#sar 0: 0/1
> +0,          0,          0,        1,  9455616, 0xe9e06d04
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_08_b15 b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b15
> new file mode 100644
> index 0000000000..c330595f83
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b15
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 513x3072
> +#sar 0: 0/1
> +0,          0,          0,        1,  9455616, 0xade3bd10
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_08_b16 b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b16
> new file mode 100644
> index 0000000000..ef28d600e1
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_08_b16
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 513x3072
> +#sar 0: 0/1
> +0,          0,          0,        1,  9455616, 0x0af3ab70
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_09_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_09_b11
> new file mode 100644
> index 0000000000..ff78bf9dc7
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_09_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 17x37
> +#sar 0: 0/1
> +0,          0,          0,        1,      629, 0xf35d38d6
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_10_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_10_b11
> new file mode 100644
> index 0000000000..16c4e5e39d
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_10_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 64x64
> +#sar 0: 0/1
> +0,          0,          0,        1,    12288, 0x68638483
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_11_b10 b/tests/ref/fate/jpeg2000dec-ds0_ht_11_b10
> new file mode 100644
> index 0000000000..9b15604361
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_11_b10
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 128x1
> +#sar 0: 0/1
> +0,          0,          0,        1,      128, 0xae9630db
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_12_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_12_b11
> new file mode 100644
> index 0000000000..435c124c99
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_12_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 3x5
> +#sar 0: 0/1
> +0,          0,          0,        1,       15, 0x2a170596
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_14_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_14_b11
> new file mode 100644
> index 0000000000..5d28e611a0
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_14_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 49x49
> +#sar 0: 0/1
> +0,          0,          0,        1,     7203, 0x61d40b41
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_15_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b11
> new file mode 100644
> index 0000000000..c2fb29eb42
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 256x256
> +#sar 0: 0/1
> +0,          0,          0,        1,    65536, 0x33783820
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_15_b14 b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b14
> new file mode 100644
> index 0000000000..e508fb61e0
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_15_b14
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 256x256
> +#sar 0: 0/1
> +0,          0,          0,        1,    65536, 0x252408c0
> diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_16_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_16_b11
> new file mode 100644
> index 0000000000..d923cc2109
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_16_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 128x128
> +#sar 0: 0/1
> +0,          0,          0,        1,    16384, 0x04a3647e
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_01_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b11
> new file mode 100644
> index 0000000000..04eb8ddde3
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 61x99
> +#sar 0: 0/1
> +0,          0,          0,        1,     6039, 0x14c29859
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_01_b12 b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b12
> new file mode 100644
> index 0000000000..43648bcae9
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_01_b12
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 61x99
> +#sar 0: 0/1
> +0,          0,          0,        1,     6039, 0x317c985b
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_02_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b11
> new file mode 100644
> index 0000000000..1f9f4417f8
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 640x480
> +#sar 0: 0/1
> +0,          0,          0,        1,   921600, 0x45301bbf
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_02_b12 b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b12
> new file mode 100644
> index 0000000000..4c3ec322e4
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_02_b12
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 640x480
> +#sar 0: 0/1
> +0,          0,          0,        1,   921600, 0x38311bba
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_03_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b11
> new file mode 100644
> index 0000000000..3dab71b456
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1024x1024
> +#sar 0: 0/1
> +0,          0,          0,        1,  2621440, 0x3fcfaba7
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_03_b12 b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b12
> new file mode 100644
> index 0000000000..586e7eda07
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_03_b12
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1024x1024
> +#sar 0: 0/1
> +0,          0,          0,        1,  2621440, 0x147fa9f7
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9 b/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9
> new file mode 100644
> index 0000000000..7ba4ec2b27
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1024x1024
> +#sar 0: 0/1
> +0,          0,          0,        1,  2097152, 0x9df478aa
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_05_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_05_b11
> new file mode 100644
> index 0000000000..eccae681cc
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_05_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 512x512
> +#sar 0: 0/1
> +0,          0,          0,        1,   786432, 0x3027e817
> diff --git a/tests/ref/fate/jpeg2000dec-ds1_ht_06_b11 b/tests/ref/fate/jpeg2000dec-ds1_ht_06_b11
> new file mode 100644
> index 0000000000..732f8fb3f9
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-ds1_ht_06_b11
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 12x12
> +#sar 0: 0/1
> +0,          0,          0,        1,      432, 0x137dc974
> diff --git a/tests/ref/fate/jpeg2000dec-hifi_ht1_02 b/tests/ref/fate/jpeg2000dec-hifi_ht1_02
> new file mode 100644
> index 0000000000..d9e2d15789
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-hifi_ht1_02
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 128x128
> +#sar 0: 0/1
> +0,          0,          0,        1,    98304, 0xb6a6f1d6
> diff --git a/tests/ref/fate/jpeg2000dec-hifi_p1_02 b/tests/ref/fate/jpeg2000dec-hifi_p1_02
> new file mode 100644
> index 0000000000..d969c072fe
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-hifi_p1_02
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 128x128
> +#sar 0: 0/1
> +0,          0,          0,        1,    98304, 0xc740c83c
> diff --git a/tests/ref/fate/jpeg2000dec-p1_01 b/tests/ref/fate/jpeg2000dec-p1_01
> new file mode 100644
> index 0000000000..43648bcae9
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-p1_01
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 61x99
> +#sar 0: 0/1
> +0,          0,          0,        1,     6039, 0x317c985b
> diff --git a/tests/ref/fate/jpeg2000dec-p1_02 b/tests/ref/fate/jpeg2000dec-p1_02
> new file mode 100644
> index 0000000000..4c3ec322e4
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-p1_02
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 640x480
> +#sar 0: 0/1
> +0,          0,          0,        1,   921600, 0x38311bba
> diff --git a/tests/ref/fate/jpeg2000dec-p1_03 b/tests/ref/fate/jpeg2000dec-p1_03
> new file mode 100644
> index 0000000000..586e7eda07
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-p1_03
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1024x1024
> +#sar 0: 0/1
> +0,          0,          0,        1,  2621440, 0x147fa9f7
> diff --git a/tests/ref/fate/jpeg2000dec-p1_04 b/tests/ref/fate/jpeg2000dec-p1_04
> new file mode 100644
> index 0000000000..863339fb8c
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-p1_04
> @@ -0,0 +1 @@
> +Passed
> diff --git a/tests/ref/fate/jpeg2000dec-p1_05 b/tests/ref/fate/jpeg2000dec-p1_05
> new file mode 100644
> index 0000000000..eccae681cc
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-p1_05
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 512x512
> +#sar 0: 0/1
> +0,          0,          0,        1,   786432, 0x3027e817
> diff --git a/tests/ref/fate/jpeg2000dec-p1_06 b/tests/ref/fate/jpeg2000dec-p1_06
> new file mode 100644
> index 0000000000..732f8fb3f9
> --- /dev/null
> +++ b/tests/ref/fate/jpeg2000dec-p1_06
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 12x12
> +#sar 0: 0/1
> +0,          0,          0,        1,      432, 0x137dc974
> --
> 2.34.1
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests
  2025-01-22  2:20   ` Pierre-Anthony Lemieux
@ 2025-01-26  2:23     ` Michael Niedermayer
  2025-01-26  4:05       ` Pierre-Anthony Lemieux
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Niedermayer @ 2025-01-26  2:23 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1361 bytes --]

Hi

On Tue, Jan 21, 2025 at 06:20:27PM -0800, Pierre-Anthony Lemieux wrote:
> You will need to add "c1p1_04-0.j2c" [1]  to
> "fate-suite\jpeg2000\itu-iso\codestreams_profile1".
> 
> [1] https://github.com/user-attachments/files/18033833/c1p1_04-0.zip

on x86-32 this fails:
--- src/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9	2025-01-26 02:04:17.754329759 +0100
+++ tests/data/fate/jpeg2000dec-ds1_ht_04_b9	2025-01-26 02:09:04.548571304 +0100
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 1024x1024
 #sar 0: 0/1
-0,          0,          0,        1,  2097152, 0x9df478aa
+0,          0,          0,        1,  2097152, 0x5b4dd999
Test jpeg2000dec-ds1_ht_04_b9 failed. Look at tests/data/fate/jpeg2000dec-ds1_ht_04_b9.err for details.
make: *** [src/tests/Makefile:311: fate-jpeg2000dec-ds1_ht_04_b9] Error 1
make: *** Waiting for unfinished jobs....

also
make -j32 fate-jpeg2000dec-p1_04
passes without the file

if i add teh file i get this (which still passes)
psnr_log_version:3 fields:n,mse_avg,mse_y,psnr_avg,psnr_y,max_avg,max_y,peak_y
n:1 mse_avg:14435.37 mse_y:14435.37 psnr_avg:54.74 psnr_y:54.74 max_avg:65535 max_y:65535 peak_y:4048

[...]

thx

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Opposition brings concord. Out of discord comes the fairest harmony.
-- Heraclitus

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests
  2025-01-26  2:23     ` Michael Niedermayer
@ 2025-01-26  4:05       ` Pierre-Anthony Lemieux
  0 siblings, 0 replies; 5+ messages in thread
From: Pierre-Anthony Lemieux @ 2025-01-26  4:05 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Sat, Jan 25, 2025 at 6:24 PM Michael Niedermayer
<michael@niedermayer.cc> wrote:
>
> Hi
>
> On Tue, Jan 21, 2025 at 06:20:27PM -0800, Pierre-Anthony Lemieux wrote:
> > You will need to add "c1p1_04-0.j2c" [1]  to
> > "fate-suite\jpeg2000\itu-iso\codestreams_profile1".
> >
> > [1] https://github.com/user-attachments/files/18033833/c1p1_04-0.zip
>
> on x86-32 this fails:
> --- src/tests/ref/fate/jpeg2000dec-ds1_ht_04_b9 2025-01-26 02:04:17.754329759 +0100
> +++ tests/data/fate/jpeg2000dec-ds1_ht_04_b9    2025-01-26 02:09:04.548571304 +0100
> @@ -3,4 +3,4 @@
>  #codec_id 0: rawvideo
>  #dimensions 0: 1024x1024
>  #sar 0: 0/1
> -0,          0,          0,        1,  2097152, 0x9df478aa
> +0,          0,          0,        1,  2097152, 0x5b4dd999
> Test jpeg2000dec-ds1_ht_04_b9 failed. Look at tests/data/fate/jpeg2000dec-ds1_ht_04_b9.err for details.
> make: *** [src/tests/Makefile:311: fate-jpeg2000dec-ds1_ht_04_b9] Error 1
> make: *** Waiting for unfinished jobs....
>
> also
> make -j32 fate-jpeg2000dec-p1_04
> passes without the file
>
> if i add teh file i get this (which still passes)
> psnr_log_version:3 fields:n,mse_avg,mse_y,psnr_avg,psnr_y,max_avg,max_y,peak_y
> n:1 mse_avg:14435.37 mse_y:14435.37 psnr_avg:54.74 psnr_y:54.74 max_avg:65535 max_y:65535 peak_y:4048
>

Thanks for the report! Will study.

> [...]
>
> thx
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Opposition brings concord. Out of discord comes the fairest harmony.
> -- Heraclitus
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-01-26  4:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-22  2:04 [FFmpeg-devel] [PATCH 1/2] fate: add mse and peak error comparison with reference image pal
2025-01-22  2:04 ` [FFmpeg-devel] [PATCH 2/2] fate/jpeg2000dec: add missing ISO/IEC 15444-4 conformance tests pal
2025-01-22  2:20   ` Pierre-Anthony Lemieux
2025-01-26  2:23     ` Michael Niedermayer
2025-01-26  4:05       ` Pierre-Anthony Lemieux

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git