-
[컴퓨터] 모션 인터폴레이션을 이용한 60FPS 재생 및 인코딩2014.03.30 PM 08:24
낮은 FPS의 영상을 업스케일링 하는 방법에는 여러가지가 있습니다.
프레임 수를 늘려주는 프레임더블링
프레임의 영상을 합성해서 프레임을 생성하는 프레임 인터폴레이션
프레임 영상의 움직임을 파악하고 이를 통해 프레임을 생성하는 모션 인터폴레이션이 있습니다.
프레임더블링의 경우 예전에 많이 쓰이던 방법으로 프레임을 복제하고 필터로 뭉개서 48FPS 혹은 60FPS 처럼 보이게 하는 방법입니다.
프레임 인터폴레이션은 전 후 프레임 영상을 합성해서 프레임을 생성합니다. 때문에 애니메이션에 가까운 영상일수록 흐려지거나 잔상형상이
많이 생깁니다. 그러나 실사에 가까운 영상일수록 품질이 좋습니다.
모션 인터폴레이션은 영상을 그리드로 나누고, 그것을 Cross-correlation 기법으로 움직임을 파악하여 프레임 사이에 왜곡 프레임을 생성합니다.
애니메이션에 적합하며, 실사의 경우 노이즈가 발생할 수 있습니다. 애니메이션도 자연스러운 3D 모션이 들어가면 효과가 좋습니다.
이 중에서 애니메이션에 적합한 방법은 모션 인터폴레이션이므로 이 방법을 사용한 영상 재생 및 인코딩을 소개해드리겠습니다.
준비물 1 : 팟플레이어(32bit)
준비물 2 : Avisynth
준비물 3 : Avisynth 멀티코어 패치
준비물 4 : Svp플러그인 및 InterFrame 스크립트
준비물 5 : MeGUI
준비물 6 : MeGUI설정
1. 준비물 1, 2를 설치
2. 준비물 3의 압축을 푼 파일을 윈도우즈 폴더 내 system32(32bit) 혹은 SysWOW64(64bit)에 복사한다.
3. 준비물 4의 압축을 푼 파일을 AviSynth가 설치 된 폴더 내 plugins에 복사한다.
4. 준비물 5를 설치
5. 준비물 6의 압축을 풀어 MeGUI가 설치된 폴더에 덮어씌운다.
6. 팟플레이어를 실행시킨뒤 환경설정에 들어간 후 내장코덱설정에서 하드웨어가속을 사용하지 않도록 한다.
7. AviSynth 사용을 체크한 후 프리셋을 선택하거나 직접입력한다.
SetMTMode(8,CPU 스레드 수)
potplayer_source()
SetMTMode(2)
LoadPlugin("#PROGRAMDIR\AviSynth 2.5\plugins\InterFrame-2.5.0\Dependencies\svpflow1.dll")
LoadPlugin("#PROGRAMDIR\AviSynth 2.5\plugins\InterFrame-2.5.0\Dependencies\svpflow2.dll")
Import("#PROGRAMDIR\AviSynth 2.5\plugins\InterFrame-2.5.0\InterFrame2.avsi")
InterFrame(Preset="Medium", Tuning="Animation", GPU=true, Cores=CPU 코어 수)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
8. 영상에서 제대로 60FPS 출력이 되는지 확인한다.
9. 영상 확인 후 인코딩을 하기 위해 MeGUI를 실행시킨 후 AVS s!crip Creator를 선택
10. 설정파일을 덮어씌우면 Ani 60FPS 프로파일이 보이는데 선택후 config 클릭
9. 7번을 참고해서 MeGUI 경로와 코어, 스레드 수를 수정한다.
수정한 후 Update를 클릭하고 OK를 선택한다.
10. Video -nput에 인코딩 할 파일을 선택하면 창이 뜨는데 3번째 DirectShow~ 를 클릭한다.
오류가 발생할 경우 다음 링크를 추가 설치 http://haali.su/mkv/MatroskaSplitter.exe
리사이즈는 가능하지만 추천하지 않는다. 가능하면 체크 해제
11. 필터 탭에서 Source is Anime를 체크 후 Save를 클릭해서 저장한다.
12. 자동으로 AviSynth s!crip가 선택되는데 그렇지 않을 경우 11에서 저장한 파일을 연다.
Video Output에서 출력할 파일 명을 지정하고 Encoder settings 옆의 Config를 클릭
13. 컴퓨터 성능과 원하는 결과물에 따라 Encoding Mode와 Bitrate를 설정한다.
Preset과 그외 항목은 수정하지 않는다.
14. 하단 그림의 1을 클릭하여 인코딩 할 동영상을 선택
B에서 오디오 파일 저장 위치를 선택
2, 3을 클릭하여 작업 큐에 등록한다.
15. Queue 탭에서 인코딩 상황을 확인 할 수 있다.
16. 비디오 / 오디오 파일이 완성되면 MKV Muxer를 실행시킨다.
17. A에 비디오 파일을 선택, B에 오디오 파일을 선택, C에 완성본의 위치를 지정한 후 Queue 클릭
18. 완성된 동영상에 필터적용 / 자막삽입 등을 하여 편집한다.
위 과정 중 AviSynth 스크립트를 수정하여 필터 자막처리 등을 하지않는다.
반드시 프레임을 늘린 후 편집한다.
(노이즈, 티어링, 잔상 발생)
위 방법을 사용하여 만든 영상 샘플(확장자를 mkv로 지정)
이상 60FPS 재생 및 인코딩 과정이고, 더 궁금하신 점 있으시면 쪽지 보내주세요
- 와다다닷
- 2014/03/30 PM 08:41
읽어보겠습니다!!
감사합니다~
- MarshallMathers
- 2014/03/30 PM 08:45
요즘 60f 재생에 관심이 많아서 시도하는데 힘드네요!
- 아스키코드
- 2014/03/30 PM 08:50
그닥 만족스럽진 않아서 이젠 잘 안하네요 ㅎㅎ
- WildSturm
- 2014/03/30 PM 08:52
필터 설정을 하는게 중요하죠
- WildSturm
- 2014/03/30 PM 11:02
- 와다다닷
- 2014/03/31 AM 12:12
자막도 나중에 해봐야 겠어요
정말 감사합니다~
- MarshallMathers
- 2014/03/31 AM 02:15
애니메이션 60f으로 보고싶은데
user error : Error. B.