Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added progressive refinement example files #131

Merged
merged 9 commits into from
May 17, 2021
3 changes: 3 additions & 0 deletions testFiles/Apple/ReadMe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
This folder contains files contributed by Apple. The associated license is contained in license.txt.

Each file has a corresponding .txt file explaining how it was created.
2 changes: 2 additions & 0 deletions testFiles/Apple/license.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Content is subject to CC-BY-SA-4.0 license, subject to Copyright © 2021 Apple Inc. All rights reserved.
https://creativecommons.org/licenses/by/4.0/legalcode
Binary file not shown.
35 changes: 35 additions & 0 deletions testFiles/Apple/multilayer_examples/animals_00_multilayer.avif.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

AV1 is encoded using libaom and the following settings:

rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 stream contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as two items.
Item 1:
ispe = 1024x768
iloc points to layer 0 only

Item 2:
ispe = 2048x1535
iloc points to layer 0 and layer 1, separated in two extents
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

AV1 is encoded using libaom and the following settings:

rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 stream contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as a single item, with no lsel or a1op used.
ispe = 2048x1536
iloc points to layer 0 and layer 1, separated in two extents
a1lx property is used to explicitly mark the sizes of the two layers.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

AV1 is encoded using libaom and the following settings:

rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 stream contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as two items.
Item 1:
ispe = 2048x1536
a1op property selects operating point 0 (with layer defaulting to layer 1)
iloc points to layer 0 and layer 1, separated in two extents

Item 2:
ispe = 1024x768
a1op property selects operating point 1 (layer 0)
iloc points to layer 0 and layer 1, separated in two extents
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

AV1 is encoded using libaom and the following settings:

rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 stream contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as three items.
Item 1:
ispe = 2048x1536
a1op property selects operating point 0, lsel selects layer 1
iloc points to layer 0 and layer 1, separated in two extents

Item 2:
ispe = 1024x768
a1op property selects operating point 0, lsel selects layer 0
iloc points to layer 0 and layer 1, separated in two extents

Item 3:
ispe = 1024x768
a1op property selects operating point 1, lsel selects layer 0
iloc points to layer 0 and layer 1, separated in two extents
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

Image is split into 4 tiles of size 1024x768, where each tile is encoded as follows:

AV1 is encoded using libaom and the following settings:
rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 streams contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as follows:
item 1:
grid
ispe = 2048x1536
references to items 2-5
items 2-5:
ispe = 1024x1536
iloc points to layer 0 and layer 1, separated in two extents
a1lx property is used to explicitly mark the sizes of the two layers.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

Image is split into 4 tiles of size 1024x768, where each tile is encoded as follows:

AV1 is encoded using libaom and the following settings:
rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 streams contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as follows:
item 1:
grid
ispe = 2048x1536
references to items 3-6
item 2:
grid
ispe = 1024x738
references to items 7-10
items 3-6:
ispe = 1024x1536
iloc points to layer 0 and layer 1, separated in two extents
lsel property selects layer 1
items 7-10:
ispe = 1024x1536
iloc points to layer 0 and layer 1, separated in two extents
lsel property selects layer 0
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

AV1 is encoded using libaom and the following settings:

rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0
aom_codec_control(codec, AOME_SET_NUMBER_SPATIAL_LAYERS, 2)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Layer 0:
flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 62)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_ONETWO, AOME_ONETWO })

Layer 1:
flags = AOM_EFLAG_NO_REF_LAST2 | AOM_EFLAG_NO_REF_LAST3 |
AOM_EFLAG_NO_REF_GF | AOM_EFLAG_NO_REF_ARF |
AOM_EFLAG_NO_REF_BWD | AOM_EFLAG_NO_REF_ARF2 |
AOM_EFLAG_NO_UPD_GF | AOM_EFLAG_NO_UPD_ARF |
AOM_EFLAG_NO_UPD_ENTROPY;
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 3)
aom_codec_control(codec, AOME_SET_SCALEMODE, &{ AOME_NORMAL, AOME_NORMAL })

AV1 stream contains two operating points. Operating point 0 contains both layers, operating point 1 contains the base layer (layer 0).

Stream is embedded in a HEIF container as two items.
Item 1:
ispe = 2048x1536
lsel property selects layer 1
iloc points to layer 0 and layer 1, separated in two extents

Item 2:
ispe = 1024x768
lsel property selects layer 0
iloc points to layer 0 and layer 1, separated in two extents
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Input image is animals_00 from the Apple test set, rotated to upright (i.e. 180 degrees) and downscaled to 2048x1536 so encoding is faster.

AV1 is encoded using libaom and the following settings:
rc_end_usage = AOM_Q
g_error_resilient = 0
g_lag_in_frames = 0
save_as_annexb = 0

flags = AOM_EFLAG_FORCE_KF
aom_codec_control(codec, AOME_SET_CQ_LEVEL, 12)
aom_codec_control(codec, AV1E_SET_COLOR_RANGE, 1)

Stream is embedded in a HEIF container as a single item.