KR20130049523A - 인트라 예측 블록 생성 장치 - Google Patents

인트라 예측 블록 생성 장치 Download PDF

Info

Publication number
KR20130049523A
KR20130049523A KR20110114607A KR20110114607A KR20130049523A KR 20130049523 A KR20130049523 A KR 20130049523A KR 20110114607 A KR20110114607 A KR 20110114607A KR 20110114607 A KR20110114607 A KR 20110114607A KR 20130049523 A KR20130049523 A KR 20130049523A
Authority
KR
South Korea
Prior art keywords
intra prediction
mode
block
modes
prediction mode
Prior art date
Application number
KR20110114607A
Other languages
English (en)
Inventor
장민
Original Assignee
오수미
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48191357&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20130049523(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 오수미 filed Critical 오수미
Priority to KR20110114607A priority Critical patent/KR20130049523A/ko
Priority to BR122020014038-0A priority patent/BR122020014038B1/pt
Priority to MX2015015826A priority patent/MX340480B/es
Priority to CA2989193A priority patent/CA2989193C/en
Priority to JP2014539230A priority patent/JP5841264B2/ja
Priority to SG11201401926RA priority patent/SG11201401926RA/en
Priority to PCT/CN2012/083978 priority patent/WO2013064095A1/en
Priority to SG10201600413TA priority patent/SG10201600413TA/en
Priority to KR1020147010215A priority patent/KR20140066240A/ko
Priority to SG10201600418XA priority patent/SG10201600418XA/en
Priority to EP21156631.0A priority patent/EP3843401A1/en
Priority to CA3085029A priority patent/CA3085029C/en
Priority to BR122020014036-4A priority patent/BR122020014036B1/pt
Priority to SG10201600414RA priority patent/SG10201600414RA/en
Priority to SG10202001287TA priority patent/SG10202001287TA/en
Priority to KR1020147010214A priority patent/KR20140066239A/ko
Priority to EP12845200.0A priority patent/EP2774377A4/en
Priority to TW106145413A priority patent/TWI645708B/zh
Priority to EP21156612.0A priority patent/EP3843393A1/en
Priority to TW112115445A priority patent/TW202333500A/zh
Priority to CA2853706A priority patent/CA2853706C/en
Priority to EP18181699.2A priority patent/EP3402191B8/en
Priority to HUE18181699A priority patent/HUE048753T2/hu
Priority to TW109115848A priority patent/TWI742656B/zh
Priority to SG10202002042VA priority patent/SG10202002042VA/en
Priority to SG10201600412WA priority patent/SG10201600412WA/en
Priority to US14/353,891 priority patent/US9264723B2/en
Priority to SG10202002041XA priority patent/SG10202002041XA/en
Priority to MX2016009075A priority patent/MX345037B/es
Priority to SG10202001375VA priority patent/SG10202001375VA/en
Priority to KR20147010213A priority patent/KR20140071438A/ko
Priority to MX2015015820A priority patent/MX339983B/es
Priority to BR122020014035-6A priority patent/BR122020014035B1/pt
Priority to ES18181699T priority patent/ES2784007T3/es
Priority to TW107139881A priority patent/TWI696380B/zh
Priority to KR20147010216A priority patent/KR20140074350A/ko
Priority to CA3217419A priority patent/CA3217419A1/en
Priority to KR1020147010207A priority patent/KR101472974B1/ko
Priority to EP21156609.6A priority patent/EP3843392A1/en
Priority to TW105143712A priority patent/TWI615016B/zh
Priority to EP21156479.4A priority patent/EP3843400A1/en
Priority to BR112014010639-8A priority patent/BR112014010639B1/pt
Priority to TW101140895A priority patent/TWI572189B/zh
Priority to BR122020014037-2A priority patent/BR122020014037B1/pt
Priority to PL18181699T priority patent/PL3402191T3/pl
Priority to MX2014005327A priority patent/MX2014005327A/es
Priority to TW110132475A priority patent/TWI803958B/zh
Priority to MX2015015821A priority patent/MX340478B/es
Priority to MX2015015824A priority patent/MX340479B/es
Priority to CN201810073355.1A priority patent/CN108347614B/zh
Priority to CN201810073418.3A priority patent/CN108184119B/zh
Priority to CN201210436688.9A priority patent/CN103096070B/zh
Priority to CN201810073432.3A priority patent/CN108184120B/zh
Priority to CN201810073988.2A priority patent/CN108259906B/zh
Priority to CN201810074625.0A priority patent/CN108366260B/zh
Priority to CN201810074631.6A priority patent/CN108259907B/zh
Priority to CN201810072887.3A priority patent/CN108495133B/zh
Publication of KR20130049523A publication Critical patent/KR20130049523A/ko
Priority to US14/592,809 priority patent/US9204151B2/en
Priority to US14/852,167 priority patent/US9699460B2/en
Priority to US14/852,197 priority patent/US9912950B2/en
Priority to US14/852,144 priority patent/US9712825B2/en
Priority to US14/852,115 priority patent/US9712824B2/en
Priority to JP2015222051A priority patent/JP6101774B2/ja
Priority to JP2017035017A priority patent/JP6275897B2/ja
Priority to JP2018001995A priority patent/JP6469265B2/ja
Priority to US15/879,994 priority patent/US10313671B2/en
Priority to JP2019004278A priority patent/JP6648315B2/ja
Priority to US16/396,267 priority patent/US10742983B2/en
Priority to JP2020004431A priority patent/JP6906070B2/ja
Priority to US16/926,206 priority patent/US11290719B2/en
Priority to JP2021106230A priority patent/JP7192045B2/ja
Priority to JP2021106229A priority patent/JP7192044B2/ja
Priority to US17/682,914 priority patent/US11825092B2/en
Priority to US18/382,831 priority patent/US20240048706A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Abstract

본 발명에 따른 인트라 예측 모드 부호화 방법은 현재 블록의 인트라 예측 모드를 결정하고, 현재 블록의 MPM 후보자들의 유효성을 검사하여 유효한 MPM 후보자 수를 판단하고, 유효한 MPM 후보자 수가 미리 정해진 수보다 작은 경우, 추가 인트라 예측 모드를 MPM 후보자로 추가한다. 추가시 유효한 MPM 후보자의 방향성에 따라 MPM 후보자가 적응적으로 추가될 수 있다. 또한, 잔여 인트라 예측 모드 부호화시에도 유효한 MPM 후보자의 방향성에 따라 잔여 인트라 예측 모드가 재정렬된다.
따라서, 유효한 MPM 후보자의 방향성에 따라 MPM 후보자를 추가하거나 잔여 인트라 예측 모드를 재정렬하여 현재 블록의 인트라 예측 모드의 부호화 정보가 최소가 되게 하는 효과가 있다.

Description

인트라 예측 블록 생성 장치 {APPARATUS FOR GENERATING INTRA PREDICTION BLOCK}
본 발명은 인트라 예측 블록 생성 장치에 관한 것으로, 보다 상세하게는 현재 블록의 좌측 및 상측의 인트라 예측 모드에 의존하여 현재 블록의 인트라 예측 모드를 복호화하고, 상기 복호된 인트라 예측 모드를 이용하여 예측 블록을 생성하는 장치에 관한 것이다.
MPEG-1, MPEG-2, MPEG-4 H.264/MPEG-4 AVC(Advanced Video coding)와 같은 영상 압축 방식에서는 영상을 부호화하기 위해서 하나의 픽처를 매크로 블록으로 나눈다. 그리고, 인터 예측(inter prediction) 또는 인트라 예측(intra prediction)을 이용해 각각의 매크로 블록을 부호화한다.
이 중에서 인트라 예측은 현재 픽처(picture)의 블록을 부호화하기 위해서 참조 픽처를 참조하는 것이 아니라, 부호화하려는 현재 블록과 공간적으로 인접한 화소값을 이용하여 부호화를 수행한다. 우선, 인접한 화소값을 이용하여 원본 매크로 블록과 비교하여 왜곡이 적은 인트라 예측 모드를 선택한다. 다음으로, 선택된 인트라 예측 모드 및 인접한 화소값을 이용하여 부호화하려는 현재 블록에 대한 예측값을 계산하고, 예측값과 원본 현재 블록의 화소값의 차이를 구한 후 이를 변환부호화, 양자화, 엔트로피 부호화를 통해 부호화한다. 그리고, 예측 모드도 부호화된다.
그러나, 기존의 인트라 예측 모드는 현재 블록이 좌측 및 상측의 인트라 예측 모드의 방향성과 무관하게 잔여 인트라 예측 모드를 부호화하여, 잔여 신호를 부호화하는데 소요되는 비트수를 감소시키지 못하는 문제점이 있다.
본 발명이 이루고자 하는 목적은 인트라 예측 모드 따라 원본 영상과 유사한 색차 예측 블록을 생성하고, 잔차신호를 복호화하여 잔차 블록을 생성하고, 상기 생성된 잔차 블록과 예측 블록을 이용하여 복원블록을 생성하는 방법을 제공하는데 있다.
본 발명에 따른 인트라 예측 모드 부호화 방법은 현재 블록의 인트라 예측 모드를 결정하고, 현재 블록의 MPM 후보자들의 유효성을 검사하여 유효한 MPM 후보자 수를 판단하고, 유효한 MPM 후보자 수가 미리 정해진 수보다 작은 경우, 추가 인트라 예측 모드를 MPM 후보자로 추가하고, 현재 블록의 인트라 예측 모드가 상기 유효한 MPM 후보자 또는 추가 MPM 후보자와 동일한지를 판단하고, 현재 블록의 인트라 예측 모드가 상기 유효한 MPM 후보자 또는 추가 MPM 후보자와 동일한 경우에는 동일함을 나타내는 정보와 상기 후보자들 중 어느 하나를 나타내는 인덱스를 부호화하고, 현재 블록의 인트라 예측 모드가 상기 유효한 MPM 후보자 또는 추가 MPM 후보자와 동일하지 않은 경우에는 동일하지 않음을 나타내는 정보가 상기 MPM 후보자들을 제외한 잔여 인트라 예측 모드들 중 어느 하나와 동일함을 나타내는 인덱스를 부호화하는 것을 특징으로 한다.
본 발명에 따른 인트라 예측 모드 부호화 방법은 현재 블록의 인트라 예측 모드를 결정하고, 현재 블록의 MPM 후보자들의 유효성을 검사하여 유효한 MPM 후보자 수를 판단하고, 유효한 MPM 후보자 수가 미리 정해진 수보다 작은 경우, 추가 인트라 예측 모드를 MPM 후보자로 추가한다. 추가시 유효한 MPM 후보자의 방향성에 따라 MPM 후보자가 적응적으로 추가될 수 있다. 또한, 잔여 인트라 예측 모드 부호화시에도 유효한 MPM 후보자의 방향성에 따라 잔여 인트라 예측 모드가 재정렬된다.
따라서, 유효한 MPM 후보자의 방향성에 따라 MPM 후보자를 추가하거나 잔여 인트라 예측 모드를 재정렬하여 현재 블록의 인트라 예측 모드의 부호화 정보가 최소가 되게 하는 효과가 있다.
도 1은 본 발명에 따른 동영상 부호화 장치를 나타내는 블록도이다.
도 2는 본 발명에 따른 동영상 복호화 장치를 나타내는 블록도이다.
도 3은 본 발명에 따른 인트라 예측 모드 후보자의 위치는 나타내는 도면이다.
도 4는 본 발명에 따른 휘도 방향성 인트라 예측 모드를 나타내는 도면이다.
이하, 본 발명의 여러가지 실시예들을 예시적인 도면을 통해 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
도 1은 본 발명에 따른 동영상 부호화 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명에 따른 동영상 부호화 장치(100)는 픽쳐 분할부(110), 변환부(120), 양자화부(130), 스캐닝부(131), 엔트로피 부호화부(140), 인트라 예측부(150), 인터 예측부(160), 역양자화부(135), 역변환부(125), 후처리부(170), 픽쳐 저장부(180), 감산부(190) 및 가산부(195)를 포함한다.
픽쳐 분할부(110)는 입력되는 비디오 신호를 분석하여 픽쳐를 가장 큰 코딩 유닛마다 소정 크기의 코딩 유닛으로 분할하여 예측 모드를 결정하고, 상기 코딩 유닛별로 색차 블록의 크기를 결정한다. 그리고, 픽쳐 분할부(110)는 부호화할 색차 블록을 예측 모드에 따라 인트라 예측부(150) 또는 인터 예측부(160)로 보낸다. 또한, 픽쳐 분할부(110)는 부호화할 색차 블록을 감산부(190)로 보낸다.
변환부(120)는 입력된 색차 블록의 원본 블록과 인트라 예측부(150) 또는 인터 예측부(160)에서 생성된 예측 블록의 잔차신호인 잔차 블록을 변환한다. 상기 잔차 블록은 코딩 유닛으로 구성된다. 코딩 유닛으로 구성된 잔차 블록은 최적의 변환 단위로 분할되어 변환된다. 예측 모드(intra or inter)에 따라 서로 다른 변환 매트릭스가 결정될 수 있다. 또한, 인트라 예측의 잔차 신호는 인트라 예측 모드에 따라 방향성을 가지므로 인트라 예측 모드에 따라 적응적으로 변환 매트릭스가 결정될 수 있다. 변환 단위는 2개(수평, 수직)의 1차원 변환 매트릭스에 의해 변환될 수 있다. 예를 들어, 인터 예측의 경우에는 미리 결정된 1개의 변환 매트릭스가 결정된다. 반면에, 인트라 예측의 경우, 인트라 예측 모드가 수평인 경우에는 잔차 블록이 수직방향으로의 방향성을 가질 확률이 높아지므로, 수직방향으로는 DCT 기반의 정수 매트릭스를 적용하고, 수평방향으로는 DST 기반 또는 KLT 기반의 정수 매트릭스를 적용한다. 인트라 예측 모드가 수직인 경우에는 수직방향으로는 DST 기반 또는 KLT 기반의 정수 매트릭스를, 수평 방향으로는 DCT 기반의 정수 매트릭스를 적용한다. DC 모드의 경우에는 양방향 모두 DCT 기반 정수 매트릭스를 적용한다. 또한, 인트라 예측의 경우, 변환 단위의 크기에 의존하여 변환 매트릭스가 적응적으로 결정될 수도 있다.
양자화부(130)는 상기 변환 매트릭스에 의해 변환된 잔차 블록의 계수들을 양자화하기 위한 양자화 스텝 사이즈를 코딩 유닛별로 결정한다. 양자화 스텝 사이즈는 미리 정해진 크기 이상의 부호화 단위별로 결정된다. 상기 미리 정해진 크기는 8x8 또는 16x16일 수 있다. 그리고, 결정된 양자화 스텝 사이즈 및 예측 모드에 따라 결정되는 양자화 매트릭스를 이용하여 상기 변환 블록의 계수들을 양자화한다. 양자화부(130)는 현재 부호화 단위의 양자화 스텝 사이즈 예측자로서 현재 부호화 단위에 인접한 부호화 단위의 양자화 스텝 사이즈를 이용한다.
양자화부(130)는 현재 부호화 단위의 좌측 부호화 단위, 상측 부호화 단위, 좌상측 부호화 단위 순서로 검색하여 1개 또는 2개의 유효한 양자화 스텝 사이즈를 이용하여 현재 부호화 단위의 양자화 스텝 사이즈 예측자를 생성한다. 예를 들어, 상기 순서로 검색된 유효한 첫번째 양자화 스텝 사이즈를 양자화 스텝 사이즈 예측자로 결정할 수 있다. 또한, 상기 순서로 검색된 유효한 2개의 양자화 스텝 사이즈의 평균값을 양자화 스텝 사이즈 예측자로 결정할 수도 있고, 1개만이 유효한 경우에는 이를 양자화 스텝 사이즈 예측자로 결정할 수 있다. 상기 양자화 스텝 사이즈 예측자가 결정되면, 현재 부호화 단위의 양자화 스텝 사이즈와 상기 양자화 스텝 사이즈 예측자 사이의 차분값을 엔트로피 부호화부(140)로 전송한다.
한편, 현재 코딩 유닛의 좌측 코딩 유닛, 상측 코딩 유닛, 좌상측 코딩 유닛 모두가 존재하지 않을 가능성이 있다. 반면에 최대 코딩 유닛 내의 부호화 순서 상으로 이전에 존재하는 코딩 유닛이 존재할 수 있다. 따라서, 현재 코딩 유닛에 인접한 코딩 유닛들과 상기 최대 코딩 유닛 내에서는 부호화 순서상 바로 이전의 코딩 유닛이 후보자가 될 수 있다. 이 경우, 1) 현재 코딩 유닛의 좌측 코딩 유닛, 2) 현재 코딩 유닛의 상측 코딩 유닛, 3) 현재 코딩 유닛의 좌상측 코딩 유닛, 4) 부호화 순서상 바로 이전의 코딩 유닛 순서로 우선순위를 둘 수 있다. 상기 순서는 바뀔 수 있고, 상기 좌상측 코딩 유닛은 생략될 수도 있다.
상기 양자화된 변환 블록은 역양자화부(135)와 스캐닝부(131)로 제공된다.
스캐닝부(131)는 양자화된 변환 블록의 계수들을 스캐닝하여 1차원의 양자화 계수들로 변환한다. 양자화 후의 변환 블록의 계수 분포가 인트라 예측 모드에 의존적일 수 있으므로, 스캐닝 방식은 인트라 예측 모드에 따라 결정된다. 또한, 계수 스캐닝 방식은 변환 단위의 크기에 따라 달리 결정될 수도 있다. 상기 스캔 패턴은 방향성 인트라 예측 모드에 따라 달라질 수 있다. 양자화 계수들의 스캔순서는 역방향으로 스캔한다.
상기 양자화된 계수들이 복수개의 서브셋으로 분할된 경우에는 각각의 서브셋 내의 양자화 계수들에 동일한 스캔패턴을 적용한다. 상기 복수개의 서브셋은 하나의 메인 서브셋과 적어도 하나 이상의 잔여 서브셋으로 구성된다. 메인 서브셋은 DC 계수를 포함하는 좌상측에 위치하고, 상기 잔여 서브셋은 메인 서브셋 이외의 영역을 커버한다.
서브셋 간의 스캔패턴은 지그재그 스캔을 적용한다. 스캔 패턴은 메인 서브셋으로부터 순방향으로 잔여 서브셋들로 스캔하는 것이 바람직하나, 그 역방향도 가능하다. 또한, 서브셋 내의 양자화된 계수들의 스캔패턴과 동일하게 서브셋 간의 스캔패턴을 설정할 수도 있다. 이 경우, 서브셋 간의 스캔패턴이 인트라 예측 모드에 따라 결정된다. 한편, 부호기는 상기 변환 유닛내의 0이 아닌 마지막 양자화 계수의 위치를 나타낼 수 있는 정보를 복호기로 전송한다. 각 서브셋 내의 0이 아닌 마지막 양자화 계수의 위치를 나타낼 수 있는 정보도 복호기로 전송한다. 상기 정보는 각각의 서브셋 내의 0이 아닌 마지막 양자화 계수의 위치를 나타내는 정보일 수 있다.
역양자화(135)는 상기 양자화된 양자화 계수를 역양자화한다. 역변환부(125)는 역양자화된 변환 계수를 공간 영역의 잔차 블록으로 복원한다. 가산기는 상기 역변환부에 의해 복원된 잔차블록과 인트라 예측부(150) 또는 인터 예측부(160)로부터의 예측 블록을 합쳐서 복원 블록을 생성한다.
후처리부(170)는 복원된 픽쳐에 발생하는 블록킹 효과의 제거하기 위한 디블록킹 필터링 과정, 화소 단위로 원본 영상과의 차이값을 보완하기 위한 적응적 오프셋 적용 과정 및 코딩 유닛으로 원본 영상과의 차이값을 보완하기 위한 적응적 루프 필터링 과정을 수행한다.
디블록킹 필터링 과정은 미리 정해진 크기 이상의 크기를 갖는 색차 블록 및 변환 단위의 경계에 적용하는 것이 바람직하다. 상기 크기는 8x8일 수 있다. 상기 디블록킹 필터링 과정은 필터링할 경계(boundary)를 결정하는 단계, 상기 경계에 적용할 경계 필터링 강도(bounary filtering strength)를 결정하는 단계, 디블록킹 필터의 적용 여부를 결정하는 단계, 상기 디블록킹 필터를 적용할 것으로 결정된 경우, 상기 경계에 적용할 필터를 선택하는 단계를 포함한다.
상기 디블록킹 필터의 적용 여부는 i) 상기 경계 필터링 강도가 0보다 큰지 여부 및 ii) 상기 필터링할 경계에 인접한 2개의 블록(P 블록, Q블록) 경계 부분에서의 화소값들이 변화 정도를 나타내는 값이 양자화 파라미터에 의해 결정되는 제1 기준값보다 작은지 여부에 의해 결정된다.
상기 필터는 적어도 2개 이상인 것이 바람직하다. 블록 경계에 위치한 2개의 화소들간의 차이값의 절대값이 제2 기준값보다 크거나 같은 경우에는 상대적으로 약한 필터링을 수행하는 필터를 선택한다. 상기 제2 기준값은 상기 양자화 파라미터 및 상기 경계 필터링 강도에 의해 결정된다.
적응적 오프셋 적용 과정은 디블록킹 필터가 적용된 영상내의 화소와 원본 화소간의 차이값(distortion)을 감소시키기 위한 것이다. 픽쳐 또는 슬라이스 단위로 상기 적응적 오프셋 적용 과정을 수행할지 여부를 결정할 수 있다. 픽쳐 또는 슬라이스는 복수개의 오프셋 영역들로 분할될 수 있고, 각 오프셋 영역별로 오프셋 타입이 결정될 수 있다. 오프셋 타입은 미리 정해진 개수(예를 들어, 4개)의 에지 오프셋 타입과 2개의 밴드 오프셋 타입을 포함할 수 있다. 오프셋 타입이 에지 오프셋 타입일 경우에는 각 화소가 속하는 에지 타입을 결정하여, 이에 대응하는 오프셋을 적용한다. 상기 에지 타입은 현재 화소와 인접하는 2개의 화소값의 분포를 기준으로 결정한다.
적응적 루프 필터링 과정은 디블록킹 필터링 과정 또는 적응적 오프셋 적용 과정을 거친 복원된 영상과 원본 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 적응적 루프 필터링은 상기 결정된 ALF는 4x4 크기 또는 8x8 크기의 블록에 포함된 화소 전체에 적용될 수 있다. 적응적 루프 필터의 적용 여부는 코딩 유닛별로 결정될 수 있다. 각 코딩 유닛에 따라 적용될 루프 필터의 크기 및 계수는 달라질 수 있다. 코딩 유닛별 상기 적응적 루프 필터의 적용 여부를 나타내는 정보는 각 슬라이스 헤더에 포함될 수 있다. 색차 신호의 경우에는, 픽쳐 단위로 적응적 루프 필터의 적용 여부를 결정할 수 있다. 루프 필터의 형태도 휘도와 달리 직사각형 형태를 가질 수 있다.
적응적 루프 필터링은 슬라이스별로 적용 여부를 결정할 수 있다. 따라서, 현재 슬라이스에 적응적 루프 필터링이 적용되는지 여부를 나타내는 정보는 슬라이스 헤더 또는 픽쳐 헤더에 포함된다. 현재 슬라이스에 적응적 루프 필터링이 적용됨을 나타내면, 슬라이스 헤더 또는 픽쳐 헤더는 추가적으로 적응적 루프 필터링 과정에 사용되는 휘도 성분의 수평 및/또는 수직 방향의 필터 길이를 나타내는 정보를 포함한다.
슬라이스 헤더 또는 픽쳐 헤더는 필터 세트의 수를 나타내는 정보를 포함할 수 있다. 이때 필터 세트의 수가 2 이상이면, 필터 계수들이 예측 방법을 사용하여 부호화될 수 있다. 따라서, 슬라이스 헤더 또는 픽쳐 헤더는 필터 계수들이 예측 방법으로 부호화되는지 여부를 나타내는 정보를 포함할 수 있으며, 예측 방법이 사용되는 경우에는 예측된 필터 계수를 포함한다.
한편, 휘도 뿐만 아니라, 색차 성분들도 적응적으로 필터링될 수 있다. 따라서, 색차 성분 각각이 필터링되는지 여부를 나타내는 정보를 슬라이스 헤더 또는 픽쳐 헤더가 포함할 수 있다. 이 경우, 비트수를 줄이기 위해 Cr과 Cb에 대한 필터링 여부를 나타내는 정보를 조인트 코딩(즉, 다중화 코딩)할 수 있다. 이때, 색차 성분들의 경우에는 복잡도 감소를 위해 Cr과 Cb를 모두 필터링하지 않는 경우가 가장 빈번할 가능성이 높으므로, Cr과 Cb를 모두 필터링하지 않는 경우에 가장 작은 인덱스를 할당하여 엔트로피 부호화를 수행한다. 그리고, Cr 및 Cb를 모두 필터링하는 경우에 가장 큰 인덱스를 할당하여 엔트로피 부호화를 수행한다.
픽쳐 저장부(180)는 후처리된 영상 데이터를 후처리부(160)로부터 입력 받아 픽쳐(picture) 단위로 영상을 복원하여 저장한다. 픽쳐는 프레임 단위의 영상이거나 필드 단위의 영상일 수 있다. 픽쳐 저장부(180)는 다수의 픽쳐를 저장할 수 있는 버퍼(도시되지 않음)를 구비한다.
인터 예측부(160)는 상기 픽쳐 저장부(180)에 저장된 적어도 하나 이상의 참조 픽쳐를 이용하여 움직임 추정을 수행하고, 참조 픽쳐를 나타내는 참조 픽쳐 인덱스 및 움직임 벡터를 결정한다. 그리고, 결정된 참조 픽쳐 인덱스 및 움직임 벡터에 따라, 픽쳐 저장부(180)에 저장된 다수의 참조 픽쳐들 중 움직임 추정에 이용된 참조 픽쳐로부터, 부호화하고자 하는 색차 블록에 대응하는 예측 블록을 추출하여 출력한다.
인트라 예측부(150)는 현재 색차 블록이 포함되는 픽처 내부의 재구성된 화소값을 이용하여 인트라 예측 부호화를 수행한다. 인트라 예측부(150)는 예측 부호화할 현재 색차 블록을 입력 받아 현재 블록의 크기에 따라 미리 설정된 개수의 인트라 예측 모드 중에 하나를 선택하여 인트라 예측을 수행한다. 인트라 예측부는 인트라 예측 블록을 생성하기 위해 참조 화소를 적응적으로 필터링한다. 참조 화소가 이용 가능하지 않은 경우에는 이용 가능한 참조 화소들을 이용하여 참조 화소들을 생성할 수 있다.
엔트로피 부호화부(140)는 양자화부(130)에 의해 양자화된 양자화 계수, 인트라 예측부(140)로부터 수신된 인트라 예측 정보, 인터 예측부(150)로부터 수신된 움직임 정보 등를 엔트로피 부호화한다.
도2는 본 발명의 실시예에 따른 동영상 복호화 장치를 나타내는 블록도이다.
도 2를 참조하면, 본 발명에 따른 동영상 복호화 장치는, 엔트로피 복호부(210), 역스캐닝부(220), 역양자화부(230), 역변환부(240), 인트라 예측부(250), 인터 예측부(260), 후처리부(270), 픽쳐 저장부(280), 가산부(290), 및 인트라/인터전환 스위치(295)를 구비한다.
엔트로피 복호부(210)는, 수신된 부호화 비트 스트림을 복호하여, 인트라 예측 정보, 인터 예측 정보, 양자화 계수 정보 등으로 분리한다. 엔트로피 복호부(210)는 복호된 인터 예측 정보를 인터 예측부(260)에 공급한다. 엔트로피 복호부(210)는 인트라 예측 정보를 복호하여 인트라 예측부(250)로 공급한다. 또한, 상기 엔트로피 복호화(210)는 상기 역양자화 계수 정보를 역스캔부(220)로 공급한다.
역스캐닝부(220)는 상기 양자화 계수 정보를 2차원 배열의 역양자화 블록으로 변환한다. 상기 변환을 위해 복수개의 역스캐닝 패턴 중에 하나를 선택한다. 계수 역스캐닝 패턴은 인트라 예측 모드에 따라 결정될 수 있다. 현재 변환 유닛의 크기가 미리 정해진 크기보다 큰 경우에는 미리 정해진 크기의 서브셋 단위로 역스캔하여 양자화된 변환 유닛을 구성한다. 그리고, 현재 변환 유닛의 크기가 미리 정해진 크기인 경우와 동일한 경우에는 변환 유닛 단위로 역스캔하여 양자화된 변환 유닛을 구성한다. 상기 양자화된 계수들이 복수개의 서브셋 단위로 역스캔될 경우에는 각각의 서브셋 내의 양자화 계수들에 동일한 역스캔패턴을 적용한다. 상기 복수개의 서브셋은 하나의 메인 서브셋과 적어도 하나 이상의 잔여 서브셋으로 구성된다. 메인 서브셋은 DC 계수를 포함하는 좌상측에 위치하고, 상기 잔여 서브셋은 메인 서브셋 이외의 영역을 커버한다.
서브셋 간의 역스캔패턴은 역지그재그 스캔을 적용한다. 스캔 패턴은 잔여 서브셋들로부터 메인 서브셋으로 역스캔하는 것이 바람직하나, 그 역방향도 가능하다. 또한, 서브셋 내의 양자화된 계수들의 역스캔패턴과 동일하게 서브셋 간의 역스캔패턴을 설정할 수도 있다. 역스캐닝부(220)는 현재 변환 유닛 내의 0이 아닌 마지막 양자화 계수의 위치를 나타내는 정보를 이용하여 역스캐닝을 수행한다.
역양자화부(230)는 현재 코딩 유닛의 양자화 스텝 사이즈 예측자를 결정한다. 상기 예측자의 결정과정은 도 1의 양자화부(130)의 예측자 결정 과정과 동일하므로 생략한다. 역양자화부(230)는 결정된 양자화 스텝 사이즈 예측자와 수신한 잔차 양자화 스텝 사이즈를 더하여 현재 역양자화 블록에 적용된 양자화 스텝 사이즈를 얻는다. 역양자화부(230)는 양자화 스텝 사이즈가 적용된 양자화 매트릭스를 이용하여 역양자화 계수를 복원한다. 복원하고자 하는 현재 블록의 크기에 따라 서로 다른 양자화 매트릭스가 적용되며, 동일 크기의 블록에 대해서도 상기 현재 블록의 예측 모드 및 인트라 예측 모드 중 적어도 하나에 기초하여 양자화 매트릭스가 선택된다.
역변환부(240)는 역양자화 블록을 역변환하여 잔차 블록을 복원한다. 그리고, 상기 복원된 양자화 계수를 역변환하여 잔차 블록을 복원한다. 상기 역양자화 블록에 적용할 역변환 매트릭스는 예측 모드(인트라 또는 인터) 및 인트라 예측 모드에 따라 적응적으로 결정될 수 있다. 도 1의 변환부(120)에 적용된 변환 매트릭스의 역변환 매트릭스가 결정되므로 구체적인 기재는 생략한다.
가산부(290)는 역변환부(240)에 의해 복원된 잔차 블록과 인트라 예측부(250) 또는 인터 예측부(260)에 의해 생성되는 예측 블록을 가산함으로써, 영상 블록을 복원한다.
인트라 예측부(250)는 엔트로피 복호화부(210)로부터 수신된 인트라 예측 정보에 기초하여 현재 블록의 인트라 예측 모드를 복원한다. 그리고, 복원된 인트라 예측 모드에 따라 예측 블록을 생성한다.
인터 예측부(260)는 엔트로피 복호화부(210)로부터 수신된 인터 예측 정보에 기초하여 참조 픽쳐 인덱스와 움직임 벡터를 복원한다. 그리고, 상기 참조 픽쳐 인덱스와 움직임 벡터를 이용하여 현재 블록에 대한 예측 블록을 생성한다. 소수 정밀도의 움직임 보상이 적용될 경우에는 선택된 보간 필터를 적용하여 예측 블록을 생성한다.
후처리부(270)의 동작은 도 1의 후처리부(160)의 동작과 동일하므로 생략한다.
픽쳐 저장부(280)는 후처리부(270)에 의해 후처리된 복호 영상을 픽쳐 단위로 저장한다.
본 발명에 따른 인트라 예측 블록 생성 방법에 대해 설명한다. 본 발명에 따른 인트라 예측 블록 생성 순서는 다음과 같다.
1. 수신된 비트스트림으로부터 인트라 예측 정보를 파싱
인트라 예측 정보는 인트라 예측 모드 그룹 지시자와 예측모드 인덱스를 포함한다.
인트라 예측 모드 그룹 지시자는 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하는지 MPM 이외의 그룹에 속하는지를 나타내는 플래그 정보일 수 있다. 또한, 상기 인트라 예측 모드 그룹 지시자는 현재 블록의 인트라 예측 모드가 3개 이상의 인트라 예측 그룹 중 어느 하나에 속하는지를 나타내는 정보일 수 있다.
예측모드 인덱스는 인트라 예측 모드 그룹 지시자가 나타내는 인트라 예측 모드 그룹 내에서의 특정 인트라 예측 모드를 나타내는 정보이다.
CAVLC가 적용된 경우, 상기 인트라 예측 모드 그룹 지시자는 unsigned integer의 형태로 수신하므로, 별도의 엔트로피 복호화를 할 필요가 없다. 그러나, 예측 모드 인덱스는 MPM 그룹에 속하는 경우에는 truncated Exp-Golomb code 또는 unsigned integer Exp-Golomb code 로 이진화된후 엔트로피 부호화되었으므로, 엔트로피 복호화를 수행하여 상기 Exp-Golomb code를 얻은 후에, 상기 예측모드 인덱스를 복원할 수 있다. 그러나, 예측 모드 인덱스는 MPM 그룹에 속하지 않는 경우에는 unsigned integer Exp-Golomb code 로 이진화된 후 엔트로피 부호화되었으므로, 엔트로피 복호화를 수행하여 상기 Exp-Golomb code 를 얻은 후에, 상기 예측모드 인덱스를 복원할 수 있다.
2. 현재 블록의 인트라 예측 모드 복호화 단계
[MPM 그룹 구성(MPM 리스트 작성)]
MPM 그룹은 현재 블록에 인접한 블록들의 인트라 예측 모드에 따라 적응적으로 결정된다. 상기 MPM 그룹은 2개의 인트라 예측 모드, 3개의 인트라 예측 모드, 또는 4개의 인트라 예측 모드로 구성될 수 있다.
MPM 그룹은 현재 블록에 인접한 블록들의 인트라 예측 모드에 따라 적응적으로 결정된다. 상기 MPM 그룹은 2개의 인트라 예측 모드, 3개의 인트라 예측 모드, 또는 4개의 인트라 예측 모드로 구성될 수 있다.
먼저, MPM 그룹이 2개의 인트라 예측 모드, 즉 2개의 MPM 후보자로 구성되는 경우의 MPM 그룹 구성(MPM 리스트 작성) 에 대해 설명한다. 다음의 순서로 구성한다.
먼저, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드를 검사한다. 상기 현재 블록의 상측 또는 좌측 블록이 존재하지 않는 경우에는 인트라 예측 모드가 이용가능하지 않은 것으로 판단한다. 그러나, 상기 상측 또는 좌측 블록이 존재하되, 인트라 예측 부호화되지 않은 경우(즉, 인터 예측 부호화된 경우)에는, 상기 블록의 인트라 예측 모드를 DC 또는 Planar 모드로 설정한다. 상기 상측 또는 좌측 블록이 존재하고, 인트라 예측 모드가 존재하는 경우에는, 상기 인트라 예측 모드를 상기 블록의 인트라 예측 모드로 설정한다.
다음으로, 상기 상측 또는 좌측 블록의 인트라 예측 모드가 현재 블록의 허용 가능한 인트라 예측 모드수 보다 크거나 같으면, 상기 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 맵핑에 대한 구체적인 방법은 후술한다.
다음으로, MPM 리스트를 다음과 같은 방법으로 구성한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드가 모두 존재하고, 서로 다른 경우에는 상기 상측 및 좌측 블록의 인트라 예측 모드 2개를 MPM후보자로 설정한다. 이 경우, 모드번호가 작은 인트라 예측 모드에 인덱스 0을 부여하고, 모드번호가 큰 인트라 예측 모드에 인덱스 1을 부여한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 하나만이 존재하거나, 상기 상측 및 좌측 블록의 인트라 예측 모드가 동일한 경우에는 상기 인트라 예측 모드에 인덱스 0을 부여하고, 다음 중 하나의 방법으로 인덱스 1을 갖는 인트라 예측 모드를 추가한다.
① 상기 존재하는 하나가 DC가 아닌 경우에는 DC를 추가하고, DC인 경우에는 planar 또는 Vertical을 추가한다.
② 상기 존재하는 하나가 planar가 아닌 경우에는 planar를 추가하고, planar인 경우에는 DC 또는 Vertical을 추가한다.
③ 현재 블록의 코너 블록의 인트라 예측 모드를 추가할 수 있다. 코너 블록은 우상측 블록(C), 좌하측 블록(D), 또는 좌상측 블록(E) 중 어느 하나 일 수 있다. 상기 코너 블록을 미리 정해진 순서에 따라 유효한 하나를 MPM 후보자로 추가할 수 있다. 미리 정해진 순서는 C, D, E 또는 E, C, D 순서일 수 있다. 상기 코너 블록의 인트라 예측 모드는 상기 상측 또는 좌측의 유효한 인트라 예측 모드와 다른 모드로 선택된다.
좌측 블록이 복수개 존재하는 경우에는 위에서 아래 방향으로 스캔하여 유효한 첫번째 인트라 예측 모드를 좌측 인트라 예측 모드로 설정한다. 마찬가지로 상측 블록이 복수개 존재하는 경우에는 왼쪽에서 오른쪽으로 스캔하여 유효한 첫번째 인트라 예측 모드를 상측 인트라 예측 모드로 설정한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 모두가 존재하지 않는 경우에는 다음의 하나의 방법을 이용한다.
① DC 및 planar 를 추가한다. 이 경우, DC에 인덱스 0을, planar에 인덱스 1을 할당하거나, planar에 인덱스 0을, DC에 인덱스 1을 할당할 수 있다.
② DC 및 Vertical을 추가한다.
③ Planar 및 Vertical을 추가한다.
④ 코너 블록 중 하나가 이용 가능하면, 이용 가능한 하나와 DC 또는 planar를 추가한다. 이용 가능한 하나는 미리 정해진 순서로 결정한다. 이용 가능한 하나가 DC이면 planar를 추가하고, 이용 가능한 하나가 planar이면 DC를 추가한다.
⑤ 코너 블록 중 2개가 이용 가능하면, 이용 가능한 2개를 추가한다.
MPM 그룹이 3개의 인트라 예측 모드, 즉 3개의 MPM 후보자로 구성되는 경우의 MPM 그룹 구성(MPM 리스트 작성) 에 대해 설명한다.
먼저, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드를 검사한다. 상기 현재 블록의 상측 또는 좌측 블록이 존재하지 않는 경우에는 인트라 예측 모드가 이용 가능하지 않은 것으로 판단한다. 그러나, 상기 상측 및 좌측 블록이 존재하되, 인트라 예측 부호화되지 않은 경우(즉, 인터 예측 부호화된 경우)에는, 상기 블록의 인트라 예측 모드를 DC 또는 Planar 모드로 설정하거나, 이용 가능하지 않는 것으로 설정할 수 있다. 상기 상측 및 좌측 블록이 존재하고, 인트라 예측 모드가 존재하는 경우에는, 상기 인트라 예측 모드를 상기 블록의 인트라 예측 모드로 설정한다.
다음으로, 상기 상측 또는 좌측 블록의 인트라 예측 모드가 현재 블록의 허용 가능한 인트라 예측 모드수 보다 크거나 같으면, 상기 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 맵핑에 대한 구체적인 방법은 후술한다.
다음으로, MPM 리스트를 다음과 같은 방법으로 구성한다. 도 3은 본 바명에 따른 인트라 예측 모드들을 나타낸다. 64x64의 경우에는 0~3의 모드가 허용되고, 4x4의 경우에는 0~17, 8x8~32x32의 경우에는 0~34의 모드가 허용된다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드가 모두 존재하고 서로 다른 경우 에는 상기 두개의 인트라 예측 모드에 인덱스 0, 인덱스 1을 부여한다. 이 경우, 모드 번호가 작은 인트라 예측 모드에 인덱스 0을, 큰 인트라 예측 모드에 인덱스 1을 부여할 수 있다. 그리고, 하나의 인트라 예측 모드를 인덱스 2를 갖는 MPM 후보자로 추가한다. 이 경우의 구체적 방법들은 다음과 같다.
상기 두 개의 인트라 예측 모드 중 하나가 비방향성 모드이고, 다른 하나가 방향성 모드인 경우에는 나머지 비방향성 모드를 추가할 수 있다. 예를 들어, 두 개의 인트라 예측 모드들 중 하나가DC이고, 다른 하나가 Planar가 아닌 경우에는 planar 를 MPM 후보자로 추가할 수 있다. 마찬가지로, 상기 두 개의 인트라 예측 모드 중 하나가 planar이고, 다른 하나가 DC가 아닌 경우에는 DC를 MPM 후보자로 추가할 수 있다. 한편, 상기 두 개의 인트라 예측 모드 중 하나가 비방향성 모드이고, 다른 하나가 방향성 모드인 경우에는 상기 방향성 모드에 인접한 방향성 모드들 중 하나(예를 들어, 인접한 복수개의 방향성 모드들 중 모드 번호가 특정값보다 작은 모드들 중 인접한 하나: 특정값은 9 또는 17)를 추가할 수도 있다. 예를 들어, 특정값이 9인 경우이고 방향성 모드가 11인 경우에는 인접한 19, 20, 4, 5 중에서 4, 5가 허용가능하고, 떨어진 거리도 같으므로 값이 낮은 4를 추가할 수도 있다.
상기 두 개의 인트라 예측 모드가 모두 비방향성 모드인 경우에는 vertical또는 horizontal 모드를 추가할 수 있다. Vertical을 추가하는 것이 더욱 바람직하다.
상기 두 개의 인트라 예측 모드가 모두 방향성 모드인 경우에는 다음의 2가지 방법 중 하나를 사용할 수 있다. (1) 먼저, 상기 방향성 모드들 사이의 방향성 모드를 추가하는 방법이다. 예를 들어, 상기 방향성 모드들이 소정각도 이내 또는 상기 방향성 모드들 사이의 허용 가능한 방향성 모드들의 수가 소정개수 이내이면, 상기 방향성 모드들 사이의 방향성 모드들 중 하나를 추가한다. 상기 소정 개수는 33개의 방향성 모드를 기준으로 할 때, 1~4의 값을 가질 수 있다. 이 경우, 추가되는 방향성 모드는 중간에 위치한 방향성 모드일 수도 있고, 인트라 예측 모드번호가 작은 모드일 수도 있다. (2) 다음으로, 비방향성 모드를 추가하는 방법이다. 이 경우에는 DC 또는 planar를 추가할 수 있다.
다음으로, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 하나만이 존재하는 경우에는 상기 인트라 예측 모드에 인덱스 0을 부여한다. 그리고, 2개의 인트라 예측 모드들을 인덱스 1, 2를 갖는 MPM 후보자로 추가한다. 이 경우의 구체적 방법들은 다음과 같다.
먼저, 상기 존재하는 하나의 인트라 예측 모드가 비방향성 모드(DC 또는 planar)이면, 다른 하나의 비방향성 모드와 vertical을 추가할 수 있다. 또는 vertical과 horizontal을 추가할 수 있다.
그러나, 상기 존재하는 하나의 인트라 예측 모드가 방향성 모드이면, 2개의 비방향성 모드를 추가할 수 있다.
상기 방식들은 상측 및 좌측 블록의 인트라 예측 모드가 동일한 경우에도 적용할 수 있다. 그러나, 좌측 및 상측 블록의 인트라 예측모드가 동일하고, 상기 인트라 예측 모드가 방향성 모드인 경우, 인접하는 2개의 방향성 인트라 예측 모드를 추가할 수도 있다. 또는, DC와 가장 인접한 방향성 모드들 중 주어진 모드 번호가 작은 인트라 예측 모드가 추가될 수 있다.
다음으로, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 모두가 존재하지 않는 경우에는 3개의 MPM 후보자가 추가될 수 있다. DC, planar, Vertical(또는 planar, DC, vertical) 순서로 추가되거나, DC, Vertical, horizontal 순서로 추가될 수 있다.
다음으로, MPM 그룹이 4개의 인트라 예측 모드, 즉 4개의 MPM 후보자로 구성되는 경우의 MPM 그룹 구성(MPM 리스트 작성) 에 대해 설명한다.
먼저, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드를 검사한다. 상기 현재 블록의 상측 또는 좌측 블록이 존재하지 않는 경우에는 인트라 예측 모드가 이용 가능하지 않은 것으로 판단한다. 그러나, 상기 상측 및 좌측 블록이 존재하되, 인트라 예측 부호화되지 않은 경우(즉, 인터 예측 부호화된 경우)에는, 상기 블록의 인트라 예측 모드를 DC 또는 Planar 모드로 설정하거나, 이용 가능하지 않는 것으로 설정할 수 있다. 상기 상측 및 좌측 블록이 존재하고, 인트라 예측 모드가 존재하는 경우에는, 상기 인트라 예측 모드를 상기 블록의 인트라 예측 모드로 설정한다.
다음으로, 상기 상측 또는 좌측 블록의 인트라 예측 모드가 현재 블록의 허용 가능한 인트라 예측 모드수 보다 크거나 같으면, 상기 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 맵핑에 대한 구체적인 방법은 후술한다.
다음으로, MPM 리스트를 다음과 같은 방법으로 구성한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드가 모두 존재하고 서로 다른 경우에는 상기 두개의 인트라 예측 모드에 인덱스 0, 인덱스 1을 부여한다. 여기서, 모드번호가 작은 인트라 예측 모드에 인덱스 0을, 모드번호가 큰 인트라 예측모드에 인덱스 1을 부여할 수 있다. 그리고, 2개의 인트라 예측 모드를 MPM 후보자로 추가한다.
둘 다 방향성 모드인 경우에는 2개의 비방향성 모드(DC, Planar)를 추가한다.
둘 중 하나는 방향성 모드이고, 다른 하나는 비방향성 모드인 경우에는 나머지 하나의 비방향성 모드와 하나의 방향성 모드가 추가될 수 있다. 이 경우, 추가되는 방향성 모드는 상기 방향성 모드에 인접한 인트라 예측 모드 중 하나(특정방향의 하나로서 예를 들어, 좌측/아래쪽 또는 모드번호가 낮은 모드)와, 수평 또는 수직 모드 중 하나가 추가될 수 있다. 또는 상기 방향성 모드에 인접한 2개의 방향성 모드가 추가될 수도 있다. 이 경우, 추가되는 방향성 모드들은 좌, 우(또는 상, 하)측에 인접한 1개씩이 추가될 수 있다.
둘 다 비방향성 모드인 경우에는 Vertical, Horizontal 순으로 추가할 수 있다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들이 같은 경우에는 상기 인트라 예측 모드에 인덱스 0을 부여한다. 그리고, 3개의 모드를 MPM 후보자로 추가한다.
상기 인트라 예측 모드가 비방향성 모드(DC 또는 planar)이면, 나머지 하나의 비방향성 모드에 인덱스 1을 부여하고 와 2개의 방향성 모드가 추가된다. 추가되는 방향성 모드들은 vertical, horizontal 순 또는 그 역순으로 추가될 수 있다.
상기 인트라 예측 모드가 방향성 모드이면, 1개의 비방향성 모드(planar 또는 DC)가 모드에 인덱스 1을 부여하고, 허용 가능한 방향성 모드들 중 상기 방향성 모드에 가장 인접한 방향성을 갖는 2개의 인트라 예측 모드가 추가될 수 있다. 이 경우, 7에 가장 인접한 방향성 모드들 중 하나는 10가 될 수 있고, 그 역도 마찬가지로 성립한다. 또는 2개의 비방향성 모드에 인덱스 1, 2를 부여하고, 상기 방향성 모드에 인접한 모드들 중 하나(좌측/아래쪽 또는 모드번호가 낮은 모드)에 인덱스 3을 추가할 수 있다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 하나만이 존재하는 경우에는 다음의 하나의 방법을 이용한다.
상기 인트라 예측 모드가 비방향성 모드이면, 다른 하나의 비방향성 모드와, Vertical, Horizontal순 또는 그 역순으로 추가할 수 있다.
상기 인트라 예측 모드가 방향성 모드이면, (1) 2개의 비방향성 모드가 추가되고, 상기 방향성 모드에 가장 인접한 방향성을 갖는 2개의 인트라 예측 모드 중 주어진 모드 번호가 작은 인트라 예측 모드 또는 특정 방향, 예를 들어, 좌측(아래쪽)의 인트라 예측 모드가 추가될 수 있다. 또는 (2) DC또는 planar가 추가되고, 상기 방향성 모드에 가장 인접한 방향성을 갖는 2개의 인트라 예측 모드가 추가될 수 있다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 모두 존재하지 않는 경우에는 2개의 비방향성 모드와 2개의 방향성 모드가 추가될 수 있다. 이 경우, 2개의 비방향성 모드에 인덱스 0, 1을 부여하고, 2개의 방향성 모드에 인덱스 2, 3을 부여할 수 있다. 예를 들어, DC, planar, V, H순서로 인덱스를 부여하거나, Planar, DC, V, H순서로 인덱스를 부여하거나, DC, V, H, planar 순으로 추가될 수 있다.
상기한 방법들은 인트라 예측모드의 수가 18 또는 35인 경우, 또는 상기 블록의 크기가 4x4~32x32인 경우에 적용하는 것을 전제로 한 것이다.
[맵핑 방법]
현재 블록의 유효한 상측 또는 좌측 블록의 인트라 예측 모드의 모드 번호가 현재 블록의 허용된 인트라 예측 모드가 아닌 경우에는 상기 유효한 상측 또는 좌측 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 즉, 현재 블록의 유효한 상측 또는 좌측 블록의 인트라 예측 모드의 모드번호가 현재 블록의 인트라 예측 모드수보다 크거나 같은 경우(planar 모드를 0으로 둘 경우)에는 상기 유효한 상측 또는 좌측 블록의 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다.
이 경우, 현재 블록의 크기가 64x64인 경우에는 4개의 인트라 예측 모드로 맵핑한다. 상기 4개의 인트라 예측 모드는 planar mode(0), vertical mode(1), horizontal mode(2), DC mode(3)이다. 따라서, 좌측 또는 상측 블록의 인트라 예측 모드가 방향성 예측 모드이고, vertical mode 및 horizontal mode가 아닌 경우에는 상기 좌측 및 상측 블록의 방향성 인트라 예측 모드를 상기 4개의 인트라 예측 모드들 중 하나로 맵핑한다.
(제1 실시예)
도 4에 도시된 바와 같이, vertical mode(1)에 인접한 제1 개수의 인트라 예측 모드들(예를 들어, 12, 22, 23, 13, 24, 6)은 Vertical mode(1)로 맵핑되고, horizontal mode(2)에 인접한 제2개수의 인트라 예측 모드들(예를 들어, 8, 29, 16, 30, 31, 17, 32, 9)은 horizontal mdoe(2)로 맵핑된다. 그리고, 나머지는 DC(3)로 맵핑될 수 있다. 이 경우, Vertical과 horizontal의 우선순위를 달리하기 위해 상기 제1 개수 및 제2 개수는 다를 수 있다. 또한, 상기 Vertical mode를 중심으로 양방향으로 동일하지 않은 수의 인접 방향성 모드들이 상기 vertical mode로 맵핑될 수 있다. horizontal mode를 중심으로 양방향으로 동일한 개수가 horizontal mode로 맵핑될 수 있다. 상기 DC 모드 대신에 planar 모드로 맵핑될 수도 있다.
(제2 실시예)
V, H로 매핑되는 방향성 모드들은 제1 실시예와 동일할 수 있다. 그러나, 나머지 방향성 모드들은 DC 및 Planar 중 어느 하나로만 맵핑 되는 것이 아니라, 일부는 DC로, 나머지 모두는 Planar로 맵핑될 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 25, 14, 26, 7 및 33, 18, 34, 10은 DC로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 planar로 맵핑될 수 있다. 또한, 상기 DC와 Planar로 맵핑되는 모드들이 바뀌어질 수도 있다. 즉, 25, 14, 26, 7 및 33, 18, 34, 10은 Planar로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 DC로 맵핑될 수 있다
(제3 실시예)
V, H로 매핑되는 방향성 모드들이 제1, 2 실시예와 다를 수 있다. 예를 들어, 도 6에 도시된 바와 같이, V에 맵핑되는 방향성 모드 또는 모드들의 수를 상기 제1, 2 실시예와 달리할 수 있다. 예를 들어, 5, 21, 12, 22, 23, 13, 24, 6을 V에 맵핑시키거나, 21, 12, 22, 23, 13, 24를 V에 맵핑시키거나, 12, 22, 23, 13를 V에 맵핑 시킬 수 있다. V에 맵핑되는 V의 양방향 방향성 모드들의 수가 동일할 수도 있다.
마찬가지로, 도 6에 도시된 바와 같이, H에 맵핑되는 방향성 모드들의 수를 상기 제1, 2실시예와 달리할 수 있다. 예를 들어, 8, 29, 16, 30, 31, 17, 32, 9를 H에 맵핑시키거나, 29, 16, 30, 31, 17, 32를 H에 맵핑시키거나, 16, 30, 31, 17를 H에 맵핑시킬 수 있다.
상기 V와 H 중에 V에 우선권을 주기 위해, V에 맵핑되는 방향성 모드들의 수를 H에 맵핑되는 방향성 모드들의 수보다 크게 할 수 있다. 마찬가지로, H에 우선권을 주기 위해 반대로도 할 수 있으나, 전자가 바람직하다.
그러나, 나머지 방향성 모드들은 DC 및 Planar 중 어느 하나로만 맵핑 되는 것이 아니라, 일부는 DC로, 나머지 모두는 Planar로 맵핑될 수 있다.
예를 들어, 도 6에 도시된 바와 같이, 25, 14, 26, 7 및 33, 18, 34, 10은 DC로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 planar로 맵핑될 수 있다. 또한, 상기 DC와 Planar로 맵핑되는 모드들이 바뀌어질 수도 있다. 즉, 25, 14, 26, 7 및 33, 18, 34, 10은 Planar로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 DC로 맵핑될 수 있다
(제4 실시예)
모드번호 4~17은 V, H, DC중 하나로 맵핑(제1예와 동일), 모드번호 18 이상은 planar mode로 맵핑될 수 있다.
현재 블록의 크기가 4x4인 경우에는 좌측 또는 상측 블록의 인트라 예측 모드가 방향성 예측 모드이고, 현재 블록의 허용 가능한 인트라 예측 모드에 포함되지 않는 경우에는 현재 블록의 허용 가능한 인트라 예측 모드들 중 어느 하나로 맵핑될 수 있다. 이 경우, 0~9번 모드에 우선권을 부여하기 위해 상기 0~9(10개) 중 하나로 맵핑될 수 있다.
(제1 실시예)
도 7에 도시된 바와 같이, vertical mode(1), horizontal mode(2), 모드번호 3, 4, 5, 7, 8, 0에 가장 인접하는 각 방향의 하나의 모드들은 상기 모드들로 맵핑될 수 있다. 구체적으로, 22, 23은 1에, 20, 21은 5에, 27, 19는 4, 24, 25는 6에, 28, 29는 8에 30, 31은 2에, 32, 33은 9에 맵핑될 수 있다. 그리고, 26는 7에 맵핑될 수 있다. 그리고, 나머지의 모드들, 즉, 모드번호 10, 11, 12, 13, 14, 15, 16, 17, 18은 DC 또는 planar중 어느 하나로 맵핑될 수 있다.
또한, 상기 나머지의 모드들은 DC또는 Planar에 맵핑될 수 있다. 예를 들어, 13, 14, 17, 18, 34, 10은 Planar에 11, 12, 15, 16은 DC에 맵핑될 수 있다. 또는 반대로, 13, 14, 17, 18, 34, 10은 DC에 11, 12, 15, 16은 Planar에 맵핑될 수 있다. 후자가 더 바람직하다.
(제 2 실시예)
제1 실시예와 동일하게 맵핑시키되, 모드번호 10을 7에 맵핑시킬 수 있다. 이 경우, DC 또는 Planar에 맵핑되는 모드들은 10을 제외하고는 제1 실시예와 동일할 수 있다.
(제 3 실시예)
복잡도를 줄이기 위해 10~17은 DC 모드에, 18~34은 Planar 모드에 맵핑시킬 수도 있다. 또는 그 역으로도 할 수 있다.
현재 블록의 인트라 예측모드가 MPM 그룹에 속하는지 판단하여 속하는 경우
수신된 상기 인트라 예측 모드 그룹 지시자가 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하는 것을 나타내면, MPM 그룹내의 예측모드 인덱스가 나타내는 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다. 상기 인트라 예측 모드 그룹 지시자는 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하는지 MPM 이외의 그룹에 속하는지를 나타내는 플래그 정보 일 수 있다.
현재 블록의 인트라 예측모드가 MPM 그룹에 속하는지 판단하여 속하지 않는 경우
수신된 상기 인트라 예측 모드 그룹 지시자가 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하지 않는 것을 나타내면, MPM 그룹을 제외한 현재 블록의 허용된 인트라 예측 모드들(remaining intra prediction mode:잔여 인트라 예측 모드) 중 예측 모드 인덱스가 나타내는 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다.
- MPM 그룹이 2개의 인트라 예측 모드로 구성되는 경우
먼저, 상기 MPM 그룹에 속하는 2개의 인트라 예측 모드 중, 모드번호가 작은 인트라 예측 모드의 모드번호와 수신되어 복원된 예측 모드 인덱스를 비교한다. 비교결과, 복원된 예측 모드 인덱스가 상기 모드번호가 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 2개의 인트라 예측 모드 중, 모드번호가 큰 인트라 예측 모드의 모드번호가 수신되어 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 큰 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 예측 모드 인덱스 값과 대응하는(동일한 값의 모드번호를 갖는) 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다.
- MPM 그룹이 3개의 인트라 예측 모드로 구성되는 경우
먼저, 상기 MPM 그룹에 속하는 3개의 인트라 예측 모드 중, 모드번호가 가장 작은 인트라 예측 모드의 모드번호와 수신되어 복원된 예측 모드 인덱스를 비교한다. 비교결과, 복원된 예측 모드 인덱스가 상기 모드번호가 가장 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 3개의 인트라 예측 모드 중, 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 2개의 인트라 예측 모드 중, 모드번호가 가장 큰 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 가장 큰 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 예측 모드 인덱스 값과 대응하는(동일한 값의 모드번호를 갖는) 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다.
- MPM 그룹이 4개의 인트라 예측 모드로 구성되는 경우
먼저, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 가장 작은 인트라 예측 모드의 모드번호와 수신되어 복원된 예측 모드 인덱스를 비교한다. 비교결과, 복원된 예측 모드 인덱스가 상기 모드번호가 가장 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 세번째로 작은 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 세번째로 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 가장 큰 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 가장 큰 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 예측 모드 인덱스 값과 대응하는(동일한 값의 모드번호를 갖는) 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다
[잔여 인트라 예측 모드 재정렬 방법]
다음의 방법을 이용할 수 있다.
현재 블록의 인트라 예측 모드가 잔여 인트라 예측 모드들 중 하나인 경우, 상기 인트라 예측 모드번호가 MPM 그룹의 구성에 따라 적응적으로 바뀔 수 있다. 즉, MPM에 속하는 인트라 예측 모드들을 제외한 잔여 인트라 예측 모드가 일정한 순서로 재배열되었을 때의 인덱스가 예측 모드 인덱스로 설정된다. 따라서, 수신된 예측 모드 인덱스 및 MPM 그룹에 속하는 인트라 예측 모드들에 따라 적응적으로 잔여 인트라 예측 모드들을 재배열한 후, 상기 예측 모드 인덱스가 나타내는 현재 블록의 인트라 예측 모드를 잔여 인트라 예측 모드들에서 선택한다.
상기 잔여 인트라 예측 모드들을 재배열하는 방법은 다음의 방법들 중 하나를 사용한다.
[방법 1]
현재 블록의 허용된 인트라 예측 모드들 중에서 MPM 그룹에 속하는 인트라 예측 모드를 제외한 잔여 인트라 예측 모드들을 재배열하고, 상기 수신된 예측 모드 인덱스에 대응하는 인덱스가 나타내는 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 선택한다. 이 경우, 상기 잔여 인트라 예측 모드들을 재배열한 후 수신된 예측 모드 인덱스에 대응하는 인덱스가 나타내는 인트라 예측 모드를 선택할 수도 있지만, 상기한 바와 같이, 현재 블록의 인트라 예측 모드 인덱스와 상기 MPM 그룹에 속하는 인트라 예측 모드번호를 낮은 모드부터 순차적으로 비교하여 현재 블록의 인트라 예측 모드를 결정할 수도 있다.
[방법 2]
아래의 방법들은 MPM 그룹을 구성하는 MPM 후보자의 수가 2, 3, 4인 경우에 모두 적용 가능하다.
현재 블록의 좌측 및 상측 후보자가 둘 다 방향성 모드인 경우
둘 다 방향성 모드인 경우에는 후보자들 사이의 각도가 소정 범위 이내(또는 그 사이의 방향성 모드의 수가 소정 개수 이내)인 경우에는 상기 방향성 모드에 인접한 미리 정해진 개수의 인트라 예측 모드들이 다른 방향성 모드들보다 작은 인덱스를 갖도록 재배열한다. 상기 소정 개수는 예측 블록의 크기에 따라 달라질 수 있다.
<2개의 방향성 모드가 동일한 경우>
두개의 방향성 모드가 동일한 경우에는 인접하는 방향성을 갖는 미리 정해진 개수의 인트라 예측 모드들에 작은 인덱스를 부여한다. 상기 미리 정해진 개수는 현재 블록의 크기에 따라 달라질 수 있다. 예를 들어, 현재 블록의 크기가 4x4인 경우에는 인접하는 2개 또는 4개의 인트라 예측 모드가 우선순위를 가질 수 있다. 현재블록의 크기가 8x8~32x32인 경우에는 4개 또는 8개의 인트라 예측 모드가 우선순위를 가질 수 있다.
예를 들어, 현재 블록의 인트라 예측 모드가 5, 예측 블록의 크기가 4x4, 미리 정해진 개수가 2인 경우에는 11, 12가 다른 잔여 방향성 모드들보다 낮은 인덱스를 가질 수 있다. 또한, 현재 블록의 인트라 예측 모드가 5, 예측 블록의 크기가 4x4, 미리 정해진 개수가 4인 경우에는 11, 12, 4, 1이 다른 잔여 방향성 모드들보다 낮은 인덱스를 가질 수 있다.
예를 들어, 현재 블록의 인트라 예측 모드가 5, 예측 블록의 크기가 8x8, 미리 정해진 개수가 4인 경우에는 20, 21, 11, 12가 다른 잔여 방향성 모드들보다 낮은 인덱스를 가질 수 있다. 다른 변형예들도 동일한 방식으로 인덱스를 부여한다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
<2개의 방향성 모드의 각도가 소정 범위 이내인 경우>
두개의 방향성 모드의 각도가 소정 범위 이내인 경우에는 상기 방향성 모드들에 인접한 미리 정해진 개수의 인트라 예측 모드들이 다른 방향성 모드들보다 작은 인덱스를 가질 수 있다. 또는 각도가 아니라 그 사이에 존재하는 방향성 인트라 예측 모드의 수가 소정 개수 이내인 것으로 기준을 정할수도 있다. 이하, 개수로 설명한다. 상기 개수는 예측 블록의 크기에 따라 달라질 수 있다.
먼저, 두개의 방향성 모드들 사이에 유효한 인트라 예측 모드가 존재하지 않는 경우(서로 인접한 경우)에 대해 설명한다.
4x4에 대해 상기 두개의 방향성 모드들 사이에 유효한 개수가 존재하지 않으면, 각각의 모드에 가장 인접한 1개 또는 2개의 방향성 모드들에 우선순위가 부여될 수 있다. 예를 들어, 상기 2개의 방향성 모드가 5, 11일 때에는 4, 12또는 4, 12, 15, 1에 다른 방향성 모드들보다 작은 인덱스를 부여할 수 있다.
8x8~32x32의 경우에는 가장 인접한 2개 또는 4개의 방향성 모드들에 우선순위가 부여될 수 있다. 예를 들어, 상기 2개의 방향성 모드가 5, 20일때에는 11, 21, 19, 12또는 11, 21, 19, 12, 4, 22, 27, 1에 다른 방향성 모드들보다 작은 인덱스를 부여할 수 있다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
<2개의 방향성 모드들 사이에 1개의 인트라 예측 모드가 존재하는 경우>
다음으로, 2개의 방향성 모드들 사이에 1개의 인트라 예측 모드가 존재하는 경우에는 그 사이의 방향성 모드가 다른 방향성 모드들보다 낮은 인덱스를 갖는다. 그리고, 각 방향으로 인접한 미리 정해진 개수의 방향성 인트라 예측 모드가 다른 방향성 인트라 예측 모드보다 낮은 인덱스를 갖도록 설정한다. 상기 미리 정해진 개수는 4x4의 경우에는 1개 또는 2개이고, 8x8~32x32의 경우에는 2개 또는 4개로 설정할 수 있다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
<2개의 방향성 모드들 사이에 2개 의 인트라 예측 모드가 존재하는 경우>
2개의 방향성 모드들 사이에 2개의 인트라 예측 모드가 존재하는 경우에는 그 사이의 방향성 모드들이 다른 방향성 모드들보다 낮은 인덱스를 갖는다. 그리고, 각 방향으로 인접한 미리 정해진 개수의 방향성 인트라 예측 모드가 다른 방향성 인트라 예측 모드보다 낮은 인덱스를 갖도록 설정한다. 상기 미리 정해진 개수는 4x4의 경우에는 1개, 8x8~32x32의 경우에는 2개로 설정할 수 있다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
상기 2개의 방향성 모드들 사이에 N개의 인트라 예측 모드가 존재하는 경우, 상기 N이 미리 정해진 개수보다 작을 경우에는 상기 N개의 방향성 모드들이 다른 방향성 모드들보다 낮은 인덱스를 가질 수 있다.. 상기 미리 정해진 개수는 4x4의 경우에는 1~3개, 8x8~32x32의 경우에는 2~6개로 설정할 수 있다.
둘 다 방향성 모드인 경우이고, 후보자들 사이의 각도가 소정 범위 이내(또는 그 사이의 방향성 모드의 수가 소정 개수 이내)가 아닌 경우에는 다음의 방법 중 하나를 이용한다.
(1) 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬한다. 이때, DC 모드와 planar 모드에 가장 작은 인덱스를 부여할 수 있다. 즉, DC에 0, planar에 1 또는 planar에 0, DC에 1을 부여할 수 있다. 또는 planar, DC, V, H순, DC, Planar, V, H순, 도는 V, H, DC, Planar 순으로 배열하고 나머지는 순차적으로 배열할 수 있다.
(2) 각 후보자들에 인접한 소정 개수의 방향성 모드에 작은 인덱스를 부여할 수 있다. 이 경우, 각 후보자마다 소정 개수의 방향성 모드들 선택하고, 각 후보자마다 하나씩 교차적으로 나열하여 인덱스를 부여할 수 있다.
(3) 또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
(4) 비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
좌측 및 상측 MPM 후보자들 중 하나만 방향성 모드인 경우
둘 중 하나가 방향성 모드이고, 다른 하나가 비방향성 모드인 경우에는, 비방향성 모드에 가장 작은 인덱스(0)를 부여하고, 나머지들은 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬할 수 있다.
둘 중 하나가 방향성 모드이고, 다른 하나가 비방향성 모드인 경우에는, 비방향성 모드에 가장 작은 인덱스(0)를 부여하고, 상기 하나의 방향성 모드를 중심으로 소정 개수에 적은 인덱스를 부여할 수 있다. 나머지들은 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬할 수 있다. 또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
좌측 및 상측 MPM 후보자가 둘 다 비방향성 모드인 경우
둘다 비방향성 모드인 경우에는, 방향성 모드들을 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬할 수 있다.
3. 현재 블록의 크기와 변환 크기가 다를 경우의 예측 블록 생성 방법
현재 블록의 인트라 예측 정보와 현재 블록의 변환 크기를 나타내는 정보를 이용하여 예측 블록의 크기를 결정한다.
구체적으로, 현재 블록이 복수개의 서브블록으로 나누어져 변환 부호화 되었는지를 나타내는 정보(변환 크기 정보로서, 예를 들면, split_transform_flag 또는 SDIP 여부를 나타내는 정보)에 따라 인트라 예측블록을 생성하는 과정이 달라지게 된다. 즉, 상기 변환 크기 정보가 현재 블록의 크기와 동일함을 나타내면, 현재 블록의 크기로 인트라 예측 블록이 생성된다. 그러나, 상기 변환 크기 정보가 현재 블록의 크기 보다 작은 복수개의 서브블록으로 나누어져 변환 부호화 되었음을 나타내면, 상기 각 서브블록별로 미리 정해진 순서에 따라 인트라 예측 블록을 생성한다. 상기 미리 정해진 순서는 서브블록의 형태에 따라 달라질 수 있다. 예를 들어, 서브블록이 정사각형이면 래스터 스캔 순서 또는 지그재그 스캔 순서일 수 있다. 서브블록이 직사각형이면 위에서 아래 또는 왼쪽에서 오른쪽 순서일 수 있다.
그리고, 상기 순서에 따라 미리 정해진 순서로 각 서브블록의 예측 블록을 생성한 후, 잔차 신호를 복원하여 복원 서브블록을 생성한다. 그리고, 그 다음의 서브블록의 예측블록을 생성하기 위해 상기 복원된 서브블록에 속하는 참조화소들을 이용한다. 이를 통해 보다 정확한 인트라 예측을 수행할 수 있다. 상기 각 서브블록에 속하는 인트라 예측 모드는 서브블록의 형태에 따라 다르게 설정될 수 있다. 예를 들어, 정사각형의 서브블록들은 동일한 인트라 예측 모드가 할당될 수도 있고, 직사각형의 서브블록들은 각 서브블록들 별로 독립적으로 인트라 예측 모드가 할당될 수도 있다. 이 경우 각 직사각형의 서브블록들별로 인트라 예측 모드를 복원하는 과정을 거쳐야 한다. 직사각형의 서브블록들의 경우에도 동일한 인트라 예측 모드가 할당될 수도 있다.
4. 현재 블록의 인트라 예측 모드에 따라 참조 화소 생성여부 판단 및 참조화소 생성
현재 블록 또는 서브블록의 인트라 예측을 위한 참조화소들을 유도한다. 상기 참조화소들은 인접하는 복원된 블록 또는 서브블록들의 복원화소들이다. 상기 참조화소들은 도 8에 도시된 바와 같이, 현재 블록 또는 서브블록의 크기를 NxM으로 가정할 경우, (x=0,..2N-1, y=-1) 위치의 2N개의 상측 참조화소들(영역 A)과, (x=-1, y=0,..2M-1) 위치의 좌측 참조화소들(영역 L) 및 (x=-1, y=-1) 위치의 코너화소를 포함한다.
현재 블록 또는 서브블록에 인접한 상기 참조화소들의 위치에 대응하는 화소들을 포함하는 상측 또는 좌측 블록들이 존재하지 않는 경우에는 상기 위치에 대응하는 참조화소들은 유효하지 않은 것으로 판단한다. 또한, 인트라 예측에 의해 복원된 화소들만을 이용하도록 하는 모드(즉, constrained_intra_prediction 모드)의 경우에는 상기 참조화소들의 위치에 대응하는 화소들을 포함하는 상측 또는 좌측 블록들이 인트라 예측에 의해 복원된 화소가 아니면(즉, 인터 예측에 의해 복원된 화소이면), 상기 위치의 화소들도 유효하지 않는 것으로 판단한다.
한편, 현재 블록의 인트라 예측모드가 특정 모드인 경우에 예측된 블록의 필터링 여부를 결정하는 플래그를 설정할 수 있다. 상기 플래그는 상기 복원된 현재 블록 또는 서브 블록의 인트라 예측 모드 및 상기 인트라 예측모드에 따라 상기 블록 또는 서브블록의 예측블록의 필터링을 위해 사용되는 참조화소들의 유효성 여부에 따라 결정될 수 있다. 예를 들어, 현재 블록 또는 서브블록의 인트라 예측 모드가 DC인 경우에는 (x=0,..N-1, y=-1) 위치의 N개의 상측 참조화소들과 (x=-1, y=0,..M-1) 위치의 좌측 참조화소들 및 (x=-1, y=-1) 위치의 코너화소 중 어느 하나라도 유효하지 않은 것으로 판단되는 경우에는 상기 DC 예측블록 필터링 플래그를 0으로 설정하여, 상기 DC 예측블록 생성시 필터링을 수행하지 않도록 할 수 있다. 그러나 DC 예측블록의 필터링을 위해 사용되는 참조화소들이 모두 유효한 경우에는 상기 프래그를 1로 설정하여 DC 예측블록 생성시 상기 참조화소들을 이용하여 예측 블록의 화소들중 상기 참조화소들에 인접한 화소들을 필터링할 수 있도록 할 수 있다.
마찬가지로, 현재 블록 또는 서브블록의 인트라 예측모드가 planar인 경우에는 planar 예측블록 필터링을 위해 사용되는 참조화소들, 즉, (x=0,..N-1, y=-1) 위치의 N개의 상측 참조화소들과 (x=-1, y=0,..M-1) 위치의 좌측 참조화소들 및 코너 예측화소 중 어느 하나라도 유효하지 않은 것으로 판단되는 경우에는 planar 예측블록 필터링 플래그를 0으로 설정하여, 상기 planar 예측블록 생성시 필터링을 수행하지 않도록 할 수 있다. 그러나 planar 예측블록 필터링을 위해 사용되는 참조화소들이 모두 유효한 경우에는 상기 플래그를 1로 설정하여 planar 예측블록 생성시 상기 참조화소들을 이용하여 예측 블록의 화소들 중 상기 참조화소들에 인접한 화소들을 필터링할 수 있도록 할 수 있다.
마찬가지로, 현재 블록 또는 서브블록의 인트라 예측모드가 vertical인 경우에는 vertical 예측 블록의 필터링을 위해 사용되는 참조화소들, 예를 들면, (x=-1, y=-1,…M-1)의 참조화소들 또는 (x=0, y=-1,…N-1)의 참조화소들 중 어느 하나로도 유효하지 않는 것으로 판단되는 경우에는 vertical 예측블록 필터링 플래그를 0으로 설정하여, vertical 예측블록 생성시 필터링을 수행하지 않도록 할 수도 있다. 또한, 현재 블록 또는 서브블록의 인트라 예측모드가 horizontal인 경우에는 horizontal 예측 블록의 필터링을 위해 사용되는 참조화소들, 예를 들면, (x=-1,…N-1, y=-1) 의 참조화소들 또는 (x=-1, y=0,…N-1)의 참조화소들 중 어느 하나로도 유효하지 않는 것으로 판단되는 경우에는 horizontal 예측블록 필터링 플래그를 0으로 설정하여, vertical 예측블록 생성시 필터링을 수행하지 않도록 할 수도 있다.
방향성 모드들 중 예측블록 필터링이 수행되는 인트라 예측모드들에 대해서도 예측 블록 필터링을 위해 사용되는 참조화소들의 유효성 여부에 따라 플래그값을 설정할 수도 있다.
위에서는 예측블록 필터링을 위해 사용되는 참조화소들 중 어느 하나라도 유효하지 않는 경우에 예측 블록 필터링 플래그를 0으로 설정하였으나, 상기 참조화소들 중 일부 또는 전부가 유효하지 않은 경우에 상기 플래그값을 0으로 설정할 수도 있다. 또한, 상기 플래그값의 설정여부는 인트라 예측 모드에 따라 예측블록이 필터링되는지 여부에 따라 결정될 수 있다. 또한, 상기 값들은 휘도 성분에 대해 적용한다.
색차 성분의 경우에도 현재 블록 또는 서브블록의 인트라 예측모드가 DC인 경우에 동일한 방식으로 예측블록 플래그의 설정여부를 결정할 수 있다. 또한, planar, vertical, horizontal 모드에서도 동일한 방식으로 결정될 수 있다. 색차 성분의 인트라 예측모드가 DM 모드(즉, 휘도 블록의 인트라 예측 모드와 동일)인 경우에는 휘도 성분에서의 방식과 동일한 방식으로 결정될 수 있다. 색차 성분의 인트라 예측 모드가 LM 모드인 경우에도 상기 플래그값을 설정할 수도 있다.
한편, 상기 현재 블록 또는 서브블록의 참조화소들 중 적어도 하나가 유효하지 않은 것으로 판단되는 경우에는 유효하지 않은 위치에 대응하는 참조화소를 생성한다. 여기서, 참조화소 생성 여부를 판단하기 위한 참조화소들은 2N+2M+1개의 참조화소들로 판단할 수도 있으며, 현재 블록의 인트라 예측 모드에 따라 예측 블록을 생성하는데 이용되는 참조화소들 중 적어도 하나가 유효하지 못한 경우에, 유효하지 않은 위치에 대응하는 참조화소들을 생성하는 것이 바람직하다. 한편, 색차 블록의 경우에도 동일한 방식으로 참조화소들의 생성여부를 결정할 수 있다.
상기한 유효성 판단의 결과, 유효하지 않은 위치에 대응하는 참조화소를 생성하는 것으로 판단되면, 다음의 방식들 중 하나로 참조화소를 생성한다.
모든 참조화소들이 유효하지 않은 것으로 판단되는 경우에는, 2 L-1 값으로 대체한다. 여기서 L은 휘도성분을 나타내는 위한 비트수이다.
유효하지 않은 참조화소 위치를 기준으로 한쪽 방향으로만 유효한 참조화소가 존재하는 경우에는 상기 유효한 참조화소 중 가장 가까운 위치에 있는 참조화소값으로 대체할 수 있다. 이 경우, 유효한 참조화소 중 가장 가까운 위치에 있는 적어도 2개 이상의 참조화소값을 이용하여 참조화소를 생성할 수도 있다.
유효하지 않은 참조화소 위치를 기준으로 유효한 참조화소가 양쪽방향 모두에 존재할 경우, 각각의 방향으로 가장 인접한 참조화소 2개의 평균값으로 대체할 수 있다. 또는 상기 생성될 참조화소의 위치에 따라 서로 다른 참조화소 2개에 서로 다른 가중치를 두어 참조화소를 생성할수도 있다. 이를 위해 선형 결합 방식을 이용할 수도 있다.
5. 현재 블록의 참조화소들을 스무딩(필터링)하는 단계
현재 블록 또는 서브블록의 복원된 인트라 예측 모드에 따라, 현재 블록 또는 서브블록의 참조화소를 적응적으로 필터링한다.
도 8를 참조하여, 참조화소 필터링 동작을 설명한다.
구체적으로, 현재 블록 또는 서브블록의 크기 및 인트라 예측 모드에 따라 적응적으로 참조화소들을 필터링한다.
현재 블록 또는 서브블록의 인트라 예측모드가 DC인 경우에는 참조화소들을 필터링하지 않는다. 방향성 모드들 중 수직(모드 1), 수평(모드 2)인 경우에는 참조 화소들에 필터를 적용하지 않는다. 그 이외의 방향성 모드들에 대해서는 적응적으로 참조 화소를 필터링한다. 또한, 현재 예측 유닛의 상측의 참조화소들 중 가장 오른쪽의 참조 화소(즉 (x=2N-1, y=-1)에 위치하는 참조 화소)와 현재 예측 유닛의 좌측의 참조 화소들 중 가장 아래쪽에 위치하는 참조 화소(즉 (x=-1, y=2N-1)에 위치하는 참조 화소) 필터링 하지 않고, 나머지 화소들은 이웃하는 2개의 화소들을 이용하여 필터링한다.
허용되는 가장 작은 크기(4x4)의 현재 블록 또는 서브블록의 경우에는 복잡도 감소를 위해 참조화소 필터링을 인트라 예측 모드에 관계없이 수행하지 않을 수도 있다.
상기 필터링은 참조화소들 사이의 화소값의 변화량을 스무딩(smoothing)하기 위한 것으로, low-pass filter를 적용한다. Low-pass filter는 3-tap 필터인 [1, 2, 1] 또는 5-tap 필터인 [1, 2, 4, 2, 1]일 수 있다.
동일한 인트라 예측모드가 허용되는 현재 블록 또는 서브블록의 크기들(예를 들어, 8x8~32x32)에 대해서는 상기 크기들이 커짐에 따라 더 많은 수의 인트라 예측 모드들에 대하여 참조화소들을 필터링한다. 구체적으로, 현재 블록 또는 서브블록의 크기에 따라, 상기 수평 또는 수직 모드 및 이에 인접한 미리 정해진 개수의 방향성 인트라 예측모드들에 대해서는 참조화소를 필터링하지 않을 수 있다. 상기 미리 정해진 개수는 0~7의 값을 가질 수 있다. 상기 미리 정해진 개수는 현재 블록 또는 서브블록의 크기가 커짐에 따라 감소한다.
6. 현재 블록 또는 서브블록의 예측블록을 생성하는 단계
현재 블록 또는 서브블록의 복원된 인트라 예측 모드에 따라, 참조화소들을 이용하여 현재 블록 또는 서브블록의 예측블록을 생성한다. 상기 참조화소들은 현재 블록 또는 서브블록의 크기 및 인트라 예측모드에 따라 적응적으로 필터링된 화소들일 수 있다.
DC 모드의 경우에는, 상기 참조화소의 유효성 검사결과 생성된 DC 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 동일한 예측화소값을 갖는 예측 블록을 생성하고, 상기 플래그값이 1이면, 예측화소의 위치에 따라 예측화소의 생성방법이 달라질 수 있다.
구체적으로, 상기 플래그값이 0인 경우에는 (x=0,..N-1, y=-1) 위치의 N개의 상측 참조화소들과 (x=-1, y=0,..M-1) 위치의 좌측 참조화소들 및 (x=-1, y=-1) 위치의 코너화소의 평균값이 예측화소값이 된다. 그러나, 상기 플래그값이 1이면, 상기 참조화소들에 인접하지 않는 위치의 예측 화소값은 상기 평균값으로 설정될 수 있으나, 상기 참조화소들과 인접하는 위치의 예측 화소값은 상기 평균값과 인접하는 참조화소값이 가중평균을 이용하여 생성할 수 있다. 상기 가중평균은 적용 가능한 미리 정해진 크기보다 큰 현재 블록 또는 서브블록에 대해서는 적용하지 않을 수도 있다.
Planar 모드에서도, 상기 참조화소의 유효성 검사결과 생성된 Planar 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 정해진 방식에 따라 결정된 예측화소값을 갖는 예측 블록을 생성하고, 상기 플래그값이 1이면, 예측화소의 위치에 따라 예측화소의 생성방법이 달라질 수 있다. 상기 플래그값이 1인 경우에는 상기 참조화소들에 인접하는 예측화소들에 대해서는 DC 모드와 동일한 방식의 가중평균으로 예측화소를 생성할 수 있다. 다만, 웨이팅이 달라질 수는 있다.
수직 모드(모드 번호 1)에서도, 상기 참조화소의 유효성 검사결과 생성된 vertical 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 수직방향으로 참조화소를 복사한 값이 예측화소값이 된다. 그러나, 상기 플래그값이 1이면, 상기 현재 블록 또는 서브블록의 좌측 화소값에 인접한 화소들에 대해서는, 상기 복사한 값(또는 대응하는 수직방향의 참조화소값)에, 상기 현재 블록 또는 서브블록의 좌측 참조 화소값의 변화량의 일부를 반영하여 예측화소를 생성할 수 있다. 상기 변화량은 코너 참조화소와 상기 예측위치에 인접하는 참조화소 사이의 변화량을 나타낸다. 또는 상기 현재 블록 또는 서브블록의 좌측 화소값에 인접한 화소들에 대해서는 인접한 좌측 화소값과 상기 복사한 값과의 가중평균을 이용하여 예측화소를 생성할 수 있다.
수평모드들에 대해서도, 상기 수직모드와 방향만 틀릴 뿐, 동일한 방식으로 예측화소를 생성할 수 있다.
한편, 방향성 모드들의 경우에는 현재 블록 또는 서브블록의 크기 및 인트라 예측 모드에 따라 예측블록을 생성하는 방법이 달라질 수 있다. 방향성 모드들의 경우에도, 상기 참조화소의 유효성 검사결과 생성된 대응 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 수직방향으로 참조화소를 복사한 값이 예측화소값이 된다. 그러나, 상기 플래그값이 1이면, 필터링에 사용될 참조화소들이 모두 유효한 경우에 적용할 수 있다. 이 경우, 다음의 방법들 중 하나가 적용될 수 있다.
[방법 1]
도 9에서와 같이, 검은 점으로 표시된 모드가 현재 블록 또는 서브블록의 크기에 따라 예측블록 생성시 참조화소와 예측화소값이 필터링되는 모드일 수 있다. 도면에서 보는 바와 같이, 블록의 크기가 커질수록 필터링 되는 모드 수가 커질 수 있다. 즉, 허용 가능한 모드수가 같은 경우에는 블록의 크기가 커질수록 모드 수가 커질 수 있다. 예를 들어, 32x32에서는 모든 인트라 예측 모드에 대해서 필터를 적용하고, 4x4에서는 방향성 모드들 중 수평 및 수직 모드에 대해서만 필터를 적용할 수 있다. 현재 블록 또는 서브블록의 크기에 따라, 수평 및 수직 모드와 그에 인접한 소정 개수의 인트라 예측 모드의 경우에 예측 블록이 필터링된다.
한편, 수직 모드의 우측에 위치하는 방향성 모드들(이하, 우상측 방향성 모드들이라고 함)과 수평 모드의 아래쪽에 위치하는 방향성 모드들(이하, 좌하측 방향성 모드들이라고 함)에 대해서는 상기한 방식과 동일 또는 유사한 방식을 적용하고, 상기 수직 모드의 좌측에 위치하는 방향성 모드들과, 상기 수평 모드의 위쪽에 위치하는 방향성 모드들에 대해서는 필터링을 수행하지 않을 수도 있다. 또는 상기 수직 모드의 좌측에 위치하는 방향성 모드들 중 미리 정해진 수만큼의 인트라 예측 모드에 대해서만 필터를 적용할수도 있다. 수평 모드의 위쪽에 위치하는 방향성 모드들 중 미리 정해진 수만큼의 인트라 예측 모드에 대해서만 필터를 적용할 수도 있다.
상기 내용들을 예시적으로 표로 나타내면 다음과 같다.
[방법 2]
도 10에서와 같이, 검은 점으로 표시된 모드가 현재 블록 또는 서브블록의 크기에 따라 예측블록 생성시 참조화소와 예측화소값이 필터링되는 모드이다. 상기 도면에서 보는 바와 같이, 블록의 크기가 커질수록 필터링 되는 모드 수가 커질 수 있다. 즉, 허용 가능한 모드수가 같은 경우에는 블록의 크기가 커질수록 모드 수가 커질 수 있다. 그러나, 수평 또는 수직 모드에 인접하지 않는 모드들(세모표시)에 대해서는 필터링 방법이 달라질 수 있다.
한편, 현재 블록 또는 서브블록의 크기가 커짐에 따라 참조화소를 이용하여 예측화소를 필터링하는 영역이 적응적으로 결정될 수 있다.
예를 들어, Vertical / Horizontal Mode일 때, 블록의 크기가 소정 크기 이하인 경우에는 참조화소에 인접한 첫번째 화소들만을 필터링할 수 있다. 그러나, 블록의 크기가 소정 크기보다 큰 경우에는 참조화소에 인접한 첫번째 화소들뿐만 아니라, 두번째 화소들도 필터링을 수행할 수 있다.
또한, 예측화소를 생성하는데 사용되는 참조화소들로부터 소정 거리 이상 떨어진 화소들에 대해서는 상기 참조화소에 인접한 첫번째 화소들뿐만 아니라, 두번째 및 그 이상의 화소들도 필터링을 할 수 있다. 즉, 상기 참조 화소들로부터 멀어질수록 필터링하는 영역이 같거나 증가하도록 할 수 있다.
또한, 예측화소를 생성하는데 사용되는 참조화소들로부터 소정 거리 이상 떨어진 화소들에 대해서는 필터계수를 달리할 수 있다. 즉, 참조화소들에 가중치를 더 부여할 있다. 즉, 상기 참조 화소들로부터 멀어질수록 참조화소에 부여하는 가중치를 같거나 증가하도록 할 수 있다.
상기 방식들은 방향성 모드들에 대해 모두 적용할 수 있다.
또한, 인트라 예측 모드에 따라, 필터링에 사용되는 참조화소의 위치를 달리 선택할 수 있다.
다음으로 인트라 예측 블록 생성장치에 대하여 설명한다. 도 11은 본 발명에 따른 복호화기에서의 인트라 예측 블록 생성 장치를 나타낸다.
1. 파싱부
파싱부는 인트라 예측 정보를 파싱한다. 인트라 예측 정보는 인트라 예측 모드 그룹 지시자와 예측모드 인덱스를 포함한다.
인트라 예측 모드 그룹 지시자는 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하는지 MPM 이외의 그룹에 속하는지를 나타내는 플래그 정보일 수 있다. 또한, 상기 인트라 예측 모드 그룹 지시자는 현재 블록의 인트라 예측 모드가 3개 이상의 인트라 예측 그룹 중 어느 하나에 속하는지를 나타내는 정보일 수 있다.
예측모드 인덱스는 인트라 예측 모드 그룹 지시자가 나타내는 인트라 예측 모드 그룹 내에서의 특정 인트라 예측 모드를 나타내는 정보이다.
CAVLC가 적용된 경우, 상기 인트라 예측 모드 그룹 지시자는 unsigned integer의 형태로 수신하므로, 별도의 엔트로피 복호화를 할 필요가 없다. 그러나, 예측 모드 인덱스는 MPM 그룹에 속하는 경우에는 truncated Exp-Golomb code 또는 unsigned integer Exp-Golomb code 로 이진화된후 엔트로피 부호화되었으므로, 엔트로피 복호화를 수행하여 상기 Exp-Golomb code를 얻은 후에, 상기 예측모드 인덱스를 복원할 수 있다. 그러나, 예측 모드 인덱스는 MPM 그룹에 속하지 않는 경우에는 unsigned integer Exp-Golomb code 로 이진화된 후 엔트로피 부호화되었으므로, 엔트로피 복호화를 수행하여 상기 Exp-Golomb code 를 얻은 후에, 상기 예측모드 인덱스를 복원할 수 있다.
2. 예측모드 복호화부
예측모드 복호화부는 MPM 그룹 구성부, MPM 판단부, 재배열부, 선택부를 포함한다.
MPM 그룹 구성부(MPM 리스트 작성)
MPM 그룹은 현재 블록에 인접한 블록들의 인트라 예측 모드에 따라 적응적으로 결정된다. 상기 MPM 그룹은 2개의 인트라 예측 모드, 3개의 인트라 예측 모드, 또는 4개의 인트라 예측 모드로 구성될 수 있다.
먼저, MPM 그룹이 2개의 인트라 예측 모드, 즉 2개의 MPM 후보자로 구성되는 경우의 MPM 그룹 구성(MPM 리스트 작성) 에 대해 설명한다. 다음의 순서로 구성한다.
먼저, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드를 검사한다. 상기 현재 블록의 상측 또는 좌측 블록이 존재하지 않는 경우에는 인트라 예측 모드가 이용가능하지 않은 것으로 판단한다. 그러나, 상기 상측 또는 좌측 블록이 존재하되, 인트라 예측 부호화되지 않은 경우(즉, 인터 예측 부호화된 경우)에는, 상기 블록의 인트라 예측 모드를 DC 또는 Planar 모드로 설정한다. 상기 상측 또는 좌측 블록이 존재하고, 인트라 예측 모드가 존재하는 경우에는, 상기 인트라 예측 모드를 상기 블록의 인트라 예측 모드로 설정한다.
다음으로, 상기 상측 또는 좌측 블록의 인트라 예측 모드가 현재 블록의 허용 가능한 인트라 예측 모드수 보다 크거나 같으면, 상기 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 맵핑에 대한 구체적인 방법은 후술한다.
다음으로, MPM 리스트를 다음과 같은 방법으로 구성한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드가 모두 존재하고, 서로 다른 경우에는 상기 상측 및 좌측 블록의 인트라 예측 모드 2개를 MPM후보자로 설정한다. 이 경우, 모드번호가 작은 인트라 예측 모드에 인덱스 0을 부여하고, 모드번호가 큰 인트라 예측 모드에 인덱스 1을 부여한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 하나만이 존재하거나, 상기 상측 및 좌측 블록의 인트라 예측 모드가 동일한 경우에는 상기 인트라 예측 모드에 인덱스 0을 부여하고, 다음 중 하나의 방법으로 인덱스 1을 갖는 인트라 예측 모드를 추가한다.
① 상기 존재하는 하나가 DC가 아닌 경우에는 DC를 추가하고, DC인 경우에는 planar 또는 Vertical을 추가한다.
② 상기 존재하는 하나가 planar가 아닌 경우에는 planar를 추가하고, planar인 경우에는 DC 또는 Vertical을 추가한다.
③ 현재 블록의 코너 블록의 인트라 예측 모드를 추가할 수 있다. 코너 블록은 우상측 블록(C), 좌하측 블록(D), 또는 좌상측 블록(E) 중 어느 하나 일 수 있다. 상기 코너 블록을 미리 정해진 순서에 따라 유효한 하나를 MPM 후보자로 추가할 수 있다. 미리 정해진 순서는 C, D, E 또는 E, C, D 순서일 수 있다. 상기 코너 블록의 인트라 예측 모드는 상기 상측 또는 좌측의 유효한 인트라 예측 모드와 다른 모드로 선택된다.
좌측 블록이 복수개 존재하는 경우에는 위에서 아래 방향으로 스캔하여 유효한 첫번째 인트라 예측 모드를 좌측 인트라 예측 모드로 설정한다. 마찬가지로 상측 블록이 복수개 존재하는 경우에는 왼쪽에서 오른쪽으로 스캔하여 유효한 첫번째 인트라 예측 모드를 상측 인트라 예측 모드로 설정한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 모두가 존재하지 않는 경우에는 다음의 하나의 방법을 이용한다.
① DC 및 planar 를 추가한다. 이 경우, DC에 인덱스 0을, planar에 인덱스 1을 할당하거나, planar에 인덱스 0을, DC에 인덱스 1을 할당할 수 있다.
② DC 및 Vertical을 추가한다.
③ Planar 및 Vertical을 추가한다.
④ 코너 블록 중 하나가 이용 가능하면, 이용 가능한 하나와 DC 또는 planar를 추가한다. 이용 가능한 하나는 미리 정해진 순서로 결정한다. 이용 가능한 하나가 DC이면 planar를 추가하고, 이용 가능한 하나가 planar이면 DC를 추가한다.
⑤ 코너 블록 중 2개가 이용 가능하면, 이용 가능한 2개를 추가한다.
먼저, MPM 그룹이 3개의 인트라 예측 모드, 즉 3개의 MPM 후보자로 구성되는 경우의 MPM 그룹 구성(MPM 리스트 작성) 에 대해 설명한다.
먼저, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드를 검사한다. 상기 현재 블록의 상측 또는 좌측 블록이 존재하지 않는 경우에는 인트라 예측 모드가 이용 가능하지 않은 것으로 판단한다. 그러나, 상기 상측 및 좌측 블록이 존재하되, 인트라 예측 부호화되지 않은 경우(즉, 인터 예측 부호화된 경우)에는, 상기 블록의 인트라 예측 모드를 DC 또는 Planar 모드로 설정하거나, 이용 가능하지 않는 것으로 설정할 수 있다. 상기 상측 및 좌측 블록이 존재하고, 인트라 예측 모드가 존재하는 경우에는, 상기 인트라 예측 모드를 상기 블록의 인트라 예측 모드로 설정한다.
다음으로, 상기 상측 또는 좌측 블록의 인트라 예측 모드가 현재 블록의 허용 가능한 인트라 예측 모드수 보다 크거나 같으면, 상기 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 맵핑에 대한 구체적인 방법은 후술한다.
다음으로, MPM 리스트를 다음과 같은 방법으로 구성한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드가 모두 존재하고 서로 다른 경우 에는 상기 두개의 인트라 예측 모드에 인덱스 0, 인덱스 1을 부여한다. 이 경우, 모드 번호가 작은 인트라 예측 모드에 인덱스 0을, 큰 인트라 예측 모드에 인덱스 1을 부여할 수 있다. 그리고, 하나의 인트라 예측 모드를 인덱스 2를 갖는 MPM 후보자로 추가한다. 이 경우의 구체적 방법들은 다음과 같다.
상기 두 개의 인트라 예측 모드 중 하나가 비방향성 모드이고, 다른 하나가 방향성 모드인 경우에는 나머지 비방향성 모드를 추가할 수 있다. 예를 들어, 두 개의 인트라 예측 모드들 중 하나가DC이고, 다른 하나가 Planar가 아닌 경우에는 planar 를 MPM 후보자로 추가할 수 있다. 마찬가지로, 상기 두 개의 인트라 예측 모드 중 하나가 planar이고, 다른 하나가 DC가 아닌 경우에는 DC를 MPM 후보자로 추가할 수 있다. 한편, 상기 두 개의 인트라 예측 모드 중 하나가 비방향성 모드이고, 다른 하나가 방향성 모드인 경우에는 상기 방향성 모드에 인접한 방향성 모드들 중 하나(예를 들어, 인접한 복수개의 방향성 모드들 중 모드 번호가 특정값보다 작은 모드들 중 인접한 하나: 특정값은 9 또는 17)를 추가할 수도 있다. 예를 들어, 특정값이 9인 경우이고 방향성 모드가 11인 경우에는 인접한 19, 20, 4, 5 중에서 4, 5가 허용가능하고, 떨어진 거리도 같으므로 값이 낮은 4를 추가할 수도 있다.
상기 두 개의 인트라 예측 모드가 모두 비방향성 모드인 경우에는 vertical또는 horizontal 모드를 추가할 수 있다. Vertical을 추가하는 것이 더욱 바람직하다.
상기 두 개의 인트라 예측 모드가 모두 방향성 모드인 경우에는 다음의 2가지 방법 중 하나를 사용할 수 있다. (1) 먼저, 상기 방향성 모드들 사이의 방향성 모드를 추가하는 방법이다. 예를 들어, 상기 방향성 모드들이 소정각도 이내 또는 상기 방향성 모드들 사이의 허용 가능한 방향성 모드들의 수가 소정개수 이내이면, 상기 방향성 모드들 사이의 방향성 모드들 중 하나를 추가한다. 상기 소정 개수는 33개의 방향성 모드를 기준으로 할 때, 1~4의 값을 가질 수 있다. 이 경우, 추가되는 방향성 모드는 중간에 위치한 방향성 모드일 수도 있고, 인트라 예측 모드번호가 작은 모드일 수도 있다. (2) 다음으로, 비방향성 모드를 추가하는 방법이다. 이 경우에는 DC 또는 planar를 추가할 수 있다.
다음으로, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 하나만이 존재하는 경우에는 상기 인트라 예측 모드에 인덱스 0을 부여한다. 그리고, 2개의 인트라 예측 모드들을 인덱스 1, 2를 갖는 MPM 후보자로 추가한다. 이 경우의 구체적 방법들은 다음과 같다.
먼저, 상기 존재하는 하나의 인트라 예측 모드가 비방향성 모드(DC 또는 planar)이면, 다른 하나의 비방향성 모드와 vertical을 추가할 수 있다. 또는 vertical과 horizontal을 추가할 수 있다.
그러나, 상기 존재하는 하나의 인트라 예측 모드가 방향성 모드이면, 2개의 비방향성 모드를 추가할 수 있다.
상기 방식들은 상측 및 좌측 블록의 인트라 예측 모드가 동일한 경우에도 적용할 수 있다. 그러나, 좌측 및 상측 블록의 인트라 예측모드가 동일하고, 상기 인트라 예측 모드가 방향성 모드인 경우, 인접하는 2개의 방향성 인트라 예측 모드를 추가할 수도 있다. 또는, DC와 가장 인접한 방향성 모드들 중 주어진 모드 번호가 작은 인트라 예측 모드가 추가될 수 있다.
다음으로, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 모두가 존재하지 않는 경우에는 3개의 MPM 후보자가 추가될 수 있다. DC, planar, Vertical(또는 planar, DC, vertical) 순서로 추가되거나, DC, Vertical, horizontal 순서로 추가될 수 있다.
다음으로, MPM 그룹이 4개의 인트라 예측 모드, 즉 4개의 MPM 후보자로 구성되는 경우의 MPM 그룹 구성(MPM 리스트 작성) 에 대해 설명한다.
먼저, 현재 블록의 상측 및 좌측 블록의 인트라 예측 모드를 검사한다. 상기 현재 블록의 상측 또는 좌측 블록이 존재하지 않는 경우에는 인트라 예측 모드가 이용 가능하지 않은 것으로 판단한다. 그러나, 상기 상측 및 좌측 블록이 존재하되, 인트라 예측 부호화되지 않은 경우(즉, 인터 예측 부호화된 경우)에는, 상기 블록의 인트라 예측 모드를 DC 또는 Planar 모드로 설정하거나, 이용 가능하지 않는 것으로 설정할 수 있다. 상기 상측 및 좌측 블록이 존재하고, 인트라 예측 모드가 존재하는 경우에는, 상기 인트라 예측 모드를 상기 블록의 인트라 예측 모드로 설정한다.
다음으로, 상기 상측 또는 좌측 블록의 인트라 예측 모드가 현재 블록의 허용 가능한 인트라 예측 모드수 보다 크거나 같으면, 상기 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 맵핑에 대한 구체적인 방법은 후술한다.
다음으로, MPM 리스트를 다음과 같은 방법으로 구성한다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드가 모두 존재하고 서로 다른 경우에는 상기 두개의 인트라 예측 모드에 인덱스 0, 인덱스 1을 부여한다. 여기서, 모드번호가 작은 인트라 예측 모드에 인덱스 0을, 모드번호가 큰 인트라 예측모드에 인덱스 1을 부여할 수 있다. 그리고, 2개의 인트라 예측 모드를 MPM 후보자로 추가한다.
둘 다 방향성 모드인 경우에는 2개의 비방향성 모드(DC, Planar)를 추가한다.
둘 중 하나는 방향성 모드이고, 다른 하나는 비방향성 모드인 경우에는 나머지 하나의 비방향성 모드와 하나의 방향성 모드가 추가될 수 있다. 이 경우, 추가되는 방향성 모드는 상기 방향성 모드에 인접한 인트라 예측 모드 중 하나(특정방향의 하나로서 예를 들어, 좌측/아래쪽 또는 모드번호가 낮은 모드)와, 수평 또는 수직 모드 중 하나가 추가될 수 있다. 또는 상기 방향성 모드에 인접한 2개의 방향성 모드가 추가될 수도 있다. 이 경우, 추가되는 방향성 모드들은 좌, 우(또는 상, 하)측에 인접한 1개씩이 추가될 수 있다.
둘 다 비방향성 모드인 경우에는 Vertical, Horizontal 순으로 추가할 수 있다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들이 같은 경우에는 상기 인트라 예측 모드에 인덱스 0을 부여한다. 그리고, 3개의 모드를 MPM 후보자로 추가한다.
상기 인트라 예측 모드가 비방향성 모드(DC 또는 planar)이면, 나머지 하나의 비방향성 모드에 인덱스 1을 부여하고 와 2개의 방향성 모드가 추가된다. 추가되는 방향성 모드들은 vertical, horizontal 순 또는 그 역순으로 추가될 수 있다.
상기 인트라 예측 모드가 방향성 모드이면, 1개의 비방향성 모드(planar 또는 DC)가 모드에 인덱스 1을 부여하고, 허용 가능한 방향성 모드들 중 상기 방향성 모드에 가장 인접한 방향성을 갖는 2개의 인트라 예측 모드가 추가될 수 있다. 이 경우, 7에 가장 인접한 방향성 모드들 중 하나는 10가 될 수 있고, 그 역도 마찬가지로 성립한다. 또는 2개의 비방향성 모드에 인덱스 1, 2를 부여하고, 상기 방향성 모드에 인접한 모드들 중 하나(좌측/아래쪽 또는 모드번호가 낮은 모드)에 인덱스 3을 추가할 수 있다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 중 하나만이 존재하는 경우에는 다음의 하나의 방법을 이용한다.
상기 인트라 예측 모드가 비방향성 모드이면, 다른 하나의 비방향성 모드와, Vertical, Horizontal순 또는 그 역순으로 추가할 수 있다.
상기 인트라 예측 모드가 방향성 모드이면, (1) 2개의 비방향성 모드가 추가되고, 상기 방향성 모드에 가장 인접한 방향성을 갖는 2개의 인트라 예측 모드 중 주어진 모드 번호가 작은 인트라 예측 모드 또는 특정 방향, 예를 들어, 좌측(아래쪽)의 인트라 예측 모드가 추가될 수 있다. 또는 (2) DC또는 planar가 추가되고, 상기 방향성 모드에 가장 인접한 방향성을 갖는 2개의 인트라 예측 모드가 추가될 수 있다.
현재 블록의 상측 및 좌측 블록의 인트라 예측 모드들 모두 존재하지 않는 경우에는 2개의 비방향성 모드와 2개의 방향성 모드가 추가될 수 있다. 이 경우, 2개의 비방향성 모드에 인덱스 0, 1을 부여하고, 2개의 방향성 모드에 인덱스 2, 3을 부여할 수 있다. 예를 들어, DC, planar, V, H순서로 인덱스를 부여하거나, Planar, DC, V, H순서로 인덱스를 부여하거나, DC, V, H, planar 순으로 추가될 수 있다.
상기한 방법들은 인트라 예측모드의 수가 18 또는 35인 경우, 또는 상기 블록의 크기가 4x4~32x32인 경우에 적용하는 것을 전제로 한 것이다.
맵핑부
MPM 그룹 구성부(=MPM 리스트 작성)는 맵핑부를 포함한다. 맵핑부에서 상기한 인트라 예측 모드의 맵핑을 수행한다.
현재 블록의 유효한 상측 또는 좌측 블록의 인트라 예측 모드의 모드 번호가 현재 블록의 허용된 인트라 예측 모드가 아닌 경우에는 상기 유효한 상측 또는 좌측 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다. 즉, 현재 블록의 유효한 상측 또는 좌측 블록의 인트라 예측 모드의 모드번호가 현재 블록의 인트라 예측 모드수보다 크거나 같은 경우(planar 모드를 0으로 둘 경우)에는 상기 유효한 상측 또는 좌측 블록의 인트라 예측 모드를 현재 블록의 허용 가능한 인트라 예측 모드로 맵핑한다.
이 경우, 현재 블록의 크기가 64x64인 경우에는 4개의 인트라 예측 모드로 맵핑한다. 상기 4개의 인트라 예측 모드는 planar mode(0), vertical mode(1), horizontal mode(2), DC mode(3)이다. 따라서, 좌측 또는 상측 블록의 인트라 예측 모드가 방향성 예측 모드이고, vertical mode 및 horizontal mode가 아닌 경우에는 상기 좌측 및 상측 블록의 방향성 인트라 예측 모드를 상기 4개의 인트라 예측 모드들 중 하나로 맵핑한다.
(제1 실시예)
도 4에 도시된 바와 같이, vertical mode(1)에 인접한 제1 개수의 인트라 예측 모드들(예를 들어, 12, 22, 23, 13, 24, 6)은 Vertical mode(1)로 맵핑되고, horizontal mode(2)에 인접한 제2개수의 인트라 예측 모드들(예를 들어, 8, 29, 16, 30, 31, 17, 32, 9)은 horizontal mdoe(2)로 맵핑된다. 그리고, 나머지는 DC(3)로 맵핑될 수 있다. 이 경우, Vertical과 horizontal의 우선순위를 달리하기 위해 상기 제1 개수 및 제2 개수는 다를 수 있다. 또한, 상기 Vertical mode를 중심으로 양방향으로 동일하지 않은 수의 인접 방향성 모드들이 상기 vertical mode로 맵핑될 수 있다. horizontal mode를 중심으로 양방향으로 동일한 개수가 horizontal mode로 맵핑될 수 있다. 상기 DC 모드 대신에 planar 모드로 맵핑될 수도 있다.
(제2 실시예)
V, H로 매핑되는 방향성 모드들은 제1 실시예와 동일할 수 있다. 그러나, 나머지 방향성 모드들은 DC 및 Planar 중 어느 하나로만 맵핑 되는 것이 아니라, 일부는 DC로, 나머지 모두는 Planar로 맵핑될 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 25, 14, 26, 7 및 33, 18, 34, 10은 DC로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 planar로 맵핑될 수 있다. 또한, 상기 DC와 Planar로 맵핑되는 모드들이 바뀌어질 수도 있다. 즉, 25, 14, 26, 7 및 33, 18, 34, 10은 Planar로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 DC로 맵핑될 수 있다
(제3 실시예)
V, H로 매핑되는 방향성 모드들이 제1, 2 실시예와 다를 수 있다. 예를 들어, 도 6에 도시된 바와 같이, V에 맵핑되는 방향성 모드 또는 모드들의 수를 상기 제1, 2 실시예와 달리할 수 있다. 예를 들어, 5, 21, 12, 22, 23, 13, 24, 6을 V에 맵핑시키거나, 21, 12, 22, 23, 13, 24를 V에 맵핑시키거나, 12, 22, 23, 13를 V에 맵핑 시킬 수 있다. V에 맵핑되는 V의 양방향 방향성 모드들의 수가 동일할 수도 있다.
마찬가지로, 도 6에 도시된 바와 같이, H에 맵핑되는 방향성 모드들의 수를 상기 제1, 2실시예와 달리할 수 있다. 예를 들어, 8, 29, 16, 30, 31, 17, 32, 9를 H에 맵핑시키거나, 29, 16, 30, 31, 17, 32를 H에 맵핑시키거나, 16, 30, 31, 17를 H에 맵핑시킬 수 있다.
상기 V와 H 중에 V에 우선권을 주기 위해, V에 맵핑되는 방향성 모드들의 수를 H에 맵핑되는 방향성 모드들의 수보다 크게 할 수 있다. 마찬가지로, H에 우선권을 주기 위해 반대로도 할 수 있으나, 전자가 바람직하다.
그러나, 나머지 방향성 모드들은 DC 및 Planar 중 어느 하나로만 맵핑 되는 것이 아니라, 일부는 DC로, 나머지 모두는 Planar로 맵핑될 수 있다.
예를 들어, 도 6에 도시된 바와 같이, 25, 14, 26, 7 및 33, 18, 34, 10은 DC로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 planar로 맵핑될 수 있다. 또한, 상기 DC와 Planar로 맵핑되는 모드들이 바뀌어질 수도 있다. 즉, 25, 14, 26, 7 및 33, 18, 34, 10은 Planar로 맵핑되고, 나머지 모드들(4, 19, 11, 20, 4, 21, 27, 15, 28)은 DC로 맵핑될 수 있다
(제4 실시예)
모드번호 4~17은 V, H, DC중 하나로 맵핑(제1예와 동일), 모드번호 18 이상은 planar mode로 맵핑될 수 있다.
현재 블록의 크기가 4x4인 경우에는 좌측 또는 상측 블록의 인트라 예측 모드가 방향성 예측 모드이고, 현재 블록의 허용 가능한 인트라 예측 모드에 포함되지 않는 경우에는 현재 블록의 허용 가능한 인트라 예측 모드들 중 어느 하나로 맵핑될 수 있다. 이 경우, 0~9번 모드에 우선권을 부여하기 위해 상기 0~9(10개) 중 하나로 맵핑될 수 있다.
(제1 실시예)
도 7에 도시된 바와 같이, vertical mode(1), horizontal mode(2), 모드번호 3, 4, 5, 7, 8, 0에 가장 인접하는 각 방향의 하나의 모드들은 상기 모드들로 맵핑될 수 있다. 구체적으로, 22, 23은 1에, 20, 21은 5에, 27, 19는 4, 24, 25는 6에, 28, 29는 8에 30, 31은 2에, 32, 33은 9에 맵핑될 수 있다. 그리고, 26는 7에 맵핑될 수 있다. 그리고, 나머지의 모드들, 즉, 모드번호 10, 11, 12, 13, 14, 15, 16, 17, 18은 DC 또는 planar중 어느 하나로 맵핑될 수 있다.
또한, 상기 나머지의 모드들은 DC또는 Planar에 맵핑될 수 있다. 예를 들어, 13, 14, 17, 18, 34, 10은 Planar에 11, 12, 15, 16은 DC에 맵핑될 수 있다. 또는 반대로, 13, 14, 17, 18, 34, 10은 DC에 11, 12, 15, 16은 Planar에 맵핑될 수 있다. 후자가 더 바람직하다.
(제 2 실시예)
제1 실시예와 동일하게 맵핑시키되, 모드번호 10을 7에 맵핑시킬 수 있다. 이 경우, DC 또는 Planar에 맵핑되는 모드들은 10을 제외하고는 제1 실시예와 동일할 수 있다.
(제 3 실시예)
복잡도를 줄이기 위해 10~17은 DC 모드에, 18~34은 Planar 모드에 맵핑시킬 수도 있다. 또는 그 역으로도 할 수 있다.
예측모드 복원부
수신된 상기 인트라 예측 모드 그룹 지시자가 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하는 것을 나타내는지 여부를 판단한다.
<속하는 경우>
속하는 것을 나타내면, MPM 그룹내의 예측모드 인덱스가 나타내는 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정된다. 상기 인트라 예측 모드 그룹 지시자는 현재 블록의 인트라 예측 모드가 MPM 그룹에 속하는지 MPM 이외의 그룹에 속하는지를 나타내는 플래그 정보일 수 있다.
<속하지 않는 경우>
그러나, 속하지 않는 것을 나타내면, MPM 그룹을 제외한 현재 블록의 허용된 인트라 예측 모드들(remaining intra prediction mode:잔여 인트라 예측 모드) 중 예측 모드 인덱스가 나타내는 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정된다.
MPM 그룹이 2개의 인트라 예측 모드로 구성되는 경우
먼저, 상기 MPM 그룹에 속하는 2개의 인트라 예측 모드 중, 모드번호가 작은 인트라 예측 모드의 모드번호와 수신되어 복원된 예측 모드 인덱스를 비교한다. 비교결과, 복원된 예측 모드 인덱스가 상기 모드번호가 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 2개의 인트라 예측 모드 중, 모드번호가 큰 인트라 예측 모드의 모드번호가 수신되어 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 큰 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 예측 모드 인덱스 값과 대응하는(동일한 값의 모드번호를 갖는) 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다.
MPM 그룹이 3개의 인트라 예측 모드로 구성되는 경우
먼저, 상기 MPM 그룹에 속하는 3개의 인트라 예측 모드 중, 모드번호가 가장 작은 인트라 예측 모드의 모드번호와 수신되어 복원된 예측 모드 인덱스를 비교한다. 비교결과, 복원된 예측 모드 인덱스가 상기 모드번호가 가장 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 3개의 인트라 예측 모드 중, 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 2개의 인트라 예측 모드 중, 모드번호가 가장 큰 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 가장 큰 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 예측 모드 인덱스 값과 대응하는(동일한 값의 모드번호를 갖는) 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다.
MPM 그룹이 4개의 인트라 예측 모드로 구성되는 경우
먼저, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 가장 작은 인트라 예측 모드의 모드번호와 수신되어 복원된 예측 모드 인덱스를 비교한다. 비교결과, 복원된 예측 모드 인덱스가 상기 모드번호가 가장 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 두번째로 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 세번째로 작은 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 세번째로 작은 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 MPM 그룹에 속하는 4개의 인트라 예측 모드 중, 모드번호가 가장 큰 인트라 예측 모드의 모드번호와 상기 예측 모드 인덱스를 비교한다. 비교결과, 상기 예측 모드 인덱스가 상기 모드번호가 가장 큰 인트라 예측 모드의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스 값을 1만큼 증가시킨다. 그렇지 않을 경우에는 예측 모드 인덱스 값을 유지한다.
다음으로, 상기 예측 모드 인덱스 값과 대응하는(동일한 값의 모드번호를 갖는) 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 결정한다
재배열부
인트라 예측 모드 복호화부는 재배열부를 포함할 수도 있다.
현재 블록의 인트라 예측 모드가 잔여 인트라 예측 모드들 중 하나인 경우, 상기 인트라 예측 모드번호가 MPM 그룹의 구성에 따라 적응적으로 바뀔 수 있다. 즉, MPM에 속하는 인트라 예측 모드들을 제외한 잔여 인트라 예측 모드가 일정한 순서로 재배열되었을 때의 인덱스가 예측 모드 인덱스로 설정된다. 따라서, 수신된 예측 모드 인덱스 및 MPM 그룹에 속하는 인트라 예측 모드들에 따라 적응적으로 잔여 인트라 예측 모드들을 재배열한 후, 상기 예측 모드 인덱스가 나타내는 현재 블록의 인트라 예측 모드를 잔여 인트라 예측 모드들에서 선택한다.
이 경우, 상기 재배열부는 다음과 같은 방법으로 잔여 인트라 예측 모드를 재배열할 수 있다.
[방법 1]
현재 블록의 허용된 인트라 예측 모드들 중에서 MPM 그룹에 속하는 인트라 예측 모드를 제외한 잔여 인트라 예측 모드들을 재배열하고, 상기 수신된 예측 모드 인덱스에 대응하는 인덱스가 나타내는 인트라 예측 모드를 현재 블록의 인트라 예측 모드로 선택한다. 이 경우, 상기 잔여 인트라 예측 모드들을 재배열한 후 수신된 예측 모드 인덱스에 대응하는 인덱스가 나타내는 인트라 예측 모드를 선택할 수도 있지만, 상기한 바와 같이, 현재 블록의 인트라 예측 모드 인덱스와 상기 MPM 그룹에 속하는 인트라 예측 모드번호를 낮은 모드부터 순차적으로 비교하여 현재 블록의 인트라 예측 모드를 결정할 수도 있다.
[방법 2]
아래의 방법들은 MPM 그룹을 구성하는 MPM 후보자의 수가 2, 3, 4인 경우에 모두 적용 가능하다.
현재 블록의 좌측 및 상측 후보자가 둘 다 방향성 모드인 경우
둘 다 방향성 모드인 경우에는 후보자들 사이의 각도가 소정 범위 이내(또는 그 사이의 방향성 모드의 수가 소정 개수 이내)인 경우에는 상기 방향성 모드에 인접한 미리 정해진 개수의 인트라 예측 모드들이 다른 방향성 모드들보다 작은 인덱스를 갖도록 재배열한다. 상기 소정 개수는 예측 블록의 크기에 따라 달라질 수 있다.
<2개의 방향성 모드가 동일한 경우>
두개의 방향성 모드가 동일한 경우에는 인접하는 방향성을 갖는 미리 정해진 개수의 인트라 예측 모드들에 작은 인덱스를 부여한다. 상기 미리 정해진 개수는 현재 블록의 크기에 따라 달라질 수 있다. 예를 들어, 현재 블록의 크기가 4x4인 경우에는 인접하는 2개 또는 4개의 인트라 예측 모드가 우선순위를 가질 수 있다. 현재블록의 크기가 8x8~32x32인 경우에는 4개 또는 8개의 인트라 예측 모드가 우선순위를 가질 수 있다.
예를 들어, 현재 블록의 인트라 예측 모드가 5, 예측 블록의 크기가 4x4, 미리 정해진 개수가 2인 경우에는 11, 12가 다른 잔여 방향성 모드들보다 낮은 인덱스를 가질 수 있다. 또한, 현재 블록의 인트라 예측 모드가 5, 예측 블록의 크기가 4x4, 미리 정해진 개수가 4인 경우에는 11, 12, 4, 1이 다른 잔여 방향성 모드들보다 낮은 인덱스를 가질 수 있다.
예를 들어, 현재 블록의 인트라 예측 모드가 5, 예측 블록의 크기가 8x8, 미리 정해진 개수가 4인 경우에는 20, 21, 11, 12가 다른 잔여 방향성 모드들보다 낮은 인덱스를 가질 수 있다. 다른 변형예들도 동일한 방식으로 인덱스를 부여한다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
<2개의 방향성 모드의 각도가 소정 범위 이내인 경우>
두개의 방향성 모드의 각도가 소정 범위 이내인 경우에는 상기 방향성 모드들에 인접한 미리 정해진 개수의 인트라 예측 모드들이 다른 방향성 모드들보다 작은 인덱스를 가질 수 있다. 또는 각도가 아니라 그 사이에 존재하는 방향성 인트라 예측 모드의 수가 소정 개수 이내인 것으로 기준을 정할수도 있다. 이하, 개수로 설명한다. 상기 개수는 예측 블록의 크기에 따라 달라질 수 있다.
먼저, 두개의 방향성 모드들 사이에 유효한 인트라 예측 모드가 존재하지 않는 경우(서로 인접한 경우)에 대해 설명한다.
4x4에 대해 상기 두개의 방향성 모드들 사이에 유효한 개수가 존재하지 않으면, 각각의 모드에 가장 인접한 1개 또는 2개의 방향성 모드들에 우선순위가 부여될 수 있다. 예를 들어, 상기 2개의 방향성 모드가 5, 11일 때에는 4, 12또는 4, 12, 15, 1에 다른 방향성 모드들보다 작은 인덱스를 부여할 수 있다.
8x8~32x32의 경우에는 가장 인접한 2개 또는 4개의 방향성 모드들에 우선순위가 부여될 수 있다. 예를 들어, 상기 2개의 방향성 모드가 5, 20일때에는 11, 21, 19, 12또는 11, 21, 19, 12, 4, 22, 27, 1에 다른 방향성 모드들보다 작은 인덱스를 부여할 수 있다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
<2개의 방향성 모드들 사이에 1개의 인트라 예측 모드가 존재하는 경우>
다음으로, 2개의 방향성 모드들 사이에 1개의 인트라 예측 모드가 존재하는 경우에는 그 사이의 방향성 모드가 다른 방향성 모드들보다 낮은 인덱스를 갖는다. 그리고, 각 방향으로 인접한 미리 정해진 개수의 방향성 인트라 예측 모드가 다른 방향성 인트라 예측 모드보다 낮은 인덱스를 갖도록 설정한다. 상기 미리 정해진 개수는 4x4의 경우에는 1개 또는 2개이고, 8x8~32x32의 경우에는 2개 또는 4개로 설정할 수 있다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
<2개의 방향성 모드들 사이에 2개 의 인트라 예측 모드가 존재하는 경우>
2개의 방향성 모드들 사이에 2개의 인트라 예측 모드가 존재하는 경우에는 그 사이의 방향성 모드들이 다른 방향성 모드들보다 낮은 인덱스를 갖는다. 그리고, 각 방향으로 인접한 미리 정해진 개수의 방향성 인트라 예측 모드가 다른 방향성 인트라 예측 모드보다 낮은 인덱스를 갖도록 설정한다. 상기 미리 정해진 개수는 4x4의 경우에는 1개, 8x8~32x32의 경우에는 2개로 설정할 수 있다.
또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
상기 2개의 방향성 모드들 사이에 N개의 인트라 예측 모드가 존재하는 경우, 상기 N이 미리 정해진 개수보다 작을 경우에는 상기 N개의 방향성 모드들이 다른 방향성 모드들보다 낮은 인덱스를 가질 수 있다.. 상기 미리 정해진 개수는 4x4의 경우에는 1~3개, 8x8~32x32의 경우에는 2~6개로 설정할 수 있다.
둘 다 방향성 모드인 경우이고, 후보자들 사이의 각도가 소정 범위 이내(또는 그 사이의 방향성 모드의 수가 소정 개수 이내)가 아닌 경우에는 다음의 방법 중 하나를 이용한다.
(1) 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬한다. 이때, DC 모드와 planar 모드에 가장 작은 인덱스를 부여할 수 있다. 즉, DC에 0, planar에 1 또는 planar에 0, DC에 1을 부여할 수 있다. 또는 planar, DC, V, H순, DC, Planar, V, H순, 도는 V, H, DC, Planar 순으로 배열하고 나머지는 순차적으로 배열할 수 있다.
(2) 각 후보자들에 인접한 소정 개수의 방향성 모드에 작은 인덱스를 부여할 수 있다. 이 경우, 각 후보자마다 소정 개수의 방향성 모드들 선택하고, 각 후보자마다 하나씩 교차적으로 나열하여 인덱스를 부여할 수 있다.
(3) 또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
(4) 비방향성 모드들은 가장 낮은 인덱스에 부여하거나, 상기 미리 정해진 개수 다음의 인덱스로 부여될 수 있다.
좌측 및 상측 MPM 후보자들 중 하나만 방향성 모드인 경우
둘 중 하나가 방향성 모드이고, 다른 하나가 비방향성 모드인 경우에는, 비방향성 모드에 가장 작은 인덱스(0)를 부여하고, 나머지들은 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬할 수 있다.
둘 중 하나가 방향성 모드이고, 다른 하나가 비방향성 모드인 경우에는, 비방향성 모드에 가장 작은 인덱스(0)를 부여하고, 상기 하나의 방향성 모드를 중심으로 소정 개수에 적은 인덱스를 부여할 수 있다. 나머지들은 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬할 수 있다. 또는 상기 방향성 모드를 기준으로 모든 방향성 모드들에 대해 동일한 방식을 적용할 수 있다.
좌측 및 상측 MPM 후보자가 둘 다 비방향성 모드인 경우
둘다 비방향성 모드인 경우에는, 방향성 모드들을 상기 도면의 인트라 예측 모드 인덱스에 따라 재정렬할 수 있다.
3. 인트라 예측 단위 결정부
인트라 예측 단위 결정부는 현재 블록의 변환 크기 정보를 기초로 인트라 예측 단위를 결정한다.
구체적으로, 현재 블록이 복수개의 서브블록으로 나누어져 변환 부호화 되었는지를 나타내는 정보(변환 크기 정보로서, 예를 들면, split_transform_flag 또는 SDIP 여부를 나타내는 정보)에 따라 인트라 예측블록을 생성하는 과정이 달라지게 된다. 즉, 상기 변환 크기 정보가 현재 블록의 크기와 동일함을 나타내면, 현재 블록의 크기로 인트라 예측 블록이 생성된다. 그러나, 상기 변환 크기 정보가 현재 블록의 크기 보다 작은 복수개의 서브블록으로 나누어져 변환 부호화 되었음을 나타내면, 상기 각 서브블록별로 미리 정해진 순서에 따라 인트라 예측 블록을 생성한다. 상기 미리 정해진 순서는 서브블록의 형태에 따라 달라질 수 있다. 예를 들어, 서브블록이 정사각형이면 래스터 스캔 순서 또는 지그재그 스캔 순서일 수 있다. 서브블록이 직사각형이면 위에서 아래 또는 왼쪽에서 오른쪽 순서일 수 있다.
그리고, 상기 순서에 따라 미리 정해진 순서로 각 서브블록의 예측 블록을 생성한 후, 잔차 신호를 복원하여 복원 서브블록을 생성한다. 그리고, 그 다음의 서브블록의 예측블록을 생성하기 위해 상기 복원된 서브블록에 속하는 참조화소들을 이용한다. 이를 통해 보다 정확한 인트라 예측을 수행할 수 있다. 상기 각 서브블록에 속하는 인트라 예측 모드는 서브블록의 형태에 따라 다르게 설정될 수 있다. 예를 들어, 정사각형의 서브블록들은 동일한 인트라 예측 모드가 할당될 수도 있고, 직사각형의 서브블록들은 각 서브블록들 별로 독립적으로 인트라 예측 모드가 할당될 수도 있다. 이 경우 각 직사각형의 서브블록들별로 인트라 예측 모드를 복원하는 과정을 거쳐야 한다. 직사각형의 서브블록들의 경우에도 동일한 인트라 예측 모드가 할당될 수도 있다.
4. 참조화소 유효성 판단부 , 필터링 플래그 설정부 , 참조화소 생성부
현재 블록 또는 서브블록의 인트라 예측을 위한 참조화소들을 유도한다. 상기 참조화소들은 인접하는 복원된 블록 또는 서브블록들의 복원화소들이다. 상기 참조화소들은 도 7에 도시된 바와 같이, 현재 블록 또는 서브블록의 크기를 NxM으로 가정할 경우, (x=0,..2N-1, y=-1) 위치의 2N개의 상측 참조화소들(영역 A)과, (x=-1, y=0,..2M-1) 위치의 좌측 참조화소들(영역 L) 및 (x=-1, y=-1) 위치의 코너화소를 포함한다.
참조화소 유효성 판단부는 현재 블록 또는 서브블록의 인트라 예측을 위한 참조화소들의 유효성을 판단한다. 상기 참조화소들은 인접하는 복원된 블록 또는 서브블록들의 복원화소들이다. 상기 참조화소들은 도 8에 도시된 바와 같이, 현재 블록 또는 서브블록의 크기를 NxM으로 가정할 경우, (x=0,..2N-1, y=-1) 위치의 2N개의 상측 참조화소들(영역 A)과, (x=-1, y=0,..2M-1) 위치의 좌측 참조화소들(영역 L) 및 (x=-1, y=-1) 위치의 코너화소를 포함한다.
현재 블록 또는 서브블록에 인접한 상기 참조화소들의 위치에 대응하는 화소들을 포함하는 상측 또는 좌측 블록들이 존재하지 않는 경우에는 상기 위치에 대응하는 참조화소들은 유효하지 않은 것으로 판단한다. 또한, 인트라 예측에 의해 복원된 화소들만을 이용하도록 하는 모드(즉, constrained_intra_prediction 모드)의 경우에는 상기 참조화소들의 위치에 대응하는 화소들을 포함하는 상측 또는 좌측 블록들이 인트라 예측에 의해 복원된 화소가 아니면(즉, 인터 예측에 의해 복원된 화소이면), 상기 위치의 화소들도 유효하지 않는 것으로 판단한다.
필터링 플래그 설정부는, 현재 블록의 인트라 예측모드가 특정 모드인 경우에 예측된 블록의 필터링 여부를 결정하는 플래그를 설정할 수 있다. 상기 플래그는 상기 복원된 현재 블록 또는 서브 블록의 인트라 예측 모드 및 상기 인트라 예측모드에 따라 상기 블록 또는 서브블록의 예측블록의 필터링을 위해 사용되는 참조화소들의 유효성 여부에 따라 결정될 수 있다. 예를 들어, 현재 블록 또는 서브블록의 인트라 예측 모드가 DC인 경우에는 (x=0,..N-1, y=-1) 위치의 N개의 상측 참조화소들과 (x=-1, y=0,..M-1) 위치의 좌측 참조화소들 및 (x=-1, y=-1) 위치의 코너화소 중 어느 하나라도 유효하지 않은 것으로 판단되는 경우에는 상기 DC 예측블록 필터링 플래그를 0으로 설정하여, 상기 DC 예측블록 생성시 필터링을 수행하지 않도록 할 수 있다. 그러나 DC 예측블록의 필터링을 위해 사용되는 참조화소들이 모두 유효한 경우에는 상기 프래그를 1로 설정하여 DC 예측블록 생성시 상기 참조화소들을 이용하여 예측 블록의 화소들중 상기 참조화소들에 인접한 화소들을 필터링할 수 있도록 할 수 있다.
마찬가지로, 현재 블록 또는 서브블록의 인트라 예측모드가 planar인 경우에는 planar 예측블록 필터링을 위해 사용되는 참조화소들, 즉, (x=0,..N-1, y=-1) 위치의 N개의 상측 참조화소들과 (x=-1, y=0,..M-1) 위치의 좌측 참조화소들 및 코너 예측화소 중 어느 하나라도 유효하지 않은 것으로 판단되는 경우에는 planar 예측블록 필터링 플래그를 0으로 설정하여, 상기 planar 예측블록 생성시 필터링을 수행하지 않도록 할 수 있다. 그러나 planar 예측블록 필터링을 위해 사용되는 참조화소들이 모두 유효한 경우에는 상기 프래그를 1로 설정하여 planar 예측블록 생성시 상기 참조화소들을 이용하여 예측 블록의 화소들 중 상기 참조화소들에 인접한 화소들을 필터링할 수 있도록 할 수 있다.
마찬가지로, 현재 블록 또는 서브블록의 인트라 예측모드가 vertical인 경우에는 vertical 예측 블록의 필터링을 위해 사용되는 참조화소들, 예를 들면, (x=-1, y=-1,…M-1)의 참조화소들 또는 (x=0, y=-1,…N-1)의 참조화소들 중 어느 하나로도 유효하지 않는 것으로 판단되는 경우에는 vertical 예측블록 필터링 플래그를 0으로 설정하여, vertical 예측블록 생성시 필터링을 수행하지 않도록 할 수도 있다. 또한, 현재 블록 또는 서브블록의 인트라 예측모드가 horizontal인 경우에는 horizontal 예측 블록의 필터링을 위해 사용되는 참조화소들, 예를 들면, (x=-1,…N-1, y=-1) 의 참조화소들 또는 (x=-1, y=0,…N-1)의 참조화소들 중 어느 하나로도 유효하지 않는 것으로 판단되는 경우에는 horizontal 예측블록 필터링 플래그를 0으로 설정하여, vertical 예측블록 생성시 필터링을 수행하지 않도록 할 수도 있다.
방향성 모드들 중 예측블록 필터링이 수행되는 인트라 예측모드들에 대해서도 예측 블록 필터링을 위해 사용되는 참조화소들의 유효성 여부에 따라 플래그값을 설정할 수도 있다.
위에서는 예측블록 필터링을 위해 사용되는 참조화소들 중 어느 하나라도 유효하지 않는 경우에 예측 블록 필터링 플래그를 0으로 설정하였으나, 상기 참조화소들 중 일부 또는 전부가 유효하지 않은 경우에 상기 플래그값을 0으로 설정할 수도 있다. 또한, 상기 플래그값의 설정여부는 인트라 예측 모드에 따라 예측블록이 필터링되는지 여부에 따라 결정될 수 있다. 또한, 상기 값들은 휘도 성분에 대해 적용한다.
색차 성분의 경우에도 현재 블록 또는 서브블록의 인트라 예측모드가 DC인 경우에 동일한 방식으로 예측블록 플래그의 설정여부를 결정할 수 있다. 또한, planar, vertical, horizontal 모드에서도 동일한 방식으로 결정될 수 있다. 색차 성분의 인트라 예측모드가 DM 모드(즉, 휘도 블록의 인트라 예측 모드와 동일)인 경우에는 휘도 성분에서의 방식과 동일한 방식으로 결정될 수 있다. 색차 성분의 인트라 예측 모드가 LM 모드인 경우에도 상기 플래그값을 설정할 수도 있다.
그러나, 복잡도 감소를 위해서, 상기 예측블록 필터링을 위한 필터링 플래그를 모든 모드에 대해 적용하지 않을 수도 있다.
참조화소 생성부는, 상기 현재 블록 또는 서브블록의 참조화소들 중 적어도 하나가 유효하지 않은 것으로 판단되는 경우에는 유효하지 않은 위치에 대응하는 참조화소를 생성한다. 여기서, 참조화소 생성 여부를 판단하기 위한 참조화소들은 2N+2M+1개의 참조화소들로 판단할 수도 있으며, 현재 블록의 인트라 예측 모드에 따라 예측 블록을 생성하는데 이용되는 참조화소들 중 적어도 하나가 유효하지 못한 경우에, 유효하지 않은 위치에 대응하는 참조화소들을 생성하는 것이 바람직하다. 한편, 색차 블록의 경우에도 동일한 방식으로 참조화소들의 생성여부를 결정할 수 있다.
상기한 유효성 판단의 결과, 유효하지 않은 위치에 대응하는 참조화소를 생성하는 것으로 판단되면, 다음의 방식들 중 하나로 참조화소를 생성한다.
[방법 1]
모든 참조화소들이 유효하지 않은 것으로 판단되는 경우에는, 2L-1 값으로 대체한다. 여기서 L은 휘도성분을 나타내는 위한 비트수이다.
유효하지 않은 참조화소 위치를 기준으로 한쪽 방향으로만 유효한 참조화소가 존재하는 경우에는 상기 유효한 참조화소 중 가장 가까운 위치에 있는 참조화소값으로 대체할 수 있다. 이 경우, 유효한 참조화소 중 가장 가까운 위치에 있는 적어도 2개 이상의 참조화소값을 이용하여 참조화소를 생성할 수도 있다.
유효하지 않은 참조화소 위치를 기준으로 유효한 참조화소가 양쪽방향 모두에 존재할 경우, 각각의 방향으로 가장 인접한 참조화소 2개의 평균값으로 대체할 수 있다. 또는 상기 생성될 참조화소의 위치에 따라 서로 다른 참조화소 2개에 서로 다른 가중치를 두어 참조화소를 생성할수도 있다. 이를 위해 선형 결합 방식을 이용할 수도 있다.
5. 참조화소 필터링부
참조화소 필터링부는, 현재 블록 또는 서브블록의 복원된 인트라 예측 모드에 따라, 현재 블록 또는 서브블록의 참조화소를 적응적으로 필터링한다.
구체적으로, 현재 블록 또는 서브블록의 크기 및 인트라 예측 모드에 따라 적응적으로 참조화소들을 필터링한다.
현재 블록 또는 서브블록의 인트라 예측모드가 DC인 경우에는 참조화소들을 필터링하지 않는다. 방향성 모드들 중 수직(모드 1), 수평(모드 2)인 경우에는 참조 화소들에 필터를 적용하지 않는다. 그 이외의 방향성 모드들에 대해서는 적응적으로 참조 화소를 필터링한다. 또한, 현재 예측 유닛의 상측의 참조화소들 중 가장 오른쪽의 참조 화소(즉 (x=2N-1, y=-1)에 위치하는 참조 화소)와 현재 예측 유닛의 좌측의 참조 화소들 중 가장 아래쪽에 위치하는 참조 화소(즉 (x=-1, y=2N-1)에 위치하는 참조 화소) 필터링 하지 않고, 나머지 화소들은 이웃하는 2개의 화소들을 이용하여 필터링한다.
허용되는 가장 작은 크기(4x4)의 현재 블록 또는 서브블록의 경우에는 복잡도 감소를 위해 참조화소 필터링을 인트라 예측 모드에 관계없이 수행하지 않을 수도 있다.
상기 필터링은 참조화소들 사이의 화소값의 변화량을 스무딩(smoothing)하기 위한 것으로, low-pass filter를 적용한다. Low-pass filter는 3-tap 필터인 [1, 2, 1] 또는 5-tap 필터인 [1, 2, 4, 2, 1]일 수 있다.
동일한 인트라 예측모드가 허용되는 현재 블록 또는 서브블록의 크기들(예를 들어, 8x8~32x32)에 대해서는 상기 크기들이 커짐에 따라 더 많은 수의 인트라 예측 모드들에 대하여 참조화소들을 필터링한다. 구체적으로, 현재 블록 또는 서브블록의 크기에 따라, 상기 수평 또는 수직 모드 및 이에 인접한 미리 정해진 개수의 방향성 인트라 예측모드들에 대해서는 참조화소를 필터링하지 않을 수 있다. 상기 미리 정해진 개수는 0~7의 값을 가질 수 있다. 상기 미리 정해진 개수는 현재 블록 또는 서브블록의 크기가 커짐에 따라 감소한다.
6. 예측블록 생성부
예측블록 생성부는, 현재 블록 또는 서브블록의 복원된 인트라 예측 모드에 따라, 참조화소들을 이용하여 현재 블록 또는 서브블록의 예측블록을 생성한다. 상기 참조화소들은 현재 블록 또는 서브블록의 크기 및 인트라 예측모드에 따라 적응적으로 필터링된 화소들일 수 있다.
DC 모드의 경우에는, 상기 참조화소의 유효성 검사결과 생성된 DC 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 동일한 예측화소값을 갖는 예측 블록을 생성하고, 상기 플래그값이 1이면, 예측화소의 위치에 따라 예측화소의 생성방법이 달라질 수 있다.
구체적으로, 상기 플래그값이 0인 경우에는 (x=0,..N-1, y=-1) 위치의 N개의 상측 참조화소들과 (x=-1, y=0,..M-1) 위치의 좌측 참조화소들 및 (x=-1, y=-1) 위치의 코너화소의 평균값이 예측화소값이 된다. 그러나, 상기 플래그값이 1이면, 상기 참조화소들에 인접하지 않는 위치의 예측 화소값은 상기 평균값으로 설정될 수 있으나, 상기 참조화소들과 인접하는 위치의 예측 화소값은 상기 평균값과 인접하는 참조화소값이 가중평균을 이용하여 생성할 수 있다. 상기 가중평균은 적용 가능한 미리 정해진 크기보다 큰 현재 블록 또는 서브블록에 대해서는 적용하지 않을 수도 있다.
Planar 모드에서도, 상기 참조화소의 유효성 검사결과 생성된 Planar 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 정해진 방식에 따라 결정된 예측화소값을 갖는 예측 블록을 생성하고, 상기 플래그값이 1이면, 예측화소의 위치에 따라 예측화소의 생성방법이 달라질 수 있다. 상기 플래그값이 1인 경우에는 상기 참조화소들에 인접하는 예측화소들에 대해서는 DC 모드와 동일한 방식의 가중평균으로 예측화소를 생성할 수 있다. 다만, 웨이팅이 달라질 수는 있다.
수직 모드(모드 번호 1)에서도, 상기 참조화소의 유효성 검사결과 생성된 vertical 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 수직방향으로 참조화소를 복사한 값이 예측화소값이 된다. 그러나, 상기 플래그값이 1이면, 상기 현재 블록 또는 서브블록의 좌측 화소값에 인접한 화소들에 대해서는, 상기 복사한 값(또는 대응하는 수직방향의 참조화소값)에, 상기 현재 블록 또는 서브블록의 좌측 참조 화소값의 변화량의 일부를 반영하여 예측화소를 생성할 수 있다. 상기 변화량은 코너 참조화소와 상기 예측위치에 인접하는 참조화소 사이의 변화량을 나타낸다. 또는 상기 현재 블록 또는 서브블록의 좌측 화소값에 인접한 화소들에 대해서는 인접한 좌측 화소값과 상기 복사한 값과의 가중평균을 이용하여 예측화소를 생성할 수 있다.
수평모드들에 대해서도, 상기 수직모드와 방향만 틀릴 뿐, 동일한 방식으로 예측화소를 생성할 수 있다.
한편, 방향성 모드들의 경우에는 현재 블록 또는 서브블록의 크기 및 인트라 예측 모드에 따라 예측블록을 생성하는 방법이 달라질 수 있다. 방향성 모드들의 경우에도, 상기 참조화소의 유효성 검사결과 생성된 대응 예측블록 필터링 플래그의 값에 따라 예측 블록을 생성하는 방법을 달리할 수 있다. 즉, 상기 플래그값이 0이면 수직방향으로 참조화소를 복사한 값이 예측화소값이 된다. 그러나, 상기 플래그값이 1이면, 필터링에 사용될 참조화소들이 모두 유효한 경우에 적용할 수 있다. 이 경우, 다음의 방법들 중 하나가 적용될 수 있다.
[방법 1]
도 9에서와 같이, 검은 점으로 표시된 모드가 현재 블록 또는 서브블록의 크기에 따라 예측블록 생성시 참조화소와 예측화소값이 필터링되는 모드일 수 있다. 도 9에서 보는 바와 같이, 블록의 크기가 커질수록 필터링 되는 모드 수가 커질 수 있다. 즉, 허용 가능한 모드수가 같은 경우에는 블록의 크기가 커질수록 모드 수가 커질 수 있다. 예를 들어, 32x32에서는 모든 인트라 예측 모드에 대해서 필터를 적용하고, 4x4에서는 방향성 모드들 중 수평 및 수직 모드에 대해서만 필터를 적용할 수 있다. 현재 블록 또는 서브블록의 크기에 따라, 수평 및 수직 모드와 그에 인접한 소정 개수의 인트라 예측 모드의 경우에 예측 블록이 필터링된다.
한편, 수직 모드의 우측에 위치하는 방향성 모드들(이하, 우상측 방향성 모드들이라고 함)과 수평 모드의 아래쪽에 위치하는 방향성 모드들(이하, 좌하측 방향성 모드들이라고 함)에 대해서는 상기한 방식과 동일 또는 유사한 방식을 적용하고, 상기 수직 모드의 좌측에 위치하는 방향성 모드들과, 상기 수평 모드의 위쪽에 위치하는 방향성 모드들에 대해서는 필터링을 수행하지 않을 수도 있다. 또는 상기 수직 모드의 좌측에 위치하는 방향성 모드들 중 미리 정해진 수만큼의 인트라 예측 모드에 대해서만 필터를 적용할수도 있다. 수평 모드의 위쪽에 위치하는 방향성 모드들 중 미리 정해진 수만큼의 인트라 예측 모드에 대해서만 필터를 적용할 수도 있다.
상기 내용들을 예시적으로 표로 나타내면 다음과 같다.
[방법 2]
상기 도 10에서와 같이, 검은 점으로 표시된 모드가 현재 블록 또는 서브블록의 크기에 따라 예측블록 생성시 참조화소와 예측화소값이 필터링되는 모드이다. 도 10에서 보는 바와 같이, 블록의 크기가 커질수록 필터링 되는 모드 수가 커질 수 있다. 즉, 허용 가능한 모드수가 같은 경우에는 블록의 크기가 커질수록 모드 수가 커질 수 있다. 그러나, 수평 또는 수직 모드에 인접하지 않는 모드들(세모표시)에 대해서는 필터링 방법이 달라질 수 있다.
한편, 현재 블록 또는 서브블록의 크기가 커짐에 따라 참조화소를 이용하여 예측화소를 필터링하는 영역이 적응적으로 결정될 수 있다.
예를 들어, Vertical / Horizontal Mode일 때, 블록의 크기가 소정 크기 이하인 경우에는 참조화소에 인접한 첫번째 화소들만을 필터링할 수 있다. 그러나, 블록의 크기가 소정 크기보다 큰 경우에는 참조화소에 인접한 첫번째 화소들뿐만 아니라, 두번째 화소들도 필터링을 수행할 수 있다.
또한, 예측화소를 생성하는데 사용되는 참조화소들로부터 소정 거리 이상 떨어진 화소들에 대해서는 상기 참조화소에 인접한 첫번째 화소들뿐만 아니라, 두번째 및 그 이상의 화소들도 필터링을 할 수 있다. 즉, 상기 참조 화소들로부터 멀어질수록 필터링하는 영역이 같거나 증가하도록 할 수 있다.
또한, 예측화소를 생성하는데 사용되는 참조화소들로부터 소정 거리 이상 떨어진 화소들에 대해서는 필터계수를 달리할 수 있다. 즉, 참조화소들에 가중치를 더 부여할 있다. 즉, 상기 참조 화소들로부터 멀어질수록 참조화소에 부여하는 가중치를 같거나 증가하도록 할 수 있다.
상기 방식들은 방향성 모드들에 대해 모두 적용할 수 있다.
또한, 인트라 예측 모드에 따라, 필터링에 사용되는 참조화소의 위치를 달리 선택할 수 있다.
인트라 예측 잔여 블록 생성한다. 그리고, 생성된 예측 블록과 잔여 블록을 더하여 복원블록을 생성한다. 잔여 블록의 생성은 도 2에서 도시한 과정과 같다.
다만, 적용되는 역스캐닝 방식은 다음과 같이 변경될 수 있다.
[현재 변환 블록이 인트라 예측인 경우]
현재 변환 블록이 휘도 블록이면, 현재 변환 블록을 포함하는 현재 예측 블록(이하, 현재 블록이라 함)의 인트라 예측 모드와, 현재 변환 블록의 크기에 따라 적응적으로 스캔타입을 결정할 수 있다.
스캔 타입은 3가지 종류가 있다. 도 12에 도시된 바와 같이, 지그재그 스캔, 수평스캔, 수직 스캔이 존재할 수 있다. 여기서 변환 계수가 CABAC로 부호화/복호화된 경우에는 지그재그 스캔 대신에 diagonal 스캔을 수행할 수도 있다.
도 13는 현재 변환 블록의 크기와 인트라 예측 모드에 따른 스캔 타입을 나타내는 도면이다. 도 13에 도시된 바와 같이, 현재 변환 블록의 크기에 따라 수직모드(1)와 이에 인접한 미리 정해진 개수의 인트라 예측모드에 대해서는 수평스캔(○ 표시)을, 이에 수평모드(2)와 이에 인접한 미리 정해진 개수의 인트라 예측 모드에 대해서는 수직스캔(△ 표시)을 수행할 수 있다.
예를 들어, 변환 블록의 크기가 4x4인 경우에는 수직모드(1)와 이에 양방향으로 인접한 P개씩(예를 들어, 2개씩의 모드들:12, 13, 5, 6)에 대해서는 수평 스캔을 수행한다. 수직모드(2) 이에 양방향으로 인접한 2개씩의 모드들(16, 17, 8, 9)에 대해서는 수직 스캔을 수행할 수 있다.
변환 블록의 크기가 8x8인 경우에는 수직모드(1)와 이에 양방향으로 인접한 Q개씩의 모드들(예를 들어, 4개씩 : 22, 23, 12, 13, 21, 24, 5, 6)에 대해서는 수평 스캔을 수행한다. 그리고, 수직모드(1)와 이에 양방향으로 인접한 Q개씩의 모드들(예를 들어, 4개씩 : 30, 31, 16, 17, 29, 32, 8, 9) 에 대해서는 수직 스캔을 수행한다.
변환 블록의 크기가 16x16의 경우에는 수직모드(1)와 이에 양방향으로 인접한 R개씩의 모드들(예를 들어, 2개씩 : 22, 23, 12, 13 또는 1개씩:22, 23)에 대해서는 수평 스캔을 수행한다. 그리고, 수직모드(1)와 이에 양방향으로 인접한 R개씩의 모드들(예를 들어, 2개씩 : 30, 31, 16, 17 또는 1개씩:30, 31) 에 대해서는 수직 스캔을 수행한다.
변환 블록의 크기가 32x32인 경우에는 수직모드(1)와 이에 양방향으로 인접한 S개씩의 모드들(예를 들어, 1개씩 : 22, 23 또는 0개씩)에 대해서는 수평 스캔을 수행한다. 그리고, 수직모드(1)와 이에 양방향으로 인접한 S개씩의 모드들(예를 들어, 1개씩 : 30, 31 또는 0개씩) 에 대해서는 수직 스캔을 수행한다.
여기서, Q, R, S의 관계는 Q ≥ R ≥ S 인 것이 바람직하다. Q, R, S는 0 또는 양의 정수이다.
한편, 블록의 크기가 소정 크기보다 큰 경우에는 서브블록 단위로 스캔을 수행할 수 있다. 이 경우, last non-zero 변환 계수의 위치를 이용하여 스캔해야 할 서브블록들을 알 수 있게 된다. 또한, 각 서브블록들의 경우, 변환계수를 갖지 않는 경우에는 이를 나타내는 정보(1bit의 플래그)가 비트스트림으로 전송될 수 있다. 따라서, 상기 정보들을 이용하여 서브블록을 역스캔하여 변환 블록을 생성할 수 있다. 도 14는 상기 방식의 일예를 나타낸다.
[예 1]
블록의 크기가 미리 정해진 크기(예를 들어, 4x4 또는 8x8)보다 큰 경우에는 상기 블록을 복수개의 NxN의 서브블록으로 나누어 스캔할 수 있다. 여기서 N은 4 또는 8인 것이 바람직하다. 이 경우, 상기 인트라 예측 모드 및 변환 블록의 크기에 따라 결정되는 스캔패턴을 상기 서브블록 내의 변환 계수를 스캔할 때 사용할 수 있다. 서브블록들 간의 스캔 순서는 상기 결정되는 스캔패턴 또는 지그재그 스캔순서로 할 수 있다. 또는 래스터 스캔 순서로 할 수도 있다.
[예 2]
블록의 크기가 미리 정해진 크기보다 큰 경우에는 상기 변환 블록을 미리 정해진 개수(예를 들어, 4)의 서브블록으로 나누어 스캔할 수 있다. 이 경우, 상기 인트라 예측 모드 및 변환 블록의 크기에 따라 결정되는 스캔패턴을 상기 서브블록 내의 변환 계수를 스캔할 때 사용할 수 있다. 서브블록들 간의 스캔 순서는 상기 결정되는 스캔패턴 또는 지그재그 스캔순서로 할 수 있다. 또는 래스터 스캔 순서로 할 수도 있다.
한편, SDIP가 적용된 블록의 경우에는 변환 블록의 크기가 2NxhN 또는 hNx2N이된다. 이 경우의 각 변환 블록의 인트라 예측 모드 및 변환 블록의 크기에 따라 상기한 방식과 동일한 방식이 적용될 수도 있다. 이 경우, 변환 블록의 크기는 변환 계수의 수에 의해 결정된다. 즉, 2x8의 경우에는 4x4에 대응하고, 4x16의 경우에는 8x8이 적용될 수 있다. 그러나, 인트라 예측 모드에 동일한 상기 서브블록내의 서로 서브보다 큰 경우에는 인트라 예측 모드와 관계없이 변환 블록의 형태에 따라 스캔 패턴이 결정될 수도 있다. 즉, 2NxhN의 경우에는 수직 스캔을 수행하고, hNx2N의 경우에는 수평스캔을 수행하도록 결정할 수 있다.
한편, 블록 또는 서브블록 내의 변환계수의 스캔은 역방향으로 하는 것이 바람직하다. 이 경우, 서브블록들 간의 스캔은 정방향으로 또는 역방향으로 할 수 있다.
상기한, CABAC의 경우에는 상기한 지그재그 스캔을 상기 지그재그 스캔과 다른diagonal 스캔으로 대체할 수 있다.
현재 블록이 색차 블록인 경우에는 현재 블록의 인트라 예측 모드에 관계없이 지그재그 스캔만을 수행할 수 있다. 또는, 소정 크기보다 작은 색차블록에 대해서는 인트라 예측 모드에 따라 스캔 패턴을 결정할 수 있다. 이 경우, 색차 블록의 인트라 예측 모드가 DM 모드인 경우에는 상기한 휘도 블록의 인트라 예측 모드에 대응하여 스캔 패턴을 결정할 수 있다. 또한, 수평 모드인 경우에는 수직 스캔, 수직 모드인 경우에는 수평 스캔을 수행할 수 있다. 색차 블록의 인트라 예측 모드가 DC 또는 LM 모드인 경우에는 지그재그 스캔을 수행할 수 있다.
[현재 변환 블록이 인터 예측인 경우]
[제1예]
현재 변환 블록이 휘도 블록이면, 현재 변환 블록을 포함하는 현재 예측 블록(이하, 현재 블록이라 함)의 크기와 관계없이 지그재그 스캔을 수행할 수 있다. CABAC의 경우에는 상기한 지그재그 스캔을 상기 지그재그 스캔과 다른 diagonal 스캔으로 대체할 수 있다.
[제2예]
현재 변환블록의 형태에 따라 적응적으로 스캔타입을 결정할 수 있다. 예를 들어, 현재 변환블록이 2NxN 또는 2NxhN인 경우에는 수직스캔을, Nx2N 또는 hNx2N인 경우에는 수평스캔을 수행할 수 있다. 정사각형인 경우에는 지그재그 스캔을 수행할 수도 있다. 이 경우, 변환 블록의 크기가 소정 크기 이상인 경우에는 지그재그 스캔만을 수행할 수도 있다.
또는 블록의 크기가 소정 크기보다 큰 경우에는 서브블록 단위로 스캔을 수행할 수 있다. 이 경우, last non-zero 변환 계수의 위치를 이용하여 스캔해야 할 서브블록들을 알 수 있게 된다. 또한, 각 서브블록들의 경우, 변환계수를 갖지 않는 경우에는 이를 나타내는 정보(1bit의 플래그)가 비트스트림으로 전송될 수 있다. 따라서, 상기 정보들을 이용하여 서브블록을 역스캔하여 변환 블록을 생성할 수 있다.
[예 1]
블록의 크기가 미리 정해진 크기(예를 들어, 4x4 또는 8x8)보다 큰 경우에는 상기 블록을 복수개의 NxN의 서브블록으로 나누어 스캔할 수 있다. 이 경우, 변환 블록의 형태에 따라 결정되는 스캔패턴을 상기 서브블록 내의 변환 계수를 스캔할 때 사용할 수 있다. 서브블록들 간의 스캔 순서는 상기 결정되는 스캔패턴 또는 지그재그 스캔순서로 할 수 있다. 또는 래스터 스캔 순서로 할 수도 있다.
[예 2]
블록의 크기가 미리 정해진 크기보다 큰 경우에는 상기 변환 블록을 미리 정해진 개수(예를 들어, 4)의 서브블록으로 나누어 스캔할 수 있다. 이 경우, 변환 블록의 형태에 따라 결정되는 스캔패턴을 상기 서브블록 내의 변환 계수를 스캔할 때 사용할 수 있다. 서브블록들 간의 스캔 순서는 상기 결정되는 스캔패턴 또는 지그재그 스캔순서로 할 수 있다. 또는 래스터 스캔 순서로 할 수도 있다.
색차 블록의 경우에는 하나의 스캔패턴(예를 들어, 지그재그 스캔)만을 적용할 수 있다. 그러나, 상기한 휘도 블록과 동일하게 변환 블록의 형태에 따라 미리 정해진 스캔 패턴을 적용할 수도 있다.
[ CABAC 의 경우]
상기한 내용들은 변환 계수(또는 변환 계수의 크기)를 스캔하는 방식에 관한 것이다. 그러나, CABAC으로 엔트로피 부호화를 수행할 경우에는 Significant Map, Level, signs을 부호화하여야 한다. 이때, level과 마찬가지로 Significant Map도 스캔이 되어 부호화되어야 하고, 복호기에서는 역스캔되어 2차원의 significant map을 구성하여야 한다. 다음의 방법들이 존재할 수 있다.
[예1]
인트라 예측의 경우로서, Sig. Map 스캔은 블록의 크기가 미리 정해진 크기보다 큰 경우에는 상기 변환 블록을 미리 정해진 개수(예를 들어, 4)의 서브블록으로 나누어 스캔할 수 있다. 예를 들어, 미리 정해진 크기가 8x8이라고 할때, 변환블록의 크기가 16x16의 경우에는 4개의 8x8 서브블록단위로 스캔을 수행할 수 있다. 그리고, 각 서브블록의 스캔 패턴은 상기한 도 ~ 및 상기 도면의 설명에서와 동일하게 스캔 패턴이 결정될 수 있다. 또는 변환 블록의 크기와 관계없이 인트라 예측 모드에 따라서만 스캔 패턴이 결정될 수도 있다.
이 경우, level과 sign도 Sig. Map과 동일한 크기로 동일한 스캔패턴을 사용할 수도 있다. 또는 4x4 서브블록단위로 스캔을 수행하되, 4x4 서브블록 내의 스캔은 상기한 Sig. Map의 스캔 패턴과 동일하게 할 수도 있다.
Sig. Map과 level의 스캐닝 방향은 동일할 수 있다. 상기 스캐닝 방향은 역방향인 것이 바람직하다.
[예2]
Sig. Map과 level coding에 동일한 스캔패턴을 적용한다. 또한, 스캔 방향도 동일하게 할 수 있다. 상기 스캔 패턴은 상기한 "현재 변환 블록이 인트라 예측인 경우" 및 "현재 변환 블록이 인터 예측인 경우" 기술된 내용과 동일한 방식을 수행할 수 있다. 또는 미리 정해진 크기의 변환 블록들에 대해서만 스캔 패턴을 변화시킬 수도 있다.
Sig.Map은 블록의 크기와 관계없이 last significant coefficient로부터 DC로 스캔 패턴에 따라 스캔을 수행할 수 있다. 그러나, level의 경우에도 동일한 방식으로 스캔을 수행하되, 복수개의 서브셋으로 나누어 스캐닝할 수 있다. 상기 복수개의 서브셋은 정사각형의 형태일 수도 있지만, 스캔 패턴에 따라 결정되는 미리 정해진 level 개수(예를 들어, 16개)의 집합일 수도 있다. 도 15는 지그재그 스캔일 경우의 서브셋들을 나타내는 도면이다. 동일한 색이 하나의 서브셋을 구성한다.
이 경우, 상기 서브셋의 위치에 따라 서로 다른 컨텍스트 set들이 결정될 수 있다.
종합하면, 스캔 패턴은 다음의 방법들의 다양한 조합에 의해 결정될 수 있다.
- 현재 블록 또는 서브 블록의 예측 모드에 따라 스캔 패턴이 달라진다. 인트라인 경우에는 3가지 스캔 방식 중 하나를, 인터인 경우에는 1가지 스캔 방식만 사용할 수도 있다.
- 현재 블록 또는 서브 블록의 예측 모드가 인트라인 경우, 현재 블록 또는 서브 블록의 인트라 예측 모드 및 변환블록(현재 블록 또는 서브블록일 수 있음)의 크기에 따라 스캔 패턴이 달라질 수 있다.
- 현재 블록 또는 서브 블록의 예측 모드가 인터인 경우, 변환블록(현재 블록 또는 서브블록일 수 있음)의 모양 및/또는 변환블록의 크기에 따라 스캔 패턴이 달라질 수 있다.
- 현재 블록 또는 서브 블록의 변환 계수의 엔트로피 부호화 방식에 따라 스캔패턴이 달라질 수 있다.
상기한 잔차 블록 복원 과정에 적용되는 역양자화 방식은 구체적으로 다음과 같이 적용될 수 있다. 상기 2차원의 잔여계수 변환 블록을 역양자화한다. 구체적인 방법은 다음과 같다.
[ QU 결정]
현재 변환블록에 적용된 양자화 파라미터를 구하기 위해 QP를 복원하기 위한 최소 단위(QU)를 결정한다.
QP는 수신된 cu_qp_delta_enabled_flag를 이용하여 구할 수 있다. cu_qp_delta_enabled_flag는 QPY를 LCU 단위로 변경할지 또는 그 하위의 CU에서도 추가적으로 변경이 가능하도록 할지를 정의하고 있다. cu_qp_delta_enabled_flag의 값이 1(즉, LCU보다 작은 CU에서의 QPY는 각변경을 허용)하는 경우에는, PPS(picture parameter set)에서 max _ cu _ qp _ delta _ depth 를 통해 QPY 변경을 허용하는 최소 크기의 CU size(이를 LCU를 기준으로 maximum allowed depth 형태로 표현)를 정의하고 있다. QPY 변경을 허용하는 최소 크기의 CU size는 다음 수식에 의해 결정된다.
log2MinCUDQPSize = Log2MaxCUSize - max_cu_qp_delta_depth
여기서, log2MinCUDQPSize가 최소 크기의 CU size를 나타낸다.
따라서, cu_qp_delta_enabled_flag와 max _ cu _ qp _ delta _ depth 를 통해 상기 QP가 변경될 수 있는 최소 크기의 CU size(이하, QU:quantization unit이라 함)를 구한다.
한편, cu_qp_delta_enabled_flag와 max _ cu _ qp _ delta _ depth 를 하나의 변수로 설정할 수도 있다. 예를 들어, cu_qp_delta_enabled_info를 기존의 cu_qp_delta_enabled_flag와 max_cu_delta_depth를 합친 정보로 수신할 수 있다. 즉, cu_qp_delta_enabled_info의 값을 복원하여, 상기 값이 0인 경우에는 QP 고정, 1인 경우에는 LCU 단위의 QP 변경(즉, QU=LCU), 2인 경우에는 QU=(LCU/2)x(LCU/2), 3인 경우에는 QU=(LCU/4)x(LCU/4) 등으로 설정할 수도 있다.
상기한 경우, cu_qp_delta_enabled_info를 SPS에서만 정의하는 것이 아니라 PPS마다 on/off 하도록 정의하여 더 flexible하게 QP를 조정할 수도 있다.
[ dQP 복원]
QU 단위로 dQP를 복원한다.
<슬라이스마다 QP range 가 정해지는 경우>
슬라이스마다 MaxQP와 MinQP 또는 이를 나타내는 정보(예를 들어, QP range)가 정의될 수 있다. 상기 QP range는 slice QP값을 기준으로 대칭적으로 허용되는 값으로 전송하는 것이 효과적임. 예를 들어 전송하는 파라미터는 (MaxQP-sliceQP)값일 수 있음. 이 경우, 상기 파라미터가 2이고, slice QP가 25라면 허용되는 QP range는 23~27로 설정될 수 있다.
QP range가 정해지면, 허용가능한 dQP 값을 알 수 있다. 따라서, 엔트로피 복호화된 dQP 인덱스를 통해 dQP 값을 구할 수 있다.
예를 들어, dQP indexing은 다음과 같을 수 있다. dQP는 현재 QP와 예측 QP와의 차이값을 임. QP range가 전송되면, 가능한 dQP 값은 MinQP-predQP to MaxQP-predQP로 제한되므로, dQP의 인덱스를 기존 방법과 달리 설정할 수 있음. 예를 들어, MaxQP=27, MinQP=23 and predQP=24라면 인덱싱은 다음의 표 1과 같이 될 수 있다.
Index dQP value
0 0
1 1
2 -1
3 2
4 3
허용 가능한 QP range가 전송되면, 허용 가능한 인덱스도 정해지게 되므로, CABAC의 경우, dQP index를 부호화하기 위한 binarization을 truncated unary binarization을 이용하는 것이 효과적이다.
< QP range 를 전송하지 않거나 QP range 가 클 경우>
dQP를 기존의 unary binarization을 이용하는 것이 아니라, 절대값과 부호를 구분할 수 있도록 binarization을 하는 것이 타당할 수 있도 있다. 예를 들어, dQP의 절대값을 unary binarization을 하고, 여기에 부호를 나타내는 bin을 마지막 위치 또는 두번째 위치에 위치시킬 수도 있다.
한편, 부호화기에서 dQP가 0인지 아닌지를 플래그를 통해 알려줄 수도 있다.
< dQP 를 부호화하기 위한 dQP binarization >
HM 3.0에서는 unary binarization을 이용하여 이진화하였다. 그러나, 이 경우, 비트수가 많이 소모되는 문제가 있으므로, dQP의 절대값 또는 dQP-1의 절대값을 unary binarization하고, 여기에 dQP의 부호를 추가하여 bin string을 구성할 수 있다. 이 경우, 추기되는 dQP의 부호는 dQP의 절대값의 unary binarization된 bin string의 맨 마지막에 위치할 수 있다. 또는 dQP의 절대값 또는 dQP-1의 절대값을 truncated unary binarization하고, 여기에 dQP의 부호를 추가하여 bin string을 구성할 수 있다. 이 경우에는 복호기의 복잡도 감소를 위해 dQP의 절대값의 unary binarization된 bin string의 두번째 bin에 위치하도록 할 수도 있다.
따라서, 엔트로피 복호화된 bin string으로부터 상기한 binarization 방식에 대응하는 인덱스를 복원하여 상기 인덱스에 대응하는 dQP를 복원할 수 있다.
[ QP 예측자 결정]
QU 단위로 QP 예측자를 결정한다. QP 예측자는 다음의 방법 중 하나로 결정될 수 있다.
<실시예 1>
왼쪽의 QU가 존재하면, 왼쪽의 QU의 QP(즉, 왼쪽 QU의 가장 오른쪽?)가 QP 예측자가 된다. 그러나, 왼쪽의 QU가 존재하지 않는 경우에는 부호화/복호화 순서상 바로 이전의 QU의 QP가 QP 예측자로 정의된다.
<실시예 2>
현재 CU가 QU보다 작고, QU 내에 선행하는 CU가 존재하는 경우에는 QP 예측자를 구할 필요가 없다. 그러나, 현재 CU가 QU보다 작지 않거나, QU내의 좌상측 CU이면 다음의 과정을 통해 QP 예측자를 유도한다.
- 현재 CU의 cu_qp_delta 및 현재 cu의 좌상측 블록의 예측 모드가 입력된다. Cu_qp_delta는 cu syntax를 통해 수신한다.
- 현재 CU의 예측 모드와 동일한 예측 모드를 갖는 좌측 CU(또는 QU) 및 상측 CU(또는 QU)의 QP들 중 적어도 하나를 이용하여 QP 예측자를 유도한다.
A. 현재 CU가 인트라 예측인 경우, 좌측 CU 및 상측 CU가 모두 인트라 예측이면 좌측 CU 및 상측 CU의 QP들의 평균값이 QP 예측자가 된다.
QP 예측자 = ( QPY , ABOVE + QPY , LEFT + 1 ) / 2
또는 좌측 CU의 QP를 QP 예측자로 결정할 수 있다.
B. 현재 CU가 인트라 예측이고, 좌측 CU 및 상측 CU 중 하나만이 인트라 예측이면 인트라 예측인 CU의 QP를 QP 예측자로 결정한다.
C. 현재 CU가 인트라 예측이고, 좌측 CU 및 상측 CU 중 인트라 예측이 없는 경우(즉, 모두 인터인 경우)에는 좌측 및 상측 CU의 QP의 평균값 또는 좌측 CU의 QP 를 QP 예측자로 결정할 수 있다. 또는 상기 값들에서 소정값(예를 들어, 2 또는 3)을 뺀 값을 QP 예측자로 결정할 수 있다.
D. 현재 CU가 인터 예측인 경우에는 좌측 CU 및 상측 CU가 모두 인터 예측이면 좌측 CU 및 상측 CU의 QP들의 평균값이 QP 예측자가 된다.
QP 예측자 = ( QPY , ABOVE + QPY , LEFT + 1 ) / 2
또는 좌측 CU의 QP를 QP 예측자로 결정할 수 있다.
E. 현재 CU가 인터 예측이고, 좌측 CU 및 상측 CU 중 하나만이 인터 예측이면 인터 예측인 CU의 QP를 QP 예측자로 결정한다.
F. 현재 CU가 인트라 예측이고, 좌측 CU 및 상측 CU 중 인터 예측이 없는 경우(즉, 모두 인터인 경우)에는 좌측 및 상측 CU의 QP의 평균값 또는 좌측 CU의 QP 를 QP 예측자로 결정할 수 있다. 또는 상기 값들에서 소정값(예를 들어, 2 또는 3)을 더한 값 QP 예측자로 결정할 수 있다.
G. 상기 조건을 모두 만족시키지 않을 경우에는 부호화/복호화 순서상 바로 이전의 CU의 QP를 QP 예측자로 정의할 수 있다.
H. 여기에서, 좌측 또는 상측 CU의 잔차신호가 0이 아닌 경우에 상기 방법을 적용하고, 잔차 신호가 0인 경우에는 그 CU를 non available로 하여 처리할 수 있다.
<실시예 3>
현재 CU가 QU보다 작고, QU 내에 선행하는 CU가 존재하는 경우에는 QP 예측자를 구할 필요가 없음. 그러나, 현재 CU가 QU보다 작지 않거나, QU내의 좌상측 CU이면 다음의 과정을 통해 QP 예측자를 유도한다. 도 16을 참조하여 설명한다.
- 현재 CU의 cu_qp_delta 및 현재 cu의 좌상측 블록의 예측 모드가 입력된다. Cu_qp_delta는 cu syntax를 통해 수신한다.
- 예측 모드가 인트라 예측이면, 다음의 과정을 수행한다.
A. 현재 블록의 인트라 예측 모드가 수직방향 모드들 중 하나이면 상측 QU의 QP가 현재 CU의 QP 예측자로 정의되고, 수평방향 모드들 중 하나이면 좌측 QU의 QP가 현재 CU의 QP 예측자로 정의되고, 비방향성 모드들(DC 또는 planar)이면 좌측 QU의 QP가 현재 CU의 QP 예측자로 정의할 수 있다.
B. 또는 현재 블록의 인트라 예측 모드가 수직모드 및 이에 가장 인접하는 소정 개수(예를 들어, 각 방향으로 4 or 5개씩)의 방향성 모드들인 경우에는 상측 CU의 QP를 현재 CU의 QP 예측자로 정의할 수도 있다. 그리고, 그 이외의 방향성 모드들 및 비방향성 모드들에 대해서는 좌측 CU의 QP를 이용하여 QP 예측자로 정의.
C. 그러나, 현재 블록의 상측 QU 또는 좌측 QU 중 하나만이 available할 경우에는 available한 CU의 QP를 QP 예측자로 정의하고, 모두 non available할 경우에는 부호화/복호화 순서상 이전에 부호화/복호화된 CU의 QP를 이용하여 QP 예측자를 결정
- 예측 모드가 인터인 경우에는 다음의 과정을 수행한다.
A. 현재 CU의 상측 QU의 현재 CU와 인접하는 상측 CU의 예측모드가 현재 CU의 예측 모드와 동일하고, 현재 CU의 좌측 QU의 현재 CU와 인접하는 좌측 CU의 예측 모드가 현재 CU와 동일한 경우에는 다음과 같다.
QP 예측자 = ( ( ( QPY , ABOVE + QPY , LEFT + 1 ) / 2
B. 현재 CU의 상측 CU의 예측 모드 및 좌측 CU의 예측 모드들 중 하나만이 현재 CU의 예측 모드와 동일한 경우에는 동일한 CU의 QP를 QP 예측자로 정의한다.
C. 현재 CU의 상측 CU 및 좌측 CU 중 하나만이 존재할 경우에는 존재하는 CU의 QP를 QP 예측자로 정의 또는 모드가 다를 경우 오프셋(2 또는 3) 값을 더해준다.
D. 모두 non available할 경우에는 부호화/복호화 순서상 이전에 부호화/복호화된 CU의 QP를 이용하여 QP 예측자를 결정한다.
<실시예 4>
QP가 CU 내에서 변하도록 설정할 경우, 즉 PU 또는 TU 단위로도 적응적으로 설정할 수 있도록 할 경우에는, 상기한 CU들의 QP가 상기 CU들에 대응하는 PU 또는 TU의 QP로 변경된다. 이때 상측 QP는 상측 CU의 좌측에 위치하는 PU 또는 TU의 QP, 좌측 QP는 좌측 CU의 상측에 위치하는 PU 또는 TU의 QP를 의미할 수 있다.
예를 들어, QP가 TU 단위로 변경되도록 설정할 경우, 소정 크기 이하의 TU에 대해서는 동일한 QP가 적용되도록 하는 파라미터를 부호기가 설정하여 복호기로 전송한다. 그리고, 상기 파라미터에 기초하여 소정 크기보다 작은 TU의 QP는 동일하게 설정하는 것은 앞서 CU의 경우와 동일하게 진행한다.
[ QP 복원]
dQP와 QP 예측자를 이용하여 QP를 구한다. 즉, 현재 CU의 QP=dQP+QP 예측자가 된다.
[ 역양자화 수행]
다음으로, QP를 이용하여 현재의 변환 블록의 역양자화를 수행한다.
역양자화를 위해 상기 QP를 이용하여 역양자화 매트릭스를 구하여 역양자화를 수행한다. 양자화 매트릭스는 예측 모드, 변환블록의 크기에 따라 미리 정해진 것일 수 있다.
그러나, SPS 또는 PPS마다 양자화 매트릭스를 변형시켜 부호화효율을 증대시킬 수 있다. 이 경우에는 양자화 매트릭스가 부호화되어 전송될 수 있다. 따라서, 복호기는 전송된 양자화 매트릭스 정보를 복원한 후에, 역양자화를 수행할 수도 있다.
구체적으로, SPS 또는 PPS에서 양자화 매트릭스를 부호화하여 전송할수도 있고, 별도의 NAL unit을 통해 양자화 매트릭스를 전송할 수도 있다.
양자화 매트릭스는 부호화되어 전송되는 경우, 부호화 순서는 다음과 같다.
1) 먼저 현재 양자화 매트릭스를 입력 받는다.
2) 다음으로, 현재 양자화 매트릭스의 예측 매트릭스를 이용하여 잔차 신호를 생성한다.
3) 다음으로, 잔차 신호를 부호화한다.
양자화 매트릭스의 예측 방식은 다음과 같다.
- 이전에 부호화된 참조 양자화 매트릭스 중 하나를 예측값으로 사용할 수 있다. 이 경우, 잔차 신호는 현재 양자화 매트릭스와 이전 양자화 매트릭스의 차이값으로 결정된다. 만약 이전에 부호화된 참조 양자화 매트릭스의 크기가 현재의 양자화 매트릭스 크기와 다를 경우에는 미리 정해진 방식으로 다운 샘플링 또는 업샘플링을 한다. 업샘플링의 경우 선형 보간을 사용할 수 있고, 다운 샘플링의 경우에는 4:1 의 경우는 4개의 평균값을, 16:1의 경우에는 16:1의 평균값을 사용하거나, 미리 정해진 2개 또는 4개의 값의 평균값을 이용할 수도 있다.
- 현재 양자화 매트릭스의 성분을 DPCM을 사용하여 잔차신호를 생성할 수도 있다. 이 경우에는 양자화 매트릭스의 계수들은 지그재그 스캔순서로 DPCM이 적용된다. 그리고, 양자화가 적용될 수 있다
- 한편, 상기 ①의 잔차 신호 또는 ②의 DPCM 신호를 양자화하여 신호를 압축하는 방법을 이용할 수도 있다. 이 경우, 양자화 매트릭스의 계수들 중 저주파 성분보다 고주파 성분쪽의 양자화를 크게 하는 것이 바람직하다. 따라서, 양자화 매트릭스를 지그재그 순서상으로 복수개의 영역으로 나누고, 각 영역마다 서로 다른 양자화 파라미터로 양자화하는 것이 바람직하다. 즉, DC를 포함하는 N번째 계수(지그재그 스캔순서상)까지는 양자화를 하지 않고, N+1~M번째 계수까지는 제1 양자화 파라미터(예를 들어 2), M+1~L번째 계수까지는 제2 양자화 파라미터를 이용하는 식으로 잔차신호 또는 DPCM신호를 양자화하여 전송하는 것이 바람직하다.
복호기에서는 상기 과정의 역과정을 진행하면 된다.
양자화된 또는 양자화되지 않은 잔차신호 또는 DPCM 신호를 CAVLC 또는 CABAC를 이용하여 부호화할 수 있다.
CAVLC를 이용할 경우에는, 상기 잔차신호 또는 DPCM 신호를 지그재그 스캔 순서로 런과 레벨의 조합을 이용하여 부호화할 수 있다. 즉, 기존의 H.264 방식 또는 현재 HEVC 4.0에서 제정되어 있는 방식을 이용하여 부호화할 수 있다.
한편, 색차 QP는 Luma QP로부터 구한다. 다만 luma QP가 소정값 이내인 경우에는 luma QP값을 chroma QP값으로 설정하고, 소정값 이상인 경우에는 별도의 mapping 을 이용할 수도 있다. 이 경우, 픽쳐 또는 슬라이스 헤더에서 chroma QP와 luma QP 사이의 맵핑 관계를 알려주는 정보(chroma_qp_index_offset)를 시그널링 해주는 것이 좋다. 영상의 특성에 따라 복수개의 맵핑 테이블이 존재할 수도 있다. Chroma_qp_index_offset은 PPS로 보내 줘도 된다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
250:인트라 예측부

Claims (1)

  1. 인트라 예측 모드 부호화 방법에 있어서,
    현재 블록의 인트라 예측 모드를 결정하는 단계;
    현재 블록의 MPM 후보자들의 유효성을 검사하여 유효한 MPM 후보자 수를 판단하는 단계;
    유효한 MPM 후보자 수가 미리 정해진 수보다 작은 경우, 추가 인트라 예측 모드를 MPM 후보자로 추가하는 단계;
    현재 블록의 인트라 예측 모드가 상기 유효한 MPM 후보자 또는 추가 MPM 후보자와 동일한지를 판단하는 단계;
    현재 블록의 인트라 예측 모드가 상기 유효한 MPM 후보자 또는 추가 MPM 후보자와 동일한 경우에는 동일함을 나타내는 정보와 상기 후보자들 중 어느 하나를 나타내는 인덱스를 부호화하는 단계;
    현재 블록의 인트라 예측 모드가 상기 유효한 MPM 후보자 또는 추가 MPM 후보자와 동일하지 않은 경우에는 동일하지 않음을 나타내는 정보가 상기 MPM 후보자들을 제외한 잔여 인트라 예측 모드들 중 어느 하나와 동일함을 나타내는 인덱스를 부호화하는 단계;를 포함하는 것을 특징으로 하는 인트라 예측 모드 부호화 방법.


KR20110114607A 2011-11-04 2011-11-04 인트라 예측 블록 생성 장치 KR20130049523A (ko)

Priority Applications (74)

Application Number Priority Date Filing Date Title
KR20110114607A KR20130049523A (ko) 2011-11-04 2011-11-04 인트라 예측 블록 생성 장치
BR122020014038-0A BR122020014038B1 (pt) 2011-11-04 2012-11-02 Método de quantizar inversamente um bloco quantizado
MX2015015826A MX340480B (es) 2011-11-04 2012-11-02 Metodo de derivacion de parametro de cuantificacion.
CA2989193A CA2989193C (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
JP2014539230A JP5841264B2 (ja) 2011-11-04 2012-11-02 量子化ブロック逆量子化方法
SG11201401926RA SG11201401926RA (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
PCT/CN2012/083978 WO2013064095A1 (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
SG10201600413TA SG10201600413TA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
KR1020147010215A KR20140066240A (ko) 2011-11-04 2012-11-02 영상 부호화 장치
SG10201600418XA SG10201600418XA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
EP21156631.0A EP3843401A1 (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
CA3085029A CA3085029C (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
BR122020014036-4A BR122020014036B1 (pt) 2011-11-04 2012-11-02 Método de quantizar inversamente um bloco quantizado
SG10201600414RA SG10201600414RA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
SG10202001287TA SG10202001287TA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
KR1020147010214A KR20140066239A (ko) 2011-11-04 2012-11-02 영상 복호화 방법
EP12845200.0A EP2774377A4 (en) 2011-11-04 2012-11-02 METHOD FOR DERIVING QUANTIZATION PARAMETERS
TW106145413A TWI645708B (zh) 2011-11-04 2012-11-02 在圖框內預測中產生預測塊的方法
EP21156612.0A EP3843393A1 (en) 2011-11-04 2012-11-02 Method of deriving an intra prediction mode
TW112115445A TW202333500A (zh) 2011-11-04 2012-11-02 解碼圖像的設備
CA2853706A CA2853706C (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
EP18181699.2A EP3402191B8 (en) 2011-11-04 2012-11-02 Apparatus of deriving an intra prediction mode
HUE18181699A HUE048753T2 (hu) 2011-11-04 2012-11-02 Készülék egy intrapredikciós mód származtatására
TW109115848A TWI742656B (zh) 2011-11-04 2012-11-02 在圖框內預測中產生預測塊的方法及電腦可讀取儲存媒體
SG10202002042VA SG10202002042VA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
SG10201600412WA SG10201600412WA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
US14/353,891 US9264723B2 (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter with differential and predicted quantization parameters
SG10202002041XA SG10202002041XA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
MX2016009075A MX345037B (es) 2011-11-04 2012-11-02 Metodo de derivacion de parametro de cuantificacion.
SG10202001375VA SG10202001375VA (en) 2011-11-04 2012-11-02 Method Of Deriving Quantization Parameter
KR20147010213A KR20140071438A (ko) 2011-11-04 2012-11-02 영상 복호화 장치
MX2015015820A MX339983B (es) 2011-11-04 2012-11-02 Metodo de derivacion de parametro de cuantificacion.
BR122020014035-6A BR122020014035B1 (pt) 2011-11-04 2012-11-02 Método de quantizar inversamente um bloco quantizado
ES18181699T ES2784007T3 (es) 2011-11-04 2012-11-02 Aparato de derivación de un modo de intra-predicción
TW107139881A TWI696380B (zh) 2011-11-04 2012-11-02 對量化塊進行逆量化的方法
KR20147010216A KR20140074350A (ko) 2011-11-04 2012-11-02 영상 부호화 장치
CA3217419A CA3217419A1 (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
KR1020147010207A KR101472974B1 (ko) 2011-11-04 2012-11-02 양자화 블록 역양자화 방법
EP21156609.6A EP3843392A1 (en) 2011-11-04 2012-11-02 Method of deriving an intra prediction mode
TW105143712A TWI615016B (zh) 2011-11-04 2012-11-02 推導量化參數的方法
EP21156479.4A EP3843400A1 (en) 2011-11-04 2012-11-02 Method of deriving quantization parameter
BR112014010639-8A BR112014010639B1 (pt) 2011-11-04 2012-11-02 Método de quantizar inversamente um bloco quantizado
TW101140895A TWI572189B (zh) 2011-11-04 2012-11-02 推導量化參數的方法
BR122020014037-2A BR122020014037B1 (pt) 2011-11-04 2012-11-02 Método de quantizar inversamente um bloco quantizado
PL18181699T PL3402191T3 (pl) 2011-11-04 2012-11-02 Urządzenie do uzyskiwania trybu intra-predykcji
MX2014005327A MX2014005327A (es) 2011-11-04 2012-11-02 Metodo de derivacion de parametro de cuantificacion.
TW110132475A TWI803958B (zh) 2011-11-04 2012-11-02 在圖框內預測中解碼圖像的方法、在圖框內預測中編碼圖像的方法及非暫態電腦可讀取儲存媒體
MX2015015821A MX340478B (es) 2011-11-04 2012-11-02 Metodo de derivacion de parametro de cuantificacion.
MX2015015824A MX340479B (es) 2011-11-04 2012-11-02 Metodo de derivacion de parametro de cuantificacion.
CN201810073355.1A CN108347614B (zh) 2011-11-04 2012-11-05 用于在帧内预测中产生预测块的方法
CN201810073418.3A CN108184119B (zh) 2011-11-04 2012-11-05 推导量化参数的方法
CN201210436688.9A CN103096070B (zh) 2011-11-04 2012-11-05 推导量化参数的方法
CN201810073432.3A CN108184120B (zh) 2011-11-04 2012-11-05 推导量化参数的方法
CN201810073988.2A CN108259906B (zh) 2011-11-04 2012-11-05 推导量化参数的方法
CN201810074625.0A CN108366260B (zh) 2011-11-04 2012-11-05 用于在帧内预测中产生预测块的设备
CN201810074631.6A CN108259907B (zh) 2011-11-04 2012-11-05 图像解码设备
CN201810072887.3A CN108495133B (zh) 2011-11-04 2012-11-05 推导量化参数的方法
US14/592,809 US9204151B2 (en) 2011-11-04 2015-01-08 Method of deriving quantization parameter with differential and predicted quantization parameters
US14/852,167 US9699460B2 (en) 2011-11-04 2015-09-11 Method of deriving quantization parameter with differential and predicted quantization parameters
US14/852,197 US9912950B2 (en) 2011-11-04 2015-09-11 Method of deriving quantization parameter with differential and predicted quantization parameters
US14/852,144 US9712825B2 (en) 2011-11-04 2015-09-11 Method of deriving quantization parameter with differental and predicted quantization parameters
US14/852,115 US9712824B2 (en) 2011-11-04 2015-09-11 Method of deriving quantization parameter with differential and predicted quantization parameters
JP2015222051A JP6101774B2 (ja) 2011-11-04 2015-11-12 量子化ブロック逆量子化方法
JP2017035017A JP6275897B2 (ja) 2011-11-04 2017-02-27 量子化ブロック逆量子化方法
JP2018001995A JP6469265B2 (ja) 2011-11-04 2018-01-10 量子化ブロック逆量子化方法
US15/879,994 US10313671B2 (en) 2011-11-04 2018-01-25 Method for generating intra prediction block with most probable mode
JP2019004278A JP6648315B2 (ja) 2011-11-04 2019-01-15 量子化ブロック逆量子化方法
US16/396,267 US10742983B2 (en) 2011-11-04 2019-04-26 Method for generating intra prediction block with most probable mode
JP2020004431A JP6906070B2 (ja) 2011-11-04 2020-01-15 イントラ予測における予測ブロックを生成する装置
US16/926,206 US11290719B2 (en) 2011-11-04 2020-07-10 Method for generating intra prediction block with most probable mode
JP2021106230A JP7192045B2 (ja) 2011-11-04 2021-06-28 イントラ予測における予測ブロックを生成する方法
JP2021106229A JP7192044B2 (ja) 2011-11-04 2021-06-28 イントラ予測における予測ブロックを生成する方法
US17/682,914 US11825092B2 (en) 2011-11-04 2022-02-28 Method of deriving quantization parameter with differental and predicted quantization parameters
US18/382,831 US20240048706A1 (en) 2011-11-04 2023-10-23 Method of deriving quantization parameter with differental and predicted quantization parameters

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20110114607A KR20130049523A (ko) 2011-11-04 2011-11-04 인트라 예측 블록 생성 장치

Publications (1)

Publication Number Publication Date
KR20130049523A true KR20130049523A (ko) 2013-05-14

Family

ID=48191357

Family Applications (6)

Application Number Title Priority Date Filing Date
KR20110114607A KR20130049523A (ko) 2011-11-04 2011-11-04 인트라 예측 블록 생성 장치
KR20147010216A KR20140074350A (ko) 2011-11-04 2012-11-02 영상 부호화 장치
KR20147010213A KR20140071438A (ko) 2011-11-04 2012-11-02 영상 복호화 장치
KR1020147010214A KR20140066239A (ko) 2011-11-04 2012-11-02 영상 복호화 방법
KR1020147010215A KR20140066240A (ko) 2011-11-04 2012-11-02 영상 부호화 장치
KR1020147010207A KR101472974B1 (ko) 2011-11-04 2012-11-02 양자화 블록 역양자화 방법

Family Applications After (5)

Application Number Title Priority Date Filing Date
KR20147010216A KR20140074350A (ko) 2011-11-04 2012-11-02 영상 부호화 장치
KR20147010213A KR20140071438A (ko) 2011-11-04 2012-11-02 영상 복호화 장치
KR1020147010214A KR20140066239A (ko) 2011-11-04 2012-11-02 영상 복호화 방법
KR1020147010215A KR20140066240A (ko) 2011-11-04 2012-11-02 영상 부호화 장치
KR1020147010207A KR101472974B1 (ko) 2011-11-04 2012-11-02 양자화 블록 역양자화 방법

Country Status (14)

Country Link
US (11) US9264723B2 (ko)
EP (6) EP3843401A1 (ko)
JP (8) JP5841264B2 (ko)
KR (6) KR20130049523A (ko)
CN (8) CN108259907B (ko)
BR (5) BR122020014036B1 (ko)
CA (4) CA2853706C (ko)
ES (1) ES2784007T3 (ko)
HU (1) HUE048753T2 (ko)
MX (6) MX345037B (ko)
PL (1) PL3402191T3 (ko)
SG (9) SG10201600413TA (ko)
TW (7) TWI742656B (ko)
WO (1) WO2013064095A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102835114B (zh) * 2010-04-13 2016-06-15 松下电器(美国)知识产权公司 图像解码方法及图像解码装置
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
KR20130049525A (ko) * 2011-11-04 2013-05-14 오수미 잔차 블록 복원을 위한 역변환 방법
KR20130049522A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
JP6120490B2 (ja) * 2011-11-07 2017-04-26 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
KR20130050407A (ko) 2011-11-07 2013-05-16 오수미 인터 모드에서의 움직임 정보 생성 방법
US10277915B2 (en) * 2011-11-07 2019-04-30 Qualcomm Incorporated Signaling quantization matrices for video coding
KR20130058524A (ko) * 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
JP6064581B2 (ja) * 2011-12-21 2017-01-25 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法及び動画像復号プログラム、並びに受信装置、受信方法及び受信プログラム
JP6064580B2 (ja) * 2011-12-21 2017-01-25 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに送信装置、送信方法及び送信プログラム
US11323747B2 (en) * 2013-06-05 2022-05-03 Qualcomm Incorporated Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans
JP6587046B2 (ja) * 2013-07-08 2019-10-09 サン パテント トラスト 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
WO2015032350A1 (zh) * 2013-09-07 2015-03-12 同济大学 一种使用块匹配的图像压缩方法和装置
US20180027236A1 (en) * 2015-02-17 2018-01-25 Lg Electronics Inc. Method and device for encoding/decoding video signal by using adaptive scan order
WO2016205999A1 (en) * 2015-06-23 2016-12-29 Mediatek Singapore Pte. Ltd. Adaptive coding group for image/video coding
CN116760977A (zh) 2015-08-20 2023-09-15 日本放送协会 图像编码装置、图像解码装置、和其程序
WO2017142301A1 (ko) 2016-02-16 2017-08-24 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
JP6660868B2 (ja) * 2016-11-15 2020-03-11 Kddi株式会社 動画像符号化装置及び動画像復号装置並びにプログラム
CN108805943B (zh) * 2017-04-27 2022-12-09 腾讯科技(深圳)有限公司 图片转码方法和装置
CN114630133A (zh) * 2017-09-06 2022-06-14 佳稳电子有限公司 影像解码方法、编码图像的方法及设备
IL309764A (en) 2017-10-18 2024-02-01 Samsung Electronics Co Ltd Method and device for video decoding, and method and device for video encoding
US11262088B2 (en) 2017-11-06 2022-03-01 International Business Machines Corporation Adjusting settings of environmental devices connected via a network to an automation hub
KR102500762B1 (ko) 2018-01-02 2023-02-16 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US10491914B2 (en) * 2018-03-29 2019-11-26 Tencent America LLC Transform information prediction
CN112262576A (zh) 2018-06-11 2021-01-22 光云大学校产学协力团 残差系数编码/解码方法和装置
KR102030384B1 (ko) 2018-06-19 2019-11-08 광운대학교 산학협력단 잔차 계수 부호화/복호화 방법 및 장치
WO2020003799A1 (ja) 2018-06-30 2020-01-02 株式会社フジキン ダイヤフラムバルブおよびその監視方法
KR20220107089A (ko) * 2018-09-03 2022-08-01 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 예측을 위한 방법 및 장치
US11516506B2 (en) * 2018-10-05 2022-11-29 Lg Electronics Inc. Method and apparatus for processing image service
CN111050169B (zh) * 2018-10-15 2021-12-14 华为技术有限公司 图像编码中量化参数的生成方法、装置及终端
CN109688409B (zh) * 2018-12-28 2021-03-02 北京奇艺世纪科技有限公司 一种视频编码方法及装置
CN109831670B (zh) * 2019-02-26 2020-04-24 北京大学深圳研究生院 一种反量化方法、系统、设备及计算机可读介质
CN113748675A (zh) * 2019-04-10 2021-12-03 北京达佳互联信息技术有限公司 使用改进的基于矩阵的帧内预测编解码模式的视频编解码方法和装置
KR20210134043A (ko) * 2019-04-17 2021-11-08 엘지전자 주식회사 Bdpcm을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20220002292A (ko) * 2019-05-01 2022-01-06 바이트댄스 아이엔씨 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오
CN112004084B (zh) * 2019-05-27 2022-03-29 北京君正集成电路股份有限公司 一种利用量化参数排序的码率控制优化方法及系统
WO2020253830A1 (en) * 2019-06-21 2020-12-24 Huawei Technologies Co., Ltd. Chroma sample weight derivation for geometric partition mode
CN110464326B (zh) * 2019-08-19 2022-05-10 上海联影医疗科技股份有限公司 一种扫描参数推荐方法、系统、装置及存储介质
US11800110B2 (en) * 2021-04-20 2023-10-24 Tencent America LLC Adaptive scanning with multiple transform selection
US20230069984A1 (en) * 2021-08-24 2023-03-09 Tencent America LLC Hardware friendly design for intra mode coding
US11917144B2 (en) 2021-09-29 2024-02-27 Mediatek Inc. Efficient in-loop filtering for video coding
CN116095316B (zh) * 2023-03-17 2023-06-23 北京中星微人工智能芯片技术有限公司 视频图像处理方法及装置、电子设备及存储介质

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625665B2 (en) * 1996-09-20 2014-01-07 At&T Intellectual Property Ii, L.P. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
US6483947B1 (en) 1998-03-17 2002-11-19 Matsushita Electric Industrial Co., Ltd. Video signal processing apparatus
JP2001298368A (ja) * 2000-04-14 2001-10-26 Sakai Yasue 圧縮方法及び装置、伸長方法及び装置、圧縮伸長システム、記録媒体
JP3561485B2 (ja) * 2000-08-18 2004-09-02 株式会社メディアグルー 符号化信号分離・合成装置、差分符号化信号生成装置、符号化信号分離・合成方法、差分符号化信号生成方法、符号化信号分離・合成プログラムを記録した媒体および差分符号化信号生成プログラムを記録した媒体
CN100350433C (zh) * 2001-11-27 2007-11-21 三星电子株式会社 计算路径误差的方法和提取路径断点的方法
CN1206864C (zh) * 2002-07-22 2005-06-15 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
EP1453004A2 (en) * 2003-02-28 2004-09-01 NTT DoCoMo, Inc. Image encoding apparatus and method
JP2006005438A (ja) * 2004-06-15 2006-01-05 Sony Corp 画像処理装置およびその方法
CN100348051C (zh) * 2005-03-31 2007-11-07 华中科技大学 一种增强型帧内预测模式编码方法
WO2007032600A1 (en) * 2005-07-21 2007-03-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video signal by extending application of directional intra-prediction
JP2007089035A (ja) * 2005-09-26 2007-04-05 Toshiba Corp 動画像符号化方法、装置及びプログラム
US20070274385A1 (en) * 2006-05-26 2007-11-29 Zhongli He Method of increasing coding efficiency and reducing power consumption by on-line scene change detection while encoding inter-frame
JP4254867B2 (ja) 2007-01-31 2009-04-15 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
EP1983759A1 (en) * 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
CN100493198C (zh) * 2007-05-31 2009-05-27 北京中星微电子有限公司 算术编码中的概率模型存储方法
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8619853B2 (en) * 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
CN100551075C (zh) * 2007-10-15 2009-10-14 中兴通讯股份有限公司 一种低复杂度的帧内预测模式选择方法
KR100940444B1 (ko) * 2007-12-18 2010-02-10 한국전자통신연구원 공간적 에지 검출을 이용한 인트라 예측 모드 구성 방법
US20090161757A1 (en) * 2007-12-21 2009-06-25 General Instrument Corporation Method and Apparatus for Selecting a Coding Mode for a Block
US8542730B2 (en) * 2008-02-22 2013-09-24 Qualcomm, Incorporated Fast macroblock delta QP decision
CN101262603B (zh) * 2008-03-27 2011-08-31 方春 一种自适应码率控制方法
CN100596202C (zh) * 2008-05-30 2010-03-24 四川虹微技术有限公司 一种快速帧内模式选择方法
US8897359B2 (en) * 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
RU2479942C2 (ru) * 2008-06-27 2013-04-20 Сони Корпорейшн Устройство обработки изображения и способ обработки изображения
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
CN101729886B (zh) * 2008-10-24 2011-09-28 安凯(广州)微电子技术有限公司 一种视频解码方法、系统和设备
CN101494776B (zh) * 2009-02-13 2011-01-05 北京邮电大学 一种h.264码率控制方法
JP5174737B2 (ja) * 2009-05-05 2013-04-03 国立大学法人広島大学 画像配信システム、符号装置及び復号装置
KR101507344B1 (ko) * 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
JP5649296B2 (ja) * 2009-10-26 2015-01-07 キヤノン株式会社 画像符号化装置
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
TW201125370A (en) * 2009-10-30 2011-07-16 Panasonic Corp Decoding method, decoder apparatus, encoding method, and encoder apparatus
KR101441905B1 (ko) * 2009-11-18 2014-09-24 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
US8588297B2 (en) * 2009-12-23 2013-11-19 Oracle America, Inc. Quantization parameter prediction
KR101768207B1 (ko) * 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US20120300850A1 (en) * 2010-02-02 2012-11-29 Alex Chungku Yie Image encoding/decoding apparatus and method
JP2011160359A (ja) * 2010-02-03 2011-08-18 Sharp Corp ブロックノイズ量予測装置、ブロックノイズ量予測方法、画像処理装置、プログラム、及び、記録媒体
US8588303B2 (en) * 2010-03-31 2013-11-19 Futurewei Technologies, Inc. Multiple predictor sets for intra-frame coding
US8929440B2 (en) * 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
RS54213B1 (en) * 2010-04-23 2015-12-31 M&K Holdings Inc. PICTURE CODING DEVICE
CN102238376B (zh) * 2010-04-28 2014-04-23 鸿富锦精密工业(深圳)有限公司 图像处理系统及方法
US8902978B2 (en) * 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
RU2597510C2 (ru) * 2010-06-10 2016-09-10 Томсон Лайсенсинг Способы и устройство для определения предсказателей параметров квантования по множеству соседних параметров квантования
CN101888550A (zh) 2010-06-28 2010-11-17 中兴通讯股份有限公司 一种slice头信息中量化参数编码方法和装置
KR101373814B1 (ko) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
KR20120012385A (ko) * 2010-07-31 2012-02-09 오수미 인트라 예측 부호화 장치
WO2012122495A1 (en) 2011-03-10 2012-09-13 Huawei Technologies Co., Ltd. Using multiple prediction sets to encode extended unified directional intra mode numbers for robustness
CN103416060B (zh) 2011-03-11 2016-12-21 索尼公司 图像处理装置和方法
CN102685485B (zh) * 2011-03-11 2014-11-05 华为技术有限公司 编码方法以及装置、解码方法以及装置
CN102685478B (zh) 2011-03-11 2015-04-29 华为技术有限公司 编码方法以及装置、解码方法以及装置
CN102685484B (zh) * 2011-03-11 2014-10-08 华为技术有限公司 编码方法以及装置、解码方法以及装置
CN102685483B (zh) * 2011-03-11 2014-12-03 华为技术有限公司 解码方法
CN102137258B (zh) * 2011-03-22 2013-04-24 宁波大学 一种立体视频码率控制方法
GB2491391B (en) * 2011-06-02 2014-09-03 Canon Kk Encoding mode values representing prediction modes
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
RU2607246C2 (ru) * 2011-06-13 2017-01-10 Сан Пэтент Траст Способ декодирования изображений, способ кодирования изображений, устройство декодирования изображений, устройство кодирования изображений и устройство кодирования и декодирования изображений
US9112526B2 (en) * 2011-06-15 2015-08-18 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
PT3136728T (pt) * 2011-06-28 2018-03-08 Samsung Electronics Co Ltd Método para descodificar vídeo com intra previsão
KR20110111339A (ko) * 2011-08-23 2011-10-11 한국전자통신연구원 화면내 예측 시스템에서 최적 모드를 예측하는 장치 및 방법
GB2494468B (en) 2011-09-12 2014-01-15 Canon Kk Method and device for encoding or decoding information representing prediction modes
CN106851300B (zh) 2011-09-13 2020-05-26 寰发股份有限公司 基于最可能模式的帧内预测模式的方法及装置
US9462290B2 (en) 2011-10-07 2016-10-04 Pantech Co., Ltd. Methods and apparatuses of encoding/decoding intra prediction mode using candidate intra prediction modes
CN107087183B (zh) * 2011-10-24 2020-02-14 英孚布瑞智有限私人贸易公司 对帧内预测模式进行解码的方法
US9036704B2 (en) * 2011-10-24 2015-05-19 Infobridge Pte. Ltd. Image decoding method using intra prediction mode
KR20130049523A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
KR20130050404A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
KR20130050407A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 움직임 정보 생성 방법
KR20130058524A (ko) * 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
AR092786A1 (es) * 2012-01-09 2015-05-06 Jang Min Metodos para eliminar artefactos de bloque
KR20140103903A (ko) * 2012-01-17 2014-08-27 제닙 피티이.엘티디. 복원 영상 후처리 장치
CN102658478B (zh) 2012-05-11 2014-11-05 山东海华汽车部件有限公司 一种板簧流水装配线

Also Published As

Publication number Publication date
US20150381984A1 (en) 2015-12-31
JP6648315B2 (ja) 2020-02-14
CA2989193C (en) 2020-08-18
SG10202002041XA (en) 2020-05-28
US9912950B2 (en) 2018-03-06
JP2017130947A (ja) 2017-07-27
KR20140074350A (ko) 2014-06-17
BR122020014036B1 (pt) 2023-12-12
TWI742656B (zh) 2021-10-11
JP2014534749A (ja) 2014-12-18
TW201334547A (zh) 2013-08-16
US9264723B2 (en) 2016-02-16
CN108259907A (zh) 2018-07-06
CA2853706C (en) 2018-01-23
TW201711460A (zh) 2017-03-16
BR112014010639B1 (pt) 2022-04-12
MX340478B (es) 2016-07-08
CN108259906A (zh) 2018-07-06
KR20140066239A (ko) 2014-05-30
JP7192044B2 (ja) 2022-12-19
EP3843401A1 (en) 2021-06-30
MX345037B (es) 2017-01-16
US20150381985A1 (en) 2015-12-31
CA2989193A1 (en) 2013-05-10
BR122020014038B1 (pt) 2023-12-12
SG10202001375VA (en) 2020-04-29
EP3843400A1 (en) 2021-06-30
JP2020074565A (ja) 2020-05-14
KR101472974B1 (ko) 2014-12-19
TW202032979A (zh) 2020-09-01
TWI645708B (zh) 2018-12-21
MX340480B (es) 2016-07-08
TWI696380B (zh) 2020-06-11
US20150381983A1 (en) 2015-12-31
US9712824B2 (en) 2017-07-18
KR20140066240A (ko) 2014-05-30
CN108366260A (zh) 2018-08-03
JP2018078636A (ja) 2018-05-17
EP3402191B1 (en) 2020-01-01
TW202205859A (zh) 2022-02-01
US20150381982A1 (en) 2015-12-31
CN108495133B (zh) 2021-06-18
EP2774377A1 (en) 2014-09-10
CN108184120A (zh) 2018-06-19
JP7192045B2 (ja) 2022-12-19
US20200344477A1 (en) 2020-10-29
JP2019071668A (ja) 2019-05-09
KR20140074349A (ko) 2014-06-17
JP6275897B2 (ja) 2018-02-07
BR122020014038A2 (ko) 2020-10-06
CN108347614B (zh) 2021-09-07
US20180152706A1 (en) 2018-05-31
EP3843392A1 (en) 2021-06-30
BR122020014035A8 (pt) 2022-10-04
US11290719B2 (en) 2022-03-29
MX340479B (es) 2016-07-08
EP2774377A4 (en) 2015-09-16
US9712825B2 (en) 2017-07-18
JP5841264B2 (ja) 2016-01-13
WO2013064095A1 (en) 2013-05-10
CN108259906B (zh) 2022-02-08
CA3085029A1 (en) 2013-05-10
CN108184119B (zh) 2022-06-17
ES2784007T3 (es) 2020-09-21
BR122020014035B1 (pt) 2023-12-12
HUE048753T2 (hu) 2020-08-28
US20220279182A1 (en) 2022-09-01
TWI615016B (zh) 2018-02-11
TW201907709A (zh) 2019-02-16
CN108184120B (zh) 2021-10-01
TW202333500A (zh) 2023-08-16
BR122020014036A2 (ko) 2020-10-06
EP3402191A1 (en) 2018-11-14
JP2016036178A (ja) 2016-03-17
BR122020014036A8 (pt) 2022-10-04
US10742983B2 (en) 2020-08-11
JP2021177634A (ja) 2021-11-11
CA3217419A1 (en) 2013-05-10
CN108366260B (zh) 2020-10-16
US9699460B2 (en) 2017-07-04
BR112014010639A2 (pt) 2017-04-25
BR122020014035A2 (ko) 2020-10-06
SG10201600418XA (en) 2016-02-26
PL3402191T3 (pl) 2020-10-05
US20190253713A1 (en) 2019-08-15
TW201813381A (zh) 2018-04-01
SG11201401926RA (en) 2014-05-29
US11825092B2 (en) 2023-11-21
MX339983B (es) 2016-06-20
BR122020014037A2 (ko) 2020-10-06
CN108259907B (zh) 2021-09-03
TWI803958B (zh) 2023-06-01
JP6469265B2 (ja) 2019-02-13
CN108495133A (zh) 2018-09-04
EP3402191B8 (en) 2020-02-26
BR112014010639A8 (pt) 2020-10-06
TWI572189B (zh) 2017-02-21
CN103096070B (zh) 2018-02-27
MX2014005327A (es) 2014-08-08
SG10202001287TA (en) 2020-04-29
US20150117523A1 (en) 2015-04-30
JP2021177635A (ja) 2021-11-11
JP6906070B2 (ja) 2021-07-21
KR20140071438A (ko) 2014-06-11
US10313671B2 (en) 2019-06-04
JP6101774B2 (ja) 2017-03-22
SG10201600414RA (en) 2016-02-26
CN108184119A (zh) 2018-06-19
BR122020014037A8 (pt) 2022-10-04
BR122020014037B1 (pt) 2023-12-12
BR122020014038A8 (pt) 2022-10-04
CA2853706A1 (en) 2013-05-10
US20240048706A1 (en) 2024-02-08
US9204151B2 (en) 2015-12-01
SG10201600413TA (en) 2016-02-26
CN103096070A (zh) 2013-05-08
US20140301449A1 (en) 2014-10-09
SG10202002042VA (en) 2020-05-28
EP3843393A1 (en) 2021-06-30
SG10201600412WA (en) 2016-02-26
CN108347614A (zh) 2018-07-31
CA3085029C (en) 2023-12-12

Similar Documents

Publication Publication Date Title
JP6360947B2 (ja) 映像データを復号化する方法
KR20130049523A (ko) 인트라 예측 블록 생성 장치
KR20130049525A (ko) 잔차 블록 복원을 위한 역변환 방법
KR20130049524A (ko) 인트라 예측 블록 생성 방법
KR101452195B1 (ko) 인트라 예측 모드를 유도하는 방법 및 장치
KR20130058524A (ko) 색차 인트라 예측 블록 생성 방법
EP2458860B1 (en) Method for decoding an image
KR20140005101A (ko) 비디오의 엔트로피 부호화 방법 및 장치, 비디오의 엔트로피 복호화 방법 및 장치
KR20130050404A (ko) 인터 모드에서의 복원 블록 생성 방법
KR20200007671A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20180077132A (ko) 영상의 부호화 방법 및 장치, 및 컴퓨터로 판독 가능한 기록 매체

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITB Written withdrawal of application