DXVA 하드웨어 가속를 사용하여 H.264/AVC 영상을 재생하면 CPU 점유율을 크게 낮출 수 있습니다.

톡플레이어는 곰플레이어나 KMPlayer와 달리 내장 코덱이 DXVA를 지원합니다. 덕분에 간단한 설정만으로도 어렵지않게 DXVA를 사용할 수 있습니다. DXVA가 너무 어렵다고 생각하신다면 이 포스트를 참고하세요.

톡플레이어의 내장 코덱으로 고화질 영상 재생하기 (DXVA 사용)

내장 코덱의 DXVA도 성능이 꽤 좋기 때문에 내장 코덱의 DXVA만으로 충분하시면 아래의 글은 읽지 않으셔도 됩니다.
외부 코덱이
뭔가 있어 보이기는 하지만, 외부 코덱은 원래 자체 동영상 플레이어에서 사용하기 위해 만들어진 것이라 톡플레이어와 궁합이 맞을거라는 보장은 없으니까요.

그래도 색감이나 화질, 개인의 취향 등등의 이유로 외부 코덱의 DXVA가 낫다고 판단되시면 아래의 글을 읽어주세요.
미리 경고를 드리지만 상당히 복잡합니다.^^



그럼 톡플레이어로 외부 코덱의 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를 지원합니다.



톡플레이어의 환경설정(F5)로 들어가서...


재생 탭의 코덱/필터 관리 버튼을 클릭합니다.



비디오 탭필터 목록/관리 버튼을 클릭합니다.



코덱검색 버튼을 클릭합니다.



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



사용하려는 외부 코덱(CyberLink Video Decoder)선택하고 확인 버튼을 클릭합니다.
만약 여기에서마저 없다면 확인 버튼을 클릭하여 일단 나옵니다.



외부필터 추가 버튼을 클릭합니다.



사용하고자 하는 외부 코덱의 ax 파일을 직접 찾아 선택한 후 열기 버튼을 클릭합니다. 참고로 CyberLink Video Decoder의 ax 파일CLCvd.ax입니다.



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



위의 그림처럼 내장 영상처리 필터를 사용합니다.체크를 해제해서 고화질 영상 재생시 내장 영상 처리 필터가 작동하지 않도록 해야 합니다. (조건3 충족)

H264 AVC1사용하려는 외부 코덱(CyberLink Video Decoder)으로 바꾸어 준 다음,
옆에 있는 ? 버튼을 클릭하면 CyberLink Video Decoder의 설정창이 뜹니다.



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




마지막으로 영상 탭영상출력을 설정해야 합니다.(조건4 충족)

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

(1) Windows Vista/7 + DXVA2 지원 그래픽카드 (대부분의 Windows Vista/7 컴퓨터)
무조건 EVR이나 EVR CP를 선택해야 합니다. EVR CP는 기능이 많은 대신 살짝 불안합니다. 그래도 KMPlayer나 팟플레이어에 비해서는 안정적이기 때문에 비교적 무난하게 사용할 수 있습니다. 안정성만 생각한다면 EVR이 좋은 선택입니다.
(내용 추가 : H.264/AVC 영상 재생시 EVR CP가 EVR보다 나은 재생을 보일 때도 많더군요. EVR CP가 더 적당한 선택일지도 모르겠습니다.)

(2) Windows Vista/7 + DXVA1 지원 그래픽카드
VMR9 Renderless가 비교적 무난합니다. 다른 영상 출력 방식들도 테스트해보세요. Overlay Mixer는 재생만 보면 부드럽지만 톡플레이어에서는 자막을 지원하지 않는데다 에어로 기능이 꺼져버렵니다.

(3) Windows XP
VMR9 Renderless가 비교적 무난합니다. 다른 영상 출력 방식들도 테스트해보세요. Overlay Mixer는 재생만 보면 부드럽지만 톡플레이어에서는 자막을 지원하지 않습니다.





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


필터이름우리가 설정한 외부 코덱(Cyberlink Video Decoder)이 표시되고, 출력타입DXVANV12라고 표기되었다면 DXVA가 적용된 것입니다. CPU 점유율(CPU Usage)이 이전보다 크게 줄어든 것을 확인하는 것이 가장 확실한 방법이기는 하지만요.

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




아래는 톡플레이어의 내장 코덱CyberLink Video DecoderCPU 점유율 비교 결과 입니다.

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

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

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

   톡플레이어의
내장 코덱
(SW 가속)
 톡플레이어의
내장 코덱
(DXVA)
 CyberLink
Video Decoder
(SW 가속)
 CyberLink
Video Decoder
(DXVA)
BluRay Rip 영화
(1920 x 800, 24fps)
41 % 5 % 45 %
4 %
 HD 쇼프로
(1280 x 720, 60fps)
47 % 4 % 58 %
5 %

톡플레이어의 내장 코덱은 60 프레임 H.264/AVC 영상을 정상적으로 재생하였을 뿐만 아니라 소프트웨어 가속시 다른 동영상 플레이어들의 내장 코덱보다 낮은 CPU 점유율을 보여주었습니다. 모든 동영상 플레이어들이 똑같이 FFMPEG를 내장 코덱으로 사용한다 할지라도 꾸준히 업데이트되고 있는 동영상 플레이어와 그렇지 못한 동영상 플레이어는 차이가 난다는게 뜻이겠죠.

그래도 소프트웨어 가속의 최강자인 CoreAVC에는 아직 못 미치기 때문에 소프트웨어 가속으로 재생하는 경우에는 CPU 부담이 좀더 적은 CoreAVC 코덱이 나은 선택이 될 겁니다.

내장 코덱과 외부 코덱 모두 DXVA 하드웨어 가속를 사용하면 어마어마하게 CPU 점유율이 낮아짐을 알 수 있습니다. 50% 정도의 CPU 점유율이 5% 정도로 떨어지니 이 맛에 DXVA를 사용하는거겠죠.

하지만 신형 NVIDIA 그래픽 카드를 가지고 있다면 DXVA 말고도 다른 방법도 있습니다. CoreAVC 코덱의 CUDA 가속이 그 주인공이죠(관련 포스트). CUDA 가속은 CPU 점유율 감소면에서 DXVA에 조금 못미치지만 안정성 측면에서 DXVA보다 조금 낫습니다. 무엇보다 DXVA처럼 설정이 복잡하지 않다는게 강점입니다.

이렇게 톡플레이어로 H.264/AVC 영상을 재생하는 방법은 무척 다양합니다. 선택은 유저의 몫이지만요.
CPU 점유율만 따진다면 대략 이런 순서입니다.

내장 코덱 or 외부 코덱 > CoreAVC >>>>> CoreAVC+CUDA > 내장 코덱+DXVA or 외부 코덱+DXVA

Posted by 커피.
,