x264로 오랫동안 인코딩을 해오신 분들은 아시겠지만 예전에는 CRF 모드로 인코딩을 할 때 프레임 레이트와 관계없이 주어진 값을 사용했었습니다.

소스의 프레임 레이트가 어찌됐든 사용자가 입력한 CRF 수치가 그대로 적용됐었죠.

그래서 저도 당시에는 HDTV 인코딩시 프레임 레이트에 따라서 24fps = crf22, 30fps = crf23, 60fps = crf24 등으로 구별해서 사용했었습니다.

그러다가 아래 패치가 적용된 후로는 프레임 레이트에 따라서 자동적으로 CRF 수치가 조절되고 있습니다.

http://git.videolan.org/gitweb.cgi?p=x264.git;a=commit;h=22bfd310abced4df0b11c9620b152e5cfe746d43


패치 내용은 25fps를 기준으로 인풋 영상의 프레임 레이트에 따라서 CRF 수치를 재조정한다는 것입니다.

예를 들어 CRF 23으로 인코딩한다고 가정했을 때 프레임 레이트가 25fps이면 구버전과 신버전의 CRF 수치는 똑같이 23이 되지만

프레임 레이트가 25fps보다 높아지면 신버전에서는 CRF 수치도 함께 높아집니다.

반대로 프레임 레이트가 낮아지면 CRF 수치도 낮아집니다.

이렇게 하는 이유는 프레임 레이트가 높아질수록 프레임 한 장이 보여지는 시간은 그만큼 줄어들기 때문입니다.

따라서 프레임 레이트가 높아질수록 CRF 수치도 함께 높이는 것이 "일정한 화질"이라는 개념에 더 적합하다는 것이죠.


이 패치 이후로는 저도 HDTV 인코딩시 CRF 값을 22로 통일해서 사용하고 있습니다. 22를 사용하면 예전과 비슷한 수치가 나오더군요.

아직 모르셨던 분이나 CRF 인코딩을 처음 해보려는 분은 참고하시면 좋을 것 같습니다.




'인코딩 일반' 카테고리의 다른 글

x264 QP 값의 범위  (6) 2012.12.13
H.264/AVC 인코딩과 레벨  (2) 2012.12.13
영상의 해상도와 16배수  (0) 2012.12.12
x264 CRF 인코딩과 프레임 레이트  (0) 2012.12.10
MeGUI 2460 버전의 x264 옵션 정리  (29) 2012.12.09
인터레이스와 프로그레시브  (20) 2012.12.05
Posted by 김코덱