DXVA 하드웨어 가속을 사용하여 TS, TP 영상 (MPEG2 영상)을 재생하면 낮은 CPU 점유율로도 부드러운 60프레임 재생을 할 수 있습니다.

[주의사항]
대부분의 Windows Vista/7 컴퓨터(DXVA2 지원 그래픽카드)에서 DXVA를 사용하여 TS, TP 영상을 재생하려면 반드시 EVR(Enhanced Video Renderer) 계열의 렌더러가 필요합니다. 그런데 KMPlayer의 EVR은 문제가 좀 있습니다.

EVR은 시스템이 제공하는 순수한 EVR과 동영상 플레이어가 부가적인 처리를 하는 EVR Renderless(동영상 플레이어에 따라 EVR CP, EVR (C/A) 등등 다양하게 표기)의 2가지가 있는데, EVR Renderless는 기능이 많은 대신 아직 불안해서 초고화질 영상에서 간헐적인 화면 버벅임이나 싱크 어긋남 등의 여러 문제가 발생합니다.(그래도 KMPlayer나 팟플레이어와 달리 톡플레이어와 MPC-HC의 EVR CP는 상당히 안정화되었습니다.)

여하튼 순수한 EVR을 쓰는 게 기능은 적더라도 가장 안정적인데 KMPlayer 최신버전(1435부터)에는 순수한 EVR이 없습니다. 설정에 Enhanced Video Renderer가 분명 있기는 합니다만 이름만 EVR이고 실제적으로는 Enhanced Video Renderer(C/A)와 마찬가지로 EVR Renderless입니다.

그에 비해 KMPlayer 1434 버전까지는 Enhanced Video Renderer가 순수한 EVR이었습니다. 하지만 이 EVR은 곰플레이어의 EVR과 마찬가지로 자막을 출력하지 못하는 단점을 가지고 있습니다.

KMPlayer는 최신버전을 쓰든 구버전을 쓰든, 자막이 지원되면서도 순수하고 안정적인 EVR(예를 들어 팟플레이어의 EVR(Vista/.Net3))을 사용할 수 없다는 뜻입니다. KMPlayer의 EVR Renderless가 안정적이라면 별 문제가 아니겠지만, 위에 언급했듯이 KMPlayer의 EVR Renderless는 불안합니다.

결론적으로 DXVA를 사용하기 원하는 Windows Vista/7 유저들은 KMPlayer보다는 순수한 EVR를 사용할 수 있는 팟플레이어나, 안정적인 EVR Renderless(EVR CP)를 가지고 있는 톡플레이어를 쓰는게 좋습니다.




그래도 KMPlayer의 EVR 문제는 Windows Vista/7에만 해당되기 때문에 Windows XP에서는 문제가 없습니다.
그러니 본론으로 돌아와서 KMPlayer로 DXVA를 사용하여 TS, TP 영상을 재생하는 방법을 설명하겠습니다.

DXVA를 사용하려면 4가지 조건이 충족되야 합니다. (DXVA의 4가지 조건에 관한 포스트)

우선 DXVA Checker를 통해 그래픽카드가 MPEG2 코덱의 DXVA를 지원하는지 확인하세요.(조건1 충족)
그 다음에는 MPEG2 영상의 DXVA를 지원하는 외부 코덱을 설치해야 합니다.

TS, TP 영상 (MPEG2 영상)의 DXVA를 지원하는 외부 코덱은 NVIDIA PureVideo Decoder(DXVA1만 지원), Microsoft DTV-DVD Decoder(Windows 7 전용), CyberLink Video/SP Decoder, CyberLink Video Decoder, ArcSoft Video Decoder, Nero Video Decoder HD 등이 있습니다.

여기서는 CyberLink Video Decoder를 예로 들어 설명을 해보겠습니다. CyberLink Video Decoder는 PowerDVD의 최신 버전에 포함되어 있는 코덱으로 MPEG2와 H.264/AVC의 DXVA를 지원합니다.



KMPlayer의 환경 설정...(F2)로 들어가서...


내장 비디오 코덱기본 코덱 탭에서 MPEG 2Libmpeg2.DLL 사용(권장)체크를 해제합니다.



외부 비디오 코덱에서 외부 코덱 사용자 정의 버튼을 클릭하세요.



검색해서 추가 버튼을 클릭합니다.



쭉 외부 코덱들이 나오는데, 그 중 사용하려는 외부 코덱이 있다면 확인 버튼을 클릭합니다.
하지만 없다면 시스템 코덱 추가... 버튼을 클릭합니다.



사용하려는 외부 코덱 (CyberLink Video Decoder)선택하고 확인 버튼을 클릭합니다.
만약 여기에서마저 없다면 외부 코덱 추가... 버튼 클릭한 후 외부 코덱의 ax 파일(CLCvd.ax)을 직접 찾아 지정해줘야 합니다.



어떤 방법을 쓰든 외부 코덱/필터 관리 화면사용하려는 외부코덱이 표시되면 성공입니다. 확인 버튼을 클릭합니다.



MPEG2 Video사용하려는 외부 코덱(CyberLink Video Decoder)으로 바꾸어 주면 됩니다.
그리고 옆에 있는 ... 버튼을 클릭하면 CyberLink Video Decoder의 설정창이 뜹니다.



MiscellaneousDXVA를 체크하고 확인 버튼을 클릭합니다.(조건2 충족)
코덱마다 DXVA 설정 부분이 조금씩 다르며, Microsoft DTV-DVD Decoder처럼 설정이 아예 없는 코덱도 있습니다.





영상 처리 - 영상 처리 필터 탭에서 아래의 조건이라면 사용하지 않음을 선택하고 FOURCC에 체크를 해서 MPEG2 영상 재생시 영상 처리 필터가 작동하지 못하게 합니다. (조건3 충족)





마지막으로 영상 처리영상 출력 장치 탭에서 출력 장치를 설정해야 합니다.(조건4 충족)

우선 DXVA Checker를 통해 그래픽카드가 MPEG2 코덱의 DXVA1을 지원하는지, DXVA2를 지원하는지 확인해보세요.

(1) Windows Vista/7 + DXVA2 지원 그래픽카드 (대부분의 Windows Vista/7 컴퓨터)
무조건 Enhanced Video RendererEnhanced Video Renderer(C/A)를 선택해야 합니다. 다만 이 글의 처음 주의사항에 언급했듯이 KMPlayer의 EVR 계열은 전반적으로 불안해서 개선이 필요합니다.

(2) Windows Vista/7 + DXVA1 지원 그래픽카드
Overlay MixerVMR9 - Renderless mode + VMR Mixer Mode 체크가 비교적 무난합니다. 나머지 렌더러들도 테스트 해보세요. Overlay Mixer를 사용하면 에어로 기능이 꺼져버리니 참고하세요.

(3) Windows XP
Overlay MixerVMR9 - Renderless mode + VMR Mixer Mode 체크가 비교적 무난합니다. 나머지 렌더러들도 테스트 해보세요.

PS. VMR9 - Renderless mode 사용시 VMR Mixer Mode에 체크를 해야 하드웨어 디인터레이싱이 되어서 TS, TP 영상을 60 프레임으로 재생할 수 있습니다. 또한 VMR Mixer Mode를 체크하면 영상 아래부분에 생기는 줄 문제를 해결해주기도 합니다. 다만 버벅임이 생길 수도 있으니 사용에 주의하셔야 합니다.




이렇게 4가지 조건에 맞추어 모든 설정을 끝냈다면 TS 영상이나 TP 영상을 재생시켜 보세요.
DXVA가 제대로 적용되었는지 확인해 보시려면 Ctrl + Tab 키를 누르세요.


비디오 정보의 코덱우리가 설정한 외부 코덱(Cyberlink Video Decoder)이 맞고, VideoInfo2DXVANV12라고 표기되었다면 DXVA가 올바르게 적용된 것입니다. (가장 확실한 확인 방법은 CPU 점유율의 감소 정도를 체크하는 것이지만요.)

이렇게 DXVA가 제대로 적용되었다면 DXVA 적용 전에 비해 CPU 점유율이 뚝 떨어지는 것은 물론 하드웨어 디인터레이싱에 의해 60프레임으로 부드럽게 재생되는 것을 확인할 수 있을 겁니다. 만약 CPU 점유율이 별 차이가 없다면 DXVA가 적용되지 않은 겁니다. 다시 한번 찬찬히 DXVA의 4가지 조건을 체크해보세요.



다음은 필수 과정은 아니고 선택 과정입니다.
외부 코덱을 사용한다면 KMPlayer의 내장 Splitter 보다는 외부 코덱 전용 Splitter가 궁합이 아무래도 잘 맞겠죠? CyberLink Video Decoder의 경우에도 Cyberlink Demuxer 2.0을 Splitter로 쓰는 편이 여러모로 낫습니다. 특히 Seek(5초 뒤로 , 30초 앞으로 등등)를 할 때 차이가 드러나죠.

그럼 외부 코덱 전용 Splitter를 설정하는 방법Cyberlink Demuxer 2.0을 예로 들어 설명하겠습니다.


Splitter 필터기본 Splitter 탭에서 외부 코덱/필터 사용자 정의 버튼을 클릭하세요.



외부 코덱/필터 관리 화면에 사용하려는 외부 코덱 전용 Splitter(Cyberlink Demuxer 2.0)가 보이면 확인 버튼을 클릭합니다. 하지만 없다면 시스템 코덱 추가... 버튼을 클릭합니다.



외부 코덱 전용 Splitter(여기서는 Cyberlink Demuxer 2.0)선택하고 확인 버튼을 클릭합니다.
만약 여기에서마저 없다면 외부 코덱 추가... 버튼 클릭한 후 외부 코덱 전용 Splitter의 ax 파일(CLDemuxer2.ax)을 직접 찾아 지정해줘야 합니다.



어떤 방법을 쓰든 외부 코덱/필터 관리 화면사용하려는 외부 코덱 전용 Splitter가 표시되면 성공입니다.
외부 코덱 전용 Splitter(Cyberlink Demuxer 2.0)선택하고, 사용할 코덱/필터 선택에서 MPEG2(TS) Splitter체크를 한 후 확인 버튼을 클릭합니다.



MPEG2(TS) Splitter외부 코덱 전용 Splitter(Cyberlink Demuxer 2.0)으로 바꿔주면 설정이 마무리 됩니다.




아래는 Gabest MPEG Decoder(KMP에 기본적으로 포함되어 있는 MPEG2 Decoder)와  CyberLink Video Decoder(DXVA)의 CPU 점유율 비교 결과 입니다.

테스트한 컴퓨터의 사양 : 1년여 전에 구입한 노트북 (Intel Pentium Dual Core T3400 2.16GHz,  GeForce 9200M GS,  2GB RAM, Windows 7)

테스트 방법 : 테스트 동영상에서 특정한 구간(1분)을 정하고, 그 1분동안 KMPlayer가 차지한 CPU 점유율의 평균값을 산출했습니다.

테스트한 동영상 : TP 영상 (1920 x 1080i)

  Gabest
MPEG Decoder
Auto 방식 (30 프레임)
 Gabest
MPEG Decoder
 Bob 방식 (60 프레임)
CyberLink Video Decoder
DXVA 사용 (60 프레임)
 TP 영상
( 1920 x 1080i )
19 %
 32 % 5 %

소프트웨어 가속 코덱인 Gabest MPEG Decoder로 60 프레임의 부드러운 재생을 하려면 32% 정도의 비교적 높은 점유율이 필요하지만, DXVA를 사용하면 5% 정도의 낮은 점유율로 60 프레임 재생을 할 수 있음을 알 수 있습니다.
Posted by 커피.
,