'필터'에 해당되는 글 5건

  1. 2009.08.11 FFT3DGPU 2
  2. 2009.07.15 DGDecode
  3. 2009.05.27 Yadif
  4. 2009.05.20 Avisynth Wiki 2 - 시작하기
  5. 2009.03.22 aWarpSharp
2009. 8. 11. 01:34
FFT3DGPU

사용법

FFT3DGPU(clip, float "sigma", float "beta", int "bw", int "bh", int "bt", float "sharpen", int "plane", int "mode", int "bordersize", int "precision", bool "NVPerf", float "degrid", float "scutoff", float "svr", float "smin", float "smax", float "kratio", int "ow", int "oh", int "wintype" , int "interlaced", float "sigma2", float "sigma3", float "sigma4", bool "oldfft" )


정보
원 저장소 : 링크
제작 : tsp
버전 : 0.82 (수동설치 버전 0.81)
분류 : 디노이징
동작 색공간 : YV12, YUY2
라이센스 : 정보 없음
필요 파일 : d3dx9_30.dll (DirectX 9.0c 설치)
추천 사양 : ATI Radeon 95xx 혹http://www.nanoha.pe.kr/owner/entry/post/은 Nvidia Geforce fx 5xxx. Geforce 6xxx 이상

예제
FFT3DGPU(sigma=3) //기초적 사용
FFT3DGPU(bt=-1, sharpen=0.7) //샤픈효과만 사용
FFT3DGPU(sigma=1.5, bt=5, bw=32, bh=32, ow=16, oh=16, sharpen=0.4)
//성능은 좋지만 CPU 점유율이 엄청남



 기본적으로 FFT3dFilter와 같은 역할을 하는 플러그인이에요.
 다만 FFT3dFilter가 엄청난 CPU 사용량으로 지구 온난화를 가속시키면서 CPU가 처리 해야 할 부분을 GPU가 하면 어떨까? 해서 나온 플러그인이죠.

 상세 옵션에 관해서는 김코믹님 블로그에 스샷까지 첨부되어 워낙 잘 설명 되어 있어서(fft3dfilter긴 합니다만, 둘의 옵션과 효과는 완전히 동일, 다만 처리 주체가 다르다는 것 밖엔 차이가 없어요) 전 간단히만 설명하고 넘어갈게요.

 bt : 노이즈를 제거 할 때 참조할 앞뒤 프레임의 양을 결정.
  •  -1 : 단순 샤픈 처리
  • 1 : 현재 프레임만 참조, 2d 노이즈만 제거
  • 2 : 2이상은 3d 노이즈 제거, 현재와 이전 프레임 참조
  • 3 : 이전, 현재, 다음 프레임 참조 (기본값)
  • 4 : 이전 2프레임, 현재, 다음프레임 참조
  • 5 : 이전 2프레임, 현재, 다음 2프레임 참조
  • 0 : 이전프레임을 참고, 단 Temporal Kalman 필터 사용
 sigma : 노이즈 정도, 기본 2.0, 최소 0.0, 기본값 혹은 1.5 추천. 심할경우 3~4 사용

 sharpen : 사픈 값 지정, 0일때 사용하지 않으며, 0이 기본 (fft3dGPU 기준)

 beta : 노이즈 허용 값, fft3dGPU 매뉴얼에 관련 설명이 없어 fft3dfilter의 설명을 찾아보면 기본값 1, 1일때 제거 가능한 모든 노이즈를 제거하며, 10일때 최소한으로 제거(=필터 사용 하지 않음)

 

 제가 주로 사용하는 옵션은
FFT3DGPU(sigma=1.5, bt=5, bw=32, bh=32, ow=16, oh=16, sharpen=0.4)

이정도에요, 개인적으로 쓰기가 부담되어서 _2DCleanYUY2나 TemporalCleaner,
Convolution3D같은 필터로도 답이 안나올때 25분짜리 영상 인코딩에 20시간
나올거 각오 하고 FFT3dGPU를 2~4번 쓰기 때문에 어차피 오래 걸릴거 느려도
최고옵으로 주고 있어요.

 
 

*왠만하면 설치파일을 통한 설치를 추천해요. 왠진 몰라도 수동 설치시 에러가 났었는데, exe파일로 재 설치하니 잘 되더군요.

'Avisynth > Plugins' 카테고리의 다른 글

Turn  (2) 2009.10.01
Windows7에서 aWarpsharp를 사용 할 수 없을때  (0) 2009.09.25
DGDecode  (0) 2009.07.15
GradFun2DB  (0) 2009.05.30
Yadif  (0) 2009.05.27
Posted by 아스쿨
2009. 7. 15. 23:11
DGDecode


사용법
DGDecode_mpeg2source("경로")


정보
관련글 : 링크
제작 : Donald Graft
분류 : 소스 필터
동작 색공간 : YV12, YUY2, RGB24, I420
라이센스 : GNU

예제
DGDecode_mpeg2source("D:\2D2V\DC.if.2.d2v", info=3)


 DGindex를 통해 만든 d2v 파일을 avisynth가 읽을 수 있도록 도와주는 역할을 하는 플러그인이에요.
 다운로드 받아 보시면 DGDecode.dll 파일과 함께 DGindex.exe 파일이 있는데, 여기 들어있는 DGDecode.dll를 avisynth의 plugins 폴더에 넣어 주시면 되요. 아니면 Load Plugin 명령을 사용하셔도 되구요.

 하지만 이렇게 설치 하시는 것 보다는 avisynth 설치 후 Megui를 설치하신 다음, 자동 업데이트를 한번 실행 해 주시면 자동으로 설치되는 플러그인이니 Megui를 사용 하신다면 그냥 업데이트로 설치하시는게 훨씬 쉽지요.

 다만 난 죽어도 메구이 안쓸거다, 버덥이나 다른 유틸만 쓸거다! 하시는 분들은 따로 받아서 쓰셔야겠지요.
 

'Avisynth > Plugins' 카테고리의 다른 글

Windows7에서 aWarpsharp를 사용 할 수 없을때  (0) 2009.09.25
FFT3DGPU  (2) 2009.08.11
GradFun2DB  (0) 2009.05.30
Yadif  (0) 2009.05.27
ConvertToYUY2 / ConvertToYV12  (0) 2009.05.25
Posted by 아스쿨
2009. 5. 27. 22:35
Yadif

사용법
Load_Stdcall_Plugin("C:\Program Files\megui\tools\yadif\yadif.dll")
yadif(mode, order)
 *위 플러그인 로드 경로는 MeGUI Updater를 통해서 yadif를 다운 받았을때 경로입니다.
따로 다운 받으셨다면 yadif.dll 파일의 해당 경로를 입력 해 주시면 됩니다.

정보
원문 : 링크
제작 : Fizick
버전 : Ver.0.9
분류 : 디인터레이스
동작 색공간 : YV12, YUY2
라이센스 : GPL

예제
Load_Stdcall_Plugin("C:\Program Files\megui\tools\yadif\yadif.dll")
avisource("anime.avi")
yadif()

 최상급의 품질을 내어주는건 아니지만, 황금눈(?)이 아닌이상 구별하기 힘들 정도의 품질을 보여주면서도, 다른 디인터레이스 필터에 비해 비교 될 정도로 빠른 속도를 보여주는 디인터레이스 필터입니다.

 전 주로 애니메이션 영상을 인코딩 하기 때문에 TDient 필터를 더 좋아합니다만, 가끔 실사영상이나 개인적인 감상 용도로 인코딩 하는 영상은 속도 하나 보고 yadif를 사용합니다.

옵션
mode

= 0 : 시간/공간을 통해 인터레이스를 검출하고, 디인터레이싱합니다. (기본값)

= 1 : 시간과 공간을 통해 작업하되, 프레임률을 두배로 늘립니다 (bob)

= 2 : 시간을 통해 검출하고, 작업합니다.

= 3 : 시간을 통해 검출, 작업하되, 프레임률을 두배로 늘립니다 (bob)


order

= -1 : 자동 (기본값)

= 0 : Bottom field first

= 1 : Top field first


 옵션이 있어서 적어두긴 했습니다만... 그냥 yadif()처럼 기본값으로 쓰시는걸 추천합니다.

 yadif의 장점이 미칠듯한 스피드인데... mode=2를 주면 결과물이 너무 조악하고, 1이나 3을 주면 화질 향상도 없는 주제에 다른 의미로 미칠듯한 스피드를 보여줍니다.

 order은... 사실 저도 완벽히 이해하지 못한 부분이라 그냥 원문 그대로 써둡니다. MeGUI의 스크립트 크리에이터에서도 저게 있는거 봐서는 디인터 정렬 같은데... 그저 AUTO가 속편합니다.


'Avisynth > Plugins' 카테고리의 다른 글

FFT3DGPU  (2) 2009.08.11
DGDecode  (0) 2009.07.15
GradFun2DB  (0) 2009.05.30
ConvertToYUY2 / ConvertToYV12  (0) 2009.05.25
AAA  (0) 2009.05.21
Posted by 아스쿨
2009. 5. 20. 22:30
본 포스트는 http://avisynth.org/mediawiki/Getting_started 의 글을 번역(의역)한 포스팅입니다.
독자의 편의를 위하여 국내사정을 감안한 뒤 추가하거나 제거한 부분이 있습니다.
일부 용어가 옳지 않게 사용 되었을 수 있습니다. 리플로 지적 부탁드립니다.

시작하기

 처음으로 할 일은 "스크립트"라고 불리는 특별한 명령어가 들어있는 간단한 텍스트 파일을 만드는 일입니다. 이 명령어들은 하나 혹은 하나 이상의 동영상들과 필터들이 원하는대로 결과물을 내어 주도록 만듭니다.

 하나의 스크립트 파일을 다 만드셨다면, VirtualDub이나 MeGUI같은 인코딩 툴을 실행해서 (이 이외에도 엔젤 인코더라는 프로그램이 avs를 지원합니다만, 보통 버덥 모드나 메구이를 사용하는게 요즘 추세입니다)avs 파일을 열어 봅시다.

 avs 파일을 열면, 이제서야 잠자던 AviSynth가 깨어나 일을 시작합니다. avs파일을 받은 프로그램은 AviSynth에게 스크립트의 내용을 해석 해 줄것을 부탁하고, Avisynth는 그 부탁 받은 스크립트를 바탕으로 동영상을 불러오고, 필터를 적용해서 압축되지 않은 동영상 형태로 프로그램에 돌려줍니다.

 사실 쉬운 이해를 위해서 위처럼 쓰긴 했습니다만, Avisynth는 따로 실행되는 프로그램이 아니라, 완전히 Background에서 실행되는 프로그램입니다. (Background를 설명하면 운영체제에 대한 설명까지 덧붙여야 하므로, 건너 뜁니다. 모르시는 분들은 검색해 주세요)
 이런 저런 이유로, 인코딩 프로그램들은 Avisynth를 통한 영상을 하드디스크 어딘가에 붙어있는 AVI파일을 바로 불러온것으로 인식합니다.

아날로그 편집 (Linear Editing)
 
 Avisynth로 할수 있는 가장 간단한 작업은 영상 자르기등의 Virtualdub에서 하던 작업입니다.
 이 스크립트는 쉽습니다. 복잡한 필터나 스크립트도 나오지 않으니 걱정하실 필요도 없습니다.

 연습을 위해서 test.avs 파일을 만들고, 그 파일 안에 다음과 같이 써 봅시다

 Version

 test.avs 파일을 WMP나 KMP, 곰플등으로 재생 해 보면 Avisynth의 버전 정보와 저작권에 관한 내용의 10초짜리 영상을 볼 수 있습니다.

 여기서 Version 은 소스 필터라고 부릅니다.
 이 필터는 수정 할 동영상을 불러오는 역할을 합니다.
 Avisynth 스크립트 (이하 avs, 혹은 avs 스크립트라고도 적겠습니다)의 첫줄에는 소스 필터가 와야 합니다. 동영상을 불러와야 그걸 편집하겠지요 :D
 (역주 : 아직은 그런 고급 기능을 쓸 리 없겠지만, 소스 필터 위에 다른 소스가 오는 경우가 있습니다.)

 이제, 두번째줄에 무언가 더 써 넣어 봅시다. 이렇게요
Version
ReduceBy2

 다시 test.avs 파일을 플레이어로 열어 봅시다. 아까처럼 버전과 저작권 안내가 뜹니다. 하지만 아까의 영상의 반만한 크기로 영상이 뜰겁니다.

 ReduceBy2는 "Transformation filter"라고 부릅니다. 이전 영상을 어떻게 어떻게 바꿔주는 필터라는 의미입니다. 버츄얼덥에서 필터를 사용하듯, 이런 Transformation filter를 여러개 사용 할 수 있습니다.
 이제 다른 필터를 써 봅시다. 점점 검은색으로 변하면서 끝나는 fade-out 영상을 만들어 보도록 합시다. 세번째줄에 다음과 같이 넣어 주세요

Version
ReduceBy2
FadeOut(10)

 다시 열어봅시다. 처음 9초는 아마 처음과 똑같을 겁니다. 하지만 마지막 1초에서는 부드럽게 검은색으로 변하면서 끝나는 걸 볼 수 있습니다.
 잘 보시면 10이라는 숫자를 가지고 있는걸 볼 수 있는데, 여기서 10은 fadeout이 시작되는 프레임의 번호를 말합니다.
 
 근데,,, fadeout 효과를 보기까지 너무 오래 걸리죠. 기다리는 시간을 줄여봅시다.
 이제 120~150프레임만 남길겁니다. 나머지는 버려야죠.
 (역주 : 프레임에 대한 개념이 없으시면 앞으로 이해하시는데 많은 애로사항이 꽃핍니다. 검색이나 다른 방법을 통해 꼭 동영상의 원리와 프레임에 대한 개념을 습득 하고 이 글 혹은 다른 인코딩 관련 글을 읽으시길 바랍니다. 모르셔도 읽으실 순 있지만 이해 하실지는... 모르겠습니다.)

뭐 하여간, 잘라 봅시다.
Version
ReduceBy2
# 앞의 119개의 프레임을 잘라내고, 120~150프레임만 유지합니다.
# (119개를 잘라내는 이유는 Avisynth는 첫프레임의 번호를 0으로 두기 때문입니다.)
Trim(120,150)
FadeOut(10)

 이 예제에서는 # 가 처음으로 등장했습니다.
 #는 주석을 의미합니다.
 #가 사용된 줄은 전부 주석 처리 되며, 주석처리 된 줄은 Avisynth가 아예 무시합니다.

 이제 다시 Trim을 살펴 봅시다. fadeout은 10이라는 하나의 변수를 주었지만, trim은 120,150 이라는 반점(콤마, ',')로 구분된 두개의 변수를 주었지요.
 Trim에서 두개의 변수를 준다는 의미는 첫번째 변수 프레임 ~ 두번째 변수 프레임 까지의 영상을 제외한 다른 부분을 모두 잘라낸다는 의미입니다.

 그런데... 만약에 처음 119프레임만 제거하고 싶다면 어떻게 해야할까요?
 여기서 0 이 등장합니다.
 이건 따라하지 말고 어떻게 쓰이는지만 한번 구경 해 보세요.
 
Version
Trim(120,0)

 여기서 0의 의미는 "끝까지" 입니다.
 끝까지 유지 한다고 했으니, 앞의 119프레임만 제거하고, 뒷부분은 자르지 않습니다.

 여기서 하나 문제가 생깁니다. Trim을 쓰면 자르기 쉽다지만, 자르려는 위치가 몇 프레임인지 알 도리가 없지요.
 두가지 방법이 있습니다. 화면에 프레임 번호를 표시해주는 ShowFrameNumber 필터를 쓰거나, 버츄얼덥 같은 영상의 현재위치의 프레임 번호를 알려주는 프로그램을 사용하면 됩니다.
 (역주 : 사실 AvsP를 더 추천합니다. Trim 결과를 바로 확인 할 수 있거든요)

 이제 Version 보다 더 유용한 필터인 AVISource를 써 보도록 합시다.
 AVISource는 AVI 파일을 읽어오는 기능을 합니다.
 만약에 가지고 있는 AVI 파일이 있다면, 바로 이 필터로 읽어 올 수 있습니다.

AVISource("d:\capture.avi")  # 따옴표 안은 하드디스크의 Avi 파일 경로를 넣습니다.
ReduceBy2
FadeOut(15)
Trim(120,0)

 이 한줄의 소스는 2GB 이상의 영상을 지원하지 않는 프로그램에서 2GB가 넘는 영상을 감상하거나, 편집할 때 유용하게 사용 할 수 있습니다.


디지털 편집 (Non-Linear Editing)
이제 재밌는 부분을 해봅시다. AVS 파일을 다음과 같이 만드세요

StackVertical(Version, Version)

 이제 열어봅시다.
 결과를 보면 버전 전보가 위아래로 두개 나옵니다.
 StackVertical 필터는 두개의 영상을 불러와서 상하로 합치는 역할을 합니다.
 이 스크립트에서 Version 필터는 두번 불러와집니다. 각각 한번의 Version 정보를 보내지요.
 이 두 정보 (영상)을 StackVertical 이 합치는겁니다.
 (역주 : 말로 설명하기 어려우니 직접 한번 해보세요, Version 대신 AVISource()등을 넣어도 됩니다. 다만 각각 다른 영상을 불러오려면 두 영상의 가로 사이즈가 같아야 합니다)

 이런 종류의 필터 중에서 가장 유용하게 쓰이는 필터중에 UnalignedSplicer가 있습니다.
 이 필터는 비디오의 끝과 끝을 이어줍니다.
 이제 3개의 AVI 파일을 이 필터로 한번 이어봅시다.

UnalignedSplice(AVISource("d:\capture.00.avi"), \
 AVISource("d:\capture.01.avi"), \
 AVISource("d:\capture.02.avi"))

 StackVertical 필터나 UnalignedSplice 둘다 60개 까지 합칠 수 있습니다.
 
 하나 팁을 드리자면, + 부호를 쓰면 좀 더 편하게 UnalignedSplice 필터를 쓸 수 있습니다.

 예를 하나 들어보자면, 아래 스크립트는 방금 해본 스크립트와 같은 결과가 나옵니다.

AVISource("d:\capture.00.avi") + \
 AVISource("d:\capture.01.avi") + \
 AVISource("d:\capture.02.avi")
(참 짧아지네요 ㅡ,ㅡ)

 이제, 여러개의 동영상을 하나의 AVI 파일로 만드는 방법을 알았습니다. 하지만 소리가 별도의 WAV파일로 저장되었다면 어떻게 해야할까요? 합칠 순 있을까요?

 아래처럼 해보세요
AudioDub(AVISource("d:\capture.00.avi") + \
 AVISource("d:\capture.01.avi") + \
 AVISource("d:\capture.02.avi"), \
 WAVSource("d:\audio.wav"))

(역주 : 사실 음성의 경우에는 싱크 문제등으로 인하여 영상만 따로 인코딩 한 뒤에 Muxer로 합쳐주는게 일반적인 인코딩 방법입니다. 고로 이 방법은 쓸데가 없다. 고 생각하셔도 무방합니다.)

'Avisynth > 번역' 카테고리의 다른 글

Avisynth Wiki 1 - 첫걸음  (4) 2009.05.14
aWarpSharp  (0) 2009.03.22
Posted by 아스쿨
2009. 3. 22. 15:57
다운로드 : http://ziquash.chez-alice.fr/ 혹은





 아래 내용은 aWarpSharp 필터와 동봉된 readme 파일을 번역 한 것입니다.
 제가 아직 인코딩 초보라 틀린 내용이 있을 수 있으니 틀린 부분이 있다면 리플로 지적 부탁드립니다.


aWarpSharp - Avisynth 2.5용 날카롭게 필터 - beta1

이 필터는 새로 개발한 필터입니다.
ISSE를 쓸 수 있는 CPU가 필요하며, YV12인 영상에 적용됩니다.

문법:
  aWarpSharp(float "depth", int "blurlevel", float "thresh", int "cm")


depth & blurlevel :
 이 기능은 Vdub의 WarpSharp 필터와 비슷합니다.
 필요한 만큼 수치를 조정하시면 됩니다.
 blurlevel은 CPU를 좀 더 많이 사용하지만, 작업 시간을 줄입니다.
 기본값 : 16.0, 2

역주) depth는 샤픈의 강도를 조절하는 옵션이고, Blurlevel은 샤픈 뒤의 계단현상 등을 없애기 위해 문지르는(blur)강도 입니다. blur는 기본값이면 충분하고, depth는 경우에 따라 14, 16, 18정도가 적당 한 것 같습니다.

thresh :
 이 옵션은 샤픈을 진행할 범위를 지정합니다. 실수값을 입력하며, 1.00이 100%입니다. 최고의 결과를 얻기 위해서는 기분으로 두시는걸 추천합니다. 이 옵션값을 조정 하실 때에는 가장자리를 왜곡하거나 효과가 없을 수 있다는걸 염두에 두고 조정 하시기 바랍니다.
기본값 : 0.5 (50%)

역주) 제작자는 기본값을 쓰는걸 강력하게 권하고 있습니다. 딱히 다른 수치를 쓸 필요도 느끼지 못하구요.

cm : (색상)
cm=0 : 색상 관련 필터링을 하지 않습니다.
cm=1 : 색상, 명암에 워프를 적용합니다(추천)
cm=2 : 색상에만 워프를 적용합니다.
기본값  : 2

역주)제작자와 저는 2가 가장 나아 보이지만, 1을 권장하는 분들도 계십니다. 취향에 따라 선택하세요

고급 설정은 필요하지도않고, 문서화 되어 있지도 않습니다.
(실제 쓰지도 않고, 누가 쓴다고 더 좋을 것 같지는 않습니다)

 질과 속도에 관해서 :
 aWarpSharp는 새로 개발한 고성능 워프샤프닝 필터입니다. 여기서 새로 개발했다는 의미는 이미 개발된 다른 필터를 수정하거나, 묶은 필터가 아닌, 아예 새로 개발했다는 의미입니다.
 이 필터의 소스는 대부분 iSSE에 최적화 되어 있습니다. 직접 확인해 보세요.
 아마 640X480, 25fps정도의 동영상에 이 필터를 쓰는데 550mhz정도의 CPU가 필요할겁니다. 좀 그런 예이긴 하지만 40fps의 PAL MPEG-2 영상에 디인터레이싱, 워프 샤프닝을 MPEG2Dec("dvd.d2v").aDeInt().aWarpSharp() 로 하면 1.4ghz정도의 CPU를 사용 할 것입니다.

 aWarpSharp는 제 CPU(개발자의 CPU)인 애슬론XP에 최적화 되어 있습니다, 하지만 요즘 나오는 대부분의의 CPU에서 동작하고, 사양만 좋다면 빠른 속도를 낼겁니다.
 
 이 글을 읽으시는 분이 제 마지막 필터를 즐겁게 사용 해 주셨으면 좋겠습니다. 전 이 코드를 짤때가 다른 어떤 코드를 짤때보다 즐거웠습니다.

 지난 몇달간 짠 이 필터를  모든 애니메이션 팬과 모든 Avisynth 유저를 위해 바칩니다.
 그럼 안녕히 ^^.

MarcFD

2003년 2월 5일- Copyright (C) 2003 MarcFD

'Avisynth > 번역' 카테고리의 다른 글

Avisynth Wiki 2 - 시작하기  (0) 2009.05.20
Avisynth Wiki 1 - 첫걸음  (4) 2009.05.14
Posted by 아스쿨