1. H.265/HEVC 표준의 개요
HEVC 표준화 작업은 2010년 1월부터 MPEG(Moving Picture Expert Group)과 VCEG(Video Coding Experts Group)이 공동 설립한 JCT-VC(Joint Collaboration Team on Video Coding)에 의해 시작되었다.
이전의 H.264/AVC 비디오 부호화 표준이 유선망과 무선망이 통합되고 방송과 통신이 융합되어 언제 어디서나 인터넷과 방송을 즐길 수 있는 방송 통신 융합 서비스 시대를 개척하였다면, 차세대 비디오 압축 기술인 HEVC는 방송 통신 융합 서비스를 한 단계 더욱 진보시킬 수 있는 표준이 될 것이다.
2. H.265/HEVC의 표준화 배경
최근 3D 영상과 Ultra HD급 초고해상도 영상과 같은 실감미디어가 등장하였고 이를 통해 시청자들은 기존의 미디어 서비스에서는 느낄 수 없던 현실감, 생동감, 입체감을 느낄 수 있다.
이는 방송, 원격 회의, 교육, 의료, 게임 등 다양한 응용 분야에서 차세대 서비스로 각광받고 있으며 예전에는 QCIF(Quarter Common Intermediate Format, 176 * 144)급 또는 CIF(352 * 288)급의 영상을 지원하던 모바일 단말에서조차 HD(1280 * 720)급 영상을 지원할 수 있게 됨에 따라 모바일 분야에서도 실감 미디어의 등장을 주목하고 있다.
3. JCT-VC의 구성
JCT-VC는 VCEG와 MPEG이 협력하여 만든 회의체로, 목적은 H.264/AVC 표준보다 더 우수한 차세대 비디오 표준을 만드는 것이고, 이 프로젝트의 이름이 HEVC라서 보통 새 표준을 HEVC라 부른다. 2010년 4월 독일에서의 1차 회의를 시작으로 HEVC 인코더와 디코더가 구현되고, 점점 발전해가고 있다.
4. H.265/HEVC의 요구사항
JCT-VC는 HEVC 표준화를 시작하기에 앞서 압축 효율, 해상도, 색 공간 및 깊이, 프레임율, 복잡도, 부호화 모드 등 다양한 요구사항을 정의했다.
압축 효율
HEVC는 기존 H.264/AVC보다 두 배 이상의 압축 효율 향상을 목표로 하고 있다. 단순히 특정한 환경에서의 압축 효율 향상이 아닌, 모든 비트율 범위에서 기존의 코덱보다 성능이 좋아야 한다. 또한 무손실 기능 및 시각적 무손실 기능을 지원하도록 권장한다.
해상도
HEVC는 TV, 모바일 등 여러 응용 분야에서의 고화질 영상 부호화를 목표로 하고 있는 만큼 다양한 해상도를 지원해야 한다. 따라서 일반적으로 많이 사용되는 VGA(832 * 480)부터 4K UHD(4k * 2k)해상도를 반드시 지원해야 하며, QVGA(416 * 240) 및 8K UHD(8k * 4k) 해상도까지 지원해야 한다.
색 공간 및 깊이
HEVC 표준은 일반적으로 사용되는 YCbCr 4:2:0의 색 공간에 각 색 성분 당 8bit 색 깊이(depth)를 반드시 지원해야 한다. 또한, 다양한 응용에 이용되기 위해서 YCbCr/RGB 4:4:4의 색 공간과 14비트까지의 색 깊이를 지원하도록 권장하고 있다.
프레임율
프레임율은 디스플레이 장치가 하나의 화면에 해당하는 데이터를 표시하는 속도를 의미하는데, HEVC는 다양한 응용 분야에서의 폭넓은 활용을 위한 일반적인 프레임률인 초당 24~60프레임을 지원해야 한다.
주사 방식
HEVC 표준은 모든 프로파일과 모든 레벨에 대해 순차 주사 방식을 지원해야 한다. 순차 주사 방식이란 화면에 표시할 내용을 처음부터 끝까지 순서대로 표시하는 영상의 표시 방법이다. 대부분의 디지털 영상 표시 장치에서 기본 주사 방식으로 순차 주사 방식을 사용한다.
복잡도
요구사항에서 정의하는 복잡도는 전력 소모량, 계산량, 메모리량 등을 포함한다. HEVC 표준은 표준이 사용될 것으로 예상되는 시점의 기술 수준으로 구현할 수 있어야 하므로, 복잡도와 부호화 효율의 특실(trade-off)을 따져 보아야 한다. 즉, HEVC 표준은 기존의 H.264/AVC 표준에 비해 낮은 복잡도를 가지면서 더 나은 압축 효율을 가지거나, 상당히 복잡도 증가를 가지면서 그에 상응하는 압축 효율을 증가시켜야 한다. 또한 추가적으로 병렬 처리 지원을 권장하고 있다.
부호화 모드
HEVC 표준은 부호화 및 복호화에 대한 시간 지연이 적어야 한다. 즉, 저지연 (low delay) 모드를 지원해야 한다. 또한, 저장된 비디오 스트림의 특정 위치로의 임의 접근 (random access) 및 멀티 채널의 경우 고속 채널 전환을 지원해야 한다. 저장된 비디오 스트림에 대한 일시 정지, 빨리 감기, 빨리 되감기 등의 기능과 화면내 부호화 (intra-only) 모드 지원은 권장사항이다.
오류 강인성
오류 강인성 (error robustness) 향상을 위해 목표 대상 네트워크에 대한 비디오 비트스트림 분할 (segmentation) 및 패킷화 (packetization) 방법을 반드시 개발해야 한다. 즉, 비디오 계층과 네트워크 계층의 비디오 인터페이스에 적절한 오류 강인성 방법을 효율적으로 적용할 수 있는 구조를 개발해야 한다.
계위성
HEVC 표준의 초기 디자인에 계위적 부호화 기술이 추가될 수 있어야 한다. 계위성에 대한 정확한 정의는 명시되어 있지 않지만, 표준화 시작 단계에서부터 계위성 확장을 고려하고 있는 것이 특징이다. 이전의 비디오 압축 방식에 비추어 볼 때, SNR 계위성, 공간적 계위성, 시간적 계위성, 복잡도 계위성, 시점 계위성과 같은 다양한 종류의 계위성이 고려될 수 있다.
5. 265/HEVC의 응용 분야
1) 디지털 방송
최근 디지털 방송을 위한 신호처리 기술이 발전함에 따라 차세대 방송 서비스에 대한 관심이 급속히 높아지고 있다.
현재 서비스중인 HDTV 이후의 차세대 방송서비스로 거론되고 있는 것이 UHDTV와 3DTV이다.
UHD급 영상을 디스플레이할 수 있는 대화면 TV 및 안경/무안경식 3DTV의 보급으로 인해 고해상도 영상 서비스에 대한 소비자의 기대치가 높아지고 있으며, 3DTV는 이미 초기 기술 개발이 완료되어 시험 방송 중이다.
하지만, 이러한 차세대 방송 서비스는 기존 방송 서비스에 비해 처리해야 할 데이터의 양이 방대하기 때문에 H.264/AVC보다 약 40% 이상의 높은 압축 성능을 보이는 HEVC는 실감미디어 전송 데이터량 절감을 위한 좋은 해결책을 제시할 것이다.
2) 비디오 스트리밍
집에서뿐만 아니라 공공장소 등에서 유무선 네트워크 환경이 보편화되면서 네트워크와 연동하는 멀티미디어 콘텐츠가 대중화되고 있다. 스마트폰이나 태블릿과 같은 휴대용 기기의 보급 확대로 인해 비디오 스트리밍에 대한 요구도 급속히 증가하는 추세이다. 인터넷 스트리밍, VOD 서비스, 화상회의, 영상통화 등이 네트워크에 기반을 둔 비디오 스트리밍의 예이다. 이러한 영상을 실시간 스트리밍하기 위해서는 큰 데이터량으로 인한 스트리밍 지연을 해결해야 한다. 따라서, 낮은 복잡도를 가지면서 높은 압축률을 제공하는 HEVC 표준은 실시간 비디오 스트리밍 서비스에서 높은 활용도를 가질 것으로 보인다.
3) 전문 분야
전문 분야란 디지털 시네마, 의료영상, 위성 영상 등과 같이 초고해상도 및 초고화질 비디오 신호를 다루는 응용 분야를 의미하며, 이러한 전문 분야에서는 데이터의 크기보다 복호된 영상이 포함하고 있는 데이터를 더 중요하게 생각한다. 따라서 전문 분야에서는 고화질의 복호 영상을 얻을 수 있는 무손실 또는 근접 무손실 부호화를 주로 이용한다.
현재 AdHoc 그룹을 통해 HEVC 표준의 요구사항에서 권장하고 있는 무손실 부호화의 개발이 진행되고 있으며, 기술개발이 모두 완성되면 무손실 부호화가 필요한 전문 분야에서 HEVC 표준을 많이 사용할 것이다.
6. H.265/HEVC의 주요 기술
①부호화 블록 구조 (Coding Block Structure)
HEVC의 가장 큰 부호화 구조적 특징으로 H.264/AVC에서 사용된 고정 크기의 16˟16 매크로 블록보다 훨씬 다양한 크기를 가지면서 기능별로도 세분화된 CU, PU, TU 단위를 이용한다는 점을 들 수 있다. CU는 부호화가 이루어지는 기본단위로 64˟64에서 8˟8까지 쿼드트리 구조로 구성된다. 이때, 쿼드트리로 구성된 CU를 CTU(coding tree unit)라고 한다. PU는 화면내, 화면 간 예측에 사용되는 단위로 각 PU는 참조 인덱스, 움직임 벡터, 환면 내 예측 모드 등의 정보를 포함한다. 각 PU는 최대 2N˟2N, 2N˟N, N˟2N, N˟N, nL˟2N, nR˟2N, 2N˟nU, 2N˟nD 8가지의 모양이 있다. TU는 변환이 이루어지는 단위로 32˟32에서 4˟4까지 쿼드트리 구조로 구성 된다. 하나의 CU는 여러 개의 TU로 분할 될 수 있으며, PU와 독립적으로 분할 될 수 있다.
②화면 내 예측 (Intra Prediction)
HEVC의 화면 내 예측은 H.264/AVC에서 8개 방향을 포함한 9개의 모드를 사용하던 것과 달리 33개 방향에 35개 모드를 사용하여 기존의 화면 내 예측 방법 보다 훨씬 더 세분화된 각도의 예측이 가능하도록 설계되었다. 방향성의 증가와 더불어 균등한 영역에서 주관적 화질을 높이기 위한 Intra_Planar 모드와 같은 새로운 모드 추가 이외에도 유효하지 않은 화소를 위해 인접 화소를 이용하는 패딩 (reference sample padding) 기술 및 예측 화소에 대한 저역 필터 (low-pass filter) 기술이 추가되었다. 예측 화소에 대한 전처리 기술은 H.264/AVC에서는 8˟8 블록에서만 적용되었으나, HEVC에서는 모든 크기의 블록에 대해 적용하고 있다. 또한, DC, 수직, 수평 모드에 대하여 경계 화소 스무딩 (boundary value smoothing) 기술이 추가되었다.
③화면 간 예측 (Inter Prediction)
HEVC의 화면 간 예측에는 AMVP (advanced motion vector prediction), 병합 (merge) 모드와 DCT-IF (discrete cosine transform based interpolation filter)가 이용된다. HEVC AMVP는 KTA에 제안된 MVC (motion verctor competition)처럼 여러 개의 MVP 후보를 사용하여, 주변 움직임 벡터의 중간 값을 사용하던 H.264/AVC에 비해 MVD (motion vector difference)를 효과적으로 줄일수 있는 기법이다. 병합모드는 주변 블록의 움직임 정보를 그대로 사용하는 대신, 주변 블록과의 병합 유무에 대한 플래그와 병합 후보의 인덱스를 부호화하는 기술이다. 병합 기술의 추가에 따라, 기존 비디오 코덱에서 사용하던 Skip 모드 대신, CU 단위로 플래그를 직접 명시해주는 방법을 사용하여 Skip 모드 부호화가 수행된다. AMVP와 병합 모드는 예측 후보의 인덱스를 부호화한다는 공통점이 있으나, AMVP의 경우 2개의 후보, 병합모드는 최대 5개의 후보를 가진다는 점과 후보 선택과정에 있어 차이가 있다. AMVP, 병합 모드와 같은 예측 후보 결정 기술과 더불어 움직임 예측 및 보상의 정밀도를 높이기 위한 보간 필터에도 DCT-IF가 새롭게 채택되었다. H.264/AVC에서는 고정 6-tap 필터를 사용하였으나, HEVC에서는 휘도 성분에서는 8-tap (7-tap) DCT-IF, 색차성분에서는 4-tap DCT-IF를 사용한다. DCT-IF란, DCT 과정에서 분수 화소 성분의 위치 값을 복원하는 계수를 구할 수 있으며, 이 계수 값들을 이용하여 보간을 수행하는 기술이다. H.264/AVC에서 1/4화소를 보간함에 있어 1/2화소를 이용하여 양선형 (bi-linear) 필터를 적용하는 방식과 달리, HEVC에서는 1/4화소에 대한 직접 필터 연산을 수행한다. 또한, 필터 계수의 개수가 증가하여 보다 정확한 보간은 가능해졌으나, 이에 따른 계산 복잡도의 증가는 실시간 부호화에 있어 큰 문제점으로 지적되고 있다.
④변환 (Transform), 양자화 (Quantization)
HEVC는 기존의 비디오 코덱과 달리 변환 과정만을 위한 단위인 TU를 별도로 정의하며, 변환을 위한 커널의 크기는 4˟4, 8˟8, 16˟16, 32˟32로 다양하게 지원한다. TU의 구조는 쿼드트리로 구성되며, PU와는 독립적으로 분할 될 수있으나 TU가 속한 CU의 크기를 초과할 수 없다. HM 2.0까지는 4˟4, 8˟8 변환은 H.264/AVC와 동일한 변환 커널을 사용하였고, 16˟16, 32˟32 변환은 Chen 알고리즘 기반의 DCT를 사용하였다. HM 3.0 이후, 변환과정의 중간 값이 16비트 표현이 가능한 형태의 partial butterfly 형태의 2-D 분할 변환이 제안되어 현재까지 사용되고 있다.
이외에도 4˟4 화면 내 예측에서는 모드에 따른 방향 의존성을 가지는 DST (discrete sine transform)를 지원하고, main 프로파일에는 채택되지 않았으나 정방형태의 변환 외에도 NSQT (non square quad-tree transform) 기술도 제안 되었다.
⑤엔트로피 부호화 (Entropy Coding)
H.264/AVC 표준에서는 CABAC과 CAVLC의 두 가지 엔트로피 코딩을 사용했지만 H.265/HEVC에서는 CABAC만을 사용한다. HEVC CABAC은 H.264/AVC CABC의 기본구조를 그대로 채택하였다. 기본구조는 동일한 엔트로피 코딩기술이 사용되지만 HEVC CABAC에서는 심볼을 압축하기 위해 사용되는 문맥 정보를 유도함에 있어, 쿼드트리 구조를 활용하며, 총 문맥 정보의 수는 H.264/AVC 대비 크게 감소되었다. 또한, 간단한 연산만을 요구하는 CABAC의 bypass mode가 H.264/AVC에 비해 폭넓게 사용됨으로써 엔트로피 코딩 부분에서의 throughput을 향상시킨다.
2차원 변환이 적용된 후 얻어진 변환 계수들을 1차원 형태의 데이터로 변환하기 위해 사용되는 계수 스캐닝 기술 또한 많은 변화가 이루어졌다. JPEG부터 사용되어 왔던 ZIGZAG 스캐닝은 우상향 대각 방향 스캐닝으로 변경되어 구현을 좀더 용이하게 하였고, 화면 내 예측의 경우 가로 방향, 세로 방향 스캐닝을 방향성에 맞게 적응적으로 사용함으로써 압축 효율을 향상시킨다.
⑥루프 필터 (Loop Filter)
HEVC의 루프 필터는 기존의 블록킹 열화를 제거하기 위한 디블록킹 필터 뿐 아니라, 양자화에서 오는 압축손실을 보상하기 위한 SAO (sample adaptive offset)와 ALF(adaptive loop filter)가 추가되었다. 디블록킹 필터의 경우 PU, TU 경계에서 발생하는 블록킹 열화를 제거하기 위한 기술로서 H.264/AVC와 유사하지만, 연산 복잡도를 낮추기 위해 필터 과정을 간소화 하였다. 이와 더불어 HEVC에서 채택된 SAO는 부호화과정을 통해 발생하는 원본 영상과 복원 영상간의 왜곡을 보상하기위해 화소단위의 오프셋을 이용하는 기술이다. 디블록킹 필터와 달리, SAO 기술은 원본 영상과 복원 영상간의 오류를 직접 계산하기 때문에 주관적 화질뿐만 아니라 객관적 화질의 향상도 기대할 수 있다. ALF는 VCEG 회의에서 관련 기고서가 제안되었고, KTA 소프트웨어에 채택된 위너(winer) 필터를 기반으로 하는 기술이다. 각 블록에 대한 필터 적용 여부 및 필터 계수를 전송하는 기술로서, HEVC 표준화 초기 단계에서는 HE(high efficiency)모드에서 ALF를 사용하였으나, 지난 7차 제네바 회의에서 프로파일에 대한 논의가 진행되면서 main 프로파일에서 제외되었다.
'Vision' 카테고리의 다른 글
색의 표현과 색 체계 Color Space (0) | 2018.12.28 |
---|---|
Raw Data와 Bayer Filter의 원리 (0) | 2018.12.28 |
이미지 센서의 원리와 종류 (0) | 2018.12.28 |
HEVC 비디오 영상 포맷 (0) | 2018.12.28 |
이미지를 데이터로 표현하는 방법 2가지 (0) | 2018.12.27 |