KR101354086B1 - 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 - Google Patents
공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 Download PDFInfo
- Publication number
- KR101354086B1 KR101354086B1 KR1020120016615A KR20120016615A KR101354086B1 KR 101354086 B1 KR101354086 B1 KR 101354086B1 KR 1020120016615 A KR1020120016615 A KR 1020120016615A KR 20120016615 A KR20120016615 A KR 20120016615A KR 101354086 B1 KR101354086 B1 KR 101354086B1
- Authority
- KR
- South Korea
- Prior art keywords
- prediction unit
- block
- merge candidate
- blocks
- prediction
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
HD(High Definition)급 이상의 해상도를 가지는 고해상도 영상에 적용할 수 있는 블록 병합을 이용한 영상 부호화 방법 및 복호화 방법이 제공된다. 영상 부호화 방법은 현재 블록을 파티션 분할하여 제1 예측 유닛 및 제2 예측 유닛으로 분할 하는 단계와, 상기 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계와, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하여 상기 선택된 후보 블록 정보를 상기 제1 예측 유닛 및 제2 예측 유닛마다 복호화기로 전송하는 단계를 포함하되, 상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함된다.
Description
본 발명은 영상의 부호화 및 복호화에 관한 것으로, 더욱 상세하게는 블록 병합을 이용한 영상 부호화 방법, 부호화 장치, 복호화 방법 및 복호화 장치에 관한 것이다.
일반적으로 영상 압축 방법에서는 압축 효율을 높이기 위해 픽쳐들의 중복도를 제거하는 화면간 예측(inter prediction) 및 화면내 예측(intra prediction) 기술을 이용한다.
화면간 예측을 이용해 영상을 부호화하는 방법은 픽처들 사이의 시간적인 중복성(temporal redundancy)을 제거하여 영상을 압축하는 방법으로서 대표적으로 움직임 보상 예측 부호화 방법이 있다.
움직임 보상 예측 부호화는 현재 부호화되는 픽처의 앞 및/또는 뒤에 위치하는 적어도 하나의 참조 픽처(reference picture)에서 현재 부호화되는 블록과 유사한 영역을 검색하여 움직임 벡터(MV: Motion Vector)를 생성하고, 생성된 움직임 벡터를 이용하여 움직임 보상을 수행하여 얻어지는 예측 블록과 현재 블록의 잔여값(residue)을 DCT(Discrete Cosine Transform) 변환하고 양자화한 후 엔트로피 부호화하여 전송한다.
움직임 보상 화면간 예측의 경우, 하나의 픽처를 소정 크기를 가지는 복수의 블록(block)으로 구분하여 움직임 벡터(Motion Vector)를 생성하고, 생성된 움직임 벡터를 이용하여 움직임 보상을 수행한다. 움직임 보상을 수행하여 얻어지는 각각의 예측 블록에 대한 개별적인 움직임 파라미터는 디코더로 전송된다.
HD(High Definition)급 이상의 해상도를 가지는 고해상도 영상의 경우 하나의 픽처당 블록의 개수가 증가하게 되므로 각각의 예측 블록 마다 움직임 파라미터를 디코더로 전송할 경우 전송되는 움직임 파라미터의 양이 매우 많아지게 되어 코딩 효율 측면에서 바람직하지 못하므로 코딩 효율을 높이기 위한 방법이 요구된다.
본 발명의 제1 목적은 HD(High Definition)급 이상의 해상도를 가지는 고해상도 영상에 적용할 수 있는 블록 병합을 이용한 영상 부호화 방법 및 부호화 장치를 제공하는 것이다.
본 발명의 제2 목적은 HD(High Definition)급 이상의 해상도를 가지는 고해상도 영상에 적용할 수 있는 블록 병합을 이용한 영상 복호화 방법 및 복호화 장치를 제공하는 것이다.
전술한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 부호화 방법은 제1 예측 유닛 및 제2 예측 유닛으로 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계와, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하여 상기 선택된 후보 블록 정보를 상기 제1 예측 유닛 및 제2 예측 유닛마다 복호화기로 전송하는 단계를 포함한다. 상기 공통 병합 후보 블록 리스트는 상기 제1 예측 유닛 및 제2 예측 유닛에 대해 블록 병합을 수행할 경우 공통적으로 사용되는 병합 후보 블록들을 포함할 수 있다. 상기 현재 코딩 유닛의 크기는 8x8인 경우에만 상기 블록 병합을 수행할 수 있다. 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는 움직임 추정 영역으로 분할되고, 상기 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정이 순차적(sequential)으로 이루어지고, 상기 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛에 대해서는 병렬(parallel)로 움직임 추정이 이루어질 수 있다. 상기 움직임 추정 영역의 크기에 따라 상기 움직임 추정 영역내의 예측 유닛들에 대하여 상기 공통 병합 후보 블록들을 사용하여 병렬 병합(parallel merge)을 허용할지 여부를 다르게 설정할 수 있다. 상기 움직임 추정 영역의 크기가 소정 크기 이상일 경우에만 상기 움직임 추정 영역 내의 모든 예측 유닛들에 대해 상기 병렬 병합(parallel merge)이 허용되도록 할 수 있다. 상기 움직임 추정 영역의 크기에 따른 상기 병렬 병합 처리 허용 여부를 알려주기 위하여 상기 움직임 추정 영역의 크기에 따라 소정의 값이 PPS(picture parameter set)내에 포함되어 부호화기에서 상기 복호화기로 전송될 수 있다. 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 동일한 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능 하지 않음(non-available)으로 처리되고, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능(available)으로 처리할 수 있다. 상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함될 수 있다. 상기 현재 코딩 유닛내의 상기 제 1 예측 유닛과 제2 예측 유닛은 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 상기 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용할 수 있다. 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되어 병렬처리가 가능하도록 할 수 있다. 상기 공통 병합 후보 블록들은 부호화기와 상기 복호화기간에 사전에 약속에 의해 미리 정해질 수 있다.
본 발명의 다른 실시예에 따른 부호화 장치는 제1 예측 유닛 및 제2 예측 유닛으로 대칭적 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하는 화면간 예측부를 포함할 수 있다.
본 발명의 다른 실시예에 따른 복호화 방법은 제1 예측 유닛 및 제2 예측 유닛으로 파티션 분할된 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계와, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하는 단계와, 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하는 단계를 포함한다. 상기 제2 예측 유닛의 공통 병합 후보 블록들은 상기 제1 예측 유닛의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어질 수 있다. 상기 현재 코딩 유닛의 크기는 8x8인 경우에만 상기 블록 병합을 수행할 수 있다. 상기 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는 움직임 추정 영역으로 분할되고, 상기 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정이 순차적(sequential)으로 이루어지고, 상기 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛에 대해서는 병렬(parallel)로 움직임 추정이 이루어질 수 있다. 상기 움직임 추정 영역의 크기에 따라 상기 움직임 추정 영역내의 예측 유닛들에 대하여 상기 공통 병합 후보 블록들을 사용하여 병렬 병합(parallel merge)을 허용할지 여부를 다르게 설정될 수 있다. 상기 움직임 추정 영역의 크기가 소정 크기 이상일 경우에만 상기 움직임 추정 영역 내의 모든 예측 유닛들에 대해 상기 병렬 병합(parallel merge)이 허용될 수 있다. 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 동일한 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능 하지 않음(non-available)으로 처리되고, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능(available)으로 처리할 수 있다. 상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함될 수 있다. 상기 현재 코딩 유닛내의 상기 제 1 예측 유닛과 제2 예측 유닛은 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 상기 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용할 수 있다. 상기 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되어 병렬처리가 가능하도록 할 수 있다.
본 발명의 다른 실시예에 따른 복호화 장치는 제1 예측 유닛 및 제2 예측 유닛으로 대칭적 파티션 분할된 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하고, 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하는 화면간 예측부를 포함할 수 있다.
상술한 바와 같은 블록 병합을 이용한 영상 부호화/복호화 방법 및 장치에 따르면, 현재 블록을 파티션 분할하여 생성된 제1 예측 유닛 및 제2 예측 유닛에 대해 각각의 움직임 파라미터를 전송하지 않고 상기 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하여 상기 공통 병합 후보 블록 리스트에 속하는 공통 병합 후보 블록들 중 선택된 적어도 하나의 공통 병합 후보 블록를 상기 현재 블록과 병합한 블록 전체에 대해 한번만 움직임 파라미터를 전송하여 움직임 파라미터와 같은 부가 정보(side information)의 전송량을 줄임으로써 HD급 또는 울트라 HD(Ultra High Definition)급 이상의 고해상도를 가지는 영상의 부호화 효율을 향상시킬 수 있다.
제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트를 구성하는 제1 프로세스와 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트를 구성하는 제2 프로세스는 따로 따로 수행되는 것이 아니라 1번의 공통 병합 후보 블록을 구성하는 프로세스로 수행될 수 있으며, 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스는 제1 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스와 병렬적으로 수행될 수 있게 되어 인코딩 시간이 크게 감소될 수 있다.
도 1은 본 발명의 일 실시예에 따른 대칭적 파티션 분할(symmetric partitioning) 방식을 설명하기 위한 개념도이다.
도 2는 2N X 2N 크기의 예측 유닛(PU)이 수직 방향으로 2개의 N X 2N 파티션으로 분할된 경우의 분할된 파티션 블록에 대한 블록 병합을 설명하기 위한 개념도이다.
도 3은 도 2에서 분할된 2개의 파티션 블록에 대한 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 4 내지 도 11은 본 발명의 실시예들에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 12는 분할된 2개의 파티션 블록에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 13은 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 장치의 블록도이다.
도 14는 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 방법의 순서도이다.
도 2는 2N X 2N 크기의 예측 유닛(PU)이 수직 방향으로 2개의 N X 2N 파티션으로 분할된 경우의 분할된 파티션 블록에 대한 블록 병합을 설명하기 위한 개념도이다.
도 3은 도 2에서 분할된 2개의 파티션 블록에 대한 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 4 내지 도 11은 본 발명의 실시예들에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 12는 분할된 2개의 파티션 블록에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 13은 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 장치의 블록도이다.
도 14는 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 방법의 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명의 일실시예에서는 HD(High Definition)급 이상의 해상도를 가지는 고해상도에 적용하기 위하여 순환적(recursive) 코딩 유닛(Coding Unit; CU) 구조를 사용하여 부호화 및 복호화를 수행할 수 있다.
먼저, 순환적 코딩 유닛 구조를 설명하면, 각 코딩 유닛(CU)은 정사각형 모양을 가지며, 각 코딩 유닛(CU)은 2N X 2N(단위 pixel) 크기의 가변적인 크기를 가질 수 있다. 화면간 예측, 화면내 예측, 변환, 양자화 및 엔트로피 부호화는 코딩 유닛(CU) 단위로 이루어질 수 있다.
코딩 유닛(LCU)의 크기는 8 x 8 ~ 64 x 64 크기를 가지는 2의 거듭제곱 값으로 나타낼 수 있다. 코딩 유닛(CU)은 최대 코딩 유닛(LCU), 최소 코딩 유닛(SCU)를 포함할 수 있으며, 예를 들어, 최대 코딩 유닛(LCU)은 64x64 크기, 최소 코딩 유닛(SCU)은 8x8의 크기를 가질 수 있다.
상기 코딩 유닛(CU)은 순환적인 트리 구조를 가질 수 있다. 예를 들어, 최대 코딩 유닛(LCU)인 CU0의 한변의 크기(2N0)가 64(N0=32)이고, 최대 계층 레벨(level) 또는 계층 깊이(depth)가 4가 될 수 있다. 순환적인 구조는 일련의 플래그(flag)를 통하여 표현될 수 있다. 예를들어, 계층 레벨(level) 또는 계층 깊이(depth)가 k인 코딩 유닛(CUk)의 플래그(flag)값이 0인 경우, 코딩 유닛(CUk)에 대한 코딩(coding)은 현재의 계층 레벨(level) 또는 계층 깊이(depth)에 대해 이루어지며, 플래그(flag)값이 1인 경우, 현재의 계층 레벨(level) 또는 계층 깊이(depth)가 k인 코딩 유닛(CUk)은 4개의 독립적인 코딩 유닛(CUk+1)으로 분할되며, 분할된 코딩 유닛(CUk+1)은 계층 레벨(level) 또는 계층 깊이(depth)가 k+1이 되며, 크기는 Nk+1 X Nk+1가 된다. 이 경우 코딩 유닛(CUk+1)은 코딩 유닛(CUk)의 서브 코딩 유닛으로 나타낼 수 있다. 코딩 유닛(CUk+1)의 계층 레벨(level) 또는 계층 깊이(depth)가 최대 허용 가능한 계층 레벨(level) 또는 계층 깊이(depth)에 도달할 때까지 코딩 유닛(CUk+1)은 순환적으로(recursive) 처리될 수 있다. 코딩 유닛(CUk+1)의 계층 레벨(level) 또는 계층 깊이(depth)가 최대 허용 가능한 계층 레벨(level) 또는 계층 깊이(depth) 동일한 경우에는 더 이상의 분할은 허용되지 않는다.
상기와 같은 계층적인 분할(split) 과정이 완료되면 더 이상의 분할 없이 코딩 유닛 계층 트리의 말단 노드에 대해 화면간 예측 또는 화면내 예측을 수행할 수 있으며, 이러한 말단 코딩 유닛이 화면간 예측 또는 화면내 예측의 기본 단위인 예측 유닛(Prediction Unit; PU)으로 사용된다.
그리고, 화면간 예측 또는 화면내 예측 과정을 수행하기 위하여 상기 말단 코딩 유닛에 대해 파티션(partition) 분할이 수행 된다. 즉, 파티션 분할은 예측 유닛(PU)에 대해 수행된다. 여기서, 예측 유닛(PU)는 화면간 예측 또는 화면내 예측을 위한 기본 단위의 의미이다. 즉, 예측 유닛(PU)는 전술한 계층적인 분할(split) 과정이 완료된 후의 코딩 유닛 계층 트리의 말단 노드의 크기, 즉 64x64, 32x32, 16x16, 8x8의 크기 중 하나를 가질 수 있다.
1개의 코딩 유닛(CU)은 화면간 예측 또는 화면내 예측을 수행하기 위하여 예측 유닛의 파티션으로 분할될 수 있다. 구체적으로, 2N X 2N 코딩 유닛은 수평방향으로 대칭적 파티션 분할되거나 또는 수직방향으로 대칭적 파티션 분할될 수 있다.
도 1은 본 발명의 일 실시예에 따른 대칭적 파티션 분할(symmetric partitioning) 방식을 설명하기 위한 개념도이다. 도 1에서는 예측 유닛(PU)의 크기가 예를 들어 2N X 2N(N은 자연수로서 단위는 pixel)인 경우를 예로 들어 도시하였다.
도 1을 참조하면, 2N X 2N 코딩 유닛(P01)은 예측 모드가 화면간 예측 모드인 경우 화면간 예측을 수행하기 위하여 수평 방향으로 대칭적 파티션 분할을 하여 2N X N 크기의 파티션 PU0(P02b)와 2N X N 크기의 파티션 PU1(P02a)로 분할하거나, 또는 N X 2N 크기의 파티션 PU0(P03a)와 N X 2N 크기의 파티션 PU1(P03b)로 분할하거나, 또는, N X N 크기의 파티션 PU0(P04a), PU1, PU2, PU3로 분할될 수 있다.
또는 도 1에서는 도시하지 않았으나, 2N X 2N 코딩 유닛(P01)은 예측 모드가 화면간 예측 모드인 경우 화면간 예측을 수행하기 위하여 수평 방향으로 비대칭적 파티션(asymmetric partition) 분할을 하여 2N X nU(단, nU = 2N X 1/4) 크기의 파티션 PU0와 2N X nD(단, nD = 2N X 3/4) 크기의 파티션 PU1로 분할하거나,또는 2N X nU(단, nU = 2N X 3/4) 크기의 파티션 PU0와 2N X nD(단, nD = 2N X 1/4) 크기의 파티션 PU1로 분할될 수 있다. 또는, 2N X 2N 코딩 유닛(P01)은 수직 방향으로 비대칭적 파티션(asymmetric partition) 분할을 하여 nL X 2N(단, nL = 2N X 1/4) 크기의 파티션 PU0와 nR X 2N (단, nR = 2N X 3/4) 크기의 파티션 PU1로 분할하거나,또는 nL X 2N (단, nL = 2N X 3/4) 크기의 파티션 PU0와 nR X 2N (단, nR = 2N X 1/4) 크기의 파티션 PU1로 분할될 수 있다.
화면간 예측(Inter prediction)과 관련된 움직임 파라미터(움직임 벡터, 움직임 벡터의 차이값, 참조 픽처 인덱스, 참조 픽처 리스트등)를 포함한 모든 정보는 화면간 예측의 기본 단위인 예측 유닛별 또는 상기 파티션 분할된 예측 유닛별로 디코더로 전송된다. 여기서, 참조 픽처 리스트(reference picture list)는 현재 픽처(N번째 픽처)의 이전 픽처(N-1 번째 픽처)인 경우 리스트 0, 현재 픽처(N번째 픽처)의 이후 픽처(N+1 번째 픽처)인 경우 리스트 1의 값을 가질 수 있다. 참조 픽처 인덱스(reference picture index)는 현재 예측 유닛에 대한 참조 픽처 인덱스를 나타낸다.
HD(High Definition)급 이상의 해상도를 가지는 고해상도 영상의 경우, 하나의 픽처당 예측 블록(파티션 분할이 않된 예측 유닛 또는 파티션 분할된 예측 유닛)의 개수가 증가하게 되므로 각각의 예측 블록(파티션 분할이 않된 예측 유닛 또는 파티션 분할된 예측 유닛) 마다 움직임 파라미터를 디코더로 전송할 경우 전송되는 움직임 파라미터의 양이 매우 많아지게 되어 코딩 효율 측면에서 바람직하지 못하므로 코딩 효율을 높이기 위한 방법이 요구된다.
상기와 같은 문제점을 해결하기 위하여 블록 병합(block merging)을 이용하여 화면간 부호화를 수행할 수 있다. 블록 병합은 현재 블록(또는 예측 유닛)보다 이전에 부호화된 현재 블록의 주변 블록이 현재 블록 X와 동일한 움직임 파라미터(움직임 벡터, 움직임 벡터의 차이값, 참조 픽처 인덱스, 참조 픽처 리스트등)를 가지는 경우, 상기 동일한 움직임 파라미터를 가지는 주변 블록들을 상기 현재 블록과 병합하여 병합된 블록들을 동일한 움직임 파라미터로서 디코더로 전송함으로써 현재 블록의 움직임 파라미터를 별도로 전송하지 않고 디코더로 전송되는 움직임 파라미터의 양을 줄임으로써 코딩 효율을 효율을 높일 수 있다.
예를 들어, 하나의 픽처가 계층적으로 말단 코딩 유닛, 즉 최소 코딩 유닛(SCU)까지 분할(split)된 후, 최소 코딩 유닛(SCU)인 현재 블록(예측 유닛) X가 이전에 부호화된 좌측 주변 블록 A0 및 상측 주변 블록 B0와 동일한 움직임 벡터를 가진 경우, 블록 Ao, Bo, X는 병합되어 동일한 움직임 파라미터로서 디코더로 전송된다. 여기서, 움직임 파라미터는 예를 들어, 움직임 벡터, 움직임 벡터 차이값, 참조 픽처 인덱스, 참조 픽처 리스트등을 포함할 수 있다. 이 경우 블록 병합이 적용되었는지 여부를 나타내는 병합 플래그(merging flag)가 디코더로 전송될 수 있다.
도 2는 2N X 2N 크기의 예측 유닛(PU)이 수직 방향으로 2개의 N X 2N 파티션으로 분할된 경우의 분할된 파티션 블록에 대한 블록 병합을 설명하기 위한 개념도이다. 도 3은 도 2에서 분할된 2개의 파티션 블록에 대한 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 2를 참조하면, 2N X 2N 코딩 유닛(PU)이 2N X N 크기의 파티션 PU0 블록과 2N X N 크기의 파티션 PU1 블록으로 파티션 분할된다.
이하에서, 분할된 파티션 블록은 분할된 예측 유닛의 의미로서 예측 유닛이 된다. 이하, 도 2의 PU0은 제1 예측 유닛, PU1은 제2 예측 유닛이라고 한다.
이하에서, 파티션 블록(예측 유닛)의 좌측 경계와 접하고 있는 주변 블록을 좌측(left) 주변 블록이라고 정의한다. 도 2 좌측 그림에서는 빗금친 제1 예측 유닛 PU0의 경우 A1가 좌측(left) 주변 블록에 속하며, 도 2 우측 그림에서는 빗금친 제2 예측 유닛 PU1의 경우 A1가 좌측(left) 주변 블록에 속한다. 도 2 좌측 그림에서 빗금친 제1 예측 유닛 PU0에 대하여 A0는 좌측(left) 주변 블록 A1의 하측 경계에 접한 블록으로서 하측 연장 주변 블록이라고 정의하고, 도 2 우측 그림에서 빗금친 제2 예측 유닛 PU1에 대하여 A0는 좌측(left) 주변 블록 A1의 하측 경계에 접한 블록으로서 하측 연장 주변 블록이라고 정의한다.
파티션 블록(예측 유닛)의 상측 경계와 접하고 있는 주변 블록을 상측(top) 주변 블록이라고 정의하며, 도 2 좌측 그림에서는 빗금친 제1 예측 유닛 PU0의 경우 B1이 상측 주변 블록에 속하며, 도 2 우측 그림에서는 빗금친 제2 예측 유닛 PU1의 경우 B1이 상측 주변 블록에 속한다. 도 2 좌측 그림에서 빗금친 제1 예측 유닛 PU0에 대하여 B0는 상측 주변 블록 B1의 우측 경계에 접한 우측 연장 주변 블록이라 정의하고, 도 2 우측 그림에서 빗금친 제2 예측 유닛 PU1에 대하여 B0는 상측 주변 블록 B1의 우측 경계에 접한 우측 연장 주변 블록이라고 정의한다.
도 2 좌측 그림에서는 빗금친 제1 예측 유닛 PU0의 경우 B2는 제1 예측 유닛 PU0의 좌상측(left top) 에지에 접해있으며, B2를 좌상측(left top) 주변 블록이라고 정의한다.
다시 도 2를 참조하면, 도 2의 좌측 그림에서 빗금친 제1 예측 유닛 PU0에 대하여 블록 병합을 위한 후보 주변 블록으로 도 2의 좌측 그림에 도시된 5개의 주변 블록 B2, B1, B0, A1, A0가 사용되고, 도 2의 우측 그림에서 빗금친 제2 예측 유닛 PU1에 대하여 블록 병합을 위한 후보 주변 블록으로 도 2의 우측 그림에 도시된 5개의 주변 블록 B2, B1, B0, A1, A0가 사용된다.
도 2의 우측 그림에서, 제2 예측 유닛 PU1에 대하여 블록 병합을 위한 후보 주변 블록으로 5개의 주변 블록 B2, B1, B0, A1, A0을 구성하여 사용할 경우, 주변 블록들 중 좌측 주변 블록 A1의 움직임 파라미터는 제1 예측 유닛 PU0의 움직임 파라미터를 복원하기 전까지는 구할 수 없게 된다.
따라서, 도 3에 도시된 바와 같이, 제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트를 구성하는 프로세스가 먼저 수행되고 제1 예측 유닛 PU0에 대한 인코딩(또는 디코딩)이 이루어진 후 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트를 구성하는 프로세스가 수행되고 그 이후 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩)이 이루어진다.
그 결과, 제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트(merge candidate list)를 구성하는 프로세스와 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트를 구성하는 프로세스는 병렬적 처리(parallel process)가 불가능하다.
이하에서는 본 발명의 실시예들에 따른 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작을 수행하는 방법을 설명한다.
도 4 내지 도 11은 본 발명의 실시예들에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다. 도 12는 분할된 2개의 파티션 블록에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
먼저, 도 4 내지 도 8을 참조하면, 2N X 2N 코딩 유닛(PU)이 수직 방향으로 N X 2N 크기의 파티션 PU0 블록(예측 유닛)과 N X 2N 크기의 파티션 PU1 블록(예측 유닛)으로 파티션 분할된다. 이하에서, 도 4 내지 도 11의 PU0은 제1 예측 유닛, PU1은 제2 예측 유닛이라고 한다.
여기서, 코딩 유닛(PU)의 크기는 2N X 2N (N은 양의 정수)로서, N은 예를 들어 2, 4, 8, 16, 32가 될 수 있다. 대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위하여 공통 병합 후보 블록들을 사용하는 방식은 N값이 2, 4, 8, 16, 32 값을 가지는 코딩 유닛(PU)에 모두 적용될 수도 있고, 또는 N값이 특정값-예를 들어 2, 4, 8, 16, 32 값 중 하나-을 가지는 코딩 유닛(PU)에만 적용될 수도 있다. 예를 들어 최대 코딩 유닛(LCU; Largest Coding Unit)이 64x64인 경우 코딩 유닛(CU)의 크기가 작을수록 64x64 블록 전체에 대해 공통 병합 후보 블록들을 포함하는 공통병합 블록 리스트를 구성하는 횟수가 증가할 수 있으며, 이러한 경우 코딩 유닛(CU)의 크기가 큰 경우보다 작은 경우에 대해 공통 병합 후보 리스트를 적용할 경우 공통 병합 후보 리스트를 구성하는 횟수를 훨씬 더 크게 줄일 수 있어 복잡도를 줄일 수 있다. 한편, 공통 병합 후보 리스트를 더 많이 적용하여 병렬 처리를 할 경우 성능 손실(loss)는 커지게 된다. 따라서, 성능 손실과 복잡도를 모두 고려하여 예를들어, 예측 유닛(PU)의 최소 크기가 4x4인 경우, 코딩 유닛(CU)의 크기가 8x8인 경우에만(N값 2, 4, 8, 16, 32 값 중 2를 제외하고 가장 작은 4 선택) 상기 공통 병합 후보 블록들을 사용함으로써 큰 성능 손실 없이 복잡도를 크게 줄일 수 있다.
한편, 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는(non-overlapped) 움직임 추정 영역(motion estimation region)(또는 병합 추정 영역(merge estimation region))으로 분할될 수 있으며, 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정(motion estimation) 동작이 병렬(parallel) 처리가 아닌 순차적(sequential)으로 이루어지도록하고, 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛(PU)에 대하여 병렬(parallel)로 움직임 추정(motion estimation)이 이루어지도록 할 수 있다. 여기서, 상기 움직임 추정 영역의 크기는 최대 코딩 유닛(LCU)의 크기보다 작으며, 상기 움직임 추정 영역은 정사각형 형태를 가질 수 있다.
움직임 추정 영역의 크기(size)에 따라 움직임 추정 영역내의 예측 유닛(PU)들에 대하여 공통 병합 후보 블록들을 사용하여 병렬 처리를 허용할지 여부를 다르게 할 수 있다. 예를 들어, 최소 예측 유닛(PU) 크기가 4x4일 경우, 움직임 추정 영역의 크기가 4x4인 경우에는 최대 코딩 유닛(LCU)내의 모든 예측 유닛(PU)들에 대하여 순차적인 병합(sequential merge) 동작이 수행되고, 움직임 추정 영역의 크기가 8x8 이상일 경우만 움직임 추정 영역 내의 모든 예측 유닛(PU)들에 대해 병렬 병합(parallel merge)-병렬 처리를 가능하게 하기 위하여 공통 병합 후보 블록들을 사용하는 방식-이 허용되도록 할 수 있다. ,
상기와 같은 움직임 추정 영역의 크기에 따라 소정의 값이 PPS(picture parameter set)내에 포함되어 움직임 추정 영역의 크기에 따른 상기 병렬 병합 처리 허용 여부를 알려주기 위하여 인코더에서 디코더로 전송될 수 있다. 상기 소정의 값은 예를 들어 0, 1, 2, 3, 4가 될 수 있으며, 0, 1, 2, 3, 4 각각에 대해 움직임 추정 영역의 크기는 4x4, 8x8, 16x16, 32x32, 64x64가 될 수 있다.
현재 예측 유닛(PU)와 주변 예측 유닛(PU)이 동일한 움직임 추정 영역에 속하는 경우(동일한 움직임 추정 영역 내부에 포함될 경우)에는 해당 주변 예측 유닛(PU)은 이용가능 하지 않음(non-available)으로 처리되며, 현재 예측 유닛(PU)과 주변 예측 유닛(PU)이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛(PU)은 이용가능(available)으로 처리함으로써 상기 공통 병합 후보 블록들의 리스트에서의 움직임 벡터 추정에의 이용가능성을 결정할 수 있다. 현재 8x8 크기의 코딩 유닛(CU)의 주변 공통 병합 후보 블록들(주변 예측 유닛(PU)들) 중 일부가 이용가능 하지 않음(non-available)인 경우 이용가능(available)한 주변 공통 병합 후보 블록들을 이용하여 전술한 병합(merge) 처리 동작이 수행될 수 있다.
본 발명의 실시예들에 따른 도 4 내지 도 11에 도시된 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1에 대하여 공통적인 병합 후보 블록들을 사용하여 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작을 처리하도록 한다.
도 4를 참조하면, 제1 예측 유닛 PU0(430) 및 제2 예측 유닛 PU1(450)에 대한 공통 병합 후보 블록은 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록을 포함할 수 있다. 즉, 제1 예측 유닛 PU0(430)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록이 포함되고, 제2 예측 유닛 PU1(450)의 병합 후보 블록의 리스트는 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록이 포함된다.
LT 블록은 제1 예측 유닛 PU0(430)의 좌상측(left top) 주변 블록이며, LB1 블록은 제1 예측 유닛 PU0의 좌측 주변 블록들 중에서 가장 하단에 위치한 최하단 좌측 주변 블록이고, LB0는 제1 예측 유닛 PU0의 최하단 좌측 주변 블록 LB1의 하측 경계에 접한 블록인 하측 연장 주변 블록이다. RT1 블록은 제2 예측 유닛 PU1(450)의 상측 주변 블록들(CT2, …, RT1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, RT0는 최우측 상측 주변 블록 RT1의 우측 경계에 접한 블록인 우측 연장 주변 블록이다. CT1 블록 및 CT2 블록은 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1의 상측 주변 블록 중에 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선 - 즉 파티션 분할전 예측 유닛(PU)를 수직방향으로 절반으로 나누었을 때의 라인-의 연장선상의 좌측 및 우측에 위치하는 상측 중앙 주변 블록들이다. 여기서, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 좌측으로 인접한 상측 주변 블록 CT1 블록은 제1 상측 중앙 주변 블록이라고 정의 하고, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 우측으로 인접한 상측 주변 블록 CT2 블록은 제2 상측 중앙 주변 블록이라고 정의 한다. 즉, CT1 블록은 제1 예측 유닛 PU0의 상측 주변 블록들(…,CT1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, CT2는 제2 예측 유닛 PU1의 상측 주변 블록들(ct2, ….RT1) 중에서 가장 좌측에 위치한 최좌측 상측 주변 블록이다.
제1 예측 유닛 PU0(430)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록이 포함되고, 제2 예측 유닛 PU1(450)의 병합 후보 블록의 리스트에도 동일하게 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록이 포함된다. 또한, 제2 예측 유닛 PU1(450)의 병합 후보 블록의 리스트에 포함된 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록은 제1 예측 유닛 PU0의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어져 있다.
또한, 공통 병합 후보 블록 중 LT, LB1, LB0, CT1 및 CT2 블록은 도 2의 제1 예측 유닛 PU0의 후보 병합 블록들과 일치하므로 도 2의 제1 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 동일한 성능이 보장될 수 있다. 공통 병합 후보 블록 중 CT1, RT1, RT0 블록은 도 2의 제2 예측 유닛 PU1의 후보 병합 블록들 중 3개(B, B1, B0)와 일치하므로 도 2의 제2 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 성능 저하가 크지 않다.
따라서, 도 12에 도시된 바와 같이, 제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, CT1, CT2 블록)를 구성하는 제1 프로세스와 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, CT1, CT2 블록)를 구성하는 제2 프로세스는 따로 따로 수행되는 것이 아니라 1번의 공통 병합 후보 블록을 구성하는 프로세스(1210)로 수행될 수 있으며, 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(1230)는 제1 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(1220)와 병렬적으로 수행될 수 있게 되어 인코딩 시간이 크게 감소될 수 있다.
상기 공통 병합 후보 블록들은 인코더와 디코더에서 사전에 약속에 의해 미리 정해질 수 있으며, 이 경우 공통 병합 후보 블록들에 대한 정보는 인코더에서 디코더로 전송될 필요가 없다.
도 5는 본 발명의 다른 실시예에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 5는 공통 병합 후보 블록의 리스트에 LT, LB1, LB0, RT1, RT0, CT2의 6개 블록을 포함하며, 도 4와 달리 제1 상측 중앙 주변 블록 CT1이 빠져 있다는 점이 도 4의 실시예와의 차이점이다.
제1 상측 중앙 주변 블록 CT1이 공통 병합 후보 블록에서 빠짐으로써 도 4의 실시예에 비하여 병합 후보 블록을 구성하여 블록 병합을 처리하는 연산 복잡도가 감소될 수 있으며, 공통 병합 후보 블록 중 LT, LB1, LB0 및 CT2 블록은 도 2의 제1 예측 유닛 PU0의 5개의 후보 병합 블록들 중 4개와 일치하므로 도 2의 제1 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 성능 저하가 크지 않다.
도 6은 본 발명의 또 다른 실시예에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 6은 공통 병합 후보 블록의 리스트에 LT, LB1, LB0, RT1, RT0, CT1의 6개 블록을 포함하며, 도 4와 달리 제2 상측 중앙 주변 블록 CT2이 빠져 있다는 점이 도 4의 실시예와의 차이점이다.
제2 상측 중앙 주변 블록 CT2이 공통 병합 후보 블록에서 빠짐으로써 도 4의 실시예에 비하여 병합 후보 블록을 구성하여 블록 병합을 처리하는 연산 복잡도가 감소될 수 있으며, 공통 병합 후보 블록 중 LT, LB1, LB0 및 CT1 블록은 도 2의 제1 예측 유닛 PU0의 5개의 후보 병합 블록들 중 4개와 일치하므로 도 2의 제1 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 성능 저하가 크지 않으며, 공통 병합 후보 블록 중 CT1, RT1, RT0 블록은 도 2의 제2 예측 유닛 PU1의 후보 병합 블록들 중 3개(B, B1, B0)와 일치하므로 도 2의 제2 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 성능 저하가 크지 않다.
도 7는 본 발명의 또 다른 실시예에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 7은 공통 병합 후보 블록의 리스트에 LT, LB1, LB0, RT1, CT1, CT2의 6개 블록을 포함하며, 도 4와 달리 우측 연장 주변 블록 RT0이 빠져 있다는 점이 도 4의 실시예와의 차이점이다.
우측 연장 주변 블록 RT0이 공통 병합 후보 블록에서 빠짐으로써 도 4의 실시예에 비하여 병합 후보 블록을 구성하여 블록 병합을 처리하는 연산 복잡도가 감소될 수 있으며, 공통 병합 후보 블록 중 LT, LB1, LB0, CT1 및 CT2 블록은 도 2의 제1 예측 유닛 PU0의 후보 병합 블록들과 일치하므로 도 2의 제1 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 동일한 성능이 보장될 수 있다.
도 8은 본 발명의 또 다른 실시예에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 8은 공통 병합 후보 블록의 리스트에 LT, LB1, LB0, RT0, CT1, CT2의 6개 블록을 포함하며, 도 4와 달리 제2 예측 유닛 PU1(450)의 상측 주변 블록들(CT2, …, RT1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록인 RT1이 빠져 있다는 점이 도 4의 실시예와의 차이점이다.
우측 연장 주변 블록 RT1이 공통 병합 후보 블록에서 빠짐으로써 도 4의 실시예에 비하여 병합 후보 블록을 구성하여 블록 병합을 처리하는 연산 복잡도가 감소될 수 있으며, 공통 병합 후보 블록 중 LT, LB1, LB0, CT1 및 CT2 블록은 도 2의 제1 예측 유닛 PU0의 후보 병합 블록들과 일치하므로 도 2의 제1 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 동일한 성능이 보장될 수 있다.
2N X 2N 코딩 유닛(PU)이 수평 방향으로 2N X N 크기의 파티션 PU0 블록(예측 유닛)과 2N X N 크기의 파티션 PU1 블록(예측 유닛)으로 파티션 분할되는 경우에도 전술한 바와 같이 제1 예측 유닛 PU0과 제2 예측 유닛 PU1의 공통 병합 후보 블록으로 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록을 사용할 수 있다. 따라서, 수직 방향으로 파티션 분할된 경우 및 수평 방향으로 파티션 분할된 경우 모두 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스와 제1 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스가 병렬적으로 수행되어 인코딩 시간이 크게 감소될 수 있다.
또는, 본 발명의 다른 실시예에서는, 2N X 2N 코딩 유닛(PU)이 수평 방향으로 2N X N 크기의 파티션 PU0 블록(예측 유닛)과 2N X N 크기의 파티션 PU1 블록(예측 유닛)으로 파티션 분할될 경우 도 9 내지 도 10에 도시된 바와 같이 공통 병합 후보 블록을 구성할 수 있다.
도 10을 참조하면, 제1 예측 유닛 PU0(930) 및 제2 예측 유닛 PU1(950)에 대한 공통 병합 후보 블록은 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록을 포함할 수 있다. 즉, 제1 예측 유닛 PU0(930)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록이 포함되고, 제2 예측 유닛 PU1(950)의 병합 후보 블록의 리스트는 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록이 포함된다.
LT 블록은 제1 예측 유닛 PU0(930)의 좌상측(left top) 주변 블록이며, LB1 블록은 제2 예측 유닛 PU1의 좌측 주변 블록들 중에서 가장 하단에 위치한 최하단 좌측 주변 블록이고, LB0는 제2 예측 유닛 PU1의 좌측 주변 블록 LB1의 하측 경계에 접한 블록인 하측 연장 주변 블록이다. RT1 블록은 제1 예측 유닛 PU0(930)의 상측 주변 블록들(…, RT1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, RT0는 최우측 상측 주변 블록 RT1의 우측 경계에 접한 블록인 우측 연장 주변 블록이다. CT1 블록 및 CT2 블록은 제1 예측 유닛 PU0(930) 및 제2 예측 유닛 PU1(950)의 좌측 주변 블록 중에 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선 - 즉 파티션 분할전 예측 유닛(PU)를 수평방향으로 절반으로 나누었을 때의 라인-의 연장선상의 상측 및 하측에 위치하는 좌측 중앙 주변 블록들이다. 여기서, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 상측으로 인접한 좌측 주변 블록 CT1 블록은 제1 좌측 중앙 주변 블록이라고 정의하고, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 하측으로 인접한 좌측 주변 블록 CT2 블록은 제2 좌측 중앙 주변 블록이라고 정의한다. 즉, CT1 블록은 제1 예측 유닛 PU0의 좌측 주변 블록들(…,CT1) 중에서 가장 하단에 위치한 최하단 좌측 주변 블록이고, CT2는 제2 예측 유닛 PU1의 좌측 주변 블록들(CT2, ….LB1) 중에서 가장 상단에 위치한 최상단 좌측 주변 블록이다.
제1 예측 유닛 PU0(930)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록이 포함되고, 제2 예측 유닛 PU1(950)의 병합 후보 블록의 리스트에도 동일하게 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록이 포함된다. 또한, 제2 예측 유닛 PU1(950)의 병합 후보 블록의 리스트에 포함된 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록은 제1 예측 유닛 PU0의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어져 있다.
따라서, 도 12에 도시된 바와 같이, 제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, CT1, CT2 블록)를 구성하는 제1 프로세스와 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, CT1, CT2 블록)를 구성하는 제2 프로세스는 따로 따로 수행되는 것이 아니라 1번의 공통 병합 후보 블록을 구성하는 프로세스(1210)로 수행될 수 있으며, 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(1230)는 제1 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(1220)와 병렬적으로 수행될 수 있게 되어 인코딩 시간이 크게 감소될 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 10은 공통 병합 후보 블록의 리스트에 LT, LB1, RT1, CT1, CT2의 6개 블록을 포함하며, 도 9와 달리 제2 예측 유닛 PU1의 좌측 주변 블록 LB1의 하측 경계에 접한 블록인 하측 연장 주변 블록 LB0이 빠져 있다는 점이 도 9의 실시예와의 차이점이다.
하측 연장 주변 블록 LB0이 공통 병합 후보 블록에서 빠짐으로써 도 9의 실시예에 비하여 병합 후보 블록을 구성하여 블록 병합을 처리하는 연산 복잡도가 감소될 수 있다.
도 10에서는 수평 방향으로 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1로 파티션 분할한 경우 공통 병합 후보 블록 7개중에서 특정 후보 블록으로 LB0가 빠진 경우만을 도시하였으나, 다른 실시예에서는 CT1, CT2, RT0 또는 RT1이 빠질 수도 있다.
상기 도 4 내지 도 11에서는 공통 병합 후보 블록들의 리스트에는 7개 내지 6개의 블록을 가질 수 있으나, 공통 병합 후보 블록들의 리스트에 포함되는 블록들의 개수는 이에 한정되는 것은 아니며 5개, 4개의 후보 블록들로만 이루어질 수도 있다.
전술한 바와 같이 공통 병합 후보 블록 집합을 선정한 경우, 상기 각각의 병합 후보 블록 중 현재 블록(예측 유닛)과 유사한 움직임 파라미터를 갖는 블록을 선정하여 상기 선정된 병합 후보 블록과 현재 블록을 병합한다. 현재 블록(예측 유닛)과 유사한 움직임 파라미터를 갖는 블록의 선정은 현재 블록(예측 유닛)의 움직임 파라미터와 병합 후보 블록 집합의 각각의 병합 후보 블록의 움직임 파라미터의 차이값이 소정의 임계값 이하인 경우에 상기 임계값 이하의 차이값을 가지는 병합 후보 블록을 선정할 수 있다.
현재 블록과 상기 선정된 병합 후보 블록은 동일한 움직임 파라미터를 적용하여 디코더로 전송된다.
현재 블록이 상기 선정된 병합 후보 블록과 병합된 경우, 현재 블록의 움직임 파라미터를 디코더로 전송할 필요없이, 상기 병합된 블록의 정보를 디코더로 전송하고, 디코더는 상기 병합 블록 정보를 이용하여 이미 복호화된 병합 블록의 움직임 파라미터를 이용하여 현재 블록을 복호화할 수 있다.
전술한 실시예에서와 같이 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1이 공통 병합 후보 블록으로서 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 주변 블록들을 공간적(spatial) 병합 후보 블록을 포함하는 경우, 소정 크기를 가지는 코딩 유닛(CU)내의 파티션(partition) 타입 및 인덱스(indices)에 상관없이 모든 파티션(partition) 타입에 대하여 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1은 공통적인 공간적(spatial) 병합 후보 블록을 포함할 수 있다.
전술한 실시예에서는 공통 병합 후보 블록의 리스트에 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1이 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 주변 블록들로 이루어진 공간적(spatial) 병합 후보 블록을 포함하는 예를 설명하였으나, 본 발명의 다른 실시예에서는 상기 공통 병합 후보 블록의 리스트에 시간적(temporal) 병합 후보 블록이 더 포함될 수 있다.
제 1 예측 유닛 PU0과 제2 예측 유닛 PU1이 공통 병합 후보 블록 으로서 시간적(temporal) 병합 후보 블록을 포함하는 경우, 코딩 유닛(CU)내의 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1은 상기 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용할 수 있다. 여기서, 시간적 움직임 벡터 예측(Temporal MVP)의 경우 움직임 벡터(MV)와 참조 픽춰 인덱스(reference picture index)를 디코더로 전송한다. 여기서, 상기 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되어 병렬처리가 가능하도록 할 수 있다.
또는 상기 시간적(temporal) 병합 후보 블록은, 예를 들어, 현재 픽처의 이전 픽처에 포함된 현재 예측 유닛(PU)의 대응되는 위치(co-located)의 블록을 공통 병합 후보 리스트에 더 포함할 수 있다.
도 13은 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 장치의 블록도이다.
도 13을 참조하면, 영상 부호화 장치는 부호화기(530)를 포함하며, 부호화기(530)는 화면간 예측부(532), 인트라 예측부(535), 감산기(537), 변환부(539), 양자화부(541), 엔트로피 부호화부(543), 역양자화부(545), 역변환부(547), 가산기(549) 및 프레임 버퍼(551)를 포함할 수 있다. 화면간 예측부(532)는 움직임 예측부(531)와 움직임 보상부(533)를 포함한다.
부호화기(530)는 입력된 영상에 대해 부호화를 수행한다. 상기 입력된 영상은 예측 유닛(PU) 단위로 화면간 예측부(532)에서의 화면간 예측 또는 인트라 예측부(535)에서의 화면내 예측을 위해 사용될 수 있다.
부호화기(530)는 예측 유닛에 대해 부호화를 수행한다.
화면간 예측부(532)는 제공된 현재 부호화될 예측 유닛을 파티션 분할 방법을 사용하여 분할하고, 상기 파티션 분할된 블록 단위로 움직임을 추정하여 움직임 벡터를 생성한다.
움직임 예측부(531)는 제공된 현재 예측 유닛을 전술한 파티션 분할 방법을 사용하여 분할하고, 상기 파티션 분할된 블록 별로 현재 부호화되는 픽처의 앞 및/또는 뒤에 위치하는 적어도 하나의 참조 픽처(프레임 버퍼에 부호화가 완료되어 저장됨)에서 현재 부호화되는 파티션 분할된 블록과 유사한 영역을 검색하여 블록 단위로 움직임 벡터를 생성한다. 여기서, 상기 움직임 추정에 사용되는 블록의 크기는 가변될 수 있다.
움직임 보상부(533)는 움직임 예측부(531)로부터 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하여 얻어지는 예측 블록(또는 예측된 예측 유닛)을 생성한다.
화면간 예측부(532)는 전술한 블록 병합을 수행하여 병합된 블록별로 움직임 파라미터를 구한다. 즉, 화면간 예측부(532)는 전술한 바와 같이 제1 예측 유닛 및 제2 예측 유닛으로 대칭적 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택한다. 화면간 예측부(532)는 상기 선택된 적어도 하나의 공통 병합 후보 블록을 상기 현재 코딩 유닛과 병합한 블록들의 움직임 파라미터를 구한다. 전술한 블록 병합을 수행하여 병합된 블록별 움직임 파라미터는 디코더로 전송된다.
인트라 예측부(535)는 블록간의 화소 상관도를 사용하여 화면내 예측 부호화를 수행한다. 인트라 예측부(535)는 현재 예측 유닛의 예측 블록을 현재 프레임(또는 픽처)내의 블록의 이미 부호화된 화소값으로부터 화소값을 예측하여 구하는 인트라 예측(Intra Prediction)을 수행한다.
감산기(537)는 움직임 보상부(533)에서 제공된 예측 블록(또는 예측된 예측 유닛)과 현재 블록(또는 현재 예측 유닛)을 감산하여 잔여값을 생성하고, 변환부(539) 및 양자화부(541)는 상기 잔여값(residue)을 DCT(Discrete Cosine Transform)변환하고 양자화한다. 여기서, 변환부(539)는 예측 유닛 크기 정보에 기초하여 변환을 수행할 수 있고, 예를 들어, 최대 32x32 또는 최대 64x64 픽셀 크기로 변환을 수행할 수 있다. 또는 변환부(539)는 예측 유닛 결정부(510)로부터 제공된 예측 유닛 크기 정보와 독립적으로 별도의 변환 유닛(Transform Unit; TU) 단위로 변환을 수행할 수 있다. 예를 들어, 변환 유닛(TU) 크기는 최소 4 X 4 픽셀 크기부터 최대 32x32 픽셀 크기를 가질 수 있다. 또는 변환 유닛(TU)의 최대 크기는 32x32 픽셀 크기 이상- 예를 들어 64x64 픽셀 크기-를 가질수도 있다. 상기 변환 유닛 크기 정보는 변환 유닛 정보에 포함되어 디코더로 전송될 수 있다.
엔트로피 부호화부(543)는 양자화된 DCT 계수들과 움직임 벡터, 결정된 예측 유닛 정보, 파티션 정보, 변환 유닛 정보 등의 헤더 정보를 엔트로피 부호화하여 비트 스트림을 생성한다.
역양자화부(545) 및 역변환부(547)는 양자화부(541)를 통해 양자화된 데이터를 역양자화하고 역변환한다. 가산기(549)는 역변환된 데이터와 움직임 보상부(533)에서 제공된 예측된 예측 유닛을 더하여 영상을 복원하여 프레임 버퍼(551)에 제공하고, 프레임 버퍼(551)는 복원된 영상이 저장된다.
도 14는 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 방법의 순서도이다.
도 14를 참조하면, 먼저 부호화 장치에 입력 영상이 입력되면(단계 610), 상기 입력 영상에 대해 코딩 유닛을 파티션 분할 방법을 사용하여 분할하고, 상기 파티션 분할된 블록 별로 현재 부호화되는 픽처의 앞 및/또는 뒤에 위치하는 적어도 하나의 참조 픽처(프레임 버퍼(551)에 부호화가 완료되어 저장됨)에서 현재 부호화되는 파티션 분할된 블록과 유사한 영역을 검색하여 블록 단위로 움직임 벡터를 생성하고, 생성된 움직임 벡터와 픽처를 이용하여 움직임 보상을 수행함으로써 예측 블록(또는 예측된 예측 유닛)을 생성한다(단계 620).
그 다음, 부호화 장치는 파티션 분할된 예측 유닛(PU)에 대하여 전술한 블록 병합을 수행하여 병합된 블록별로 움직임 파라미터를 생성한다(단계 630). 전술한 블록 병합을 수행하여 병합된 블록별 움직임 파라미터는 디코더로 전송된다.
부호화 장치는 현재 예측 유닛과 상기 예측된 예측 유닛 사이의 차이를 구하여 잔여값(residue)을 생성한다(단계 640).
이후, 부호화 장치는 생성된 잔여값을 변환 및 양자화한 후(단계 650), 양자화된 DCT 계수들과 움직임 파라미터 등의 헤더 정보들을 엔트로피 부호화하여 비트 스트림을 생성한다(단계 660).
본 발명의 실시예들에 따른 블록 병합을 이용한 영상 부호화 장치 및 부호화 방법에서는 각각의 파티션 분할된 블록(예측 유닛)에 대해 움직임 파라미터를 전송하지 않고 블록 병합을 이용하여 병합된 블록 전체에 대해 한번만 움직임 파라미터를 전송하여 움직임 파라미터의 전송량을 줄임으로써 HD급 또는 울트라 HD(Ultra High Definition)급 이상의 고해상도를 가지는 영상의 부호화 효율을 향상시킬 수 있다.
본 발명의 실시예들에 따른 블록 병합을 이용한 영상 복호화 장치 및 복호화 방법에서는, 전술한 부호화기로부터 전송된 블록 병합된 블록의 움직임 파라미터를 이용하여 해당 블록의 움직임 벡터를 복원하여 움직임 예측부에서 블록 단위로 움직임 벡터를 생성하고, 움직임 보상부에서 상기 움직임 예측부에서 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행한다.
영상 복호화 장치는 복호화기를 포함하며, 복호화기는 화면간 예측부, 인트라 예측부를 포함한다. 복호화기의 나머지 구성요소는 공지된 구성이므로 이하 자세한 설명은 생략한다. 화면간 예측부는 움직임 예측부와 움직임 보상부로 이루어진다.
화면간 예측부는 부호화기와 마찬가지로 제1 예측 유닛 및 제2 예측 유닛으로 대칭적 파티션 분할된 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하고, 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행한다.
상기 블록 병합을 이용한 영상 복호화 장치 및 복호화 방법의 경우, 코딩 유닛(PU)의 크기는 2N X 2N (N은 양의 정수)로서, N은 예를 들어 2, 4, 8, 16, 32가 될 수 있다. 대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위하여 공통 병합 후보 블록들을 사용하는 방식은 N값이 2, 4, 8, 16, 32 값을 가지는 코딩 유닛(PU)에 모두 적용될 수도 있고, 또는 N값이 특정값-예를 들어 2, 4, 8, 16, 32 값 중 하나-을 가지는 코딩 유닛(PU)에만 적용될 수도 있다. 예를 들어 최대 코딩 유닛(LCU; Largest Coding Unit)이 64x64인 경우 코딩 유닛(CU)의 크기가 작을수록 64x64 블록 전체에 대해 공통 병합 후보 블록들을 포함하는 공통병합 블록 리스트를 구성하는 횟수가 증가할 수 있으며, 이러한 경우 코딩 유닛(CU)의 크기가 큰 경우보다 작은 경우에 대해 공통 병합 후보 리스트를 적용할 경우 공통 병합 후보 리스트를 구성하는 횟수를 훨씬 더 크게 줄일 수 있어 복잡도를 줄일 수 있다. 한편, 공통 병합 후보 리스트를 더 많이 적용하여 병렬 처리를 할 경우 성능 손실(loss)는 커지게 된다. 따라서, 성능 손실과 복잡도를 모두 고려하여 예를들어, 예측 유닛(PU)의 최소 크기가 4x4인 경우, 코딩 유닛(CU)의 크기가 8x8인 경우에만(N값 2, 4, 8, 16, 32 값 중 2를 제외하고 가장 작은 4 선택) 상기 공통 병합 후보 블록들을 사용함으로써 큰 성능 손실 없이 복잡도를 크게 줄일 수 있다.
한편, 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는(non-overlapped) 움직임 추정 영역으로 분할될 수 있으며, 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정(motion estimation) 동작이 병렬(parallel) 처리가 아닌 순차적(sequential)으로 이루어지도록하고, 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛(PU)에 대하여 병렬(parallel)로 움직임 추정(motion estimation)이 이루어지도록 할 수 있다. 여기서, 상기 움직임 추정 영역의 크기는 최대 코딩 유닛(LCU)의 크기보다 작으며, 상기 움직임 추정 영역은 정사각형 형태를 가질 수 있다.
움직임 추정 영역의 크기(size)에 따라 움직임 추정 영역내의 예측 유닛(PU)들에 대하여 공통 병합 후보 블록들을 사용하여 병렬 처리를 허용할지 여부를 다르게 할 수 있다. 예를 들어, 최소 예측 유닛(PU) 크기가 4x4일 경우, 움직임 추정 영역의 크기가 4x4인 경우에는 최대 코딩 유닛(LCU)내의 모든 예측 유닛(PU)들에 대하여 순차적인 병합(sequential merge) 동작이 수행되고, 움직임 추정 영역의 크기가 8x8 이상일 경우만 움직임 추정 영역 내의 모든 예측 유닛(PU)들에 대해 병렬 병합(parallel merge)-병렬 처리를 가능하게 하기 위하여 공통 병합 후보 블록들을 사용하는 방식-이 허용되도록 할 수 있다.
현재 예측 유닛(PU)와 주변 예측 유닛(PU)이 동일한 움직임 추정 영역에 속하는 경우(동일한 움직임 추정 영역 내부에 포함될 경우)에는 해당 주변 예측 유닛(PU)은 이용가능 하지 않음(non-available)으로 처리되며, 현재 예측 유닛(PU)과 주변 예측 유닛(PU)이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛(PU)은 이용가능(available)으로 처리함으로써 상기 공통 병합 후보 블록들의 리스트에서의 움직임 벡터 추정에의 이용가능성을 결정할 수 있다. 현재 8x8 크기의 코딩 유닛(CU)의 주변 공통 병합 후보 블록들(주변 예측 유닛(PU)들) 중 일부가 이용가능 하지 않음(non-available)인 경우 이용가능(available)한 주변 공통 병합 후보 블록들을 이용하여 전술한 병합(merge) 처리 동작이 수행될 수 있다.
전술한 부호화기에서와 같이 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1이 공통 병합 후보 블록으로서 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 주변 블록들을 공간적(spatial) 병합 후보 블록을 포함하는 경우, 소정 크기를 가지는 코딩 유닛(CU)내의 파티션(partition) 타입 및 인덱스(indices)에 상관없이 모든 파티션(partition) 타입에 대하여 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1은 공통적인 공간적(spatial) 병합 후보 블록을 포함할 수 있다.
전술한 부호화기에서와 같이 공통 병합 후보 블록의 리스트에 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1이 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 주변 블록들로 이루어진 공간적(spatial) 병합 후보 블록을 포함하며, 추가로 상기 공통 병합 후보 블록의 리스트에 시간적(temporal) 병합 후보 블록이 더 포함될 수도 있다.
제 1 예측 유닛 PU0과 제2 예측 유닛 PU1이 공통 병합 후보 블록 으로서 시간적(temporal) 병합 후보 블록을 포함하는 경우, 코딩 유닛(CU)내의 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1은 상기 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용할 수 있다. 여기서, 상기 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되어 병렬처리가 가능하도록 할 수 있다.
Claims (25)
- 제1 예측 유닛 및 제2 예측 유닛으로 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계; 및
상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하여 상기 선택된 후보 블록 정보를 상기 제1 예측 유닛 및 제2 예측 유닛마다 복호화기로 전송하는 단계를 포함하되,
상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함되는 것을 특징으로 하는 영상 부호화 방법. - 제 1항에 있어서, 상기 현재 코딩 유닛은 상기 제1 예측 유닛 및 제2 예측 유닛으로 대칭적으로 분할되며, 상기 공통 병합 후보 블록 리스트는 상기 제1 예측 유닛 및 제2 예측 유닛에 대해 블록 병합을 수행할 경우 공통적으로 사용되는 병합 후보 블록들을 포함하는 것을 특징으로 하는 영상 부호화 방법.
- 제 2항에 있어서, 상기 제2 예측 유닛의 공통 병합 후보 블록들은 상기 제1 예측 유닛의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어지는 것을 특징으로 하는 영상 부호화 방법.
- 제 1항에 있어서, 상기 현재 코딩 유닛의 크기는 8x8인 경우에만 상기 블록 병합을 수행하는 것을 특징으로 하는 영상 부호화 방법.
- 제 1항에 있어서, 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는 움직임 추정 영역으로 분할되고, 상기 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정이 순차적(sequential)으로 이루어지고, 상기 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛에 대해서는 병렬(parallel)로 움직임 추정이 이루어지는 것을 특징으로 하는 영상 부호화 방법.
- 제 3항에 있어서, 상기 움직임 추정 영역의 크기에 따라 상기 움직임 추정 영역내의 예측 유닛들에 대하여 상기 공통 병합 후보 블록들을 사용하여 병렬 병합(parallel merge)을 허용할지 여부를 다르게 설정하는 것을 특징으로 하는 영상 부호화 방법.
- 제 6항에 있어서, 상기 움직임 추정 영역의 크기가 소정 크기 이상일 경우에만 상기 움직임 추정 영역 내의 모든 예측 유닛들에 대해 상기 병렬 병합(parallel merge)이 허용되도록 하는 것을 특징으로 하는 영상 부호화 방법.
- 제 7항에 있어서, 상기 움직임 추정 영역의 크기에 따른 상기 병렬 병합 처리 허용 여부를 알려주기 위하여 상기 움직임 추정 영역의 크기에 따라 소정의 값이 PPS(picture parameter set)내에 포함되어 부호화기에서 상기 복호화기로 전송되는 것을 특징으로 하는 영상 부호화 방법.
- 제 5항에 있어서, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 동일한 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능 하지 않음(non-available)으로 처리되고, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능(available)으로 처리하는 것을 특징으로 하는 영상 부호화 방법.
- 삭제
- 제 1항에 있어서, 상기 현재 코딩 유닛내의 상기 제 1 예측 유닛과 제2 예측 유닛은 상기 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 상기 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용하는 것을 특징으로 하는 영상 부호화 방법.
- 제 1항에 있어서, 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되는 것을 특징으로 하는 영상 부호화 방법.
- 제 1항에 있어서, 상기 공통 병합 후보 블록들은 부호화기와 상기 복호화기간에 사전에 약속에 의해 미리 정해지는 것을 특징으로 하는 영상 부호화 방법.
- 제1 예측 유닛 및 제2 예측 유닛으로 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계;
상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하는 단계; 및 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하는 단계를 포함하되,
상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함되는 영상 복호화 방법. - 제 14항에 있어서, 상기 제2 예측 유닛의 공통 병합 후보 블록들은 상기 제1 예측 유닛의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어지는 것을 특징으로 하는 영상 복호화 방법.
- 제 14항에 있어서, 상기 현재 코딩 유닛의 크기는 8x8인 경우에만 상기 블록 병합을 수행하는 것을 특징으로 하는 영상 복호화 방법.
- 제 14항에 있어서, 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는 움직임 추정 영역으로 분할되고, 상기 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정이 순차적(sequential)으로 이루어지고, 상기 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛에 대해서는 병렬(parallel)로 움직임 추정이 이루어지는 것을 특징으로 하는 영상 복호화 방법.
- 제 17항에 있어서, 상기 움직임 추정 영역의 크기에 따라 상기 움직임 추정 영역내의 예측 유닛들에 대하여 상기 공통 병합 후보 블록들을 사용하여 병렬 병합(parallel merge)을 허용할지 여부를 다르게 설정된 것을 특징으로 하는 영상 복호화 방법.
- 제 18항에 있어서, 상기 움직임 추정 영역의 크기가 소정 크기 이상일 경우에만 상기 움직임 추정 영역 내의 모든 예측 유닛들에 대해 상기 병렬 병합(parallel merge)이 허용되는 것을 특징으로 하는 영상 복호화 방법.
- 제 18항에 있어서, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 동일한 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능 하지 않음(non-available)으로 처리되고, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능(available)으로 처리하는 것을 특징으로 하는 영상 복호화 방법.
- 삭제
- 제 14항에 있어서, 상기 현재 코딩 유닛내의 상기 제 1 예측 유닛과 제2 예측 유닛은 상기 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 상기 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용하는 것을 특징으로 하는 영상 복호화 방법.
- 제 14항에 있어서, 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되는 것을 특징으로 하는 영상 복호화 방법.
- 제1 예측 유닛 및 제2 예측 유닛으로 대칭적 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하는 화면간 예측부를 포함하되,
상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함되는 것을 특징으로 하는 영상 부호화 장치. - 제1 예측 유닛 및 제2 예측 유닛으로 대칭적 파티션 분할된 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하고, 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하는 화면간 예측부를 포함하되,
상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함되는 영상 복호화 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110123208 | 2011-11-23 | ||
KR20110123208 | 2011-11-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130057385A KR20130057385A (ko) | 2013-05-31 |
KR101354086B1 true KR101354086B1 (ko) | 2014-01-28 |
Family
ID=48665130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120016615A KR101354086B1 (ko) | 2011-11-23 | 2012-02-17 | 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101354086B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018160034A1 (ko) * | 2017-03-03 | 2018-09-07 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
WO2019231206A1 (ko) * | 2018-05-30 | 2019-12-05 | 디지털인사이트주식회사 | 영상 부호화/복호화 방법 및 장치 |
US10951916B2 (en) | 2017-03-03 | 2021-03-16 | Sk Telecom Co., Ltd. | Apparatus and method for video encoding or decoding |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101660031B1 (ko) * | 2015-06-24 | 2016-09-26 | 주식회사 에스원 | 고속 영상 부호화 방법 및 그 장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110071047A (ko) * | 2009-12-20 | 2011-06-28 | 엘지전자 주식회사 | 비디오 신호 디코딩 방법 및 장치 |
-
2012
- 2012-02-17 KR KR1020120016615A patent/KR101354086B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110071047A (ko) * | 2009-12-20 | 2011-06-28 | 엘지전자 주식회사 | 비디오 신호 디코딩 방법 및 장치 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018160034A1 (ko) * | 2017-03-03 | 2018-09-07 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
US10951916B2 (en) | 2017-03-03 | 2021-03-16 | Sk Telecom Co., Ltd. | Apparatus and method for video encoding or decoding |
WO2019231206A1 (ko) * | 2018-05-30 | 2019-12-05 | 디지털인사이트주식회사 | 영상 부호화/복호화 방법 및 장치 |
US11350118B2 (en) | 2018-05-30 | 2022-05-31 | Digitalinsights Inc. | Image encoding/decoding method and device |
US11356687B2 (en) | 2018-05-30 | 2022-06-07 | Digitalinsights Inc. | Image encoding/decoding method and device |
US11818378B2 (en) | 2018-05-30 | 2023-11-14 | Digitalinsights Inc. | Image encoding/decoding method and device |
US11831890B2 (en) | 2018-05-30 | 2023-11-28 | Digitalinsights Inc. | Image encoding/decoding method and device |
Also Published As
Publication number | Publication date |
---|---|
KR20130057385A (ko) | 2013-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6764507B2 (ja) | インタ予測方法及びその装置 | |
KR102435393B1 (ko) | 참조 유닛 결정 방법 및 장치 | |
US8929460B1 (en) | Method and encoding/decoding of video using common merging candidate set of asymmetric partitions | |
CN108702501B (zh) | 用于色度分量预测的方法及装置 | |
KR101748620B1 (ko) | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 | |
KR101292093B1 (ko) | 화면내 예측 부호화를 위한 영상 부호화/복호화 장치 및 방법 | |
DK2684362T3 (en) | Video encoding and decoding | |
US9294769B2 (en) | Intra-prediction method using filtering, and apparatus using the method | |
US10681354B2 (en) | Image encoding/decoding method and apparatus therefor | |
CN104604232A (zh) | 用于编码多视点图像的方法及装置,以及用于解码多视点图像的方法及装置 | |
KR101205017B1 (ko) | 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 | |
KR20190090867A (ko) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
KR101354086B1 (ko) | 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 | |
US20110249751A1 (en) | Prediction of images by repartitioning of a portion of reference causal zone, coding and decoding using such a prediction | |
KR20110090841A (ko) | 가중치 예측을 이용한 영상 부호화/복호화 장치 및 방법 | |
JP6528635B2 (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム | |
KR101688085B1 (ko) | 고속 인트라 예측을 위한 영상 부호화 방법 및 장치 | |
KR20130122566A (ko) | 깊이 정보를 이용한 움직임 벡터 예측을 위한 3차원 영상의 부호화 방법 및 장치, 및 복호화 방법 및 장치 | |
KR20130055317A (ko) | 순차적으로 후보 블록을 선정하여 블록 병합을 이용한 영상 부호화/복호화 장치 및 방법 | |
KR20130055314A (ko) | 공통 병합 가능 블록 집합을 이용한 영상 부호화/복호화 장치 및 방법 | |
JP6323185B2 (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム | |
KR20130055315A (ko) | 서로 다른 병합 가능 블록 집합을 이용한 영상 부호화/복호화 장치 및 방법 | |
KR20130055318A (ko) | 제한된 후보 블록을 기반으로 블록 병합을 이용한 영상 부호화/복호화 장치 및 방법 | |
KR20130107611A (ko) | 상향식 예측 모드 방법을 사용한 영상 부복호화 방법 및 이러한 방법을 사용하는 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |