DXVA(DirectX Video Acceleration)는 CPU가 전담하던 코덱의 디코딩 작업을 그래픽카드의 GPU가 분담하는 하드웨어 가속 기술을 말합니다.
DXVA가 지원되는 코덱은 H.264/AVC, MPEG2, WMV3(Windows Media Video 9), VC1 등이 있으며, DivX나 Xvid 코덱은 지원하지 않습니다.
DXVA를 쓰면 동영상 재생시 CPU 점유율이 놀라울 정도로 줄어듭니다. 또한 MPEG2 영상(TS, TP 영상) 재생시에 DXVA를 사용하면 하드웨어 디인터레이싱을 통해 부드러운 60 프레임 재생이 가능하다는 부가적인 장점도 있습니다.
동영상 플레이어에서 DXVA를 사용하려면 4가지 조건이 반드시 충족되어야 합니다. 하나라도 조건이 맞지 않으면 DXVA는 작동하지 않습니다.
1) DXVA를 지원하는 그래픽카드
그래픽카드의 DXVA 지원 여부와 지원 정도를 알려면 DXVA Checker 라는 프로그램이 필요합니다. (다운로드 사이트로 가기) 이 프로그램을 실행시키면 그래픽카드의 DXVA 지원 여부가 표시됩니다.(Windows XP의 경우에는 .NET Framework 2.0 이상의 버전이 설치되어 있어야 작동합니다.)
제 그래픽카드(Geforce 9200M GS)에서는 MPEG2, VC1, WMV9, H264 코덱에서 DXVA가 지원됨을 알 수 있습니다. 코덱명_의 다음에 오는 VLD, IDCT, MoComp는 DXVA의 분담 정도를 의미합니다. VLD일때 가장 많은 분담을 하고, MoComp일때 가장 적은 분담을 합니다. 즉 VLD까지 지원하는 그래픽카드는 MoComp까지 지원하는 그래픽카드에 비해 CPU 점유율의 하락폭이 크다는 의미입니다.
DXVA2는 DXVA1의 개선형인데...
DXVA1은 Windows XP/Vista/7에서 영상 출력 방식을 VMR7, VMR9, Overlay Mixer로 설정해야 사용할 수 있고, DXVA2는 Windows Vista/7에서 영상 출력 방식을 EVR로 설정해야 사용할 수 있다는 정도로만 이해하시면 됩니다.
720x480 / 1280x720 /1920x1080 등은 해당 해상도에서 그래픽카드가 DXVA를 지원한다는 뜻입니다.
DXVA Checker의 결과에서 알 수 있듯이, 코덱에 따라 DXVA의 지원 여부와 지원 정도가 다릅니다. MPEG2 영상(TS, TP 영상)은 DXVA를 지원하지만 H.264/AVC 영상은 DXVA를 지원하지 않는 그래픽카드들도 많습니다. 그러니 DXVA Checker를 이용해서, 그래픽카드가 해당 코덱의 DXVA를 지원하는지, 지원한다면 어느 정도 지원하는지 알아두세요.
2) DXVA를 지원하는 코덱 + DXVA 설정
DXVA를 지원하는 외부 코덱은 다음과 같습니다.
MPEG2 : CyberLink Video/SP Decoder, Nero Video Decoder HD, NVIDIA PureVideo Decoder(DXVA1만 지원)
H.264 / AVC1 : CyberLink H.264/AVC Decoder
H.264 / AVC1 / VC1 : MPC Video Decoder
MPEG2 / H.264 / AVC1 : CyberLink Video Decoder, Microsoft DTV-DVD Decoder(Windows 7 전용)
MPEG2 / H.264 / AVC1 / VC1 / WMV3 : ArcSoft Video Decoder
이런 코덱들은 대부분 코덱 설정 화면에서 DXVA의 사용유무를 정해줄 수 있기 때문에 DXVA에 관련된 옵션을 설정해주셔야 합니다. 예를 들어 CyberLink 코덱의 경우 아래 그림과 같은 코덱 설정 화면을 가지고 있습니다.
Miscellaneous에서 DXVA를 체크해야 DXVA를 사용할 수 있습니다. 다른 코덱들도 이런 비슷한 설정이 있으니 잘 찾아서 체크하세요.
그런데 대부분의 DXVA 지원 코덱들은 상용 동영상 플레이어에서 자체적으로 쓰기 위해 만들어진 것입니다. 그래서 곰플레이어나 KMPlayer 등에서 외부 코덱으로 쓰려고 하면 문제가 발생할 때가 많습니다.
다행히(?) 인터넷 상에는 외부 코덱으로 쓸 수 있게 제작된 (법적인 문제가 다분히 있어 보이는) 코덱팩들이 많이 풀려있습니다. 법적인 문제가 마음에 걸리시면 팟플레이어를 추천합니다. 팟플레이어는 내장 코덱에서 DXVA를 지원하니까요. 또한 오픈 소스로 만들어진 무료 코덱인 MPC Video Decoder나 Windows 7에 내장되어 있는 Microsoft DTV-DVD Decoder를 쓰는 방법도 있습니다.
참고로 유명한 상용 H.264/AVC 코덱인 CoreAVC는 DXVA를 지원하지 않습니다. CoreAVC는 CUDA라는 다른 형태의 하드웨어 가속을 지원합니다.
3) 영상 처리 필터(내부 비디오 필터) 끄기
동영상 플레이어의 영상 처리 필터(내부 비디오 필터)가 켜져 있으면 DXVA는 작동하지 않기 때문에 반드시 영상 처리 필터를 꺼야 합니다.
(각 동영상 플레이어에서 영상 처리 필터를 끄는 방법)
4) 올바른 영상 출력 방식
영상 출력 방식에는 Overlay Mixer, VMR7, VMR9, EVR 등이 있습니다.(Windowed와 Renderless는 순수 방식과 응용 방식의 차이 정도로 이해하시면 됩니다. 아무래도 응용 방식(Renderless)이 좀 더 기능이 많은 대신 조금 무겁겠죠.)
올바른 영상 출력 방식을 설정하려면 우선 DXVA Checker에서 그래픽카드가 지원하는 DXVA의 종류를 알아야 합니다. 각 코덱별로 DXVA1을 지원하는지, DXVA2를 지원하는지 확인해보세요.
(1) Windows Vista/7 + DXVA2 지원 그래픽카드 (대부분의 Windows Vista / 7 컴퓨터)
무조건 EVR(Enhanced Video Renderer)나 EVR Renderless(동영상 플레이어에 따라 EVR CP, EVR (C/A) 등등 다양하게 표기)를 선택해야 합니다. EVR Renderless는 기능이 많은 대신 좀 불안정하므로 EVR(Enhanced Video Renderer)이 무난합니다. 그 밖의 다른 영상 출력 방식으로는 DXVA 하드웨어 가속이 되지 않습니다.
(2) Windows Vista/7 + DXVA1 지원 그래픽카드
VMR9 Renderless, VMR9 Windowed, Overlay Mixer가 비교적 무난합니다. 혹시 문제가 있으면 VMR7 계열도 테스트 해보세요. Overlay Mixer를 사용하면 에어로 기능이 꺼져버리니 참고하세요.
(3) Windows XP
VMR9 Renderless, VMR9 Windowed, Overlay Mixer가 비교적 무난합니다. 혹시 문제가 있으면 VMR7 계열도 테스트 해보세요.
PS. 1 : VMR9 Renderless을 사용하는 경우 TS, TP 영상을 60프레임으로 재생(하드웨어 디인터레이싱)하려면 VMR Mixer Mode(VMR9 혼합 모드)에 체크가 되어야 있어야 합니다.(이 옵션은 영상 아래부분에 생기는 줄 문제를 해결해주기도 합니다.) 하지만 VMR Mixer Mode는 영상의 버벅임을 유발할수도 있기 때문에 체크 여부에 신중해야 합니다.
PS. 2 : 곰플레이어는 EVR, VMR9 Windowed, VMR7 Windowed에서 자막 출력이 되지 않습니다.(다른 동영상 플레이어에서는 자막 출력이 됩니다.)
이렇게 4가지 조건이 모두 충족되면 DXVA로 재생이 됩니다. 재생 정보에서 출력 형식(Output)이 DXVA나 NV12로 표기되면 보통은 DXVA가 성공적으로 사용된 것을 의미합니다. 하지만 간혹 이 표기가 틀리기 때문에 맹신할 수는 없습니다.
가장 확실한 방법은 CPU 점유율을 확인하는 겁니다. DXVA를 사용하지 않았을 때보다 CPU 점유율이 눈에 띄게 줄어들면 성공적으로 DXVA가 사용되고 있는 것입니다.
그런데 DXVA에는 이런 까다로운 조건들 말고도 단점들이 있습니다.
우선 DXVA 하드웨어 가속은 일반적인 소프트웨어 가속에 비해 호환성과 안정성이 약간 떨어집니다. 동영상을 제공하는 사람이 동영상을 어떤 옵션으로 어떻게 인코딩했느냐에 따라 DXVA가 아예 안 되는 영상도 있고 DXVA가 되더라도 간간히 화면의 깨짐이 발생하는 영상도 있습니다.(그래서 위에서 말한 4가지 조건을 맞추며 DXVA 테스트를 할 때는 여러 개의 동영상으로 해보시기를 권합니다. 원래부터 DXVA가 안되는 동영상을 가지고 씨름해봤자 DXVA가 될 리가 없으니까요.)
또, 영상 출력 방식과 영상 처리 필터에 제약을 받기 때문에, 자막의 표시나 자막의 품질, 화면 캡처 등에서 문제가 발생할 수도 있습니다. 특히 곰플레이어처럼 DXVA를 어설프게 지원하는 동영상 플레이어에서는 더욱 그렇습니다.
그렇지만 팟플레이어나 톡플레이어가 DXVA를 비교적 잘 지원하는데다, 최근에 쏟아져 나오는 동영상들(외국에서 흘러들어오는 일부 영화 제외)은 거의 다 DXVA가 잘되기 때문에 설정만 제대로 되었다면 DXVA로 동영상을 감상하는데 별 무리가 없을 겁니다.
그러니 조건들이 까다로워도 CPU 점유율의 대폭 하락과 하드웨어 디인터레이싱이라는 풍부한 매력을 지닌 DXVA의 세계에 한번 빠져 보시기를 권해드립니다.
DXVA가 지원되는 코덱은 H.264/AVC, MPEG2, WMV3(Windows Media Video 9), VC1 등이 있으며, DivX나 Xvid 코덱은 지원하지 않습니다.
DXVA를 쓰면 동영상 재생시 CPU 점유율이 놀라울 정도로 줄어듭니다. 또한 MPEG2 영상(TS, TP 영상) 재생시에 DXVA를 사용하면 하드웨어 디인터레이싱을 통해 부드러운 60 프레임 재생이 가능하다는 부가적인 장점도 있습니다.
동영상 플레이어에서 DXVA를 사용하려면 4가지 조건이 반드시 충족되어야 합니다. 하나라도 조건이 맞지 않으면 DXVA는 작동하지 않습니다.
1) DXVA를 지원하는 그래픽카드
그래픽카드의 DXVA 지원 여부와 지원 정도를 알려면 DXVA Checker 라는 프로그램이 필요합니다. (다운로드 사이트로 가기) 이 프로그램을 실행시키면 그래픽카드의 DXVA 지원 여부가 표시됩니다.(Windows XP의 경우에는 .NET Framework 2.0 이상의 버전이 설치되어 있어야 작동합니다.)
제 그래픽카드(Geforce 9200M GS)에서는 MPEG2, VC1, WMV9, H264 코덱에서 DXVA가 지원됨을 알 수 있습니다. 코덱명_의 다음에 오는 VLD, IDCT, MoComp는 DXVA의 분담 정도를 의미합니다. VLD일때 가장 많은 분담을 하고, MoComp일때 가장 적은 분담을 합니다. 즉 VLD까지 지원하는 그래픽카드는 MoComp까지 지원하는 그래픽카드에 비해 CPU 점유율의 하락폭이 크다는 의미입니다.
DXVA2는 DXVA1의 개선형인데...
DXVA1은 Windows XP/Vista/7에서 영상 출력 방식을 VMR7, VMR9, Overlay Mixer로 설정해야 사용할 수 있고, DXVA2는 Windows Vista/7에서 영상 출력 방식을 EVR로 설정해야 사용할 수 있다는 정도로만 이해하시면 됩니다.
720x480 / 1280x720 /1920x1080 등은 해당 해상도에서 그래픽카드가 DXVA를 지원한다는 뜻입니다.
DXVA Checker의 결과에서 알 수 있듯이, 코덱에 따라 DXVA의 지원 여부와 지원 정도가 다릅니다. MPEG2 영상(TS, TP 영상)은 DXVA를 지원하지만 H.264/AVC 영상은 DXVA를 지원하지 않는 그래픽카드들도 많습니다. 그러니 DXVA Checker를 이용해서, 그래픽카드가 해당 코덱의 DXVA를 지원하는지, 지원한다면 어느 정도 지원하는지 알아두세요.
2) DXVA를 지원하는 코덱 + DXVA 설정
DXVA를 지원하는 외부 코덱은 다음과 같습니다.
MPEG2 : CyberLink Video/SP Decoder, Nero Video Decoder HD, NVIDIA PureVideo Decoder(DXVA1만 지원)
H.264 / AVC1 : CyberLink H.264/AVC Decoder
H.264 / AVC1 / VC1 : MPC Video Decoder
MPEG2 / H.264 / AVC1 : CyberLink Video Decoder, Microsoft DTV-DVD Decoder(Windows 7 전용)
MPEG2 / H.264 / AVC1 / VC1 / WMV3 : ArcSoft Video Decoder
이런 코덱들은 대부분 코덱 설정 화면에서 DXVA의 사용유무를 정해줄 수 있기 때문에 DXVA에 관련된 옵션을 설정해주셔야 합니다. 예를 들어 CyberLink 코덱의 경우 아래 그림과 같은 코덱 설정 화면을 가지고 있습니다.
Miscellaneous에서 DXVA를 체크해야 DXVA를 사용할 수 있습니다. 다른 코덱들도 이런 비슷한 설정이 있으니 잘 찾아서 체크하세요.
그런데 대부분의 DXVA 지원 코덱들은 상용 동영상 플레이어에서 자체적으로 쓰기 위해 만들어진 것입니다. 그래서 곰플레이어나 KMPlayer 등에서 외부 코덱으로 쓰려고 하면 문제가 발생할 때가 많습니다.
다행히(?) 인터넷 상에는 외부 코덱으로 쓸 수 있게 제작된 (법적인 문제가 다분히 있어 보이는) 코덱팩들이 많이 풀려있습니다. 법적인 문제가 마음에 걸리시면 팟플레이어를 추천합니다. 팟플레이어는 내장 코덱에서 DXVA를 지원하니까요. 또한 오픈 소스로 만들어진 무료 코덱인 MPC Video Decoder나 Windows 7에 내장되어 있는 Microsoft DTV-DVD Decoder를 쓰는 방법도 있습니다.
참고로 유명한 상용 H.264/AVC 코덱인 CoreAVC는 DXVA를 지원하지 않습니다. CoreAVC는 CUDA라는 다른 형태의 하드웨어 가속을 지원합니다.
3) 영상 처리 필터(내부 비디오 필터) 끄기
동영상 플레이어의 영상 처리 필터(내부 비디오 필터)가 켜져 있으면 DXVA는 작동하지 않기 때문에 반드시 영상 처리 필터를 꺼야 합니다.
(각 동영상 플레이어에서 영상 처리 필터를 끄는 방법)
4) 올바른 영상 출력 방식
영상 출력 방식에는 Overlay Mixer, VMR7, VMR9, EVR 등이 있습니다.(Windowed와 Renderless는 순수 방식과 응용 방식의 차이 정도로 이해하시면 됩니다. 아무래도 응용 방식(Renderless)이 좀 더 기능이 많은 대신 조금 무겁겠죠.)
올바른 영상 출력 방식을 설정하려면 우선 DXVA Checker에서 그래픽카드가 지원하는 DXVA의 종류를 알아야 합니다. 각 코덱별로 DXVA1을 지원하는지, DXVA2를 지원하는지 확인해보세요.
(1) Windows Vista/7 + DXVA2 지원 그래픽카드 (대부분의 Windows Vista / 7 컴퓨터)
무조건 EVR(Enhanced Video Renderer)나 EVR Renderless(동영상 플레이어에 따라 EVR CP, EVR (C/A) 등등 다양하게 표기)를 선택해야 합니다. EVR Renderless는 기능이 많은 대신 좀 불안정하므로 EVR(Enhanced Video Renderer)이 무난합니다. 그 밖의 다른 영상 출력 방식으로는 DXVA 하드웨어 가속이 되지 않습니다.
(2) Windows Vista/7 + DXVA1 지원 그래픽카드
VMR9 Renderless, VMR9 Windowed, Overlay Mixer가 비교적 무난합니다. 혹시 문제가 있으면 VMR7 계열도 테스트 해보세요. Overlay Mixer를 사용하면 에어로 기능이 꺼져버리니 참고하세요.
(3) Windows XP
VMR9 Renderless, VMR9 Windowed, Overlay Mixer가 비교적 무난합니다. 혹시 문제가 있으면 VMR7 계열도 테스트 해보세요.
PS. 1 : VMR9 Renderless을 사용하는 경우 TS, TP 영상을 60프레임으로 재생(하드웨어 디인터레이싱)하려면 VMR Mixer Mode(VMR9 혼합 모드)에 체크가 되어야 있어야 합니다.(이 옵션은 영상 아래부분에 생기는 줄 문제를 해결해주기도 합니다.) 하지만 VMR Mixer Mode는 영상의 버벅임을 유발할수도 있기 때문에 체크 여부에 신중해야 합니다.
PS. 2 : 곰플레이어는 EVR, VMR9 Windowed, VMR7 Windowed에서 자막 출력이 되지 않습니다.(다른 동영상 플레이어에서는 자막 출력이 됩니다.)
이렇게 4가지 조건이 모두 충족되면 DXVA로 재생이 됩니다. 재생 정보에서 출력 형식(Output)이 DXVA나 NV12로 표기되면 보통은 DXVA가 성공적으로 사용된 것을 의미합니다. 하지만 간혹 이 표기가 틀리기 때문에 맹신할 수는 없습니다.
가장 확실한 방법은 CPU 점유율을 확인하는 겁니다. DXVA를 사용하지 않았을 때보다 CPU 점유율이 눈에 띄게 줄어들면 성공적으로 DXVA가 사용되고 있는 것입니다.
그런데 DXVA에는 이런 까다로운 조건들 말고도 단점들이 있습니다.
우선 DXVA 하드웨어 가속은 일반적인 소프트웨어 가속에 비해 호환성과 안정성이 약간 떨어집니다. 동영상을 제공하는 사람이 동영상을 어떤 옵션으로 어떻게 인코딩했느냐에 따라 DXVA가 아예 안 되는 영상도 있고 DXVA가 되더라도 간간히 화면의 깨짐이 발생하는 영상도 있습니다.(그래서 위에서 말한 4가지 조건을 맞추며 DXVA 테스트를 할 때는 여러 개의 동영상으로 해보시기를 권합니다. 원래부터 DXVA가 안되는 동영상을 가지고 씨름해봤자 DXVA가 될 리가 없으니까요.)
또, 영상 출력 방식과 영상 처리 필터에 제약을 받기 때문에, 자막의 표시나 자막의 품질, 화면 캡처 등에서 문제가 발생할 수도 있습니다. 특히 곰플레이어처럼 DXVA를 어설프게 지원하는 동영상 플레이어에서는 더욱 그렇습니다.
그렇지만 팟플레이어나 톡플레이어가 DXVA를 비교적 잘 지원하는데다, 최근에 쏟아져 나오는 동영상들(외국에서 흘러들어오는 일부 영화 제외)은 거의 다 DXVA가 잘되기 때문에 설정만 제대로 되었다면 DXVA로 동영상을 감상하는데 별 무리가 없을 겁니다.
그러니 조건들이 까다로워도 CPU 점유율의 대폭 하락과 하드웨어 디인터레이싱이라는 풍부한 매력을 지닌 DXVA의 세계에 한번 빠져 보시기를 권해드립니다.
'동영상 플레이어 > 공통' 카테고리의 다른 글
국산 동영상 플레이어들의 고화질 영상 재생 능력 테스트 (2) - TS, TP 영상 영상 (4) | 2010.04.05 |
---|---|
국산 동영상 플레이어들의 고화질 영상 재생 능력 테스트 (1) - H.264/AVC 영상 (12) | 2010.04.05 |
동영상 플레이어의 영상 처리 필터 (3) (0) | 2010.03.13 |
동영상 플레이어의 영상 처리 필터 (2) (0) | 2010.03.12 |
동영상 플레이어의 영상 처리 필터 (1) (0) | 2010.03.12 |