출저 : 링크
가끔 드라마를 놓쳐서 여기저기에서 인코딩된 결과물을 볼 경우가 있는데.. 안타까운 마음이 들 때가 종종 있더구만.
인코딩 코덱 설정 등은 잘 되어 있지만, 필터나 디인터레이싱 문제로 결과가 좋지 못하게 나오는 경우가 가끔 있다는 것이지.
원래 HDTV 소스는 29.97 프레임의 인터레이스드 소스이지. 이것은 곧 시간상으로는 59.94 프레임이 되는 것이지만 이것이 정확한 프로그레시브 소스는 아니겠고.
라인이 홀짝으로 바뀜에 따라 그 라인이 나타내는 영상 내부의 위치도 달라지게 되니, 정확한 프로그레시브로 보기에는 어려운 면이 있다는 말. 그래서 이걸 앞뒤 프레임에 있는 정보로 적당히 보정해주기 위해 각종 디인터레이스 필터가 존재하는 것이고, 대부분 돌아다니는 59.94fps/720p 동영상들은 이 필터들을 적용해서 만든 것들이겠고.
그리고 일부 24p를 소스로 쓰는 경우를 발견함. 마치 dvd의 필름소스처럼 24fps임...
어쨌든 HDTV 소스를 인코딩할 때의 방법은 대체적으로
(이하 29.97fps를 30fps, 59.94fps를 60fps로 표기함)
1. 인터레이스드 상태로 인코딩
1.1. 코덱에서 인터레이스드 인코딩을 지원하는 경우 (1080i/30fps)
1.2. 그냥 무식하게 아무 처리 없이 인터레이스드 상태로 인코딩 (1080i/30fps)
2. 디인터레이스 필터를 사용하여 60fps로 인코딩 (720p/60fps, 1080p/60fps)
3. 원래의 소스를 단순 50% 리사이징으로 블렌딩하여 30fps로 인코딩 (540p/30fps)
4. 디인터레이스 필터를 사용하여 60fps를 뽑아낸 후 재처리하여 30fps로 인코딩
4.1. 2프레임중 1프레임을 버리는 경우 (720p/30fps, 1080p/30fps)
4.2. 2프레임을 1프레임으로 블렌딩하는 경우 (720p/30fps 1080p/30fps)
5. 원본이 24fps인 경우 ivtc등 24프레임으로 올바르게 처리 (720p/24fps, 1080p/24fps)
(이외 30fps 따위로 비정상적으로 처리한 경우는 따지지 않음)
위의 6가지로 볼 수 있겠고, 1의 방법은 거의 사용하지 않는 방법이니 논외로 함. 1080i 인코딩을 지원하는 코덱이 많지 않고, 용량도 만만치 않게 들어가기 때문에.
프레임더블링도 각각에 대하여 변수가 많기 때문에 여기에서는 다루지 않음.
주로 돌아다니는 고화질 영상들은 2의 720p/60fps의 영상들이 많고, 이외에 4번의 영상들이 720p/30fps로 돌아다님.
본인의 경우에는 3의 방법을 자주 쓰는데, (1)720p라는 높은 해상도가 필요 없고 (2)디인터레이싱에 (인코딩보다 더 많은) 처리시간을 들일 필요가 없기 때문이지. 주로 적당한 용량에 적당한 화질의 영상들을 얻어내기 위한 방법으로 봐야할 듯.
4.2의 방법은 일단 2의 방법으로 60fps의 영상을 얻어내고, 60fps 중 다시 2장을 합쳐 1장으로 만드는 과정을 거치게 됨. 3의 방법과 비교하자면 비교적 높은 해상도의 화면을 얻을 수 있다는 차이가 있겠지.
문제는 4.1의 방법이지. 2프레임 중 1프레임을 버리게 될 경우, 프레임간의 중간 동작들이 나타나지 않아 이상하게 끊기는 듯 하는 현상이 나타나고 움직임이 많은 화면에서 부자연스러움이 나타나게 된다는 것. 4.2와 비교하자면 한장 한장은 더 또렷해 보일 수 있지만, 정상적인 동영상 재생화면에서는 오히려 마이너스가 될 수 있다는 말이지. Yadif로 옵션 없이 (mode=0) 처리할 경우 이렇게 처리가 되어버리니 주의해서 써야함.
이것 저것 인코딩해본 경험으로는, (용량순으로) [ 2번, 4.2번, 3번 ]의 방법으로 인코딩해야만 만족스러운 결과물을 얻을 수 있음.
사진도 몇장 넣고 동영상도 넣었으면 좋겠지만.. -_- 인코딩 하는 사람들이 직접 테스트 하는 편이 나을 듯.