스샷 비교 링크
http://www.framecompare.com/image-compare/screenshotcomparison/777GLNNX
http://www.framecompare.com/image-compare/screenshotcomparison/999EJNNU
인코딩 세팅 HEVC slow 2pass 6000 kb/s 옵션 가지가지추가 핸드브레이크사용
주로 손보는 옵션들
:rc-lookahead
:lookahead-slices
:ref
:subme
:max-merge
:no-sao
:no-strong-intra-smoothing
:psy-rd
:psy-rdoq
:aq-mode
:deblock
hash=0 / no-temporal-layers / open-gop / min-keyint=24 / keyint=240 / gop-lookahead=0 / bframes=8 / b-adapt=2 /
b-pyramid / bframe-bias=0 / rc-lookahead=60 / lookahead-slices=0 / scenecut=40 / radl=0 / no-splice / no-intra-refresh /
ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 /
dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing /
max-merge=5 / limit-refs=3 / limit-modes / me=3 / subme=5 / merange=57 / temporal-mvp / no-hme / weightp / no-weightb /
no-analyze-src-pics / deblock=-1:-1 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / no-fast-intra /
no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.50 / psy-rdoq=1.50 / no-rd-refine /
no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=6000 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 /
cplxblur=20.0 / qblur=0.5 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 /
no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 /
range=0 / colorprim=1 / transfer=1 / colormatrix=1 / chromaloc=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=255 /
log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps /
no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt /
no-idr-recovery-sei / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 /
refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 /
max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00
ssim psnr
[Parsed_ssim_0 @ 000002079b228280] SSIM Y:0.985295 (18.325449) U:0.992597 (21.305862) V:0.990829 (20.375979) All:0.987435 (19.008244)
[Parsed_psnr_1 @ 000002079b228680] PSNR y:46.574610 u:50.706987 v:49.711920 average:47.479277 min:38.681905 max:inf
원본 비디오만 24.2G
인코딩 비디오만 4.5G
인코딩시간 초당4프레임 정도로 플레이타임 대비 x11-x12 정도 걸림.. 한마디로 하루종일.. (i5 8400)
분석
여기 팁 올려주시는 분들처럼 전문적인 지식이 있는 사람은 아니라서 그냥 무작정 x265영상들 보다가
좀 화질이 괜찮다 하는 영상들 인코딩옵션을 따라하는 수준이라 전문적인 분석이 불가능함
단지 인코딩 횟수는 좀 되는지라 이정도면 충분히 원본하고 비벼볼만하다 하는정도의 판단은 가능
위에 psnr수치는 의외로 좀 낮게 나왔는데.. (오히려 셀프옵션 빼고 기본 slow만 쓰는게 수치는 더 잘나옴)
어차피 컴퓨터 기준과 사람 기준의 차이
저는 확실히 눈으로 보이는걸 더 믿고 인코딩후 비교할때 스샷도 사용안합니다. 이번엔 글쓸려고 찍어봤습니다
영상을 볼때 정지화면에서 차이를 찾는건 정말 무의미한짓이라고 생각합니다..
위 스샷에 물속장면도 전문용어는 모르겠으나 층이 지는 현상도 감상할때는 표시도 안나는게 실상입니다
모니터가 넓어서 두 파일 모두 원본 비율로 띄워놓고 고개 돌려가면서 비교 감상하는데
(제목 똑같이 고치고 플레이어에 두개띄워놓고 몇번 앞뒤로 섞음. 뭐가 원본인지 찾는 놀이-셀프블라인드테스트)
구별이 불가능하면 당연히 통과입니다..
오늘 인코딩은 구별불가는 아니고 매우구별힘듬 정도의 만족할 만한 수준으로 나왔기에 올려봅니다..
하늘, 물속 이런 플랫한 장면들 작정하고 보지않는이상 구별이 쉽지 않네요
하지만 그런부분이 용량을 줄이기위한 x265의 알고리즘이라니 1/5용량으로 충분히 용서가됩니다
2시간 기준으로 이정도 화질에 비디오크기 5G정도면 정말 시간이고 나발이고 인코딩 하는맛이 날듯합니다
능력자님들 저 옵션중에 정말 쓸데없는 옵션있으면 지적 바랍니다
x265는 질답도 별로없고 맨날 구글에서 양키들 문답 보느라 정말 죽겠습니다
누누이 말하지만, 공부하는 목적 외에 남이 설정한 고유 옵션을 일일이 따라할 필요는 없습니다. 그냥 x265의 medium, slow, slower 등 프리셋이 고유 옵션 중 어떤 것에 어떤 값을 준 것인지 정도만 파악하셔도 충분합니다. (아, 물론 HDR 인코딩 등을 위해 bit depth나 chroma subsampling, 색공간에 대한 것들은 추가로 공부할 필요가 있습니다.)
대부분의 경우 인코딩 고유 옵션 설정 변경보다는 필터 처리가 더 효과적일 경우가 많습니다. 고유 옵션 갖고 씨름해봤자 눈에 띄게 개선되지 않는 경우가 허다합니다. 물속 조명 장면 같은 banding 현상은 dithering 및 deband 관련 필터로 작업해야 유의미한 결과가 나옵니다. deblock, sao, strong-intra-smoothing 같은 in-loop deblocking 옵션이 그나마 x265가 갖고 있는 일종의 내장 필터 같은 거라 이 옵션 설정으로 화질을 조금 보정하는 정도입니다. 그렇지만 이것들도 비트레이트가 낮은 때는 blocking이 생길 수 있으니 주의하면서 적용해야 합니다.
인코딩은 medium, slow, slower 등 x265가 제공하는 프리셋으로 충분히 효율을 확보하고, 화질 보정을 원할 경우 필터 작업을 따로 하는 게 더 효과적입니다.
FFmpeg도 나름 필터들이 다양하긴 하지만, 연륜이 오래된 본격적인 필터 처리 언어인 AviSynth나 VapourSynth보다는 못합니다. 그래서 인코딩에 대해 공부하다 보면 결국 필연적으로 AviSynth나 VapourSynth 쪽을 찾아보게 되는 것 같습니다.
아, 참고로 PSNR은 믿을 만한 지표가 아니니 그냥 무시하시는 게 좋습니다.