* [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