비디오 코딩 엔진

**비디오 코딩 엔진**(Video Coding Engine, VCE) 또는 **비디오 코드 엔진**(Video Code Engine)은 영상 코덱 H.264/MPEG-4 AVC를 구현하는 AMD의 비디오 인코딩 애플리케이션별 집적 회로이다. 2012년부터 Oland를 제외한 모든 GPU 및 APU에 통합되었다.

VCE는 2011년 12월 22일 라데온 HD 7000 시리즈와 함께 도입되었다. VCE는 출시 당시 상당한 양의 다이 표면을 차지하며  AMD의 UVD(Unified Video Decoder)와 구별한다.

AMD 레이븐브리지(Raven Ridge, 2018년 1월 출시)부터 UVD와 VCE는 VCN(비디오 코어 넥스트)에 의해 계승되었다.

## 개요
섬네일|"완전 고정 모드"에서 전체 계산은 고정 기능 VCE 장치에 의해 수행된다. 완전 고정 모드는 OpenMAX IL API를 통해 접근할 수 있다.
[섬네일|VCE ASIC의 엔트로피 인코딩 블록은 별도로 접근 가능하여 "하이브리드 모드"를 활성화한다. "하이브리드 모드"에서는 대부분의 계산이 GPU의 3D 엔진에 의해 수행된다. [AMD APP SDK|AMD의 가속 병렬 프로그래밍 SDK와 OpenCL을 사용하여 개발자는 맞춤형 움직임 추정, 역 이산 코사인 변환 및 움직임 보상을 하드웨어 엔트로피 인코딩과 결합하여 실시간보다 빠른 인코딩을 달성하는 하이브리드 인코더를 만들 수 있다.]]

비디오 데이터 처리에는 데이터 압축 알고리즘 및 비디오 처리 알고리즘의 계산이 포함될 수 있다.  템플릿에 표시된 것처럼, 손실 비디오 압축 알고리즘에는 움직임 추정(ME), 이산 코사인 변환(DCT), 그리고 엔트로피 인코딩(EC) 단계가 포함된다.

AMD 비디오 코드 엔진(VCE)은 비디오 코덱 H.264/MPEG-4 AVC의 완전한 하드웨어 구현이다. 초당 60프레임으로 1080p를 제공할 수 있다. 엔트로피 인코딩 블록 또한 별도로 접근 가능한 비디오 코덱 엔진이기 때문에 완전 고정 모드와 하이브리드 모드 두 가지 모드로 작동할 수 있다.

리눅스와 마이크로소프트 윈도우에서 사용 가능한 AMD APP SDK를 활용하여 개발자들은 맞춤형 움직임 추정, 역 이산 코사인 변환, 그리고 움직임 보상을 하드웨어 엔트로피 인코딩과 결합하여 실시간보다 빠른 인코딩을 달성하는 하이브리드 인코더를 만들 수 있다. 하이브리드 모드에서는 VCE 장치의 엔트로피 인코딩 블록만 사용되며, 나머지 계산은 GPU의 3D 엔진으로 오프로드되어 컴퓨팅은 사용 가능한 컴퓨트 유닛(CU) 수에 따라 달라진다.

### VCE 1.0
VCE 버전 1.0은 H.264 YUV420 (I 및 P 프레임), H.264 SVC 임시 인코딩 VCE, 그리고 디스플레이 인코딩 모드(DEM)를 지원한다.

다음에서 찾을 수 있다.
* 파일드라이버 기반
** 트리니티 APU (Ax-5xxx, 예: A10-5800K)
** 리치랜드 APU (Ax-6xxx, 예: A10-6800K)
* 서던 아일랜드 세대 GPU (GCN1: CAYMAN, ARUBA (Trinity/Richland), CAPE VERDE, PITCAIRN, TAHITI). 이들은 다음과 같다.
** 라데온 HD 7700 시리즈 (VCE 2.0이 적용된 HD 7790 제외)
** 라데온 HD 7800 시리즈
** 라데온 HD 7900 시리즈
** 라데온 HD 8570 ~ 8990 (VCE 2.0이 적용된 HD 8770 제외)
** 라데온 R7 250E, 250X, 265 / R9 270, 270X, 280, 280X
** 라데온 R7 360, 370, 455 / R9 370, 370X
** 모바일 라데온 HD 77x0M ~ HD 7970M
** 모바일 라데온 HD 8000-시리즈
** 모바일 라데온 Rx M2xx 시리즈 (VCE 2.0이 적용된 R9 M280X 및 VCE 3.0이 적용된 R9 M295X 제외)
** 모바일 라데온 R5 M330 ~ R9 M390
** 1세대 GCN (GCN1)이 탑재된 AMD 파이어프로 카드 (오랜드 XT인 W2100 제외)

### VCE 2.0
VCE 2.0은 첫 번째 버전에 비해 H.264 YUV444 (I-프레임), H.264 YUV420용 B-프레임, 그리고 DEM(디스플레이 인코딩 모드) 개선이 추가되어 더 나은 인코딩 품질을 제공한다.

다음에서 찾을 수 있다.
* 스팀롤러 기반
** 카베리 APU (Ax-7xxx, 예: A10-7850K)
** 고다바리 APU (Ax-7xxx, 예: A10-7890K)
* 재규어 기반
** 카비니 APU (예: 애슬론 5350, 셈프론 2650)
** 테마시 APU (예: A6-1450, A4-1200)
* 푸마 기반
** 비마 및 멀린스
* 본에어 또는 하와이 GPU를 포함한 시 아일랜드 세대 GPU (2세대 그래픽스 코어 넥스트), 예를 들어
** 라데온 HD 7790, 8770
** 라데온 R7 260, 260X / R9 290, 290X, 295X2
** 라데온 R7 360 / R9 390, 390X
** 모바일 라데온 R9 M280X
** 모바일 라데온 R9 M385, M385X
** 모바일 라데온 R9 M470, M470X
** AMD 파이어프로 W4300, W5100, W8100, W9100, S9100, S9150, S9170
** 모바일 AMD 파이어프로 M6100, W6150M, W6170M

### VCE 3.0
비디오 코드 엔진 3.0(VCE&nbsp;3.0) 기술은 새로운 고품질 비디오 스케일링 기능을 제공하며, 버전 3.4부터는 고효율 비디오 코딩 (HEVC/H.265)을 지원한다.

이것은 UVD 6.0과 함께 3세대 그래픽스 코어 넥스트 (GCN3)에 "통가"와 "피지" (VCE 3.0) 기반 그래픽 컨트롤러 하드웨어에서 찾을 수 있으며, 현재 AMD 라데온 Rx 300 시리즈 (파이럿 아일랜드 GPU 제품군)와 실제 AMD 라데온 Rx 400 시리즈 및 AMD 라데온 500 시리즈 (둘 다 폴라리스 GPU 제품군)에서 VCE 3.4가 사용된다.

* 통가: 라데온 R9 285, 380, 380X; 모바일 라데온 R9 M390X, M395, M395X, M485X
* 통가 XT: AMD 파이어프로 W7100, S7100X, S7150, S7150 X2
* 피지: 라데온 R9 퓨리, 퓨리 X, 나노; 라데온 프로 듀오 (2016); AMD 파이어프로 S9300, W7170M; 인스팅트 MI8
* 폴라리스: RX 460, 470, 480; RX 550, 560, 570, 580; 라데온 프로 듀오 (2017)

AMD의 카리조 플랫폼은 VCE 3.1을 특징으로 하며, "피지" 및 "통가"에서 발견되는 VCE와 동일한 기능을 유지한다.

스토니 리지는 HEVC/H.265 인코딩 기능이 없는 간소화된 VCE 3.4 버전을 특징으로 하며 UVD 6.2 엔진과 함께 제공된다.

VCE 3.0은 H.264 B-프레임 지원을 제거한다.

### VCE 4.0
비디오 코드 엔진 4.0 인코더와 UVD 7.0 디코더는 베가 기반 GPU에 포함되어 있다.

#### VCE 4.1
인스팅트 Mi50, 인스팅트 Mi60, 라데온 VII 카드에 탑재된 AMD의 Vega20 GPU에는 VCE 4.1과 두 개의 UVD 7.2 인스턴스가 포함되어 있다.

### 기능 개요

#### APU

#### GPU

## 운영체제 지원
VCE SIP 코어는 장치 드라이버에 의해 지원되어야 한다. 장치 드라이버는 OpenMAX IL과 같은 하나 또는 여러 개의 인터페이스를 제공한다. 이러한 인터페이스 중 하나는 GStreamer 또는 핸드브레이크와 같은 최종 사용자 소프트웨어에 의해 VCE 하드웨어에 접근하고 이를 활용하는 데 사용된다 (핸드브레이크는 2016년 12월 VCE 지원을 거부했지만, 2018년 12월에 추가했다).

AMD의 사유 소프트웨어 장치 드라이버 AMD Catalyst는 여러 운영체제에서 사용 가능하며 VCE 지원이 추가되었다. 또한, 자유 장치 드라이버도 사용 가능하다. 이 드라이버 역시 VCE 하드웨어를 지원한다.

### 리눅스

[섬네일|VCE [ASIC 지원은 리눅스 커널 장치 드라이버인 amdgpu에 포함되어 있다.]]

* 초기 VCE 지원은 2014년 2월 4일 AMD의 크리스티안 쾨니히(Christian König)가 자유 라데온 드라이버에 추가했다.
* 갈륨3D 상태 추적기는 2013년 10월 24일 메사 3D에 OpenMAX용으로 추가되었다.
* 자유-오픈 소스 라데온 드라이버는 VCE 비디오 인코딩 엔진을 노출하기 위한 GStreamer OpenMAX (gst-omx) 지원과 함께 OpenMAX를 사용하도록 조정되었다.
* AMD 직원 레오 리우(Leo Liu)는 H264 레벨 지원을 메사 3D 상태 추적기에 구현했다.

### 윈도우
"MediaShow Espresso Video Transcoding" 소프트웨어는 VCE와 UVD를 최대한 활용하는 것으로 보인다.

XSplit 브로드캐스터는 버전 1.3부터 VCE를 지원한다.

Open Broadcaster Software (OBS 스튜디오)는 녹화 및 스트리밍을 위해 VCE를 지원한다. 원래 Open Broadcaster Software (OBS)는 VCE를 활성화하기 위해 포크 빌드가 필요하다.

AMD 라데온 소프트웨어는 내장된 게임 캡처("Radeon ReLive")로 VCE를 지원하고 APU 또는 라데온 그래픽 카드에서 AMD AMF/VCE를 사용하여 게임 또는 비디오 콘텐츠 캡처 시 FPS 저하를 줄인다.

핸드브레이크는 2018년 12월 버전 1.2.0에서 비디오 코딩 엔진 지원을 추가했다.

## 후속작

VCE는 2017년 10월에 출시된 레이븐 릿지(Raven Ridge) 시리즈 APU에 포함된 비디오 코어 넥스트로 계승되었다. VCN은 인코딩(VCE)과 디코딩(UVD)을 모두 결합한다.

## 같이 보기
* 비디오 코어 넥스트
* 통합 비디오 디코더
* 인텔 퀵 싱크 비디오
* 엔비디아 NVENC

## 각주

분류:비디오 가속
분류:AMD IP 코어