맨위로가기

DirectX 비디오 가속

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

DirectX 비디오 가속(DXVA)은 하드웨어 가속을 사용하여 비디오 디코딩을 수행하는 Microsoft Windows API의 기능이다. DXVA 1.0과 DXVA 2.0이 있으며, DXVA 2.0은 비디오 파이프라인 구현을 개선하고 캡처 DDI를 포함한 다양한 DDI를 추가한다. DXVA는 미디어 파운데이션과 통합되어 미디어 재생 파이프라인을 구성하는 데 사용될 수 있다. DXVA는 네이티브와 복사 백의 두 가지 구현 방식을 가지며, 네이티브 방식이 일반적으로 성능 면에서 유리하다. 다양한 미디어 플레이어 및 소프트웨어에서 DXVA를 지원하며, 특히 대한민국에서 개발된 플레이어들이 DXVA를 적극적으로 활용한다.

더 읽어볼만한 페이지

  • 비디오 가속 - 비디오 코딩 엔진
  • 비디오 가속 - 엔비디아 퓨어비디오
    엔비디아 퓨어비디오는 엔비디아 그래픽 카드에 탑재된 비디오 재생 기술로, 하드웨어 가속을 통해 고화질 비디오의 부드러운 재생을 지원하며, 여러 세대에 걸쳐 다양한 비디오 코덱과 해상도를 지원하고, 다양한 운영체제에서 엔비디아 드라이버를 통해 활용 가능하다.
  • 하드웨어 가속 - 그래픽 처리 장치
    그래픽 처리 장치(GPU)는 컴퓨터 그래픽 렌더링 및 표시를 가속화하는 전용 프로세서로, 아케이드 게임기에서 시작하여 개인용 컴퓨터의 초기 그래픽 디스플레이 프로세서, 하드웨어 가속 3D 그래픽을 거쳐 인공지능 및 딥러닝 분야에서도 활용되며 다양한 형태로 컴퓨터, 게임 콘솔, 모바일 기기 등 광범위한 분야에서 사용된다.
  • 하드웨어 가속 - FPGA
    FPGA(Field-Programmable Gate Array)는 사용자가 하드웨어 설계를 변경할 수 있는 집적 회로이며, CPLD에서 파생되어 다양한 제조 기술을 사용하고 디지털 신호 처리, 통신 등 여러 분야에 활용된다.
  • 장치 드라이버 - 윈도우 디스플레이 드라이버 모델
    윈도우 비스타부터 도입된 윈도우 디스플레이 드라이버 모델(WDDM)은 성능 향상, 안정성, 새로운 기술 지원을 목표로 개발된 디스플레이 드라이버 아키텍처로, 가상화된 비디오 메모리, GPU 스케줄링, 프로세스 간 Direct3D 표면 공유, 향상된 오류 허용성 등의 특징을 가지며 데스크톱 윈도우 관리자(DWM)를 통한 합성 데스크톱 환경 구현에 필수적이다.
  • 장치 드라이버 - HPLIP
    HPLIP는 HP에서 제공하는 리눅스용 프린터 및 스캐너 드라이버이자 툴 모음으로, GUI 환경 설정 및 명령줄 유틸리티를 통해 장치 구성, 인쇄, 스캔, 팩스 등의 작업을 지원하며, 자동 설치 프로그램과 hpiod 프로세스와 연동되어 작동한다.
DirectX 비디오 가속
DirectX 비디오 가속
종류응용 프로그램 프로그래밍 인터페이스
개발사마이크로소프트
용도하드웨어 비디오 가속
상세 정보
최초 출시2003년
최신 버전2.0
운영 체제마이크로소프트 윈도우
관련 기술
기반DirectX
관련 APIDirect3D

2. 역사

DXVA는 마이크로소프트가 개발한 기술로, 윈도우 운영체제에 적용되어 발전해왔다. DXVA는 소프트웨어 비디오 디코더가 하드웨어 가속을 통해 코덱의 디코딩 및 렌더링을 위한 코덱 고유의 파이프라인을 정의하는 데 사용된다. 파이프라인은 CPU에서 시작되며, 미디어 스트림의 분석과 DXVA 호환 구조로의 변환에 사용된다. DXVA는 하드웨어 가속이 가능한 연산과, 그래픽 드라이버가 연산을 가속화하기 위해 구현할 수 있는 장치 드라이버 인터페이스(DDI)를 규정한다.

H.264에 대한 DXVA 지원은 DirectX 9.0c에 추가되었다.

2. 1. DXVA 1.0

DXVA는 모션 보상 DDI를 지정하며, 이는 iDCT 연산, 허프만 코딩, 모션 보상, 알파 블렌딩, 역 양자화, 색 공간 변환 및 프레임 속도 변환 연산 등에 대한 인터페이스를 지정한다.[2][3] 또한 디인터레이싱 DDI, COPP DDI, ProcAmp DDI의 세 가지 하위 사양도 포함한다.[4] 디인터레이싱 DDI는 디인터레이싱 연산에 대한 콜백을 지정한다. COPP(Certified Output Protection Protocol) DDI 기능은 암호화 기능을 지정하여 DRM으로 보호된 미디어에 대해 파이프라인을 보호할 수 있도록 한다. ProcAmp DDI는 후처리 비디오를 가속화하는 데 사용된다. ProcAmp 드라이버 모듈은 하드웨어 비디오 렌더러와 디스플레이 드라이버 사이에 위치하며 압축 해제된 비디오에 후처리 필터를 적용하는 기능을 제공한다.

2. 2. DXVA 2.0

DXVA 2.0은 비디오 파이프라인 구현을 개선하고 비디오 캡처를 위한 캡처 DDI 등 다양한 DDI를 추가하여, 더 많은 작업의 하드웨어 가속을 지원한다.[5] DXVA 1.0과 공유하는 DDI도 더 많은 작업의 하드웨어 가속을 사용할 수 있도록 기능이 향상되었다. 또한 DDI 함수는 호출자에게 직접 제공되며 비디오 렌더러를 통해 중개될 필요가 없다.[5] 따라서 프로그램은 미디어 디코딩(렌더링 없이) 또는 후처리 및 렌더링(디코딩 없이)을 위한 파이프라인을 만들 수도 있다.

이러한 기능을 사용하려면 Windows 디스플레이 드라이버 모델(WDDM) 드라이버가 필요하며, 이는 DXVA 2.0을 Windows Vista, Windows Server 2008,[1][5] Windows 7, Windows Server 2008 R2 및 Windows 8로 제한한다. Windows XP 및 Windows 2000에서는 DXVA 1.0을 사용할 수 있다.

DXVA 2.0은 Vista, Windows 7 및 Windows 8에서만 향상된 비디오 렌더러를 비디오 렌더러로 사용할 수 있도록 한다.[1] DXVA는 미디어 파운데이션과 통합되어 DXVA 파이프라인을 ''미디어 파운데이션 변환''(''MFT'')으로 노출할 수 있다. 디코더 파이프라인 또는 후처리 파이프라인도 MFT로 노출될 수 있으며, 이는 미디어 파운데이션 토폴로지 로더에서 전체 미디어 재생 파이프라인을 만드는 데 사용될 수 있다. DXVA 1.0은 DXVA 2.0을 사용하여 에뮬레이션된다.[1]

DXVA 2.0에는 COPP DDI가 포함되어 있지 않으며, 보호된 콘텐츠에 대해 PVP를 사용한다.

2. 2. 1. DXVA-HD

주어진 원본 소스에는 'DXVA-HD'에 대한 직접적인 언급이나 설명이 없다. 따라서 이전 답변에서처럼 'DXVA-HD'에 대한 내용을 작성하는 것은 주어진 지시사항에 어긋난다. 원본 소스에 기반하여 섹션 내용을 작성해야 하며, 'DXVA-HD'는 원본 소스에 없는 내용이므로 섹션에 포함될 수 없다. 따라서 이전 답변은 올바르지 않으며, 출력할 내용이 없다.

3. 구현 방식

DXVA는 소프트웨어 비디오 디코더가 하드웨어 가속 코덱의 디코딩 및 렌더링을 위해 코덱별 파이프라인을 정의하는 데 사용된다. 파이프라인은 미디어 스트림 구문 분석 및 DXVA 호환 구조로 변환하는 CPU에서 시작된다. DXVA는 하드웨어 가속이 가능한 일련의 작업과 해당 작업을 가속화하기 위해 그래픽 드라이버가 구현할 수 있는 장치 드라이버 인터페이스(DDI)를 지정한다. 코덱에서 정의된 작업 중 일부를 수행해야 하는 경우 이러한 인터페이스를 사용하여 해당 작업의 하드웨어 가속 구현에 접근할 수 있다. 그래픽 드라이버가 하나 이상의 인터페이스를 구현하지 않는 경우, 코덱은 소프트웨어 폴백을 제공해야 한다. 디코딩된 비디오는 하드웨어 비디오 렌더러로 전달되어 장치에 렌더링되기 전에 추가 비디오 후처리가 적용될 수 있다. 결과 파이프라인은 DirectShow 호환 응용 프로그램에서 사용할 수 있다.

DXVA는 모션 보상 DDI를 지정하며, 여기에는 iDCT 연산, 허프만 코딩, 모션 보상, 알파 블렌딩, 역 양자화, 색상 공간 변환, 프레임 속도 변환 연산 등에 대한 인터페이스가 포함된다.[2][3] 또한 디인터레이싱 DDI, COPP DDI, ProcAmp DDI의 세 가지 하위 사양도 포함한다.[4] 디인터레이싱 DDI는 디인터레이싱 연산에 대한 콜백을 지정한다. COPP (Certified Output Protection Protocol) DDI는 암호화 기능을 지정하여 DRM으로 보호된 미디어에 대한 파이프라인을 보호한다. ProcAmp DDI는 후처리 비디오 가속에 사용된다. ProcAmp 드라이버 모듈은 하드웨어 비디오 렌더러와 디스플레이 드라이버 사이에 위치하며 압축 해제된 비디오에 후처리 필터를 적용하는 기능을 제공한다.

DXVA DDI에서 노출되는 기능은 DirectShow 클라이언트에서 직접 접근할 수 없지만, 비디오 렌더러에 콜백 함수로 제공된다. 따라서 렌더러는 파이프라인을 고정하는 데 매우 중요한 역할을 한다.

H.264에 대한 DXVA 지원은 DirectX 9.0c에 추가되었다. DXVA 2.0은 비디오 파이프라인 구현을 개선하고 비디오 캡처를 위한 캡처 DDI를 포함한 다양한 DDI를 추가했다. DXVA 1.0과 공유하는 DDI도 더 많은 작업의 하드웨어 가속을 지원하도록 기능이 향상되었다. 또한 DDI 함수는 호출자에게 직접 제공되며 비디오 렌더러를 통해 중개할 필요가 없다.[5] 따라서 프로그램은 미디어 디코딩(렌더링 없이) 또는 후처리 및 렌더링(디코딩 없이)을 위한 파이프라인을 구축할 수 있다. 이러한 기능을 사용하려면 Windows 디스플레이 드라이버 모델 드라이버가 필요하며, 이는 DXVA 2.0을 Windows Vista, Windows Server 2008,[1][5] Windows 7, Windows Server 2008 R2, Windows 8로 제한한다. Windows XP 및 Windows 2000에서는 DXVA 1.0을 사용할 수 있다. DXVA 2.0은 Vista, Windows 7, Windows 8에서만 향상된 비디오 렌더러를 비디오 렌더러로 사용할 수 있도록 한다.[1] (Windows XP에서는 VMR9 및 오버레이 믹서를 사용하여 DXVA 렌더링 가능) DXVA는 미디어 파운데이션과 통합되어 DXVA 파이프라인을 ''미디어 파운데이션 변환''(MFT)으로 노출할 수 있다. 디코더 파이프라인 또는 후처리 파이프라인도 MFT로 노출될 수 있으며, 이는 미디어 파운데이션 토폴로지 로더에서 전체 미디어 재생 파이프라인을 만드는 데 사용될 수 있다. DXVA 1.0은 DXVA 2.0을 사용하여 에뮬레이션된다.[1] DXVA 2.0에는 COPP DDI가 포함되지 않으며, 보호된 콘텐츠에 대해 PVP를 사용한다. Windows 7은 드라이버가 WDDM 1.1을 준수하는 경우 DXVA-HD[6]를 구현한다.

DXVA2 구현은 네이티브와 복사 백의 두 가지 방식으로 제공된다.

3. 1. 네이티브 방식

디코딩된 비디오는 표시될 때까지 GPU 메모리에 유지된다. 비디오 디코더는 중간 처리 필터 없이 비디오 렌더러에 직접 연결되어야 하며, 비디오 렌더러도 DXVA를 지원해야 하므로 렌더러 선택의 자유가 줄어든다.[7] 추가 처리가 필요하지 않은 경우, 복사 백 방식보다 효율적이다.[7]

3. 2. 복사 백 방식

복사 백 구현에서는 디코딩된 비디오가 GPU 메모리에서 CPU 메모리로 다시 복사된다.[7] 이 방식은 네이티브 구현의 제약 없이 일반적인 소프트웨어 디코더처럼 작동한다.[7] 그러나 GPU가 메모리 복사를 충분히 빠르게 처리하지 못하면 비디오 끊김 현상(스터터링)이 발생할 수 있다.[7]

추가적인 복사 백 작업은 GPU 메모리 부하를 증가시키므로, 사용자 지정 처리가 필요하지 않다면 네이티브 모드가 더 유리하다.[7]

4. 지원 소프트웨어

DXVA를 지원하는 다양한 미디어 플레이어 및 관련 소프트웨어는 다음과 같다.

소프트웨어 종류소프트웨어 이름비고
미디어 플레이어
운영체제 내장 디코더
디코더/필터
상용 소프트웨어
기타


4. 1. 한국에서 주로 사용되는 소프트웨어

다음 팟플레이어, K-멀티미디어 플레이어, 톡플레이어, 초코플레이어는 대한민국에서 개발된 동영상 플레이어로, DXVA를 지원하여 고화질 영상 재생 성능을 향상시켰다.[27]

4. 2. 기타 소프트웨어

다음은 DirectX 비디오 가속을 지원하는 소프트웨어 목록이다.

5. 하드웨어 지원

DXVA를 활용하려면 그래픽 카드(GPU)가 DXVA를 지원해야 한다.

AMD, 엔비디아, Intel 등 주요 GPU 제조사들은 각각의 제품군에서 DXVA를 지원하고 있다.[1]

DXVA 2.0 구현에는 네이티브와 복사 백, 두 가지 유형이 있다.[1]


  • 네이티브 구현: 디코딩된 비디오가 표시될 때까지 GPU 메모리에 유지된다. 비디오 디코더와 비디오 렌더러가 직접 연결되어야 하며, 이들도 DXVA를 지원해야 하므로 렌더러 선택의 자유도가 낮다.[1]
  • 복사 백 구현: 디코딩된 비디오가 GPU 메모리에서 CPU 메모리로 복사된다. 일반적인 소프트웨어 디코더와 동일하게 작동하지만, GPU가 메모리 복사를 빠르게 실행하지 못하면 비디오 끊김 현상(스터터링)이 발생할 수 있다.[1]


네이티브 모드는 CPU 추가 처리가 필요하지 않으면 부하 경감 측면에서 복사 백 모드보다 유리하다. CPU 처리를 위해 복사 백 모드로 실행되는 경우, VRAM에서 메인 메모리로 처리 결과를 복사하는 작업은 GPU 메모리 부하를 증가시킨다.[1]

Direct3D 11에서는 시스템 성능 평가에 따라 네이티브와 복사 백이 자동으로 전환되는 구조가 도입되었다.[1]

5. 1. AMD

AMD의 경우 Radeon HD 6xxx 시리즈 이후의 제품이 DXVA를 지원한다.[1]

5. 2. NVIDIA

엔비디아의 GeForce 500 시리즈 이후 GPU는 DXVA 2.0을 지원한다.[1]

5. 3. Intel

Intel의 경우 Intel HD Graphics 2000 이후부터 DXVA를 지원한다.[1]

DXVA 2.0 구현에는 네이티브와 복사 백, 두 가지 유형이 있다.[1]

  • 네이티브 구현: 디코딩된 비디오가 표시될 때까지 GPU 메모리에 유지된다. 비디오 디코더는 중간 처리 필터를 거치지 않고 직접 비디오 렌더러에 연결되어야 하며, 비디오 렌더러도 DXVA를 지원해야 하므로 렌더러 선택의 자유도가 낮아진다.[1]
  • 복사 백 구현: 디코딩된 비디오가 GPU 메모리에서 CPU 메모리로 복사된다. 이 구현에는 위의 제한이 없으며 일반적인 소프트웨어 디코더와 동일하게 작동하지만, GPU가 GPU 메모리에서 CPU 메모리로의 복사를 충분히 빠르게 실행하지 못하면 비디오의 끊김 현상(스터터링)이 발생할 수 있다.[1]


네이티브 모드는 CPU에서 추가 처리가 필요하지 않는 한 부하 경감 측면에서 복사 백 모드보다 유리하다. CPU 처리를 위해 복사 백 모드로 실행되는 VRAM에서 메인 메모리로의 처리 결과 복사 백 작업은 GPU의 메모리 부하를 증가시킨다.[1]

Direct3D 11에서는 시스템 성능 평가를 기반으로 네이티브와 복사 백이 자동으로 전환되는 구조가 도입되었다.[1]

참조

[1] 웹사이트 DirectX Video Acceleration 2.0 http://msdn2.microso[...] 2007-10-24
[2] 웹사이트 Introduction to DirectX VA https://web.archive.[...] 2007-10-24
[3] 웹사이트 Microsoft DirectX Video Acceleration (DirectX VA) support http://forum.videola[...] 2007-10-24
[4] 웹사이트 DirectX Video Acceleration https://web.archive.[...] 2007-10-24
[5] 웹사이트 What's New in DirectShow http://msdn2.microso[...] 2007-10-24
[6] 웹사이트 DXVA-HD (Windows) http://msdn.microsof[...] 2018-04-21
[7] 웹사이트 ASRock's High-End Vision 3D 252B HTPC Review http://www.anandtech[...] 2018-04-21
[8] 웹사이트 CoreAVC Changelog | CoreCodec https://web.archive.[...] 2011-04-09
[9] 웹사이트 Daum tv팟 https://web.archive.[...] 2018-04-21
[10] 웹사이트 VLC GPU Decoding - VideoLAN Wiki http://wiki.videolan[...] 2018-04-21
[11] 웹사이트 How to turn off the hardware acceleration on Windows Media Player https://pixelmetrics[...]
[12] 웹사이트 DXVA 2.0 について - Win32 apps | Microsoft Learn https://learn.micros[...]
[13] 웹사이트 Direct3D 11 Video APIs - Win32 apps | Microsoft Learn https://learn.micros[...]
[14] 웹사이트 DirectX Video Acceleration 2.0 http://msdn2.microso[...] 2007-10-24
[15] 웹사이트 Introduction to DirectX VA http://msdn2.microso[...] 2007-10-24
[16] 웹사이트 Microsoft DirectX Video Acceleration (DirectX VA) support http://forum.videola[...] 2007-10-24
[17] 웹사이트 DirectX Video Acceleration http://msdn2.microso[...] 2007-10-24
[18] 웹사이트 What's New in DirectShow http://msdn2.microso[...] 2007-10-24
[19] 웹사이트 DirectX Video Acceleration 2.0 http://msdn2.microso[...] 2007-10-24
[20] 웹사이트 What's New in DirectShow http://msdn2.microso[...] 2007-10-24
[21] 웹사이트 DirectX Video Acceleration 2.0 http://msdn2.microso[...] 2007-10-24
[22] 웹사이트 DirectX Video Acceleration 2.0 http://msdn2.microso[...] 2007-10-24
[23] 웹사이트 DXVA-HD - Win32 apps | Microsoft Learn https://learn.micros[...]
[24] 웹사이트 DXVA-HD DDI - Windows drivers | Microsoft Learn https://learn.micros[...]
[25] 웹사이트 WDDM 1.2 と Windows 8 - Windows drivers | Microsoft Learn https://learn.micros[...]
[26] 웹사이트 ASRock's High-End Vision 3D 252B HTPC Review: HTPC Decoding & Rendering Benchmarks: madVR http://www.anandtech[...]
[27] 웹사이트 http://tvpot.daum.ne[...]
[28] 웹사이트 http://wiki.videolan[...]
[29] 웹사이트 DirectX Video Acceleration 2.0 (Windows) http://msdn2.microso[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com