팟플레이어 비디오 출력장치 - 잡담 2011. 7. 27. 02:25
공유하기 |
비디오 출력 장치에 대해서 알아 봅시다.
팟플레이어는 비디오 출력을 어떤 장치로 할지 정할 수 있습니다.
윈도우 상에서 지원하는 대부분의 비디오 출력 장치를 지원합니다.
비디오 출력 장치에 따라서 출력되는 이미지의 특성이 다르므로 이에 관해서는 잘 이해를 해야 됩니다.
환경 설정을 선택 후 영상 페이지에 가면 아래와 같이 비디오 출력 장치를 선택 할 수 있습니다.
팟플레이어에서는 비디오 출력장치가 자동 선택, 오버레이 믹서, 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를 사용하면서 이미지 자막을 출력 할 수 없고, 영상을 캡쳐 할 수도 없습니다.
또한 영상의 밝기나 조절도 할 수 없으며, 파일 방송도 할 수도 없습니다.
그러므로 이러한 특성을 잘 이해를 하야 됩니다.
'잡담' 카테고리의 다른 글
나는 꼼수다 (0) | 2011.10.27 |
---|---|
dBpoweramp Music Converter R14.2 Portable (0) | 2011.10.05 |
반야심경 (1) | 2010.11.07 |
백련 꽃차 (0) | 2010.10.30 |
2010년 단풍 예상시기 (0) | 2010.10.27 |
|
|