DXVA 2.0 정보

DXVA(DirectX Video Acceleration)는 하드웨어 가속을 사용하여 비디오 처리 속도를 높이기 위한 API 및 해당 DDI입니다. 소프트웨어 코덱 및 소프트웨어 비디오 프로세서에서는 DXVA를 사용하여 특정 CPU 집약적 작업을 GPU로 오프로드할 수 있습니다. 예를 들어 소프트웨어 디코더는 역 이산 코사인 변환(iDCT)을 GPU로 오프로드할 수 있습니다.

DXVA에서 일부 디코딩 작업은 그래픽 하드웨어 드라이버에 의해 실행됩니다. 이 기능 집합을 가속기라고 말합니다. 다른 디코딩 작업은 호스트 디코더 혹은 소프트웨어 디코더라고 하는 사용자 모드 애플리케이션 소프트웨어에 의해 실행됩니다. (호스트 디코더소프트웨어 디코더라는 용어는 동일합니다.) 가속기에서 실행되는 처리를 오프 호스트 처리라고 부릅니다. 일반적으로 가속기는 GPU를 사용하여 일부 작업의 속도를 높입니다. 가속기가 디코딩 작업을 실행할 때마다 호스트 디코더는 작업을 실행하기 위해 필요한 정보를 포함하는 가속기 버퍼에 전달해야 합니다

DXVA 2 API는 Windows Vista 이상이 필요합니다. 이전 버전과의 호환성을 위해 Windows Vista에서 DXVA 1 API가 계속해서 지원됩니다. API 버전과 DDI의 반대 버전 사이에서 변환하는 에뮬레이션 계층이 제공됩니다:

  • 그래픽 드라이버가 WDDM(Windows 디스플레이 드라이버 모델)을 준수하는 경우 DXVA 1 API 호출은 DXVA 2 DDI 호출로 변환됩니다.
  • 그래픽 드라이버가 이전의 XPDM(Windows XP 디스플레이 드라이버 모델)을 사용하는 경우 DXVA 2 API 호출은 DXVA 1 DDI 호출로 변환됩니다.

다음 표에서는 DXVA API의 각 버전에 관해 운영 체제 요구 사항 및 지원되는 비디오 렌더러를 표시됩니다.

API 버전 요구 사항 비디오 렌더링 지원
DXVA 1 Windows 2000 이상 오버레이 믹서, VMR-7, VMR-9(DirectShow에만 해당)
DXVA 2 Windows Vista EVR(DirectShow 및 Media Foundation)

 

DXVA 1에서 소프트웨어 디코더는 비디오 렌더러를 통해 API에 액세스해야 합니다. 비디오 렌더러를 호출하지 않고 DXVA 1 API를 사용할 수 있는 방법은 없습니다. 이러한 제한 사항은 DXVA 2에서 제거되었습니다. DXVA 2를 사용하면 호스트 디코더(혹은 모든 애플리케이션)가 IDirectXVideoDecoderService 인터페이스를 통해 API에 직접 액세스할 수 있습니다.

DXVA 1 설명서에서는 다음 비디오 표준에 사용되는 디코딩 구조를 설명합니다:

  • ITU-T Rec. H.261
  • ITU-T Rec. H.263
  • MPEG-1 비디오
  • MPEG-2 기본 프로필 비디오

다음 사양은 다른 비디오 표준에 관한 DXVA 확장을 정의합니다:

DXVA 1 및 DXVA 2는 디코딩을 위한 동일한 데이터 구조를 사용합니다. 그러나 디코딩 세션을 구성하는 절차가 변경되었습니다. DXVA 1은 호스트 디코더가 가속기에서 원하는 구성을 설정하기 이전에 여러 가지의 구성을 시험할 수 있는 "프로브 및 잠금" 메커니즘을 사용합니다. DXVA 2에서 가속기는 지원되는 구성 목록을 반환하며 호스트 디코더는 목록에서 하나를 선택합니다. 세부 정보는 다음 섹션에서 제공됩니다:

DirectX 비디오 가속 2.0

DXVA 1.0 사양