summaryrefslogtreecommitdiffstats
path: root/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/mp4parse/link-u-avif-sample-images/Makefile')
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/Makefile911
1 files changed, 911 insertions, 0 deletions
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile b/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile
new file mode 100644
index 0000000000..2cabb6101b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile
@@ -0,0 +1,911 @@
+CAVIF=../cavif/cmake-build-debug/cavif
+DAVIF=../davif/cmake-build-debug/davif
+
+all: hato kimono fox plum;
+
+HATO=\
+ hato.profile2.8bpc.yuv422.avif \
+ hato.profile2.8bpc.yuv422.monochrome.avif \
+ hato.profile2.10bpc.yuv422.avif \
+ hato.profile2.10bpc.yuv422.monochrome.avif \
+ hato.profile2.12bpc.yuv422.avif \
+ hato.profile2.12bpc.yuv422.monochrome.avif \
+ hato.profile0.8bpc.yuv420.avif \
+ hato.profile0.8bpc.yuv420.monochrome.avif \
+ hato.profile0.10bpc.yuv420.avif \
+ hato.profile0.10bpc.yuv420.monochrome.avif
+
+hato: $(HATO);
+
+KIMONO=\
+ kimono.avif \
+ kimono.rotate90.avif \
+ kimono.rotate270.avif \
+ kimono.mirror-horizontal.avif \
+ kimono.mirror-vertical.avif \
+ kimono.mirror-vertical.rotate270.avif \
+ kimono.crop.avif \
+ kimono.mirror-vertical.rotate270.crop.avif
+
+kimono: $(KIMONO);
+
+FOX=\
+ fox.profile0.8bpc.yuv420.avif \
+ fox.profile0.8bpc.yuv420.odd-width.avif \
+ fox.profile0.8bpc.yuv420.odd-height.avif \
+ fox.profile0.8bpc.yuv420.odd-width.odd-height.avif \
+ fox.profile0.8bpc.yuv420.monochrome.avif \
+ fox.profile0.8bpc.yuv420.monochrome.odd-width.avif \
+ fox.profile0.8bpc.yuv420.monochrome.odd-height.avif \
+ fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif \
+ fox.profile0.10bpc.yuv420.avif \
+ fox.profile0.10bpc.yuv420.odd-width.avif \
+ fox.profile0.10bpc.yuv420.odd-height.avif \
+ fox.profile0.10bpc.yuv420.odd-width.odd-height.avif \
+ fox.profile0.10bpc.yuv420.monochrome.avif \
+ fox.profile0.10bpc.yuv420.monochrome.odd-width.avif \
+ fox.profile0.10bpc.yuv420.monochrome.odd-height.avif \
+ fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif \
+ fox.profile2.12bpc.yuv420.avif \
+ fox.profile2.12bpc.yuv420.odd-width.avif \
+ fox.profile2.12bpc.yuv420.odd-height.avif \
+ fox.profile2.12bpc.yuv420.odd-width.odd-height.avif \
+ fox.profile2.12bpc.yuv420.monochrome.avif \
+ fox.profile2.12bpc.yuv420.monochrome.odd-width.avif \
+ fox.profile2.12bpc.yuv420.monochrome.odd-height.avif \
+ fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif \
+ fox.profile2.8bpc.yuv422.avif \
+ fox.profile2.8bpc.yuv422.odd-width.avif \
+ fox.profile2.8bpc.yuv422.odd-height.avif \
+ fox.profile2.8bpc.yuv422.odd-width.odd-height.avif \
+ fox.profile2.8bpc.yuv422.monochrome.avif \
+ fox.profile2.8bpc.yuv422.monochrome.odd-width.avif \
+ fox.profile2.8bpc.yuv422.monochrome.odd-height.avif \
+ fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif \
+ fox.profile2.10bpc.yuv422.avif \
+ fox.profile2.10bpc.yuv422.odd-width.avif \
+ fox.profile2.10bpc.yuv422.odd-height.avif \
+ fox.profile2.10bpc.yuv422.odd-width.odd-height.avif \
+ fox.profile2.10bpc.yuv422.monochrome.avif \
+ fox.profile2.10bpc.yuv422.monochrome.odd-width.avif \
+ fox.profile2.10bpc.yuv422.monochrome.odd-height.avif \
+ fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif \
+ fox.profile2.12bpc.yuv422.avif \
+ fox.profile2.12bpc.yuv422.odd-width.avif \
+ fox.profile2.12bpc.yuv422.odd-height.avif \
+ fox.profile2.12bpc.yuv422.odd-width.odd-height.avif \
+ fox.profile2.12bpc.yuv422.monochrome.avif \
+ fox.profile2.12bpc.yuv422.monochrome.odd-width.avif \
+ fox.profile2.12bpc.yuv422.monochrome.odd-height.avif \
+ fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif \
+ fox.profile1.8bpc.yuv444.avif \
+ fox.profile1.8bpc.yuv444.odd-width.avif \
+ fox.profile1.8bpc.yuv444.odd-height.avif \
+ fox.profile1.8bpc.yuv444.odd-width.odd-height.avif \
+ fox.profile1.10bpc.yuv444.avif \
+ fox.profile1.10bpc.yuv444.odd-width.avif \
+ fox.profile1.10bpc.yuv444.odd-height.avif \
+ fox.profile1.10bpc.yuv444.odd-width.odd-height.avif \
+ fox.profile2.12bpc.yuv444.avif \
+ fox.profile2.12bpc.yuv444.odd-width.avif \
+ fox.profile2.12bpc.yuv444.odd-height.avif \
+ fox.profile2.12bpc.yuv444.odd-width.odd-height.avif \
+ fox.profile2.12bpc.yuv444.monochrome.avif \
+ fox.profile2.12bpc.yuv444.monochrome.odd-width.avif \
+ fox.profile2.12bpc.yuv444.monochrome.odd-height.avif \
+ fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif
+
+fox: $(FOX);
+
+PLUM_LARGE=\
+ plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif \
+ plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif \
+ plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif \
+ plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif \
+ plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif \
+ plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif \
+ plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif \
+ plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif \
+ plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif \
+ plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif \
+ plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif \
+ plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif \
+ plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif \
+ plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif \
+ plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif \
+ plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif \
+ plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif \
+ plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif \
+ plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif \
+ plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif \
+ plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif \
+ plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif \
+ plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif \
+ plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif \
+ plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif \
+ plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif
+
+PLUM_SMALL=\
+ plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif \
+ plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif \
+ plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif \
+ plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif \
+ plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif \
+ plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif \
+ plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif \
+ plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif \
+ plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif \
+ plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif \
+ plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif \
+ plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif \
+ plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif \
+ plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif \
+ plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif \
+ plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif \
+ plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif \
+ plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif \
+ plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif \
+ plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif \
+ plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif \
+ plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif \
+ plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif \
+ plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif \
+ plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif \
+ plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif
+
+PLUM=$(PLUM_LARGE) $(PLUM_SMALL)
+
+plum: $(PLUM);
+
+STAR=\
+ star-8bpc.avifs \
+ star-8bpc-with-alpha.avifs \
+ star-10bpc.avifs \
+ star-10bpc-with-alpha.avifs \
+ star-12bpc.avifs \
+ star-12bpc-with-alpha.avifs
+
+star: $(STAR);
+
+ALL_AVIF=$(HATO) $(KIMONO) $(FOX) $(PLUM)
+ALL_AVIFS=$(STAR)
+DECODED_PNG=$(ALL_AVIF:%.avif=decoded/%.png)
+DUMMY_CHECK_TARGETS=$(ALL_AVIF:%.avif=%.check)
+
+.PHONY: all clean \
+ hato kimono fox plum \
+ star \
+ decode decode-clean decode-images \
+ url hato-url kimono-url fox-url plum-url\
+ compare $(DUMMY_CHECK_TARGETS)
+
+decode-clean:
+ rm -Rf decoded/
+
+$(DECODED_PNG): | decoded
+
+decoded:
+ mkdir -p decoded
+
+decode-images: $(DECODED_PNG);
+
+decode:
+ $(MAKE) decode-clean
+ $(MAKE) decode-images
+
+compare: $(DUMMY_CHECK_TARGETS);
+
+decoded/%.png: %.avif
+ $(DAVIF) -i $< -o $@
+
+$(DUMMY_CHECK_TARGETS): %.check: %.avif decoded/%.png
+ bash -e scripts/compare.sh $@ $(word 1,$^) $(word 2,$^)
+
+url:
+ cat Makefile | grep '^.*\?\.avif:' | sort -d | sed 's/^\(.*\)\:\s*\(.*\)$\/https\:\/\/raw.githubusercontent.com\/link-u\/avif-sample-images\/master\/\1, https\:\/\/raw.githubusercontent.com\/link-u\/avif-sample-images\/master\/\2/'
+
+hato-url:
+ $(MAKE) url | grep hato
+
+kimono-url:
+ $(MAKE) url | grep kimono
+
+fox-url:
+ $(MAKE) url | grep fox
+
+plum-url:
+ $(MAKE) url | grep plum-blossom
+
+clean:
+ rm -Rf *.avif decoded .alpha-masks
+
+## hato
+
+### YUV422
+
+hato.profile2.8bpc.yuv422.avif: hato.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+hato.profile2.8bpc.yuv422.monochrome.avif: hato.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --monochrome --cpu-used 0 --rate-control q --crf 18
+
+hato.profile2.10bpc.yuv422.avif: hato.16bpc.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+hato.profile2.10bpc.yuv422.monochrome.avif: hato.16bpc.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --monochrome --cpu-used 0 --rate-control q --crf 18
+
+hato.profile2.12bpc.yuv422.avif: hato.16bpc.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+hato.profile2.12bpc.yuv422.monochrome.avif: hato.16bpc.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --monochrome --cpu-used 0 --rate-control q --crf 18
+
+### YUV420
+
+hato.profile0.8bpc.yuv420.avif: hato.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+hato.profile0.8bpc.yuv420.monochrome.avif: hato.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --monochrome --cpu-used 0 --rate-control q --crf 18
+
+hato.profile0.10bpc.yuv420.avif: hato.16bpc.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+hato.profile0.10bpc.yuv420.monochrome.avif: hato.16bpc.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --monochrome --cpu-used 0 --rate-control q --crf 18
+
+## Kimono
+
+kimono.avif: kimono.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.rotate90.avif: kimono.rotate90.png
+ $(CAVIF) -i $< -o $@ --rotation 270 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.rotate270.avif: kimono.rotate270.png
+ $(CAVIF) -i $< -o $@ --rotation 90 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.mirror-horizontal.avif: kimono.mirror-horizontal.png
+ $(CAVIF) -i $< -o $@ --mirror horizontal --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.mirror-vertical.avif: kimono.mirror-vertical.png
+ $(CAVIF) -i $< -o $@ --mirror vertical --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.mirror-vertical.rotate270.avif: kimono.mirror-vertical.rotate270.png
+ $(CAVIF) -i $< -o $@ --mirror vertical --rotation 90 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.crop.avif: kimono.png
+ $(CAVIF) -i $< -o $@ --crop-offset 103,-308 --crop-size 385,330 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+kimono.mirror-vertical.rotate270.crop.avif: kimono.mirror-vertical.rotate270.png
+ $(CAVIF) -i $< -o $@ --crop-offset -308,103 --crop-size 330,385 --mirror vertical --rotation 90 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+## Fox Parade
+
+### YUV420
+
+#### 8bit
+
+fox.profile0.8bpc.yuv420.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+#### 10bit
+
+fox.profile0.10bpc.yuv420.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+#### 12bit
+
+fox.profile2.12bpc.yuv420.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+### YUV422
+
+#### 8bit
+
+fox.profile2.8bpc.yuv422.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+#### 10bit
+
+fox.profile2.10bpc.yuv422.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+#### 12bit
+
+fox.profile2.12bpc.yuv422.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+### YUV444
+
+#### 8bit
+
+fox.profile1.8bpc.yuv444.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile1.8bpc.yuv444.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile1.8bpc.yuv444.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile1.8bpc.yuv444.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+#### 10bit
+
+fox.profile1.10bpc.yuv444.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile1.10bpc.yuv444.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile1.10bpc.yuv444.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile1.10bpc.yuv444.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+#### 12bit
+
+fox.profile2.12bpc.yuv444.avif: fox.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.monochrome.avif: fox.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.monochrome.odd-width.avif: fox.odd-width.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.monochrome.odd-height.avif: fox.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
+ $(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+## Alpha mask
+
+.alpha-masks:
+ mkdir -p .alpha-masks
+
+$(PLUM): | .alpha-masks
+
+## Plum blossom - large version
+
+### YUV420
+
+#### 8bit
+
+plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 10bit
+
+plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 12bit
+
+plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+## YUV422
+
+#### 8bit
+
+plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 10bit
+
+plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 12bit
+
+plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+### YUV444
+
+#### 8bit
+
+plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+#### 10bit
+
+plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+#### 12bit
+
+plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif: plum-blossom-large.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+## Plum blossom - small version
+
+### YUV420
+
+#### 8bit
+
+plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 10bit
+
+plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 12bit
+
+plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+## YUV422
+
+#### 8bit
+
+plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 10bit
+
+plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+#### 12bit
+
+plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+### YUV444
+
+#### 8bit
+
+plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+#### 10bit
+
+plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+#### 12bit
+
+plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18
+
+plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif: plum-blossom-small.png
+ $(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
+ $(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome
+
+star-8bpc.avifs: star.input.txt
+ $(eval TMP := $(shell mktemp -d))
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv420p -color_range jpeg -b:v 0 -crf 0 -lossless 1 $(TMP)/star.mp4
+ # You need the latest version of gpac.
+ # Go to https://github.com/gpac/gpac
+ # then, `make deb -j32`
+ MP4Box -add-image $(TMP)/star.mp4:id=1:primary -new $@
+ MP4Box -ab avis -ab msf1 -ab miaf -ab MA1B -rb mif1 -brand avis $@
+ MP4Box -add $(TMP)/star.mp4:hdlr=pict:ccst:name="GPAC avifs" $@
+ rm -Rfv $(TMP)
+
+# FIXME(ledya-z): WORK IN PROGRESS
+star-8bpc-with-alpha.avifs: star.input.txt
+ $(eval TMP := $(shell mktemp -d))
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv420p -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-video.mp4"
+ # FIXME(ledyba-z): It does not generate monochrome OBUs.
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt gray -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-alpha.mp4"
+ # You need the latest version of gpac.
+ # Go to https://github.com/gpac/gpac
+ # then, `make deb -j32`
+
+ MP4Box -raw-layer "1:output=$(TMP)/star-video" "$(TMP)/star-video.mp4"
+ MP4Box -raw-layer "1:output=$(TMP)/star-alpha" "$(TMP)/star-alpha.mp4"
+
+ MP4Box -add-image "$(TMP)/star-alpha.av1:id=3:ref=auxl,4:alpha:name=Alpha" -add-image "$(TMP)/star-video.av1:id=4:name=Color" -set-primary 4 -ab avif -new $@
+ MP4Box -add "$(TMP)/star-video.av1:hdlr=pict:ccst:name=\"GPAC avifs\"" -add "$(TMP)/star-alpha.av1:hdlr=auxv:ccst:alpha:name=\"GPAC avifs alpha\"" -ref 2:auxl:1 -ab msf1 -ab miaf -ab MA1B -brand avis $@
+ rm -Rfv $(TMP)
+
+star-10bpc.avifs: star.input.txt
+ $(eval TMP := $(shell mktemp -d))
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv422p10 -color_range jpeg -b:v 0 -crf 0 -lossless 1 $(TMP)/star.mp4
+ # You need the latest version of gpac.
+ # Go to https://github.com/gpac/gpac
+ # then, `make deb -j32`
+ MP4Box -add-image $(TMP)/star.mp4:id=1:primary -new $@
+ MP4Box -ab avis -ab msf1 -ab miaf -ab MA1B -rb mif1 -brand avis $@
+ MP4Box -add $(TMP)/star.mp4:hdlr=pict:ccst:name="GPAC avifs" $@
+ rm -Rfv $(TMP)
+
+# FIXME(ledya-z): WORK IN PROGRESS
+star-10bpc-with-alpha.avifs: star.input.txt
+ $(eval TMP := $(shell mktemp -d))
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv422p10 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-video.mp4"
+ # FIXME(ledyba-z): It does not generate monochrome OBUs.
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt gray10 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-alpha.mp4"
+ # You need the latest version of gpac.
+ # Go to https://github.com/gpac/gpac
+ # then, `make deb -j32`
+
+ MP4Box -raw-layer "1:output=$(TMP)/star-video" "$(TMP)/star-video.mp4"
+ MP4Box -raw-layer "1:output=$(TMP)/star-alpha" "$(TMP)/star-alpha.mp4"
+
+ MP4Box -add-image "$(TMP)/star-alpha.av1:id=3:ref=auxl,4:alpha:name=Alpha" -add-image "$(TMP)/star-video.av1:id=4:name=Color" -set-primary 4 -ab avif -new $@
+ MP4Box -add "$(TMP)/star-video.av1:hdlr=pict:ccst:name=\"GPAC avifs\"" -add "$(TMP)/star-alpha.av1:hdlr=auxv:ccst:alpha:name=\"GPAC avifs alpha\"" -ref 2:auxl:1 -ab msf1 -ab miaf -ab MA1B -brand avis $@
+ rm -Rfv $(TMP)
+
+star-12bpc.avifs: star.input.txt
+ $(eval TMP := $(shell mktemp -d))
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv444p12 -color_range jpeg -b:v 0 -crf 0 -lossless 1 $(TMP)/star.mp4
+ # You need the latest version of gpac.
+ # Go to https://github.com/gpac/gpac
+ # then, `make deb -j32`
+ MP4Box -add-image $(TMP)/star.mp4:id=1:primary -new $@
+ MP4Box -ab avis -ab msf1 -ab miaf -ab MA1B -rb mif1 -brand avis $@
+ MP4Box -add $(TMP)/star.mp4:hdlr=pict:ccst:name="GPAC avifs" $@
+ rm -Rfv $(TMP)
+
+# FIXME(ledya-z): WORK IN PROGRESS
+star-12bpc-with-alpha.avifs: star.input.txt
+ $(eval TMP := $(shell mktemp -d))
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv444p12 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-video.mp4"
+ # FIXME(ledyba-z): It does not generate monochrome OBUs.
+ ~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt gray12 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-alpha.mp4"
+ # You need the latest version of gpac.
+ # Go to https://github.com/gpac/gpac
+ # then, `make deb -j32`
+
+ MP4Box -raw-layer "1:output=$(TMP)/star-video" "$(TMP)/star-video.mp4"
+ MP4Box -raw-layer "1:output=$(TMP)/star-alpha" "$(TMP)/star-alpha.mp4"
+
+ MP4Box -add-image "$(TMP)/star-alpha.av1:id=3:ref=auxl,4:alpha:name=Alpha" -add-image "$(TMP)/star-video.av1:id=4:name=Color" -set-primary 4 -ab avif -new $@
+ MP4Box -add "$(TMP)/star-video.av1:hdlr=pict:ccst:name=\"GPAC avifs\"" -add "$(TMP)/star-alpha.av1:hdlr=auxv:ccst:alpha:name=\"GPAC avifs alpha\"" -ref 2:auxl:1 -ab msf1 -ab miaf -ab MA1B -brand avis $@
+ rm -Rfv $(TMP)