본문 바로가기

기타,정보,소식

KM플레이어 설정 및 HD 고화질 동영상 정리

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

KM플레이어, KM플레이어설정, HD, HD고화질, 동영상,코덱,인코딩, 내장코덱,자체코덱,Dvix,KMP,곰플레이어
* HD가 보급화되면서 이에따른 관심이 증대되고 있다. 따라서 필자는 이를 가장 효율적으로 고화질 동영상 재생을 하기 위한
방법의 한가지로 KMP와 상용코덱(Nvidia purevideo, Coreavc, Cyberlink)을 이용하여 설명하겠다.

* 고화질 동영상이라함은 파일명에서 간단하게 살펴볼수 있는데 확장자가 TS,TP,MKV등으로 되어있는 것들과 파일명에서
720p, 1080i, 1080p등을 살펴볼수 있다면 고화질이다. 물론 듀얼코어등 cpu빨로 돌릴수 있으나 대부분의 보급화된 컴퓨터에서
버벅거림이 있다면 아래의 방법을 사용함으로써 조건이 충분하다면 완벽히 해결할 수 있을 것이다.

*그래픽카드는 하드웨어 가속여부가 1차 관건이다. 

 지포스 8xxx 시리즈이상(8800 구버전 제외) 8500gt, 8600gt, 8800gt는 하드웨어가속이 완벽지원된다.

 라데온 hd2xxx 시리즈 이상(hd2900 지외) hd2600 hd 3xxx는 하드웨어가속이 완벽지원된다.

 물론 비싼게 좋은 것이나 가격대 성능비로 8600gt, hd3850을 추천한다.

 물론 하드웨어 가속이 안되는 경우에도 kmp purevideo coreavc조합에서도 어느정도 성능 향상이 보장된다.
(하드웨어 가속이안되는 그래픽카드는 우선 cyberlink는 포기하도록 하자.)

 

*준비물(소프트웨어)

무료 소프트웨어: 아래의 링크에서 다운받을수 있다.



상용 소프트웨어: 구입을 하던지 어둠의 경로를 통하던지 각자 구해야 될 것이나 쉽게 구할수 있다.

Purevideo 1.02_223

Coreavc professional 1.6.5.0

Power DVD 7.3이상의 버전

 *이로써 모든 준비물이 갖춰지고 위에 준비물들을 설치 완료했으면 아래와 같이 kmp의 환경설정으로 들어가서
설정해주면 된다.(kmp실행후 단축키 F2 를 통해서 들어갈수 있다.) 

*크게 두가지 조합으로 이를 설명할 것이다. 조합 1번은 KMP + Purevideo + coreavc로 이를 일반적인 설정으로 사용하며
이를 통해서 tp ts등에도 무리없다면 조합1번만으로 사용하는 경우를 추천한다. 조합 2번 KMP + Cyberlink 코덱으로 하드웨어
가속이 되는 그래픽카드를 사용하는 경우에만 필요하며 cpu빨로 안되는 경우 추가적으로 사용하는 경우로 tp ts파일 사용시에
cpu점유율을 줄여줄 수있다. 필자의 경우는 2가지를 모두 사용한다. 매번 번거롭게 설정할 필요없이 2가지 경우를 아래 스샷
을 보면 파일로 저장 이란 항목을 이용하여 레지스트리를 저장함으로써 필요에 따라서 클릭하기만 하면 된다.


 *설명은 이로써 마치고 설정을 하도록 하자.

*********** 조합 1번 KMP + Purevideo + Coreavc **************

1. KMP 실행후 F2를 통해서 아래의 항목으로 들어가서 H.264 , AVC 체크 해제하자. 이로써 외부코덱 사용할 준비가
끝나는 것이다.

 환경 설정을 선택 후 영상 페이지에 가면 아래와 같이 비디오 출력 장치를 선택 할 수 있습니다.

팟플레이어에서는 비디오 출력장치가 자동 선택, 오버레이 믹서, VMR7, VMR9, VMR7 Renderless, VMR9 Renderless,

Video Renderer, EVR등 총 8가지가 있습니다.
각각에 대해서 알아 보도록 하겠습니다.
 
1) 자동 선택
  자동 선택의 경우 비스타에서는 VMR 9 Renderless가 사용되고, 그외의 OS에서는 오버레이 믹스가 사용 됩니다.
각각에 대해서 자세한 정보는 아래를 참고 하면 됩니다.
비스타에서 오버레이 믹스를 사용하지 않는 이유는 비스타의 에어로 UI가 오버레이 믹스랑 호완이 되지 않기 때문에 그렇습니다.
즉 오버레이 믹스로 재생 하면 비스타의 에어로 테마가 꺼지는 현상이 발생 하는데, 이것은 비스타 자체의 문제로 프로그램상에서는 해결 불가능 합니다.
 
2) 오버레이 믹스
  비스타를 제외한 OS에서 기본적으로 사용 되는 비디오 출력 장치 입니다.
오버레이 믹스의 가장 큰 특징은 속도가 빠르다라는 것입니다.
보통 MPEG등의 동영상에서 사용되는 컬러 포멧인 YUV를 직접 지원하고, 보이는 영역이 아닌 특수한 메모리에 출력을 하기 때문에 속도가 빠름니다.
이 때문에 스크린 캡쳐로 영상을 캡쳐 할 수 없다라는 단점이 있습니다.
오버레이 믹스의 컬러키 기능을 이용해서 자막을 영상위에 나타 낼 수 있습니다.
자막은 이미지화가 되는것이 아니라 영상과는 별개로 출력 되므로 자막의 품질은 좋지만,
알파 블랜딩을 지원하지 않아서 외곽선이 거칠다라는 문제점이 있습니다.
 
3) VMR 7
  VMR은 Video Mixing Renderer의 약자로 VMR7은 윈도우 XP에서 지원이 됩니다.
VMR7은 DirectX7을 이용해서 비디오를 자유롭게 합성 할 수 있는 기능을 가지고 있습니다.
VMR7은 비디오 카드의 오버레이를 사용하기도 하고, Direct 3D를 사용하기도 합니다.
렌더러 자체에 믹싱 기능이 있어서 비디오 필터가 동작하지 않아서 자막을 출력 할 수 없는 상황일때 이 기능을 이용해서
자막을 출력 할 수 있습니다.
자막은 이미지안에 들어가서 출력이 되므로, 자막의 품질은 영상의 크기에 따라가게 됩니다.
 
4) VMR 9
  VMR9는 DirectX9를 이용한 렌더러 입니다.
VMR7과 상당히 유사 하지만, DirectX9를 이용한다는 점과 윈도우 XP가 아니더라도 DirectX9가 설치되어 있으면 동작한다라는 점이 다름니다.
또한 오버레이 기능은 사용하지 않고, 무조건 Direct 3D를 이용해서 이미지를 출력 한다는 점이 VMR7과 다름니다.
 
5) VMR 7 Renderless
  VMR7의 기능 중에서 영상 이미지를 프로그램상에서 직접 합성 하는 모드 입니다.
이 모드는 영상을 직접 합성 하므로, 영상위에 자막을 직접 나타낼 수 있습니다.
자막은 영상과는 별개로 출력이 되고, 알파 블랜딩 까지 먹히므로 자막의 품질이 가장 좋습니다.
 
6) VMR 9 Renderless
  VMR 7 Renderless와 같지만 VMR 9를 이용해서 처리 한다라는 점이 다름니다.
그리고 픽셀 세이더를 지원하는 유일한 렌더러 입니다.
당연한 말이지만, DirectX의 버전이 높을수록 최신 하드웨어를 더 잘 지원하고, 속도도 더 빠르기 때문에,
VMR 7보다는 VMR 9를 사용할것을 추천 합니다. 
 
7) Video Renderer
  DirectShow의 기본적인 렌더러 입니다.
상황에 따라서 오버레이와 DirectDraw, GDI등을 사용하는 범용 렌더러 입니다.
하지만 최신 기술이 반영이 되어 있지 않아서 점점 사용하지 않는 추세 입니다.
특별한 목적이 아니라면 사용할 필요는 없습니다.
 
8) EVR
  EVR은 Enhanced Video Renderer의 약자로 원래는 비스타에서만 동작을 했습니다만, XP에서 닷넨 3.0이상의 버전을 설치하면 사용 가능 합니다.
특성은 DirectX 9를 이용하는 VMR9와 비슷하지만, EVR은 DXVA 2.0을 지원하는 유일한 렌더러 입니다.
비스타가 아니라면 굳이 사용할 필요가 없으며, 아직까지는 호완성의 문제가 있으므로 사용하지 않는 편이 좋습니다.
 
DXVA 1.0을 지원하는 렌더러는 VMR7, VMR9, 오버레이 믹서이고, DXVA 2.0을 지원하는 렌더러는 EVR 입니다.
 
9) 결론
  빠른 속도를 원한다면 오버레이 믹스를 사용하고, 시스템 사양이 충분 하고 다양한 기능을 원한다면 VMR9 Renderless를 사용할것은 추천 합니다.
하지만 렌더러 마다 색감이라던지 느낌이 조금식 다르므로 이것 저것 테스트 해보고 좋은것을 선택 하길 바랍니다.
 
 
1) 서론
먼저 DXVA가 정확히 무엇인지 알아 봅시다.
DXVA의 DirectX Video Accelaction의 약자로 우리 나라말로 표현을 하면 "다이렉트 엑스 비디오 가속" 정도로 번역 될 수 있습니다.
즉 DirectX를 이용해서 비디오 카드가 비디오를 직접 디코딩하는 기술을 말함니다.
현재 DXVA는 2.0버전 까지 나와 있습니다.
DXVA1.0은 윈도우 2000 이후 부터 지원을 합니다.
DXVA2.0은 원래 비스타에서만 지원을 했으나,
XP에 .Net 3.0런타임을 깔면 DXVA 2.0을 사용할 수 있습니다만,
XP상에서는 호환성의 문제가 남아 있어서 그래픽 카드에 따라서 동작을 할 수도 안할 수도 있습니다.
DXVA상에서 가속이 가능한 코덱으로는 MPEG1, MPEG2, WMV8, WMV9, VC1, H.264/AVC1, MPEG4등 입니다.
즉 대부분의 주요 코덱을 지원 합니다만... 이것 또한 그래픽 카드의 종류에 따라서 지원 여부가 결정이 됩니다.
 
2) 하드웨어 가속의 종류
하드웨어 가속은 여러 종류로 나눌 수 있습니다.
즉 비디오 디코딩시 S/W가 어느 정도 디코딩하고 H/W가 어느 정도 디코딩을 하는지에 따라서 나눌 수 있다라는 말입니다.
당연히 H/W가 많이 디코딩 할 수록 가속이 많이 되고 CPU점유율이 낮아지게 됩니다.
또한 그래픽 카드에 따라서 H/W가 지원되는 능력도 다름니다.
즉 DXVA가 지원이 된다라구 해도 그래픽 카드에 따라서 CPU점유율이 차이가 날 수 있다라는 의미 이구요.
비디오 코덱에 따라서 세부적인 알고리즘은 다르지만, 현재 사용되는 대부분의 비디오 코덱의 기본 알고리즘은 거의 동일 합니다.
즉 기본적인 비디오 디코딩 알고리즘은 VLD->IDCT->MoComp->PostProc로 볼 수 있습니다.
그럼 하나씩 차례로 알아 봅시다.
 
(1) VLD
VLD는  Variable Length Decoder의 약자로 비디오 코덱 데이타를 분석 하는 단계 입니다.
일명 비트 스트림 디코더라고 부르는 단계로 비디오 데이타에서 필요한 정보를 추출하는 단계 입니다.
여기서 DXVA를 지원하는 모드를 VLD라고 부르며 속도가 가장 빠르지만, 호완성은 가장 떨어지게 됩니다.
 
(2) IDCT
IDCT는 Inverse Discrete Cosine Transform으로 우리 나라 말로 변역하면 역이산 코사인 변환 입니다.
IDCT는 주파수 데이타를 시간 영역 데이타로 바꾸어 주는 기능 입니다.
여기서 DXVA를 지원하는 모드를 IDCT라고 하며 중간 정도의 호완성과 중간 정도의 속도를 가짐니다.
 
(3) MoComp
MoComp는 Motion Compensation으로 일명 움직임 보상이라고 불리어 짐니다.
보통 영상 압축시 용량을 줄이기 위해 이전 프레임에서 현재 프레임의 차이만 가지고 있는데, 이때 차이값을 가지고 이전 이미지에서 원래 이미지를 만들어 내는것이 MoComp입니다.
여기서 DXVA를 지원하는 모드를 MoComp라고 하며 속도가 가장 느리고 호완성이 좀 좋습니다.
 
(4) PostProc
PostProc는 Post Process로 일명 후처리라고 불려집니다.
후처리는 영상의 블럭을 제거 하는 기능 입니다.
즉 H/W가속과는 크게 상관이 없고 S/W로 완전히 디코딩 한뒤 후처리 기능만을 H/W가 하는 단계로, 팟플레이어에서는
이 모드는 지원하지 않습니다.
 
즉 VLD가 가장 속도가 빠르고 MoComp가 속도가 가능 느림니다.
현재 팟플레이어는 H.264/AVC1의 경우는 VLD만 지원하며, VC1은 VLD, IDCT, MoComp를 지원 하고,
WMV9는 IDCT, MoComp를 지원하고, WMV8은 MoComp, MPEG1/2는 IDCT, MoComp를 지원 합니다.
 
3) 코덱별 지원 여부
그래픽 카드에 따라서 DXVA를 지원하는 코덱의 종류가 다르므로, 구체적으로 어떤 카드가 지원이 되는지에 대해서 알아 봅시다.
 
1) MPEG1, MPEG2
MPEG1, MPEG2는 대부분의 그래픽 카드가 지원을 합니다.
어떤 카드는 IDCT만 지원하며, 어떤 카드는 MoComp만, 또 어떤 카드는 IDCT/MoComp둘다 지원 할 수 있습니다.
따라서 별문제가 없으면 MPEG1, MPEG2는 대부분의 그래픽 카드에서 가속이 잘 됩니다.
 
2) WMV8
WMV8은 MoComp만 지원을 하는데, 일부 라데온계열에서 지원 하는걸로 봐짐니다.
WMV8을 DXVA로 가속할 이유는 크게 없어 보이지만 팟플레이어 에서는 지원을 합니다.
 
3) WMV3/VC1
좀 최근의 그래픽 카드에서 지원을 합니다.
구형 라데온 계열의 경우 WMV9 MoComp만 지원을 하고, 비교적 최신 그래픽 카드인 HD 2xxx는 WMV9/VC1 PostProc, VC1 VLD를 지원 합니다.
그에 반해 NVIDIA계열은 구형 모델은 WMV9/VC1 MoComp를 지원하고, 최신 모델은 WMV9/VC1 IDCT/MoComp를 지원 합니다.
즉 라데온 HD 2xxx의 경우 VC1은 VLD를 지원해서 VC1재생시에는 큰 도움이 되지만 오히려 WMV9에 대해서는 지원이 미비하고,
NVIDIA는 VC1/WMV9의 IDCT모드를 지원해서 WMV9나 VC1이나 둘다 평이한 가속 능력을 보여 줍니다.
 
4) H.264/AVC1
가장 최근의 그래픽 카드에서 지원을 합니다.
라데온 계열 보다는 NVIDIA계열이 호완성이 좀 더 좋습니다.
NVIDIA의 경우 구형 그래픽 카드도 H.264의 MoComp를 지원하기는 하나, H.264는 코덱 특성상 워낙 복잡해서
팟플레이어에서는 H.264의 MoComp/IDCT모드는 지원하지 않습니다.
따라서 H.264/AVC1을 하드웨어 가속 기능을 사용할려면 라데온은 HD 2xxx이상,
NVIDIA는 GeForce 8600, 8500을 가지고 있어야 됩니다.
 
5) MPEG4
MPEG4를 제대로 지원하는 그래픽 카드는 거의 없습니다.
라데온 HD 2xxx에서 지원한다고는 되어 있어나 다른 코덱과 사용방법이 다른지는 몰라도
표준적인 방법으로는 사용할 수 없는거 같습니다.
이것은 좀더 알아 봐서 사용 할 수 있으면 지원하도록 하겠습니다.
 
3) DXVA1.0과 DXVA2.0에 대해서
DXVA1.0과 2.0의 차이는 비디오 렌더러의 차이 입니다.
물론 내부적으로 프로그래밍을 하는 방법이 조금 달라지기는 했지만, 크게 달라지지는 않았습니다.
DXVA1.0을 지원하는 렌더러는 OverlayMixer, VMR7, VMR9이고 DXVA2.0을 지원하는 렌더러는 EVR입니다.
DXVA1.0의 경우 OverlayMixer와 VMR둘다 동시에 지원을 하기 때문에 호완성이 좋습니다.
따라서 가능하면 DXVA1.0을 사용하는게 개인적으로 더 좋지 않을까 합니다.
 
4) DXVA의 문제점
DXVA의 가장 큰 문제점은... 비디오 디코더와 비디오 렌더러 사이에서 처리가 되어야 되므로,
중간에 영상처리나 기타 영상에 관련된 모든 기능을 사용 할 수 없다라는 점이 가장 큼니다.
즉 DXVA를 사용하면서 이미지 자막을 출력 할 수 없고, 영상을 캡쳐 할 수도 없습니다.
또한 영상의 밝기나 조절도 할 수 없으며, 파일 방송도 할 수도 없습니다.
그러므로 이러한 특성을 잘 이해를 하야 됩니다.
 
추가정보에 관한 출처: kmp개발자이신 강희용님이 현재 개발중이신 다음 팟플레이어 블로그
 
=============================================================================================================
위의 설명들이 복잡하다거나 vc-1으로 인코딩된 ts파일 재생문제 되시는 분들께..
 
유틸리티 자료실에 올라온 중국에서 배포된 purecodec 의 설정방법입니다.