Yadif 는 움직임을 감지해 빈필드 부분을 채워넣어 디인터레이스 해주는 필터입니다


상당히 빨라서 디코딩때도 인터레이스 영상에 ffdshow 안의 avisynth 스크립트 적는곳에 yadif 를 이용해 시청..하는 경우가 많습니다

사실 이걸 Decomb 다음에 바로 적었어야 했는데
미루다가 요즘 글적을 기회가 없어져서 지금에서야 적습니다
인터레이스 더 잘 해결하려고 디콤브 열심히 파보신분에겐 죄송하네요

이건 설정 해줄것도 없고 아주 간단합니다
그냥 플러그인 다운로드 페이지로 가셔서 Yadif 찾아 받으시면 되니까요

너무 간단하니 yadif설명은 줄이고 잡소리나 합시다



먼저 디인터레이스 관련 필터들을 정리해보자면

우리가 배웠던 Decomb 부터 기억해봅시다
Telecide 는 필드매칭을 하고 필요에 따라 디인터레이스를 했었습니다
Decimate 는 중복 프레임을 뽑아내는거 였구요
FieldDeinterace 는 telecide의 디인터레이스 기능만 있는 버전이었는데요

이 Decomb 시리즈의 디인터레이스는 정말...... 너무 단순했었죠
가로줄 있는 장면을 감지해내서
가로줄이 많다면 아래 필드를 버리고 빈 아래 필드 자리는
그장면의 위 필드 만으로 추측해 채워넣는 식이어서
아주 그냥 줄이 죽죽.....
혹은 blend=true 를 이용해서 장면을 섞어 처리했었는데 이건 희뿌옇게 잔상도 아닌게....
화질도 안좋고 용량도 늘고.. 암담했죠

그래서 이 decomb의 기초적인 디인터레이스 다음 레벨의 방법은
움직임을 감지해내서 그 부분만 디인터레이스 하는 방법입니다
대표적으론 Tdeint 라는게 있었는데 좀 느렸습니다

그래서 Tdeint 와 비슷하면서도 빠른 Yadif 가 뜨죠
너무 간편하고 빨라서 설명도 필요없습니다
속도는 컬러매트릭스 정도 급이니 인코딩땐 생각안해도 될 속도죠





그럼 같이 해보겠습니다
다들 받으셨으면 플러그인 폴더로 이동시키고
Yadif() 쳐보니 에러메세지를 뿜으며 인식이 안되죠?
이 플러그인은 형식이 달라서 그렇다고 같이 포함된 문서에 적혀있네요
일반적으로 우클릭 메뉴로 플러그인을 불러올때
Loadplugin("C:asdfasdfyadif.dll")   라고 적어지죠?

거기서 중간에 c만 붙혀서 LoadCplugin("C:asdfasdfyadif.dll") 라고 적어주세요

Load_Stdcall_plugin() 혹은 LoadCplugin() 를 이용해서 불러와야 된다고 합니다

그럼 이제 잘 되죠?

끝.....







... 더 자세히 보자면     Yadif (clip, int "mode", int "order")
라는데요 order는 탑필드 퍼스트 영상인지 버텀 퍼스트인지 정하는거 입니다 자주 나오죠
알아서 잘 되니 안해도 문제없구요

mode 는 뭐냐 하면
mode=0 의 경우 시간상 과 공간상 둘다 인터레이스 검사하고 판별뒤 디인터레이스 합니다
그러니까 움직임이 있는부분과 현재 프레임의 모양을 보고 디인터레이스를 한다는거겠죠?

뭘 고르던 빠르지만 특정영상에선 0 을 골랐을때
멈춰 있는 장면이라 디인터레이스가 필요없는데도
표면이 디인터레이스 하고싶게 생겨서... 디인터레이스 처리 되버리는 특이한 경우 2 를 사용합니다


mode=1 은 프레임레이트를 두배로 늘리고(bob) 시간적, 공간적 으로 검사뒤 빈필드부분은 채워넣습니다
      그러니까 탑,버텀 필드를 나눠 각각을 프레임으로 만든뒤
      앞뒤장면 모션등을 비교해서 비어있는 각 상대 필드 부분을 채워넣는거죠
      용량부담이 있지만 티비보는것 처럼 움직임이 부드러워집니다
      움직임이 중요한 영상이라던지 선명한 인터레이스 영상은 해볼만 하죠
mode=2 는 프레임레이트는 그대로, 하고 시간적 으로만 디인터레이스
mode=3 은 bob 후 시간적 으로만 체크

yadif 가 무척 빠르다곤 했지만.. 1 과 3 은 프레임 갯수가 두배가되니
인코딩할 프레임이 많아져서 소요시간이 늘어납니다... 두배 가까이...
용량또한 움직임이 많은 영상이라면 두배 가까이.........











음.... 끝으로 한번더 강조 하겠습니다 인터레이스 영상과 3:2 풀다운은 꼭 구별해서 처리합시다

이 yadif 는 오.로.지. 인터레이스 영상에서만 써야해요
프로그래시브 영상에 yadif 써보시면 멀쩡한 프레임이 모두 난도질 당합니다...
특히!!!  3:2 풀다운 영상에 절대로 쓰지마세요
yadif가 성능이 좋아 인터레이스줄은 사라지긴 하지만 쓰지마세요......ㅠㅠ


풀다운 영상의 경우 Decomb 의 Telecide 필드매칭 기능이 훨씬 킹짱 끝이니까요
필드매칭은 원리상 가로줄 처리에 완벽 합니다
풀다운영상이란 원래 프로그래시브 24fps였지만 몇몇필드를 중복해넣어 30fps을 만든거란 의미니까요

현재 화면의 버텀 필드를 가지고
현재 화면의 탑필드와 붙혀본뒤 가로줄 정도를 검사,
또 다음화면의 탑필드와 붙혀본뒤 가로줄 정도를 검사,
둘중 가로줄 적은 필드를 선택.

아무리 상태가 안좋은 컴퓨터라도 이렇게 둘중 하나 답이 항상 있는경우는
빗나갈래야 빗나갈수가 없겠죠?
그 뒤 decimate로 중복된 장면을 뽑아내면 이보다 더 쉽고빠르고 정확한 IVTC 는 없죠




이해 안가는 용어가 있다면 중급 폴더 꼼꼼히 읽어보시구요
그럼 진짜 끝




본 강좌는 hruj님이 작성하셨습니다 (출처 : http://hruj.tistory.com/entry/h16)
profile