이번 글에서 살펴볼 내용은 다음 팟플레이어와 AviSynth를 이용한 영상의 실시간 프레임 인터폴레이션 (Interpolation, 보간) 적용 재생 방법입니다.
먼저 이 글에 등장하는 AviSynth, SVP 그리고 InterFrame이 무엇인지 잘 모르는 분들도 많을 것으로 생각됩니다. 따라서 해당 용어부터 간단히 설명하도록 하겠습니다.
(최근 60 Hz 초과 주사율 디스플레이 사용자들이 늘어나는 추세라 기존 글에서 내용을 추가/보완하여 업데이트했습니다.)
목차
AviSynth, SVP에 대해서
SVP는 SmoothVideo Project의 약자로 프레임 인터폴레이션 기능을 제공합니다.
아래에서 설명하는 방법은 SVP의 플러그인을 추출해 사용하고 있으며, 팟플레이어에서 AviSynth 스크립트를 통해 프레임 인터폴레이션을 제어합니다. SVP 플러그인은 모션 벡터 검색에 사용되는 svpflow1.dll과 프레임 렌더링에 사용되는 SVPFlow2.dll로 구성됩니다. (SVP에서의 GPU 가속은 GPU의 연산 성능을 이용한 하이브리드 형태로 GPU의 하드웨어 디코더를 통한 DXVA 가속과는 다릅니다.)
Interpolation은 컴퓨터나 미디어 관련 학과에서 공부하신 분이면 알고 계실 것입니다. 보통 번역된 서적에서는 ‘프레임 보간’이라는 용어로 사용되고 있으며, 간단하게 A와 B 프레임 사이에 중간 값인 새로운 C 프레임을 생성해서 넣어주는 것으로 이해하시면 될 것 같습니다. 이 때 생성되는 프레임의 생성 알고리즘과 속도(성능)가 사용자의 체감 품질에 큰 영향을 주게 됩니다.
AviSynth는 프레임서버로 동작하는 비디오 후처리를 위해 사용되는 강력한 도구로 임시 파일의 필요 없이 비디오의 편집과 후처리 기능을 제공합니다. 그래피컬 유저 인터페이스(GUI)를 제공하지는 않지만 텍스트 기반의 스크립트를 사용하여 편집이 가능합니다. AviSynth의 스크립트는 간단하지만 강력하고 효율적으로 조합할 수 있습니다. 또한 오픈 소스 소프트웨어 입니다.
InterFrame은 SVP를 간단하게 사용하기 위한 AviSynth 스크립트로 SVP 플러그인을 포함하고 있습니다. 이 글에서 설명한 방법에서는 현시간 기준으로 InterFrame 최신 버전보다 개선된 SVP 플러그인을 추출하여 적용하여 사용하고 있습니다.
앞서 언급한 것과 같이 과거에는 이런 작업을 실시간으로 처리한다는 것이 비현실적으로 여겨질 정도로 부담되는 작업이었습니다. 하지만 지금은 강력한 CPU 그리고 다용도로 발전하고 있는 GPU의 파워를 이용해 실시간 처리가 가능해졌습니다.
특히, 이번에 소개하는 방법은 성능과 품질면에서 현재 가장 우수한 편이라고 할 수 있습니다.
SmoothVideo Project
SVP로 프레임 인터폴레이션 처리된 영상은 원본(24 FPS)과 비교 시, 최신 상용 TV나 프로젝터에서 제공되는 플루이드 모션 기술과 동급 혹은 그 이상으로 부드러운 느낌을 제공합니다.
물론 빠르게 움직이는 영상 등(예: 스포츠, 레이싱)에서는 간혹 계단/깍두기 현상과 같은 문제가 발생하는 등 단점이 없는 것은 아니지만, 현재는 관련 기술이 많이 발전되어 대부분의 영상에서 문제 없이 즐기실 수 있습니다.
또한 단점이 도드라지는 스포츠나 e스포츠, 액션 등의 영상 등에서도 단점보다는 프레임 인터폴레이션으로 인한 장점이 더욱 크기 때문에 개인적으로는 적용을 권하고 있습니다.
샘플 영상을 통해 차이를 비교해볼까요?
Youtube에 업로드된 60 FPS 영상이기 때문에, 60 FPS 재생을 위해서는 HTML5를 지원하는 웹 브라우저(파이어폭스, 크롬 등) 혹은 Windows 8/8.1/10과 인터넷 익스플로러 11 이상의 웹 브라우저 조합이 필요합니다. 해당 환경이 준비되었다면 우측 하단의 영상 품질 설정에서 720p60 혹은 1080p60을 선택해 재생하시면 됩니다.
영상에서 원본(24 FPS)과 60 FPS의 차이가 느껴지시나요? 부드러운 동작에 초점을 맞춰 보시면 그 차이를 느끼실 수 있을 것입니다.
이번에 설명하는 방법은 ‘팟플레이어’를 통해 인터넷으로 실시간 재생되는 영상까지도 적용되기 때문에, 그 활용 범위가 매우 넓고 효율적이라고 할 수 있습니다. 시스템에 충분한 성능이 있고 전력 소모에 민감하지 않다면 버터 같이 부드러운 느낌을 포기할 이유가 없겠죠. 다만, 취향에 따라 이질감을 느낄 수도 있습니다.
또한 팟플레이어의 기본 옵션에 포함된 자체 프레임 더블러는 가장 기본적인 알고리즘을 이용한 방식으로 SVP와 품질 차이가 있으며, 생성되는 이미지의 품질, 성능, 사용자가 직접 스크립트를 제어할 수 있다는 부분 등 다양한 면에서 AviSynth와 SVP를 이용하는 방식이 우위에 있습니다.
시스템 사양 및 관련 파일 다운로드
원래 SVP는 아래 이미지와 같이 ffdshow와 SVP Manager를 사용합니다. 하지만 이 글에서는 ffdshow와 SVP Manager를 추가로 설치하지 않고 Avisynth와 SVPflow 그리고 Interframe만 적용하는 방법을 사용할 것입니다.
팟플레이어에서 SVP 플러그인을 적용하기 위해 필요한 시스템 사양과 설치 방법은 다음과 같습니다.
Microsoft Windows Vista 이상 (Windows 10 이상 권장)
최소 사양: 듀얼 코어 2 듀오/쿼드 프로세서 이상
권장 사양: 인텔 코어 i5나 AMD FX 6000 시리즈 프로세서 이상
최소: NVIDIA GeForce 8000 시리즈, AMD Radeon HD 5000 시리즈 이상
권장: NVIDIA GeForce GTX 600 시리즈 이상, AMD Radeon HD 7000 시리즈 이상
※ AMD HD 5000 시리즈 이전 제품: Catalyst 15.7 이하의 드라이버를 사용할 것 (공지)
* 공식 웹사이트: http://cafe.daum.net/pot-tool
* 최신 공식 버전 (32-bit): http://get.daum.net/PotPlayer/v3/PotPlayerSetup.exe
* 설치 방법: 다운로드한 파일을 시스템에 설치합니다. (기본 경로 사용)
* 공식 웹사이트: http://avisynth.nl
* v2.6.0 (공식 버전): 다운로드
* v2.6.0.5 SVP Edition: 다운로드
→ 32-bit 운영체제(x86): C:\Windows\System32
→ 64-bit 운영체제(x64): C:\Windows\SysWOW64
* 다운로드 (택1)
v4.0.0.132/136: 다운로드
v1.x (2013): 다운로드 (최신 고사양 시스템에서 문제 발생 시 사용)
→ 32-bit 운영체제(x86): C:\Program Files\AviSynth\plugins
→ 64-bit 운영체제(x64): C:\Program Files (x86)\AviSynth\plugins
→ 32-bit 운영체제(x86): C:\Program Files\Daum\PotPlayer\AviSynth
→ 64-bit 운영체제(x64): C:\Program Files (x86)\Daum\PotPlayer\AviSynth
SVP를 팟플레이어에 적용하는 방법
내장 OpenCodec 설정을 자신의 시스템 환경에 맞춰 적절하게 조절합니다.
별도 코덱을 지정해서 사용하는 경우 비디오 코덱을 내장 코덱(기본값)으로 변경합니다.
하드웨어 가속(DXVA)을 설정] 후 [DXVA2 Copy-Back]을 동영상을 디코딩할 GPU로 설정합니다. 이때, DXVA2 Copy-back은 [DX11] 모드도 사용가능하나, 문제가 발생하는 경우 [DX9]를 선택합니다.
팟플레이어 환경설정의 [영상] → [AviSynth] 옵션에서 [AviSynth 필터 사용]에 체크(v)합니다. AviSynth Scripts를 정상적으로 설치했다면 위 스크린샷처럼 SVP 스크립트가 등장하며, 자신의 시스템에 맞추어 그 중 하나를 선택합니다.
프레임 수가 증가할수록 요구하는 시스템 사양 역시 증가합니다. 60 Hz 디스플레이를 사용하는 경우 주사율을 초과하는 120 FPS 등을 선택해도 요구 사양만 증가할 뿐 이득이 없으므로 기본 설정인 60 FPS를 선택하시면 됩니다.
개인적으로 일반적인 시스템 기준 추천하는 권장 프리셋은 [SVP 60 FPS – 빠름 (GPU 사용)]입니다.
2. 보통/빠름/가장 빠름: 시스템의 성능이 부족할 경우 가장 빠름을, 성능이 충분할 경우 보통을 선택합니다.
3. GPU 사용: 프레임 렌더링 시 GPU 활용 유무입니다. GPU 성능이 높을수록 유리하지만, 일부 최신 고성능 GPU에선 성능 하락이 나타나는 경우도 있다고 합니다. 따라서 자신의 시스템에 적용해보고 GPU 활용 여부를 판단하시면 되겠습니다. CPU 성능이 충분한 시스템에선 GPU를 사용하지 않는 것이 좋다고 하는데, CPU의 성능이 떨어지거나 소비 전력이 높은 시스템에서는 GPU가 최신/저전력 제품인 경우 GPU를 활용하는 것이 성능과 전력 소모면에서 효율적일 수 있습니다.
4. CPU 코어 수에 따른 설정: 라이젠 출시 이후 6 코어 이상의 멀티 코어 프로세서가 많이 출시되었는데, 이 때 위 스크립트에서 #CPUS 부분을 스레드에 맞춰 수정하면 성능 향상 효과가 있다고 합니다.
5. 탐색 후 일정 시간 후에 처리: 동영상 탐색(스킵) 후 처리까지의 여유 시간입니다. 짧게 할 수록 적용이 빠르지만 오류 확률도 높아집니다.
또한 고해상도/고용량 영상, 60 FPS 영상 등 사양 문제가 발생하거나 프레임 인터폴레이션이 필요 없는 경우도 있을 수 있기 때문에, 이럴 경우를 대비해 위와 같이 단축키를 지정해 사용하면 편리합니다. (단축키는 사용자 임의 지정)
마지막으로 팟플레이어에서 영상을 재생하여 잘 적용되었는지 확인합니다. [Tab] 키를 눌러 재생 정보가 표시될 때, 60 FPS(혹은 설정한 프레임 수치)가 나오고 있다면 성공적으로 적용된 상태입니다.
감사합니다 ㅋ
덕분에 잘 적용 했어용 ㅋ
요즘은 개선된 방식의 툴도 나왔는데 대부분 유료화되었기 때문에 기존 방식도 사용되는 것 같습니다. 잘 사용하시길 바랍니다. 감사합니다.
안녕하세요. 64비트 팟플레이어에서 영상설정 -> 프레임 더블러 (중간프레임) 사용 ‘체크’
랑은 효과가 많이 다른가요. ?
네, 팟플에 내장된 해당 기능은 아직 개선되지 않았다면 효과가 전무한 수준입니다.
감사합니다 예전 블로그 들어갔다가 없어져서 좌절하고 있었는데 블로그 옮기셨다고 친절하게 써놓으셨더라구요~
덕분에 잘 사용하겠습니다~ 항상 감사하고 정말 대단하십니다
오래된 글인데 잊지 않고 들러주셔서 감사합니다.
구형 라데온카드 살까 말까 고민하다가 작성자님 방식으로 하니 좋네요 감사합니다.
신형 라데온의 경우 AFMF을 이용한 플루이드 모션 프레임 보정 기능을 지원하니 추후엔 이쪽을 생각해보시는 것도 좋습니다. 감사합니다.