24p로 촬영한 뒤 텔레시네를 적용해서 60i로 송출되는 영상이 가끔 있습니다. 주로 드라마나 영화 같은 경우입니다.

텔레시네란 24p 영상의 프레임들을 필드로 나눈 다음(48i) 몇몇 필드를 중복시켜서 60i로 만드는 작업을 말합니다.

요즘 방영중인 SBS의 "드라마의 제왕"도 24p로 촬영해서 텔레시네 적용 후 60i로 송출되고 있습니다.

보통은 이런 영상을 인코딩하는 경우 텔레시네가 적용되기 전의 상태(24p)로 바꿔주는 역텔레시네(IVTC) 작업을 거칩니다.

역텔레시네를 거치면 원래의 24p로 복원되는데 문제는 영상 중에 24p가 아닌 부분이 있을 때입니다.

예를 들면 아래와 같이 영상 위로 흐르는 자막은 24p가 아닙니다. 원래의 24p 영상에 텔레시네가 적용된 후에 따로 입혀진 부분이기 때문입니다.


영상은 24p로 촬영됐지만 자막은 60i 상태로 입혀지다보니 영상과 자막이 따로 놀게 됩니다.

24p로 복원하면 영상은 자연스럽지만 자막이 부자연스럽고.. 60i를 디인터레이스 하듯이 30p로 복원하면 자막은 자연스럽지만

영상이 부자연스러워 보이게 됩니다. bob을 사용해서 60p로 만들면 양쪽 다 자연스러워 보이기는 하지만 중복 프레임이 많아지는 단점이 있습니다.

그래서 이런 경우에 사용하는 것이 VFR(가변 프레임 레이트)입니다. 24p로 복원하면서 자막이 지나가는 장면만 30p나 60p로 만드는 방식입니다.

하지만 과정이 조금 귀찮기도 하고..자막이 지나가는 장면은 전체 영상을 놓고 볼 때 얼마 되지 않기 때문에 보통은 24p로 만드는 경우가 많습니다.

그런데 이렇게 24p로 일괄 복원하는 경우에도 영상이 부자연스러워 보이는 경우가 있습니다.

24p로 복원을 했으니 자막이 끊겨 보이는 것은 이해가 가지만 영상 쪽도 같은 현상을 보이는 것은 뭔가 이상하죠.

역텔레시네 과정 중 필드 매칭이나 중복 프레임 제거가 잘 안 되는 것 같아서 확인을 해보니 중복 프레임 제거가 문제였습니다.

60i인 자막이 프레임의 중복 여부를 판단하는 데 영향을 줘서 중복 프레임 판별의 정확도가 떨어지는 것 같습니다.


이렇게 영상의 60i인 부분이 역텔레시네 과정에 영향을 끼치는 것을 방지하기 위해서 tdecimate 필터의 clip2 옵션을 사용합니다.

clip2 옵션은 tdecimate 필터의 최종 출력 프레임을 인풋 클립에서 가져오지 않고 다른 클립에서 가져오도록 바꿔주는 옵션입니다.

예를 들면 아래와 같이 사용합니다.

source=MPEG2Source("E:\ivtc.d2v").tfm()

cropped=source.crop(0,0,0,-192)

tdecimate(cropped,clip2=source)

lanczosresize(800,448)


이런식으로 스크립트를 작성하면 tdecimate 필터의 중복 프레임 판별은 cropped 클립에서 수행되지만

최종 출력 프레임은 source 클립에서 가져오게 됩니다.

60i인 부분은 크롭으로 잘라내고 중복 프레임 여부를 판단하기 때문에 영상에 맞춰서 정확히 24p로 복원해 줍니다.


아래는 각각의 스크립트를 사용해서 인코딩한 영상 샘플들입니다.

자막이 지나가는 화면 아래 부분을 손이나 책 등으로 가리고 보면 clip2 옵션을 사용한 영상은 끊기지 않고 부드럽게 움직이는 것을 확인할 수 있습니다.


MPEG2Source("E:\ivtc.d2v")

tfm()

tdecimate()

lanczosresize(800,448)

tdecimate.zip




source=MPEG2Source("E:\ivtc.d2v").tfm()

cropped=source.crop(0,0,0,-192)

tdecimate(cropped,clip2=source)

lanczosresize(800,448)

tdecimate_clip2.zip



Posted by 김코덱