KMPlayer와 CoreAVC

Go down

KMPlayer와 CoreAVC Empty KMPlayer와 CoreAVC

올리기  Admin 2012-07-10, 3:53 pm

KMPlayer에 CoreAVC 적용하기

KMPlayer는 곰플레이어와 마찬가지로 내장 코덱을 통해 대부분의 H.264 동영상을 재생할 수 있습니다. 하지만 60프레임 H.264 동영상 같은 고화질 영상을 재생해보면 싱크가 어긋나는 등의 문제가 발생하기도 합니다.

CoreAVC를 사용하면 KMP에서 좀더 안정적으로 H.264/AVC 동영상을 감상할 수 있습니다. 또한 CUDA를 지원하는 NVIDIA 그래픽 카드(Geforce 8000 대 이상)를 가지고 있다면 CPU 점유율을 반 이상 줄일 수 있습니다.

NVIDIA 그래픽카드가 CUDA를 지원해주는지 알고 싶으시면 => CUDA ZONE


CoreAVC 설치 후 KMP의 환경 설정 (F2)으로 들어갑니다.

내장 비디오 코덱 - 기본 코덱 탭에서 H.264와 AVC1의 체크를 해제합니다.
외부 비디오 코덱에서 외부 코덱 사용자 정의 버튼을 클릭합니다.
검색해서 추가 버튼을 클릭합니다.
컴퓨터에 설치된 외부 코덱들이 쭉 나타납니다. CoreAVC가 정상적으로 설치되었다면 CoreAVC Video Decoder가 보일 겁니다. 확인 버튼을 클릭합니다.
H.264와 AVC1을 각각 CoreAVC Video Decoder로 바꿔주세요. 옆에 있는 ... 버튼을 누르면 CoreAVC 설정을 할 수 있으니 참고하세요.

여기까지가 KMP에 CoreAVC를 적용하기 위한 필수적인 과정입니다.
이제부터는 선택적인 과정입니다. 개인의 취향과 컴퓨터 상황에 따라 선택하시면 됩니다.


소스 필터
기타 소스 필터 탭의 Haali Media Splitter 설정에서 MKV와 MP4 파일 재생시 사용합니다에 체크를 하세요.
이렇게 하면 MKV와 MP4 파일 재생시 KMP 내장 Splitter 대신 Haali Media Splitter가 작동합니다. Haali Media Splitter는 CoreAVC와 궁합이 좋으니 적절한 선택이 될겁니다.
그리고 설정 버튼을 클릭하면 Haali Media Splitter 옵션 화면이 뜹니다.
Options 탭에서 Output의 Use custom media type for H.264의 Value 값을 No로 지정해주고 확인 버튼을 클릭합니다. (No로 두지 않으면 Haali Media Splitter 작동시 몇가지 문제점이 발생합니다.)


영상 처리
영상 처리 필터 탭에서 아래의 조건이라면 사용하지 않음을 선택하고 FOURCC에 체크를 하세요. 이렇게 하면 H.264 등의 고화질 동영상 재생시 영상 처리 필터가 작동하지 않습니다.
고화질 동영상 재생시 영상 처리 필터를 작동하지 않게 하는 이유는 영상 처리 필터가 간혹 화면의 끊김을 유발할 수 있는데다, 원래부터 화질이 좋은 고화질 동영상에서 영상 처리 필터의 효과가 미미하기 때문입니다.


마지막으로 언급할 것은 영상 처리 - 영상 출력 장치 탭의 출력 장치 부분입니다. 개인적으로 Windows Vista와 7의 등장 이후 동영상 플레이어 설정에서 가장 골치 아프게 생각하는 부분입니다.

Windows XP : VMR9 Renderless Mode와 Overlay Mixer 중에 잘 되는 것 선택
Windows Vista & 7 : VMR9 Renderless Mode와 Enhanced Video Renderer 중에 잘 되는 것 선택

CUDA나 DXVA 같은 하드웨어 가속에 적당한 렌더러의 선택은 직접 해보는 수밖에 없는 것 같습니다.
개개인의 컴퓨터 사양과 환경에 따라 바뀌는데다 재생하려는 동영상에 따라서도 바뀌기 때문입니다.
렌더러의 선택이 가장 골치 아프게 생각됩니다.



==========================================================================


DXVA에 대하여...

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 하드웨어 가속은 cpu 점유율을 크게 낮춰주기는 하지만 안정성과 호환성은 아무래도 떨어집니다. 그에 비해 coreavc로 돌리면 안정적이고 호환성도 좋습니다.









Admin
Admin

게시물 갯수 : 182
Join date : 2011-12-11

https://hyora.forumkorean.com

위로 Go down

위로


 
Permissions in this forum:
답글을 올릴 수 없습니다