티스토리 툴바


기본적이고 간단한거지만
이것만 잘지켜도 왠만큼 훌륭한 영상으로 보이고 또 반대로 한순간에 망칠수 있기에
밝기조절에 미숙하신 분들이 주의해야할점을 적겠습니다



밝기, 대비, 감마 등을 바꿀때에는 항상 조심하세요

빛은 물리적으로 아주아주 넓은 범위입니다
사람 눈은 그 범위에 적응을 하게 되는데
열심히 밝기를 바꾸다보면 바뀐화면에 적응이 되버리기 때문에 얼마나 밝은지,어두운지 알아챌수 없습니다
알아채기 힘든게 아니라 '알아챌수 없습니다' 전문가고 훈련을해도 마찬가지 입니다
또 주위에 아주강한 태양빛에 따라서도 상대적으로 달라지기 때문에
밝기를 맞추려면 장비를 들고 측정하는 수밖에 없습니다
항상 주의하셔서 건드리세요


절대 동영상 플레이어 한도값의 ±15%정도 이상을 바꾸지 마세요
채도는 그나마 변화에 덜민감하지만 그래도 곰플레이어나 kmp등 기준으로 60 이상으로는 절대 하지마세요...
만화라도 너무 원색으로만 강렬해져서 보기안좋습니다
꼭 바꿔야만 정상적으로 보이는것 같나요? 그렇다면 특별한 이유가 없는 이상 버려야될 소스입니다 아니면 모니터가 분명 잘못된 경우입니다
특히 안좋은 LCD 모니터의 경우 감마를 마구 건드리고 싶을텐데요 이건 필시 모니터 탓입니다

감마의경우 1.20 이상 건드리지마세요
밝기 조절시 RGB(15,15,15) 이상 건드리지 마세요

그러니까 ColorYUV 기준으로 짚어드리겠습니다 이 범위를 벗어나야 할 경우는 드물겁니다
http://hruj.tistory.com

ColorYUV(gain_y=0, off_y=0, gamma_y=0, cont_y=0)

gain_y=±26      명도입니다 (0,0,0) 검은색은 그대로 두고 흰색을 더 희게합니다
                         256을 집어넣으면 (128,128,128)이 → (255,255,255)로
                         즉 곡선 기울기가 2로 되나보네요

off_y=±15         밝기입니다 전체 RGB값에 적은 수치만큼 더합니다

gamma_y=±52  감마입니다 감마는 모르시는분들이 많던데 정확히 뭔지 알필요 전혀 없습니다
                         0~255 까지의 검은색~흰색 그라데이션 RGB값이
                         검은색에서 일정하게 밝아지게 하기 위해서 존재하는 식입니다
CRT모니터에서 브라운관에 걸리는 전압과 빛의밝기가 비례하지 않으므로 곱해주게 되는 함수입니다
모니터들은 2.2의 감마를 가지고 있는데 무슨뜻이냐 하면
y축 0~255의 흑~백 을 낼때 필요한
x축 전압그래프가
밝기=전압^2.2+a
의 지수함수 비슷한 관계가 있다는겁니다.................. 자세히 알고 싶으신분은 아래 링크를 참조하세요
그때문에 컴퓨터 내부에서 1/2.2 감마로 보정을 해주게 되고
결과적으로 감마는 1.0인 일정한 흑~백의 그라데이션을 만들게 됩니다
흔히 우리가 컴퓨터 안에서 다루는 감마라고 말하면 모든 처리가 완료된 이 1.0을 기준으로 말하는겁니다

이 감마를 1.20 으로 바꾼다는건
보정용 감마에 1/(바꿔주는 감마값) 을 더 곱해준다는 의미 인것 같네요 높아질수록 더 밝아지는거죠
참 헛갈립니다 머릿속에 지수함수고 역함수고 자유롭게 생각이 그려지시는 분들은 한번에 알아들을수 있으실지도 모르겠네요............
coloryuv 의 감마수치에 256 을 집어넣으면 감마 2.0 으로 적용된다고 합니다 

cont_y=±26      대비입니다 (128,128,128)은 그대로 두고 흰색과 검은색을 더 희고 검게 합니다


잘 아시겠죠? 이쯤에서 귀찮으니 참고 그래프 넣고 끝낼께요





gamma_y=±52 감마입니다 감마는 모르시는분들이 많던데 정확히 뭔지 알필요는 없습니다
                         0~255 까지의 검은색~흰색 그라데이션 RGB값이
                        검은색에서 일정하게 밝아지는거처럼 보이지만
                        사실 실제 물리적인 밝기값은 그렇지 않습니다
예를들어 RGB(0,0,0) 값의 밝기를 측정해서 50이라는 값이 나왔다면 (1,1,1)은 (0,0,0)의 값에 2.2배 해준110입니다 게속해서 (2,2,2) 는 110 x 2.2 = 242 .... 이런식으로 (255,255,255) 까지갑니다
왜 2.2배를 해줬냐면 윈도우의 기본 감마가 2.2기 때문입니다
그렇게 완료된 0~255 값을 다시 감마 1.0 이라고 생각하고 이게 기본값이 됩니다
흔히 감마라고 말하면 이 1.0을 기준으로 말하는겁니다
이 감마를 1.20 으로 바꾼다면 어떤 의미인지 이제 아시겠죠? 머릿속에 지수함수고 역함수고 자유롭게 생각이 그려지시는 분들은 한번에 알아들을수 있으실지도 모르겠네요............
coloryuv 의 감마수치에 256 을 집어넣으면 감마 2.0 으로 적용된다고 합니다 
081120추가 죄송합니다 전에 적은 감마설명이 완전히 틀려먹었네요 수정해둡니다
귀차니즘이 걸린건지 확인도 안해보고.. 제가 글적던 날 미쳤나 봅니다......
옛날에 주워들은 기억을 바탕으로 그냥 적다니 실수했습니다 ㅋㅋ

자세한 정의는 아래 링크해둡니다...
http://eroom.korea.com/post/board.aspx?bid=don_70260&mode=read&view=board&pid=406598&cate=1228379&page=1



저 컬러이야기 글 원출처를 찾다보니 찾게된 홈페이지 인데 유용한글이 많네요
글쓰는 자료등 으로 보아 여기 김동호님이 모니터포유에서 리뷰를 담당하시는분 인가 봅니다
http://eroom.korea.com/cybercolor
http://cafe.daum.net/cybercolor
돈주고 사는 책속에서만 볼수있을법한 글들이 많지만 이룸코리아가 검색이 잘안되는 탓에 노출이 덜 된듯합니다
처음보는 개념까지 쉽게 적어져 있으면서도 좋은 자료들 이네요






아 틀린기념으로 잡소리 추가합니다
참고로 밝기, 명도, 대비의 이름말이죠... 저것도 설명하는 사람마다 이름이 다를수가 있는데요
헛갈려서 걱정하실 필요는 없을것 같습니다 정확하게 정의 내려진게 없는듯 하니.......

대비는 영어로 contrast 라고 적죠? 단어사전적 뜻 정의는 검은색과 흰색의 차이라는 뜻인데
그래서 디스플레이 쪽에선 밝기의 물리적인 값에 착안하여 검은색은 더 검어질수 없으니 오히려 gain 을 대비 라고 부르는가 봅니다
하지만 우리 영상쪽??? 에선 대비라고 하면 회색은 그대로 두고 흰색은 더 희게 검은색은 더 검게 하는걸 일반적으로 생각하죠?
그래서 coloryuv 명령어에도 그것을 콘트라스트의 cont 명령어로 이름지었나 봅니다

밝기와 명도는 둘다 brightness 라고 뜻자체도 밝고 어두운 정도라고 밖에 나와있는게 없습니다
그래서 lcd 모니터의 백라이트 밝기를 밝기라고 부르는 모니터 제조사들도 있고 명도라고 해놓는 제조사도 있습니다 마구잡이로 써도 상관없을듯 합니다
하지만 이것도 포토샵등 일반적인 사례들을 보면 off 가 밝기 gain이 명도 라고 하는게 맞는듯 합니다


Posted by hruj

댓글을 달아 주세요

  1. jongsbee 2008/11/18 01:59  댓글주소  수정/삭제  댓글쓰기

    hruj님 드디어 컴백하셨군요. 정말 반갑습니다. ㅋㅋ
    글픽카드의 캘리브레이션 부분도 있긴 하지만, 안 건드리는 더 큰 이유는 제가 이 부분은 정말 잘 모르기 때문입니다.. 좀 건든다 해도 tweak으로 컨트라스트 정도만 가끔 손보는 정도입니다.

    전 아직 블로그에 쓸 땔감 많은데.. ㅋㅋ 심심하면 제 블로그에 가끔 놀러오세요.
    그럼 꾸벅~~ x264 글 쓰는데 도움 많이 되었어요.

  2. hruj 2008/11/20 13:17  댓글주소  수정/삭제  댓글쓰기

    네 ㅋㅋ 종스비님 네이버 블로그는 검색하다 보면 자주 들르게 되는데요
    정말 유용한 정보가 많아서 한번 들어가면 한동안 심취해서 읽어보게 됩니다

    또..

    나올지 안나올지도 모르는 우물을 끝까지 검색해서 파내는 사람들끼리
    동질감도 느낍니다....................................................

  3. jongsbee 2008/11/24 00:32  댓글주소  수정/삭제  댓글쓰기

    파볼때까지 파볼생각이에요. 어려운필터는 못파겠구요. ㅋㅋ

    감마를 대해 설명한 링크를 하나 걸어봅니다.
    http://j2k.naver.com/j2k_frame.php/korean/ofo.jp/osakana/cgtips/gamma.phtml

    현재 TV와 PC 보정의 레벨조절 필터에 관한 내용을 쓰고 있습니다. 완결을 짓고 싶어서요. 그런데 감마부분에서 약간 막히네요. 그래프를 잘 보니까 밝기(bright), 감마(gamma), 명도(?), 대비(contrast)에 대한 개념이 이해가 가는군요, rgb값이 3개로 이뤄져있지만 아무래도 세로축의 값이 높을수록 밝아진다는 의미이겠지요.

    너무 밝은 부분이 있어서 약간 낮추고 싶다면 밝기보다는 대비가 낫겠네요.
    밝기에 비해 대비값을 낮추면 검정색 부근이 약간 밝아지니까 이 후 레벨조절필터를 써도 별 문제가 없더군요. 중간값을 고정시켜서 영상의 균형도 이뤄진다는 느낌도 들구요.

    감마를 높히면 검정색 부근 영역의 그래프곡선 기울기가 상당히 높아지니까 뭔가 좀 아니다 싶어요. 밝기나 대비에 비해 감마를 건드리는 빈도가 좀 있나 싶어서 물어봅니다. 그냥 1.0의 수치를 유지하는게 부작용이 없을 것 같아서요.

    두번째로는 ylevels인데 보통 ylevelsS가 sin(싸인 함수)대로 작동되어서 가장 정확하다는데, 둠나인보니까 감마값을 1.5이상으로 조정할때 쓰는게 좋다는 문장이 있어서 이것도 좀 고민입니다. http://forum.doom9.org/showthread.php?p=525465#post525465

  4. jongsbee 2008/11/24 00:32  댓글주소  수정/삭제  댓글쓰기

    아 그리고 coloryuv보니까 명도부분에서는 -수치를 지정할 수가 없더군요.

  5. hruj 2008/11/25 09:32  댓글주소  수정/삭제  댓글쓰기

    avsp 에는 0-1024 범위로 표시 되지만 막상 음수를 적어보면 적용됩니다.....황당하죠...어둡게도 되야되는게 정상이지만


    다시 감마에 대해서 더 뒤져보니까 예전의 감마설명이 완전히 틀린건 아니네요
    CRT모니터 브라운관에서 걸어주는 전압 변화와 물리적인 밝기 변화는 비례하지만
    우리 눈이 받아들이는 밝기 변화는 어두운쪽의 변화를 더 민감하게 알아채서
    일정하게 증가하는 전압으로는 흑-백의 균일한 그라데이션이 만들어지지 않아서 보정하기 위해 감마를 사용한다고 하네요




    또 음...
    우리가 coloryuv를 건드리는 이유는 주로
    영상이 모니터로 출력되는 과정까지 도중에 누군가 잘못해서 그걸 바로잡아 주기 위한 이유인데요

    대부분 비디오->피시 레벨을 제대로 바꿔주지 않아 16-235 로 표현해 버리는 경우가 많고,
    그 다음은 아날로그 전송 과정에서 YUV 신호의 밝기명도등이 틀어지는 경우,
    다음은 모니터로 표시될때의 의도하지않은 감마

    이쯤...... 됩니다
    둠9에 저 스레드가 설명하는 ylevelsS 는
    정확히 말하자면 감마가 아니네요

    어두운 영상을 밝게 하기위해 주로 사람들이 감마를 건드는 경우가 있는데
    어두운쪽에 맞춰 1.4쯤 올리게 되면 밝은부분이 희뿌옇게 색빠진듯 되버리기에
    자연스럽게 밝게 해주기 위해서 저런곡선을 통해 밝게 해주는 것입니다
    그러니까 ylevelsG,S 는 보정과 재창조의 차이지요

  6. jongsbee 2008/11/27 01:19  댓글주소  수정/삭제  댓글쓰기

    그렇군요. 둠나인포럼의 글을 hruj님의 설명을 곁들어서 읽어보니까 이제서야 이해가 갑니다. 감마 그거 생각대로 밝게하는데 주로 쓰이는 것이었네요.

    포스트에 있는 그래프 그거 흰색과 검은색만 갖고 테스트하여 복잡한 rgb값을
    단순화하여 측정하는 것 같은데, avsp에서 히스토그램 명령어를 가지고 테스트해보니까 꽤 여러가지 사실이 나오더군요.

    levels의 coring=true는 input값을 지정시 output에 limit가 걸린다던가, ylevels와 ylevelsS는 감마값을 1로 동일하게 지정해도 출력값에 limit가 걸린다 안걸린다의 차이가 있고,
    tv->pc를 하면 그래프기울기이 어덯게 변하는지 등등...

    이거 만지작거리니까 필터 옵션이 무슨뜻인지 파악하는게 무척 쉬울것 같습니다.
    http://img145.imageshack.us/img145/7725/1123vc1.png

    둠나인에 나온대로 YlevelsG는 감마값을 1.0이하로 지정시 중간값 이후부터 그래프기울기가 reverse되는 현상도 보였구... 이거 꽤 재미있네요.

    ylevels가 감마곡선 기울기 조절을 해서 어두운영역을 밝게하는 기능 그리고 ylevelsS등으로 기울기를 완만하게 조정... luma만 건드려서 색감을 levels보다 많이 유지...

    나중에 질문할게 많아질것 같은데 그때도 부탁드려요~~~^^

  7. 2009/05/03 22:10  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

Microsoft Windows XP Service Pack 3
서비스 팩 3 이 나왔습니다
그간 RC 버전들은 항상 마이크로 소프트 우수회원 전용 자료실 격인 MSDN 자료실에 떴었구요

21일엔 예정된정식 RTM 버전이 뜨면서
컴퓨터 조립 OEM 기업 들에게 전달 된다고 합니다
이건 파코즈나 검색 해보시면 구할 수 있구요

또..... 네이버 자료실에 까지도 미리 올라왔네요......ㄱ-
http://file.naver.com/pc/view.html?fnum=194939&cat=35




공식 일정으론 개인들에게 노란 방패모양 업데이트 로는 29일에야 배포 된다고 합니다
성능 좋으니 미리 받으실분 받으세요
http://hruj.tistory.com


주요 변화점은
운영체제 듀얼 쿼드 코어 지원 강화됩니다
그간 업데이트 핫픽스 포함됩니다 (다행히 느려터진 익스7, wmp11 은 제외)

그리고 깔아보시면 느린 컴퓨터들은 확실히 향상이 체감되고 백그라운드 반응이 빨라집니다
부팅시간이 반으로 단축되기도 하구요
슈퍼파이 결과값도 약간 향상 된다던데 인코딩 속도도 한 2%쯤 빨라지지 않을까요?
직접 비교는 안해봐서 모르겠네요 그럼


아맞다 혹시 에드센스 불편하신가요?
이런 블로그는 자주 보시는분만 매번 오시기 때문에 광고 달기 적합하지가 않네요
통계를 보면 1년에 한번 뽑아먹지도 못할정도로 수익이 적은데...
하루 평균 클릭이 1 조금 안되죠....
그냥 없에는게 나을거 같아요



# 29일 배포가 버그로 연기 되었습니다 Microsoft Dynamics RMS(Retail Management System) 와 호완성 문제 라는데
개인이 쓰기엔 이전버전 다운받아 써도 아무런 문제 없는듯 하네요

5월 8일 노란방패... 업데이트 추가됬다고 합니다
Posted by hruj
TAG 다운

댓글을 달아 주세요

  1. 감마 2008/05/01 07:42  댓글주소  수정/삭제  댓글쓰기

    전 특히 부팅 속도에서 속도가 빨라져서 좋습니다. ㅎㅎ;;

  2. 와우 2008/08/19 08:02  댓글주소  수정/삭제  댓글쓰기

    한번 써봐야 겠습니다 감사합니다

Yadif

인코딩/고 2008/02/29 16:35

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

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

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

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

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



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

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

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

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

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





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

거기서 중간에 c만 붙혀서 LoadCplugin("C:\asdfasdf\yadif.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가 성능이 좋아 인터레이스줄은 사라지긴 하지만 쓰지마세요......ㅠㅠ

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

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

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




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

댓글을 달아 주세요

  1. hruj 2008/03/09 21:17  댓글주소  수정/삭제  댓글쓰기

    적은지 좀 된건데 비공개를 해놓고 모르고 있었네요

  2. cmcmcm 2008/03/24 18:33  댓글주소  수정/삭제  댓글쓰기

    컥 ㅠ.ㅠ;;
    저는 이렇게 avisource("D:\avi1.avi")
    LoadCplugin("C:\Program Files\AviSynth 2.5\plugins\Yadif.dll")
    Yadif()

    햇는데..

    Not an avisynth 2 C plugin: c:\program files\avisynth 2.5\plugins\yadif.dll
    (C:\program files\avisynth 2.5\pluguns\preview1,avs, line 2)이렇게 뜨네ㅐ요 ㅠ.ㅠ;;

    ㅏ웅 그리고 혹시 seesaw써보셨나요??^^ㅋㅋ

    여기서 많은 배움얻고가요 ^^ 즐건하루보내세요아그리고 저는 avsP로작업하였씁니다

  3. hruj 2008/03/25 00:09  댓글주소  수정/삭제  댓글쓰기

    이런 에러는 처음보는데... 밑에것도 그렇고 avisynth 버전때문에 그런거같네요 보통 2.56

  4. cmcmcm 2008/03/25 09:14  댓글주소  수정/삭제  댓글쓰기

    와우!!! 정답이었습니다....

    ㅋㅋ

    ydif적용 됬음돠 ㅠ.ㅠ; 감동 ㅋㅋ

    지금 제가 인코딩을 시작하게된것이..

    영상업쪽에 일을하고있는데요 촬영해온 촬영본에 인터레이스가 심해서..

    편집툴을 이용해서 디인터를 먹이니;;; 엄청나게 화질손상이

    되더라구요..ㅠ.ㅠ;

    그래서 이렇게 시작을하게됫습니다..

    현재는 Seesaw를 이용해서 다른 필터들과 잘섞으면..

    큰 화질손상도없이.. 원하는 결과물들을 얻을수 있다고하더라구요..

    근데ㅠㅠ

    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\seesaw\masktools-v2.0a32\mt_masktools.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\seesaw\MaskTools-v1.5.8\masktools.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\RemoveGrainSse3.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\RepairSse3.dll")
    loadplugin("C:\Program Files\AviSynth 2.5\plugins\fft3dfilter\fft3dfilter.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\awarpsharp.dll")
    Import("C:\Program Files\AviSynth 2.5\plugins\Limitedsharpenfaster.avsi")
    Import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
    a=avisource("d:\avi1.avi")
    b=a.Removegrain()
    b=FFT3DFilter(a,sigma=6, sharpen=0.3, bt=5, bw=16, bh=16, ow=8, oh=8, ncpu=4)

    LimitedSharpenfaster(b,ss_x=2.0, ss_y=2.0, Smode=2)
    SeeSaw(a,b, NRlimit=2, NRlimit2=3, Sstr=1.5, Slimit=4, Spower=4, Sdamplo=5, Szp=18, sootheT=100, sootheS=100)
    #crop( 4, 4, -4, -4)

    LanczosResize(1280,720) # Lanczos (Sharp)
    #denoise

    제가 이렇게했을때에..경로는 다맞구요 ㅠ.ㅠ;

    avisynth open failure:
    RemoveGrain: only planar color spaces are supported
    (d:\seesaw2.avs, line 10)이라고뜨네요 ㅠㅠ

    여기서 seesaw2.avs는 제가 작성한 avs이구요..ㅠ.ㅠ;;

    왜그럴가요 ㅠㅠ

  5. hruj 2008/03/26 00:36  댓글주소  수정/삭제  댓글쓰기

    시소필터에서 사용되는 리무브 그레인에서 색공간 에러같은데
    뭔지 잘모르겠네요 윗쪽 인터레이스가 끝난 적당한 위치에 converttoyv12() 적어보시고
    안되면 에러 메세지 구글 검색하며 돌아다녀 봐야 될것같네요

  6. cmcmcm 2008/03/26 10:06  댓글주소  수정/삭제  댓글쓰기

    앗 감사합니다^^

    꼭 해결해서 좋은결과 알려드릴께요!!ㅋ

    즐거운하루되세요

  7. snoopy 2008/05/01 16:11  댓글주소  수정/삭제  댓글쓰기

    제 블로그에 링크 좀 걸겠습니다~~
    인코딩 관련해서 레퍼런스로 소개하려구요 ^^

  8. hruj 2008/05/12 00:56  댓글주소  수정/삭제  댓글쓰기

    네 블로그 링크 해 주시면 저야 감사합니다

FastLineDarken

인코딩/고 2008/02/19 16:15

저번에 혁명적인 샤픈 했으니 이번엔 애니에서 혁명적인 필터갑니다
이것도 스크립트 구요

FastLineDarken 이라는 건데
이름 그대로 선을 새로 칠해주는 필터입니다

애니메이션 에서는 이렇게 선만 칠해줘도 상당히 또렷하고 깔끔해 집니다
근데 단점이 원래 옅은선의 경우 fastlinedarken 후 영상을 100%크기로 보면 괜찮은데
확대해서 보면 잉크 방울들이 번진거마냥 너저분하게 됩니다...

이점을 보완해서
선을 칠해 주는 것으로만 끝나는게 아니라 더 부드럽게 자연스럽게 해주는
 
masktool2 를 이용한 mftoon 과 vmtoon 이 있는데 이건정말...
지~옥~의~느~림~맛~ 한~번~맛~보~면~ 잊~혀~지~지~가~ 않~는~......거니까
해보고 싶으신분은 전에 받은 masktool2 폴더안에 리미티드 샤픈이랑 같이있는
mftoon.avsi 랑 vmtoon.avsi 써보세요





전 fastlinedarken 만 적겠습니다
일단 필요한 플러그인은 masktool 플러그인이 필요합니다


저번에 했던건 mt_masktools.dll 이었죠? 이게 2 입니다
MaskTools.dll 은 v1 이구요

이번엔 오리지날 마스크툴은 avisynth 메뉴얼에 잘 뒤져보시면 주소가 나와있습니다
이거 http://manao4.free.fr/
여기서 1.5.8 버전 받아주세요 MaskTools.zip



또 FastLineDarken 스크립트는 여기입니다
http://forum.doom9.org/showthread.php?t=82125&highlight=FastLineDarken

근데... 조금 어이없게도 이 페이지 첫부분에 있는 스크립트 복사하시면 안됩니다...
약간 틀렸다고 하네요 (저걸 그대로 쓸경우 초록화면이 되버립니다...)
제일 밑에있는 스크립트가 수정된것입니다
밑에 있는걸 쫙 블럭 하셔서 메모장에 담고 fastlinedarken.avsi 로 저장하고 플러그인 폴더로






그럼 봅시다 기본값은 이거라네요
Fastlinedarken(strength=48,luma_cap=191,threshold=4,thinning=24)



strength
강도겠죠
luma_cap
선을 칠할때 색깔을 말합니다 255 가 완전 흑색
threshold
소스가 깔끔하지 않을땐 열화된 블럭같은거 에도 검은색이 살짝살짝 칠해지는데
이 값을 높이시면 그걸막아줍니다
thinning
워프샵처럼 선을 가늘게 해주는데
0으로 해줄경우 작동 안되는 대신 속도가 빨라집니다



fastlinedarken 끝
그냥 소스 깔끔할땐 스트랭스 적당히 낮게 하고 thinning 0으로 땡 끝내도 될것같네요












끝으로 잡소리

cpu가 너무 빨라서 한가하다고 생각하시는 분은...
vmtool mftool 같은거 써보세요...

아니면 어떤 하드가 너무 남아도는 분은
보통 깔끔한 dvd 로 hd급 해상도 뻥튀기로 늘려주고
샤픈으로 표면 살려주고
선을 다시 칠해주고
워프계열 샤픈으로 정리해주거나 해서
고해상도로 재 창작을 하시는 분도 있습니다...


선만 날카롭고 용량이 배가되죠... 난 하드도 작은데...ㅠㅠ
이렇게 크게 키운 동영상은 하드웨어 가속을 할 용도가 아니면 용량에 비해 별로 의미가 없습니다

http://hruj.tistory.com
어느정도 작은 영상이라도 화질이 좋다면
동영상을 받아보는 사람이 적절히 처리해 주는것이 중요합니다



ffdshow 디코더에 보면 이렇게 재생중에 리사이즈도 빠르게 하면서 샤픈먹이는게 가능하구요
또 동영상을 볼때 avisynth 스크립트를 적을수 있는 칸도 마련되 있습니다
(지금까지 배우신분들은 저기 ffdshow따위.. 옵션들 척보면 다 알겁니다)


그런데 다른 처리를 해줄수록 그만큼 cpu에 부하가 많이 가고 느려지죠....


이거 말고도 그래픽카드를 이용해서 리사이즈를 하는 방법도 있는데
픽셀쉐이더 2.0을 지원하지 않는 지포스 5000 시리즈 라데온 9000시리즈 미만의 구식만 아니면
cpu 부하없이 리사이즈 하는게 가능합니다

흔히 쓰는 오버레이믹서 렌더러를 VMR9 (3d표면에 동영상을 그려주는 방법, 오버레이 믹서보단 기본 cpu 부하가 좀더 높습니다) 로 바꾸면 쉐이더를 통해 동영상을 리사이즈 해줄수 있는데

곰플레이어에는 렌더러를 vmr9로 바꿔줄순 있지만 리사이즈 방법을 설정할순 없습니다..
아마 자동으로 bilinear 로 될듯..
kmp 에는 뒤져보면 있을겁니다 제가 kmp가 없어서 스크린샷은 없고..
통합코덱에 든 미디어 플레이어 클래식에는 출력옵션에 이렇게 나와있네요

바이큐빅 A=-1.00 을 골라주시면 굿....



이렇게 생각해보면
컴퓨터 성능 + 지식은 = 화질

로 봐도 되겠죠?



이 외에도 미디어플레이어 랑 kmp는(아마도) 쉐이더 스크립트를 적을곳도 제공합니다
샤픈같은 기본 스크립트가 몇개 짜여져 있구요 직접 적을수도 있지만 전 이런 프로그래밍 못해요..








흠... 오늘은 그럼 이만 끝내고
이제 더 적을 글거리도 없네요
끝끝끝
Posted by hruj

댓글을 달아 주세요

LimitedSharpen

인코딩/고 2008/02/18 20:21

avisynth 의 샤픈은 이게 제일 대박이죠...



일단 리미티드 샤픈은 잘 짜여진 스크립트 입니다
아마 SSXSharpen 이라는 플러그인에서 부터 발전한게 아닌가 싶네요
요즘은 LimitedSharpen 말고 LimitedSharpenFaster 라는 걸로 사용합니다
영화나 실사 질감에 효과가 만빵이고 요즘 화질좋은 애니에서도 써볼만합니다

http://forum.doom9.org/showthread.php?s=&threadid=84196

여기 설명이 좀 나와있는데요

흔히 쓰는 일반적인 샤픈은 (warpsharp,awarpsharp말고.. avisynth 자체 sharpen() 같은것)
경계면에 밝기의 대비를 통해 날카로움을 강조했었는데
이게 링크된 페이지의 첫번째 그래프처럼
의도하지 않게 바깥부분이 과도하게 밝아지거나 어두워지는 부작용이 있었죠
그래서 샤픈을 과하게 넣으면 선 주위로 하얗게 되버린 선이 보이고 이걸 halo 현상이라고 합니다

http://hruj.tistory.com/
이것 외에도 XSharpen 이라고 halo 현상이 없는 샤픈이 있었는데
경계면이 매끄럽게 되지않아서 사각사각 픽셀이 드러나는 문제가 있었습니다



그걸 해결한게 이 LimitedSharpen 인데요 (링크의 두번째 그래프)
오랜기간 살짝살짝 버전이 변한거다 보니 아마 찾기가 힘들으셨을 겁니다
설치하는걸 중점적으로 볼께요







먼저 LimitedSharpenFaster 에 필요한 플러그인들은

Masktools2
RemoveGrain v1.0
LimitedSupport
WarpSharp          (Smode=1로 워프샵의 언샵마스크 기능을 사용할때만 필요)

입니다
마스크툴2는 디레인보우때 받았었고
워프샵도 전에 받았었고
리미티드서포트
이 까지는 그냥 플러그인 다운로드 페이지에서 받으면 됩니다

그런데 리무브 그레인의 경우 거기서 받으시면 0.9 버전이라 오류가 나니
http://home.arcor.de/kassandro/RemoveGrain/RemoveGrain.rar
여기서 다운받아 주세요


그럼
각자 dll 폴더로 옮기시고

리무브 그레인은 좀 특이합니다 압축풀어보세요
dll 파일들이 좀 많을텐데요 자기 cpu에 따라 dll 파일을 골라야 합니다

하드웨어 관심있는 분이라면 파일이름에 SSE SSE2 등등 어쩌고 하는게 뭔지 바로 아실텐데
이건 cpu계산에서 자주쓰이는 명령어를 묶어 더 빠르게 계산하게 해주는 명령어 세트입니다
cpu종류에 따라 지원유무가 다릅니다

팬티엄3 나 에슬론 사용중이신 분은...... RemoveGrainS 를 플러그인 폴더로 옮겨주시면 됩니다
팬티엄4 셀러론, 인텔 2.4Ghz 정도되는 노스우드 코어나 에슬론64의 경우 SSE2
팬티엄4 프레스캇 팬티엄D 이상 모두 SSE3 입니다

대부분 SSE3 혹은 SSE2 시겠죠? 참고로 SSE2 파일의 경우 버그가 있다고 하니
혹시 버그가 나서 작동 안될경우 SSE3 넣어주세요






이렇게 다 준비다 됬습니다

마지막 LimitedSharpenFaster 스크립트는
MaskTool2 폴더안에 뒤져보시면 LimitedSharpenFaster.avsi 파일이 들어 있습니다
이걸 우클릭 insert source 나 플러그인 폴더로 옮겨주시면 인식합니다




limitedsharpenfaster 의 기본값은 이겁니다 오리지날 limitedsharpen 과 같죠

LimitedSharpenFaster( ss_x=1.5,   ss_y=1.5,     dest_x=last.width, dest_y=last.height,
 \              Smode=3,    strength=100, radius=2,
 \              Lmode=1,    wide=false,   overshoot=1,
 \              soft=0, edgemode=0,   special=false,
 \              exborder=0 )#                                   (\표시가 줄바꿈 무시 인거 아시죠?)



저 중에 중요한것만 설명하겠습니다
요즘 귀찮음병이...


ss_x , ss_y
이미지를 크게 리사이즈 해서 샤픈에 참고하는데 얼마나 크게 리사이즈 할지입니다
올리면 부드러워지고 느려집니다
2 이상은 별로 필요가 없다고 하네요
strength
강도
밑에 Smode에 따라 적용 강도가 다릅니다
1의 경우 약 0~127 , 중 128~255 , 강 255~4096
2의 경우 1~100    100이상 값은 100으로 적용
3의 경우 1~100~int 라네요 160정도로 보통 사용합니다
스트랭쓰를 마구 올려도 왜 블럭만 생기고 안깔끔 하냐고 하시는 분이 혹시 있을지도 모르겠는데
이미 화질좋은 원본소스 축소를 통해 엄청 선명 해진건 더 선명 안해집니다...
Smode
Sharpen mode 샤픈의 방법 입니다 그냥 대부분2로 빠르게 합니다
1은 warpsharp 의 언샵마스크를 통한 샤픈
2는 avisynth 의 그냥 sharpen()
3은 MinMaxSharpen() 이라네요 뭐지
Lmode
Limit mode 입니다 제일 위에 링크한 리미티드 샤픈 페이지 설명에 두번째 그래프에 나옵니다
1과 2
Overshoot  과  Undershoot
두번째 그래프에 나와있죠? 제한을 풀는것입니다
오버슛에 128를 적을 경우 리미티드 샤픈을 안쓴것과 같아집니다
또 언더슛 제한을 풀어서 애니메이션 선을 더 어둡게 해줄 수도 있습니다
주의하실점은 별다른 언더슛 값 지정이 없을때
자동으로 오버샷값을 언더샷값이 같이 따르게 됩니다


이정도만 아시면 됩니다


이번필터는 대충 설명없이 사용 하거나 발로 스트렝스 값을 적어 넣어도
halo 부담이 없기에 유치원생도 적절히 어떻게든 다 합니다
단점이라면 흐린 장면도 믿을수 없을 정도로... 깔끔하게 선명해져 원근감이 사라집니다
또 샤픈이란게 압축 알고리즘 계산상 압축이 힘들어 지기에 용량이 사알짝 늘어납니다

# 본사진은 축소한 것이므로 과장되 보일수 있으나
   smode 1로 4096 값으로 여러번 적용해 넣으면 대충 가능....
Posted by hruj

댓글을 달아 주세요

  1. 개구리발 2008/02/21 18:22  댓글주소  수정/삭제  댓글쓰기

    AVISource("C:\Program Files\QFile\Download\공유폴더\밴드 오브 브라-더스.Band of Bro-thers 02.avi",audio=false)

    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\warpsharp.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\RemoveGrainSSE3.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\LimitedSupport_28Nov05.dll")

    Import("C:\Program Files\AviSynth 2.5\plugins\Ylevels.avsi")

    convertToyv12()
    Ylevels(40,1.0,220, 40, 220)

    LimitedSharpenfaster( ss_x=1.5, ss_y=1.5, dest_x=last.width, dest_y=last.height,
    \ Smode=3, strength=100, radius=2,
    \ Lmode=1, wide=false, overshoot=1,
    \ soft=0, edgemode=0, special=false,
    \ exborder=0)#
    crop(12,0,-12,0)
    bicubicresize(320,220,0,1)
    addborders(0,10,0,10)
    Undot()

    이런식으로 했는데요. script error:there is no funtion named
    "limitedsharpenfaster" 라고 에러가 뜨네요. 플러그인을 잘못지정한건가요?

  2. CiEL 2008/02/21 20:21  댓글주소  수정/삭제  댓글쓰기

    Import("리미티드샤픈패스터 스크립트가 있는 경로") 를 붙여주셔야합니다

    리미티드 샤픈 스크립트를 안불러오셨네요

  3. 개구리발 2008/02/21 22:06  댓글주소  수정/삭제  댓글쓰기

    아;; 바보;; 감사합니다^^

  4. cmcmcm 2008/03/24 18:14  댓글주소  수정/삭제  댓글쓰기

    avisource("D:\avi1.avi")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\LimitedSupport_28Nov05.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\aWarpSharp.dll")
    LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\RemoveGrainSSE3.dll")
    import("C:\Program Files\AviSynth 2.5\plugins\LimitedSharpenFaster.avsi")

    convertToyv12()

    LimitedSharpenfaster( ss_x=1.5, ss_y=1.5, dest_x=last.width, dest_y=last.height,
    \ Smode=3, strength=100, radius=2,
    \ Lmode=1, wide=false, overshoot=1,
    \ soft=0, edgemode=0, special=false,
    \ exborder=0)
    crop(12,0,-12,0)
    bicubicresize(320,220,0,1)
    addborders(0,10,0,10)
    Undot()


    저는 이렇게 햇는데..왜

    script error:there is no function named"mt_edge"
    (c:\program files\avisynth 2.5\plugins\limitedsharpenfaster.avsi, line 68)
    (C:\program files\avisynth 2.5\plugins\preview1.avs line 14)
    라고나오는걸까요 ㅠㅠㅠ

  5. 유토퍄 2008/05/24 03:27  댓글주소  수정/삭제  댓글쓰기

    드디어 이렇게 성공했네요! 감사합니다!

    DirectShowSource("C:\jakupsil\349.mp4",fps=23.977020423626,audio=false)
    LoadPlugin("C:\Program Files\GordianKnot\AviSynthPlugins\LimitedSupport_28Nov05.dll")
    LoadPlugin("C:\Program Files\GordianKnot\AviSynthPlugins\mt_masktools.dll")
    LoadPlugin("C:\Program Files\GordianKnot\AviSynthPlugins\RemoveGrain.dll")
    LoadPlugin("C:\Program Files\GordianKnot\AviSynthPlugins\warpsharp.dll")
    import("C:\Program Files\GordianKnot\AviSynthPlugins\LimitedSharpenFaster.avsi")

    convertToyv12()

    LimitedSharpenfaster( ss_x=1.5, ss_y=1.5, dest_x=last.width, dest_y=last.height,
    \ Smode=3, strength=100, radius=2,
    \ Lmode=1, wide=false, overshoot=1,
    \ soft=0, edgemode=0, special=false,
    \ exborder=0)#

  6. Xenergy 2009/01/06 19:33  댓글주소  수정/삭제  댓글쓰기

    오호 감사합니다 구글링 몇시간동안해서 에러나는거 해결햇네요 아우..

    근대 원래 인코딩속도가 줄어드는건가요?

  7. 마의검사 2010/03/09 21:42  댓글주소  수정/삭제  댓글쓰기

    일단은 연산을 하는거니까 줄어드는거겠죠.

요즘 더 배울것도 없는데 오디오 인코딩에 대해서 적겠습니다
인코딩에서 궁금한거 있으면 질문 적어주세요
제가 빼먹은 내용이라면 강의글 적고 저도 모르는거면 같이 고민을






오디오 인코딩하면 보통 BeSweet 라는 프로그램이 정평이 나있는데요
일단 받아봅시다 http://dspguru.doom9.org/ 여기로 가셔서 beta 에
BeSweet 15b31 다운로드 하세요

이게 도스창에 일일이 적어야 되는 커맨드라인 프로그램이라서
윈도우용 GUI 버전을 또 받아야 편한데 BeSweetGUI 는 복잡하고 어렵습니다

그러니 여기로 http://coreforge.org/projects/belight 가셔서 BeLight 라는 다른 GUI 프로그램을 받아주세요 RC1 버전이 최신인듯 하네요



받아서 BeLight 압축 푸신뒤
귀찮은 김에 아까 받은 BeSweet 와
belight , besweet 실행 파일이 한폴더에 모이도록 합쳐도 됩니다

그뒤 비라이트 킵시다
비스위트 파일이 어디있냐는 질문창에 적절히 고르시고
(헐 근데 belight RC1 버전 압축풀때 알집으로 푸니 CRC에러가 나네요 전 윈라로 해결했는데
윈라 깔기 귀찮으신분 글 제일 아래에 있는 파일을 받아주세요)

http://hruj.tistory.com




참 쉬워보이죠?

Presets 보시면 뭐 제가 이글을 써야되나 싶을정도로 간결합니다...


AAC       advanced audio coding 이라고 ...
AC3        5.1채널을 위한..돌비 디지털의
MP2       dvd에 쓰이는 mpeg2 오디오
MP3       아시죠?
VORBIS  OGG 파일
WAV       무압축이라 보면 쉽겠죠

vorbis 의 q 어쩌고는 퀄리티라는거 아실꺼 같고

AAC에 있는 HE LC PS 는 뭐냐하면
High Efficiency, Low Complexity, Parametric Stereo 이고
고효율 , 간단 , 파라메트릭 스트레오입니다
LC는 압축률이 크진 않지만 160kbps 정도 이상의 고비트때 손실을 줄이기 위해 씁니다
HE와 PS는 비슷한데요 SBR(Spectral band replication) 이라고 오디오외 다른정보를 인코딩 한다는데
음질은 좀 떨어지지만 5.1채널의 사운드에선 HE 128kbps 대가 무적이라네요...
PS는 60kbps 이하에서 압축률이 가장 좋습니다

또 CT는 뭐의약자인지 모르겠지만 윈엠프 AAC 가 나오죠?
ND는 네로 디지털의 약자입니다

보통 할줄만 안다면 동영상엔 다들 AAC 혹은 간단한 mp3를 사용하고
AAC 의 압축률은 그냥 최곱니다









지금 우린 많은 사람들이 선호하는 네로디지털 AAC 로 해보겠습니다

아무 음악이나 불러오신뒤 presets에 PS ND 에 아무거나 고르신뒤 인코딩 눌러보면
neroaacenc.exe 파일를 요구합니다...


그럼 받으러 네로 홈페이지 갑시다 가보면 한글페이지가 뜨는데 돌것같네요
오른쪽에 회사소개  -  기술  -  NeroDigital™ 누릅니다 그럼 제일밑에 네로 AAC 코덱 이 있는데
눌러서 소개를 쭉 보고 다운로드 눌러보면... 네로 한글 메인페이지가 다시 뜨네요... 야호...^^

아마 영어 페이지를 이용해라는?? 그런거 같은데

오른쪽위에 한국어 change 누르시고    북미 - 미국 - 영어 고르신뒤
다시 아까 순서대로
company  -  Technologies  -  Nero Digital™  -  AAC Codec
Download
누릅니다..-> http://www.nero.com/eng/down-ndaudio.php
아 느려서 늙어 죽을것 같아요
약관동의서가 뜨면 agree 누르시고 다운 받은뒤

압축을 풀어 보면


이것도 설명하나 없는 커맨드라인 프로그램 이네요 누가쓰라고.. 공짜인 이유가 있었구만
이중 neroac3enc.exe 를 belight 폴더에 넣어줍니다



그리고 드디어 원하는대로 인코딩 하면 되는데...
되야 정상인데......



저같은 경우엔 bsn.dll 이 에러를뿜으며 인코딩이 안됬습니다ㅠㅠ
이리 저리 방황하다 bsn.dll 을 새 버전으로 받으라고 하던데요
http://kurtnoise.free.fr/
여기에서 bsn_070514.zip 파일 받으면 된다던데
눌러보시면 알겠지만 저 ftp 사이트가 국가별 페이지를 뭘 잘못 했는가
ko 언어관련 에러가 뜨면서 한글윈도우만 안되는듯 합니다...ㅠㅠ
할수 없이 일본윈도우가 깔린 다른 가상컴퓨터로 가서 받으니 되네요... 나도참 근성인

이건 제가 받아서 올려 드리겠습니다
아니 하는김에 BeSweet15b31 + BeLight0.22RC1 + neroaccenc.exe + 새bsn.dll 로 올릴께요
여기

besweetpack-hruj.zip

이거 위에서 차근차근 따라하면서 읽어 내려오신분은 억울하겠네..












그럼 오늘 더 설명해야할것 있나요?
오디오 용어들은 중급 첫번째 글에서 배웠던 hz랑 bit만 알면
그냥 척보면 척 뭐겠다 싶을 정도로 별거 없습니다
모노 스트레오 2.1 5.1채널  모르시는분 있나요?

모노는 그냥 단조로운 한개로 이루어진 소리고
스트레오는 좌 우 두개
2.1은 좌,우 랑 우퍼가 하나있습니다
(우퍼 뭔지 모르시는분 있나요? 보통 일반 8000원짜리 스피커 사시면
400hz 정도 이하의 낮은 쿵쾅거리는 소리는 안들리는데요.. 스피커구조상
그 흔들림 소리를 위해서 우퍼 스피커라고 따로 있습니다
돈도 없는데 꼭 들어보고 싶으시다면 이어폰으로 들으면 훌륭히 들립니다)

5.1은 좌,우,센터,좌측뒤,우측뒤, 우퍼   이렇게 6개 구성 입니다
각 채널 마다 각각의 음파모양을 저장하게 됩니다

또..... 궁금해 하실 코덱간 비교는

mp3 가 평범하다 생각하시면 되고 AC3는 mp3에 비해 사알짝 압축률이 좋습니다
네로디지털의 PS , HE 같은경우엔 64kbps 정도 낮은비트로 해도
mp3 128kbps 정도로 들어줄만 합니다
그래서 보통 동영상엔 AAC로 HE 64kbps 살짝 이상으로도 사용합니다

HE, HEv2(PS), LC 중 어떤걸 해야할지 고민 되시는 분은 아래쪽 옵션에 있는
프로파일을 automatics 로 두시고 퀄리티만 정하시면
채널과 음질퀄리티 혹은비트 설정에 따라 알맞은걸 알아서 잘 정해 준답니다






흠 다음엔 뭘 적을까요
오늘은 이만 끝

Posted by hruj

댓글을 달아 주세요

  1. hruj 2008/02/17 14:57  댓글주소  수정/삭제  댓글쓰기

    글 수정해서 오류 다 해결 했습니다
    스테이블 버전이랑 베타버전 같이쓰면 막 인코딩도 안하고 벹아내고 그런거였네요
    글 처음 올라올때 부터 읽으셨던분은 마지막 압축파일을 받으시길

  2. 이불루션 2008/04/11 03:46  댓글주소  수정/삭제  댓글쓰기

    CT는 Coding Technologies의 약자입니다. aacPlus로 유명하지요.

  3. MinWoo 2008/08/23 15:44  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. aac -> ac3를 할려고 하는데 자꾸 에러나는데 방법이 없을까요?

  4. 2009/11/05 15:41  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

적기에 앞서 걱정되는점은 여러 디레인보우 스크립트, 플러그인들 중에 지금 설명할 derainbow스크립트가 쓸만한 건지 모르겠네요








그럼 먼저 스크립트 란거에 대해 알아봅시다
사실 지금까지 플러그인들을 쭉 봐왔지만 플러그인 말고
실제 avisynth 의 부호들은 훨씬 복잡하고 프로그래밍 스러운데요

그 복잡한 부호들을 이용해서 여러 플러그인을 연동하여 간편하게 또다른 함수를 직접 정의해 놓은걸 스크립트라고 부릅니다



그럼 derainbow 스크립트 받아볼께요 (보통 구글에 이름만 치면 다 나옵니다^^;)

http://avisynth.org/DeRainbow
여기입니다 업데이트가 중단된 사이트지만 눌러보시면
스크립트가 모여 있습니다

설명을 보니 요구사항은 yv12 와 yuy2 만 된다고 하네요
또 MipSmooth, Masktools2, mSharpen
이 필요 하답니다 밉스무스는 저번에 받았고 엠샤픈은 받아서 dll 폴더에 넣으면 되겠죠?
마스크툴2 는 플러그인 다운로드 페이지에 있는게 둘다
mt_masktools.dll 인 v2 버전입니다 아마 착오가 있는듯?

그럼 discussion 밑부터 Usage 위까지 쭉 블럭하시고 복사해서
메모장 여시고 붙혀넣은 뒤 저장합니다 그리고 확장자를 avsi 라고 고쳐주세요
이 avsi 파일도 avisynth dll 폴더에 넣어두시면 알아서 필요할때 로드됩니다
물론 이걸 AVSP에 직접 붙히셔도 작동하는데 너저분합니다...


그럼 스크립트 꺼내서 해석해 봅시다
두개가 들어 있네요 DeRainbow 는 yv12용이라고 DeRainbowYUY2 는 yuy2 인거 아시죠
DeRainbow 만 꺼내볼께요

function DeRainbow(clip org, int "thresh")
{
  assert(org.isYV12(),"DeRainbow() requires YV12 input!")
  thresh = default(thresh, 10)
  org_u = utoy(org)
  org_v = vtoy(org)
  msharpen(org, threshold = thresh, mask=true)
  reduceby2()
  greyscale()
  uv = blur(1.5).levels(0,2.0,255,0,255, coring=false).blur(1.5).blur(1.5).levels(50,2.0,255,0,255, coring=false)
  filtered_u = org_u.mipsmooth(spatial=255, temporal=255, scenechange=3, show=false, method="strong", scalefactor=0.5) 
  filtered_v = org_v.mipsmooth(spatial=255, temporal=255, scenechange=3, show=false, method="strong", scalefactor=0.5)
  u_final = MaskedMerge(org_u, filtered_u, uv)
  v_final = MaskedMerge(org_v, filtered_v, uv)
  return ytouv(u_final, v_final, org)
}


음... 맞다 보기전에 앞서 거의 모든 플러그인에 있던 clip 에 대하여 설명 하겠습니다
이 clip을 사용하려면 먼저 소스에 이름을 정해야 합니다
avisynth 에 여러 비디오를 넣을때 이렇게 하시면 됩니다
저도 잘 모르지만.... 그러니까

a = AVISource("C:\aaa.avi)
b = AVISource("C:\bbb.avi)
Return a + b

하시면 a와 b가 합쳐집니다

이 영상은 a 이영상은 b
그리고 Return 은 돌아가 a+b를 본다?? 쯤으로 생각하시면 쉽겠네요

물론 이렇게 불러와 이름을 정했을 경우에는
플러그인들도 적용시킬 영상의 이름을 clip으로 골라야됩니다
a = AVISource("C:\aaa.avi)            불러와 a라 한다
b = AVISource("C:\bbb.avi)            불러와 b라 한다
c = Trim(clip=a,200,500)                   a의 200~500구간을 자르고 그걸 c라 한다
d = Trim(clip=b,100,400)                   b의 100~400구간을 자르고 그걸 d라 한다
Return c + d                                   c와 d를 합친다
(아 맞다 Trim은 프레임 구간을 정하는 명령어 입니다)

아시겠죠? 반대로 읽어야 쉽죠
우리가 소스에 이름을 안정했을때는 보이진 않았지만 항상 마지막 소스에 Return 이 적용되고 있었습니다

http://hruj.tistory.com

어렵죠 그럼 다시 derainbow 스크립트 꺼내서 차례차례 읽어 봅시다
얼핏 보이나요? 몰라도되고 저도 모르는데 위에서 부터 봅시다 ㅠㅠ

DeRainbow 라는 함수를 정의하고 원본 영상을 org 라고 하네요
assert로 yv12인지 확인한뒤 아니면 에러메세지
default 는 thresh 값 기본은 10
  org_u = utoy(org)
  org_v = vtoy(org)
org를 불러와 u를 y로 만든다 이름은 org_u (y로만들긴 해도 회색음영상태의 u정보가 있겠죠?)
org를 불러와 v를 y로 만들고 이름은 org_v

또 org에 msharpen 의 mask기능으로 외곽선을 딴다
반으로 줄인뒤
그레이스케일 만들고 (전체의 y화)
그걸 색범위 정하고 막 블러먹이고 uv라 한다

그리고 다시 아까의 org_u 와 org_v 에 노이즈를 잡고 filterd_u filterd_v

잠시 maskdmerge의 사용법 봅시다 MaskedMerge (base_clip, overlay_clip, mask_clip)
라고 나와있네요

base     적용할 기본클립org_u 에
overlay  보고 필터할 오버레이클립 filterd_u 과
mask     범위의 마스크 클립 uv

를 합쳐 u_final
v도 이런식으로 만들어 v_final

그리고 이렇게 잘 걸러져 만들어진 u_final 과 v_final 을(사실 회색의 y)
ytouv로 y정보의 uv를 u와 v에 넣고 y는 원본의 org
ytouv(u_final , v_final , org)





아 대충 보는것도 힘드네요
몰라도 됩니다 스크립트는 많고 받아서 쓰면 되는거니
이정도 대충 보셔도 눈치코치것 다른 스크립트 고쳐볼만 할겁니다

대충 u 와 v로 나눠서
원본 u 에
밉스무스로 걸러진 filterd_u 를 보고
번진 상태의 외곽선 범위인 uv 에 따라 적당히 바꿔 준다는거 알겠죠?

thresh 값은 낮추면 mShapen 의 mask 범위가 넓어집니다








자 그럼 Derainbow(thresh=25)
이렇게 적으시면 레인보우 현상은 바이바이 끝........

근데 이것도 채도가 좀 죽네요 10이 기본이고 낮아질수록 강도가 세집니다
가급적 속편하게 소스가 아날로그가 아닌걸 구하는게 좋겠죠

참 간단한게 깁니다

Posted by hruj

댓글을 달아 주세요

  1. 개구리발 2008/02/21 18:17  댓글주소  수정/삭제  댓글쓰기

    그럼 mt_masktools.dll으로 하면 안된다는 건가요?

  2. hruj 2008/02/22 01:33  댓글주소  수정/삭제  댓글쓰기

    아니요 둘중 아무거나 받아도 됩니다
    플러그인 다운로드 페이지에 있는게 둘다 mt_masktool.dll인 masktool2입니다 버전만 다를뿐