From patchwork Fri Mar 31 15:29:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Anthony Lemieux X-Patchwork-Id: 40947 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp814005pzb; Fri, 31 Mar 2023 08:30:23 -0700 (PDT) X-Google-Smtp-Source: AKy350bjDAa/vTERmWl9ByTNoiE3NbRltJ6QYdyo8T+mSt+7rReH9La2OdysZCwloq1fbkBIyCER X-Received: by 2002:a17:906:3755:b0:8e9:afb1:65c6 with SMTP id e21-20020a170906375500b008e9afb165c6mr10010127ejc.13.1680276623365; Fri, 31 Mar 2023 08:30:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680276623; cv=none; d=google.com; s=arc-20160816; b=vEpX5ceuNADbfbPqj3Gm6vRnlqhDgath4OOdL0YHqOacVjl05HbqF+1qvOsdnTDJ7G Niwk0G+NLquUGOv0HZalTgoHST/VIK51G+jdsSMXE1lFZDjX6BhljMgpwdFrsImTH16b SmtwIwV2J2VgIStFpqS3Kbsd5zJdlQjGbc0u2ixoY+z9nk5bvjfx/XNgz/XExohp9v39 ft7nFxtvcrxlK4LU8RPlu9B2J2tThXJmaDsnEkyLjEm3Zl8aZTVK/fSepEalBjkj83vb nYgzeJLl8g+FuWIMZ6TjZx6XQY8fjtKw4TWNT1w6e6ynt9MS/Q+Zoda5ANKifqyeD4Ov 0xYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=NRygGol2+FBB7KtZPYkTAhBBt+Fj8qG18RUl9CsZ6kg=; b=hV9VlUdUNjSPgXFJFRAqZhAJ9Gl1FN6T30GBm2zDA7GSvLO53MtoaUEoHCrEs4jQuZ QJPzyZz5auuP9PMI/25L5jNhOQKaYjsuUIBjWiHtuW90eRPOPjT8C9fs4mg2WOnrAqa3 9L53PYdDfjg8bAN1m6JDhDFNPYWcNlMhxJoJMfdXp+JZ4VEOtFGHZIKHU6M59Ts4t+QP iBUme+2ndcoT9nYOlGKin4EWQ9e0N74N7nd2SFc8ZZrdF32f0anqz8gval34jPb2dz9F rmQVP/LGHaz95ojWRr2HKFGhVCkvIfs9TeXTXSTGnv1QMQkeSR4ea2rnAKg2xE18vyht YSBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a3-20020a170906368300b0093d6b8fb80esi2151664ejc.196.2023.03.31.08.30.22; Fri, 31 Mar 2023 08:30:23 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4B22168C2C9; Fri, 31 Mar 2023 18:30:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 322C468C295 for ; Fri, 31 Mar 2023 18:29:57 +0300 (EEST) Received: by mail-pg1-f181.google.com with SMTP id x37so13633538pga.1 for ; Fri, 31 Mar 2023 08:29:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680276595; x=1682868595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hERoUmerXGrFbmW4oX9XWSA9z5uvT+yUa2Rg8EVRRV4=; b=yD/U2KouDvp7Sym98ehMLkPV+ZOYJRIZVBOgbnm+1Pq3i/ixaVE6SNsoTW4HUL64PG 8gtSRbMCix1KYWmRng+nEm9+51QSfnN+ip54R461cnXAWVh0NfgeqiZBitNGNYvLxH1o ZHvDn6AFk3eRvkLEevZMPcf0i5ts8iRdGPgBxUOymcAQEZ1kPf4lxnG5eunKw7EeMn/P JtkpiFAFZb+0frL7otujRg/gQituNV2Ci65Jr2BYjdLnvSP60xYgfDv+o2+C2XwN4jei p7hnk73du4s19SFujt5R75c4qKhwNdQfD684AaU4gr1SGqQpNTIJlbBFiy1xWPyd54aE 3chQ== X-Gm-Message-State: AAQBX9cTu4XFIxPEtRBqyp9M3Spezvkpavr5MUt0ovotfCpQXl+McT4F dX1Oys5sUL1p2OVst2fjGC8sSdvBJcE= X-Received: by 2002:aa7:958b:0:b0:62d:e966:ffc7 with SMTP id z11-20020aa7958b000000b0062de966ffc7mr2189380pfj.21.1680276594911; Fri, 31 Mar 2023 08:29:54 -0700 (PDT) Received: from localhost (76-14-89-2.sf-cable.astound.net. [76.14.89.2]) by smtp.gmail.com with ESMTPSA id y7-20020aa78047000000b00592626fe48csm1945665pfm.122.2023.03.31.08.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Mar 2023 08:29:54 -0700 (PDT) Received: by localhost (sSMTP sendmail emulation); Fri, 31 Mar 2023 08:29:51 -0700 From: pal@sandflow.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 31 Mar 2023 08:29:41 -0700 Message-Id: <20230331152941.21879-3-pal@sandflow.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230331152941.21879-1-pal@sandflow.com> References: <20230331152941.21879-1-pal@sandflow.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 3/3] fate/jpeg2000: add JPEG 2000 tests using ITU/ISO conformance materials X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Pierre-Anthony Lemieux Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: eGJ//741dnsn From: Pierre-Anthony Lemieux Adds JPEG 2000 decoder tests using materials from the conformance suite specified in Rec. ITU-T T.803 | ISO/IEC 15444-4. The test materials are available at https://gitlab.com/wg1/htj2k-codestreams --- tests/Makefile | 1 + tests/fate/jpeg2000.mak | 64 ++++++++++++++++++++++++ tests/ref/fate/jpeg2000dec-ds0_ht_01_b11 | 6 +++ tests/ref/fate/jpeg2000dec-p0_01 | 6 +++ tests/ref/fate/jpeg2000dec-p0_02 | 6 +++ tests/ref/fate/jpeg2000dec-p0_03 | 6 +++ tests/ref/fate/jpeg2000dec-p0_04 | 6 +++ tests/ref/fate/jpeg2000dec-p0_05 | 6 +++ tests/ref/fate/jpeg2000dec-p0_07 | 6 +++ tests/ref/fate/jpeg2000dec-p0_08 | 6 +++ tests/ref/fate/jpeg2000dec-p0_09 | 6 +++ tests/ref/fate/jpeg2000dec-p0_11 | 6 +++ tests/ref/fate/jpeg2000dec-p0_12 | 6 +++ tests/ref/fate/jpeg2000dec-p0_14 | 6 +++ tests/ref/fate/jpeg2000dec-p0_15 | 6 +++ tests/ref/fate/jpeg2000dec-p0_16 | 6 +++ 16 files changed, 149 insertions(+) create mode 100644 tests/fate/jpeg2000.mak create mode 100644 tests/ref/fate/jpeg2000dec-ds0_ht_01_b11 create mode 100644 tests/ref/fate/jpeg2000dec-p0_01 create mode 100644 tests/ref/fate/jpeg2000dec-p0_02 create mode 100644 tests/ref/fate/jpeg2000dec-p0_03 create mode 100644 tests/ref/fate/jpeg2000dec-p0_04 create mode 100644 tests/ref/fate/jpeg2000dec-p0_05 create mode 100644 tests/ref/fate/jpeg2000dec-p0_07 create mode 100644 tests/ref/fate/jpeg2000dec-p0_08 create mode 100644 tests/ref/fate/jpeg2000dec-p0_09 create mode 100644 tests/ref/fate/jpeg2000dec-p0_11 create mode 100644 tests/ref/fate/jpeg2000dec-p0_12 create mode 100644 tests/ref/fate/jpeg2000dec-p0_14 create mode 100644 tests/ref/fate/jpeg2000dec-p0_15 create mode 100644 tests/ref/fate/jpeg2000dec-p0_16 diff --git a/tests/Makefile b/tests/Makefile index 1d50e1d175..d80065a9bf 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -200,6 +200,7 @@ include $(SRC_PATH)/tests/fate/id3v2.mak include $(SRC_PATH)/tests/fate/image.mak include $(SRC_PATH)/tests/fate/imf.mak include $(SRC_PATH)/tests/fate/indeo.mak +include $(SRC_PATH)/tests/fate/jpeg2000.mak include $(SRC_PATH)/tests/fate/libavcodec.mak include $(SRC_PATH)/tests/fate/libavdevice.mak include $(SRC_PATH)/tests/fate/libavformat.mak diff --git a/tests/fate/jpeg2000.mak b/tests/fate/jpeg2000.mak new file mode 100644 index 0000000000..2c22706ad3 --- /dev/null +++ b/tests/fate/jpeg2000.mak @@ -0,0 +1,64 @@ +# The following tests are based on the conformance suite specified in +# Rec. ITU-T T.803 | ISO/IEC 15444-4 available at the following URLs: +# * https://gitlab.com/wg1/htj2k-codestreams +# * https://www.itu.int/rec/T-REC-T.803/en +# * https://www.iso.org/standard/81574.html +# +# Notes: +# * p0_06.j2k is not included because it uses a pixel format that is not +# supported (4:2:2:1) +# * p0_10.j2k is not included because errors are emitted during decoding and +# there are significant deviations from the reference image in the bottom-left +# quadrant +# * p0_13.j2k is not included because it uses a pixel format that is not +# supported (257 color channels) +# * p0_04.j2k and p0_05.j2k exceed the error thresholds specified in the +# conformance suite +# * p0_09.j2k matches the reference image exactly when bitexact is not used, but +# exceed the error thresholds specified in the conformance suite when bitexact +# is used + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_01 +fate-jpeg2000dec-p0_01: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_01.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_02 +fate-jpeg2000dec-p0_02: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_02.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_03 +fate-jpeg2000dec-p0_03: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_03.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_04 +fate-jpeg2000dec-p0_04: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_04.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_05 +fate-jpeg2000dec-p0_05: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_05.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_07 +fate-jpeg2000dec-p0_07: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_07.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_08 +fate-jpeg2000dec-p0_08: CMD = framecrc -flags +bitexact -lowres 1 -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_08.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_09 +fate-jpeg2000dec-p0_09: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_09.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_11 +fate-jpeg2000dec-p0_11: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_11.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_12 +fate-jpeg2000dec-p0_12: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_12.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_14 +fate-jpeg2000dec-p0_14: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_14.j2k + +FATE_JPEG2000DEC += fate-jpeg2000dec-p0_15 +fate-jpeg2000dec-p0_15: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/jpeg2000/itu-iso/codestreams_profile0/p0_15.j2k + +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-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_SAMPLES_FFMPEG += $(FATE_JPEG2000DEC) +fate-jpeg2000dec: $(FATE_JPEG2000DEC) diff --git a/tests/ref/fate/jpeg2000dec-ds0_ht_01_b11 b/tests/ref/fate/jpeg2000dec-ds0_ht_01_b11 new file mode 100644 index 0000000000..af3eaa086d --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-ds0_ht_01_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, 0x44426324 diff --git a/tests/ref/fate/jpeg2000dec-p0_01 b/tests/ref/fate/jpeg2000dec-p0_01 new file mode 100644 index 0000000000..d923cc2109 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_01 @@ -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-p0_02 b/tests/ref/fate/jpeg2000dec-p0_02 new file mode 100644 index 0000000000..f96d24c121 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_02 @@ -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-p0_03 b/tests/ref/fate/jpeg2000dec-p0_03 new file mode 100644 index 0000000000..e508fb61e0 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_03 @@ -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-p0_04 b/tests/ref/fate/jpeg2000dec-p0_04 new file mode 100644 index 0000000000..5de7880c44 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_04 @@ -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, 0x097d9665 diff --git a/tests/ref/fate/jpeg2000dec-p0_05 b/tests/ref/fate/jpeg2000dec-p0_05 new file mode 100644 index 0000000000..bb215043a1 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_05 @@ -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, 0x081f5048 diff --git a/tests/ref/fate/jpeg2000dec-p0_07 b/tests/ref/fate/jpeg2000dec-p0_07 new file mode 100644 index 0000000000..e561a1b780 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_07 @@ -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-p0_08 b/tests/ref/fate/jpeg2000dec-p0_08 new file mode 100644 index 0000000000..5e202b741b --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_08 @@ -0,0 +1,6 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 257x1536 +#sar 0: 0/1 +0, 0, 0, 1, 2368512, 0xece49ff9 diff --git a/tests/ref/fate/jpeg2000dec-p0_09 b/tests/ref/fate/jpeg2000dec-p0_09 new file mode 100644 index 0000000000..1755e7cc7d --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_09 @@ -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, 0x5c9c389d diff --git a/tests/ref/fate/jpeg2000dec-p0_11 b/tests/ref/fate/jpeg2000dec-p0_11 new file mode 100644 index 0000000000..9b15604361 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_11 @@ -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-p0_12 b/tests/ref/fate/jpeg2000dec-p0_12 new file mode 100644 index 0000000000..435c124c99 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_12 @@ -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-p0_14 b/tests/ref/fate/jpeg2000dec-p0_14 new file mode 100644 index 0000000000..5d28e611a0 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_14 @@ -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-p0_15 b/tests/ref/fate/jpeg2000dec-p0_15 new file mode 100644 index 0000000000..e508fb61e0 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_15 @@ -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-p0_16 b/tests/ref/fate/jpeg2000dec-p0_16 new file mode 100644 index 0000000000..d923cc2109 --- /dev/null +++ b/tests/ref/fate/jpeg2000dec-p0_16 @@ -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