사용자 삽입 이미지



요즘 쿼드코어 CPU와 HDTV 수신카드의 대중화로 인해 인코딩에 대한 관심이 많아지는 추세입니다.
하지만 다들 조금 시도해보고는 속도가 너무 느려서 금방 포기해버리곤 합니다.

그렇다면 느린 속도의 근본적인 원인은 뭘까요?
물론 H264의 뛰어난 압축률 덕분에 고사양을 요구하기 때문이지만
사실 속도가 실시간 인코딩 (30FPS) 이상만 나와줘도 그나마 만족할텐데
웬만한 사양 아니고서는 10FPS도 넘기 힘든게 현실이죠.

그동안 저는 FFT3DGPU 속도가 느려서 불만이었는데 알고보니 그게 아니었습니다.
8800GT라서 그런지 몰라도 FFT3DGPU의 속도는 충분히 빠르네요.
마지막에 말씀드리겠지만 FFT3DGPU의 속도는 거의 영향을 안주는 정도였습니다. (46FPS 이상으로 추정)

테스트에 사용된 소스는 HDTV 드라마 1분 컷팅입니다.
두 필터의 영향을 비교하기 위해서 컬러매트릭스는 사용하지 않았으며 오로지 크롭만 적용된 상태였습니다.

DGDecode_mpeg2source("test.d2v")
crop( 2, 8, -2, 0)

옵션은 MeGUI x264 기본옵션에 ABR 3000 Bitrate 입니다.
테스트 사양은 요크필드 Q9550 @ 4GHz로 오버클럭된 상태입니다.

가장 속도가 빠른 조합은 역시 디인터레이싱을 하지 않고 리사이즈를 Bilinear로 하는 경우입니다.
그런데 사실상 HDTV 인코딩을 하는데 디인터레이싱 작업을 하지 않는 것은
인코딩의 바닥 조차 지키지 않는 행위입니다.
실제로 디인터를 하지 않고 직접 해보시면 아시겠지만 빠른 장면에서 잔상이 그대로 남습니다.
그러니까 가로로 물결무늬가 생긴다는 말이죠.

표에서 위 부분은 실제 속도를 나타내며 아래 부분은 가장 빠른 조합을 100점으로 환산했을 때의 상대점수 입니다.
MeGUI에서 기본적으로 사용하는 필터 조합인 Yadif와 Lanczos를 사용하면 61.25점이 나오네요.

하지만 디인터를 FieldDeinterlace(blend=false)로 하고 리사이즈를 Bilinear로 하는 경우 꽤 쓸만한 속도가 나왔습니다.
그렇다면 FieldDeinterlace(blend=false)로 했을 경우와 Yadif나 다른 디인터 필터로 했을 경우
결과물에는 어느정도 차이가 있을까요?

귀찮아서 결과물 비교는 하지 않겠습니다.
k2님이 예전에 Yadif랑 Tdeint를 비교해 놓은 것이 있는데
솔직히 확대해서 자세히 봐야 디테일 면에서 차이가 나지
어차피 멀리서 누워서 감상하시는 분들에겐 차이가 없다고 할 수 있습니다.

물론 그렇게 따지면 XviD나 x264도 차이가 없죠. 멀리서 누워서 감상한다면 말이죠 ^^

그런데 컬러매트릭스를 사용할 경우 속도가 많이 떨어지더군요.
FieldDeinterlace(blend=false)와 Bilinear 조합에선 44.31FPS가 나왔지만
여기에 컬러매트릭스를 추가하니 ColorMatrix(hints=true,interlaced=true) 속도가 33.16FPS 나왔습니다.

컬러매트릭스를 사용하는 이유는 HDTV가 BT709이기 때문에 원래의 색상을 찾아 레벨 조절을 해주기 위함입니다.
자세한 사항은 (http://hruj.tistory.com/entry/h5)

아 그리고 아까전에 FFT3DGPU 이야기는 가장 빠른 조합에 FFT3DGPU를 넣었는데 46.72FPS가 나왔습니다.
즉 48.05에서 46.72가 되었다는 말은 FFT3DGPU의 속도는 아주 빠르다는 말입니다.
그렇다면 환상적인(?) 효과를 내는 FFT3DGPU의 사용을 마다할 필요가 없겠군요.



아무튼 결론을 내리자면
최고의 품질로 명품 소장용 인코딩을 한다면 좋은 필터를 사용하고 고급옵션을 사용하겠지만
빠른 속도로 대충대충 인코딩을 해서 어딘가에 뿌린다거나 엔탈의 속도를 따라잡고 싶으시다면
FieldDeinterlace(blend=false)와 Bilinear 조합으로 하셔도 괜찮겠습니다.
물론 컬러매트릭스를 사용하지 않아서 생기는 칙칙한 색감은 뭐... ^^