DXVA 하드웨어 가속를 사용하여 H.264/AVC 영상을 재생하면 CPU 점유율을 크게 낮출 수 있습니다.
KMPlayer의 내장 코덱은 DXVA를 지원하지 않지만, 외부 코덱을 적용하면 KMPlayer에서도 DXVA를 사용할 수 있습니다.

[주의사항]
대부분의 Windows Vista/7 컴퓨터(DXVA2 지원 그래픽카드)에서 DXVA를 사용하여 H.264/AVC 영상을 재생하려면 반드시 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를 꼭 고집하셔야 한다면 Windows Vista/7에서도 VMR 계열이나 Overlay Mixer를 선택할 수 있는 CoreAVC 코덱를 써보세요(관련 포스트). CoreAVC는 DXVA 하드웨어 가속 기능이 없는 대신에 CUDA 하드웨어 가속 기능이 있습니다. CUDA를 쓰면 DXVA에 근접하는 CPU 점유율 감소 효과를 볼 수 있습니다. 단, CUDA 하드웨어 가속 기능은 NVDIA 그래픽카드에서만 사용할 수 있습니다.(CUDA 지원 여부 확인)




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

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

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

H.264/AVC 영상의 DXVA를 지원하는 코덱은 Microsoft DTV-DVD Decoder(Windows 7 전용), CyberLink Video Decoder, ArcSoft Video Decoder, MPC Video Decoder 등이 있습니다.

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



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


내장 비디오 코덱기본 코덱 탭에서 H.264AVC1체크를 해제합니다.



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



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



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



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



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



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



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





영상 처리 - 영상 처리 필터 탭에서 아래의 조건이라면 사용하지 않음을 선택하고 FOURCC에 체크를 해서 H.264/AVC 영상 재생시 영상 처리 필터가 작동하지 못하게 합니다. (조건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가 비교적 무난합니다. 나머지 렌더러들도 테스트 해보세요. Overlay Mixer를 사용하면 에어로 기능이 꺼져버리니 참고하세요.

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




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


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

이렇게 DXVA가 제대로 적용되었다면 DXVA 적용 전에 비해 CPU 점유율이 뚝 떨어지는 것을 확인할 수 있을 겁니다. 만약 CPU 점유율이 별 차이가 없다면 DXVA가 적용되지 않은 겁니다. 다시 한번 찬찬히 DXVA의 4가지 조건을 체크해보세요.





아래는 KMPlayer 내장 코덱 CyberLink Video Decoder CPU 점유율 비교 결과입니다.

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

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

테스트한 동영상 : 인터넷에 돌아다니는 H.264/AVC 영상들 중 고화질에 해당하는 영상들입니다.
(1) BluRay Rip 영화 (1920 x 800, 24fps)
(2) HD 쇼프로 (1280 x 720, 60fps)

   KMPlayer 내장 코덱
 CyberLink
Video Decoder
(SW 가속)
 CyberLink
Video Decoder
(DXVA)
BluRay Rip 영화
 (1920 x 800, 24fps)
36 %
45 %
3 %
HD 쇼프로
(1280 x 720, 60fps)
재생불량
(싱크 어긋남)
58 % 5 %

곰플레이어의 내장 코덱과 마찬가지로 KMPlayer의 내장 코덱도 60프레임의 H.264/AVC 영상을 정상적으로 재생해내지 못했습니다. (제 CPU가 좀 더 좋았다면 재생할 수 있었을지는 모르겠지만요.) 어쩌면 한때를 풍미했던 곰플레이어와 KMPlayer 모두 이제는 구세대의 유물이 되가는지도 모르겠습니다.

KMPlayer 내장 코덱과 CyberLink Video Decoder(SW 가속)처럼 소프트웨어 가속 코덱을 사용할 때는 CPU 점유율이 30~50% 정도로 높게 나왔지만, DXVA를 사용하면 5% 이하로 낮게 나왔습니다.  그러니 비교적 괜찮은 컴퓨터 사양을 가진 Windows XP 유저라면 한번 DXVA 사용에 도전해보시길 권합니다.

다만 이 글의 처음 주의사항에서 말했듯이 KMPlayer의 영상 출력 방식 중 Windows Vista/7에서 선택해야 하는 Enhanced Video Renderer 계열은 문제가 많습니다. 720p 30프레임급의 일반적인 H.264/AVC 영상은 그런대로 무난하게 재생하지만 그 이상의 초고화질 영상에서는 화면 버벅임이나 싱크 어긋남 등의 문제가 발생할 가능성이 높습니다. 그러니 DXVA 사용을 원하는 Windows Vista/7 유저들은 KMPlayer보다 팟플레이어나 톡플레이어를 쓰시는게 낫습니다.
Posted by 커피.
,