KR101205017B1 - 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 - Google Patents

비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 Download PDF

Info

Publication number
KR101205017B1
KR101205017B1 KR1020120016616A KR20120016616A KR101205017B1 KR 101205017 B1 KR101205017 B1 KR 101205017B1 KR 1020120016616 A KR1020120016616 A KR 1020120016616A KR 20120016616 A KR20120016616 A KR 20120016616A KR 101205017 B1 KR101205017 B1 KR 101205017B1
Authority
KR
South Korea
Prior art keywords
prediction unit
block
merge candidate
prediction
blocks
Prior art date
Application number
KR1020120016616A
Other languages
English (en)
Inventor
이충구
이용재
김휘
Original Assignee
(주)휴맥스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=47565371&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101205017(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by (주)휴맥스 filed Critical (주)휴맥스
Priority to KR1020120016616A priority Critical patent/KR101205017B1/ko
Priority to EP15168917.1A priority patent/EP2942961A1/en
Priority to EP12193166.1A priority patent/EP2597872A3/en
Priority to US13/683,771 priority patent/US8861616B2/en
Priority to CN2012104826863A priority patent/CN103139564A/zh
Priority to CN201610728919.1A priority patent/CN106101721B/zh
Priority to CN201510226239.5A priority patent/CN104837025B/zh
Priority to CN201510209330.6A priority patent/CN104918045B/zh
Priority to CN201610833394.8A priority patent/CN107071457B/zh
Priority to CN201610726637.8A priority patent/CN106101720B/zh
Publication of KR101205017B1 publication Critical patent/KR101205017B1/ko
Application granted granted Critical
Priority to US14/308,638 priority patent/US9154790B2/en
Priority to US14/478,715 priority patent/US9172959B2/en
Priority to US14/478,747 priority patent/US8929460B1/en
Priority to US14/479,023 priority patent/US9167250B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

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 예측 유닛마다 복호화기로 전송하는 단계를 포함한다.

Description

비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법{METHODS FOR ENCODING/DECODING OF VIDEO USING COMMON MERGING CANDIDATE SET OF ASYMMETRIC PARTITIONS}
본 발명은 영상의 부호화 및 복호화에 관한 것으로, 더욱 상세하게는 블록 병합을 이용한 영상 부호화 방법, 부호화 장치, 복호화 방법 및 복호화 장치에 관한 것이다.
일반적으로 영상 압축 방법에서는 압축 효율을 높이기 위해 픽쳐들의 중복도를 제거하는 화면간 예측(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 예측 유닛 PU0에 대한 인코딩(또는 디코딩) 프로세스와 병렬적으로 수행될 수 있게 되어 인코딩 시간이 크게 감소될 수 있다.
도 1은 대칭적 파티션 분할(symmetric partitioning) 방식을 설명하기 위한 개념도이다.
도 2는 비대칭적 파티션 분할(asymmetric partitioning) 방식을 설명하기 위한 개념도이다.
도 3는 2N X 2N 크기의 예측 유닛(PU)이 수직 방향으로 2개의 N X 2N 파티션으로 분할된 경우의 분할된 파티션 블록에 대한 블록 병합을 설명하기 위한 개념도이다.
도 4는 도 3에서 분할된 2개의 파티션 블록에 대한 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 5 내지 도 7은 본 발명의 실시예들에 따른 비대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도 8은 분할된 2개의 파티션 블록에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 9는 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 장치의 블록도이다.
도 10은 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 방법의 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제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에서는 코딩 유닛(CU)의 크기가 예를 들어 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로 분할될 수 있다.
도 2는 비대칭적 파티션 분할(asymmetric partitioning) 방식을 설명하기 위한 개념도이다. 도 2에서는 코딩 유닛(CU)의 크기가 예를 들어 2N X 2N(N은 자연수로서 단위는 pixel)인 경우를 예로 들어 도시하였다.
도 2를 참조하면, 2N X 2N 코딩 유닛은 예측 모드가 화면간 예측 모드인 경우 화면간 예측을 수행하기 위하여 수평 방향으로 비대칭적 파티션(asymmetric partition) 분할을 하여 2N X nU(단, nU = 2N X 1/4) 크기의 파티션 PU0(P11a)와 2N X nD(단, nD = 2N X 3/4) 크기의 파티션 PU1(P21a)로 분할하거나,또는 2N X nU(단, nU = 2N X 3/4) 크기의 파티션 PU0(P12a)와 2N X nD(단, nD = 2N X 1/4) 크기의 파티션 PU1(p22a)로 분할될 수 있다. 또는, 2N X 2N 코딩 유닛은 수직 방향으로 비대칭적 파티션(asymmetric partition) 분할을 하여 nL X 2N(단, nL = 2N X 1/4) 크기의 파티션 PU0(P13a)와 nR X 2N (단, nR = 2N X 3/4) 크기의 파티션 PU1(P23a)로 분할하거나,또는 nL X 2N (단, nL = 2N X 3/4) 크기의 파티션 PU0(P14a)와 nR X 2N (단, nR = 2N X 1/4) 크기의 파티션 PU1(P24a)로 분할될 수 있다.
화면간 예측(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)가 디코더로 전송될 수 있다.
도 3는 2N X 2N 크기의 코딩 유닛(CU)이 수직 방향으로 2개의 N X 2N 파티션으로 분할된 경우의 분할된 파티션 블록에 대한 블록 병합을 설명하기 위한 개념도이다. 도 4는 도 3에서 분할된 2개의 파티션 블록에 대한 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
도 3를 참조하면, 2N X 2N 코딩 유닛(CU)이 2N X N 크기의 파티션 PU0 블록과 2N X N 크기의 파티션 PU1 블록으로 파티션 분할된다.
이하에서, 분할된 파티션 블록은 분할된 예측 유닛의 의미로서 예측 유닛이 된다. 이하, 도 3의 PU0은 제1 예측 유닛, PU1은 제2 예측 유닛이라고 한다.
이하에서, 파티션 블록(예측 유닛)의 좌측 경계와 접하고 있는 주변 블록을 좌측(left) 주변 블록이라고 정의한다. 도 3 좌측 그림에서는 빗금친 제1 예측 유닛 PU0의 경우 A1가 좌측(left) 주변 블록에 속하며, 도 3 우측 그림에서는 빗금친 제2 예측 유닛 PU1의 경우 A1가 좌측(left) 주변 블록에 속한다. 도 3 좌측 그림에서 빗금친 제1 예측 유닛 PU0에 대하여 A0는 좌측(left) 주변 블록 A1의 하측 경계에 접한 블록으로서 하측 연장 주변 블록이라고 정의하고, 도 3 우측 그림에서 빗금친 제2 예측 유닛 PU1에 대하여 A0는 좌측(left) 주변 블록 A1의 하측 경계에 접한 블록으로서 하측 연장 주변 블록이라고 정의한다.
파티션 블록(예측 유닛)의 상측 경계와 접하고 있는 주변 블록을 상측(top) 주변 블록이라고 정의하며, 도 3 좌측 그림에서는 빗금친 제1 예측 유닛 PU0의 경우 B1이 상측 주변 블록에 속하며, 도 3 우측 그림에서는 빗금친 제2 예측 유닛 PU1의 경우 B1이 상측 주변 블록에 속한다. 도 3 좌측 그림에서 빗금친 제1 예측 유닛 PU0에 대하여 B0는 상측 주변 블록 B1의 우측 경계에 접한 우측 연장 주변 블록이라 정의하고, 도 3 우측 그림에서 빗금친 제2 예측 유닛 PU1에 대하여 B0는 상측 주변 블록 B1의 우측 경계에 접한 우측 연장 주변 블록이라고 정의한다.
도 3 좌측 그림에서는 빗금친 제1 예측 유닛 PU0의 경우 B2는 제1 예측 유닛 PU0의 좌상측(left top) 에지에 접해있으며, B2를 좌상측(left top) 주변 블록이라고 정의한다.
다시 도 3를 참조하면, 도 3의 좌측 그림에서 빗금친 제1 예측 유닛 PU0에 대하여 블록 병합을 위한 후보 주변 블록으로 도 3의 좌측 그림에 도시된 5개의 주변 블록 B2, B1, B0, A1, A0가 사용되고, 도 3의 우측 그림에서 빗금친 제2 예측 유닛 PU1에 대하여 블록 병합을 위한 후보 주변 블록으로 도 3의 우측 그림에 도시된 5개의 주변 블록 B2, B1, B0, A1, A0가 사용된다.
도 3의 우측 그림에서, 제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)가 불가능하다.
이하에서는 본 발명의 실시예들에 따른 비대칭적으로 파티션 분할된 예측 유닛에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작을 수행하는 방법을 설명한다.
도 5 내지 도 7은 본 발명의 실시예들에 따른 비대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다. 도 8은 분할된 2개의 파티션 블록에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작이 진행되는 과정을 설명하기 위한 개념도이다.
먼저, 도 5 내지 도 6을 참조하면, 2N X 2N 코딩 유닛(CU)이 수직 방향으로 nL X 2N (단, nL = 2N X 1/4) 크기의 파티션 PU0 블록(예측 유닛)과 nR X 2N (단, nR = 2N X 3/4) 크기의 파티션 PU1 블록(예측 유닛)으로 파티션 분할된다. 이하에서, 도 5 내지 도 7의 PU0은 제1 예측 유닛, PU1은 제2 예측 유닛이라고 한다. 여기서, 코딩 유닛(CU)의 크기는 2N X 2N (N은 양의 정수)로서, N은 예를 들어 2, 4, 8, 16, 32가 될 수 있다. 비대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위하여 공통 병합 후보 블록들을 사용하는 방식은 N값이 2, 4, 8, 16, 32 값을 가지는 코딩 유닛(CU)에 모두 적용될 수도 있고, 또는 N값이 특정값-예를 들어 2, 4, 8, 16, 32 값 중 하나-을 가지는 코딩 유닛(CU)에만 적용될 수도 있다. 예를 들어 최대 코딩 유닛(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) 처리 동작이 수행될 수 있다.
본 발명의 실시예들에 따른 도 5 내지 도 7에 도시된 비대칭적으로 파티션 분할된 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1에 대하여 공통적인 병합 후보 블록들을 사용하여 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1에 대하여 병렬적으로 블록 병합 및 인코딩(또는 디코딩) 동작을 처리하도록 한다.
도 5를 참조하면, 제1 예측 유닛 PU0(530) 및 제2 예측 유닛 PU1(550)에 대한 공통 병합 후보 블록은 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록을 포함할 수 있다. 즉, 제1 예측 유닛 PU0(530)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록이 포함되고, 제2 예측 유닛 PU1(550)의 병합 후보 블록의 리스트는 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록이 포함된다.
LT 블록은 제1 예측 유닛 PU0(530)의 좌상측(left top) 주변 블록이며, LB1 블록은 제1 예측 유닛 PU0의 좌측 주변 블록들 중에서 가장 하단에 위치한 최하단 좌측 주변 블록이고, LB0는 제1 예측 유닛 PU0의 최하단 좌측 주변 블록 LB1의 하측 경계에 접한 블록인 하측 연장 주변 블록이다. RT1 블록은 제2 예측 유닛 PU1(550)의 상측 주변 블록들(CT2, …, RT1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, RT0는 최우측 상측 주변 블록 RT1의 우측 경계에 접한 블록인 우측 연장 주변 블록이다. CT1 블록 및 CT2 블록은 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1의 상측 주변 블록 중에 파티션 분할전 예측 유닛(PU)를 수직방향으로 절반으로 나누었을 때의 중앙 라인의 연장선상의 좌측 및 우측에 위치하는 상측 중앙 주변 블록들이다. 여기서, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 상기 중앙 라인과 좌측으로 인접한 상측 주변 블록 CT1 블록은 제1 상측 중앙 주변 블록이라고 정의 하고, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 상기 중앙 라인과 우측으로 인접한 상측 주변 블록 CT2 블록은 제2 상측 중앙 주변 블록이라고 정의 한다.
제1 예측 유닛 PU0(530)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록이 포함되고, 제2 예측 유닛 PU1(550)의 병합 후보 블록의 리스트에도 동일하게 LT, LB1, LB0, RT1, RT0, CT1, CT2의 7개 블록이 포함된다. 또한, 제2 예측 유닛 PU1(550)의 병합 후보 블록의 리스트에 포함된 LT, LB1, LB0, RT1, RT0, CT1, CT2 블록은 제1 예측 유닛 PU0의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어져 있다.
또한, 공통 병합 후보 블록 중 LT, LB1, LB0, CT1 및 CT2 블록은 도 3의 제1 예측 유닛 PU0의 후보 병합 블록들과 일치하므로 도 3의 제1 예측 유닛 PU0의 블록 병합을 적용할 경우에 비하여 실질적으로 동일한 성능이 보장될 수 있다.
따라서, 도 8에 도시된 바와 같이, 제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, CT1, CT2 블록)를 구성하는 제1 프로세스와 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, CT1, CT2 블록)를 구성하는 제2 프로세스는 따로 따로 수행되는 것이 아니라 1번의 공통 병합 후보 블록을 구성하는 프로세스(810)로 수행될 수 있으며, 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(830)는 제1 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(820)와 병렬적으로 수행될 수 있게 되어 인코딩 시간이 크게 감소될 수 있다.
상기 공통 병합 후보 블록들은 인코더와 디코더에서 사전에 약속에 의해 미리 정해질 수 있으며, 이 경우 공통 병합 후보 블록들에 대한 정보는 인코더에서 디코더로 전송될 필요가 없다.
도 6은 본 발명의 다른 실시예에 따른 비대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위한 공통 병합 후보 블록들을 나타낸 개념도이다.
도6은 공통 병합 후보 블록의 리스트에 LT(601), LB1(611), LB0(613), RT1(607), RT0(609), ET1(603), ET2(605)의 7개 블록을 포함하며, 도 4와 달리 제1 상측 중앙 주변 블록 CT1 및 제2 상측 중앙 주변 블록 CT2이 빠지고 그 대신 ET1, ET2가 포함되어 있다는 점이 도 5의 실시예와의 차이점이다.
나머지 LT, LB1, LB0, RT1, RT0 블록은 도 5와 동일하므로 구체적인 설명은 생략한다.
ET1 블록 및 ET2 블록은 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1의 상측 주변 블록 중에 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선 - 즉 파티션 분할전 예측 유닛(PU)를 수직방향으로 1/4로 나누었을 때의 라인-의 연장선상의 좌측 및 우측에 위치하는 상측 중앙 주변 블록들이다. 여기서, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 좌측으로 인접한 상측 주변 블록 ET1 블록은 제1 상측 에지 주변 블록이라고 정의 하고, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 우측으로 인접한 상측 주변 블록 ET2 블록은 제2 상측 에지 주변 블록이라고 정의 한다. 즉, ET1 블록은 제1 예측 유닛 PU0의 상측 주변 블록들(…,ET1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, ET2는 제2 예측 유닛 PU1의 상측 주변 블록들(ET2, ….RT1) 중에서 가장 좌측에 위치한 최좌측 상측 주변 블록이다.
또는, 본 발명의 또 다른 실시예에서는, 2N X 2N 코딩 유닛(CU)이 수직 방향으로 nL X 2N (단, nL = 2N X 3/4) 크기의 파티션 PU0 블록(예측 유닛)과 nR X 2N (단, nR = 2N X 1/4) 크기의 파티션 PU1 블록(예측 유닛)으로 파티션 분할될 경우 도 7에 도시된 바와 같이 공통 병합 후보 블록을 구성할 수 있다.
도 7을 참조하면, 제1 예측 유닛 PU0(730) 및 제2 예측 유닛 PU1(750)에 대한 공통 병합 후보 블록은 LT, LB1, LB0, RT1, RT0, ET1, ET2 블록을 포함할 수 있다. 즉, 제1 예측 유닛 PU0(730)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, ET1, ET2 블록이 포함되고, 제2 예측 유닛 PU1(750)의 병합 후보 블록의 리스트는 LT, LB1, LB0, RT1, RT0, ET1, ET2 블록이 포함된다.
LT 블록은 제1 예측 유닛 PU0(730)의 좌상측(left top) 주변 블록이며, LB1 블록은 제1 예측 유닛 PU0의 좌측 주변 블록들 중에서 가장 하단에 위치한 최하단 좌측 주변 블록이고, LB0는 제1 예측 유닛 PU0의 최하단 좌측 주변 블록 LB1의 하측 경계에 접한 블록인 하측 연장 주변 블록이다. RT1 블록은 제2 예측 유닛 PU1(750)의 상측 주변 블록들(ET2, …, RT1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, RT0는 최우측 상측 주변 블록 RT1의 우측 경계에 접한 블록인 우측 연장 주변 블록이다. ET1 블록 및 ET2 블록은 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1의 상측 주변 블록 중에 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선 - 즉 파티션 분할전 예측 유닛(PU)를 수직방향으로 3/4으로 나누었을 때의 라인-의 연장선상의 좌측 및 우측에 위치하는 상측 중앙 주변 블록들이다. 여기서, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 좌측으로 인접한 상측 주변 블록 ET1 블록은 제1 상측 에지 주변 블록이라고 정의 하고, 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1 사이의 경계선과 우측으로 인접한 상측 주변 블록 ET2 블록은 제2 상측 에지 주변 블록이라고 정의 한다. 즉, ET1 블록은 제1 예측 유닛 PU0의 상측 주변 블록들(…,ET1) 중에서 가장 우측에 위치한 최우측 상측 주변 블록이고, ET2는 제2 예측 유닛 PU1의 상측 주변 블록들(ET2, ….RT1) 중에서 가장 좌측에 위치한 최좌측 상측 주변 블록이다.
제1 예측 유닛 PU0(730)의 병합 후보 블록의 리스트에는 LT, LB1, LB0, RT1, RT0, ET1, ET2의 7개 블록이 포함되고, 제2 예측 유닛 PU1(750)의 병합 후보 블록의 리스트에도 동일하게 LT, LB1, LB0, RT1, RT0, ET1, ET2의 7개 블록이 포함된다. 또한, 제2 예측 유닛 PU1(750)의 병합 후보 블록의 리스트에 포함된 LT, LB1, LB0, RT1, RT0, ET1, ET2 블록은 제1 예측 유닛 PU0의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어져 있다.
따라서, 도 8에 도시된 바와 같이, 제1 예측 유닛 PU0의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, ET1, ET2 블록)를 구성하는 제1 프로세스와 제2 예측 유닛 PU1의 블록 병합을 위한 병합 후보 블록들의 리스트(LT, LB1, LB0, RT1, RT0, ET1, ET2 블록)를 구성하는 제2 프로세스는 따로 따로 수행되는 것이 아니라 1번의 공통 병합 후보 블록을 구성하는 프로세스(810)로 수행될 수 있으며, 제2 예측 유닛 PU1에 대한 인코딩(또는 디코딩) 프로세스(830)는 제1 예측 유닛 PU0에 대한 인코딩(또는 디코딩) 프로세스(820)와 병렬적으로 수행될 수 있게 되어 인코딩 시간이 크게 감소될 수 있다.
도면에서는 도시하지 않았으나, 수직 방향으로 제1 예측 유닛 PU0 및 제2 예측 유닛 PU1로 비대칭 파티션 분할한 경우 공통 병합 후보 블록 7개중에서 특정 후보 블록(LB0, ET1, ET2, RT0 또는 RT1 중 적어도 하나)가 빠질 수도 있다.
상기 도 5 내지 도 7에서는 공통 병합 후보 블록들의 리스트에는 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)의 블록을 공통 병합 후보 리스트에 더 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 장치의 블록도이다.
도 9를 참조하면, 영상 부호화 장치는 부호화기(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)는 복원된 영상이 저장된다.
도 10은 본 발명의 일 실시예에 따른 블록 병합을 이용한 영상 부호화 방법의 순서도이다.
도 10을 참조하면, 먼저 부호화 장치에 입력 영상이 입력되면(단계 610), 상기 입력 영상에 대해 코딩 유닛을 파티션 분할 방법을 사용하여 분할하고, 상기 파티션 분할된 블록 별로 현재 부호화되는 픽처의 앞 및/또는 뒤에 위치하는 적어도 하나의 참조 픽처(프레임 버퍼(551)에 부호화가 완료되어 저장됨)에서 현재 부호화되는 파티션 분할된 블록과 유사한 영역을 검색하여 블록 단위로 움직임 벡터를 생성하고, 생성된 움직임 벡터와 픽처를 이용하여 움직임 보상을 수행함으로써 예측 블록(또는 예측된 예측 유닛)을 생성한다(단계 620).
그 다음, 부호화 장치는 파티션 분할된 예측 유닛(PU)에 대하여 전술한 블록 병합을 수행하여 병합된 블록별로 움직임 파라미터를 생성한다(단계 630). 전술한 블록 병합을 수행하여 병합된 블록별 움직임 파라미터는 디코더로 전송된다.
부호화 장치는 현재 예측 유닛과 상기 예측된 예측 유닛 사이의 차이를 구하여 잔여값(residue)을 생성한다(단계 640).
이후, 부호화 장치는 생성된 잔여값을 변환 및 양자화한 후(단계 650), 양자화된 DCT 계수들과 움직임 파라미터 등의 헤더 정보들을 엔트로피 부호화하여 비트 스트림을 생성한다(단계 660).
본 발명의 실시예들에 따른 블록 병합을 이용한 영상 부호화 장치 및 부호화 방법에서는 각각의 비대칭 파티션 분할된 블록(예측 유닛)에 대해 움직임 파라미터를 전송하지 않고 블록 병합을 이용하여 병합된 블록 전체에 대해 한번만 움직임 파라미터를 전송하여 움직임 파라미터의 전송량을 줄임으로써 HD급 또는 울트라 HD(Ultra High Definition)급 이상의 고해상도를 가지는 영상의 부호화 효율을 향상시킬 수 있다.
본 발명의 실시예들에 따른 블록 병합을 이용한 영상 복호화 장치 및 복호화 방법에서는, 전술한 부호화기로부터 전송된 블록 병합된 블록의 움직임 파라미터를 이용하여 해당 블록의 움직임 벡터를 복원하여 움직임 예측부에서 블록 단위로 움직임 벡터를 생성하고, 움직임 보상부에서 상기 움직임 예측부에서 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행한다.
영상 복호화 장치는 복호화기를 포함하며, 복호화기는 화면간 예측부, 인트라 예측부를 포함한다. 복호화기의 나머지 구성요소는 공지된 구성이므로 이하 자세한 설명은 생략한다. 화면간 예측부는 움직임 예측부와 움직임 보상부로 이루어진다.
화면간 예측부는 부호화기와 마찬가지로 제1 예측 유닛 및 제2 예측 유닛으로 비대칭적 파티션 분할된 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하고, 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행한다.
상기 블록 병합을 이용한 영상 복호화 장치 및 복호화 방법의 경우, 코딩 유닛(CU)의 크기는 2N X 2N (N은 양의 정수)로서, N은 예를 들어 2, 4, 8, 16, 32가 될 수 있다. 비대칭적으로 파티션 분할된 예측 유닛 PU0 및 PU1에 대하여 병렬 처리를 가능하게 하기 위하여 공통 병합 후보 블록들을 사용하는 방식은 N값이 2, 4, 8, 16, 32 값을 가지는 코딩 유닛(CU)에 모두 적용될 수도 있고, 또는 N값이 특정값-예를 들어 2, 4, 8, 16, 32 값 중 하나-을 가지는 코딩 유닛(CU)에만 적용될 수도 있다. 예를 들어 최대 코딩 유닛(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. 제1 예측 유닛 및 제2 예측 유닛으로 비대칭적 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계; 및
    상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하여 상기 선택된 후보 블록 정보를 상기 제1 예측 유닛 및 제2 예측 유닛마다 복호화기로 전송하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  2. 제 1항에 있어서, 상기 공통 병합 후보 블록 리스트는 상기 제1 예측 유닛 및 제2 예측 유닛에 대해 블록 병합을 수행할 경우 공통적으로 사용되는 병합 후보 블록들을 포함하는 것을 특징으로 하는 영상 부호화 방법.
  3. 제 2항에 있어서, 상기 제2 예측 유닛의 공통 병합 후보 블록들은 상기 제1 예측 유닛의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어지는 것을 특징으로 하는 영상 부호화 방법.
  4. 제 1항에 있어서, 상기 현재 코딩 유닛의 크기는 8x8인 경우에만 상기 블록 병합을 수행하는 것을 특징으로 하는 영상 부호화 방법.
  5. 제 1항에 있어서, 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는 움직임 추정 영역으로 분할되고, 상기 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정이 순차적(sequential)으로 이루어지고, 상기 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛에 대해서는 병렬(parallel)로 움직임 추정이 이루어지는 것을 특징으로 하는 영상 부호화 방법.
  6. 제 3항에 있어서, 상기 움직임 추정 영역의 크기에 따라 상기 움직임 추정 영역내의 예측 유닛들에 대하여 상기 공통 병합 후보 블록들을 사용하여 병렬 병합(parallel merge)을 허용할지 여부를 다르게 설정하는 것을 특징으로 하는 영상 부호화 방법.
  7. 제 6항에 있어서, 상기 움직임 추정 영역의 크기가 소정 크기 이상일 경우에만 상기 움직임 추정 영역 내의 모든 예측 유닛들에 대해 상기 병렬 병합(parallel merge)이 허용되도록 하는 것을 특징으로 하는 영상 부호화 방법.
  8. 제 7항에 있어서, 상기 움직임 추정 영역의 크기에 따른 상기 병렬 병합 처리 허용 여부를 알려주기 위하여 상기 움직임 추정 영역의 크기에 따라 소정의 값이 PPS(picture parameter set)내에 포함되어 부호화기에서 상기 복호화기로 전송되는 것을 특징으로 하는 영상 부호화 방법.
  9. 제 5항에 있어서, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 동일한 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능 하지 않음(non-available)으로 처리되고, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능(available)으로 처리하는 것을 특징으로 하는 영상 부호화 방법.
  10. 제 1항에 있어서, 상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함되는 것을 특징으로 하는 영상 부호화 방법.
  11. 제 1항에 있어서, 상기 현재 코딩 유닛내의 상기 제 1 예측 유닛과 제2 예측 유닛은 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용하는 것을 특징으로 하는 영상 부호화 방법.
  12. 제 11항에 있어서, 상기 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되는 것을 특징으로 하는 영상 부호화 방법.
  13. 제 1항에 있어서, 상기 공통 병합 후보 블록들은 부호화기와 상기 복호화기간에 사전에 약속에 의해 미리 정해지는 것을 특징으로 하는 영상 부호화 방법.
  14. 제1 예측 유닛 및 제2 예측 유닛으로 비대칭적 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하는 단계;
    상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하는 단계; 및
    상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하는 단계를 포함하는 영상 복호화 방법.
  15. 제 14항에 있어서, 상기 제2 예측 유닛의 공통 병합 후보 블록들은 상기 제1 예측 유닛의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 주변 블록들로만 이루어지는 것을 특징으로 하는 영상 복호화 방법.
  16. 제 14항에 있어서, 상기 현재 코딩 유닛의 크기는 8x8인 경우에만 상기 블록 병합을 수행하는 것을 특징으로 하는 영상 복호화 방법.
  17. 제 14항에 있어서, 최대 코딩 유닛(LCU)는 복수의 서로 중복되지 않는 움직임 추정 영역으로 분할되고, 상기 최대 코딩 유닛(LCU)내의 움직임 추정 영역간에는 움직임 추정이 순차적(sequential)으로 이루어지고, 상기 최대 코딩 유닛(LCU)내의 하나의 움직임 추정 영역내에 속하는 모든 예측 유닛에 대해서는 병렬(parallel)로 움직임 추정이 이루어지는 것을 특징으로 하는 영상 복호화 방법.
  18. 제 17항에 있어서, 상기 움직임 추정 영역의 크기에 따라 상기 움직임 추정 영역내의 예측 유닛들에 대하여 상기 공통 병합 후보 블록들을 사용하여 병렬 병합(parallel merge)을 허용할지 여부를 다르게 설정된 것을 특징으로 하는 영상 복호화 방법.
  19. 제 18항에 있어서, 상기 움직임 추정 영역의 크기가 소정 크기 이상일 경우에만 상기 움직임 추정 영역 내의 모든 예측 유닛들에 대해 상기 병렬 병합(parallel merge)이 허용되는 것을 특징으로 하는 영상 복호화 방법.
  20. 제 18항에 있어서, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 동일한 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능 하지 않음(non-available)으로 처리되고, 상기 현재 예측 유닛과 상기 현재 예측 유닛의 주변 예측 유닛이 서로 다른 움직임 추정 영역에 속하는 경우에는 해당 주변 예측 유닛은 이용가능(available)으로 처리하는 것을 특징으로 하는 영상 복호화 방법.
  21. 제 14항에 있어서, 상기 공통 병합 후보 블록들의 리스트에는 공간적(spatial) 병합 후보 블록 및 시간적(temporal) 병합 후보 블록이 포함되는 것을 특징으로 하는 영상 복호화 방법.
  22. 제 14항에 있어서, 상기 현재 코딩 유닛내의 상기 제 1 예측 유닛과 제2 예측 유닛은 공간적(spatial) 공통 병합 후보 블록들 중에서 미리 정해진 특정 위치의 블록의 참조 픽춰 인덱스(reference picture index)를 시간적(temporal) 병합 후보 블록을 위한 시간적 움직임 벡터 예측(Temporal MVP)의 참조 픽춰 인덱스(reference picture index)로 사용하는 것을 특징으로 하는 영상 복호화 방법.
  23. 제 22항에 있어서, 상기 미리 정해진 특정 위치의 블록은 상기 공통 병합 후보 블록의 리스트에 포함된 블록들 제 1 예측 유닛 PU0과 제2 예측 유닛 PU1의 움직임 파라미터를 복원하기 전에도 구성할 수 있는 이전에 부호화된 주변 블록이 사용되는 것을 특징으로 하는 영상 복호화 방법.
  24. 제1 예측 유닛 및 제2 예측 유닛으로 비대칭적 파티션 분할된 현재 코딩 유닛의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 적어도 하나의 후보 블록을 선택하는 화면간 예측부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  25. 제1 예측 유닛 및 제2 예측 유닛으로 비대칭적 파티션 분할된 현재 블록의 주변 블록들 중에서 선택된 소정 개수의 공통 병합 후보 블록들을 포함하는 공통 병합 후보 블록 리스트를 구성하고, 상기 제1 예측 유닛 및 제2 예측 유닛 각각 마다 상기 공통 병합 후보 블록 리스트 중에서 선택된 적어도 하나의 후보 블록을 이용하여 블록 병합된 블록의 움직임 파라미터를 복원하여 블록 단위로 움직임 벡터를 생성하고, 상기 생성된 움직임 벡터와 참조 픽처를 이용하여 움직임 보상을 수행하는 화면간 예측부를 포함하는 영상 복호화 장치.


KR1020120016616A 2011-11-23 2012-02-17 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 KR101205017B1 (ko)

Priority Applications (14)

Application Number Priority Date Filing Date Title
KR1020120016616A KR101205017B1 (ko) 2011-11-23 2012-02-17 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법
EP15168917.1A EP2942961A1 (en) 2011-11-23 2012-11-19 Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
EP12193166.1A EP2597872A3 (en) 2011-11-23 2012-11-19 Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
US13/683,771 US8861616B2 (en) 2011-11-23 2012-11-21 Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
CN201510226239.5A CN104837025B (zh) 2011-11-23 2012-11-23 使用不对称分区的公共合并候选组编码/解码视频的方法
CN201610728919.1A CN106101721B (zh) 2011-11-23 2012-11-23 视频解码设备
CN2012104826863A CN103139564A (zh) 2011-11-23 2012-11-23 使用不对称分区的公共合并候选组编码/解码视频的方法
CN201510209330.6A CN104918045B (zh) 2011-11-23 2012-11-23 使用不对称分区的公共合并候选组编码/解码视频的方法
CN201610833394.8A CN107071457B (zh) 2011-11-23 2012-11-23 视频解码方法
CN201610726637.8A CN106101720B (zh) 2011-11-23 2012-11-23 视频解码方法
US14/308,638 US9154790B2 (en) 2011-11-23 2014-06-18 Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
US14/478,715 US9172959B2 (en) 2011-11-23 2014-09-05 Method and encoding/decoding of video using common merging candidate set of asymmetric partitions
US14/478,747 US8929460B1 (en) 2011-11-23 2014-09-05 Method and encoding/decoding of video using common merging candidate set of asymmetric partitions
US14/479,023 US9167250B2 (en) 2011-11-23 2014-09-05 Method and encoding/decoding of video using common merging candidate set of asymmetric partitions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110123209 2011-11-23
KR1020120016616A KR101205017B1 (ko) 2011-11-23 2012-02-17 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법

Publications (1)

Publication Number Publication Date
KR101205017B1 true KR101205017B1 (ko) 2012-11-26

Family

ID=47565371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120016616A KR101205017B1 (ko) 2011-11-23 2012-02-17 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법

Country Status (1)

Country Link
KR (1) KR101205017B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140077825A (ko) * 2012-11-27 2014-06-24 경희대학교 산학협력단 머지를 기반으로 한 복호화 방법 및 장치
KR20140113854A (ko) * 2013-03-15 2014-09-25 삼성전자주식회사 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
KR101561461B1 (ko) * 2012-11-27 2015-10-20 경희대학교 산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR101750996B1 (ko) * 2012-10-12 2017-06-26 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2019231206A1 (ko) * 2018-05-30 2019-12-05 디지털인사이트주식회사 영상 부호화/복호화 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101033243B1 (ko) 2010-11-17 2011-05-06 엘아이지넥스원 주식회사 객체 추적 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101033243B1 (ko) 2010-11-17 2011-05-06 엘아이지넥스원 주식회사 객체 추적 방법 및 장치

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101750996B1 (ko) * 2012-10-12 2017-06-26 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR101750997B1 (ko) * 2012-10-12 2017-06-26 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR20160085237A (ko) * 2012-11-27 2016-07-15 경희대학교 산학협력단 머지를 기반으로 한 복호화 방법 및 장치
KR20140077825A (ko) * 2012-11-27 2014-06-24 경희대학교 산학협력단 머지를 기반으로 한 복호화 방법 및 장치
KR101638875B1 (ko) * 2012-11-27 2016-07-22 경희대학교 산학협력단 머지를 기반으로 한 복호화 방법 및 장치
KR101561461B1 (ko) * 2012-11-27 2015-10-20 경희대학교 산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR102045983B1 (ko) * 2012-11-27 2019-11-18 경희대학교 산학협력단 머지를 기반으로 한 복호화 방법 및 장치
KR20140113854A (ko) * 2013-03-15 2014-09-25 삼성전자주식회사 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
KR102088383B1 (ko) * 2013-03-15 2020-03-12 삼성전자주식회사 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
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

Similar Documents

Publication Publication Date Title
US8929460B1 (en) Method and encoding/decoding of video using common merging candidate set of asymmetric partitions
RU2705435C1 (ru) Способ и устройство для кодирования информации движения, а также способ и устройство для ее декодирования
KR102435393B1 (ko) 참조 유닛 결정 방법 및 장치
KR101292093B1 (ko) 화면내 예측 부호화를 위한 영상 부호화/복호화 장치 및 방법
US10681354B2 (en) Image encoding/decoding method and apparatus therefor
US20150085933A1 (en) Method and apparatus for encoding multi-view images, and method and apparatus for decoding multi-view images
KR20120100836A (ko) 변환 계수 스캔 방법 및 그 장치
KR101205017B1 (ko) 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법
KR20190090867A (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
KR20110135471A (ko) 블록 병합을 이용한 영상 부호화/복호화 장치 및 방법
KR101354086B1 (ko) 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법
WO2017010073A1 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
KR101688085B1 (ko) 고속 인트라 예측을 위한 영상 부호화 방법 및 장치
KR20130122566A (ko) 깊이 정보를 이용한 움직임 벡터 예측을 위한 3차원 영상의 부호화 방법 및 장치, 및 복호화 방법 및 장치
CN113287302A (zh) 用于图像编码/解码的方法和装置
KR101819138B1 (ko) Hevc 부호화기를 위한 병합 모드의 연산량 감소 방법
KR20130055317A (ko) 순차적으로 후보 블록을 선정하여 블록 병합을 이용한 영상 부호화/복호화 장치 및 방법
KR20130055314A (ko) 공통 병합 가능 블록 집합을 이용한 영상 부호화/복호화 장치 및 방법
KR20130055318A (ko) 제한된 후보 블록을 기반으로 블록 병합을 이용한 영상 부호화/복호화 장치 및 방법
KR20130055315A (ko) 서로 다른 병합 가능 블록 집합을 이용한 영상 부호화/복호화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
J202 Request for trial for correction [limitation]
J301 Trial decision

Free format text: TRIAL DECISION FOR CORRECTION REQUESTED 20140217

Effective date: 20141124

FPAY Annual fee payment

Payment date: 20151120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160812

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170907

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190909

Year of fee payment: 8