2. HEVC 블록 구조 (Block Structure)

김범수·2022년 6월 2일
0

HEVC

목록 보기
2/5

HEVC에서 블록 분할 과정에 대한 설명입니다.

HEVC의 블록 구조에 대해서 설명을 하지않고는 이후의 설명을 할 수 없지만 이후의 내용을 알지 못하는 상태에서 모든 이해 또한 할 수 없습니다.

개인적으로 HEVC 공부를 하면서 블록 구조에 대한 부분이 처음에 가장 이해하기 힘든 파트였으며, 아직도 완전하게 알고 있는 상태라고는 말할 수 없을 것 같습니다.

  • 슬라이스 (Slice)

그림 1. Picture -> Slice 분할

하나의 픽쳐는 여러 개의 슬라이스로 분할됩니다.

그림에서 정사각형 블록은 이후 설명할 CTU이며, 회색은 독립 슬라이스, 흰색은 종속 슬라이스 세그먼트입니다.

하나의 슬라이스는 하나의 독립 슬라이스로 구성 혹은 하나의 독립 + 연속되는 종속 슬라이스로 구성되게 됩니다.

슬라이스로 구분하여 진행하지 않는다면 데이터 패킷 중 일부가 손상된다면 한 장의 픽쳐 전체를 잃을 수 있기 때문에 슬라이스 단위로 인코딩을 진행합니다.

또한 슬라이스는 직사각형의 타일로 나누어지는데 사실 공부한지 오래된 부분이라 까먹어서 생략하겠습니다..

  • 블록 분할
    • CTU (Coding Tree Unit), CU (Coding Unit)

      그림 1. Picture -> 64x64 단위의 CTU로 분할, CTU-> CU 쿼드트리 구조로 분할

      H.264에서는 16x16의 매크로 블록으로  분할하여 인코딩이 진행되었지만 HEVC에서는 64x64 CTU 단위로 진행됩니다.

      이 때, CTU의 최대, 최소 크기는 SPS (Sequence Picture Set)에 저장되어 정의되어 전송되며 여러 개의 CU로 분할하며 병렬 처리를 위해서 Z-scan으로 인코딩됩니다.

      CU는 예측을 위한 PU (Prediction Unit), 변환 및 양자화 과정을 위한 TU (Transfrom Unit)로 분할되어 계산된 하위 CU들과의 Bitrate와 Distortion을 이용한 Cost 비교를 통해 CU 크기를 재귀적으로 결정하게 됩니다.

    • PU (Prediction Unit)

      그림 2. PU (Prediction Unit)

      CU는 각각의 예측 정보를 가진 PU로 분할하여 각각의 분할 방법과 예측 모드 중 최선의 분할 방법과 예측 모드를 가진 PU (Prediction Unit)로 정해집니다.

      Inter 예측에서는 2Nx2N, 2NxN, Nx2N, nLx2N, nRx2N, 2NxnU, 2NxnD, NxN(오직 sCU)

      Intra 예측에서는 2Nx2N, NxN(오직 N=4) 모양의 PU로 예측을 진행합니다.

  • TU (Transform Unit)

그림 3. TU (Tranform Unit)

변환 및 양자화 과정은 TU (Transform Unit) 단위로 진행하게 됩니다.

TU의 최대 사이즈는 CU 사이즈와 동일하며 TU의 최소 사이즈는 SPS에 정의되어 전송합니다.

정말 간략하게 HEVC 구조에 대해 보았는데, 다음 게시물부터 본격적으로 예측에 대해서 살펴보겠습니다.

profile
iOS Developer

0개의 댓글