KR20130030240A - 영상 부호화/복호화 방법 및 그 장치 - Google Patents

영상 부호화/복호화 방법 및 그 장치 Download PDF

Info

Publication number
KR20130030240A
KR20130030240A KR1020120102763A KR20120102763A KR20130030240A KR 20130030240 A KR20130030240 A KR 20130030240A KR 1020120102763 A KR1020120102763 A KR 1020120102763A KR 20120102763 A KR20120102763 A KR 20120102763A KR 20130030240 A KR20130030240 A KR 20130030240A
Authority
KR
South Korea
Prior art keywords
mode
symbol
flag
split
value
Prior art date
Application number
KR1020120102763A
Other languages
English (en)
Other versions
KR101959482B1 (ko
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
Application filed by 한국항공대학교산학협력단, 한국전자통신연구원 filed Critical 한국항공대학교산학협력단
Priority to PCT/KR2012/007419 priority Critical patent/WO2013039363A2/ko
Publication of KR20130030240A publication Critical patent/KR20130030240A/ko
Application granted granted Critical
Publication of KR101959482B1 publication Critical patent/KR101959482B1/ko

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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream

Abstract

본 발명에 따른 영상 복호화 방법은, 비트스트림을 수신하는 단계, 비트스트림에 대한 엔트로피 복호화를 수행하여 복호화 정보를 도출하는 단계 및 복호화 정보를 기반으로 복호화 대상 블록에 대응하는 복원 블록을 생성하는 단계를 포함한다. 본 발명에 의하면, 영상 부호화/복호화 효율이 향상되고 복잡도가 감소될 수 있다.

Description

영상 부호화/복호화 방법 및 그 장치 {METHOD FOR IMAGE ENCODING/DECODING AND APPARATUS THEREOF}
본 발명은 영상 처리에 관한 것으로서, 보다 상세하게는 엔트로피 부호화/복호화 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축을 위해, 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 인터(inter) 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 인트라(intra) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.
본 발명의 기술적 과제는 영상 부호화/복호화 효율을 향상시키고 복잡도를 감소시킬 수 있는 영상 부호화 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시키고 복잡도를 감소시킬 수 있는 영상 복호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시키고 복잡도를 감소시킬 수 있는 엔트로피 부호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시키고 복잡도를 감소시킬 수 있는 엔트로피 복호화 방법 및 장치를 제공함에 있다.
본 발명의 일 실시 형태는 영상 복호화 방법이다. 상기 방법은, 비트스트림을 수신하는 단계, 상기 비트스트림에 대한 엔트로피 복호화를 수행하여 복호화 대상 블록에 대응하는 복호화 정보를 도출하는 단계 및 상기 복호화 정보를 기반으로 상기 복호화 대상 블록에 대응하는 복원 블록을 생성하는 단계를 포함하되, 상기 비트스트림은 복수의 심볼이 결합된 결합 심볼에 대응하는 제1 부분 비트스트림을 포함할 수 있고, 상기 복호화 정보를 도출하는 단계는, 상기 제1 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 결합 심볼의 심볼 값을 도출하는 단계 및 상기 결합 심볼에 대응되는 복수의 심볼 및 상기 결합 심볼 간의 매핑 관계를 나타내는 매핑 테이블을 기반으로, 상기 결합 심볼의 심볼 값에 대응되는 복수의 심볼 각각의 심볼 값을 도출하는 단계를 더 포함할 수 있다.
상기 비트스트림은, 상기 복호화 대상 블록의 예측 모드가 머지 모드(merge mode)인지 여부를 지시하는 머지 플래그 심볼에 대응하는 제2 부분 비트스트림을 더 포함할 수 있고, 상기 결합 심볼은 상기 머지 플래그 심볼을 제외한 복수의 심볼이 결합된 심볼일 수 있다. 이 때, 상기 복호화 정보를 도출하는 단계는, 상기 제1 부분 비트스트림과 별개로 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 머지 플래그 심볼의 심볼 값을 도출하는 단계를 더 포함할 수 있다.
상기 머지 플래그 심볼의 심볼 값을 도출하는 단계에서는, 1비트의 고정 길이 코드(fixed length code)를 기반으로, 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행할 수 있다.
상기 결합 심볼에 대응되는 복수의 심볼은, 상기 복호화 대상 블록에 대응되는 부호화 유닛(Coding Unit: CU)이 복수의 하위 유닛으로 분할되는지 여부를 지시하는 부호화 유닛 분할 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드가 스킵 모드(skip mode)인지 여부를 지시하는 스킵 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드를 나타내는 예측 모드 심볼 및 상기 복호화 대상 블록에 대응되는 분할 모드(partitioning mode)를 나타내는 분할 모드 심볼을 포함할 수 있다.
상기 매핑 테이블에 포함된 심볼 값 중에서, 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값은 인트라 모드에 대응되는 심볼 값보다 상단에 위치할 수 있고, 상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응될 수 있으며, 상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고, 상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함할 수 있다.
상기 매핑 테이블에 포함된 심볼 값 중에서, 상기 복호화 대상 블록에 대응되는 부호화 유닛이 복수 개의 하위 유닛으로 분할됨을 나타내는 심볼 값 및 스킵 모드에 대응되는 심볼 값은 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값보다 상단에 위치할 수 있고, 상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응될 수 있으며, 상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고, 상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함할 수 있다.
상기 매핑 테이블은 적응적 정렬 테이블(adaptive sorting table)을 기반으로, 상기 결합 심볼에 대응되는 복수의 심볼 각각의 발생 확률에 따라 업데이트될 수 있다.
상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값을 기반으로 소정의 복수의 매핑 테이블 중에서 선택될 수 있다.
상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값 및 최소 부호화 유닛(Smallest Coding Unit: SCU)의 깊이 값 간의 차분 값을 기반으로, 소정의 복수의 매핑 테이블 중에서 선택될 수 있다.
상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 크기 및 최소 부호화 유닛(SCU)의 크기의 동일성 여부를 기반으로, 소정의 복수의 매핑 테이블 중에서 선택될 수 있다.
본 발명의 다른 실시 형태는 엔트로피 복호화 방법이다. 상기 방법은, 비트스트림을 수신하는 단계 및 상기 비트스트림에 대한 엔트로피 복호화를 수행하여 복호화 대상 블록에 대응하는 복호화 정보를 도출하는 단계를 포함하되, 상기 비트스트림은 복수의 심볼이 결합된 결합 심볼에 대응하는 제1 부분 비트스트림을 포함할 수 있고, 상기 복호화 정보를 도출하는 단계는, 상기 제1 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 결합 심볼의 심볼 값을 도출하는 단계 및 상기 결합 심볼에 대응되는 복수의 심볼 및 상기 결합 심볼 간의 매핑 관계를 나타내는 매핑 테이블을 기반으로, 상기 결합 심볼의 심볼 값에 대응되는 복수의 심볼 각각의 심볼 값을 도출하는 단계를 더 포함할 수 있다.
상기 비트스트림은, 상기 복호화 대상 블록의 예측 모드가 머지 모드(merge mode)인지 여부를 지시하는 머지 플래그 심볼에 대응하는 제2 부분 비트스트림을 더 포함할 수 있고, 상기 결합 심볼은 상기 머지 플래그 심볼을 제외한 복수의 심볼이 결합된 심볼일 수 있다. 이 때, 상기 복호화 정보를 도출하는 단계는, 상기 제1 부분 비트스트림과 별개로 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 머지 플래그 심볼의 심볼 값을 도출하는 단계를 더 포함할 수 있다.
상기 머지 플래그 심볼의 심볼 값을 도출하는 단계에서는, 1비트의 고정 길이 코드(fixed length code)를 기반으로, 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행할 수 있다.
상기 결합 심볼에 대응되는 복수의 심볼은, 상기 복호화 대상 블록에 대응되는 부호화 유닛(Coding Unit: CU)이 복수의 하위 유닛으로 분할되는지 여부를 지시하는 부호화 유닛 분할 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드가 스킵 모드(skip mode)인지 여부를 지시하는 스킵 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드를 나타내는 예측 모드 심볼 및 상기 복호화 대상 블록에 대응되는 분할 모드(partitioning mode)를 나타내는 분할 모드 심볼을 포함할 수 있다.
상기 매핑 테이블에 포함된 심볼 값 중에서, 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값은 인트라 모드에 대응되는 심볼 값보다 상단에 위치할 수 있고, 상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응될 수 있으며, 상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고, 상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함할 수 있다.
상기 매핑 테이블에 포함된 심볼 값 중에서, 상기 복호화 대상 블록에 대응되는 부호화 유닛이 복수 개의 하위 유닛으로 분할됨을 나타내는 심볼 값 및 스킵 모드에 대응되는 심볼 값은 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값보다 상단에 위치할 수 있고, 상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응될 수 있으며, 상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고, 상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함할 수 있다.
상기 매핑 테이블은 적응적 정렬 테이블(adaptive sorting table)을 기반으로, 상기 결합 심볼에 대응되는 복수의 심볼 각각의 발생 확률에 따라 업데이트될 수 있다.
상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값을 기반으로 소정의 복수의 매핑 테이블 중에서 선택될 수 있다.
상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값 및 최소 부호화 유닛(Smallest Coding Unit: SCU)의 깊이 값 간의 차분 값을 기반으로, 소정의 복수의 매핑 테이블 중에서 선택될 수 있다.
상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 크기 및 최소 부호화 유닛(SCU)의 크기의 동일성 여부를 기반으로, 소정의 복수의 매핑 테이블 중에서 선택될 수 있다.
본 발명에 따른 영상 부호화 방법에 의하면, 영상 부호화/복호화 효율이 향상되고 복잡도가 감소될 수 있다.
본 발명에 따른 영상 복호화 방법에 의하면, 영상 부호화/복호화 효율이 향상되고 복잡도가 감소될 수 있다.
본 발명에 따른 엔트로피 부호화 방법에 의하면, 영상 부호화/복호화 효율이 향상되고 복잡도가 감소될 수 있다.
본 발명에 따른 엔트로피 복호화 방법에 의하면, 영상 부호화/복호화 효율이 향상되고 복잡도가 감소될 수 있다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 하나의 부호화 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
도 4는 부호화 유닛에 대응하는 예측 유닛의 실시예를 개략적으로 나타내는 도면이다.
도 5는 인터 예측 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 6은 인트라 예측 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 7은 본 발명의 실시예에 따른 부호화 정보 전송 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 8은 본 발명의 실시예에 따른 복호화 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 9는 NxN의 분할 모드를 갖는 하나의 부호화 유닛에 속한 네 개의 예측 유닛 각각의 PU 인덱스 값을 개략적으로 나타내는 도면이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽쳐 버퍼(190)를 포함할 수 있다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림을 출력할 수 있다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화할 수 있다.
영상 부호화 장치(100)는 현재 블록(입력 블록)의 예측 모드를 결정할 수 있다. 현재 블록(입력 블록)의 예측 모드(예를 들어, 스킵 모드, 인트라 모드, 인터 모드 등)를 나타내는 예측 모드 정보는 일례로, PredMode로 나타내어질 수 있다. 이하, 본 명세서에는 설명의 편의상 현재 블록의 예측 모드를 나타내는 예측 모드 정보는 PredMode라 지칭하기로 한다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(motion estimator)(111)는, 움직임 예측 과정에서 참조 픽쳐 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔차 블록(residual block)을 생성할 수 있다. 변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값(예를 들어, 양자화된 계수)들 및/또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로, 심볼(symbol)을 확률 분포에 따라 엔트로피 부호화하여 비트스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서, 복호화 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란 부호화/복호화 대상 구문 요소(syntax element) 및 부호화 파라미터(coding parameter), 잔차 신호(residual signal)의 값 등을 의미한다. 부호화 파라미터는 부호화 및 복호화에 필요한 매개변수로서, 구문 요소와 같이 부호화기에서 부호화되어 복호화기로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 부호화하거나 복호화할 때 필요한 정보를 의미한다. 부호화 파라미터는 예를 들어 인트라/인터 예측모드, 이동/움직임 벡터, 참조 픽쳐 인덱스, 부호화 블록 패턴, 잔차 신호 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터, 블록 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다. 또한 잔차 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호를 의미할 수도 있다. 잔차 신호는 블록 단위에서는 잔차 블록이라 할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding, 문맥 기반 적응적 가변 길이 부호화), CABAC(Context-Adaptive Binary Arithmetic Coding, 문맥 기반 적응적 이진 산술 부호화)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 부호화부(150)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 부호화부(150)는 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 부호화부(150)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
여기서, 이진화(binarization)란 심볼의 값을 2진수의 열(bin sequence/string)로 표현하는 것을 의미한다. 빈(bin)은 심볼이 이진화를 통해 2진수의 열로 표현될 때, 각각의 2진수의 값(0 또는 1)을 의미한다.
확률 모델이란, 문맥 정보(context information)/문맥 모델(context model)을 통해서 도출될 수 있는 부호화/복호화 대상 심볼/빈의 예측된 확률을 의미한다. 문맥 정보/문맥 모델은 부호화/복호화 대상 심볼/빈의 확률을 결정하기 위한 정보를 말한다.
보다 상세하게, CABAC 엔트로피 부호화 방법은, 이진화되지 않은 심볼을 이진화(binarization)하여 빈으로 변환하고, 주변 및 부호화 대상 블록의 부호화 정보 혹은 이전 단계에서 부호화된 심볼/빈의 정보를 이용하여 문맥 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 부호화(arithmetic encoding)를 수행하여 비트스트림을 생성할 수 있다. 이때, CABAC 엔트로피 부호화 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 부호화된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.
또한, 엔트로피 부호화 과정에서는, 적응적 정렬 테이블(adaptive sorting table)이 사용될 수 있다. 적응적 정렬 테이블은 심볼 값이 매핑되는 테이블 인덱스(table index) 및 상기 테이블 인덱스가 매핑되는 코드 넘버(code number)로 구성될 수 있다.
엔트로피 부호화부(150)는 심볼 값이 발생하는 경우, 적응적 정렬 테이블 상의 테이블 인덱스 및 상기 테이블 인덱스에 매핑되는 코드 넘버를 업데이트함으로써, 높은 발생 확률을 가진 심볼 값이 짧은 길이의 코드워드에 매핑되도록 할 수 있다. 즉, 상기 적응적 정렬 테이블은 자주 발생하는 심볼 값에 작은 값의 코드 넘버가 매핑되도록 하고 작은 코드 넘버는 가변 길이 코드 테이블(VLC table: Variable Length Code table) 상에서 짧은 길이의 코드워드(codeword)에 매핑되도록 함으로써, 부호화/복호화 효율을 향상시킬 수 있다. 여기서, 가변 길이 코드 테이블은 코드 넘버 및 상기 코드 넘버가 매핑되는 코드워드로 구성될 수 있으며, 하나의 심볼에 대해 사용되는 가변 길이 코드 테이블은 하나 이상일 수 있다.
적응적 정렬 테이블을 기반으로 하는 엔트로피 부호화 과정의 일 실시예로, 엔트로피 부호화부(150)는 심볼 값을 상기 심볼 값에 대응하는 테이블 인덱스로 매핑시키고, 상기 테이블 인덱스를 적응적 정렬 테이블 상의 코드 넘버로 매핑시킬 수 있다. 이 때, 엔트로피 부호화부(150)는 심볼 값의 발생 확률을 고려하여 상기 적응적 정렬 테이블을 업데이트할 수 있다. 또한, 코드 넘버는 가변 길이 코드 테이블에 의해 코드워드로 매핑될 수 있다. 따라서, 테이블 인덱스 값은 부호화 시에 심볼 값이 매핑되는 값으로 볼 수 있으며, 코드 넘버는 부호화 시에 테이블 인덱스 값이 매핑되는 값으로 볼 수 있다.
도 1의 실시예에 따른 영상 부호화 장치는 인터 예측을 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환된다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성된다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)는 적응적 인루프(in-loop) 필터로 불릴 수도 있다. 디블록킹 필터는 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. SAO는 코딩 에러를 보상하기 위해 픽셀값에 적정 오프셋(offset) 값을 더해줄 수 있다. ALF는 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있으며, 고효율이 적용되는 경우에만 수행될 수도 있다. 필터부(180)를 거친 복원 블록은 참조 픽쳐 버퍼(190)에 저장될 수 있다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 픽쳐 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화기에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다. 영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 잔차 블록(residual block)을 얻고 예측 블록을 생성한 후 잔차 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 2진수의 열을 입력 받아 각 심볼들을 생성하는 방법이다. 엔트로피 복호화를 수행하여 구문 요소의 값을 결정하는 과정은 파싱(parsing)으로 불릴 수 있다. 엔트로피 복호화부(210)는 구문 요소의 값을 결정함으로써, 상기 구문 요소에 대응하는 심볼을 결정할 수 있다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.
보다 상세하게, 엔트로피 복호화부(210)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 복호화를 수행하기 위한 테이블이 저장되어 있을 수 있다. CAVLC 엔트로피 복호화 방법이 적용되는 경우, 엔트로피 복호화부(210)는 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 복호화를 수행할 수 있다. CABAC 엔트로피 복호화 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 복호화 대상 구문 요소 정보와 주변 및 복호화 대상 블록의 복호화 정보 혹은 이전 단계에서 복호화된 심볼/빈의 정보를 이용하여 문맥 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 복호화(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 복호화 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 복호화된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.
또한, 엔트로피 복호화 과정에서는, 엔트로피 부호화 과정에서와 마찬가지로 적응적 정렬 테이블(adaptive sorting table)이 사용될 수 있다. 상술한 바와 같이, 적응적 정렬 테이블은 심볼 값이 매핑되는 테이블 인덱스(table index) 및 상기 테이블 인덱스가 매핑되는 코드 넘버(code number)로 구성될 수 있다.
적응적 정렬 테이블을 기반으로 하는 엔트로피 복호화 과정의 일 실시예로, 엔트로피 복호화부(210)는 가변 길이 코드 테이블을 기반으로 코드워드를 코드 넘버로 매핑시킬 수 있다. 또한, 엔트로피 복호화부(210)는 적응적 정렬 테이블(및/또는 역 적응적 정렬 테이블)을 기반으로 코드 넘버를 테이블 인덱스로 매핑시킬 수 있다. 이 때, 엔트로피 복호화부(210)는 적응적 정렬 테이블(및/또는 역 적응적 정렬 테이블)을 업데이트할 수 있다. 적응적 정렬 테이블(및/또는 역 적응적 정렬 테이블)이 업데이트된 후, 엔트로피 복호화부(210)는 테이블 인덱스를 심볼 값에 매핑시킬 수 있다. 따라서, 코드 넘버는 복호화 시에 테이블 인덱스 값에 매핑되는 값으로 볼 수 있으며, 테이블 인덱스 값은 복호화 시에 코드 넘버가 매핑되는 값으로 볼 수 있다.
엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 복호화 방법을 통해서 영상 복호화의 압축 성능이 높아질 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 잔차 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 복호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 픽쳐 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
잔차 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 복원 영상은 참조 픽쳐 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다.
이하, 유닛 및/또는 블록은 영상 부호화 및 복호화의 단위를 의미한다. 영상 부호화 및 복호화 시 부호화 혹은 복호화 단위는, 영상을 분할하여 부호화 혹은 복호화 할 때 그 분할된 단위를 의미하므로, 매크로 블록, 부호화 유닛 (CU: Coding Unit), 예측 유닛 (PU: Prediction Unit), 변환 유닛(TU: Transform Unit), 변환 블록(transform block) 등으로 불릴 수 있다. 하나의 블록은 크기가 더 작은 하위 블록으로 더 분할될 수 있다.
도 3은 하나의 부호화 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
부호화 유닛은 영상 부호화 및 복호화가 수행되는 단위를 의미할 수 있다. 하나의 부호화 유닛은 트리 구조(tree structure)를 기초로 깊이 정보(depth)를 가지고 계층적으로 분할될 수 있다. 각각의 분할된 하위 유닛은 깊이 정보를 가질 수 있다. 상기 깊이 정보는 유닛이 분할된 회수 및/또는 정도를 나타내므로, 상기 하위 유닛의 크기에 관한 정보를 포함할 수도 있다.
도 3의 310을 참조하면, 가장 상위 노드는 루트 노드(root node)로 불릴 수 있고, 가장 작은 깊이 값을 가질 수 있다. 이 때, 가장 상위 노드는 레벨 0의 깊이를 가질 수 있으며, 분할되지 않은 최초의 유닛을 나타낼 수 있다. 따라서, 분할되지 않은 최초의 유닛은 일례로, 깊이 값 0을 가질 수 있다. 분할되지 않은 최초의 유닛은 최대의 크기를 갖는 부호화 유닛에 해당되므로, 최대 부호화 유닛(LCU: Largest Coding Unit)으로 불릴 수 있다.
레벨 1의 깊이를 갖는 하위 노드는 최초 유닛이 한 번 분할된 유닛을 나타낼 수 있으며, 레벨 2의 깊이를 갖는 하위 노드는 최초의 유닛이 두 번 분할된 유닛을 나타낼 수 있다. 예를 들어, 도 3의 320에서 노드 a에 대응하는 유닛 a는 최초 유닛에서 한 번 분할된 유닛이고, 레벨 1의 깊이를 가질 수 있고, 노드 c에 대응하는 유닛 c는 최초 유닛에서 두 번 분할된 유닛이고, 레벨 2의 깊이를 가질 수 있다. 따라서, 일례로 최초 유닛이 한 번 분할된 유닛은 깊이 값 1을 가질 수 있고, 최초 유닛이 두 번 분할된 유닛은 깊이 값 2를 가질 수 있다.
레벨 3의 리프 노드(leaf node)는 최초 유닛이 3번 분할된 유닛을 나타낼 수 있다. 예를 들어, 도3의 320에서 노드 d에 대응하는 유닛 d는 최초 유닛에서 세 번 분할된 유닛이고, 레벨 3의 깊이를 가질 수 있다. 따라서, 가장 하위 노드인 레벨 3의 리프 노드는 가장 깊은 깊이를 가질 수 있다. 가장 하위 노드에 대응되는 부호화 유닛은 최소의 크기를 갖는 부호화 유닛에 해당되므로, 최소 부호화 유닛(SCU: Smallest Coding Unit)으로 불릴 수 있다.
상술한 실시예에서, 각각의 부호화 유닛은 부호화 유닛 분할 플래그 정보를 가질 수 있다. 여기서 부호화 유닛 분할 플래그는 상기 플래그에 대응하는 부호화 유닛이, 복수 개의 하위 유닛(부호화 유닛)으로 분할되는지 여부를 지시할 수 있다. 일 실시예로, 상기 부호화 유닛 분할 플래그 정보는 split_coding_unit_flag 로 나타내어질 수 있다. 예를 들어, split_coding_unit_flag에 1이 할당되는 경우, 상기 플래그는 부호화 유닛이 복수 개의 하위 유닛으로 분할됨을 나타낼 수 있다. 또한, split_coding_unit_flag에 0이 할당되는 경우, 상기 플래그는 부호화 유닛이 복수 개의 하위 유닛으로 분할되지 않음을 나타낼 수 있다. 이하, 본 명세서에는 설명의 편의상 부호화 유닛이 복수 개의 하위 유닛으로 분할되는지 여부를 나타내는 정보는 split_coding_unit_flag 라 지칭하기로 한다.
도 4는 부호화 유닛에 대응하는 예측 유닛의 실시예를 개략적으로 나타내는 도면이다.
하나의 부호화 유닛은 그대로 예측 유닛으로 사용되거나 복수 개의 예측 유닛으로 분할될 수 있다. 도 4의 410은 인트라 모드에서 부호화 유닛에 대응하는 예측 유닛의 실시예를 도시하고, 도 4의 420 및 430은 인터 모드에서 부호화 유닛에 대응하는 예측 유닛의 실시예를 도시한다.
부호화 유닛의 분할 방식 및/또는 부호화 유닛에 대응하는 예측 유닛의 크기(및/또는 형태)는 분할 모드에 의해 나타내어질 수 있다. 이 때, 상기 분할 모드는 부호화 유닛이 그대로 예측 유닛으로 사용되는지 아니면 복수 개의 예측 유닛으로 분할되는지 여부를 나타낼 수도 있다. 일례로, 상기 분할 모드는 PartMode 로 나타내어질 수 있다. 이하, 본 명세서에는 설명의 편의상 부호화 유닛의 분할 방식 및/또는 부호화 유닛에 대응하는 예측 유닛의 크기(및/또는 형태)를 나타내는 분할 모드는 PartMode 라 지칭하기로 한다.
도 4의 410을 참조하면, 인트라 모드에서 부호화 유닛 및/또는 예측 유닛에 대한 분할 모드는 2Nx2N 또는 NxN일 수 있다(N은 양의 정수). 이 때, 분할 모드가 2Nx2N인 경우에는 부호화 유닛이 그대로 예측 유닛으로 사용될 수 있다. 즉 2Nx2N의 분할 모드는 부호화 유닛이 복수의 예측 유닛으로 분할되지 않음을 나타낼 수 있다. 그리고, 분할 모드가 NxN인 경우에는 부호화 유닛이 NxN 크기를 갖는 네 개의 정방형 예측 유닛으로 분할될 수 있다. 상술한 2Nx2N, NxN의 분할 모드를 지시하는 정보는, 인트라 모드에서의 분할 모드 정보이므로, 인트라 분할 모드 정보로도 불릴 수 있다. 즉, 인트라 분할 모드 정보는 인트라 모드에서 부호화 유닛의 분할 방식 및/또는 부호화 유닛에 대응하는 예측 유닛의 크기(및/또는 형태)를 지시할 수 있다. 인트라 분할 모드 정보는 일례로, intra_part_mode에 의해 나타내어질 수 있다. 이하, 본 명세서에는 설명의 편의상 인트라 모드에서 부호화 유닛의 분할 방식 및/또는 부호화 유닛에 대응하는 예측 유닛의 크기(및/또는 형태)를 나타내는 인트라 분할 모드 정보는 intra_part_mode라 지칭하기로 한다.
도 4의 420을 참조하면, 인터 모드에서 부호화 유닛 및/또는 예측 유닛에 대한 분할 모드는 2Nx2N, 2NxN, Nx2N 또는 NxN일 수 있다(N은 양의 정수).
이 때, 분할 모드가 2Nx2N인 경우에는 부호화 유닛이 그대로 예측 유닛으로 사용될 수 있다. 즉 2Nx2N의 분할 모드는 부호화 유닛이 복수의 예측 유닛으로 분할되지 않음을 나타낼 수 있다. 그리고, 분할 모드가 NxN인 경우에는 부호화 유닛이 NxN 크기를 갖는 네 개의 정방형 예측 유닛으로 분할될 수 있다. 또한, 분할 모드가 Nx2N인 경우에는 부호화 유닛이 Nx2N 크기를 갖는 두 개의 직사각형 예측 유닛으로 분할될 수 있다. 즉, 분할 모드가 Nx2N인 경우에는 정방형의 부호화 유닛이 좌우 두 개의 예측 유닛으로 대칭 분할될 수 있으며, 이는 수직 분할에 해당될 수 있다. 그리고 분할 모드가 2NxN인 경우에는 부호화 유닛이 2NxN 크기를 갖는 두 개의 직사각형 예측 유닛으로 분할될 수 있다. 즉, 분할 모드가 2NxN인 경우에는 정방형의 부호화 유닛이 상하 두 개의 예측 유닛으로 대칭 분할될 수 있으며, 이는 수평 분할에 해당될 수 있다.
상술한 2Nx2N, NxN의 분할 모드는 움직임 예측이 수행되는 인터 모드에서의 분할 모드이고 상기 분할 모드에서는 예측 유닛이 정사각형 형태를 가지므로, 이하 본 명세서에서는 상기 2Nx2N, NxN의 분할 모드는 정방형 움직임 분할 모드라 한다. 또한, 상술한 2NxN, Nx2N의 분할 모드는 움직임 예측이 수행되는 인터 모드에서의 분할 모드이고 상기 분할 모드에서는 예측 유닛이 대칭 형태를 가지므로, 이하 본 명세서에서는 상기 2NxN, Nx2N의 분할 모드는 대칭 움직임 분할(symmetric motion partitioning) 모드라 한다.
도 4의 430을 참조하면, 인터 모드에서 부호화 유닛 및/또는 예측 유닛에 대한 분할 모드는 2NxnU, 2NxnD, nLx2N 또는 nRx2N일 수 있다(N은 양의 정수).
이 때, 분할 모드가 2NxnU 및 2NxnD인 경우에는 부호화 유닛이 각각 2Nx(1/2)N 및 2Nx(3/2)N 크기를 갖는 두 개의 예측 유닛으로 분할될 수 있다. 즉, 분할 모드가 2NxnU 및 2NxnD인 경우에는 정방형의 부호화 유닛이 상하 두 개의 예측 유닛으로 비대칭 분할될 수 있으며, 이는 수평 분할에 해당될 수 있다. 여기서, 분할 모드가 2NxnU인 경우에는 2Nx(1/2)N 크기의 예측 유닛이 부호화 유닛 내의 상단에 위치할 수 있고, 분할 모드가 2NxnD인 경우에는 2Nx(1/2)N 크기의 예측 유닛이 부호화 유닛 내의 하단에 위치할 수 있다. 즉, 분할 모드가 2NxnU인 경우에는 하단에 위치한 예측 유닛이 더 클 수 있고, 분할 모드가 2NxnD인 경우에는 상단에 위치한 예측 유닛이 더 클 수 있다. 또한, 분할 모드가 nLx2N 및 nRx2N인 경우에는 부호화 유닛이 각각 (1/2)Nx2N 및 (3/2)Nx2N 크기를 갖는 두 개의 예측 유닛으로 분할될 수 있다. 즉, 분할 모드가 nLx2N 및 nRx2N인 경우에는 정방형의 부호화 유닛이 좌우 두 개의 예측 유닛으로 비대칭 분할될 수 있으며, 이는 수직 분할에 해당될 수 있다. 여기서, 분할 모드가 nLx2N인 경우에는 (1/2)Nx2N 크기의 예측 유닛이 부호화 유닛 내의 좌측에 위치할 수 있고, 분할 모드가 nRx2N인 경우에는 (1/2)Nx2N 크기의 예측 유닛이 부호화 유닛 내의 우측에 위치할 수 있다. 즉, 분할 모드가 nLx2N인 경우에는 우측에 위치한 예측 유닛이 더 클 수 있고, 분할 모드가 nRx2N인 경우에는 좌측에 위치한 예측 유닛이 더 클 수 있다.
상술한 2NxnU, 2NxnD, nLx2N, nRx2N 의 분할 모드는 움직임 예측이 수행되는 인터 모드에서의 분할 모드이고 상기 분할 모드에서는 예측 유닛이 비대칭 형태를 가지므로, 이하 본 명세서에서 상기 2NxnU, 2NxnD, nLx2N, nRx2N의 분할 모드는 비대칭 움직임 분할(Asymmetric Motion Partitioning: AMP) 모드라 한다. 일 실시예로, 인터 모드에서의 분할 모드 중에서 비대칭 움직임 분할 모드(2NxnU, 2NxnD, nLx2N 및 nRx2N)는 비대칭 움직임 분할 정보에 의해 지시될 수 있다. 비대칭 움직임 분할 정보는 일례로, inter_amp_mode에 의해 나타내어질 수 있다. 여기서, inter_amp_mode에는 0, 1, 2 또는 3의 값이 할당될 수 있고, 비대칭 움직임 분할 정보의 값 0, 1, 2 및 3은 각각 분할 모드 2NxnU, 2NxnD, nLx2N 및 nRx2N를 지시할 수 있다. 이하, 본 명세서에서는 설명의 편의상 비대칭 움직임 분할 정보는 inter_amp_mode라 지칭하기로 한다.
상술한 실시예에 의하면, 인트라 모드에서는 2Nx2N 및 NxN 중에서 적어도 하나의 분할 모드가 사용될 수 있다. 또한, 인터 모드에서는 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N 및 nRx2N 중에서 적어도 하나의 분할 모드가 사용될 수 있다. 이 때, NxN 분할 모드를 갖는 예측 유닛은 소정의 크기에 해당하는 최소 부호화 유닛(SCU)에 대해서만 사용될 수도 있다. 예를 들어, NxN 분할 모드는 8x8 크기의 최소 부호화 유닛(SCU)에 대해서만 적용될 수 있다. 이 때, 상기 최소 부호화 유닛에 대응하는 예측 유닛의 크기는 4x4일 수 있다. 이하, 본 명세서에서는 4x4 크기의 예측 유닛을 기반으로 하는 예측(인터 예측 및/또는 인트라 예측)은 4x4 예측(인터 예측 및/또는 인트라 예측)이라 한다.
한편, 인터 모드에서의 분할 모드 중에서 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드(대칭 움직임 분할 모드 및 비대칭 움직임 분할 모드)는, 일 실시예로 수평 분할 플래그 및 리메이닝 분할 플래그에 의해 나타내어질 수도 있다.
여기서, 수평 분할 플래그는 예측 유닛의 수평 방향 길이가 상기 예측 유닛의 수직 방향 길이보다 긴지 또는 짧은지 여부를 지시할 수 있다. 일 실시예로, 수평 분할 플래그는 inter_part_horz_flag로 나타내어질 수 있다. 일례로, 상기 수평 분할 플래그의 값이 1인 경우는 예측 유닛의 수평 방향 길이가 수직 방향 길이보다 긴 경우에 해당될 수 있으므로, 상기 수평 분할 플래그에 의해 지시되는 분할 모드는 2NxN, 2NxnU 및 2NxnD일 수 있다. 또한, 상기 수평 분할 플래그의 값이 0인 경우는 예측 유닛의 수평 방향 길이가 수직 방향 길이보다 짧은 경우에 해당될 수 있으므로, 상기 수평 분할 플래그에 의해 지시되는 분할 모드는 Nx2N, nLx2N 및 nRx2N일 수 있다.
또한, 리메이닝 분할 플래그는 수평 분할 플래그에 의해 지시되는 분할 모드 중에서 어떤 분할 모드가 부호화 유닛 및/또는 예측 유닛에 대한 분할 모드인지를 지시할 수 있다. 일례로, 수평 분할 플래그의 값이 1일 때, 리메이닝 분할 플래그의 값 0, 1 및 2는 각각 2NxN, 2NxnU 및 2NxnD를 지시하는 값일 수 있다. 또한, 수평 분할 플래그의 값이 0일 때, 리메이닝 분할 플래그의 값 0, 1 및 2는 각각 Nx2N, nLx2N 및 nRx2N를 지시하는 값일 수 있다. 상기 리메이닝 분할 플래그는 일례로, rem_inter_part_mode로 나타내어질 수 있다.
이하, 본 명세서에는 설명의 편의상 수평 분할 플래그는 inter_part_horz_flag로 지칭하며, 리메이닝 분할 플래그는 rem_inter_part_mode라 지칭하기로 한다.
도 5는 인터 예측 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
부호화기 및 복호화기는 다양한 움직임 예측 방법을 이용하여 현재 블록에 대한 예측을 수행할 수 있으며, 각각의 예측 방법은 서로 다른 예측 모드에서 적용될 수 있다. 예를 들어, 인터 예측에서 사용되는 예측 모드에는 스킵(skip) 모드, 머지(merge) 모드 및 AMVP(Advanced Motion Vector Prediction) 모드 등이 있을 수 있다.
현재 블록(부호화 유닛 및/또는 예측 유닛)이 스킵 모드에 해당되는지 여부는 스킵 플래그 정보에 의해 지시될 수 있다. 일 실시예로, 스킵 플래그 정보는 skip_flag로 나타내어질 수 있다. 일례로, skip_flag에 1이 할당되는 경우, 상기 플래그는 현재 블록의 인터 예측 모드가 스킵 모드임을 나타낼 수 있다. 또한, skip_flag에 0이 할당되는 경우, 상기 플래그는 현재 블록의 인터 예측 모드가 스킵 모드가 아님을 나타낼 수 있다. 이하, 본 명세서에는 설명의 편의상 스킵 플래그 정보는 skip_flag라 지칭하기로 한다.
또한, 현재 블록(부호화 유닛 및/또는 예측 유닛)이 머지 모드에 해당되는지 여부는 머지 플래그에 의해 지시될 수 있다. 일례로, 머지 플래그 정보는 merge_flag로 나타내어질 수 있다. 일례로, merge_flag에 1이 할당되는 경우, 상기 플래그는 현재 블록의 인터 예측 모드가 머지 모드임을 나타낼 수 있다. 또한, merge_flag에 0이 할당되는 경우, 상기 플래그는 현재 블록의 인터 예측 모드가 머지 모드가 아님을 나타낼 수 있다. 이하, 본 명세서에는 설명의 편의상 머지 플래그 정보는 merge_flag라 지칭하기로 한다.
도 5를 참조하면, 부호화기 및 복호화기는 현재 블록의 움직임 정보를 도출할 수 있다(S510). 머지 모드에서는, 현재 블록 주변에 위치한 주변 블록의 움직임 정보 및 현재 블록에 대응하는 콜 블록(col block)의 움직임 정보가 현재 블록의 움직임 정보로 사용될 수 있다. 여기서, 콜 블록은 현재 픽쳐(현재 블록이 속한 픽쳐)가 참조하는 참조 픽쳐 내에서, 현재 블록에 대응하는 블록을 의미할 수 있다. 즉, 머지는 현재 블록의 움직임 정보가 현재 블록 주변에 위치한 주변 블록 및 현재 블록에 대응하는 콜 블록으로부터 도출되는 것을 의미할 수 있다. 또한, 스킵 모드에서도 머지 모드에서와 동일한 방식으로 현재 블록의 움직임 정보가 도출될 수 있으며, 이러한 경우의 스킵 모드는 머지 스킵 모드로도 불릴 수 있다.
다시 도 5를 참조하면, 부호화기 및 복호화기는 도출된 움직임 정보를 기반으로 인터 예측을 수행함으로써, 현재 블록에 대응하는 예측 블록을 생성할 수 있다(S520). 머지 모드에서, 부호화기는 현재 블록 및 생성된 예측 블록 간의 차분에 의해 잔차 블록을 생성할 수 있으며, 상기 잔차 블록을 부호화되어 복호화기로 전송될 수 있다. 이 때, 복호화기는 전송된 잔차 블록 및 생성된 예측 블록을 기반으로 현재 블록을 복원할 수 있다. 스킵 모드에서는, 현재 블록과 예측 블록 간의 잔차 신호의 값이 0일 수 있다. 따라서, 부호화기에서 복호화기로 잔차 신호가 전송되지 않을 수 있으며, 움직임 정보를 기반으로 생성된 예측 블록이 그대로 현재 블록에 대응하는 복원 블록으로 사용될 수 있다.
도 6은 인트라 예측 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 6을 참조하면, 부호화기 및 복호화기는 현재 블록에 대응하는 인트라 예측 모드를 결정할 수 있다(S610). 인트라 예측은 현재 블록의 인트라 예측 모드에 따라 수행될 수 있으며, 인트라 예측 모드 각각은 이에 해당하는 예측 방향(prediction direction)을 가질 수 있다.
부호화기는 현재 블록의 인트라 예측 모드를 결정한 후, 결정된 인트라 예측 모드에 관한 정보를 부호화하여 복호화기로 전송할 수 있으며, 복호화기는 전송된 정보를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다. 이 때, 부호화기는 현재 블록에 대한 인트라 예측 모드를 부호화하여 전송할 때, 전송되는 비트량을 감소시키고 부호화 효율을 높이기 위해, 인트라 예측 모드를 예측하는 방법을 사용할 수 있다.
현재 블록의 인트라 예측 모드는 복원된 주변 블록의 인트라 예측 모드와 동일할 확률이 높으므로, 부호화기는 복원된 주변 블록의 인트라 예측 모드를 기반으로 현재 블록의 인트라 예측 모드를 부호화할 수 있고, 복호화기는 복원된 주변 블록의 인트라 예측 모드를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다. 이 때, 복원된 주변 블록을 기반으로 도출된 인트라 예측 모드는 현재 블록의 인트라 예측 모드에 대한 예측 값으로 사용될 수 있다. 여기서, 복원된 현재 블록의 인트라 예측 모드에 대한 예측 값으로 사용되는 인트라 예측 모드는 MPM(Most Probable Mode: 최적 가능 모드)으로 불릴 수 있다.
부호화기 및 복호화기는 복원된 주변 블록을 기반으로 현재 블록에 대응하는 복수의 MPM 후보를 도출할 수 있고, 도출된 MPM 후보를 기반으로 MPM 리스트를 생성할 수 있다. 이 때, 부호화기는 MPM 리스트 내에 현재 블록의 인트라 예측 모드와 동일한 MPM 후보가 존재하는지 여부를 판단하고, MPM 리스트 내에 현재 블록의 인트라 예측 모드와 동일한 MPM 후보가 존재하는지 여부를 지시하는 MPM 플래그 정보를 복호화기로 전송할 수 있다. 이 때, 복호화기는 상기 전송된 MPM 플래그 정보를 기반으로 MPM 리스트 내에 현재 블록의 인트라 예측 모드와 동일한 MPM 후보가 존재하는지 여부를 결정할 수 있다. 즉, MPM 플래그 정보는 MPM 후보 모드 중에서 현재 블록의 인트라 예측 모드로 사용되는 후보가 존재하는지 여부를 지시할 수 있다. 일례로, MPM 플래그 정보는 prev_intra_luma_pred_flag로 나타내어질 수 있다. 이하, 본 명세서에는 설명의 편의상 MPM 플래그 정보는 prev_intra_luma_pred_flag라 지칭하기로 한다.
MPM 리스트 내에 현재 블록의 인트라 예측 모드와 동일한 MPM 후보가 존재하는 경우, 부호화기는 현재 블록의 인트라 예측 모드가 MPM 리스트 내의 MPM 후보들 중 어떤 MPM 후보와 동일한지를 지시하는 MPM 인덱스 정보를 부호화하여 복호화기로 전송할 수 있다. 이 때, 복호화기는 상기 MPM 인덱스 정보가 지시하는 MPM 후보를 현재 블록의 인트라 예측 모드로 결정할 수 있다. 일례로, MPM 인덱스 정보는 mpm_idx로 나타내어질 수 있다. 이하, 본 명세서에서는 설명의 편의상 MPM 인덱스 정보는 mpm_idx라 지칭하기로 한다.
MPM 리스트 내에 현재 블록의 인트라 예측 모드와 동일한 MPM 후보가 존재하지 않는 경우, 부호화기는 현재 블록의 인트라 예측 모드 및 MPM 리스트를 기반으로 리메이닝 모드(remaining mode)를 도출할 수 있다. 여기서, 리메이닝 모드는 MPM 후보를 제외한 인트라 예측 모드를 기반으로 도출될 수 있다. 부호화기는 생성된 리메이닝 모드를 부호화하여 복호화기로 전송할 수 있으며, 복호화기는 전송된 리메이닝 모드를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다. 일 실시예로 상기 리메이닝 모드는 rem_intra_luma_pred_mode로 나타내어질 수 있다.
다시 도 6을 참조하면, 부호화기 및 복호화기는 결정된 인트라 예측 모드를 기반으로 인트라 예측을 수행함으로써, 현재 블록에 대응하는 예측 블록을 생성할 수 있다(S620).
도 7은 본 발명의 실시예에 따른 부호화 정보 전송 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 7을 참조하면, 부호화기는 CU에 대한 엔트로피 부호화를 수행하기 전에 상기 CU에 대한 부호화 정보(및/또는 부호화 대상 심볼)를 생성할 수 있다(S710). 여기서, 부호화 정보에는 부호화 유닛 분할 플래그 정보(split_coding_unit_flag), 스킵 플래그 정보(skip_flag), 머지 플래그 정보(merge_flag), 예측 모드 정보(PredMode), 분할 모드 정보(PartMode), 인트라 분할 모드 정보(intra_part_mode), MPM 플래그 정보(prev_intra_luma_pred_flag) 및 MPM 인덱스 정보(mpm_idx) 등이 있을 수 있다.
다시 도 7을 참조하면, 부호화기는 생성된 부호화 정보에 대응하는 복수의 구문 요소에 대해 엔트로피 부호화를 수행할 수 있다(S720).
상술한 바와 같이, 부호화기는 엔트로피 부호화를 위해 CAVLC, CABAC 등과 같은 엔트로피 부호화 방식을 사용할 수 있다. 이 때, 부호화기는 각 구문 요소에 대응하는 심볼의 발생 확률을 고려하여, 두 개 이상의 서로 다른 구문 요소를 결합하여 엔트로피 부호화를 수행함으로써 영상 부호화 효율을 향상시킬 수 있다. 특히, 일반적으로 각각 독립적으로 엔트로피 부호화가 수행되는 복수의 구문 요소 중에서도, 결합 부호화 방식이 적용됨으로써 부호화 효율이 향상될 수 있는 둘 이상의 구문 요소가 존재할 수 있다. 이하 본 명세서에서는, 서로 다른 복수의 구문 요소 및/또는 동일한 하나의 구문 요소에 대해 도출된 복수의 구문 요소 값을 결합하여 엔트로피 부호화를 수행하는 부호화 방식은 결합 부호화(joint coding) 방식이라 한다.
예를 들어, 하나의 구문 요소에 대응하는 심볼에 할당될 수 있는 값이 단 2가지인 경우, 통상적으로 고정 길이 부호화 방식을 기반으로 0 또는 1의 값이 전송될 수 있다. 이 경우, 두 개의 심볼 값 중 큰 발생 확률을 갖는 심볼 값에 대해서도 작은 발생 확률을 갖는 심볼 값에서와 마찬가지로 1비트가 부호화될 수 있다. 그러나, 발생 확률이 서로 다른 두 개의 심볼 값을 갖는 심볼에 결합 부호화 방식이 적용되면, 발생 확률에 따라 두 개의 심볼 값에 서로 다른 비트량이 할당될 수 있으므로, 부호화 효율이 향상될 수 있다.
결합 부호화 수행 시에 부호화기는 두 개 이상의 심볼에 대응하는 하나의 대표 심볼을 이용할 수 있다. 이 때, 부호화기는 두 개 이상의 심볼 값들을 하나의 그룹으로 결합하고 상기 결합된 그룹에 하나의 대표 심볼 값을 할당할 수 있다.
또한, 부호화기는 대표 심볼 값이 결정되면, 상기 대표 심볼 값에 의해 지시되는 그룹에 속한 복수의 심볼 값들을 구별하기 위해, 상기 대표 심볼 값에 대응되는 추가의 비트를 결정하여 복호화기로 전송할 수도 있다. 이와 같이, 하나의 대표 심볼 값에 대응되는 복수의 심볼 값들을 구별하기 위해 추가의 비트가 적용되거나 및/또는 사용되는 심볼은 이스케이프 심볼(escape symbol)로 불릴 수 있다.
상술한 결합 부호화 방식 및/또는 이스케이프 심볼을 사용함으로써, 부호화기는 엔트로피 부호화 시에 정렬 테이블(sorting table)을 기반으로 수행되는 확률 업데이트의 효율을 향상시킬 수 있다. 즉, 복수의 심볼에 대한 확률이 각각 개별적으로 업데이트되지 않고 결합된 복수의 심볼에 대해 그룹 단위로 확률이 업데이트되는 경우, 상기 그룹에 속한 심볼, 이벤트, 파라미터 등의 확률이 한꺼번에 업데이트될 수 있으므로, 확률 예측의 정확성이 향상될 수 있다.
한편, 상술한 결합 부호화 방식은 서로 다른 복수의 구문 요소에만 적용되는 것이 아니라, 동일한 하나의 구문 요소에 대해 도출되는 복수의 구문 요소 값에 대해서도 적용될 수 있다. 이 경우, 부호화기는 부호화 유닛, 예측 유닛 및/또는 변환 유닛에 대응하는 복수의 구문 요소 값들을 하나의 그룹으로 결합하고 상기 결합된 그룹에 하나의 대표 심볼 값을 할당할 수 있다. 즉, 부호화기는 동일한 하나의 구문 요소에 대해 도출되는 복수의 구문 요소 값에 결합하고 상기 결합된 복수의 구문 요소 값들을 하나의 구문 요소(및/또는 하나의 구문 요소 값)으로 부호화할 수 있다.
상술한 바와 같이, 결합 부호화 방식은 엔트로피 부호화를 수행함에 있어 다양한 장점을 가질 수 있으며, 부호화 효율을 향상시킬 수 있다. 결합 부호화 방식의 구체적인 실시예들은 후술되므로, 여기서는 생략하기로 한다.
다시 도 7을 참조하면, 부호화기는 상술한 과정에 의해 결합 부호화된 구문 요소 정보를 복호화기로 전송할 수 있다(S730).
도 8은 본 발명의 실시예에 따른 복호화 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 8을 참조하면, 복호화기는 결합 부호화된 구문 요소 정보에 대한 엔트로피 복호화를 수행할 수 있다(S810). 이하 본 명세서에서는, 결합 부호화된 구문 요소에 대해 수행되는 엔트로피 복호화는 결합 복호화(joint decoding)라 한다.
상술한 바와 같이, 복호화기는 엔트로피 복호화를 위해 CAVLC, CABAC 등과 같은 엔트로피 복호화 방식을 사용할 수 있다. 이 때, 복호화기는 각 구문 요소에 대응하는 심볼의 발생 확률을 고려하여, 두 개 이상의 서로 다른 구문 요소 및/또는 동일한 하나의 구문 요소에 대응하는 복수의 구문 요소 값에 대해 결합 복호화 과정을 수행함으로써 영상 복호화 효율을 향상시킬 수 있다.
예를 들어, 하나의 구문 요소에 대응하는 심볼에 할당될 수 있는 값이 단 2가지인 경우, 통상적으로 고정 길이 부호화 방식을 기반으로 0 또는 1의 값이 전송될 수 있다. 이 경우, 두 개의 심볼 값 중 큰 발생 확률을 갖는 심볼 값에 대해서도 작은 발생 확률을 갖는 심볼 값에서와 마찬가지로 1비트가 부호화될 수 있다. 그러나, 발생 확률이 서로 다른 두 개의 심볼 값을 갖는 심볼에 결합 복호화 방식이 적용되면, 발생 확률에 따라 두 개의 심볼 값에 서로 다른 비트량이 할당될 수 있으므로, 복호화 효율이 향상될 수 있다.
결합 복호화 수행 시에 복호화기는 두 개 이상의 심볼에 대응하는 하나의 대표 심볼을 이용할 수 있다. 이 때, 복호화기는 엔트로피 복호화에 의해 하나의 대표 심볼 값을 결정할 수 있고, 상기 결정된 대표 심볼 값을 기반으로 상기 대표 심볼 값에 대응하는 두 개 이상의 심볼 값을 도출할 수 있다.
또한, 복호화기는 대표 심볼 값이 결정되면, 상기 대표 심볼 값에 의해 지시되는 그룹에 속한 복수의 심볼 값들을 구별하기 위해, 상기 대표 심볼 값에 대응되는 추가의 비트를 읽을 수도 있다. 여기서, 대표 심볼 값에 대응되는 추가의 비트는 부호화기에서 결정되어 복호화기로 전송될 수 있다. 상술한 바와 같이, 하나의 대표 심볼 값에 대응되는 복수의 심볼 값들을 구별하기 위해 추가의 비트가 적용되거나 및/또는 사용되는 심볼은 이스케이프 심볼(escape symbol)로 불릴 수 있다.
상술한 결합 복호화 방식 및/또는 이스케이프 심볼을 사용함으로써, 복호화기는 엔트로피 부호화 시에 정렬 테이블(sorting table)을 기반으로 수행되는 확률 업데이트의 효율을 향상시킬 수 있다. 즉, 복수의 심볼에 대한 확률이 각각 개별적으로 업데이트되지 않고 결합된 복수의 심볼에 대해 그룹 단위로 확률이 업데이트되는 경우, 상기 그룹에 속한 심볼, 이벤트, 파라미터 등의 확률이 한꺼번에 업데이트될 수 있으므로, 확률 예측의 정확성이 향상될 수 있다.
한편, 상술한 결합 복호화 방식은 서로 다른 복수의 구문 요소에만 적용되는 것이 아니라, 동일한 하나의 구문 요소에 대해 도출되는 복수의 구문 요소 값에 대해서도 적용될 수 있다. 이 경우에는 상기 복수의 구문 요소 값들의 그룹에 대응되는 하나의 대표 구문 요소 값이 엔트로피 복호화 과정에 의해 도출될 수 있다. 즉, 복호화기는 엔트로피 복호화에 의해 하나의 대표 구문 요소 값을 결정할 수 있고, 상기 결정된 대표 구문 요소 값을 기반으로 상기 대표 구문 요소 값에 대응하는 복수의 구문 요소 값을 도출할 수 있다.
상술한 바와 같이, 결합 복호화 방식은 엔트로피 복호화를 수행함에 있어 다양한 장점을 가질 수 있으며, 복호화 효율을 향상시킬 수 있다. 결합 복호화 방식의 구체적인 실시예들은 후술되므로, 여기서는 생략하기로 한다.
다시 도 8을 참조하면, 복호화기는 결합 복호화된 구문 요소 정보를 기반으로, 부호화 정보에 대응하는 복호화 정보를 획득할 수 있다(S820). 즉, 복호화기는 부호화 유닛에 대한 복호화 과정(복원 블록 생성 과정)을 수행하기 전에 부호화 정보에 대응하는 복호화 정보를 획득할 수 있다. 여기서, 복호화 정보에는 부호화 유닛 분할 플래그 정보(split_coding_unit_flag), 스킵 플래그 정보(skip_flag), 머지 플래그 정보(merge_flag), 예측 모드 정보(PredMode), 분할 모드 정보(PartMode), 인트라 분할 모드 정보(intra_part_mode), MPM 플래그 정보(prev_intra_luma_pred_flag) 및 MPM 인덱스 정보(mpm_idx) 등이 있을 수 있다.
다시 도 8을 참조하면, 복호화기는 획득된 복호화 정보를 기반으로 복호화 대상 블록(예를 들어, 부호화 유닛, 예측 유닛 및/또는 변환 유닛 등)에 대응하는 복원 블록을 생성할 수 있다(S830).
이하, 결합 부호화/결합 복호화 과정의 실시예들이 표를 기반으로 서술된다. 후술되는 각각의 실시예들은 결합 부호화 및 결합 복호화 과정에 모두 적용될 수 있다. 또한, 후술되는 실시예들에서, 부호화 정보를 나타내는 각각의 심볼(및/또는 구문 요소)의 명칭 및 각각의 심볼(및/또는 구문 요소)에 할당되는 값들은 임의적인 것이며, 변형된 실시예들도 후술되는 실시예들에서 서술된 내용과 실질적으로 동일한 기술적 사상에 해당되는 것이라면, 본 발명의 권리 범위에 포함된다 할 것이다.
다음 표 1은 부호화/복호화 대상 유닛의 크기가 SCU보다 큰 경우, 결합 부호화/결합 복호화 방법의 일 실시예를 나타낸다.
[표 1]
Figure pat00001
표 1의 실시예에서, MODE_SKIP은 부호화 유닛(및/또는 예측 유닛)의 예측 모드가 스킵 모드임을 의미할 수 있다. 또한, MODE_INTER는 부호화 유닛(및/또는 예측 유닛)의 예측 모드가 인터 모드임을 의미할 수 있다. 또한, MODE_INTRA는 부호화 유닛(및/또는 예측 유닛)의 예측 모드가 인트라 모드임을 의미할 수 있다. 또한, PART_2Nx2N, PART_2NxN, PART_Nx2N, PART_NxN, PART_2NxnU, PART_2NxnD, PART_nLx2N 및 PART_nRx2N는 각각 분할 모드 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N 및 nRx2N을 의미할 수 있다.
표 1을 참조하면, 부호화 유닛 및/또는 예측 유닛에 대한 복수의 구문 요소 split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode에 대해, 상기 복수의 구문 요소 각각의 발생 확률을 고려하여 하나의 대표 구문 요소가 결정될 수 있다. 대표 구문 요소는 상기 복수의 구문 요소 각각에 대해 매핑될 수 있다. 일례로 상기 대표 구문 요소는 표 1의 실시예에서와 같이 cu_split_pred_part_mode로 나타내어질 수 있다.
이 때, 부호화기는 상기 복수의 구문 요소 값을 기반으로 대표 구문 요소 값을 결정할 수 있고, 대표 구문 요소에 대해 엔트로피 부호화를 수행하여 복호화기로 전송할 수 있다. 복호화기는 전송된 정보에 대해 엔트로피 복호화를 수행함으로써 대표 구문 요소 값을 결정할 수 있고, 상기 대표 구문 요소 값을 기반으로 상기 복수의 구문 요소 값을 도출할 수 있다.
후술되는 표 2 이하의 실시예들에서, 대표 구문 요소를 기반으로 복수의 구문 요소 값을 부호화하는 과정 및 대표 구문 요소를 기반으로 복수의 구문 요소 값을 도출하는 과정은 표 1의 실시예에서와 유사하므로, 다른 설명이 필요한 경우가 아니라면 이에 대한 설명은 생략될 수 있다.
다음 표 2는 결합 부호화/결합 복호화 방법의 다른 실시예를 나타낸다.
[표 2]
Figure pat00002
표 2의 실시예를 참조하면, 부호화기/복호화기는 부호화/복호화 성능의 향상을 위해, 복수의 구문 요소 split_coding_unit_flag, skip_flag, merge_flag, Predmode, Partmode뿐만 아니라, 인트라 부호화/복호화 정보에 해당되는 prev_intra_luma_pred_flag를 결합하여 엔트로피 부호화/복호화를 수행할 수 있다. 이 때, prev_intra_luma_pred_flag를 포함한 복수의 구문 요소에 대해, 상기 복수의 구문 요소 각각의 발생 확률을 고려하여 하나의 대표 구문 요소가 결정될 수 있다. 대표 구문 요소는 상기 복수의 구문 요소 각각에 대해 매핑될 수 있다. 일례로 상기 대표 구문 요소는 표 2의 실시예에서와 같이 cu_split_pred_part_mode로 나타내어질 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 부호화/복호화 대상 유닛이 복수의 예측 유닛으로 분할된 경우에는, 복수의 예측 유닛 각각이 prev_intra_luma_pred_flag 값을 가질 수 있고, 따라서 복수의 prev_intra_luma_pred_flag 값이 존재할 수 있다. 이 때, 부호화기/복호화기는 복수의 prev_intra_luma_pred_flag 값 모두에 대해 표 2의 실시예에서와 유사한 방식으로 결합 부호화/결합 복호화 방식을 적용할 수 있다. 이 경우에도, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 3은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 3]
Figure pat00003
표 3의 실시예에서는, mpm_idx가 복수의 구문 요소 split_coding_unit_flag, skip_flag, merge_flag, Predmode, Partmode 및 prev_intra_luma_pred_flag와 함께 결합되어 부호화/복호화될 수 있다. 이 때, 결합되는 복수의 구문 요소에 대응하는 하나의 대표 구문 요소가 결정될 수 있으며, 대표 구문 요소는 상기 복수의 구문 요소 각각에 대해 매핑될 수 있다. 일례로 상기 대표 구문 요소는 표 3의 실시예에서와 같이 cu_split_pred_part_mode로 나타내어질 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 표 3의 실시예에서 부호화기/복호화기는 cu_split_pred_part_mode에 대해 심볼의 발생 확률에 따라 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있으므로, MODE_INTRA 및 PART_2Nx2N에 해당되는 심볼의 발생 확률을 높이기 위해 이스케이프 심볼(escape symbol)을 사용할 수 있다.
예를 들어, cu_split_pred_part_mode의 심볼 값이 6이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 0이면, 예측 유닛(및/또는 부호화 유닛)의 예측 모드는 MODE_INTRA로 결정되고 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 PART_2Nx2N로 결정되며, prev_intra_luma_pred_flag에 할당되는 값은 0으로 결정될 수 있다.
상기 파싱된 값이 1이면, 예측 유닛(및/또는 부호화 유닛)의 예측 모드는 MODE_INTRA로 결정되고 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 PART_2Nx2N로 결정되며, prev_intra_luma_pred_flag에 할당되는 값은 1로 결정될 수 있다. 그리고, 복호화기는 추가로 상기 심볼 값에 대응하는 하나의 비트(제2 비트)를 더 파싱할 수 있다. 이 때, 파싱된 값이 0이면 mpm_idx에 할당되는 값은 0으로 결정될 수 있고, 파싱된 값이 1이면 mpm_idx에 할당되는 값은 1로 결정될 수 있다.
상술한 표 3의 실시예에서는 prev_intra_luma_pred_flag 및 mpm_idx가 cu_split_pred_part_mode를 통해 결합 부호화/결합 복호화될 수 있다. 따라서, 인트라 예측에 관련된 구문 요소인 prev_intra_luma_pred_flag 및 mpm_idx가 서로 결합되어 부호화/복호화되는 효과가 발생할 수 있다.
다음 표 4는 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 4]
Figure pat00004
표 4의 실시예에서는, cu_split_pred_part_mode를 기반으로 결합 부호화/결합 복호화가 수행되는 경우, 비대칭 움직임 분할 모드(Asymmetric Motion Partitioning mode: AMP mode)에 대해 이스케이프 심볼이 사용될 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 표 4의 실시예에서 부호화기/복호화기는 cu_split_pred_part_mode에 대해 심볼의 발생 확률에 따라 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있으므로, 비대칭 움직임 분할 모드에 대응하는 심볼의 발생 확률을 높이기 위해 이스케이프 심볼(escape symbol)을 사용할 수 있다.
예를 들어, cu_split_pred_part_mode의 심볼 값이 7이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다.
이 때, 제1 비트에 대해 파싱된 값이 0이면, 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 수평 분할에 해당될 수 있고, 복호화기는 추가로 상기 심볼 값에 대응하는 하나의 비트(제2 비트)를 더 파싱할 수 있다. 제2 비트에 대해 파싱된 값이 0이면 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 PART_2NxnU에 해당될 수 있고, 제2 비트에 대해 파싱된 값이 1이면 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 PART_2NXnD에 해당될 수 있다.
또한, 제1 비트에 대해 파싱된 값이 1이면, 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 수직 분할에 해당될 수 있고, 복호화기는 추가로 상기 심볼 값에 대응하는 하나의 비트(제2 비트)를 더 파싱할 수 있다. 이 때, 제2 비트에 대해 파싱된 값이 0이면 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 PART_nLx2N에 해당될 수 있고, 제2 비트에 대해 파싱된 값이 1이면 예측 유닛(및/또는 부호화 유닛)의 분할 모드는 PART_nRx2N에 해당될 수 있다.
결합 부호화/결합 복호화 방법의 또 다른 실시예로서, 부호화기/복호화기는 intra_part_mode 및 prev_intra_luma_pred_flag를 결합하여 엔트로피 부호화/복호화를 수행할 수 있다. 일례로, intra_part_mode 및 prev_intra_luma_pred_flag 각각의 심볼 값에 대응하는 확률 분포는 다음 표 5 및 표 6의 실시예와 같이 나타내어질 수 있다.
[표 5]
Figure pat00005
[표 6]
Figure pat00006
여기서, part_size는 인트라 모드에서의 분할 모드를 의미할 수 있다. 또한, Intra_2Nx2N은 2Nx2N의 분할 모드를 나타내고, Intra_NxN은 NxN의 분할 모드를 나타낼 수 있다.
부호화기/복호화기는 상기 표 5, 표 6의 실시예에 나타내어진 두 구문 요소의 발생 확률을 고려하여, 상기 두 개의 구문 요소 intra_part_mode 및 prev_intra_luma_pred_flag를 결합하여 엔트로피 부호화/복호화를 수행함으로써, 부호화 효율을 향상시킬 수 있다. 이는 다음 표 7에 의해 나타내어질 수 있다.
[표 7]
Figure pat00007
표 7의 실시예에서는 두 개의 구문 요소 intra_part_mode 및 prev_intra_luma_pred_flag의 발생 확률을 고려하여 하나의 대표 구문 요소가 결정될 수 있다. 상기 대표 구문 요소는 상기 두 개의 구문 요소 각각에 대해 매핑될 수 있다. 일례로 상기 대표 구문 요소는 표 7의 실시예에서와 같이 intra_part_mpm_mode로 나타내어질 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
결합 부호화/결합 복호화 방법의 또 다른 실시예로서, 부호화기/복호화기는 하나의 부호화 유닛에 대응하는 복수의 prev_intra_luma_pred_flag 값에 대해 결합 부호화/결합 복호화를 수행할 수 있다. 이 때, 일 실시예로 부호화기/복호화기는 부호화 유닛에 대응하는 복수의 prev_intra_luma_pred_flag 값들이 결합 부호화/결합 복호화되는지 여부를 지시하는 unified_prev_intra_luma_pred_flag 에 대한 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다.
예를 들어, 현재 부호화 유닛(및/또는 예측 유닛)의 분할 모드가 Intra_NxN이고 unified_prev_intra_luma_pred_flag 에 1이 할당된 경우, NxN 크기를 갖는 4개의 예측 유닛의 prev_intra_luma_pred_flag 에 할당되는 값은 모두 0으로 결정될 수 있다. 이 때, Intra_NxN 분할 모드를 갖는 4개의 예측 유닛의 prev_intra_luma_pred_flag 에 대해서는 엔트로피 부호화/엔트로피 복호화가 수행되지 않을 수 있다.
또한, 현재 부호화 유닛(및/또는 예측 유닛)의 분할 모드가 Intra_NxN이고 unified_prev_intra_luma_pred_flag 에 0이 할당된 경우, NxN 크기를 갖는 4개의 예측 유닛의 prev_intra_luma_pred_flag 중에서 적어도 하나에는 1이 할당될 수 있다. 이 때, 부호화기/복호화기는 Intra_NxN 분할 모드를 갖는 4개의 예측 유닛의 prev_intra_luma_pred_flag 모두에 대해 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다.
다음 표 8은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 8]
Figure pat00008
표 8을 참조하면, NxN의 분할 모드를 갖는 하나의 부호화 유닛에 속한 네 개의 예측 유닛은 각각 0, 1, 2 및 3의 NxN PU 인덱스 값을 가질 수 있다.
도 9는 NxN의 분할 모드를 갖는 하나의 부호화 유닛에 속한 네 개의 예측 유닛 각각의 PU 인덱스 값을 개략적으로 나타내는 도면이다. 도 9를 참조하면, NxN 분할 모드를 갖는 부호화 유닛(910)에서, 좌측 상단 예측 유닛의 PU 인덱스 값은 0이고, 우측 상단 예측 유닛의 PU 인덱스 값은 1이고, 좌측 하단 예측 유닛의 PU 인덱스 값은 2이고, 우측 하단 예측 유닛의 PU 인덱스 값은 3일 수 있다.
표 8의 실시예에서는, 하나의 부호화 유닛에 대응하는 복수의 prev_intra_luma_pred_flag 값에 대해 결합 부호화/결합 복호화를 수행하기 위해, unified_prev_intra_luma_pred_flag를 사용하지 않고, 상기 복수의 prev_intra_luma_pred_flag 값에 대응하는 하나의 대표 구문 요소를 이용할 수 있다. 이 때, 대표 구문 요소는 상기 복수의 prev_intra_luma_pred_flag 값의 조합에 매핑될 수 있다. 일례로 상기 대표 구문 요소는 표 8의 실시예에서와 같이 unified_prev_intra_luma_pred_mode로 나타내어질 수 있다.
부호화기는 상기 복수의 구문 요소 값을 기반으로 대표 구문 요소(unified_prev_intra_luma_pred_mode) 값을 결정할 수 있고, 대표 구문 요소에 대해 엔트로피 부호화를 수행하여 복호화기로 전송할 수 있다. 복호화기는 전송된 정보에 대해 엔트로피 복호화를 수행함으로써 대표 구문 요소 값(unified_prev_intra_luma_pred_mode)을 결정할 수 있고, 상기 대표 구문 요소 값을 기반으로 상기 복수의 구문 요소 값을 도출할 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
결합 부호화/결합 복호화 방법의 또 다른 실시예로서, 부호화기/복호화기는 split_coding_unit_flag, prev_intra_luma_pred_flag, mpm_idx 등의 인트라 모드 부호화 관련 정보를 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 이 때, 결합되는 복수의 구문 요소에 대응하는 하나의 대표 구문 요소가 결정될 수 있으며, 대표 구문 요소는 상기 복수의 구문 요소 각각에 대해 매핑될 수 있다. 일례로 상기 대표 구문 요소는 intra_cu_split_pred_part_mode로 나타내어질 수 있다.
다음 표 9는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 intra_cu_split_pred_part_mode를 기반으로 한 결합 부호화/결합 복호화에 적용되는 코드워드 테이블의 일 실시예를 나타낸다.
[표 9]
Figure pat00009
한편, 다음 표 10은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일한 경우에 intra_cu_split_pred_part_mode를 기반으로 한 결합 부호화/결합 복호화에 적용되는 코드워드 테이블의 일 실시예를 나타낸다.
[표 10]
Figure pat00010
상기 표 9 및 표 10의 실시예에서, CUSize는 부호화/복호화 대상이 되는 CU의 크기를 나타낼 수 있다.
상기 표 9 및 표 10의 실시예에서, 부호화기는 상기 복수의 구문 요소 값을 기반으로 대표 구문 요소 값을 결정할 수 있고, 대표 구문 요소에 대해 엔트로피 부호화를 수행하여 복호화기로 전송할 수 있다. 복호화기는 전송된 정보에 대해 엔트로피 복호화를 수행함으로써 대표 구문 요소 값을 결정할 수 있고, 상기 대표 구문 요소 값을 기반으로 상기 복수의 구문 요소 값을 도출할 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 부호화/복호화 대상 유닛이 복수의 예측 유닛으로 분할된 경우에는, 복수의 예측 유닛 각각이 prev_intra_luma_pred_flag 값 및 mpm_idx 값 등을 가질 수 있고, 따라서 복수의 prev_intra_luma_pred_flag 값 및 복수의 mpm_idx 값이 존재할 수 있다. 이 때, 부호화기/복호화기는 복수의 prev_intra_luma_pred_flag 값 및 복수의 mpm_idx 값 모두에 대해 표 9 및 표 10의 실시예에서와 유사한 방식으로 결합 부호화/결합 복호화 방식을 적용할 수 있다. 이 경우에도, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 11은 intra_cu_split_pred_part_mode를 기반으로 결합 부호화/결합 복호화가 수행되는 경우의 구문 요소의 실시예를 나타낸다.
[표 11]
Figure pat00011
표 11을 참조하면, intra_cu_split_pred_part_mode 구문(syntax)은 일례로, cu_split_pred_part_mode 및 split_coding_unit_flag 등과 함께 코딩 트리(coding tree) 내에서 정의될 수 있다.
다음 표 12는 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 12]
Figure pat00012
표 12는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 표 12를 참조하면, 부호화기/복호화기는 merge_flag를 제외한 복수의 구문 요소 split_coding_unit_flag, skip_flag, PredMode 및 PartMode를 하나의 대표 구문 요소 cu_split_pred_part_mode로 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다.
cu_split_pred_part_mode에 merge_flag가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, cu_split_pred_part_mode에 대응하는 심볼 값 통계가 제대로 반영되지 않아 부호화/복호화 성능에 한계가 있을 수 있다. 따라서, 부호화기/복호화기는 merge_flag에 의한 부호화/복호화 성능의 저하를 감소시키기 위해, merge_flag를 제외한 다른 복수의 구문 요소들만을 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 일례로, 부호화기/복호화기는 split_coding_unit_flag, skip_flag, Predmode 및 Partmode에 대해 표 12의 실시예에서와 같이 결합 부호화/결합 복호화를 수행할 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 표 12의 실시예에서 merge_flag는 cu_split_pred_part_mode에 결합되지 않으므로, cu_split_pred_part_mode와는 구별되는 별개의 구문 요소에 해당될 수 있다. 따라서, 부호화기/복호화기는 cu_split_pred_part_mode 및 merge_flag에 대해 각각 독립적으로 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다.
다음 표 13은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 13]
Figure pat00013
표 13은 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, split_coding_unit_flag, skip_flag, PredMode 및 PartMode에 대한 결합 부호화/결합 복호화 방법의 다른 실시예에 해당될 수 있다. 이 때, 표 13은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 여기서, 일례로 부호화기/복호화기는 MODE_INTRA의 PART_2Nx2N, MODE_INTRA의 PART_NxN 및 MODE_INTER의 PART_NxN에 대응하는 이스케이프 심볼을 사용할 수 있다. 표 13의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 14는 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 14]
Figure pat00014
표 14는 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, split_coding_unit_flag, skip_flag, PredMode 및 PartMode에 대한 결합 부호화/결합 복호화 방법의 또 다른 실시예에 해당될 수 있다. 이 때, 표 14는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 여기서, 일례로 부호화기/복호화기는 MODE_INTRA의 PART_2Nx2N 및 MODE_INTRA의 PART_NxN에 대응하는 이스케이프 심볼을 사용할 수 있다. 표 14의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 15는 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 구문 요소 cu_split_pred_part_mode의 시맨틱스(semantics)의 일 실시예를 나타낸다.
[표 15]
Figure pat00015
표 15를 참조하면, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode을 기반으로 한 결합 부호화/결합 복호화 과정에서는 split_coding_unit_flag, skip_flag, Predmode 및 Partmode의 부호화 유닛 레벨의 구문 요소들에 대해서만 결합 부호화/결합 복호화가 수행될 수 있다.
표 15의 실시예에서, cu_split_pred_part_mode는 split_coding_unit_flag를 나타낼 수 있다. 부호화 유닛이 분할되지 않는 경우에, cu_split_pred_part_mode는 상기 부호화 유닛의 skip_flag[x0][y0], PredMode 및 PartMode를 나타낼 수 있다. 배열 인덱스에 해당되는 x0 및 y0은 상기 부호화 유닛이 속한 픽쳐(picture) 내의 가장 좌측 상단 루마(luma) 픽셀의 위치를 기준으로 상기 부호화 유닛 내의 가장 좌측 상단 루마 픽셀의 위치를 나타낼 수 있다.
다음 표 16은 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 예측 유닛 신택스(syntax)의 일 실시예를 나타낸다.
[표 16]
Figure pat00016
표 16을 참조하면, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 복호화기는 엔트로피 복호화 방법 및 예측 유닛의 분할 모드에 관한 조건을 확인하지 않고 상기 merge_flag를 파싱할 수 있다. 이 때, 상기 merge_flag의 부호화/복호화 과정에서는 1 비트(bit) 길이의 고정 길이 코드(fixed length code)가 사용될 수 있다.
cu_split_pred_part_mode에 merge_flag가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, merge_flag는 예측 유닛(및/또는 부호화 유닛)의 분할 모드가 2Nx2N이 아닐 때 파싱될 수 있다. 그러나, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 복호화기는 예측 유닛(및/또는 부호화 유닛)의 분할 모드가 2Nx2N인 때에도 다른 분할 모드에서와 동일한 방식으로 merge_flag를 파싱할 수 있다. 이 때, 복호화기는 특정한 조건을 체크하지 않고 merge_flag를 파싱할 수 있으므로, 복호화기에서의 복잡도가 감소될 수 있다.
다음 표 17은 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 매핑 테이블(mapping table)의 일 실시예를 나타낸다. 여기서, 매핑 테이블은 코드 넘버(code number) 및 테이블 인덱스(table index) 간의 매핑 관계를 나타내는 테이블을 의미할 수 있다. 일례로, cu_split_pred_part_mode에 대응하는 매핑 테이블은 splitPredPartModeTable로 나타내어질 수 있다.
[표 17]
Figure pat00017
표 17의 실시예는 매핑 테이블에 대응되는 초기 테이블(initialized table)에 해당될 수 있다. 여기서, cuDepth는 부호화 유닛의 깊이 값을 나타내고, codeNum은 코드 넘버를 나타낸다.
표 17을 참조하면, splitPredPartModeTable는 부호화 유닛의 깊이 값에 따라 다른 코드 넘버를 가질 수 있다. 따라서, 복호화기는 splitPredPartModeTable을 기반으로, 각각의 부호화 유닛의 깊이 값에 따라 대표 구문 요소 cu_split_pred_part_mode에 대응하는 복수의 심볼 split_coding_unit_flag, skip_flag, Predmode 및 Partmode를 도출할 수 있다. 이 때, 복호화기는 엔트로피 복호화 과정에서 splitPredPartModeTable에 대해 적응적 정렬 테이블을 적용할 수 있다.
한편, 표 17의 실시예에서, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우(예를 들어, 부호화 유닛의 깊이 값이 0, 1 또는 2인 경우), 0 내지 9의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 0 내지 9의 테이블 인덱스 값에 매핑될 수 있다. 또한, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU의 크기와 동일한 경우(예를 들어, 부호화 유닛의 깊이 값이 3인 경우), 0 내지 4의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 1 내지 5의 테이블 인덱스 값에 매핑될 수 있다.
이 때, 코드 넘버의 최대 개수는 cu_split_pred_part_mode에 대응하는 심볼의 최대 개수와 동일할 수 있으며, 상기 심볼의 개수는 테이블 인덱스의 개수에 해당될 수 있다. 또한, 부호화 유닛의 깊이 값이 3인 경우, 5 이상의 값을 갖는 코드 넘버에 대응하는 테이블 인덱스 값은 실제로 사용되지 않는 의미 없는 값에 해당될 수 있다. 이는 부호화 유닛의 깊이 값이 3인 경우에는 0 내지 4의 값을 갖는 5가지의 코드 넘버만이 사용될 수 있기 때문이다.
다음 표 18은 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 18은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 18]
Figure pat00018
표 18을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 18의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 9일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다. 일례로, 테이블 인덱스 값이 N(N은 0 이상의 정수)일 때, 상기 테이블 인덱스 값에 대응하는 절삭형 단항 코드는 N개의 ‘0’ 및 1개의 ‘1’로 구성될 수 있다. 이 때, 테이블 인덱스 값이 최대 값 Nmax에 해당되는 경우, 상기 테이블 인덱스 값에 대응하는 절삭형 단항 코드는 Nmax개의 ‘0’으로 구성될 수 있다. 다른 예로, 테이블 인덱스 값이 N(N은 0 이상의 정수)일 때, 상기 테이블 인덱스 값에 대응하는 절삭형 단항 코드는 N개의 ‘1’ 및 1개의 ‘0’으로 구성될 수 있다. 이 때, 테이블 인덱스 값이 최대 값 Nmax에 해당되는 경우, 상기 테이블 인덱스 값에 대응하는 절삭형 단항 코드는 Nmax개의 ‘1’로 구성될 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 18을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다. 예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 18의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있으며, PartMode는 PART_2Nx2N으로 결정될 수 있다. 이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 19는 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 다른 실시예를 나타낸다. 표 19는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 19]
Figure pat00019

표 19를 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 19의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 4일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 19를 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 3에 매핑될 수 있고, 상기 코드 넘버 3은 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 19의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있으며, PartMode는 PART_2Nx2N으로 결정될 수 있다. 이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다른 예로, cu_split_pred_part_mode 값이 4인 경우, 상기 심볼은 이스케이프 심볼로 사용될 수 있다. 예를 들어, cu_split_pred_part_mode 값이 4이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 1이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_2Nx2N로 결정될 수 있다.
상기 파싱된 값이 0이면, 복호화기는 추가로 상기 심볼 값에 대응하는 하나의 비트(제2 비트)를 더 파싱할 수 있다. 이 때, 파싱된 값이 1이면 PredMode는 MODE_INTRA로 결정될 수 있고 PartMode는 PART_NxN로 결정될 수 있다. 또한, 파싱된 값이 0이면 PredMode는 MODE_INTER로 결정되고 PartMode는 PART_NxN로 결정될 수 있다.
다음 표 20은 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 다른 실시예를 나타낸다. 표 20은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 20]
Figure pat00020
표 20을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 19의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 4일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 20을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘0001’인 경우, 상기 코드워드는 코드 넘버 4에 매핑될 수 있고, 상기 코드 넘버 4는 cu_split_pred_part_mode 값 3에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 3에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 20의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있으며, PartMode는 PART_Nx2N으로 결정될 수 있다. 이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다른 예로, cu_split_pred_part_mode 값이 4인 경우, 상기 심볼은 이스케이프 심볼로 사용될 수 있다. 예를 들어, cu_split_pred_part_mode 값이 4이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 1이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_2Nx2N으로 결정될 수 있다. 또한, 파싱된 값이 0이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_NxN으로 결정될 수 있다.
다음 표 21은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 21]
Figure pat00021
표 21은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 또한, 표 21의 실시예에서, 부호화기/복호화기는 merge_flag(머지 플래그), inter_part_horz_flag(수평 분할 플래그) 및 rem_inter_part_mode(리메이닝 분할 플래그)를 제외한 복수의 구문 요소 split_coding_unit_flag, skip_flag, PredMode 및 PartMode를 하나의 대표 구문 요소 cu_split_pred_part_mode로 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 즉, 표 21은 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와는 별개로 부호화/복호화되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 여기서, inter_part_horz_flag 및 rem_inter_part_mode는 비대칭 움직임 분할 모드 및 대칭 움직임 분할 모드에 관련된 정보로도 볼 수 있다.
cu_split_pred_part_mode에 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, cu_split_pred_part_mode에 대응하는 심볼 값 통계가 제대로 반영되지 않아 부호화/복호화 성능에 한계가 있을 수 있다. 따라서, 부호화기/복호화기는 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode에 의한 부호화/복호화 성능의 저하를 감소시키기 위해, merge_flag, inter_part_horz_flag 및 rem_inter_part_mode를 제외한 다른 복수의 구문 요소들만을 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 일례로, 부호화기/복호화기는 split_coding_unit_flag, skip_flag, Predmode 및 Partmode에 대해 표 21의 실시예에서와 같이 결합 부호화/결합 복호화를 수행할 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 표 21의 실시예에서 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode는 cu_split_pred_part_mode에 결합되지 않으므로, cu_split_pred_part_mode와는 구별되는 별개의 구문 요소에 해당될 수 있다. 따라서, 부호화기/복호화기는 cu_split_pred_part_mode, merge_flag, inter_part_horz_flag 및 rem_inter_part_mode에 대해 각각 독립적으로 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다.
다음 표 22는 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 22]
Figure pat00022
표 22는 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 다른 실시예에 해당될 수 있다. 표 22는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 여기서, 일례로 부호화기/복호화기는 MODE_INTER의 PART_2NxN, MODE_INTER의 PART_Nx2N에 대응하는 이스케이프 심볼 및 MODE_INTRA의 PART_2Nx2N, MODE_INTRA의 PART_NxN, MODE_INTER의 PART_NxN에 대응하는 이스케이프 심볼을 사용할 수 있다. 표 22의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 23은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 23]
Figure pat00023
표 23은 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 또 다른 실시예에 해당될 수 있다. 표 23은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 여기서, 일례로 부호화기/복호화기는 MODE_INTER의 PART_2NxN, MODE_INTER의 PART_Nx2N에 대응하는 이스케이프 심볼 및 MODE_INTRA의 PART_2Nx2N, MODE_INTRA의 PART_NxN에 대응하는 이스케이프 심볼을 사용할 수 있다. 표 23의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 24는 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 구문 요소 cu_split_pred_part_mode의 시맨틱스(semantics)의 일 실시예를 나타낸다.
[표 24]
Figure pat00024
표 24를 참조하면, merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode을 기반으로 한 결합 부호화/결합 복호화 과정에서는 split_coding_unit_flag, skip_flag, Predmode 및 2Nx2N과 NxN에 해당되는 Partmode의 부호화 유닛 레벨의 구문 요소들에 대해서만 결합 부호화/결합 복호화가 수행될 수 있다.
표 24의 실시예에서, cu_split_pred_part_mode는 split_coding_unit_flag를 나타낼 수 있다. 부호화 유닛이 분할되지 않는 경우에, cu_split_pred_part_mode는 상기 부호화 유닛의 skip_flag[x0][y0], PredMode 및 2Nx2N과 NxN에 해당되는 PartMode를 나타낼 수 있다. 배열 인덱스에 해당되는 x0 및 y0은 상기 부호화 유닛이 속한 픽쳐(picture) 내의 가장 좌측 상단 루마(luma) 픽셀의 위치를 기준으로 상기 부호화 유닛 내의 가장 좌측 상단 루마 픽셀의 위치를 나타낼 수 있다.
다음 표 25는 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 예측 유닛 신택스(syntax)의 일 실시예를 나타낸다.
[표 25]
Figure pat00025
표 25를 참조하면, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 복호화기는 엔트로피 복호화 방법 및 예측 유닛의 분할 모드에 관한 조건을 확인하지 않고 상기 merge_flag를 파싱할 수 있다. 이 때, 상기 merge_flag의 부호화/복호화 과정에서는 1 비트(bit) 길이의 고정 길이 코드(fixed length code)가 사용될 수 있다.
cu_split_pred_part_mode에 merge_flag가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, merge_flag는 예측 유닛(및/또는 부호화 유닛)의 분할 모드가 2Nx2N이 아닐 때 파싱될 수 있다. 그러나, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 복호화기는 예측 유닛(및/또는 부호화 유닛)의 분할 모드가 2Nx2N인 때에도 다른 분할 모드에서와 동일한 방식으로 merge_flag를 파싱할 수 있다. 이 때, 복호화기는 특정한 조건을 체크하지 않고 merge_flag를 파싱할 수 있으므로, 복호화기에서의 복잡도가 감소될 수 있다.
다음 표 26은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 부호화 유닛 신택스(syntax)의 일 실시예를 나타낸다.
[표 26]
Figure pat00026
표 26을 참조하면, inter_part_horz_flag 및 rem_inter_part_mode는 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화되거나 및/또는 복호화될 수 있다. 이 때, 상기 inter_part_horz_flag의 엔트로피 부호화/엔트로피 복호화 과정에서는 1 비트 길이의 고정 길이 코드(fixed length code)가 사용될 수 있다. 또한, 상기 rem_inter_part_mode의 엔트로피 부호화/엔트로피 복호화 과정에서는 가변 길이 코드(variable length code)가 사용될 수 있다.
다음 표 27은 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 매핑 테이블(mapping table)의 일 실시예를 나타낸다. 여기서, 매핑 테이블은 코드 넘버(code number) 및 테이블 인덱스(table index) 간의 매핑 관계를 나타내는 테이블을 의미할 수 있다. 일례로, cu_split_pred_part_mode에 대응하는 매핑 테이블은 splitPredPartModeTable로 나타내어질 수 있다.
[표 27]
Figure pat00027
표 27의 실시예는 매핑 테이블에 대응되는 초기 테이블(initialized table)에 해당될 수 있다. 여기서, cuDepth는 부호화 유닛의 깊이 값을 나타내고, codeNum은 코드 넘버를 나타낸다.
표 27을 참조하면, splitPredPartModeTable는 부호화 유닛의 깊이 값에 따라 다른 코드 넘버를 가질 수 있다. 따라서, 복호화기는 splitPredPartModeTable을 기반으로, 각각의 부호화 유닛의 깊이 값에 따라 대표 구문 요소 cu_split_pred_part_mode에 대응하는 복수의 심볼 split_coding_unit_flag, skip_flag, Predmode 및 Partmode를 도출할 수 있다. 이 때, 복호화기는 엔트로피 복호화 과정에서 splitPredPartModeTable에 대해 적응적 정렬 테이블을 적용할 수 있다.
한편, 표 27의 실시예에서, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우(예를 들어, 부호화 유닛의 깊이 값이 0, 1 또는 2인 경우), 0 내지 4의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 0 내지 4의 테이블 인덱스 값에 매핑될 수 있다. 또한, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU의 크기와 동일한 경우(예를 들어, 부호화 유닛의 깊이 값이 3인 경우), 0 내지 3의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 1 내지 4의 테이블 인덱스 값에 매핑될 수 있다.
이 때, 코드 넘버의 최대 개수는 cu_split_pred_part_mode에 대응하는 심볼의 최대 개수와 동일할 수 있으며, 상기 심볼의 개수는 테이블 인덱스의 개수에 해당될 수 있다. 또한, 부호화 유닛의 깊이 값이 3인 경우, 4 이상의 값을 갖는 코드 넘버에 대응하는 테이블 인덱스 값은 실제로 사용되지 않는 의미 없는 값에 해당될 수 있다. 이는 부호화 유닛의 깊이 값이 3인 경우에는 0 내지 3의 값을 갖는 4가지의 코드 넘버만이 사용될 수 있기 때문이다.
다음 표 28은 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 28은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 28]
Figure pat00028
표 28을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 28의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 4일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 28을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다. 예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 28의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있으며, PredMode는 MODE_INTER로 결정될 수 있다. 또한, PartMode는 부호화 유닛 신택스에 해당되는 두 개의 구문 요소 inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 결정될 수 있다. 이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 29는 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 29는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 29]
Figure pat00029
표 29를 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 29의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 3일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 29를 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다. 예를 들어, 코드워드가 ‘01’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 1에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 1에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 29의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
다른 예로, cu_split_pred_part_mode 값이 2 또는 3인 경우, 상기 심볼은 이스케이프 심볼로 사용될 수 있다. 예를 들어, cu_split_pred_part_mode 값이 3이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 1이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_2Nx2N로 결정될 수 있다.
상기 파싱된 값이 0이면, 복호화기는 추가로 상기 심볼 값에 대응하는 하나의 비트(제2 비트)를 더 파싱할 수 있다. 이 때, 파싱된 값이 1이면 PredMode는 MODE_INTRA로 결정될 수 있고 PartMode는 PART_NxN로 결정될 수 있다. 또한, 파싱된 값이 0이면 PredMode는 MODE_INTER로 결정되고 PartMode는 PART_NxN로 결정될 수 있다.
상술한 실시예에서, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 30은 merge_flag, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 30은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 30]
Figure pat00030
표 30을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 30의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 3일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 30을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다. 예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 3에 매핑될 수 있고, 상기 코드 넘버 3은 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 30의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있으며, PredMode는 MODE_INTER로 결정될 수 있다. 또한, PartMode는 부호화 유닛 신택스에 해당되는 두 개의 구문 요소 inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 결정될 수 있다.
다른 예로, cu_split_pred_part_mode 값이 2 또는 3인 경우, 상기 심볼은 이스케이프 심볼로 사용될 수도 있다. 예를 들어, cu_split_pred_part_mode 값이 3이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 1이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_2Nx2N으로 결정될 수 있다. 또한, 파싱된 값이 0이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_NxN으로 결정될 수 있다.
상술한 실시예에서, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 31은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 31]
Figure pat00031
표 31은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 또한, 표 31의 실시예에서, 부호화기/복호화기는 merge_flag(머지 플래그) 및 inter_amp_mode(비대칭 움직임 분할 정보)를 제외한 복수의 구문 요소 split_coding_unit_flag, skip_flag, PredMode 및 PartMode를 하나의 대표 구문 요소 cu_split_pred_part_mode로 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 즉, 표 31은 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와는 별개로 부호화/복호화되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
cu_split_pred_part_mode에 merge_flag 및 inter_amp_mode가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, cu_split_pred_part_mode에 대응하는 심볼 값 통계가 제대로 반영되지 않아 부호화/복호화 성능에 한계가 있을 수 있다. 따라서, 부호화기/복호화기는 merge_flag 및 inter_amp_mode에 의한 부호화/복호화 성능의 저하를 감소시키기 위해, merge_flag 및 inter_amp_mode를 제외한 다른 복수의 구문 요소들만을 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 일례로, 부호화기/복호화기는 split_coding_unit_flag, skip_flag, Predmode 및 Partmode에 대해 표 31의 실시예에서와 같이 결합 부호화/결합 복호화를 수행할 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 표 31의 실시예에서 merge_flag 및 inter_amp_mode는 cu_split_pred_part_mode에 결합되지 않으므로, cu_split_pred_part_mode와는 구별되는 별개의 구문 요소에 해당될 수 있다. 따라서, 부호화기/복호화기는 cu_split_pred_part_mode, merge_flag 및 inter_amp_mode에 대해 각각 독립적으로 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 이 때, 상기 inter_amp_mode의 부호화/복호화 과정에서는 고정 길이 코드 또는 가변 길이 코드가 사용될 수 있다.
다음 표 32는 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 32]
Figure pat00032
표 32는 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 다른 실시예에 해당될 수 있다. 표 32는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 표 32의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 33은 결합 부호화/결합 복호화 방법의 또 다른 실시예를 나타낸다.
[표 33]
Figure pat00033
표 33은 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 또 다른 실시예에 해당될 수 있다. 표 33은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 표 33의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 34는 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 구문 요소 cu_split_pred_part_mode의 시맨틱스(semantics)의 일 실시예를 나타낸다.
[표 34]
Figure pat00034
표 34를 참조하면, merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode을 기반으로 한 결합 부호화/결합 복호화 과정에서는 split_coding_unit_flag, skip_flag, Predmode 및 2Nx2N, 2NxN, Nx2N, NxN에 대응되는 Partmode에 관련된 부호화 유닛 레벨의 구문 요소들에 대해서만 결합 부호화/결합 복호화가 수행될 수 있다.
표 34의 실시예에서, cu_split_pred_part_mode는 split_coding_unit_flag를 나타낼 수 있다. 부호화 유닛이 분할되지 않는 경우에, cu_split_pred_part_mode는 상기 부호화 유닛의 skip_flag[x0][y0], PredMode 및 2Nx2N, 2NxN, Nx2N, NxN에 대응되는 PartMode를 나타낼 수 있다. 배열 인덱스에 해당되는 x0 및 y0은 상기 부호화 유닛이 속한 픽쳐(picture) 내의 가장 좌측 상단 루마(luma) 픽셀의 위치를 기준으로 상기 부호화 유닛 내의 가장 좌측 상단 루마 픽셀의 위치를 나타낼 수 있다.
다음 표 35는 merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 예측 유닛 신택스(syntax)의 일 실시예를 나타낸다.
[표 35]
Figure pat00035
표 35를 참조하면, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 복호화기는 엔트로피 복호화 방법 및 예측 유닛의 분할 모드에 관한 조건을 확인하지 않고 상기 merge_flag를 파싱할 수 있다. 이 때, 상기 merge_flag의 부호화/복호화 과정에서는 1 비트(bit) 길이의 고정 길이 코드(fixed length code)가 사용될 수 있다.
cu_split_pred_part_mode에 merge_flag가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, merge_flag는 예측 유닛(및/또는 부호화 유닛)의 분할 모드가 2Nx2N이 아닐 때 파싱될 수 있다. 그러나, merge_flag가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 복호화기는 예측 유닛(및/또는 부호화 유닛)의 분할 모드가 2Nx2N인 때에도 다른 분할 모드에서와 동일한 방식으로 merge_flag를 파싱할 수 있다. 이 때, 복호화기는 특정한 조건을 체크하지 않고 merge_flag를 파싱할 수 있으므로, 복호화기에서의 복잡도가 감소될 수 있다.
다음 표 36은 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 부호화 유닛 신택스(syntax)의 일 실시예를 나타낸다.
[표 36]
Figure pat00036
표 36을 참조하면, inter_amp_mode는 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화되거나 및/또는 복호화될 수 있다. 이 때, 상기 inter_amp_mode의 엔트로피 부호화/엔트로피 복호화 과정에서는 고정 길이 코드(fixed length code) 또는 가변 길이 코드(variable length code)가 사용될 수 있다.
다음 표 37은 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 매핑 테이블(mapping table)의 일 실시예를 나타낸다. 여기서, 매핑 테이블은 코드 넘버(code number) 및 테이블 인덱스(table index) 간의 매핑 관계를 나타내는 테이블을 의미할 수 있다. 일례로, cu_split_pred_part_mode에 대응하는 매핑 테이블은 splitPredPartModeTable로 나타내어질 수 있다.
[표 37]
Figure pat00037
표 37의 실시예는 매핑 테이블에 대응되는 초기 테이블(initialized table)에 해당될 수 있다. 여기서, Coding Type은 부호화 타입을 나타내고, codeNum은 코드 넘버를 나타낸다. 상기 Coding Type에 할당되는 값을 결정하는 방법의 구체적인 실시예는 표 38에서 후술하기로 한다.
표 37을 참조하면, splitPredPartModeTable는 부호화 타입에 할당된 값에 따라 다른 코드 넘버를 가질 수 있다. 따라서, 복호화기는 splitPredPartModeTable을 기반으로, 각각의 부호화 타입에 할당된 값에 따라 대표 구문 요소 cu_split_pred_part_mode에 대응하는 복수의 심볼 split_coding_unit_flag, skip_flag, Predmode 및 Partmode를 도출할 수 있다. 이 때, 복호화기는 엔트로피 복호화 과정에서 splitPredPartModeTable에 대해 적응적 정렬 테이블을 적용할 수 있다.
한편, 표 37의 실시예에서, 부호화 타입에 할당된 값이 0, 1 또는 2인 경우, 0 내지 6의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 0 내지 6의 테이블 인덱스 값에 매핑될 수 있다. 또한, 부호화 타입에 할당된 값이 3인 경우, 0 내지 5의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 1 내지 6의 테이블 인덱스 값에 매핑될 수 있다.
이 때, 코드 넘버의 최대 개수는 cu_split_pred_part_mode에 대응하는 심볼의 최대 개수와 동일할 수 있으며, 상기 심볼의 개수는 테이블 인덱스의 개수에 해당될 수 있다. 또한, 부호화 타입에 할당된 값이 3인 경우, 6 이상의 값을 갖는 코드 넘버에 대응하는 테이블 인덱스 값은 실제로 사용되지 않는 의미 없는 값에 해당될 수 있다. 이는 부호화 타입에 할당된 값이 3인 경우에는 0 내지 5의 값을 갖는 6가지의 코드 넘버만이 사용될 수 있기 때문이다.
다음 표 38은 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 부호화/복호화 대상이 되는 부호화 유닛에 적용되는 부호화 타입의 일 실시예를 나타낸다.
[표 38]
Figure pat00038
표 38의 부호화 타입은 일례로, 하나의 부호화 유닛에 대응하는 초기 테이블(예를 들어, 표 37의 실시예에 따른 초기 테이블, splitPredPartModeTable)에 적용될 수 있다. 이하 표 38의 실시예에서, 부호화/복호화 대상이 되는 부호화 유닛은 현재 부호화 유닛이라 한다.
표 38의 실시예에서, CU-depth는 현재 부호화 유닛의 깊이(및/또는 크기)를 나타내고, Coding Type은 부호화 타입을 나타낸다. 또한, ‘Prediction mode-top CU’는 현재 부호화 유닛의 상단에 인접한 상단 부호화 유닛(top CU)의 정보(예를 들어, 예측 모드 정보, 부호화 유닛 분할 플래그 정보)를 나타내고, Prediction mode-left CU’는 현재 부호화 유닛의 좌측에 인접한 좌측 부호화 유닛(left CU)의 정보(예를 들어, 예측 모드 정보, 부호화 유닛 분할 플래그 정보)를 나타낼 수 있다.
또한, 표 38의 실시예에서, ‘SKIP’은 스킵 모드(MODE_SKIP)를 나타내고, ‘INTER’는 인터 모드(MODE_INTER)를 나타내며, ‘INTRA’는 인트라 모드(MODE_INTRA)를 나타낼 수 있다. 따라서, 상기 ‘SKIP’, ‘INTER’및 ‘INTRA’는 예측 모드 정보에 대응될 수 있다. 또한 ‘CU splitting’은 현재 부호화 유닛이 하위 유닛으로 분할됨을 나타낼 수 있다. 즉, 상기 ‘CU splitting’은 부호화 유닛 분할 플래그 정보(split_coding_unit_flag)에 대응될 수 있다.
또한, ‘CU size > 8x8(min)’은 현재 부호화 유닛의 크기가 SCU보다 크다는 것을 나타내고, ‘CU size == 8x8(min)’은 현재 부호화 유닛의 크기가 SCU와 동일하다는 것을 나타낼 수 있다.
표 38을 참조하면, 현재 부호화 유닛에 대응되는 부호화 타입은, 현재 부호화 유닛의 크기 정보, 상단 부호화 유닛의 정보(예를 들어, 예측 모드 정보 및 부호화 유닛 분할 플래그 정보 등) 및 좌측 부호화 유닛의 정보(예를 들어, 예측 모드 정보 및 부호화 유닛 분할 플래그 정보 등)를 기반으로 결정될 수 있다. 이 때 상기 부호화 타입에는, 현재 부호화 유닛의 크기 정보, 상단 부호화 유닛의 정보 및 좌측 부호화 유닛의 정보에 따라, 0에서 3까지의 4개의 값 중에서 하나의 값이 할당될 수 있다.
다음 표 39는 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 39는 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU보다 큰 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 39]
Figure pat00039
표 39를 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 39의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 6일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 39를 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 39의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTRA로 결정될 수 있고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
다른 예로, 코드워드가 ‘000000’인 경우, 상기 코드워드는 코드 넘버 6에 매핑될 수 있고, 상기 코드 넘버 6은 cu_split_pred_part_mode 값 6에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 6에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 39의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있으며, PredMode는 MODE_INTER로 결정될 수 있다 또한, PartMode는 부호화 유닛 신택스에 해당되는 구문 요소 inter_amp_mode를 기반으로 결정될 수 있다.
상술한 실시예에서, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 40은 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 40은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 40]
Figure pat00040
표 40을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 40의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 6일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 40을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘01’인 경우, 상기 코드워드는 코드 넘버 1에 매핑될 수 있고, 상기 코드 넘버 1은 cu_split_pred_part_mode 값 1에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 1에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 40의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
다른 예로, 코드워드가 ‘000000’인 경우, 상기 코드워드는 코드 넘버 6에 매핑될 수 있고, 상기 코드 넘버 6은 cu_split_pred_part_mode 값 6에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 6에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 40의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있고, PartMode는 PART_NxN으로 결정될 수 있다.
상술한 실시예에서, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 41은 merge_flag 및 inter_amp_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 41은 부호화/복호화 대상이 되는 부호화 유닛의 크기가 SCU와 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블의 실시예에 해당될 수 있다.
[표 41]
Figure pat00041
표 41을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 40의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 5일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 41을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 1에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 41의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTRA로 결정될 수 있고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
다른 예로, 코드워드가 ‘00000’인 경우, 상기 코드워드는 코드 넘버 5에 매핑될 수 있고, 상기 코드 넘버 5는 cu_split_pred_part_mode 값 5에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 5에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 41의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTRA로 결정될 수 있고, PartMode는 PART_NxN으로 결정될 수 있다.
상술한 실시예에서, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
한편, 부호화기/복호화기는 결합 부호화/결합 복호화를 수행함에 있어, 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값(및/또는 부호화 유닛의 크기)에 따라 선택적으로 테이블을 적용할 수 있다. 즉, 부호화기/복호화기는 부호화 유닛의 깊이 값(및/또는 부호화 유닛의 크기)을 기반으로, 소정의 복수의 테이블 중에서 하나의 테이블을 선택할 수 있고, 상기 선택된 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다. 여기서, 상기 테이블은 대표 구문 요소(예를 들어, cu_split_pred_part_mode)와 상기 대표 구문 요소에 결합되는 복수의 구문 요소 간의 매핑 관계를 나타내는 매핑 테이블(이하, ‘cu_split_pred_part_mode 테이블’이라 함.) 및/또는 코드 넘버(code number)와 테이블 인덱스(table index) 간의 매핑 관계를 나타내는 매핑 테이블(예를 들어, splitPredPartModeTable)을 의미할 수 있다. 부호화 유닛의 깊이 값에 따라 테이블을 선택하는 방법은 일 실시예로 다음 표 42와 같이 나타내어질 수 있다.
[표 42]
Figure pat00042
표 42를 참조하면, 부호화 유닛의 깊이 값이 0인 경우에는 테이블 A가 적용되고, 부호화 유닛의 깊이 값이 1인 경우에는 테이블 B가 적용될 수 있다. 또한, 부호화 유닛의 깊이 값이 2인 경우에는 테이블 C가 적용되고, 부호화 유닛의 깊이 값이 3인 경우에는 테이블 D가 적용될 수 있다. 여기서, 테이블 A, 테이블 B, 테이블 C 및 테이블 D의 구체적인 실시예는 후술하기로 한다.
또한, 상술한 표 42의 실시예에서는 하나의 깊이 값에 하나의 테이블이 대응되지만, 부호화기/복호화기는 복수의 깊이 값에 대해 하나의 테이블을 적용할 수도 있다. 일례로, 결합 부호화/결합 복호화 과정에서 부호화 유닛의 깊이 값이 0 및 1인 경우에 테이블 A가 적용될 수 있고, 부호화 유닛의 깊이 값이 2 및 3인 경우에 테이블 B가 적용될 수도 있다.
그리고, 상술한 표 42의 실시예에서는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값(및/또는 부호화 유닛의 크기)만을 기준으로 테이블이 선택되지만, 본 발명은 이에 한정되는 것은 아니다. 일례로, 부호화기/복호화기는 상기 부호화 유닛의 깊이 값(및/또는 부호화 유닛의 크기) 및 최소 부호화 유닛(SCU)의 깊이 값(및/또는 부호화 유닛의 크기)을 비교하여, 그 비교 결과에 따라 결합 부호화/결합 복호화에 사용되는 테이블을 다르게 선택할 수도 있다.
이하, 표 42의 실시예에서 상술한 테이블 A, 테이블 B, 테이블 C 및 테이블 D의 실시예들이 서술된다. 후술되는 실시예에서, 테이블 A는 부호화 유닛의 깊이 값 0에 대응되는 테이블을 의미할 수 있고, 테이블 B는 부호화 유닛의 깊이 값 1에 대응되는 테이블을 의미할 수 있다. 또한, 테이블 C는 부호화 유닛의 깊이 값 2에 대응되는 테이블을 의미할 수 있고, 테이블 D는 부호화 유닛의 깊이 값 3에 대응되는 테이블을 의미할 수 있다.
한편, 후술되는 테이블 A, 테이블 B, 테이블 C 및 테이블 D의 실시예들은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 별개로 부호화/복호화되는 경우를 기준으로 서술되지만, 본 발명은 이에 한정되는 것은 아니다. 즉, 상술한 실시예서와 같이 부호화 유닛의 깊이 값(및/또는 다른 소정의 기준)에 따라 테이블을 선택적으로 적용하는 방법은, 하나의 대표 구문 요소에 결합되는 복수의 구문 요소의 개수나 종류에 관계 없이, 다른 형태의 결합 부호화/결합 복호화 과정에도 후술되는 실시예에서와 유사한 방식으로 적용될 수 있다.
다음 표 43은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 A의 실시예를 나타낸다.
[표 43]
Figure pat00043
표 43은 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 0인 경우에 적용되는 테이블 A의 실시예에 해당될 수 있다. 또한, 표 43의 실시예에서, 부호화기/복호화기는 inter_part_horz_flag 및 rem_inter_part_mode를 제외한 복수의 구문 요소 split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode를 하나의 대표 구문 요소 cu_split_pred_part_mode로 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 즉, 표 43은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와는 별개로 부호화/복호화되는 경우에 적용되는 테이블의 실시예에 해당될 수 있다. 여기서, inter_part_horz_flag 및 rem_inter_part_mode는 비대칭 움직임 분할 모드 및 대칭 움직임 분할 모드에 관련된 정보로도 볼 수 있다.
cu_split_pred_part_mode에 inter_part_horz_flag 및 rem_inter_part_mode가 결합되어 엔트로피 부호화/엔트로피 복호화가 수행되는 경우, cu_split_pred_part_mode에 대응하는 심볼 값 통계가 제대로 반영되지 않아 부호화/복호화 성능에 한계가 있을 수 있다. 따라서, 부호화기/복호화기는 inter_part_horz_flag 및 rem_inter_part_mode에 의한 부호화/복호화 성능의 저하를 감소시키기 위해, inter_part_horz_flag 및 rem_inter_part_mode를 제외한 다른 복수의 구문 요소들만을 결합하여 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다. 일례로, 부호화기/복호화기는 split_coding_unit_flag, skip_flag, merge_flag, Predmode 및 Partmode에 대해 표 43의 실시예에서와 같이 결합 부호화/결합 복호화를 수행할 수 있다. 이 때, 부호화기/복호화기는 엔트로피 부호화/복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
한편, 표 43의 실시예에서 inter_part_horz_flag 및 rem_inter_part_mode는 cu_split_pred_part_mode에 결합되지 않으므로, cu_split_pred_part_mode와는 구별되는 별개의 구문 요소에 해당될 수 있다. 따라서, 부호화기/복호화기는 cu_split_pred_part_mode, inter_part_horz_flag 및 rem_inter_part_mode에 대해 각각 독립적으로 엔트로피 부호화/엔트로피 복호화를 수행할 수 있다.
다음 표 44는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 B의 실시예를 나타낸다.
[표 44]
Figure pat00044
표 44는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 다른 실시예에 해당될 수 있다. 표 44는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 1인 경우에 적용되는 테이블 B의 실시예에 해당될 수 있다. 표 44의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 45는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 C의 실시예를 나타낸다.
[표 45]
Figure pat00045
표 45는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 또 다른 실시예에 해당될 수 있다. 표 45는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 2인 경우에 적용되는 테이블 C의 실시예에 해당될 수 있다. 표 45의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 46은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 D의 일 실시예를 나타낸다.
[표 46]
Figure pat00046
표 46은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 또 다른 실시예에 해당될 수 있다. 표 46은 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 3이고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블 D의 실시예에 해당될 수 있다. 여기서, 일례로 부호화기/복호화기는 MODE_INTER의 PART_2NxN, MODE_INTER의 PART_Nx2N에 대응하는 이스케이프 심볼 및 MODE_INTRA의 PART_2Nx2N, MODE_INTRA의 PART_NxN, MODE_INTER의 PART_NxN에 대응하는 이스케이프 심볼을 사용할 수 있다. 표 46의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 47은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 D의 다른 실시예를 나타낸다.
[표 47]
Figure pat00047
표 47은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우에 적용되는 테이블의 또 다른 실시예에 해당될 수 있다. 표 47은 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 3이고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블 D의 실시예에 해당될 수 있다. 여기서, 일례로 부호화기/복호화기는 MODE_INTER의 PART_2NxN, MODE_INTER의 PART_Nx2N에 대응하는 이스케이프 심볼 및 MODE_INTRA의 PART_2Nx2N, MODE_INTRA의 PART_NxN에 대응하는 이스케이프 심볼을 사용할 수 있다. 표 47의 실시예에 따른 결합 부호화/결합 복호화 방식이 적용되는 경우, 부호화기/복호화기는 엔트로피 부호화/엔트로피 복호화 과정에서 각각 적응적으로 테이블 인덱스가 재할당되는 적응적 정렬 테이블을 사용할 수 있다.
다음 표 48은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 구문 요소 cu_split_pred_part_mode의 시맨틱스(semantics)의 일 실시예를 나타낸다.
[표 48]
Figure pat00048
표 48을 참조하면, inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode을 기반으로 한 결합 부호화/결합 복호화 과정에서는 split_coding_unit_flag, skip_flag, merge_flag, Predmode 및 2Nx2N과 NxN에 해당되는 Partmode의 부호화 유닛 레벨의 구문 요소들에 대해서만 결합 부호화/결합 복호화가 수행될 수 있다.
표 48의 실시예에서, cu_split_pred_part_mode는 split_coding_unit_flag를 나타낼 수 있다. 부호화 유닛이 분할되지 않는 경우에, cu_split_pred_part_mode는 상기 부호화 유닛의 skip_flag[x0][y0], PredMode 및 2Nx2N과 NxN에 해당되는 PartMode를 나타낼 수 있다. 배열 인덱스에 해당되는 x0 및 y0은 상기 부호화 유닛이 속한 픽쳐(picture) 내의 가장 좌측 상단 루마(luma) 픽셀의 위치를 기준으로 상기 부호화 유닛 내의 가장 좌측 상단 루마 픽셀의 위치를 나타낼 수 있다.
이 때, 인터 모드에서의 분할 모드 중에서 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드는, cu_split_pred_part_mode, inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 결정될 수 있다.
다음 표 49는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, 부호화 유닛 신택스(syntax)의 일 실시예를 나타낸다.
[표 49]
Figure pat00049
표 49를 참조하면, inter_part_horz_flag 및 rem_inter_part_mode는 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화되거나 및/또는 복호화될 수 있다. 이 때, 상기 inter_part_horz_flag의 엔트로피 부호화/엔트로피 복호화 과정에서는 1 비트 길이의 고정 길이 코드(fixed length code)가 사용될 수 있다. 또한, 상기 rem_inter_part_mode의 엔트로피 부호화/엔트로피 복호화 과정에서는 가변 길이 코드(variable length code)가 사용될 수 있다. 예를 들어, 상기 rem_inter_part_mode의 엔트로피 부호화/엔트로피 복호화 과정에서는 절삭형 단항 코드(truncated unary code)가 사용될 수 있다.
한편, 표 49의 실시예에서 부호화 유닛의 깊이(cuDepth) 값은 최대 부호화 유닛(LCU) 크기의 로그 값(예를 들어, Log2MaxCUSize) 및 부호화/복호화 대상이 되는 부호화 유닛의 크기의 로그 값(예를 들어, Log2CUSize)을 기반으로 도출될 수 있다. 이 때, 일례로 상기 로그 값들은 실제 값 x에 대해 log2x 연산을 수행한 값에 해당될 수 있다.
다음 표 50 및 표 51은 각각 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 매핑 테이블(mapping table)의 실시예를 나타낸다. 여기서, 매핑 테이블은 코드 넘버(code number) 및 테이블 인덱스(table index) 간의 매핑 관계를 나타내는 테이블을 의미할 수 있다. 일례로, cu_split_pred_part_mode에 대응하는 매핑 테이블은 splitPredPartModeTable로 나타내어질 수 있다.
[표 50]
Figure pat00050
[표 51]
Figure pat00051
표 50 및 표 51의 실시예는 각각 매핑 테이블에 대응되는 초기 테이블(initialized table)에 해당될 수 있다. 여기서, cuDepth는 부호화 유닛의 깊이 값을 나타내고, codeNum은 코드 넘버를 나타낸다.
표 50 및 표 51을 참조하면, splitPredPartModeTable는 부호화 유닛의 깊이 값에 따라 다른 코드 넘버를 가질 수 있다. 따라서, 복호화기는 splitPredPartModeTable을 기반으로, 각각의 부호화 유닛의 깊이 값에 따라 대표 구문 요소 cu_split_pred_part_mode에 대응하는 복수의 심볼 split_coding_unit_flag, skip_flag, merge_flag, Predmode 및 Partmode를 도출할 수 있다. 이 때, 복호화기는 엔트로피 복호화 과정에서 splitPredPartModeTable에 대해 적응적 정렬 테이블을 적용할 수 있다.
한편, 표 50 및 표 51의 실시예에서, 부호화 유닛의 깊이 값이 0, 1 또는 2인 경우, 0 내지 5의 코드 넘버 값이 존재할 수 있다. 이 때, 각각의 코드 넘버 값은 0 내지 5의 테이블 인덱스 값에 매핑될 수 있다. 또한, 부호화 유닛의 깊이 값이 3인 경우에는, 0 내지 4의 코드 넘버 값이 존재할 수 있다. 이 경우, 상기 각각의 코드 넘버 값은 1 내지 5의 테이블 인덱스 값에 매핑될 수 있다.
이 때, 코드 넘버의 최대 개수는 cu_split_pred_part_mode에 대응하는 심볼의 최대 개수와 동일할 수 있으며, 상기 심볼의 개수는 테이블 인덱스의 개수에 해당될 수 있다. 또한, 부호화 유닛의 깊이 값이 3인 경우, 5 이상의 값을 갖는 코드 넘버에 대응하는 테이블 인덱스 값은 실제로 사용되지 않는 의미 없는 값에 해당될 수 있다. 이는 부호화 유닛의 깊이 값이 3인 경우에는 0 내지 4의 값을 갖는 5가지의 코드 넘버만이 사용될 수 있기 때문이다.
다음 표 52는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 52는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 0인 경우에 적용되는 테이블 A의 실시예에 해당될 수 있다.
[표 52]
Figure pat00052
표 52를 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 52의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 5일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 52를 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 52의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있다. 또한, 복호화기는 부호화 유닛 신택스에 해당되는 두 개의 구문 요소 inter_part_horz_flag 및 rem_inter_part_mode를 추가적으로 파싱하고, 파싱된 inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 PredMode 및 PartMode를 결정할 수 있다.
다른 예로, 코드워드가 ‘00001’인 경우, 상기 코드워드는 코드 넘버 4에 매핑될 수 있고, 상기 코드 넘버 4는 cu_split_pred_part_mode 값 4에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 4에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 52의 실시예에서 split_coding_unit_flag의 값은 0으로 결정되고, skip_flag의 값은 0으로 결정되며, merge_flag의 값은 1로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정되고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 53은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 53은 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 1인 경우에 적용되는 테이블 B의 실시예에 해당될 수 있다.
[표 53]
Figure pat00053
표 53을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 53의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 5일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 53을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 53의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있다. 또한, 복호화기는 부호화 유닛 신택스에 해당되는 두 개의 구문 요소 inter_part_horz_flag 및 rem_inter_part_mode를 추가적으로 파싱하고, 파싱된 inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 PredMode 및 PartMode를 결정할 수 있다.
다른 예로, 코드워드가 ‘00001’인 경우, 상기 코드워드는 코드 넘버 4에 매핑될 수 있고, 상기 코드 넘버 4는 cu_split_pred_part_mode 값 4에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 4에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 53의 실시예에서 split_coding_unit_flag의 값은 0으로 결정되고, skip_flag의 값은 0으로 결정되며, merge_flag의 값은 0으로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정되고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 54는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 54는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 2인 경우에 적용되는 테이블 C의 실시예에 해당될 수 있다.
[표 54]
Figure pat00054
표 54를 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 54의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 5일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 54를 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2는 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 54의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있다. 또한, 복호화기는 부호화 유닛 신택스에 해당되는 두 개의 구문 요소 inter_part_horz_flag 및 rem_inter_part_mode를 추가적으로 파싱하고, 파싱된 inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 PredMode 및 PartMode를 결정할 수 있다.
다른 예로, 코드워드가 ‘1’인 경우, 상기 코드워드는 코드 넘버 0에 매핑될 수 있고, 상기 코드 넘버 0은 cu_split_pred_part_mode 값 0에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 0에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 54의 실시예에서 split_coding_unit_flag의 값은 0으로 결정되고, skip_flag의 값은 1로 결정될 수 있다. 또한, PredMode는 MODE_SKIP으로 결정되고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 55는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 55는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 3이고 4x4 인터 예측이 허용되는 경우에 적용되는 테이블 D의 일 실시예에 해당될 수 있다.
[표 55]
Figure pat00055
표 55를 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 55의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 4일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 55를 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘01’인 경우, 상기 코드워드는 코드 넘버 1에 매핑될 수 있고, 상기 코드 넘버 1은 cu_split_pred_part_mode 값 1에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 1에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 55의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있다. 또한, 복호화기는 부호화 유닛 신택스에 해당되는 두 개의 구문 요소 inter_part_horz_flag 및 rem_inter_part_mode를 추가적으로 파싱하고, 파싱된 inter_part_horz_flag 및 rem_inter_part_mode를 기반으로 PredMode 및 PartMode를 결정할 수 있다.
다른 예로, cu_split_pred_part_mode 값이 3인 경우, 상기 심볼은 이스케이프 심볼로 사용될 수 있다. 예를 들어, cu_split_pred_part_mode 값이 3이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 1이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_2Nx2N으로 결정될 수 있다.
상기 파싱된 값이 0이면, 복호화기는 추가로 상기 심볼 값에 대응하는 하나의 비트(제2 비트)를 더 파싱할 수 있다. 이 때, 파싱된 값이 1이면 PredMode는 MODE_INTRA로 결정될 수 있고 PartMode는 PART_NxN으로 결정될 수 있다. 또한, 파싱된 값이 0이면 PredMode는 MODE_INTER로 결정되고 PartMode는 PART_NxN으로 결정될 수 있다.
이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
다음 표 56은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 대응하는 코드 넘버 및 코드워드 할당의 실시예를 나타낸다. 표 56는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값이 3이고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블 D의 다른 실시예에 해당될 수 있다.
[표 56]
Figure pat00056
표 56을 참조하면, cu_split_pred_part_mode에 할당되는 값 x는 0≤x≤S 의 범위를 가질 수 있고, 이 때, x의 최대 값은 S로 제한될 수 있다. 표 56의 실시예에서, cu_split_pred_part_mode에 할당되는 각각의 값은 테이블 인덱스(table index)에 해당될 수 있으며, 최대 값은 4일 수 있다.
이 때, cu_split_pred_part_mode에 할당되는 최대 값이 정해져 있으므로, cu_split_pred_part_mode는 부호화 효율이 높은 절삭형 단항 코드(truncated unary code)로 부호화될 수 있다. 따라서, 복호화기는 절삭형 단항 코드를 기반으로 cu_split_pred_part_mode에 대응하는 비트스트림을 파싱할 수 있다.
복호화기는 비트스트림으로부터 cu_split_pred_part_mode에 대응하는 코드워드를 읽은 후, 표 56을 기반으로 코드워드에 대응하는 심볼 정보(예를 들어, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode 등)를 도출할 수 있다.
예를 들어, 코드워드가 ‘001’인 경우, 상기 코드워드는 코드 넘버 2에 매핑될 수 있고, 상기 코드 넘버 2은 cu_split_pred_part_mode 값 2에 매핑될 수 있다. 따라서, split_coding_unit_flag, skip_flag, merge_flag, PredMode 및 PartMode는 각각 cu_split_pred_part_mode 값 2에 대응되는 값 및/또는 모드로 결정될 수 있다. 예를 들어, 표 56의 실시예에서 split_coding_unit_flag의 값은 0으로 결정될 수 있고, skip_flag의 값은 0으로 결정될 수 있으며, merge_flag의 값은 1로 결정될 수 있다. 또한, PredMode는 MODE_INTER로 결정될 수 있고, PartMode는 PART_2Nx2N으로 결정될 수 있다.
다른 예로, cu_split_pred_part_mode 값이 3인 경우, 상기 심볼은 이스케이프 심볼로 사용될 수 있다. 예를 들어, cu_split_pred_part_mode 값이 3이면, 복호화기는 상기 심볼 값에 대응하는 하나의 비트(제1 비트)를 추가로 파싱(parsing)할 수 있다. 이 때, 파싱된 값이 1이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_2Nx2N으로 결정될 수 있다. 또한, 파싱된 값이 0이면, PredMode는 MODE_INTRA로 결정되고 PartMode는 PART_NxN으로 결정될 수 있다.
이 때, 코드 넘버 및 상기 코드 넘버에 매핑되는 cu_split_pred_part_mode(및/또는 cu_split_pred_part_mode의 테이블 인덱스)는 적응적 정렬 테이블을 기반으로 업데이트될 수 있다.
한편, 부호화기/복호화기는 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값(및/또는 부호화 유닛의 크기) 및 최소 부호화 유닛(SCU)의 깊이 값(및/또는 부호화 유닛의 크기)에 따라, 결합 부호화/결합 복호화에 적용되는 테이블을 다르게 선택할 수 있다. 여기서, 상기 테이블은 ‘cu_split_pred_part_mode 테이블’ 및/또는 ‘splitPredPartModeTable’을 의미할 수 있다. 예를 들어, 결합 부호화/결합 복호화 시에 적용되는 테이블은 부호화/복호화 대상이 되는 부호화 유닛의 깊이 값 및 최소 부호화 유닛(SCU)의 깊이 값 간의 차분 값(이하, 표 57 내지 표 61의 실시예에 한하여 차분 값이라 함)을 기반으로 선택될 수 있다. 즉, 부호화기/복호화기는 차분 값을 기반으로, 소정의 복수의 테이블 중에서 하나의 테이블을 선택할 수 있고, 상기 선택된 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다. 차분 값을 기반으로 테이블을 선택하는 방법은 일 실시예로 다음 표 57에서와 같이 나타내어질 수 있다.
[표 57]
Figure pat00057
표 57의 실시예에서, 차분 값이 0인 경우에는, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기와 동일할 수 있다.
표 57을 참조하면, 차분 값이 0인 경우에는 테이블 E가 선택되고, 차분 값이 1인 경우에는 테이블 F가 선택될 수 있다. 또한, 차분 값이 2인 경우에는 테이블 G가 선택되고, 차분 값이 3인 경우에는 테이블 H가 선택될 수 있다. 여기서, 테이블 E, 테이블 F, 테이블 G 및 테이블 H의 구체적인 실시예는 후술하기로 한다.
이하, 표 57의 실시예에서 상술한 테이블 E, 테이블 F, 테이블 G 및 테이블 H의 실시예들이 표 58 내지 표 61을 통해 서술된다. 후술되는 실시예에서, 테이블 E 는 차분 값 0에 대응되는 테이블을 의미할 수 있고, 테이블 F 는 차분 값 1에 대응되는 테이블을 의미할 수 있다. 또한, 테이블 G 는 차분 값 2에 대응되는 테이블을 의미할 수 있고, 테이블 H는 차분 값 3에 대응되는 테이블을 의미할 수 있다.
한편, 후술되는 테이블 A, 테이블 B, 테이블 C 및 테이블 D의 실시예들은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 별개로 부호화/복호화되는 경우를 기준으로 서술되지만, 본 발명은 이에 한정되는 것은 아니다. 즉, 상술한 실시예서와 같이 차분 값에 따라 테이블을 선택적으로 적용하는 방법은, 하나의 대표 구문 요소에 결합되는 복수의 구문 요소의 개수나 종류에 관계 없이, 다른 형태의 결합 부호화/결합 복호화 과정에도 후술되는 실시예에서와 유사한 방식으로 적용될 수 있다.
다음 표 58은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 E의 실시예를 나타낸다.
[표 58]
Figure pat00058
표 58은 차분 값이 0이고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블 E의 실시예에 해당될 수 있다. 표 58에서 테이블에 관한 구체적인 내용 및 split_coding_unit_flag, skip_flag, merge_flag, PredMode, PartMode에 대한 결합 부호화/결합 복호화 방법은 상술한 표 43 내지 표 47에서와 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
다음 표 59는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 F의 실시예를 나타낸다.
[표 59]
Figure pat00059
표 59는 차분 값이 1인 경우에 적용되는 테이블 F의 실시예에 해당될 수 있다. 표 59에서 테이블에 관한 구체적인 내용 및 split_coding_unit_flag, skip_flag, merge_flag, PredMode, PartMode에 대한 결합 부호화/결합 복호화 방법은 상술한 표 43 내지 표 47에서와 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
다음 표 60은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 G의 실시예를 나타낸다.
[표 60]
Figure pat00060
표 60은 차분 값이 2인 경우에 적용되는 테이블 G의 실시예에 해당될 수 있다. 표 60에서 테이블에 관한 구체적인 내용 및 split_coding_unit_flag, skip_flag, merge_flag, PredMode, PartMode에 대한 결합 부호화/결합 복호화 방법은 상술한 표 43 내지 표 47에서와 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
다음 표 61은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 H의 실시예를 나타낸다.
[표 61]
Figure pat00061
표 61은 차분 값이 3인 경우에 적용되는 테이블 H의 실시예에 해당될 수 있다. 표 61에서 테이블에 관한 구체적인 내용 및 split_coding_unit_flag, skip_flag, merge_flag, PredMode, PartMode에 대한 결합 부호화/결합 복호화 방법은 상술한 표 43 내지 표 47에서와 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
한편, 부호화기/복호화기는 부호화/복호화 대상이 되는 부호화 유닛의 크기(및/또는 부호화 유닛의 깊이 값) 및 최소 부호화 유닛(SCU)의 크기(및/또는 부호화 유닛의 깊이 값)을 비교하여, 그 비교 결과에 따라 결합 부호화/결합 복호화에 사용되는 테이블을 다르게 선택할 수도 있다. 즉, 부호화기/복호화기는 부호화 유닛의 크기(및/또는 부호화 유닛의 깊이 값) 및 최소 부호화 유닛(SCU)의 크기(및/또는 부호화 유닛의 깊이 값)을 비교함으로써, 소정의 복수의 테이블 중에서 하나의 테이블을 선택할 수 있고, 상기 선택된 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다. 여기서, 상기 테이블은 ‘cu_split_pred_part_mode 테이블’ 및/또는 ‘splitPredPartModeTable’을 의미할 수 있다. 부호화/복호화 대상이 되는 부호화 유닛의 크기 및 최소 부호화 유닛(SCU)의 크기를 비교함으로써 결합 부호화/결합 복호화에 사용되는 테이블을 선택하는 방법은 일 실시예로 다음 표 62와 같이 나타내어질 수 있다.
[표 62]
Figure pat00062
표 62를 참조하면, 부호화/복호화 대상이 되는 부호화 유닛(CU)의 크기가 최소 부호화 유닛(SCU)의 크기보다 큰 경우에는, 테이블 I가 선택될 수 있고, 부호화/복호화 대상이 되는 부호화 유닛(CU)의 크기가 최소 부호화 유닛(SCU)의 크기와 동일한 경우에는, 테이블 J가 선택될 수 있다.
이하, 테이블 I 및 테이블 J의 실시예들이 서술된다. 후술되는 테이블 I 및 테이블 J의 실시예들은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 별개로 부호화/복호화되는 경우를 기준으로 서술되지만, 본 발명은 이에 한정되는 것은 아니다. 즉, 상술한 실시예에서와 같이 부호화/복호화 대상이 되는 부호화 유닛의 크기 및 최소 부호화 유닛(SCU)의 크기를 비교함으로써 결합 부호화/결합 복호화에 사용되는 테이블을 선택하는 방법은, 하나의 대표 구문 요소에 결합되는 복수의 구문 요소의 개수나 종류에 관계 없이, 후술되는 실시예에서와 유사한 방식으로 다른 형태의 결합 부호화/결합 복호화 과정에도 적용될 수 있다.
다음 표 63은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 I의 실시예를 나타낸다.
[표 63]
Figure pat00063
표 63은 부호화/복호화 대상인 부호화 유닛(CU)의 크기가 최소 부호화 유닛(SCU)의 크기보다 큰 경우에 적용되는 테이블 I의 실시예에 해당될 수 있다. 표 63에서 테이블에 관한 구체적인 내용 및 split_coding_unit_flag, skip_flag, merge_flag, PredMode, PartMode에 대한 결합 부호화/결합 복호화 방법은 상술한 표 43 내지 표 47에서와 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
다음 표 64는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우, cu_split_pred_part_mode에 적용되는 테이블 J의 실시예를 나타낸다.
[표 64]
Figure pat00064
표 64는 부호화/복호화 대상인 부호화 유닛(CU)의 크기 및 최소 부호화 유닛(SCU)의 크기가 서로 동일하고 4x4 인터 예측이 허용되지 않는 경우에 적용되는 테이블 J의 실시예에 해당될 수 있다. 표 64에서 테이블에 관한 구체적인 내용 및 split_coding_unit_flag, skip_flag, merge_flag, PredMode, PartMode에 대한 결합 부호화/결합 복호화 방법은 상술한 표 43 내지 표 47에서와 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
상술한 실시예들에서, 부호화기/복호화기는 결합 부호화/결합 복호화를 수행함에 있어, 소정의 기준에 따라 테이블을 선택적으로 적용할 수 있다. 여기서, 상기 테이블은 ‘cu_split_pred_part_mode 테이블’ 및/또는 ‘splitPredPartModeTable’을 의미할 수 있다.
이 때, 결합 부호화/결합 복호화를 위해 사용되는 각각의 테이블은 그 테이블 자체의 특징을 가질 수 있다. 일반적으로 ‘cu_split_pred_part_mode 테이블’ 및/또는 ‘splitPredPartModeTable’에서는 작은 값의 테이블 인덱스가 큰 값의 테이블 인덱스에 비해 테이블 내의 상단에 위치할 수 있다. 또한, 일반적으로 업데이트가 수행되기 전의 초기 테이블(initialized table)에서는 작은 값의 테이블 인덱스가 작은 값의 코드 넘버 및 짧은 코드워드에 매핑될 수 있다.
따라서, 초기 테이블에 포함되는 심볼의 상하 순서는 상기 심볼의 발생 확률에 따라 정해질 수 있다. 여기서, 심볼의 상하 순서는 테이블 자체의 특징에 해당될 수 있으며, 상기 심볼의 상하 순서는 상기 테이블 내에서 심볼의 초기 순서에 해당될 수 있다. 이 때, 초기 테이블 내의 상단에 위치한 심볼은 상대적으로 짧은 코드워드에 대응되므로, 초기 테이블 내의 상단에는 발생 확률이 높은 심볼이 위치할 수 있다. 또한, 초기 테이블 내의 하단에 위치한 심볼은 상대적으로 긴 코드워드에 대응되므로, 초기 테이블 내의 하단에는 발생 확률이 낮은 심볼이 위치할 수 있다. 따라서, 본 명세서에서 초기 테이블 내의 심볼이 상대적으로 상단에 위치한다는 것은 상기 심볼이 상대적으로 작은 값의 테이블 인덱스, 작은 값의 코드 넘버 및/또는 짧은 코드워드에 대응됨을 의미할 수 있다. 또한, 본 명세서에서 초기 테이블 내의 심볼이 상대적으로 하단에 위치한다는 것은 상기 심볼이 상대적으로 큰 값의 테이블 인덱스, 큰 값의 코드 넘버 및/또는 긴 코드워드에 대응됨을 의미할 수 있다.
이하, 상술한 내용을 기반으로, 테이블에 포함되는 심볼의 초기 순서를 결정하는 방법의 실시예들이 서술된다.
다음 표 65는 테이블 내에 포함되는 심볼의 초기 순서의 일 실시예를 개략적으로 나타낸다. 표 65는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우의 실시예에 해당될 수 있다.
[표 65]
Figure pat00065
표 65를 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 테이블 내에서 PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드 및/또는 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드가 PART_2Nx2N, PART_NxN 등의 정방형 움직임 분할 모드보다 상단에 위치하도록 할 수 있다. 이는 비대칭 움직임 분할 모드 및 대칭 움직임 분할 모드의 발생 확률이 정방형 움직임 분할 모드의 발생 확률보다 높을 수 있기 때분이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화/복호화 효율을 향상시킬 수 있다.
표 65의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 66은 테이블 내에 포함되는 심볼의 초기 순서의 다른 실시예를 개략적으로 나타낸다. 표 66은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되고 4x4 인터 예측이 허용되는 경우의 실시예에 해당될 수 있다.
[표 66]
Figure pat00066
표 66을 참조하면, 표 65의 실시예에서와 마찬가지로 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 테이블 내에서 PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드 및/또는 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드가 PART_2Nx2N, PART_NxN 등의 정방형 움직임 분할 모드보다 상단에 위치하도록 할 수 있다. 이는 비대칭 움직임 분할 모드 및 대칭 움직임 분할 모드의 발생 확률이 정방형 움직임 분할 모드의 발생 확률보다 높을 수 있기 때분이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 66의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 67은 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 67은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우의 실시예에 해당될 수 있다.
[표 67]
Figure pat00067
표 67을 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER) 및/또는 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER)가 인트라 모드(MODE_INTRA)보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는 비대칭 움직임 분할 모드에 대응하는 인터 모드 및 대칭 움직임 분할 모드에 대응하는 인터 모드의 발생 확률이 인트라 모드의 발생 확률보다 높을 수 있기 때분이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 67의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 68은 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 68은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되고 4x4 인터 예측이 허용되지 않는 경우의 실시예에 해당될 수 있다.
[표 68]
Figure pat00068
표 68을 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER) 및/또는 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER)가 인트라 모드(MODE_INTRA)보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는 비대칭 움직임 분할 모드에 대응하는 인터 모드 및 대칭 움직임 분할 모드에 대응하는 인터 모드의 발생 확률이 인트라 모드의 발생 확률보다 높을 수 있기 때분이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 68의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 69는 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 69는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우의 실시예에 해당될 수 있다.
[표 69]
Figure pat00069
표 69를 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 1의 값이 할당되는 부호화 유닛 분할 플래그 정보(split_coding_unit_flag) 및/또는 스킵 모드 정보(MODE_SKIP)가, PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드 정보 및 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드 정보보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는 1의 값이 할당되는 부호화 유닛 분할 플래그 정보 및 스킵 모드 정보의 발생 확률이 대칭 움직임 분할 모드 정보 및/또는 비대칭 움직임 분할 모드 정보의 발생 확률보다 높을 수 있기 때문이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다. 여기서, 1의 값이 할당된 부호화 유닛 분할 플래그 정보는, 부호화 유닛이 복수 개의 하위 유닛으로 분할됨을 나타낼 수 있다.
표 69의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 70은 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 70은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되는 경우의 실시예에 해당될 수 있다.
[표 70]
Figure pat00070
표 70을 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 1의 값이 할당되는 부호화 유닛 분할 플래그 정보(split_coding_unit_flag) 및/또는 스킵 모드 정보(MODE_SKIP)가, PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드 정보 및/또는 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드 정보보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는 1의 값이 할당되는 부호화 유닛 분할 플래그 정보 및 스킵 모드 정보의 발생 확률이 대칭 움직임 분할 모드 정보 및/또는 비대칭 움직임 분할 모드 정보의 발생 확률보다 높을 수 있기 때문이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 70의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 71은 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 71은 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되고 4x4 인터 예측이 허용되는 경우의 실시예에 해당될 수 있다.
[표 71]
Figure pat00071
표 71을 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 인트라 모드 정보(MODE_INTRA)가 INTER_2Nx2N에 해당되는 인터 모드 정보보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는 인트라 모드 정보의 발생 확률이 INTER_2Nx2N에 해당되는 인터 모드 정보의 발생 확률보다 높을 수 있기 때문이다. 여기서, INTER_2Nx2N에 해당되는 인터 모드 정보는 PredMode가 MODE_INTER이고 PartMode가 2Nx2N이고 merge_flag에 할당된 값이 0인 경우의 인터 모드 정보를 의미할 수 있다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 71의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 72는 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 72는 inter_part_horz_flag 및 rem_inter_part_mode가 cu_split_pred_part_mode와 구별되는 별개의 구문 요소로서 부호화/복호화되고 4x4 인터 예측이 허용되지 않는 경우의 실시예에 해당될 수 있다.
[표 72]
Figure pat00072
표 72를 참조하면, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 인트라 모드 정보(MODE_INTRA)가 INTER_2Nx2N에 해당되는 인터 모드 정보보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는 인트라 모드 정보의 발생 확률이 INTER_2Nx2N에 해당되는 인터 모드 정보의 발생 확률보다 높을 수 있기 때문이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 72의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 73은 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 73의 실시예는 부호화/복호화 대상이 되는 부호화 유닛(CU)의 크기가 최소 부호화 유닛(SCU)의 크기보다 큰 경우의 심볼의 초기 순서를 나타낸다.
[표 73]
Figure pat00073
표 73을 참조하면, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기보다 큰 경우, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 1의 값이 할당되는 부호화 유닛 분할 플래그 정보(split_coding_unit_flag) 및/또는 스킵 모드 정보(MODE_SKIP)가, PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드 정보 및 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드 정보보다 테이블 내의 상단에 위치하도록 할 수 있다. 이는, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기보다 큰 경우에는, 1의 값이 할당되는 부호화 유닛 분할 플래그 정보 및 스킵 모드 정보의 발생 확률이 대칭 움직임 분할 모드 정보 및/또는 비대칭 움직임 분할 모드 정보의 발생 확률보다 높을 수 있기 때문이다. 부호화기/복호화기는 발생 확률이 높은 심볼을 테이블 내의 상단에 위치하도록 함으로써, 발생 확률이 높은 심볼에 짧은 코드워드가 할당되도록 할 수 있고 부호화 효율을 향상시킬 수 있다.
표 73의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 74는 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 74의 실시예는 부호화/복호화 대상이 되는 부호화 유닛(CU)의 크기가 최소 부호화 유닛(SCU)의 크기와 동일하고 4x4 인터 예측이 허용되는 경우의 심볼의 초기 순서를 나타낸다.
[표 74]
Figure pat00074
표 74를 참조하면, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기와 동일하고 4x4 인터 예측이 허용되는 경우, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 인트라 모드(MODE_INTRA)가 PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER) 및 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER)보다 상단에 위치하도록 할 수 있다. 이는, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기와 동일한 경우, 인트라 모드의 발생 확률이 비대칭 움직임 분할 모드에 대응하는 인터 모드 및 대칭 움직임 분할 모드에 대응하는 인터 모드의 발생 확률보다 높을 수 있기 때분이다. 또한 이 때, 부호화기/복호화기는, 발생 확률에 따라 테이블 내에서 PART_Nx2N을 PART_2NxN보다 상단에 위치하도록 할 수 있다.
표 74의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
다음 표 75는 테이블 내에 포함되는 심볼의 초기 순서의 또 다른 실시예를 개략적으로 나타낸다. 표 75의 실시예는 부호화/복호화 대상이 되는 부호화 유닛(CU)의 크기가 최소 부호화 유닛(SCU)의 크기와 동일하고 4x4 인터 예측이 허용되지 않는 경우의 심볼의 초기 순서를 나타낸다.
[표 75]
Figure pat00075
표 75를 참조하면, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기와 동일하고 4x4 인터 예측이 허용되지 않는 경우, 부호화기/복호화기는 cu_split_pred_part_mode에 대응되는 각 심볼의 초기 순서를 결정할 때, 인트라 모드(MODE_INTRA)가 PART_2NxN, PART_Nx2N 등의 대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER) 및 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N 등의 비대칭 움직임 분할 모드에 대응하는 인터 모드(MODE_INTER)보다 상단에 위치하도록 할 수 있다. 이는, 부호화/복호화 대상이 되는 부호화 유닛의 크기가 최소 부호화 유닛(SCU)의 크기와 동일한 경우, 인트라 모드의 발생 확률이 비대칭 움직임 분할 모드에 대응하는 인터 모드 및 대칭 움직임 분할 모드에 대응하는 인터 모드의 발생 확률보다 높을 수 있기 때분이다. 또한 이 때, 부호화기/복호화기는, 발생 확률에 따라 테이블 내에서 PART_Nx2N을 PART_2NxN보다 상단에 위치하도록 할 수 있다.
표 75의 실시예에 따른 cu_split_pred_part_mode 테이블은 부호화기 및 복호화기에 동일하게 미리 저장되어 있을 수 있다. 이 때, 부호화기/복호화기는 상기 cu_split_pred_part_mode 테이블을 기반으로 결합 부호화/결합 복호화를 수행할 수 있다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.

Claims (20)

  1. 비트스트림을 수신하는 단계;
    상기 비트스트림에 대한 엔트로피 복호화를 수행하여 복호화 대상 블록에 대응하는 복호화 정보를 도출하는 단계; 및
    상기 복호화 정보를 기반으로 상기 복호화 대상 블록에 대응하는 복원 블록을 생성하는 단계를 포함하되,
    상기 비트스트림은 복수의 심볼이 결합된 결합 심볼에 대응하는 제1 부분 비트스트림을 포함하고,
    상기 복호화 정보를 도출하는 단계는,
    상기 제1 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 결합 심볼의 심볼 값을 도출하는 단계; 및
    상기 결합 심볼에 대응되는 복수의 심볼 및 상기 결합 심볼 간의 매핑 관계를 나타내는 매핑 테이블을 기반으로, 상기 결합 심볼의 심볼 값에 대응되는 복수의 심볼 각각의 심볼 값을 도출하는 단계를 더 포함하는 것을 특징으로 하는 영상 복호화 방법.
  2. 제 1항에 있어서,
    상기 비트스트림은, 상기 복호화 대상 블록의 예측 모드가 머지 모드(merge mode)인지 여부를 지시하는 머지 플래그 심볼에 대응하는 제2 부분 비트스트림을 더 포함하고,
    상기 결합 심볼은 상기 머지 플래그 심볼을 제외한 복수의 심볼이 결합된 심볼이고,
    상기 복호화 정보를 도출하는 단계는,
    상기 제1 부분 비트스트림과 별개로 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 머지 플래그 심볼의 심볼 값을 도출하는 단계를 더 포함하는 것을 특징으로 하는 영상 복호화 방법.
  3. 제 2항에 있어서,
    상기 머지 플래그 심볼의 심볼 값을 도출하는 단계에서는,
    1비트의 고정 길이 코드(fixed length code)를 기반으로, 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행하는 것을 특징으로 하는 영상 복호화 방법.
  4. 제 1항에 있어서,
    상기 결합 심볼에 대응되는 복수의 심볼은,
    상기 복호화 대상 블록에 대응되는 부호화 유닛(Coding Unit: CU)이 복수의 하위 유닛으로 분할되는지 여부를 지시하는 부호화 유닛 분할 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드가 스킵 모드(skip mode)인지 여부를 지시하는 스킵 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드를 나타내는 예측 모드 심볼 및 상기 복호화 대상 블록에 대응되는 분할 모드(partitioning mode)를 나타내는 분할 모드 심볼을 포함하는 것을 특징으로 하는 영상 복호화 방법.
  5. 제 4항에 있어서,
    상기 매핑 테이블에 포함된 심볼 값 중에서, 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값은 인트라 모드에 대응되는 심볼 값보다 상단에 위치하고,
    상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응되고,
    상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고,
    상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  6. 제 4항에 있어서,
    상기 매핑 테이블에 포함된 심볼 값 중에서, 상기 복호화 대상 블록에 대응되는 부호화 유닛이 복수 개의 하위 유닛으로 분할됨을 나타내는 심볼 값 및 스킵 모드에 대응되는 심볼 값은 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값보다 상단에 위치하고,
    상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응되고,
    상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고,
    상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  7. 제 1항에 있어서,
    상기 매핑 테이블은 적응적 정렬 테이블(adaptive sorting table)을 기반으로, 상기 결합 심볼에 대응되는 복수의 심볼 각각의 발생 확률에 따라 업데이트되는 것을 특징으로 하는 영상 복호화 방법.
  8. 제 1항에 있어서,
    상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값을 기반으로 소정의 복수의 매핑 테이블 중에서 선택되는 것을 특징으로 하는 영상 복호화 방법.
  9. 제 1항에 있어서,
    상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값 및 최소 부호화 유닛(Smallest Coding Unit: SCU)의 깊이 값 간의 차분 값을 기반으로, 소정의 복수의 매핑 테이블 중에서 선택되는 것을 특징으로 하는 영상 복호화 방법.
  10. 제 1항에 있어서,
    상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 크기 및 최소 부호화 유닛(SCU)의 크기의 동일성 여부를 기반으로, 소정의 복수의 매핑 테이블 중에서 선택되는 것을 특징으로 하는 영상 복호화 방법.
  11. 비트스트림을 수신하는 단계; 및
    상기 비트스트림에 대한 엔트로피 복호화를 수행하여 복호화 대상 블록에 대응하는 복호화 정보를 도출하는 단계를 포함하되,
    상기 비트스트림은 복수의 심볼이 결합된 결합 심볼에 대응하는 제1 부분 비트스트림을 포함하고,
    상기 복호화 정보를 도출하는 단계는,
    상기 제1 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 결합 심볼의 심볼 값을 도출하는 단계; 및
    상기 결합 심볼에 대응되는 복수의 심볼 및 상기 결합 심볼 간의 매핑 관계를 나타내는 매핑 테이블을 기반으로, 상기 결합 심볼의 심볼 값에 대응되는 복수의 심볼 각각의 심볼 값을 도출하는 단계를 더 포함하는 것을 특징으로 하는 엔트로피 복호화 방법.
  12. 제 11항에 있어서,
    상기 비트스트림은, 상기 복호화 대상 블록의 예측 모드가 머지 모드(merge mode)인지 여부를 지시하는 머지 플래그 심볼에 대응하는 제2 부분 비트스트림을 더 포함하고,
    상기 결합 심볼은 상기 머지 플래그 심볼을 제외한 복수의 심볼이 결합된 심볼이고,
    상기 복호화 정보를 도출하는 단계는,
    상기 제1 부분 비트스트림과 별개로 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행함으로써, 상기 머지 플래그 심볼의 심볼 값을 도출하는 단계를 더 포함하는 것을 특징으로 하는 엔트로피 복호화 방법.
  13. 제 12항에 있어서,
    상기 머지 플래그 심볼의 심볼 값을 도출하는 단계에서는,
    1비트의 고정 길이 코드(fixed length code)를 기반으로, 상기 제2 부분 비트스트림에 대해 엔트로피 복호화를 수행하는 것을 특징으로 하는 엔트로피 복호화 방법.
  14. 제 11항에 있어서,
    상기 결합 심볼에 대응되는 복수의 심볼은,
    상기 복호화 대상 블록에 대응되는 부호화 유닛(Coding Unit: CU)이 복수의 하위 유닛으로 분할되는지 여부를 지시하는 부호화 유닛 분할 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드가 스킵 모드(skip mode)인지 여부를 지시하는 스킵 플래그 심볼, 상기 복호화 대상 블록에 대응되는 예측 모드를 나타내는 예측 모드 심볼 및 상기 복호화 대상 블록에 대응되는 분할 모드(partitioning mode)를 나타내는 분할 모드 심볼을 포함하는 것을 특징으로 하는 엔트로피 복호화 방법.
  15. 제 14항에 있어서,
    상기 매핑 테이블에 포함된 심볼 값 중에서, 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값은 인트라 모드에 대응되는 심볼 값보다 상단에 위치하고,
    상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응되고,
    상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고,
    상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함하는 것을 특징으로 하는 엔트로피 복호화 방법.
  16. 제 14항에 있어서,
    상기 매핑 테이블에 포함된 심볼 값 중에서, 상기 복호화 대상 블록에 대응되는 부호화 유닛이 복수 개의 하위 유닛으로 분할됨을 나타내는 심볼 값 및 스킵 모드에 대응되는 심볼 값은 비대칭 움직임 분할 모드에 대응되는 심볼 값 및 대칭 움직임 분할 모드에 대응되는 심볼 값보다 상단에 위치하고,
    상기 매핑 테이블에 포함된 심볼 값은 상기 매핑 테이블 내의 상단에 위치할 수록 짧은 코드워드에 대응되고,
    상기 비대칭 움직임 분할 모드 및 상기 대칭 움직임 분할 모드는 인터 모드에 해당되는 분할 모드이고,
    상기 비대칭 움직임 분할 모드는 2NxnU, 2NxnD, nLx2N 및 nRx2N의 분할 모드를 포함하고, 상기 대칭 움직임 분할 모드는 2NxN 및 Nx2N의 분할 모드를 포함하는 것을 특징으로 하는 엔트로피 복호화 방법.
  17. 제 11항에 있어서,
    상기 매핑 테이블은 적응적 정렬 테이블(adaptive sorting table)을 기반으로, 상기 결합 심볼에 대응되는 복수의 심볼 각각의 발생 확률에 따라 업데이트되는 것을 특징으로 하는 엔트로피 복호화 방법.
  18. 제 11항에 있어서,
    상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값을 기반으로 소정의 복수의 매핑 테이블 중에서 선택되는 것을 특징으로 하는 엔트로피 복호화 방법.
  19. 제 11항에 있어서,
    상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 깊이 값 및 최소 부호화 유닛(Smallest Coding Unit: SCU)의 깊이 값 간의 차분 값을 기반으로, 소정의 복수의 매핑 테이블 중에서 선택되는 것을 특징으로 하는 엔트로피 복호화 방법.
  20. 제 11항에 있어서,
    상기 매핑 테이블은, 상기 복호화 대상 블록에 대응되는 부호화 유닛의 크기 및 최소 부호화 유닛(SCU)의 크기의 동일성 여부를 기반으로, 소정의 복수의 매핑 테이블 중에서 선택되는 것을 특징으로 하는 엔트로피 복호화 방법.
KR1020120102763A 2011-09-16 2012-09-17 영상 부호화/복호화 방법 및 그 장치 KR101959482B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2012/007419 WO2013039363A2 (ko) 2011-09-16 2012-09-17 영상 부호화/복호화 방법 및 그 장치

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR1020110093563 2011-09-16
KR20110093563 2011-09-16
KR20110115047 2011-11-07
KR1020110115047 2011-11-07
KR1020110117198 2011-11-10
KR20110117198 2011-11-10
KR1020110121124 2011-11-18
KR20110121124 2011-11-18

Publications (2)

Publication Number Publication Date
KR20130030240A true KR20130030240A (ko) 2013-03-26
KR101959482B1 KR101959482B1 (ko) 2019-03-18

Family

ID=48179868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120102763A KR101959482B1 (ko) 2011-09-16 2012-09-17 영상 부호화/복호화 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101959482B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014171709A1 (ko) * 2013-04-15 2014-10-23 인텔렉추얼 디스커버리 주식회사 객체 기반 적응적 밝기 보상 방법 및 장치
WO2017099371A1 (ko) * 2015-12-11 2017-06-15 삼성전자 주식회사 인트라 프레임 스킵 모드 정보의 부호화 방법 및 장치, 복호화 방법 및 장치
CN106878751A (zh) * 2015-12-11 2017-06-20 北京三星通信技术研究有限公司 视频帧内编码模式的标识方法、处理方法和装置
WO2018169267A1 (ko) * 2017-03-13 2018-09-20 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
CN113302927A (zh) * 2019-01-18 2021-08-24 韦勒斯标准与技术协会公司 使用运动补偿的视频信号处理方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross et. al, "WD4: Working Draft 4 of high efficiency video coding", JCTVC 6th meeting, 14-22, July, 2011, JCTVC-F803_d1.* *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014171709A1 (ko) * 2013-04-15 2014-10-23 인텔렉추얼 디스커버리 주식회사 객체 기반 적응적 밝기 보상 방법 및 장치
WO2017099371A1 (ko) * 2015-12-11 2017-06-15 삼성전자 주식회사 인트라 프레임 스킵 모드 정보의 부호화 방법 및 장치, 복호화 방법 및 장치
CN106878751A (zh) * 2015-12-11 2017-06-20 北京三星通信技术研究有限公司 视频帧内编码模式的标识方法、处理方法和装置
US20180324461A1 (en) * 2015-12-11 2018-11-08 Samsung Electronics Co., Ltd. Method and device for encoding and decoding intra-frame skip mode information
US10623773B2 (en) 2015-12-11 2020-04-14 Samsung Electronics Co., Ltd. Method and device for encoding and decoding intra-frame skip mode information
CN106878751B (zh) * 2015-12-11 2022-01-14 北京三星通信技术研究有限公司 视频帧内编码模式的标识方法、处理方法和装置
WO2018169267A1 (ko) * 2017-03-13 2018-09-20 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
CN113302927A (zh) * 2019-01-18 2021-08-24 韦勒斯标准与技术协会公司 使用运动补偿的视频信号处理方法和设备
US11849106B2 (en) 2019-01-18 2023-12-19 Wilus Institute Of Standards And Technology Inc. Video signal processing method and device using motion compensation
CN113302927B (zh) * 2019-01-18 2024-04-09 韦勒斯标准与技术协会公司 使用运动补偿的视频信号处理方法和设备

Also Published As

Publication number Publication date
KR101959482B1 (ko) 2019-03-18

Similar Documents

Publication Publication Date Title
KR102618393B1 (ko) 화면내 예측 모드 부호화/복호화 방법 및 장치
US11503282B2 (en) Intra prediction mode encoding/decoding method and apparatus for same
KR101867884B1 (ko) 인트라 예측 모드 부호화/복호화 방법 및 장치
KR102424240B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
JP7163183B2 (ja) ビデオコード化のためのマルチタイプツリーフレームワーク
US20180316913A1 (en) Method and apparatus for encoding/decoding intra prediction mode
US11102494B2 (en) Method for scanning transform coefficient and device therefor
KR101959482B1 (ko) 영상 부호화/복호화 방법 및 그 장치
KR20170046112A (ko) 예측 모드에 기초한 변환 생략 정보의 엔트로피 복호화 방법 및 장치
WO2013039363A2 (ko) 영상 부호화/복호화 방법 및 그 장치
CN113170209A (zh) 图像编码/解码方法和设备以及存储比特流的记录介质

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