decomb 두번째 글이네요
첫번째 글애서 대충 유형에 따라 예제만 보고 자동으로 24fps 30fps 섞인 VFR만 만들었었죠?
이번엔 더 상세한 설정과 오버라이드!!! 에 대해 배울껀데요
override 우선 설정 이라고 해야될까요 수동으로 24fps 30fps구간을 지정할수 있습니다
오버라이드는 뒤에서 보기로 하고
그럼 시작합니다
먼저 telecide() 입니다
telecide 는 필드매칭이 기본이고 그뒤 디인터레이스에 관련된 옵션들이 대부분이기 때문에
인터레이스 영상의 경우가 아니라면 그냥 order만 정하시고 post=0 적어 넣으신뒤
telecide 내용은 일체 보실필요가 없습니다...
Telecide()
order (0-1 기본값 없슴)
1 탑필드 퍼스트 영상인지(TFF) , 0 버텀필드 퍼스트 영상인지(BFF) 지정합니다
field matching을 할때 반드시 필요하죠 어느필드가 먼저인지는 dgindex 에서 볼 수 있습니다
두개밖에 없으니 찍어도 됩니다... 사실 대부분이 탑을 먼저 그리는 1이지만
(설마 벌써 필드매칭이 뭔지 잊으신분없겠죠? 1번 글에 적어 놨는데)
guide (0-3, 기본0)
필드매칭때 성능향상을 위해 패턴을 지정해줍니다
0 은 지정안함
1 은 필름에서 3:2풀다운된 영상의경우
2 는 2:2풀다운된 PAL 영상
3 은 25fps 에서 30fps telecine 한영상 (이런건 중급에서도 안배웠죠? 희안한게 다있네)
왠만하면 가이드 0으로 해두세요 하이브리드 영상때 1 해보니 멀쩡한 30p부분을 망치네요..
gthresh (0.0-100.0 기본 10.0)
필드 매치때 얼마나 패턴에 어긋나면 매치 패턴을 바꿀지 지정하는 수치입니다
100이 100%구요 mismatch 값은 어디서 보냐하면
telecide 에 show=true 추가 하시면 보입니다 guide를 켜놨을때만 보이고 작동합니다
post (0-5, 기본2)
postprocessing 후처리를 말하는데요 어떤 후처리냐 하면 디 인터레이스입니다
post=0 모든 후처리를 끕니다 인터레이스 카메라로 찍은장면이 없다면 무조건 0 하세요
3:2풀다운 영상의 경우에도 필드매칭 만으로 완벽하게 해결되기에 0 하시면 됩니다
켜둘경우 오히려 가로줄이 많은장면에서 디인터레이스 되며 망가집니다...
post=1 show=true 할경우 vmetrics 값만 계산해 보여주고 디인터레이스는 하지않습니다
post=2 인터레이스 프레임이라 판별되면 디인터레이스 합니다
post=3 2와 같지만 motion map 을 보여준다는데 어디가 모션...? 이라는건지 모르겠네요
그냥 왜 인터레이스 프레임으로 판별됬는지 보여줍니다
post=4 2와 같지만 필드매칭 하기 이전의 오리지날 프레임을 디인터레이스 합니다
화면상으로 뭐가 다른지 모르겠네요
vthresh (0.0-255.0, 기본50.0)
show=true 했을때 보이는 chosen 값의 임계치입니다
(물론 post값을 0말고 해놔야 보이겠죠)
가로줄이 많을수록 chosen 값이 높아지고
기본값 50이상 수치가 올라가면 디인터레이스 됩니다
dthresh (0.0-255.0, 기본7.0)
디인터레이스 강도입니다 낮을수록 강합니다 보통 5정도 써도되고
이건 직접 건드려 보시길
blend (true/false, 기본false)
post 디인터레이스 작동시 앞뒤 필드를 잘 조합해 섞습니다 어떻게 섞냐하면...
한픽셀의 위의 필드와 아래필드 를 잘 조합해 섞는거 같은데
켤경우 선이 매끄럽게 연결되지만 장면이 섞인다는 점이 안좋죠
음.. bob 비슷하면서도 적절하게 섞는 디인터레이스의 한 방법이라 말해야 될까요
끌 경우엔 한필드만 사용하게되는 bob입니다
켜건 끄건 둘다 안좋기에... post=0 치고 다른 플러그인으로 처리하기도 합니다
show (true/false, 기본false)
이건 미리 설명해버렸죠? 키면 화면에 여러정보들이 보입니다
여기부턴 telecide 고급 옵션이라네요
chroma (true/false, 기본true)
크로마도 계산합니다
이것도 생각해봐야 할 문제인데요 대부분 카메라들 dvd들 yuv4:2:0 을 사용하기 때문에
채도 부분 해상도가 낮습니다 그래서 오히려 디인터레이스 계산에 방해가 될수 있습니다
인터레이스 장면에서 coloryuv(cont_y=-255) 쳐서 정상적인 동일장면과 비교해보시면
제가 무슨소릴 하는지 아실겁니다
물론 이걸 끈다고 해서 크로마 부분이 디인터레이스 안되는게 아닙니다
계산에 방해가 되니 킬까 말까 묻는 옵션이 있는거죠
back (0-2, 기본0)
제가 필드매칭 이전글에서 설명했었죠?
풀다운영상때 버텀필드를 보고 탑필드를 맞춰 가로줄을 없엔다 하는거
그때 현재 탑필드와 다음프레임의 탑필드를 비교한다고 했었는데
이걸 설정하게 되면 뒷프레임의 탑필드도 사용합니다
0일경우 off
1일경우 다음프레임의 탑필드를 골랐는데도
chosen 값이 50이 넘는다면(인터레이스 줄이 보이면) past 프레임을 선택합니다
2일경우 뒷프레임도 항상 고려함
show=true 적어보세요 밑에 using c 혹은 n 혹은 p라고 나옵니다
c의경우 필드매칭을 안한경우 n은 넥스트 탑프레임과 필드매칭한경우
p는 패스트 탑프레임과 필드매칭 한경우입니다
2를 해놨다면 matches 에 있는 이전,현재,다음 의 값중
제일 작은 수치의 프레임을 선택합니다
근데 back 프레임을 선택하는옵션... 이거 효과가 뭔지모르겠네요 안해도 잘 되는데
원본 소스가 조악할때 사용하는것도 같습니다
bthresh (0.0-255.0, 기본50)
위에 back=1의 경우 chosen 값 임계치에 해당합니다
nt (정수, 기본10)
noise tolerance threshold 노이즈 허용 임계치 라고 해야되려나요
일반적으로 건드릴 필요가 없답니다
소스가 안좋아 제대로 필드매칭이 안된다면 살포시 올려보라네요
y0 과 y1 (정수, 기본0)
몰라요 패스
hints (true/false, 기본false)
telecide가 decimate에 정보를 보냅니다 단순히 프로그래시브 화면이냐 아니냐 밖에 없어
그냥 끄는게 더 좋습니다
ovr (문자열)
우선 설정 override 파일을 지정합니다 설정을 적은 ovr.txt 파일을 만들고
ovr="ovr.txt" 이런식으로 지정합니다 설정법은 제일 마지막에 설명하겠습니다
debug (true/false 기본false)
디버그 사용법을 모르겠네요
Decimate()
cycle (2-25, 기본5)
값이 5라면 5장면마다 한프레임씩 뽑아냅니다 30fps 이 24fps으로 되겠죠
mode (0-4, 기본0)
cycle=5 에대한 프레임을 처리하는,뽑는 방법 mode입니다
mode=0 한단계 전 cycle의 뽑아낸 비슷한 프레임을 뽑아냅니다
mode=1 변화가 적은, 중복된 프레임중 뒤에걸 제거하지 않고 그 뒤와 합칩니다 (30fps로)
주로 24fps 구간에서 합침을 당하고... 조악해 집니다 (애니 절대 비추 명심ㅠㅠ)
mode=2 이건 앞 예제에 없었죠? 가장 길게 중복되는(비슷한) 프레임을 뽑아냅니다
주로 애니메이션에서 쓰입니다 0 과도 비슷하네요
mode=3 움직임이 많은 장면은 합쳐 없엡니다 (24fps로) 애니라면 가급적 VFR 을
mode=4 VFR! 24fps이라 판단되는부분 에선 24로 만들고 30fps이라 판단되면 그대로 둔뒤
타임코드 파일을 작성합니다 프레임 변화 정도로 판단하죠
threshold (decimal소수 , 기본0.0)
mode1과 3은 이 값을 건드려줘야 정상적으로 작동합니다 mode0과 2의 경우 관계없습니다
show=true 했을때 나오는 숫자들이 장면 바뀜 정도죠? 아닌가..
mode1은 바뀜정도가 threshold를 못 넘으면 장면 합칩니다
mode3은 바뀜정도가 threshold를 넘으면 장면 합칩니다
왜인지 아시겠나요?
mode1은 30fps을 만드는 과정이니 장면이 적게 바뀌는 장면(24fps 필드매칭후 중복된 프레임)을 자연스럽게 30fps 에 맞게 늘리려고
mode3은 24fps를 만드는 과정이니 장면이 많이 바뀐다면 자연스럽게 섞어 24fps로 내리려고 그런거죠
참고로 threshold 0 일경우 mode1은 항상 합침발동... mode3은 합침 작동 안됩니다
mode4의 경우에는 장면바뀜 정도가 threshold 에 못미치면 24fps구간으로 만듭니다
threshold2 (소수, 기본3.0)
mode2에서만 쓰입니다 조절해보니 new와 dub의 인식만 바뀌는데
무슨효과인지 잘모르겠습니다 낮은 dub을 우선으로 뽑고 없다면 new중 랜덤인가....???
quality (0-3, 기본2)
quality=0: 서브샘플 하고 크로마는 고려안합니다
quality=1: 서브샘플 하고 크로마는 사용합니다
quality=2: 모두샘플 하고 크로마는 고려안합니다
quality=3: 모두샘플 하고 크로마도 사용합니다
음 서브샘플 어떤걸 말하는거일가요?
아마 루마 부분을 2x2를 하나로 생각한다 뭐 그쯤되는거같네요 위가 제일 빠르겠죠
ovr (문자열)
우선사항을 텍스트 파일에 적어놓고 ovr.txt 로 이름을 고친뒤
ovr="ovr.txt" 이렇게 지정합니다 사용법은 밑에서
show (true/false, 기본false)
true 하면 보이는거 아시죠 패스
progress (true/false, 기본true)
mode4 때 VFR 1 pass 진행 상황을 보여줍니다 뭐 끌 이유없겠죠
timecodes (문자열, 기본"timecodes.txt")
타임코드 파일을 만듭니다 기본값은 avs가 있는 폴더에 timecode.txt 파일이 만들어집니다
vfrstats (문자열)
vfrstats="hybrid.vfrstats" 이런식으로 지정하면 hybrid.vfrstats 파일이 만들어집니다
이파일이 한번 만들어지면 threshold 등 설정값을 건드려도
1패스 시간소비 없이 삽시간에 타임코드 파일이 재탄생 합니다
vfirpriority ((-1) - 4, 기본-1)
vfr 1 pass 때 cpu 선호도 입니다
vfrpriority=-1 : 선호도 바뀌지 않음 (그 프로그램의 선호도를 그대로 사용합니다)
vfrpriority=0 : 낮음
vfrpriority=1 : 보통 미만
vfrpriority=2 : 보통
vfrpriority=3 : 보통 초과
vfrpriority=4 : 높음
mincycles (자연수, 기본1)
프레임을 뽑아낼때 최소 사이클입니다 5프레임을 한 단위로 하는데
2로할경우 10프레임을 한 단위로 생각하죠
vfrovr (문자열)
vfr 전용 override 입니다 간단하지만 뒤에서 설명하죠 이게짱...............
이거 하나만 알면 사실 decomb도 땡입니다
FieldDeinterlace()
full (true/false, 기본true)
전부 인터레이스 영상일때만 미련없이 켭니다
끌경우 telecide처럼 밑에 threshold 값에 의해 판별해 디인터레이스 합니다
threshold (0-255, 기본20)
telecide의 vthresh 와 같습니다
dthreshold (0-255, 기본7)
telecide의 dthresh 와 같습니다
blend (true/false, 기본true)
이것도 telecide와 같습니다 인터레이스 카메라로 찍은경우 할수없이 true
map (true/false, 기본false)
이걸 켜서 본다고 뭐 나아지나요 ^^;
chroma (true/false, 기본false)
역시 다 중복되네요 크로마를 계산에 참고할지
ovr (문자열)
이제 합니다
show (true/false, 기본false)
패스
* FieldDeinterace 사용하실분은 이것보다 더 좋은 Yadif 설명글 추가했으니 그거보시고 써보세요
자........... 다 끝났네요
힘들게 적었지만
사실 중간에 인터레이스 영상이 낀걸 처리할게 아니면 이걸 꼼꼼히 보실 이유가 없습니다...ㅠㅠ
다들 더 나은 VFR 처리 방법에 혈안이 되있을텐데요
오버라이드 기능으로 간단히 끝납니다 오버라이드 설명하겠습니다
단어 뜻대로 우선 참고 설정 그런뜻인데요
구성은 암호? 스러울 정도로 아주아주 간단합니다
특히 VFR override 는 더 간단합니다
그냥 메모장을 여시고
시작프레임,끝프레임 명령어
로 끝납니다 mode4의 경우 명령어도 c 와 - 달랑 두개밖에 없습니다
예를들어 설명하죠 보통 애니메이션들
24fps시작 , 30fps오프닝 , 24fps본편 , 30fps엔딩 , 24fps예고
하는식으로 구성되죠? 메모장에 적습니다
0,2999 c
3000,5999 -
6000,27999 c
30500,32999 -
33000,33500 c
이런식으로 프레임 구간을 나눠 명령어 적고 vfrovr.txt 라고 저장한뒤
Telecide(order=1, post=0)
Decimate(mode=4, timecodes="tc.txt", vfrovr="vfrovr.txt")
이렇게 스크립트를 적기만 하면 decomb 완벽 마스터 땡 끝납니다ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
이때까지 배워온거에 비해 너무쉽죠?ㅠㅠ
숫자는 프레임 범위고
c 는 cycle 장면뽑기돈다는 의미, - 는 interace 프레임이 아니다(그대로둔다) 의 의미입니다
마찬가지로 telecide 의 ovr 파일도 보겠습니다
Overriding Decomb Decisions 하는 주제로 decomb 메뉴얼에 이 설명이 아주길게 나와있는데
쓸데없이 길게 나와있네요 제가 요약하죠
100 c 100 번 프레임은 currnt 현재 프레임에 필드매칭(안한다겠죠)
100,500 c 100~500 번 프레임 필드매칭 안함
100,185 ncccn 100~185 번 프레임 ncccn 패턴으로 필드매칭
100,185 nc 100~185 nc 패턴
쉽죠? 다음은 후처리 관련
100 + 100 은 인터레이스 프레임(디인터 해라는 명령)
100,500 + 100~500 은 디인터레이스
100 - 100 은 인터레이스 아님(그대로둠)
100,500 - 100~500 은 가만히 두는걸 우선
200,500 v 25 200~500 은 vthreshold 25 로 작동
100 b 2 100 에선 back=2 작동 (p,c,n 중 고르는 옵션이었죠)
200,500 b 1 200~500 은 back=1 작동
참쉽죠???????
주의하실점은
이렇게 메모장에 적고 저장한뒤 ovr=" " 로 파일이름을 지정해줘야 하는데
그파일이 avs가 있는 폴더에 있어야합니다
AVSP에서 스크립트만 짠상태라면 AVSP폴더에 있습니다
또 프레임은 오름차순 반스시 지키시고 띄어쓰기도 지키세요
음..또... 마지막으로 blend에 대한 잡소리를 할텐데요
꼼꼼히 보신분은 알겠지만 이 장면합침은 3종류가 나왔었어요
하나는 telecide의 디인터레이스 때 합침
또 하나는 decimate 의 mode1때 30fps 합침
마지막은 decimate 의 mode3의 24fps 합침
telecide때는 애초에 인터레이스로 찍혔으니 blend로 장면을 합쳐도 어쩔수가 없지만
mode1은 정말 쓸데없는 기능같습니다 필드매칭이 끝난 풀다운 영상이
원본 24fps와 비교해 볼때 중복되는 장면이 하나 더 들어가 있기에 시간상 자연스럽게 하려고
변화가 적은 중복된 프레임을 감지해 섞어주려고 만든 기능인거 같은데
막상 해보시면 화질을 더 악화시키죠 ㅠㅠ
우리가 다루는 영상들이 고작 30fps도 안되니 뿌옇게 합쳐진 프레임... 자연스러움은 커녕
눈에 뿌연 흔적이 다 보입니다........ 거기다 용량까지 배로.....
반면 mode3은 볼만 합니다 원래 24fps이었던 풀다운 구간에선 합침 발동 안되고 움직임이 많은 30부분에선 자연스럽게 프레임을 내려주고
그래서 결론은 애니에서 mode1 죽어도 쓰지마세요 ㅠㅠ
애니들은 왠만하면 장면 합침 저주해야 합니다
이렇게 decomb도 끝이납니다
아흑 다시는 이렇게 긴거 안 파해치겠습니다
TIVTC 도 이것과 비슷한데 적을마음이 벌써 다 사라졌네요 ㅠㅠ
다음부터는
실사에는 그다지 필터들이 필요없으니 흠.. 애니쪽 에서 아날로그 노이즈 잡는 필터 몇개 보고
완전수동,,, IVTC도 한번 더 볼까 합니다
본 강좌는 hruj님이 작성하셨습니다 (출처 : http://hruj.tistory.com/entry/h10)
