DirectX 비디오 액셀러레이션

DirectX Video Acceleration

DirectX 비디오 액셀러레이션(DXVA)은 Microsoft Windows Xbox 360 플랫폼용 Microsoft API 사양으로 비디오 디코딩을 하드웨어 가속화할 수 있습니다.파이프라인을 사용하면 iDCT, 모션 보정, 인터레이스 해제 등 CPU 부하가 높은 특정 작업을 GPU에 오프로드할 수 있습니다.DXVA 2.0을 사용하면 비디오 캡처 및 처리 작업 등 더 많은 작업을 하드웨어로 고속화할 수 있습니다.

DXVA는 비디오 카드로 사용되는 비디오 렌더링 모델과 연동하여 동작합니다.DXVA 1.0은 Windows 2000에서 표준화된 API로 도입되어 현재 Windows 98 이후에 사용할 수 있으며 오버레이 렌더링 모드 또는 VMR 7/9 [1]중 하나를 사용할 수 있습니다.DXVA 2.0은 Windows Vista, Windows 7, Windows 8 이후의 OS에서만 사용할 수 있으며 Media Foundation(MF)과 통합되어 MF에 [1]있는 확장 비디오 렌더러(EVR)를 사용합니다.

개요

DXVA는 코덱의 하드웨어 가속 디코딩 및 렌더링을 위한 코덱 고유의 파이프라인을 정의하기 위해 소프트웨어 비디오 디코더에 의해 사용됩니다.파이프라인은 미디어 스트림을 해석하고 DXVA 호환 구조로 변환하는 데 사용되는 CPU에서 시작합니다.DXVA는 하드웨어 액셀러레이션이 가능한 일련의 조작과 그래픽 드라이버가 작업을 고속화하기 위해 구현할 수 있는 Device Driver Interface(DDI; 디바이스 드라이버 인터페이스)를 지정합니다.코덱이 정의된 동작 중 하나를 수행해야 하는 경우 코덱은 이러한 인터페이스를 사용하여 이러한 동작의 하드웨어 가속 구현에 액세스할 수 있습니다.그래픽 드라이버가 1개 또는 복수의 인터페이스를 실장하고 있지 않은 경우는, 그 인터페이스에 대한 소프트웨어의 폴백을 제공하는 것은 코덱에 의존합니다.디코딩된 비디오는 하드웨어 비디오렌더러로 넘겨지며, 디바이스로 렌더링되기 전에 비디오의 후처리가 더 적용될 수 있습니다.생성된 파이프라인은 DirectShow 호환 응용 프로그램에서 사용할 수 있습니다.

DXVA는 iDCT 연산,[2][3] Huffman 코딩, 모션 보정, 알파 블렌딩, 역양자화, 색공간 변환 및 프레임레이트 변환 연산 등의 인터페이스를 지정하는 모션 보정 DDI를 지정합니다.또, 다음의 3개의 서브 사양이 있습니다.DDI, COPP DDI 및 ProcAmp DDI [4]인터레이스 해제디인터레이싱 DDI는 디인터레이싱 동작의 콜백을 지정합니다.COPP(Certified Output Protection Protocol) DDI 기능을 사용하면 암호화 기능을 지정하여 파이프라인을 DRM으로 보호된 미디어에 대해 보호할 수 있습니다.ProcAmp DDI 는, 후처리 비디오를 고속화하기 위해서 사용됩니다.ProcAmp 드라이버 모듈은 하드웨어 비디오 렌더러와 디스플레이 드라이버 사이에 있으며 압축 해제된 비디오에 후처리 필터를 적용하는 기능을 제공합니다.

DXVA DDI에 의해 공개되는 함수는 DirectShow 클라이언트에서 직접 액세스할 수 없지만 비디오렌더러에 콜백 함수로 제공됩니다.따라서 렌더는 파이프라인 정착에 매우 중요한 역할을 합니다.

Windows Vista 이후의 DXVA

DXVA 2.0은 비디오 파이프라인의 구현을 강화하고 비디오 캡처용 캡처 DDI를 포함한 다수의 다른 DDI를 추가합니다.DXVA 1.0과 공유되는 DDI도 하드웨어 액셀러레이션을 사용하여 더 많은 작업을 수행할 수 있도록 향상되었습니다.또, DDI 기능은 발신자가 직접 사용할 수 있기 때문에, 비디오 [5]렌더러에 의해서 중개될 필요는 없습니다.이와 같이, 프로그램은 미디어를 간단하게 디코딩(렌더링 없이)하거나 후처리 및 렌더링(디코딩 없이)하기 위한 파이프라인을 작성할 수도 있다.이러한 기능을 이용하려면 , DXVA 2.0 를 Windows Vista, Windows Server 2008,[1][5] Windows 7, Windows Server 2008 R2, 및 Windows 8 로 한정하는 Windows 디스플레이 드라이버 모델 드라이버가 필요합니다.Windows XP 및 Windows 2000 에서는, 프로그램이 DXVA 1.0 을 사용할 수 있습니다.DXVA 2.0 에서는, Vista, Windows 7, 및 Windows 8 [1]에서만 비디오 렌더러로서 확장 비디오 렌더러를 사용할 수 있습니다(Windows XP 에서는, VMR9 와 기존의 오버레이 믹서를 사용해 DXVA 렌더링이 가능합니다).DXVA는 Media Foundation과 통합되어 DXVA 파이프라인을 MFT(Media Foundation Transforms)로 공개할 수 있습니다.디코더 파이프라인이나 후처리 파이프라인도 MFT로 노출될 수 있습니다.Media Foundation 토폴로지 로더는 이를 사용하여 완전한 미디어 재생 파이프라인을 작성할 수 있습니다.DXVA 1.0은 DXVA 2.[1]0을 사용하여 에뮬레이트됩니다.DXVA 2.0은 COPP DDI를 포함하지 않고 보호된 콘텐츠에 PVP를 사용합니다.Windows 7 에서는, 드라이버가 WDM 1.1 에 준거하고 있는 경우, DXVA-HD[6] 를 실장하고 있습니다.

DXVA2 구현: 네이티브 및 카피백

DXVA2 실장에는 네이티브와 카피백의 2종류가 있습니다.

네이티브 실장에서는 디코딩된 비디오는 표시될 때까지 GPU 메모리에 남습니다.비디오 디코더는 중간 처리 필터를 사용하지 않고 비디오 렌더러에 연결해야 합니다.비디오 렌더러도 DXVA를 지원해야 합니다.DXVA는 렌더러 선택의 자유를 줄 수 있습니다.

카피백 실장에서는, 디코딩 된 비디오가 GPU 메모리에서 CPU 메모리로 카피됩니다.이 실장에서는, 상기의 제한은 없고, 통상의 소프트웨어 디코더와 같이 동작합니다.단, GPU가 메모리를 CPU의 메모리에 카피할 수 있을 만큼 고속이 되지 않으면, 비디오가 끊어집니다.

네이티브 모드는 커스터마이즈된 처리를 필요로 하지 않는 한 유리합니다.추가적인 카피백 조작에 의해 GPU [7]메모리 부하가 증가하기 때문입니다.

소프트웨어

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c d e "DirectX Video Acceleration 2.0". Retrieved 2007-10-24.
  2. ^ "Introduction to DirectX VA". Archived from the original on 2008-04-23. Retrieved 2007-10-24.
  3. ^ "Microsoft DirectX Video Acceleration (DirectX VA) support". Retrieved 2007-10-24.
  4. ^ "DirectX Video Acceleration". Archived from the original on 2008-04-08. Retrieved 2007-10-24.
  5. ^ a b "What's New in DirectShow". Retrieved 2007-10-24.
  6. ^ "DXVA-HD (Windows)". msdn.microsoft.com. Retrieved 21 April 2018.
  7. ^ S, Ganesh T. "ASRock's High-End Vision 3D 252B HTPC Review". anandtech.com. Retrieved 21 April 2018.
  8. ^ "Archived copy". Archived from the original on 2011-07-04. Retrieved 2011-04-09.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  9. ^ "Daum tv팟". tvpot.daum.net. Archived from the original on 22 May 2017. Retrieved 21 April 2018.
  10. ^ "VLC GPU Decoding - VideoLAN Wiki". wiki.videolan.org. Retrieved 21 April 2018.

외부 링크