- Published on
Encoding: 4:4:4 Chroma Subsampling
Durasi baca 3 menit|0x dilihat
- Penulis
- Name
- N4O
- @nao0809_

insert another generic intro here
Yang dibutuhin:
- PC
- Vapoursynth dan segalanyas
- x264
Silakan ikuti langkah instalasi Vapoursynth berikut terlebih dahulu:
4:4:4 Chroma Subsampling dah menjadi hal normal di Fansub luar negeri. Cuma di Indonesia masih belum normal ya...
Di postingan ini, akan tak kasitau beberapa advantage dari 4:4:4 chroma 10 bit di banding 4:2:0 chroma 10bit
Ukuran/Resolusi Plane
Sesuai namanya, 4:4:4 chroma membagi semua plane (Y:U:V) menjadi sama rata (cue the soviet anthem) dibanding 4:2:0.
Sekilasnya, 4:4:4 menjadikan resolusi per-plane menjadi sama, misal 720p menjadi 720p semua, sedangkan 4:2:0 resolusi per-plane menjadi 720p/360p/360p.
Jadi kalau pake 4:2:0 alhasil chroma plane (U & V) akan di upscale ke 720p.
U Plane


V Plane


Warna lebih detail
Warna lebih detail 4:4:4 walaupun tidak seberapa, perbandingan tak sediakan di bawah.
U Plane


V Plane


Kalau liat gambarnya, PlaneStatsMin menjadi lebih rendah di 4:4:4 dan PlaneStatsMax lebih tinggi di 4:4:4, Average hanyalah rata-rata atau median dari Min/Max frame tersebut.
Untuk plane Chroma (U&V) saja, untuk plane Luma (Y) sama saja.
Size
Size mungkin bervariasi pada encode masing-masing, cuma dengan melakukan test encode, size 4:4:4 lebih kecil ~4mb dibanding 4:2:0 tetapi speed encode lebih lambat ~1.5fps
Berikut settingan encodenya, perubahan hanya terdapat pada --output-csp
, --profile
dan --8x8dct
YYY untuk profile adalah 444
dan 10
. YYYY untuk output-csp adalah i444
dan i420
x264-r2935-545de2f-naoLmod_x64.exe --output-depth 10 --profile highYYY --level 5.0 --preset veryslow --subme 10 --me umh --tune animation --crf 18 --deblock -1:-1 --rc-lookahead 60 --keyint 250 --bframes 16 --ref 16 --qcomp 0.75 --aq-strength 0.85 --merange 32 --psy-rd 0.80:0.05 --output-csp YYYY --colormatrix bt709 --aq-mode 3 --chroma-qp-offset -5 --fade-compensate 0.80 --no-fast-pskip --output "premuxbd_%~n1.264" "%~n1%~x1"
Untuk speed encode:


Lalu untuk size sendiri:


Kokkoku NCOP:
444: ~120 mb
420: ~130 mb
Perbadaan speed: ~1fps (lebih cepat 420)
4:4:4 tidak dapat bekerja dengan baik di resolusi ~1080p apalagi 4K, terlalu sedikit advantage yang bisa diambil dari 4:4:4 kalo 1080p+, jadi encoder biasanya ninggalin jadi 4:2:0 10bit aja
Tambahan
Skrip vapoursynth yang dibuat dan digunakan:
import vapoursynth as vs
from vapoursynth import core
import fvsfunc as fvf
v = core.ffms2.Source(r"./BDMV/00008.mkv")[0:2157]
v = fvf.Depth(v, 16)
v444 = fvf.Downscale444(v, 1280, 720, kernely="bicubic", kerneluv="bicubic")
v420 = core.resize.Bicubic(v, 1280, 720)
v444y = core.std.ShufflePlanes(v444, 0, vs.GRAY)
v444y = core.std.PlaneStats(v444y, v444y).text.FrameProps().text.Text("Y Plane 444", 8) # Output: 720p
v420y = core.std.ShufflePlanes(v420, 0, vs.GRAY)
v420y = core.std.PlaneStats(v420y, v420y).text.FrameProps().text.Text("Y Plane 420", 8) # Output: 720p
v444u = core.std.ShufflePlanes(v444, 1, vs.GRAY)
v444u = core.std.PlaneStats(v444u, v444u).text.FrameProps().text.Text("U Plane 444", 8) # Output: 720p
v420u = core.std.ShufflePlanes(v420, 1, vs.GRAY).resize.Bicubic(1280, 720)
v420u = core.std.PlaneStats(v420u, v420u).text.FrameProps().text.Text("U Plane 420", 8) # Output: 360p
v444v = core.std.ShufflePlanes(v444, 2, vs.GRAY)
v444v = core.std.PlaneStats(v444v, v444v).text.FrameProps().text.Text("V Plane 444", 8) # Output: 720p
v420v = core.std.ShufflePlanes(v420, 2, vs.GRAY).resize.Bicubic(1280, 720)
v420v = core.std.PlaneStats(v420v, v420v).text.FrameProps().text.Text("V Plane 420", 8) # Output: 360p
compare = core.std.Interleave([v444v, v420v])
v444 = fvf.Depth(v444, 10)
v420 = fvf.Depth(v420, 10)
compare.set_output()
Anime yang digunakan: Zombieland Saga BD (NCOP)
Postingan selanjutnya mungkin tentang OCR