통합 비디오 디코더
1. 개요
통합 비디오 디코더(UVD)는 AMD의 GPU 및 APU에 내장된 비디오 디코딩 기술이다. UVD는 다양한 버전으로 발전하며, 각 버전마다 지원하는 코덱, 해상도, 색 심도, 프레임 보간 기능 등이 다르다. UVD는 MPEG-1, MPEG-2, H.264, VC-1, H.265, VP9, AV1 등 다양한 비디오 코덱을 지원하며, 윈도우 및 리눅스 운영체제에서 사용 가능하다. UVD는 비디오 코어 넥스트(VCN)로 계승되었다.
-
AMD IP 코어 -
AMD 트루오디오
제공된 본문이 비어 있어 요약을 생성할 수 없습니다. -
AMD IP 코어 -
비디오 코딩 엔진
-
비디오 가속 -
비디오 코딩 엔진
-
비디오 가속 -
DirectX 비디오 가속
DirectX 비디오 가속(DXVA)은 마이크로소프트 DirectX의 API로, 소프트웨어 비디오 디코더가 하드웨어 가속 코덱을 활용해 비디오 처리 작업을 가속화하여 CPU 부담을 줄이고 비디오 재생 성능을 향상시키며, DDI를 통해 하드웨어 장치에 비디오 처리 작업을 위임하여 특정 연산을 가속화한다. -
ATI 테크놀로지스 -
하이퍼메모리
-
ATI 테크놀로지스 -
AMD 크로스파이어X
AMD 크로스파이어X는 AMD의 멀티 GPU 기술로, 여러 개의 그래픽 카드를 함께 사용하여 그래픽 성능을 향상시키며, 엔비디아의 SLI와 경쟁하고 다양한 렌더링 방식을 지원하지만, 전체 화면 모드에서만 작동하는 단점도 존재한다.
2. 지원하는 GPU
UVD(Unified Video Decoder)는 ATI의 Xilleon 비디오 프로세서를 기반으로 하며, GPU와 동일한 다이에 통합되어 있는 하드웨어 비디오 디코딩 기술이다. AMD에 따르면 UVD는 H.264/AVC 및 VC-1 비디오 코덱의 디코딩을 하드웨어적으로 완전히 처리한다.
UVD는 주로 라데온 HD 시리즈 그래픽 카드 및 APU(Accelerated Processing Unit)에 탑재된다. 대부분의 라데온 HD 2000 시리즈 비디오 카드는 1080p 고화질 콘텐츠의 하드웨어 디코딩을 위해 UVD를 구현했지만, 라데온 HD 2900 시리즈는 UVD를 포함하지 않았다. UVD2는 라데온 RV7x0 및 R7x0 시리즈 GPU와 AMD 700 칩셋 시리즈 IGP 마더보드에 사용되는 RS7x0 시리즈에 구현되었다.
2.1. 지원 GPU 목록
| 코드명 | 제품명 | UVD 버전 |
|---|---|---|
| Tahiti | Radeon HD 7900 시리즈 | UVD 3 |
| Pitcairn | Radeon HD 7800 시리즈 | UVD 3 |
| Cape Verde | Radeon HD 7700 시리즈 | UVD 3 |
| Cayman | Radeon HD 6900 시리즈 | UVD 3 |
| Barts | Radeon HD 6800 시리즈 Radeon HD 6790 | UVD 3 |
| Turks | Radeon HD 6500/6600 시리즈 | UVD 3 |
| Caicos | Radeоn HD 6400 시리즈 | UVD 3 |
| - | Radeon HD 6000AiO 시리즈 | UVD 3 |
| BeaverCreek | APU Radeon HD 6500D 시리즈 | UVD 3 |
| WinterPark, Sumo2 | APU Radeon HD 6400D 시리즈 | UVD 3 |
| Wrestler | APU Radeon HD 6320/6250 | UVD 3 |
| Sumo | APU Radeon HD 6310 | UVD 3 |
| Hemlock | Radeon HD 5900 시리즈 | UVD 2.2 |
| Cypress | Radeon HD 5800 시리즈 | UVD 2.2 |
| Juniper | Radeon HD 5700/6700 시리즈 (HD 6790제외) | UVD 2.2 |
| Redwood | Radeon HD 5500/5600 시리즈 | UVD 2.2 |
| Cedar | Radeon HD 5400 시리즈 | UVD 2.2 |
| RV790 | Radeon HD 4890 시리즈 | UVD 2 |
| R700 | Radeon HD 4800 X2 시리즈 | UVD 2 |
| RV770 | Radeon HD 4800 시리즈 | UVD 2 |
| RV740 | Radeon HD 4700 시리즈 | UVD 2.2 |
| RV730 | Radeon HD 4600 시리즈 | UVD 2.2 |
| RV710 | Radeon HD 4300/4500 시리즈 | UVD 2.2 |
| RV670 | Radeon HD 3800 시리즈 | UVD+ |
| RV635 | Radeon HD 3600 시리즈 | UVD+ |
| RV620 | Radeon HD 3400 시리즈 | UVD+ |
| RV630 | Radeon HD 2600 시리즈 | UVD |
| RV610 | Radeon HD 2400 시리즈 | UVD |
| RS880 | Radeon HD 4200 시리즈/AMD 785G/880G/890GX 칩셋 | UVD 2 |
| RS780 | Radeon HD 3300 IGP/AMD 790GX 칩셋 | UVD |
| RS780D | Radeon HD 3200/AMD 780G 칩셋 | UVD |
| Blackcomb | Radeon HD 6900M 시리즈 | UVD 3 |
| Granville | Radeon HD 6800M 시리즈 | UVD 2.2 |
| Whistler | Radeon HD 6700M/6600M 시리즈 | UVD 3 |
| Capilano | Radeon HD 6500M 시리즈 | UVD 2.2 |
| Seymour | Radeon HD 6400M 시리즈 | UVD 3 |
| Robson | Radeon HD 6300M 시리즈 | UVD 2.2 |
| BeaverCreek | APU Radeon HD 6600G/6500G/6400G 시리즈 | UVD 3 |
| Broadway | Mobility Radeon HD 5800 시리즈 | UVD 2.2 |
| Madison | Mobility Radeon HD 5700/5600 시리즈 | UVD 2.2 |
| Park | Mobility Radeon HD 5400 시리즈 | UVD 2.2 |
| M98 | Mobility Radeon HD 4800 시리즈 | UVD 2 |
| M96 | Mobility Radeon HD 4600 시리즈 | UVD 2 |
| M92 | Mobility Radeon HD 4300/4500 시리즈 | UVD 2.2 |
| M88 | Mobility Radeon HD 3800 시리즈 | UVD+ |
| M86 | Mobility Radeon HD 3600 시리즈 | UVD+ |
| M82 | Mobility Radeon HD 3400 시리즈 | UVD+ |
| M76 | Mobility Radeon HD 2600 시리즈 | UVD |
| M72 | Mobility Radeon HD 2400 시리즈 | UVD |
| M71 | Mobility Radeon HD 2300 시리즈 | UVD |
| RV550 | 알 수 없음 |
비고:
* 주 1: 듀얼 GPU이다.
* 주 2: 버전 8.371 또는 그 이후를 사용하지 않으면, UVD를 H.264에 유효하게 했을 때 시스템이 충돌할 수 있다.
3. UVD 버전별 기능
UVD는 여러 버전을 거치면서 기능이 향상되었다. 다음은 각 버전별 주요 기능 변화를 정리한 것이다.
| 버전 | 주요 특징 |
|---|---|
| UVD 1/UVD+ | |
| UVD 2/2.2 | |
| UVD 3 | |
| UVD 4 | |
| UVD 5 | |
| UVD 6 | |
| UVD 7 | |
| VCN(Video Core Next) 1.0 |
UVD 기술은 원래 Cadence Tensilica Xtensa 프로세서를 기반으로 한다. UVD는 ATI의 Xilleon 비디오 프로세서에서 유래되었으며, GPU와 동일한 다이에 통합되었고, Advanced Video Processor (AVP)도 마찬가지로 통합되어 있다.
3.1. UVD 1/UVD+
UVD의 초기 버전에서는 비디오 후처리가 픽셀 셰이더와 OpenCL 커널로 전달된다. MPEG-2 디코딩은 UVD 내에서 수행되지 않고 셰이더 프로세서에서 수행된다. 이 디코더는 블루레이 및 HD DVD의 성능 및 프로필 요구 사항을 충족하며, 최대 40의 비트 전송률로 H.264 비트스트림을 디코딩한다. H.264/AVC에 대한 컨텍스트 적응형 이진 산술 부호화(CABAC)를 지원한다.
이전 세대 GPU의 비디오 가속 블록과 달리, UVD는 상당한 호스트 CPU의 관여를 요구했는데, UVD는 비디오 후처리를 제외한 VC-1 및 H.264에 대한 전체 비디오 디코더 프로세스를 오프로드하며, 비디오 후처리는 셰이더로 오프로드된다. MPEG-2 디코딩도 지원하지만, MPEG-2 비디오에 대한 비트스트림/엔트로피 디코딩은 하드웨어에서 수행되지 않는다.
ATI 라데온 R520 시리즈의 ATI 아비보나 NVidia 지포스 7 시리즈의 퓨어비디오는 VC-1 및 H.264에서 프론트 엔드 비트스트림/엔트로피 압축 해제를 지원하지 않았으며, 호스트 CPU가 이 작업을 수행했다. UVD는 VLC/CAVLC/CABAC, 주파수 변환, 픽셀 예측 및 인루프 디블록킹을 처리하지만, 후처리는 셰이더로 전달한다. 후처리에는 노이즈 제거, 디인터레이싱 및 크기 조정/리사이징이 포함된다. AMD는 GPU 코어에 통합된 UVD 구성 요소가 65 nm 제조 공정 노드에서 4.7mm2 면적만을 차지한다고 밝혔다.
UVD+는 UVD의 변형으로, 라데온 HD 3000 시리즈와 함께 도입되었다. UVD+는 더 높은 해상도의 비디오 스트림에 대한 HDCP를 지원한다. 그러나 UVD+는 단순히 UVD로도 판매되었다.
3.2. UVD 2/2.2
라데온 HD 4000 시리즈 제품과 함께 출시된 UVD는 H.264/MPEG-4 AVC, VC-1의 완전한 비트스트림 디코딩과 MPEG2 비디오 스트림의 iDCT 레벨 가속 기능을 제공한다. 성능 향상으로 듀얼 비디오 스트림 디코딩과 PIP(Picture-in-Picture) 모드가 가능해져, UVD2는 BD-Live를 완벽하게 지원한다.
UVD 2.2는 재설계된 로컬 메모리 인터페이스를 특징으로 하며 MPEG2/H.264/VC-1 비디오와의 호환성을 향상시켰다. "RV770 및 RV730 시리즈 GPU에서 사용할 수 있는 특수 코어 로직으로, 듀얼 스트림 디코딩을 통해 MPEG2, H.264 및 VC-1 비디오를 하드웨어적으로 디코딩할 수 있다"는 점을 들어 "UVD 2 Enhanced"라는 별칭으로 마케팅되었다. UVD 2.2가 UVD 2의 점진적인 업데이트라는 특성은 이러한 움직임을 설명할 수 있다.
3.3. UVD 3
MPEG-2 하드웨어 디코딩(엔트로피 디코딩)을 추가하고, DivX 및 Xvid를 MPEG-4 Part 2 디코딩(엔트로피 디코딩, 역변환, 모션 보상)을 통해 지원하며, 블루레이 3D를 MVC (엔트로피 디코딩, 역변환, 모션 보상, 인 루프 디블록킹)을 통해 지원한다. 120Hz 스테레오 3D 지원을 추가했고, CPU 처리 능력을 적게 사용하도록 최적화되었다. UVD 3은 블루레이 3D 스테레오 디스플레이도 지원한다.
UVD는 ATI의 Xilleon 비디오 프로세서에서 유래되었으며, GPU와 동일한 다이에 통합되었고, Advanced Video Processor (AVP)도 마찬가지로 통합되어 있다.
3.5. UVD 5
UVD 5는 AMD 라데온 R9 285와 함께 도입되었다. UVD의 새로운 기능으로는 최대 레벨 5.2(4Kp60)까지의 4K H.264 비디오에 대한 완벽한 지원이 추가되었다.
UVD는 ATI의 Xilleon 비디오 프로세서에서 유래되었으며, GPU와 동일한 다이에 통합되었다. Advanced Video Processor (AVP)도 마찬가지로 통합되어 있다. AMD에 따르면, UVD는 H.264/AVC와 VC-1의 디코딩을 완전히 하드웨어에서 수행할 수 있지만, 비디오의 후처리 과정은 픽셀 셰이더와 OpenCL 커널로 전송된다. MPEG-2 디코딩은 지원되지만, UVD가 아닌 셰이더에서 처리된다. 이 디코더는 블루레이와 HD DVD 재생 요건을 충족하며, H.264/AVC의 경우 40 Mbps의 비트 전송률까지 디코딩할 수 있다. H.264/AVC에서 CABAC도 지원한다.
3.6. UVD 6
AMD 라데온 R9 퓨리 시리즈를 포함한 GCN 3 기반 GPU에서 처음 사용된 UVD 6.0 디코더와 비디오 코딩 엔진 3.0 인코더는, 이후 AMD 라데온 Rx 300 시리즈(Pirate Islands GPU 제품군) 및 AMD 라데온 Rx 400 시리즈(Arctic Islands GPU 제품군)에서도 사용되었다. "Fiji" 및 "Carrizo" 기반 그래픽 컨트롤러 하드웨어의 UVD 버전은 최대 4K, 8비트 색상(H.265 버전 1, 메인 프로파일)까지 고효율 비디오 코딩(HEVC, H.265) 하드웨어 비디오 디코딩을 지원하며, UVD 6.3을 탑재한 AMD 라데온 400 시리즈에서는 10비트 컬러 HDR H.265 및 VP9 비디오 코덱을 모두 지원한다.
3.7. UVD 7
비디오 코딩 엔진 4.0 인코더와 함께 Vega 기반 GPU에 포함되었으나, 고정 기능 VP9 하드웨어 디코딩은 아직 없다.
3.8. VCN(Video Core Next) 1.0
Raven Ridge APU (Ryzen 2200/2400G)의 통합 그래픽을 시작으로, 이전의 UVD와 VCE는 새로운 "비디오 코어 넥스트(VCN)로 대체되었다. VCN 1.0은 VP9 코덱에 대한 완벽한 하드웨어 디코딩을 추가했다.
4. 지원 운영체제
UVD는 다양한 운영체제에서 사용 가능하다. UVD SIP 코어는 VDPAU, VAAPI, DXVA와 같은 API를 제공하는 장치 드라이버를 통해 지원된다. 이러한 인터페이스는 VLC 미디어 플레이어나 GStreamer와 같은 소프트웨어에서 UVD 하드웨어를 활용하는 데 사용된다.
UVD를 지원하는 AMD의 독점 소프트웨어 그래픽 장치 드라이버인 AMD 카탈리스트는 마이크로소프트 윈도우와 일부 리눅스 배포판에서 사용할 수 있다. 또한 UVD 하드웨어를 지원하는 자유 장치 드라이버도 제공된다.
4.1. Windows
UVD는 현재 마이크로소프트 윈도우 및 Xbox 360 플랫폼에서 디지털 비디오 코덱 디코딩을 하드웨어 가속화할 수 있도록 DXVA(DirectX 비디오 가속) API 사양만 지원하므로, 미디어 플레이어 소프트웨어 또한 UVD 하드웨어 가속을 활용하려면 DXVA를 지원해야 한다.