KR20140037130A - 인트라 예측 모드 부호화/복호화 방법 및 장치 - Google Patents

인트라 예측 모드 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20140037130A
KR20140037130A KR1020137033462A KR20137033462A KR20140037130A KR 20140037130 A KR20140037130 A KR 20140037130A KR 1020137033462 A KR1020137033462 A KR 1020137033462A KR 20137033462 A KR20137033462 A KR 20137033462A KR 20140037130 A KR20140037130 A KR 20140037130A
Authority
KR
South Korea
Prior art keywords
index
current
mpm
mode
prediction mode
Prior art date
Application number
KR1020137033462A
Other languages
English (en)
Other versions
KR101876173B1 (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 엘지전자 주식회사
Publication of KR20140037130A publication Critical patent/KR20140037130A/ko
Application granted granted Critical
Publication of KR101876173B1 publication Critical patent/KR101876173B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

인트라 모드에서 예측을 수행하는 영상 복호화 방법이 제공된다. 본 발명에 따른 영상 복호화 방법은 코드 넘버 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스를 생성하는 단계 및 상기 현재 테이블 인덱스에 인덱스 매핑 테이블을 적용하여 현재 예측 모드를 도출하는 단계를 포함한다. 본 발명에 따르면, 영상 부호화/복호화 효율이 향상될 수 있다.

Description

인트라 예측 모드 부호화/복호화 방법 및 장치{METHOD AND APPARATUS FOR ENCODING/DECODING VIDEO IN INTRA PREDICTION MODE}
본 발명은 영상 처리에 관한 것으로서, 보다 상세하게는 인트라 예측 모드 부호화/복호화 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다. 이러한 문제들을 해결하기 위해서 고효율의 영상 압축 기술들이 이용될 수 있다.
영상 압축 기술에는 현재 픽쳐의 이전 및/또는 이후 픽쳐로부터 현재 픽쳐에 포함된 픽셀값을 예측하는 인터 예측(inter prediction) 기술, 현재 픽쳐 내의 픽셀 정보를 이용하여 현재 픽쳐에 포함된 픽셀값을 예측하는 인트라 예측(intra prediction) 기술, 출현 빈도가 높은 값에 짧은 코드워드를 할당하고 출현 빈도가 낮은 값에 긴 코드워드를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재한다. 이러한 영상 압축 기술을 이용해 영상 데이터가 효과적으로 압축되어 전송 또는 저장될 수 있다.
본 발명의 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 복호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 인트라 예측 모드 부호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 인트라 예측 모드 복호화 방법 및 장치를 제공함에 있다.
본 발명의 일 실시 형태는 인트라(intra) 모드에서 현재 블록에 대한 예측을 수행하는 영상 복호화 방법이다. 상기 방법은 코드 넘버(code number) 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스(current table index)를 생성하는 단계 및 상기 현재 테이블 인덱스에 인덱스 매핑 테이블(index mapping table)을 적용하여 현재 예측 모드를 도출하는 단계를 포함하고, 상기 MPM 인덱스 정보는 MPM 후보(MPM candidate)의 개수 및 상기 MPM 후보의 인덱스의 값을 포함하고, 상기 MPM 후보의 인덱스는 상기 인덱스 매핑 테이블에서 상기 MPM 후보에 할당되는 인덱스이고, 상기 현재 예측 모드는 현재 예측 유닛의 인트라 예측 모드이고, 상기 현재 테이블 인덱스는 상기 인덱스 매핑 테이블에서 상기 현재 예측 모드에 할당되는 인덱스이다.
상기 방법은 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드(codeword)를 상기 코드 넘버로 변환(convert)하는 단계를 추가로 포함할 수 있다.
상기 인덱스 매핑 테이블 내 엔트리(entry)의 개수는 상기 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일할 수 있다.
상기 MPM 후보의 인덱스 값은 상기 MPM 후보의 모드값에 역 인덱스 매핑 테이블(inverse index mapping table)을 적용함으로써 도출될 수 있다.
상기 MPM 후보의 개수는 소정의 고정된 값일 수 있다.
상기 소정의 고정된 값은 2, 3 또는 4일 수 있다.
상기 방법은 상기 현재 테이블 인덱스의 발생 빈도에 기초하여 상기 인덱스 매핑 테이블을 업데이트하는 단계를 추가로 포함할 수 있다.
상기 인덱스 매핑 테이블은, 상기 MPM 후보 중 하나가 인트라 예측 모드로 선택되는 예측 유닛에 대해서도 업데이트될 수 있다.
본 발명의 다른 실시 형태는 영상 복호화 장치이다. 상기 장치는 코드 넘버(code number) 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스(current table index)를 생성하고, 상기 현재 테이블 인덱스에 인덱스 매핑 테이블(index mapping table)을 적용하여 현재 예측 모드를 도출하는 엔트로피 복호화부 및 상기 도출된 현재 예측 모드를 이용하여 현재 블록에 대한 인트라 예측을 수행하는 예측부를 포함하고, 상기 MPM 인덱스 정보는 MPM 후보(MPM candidate)의 개수 및 상기 MPM 후보의 인덱스의 값을 포함하고, 상기 MPM 후보의 인덱스는 상기 인덱스 매핑 테이블에서 상기 MPM 후보에 할당되는 인덱스이고, 상기 현재 예측 모드는 상기 현재 예측 유닛의 인트라 예측 모드이고, 상기 현재 테이블 인덱스는 상기 인덱스 매핑 테이블에서 상기 현재 예측 모드에 할당되는 인덱스이다.
본 발명의 또 다른 실시 형태는 인트라 예측 모드 정보를 엔트로피 복호화하기 위한 인트라 예측 모드 복호화 방법이다. 상기 방법은 코드 넘버(code number) 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스(current table index)를 생성하는 단계 및 상기 현재 테이블 인덱스에 인덱스 매핑 테이블(index mapping table)을 적용하여 현재 예측 모드를 도출하는 단계를 포함하고, 상기 MPM 인덱스 정보는 MPM 후보(MPM candidate)의 개수 및 상기 MPM 후보의 인덱스의 값을 포함하고, 상기 MPM 후보의 인덱스는 상기 인덱스 매핑 테이블에서 상기 MPM 후보에 할당되는 인덱스이고, 상기 현재 예측 모드는 현재 예측 유닛의 인트라 예측 모드이고, 상기 현재 테이블 인덱스는 상기 인덱스 매핑 테이블에서 상기 현재 예측 모드에 할당되는 인덱스이다.
상기 방법은 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드(codeword)를 상기 코드 넘버로 변환(convert)하는 단계를 추가로 포함할 수 있다.
상기 인덱스 매핑 테이블 내 엔트리(entry)의 개수는 상기 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일할 수 있다.
상기 MPM 후보의 인덱스 값은 상기 MPM 후보의 모드값에 역 인덱스 매핑 테이블(inverse index mapping table)을 적용함으로써 도출될 수 있다.
상기 MPM 후보의 개수는 소정의 고정된 값일 수 있다.
상기 소정의 고정된 값은 2, 3 또는 4일 수 있다.
상기 방법은 상기 현재 테이블 인덱스의 발생 빈도에 기초하여 상기 인덱스 매핑 테이블을 업데이트하는 단계를 추가로 포함할 수 있다.
상기 인덱스 매핑 테이블은, 상기 MPM 후보 중 하나가 인트라 예측 모드로 선택되는 예측 유닛에 대해서도 업데이트될 수 있다.
본 발명에 따른 영상 부호화 방법 및 장치에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 영상 복호화 방법 및 장치에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 인트라 예측 모드 부호화 방법 및 장치에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 인트라 예측 모드 복호화 방법 및 장치에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 예측부를 개략적으로 도시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치를 개략적으로 나타낸 블록도이다.
도 4는 본 발명의 일 실시예에 따른 영상 복호화 장치의 예측부를 개략적으로 나타낸 개념도이다.
도 5는 MPM 도출 방법의 일 실시예를 개략적으로 나타내는 개념도이다.
도 6은 인트라 예측 모드 정보의 전송에 사용되는 리메이닝 모드의 일 실시예를 개략적으로 나타내는 개념도이다.
도 7은 엔트로피 복호화에 사용되는 인덱스 매핑 테이블의 구성을 개략적으로 나타내는 개념도이다.
도 8은 MPM을 이용한 인트라 예측 모드 부호화 방법의 일 실시예를 나타내는 개념도이다.
도 9는 MPM을 이용한 인트라 예측 모드 복호화 방법의 일 실시예를 나타내는 개념도이다.
도 10은 MPM을 이용한 인트라 예측 모드 부호화 방법의 다른 실시예를 나타내는 개념도이다.
도 11은 현재 테이블 인덱스를 코드 넘버로 변환하는 방법의 일 실시예를 나타내는 흐름도이다.
도 12는 MPM을 이용한 인트라 예측 모드 복호화 방법의 다른 실시예를 나타내는 개념도이다.
도 13은 코드 넘버를 현재 테이블 인덱스로 변환하는 방법의 일 실시예를 나타내는 흐름도이다.
도 14는 본 발명의 실시예에 따른 인트라 예측 모드 부호화 방법을 개략적으로 나타내는 흐름도이다.
도 15는 본 발명의 실시예에 따른 인트라 예측 모드 복호화 방법을 개략적으로 나타내는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니다. 본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 영상 부호화/복호화 장치에서 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리 범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 개략적으로 도시한 블록도이다. 도 1을 참조하면, 영상 부호화 장치(100)는 픽쳐 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 부호화부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 포함한다.
픽쳐 분할부(105)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 유닛(Prediction Unit: PU)일 수도 있고, 변환 유닛(Transform Unit: TU)일 수도 있으며, 부호화 유닛(Coding Unit: CU)일 수도 있다.
예측부(110)는 후술하는 바와 같이, 인터 예측을 수행하는 인터 예측부와 인트라 예측을 수행하는 인트라 예측부를 포함할 수 있다. 예측부(110)는, 픽쳐 분할부(105)에서의 픽쳐의 처리 단위에 대하여 예측을 수행하여 예측 블록을 생성할 수 있다. 예측부(110)에서 픽쳐의 처리 단위는 부호화 유닛일 수도 있고, 변환 유닛일 수도 있고, 예측 유닛일 수도 있다. 또한, 해당 처리 단위에 대하여 실시되는 예측이 인터 예측인지 인트라 예측인지를 결정하고, 각 예측 방법의 구체적인 내용(예컨대, 예측 모드 등)를 정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 예측 유닛 단위로 결정되고, 예측의 수행은 변환 유닛 단위로 수행될 수도 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록: residual block)은 변환부(115)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터(motion vector) 정보 등은 잔차값과 함께 엔트로피 부호화부(130)에서 부호화되어 복호화기에 전달될 수 있다.
변환부(115)는 변환 단위로 잔차 블록에 대한 변환(transform)을 수행하고 변환 계수를 생성한다. 변환부(115)에서의 변환 단위는 변환 유닛일 수 있으며, 쿼드 트리(quad tree) 구조를 가질 수 있다. 이때, 변환 단위의 크기는 소정의 최대 및 최소 크기의 범위 내에서 정해질 수 있다. 변환부(115)는 잔차 블록을 DCT(Discrete Cosine Transform) 및/또는 DST(Discrete Sine Transform)를 이용하여 변환할 수 있다.
양자화부(120)는 변환부(115)에서 변환된 잔차값들을 양자화하여 양자화 계수를 생성할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공될 수 있다.
재정렬부(125)는 양자화부(120)로부터 제공된 양자화 계수를 재정렬한다. 양자화 계수를 재정렬함으로써 엔트로피 부호화부(130)에서의 부호화의 효율을 높일 수 있다. 재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원 블록 형태의 양자화 계수들을 1차원의 벡터 형태로 재정렬할 수 있다. 재정렬부(125)에서는 양자화부에서 전송된 계수들의 확률적인 통계를 기반으로 계수 스캔닝의 순서를 변경함으로써 엔트로피 부호화부(130)에서의 엔트로피 부호화 효율을 높일 수도 있다.
엔트로피 부호화부(130)는 재정렬부(125)에 의해 재정렬된 양자화 계수들에 대한 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화부(130)는 재정렬부(125) 및 예측부(110)로부터 전달받은 부호화 유닛의 양자화 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 유닛 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 픽쳐 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다.
엔트로피 부호화에는 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법들이 사용될 수 있다. 예를 들어, 엔트로피 부호화부(130)에는 가변길이 부호화(VLC: Variable Length Coding, 이하 'VLC'라 함.) 테이블과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 부호화부(130)는 저장된 VLC 테이블을 이용하여 엔트로피 부호화를 수행할 수 있다. 또한 다른 예로서 CABAC 엔트로피 부호화 방법에서, 엔트로피 부호화부(130)는 심볼을 이진화하여 빈(bin)으로 변환한 후 빈의 발생 확률에 따라 빈에 대한 산술 부호화(arithmetic encoding)를 수행하여 비트스트림을 생성할 수도 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 낮은 값의 인덱스(index) 및 이에 대응하는 짧은 코드워드(codeword)가 할당되고, 낮은 발생 확률을 갖는 심볼에 높은 값의 인덱스 및 이에 대응하는 긴 코드워드가 할당될 수 있다. 따라서 부호화 대상 심볼들에 대한 비트량이 감소될 수 있고, 엔트로피 부호화에 의해 영상 압축 성능이 향상될 수 있다.
역양자화부(135)는 양자화부(120)에서 양자화된 값들을 역양자화하고, 역변환부(140)는 역양자화부(135)에서 역양자화된 값들을 역변환할 수 있다. 역양자화부(135) 및 역변환부(140)에서 생성된 잔차값(Residual)은 예측부(110)에서 예측된 예측 블록과 합쳐져 복원 블록(Reconstructed Block)이 생성될 수 있다.
필터부(145)는 디블록킹 필터 및/또는 ALF(Adaptive Loop Filter)를 복원된 픽쳐에 적용할 수 있다.
디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF(Adaptive Loop Filter)는, 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. ALF는 고효율을 적용하는 경우에만 수행될 수도 있다.
한편, 인터 예측에 사용되는 복원 블록에 대해서 필터부(145)는 필터링을 적용하지 않을 수 있다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있다. 메모리(150)에 저장된 복원 블록 또는 픽쳐는 인터 예측을 수행하는 예측부(110)에 제공될 수 있다.
부호화 유닛(Coding Unit: CU)은 픽쳐의 부호화/복호화가 수행되는 단위로서, 쿼드 트리 구조(Quad Tree Structure)를 기반으로 깊이(Depth)를 가지며 분할될 수 있다. 부호화 유닛은 64x64, 32x32, 16x16, 8x8 등의 여러 크기를 가질 수 있다.
부호화기는 최대 부호화 유닛(Largest Coding Unit: LCU)과 최소 부호화 유닛(Smallest Coding Unit: SCU)에 관한 정보를 복호화기에 전송할 수도 있다. 최대 부호화 유닛 및/또는 최소 부호화 유닛에 관한 정보와 함께 분할 가능한 회수에 관한 정보(깊이 정보)가 복호화기에 전송될 수 있다. 부호화 유닛이 쿼드 트리 구조를 기반으로 분할되는지에 관한 정보는 분할 플래그(Split Flag)와 같은 플래그 정보를 통해 부호화기로부터 복호화기로 전달될 수 있다.
하나의 부호화 유닛은 복수 개의 예측 유닛으로 분할될 수 있다. 인트라 예측이 수행되는 경우에는 예측 유닛 단위로 예측 모드가 결정되어 예측 유닛 단위로 예측이 수행될 수 있다. 이 때, 예측 유닛 단위로 예측 모드가 정해지고 변환 유닛 단위로 인트라 예측이 수행될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 예측부를 개략적으로 도시한 개념도이다. 도 2를 참조하면 예측부(200)는 인터 예측부(210) 및 인트라 예측부(220) 를 포함할 수 있다.
인터 예측부(210)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. 또한, 인트라 예측부(220)는 현재 픽쳐 내의 픽셀 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 예측부(210)는 예측 유닛에 대하여, 참조 픽쳐를 선택하고 예측 유닛과 동일한 크기의 참조 블록을 정수 픽셀 샘플 단위로 선택할 수 있다. 이어서, 인터 예측부(210)는 1/2 픽셀 샘플 단위와 1/4 픽셀 샘플 단위와 같이 정수 이하 샘플 단위로 현재 예측 유닛과 가장 유사하여 잔차 신호가 최소화되며 부호화되는 움직임 벡터 크기 역시 최소가 될 수 있는 예측 블록을 생성할 수 있다. 이때, 움직임 벡터는 정수 픽셀 이하의 단위로 표현될 수 있으며, 예컨대 루마 픽셀에 대해서는 1/4 픽셀 단위로, 크로마 픽셀에 대해서는 1/8 픽셀 단위로 표현될 수 있다.
인터 예측부(210)가 선택한 참조 픽쳐의 인덱스와 움직임 벡터에 관한 정보는 부호화되어 복호화기에 전달될 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치를 개략적으로 나타낸 블록도이다. 도 3을 참조하면, 영상 복호화기(300)는 엔트로피 복호화부(310), 재정렬부(315), 역양자화부(320), 역변환부(325), 예측부(330), 필터부(335) 및 메모리(340)를 포함할 수 있다.
영상 부호화기에 영상 비트 스트림이 입력된 경우, 입력된 비트 스트림은 영상 부호화기에서 영상 정보가 처리된 절차에 따라서 복호화될 수 있다.
엔트로피 복호화부(310)는 입력된 비트스트림에 대하여 엔트로피 복호화를 수행할 수 있으며, 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다. 예컨대, 영상 부호화기에서 엔트로피 부호화를 수행하기 위해 CAVLC 등의 가변 길이 부호화(VLC: Variable Length Coding, 이하 'VLC' 라 함)가 사용된 경우에는 엔트로피 복호화부(310)도 부호화기에서 사용한 VLC 테이블과 동일한 VLC 테이블을 구현하여 엔트로피 복호화를 수행할 수 있다. 영상 부호화기에서 엔트로피 부호화를 수행하기 위해, CABAC이 이용된 경우에도, 엔트로피 복호화부(310)는 이에 대응하여 CABAC을 이용한 엔트로피 복호화를 수행할 수 있다.
엔트로피 복호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 낮은 값의 인덱스(index) 및 이에 대응하는 짧은 코드워드(codeword)가 할당되고, 낮은 발생 확률을 갖는 심볼에 높은 값의 인덱스 및 이에 대응하는 긴 코드워드가 할당될 수 있다. 따라서 부호화 대상 심볼들에 대한 비트량이 감소될 수 있고, 엔트로피 부호화에 의해 영상 압축 성능이 향상될 수 있다.
엔트로피 복호화부(310)에서 복호화된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(330)로 제공되고 엔트로피 복호화부에서 엔트로피 복호화가 수행된 잔차값은 재정렬부(315)로 입력될 수 있다.
재정렬부(315)는, 엔트로피 복호화부(310)에서 엔트로피 복호화된 비트 스트림을 영상 부호화기에서 재정렬한 방법을 기초로 재정렬할 수 있다. 재정렬부(315)는 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(315)는 부호화기에서 수행된 계수 스캐닝에 관련된 정보를 제공받고 해당 부호화부에서 수행된 스캐닝 순서에 기초하여 역으로 스캐닝하는 방법을 통해 재정렬을 수행할 수 있다.
역양자화부(320)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(325)는, 영상 부호화기에서 수행된 양자화 결과에 대해 부호화기의 변환부가 수행한 DCT 및 DST에 대해, 역DCT 및/또는 역DST를 수행할 수 있다. 역변환은 부호화기에서 결정된 전송 단위 또는 영상의 분할 단위를 기초로 수행될 수 있다. 부호화기의 변환부에서 DCT 및/또는 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 복호화기의 역변환부(325)는 부호화기의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
예측부(330)는 엔트로피 복호화부(310)에서 제공된 예측 블록 생성 관련 정보와 메모리(340)에서 제공된 이전에 복호화된 블록 및/또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다. 복원 블록은 예측부(330)에서 생성된 예측 블록과 역변환부(325)에서 제공된 잔차 블록을 이용해 생성될 수 있다.
복원된 블록 및/또는 픽쳐는 필터부(335)로 제공될 수 있다. 필터부(335)는 복원된 블록 및/또는 픽쳐에 디블록킹 필터링, SAO(Sample Adaptive Offset) 및/또는 적응적 루프 필터링(ALF) 등을 적용할 수 있다.
메모리(340)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
도 4는 본 발명의 일 실시예에 따른 영상 복호화 장치의 예측부를 개략적으로 나타낸 개념도이다.
도 4를 참조하면, 예측부(400)는 인트라 예측부(410) 및 인터 예측부(420)를 포함할 수 있다.
인트라 예측부(410)는 해당 예측 유닛에 대한 예측 모드가 인트라 예측(intra prediction) 모드(화면 내 예측 모드)인 경우에, 현재 픽쳐 내의 픽셀 정보를 기초로 예측 블록을 생성할 수 있다.
인터 예측부(420)는 해당 예측 유닛에 대한 예측 모드가 인터 예측(inter prediction) 모드(화면 간 예측 모드)인 경우에, 영상 부호화기에서 제공된 현재 예측 유닛의 인터 예측에 필요한 정보, 예컨대 움직임 벡터, 참조 픽쳐 인덱스 등에 관한 정보를 이용해 현재 예측 유닛이 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 유닛에 대한 인터 예측을 수행할 수 있다.
이때, 움직임 정보는, 부호화기로부터 수신되는 부호화 유닛의 스킵 플래그, 머지 플래그 등이 확인된 경우, 이에 대응하여 유도될 수 있다.
이하, 발명의 구성 또는 표현에 따라 "영상" 또는 "화면"이 "픽쳐"와 같은 의미를 나타낼 수 있는 경우,"픽쳐"는 "영상" 또는 "화면"으로 기술될 수 있다. 또한 인터 예측(inter prediction)과 화면 간 예측은 동일한 의미를 가지며, 인트라 예측(intra prediction)과 화면 내 예측은 동일한 의미를 가진다.
상술한 바와 같이 인트라 예측부는 현재 픽쳐 내의 픽셀 정보를 기초로 예측을 수행하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 인트라 예측 모드에는, 현재 블록의 픽셀값 예측에 사용되는 참조 픽셀들의 위치 및 예측 방식 등에 따라, 수직(vertical), 수평(horizontal), DC, 앵귤러(angular) 모드 등이 있을 수 있다. 수직 모드에서는 인접 블록의 픽셀값을 사용하여 수직 방향으로 예측이 수행되고, 수평 모드에서는 인접 블록의 픽셀값을 사용하여 수평 방향으로 예측이 수행될 수 있다. 또한 DC 모드에서는 현재 블록 내의 픽셀값들의 평균에 의해 예측 블록이 생성될 수 있다. 앵귤러 모드에서는 각각의 모드에 대해 미리 정해진 각도 및/또는 방향에 따라 예측이 수행될 수 있다.
인트라 예측 모드 정보는 그 예측 모드를 나타내는 값 자체로 전송될 수도 있으나, 전송 효율을 높이기 위해 인트라 예측 모드에 대해 예측된 모드값을 이용하여 인트라 예측 모드 정보를 전송하는 방법이 제공될 수 있다. 이하, 현재 인트라 예측 모드에 대해 예측된 모드는 MPM(Most Probable Mode)이라 한다.
도 5는 MPM 도출 방법의 일 실시예를 개략적으로 나타내는 개념도이다. 도 5의 실시예에서 현재 예측 유닛은 현재 예측이 수행되는 유닛을 의미한다. A는 현재 예측 유닛의 상단에 인접한 주변 예측 유닛이고, B는 현재 예측 유닛의 좌측에 인접한 주변 예측 유닛이다. 예측 유닛 A, 예측 유닛 B, 및 현재 예측 유닛은 도 5의 실시예에 도시된 바와 같이 같은 크기일 수 있으나, 서로 다른 크기를 가질 수도 있다.
도 5를 참조하면, 부호화기 및 복호화기는 예측 유닛 A의 예측 모드(모드 A)와 예측 유닛 B의 예측 모드(모드 B)를 이용하여 MPM 후보 리스트를 구성할 수 있다. 모드 A와 모드 B가 동일한 경우에 MPM 후보의 개수는 1개일 수 있고, 모드 A와 모드 B가 서로 다른 경우에 MPM 후보의 개수는 2개일 수 있다. MPM 후보의 개수는 도 5의 실시예에서처럼 1개 또는 2개에 한정되는 것이 아니고, 3개 이상일 수도 있다.
부호화기 및 복호화기는 고정된 개수의 MPM 후보를 사용할 수도 있다. 이 때, 상기 MPM 후보 리스트의 엔트리(entry)의 개수, 즉 MPM 후보 리스트 내의 MPM 후보의 개수는 항상 고정된 값일 수 있다. 고정된 MPM 후보의 개수는 2일 수 있고, 3 또는 4 이상일 수도 있다.
일 실시예로, 도 5의 실시예에서 항상 2개로 고정된 개수의 MPM 후보가 사용된다고 가정하면, 모드 A와 모드 B가 동일할 때 도출되는 MPM 후보의 개수는 1개일 수 있으므로, 나머지 MPM 후보에는 DC 모드, Planar 모드 또는 그 밖의 소정의 예측 모드가 채워질 수 있다.
현재 예측 유닛의 인트라 예측 모드는 MPM 후보들 중 어느 하나와 동일한 예측 모드일 수 있다. MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 있는지 여부에 관한 정보는 소정의 플래그를 통해 부호화기로부터 복호화기로 전송될 수 있다. 상기 플래그는 일 실시예로 prev_intra_luma_pred_flag일 수 있고, 상기 플래그가 1일 때, MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재할 수 있다.
상기 플래그가 1이고 MPM 후보의 개수가 1개일 때, MPM 후보의 예측 모드가 현재 예측 유닛의 예측 모드일 수 있으므로, 부호화기는 복호화기로 별도의 추가 정보를 전송하지 않을 수 있다. 그러나, 상기 플래그가 1이고 MPM 후보의 개수가 2 이상일 때, 복호화기는 현재 유닛의 예측 모드가 MPM 후보들 중 어느 후보의 예측 모드와 동일한지 알 수 없다. 따라서, 이 때 부호화기는 현재 예측 유닛의 예측 모드가 어느 MPM 후보의 예측 모드와 동일한지를 지시하는 인덱스(index)를 복호화기로 전송할 수 있다. 복호화기는 상기 인덱스를 이용하여 현재 예측 유닛의 예측 모드를 결정할 수 있다. 예를 들어 상기 인덱스는 mpm_idx일 수 있다.
MPM 후보들의 예측 모드가 모두 현재 예측 유닛의 예측 모드와 다른 경우, 예를 들어 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하는지 여부를 지시하는 플래그의 값이 0일 때, 부호화기는 리메이닝 모드(remaining mode)를 이용하여 현재 유닛의 인트라 예측 모드 정보를 복호화기로 전송할 수 있다.
부호화기 및 복호화기는 인트라 예측 모드 부호화/복호화를 수행함에 있어, MPM 뿐만 아니라 MPRM(Most Probable Remaining Mode)을 함께 이용할 수도 있다. 이 때, 부호화기 및 복호화기는 MPM 후보들을 제외한 인트라 예측 모드들을 이용하여 MPRM 후보들을 포함하는 MPRM 리스트를 생성할 수 있다.
MPRM이 이용되는 경우, MPM 후보들의 예측 모드가 모두 현재 예측 유닛의 예측 모드와 다른 때에도, 부호화기는 MPRM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 있는지 여부에 관한 정보를 소정의 플래그를 통해 복호화기로 전송할 수 있다. 일 실시예로 상기 플래그는 mprm_pred_flag일 수 있다.
MPRM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하는 경우, 부호화기는 현재 예측 유닛의 예측 모드가 어느 MPRM 후보의 예측 모드와 동일한지를 지시하는 인덱스(index)를 복호화기로 전송할 수 있다. 일 실시예로 상기 인덱스는 mprm_idx일 수 있다.
MPRM 후보들의 예측 모드가 모두 현재 예측 유닛의 예측 모드와 다른 경우, 부호화기는 리메이닝 모드(remaining mode)를 이용하여 현재 유닛의 인트라 예측 모드 정보를 복호화기로 전송할 수 있다.
이하 서술되는 실시예들은 MPM만 이용되는 경우뿐만 아니라, MPM과 MPRM이 함께 이용되는 경우에도 적용될 수 있다.
도 6은 인트라 예측 모드 정보의 전송에 사용되는 리메이닝 모드의 일 실시예를 개략적으로 나타내는 개념도이다. 도 6의 실시예에서, MPM의 예측 모드는 1이고 MPM 후보의 개수는 1개라 가정한다. 이하, 현재 예측 유닛의 예측 모드는 현재 예측 모드, 현재 예측 모드의 모드값은 현재 모드값이라 한다.
MPM 후보들의 예측 모드가 모두 현재 예측 모드와 다른 경우, 부호화기는 MPM 후보들을 제외한 예측 모드들 중 현재 예측 모드에 대한 정보를 복호화기로 전송할 수 있다. 이 때, 부호화기는 모든 MPM 후보들의 모드값이 현재 모드값보다 크면 현재 모드값을 이용하여 예측 모드 정보를 전송하고, 현재 모드값보다 작은 모드값을 갖는 MPM 후보가 존재하면, 현재 모드값보다 작은 모드값을 갖는 MPM의 개수를 현재 모드값에서 뺀 값을 이용하여 예측 모드 정보를 전송할 수 있다. 이 때, 현재 모드값보다 작은 모드값을 갖는 MPM의 개수가 현재 모드값에서 빼진 모드값을 갖는 예측 모드는 리메이닝 모드로 불릴 수 있다.
도 6을 참조하면, 도 6의 610은 현재 예측 유닛이 가질 수 있는 인트라 예측 모드를 나타낸다. MPM의 예측 모드값이 1이므로, 현재 예측 유닛이 가질 수 있는 예측 모드는, 도 6의 620에서와 같이, 모드값이 1인 예측 모드를 제외한 나머지 예측 모드들 중 하나일 수 있다. 이 때, 예를 들어 현재 모드값이 2일 때, 현재 리메이닝 모드의 모드값은 도 6의 630에서와 같이 1일 수 있다. 또한 현재 모드값이 0일 때, 현재 리메이닝 모드의 모드값은 0일 수 있다.
복호화기는, 상술한 prev_intra_luma_pred_flag 등과 같은 플래그 정보를 통해, MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하지 않음을 알 수 있다.
이 때, 복호화기는 리메이닝 모드 및 MPM을 이용하여 현재 예측 유닛의 실제 예측 모드값을 구할 수 있다. 일 실시예로 MPM이 N개이고, MPM의 모드값들은 mode1, mode2,..., modeN이라 가정한다. 여기서, modeX 에서, X 값이 작을 수록 더 작은 모드값이 할당된다고 가정한다. X가 1부터 N-1일 때, 리메이닝 모드의 모드값이 modeX - (X-1)보다 크거나 같고 mode(X+1) -X 보다 작은 경우, 리메이닝 모드의 모드값에 X를 더한 값이 현재 예측 모드일 수 있다. 또한 X가 N일 때, 리메이닝 모드의 모드값이 modeN - (N-1)보다 크거나 같은 경우, 리메이닝 모드의 모드값에 N을 더한 값이 현재 예측 모드일 수 있다.
예를 들어, 도 6의 실시예에서 현재 모드값이 2일 때, 복호화기가 수신한 리메이닝 모드의 모드값은 1일 수 있다. MPM의 모드값이 1이고 MPM 후보의 개수가 1개이므로, 복호화기는 리메이닝 모드의 모드값에 1을 더하여 현재 모드값 2를 구할 수 있다.
상술한 도 6의 실시예에 따르면, 현재 예측 모드의 전송에 필요한 비트량이 감소될 수 있으므로, 부호화 효율이 향상될 수 있다.
도 7은 엔트로피 복호화에 사용되는 인덱스 매핑 테이블의 구성을 개략적으로 나타내는 개념도이다.
DCT 계수, 모션 벡터(motion vector), 예측 모드 등과 같이 높은 부호화 효율이 요구되는 정보들의 부호화 및 복호화에는 엔트로피 부호화 및 복호화 방식이 이용될 수 있다. 엔트로피 부호화 및 복호화 과정에서 입력되는 심볼들은 연속적인 코드워드로 변환될 수 있고, 코드워드의 길이는 가변적일 수 있다.
상술한 바와 같이, 엔트로피 부호화 및 복호화에는 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 방법들이 사용될 수 있다. 엔트로피 부호화 및 복호화에 있어 낮은 복잡도가 요구되는 경우 LCEC(Low Complexity Entropy Coding)가, 높은 효율이 요구되는 경우 CABAC이 이용될 수 있다.
엔트로피 부호화 및 복호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 짧은 코드워드(codeword)가 할당되고, 낮은 발생 확률을 갖는 심볼에 긴 코드워드가 할당될 수 있다. 따라서 부호화 및 복호화 대상 심볼들에 대한 비트량이 감소될 수 있고, 엔트로피 부호화 및 복호화에 의해 영상 압축 성능이 향상될 수 있다.
CAVLC가 적용되는 경우, 소정의 VLC 테이블이 이용될 수 있으며, VLC 테이블은 각 심볼의 발생 확률에 기반하여 구성될 수 있다. 이하, 복호화기 입장에서 엔트로피 복호화 과정이 개략적으로 서술된다.
복호화기는 입력된 비트 스트림 내의 코드워드로부터 이에 대응하는 VLC 테이블을 이용하여 코드 넘버(code number)를 얻을 수 있다. 여기서, 코드 넘버는 코드워드 인덱스(codeword index)로도 불릴 수 있다. 복호화기는 코드 넘버와 이에 대응하는 인덱스 매핑 테이블(index mapping table)을 이용하여 구문 요소(syntax element)의 값을 얻을 수 있다. 여기서, 인덱스 매핑 테이블은 소팅 테이블(sorting table)로도 불릴 수 있다.
상기 인덱스 매핑 테이블은 각 코드 넘버에 할당된 구문 요소의 값을 발생 빈도에 따라 적응적으로 조절하기 위해 사용될 수 있다. 일 실시예로, 현재 입력된 코드 넘버가 A이고 A가 0보다 큰 경우, 코드 넘버 A에 대응하는 심볼의 발생 확률이 높아지므로, 코드 넘버 A에 대응하는 구문 요소의 값과 코드 넘버 A-1에 대응하는 구문 요소의 값이 서로 스와핑(swapping)될 수 있다. 즉, 현재 입력된 코드 넘버에 따라 인덱스 매핑 테이블이 업데이트(update)될 수 있다.
도 7을 참조하면, 도 7은 코드 넘버와 이에 대응하는 인트라 예측 모드의 매핑 관계를 나타내는 인덱스 매핑 테이블의 실시예를 도시한다. 여기서, 코드 넘버의 최대값은 소정의 값으로 미리 정해져 있을 수 있다. 부호화기에는 인덱스 매핑 테이블에 대응하는 역 인덱스 매핑 테이블(inverse index mapping table)이 저장될 수 있다.
도 7의 실시예에 따른 인덱스 매핑 테이블에 3의 코드 넘버가 입력되는 경우, 현재 예측 유닛의 인트라 예측 모드는 0일 수 있다. 이 때, 현재 입력된 코드 넘버가 3이므로, 코드 넘버 3에 할당된 예측 모드 0과 코드 넘버 2에 할당된 예측 모드 9가 서로 스와핑(swapping)될 수 있다. 업데이트된 인덱스 매핑 테이블에서는, 코드 넘버 3에 예측 모드 9가 매핑되고 코드 넘버 2에 예측 모드 0이 매핑될 수 있다.
도 8은 MPM을 이용한 인트라 예측 모드 부호화 방법의 일 실시예를 나타내는 개념도이다. 도 8은 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하지 않는 경우, 예를 들어 prev_intra_luma_pred_flag가 0인 경우의 실시예를 나타낸다.
도 8을 참조하면, 부호화기는 현재 예측 모드 정보 및 MPM 후보의 예측 모드 정보로부터 현재 예측 모드에 대응하는 리메이닝 모드를 도출할 수 있다. 현재 예측 모드 정보에는 현재 예측 모드의 모드값 등이 있을 수 있고, MPM 후보의 예측 모드 정보에는 MPM 후보의 개수 및 각 MPM 후보의 모드값 등이 있을 수 있다. 이하, 현재 예측 모드에 대응하는 리메이닝 모드는 현재 리메이닝 모드라 한다.
예를 들어 MPM 후보의 개수가 1개이고 MPM 후보의 모드값이 2이고 현재 예측 모드가 3이라면, 현재 리메이닝 모드는 2가 될 수 있다. MPM 후보의 모드값이 현재 예측 모드의 모드값보다 작으므로, 현재 리메이닝 모드는 현재 예측 모드의 모드값에서 1이 빼진 값이 될 수 있다. 다른 예로서, MPM 후보의 개수가 2개이고 MPM 후보의 모드값이 각각 1, 2이고 현재 예측 모드가 3이라면 현재 리메이닝 모드는 1이 될 수 있다. 2개의 MPM 후보의 모드값들이 모두 현재 예측 모드의 모드값보다 작으므로, 현재 리메이닝 모드는 현재 예측 모드의 모드값에서 2가 빼진 값이 될 수 있다.
부호화기는 현재 리메이닝 모드 및 상기 현재 리메이닝 모드에 대응하는 역 인덱스 매핑 테이블(inverse index mapping table)을 이용하여 코드 넘버를 생성할 수 있다. 상기 코드 넘버는 코드워드 인덱스로도 불릴 수 있고, 상기 역 인덱스 매핑 테이블에서 현재 리메이닝 모드의 랭킹(ranking)을 나타낼 수도 있다. 따라서 이러한 경우의 코드 넘버는 테이블 인덱스(table index)로도 불릴 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수는 현재 예측 유닛의 크기에 따라 달라질 수 있다. 또한 MPM 후보의 개수에 따라 현재 예측 유닛이 가질 수 있는 리메이닝 모드의 개수가 달라질 수도 있다. 역 인덱스 매핑 테이블의 엔트리(entry) 개수는 현재 예측 유닛이 가질 수 있는 리메이닝 모드의 개수와 동일하므로, 현재 예측 유닛이 가질 수 있는 리메이닝 모드의 개수가 달라지면 사용되는 역 인덱스 매핑 테이블도 달라질 수 있다. 따라서, 상술한 실시예에서 부호화기에는 소정의 복수의 역 인덱스 매핑 테이블이 저장되어 있을 수 있다. 부호화기는 현재 예측 유닛의 크기 및 MPM 후보의 개수에 관한 정보로부터 상기 소정의 복수의 역 인덱스 매핑 테이블 중 하나의 역 인덱스 매핑 테이블을 선택하여 사용할 수 있다.
부호화기는 VLC 테이블을 이용하여 코드 넘버를 코드워드로 변환(convert)할 수 있고, 상기 코드워드는 복호화기로 전송될 수 있다.
도 9는 MPM을 이용한 인트라 예측 모드 복호화 방법의 일 실시예를 나타내는 개념도이다. 도 9는 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하지 않는 경우, 예를 들어 prev_intra_luma_pred_flag가 0인 경우의 실시예를 나타낸다. 이 경우, 현재 예측 유닛에 대한 리메이닝 모드가 파싱(parsing)될 수 있다.
도 9를 참조하면, 복호화기는 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드를 코드 넘버로 변환(convert)할 수 있다. 상기 코드 넘버는 코드워드 인덱스로도 불릴 수 있고, 복호화에 사용되는 인덱스 매핑 테이블에서 현재 리메이닝 모드의 랭킹(ranking)을 나타낼 수도 있다. 따라서 이러한 경우의 코드 넘버는 테이블 인덱스(table index)로도 불릴 수 있다.
복호화기는 상기 코드 넘버 및 상기 현재 코드 넘버에 대응하는 인덱스 매핑 테이블(index mapping table)을 이용하여 리메이닝 모드를 생성할 수 있다.
도 8의 실시예에서 상술된 바와 같은 이유로, 복호화기에는 소정의 복수의 인덱스 매핑 테이블이 저장되어 있을 수 있다. 복호화기는 현재 예측 유닛의 크기 및 MPM 후보의 개수에 관한 정보로부터 상기 소정의 복수의 인덱스 매핑 테이블 중 하나의 인덱스 매핑 테이블을 선택하여 사용할 수 있다. 인덱스 매핑 테이블의 엔트리(entry) 개수는 현재 예측 유닛이 가질 수 있는 리메이닝 모드의 개수와 동일할 수 있다.
복호화기는 현재 리메이닝 모드 정보 및 MPM 후보의 예측 모드 정보로부터 현재 예측 모드를 도출할 수 있다. 현재 리메이닝 모드 정보에는 현재 리메이닝 모드의 모드값 등이 있을 수 있고, MPM 후보의 예측 모드 정보에는 MPM 후보의 개수 및 각 MPM 후보의 모드값 등이 있을 수 있다.
예를 들어 MPM 후보의 개수가 1개이고 MPM 후보의 모드값이 2이고 현재 리메이닝 모드가 2라면, 현재 예측 모드는 3이 될 수 있다. MPM 후보의 모드값이 현재 리메이닝 모드의 모드값과 같으므로, 현재 예측 모드는 현재 리메이닝 모드의 모드값에 1을 더한 값이 될 수 있다. 다른 예로서, MPM 후보의 개수가 2개이고 MPM 후보의 모드값이 각각 1, 2이고 현재 리메이닝 모드가 1이라면, 현재 리메이닝 모드의 모드값은 MPM 후보의 모드값들 중 큰 값인 2에서 1(MPM 후보의 개수-1)이 빼진 값과 같다. 따라서 복호화기는 현재 리메이닝 모드의 모드값에 2(MPM 후보의 개수)를 더하여 현재 예측 모드의 모드값 3을 구할 수 있다.
이하, 역 인덱스 매핑 테이블과 인덱스 매핑 테이블을 총칭하여 매핑 테이블이라 한다.
상술한 도 8의 실시예에서는 리메이닝 모드에 직접 역 인덱스 매핑 테이블이 적용될 수 있고, 도 9의 실시예에서는 코드 넘버에 인덱스 매핑 테이블이 적용되면 직접 리메이닝 모드가 생성될 수 있다. 따라서 매핑 테이블의 엔트리(entry) 개수는 현재 예측 유닛이 가질 수 있는 리메이닝 모드의 개수와 동일하다. 리메이닝 모드의 개수는 MPM 후보의 개수에 따라서 달라질 수 있으므로, 상술한 도 8의 실시예에서 부호화기는 MPM 후보의 개수에 따라 서로 다른 역 인덱스 매핑 테이블을 사용한다는 단점을 가질 수 있다. 도 9의 실시예에서도 복호화기는 MPM 후보의 개수에 따라 서로 다른 인덱스 매핑 테이블을 사용한다는 단점을 가질 수 있다. 다만, 항상 고정된 개수의 MPM 후보가 사용되는 경우에는 상술한 바와 같은 문제점이 발생하지 않을 수 있다. 상술한 도 8 및 도 9의 실시예에서 리메이닝 모드는, MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하는 경우에는 전송되지 않을 수 있다. 이러한 경우, 상기 매핑 테이블이 업데이트되지 않을 수 있으므로, 인트라 예측 모드의 분포가 매핑 테이블에 충분히 반영되지 않을 수 있다. 또한 상술한 도 8 및 도 9의 실시예에서 매핑 테이블은 현재 예측 유닛의 실제 예측 모드가 아닌 현재 리메이닝 모드에 따라 업데이트된다. 따라서 상기 매핑 테이블은 실제 인트라 예측 모드가 아닌 리메이닝 모드의 분포를 반영하므로, 상기 매핑 테이블에는 현재 컨텐츠(contents)의 특성이 직접적으로 반영되지 않을 수 있다.
따라서 현재 예측 유닛의 실제 예측 모드 및 컨텐츠의 특성을 더 직접적으로 반영하기 위한 인트라 예측 모드 부호화/복호화 방법이 제공될 수 있다.
도 10은 MPM을 이용한 인트라 예측 모드 부호화 방법의 다른 실시예를 나타내는 개념도이다. 도 10은 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하지 않는 경우, 예를 들어 prev_intra_luma_pred_flag가 0인 경우의 실시예를 나타낸다.
도 10을 참조하면, 부호화기는 현재 예측 유닛의 예측 모드에 직접 역 인덱스 매핑 테이블을 적용하여 현재 예측 모드에 대한 테이블 인덱스를 생성할 수 있다. 이러한 경우의 테이블 인덱스는 역 인덱스 매핑 테이블에서 현재 예측 모드의 랭킹을 나타낼 수도 있다. 여기서, 역 인덱스 매핑 테이블의 엔트리(entry) 개수는 리메이닝 모드의 개수가 아니라, 현재 예측 유닛이 가질 수 있는 예측 모드의 개수와 동일할 수 있다.
이하, 현재 예측 모드에 대한 테이블 인덱스는 현재 테이블 인덱스라 한다. 예를 들어, 도 10 및 후술되는 도 11의 실시예에서 현재 테이블 인덱스는 역 인덱스 매핑 테이블에서 현재 예측 모드에 할당된 인덱스를 의미할 수 있다. 이 때, 현재 예측 모드에 역 인덱스 매핑 테이블이 적용되면, 현재 테이블 인덱스가 출력될 수 있다. 또한 도 10 및 후술되는 도 11의 실시예에서 MPM 후보의 인덱스는 역 인덱스 매핑 테이블에서 MPM 후보에 할당된 인덱스를 의미하며, MPM 인덱스로도 불릴 수 있다.
부호화기는 현재 테이블 인덱스 정보 및 MPM 후보의 인덱스 정보로부터 코드 넘버를 도출할 수 있다. 상기 현재 테이블 인덱스 정보에는 현재 테이블 인덱스의 값 등이 있을 수 있고, MPM 후보의 인덱스 정보에는 MPM 후보의 개수 및 MPM 후보의 인덱스의 값 등이 있을 수 있다. 상기 코드 넘버는 코드워드 인덱스로도 불릴 수 있다. 현재 테이블 인덱스에서 코드 넘버로의 변환(conversion) 과정의 상세는 후술한다.
부호화기는 VLC 테이블을 이용하여 코드 넘버를 코드워드로 변환(convert)할 수 있고, 상기 코드워드는 복호화기로 전송될 수 있다.
도 11은 현재 테이블 인덱스를 코드 넘버로 변환하는 방법의 일 실시예를 나타내는 흐름도이다. 도 11의 실시예에서, MPM 후보의 최대 개수는 2개라 가정한다.
도 11을 참조하면, 부호화기는 MPM 후보의 개수가 1개인지 여부를 판단할 수 있다(S1110).
MPM 후보의 개수가 1개이면, 부호화기는 현재 예측 모드의 테이블 인덱스가 MPM 후보의 인덱스보다 작은지를 판단할 수 있다(S1120). 현재 테이블 인덱스가 MPM 후보의 인덱스보다 작은 경우, 코드 넘버는 현재 테이블 인덱스와 동일한 값을 가질 수 있다(S1130). 현재 테이블 인덱스가 MPM 후보의 인덱스보다 작지 않은 경우, 코드 넘버는 현재 테이블 인덱스의 값에서 1이 빼진 값을 가질 수 있다(S1140).
MPM 후보의 개수가 1개가 아니고 2개이면, 부호화기는 현재 예측 모드의 테이블 인덱스가 MPM 후보의 인덱스들 중 작은 것보다 더 작은지 여부를 판단할 수 있다(S1150). 현재 테이블 인덱스가 MPM 후보의 인덱스들 중 작은 것보다 더 작은 경우, 코드 넘버는 현재 테이블 인덱스와 동일한 값을 가질 수 있다(S1160).
현재 테이블 인덱스가 MPM 후보의 인덱스들 중 작은 것보다 작지 않은 경우, 부호화기는 현재 예측 모드의 테이블 인덱스가 MPM 후보의 인덱스들 중 큰 것보다 더 작은지 여부를 판단할 수 있다(S1170). 현재 테이블 인덱스가 MPM 후보의 인덱스들 중 큰 것보다 더 작은 경우, 코드 넘버는 현재 테이블 인덱스의 값에서 1이 빼진 값을 가질 수 있다(S1180). 현재 테이블 인덱스가 MPM 후보의 인덱스들 중 큰 것보다 작지 않은 경우, 코드 넘버는 현재 테이블 인덱스의 값에서 2가 빼진 값을 가질 수 있다(S1190).
예를 들어 MPM 후보의 개수가 1개이고 MPM 후보의 인덱스 값이 2이고 현재 테이블 인덱스 값이 3이라면, 코드 넘버는 2가 될 수 있다. MPM 후보의 인덱스 값이 현재 테이블 인덱스의 값보다 작으므로, 코드 넘버는 현재 테이블 인덱스 값에서 1이 빼진 값이 될 수 있다. 다른 예로서, MPM 후보의 개수가 2개이고 MPM 후보의 인덱스 값이 각각 1, 2이고 현재 테이블 인덱스 값이 3이라면 코드 넘버는 1이 될 수 있다. 2개의 MPM 후보의 인덱스 값들이 모두 현재 테이블 인덱스의 값보다 작으므로, 코드 넘버는 현재 테이블 인덱스 값에서 2가 빼진 값이 될 수 있다.
상술한 현재 테이블 인덱스에서 코드 넘버로의 변환(conversion) 과정은 도 8의 실시예에서 상술한 현재 예측 모드에서 리메이닝 모드로의 변환 과정과 유사하다.
도 12는 MPM을 이용한 인트라 예측 모드 복호화 방법의 다른 실시예를 나타내는 개념도이다. 도 12는 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하지 않는 경우, 예를 들어 prev_intra_luma_pred_flag가 0인 경우의 실시예를 나타낸다.
도 12를 참조하면, 복호화기는 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드를 코드 넘버로 변환(convert)할 수 있다. 상기 코드 넘버는 코드워드 인덱스로도 불릴수 있다.
복호화기는 상기 코드 넘버 및 MPM 후보의 인덱스 정보로부터 현재 테이블 인덱스를 생성할 수 있다. MPM 후보의 인덱스 정보에는 MPM 후보의 개수 및 MPM 후보의 인덱스의 값 등이 있을 수 있다. 도 12 및 후술되는 도 13의 실시예에서 MPM 후보의 인덱스는 복호화에 사용되는 인덱스 매핑 테이블에서 MPM 후보에 할당된 인덱스를 의미한다.
상기 현재 테이블 인덱스는 복호화에 사용되는 인덱스 매핑 테이블에서 현재 예측 모드의 랭킹을 나타낼 수 있다. 예를 들어, 도 12 및 후술되는 도 13의 실시예에서 현재 테이블 인덱스는 인덱스 매핑 테이블에서 현재 예측 모드에 할당된 인덱스를 의미할 수 있다. 이 때, 현재 테이블 인덱스에 인덱스 매핑 테이블이 적용되면, 현재 예측 모드가 출력될 수 있다. 코드 넘버에서 현재 테이블 인덱스로의 변환(conversion) 과정의 상세는 후술한다.
복호화기는 상기 현재 테이블 인덱스 및 인덱스 매핑 테이블을 이용하여 현재 예측 모드를 도출할 수 있다. 도 12의 실시예에서는 인덱스 매핑 테이블이 코드 넘버에 직접 적용되지 않고, MPM 후보의 인덱스 정보를 이용하여 생성된 현재 테이블 인덱스에 적용될 수 있다. 여기서, 인덱스 매핑 테이블의 엔트리(entry) 개수는 리메이닝 모드의 개수가 아니라, 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일할 수 있다.
상술한 코드 넘버에서 현재 테이블 인덱스로의 변환을 수행하기 위해, 복호화기는 MPM 후보의 인덱스 값을 찾을 필요가 있다. 상기 인덱스 매핑 테이블에서 입력은 상기 현재 테이블 인덱스를 포함한 인덱스들 중 하나일 수 있고, 출력은 현재 예측 모드를 포함한 인트라 예측 모드들 중 하나일 수 있다. 따라서 복호화기는 가능한 인덱스 값을 인덱스 매핑 테이블에 하나씩 입력하여 MPM의 모드값을 출력으로 갖는 인덱스를 탐색함으로써, MPM의 인덱스 값을 찾을 수 있다.
이러한 계산을 줄이기 위해, 복호화기에는 역 인덱스 매핑 테이블이 저장되어 있을 수 있다. 상기 역 인덱스 매핑 테이블에서 입력은 인트라 예측 모드들 중 하나일 수 있고, 출력은 상기 현재 테이블 인덱스를 포함한 인덱스들 중 하나일 수 있다. 이 때, 복호화기는 MPM의 모드값에 직접 상기 역 인덱스 매핑 테이블을 적용함으로써 별도의 계산 없이도 MPM의 인덱스 값을 얻을 수 있다.
도 13은 코드 넘버를 현재 테이블 인덱스로 변환하는 방법의 일 실시예를 나타내는 흐름도이다. 도 13의 실시예에서, MPM 후보의 최대 개수는 2개라 가정한다.
도 13을 참조하면, 복호화기는 MPM 후보의 개수가 1개인지 여부를 판단할 수 있다(S1310).
MPM 후보의 개수가 1개이면, 복호화기는 현재 코드 넘버가 MPM 후보의 인덱스보다 작은지를 판단할 수 있다(S1320). 코드 넘버가 MPM 후보의 인덱스보다 작은 경우, 현재 테이블 인덱스는 코드 넘버와 동일한 값을 가질 수 있다(S1330). 코드 넘버가 MPM 후보의 인덱스보다 작지 않은 경우, 현재 테이블 인덱스는 코드 넘버의 값에 1이 더해진 값을 가질 수 있다(S1340).
MPM 후보의 개수가 1개가 아니고 2개이면, 복호화기는 현재 코드 넘버가 MPM 후보의 인덱스들 중 작은 것보다 더 작은지 여부를 판단할 수 있다(S1350). 코드 넘버가 MPM 후보의 인덱스들 중 작은 것보다 더 작은 경우, 현재 테이블 인덱스는 코드 넘버와 동일한 값을 가질 수 있다(S1360).
코드 넘버가 MPM 후보의 인덱스들 중 작은 것보다 작지 않은 경우, 복호화기는 현재 코드 넘버가 MPM 후보의 인덱스들 중 큰 것에서 1을 뺀 값보다 더 작은지 여부를 판단할 수 있다(S1370). 코드 넘버가 MPM 후보의 인덱스들 중 큰 것에서 1을 뺀 값보다 더 작은 경우, 현재 테이블 인덱스는 코드 넘버의 값에 1이 더해진 값을 가질 수 있다(S1380). 코드 넘버가 MPM 후보의 인덱스들 중 큰 것에서 1을 뺀 값보다 작지 않은 경우, 현재 테이블 인덱스는 코드 넘버의 값에 2가 더해진 값을 가질 수 있다(S1390).
예를 들어 MPM 후보의 개수가 1개이고 MPM 후보의 인덱스 값이 2이고 현재 코드 넘버가 2이라면, 현재 테이블 인덱스는 3이 될 수 있다. 현재 코드 넘버가 MPM 후보의 인덱스 값보다 작지 않으므로, 현재 테이블 인덱스는 현재 코드 넘버에 1을 더한 값을 가질 수 있다.
상술한 코드 넘버에서 현재 테이블 인덱스로의 변환(conversion) 과정은 도 9의 실시예에서 상술한 리메이닝 모드에서 현재 예측 모드로의 변환 과정과 유사하다.
이하, MPM의 개수에 따른, 코드 넘버에서 현재 테이블 인덱스로의 변환 과정의 실시예가 구체적으로 서술된다. 후술되는 실시예에서, 상기 코드 넘버는 preCodeNum으로 표시될 수 있고, 상기 현재 테이블 인덱스는 codeNum으로 표시될 수 있다. 복호화기는 역 VLC 테이블을 이용하여 코드워드로부터 preCodeNum을 도출할 수 있으며, MPM의 개수와 MPM의 인덱스 값을 이용하여 preCodeNum으로부터 codeNum을 도출할 수 있다. 복호화기는 인덱스 매핑 테이블을 통해 codeNum로부터 현재 예측 모드를 도출할 수 있다.
일 실시예로 MPM이 1개이고, 인덱스 매핑 테이블에서 MPM의 모드값에 대응되는 MPM의 인덱스 값이 codeNum-Ori_Prev1이라 가정한다. 이 때, 인덱스 매핑 테이블에 codeNum-Ori_Prev1이 입력되면, MPM의 모드값이 출력될 수 있다.
preCodeNum이 codeNum-Ori_Prev1보다 작은 경우, preCodeNum 값이 그대로 codeNum에 할당될 수 있다. preCodeNum이 codeNum-Ori_Prev1보다 크거나 같은 경우, preCodeNum + 1 의 값이 codeNum에 할당될 수 있다.
다른 실시예로 MPM이 2개이고, 인덱스 매핑 테이블에서 MPM의 모드값들에 대응되는 MPM의 인덱스 값들이 codeNum-Ori_Prev1, codeNum-Ori_Prev2라 가정한다. 이 때, 인덱스 매핑 테이블에 codeNum-Ori_Prev1 및/또는 codeNum-Ori_Prev2가 입력되면, MPM의 모드값들이 출력될 수 있다. codeNum-Ori_Prev1은 codeNum-Ori_Prev2보다 작다고 가정한다.
preCodeNum이 codeNum-Ori_Prev1보다 작은 경우, preCodeNum 값이 그대로 codeNum에 할당될 수 있다. preCodeNum이 codeNum-Ori_Prev1보다 크거나 같고 codeNum-Ori_Prev2 - 1보다 작은 경우, preCodeNum + 1 의 값이 codeNum에 할당될 수 있다. 만일, preCodeNum이 codeNum-Ori_Prev2 - 1보다 크거나 같은 경우, preCodeNum + 2 의 값이 codeNum에 할당될 수 있다.
또 다른 실시예로 MPM이 N개이고, 인덱스 매핑 테이블에서 MPM의 모드값들에 대응되는 MPM의 인덱스 값들이 codeNum-Ori_Prev1, codeNum-Ori_Prev2,..., codeNum-Ori_PrevN이라 가정한다. 이 때, 인덱스 매핑 테이블에 codeNum-Ori_Prev1 및 codeNum-Ori_Prev2,..., codeNum-Ori_PrevN이 입력되면, MPM의 모드값들이 출력될 수 있다. codeNum-Ori_PrevX는 이에 할당되는 MPM 인덱스 값들의 오름차순으로 정렬되어 있다고 가정한다. 즉, 상기 X 값이 클수록 더 큰 MPM 인덱스 값들이 할당된다고 가정한다.
preCodeNum이 codeNum-Ori_Prev1보다 작은 경우, preCodeNum 값이 그대로 codeNum에 할당될 수 있다. preCodeNum이 codeNum-Ori_Prev1보다 크거나 같고 codeNum-Ori_Prev2 - 1보다 작은 경우, preCodeNum + 1 의 값이 codeNum에 할당될 수 있다. preCodeNum이 codeNum-Ori_Prev2 - 1보다 크거나 같고 codeNum-Ori_Prev3 - 2보다 작은 경우, preCodeNum + 2 의 값이 codeNum에 할당될 수 있다.
상술한 실시예를 일반화하여 서술하면, X가 1부터 N-1까지의 값을 가질 때, preCodeNum이 codeNum-Ori_PrevX - (X-1)보다 크거나 같고 codeNum-Ori_Prev(X+1) - X보다 작은 경우, preCodeNum + X 의 값이 codeNum에 할당될 수 있다. 또한 X가 N일 때, preCodeNum이 codeNum-Ori_PrevN - (N-1)보다 크거나 같은 경우, preCodeNum + N 의 값이 codeNum에 할당될 수 있다.
이하, 복호화기 입장에서 도 12 및 도 13의 실시예에 따른 인트라 예측 모드 복호화 과정의 실시예가 서술된다.
상기 처리를 위한 입력에는 현재 픽쳐 내에서 현재 블록의 위치, 현재 예측 유닛의 크기, 이전에 복원된 주변 블록의 인트라 예측 모드, 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블 등이 있을 수 있다. 출력은 현재 예측 유닛에 대한 현재 인트라 예측 모드, 업데이트된 인덱스 매핑 테이블 및 업데이트된 역 인덱스 매핑 테이블일 수 있다. 이는 다음과 같이 나타내어질 수 있다.
Figure pct00001
여기서, intraModeTable은 인덱스 매핑 테이블을 나타내고, invIntraModeTable은 역 인덱스 매핑 테이블을 나타낼 수 있다.
복호화기는 MPM 후보 도출에 사용되는 주변 블록을 도출하고, 도출된 각 주변 블록들의 인트라 예측 모드를 도출할 수 있다. 이는 다음과 같이 나타내어질 수 있다.
Figure pct00002
복호화기는 주변 블록들의 인트라 예측 모드를 이용하여 MPM 후보들을 도출할 수 있으며, 이는 다음과 같이 나타내어질 수 있다.
Figure pct00003
여기서, candIntraPredModeN은 MPM 후보를 나타낼 수 있다.
복호화기는 도출된 MPM 후보들을 이용하여 MPM 후보 리스트 및 그 리스트에 포함된 MPM 후보의 개수를 도출할 수 있다. 이는 다음과 같이 나타내어질 수 있다.
Figure pct00004
여기서, candModeList는 MPM 후보 리스트를 나타내고, NumMPMCand는 MPM 후보의 개수를 나타낼 수 있다.
복호화기는 현재 예측 유닛이 가질 수 있는 예측 모드의 개수에 따라 MPM의 인덱스 값을 도출할 수 있다. 복호화기는 MPM의 인덱스 값을 도출하기 위해, 역 인덱스 매핑 테이블을 사용할 수 있으며, 도출된 MPM의 인덱스 값들을 이용하여 MPM 인덱스 리스트를 구성할 수 있다. 이는 다음과 같이 나타내어질 수 있다.
Figure pct00005
여기서, intraPredModeNum은 현재 예측 유닛이 가질 수 있는 예측 모드의 개수를 나타낸다. 상술된 내용에서 intraPredModeNum에 대한 조건은 3 및/또는 17 에 한정되는 것이 아니고, 예를 들어 각각 3 대신 4 및/또는 17 대신 18이 사용될 수도 있다.
MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하는 경우, 복호화기는 MPM으로부터 현재 예측 모드를 도출할 수 있다.
MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하지 않는 경우, 복호화기는 코드 넘버로부터 현재 테이블 인덱스를 도출할 수 있다. 복호화기는 도출된 현재 테이블 인덱스에 인덱스 매핑 테이블을 적용하여 현재 예측 모드를 도출할 수 있다. 다만, 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 수가 3 일 때에는 별도의 인덱스 매핑 테이블이 적용되지 않을 수 있다. 이는 다음과 같이 나타내어질 수 있으며, rem_intra_luma_pred_mode는 상기 코드 넘버에, rank_intra_luma_pred_mode는 상기 현재 테이블 인덱스에 해당될 수 있다.
Figure pct00006
상술된 내용에서 intraPredModeNum에 대한 조건은 3 에 한정되는 것이 아니고, 예를 들어 3 대신 4가 사용될 수도 있다.
복호화기는 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블을 업데이트할 수 있다. 이는 다음과 같이 나타내어질 수 있다.
Figure pct00007
상술된 내용에서 intraPredModeNum에 대한 조건은 3 에 한정되는 것이 아니고, 예를 들어 3 대신 4가 사용될 수도 있다.
코드 넘버를 도출하기 위한 파싱 과정은 다음과 같이 나타내어질 수 있다. 여기서, 취소선(문자 및/또는 문장의 가운데를 수평으로 가로지르는 선)이 표시된 부분들은 인덱스 매핑 테이블의 사용과 관련된 부분들로서, 파싱 과정에서 사용되지 않는 부분을 나타낸다.
Figure pct00008
상술된 파싱 과정을 참조하면, 복호화기는 코드 넘버로부터 현재 테이블 인덱스를 도출한 후 현재 테이블 인덱스에 대해 인덱스 매핑 테이블을 적용하므로, 파싱 과정에서 인덱스 매핑 테이블을 사용하지 않을 수 있다.
상술한 도 10 내지 도 13의 실시예에 따른 인트라 예측 모드 부호화/복호화 방법에서는 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블이 사용될 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 17이라 가정할 때, 상기 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블에 대한 소스 코드(source code)의 실시예는 다음과 같이 나타내어질 수 있다.
const UInt g_auiIntraModeTableD17[17]={2, 3, 9, 15, 11, 7, 8, 4, 6, 0, 1, 12, 10, 16, 14, 5, 13};
const UInt g_auiIntraModeTableE17[17]={9, 10, 0, 1, 7, 15, 8, 5, 6, 2, 12, 4, 11, 16, 14, 3, 13};
여기서, g_auiIntraModeTableD17은 인덱스 매핑 테이블, g_auiIntraModeTableE17은 역 인덱스 매핑 테이블을 나타낸다. 각각의 리스트에 포함된 숫자들은 예측 모드의 모드값을 나타낸다.
각 리스트에 포함된 예측 모드들에는 인덱스 매핑 테이블의 인덱스가 할당될 수 있다. 이 때, 리스트 내의 N번째 예측 모드에는 N-1의 인덱스가 할당될 수 있다. 예를 들어, 인덱스 매핑 테이블에서 9는 세 번째 예측 모드이므로, 예측 모드 9에는 인덱스 2가 할당될 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 34라고 가정할 때, 상기 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블에 대한 소스 코드(source code)의 실시예는 다음과 같이 나타내어질 수 있다.
const UInt g_auiIntraModeTableD34[34]={2, 0, 1, 30, 29, 8, 16, 21, 22, 15, 12, 9, 11, 3, 4, 7, 31, 5, 6, 32, 17, 20, 10, 19, 23, 13, 24, 28, 14, 27, 18, 26, 25, 33};
const UInt g_auiIntraModeTableE34[34]={1, 2, 0, 13, 14, 17, 18, 15, 5, 11, 22, 12, 10, 25, 28, 9, 6, 20, 30, 23, 21, 7, 8, 24, 26, 32, 31, 29, 27, 4, 3, 16, 19, 33};
여기서, g_auiIntraModeTableD34는 인덱스 매핑 테이블, g_auiIntraModeTableE34는 역 인덱스 매핑 테이블을 나타낸다. 각각의 리스트에 포함된 숫자들은 예측 모드의 모드값을 나타낸다.
각 리스트에 포함된 예측 모드들에는 인덱스 매핑 테이블의 인덱스가 할당될 수 있다. 이 때, 리스트 내의 N번째 예측 모드에는 N-1의 인덱스가 할당될 수 있다. 예를 들어, 인덱스 매핑 테이블에서 30은 네 번째 예측 모드이므로, 예측 모드 30에는 인덱스 3이 할당될 수 있다.
상술한 도 10 내지 도 13의 실시예에 따른 인트라 예측 모드 부호화/복호화 방법에서는 VLC 테이블도 사용될 수 있다. 일 실시예로 VLC 테이블은 허프만 코드(Huffman Code)를 이용하여 구성될 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 17이고 MPM 후보의 개수가 1 또는 2라고 가정할 때, 상기 VLC 테이블에 대한 소스 코드(source code)의 실시예는 다음과 같이 나타내어질 수 있다.
const UInt huff17_2[2][17]=
{
{1, 7, 5, 13, 12, 9, 8, 6, 5, 4, 3, 2, 0, 15, 14, 3, 2},
{1, 6, 1, 14, 11, 10, 9, 8, 7, 6, 5, 4, 1, 0, 31, 30, 0},
};
const UInt lengthHuff17_2[2][17]=
{
{1, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6},
{1, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 0},
};
각 huff17_2 및 lengthHuff17_2 내에서 상단의 리스트는 MPM 후보의 개수가 1일 때 사용될 수 있고, 하단의 리스트는 MPM 후보의 개수가 2일 때 사용될 수 있다.
각 huff17_2 및 lengthHuff17_2 내의 각 리스트에서 첫 번째 컴포넌트(component)는 MPM 플래그를 나타내기 위한 컴포넌트일 수 있다. 여기서, MPM 플래그는 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하는지 여부를 지시하는 플래그일 수 있으며, 예를 들어 prev_intra_luma_pred_flag일 수 있다. 상기 MPM 플래그 값이 1일 때에는 리메이닝 모드에 관한 정보가 전송되지 않을 수 있다.
각 huff17_2 및 lengthHuff17_2 내의 각 리스트에서 두 번째부터 마지막까지의 컴포넌트들은 MPM 플래그 값이 0임을 나타낼 수 있고, 전송되는 코드 넘버가 어떤 값을 갖는지를 나타낼 수 있다. 여기서, 코드 넘버에는 현재 예측 유닛의 리메이닝 모드가 반영될 수 있으므로, 리메이닝 모드(remaining mode)의 랭크(rank)로도 불릴 수 있다.
구체적으로, huff17_2 내의 컴포넌트들은 허프만 2진수가 10진수로 표현된 값을 나타내고, lengthHuff17_2 내의 컴포넌트들은 허프만 2진수의 길이를 나타낼 수 있다. 이 때, 허프만 2진수의 길이는 MPM 플래그를 나타내기 위한 비트(1비트)를 포함한 길이를 나타낼 수 있다. 또한 현재 코드 넘버가 N인 경우, 부호화기 및/또는 복호화기는 huff17_2 및 lengthHuff17_2 내의 각 리스트에서 N+2번째 컴포넌트를 참조할 수 있다. 이는 리스트 내의 첫 번째 컴포넌트들은 MPM 플래그를 나타내기 위한 컴포넌트이고, 두 번째 컴포넌트들은 코드 넘버가 0인 경우를 나타내기 위한 컴포넌트이기 때문이다.
예를 들어, MPM후보의 개수가 1개이고, 상기 소스 코드에서 코드 넘버가 1인 경우, 부호화기 및/또는 복호화기는 huff17_2 및 lengthHuff17_2 내의 상단 리스트에서 3번째 컴포넌트를 참조할 수 있다. huff17_2에서 3번째 컴포넌트는 5이고 lengthHuff17_2에서 3번째 컴포넌트는 4이므로, 코드 넘버 1에 대응되는 코드워드는 '0101'일 수 있다. 이 때, 첫 번째 비트에 위치한 '0'은 MPM 플래그를 나타내고, 나머지 세 개의 비트에 위치한 '101'은 코드 넘버, 즉 리메이닝 모드의 랭크를 나타낼 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 34이고 MPM 후보의 개수가 1 또는 2라고 가정할 때, 상기 VLC 테이블에 대한 소스 코드의 실시예는 다음과 같이 나타내어질 수 있다.
const UInt huff34_2[2][34]=
{
{1, 7, 0, 12, 8, 4, 27, 26, 19, 15, 13, 11, 10, 7, 5, 4, 47, 46, 45, 44, 43, 41, 40, 37, 36, 29, 25, 24, 13, 12, 85, 84, 57, 56 },
{1, 0, 4, 13, 4, 28, 24, 22, 15, 13, 11, 10, 63, 62, 60, 59, 58, 51, 47, 46, 43, 42, 41, 40, 28, 25, 24, 123, 122, 101, 100, 59, 58, 0 }
};
const UInt lengthHuff34_2[2][34]=
{
{1, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8 },
{1, 3, 4, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 0 }
};
여기서, huff34_2 내의 컴포넌트들은 허프만 2진수가 10진수로 표현된 값을 나타내고, lengthHuff34_2 내의 컴포넌트들은 허프만 2진수의 길이를 나타낼 수 있다. 상기 코드를 통해 코드워드와 코드 넘버를 매핑시키는 방법은 상술한 방법과 동일하다.
도 5의 실시예에서 상술한 바와 같이, 부호화기 및 복호화기는 고정된 개수의 MPM 후보를 사용할 수도 있다. 현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 18이고 MPM 후보의 개수는 항상 2로 고정된다고 가정할 때, 상기 VLC 테이블에 대한 소스 코드의 실시예는 다음과 같이 나타내어질 수 있다.
const UInt huff17_2[18] = { 1, 7, 4, 1, 12, 10, 7, 6, 5, 4, 1, 0, 26, 23, 22, 55, 54, 0 };
const UInt lengthHuff17_2[18] = { 1, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 0 };
여기서, MPM 후보의 개수는 항상 2로 고정되므로, huff17_2 및 lengthHuff17_2는 각각 하나의 리스트만을 가질 수 있다. 상기 코드를 통해 코드워드와 코드 넘버를 매핑시키는 방법은 상술한 방법과 동일하다.
예를 들어, 상기 소스 코드에서 코드 넘버가 1인 경우, 부호화기 및/또는 복호화기는 huff17_2 및 lengthHuff17_2 내의 리스트에서 3번째 컴포넌트를 참조할 수 있다. huff17_2에서 3번째 컴포넌트, 즉 huff17_2[2]는 4이고 lengthHuff17_2에서 3번째 컴포넌트, 즉 lengthHuff17_2[2]는 4이므로, 코드 넘버 1에 대응되는 코드워드는 '0100'일 수 있다. 이 때, 첫 번째 비트에 위치한 '0'은 MPM 플래그를 나타내고, 나머지 세 개의 비트에 위치한 '100'은 코드 넘버, 즉 리메이닝 모드의 랭크를 나타낼 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 35이고 MPM 후보의 개수는 항상 2로 고정된다고 가정할 때, 상기 VLC 테이블에 대한 소스 코드의 실시예는 다음과 같이 나타내어질 수 있다.
const UInt huff34_2[35] = { 1, 1, 4, 0, 12, 3, 28, 21, 5, 4, 63, 60, 58, 53, 47, 46, 45, 41, 40, 125, 124, 123, 119, 118, 111, 110, 109, 108, 105, 104, 89, 88, 245, 244, 0 };
const UInt lengthHuff34_2[35] = { 1, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 0 };
여기서, MPM 후보의 개수는 항상 2로 고정되므로, huff17_2 및 lengthHuff17_2는 각각 하나의 리스트만을 가질 수 있다. 상기 코드를 통해 코드워드와 코드 넘버를 매핑시키는 방법은 상술한 방법과 동일하다.
상술한 도 10의 실시예에서는 현재 예측 유닛의 실제 예측 모드에 직접 역 인덱스 매핑 테이블이 적용될 수 있고, 도 12의 실시예에서는 현재 테이블 인덱스에 인덱스 매핑 테이블이 적용되면 직접 현재 예측 유닛의 실제 예측 모드가 얻어질 수 있다. 따라서 상술한 도 10 내지 도 13의 실시예에서 매핑 테이블은 현재 예측 유닛의 실제 예측 모드에 따라 업데이트될 수 있다. 따라서 상기 매핑 테이블은 리메이닝 모드가 아닌 실제 인트라 예측 모드의 분포를 반영할 수 있다. 상기 방법을 통해, 부호화기 및 복호화기는 현재 컨텐츠(contents)의 특성을 직접적으로 반영하여 더 효율적으로 코드워드를 할당할 수 있고, 부호화기에서 복호화기로 전송되는 비트량이 감소될 수 있다.
도 8 및 도 9의 실시예에서는 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블의 엔트리(entry) 개수가 현재 예측 유닛이 가질 수 있는 리메이닝 모드의 개수와 동일하다. 따라서 이 경우, MPM의 개수에 따라 서로 다른 매핑 테이블이 사용되어야 한다.
그러나, 도 10 내지 도 13의 실시예에서 인덱스 매핑 테이블 및 역 인덱스 매핑 테이블의 엔트리(entry) 개수는 현재 예측 유닛이 가질 수 있는 실제 예측 모드의 개수와 동일하다. 현재 예측 유닛이 가질 수 있는 실제 예측 모드의 개수는 MPM의 개수에 관계 없이 일정하므로, 부호화기 및 복호화기는 MPM의 개수에 따라 서로 다른 매핑 테이블을 사용할 필요가 없다. 따라서 메모리가 절약될 수 있고 컨텐츠의 특성이 매핑 테이블에 더 빠르게 반영될 수 있어, 결과적으로 부호화기에서 복호화기로 전송되는 비트량이 감소될 수 있다. 다만, 도 12의 실시예에서 상술한 바와 같이, 복호화기는 MPM의 인덱스 값을 도출하기 위해 별개의 역 인덱스 매핑 테이블을 사용할 수도 있다.
다음 표 1은 인트라 예측 모드의 복호화 방법에 따라 복호화기에서 필요한 매핑 테이블의 개수 및 각 매핑 테이블의 엔트리 개수를 개략적으로 나타내는 실시예이다. 표 1에서 MPM 후보의 수는 1개 또는 2개일 수 있다고 가정하며, 현재 예측 유닛이 가질 수 있는 예측 모드의 개수는 17개 또는 34개라고 가정한다. 현재 예측 유닛이 가질 수 있는 예측 모드의 개수는 아래의 실시예에 한정되는 것은 아니며 구현 및 필요에 따라 달라질 수 있다. 예를 들어, 예측 모드의 개수는 17 대신 18, 34 대신 35일 수도 있다. 이 경우에는 다음 표 1에서 각 매핑 테이블의 엔트리 개수도 달라질 수 있다.
Figure pct00009
표 1을 참조하면, 현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 17개일 때 도 9의 실시예에 따른 인트라 예측 모드 복호화 방법에서는 두 개의 인덱스 매핑 테이블이 필요할 수 있다. 이 때, 두 개의 인덱스 매핑 테이블 중 하나는 15개의 엔트리를 가지고, 다른 하나는 16개의 엔트리를 가질 수 있다. 또한 현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 34개일 때에도 도 9의 실시예에 따른 인트라 예측 모드 복호화 방법에서는 두 개의 인덱스 매핑 테이블이 필요할 수 있다. 이 때, 두 개의 인덱스 매핑 테이블 중 하나는 32개의 엔트리를 가지고, 다른 하나는 33개의 엔트리를 가질 수 있다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 17개일 때, 도 12의 실시예에 따른 인트라 예측 모드 복호화 방법에서는 한 개의 인덱스 매핑 테이블 및 한 개의 역 인덱스 매핑 테이블이 필요할 수 있다. 이 때, 매핑 테이블들은 각각 17개의 엔트리를 가질 수 있다. 현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 17개일 때, 도 12의 실시예에 따른 인트라 예측 모드 복호화 방법에서는 17개의 엔트리를 가진 한 개의 인덱스 매핑 테이블만이 필요할 수도 있다. 복호화기는 별개의 역 인덱스 매핑 테이블을 사용하지 않고 MPM의 인덱스 값을 도출할 수 있기 때문이다.
현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 34개일 때, 도 12의 실시예에 따른 인트라 예측 모드 복호화 방법에서는 한 개의 인덱스 매핑 테이블 및 한 개의 역 인덱스 매핑 테이블이 필요할 수 있다. 이 때, 매핑 테이블들은 각각 34개의 엔트리를 가질 수 있다. 현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 34개일 때, 도 12의 실시예에 따른 인트라 예측 모드 복호화 방법에서는 34개의 엔트리를 가진 한 개의 인덱스 매핑 테이블만이 필요할 수도 있다. 복호화기는 별개의 역 인덱스 매핑 테이블을 사용하지 않고 MPM의 인덱스 값을 도출할 수 있기 때문이다.
한편, 도 5의 실시예에서 상술한 바와 같이, 부호화기 및 복호화기는 고정된 개수의 MPM 후보를 사용할 수도 있다. MPM 후보의 개수가 고정되면, 리메이닝 모드의 개수도 고정될 수 있다. 이 경우에는 현재 예측 유닛이 가질 수 있는 예측 모드의 개수가 17개, 34개인 각각의 경우에 대해, 상술한 도 9의 실시예에 따른 인트라 예측 모드 복호화 방법에서도 한 개의 인덱스 매핑 테이블만이 사용될 수 있다.
상술한 도 10 내지 도 13의 실시예에서 MPM 후보들 중 현재 예측 유닛과 동일한 예측 모드를 갖는 후보가 존재하는 경우, 즉 MPM 후보들 중 하나가 현재 예측 모드로 선택되는 예측 유닛에 대해서는 리메이닝 모드가 복호화기로 전송되지 않을 수 있다. 그러나, 도 10 내지 도 13의 실시예에서 사용되는 매핑 테이블은 리메이닝 모드가 아닌 현재 예측 유닛의 실제 예측 모드에 기반하므로, MPM 후보들 중 하나가 현재 예측 모드로 선택되는 경우, 즉 리메이닝 모드가 전송되지 않는 경우에도 업데이트될 수 있다. 따라서, 부호화기 및 복호화기는 인트라 예측 모드의 분포가 더 빠르게 매핑 테이블에 반영되도록 할 수 있다.
상술한 도 10 내지 도 13의 실시예에서 코드 넘버 값의 분포는 MPM 후보 리스트에 DC 모드가 포함되어 있는지 여부에 따라 달라질 수 있다. MPM 후보 리스트에 DC 모드가 포함되는 경우 DC 모드나 플래너(Planar) 모드의 발생 빈도가 높아질 수 있다. 따라서 이러한 경우, MPM 후보들을 제외한 리메이닝 모드를 반영하는 코드 넘버 값들은, MPM 후보 리스트에 DC 모드가 포함되지 않는 경우에 비해, 더 고르게 분포될 수 있다. 즉, MPM 후보 리스트에 DC 모드가 포함되는 경우에는, 그렇지 않은 경우에 비해, 작은 코드 넘버의 발생 빈도가 상대적으로 낮아질 수 있다.
따라서, MPM 후보 리스트에 DC 모드가 포함되는 경우에는 코드 넘버의 이진화 방법이 다르게 적용됨으로써 부호화 효율이 향상될 수 있다. 일 실시예로, MPM 후보 리스트에 DC 모드가 포함된 경우에는 그렇지 않은 경우에 비해, 작은 코드 넘버에 상대적으로 더 많은 수의 비트(bit)가 할당되도록 코드워드가 정해질 수 있다.
도 14는 본 발명의 실시예에 따른 인트라 예측 모드 부호화 방법을 개략적으로 나타내는 흐름도이다.
도 14를 참조하면, 부호화기는 현재 예측 유닛의 예측 모드로부터 현재 테이블 인덱스를 획득한다(S1410). 부호화기는 현재 예측 유닛의 예측 모드에 직접 역 인덱스 매핑 테이블을 적용하여 현재 예측 모드에 대한 현재 테이블 인덱스를 생성할 수 있다. 여기서, 역 인덱스 매핑 테이블의 엔트리 개수는 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일할 수 있다. 인트라 예측 모드 부호화에 사용되는 역 인덱스 매핑 테이블의 실시예는 상술한 바 있다.
부호화기는 현재 테이블 인덱스로부터 코드 넘버를 도출한다(S1420). 부호화기는 현재 테이블 인덱스 정보 및 MPM 후보의 인덱스 정보로부터 코드 넘버를 도출할 수 있다. 상기 현재 테이블 인덱스 정보에는 현재 테이블 인덱스의 값 등이 있을 수 있고, MPM 후보의 인덱스 정보에는 MPM 후보의 개수 및 MPM 후보의 인덱스의 값 등이 있을 수 있다. 상기 코드 넘버는 코드워드 인덱스로도 불릴 수 있다. 현재 테이블 인덱스에서 코드 넘버로의 변환(conversion) 과정의 구체적인 실시예들은 도 10 및 도 11의 실시예에서 상술된 바와 같을 수 있다.
부호화기는 VLC 테이블을 이용하여 코드 넘버를 코드워드로 변환(convert)할 수 있고, 상기 코드워드는 복호화기로 전송될 수 있다(S1430). 인트라 예측 모드 부호화에 사용되는 VLC 테이블의 실시예는 상술한 바 있다.
도 15는 본 발명의 실시예에 따른 인트라 예측 모드 복호화 방법을 개략적으로 나타내는 흐름도이다.
도 15를 참조하면, 복호화기는 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드를 코드 넘버로 변환(convert)할 수 있다(S1510). 상기 코드 넘버는 코드워드 인덱스로도 불릴 수 있다.
복호화기는 상기 코드 넘버로부터 현재 테이블 인덱스를 도출한다(S1520). 복호화기는 상기 코드 넘버 및 MPM 후보의 인덱스 정보를 이용하여 현재 테이블 인덱스를 생성할 수 있다. MPM 후보의 인덱스 정보에는 MPM 후보의 개수 및 MPM 후보의 인덱스의 값 등이 있을 수 있다. 복호화기는 MPM 후보의 인덱스를 도출하기 위해 역 인덱스 매핑 테이블을 사용할 수도 있다. 상기 코드 넘버에서 현재 테이블 인덱스로의 변환(conversion) 과정의 구체적인 실시예들은 도 12 및 도 13에서 상술된 바와 같을 수 있다.
복호화기는 상기 현재 테이블 인덱스로부터 현재 예측 유닛에 대한 인트라 예측 모드를 획득한다(S1530). 복호화기는 상기 현재 테이블 인덱스에 인덱스 매핑 테이블을 적용함으로써 현재 예측 모드를 도출할 수 있다. 여기서 인덱스 매핑 테이블은 코드 넘버에 직접 적용되지 않을 수 있고, MPM 후보의 인덱스 정보를 이용하여 생성된 현재 테이블 인덱스에 적용될 수 있다. 여기서, 인덱스 매핑 테이블의 엔트리 개수는 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일할 수 있다. 인트라 예측 모드 부호화에 사용되는 인덱스 매핑 테이블의 실시예는 상술한 바 있다.
도 1 및 도 3의 실시예에서 상술한 바와 같이, 부호화기 및 복호화기는 엔트로피 부호화/복호화를 위해 CAVLC 뿐만 아니라 CABAC을 이용할 수도 있다. CABAC 엔트로피 부호화 방법에서, 부호화기는 심볼을 이진화하여 빈(bin)으로 변환하고, 빈의 발생 확률에 따라 빈에 대한 산술 부호화를 수행하여 비트스트림을 생성할 수 있다. 이 때, 복호화기도 이에 대응하여 CABAC을 이용한 엔트로피 복호화를 수행할 수 있다.
상술한 도 10 내지 도 16의 실시예에 따른 인트라 예측 모드 부호화/복호화 방법은 CAVLC를 이용하여 엔트로피 부호화/복호화를 수행하는 경우뿐만 아니라 CABAC을 이용하여 엔트로피 부호화/복호화를 수행하는 경우에도 동일한 방식으로 적용될 수 있다. 이 때, 부호화기 및 복호화기는 도 10 내지 도 16의 실시예에서 상술한 매핑 테이블과 동일한 형태의 매핑 테이블을 이용하여 CABAC 엔트로피 부호화/복호화를 수행할 수 있으며, 상기 매핑 테이블은 리메이닝 모드가 아닌 실제 인트라 예측 모드의 분포를 반영할 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능합을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.

Claims (17)

  1. 인트라(intra) 모드에서 현재 블록에 대한 예측을 수행하는 영상 복호화 방법으로서,
    코드 넘버(code number) 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스(current table index)를 생성하는 단계; 및
    상기 현재 테이블 인덱스에 인덱스 매핑 테이블(index mapping table)을 적용하여 현재 예측 모드를 도출하는 단계를 포함하고,
    상기 MPM 인덱스 정보는 MPM 후보(MPM candidate)의 개수 및 상기 MPM 후보의 인덱스의 값을 포함하고, 상기 MPM 후보의 인덱스는 상기 인덱스 매핑 테이블에서 상기 MPM 후보에 할당되는 인덱스이고, 상기 현재 예측 모드는 현재 예측 유닛의 인트라 예측 모드이고, 상기 현재 테이블 인덱스는 상기 인덱스 매핑 테이블에서 상기 현재 예측 모드에 할당되는 인덱스인 영상 복호화 방법.
  2. 청구항 1에 있어서, 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드(codeword)를 상기 코드 넘버로 변환(convert)하는 단계를 추가로 포함하는 영상 복호화 방법.
  3. 청구항 1에 있어서, 상기 인덱스 매핑 테이블 내 엔트리(entry)의 개수는 상기 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일한 영상 복호화 방법.
  4. 청구항 1에 있어서, 상기 MPM 후보의 인덱스 값은 상기 MPM 후보의 모드값에 역 인덱스 매핑 테이블(inverse index mapping table)을 적용함으로써 도출되는 영상 복호화 방법.
  5. 청구항 1에 있어서, 상기 MPM 후보의 개수는 소정의 고정된 값인 영상 복호화 방법.
  6. 청구항 5에 있어서, 상기 소정의 고정된 값은 2, 3 또는 4인 영상 복호화 방법.
  7. 청구항 1에 있어서, 상기 현재 테이블 인덱스의 발생 빈도에 기초하여 상기 인덱스 매핑 테이블을 업데이트하는 단계를 추가로 포함하는 영상 복호화 방법.
  8. 청구항 7에 있어서, 상기 인덱스 매핑 테이블은, 상기 MPM 후보 중 하나가 인트라 예측 모드로 선택되는 예측 유닛에 대해서도 업데이트되는 영상 복호화 방법.
  9. 코드 넘버(code number) 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스(current table index)를 생성하고, 상기 현재 테이블 인덱스에 인덱스 매핑 테이블(index mapping table)을 적용하여 현재 예측 모드를 도출하는 엔트로피 복호화부; 및
    상기 도출된 현재 예측 모드를 이용하여 현재 블록에 대한 인트라 예측을 수행하는 예측부를 포함하고,
    상기 MPM 인덱스 정보는 MPM 후보(MPM candidate)의 개수 및 상기 MPM 후보의 인덱스의 값을 포함하고, 상기 MPM 후보의 인덱스는 상기 인덱스 매핑 테이블에서 상기 MPM 후보에 할당되는 인덱스이고, 상기 현재 예측 모드는 상기 현재 예측 유닛의 인트라 예측 모드이고, 상기 현재 테이블 인덱스는 상기 인덱스 매핑 테이블에서 상기 현재 예측 모드에 할당되는 인덱스인 영상 복호화 장치.
  10. 인트라 예측 모드 정보를 엔트로피 복호화하기 위한 인트라 예측 모드 복호화 방법으로서,
    코드 넘버(code number) 및 MPM 인덱스 정보를 이용하여 현재 테이블 인덱스(current table index)를 생성하는 단계; 및
    상기 현재 테이블 인덱스에 인덱스 매핑 테이블(index mapping table)을 적용하여 현재 예측 모드를 도출하는 단계를 포함하고,
    상기 MPM 인덱스 정보는 MPM 후보(MPM candidate)의 개수 및 상기 MPM 후보의 인덱스의 값을 포함하고, 상기 MPM 후보의 인덱스는 상기 인덱스 매핑 테이블에서 상기 MPM 후보에 할당되는 인덱스이고, 상기 현재 예측 모드는 현재 예측 유닛의 인트라 예측 모드이고, 상기 현재 테이블 인덱스는 상기 인덱스 매핑 테이블에서 상기 현재 예측 모드에 할당되는 인덱스인 인트라 예측 모드 복호화 방법.
  11. 청구항 10에 있어서, 역 VLC 테이블을 이용하여 부호화기로부터 수신한 코드워드(codeword)를 상기 코드 넘버로 변환(convert)하는 단계를 추가로 포함하는 인트라 예측 모드 복호화 방법.
  12. 청구항 10에 있어서, 상기 인덱스 매핑 테이블 내 엔트리(entry)의 개수는 상기 현재 예측 유닛이 가질 수 있는 인트라 예측 모드의 개수와 동일한 인트라 예측 모드 복호화 방법.
  13. 청구항 10에 있어서, 상기 MPM 후보의 인덱스 값은 상기 MPM 후보의 모드값에 역 인덱스 매핑 테이블(inverse index mapping table)을 적용함으로써 도출되는 인트라 예측 모드 복호화 방법.
  14. 청구항 10에 있어서, 상기 MPM 후보의 개수는 소정의 고정된 값인 인트라 예측 모드 복호화 방법.
  15. 청구항 14에 있어서, 상기 소정의 고정된 값은 2, 3 또는 4인 인트라 예측 모드 복호화 방법.
  16. 청구항 10에 있어서, 상기 현재 테이블 인덱스의 발생 빈도에 기초하여 상기 인덱스 매핑 테이블을 업데이트하는 단계를 추가로 포함하는 인트라 예측 모드 복호화 방법.
  17. 청구항 16에 있어서, 상기 인덱스 매핑 테이블은, 상기 MPM 후보 중 하나가 인트라 예측 모드로 선택되는 예측 유닛에 대해서도 업데이트되는 인트라 예측 모드 복호화 방법.
KR1020137033462A 2011-06-17 2011-12-05 인트라 예측 모드 부호화/복호화 방법 및 장치 KR101876173B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161497955P 2011-06-17 2011-06-17
US61/497,955 2011-06-17
US201161504235P 2011-07-03 2011-07-03
US61/504,235 2011-07-03
US201161506158P 2011-07-10 2011-07-10
US61/506,158 2011-07-10
US201161510034P 2011-07-20 2011-07-20
US61/510,034 2011-07-20
PCT/KR2011/009358 WO2012173315A1 (ko) 2011-06-17 2011-12-05 인트라 예측 모드 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140037130A true KR20140037130A (ko) 2014-03-26
KR101876173B1 KR101876173B1 (ko) 2018-07-09

Family

ID=47357283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033462A KR101876173B1 (ko) 2011-06-17 2011-12-05 인트라 예측 모드 부호화/복호화 방법 및 장치

Country Status (3)

Country Link
US (1) US9762900B2 (ko)
KR (1) KR101876173B1 (ko)
WO (1) WO2012173315A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018124843A1 (ko) * 2017-01-02 2018-07-05 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012092763A1 (en) * 2011-01-07 2012-07-12 Mediatek Singapore Pte. Ltd. Method and apparatus of improved intra luma prediction mode coding
JP5781313B2 (ja) * 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
CN105245894B (zh) * 2011-06-17 2017-08-08 Jvc建伍株式会社 图像解码装置、图像解码方法及接收装置、接收方法
US9282338B2 (en) 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
US9955169B2 (en) * 2012-01-30 2018-04-24 Electronics And Telecommunications Research Institute Intra prediction mode encoding/decoding method and apparatus
WO2013115568A1 (ko) 2012-01-30 2013-08-08 한국전자통신연구원 인트라 예측 모드 부호화/복호화 방법 및 장치
US11463689B2 (en) 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US10841593B2 (en) 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
US20160373742A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
CA2997097C (en) 2015-08-28 2022-06-07 Kt Corporation Method and device for processing video signal
WO2017086746A1 (ko) * 2015-11-19 2017-05-26 한국전자통신연구원 화면내 예측 모드 부호화/복호화 방법 및 장치
CN109314790A (zh) * 2016-05-23 2019-02-05 佳稳电子有限公司 影像处理方法、利用其的影像解码及编码方法
CN114422796A (zh) * 2016-06-24 2022-04-29 韩国电子通信研究院 用于基于变换的图像编码/解码的方法和设备
KR20180007680A (ko) * 2016-07-13 2018-01-23 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
CN117201807A (zh) * 2016-08-01 2023-12-08 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
US9673836B1 (en) * 2016-09-23 2017-06-06 International Business Machines Corporation System level testing of entropy encoding
US10958903B2 (en) * 2016-10-04 2021-03-23 Electronics And Telecommunications Research Institute Method and apparatus for encoding/decoding image and recording medium storing bit stream
CN110546957A (zh) * 2017-06-22 2019-12-06 华为技术有限公司 一种帧内预测的方法及装置
EP3643061A1 (en) 2017-07-05 2020-04-29 Huawei Technologies Co. Ltd. Devices and methods for video coding
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
JP7137008B2 (ja) 2018-06-29 2022-09-13 北京字節跳動網絡技術有限公司 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念
CN110662057B (zh) 2018-06-29 2022-06-21 北京字节跳动网络技术有限公司 视频处理方法、装置、设备以及存储比特流的方法
KR102611261B1 (ko) 2018-06-29 2023-12-08 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 업데이트 대상 lut 또는 비업데이트 lut의 구별
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
KR20240005239A (ko) * 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
BR112020024142A2 (pt) 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
US11277644B2 (en) 2018-07-02 2022-03-15 Qualcomm Incorporated Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching
WO2020008350A1 (en) * 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
US11509890B2 (en) 2018-07-24 2022-11-22 Hfi Innovation Inc. Methods and apparatus for entropy coding and decoding aspects of video data
TW202025760A (zh) 2018-09-12 2020-07-01 大陸商北京字節跳動網絡技術有限公司 要檢查多少個hmvp候選
US11303885B2 (en) 2018-10-25 2022-04-12 Qualcomm Incorporated Wide-angle intra prediction smoothing and interpolation
WO2020143741A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Invoke of lut updating
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
WO2020251328A1 (ko) * 2019-06-13 2020-12-17 엘지전자 주식회사 인트라 예측 모드 변환에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021032113A1 (en) * 2019-08-19 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Updating for counter-based intra prediction mode
EP4054195A4 (en) * 2019-10-29 2023-09-06 LG Electronics Inc. TRANSFORM-BASED IMAGE CODING METHOD AND ASSOCIATED DEVICE
WO2023200907A1 (en) * 2022-04-14 2023-10-19 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partitioning mode with adaptive blending

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2823943A1 (fr) * 2001-04-24 2002-10-25 Koninkl Philips Electronics Nv Procede de detection de bruit dans un flux de donnees video codees
US7289674B2 (en) * 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
KR100924048B1 (ko) * 2007-07-30 2009-10-27 한국과학기술원 비디오 부호화에서 화면내 방향성 예측모드 고속 결정방법
KR101507344B1 (ko) * 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
US20110317757A1 (en) * 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
CN107257465B (zh) * 2010-12-08 2020-08-04 Lg 电子株式会社 由编码装置和解码装置执行的内预测方法及可读存储介质
KR20120070479A (ko) * 2010-12-21 2012-06-29 한국전자통신연구원 화면 내 예측 방향 정보 부호화/복호화 방법 및 그 장치
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018124843A1 (ko) * 2017-01-02 2018-07-05 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11184609B2 (en) 2017-01-02 2021-11-23 Electronics And Telecommunications Research Institute Image encoding/decoding method, apparatus, and recording medium for storing bitstream
US11689716B2 (en) 2017-01-02 2023-06-27 Lx Semicon Co., Ltd Image encoding/decoding method, apparatus, and recording medium for storing bitstream

Also Published As

Publication number Publication date
WO2012173315A1 (ko) 2012-12-20
US9762900B2 (en) 2017-09-12
US20140126629A1 (en) 2014-05-08
KR101876173B1 (ko) 2018-07-09

Similar Documents

Publication Publication Date Title
KR101876173B1 (ko) 인트라 예측 모드 부호화/복호화 방법 및 장치
KR101503611B1 (ko) 영상 부호화 및 복호화 방법과 이를 이용한 장치
CA2860804C (en) Throughput improvement for cabac coefficient level coding
CA2913797C (en) Rice parameter initialization for coefficient level coding in video coding process
KR102271872B1 (ko) 인트라 예측 방법 및 장치
KR102143605B1 (ko) 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
KR102149965B1 (ko) 인트라 예측 방법 및 그 장치
US20130195199A1 (en) Residual quad tree (rqt) coding for video coding
JP2015516767A (ja) 係数走査のための係数グループおよび係数コーディング
KR102171380B1 (ko) 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20140018873A (ko) 영상 정보 부호화 방법 및 복호화 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant