KR102489735B1 - 인트라 예측 방법 및 그 장치 - Google Patents
인트라 예측 방법 및 그 장치 Download PDFInfo
- Publication number
- KR102489735B1 KR102489735B1 KR1020220121818A KR20220121818A KR102489735B1 KR 102489735 B1 KR102489735 B1 KR 102489735B1 KR 1020220121818 A KR1020220121818 A KR 1020220121818A KR 20220121818 A KR20220121818 A KR 20220121818A KR 102489735 B1 KR102489735 B1 KR 102489735B1
- Authority
- KR
- South Korea
- Prior art keywords
- luma
- pixels
- pixel
- block
- neighboring
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 202
- 241000023320 Luma <angiosperm> Species 0.000 claims abstract description 883
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims abstract description 883
- 230000002093 peripheral effect Effects 0.000 claims description 193
- 230000008569 process Effects 0.000 description 139
- 238000010586 diagram Methods 0.000 description 28
- 238000013139 quantization Methods 0.000 description 19
- 238000005070 sampling Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000009795 derivation Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 101150039623 Clip1 gene Proteins 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001012 protector Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명에 따른 인트라 예측 방법은, 현재 루마 블록 내 픽셀 및 현재 루마 블록 주변에 위치한 주변 루마 픽셀을 기반으로, 루마 참조 블록 내 픽셀 및 루마 참조 블록 주변에 위치한 주변 루마 참조 픽셀을 포함한 루마 참조 정보를 생성하는 단계, 주변 루마 참조 픽셀 및 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 주변 루마 참조 픽셀에 대응되는 제1 주변 크로마 픽셀을 기반으로, 현재 크로마 블록에 대한 예측 파라미터를 도출하는 단계 및 루마 참조 블록 내 픽셀 및 예측 파라미터를 기반으로, 현재 크로마 블록 내 픽셀의 예측 값을 도출하는 단계를 포함한다.
Description
본 발명은 영상 처리에 관한 것으로서, 보다 상세하게는 인트라 예측 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축을 위해, 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 픽셀값을 예측하는 인터(inter) 예측 기술, 현재 픽쳐 내의 픽셀 정보를 이용하여 현재 픽쳐에 포함된 픽셀값을 예측하는 인트라(intra) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.
본 발명의 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 복호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 인트라 예측 방법 및 장치를 제공함에 있다.
본 발명의 일 실시 형태는 인트라 예측 방법이다. 상기 방법은, 현재 루마 블록 내 픽셀 및 상기 현재 루마 블록 주변에 위치한 주변 루마 픽셀을 기반으로, 루마 참조 블록 내 픽셀 및 상기 루마 참조 블록 주변에 위치한 주변 루마 참조 픽셀을 포함한 루마 참조 정보를 생성하는 단계, 상기 주변 루마 참조 픽셀 및 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 참조 픽셀에 대응되는 제1 주변 크로마 픽셀을 기반으로, 상기 현재 크로마 블록에 대한 예측 파라미터를 도출하는 단계 및 상기 루마 참조 블록 내 픽셀 및 상기 예측 파라미터를 기반으로, 상기 현재 크로마 블록 내 픽셀의 예측 값을 도출하는 단계를 포함할 수 있다. 여기서, 상기 루마 참조 정보 생성 단계에서는, 상기 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 픽셀에 대응되는 제2 주변 크로마 픽셀이 가용한지 여부에 따라 상기 주변 루마 픽셀이 가용한지 여부를 결정하고, 상기 주변 루마 픽셀이 가용한지 여부에 따라 상기 주변 루마 픽셀의 픽셀 값을 결정할 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 제2 주변 크로마 픽셀이 가용한 경우에 상기 주변 루마 픽셀이 가용한 것으로 결정할 수 있다.
상기 제2 주변 크로마 픽셀의 위치가 [x, y]이고, 상기 x는 -1이고 상기 y는 0 내지 NU*2-1 중 하나의 값을 갖는 경우, 상기 제2 주변 크로마 픽셀을 기반으로 가용한지 여부가 결정되는 상기 주변 루마 픽셀의 위치는 [x, 2y] 또는 [x, 2y+1]일 수 있고, 상기 NU는 상기 현재 크로마 블록의 가로 길이 및 세로 길이를 나타낼 수 있다.
상기 제2 주변 크로마 픽셀의 위치가 [x, y]이고, 상기 y는 -1이고 상기 x는 0 내지 NU*2-1 중 하나의 값을 갖는 경우, 상기 제2 주변 크로마 픽셀을 기반으로 가용한지 여부가 결정되는 상기 주변 루마 픽셀의 위치는 [2x, y] 또는 [2x+1, y]일 수 있고, 상기 NU는 상기 현재 크로마 블록의 가로 길이 및 세로 길이를 나타낼 수 있다.
상기 제2 주변 크로마 픽셀의 위치가 [-1, -1]인 경우, 상기 제2 주변 크로마 픽셀을 기반으로 가용한지 여부가 결정되는 상기 주변 루마 픽셀의 위치는 [-1, -1]일 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 주변 루마 픽셀이 가용하지 않은 것으로 결정된 경우, 상기 현재 루마 블록 주변에 위치한 픽셀들 중에서 가용한 픽셀의 픽셀 값을 상기 주변 루마 픽셀에 할당할 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 주변 루마 픽셀이 상기 현재 루마 블록의 좌측에 인접하여 위치한 좌측 픽셀 라인상의 픽셀이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀의 좌측에 인접하여 위치한 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 주변 루마 픽셀이 상기 현재 루마 블록의 상단에 인접하여 위치한 상단 픽셀 라인상의 픽셀이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀과 동일한 위치의 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
본 발명의 다른 실시 형태는 영상 복호화 방법이다. 상기 방법은, 현재 루마 블록 내 픽셀 및 상기 현재 루마 블록 주변에 위치한 주변 루마 픽셀을 기반으로, 루마 참조 블록 내 픽셀 및 상기 루마 참조 블록 주변에 위치한 주변 루마 참조 픽셀을 포함한 루마 참조 정보를 생성하는 단계, 상기 주변 루마 참조 픽셀 및 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 참조 픽셀에 대응되는 제1 주변 크로마 픽셀을 기반으로, 상기 현재 크로마 블록에 대한 예측 파라미터를 도출하는 단계, 상기 루마 참조 블록 내 픽셀 및 상기 예측 파라미터를 기반으로, 상기 현재 크로마 블록 내 픽셀의 예측 값을 도출함으로써, 상기 현재 크로마 블록에 대한 예측 블록을 생성하는 단계 및 상기 예측 블록을 기반으로 상기 현재 크로마 블록에 대한 복원 블록을 생성하는 단계를 포함할 수 있다. 여기서, 상기 루마 참조 정보 생성 단계에서는, 상기 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 픽셀에 대응되는 제2 주변 크로마 픽셀이 가용한지 여부에 따라 상기 주변 루마 픽셀이 가용한지 여부를 결정하고, 상기 주변 루마 픽셀이 가용한지 여부에 따라 상기 주변 루마 픽셀의 픽셀 값을 결정할 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 제2 주변 크로마 픽셀이 가용한 경우에 상기 주변 루마 픽셀이 가용한 것으로 결정할 수 있다.
상기 제2 주변 크로마 픽셀의 위치가 [x, y]이고, 상기 x는 -1이고 상기 y는 0 내지 NU*2-1 중 하나의 값을 갖는 경우, 상기 제2 주변 크로마 픽셀을 기반으로 가용한지 여부가 결정되는 상기 주변 루마 픽셀의 위치는 [x, 2y] 또는 [x, 2y+1]일 수 있고, 상기 NU는 상기 현재 크로마 블록의 가로 길이 및 세로 길이를 나타낼 수 있다.
상기 제2 주변 크로마 픽셀의 위치가 [x, y]이고, 상기 y는 -1이고 상기 x는 0 내지 NU*2-1 중 하나의 값을 갖는 경우, 상기 제2 주변 크로마 픽셀을 기반으로 가용한지 여부가 결정되는 상기 주변 루마 픽셀의 위치는 [2x, y] 또는 [2x+1, y]일 수 있고, 상기 NU는 상기 현재 크로마 블록의 가로 길이 및 세로 길이를 나타낼 수 있다.
상기 제2 주변 크로마 픽셀의 위치가 [-1, -1]인 경우, 상기 제2 주변 크로마 픽셀을 기반으로 가용한지 여부가 결정되는 상기 주변 루마 픽셀의 위치는 [-1, -1]일 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 주변 루마 픽셀이 가용하지 않은 것으로 결정된 경우, 상기 현재 루마 블록 주변에 위치한 픽셀들 중에서 가용한 픽셀의 픽셀 값을 상기 주변 루마 픽셀에 할당할 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 주변 루마 픽셀이 상기 현재 루마 블록의 좌측에 인접하여 위치한 좌측 픽셀 라인상의 픽셀이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀의 좌측에 인접하여 위치한 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
상기 루마 참조 정보 생성 단계에서는, 상기 주변 루마 픽셀이 상기 현재 루마 블록의 상단에 인접하여 위치한 상단 픽셀 라인상의 픽셀이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀과 동일한 위치의 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
본 발명에 따른 영상 부호화 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 영상 복호화 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 인트라 예측 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 하나의 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
도 4는 인트라 예측 모드의 예측 방향 및 각 예측 방향에 할당된 모드 값의 실시예를 도시한다.
도 5는 루마 성분을 기반으로 하여 크로마 성분에 대한 예측을 수행하는 색 성분 간 예측 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 6은 현재 루마 블록의 크기 및 현재 크로마 블록의 크기가 서로 다른 경우, 루마 참조 정보를 도출하는 방법의 일 실시예를 나타낸다.
도 7은 부호화 파라미터를 기반으로 루마 참조 정보를 생성하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 8은 주변 루마 픽셀들 중에서 가용하지 않은 픽셀이 존재하는 경우에 루마 참조 정보를 생성하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 9는 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 실시예를 설명하기 위한 도면이다.
도 10은 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 다른 실시예를 설명하기 위한 도면이다.
도 11은 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 12는 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 13은 제1 색 성분 블록의 크기가 제2 색 성분 블록의 크기보다 작은 경우, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 14는 제1 색 성분 블록의 크기가 제2 색 성분 블록의 크기와 동일한 경우, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 15는 루마 참조 정보 생성에 사용되는 주변 루마 픽셀들의 실시예를 개략적으로 나타내는 도면이다.
도 16은 예측 파라미터를 도출하는 과정 및 현재 크로마 블록 내 픽셀들의 예측값을 도출하는 과정의 실시예를 설명하기 위한 도면이다.
도 17은 본 발명에 따른 복호화 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 18은 도 17의 실시예에서와 같이 복호화 과정이 수행되는 경우, 현재 크로마 블록에 대한 루마 참조 정보 및 예측 파라미터를 도출하는 과정의 실시예를 설명하기 위한 도면이다.
도 19a 및 도 19b는 본 발명에 따른 복호화 과정의 다른 실시예를 설명하기 위한 도면이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 하나의 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
도 4는 인트라 예측 모드의 예측 방향 및 각 예측 방향에 할당된 모드 값의 실시예를 도시한다.
도 5는 루마 성분을 기반으로 하여 크로마 성분에 대한 예측을 수행하는 색 성분 간 예측 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 6은 현재 루마 블록의 크기 및 현재 크로마 블록의 크기가 서로 다른 경우, 루마 참조 정보를 도출하는 방법의 일 실시예를 나타낸다.
도 7은 부호화 파라미터를 기반으로 루마 참조 정보를 생성하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 8은 주변 루마 픽셀들 중에서 가용하지 않은 픽셀이 존재하는 경우에 루마 참조 정보를 생성하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 9는 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 실시예를 설명하기 위한 도면이다.
도 10은 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 다른 실시예를 설명하기 위한 도면이다.
도 11은 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 12는 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 13은 제1 색 성분 블록의 크기가 제2 색 성분 블록의 크기보다 작은 경우, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 14는 제1 색 성분 블록의 크기가 제2 색 성분 블록의 크기와 동일한 경우, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 15는 루마 참조 정보 생성에 사용되는 주변 루마 픽셀들의 실시예를 개략적으로 나타내는 도면이다.
도 16은 예측 파라미터를 도출하는 과정 및 현재 크로마 블록 내 픽셀들의 예측값을 도출하는 과정의 실시예를 설명하기 위한 도면이다.
도 17은 본 발명에 따른 복호화 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 18은 도 17의 실시예에서와 같이 복호화 과정이 수행되는 경우, 현재 크로마 블록에 대한 루마 참조 정보 및 예측 파라미터를 도출하는 과정의 실시예를 설명하기 위한 도면이다.
도 19a 및 도 19b는 본 발명에 따른 복호화 과정의 다른 실시예를 설명하기 위한 도면이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽쳐 버퍼(190)를 포함한다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림을 출력할 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 픽쳐 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 여기서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터이며, 현재 부호화/복호화 대상 영상과 참조 영상 사이의 오프셋을 나타낼 수 있다.
인트라 예측부(120), 움직임 예측부(111) 및/또는 움직임 보상부(112)의 예측 과정에서 예측 방법이나 예측 모드가 정해지는 처리 단위 및 예측이 수행되는 처리 단위는 동일할 수도 있으나 서로 다를 수도 있다. 일례로, 예측 방법이 정해지는 처리 단위가 PU일 때 예측이 수행되는 처리 단위는 TU일 수도 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔차 블록(residual block)을 생성할 수 있다. 변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로 엔트로피 부호화를 수행하여 비트스트림(bit stream)을 출력할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다.
도 1의 실시예에 따른 영상 부호화 장치는 인터 예측 부호화, 즉 화면 간 예측 부호화를 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환된다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성된다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)는 적응적 인루프(in-loop) 필터로 불릴 수도 있다. 디블록킹 필터는 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. SAO는 코딩 에러를 보상하기 위해 픽셀값에 적정 오프셋(offset) 값을 더해줄 수 있다. ALF는 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 필터부(180)를 거친 복원 블록은 참조 픽쳐 버퍼(190)에 저장될 수 있다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 픽쳐 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화기에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다. 영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 잔차 블록(residual block)을 얻고 예측 블록을 생성한 후 잔차 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.
엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 복호화 방법을 통해서 영상 복호화의 압축 성능이 높아질 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 잔차 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 부호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 픽쳐 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
인트라 예측부(240) 및/또는 움직임 보상부(250)에서의 예측 과정에서 예측 방법이나 예측 모드가 정해지는 처리 단위 및 예측이 수행되는 처리 단위는 동일할 수도 있으나 서로 다를 수도 있다. 일례로, 예측 방법이 정해지는 처리 단위가 PU일 때 예측이 수행되는 처리 단위는 TU일 수도 있다.
잔차 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 복원 영상은 참조 픽쳐 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다.
이하, 유닛(unit)은 영상 부호화 및 복호화의 단위를 의미할 수 있다. 영상 부호화 및 복호화 시 부호화 혹은 복호화 단위는, 영상을 분할하여 부호화 혹은 복호화 할 때 그 분할된 단위를 의미하므로, 부호화 유닛 (CU: Coding Unit), 예측 유닛 (PU: Prediction Unit), 변환 유닛(TU: Transform Unit) 등으로 불릴 수 있다. 또한, 후술되는 실시예들에서 유닛은 블록으로도 지칭될 수 있다. 하나의 유닛은 크기가 더 작은 하위 유닛으로 더 분할될 수 있다.
도 3은 하나의 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
하나의 유닛은 트리 구조(tree structure)를 기초로 깊이 정보(depth)를 가지고 계층적으로 분할될 수 있다. 각각의 분할된 하위 유닛은 깊이 정보를 가질 수 있다. 상기 깊이 정보는 유닛이 분할된 회수 및/또는 정도를 나타내므로, 상기 하위 유닛의 크기에 관한 정보를 포함할 수도 있다.
도 3의 310은 하나의 유닛이 복수의 하위 유닛으로 분할되는 트리 구조의 실시예를 도시한다. 또한, 도 3의 320은 복수의 하위 유닛으로 분할되는 유닛의 실시예를 도시한다. 도 3의 320에 도시된 유닛은 일례로 CU이거나 TU일 수 있다.
도 3의 310을 참조하면, 가장 상위 노드는 루트 노드(root node)로 불릴 수 있고, 가장 작은 깊이 값을 가질 수 있다. 이 때, 가장 상위 노드는 레벨 0의 깊이를 가질 수 있으며, 분할되지 않은 최초의 유닛을 나타낼 수 있다.
레벨 1의 깊이를 갖는 하위 노드는 최초 유닛이 한 번 분할된 유닛을 나타낼 수 있으며, 레벨 2의 깊이를 갖는 하위 노드는 최초의 유닛이 두 번 분할된 유닛을 나타낼 수 있다. 예를 들어, 도 3의 320에서 노드 a에 대응하는 유닛 a는 최초 유닛에서 한 번 분할된 유닛이고, 레벨 1의 깊이를 가질 수 있다.
레벨 3의 리프 노드(leaf node)는 최초 유닛이 3번 분할된 유닛을 나타낼 수 있다. 예를 들어, 도3의 320에서 노드 d에 대응하는 유닛 d는 최초 유닛에서 세 번 분할된 유닛이고, 레벨 3의 깊이를 가질 수 있다. 따라서, 가장 하위 노드인 레벨 3의 리프 노드는 가장 깊은 깊이를 가질 수 있다.
이하, 후술되는 실시예들에서 부호화/복호화 대상 블록은 경우에 따라 현재 블록으로 지칭될 수도 있다. 또한 부호화/복호화 대상 블록에 대해 인트라 예측이 수행되는 경우, 상기 부호화/복호화 대상 블록은 예측 대상 블록으로 불릴 수도 있다.
한편, 영상 신호는 색 공간(color space)을 이루는 구성 요소인 색 성분들(color components)로 구성될 수 있다. 일례로, 영상 신호는 일반적으로 빛의 3원색 성분을 나타내는 세 가지의 색 성분을 포함할 수 있다. 빛의 3원색 성분을 나타내는 세 가지의 색 성분은 R(Red), G(Green), B(Blue)로 나타내어질 수 있다. 상기 R, G, B 신호는 영상 처리를 위해 사용되는 주파수 대역을 감소시키기 위해 하나의 루마(luma) 성분 및 두 개의 크로마(chroma) 성분으로 변환될 수 있다. 이 때, 하나의 영상 신호는 하나의 루마 성분과 두 개의 크로마 성분을 포함할 수 있다. 여기서, 루마 성분은 화면의 밝기를 나타내는 성분으로 Y로 나타내어질 수 있다. 또한, 두 개의 크로마 성분은 화면의 색(color)을 나타내는 성분으로 U, V 또는 Cb, Cr로 나타내어질 수 있다. 따라서, 영상의 색 공간은 일례로 YUV로 나타내어지거나 YCbCr로 나타내어질 수 있다. 이하, 후술되는 실시예들에서 루마 성분을 갖는 블록은 루마 블록, 크로마 성분을 갖는 블록은 크로마 블록으로 지칭될 수 있다.
인간의 눈은 루마 성분 신호에 대해서 민감하고 크로마 성분 신호에 대해서 둔감한 특성을 가진다. 이러한 특성을 이용하여 R, G, B 신호가 루마 신호 및 크로마 신호로 변환되는 경우, 영상 처리에 사용되는 주파수 대역이 감소될 수 있다. 또한, 이러한 특성에 의해 하나의 영상 또는 블록 내에서 크로마 성분의 픽셀 수가 루마 성분의 픽셀 수보다 작을 수 있다.
예를 들어, 4:2:0 영상 포맷에서, 루마 블록에 대응되는 크로마 블록의 수평 방향 픽셀 수는 루마 블록의 수평 방향 픽셀 수의 1/2이고, 루마 블록에 대응되는 크로마 블록의 수직 방향 픽셀 수는 루마 블록의 수직 방향 픽셀 수의 1/2에 해당될 수 있다. 4:2:2 영상 포맷에서, 루마 블록에 대응되는 크로마 블록의 수평 방향 픽셀 수는 루마 블록의 수평 방향 픽셀 수의 1/2이고, 루마 블록에 대응되는 크로마 블록의 수직 방향 픽셀 수는 루마 블록의 수직 방향 픽셀 수와 동일할 수 있다. 4:4:4 영상 포맷에서, 루마 블록에 대응되는 크로마 블록의 수평 방향 및 수직 방향 픽셀 수는 각각 루마 블록의 수평 방향 및 수직 방향 픽셀 수와 동일할 수 있다.
한편, 인트라 예측은 현재 블록의 인트라 예측 모드에 따라 수행될 수 있다. 현재 블록의 인트라 예측 모드는 인접한 주변 블록(neighboring block)의 예측 모드와 상관성이 크기 때문에, 현재 블록 블록에 인접한 주변 블록의 예측 모드를 기반으로 현재 블록의 예측 모드가 부호화될 수 있다. 이 때, 현재 블록에 대한 MPM(Most Probable Mode)이 이용될 수도 있다.
도 4는 인트라 예측 모드의 예측 방향 및 각 예측 방향에 할당된 모드 값의 실시예를 도시한다. 이하, 본 명세서에서 픽셀은 샘플과 동일한 의미를 가질 수 있으며, 후술되는 실시예들에서 픽셀은 경우에 따라 샘플로 지칭될 수도 있다.
도 1 및 도 2의 실시예에서 상술한 바와 같이, 부호화기 및 복호화기는 현재 픽쳐 내의 픽셀 정보를 기초로 인트라 예측을 수행하여 예측 블록을 생성할 수 있다. 즉, 인트라 예측 수행 시에 부호화기 및 복호화기는 적어도 하나의 복원된 참조 픽셀을 기반으로 방향성 예측 및/또는 비방향성 예측을 수행할 수 있다. 여기서, 예측 블록은 인트라 예측 수행 결과 생성된 블록을 의미할 수 있다. 상기 예측 블록은 부호화 유닛(CU), 예측 유닛(PU) 및 변환 유닛(TU) 중에서 적어도 하나에 해당될 수 있다.
상술한 바와 같이 인트라 예측은 현재 블록의 인트라 예측 모드에 따라 수행될 수 있다. 현재 블록이 가질 수 있는 인트라 예측 모드의 개수는 소정의 고정된 값일 수 있으며, 예측 블록의 크기에 따라 다르게 결정되는 값일 수도 있다. 일례로, 현재 블록이 가질 수 있는 인트라 예측 모드의 개수는 35 또는 36일 수 있다.
도 4의 410을 참조하면, 예를 들어, 모드 값이 1인 수직 모드의 경우 참조 픽셀의 픽셀 값을 기반으로 수직 방향으로 예측이 수행될 수 있고, 모드 값이 2인 수평 모드의 경우 참조 픽셀의 픽셀 값을 기반으로 수평 방향으로 예측이 수행될 수 있다. 상술한 모드 이외의 방향성 모드의 경우에도, 부호화기 및 복호화기는 해당 각도에 따라 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다.
도 4의 410에서 0의 모드 값을 갖는 예측 모드는 플래너(planar) 모드로 불릴 수 있고, 3의 모드 값을 갖는 예측 모드는 DC 모드로 불릴 수 있다. 상기 플래너 모드(예컨대, Intra_Planar) 및 DC 모드(예컨대, Intra_DC)는 비방향성 모드에 해당될 수 있다. 예를 들어, DC 모드의 경우, 복수의 참조 픽셀의 픽셀 값 평균에 의해 예측 블록이 생성될 수 있다. 플래너 모드에서는 예측 대상 픽셀의 위치를 기반으로 상기 예측 대상 픽셀의 예측에 사용될 참조 픽셀의 위치가 결정될 수 있고, 결정된 위치에 존재하는 참조 픽셀을 기반으로 예측 대상 픽셀의 예측 값이 도출될 수 있다.
또한, 도 4의 410에서 35의 모드 값을 갖는 예측 모드는 LM 모드(예컨대, Intra_FromLuma)로 불릴 수 있다. LM 모드는 루마 성분(예컨대, Y)의 픽셀 값에 따라 크로마 성분(예컨대, U 또는 V) 픽셀의 예측 값이 결정되는 예측 모드를 의미할 수 있다. LM 모드에서의 인트라 예측에 대한 구체적인 실시예는 후술하기로 한다.
인트라 예측 모드의 개수 및/또는 각각의 인트라 예측 모드에 할당되는 모드값은 상술한 실시예에 한정되지 않으며, 구현 및/또는 필요에 따라 다르게 정해질 수도 있다. 예를 들어, 인트라 예측 모드의 예측 방향 및 각 예측 모드에 할당되는 모드값은 도 4의 420에서와 같이 도 4의 410과 다르게 정해질 수도 있다. 또한, 일례로 도 4의 420의 실시예에서도 도 4의 410에서와 같이 LM 모드가 적용될 수 있다. 이 경우 LM 모드에는 35의 모드 값이 할당될 수 있다. 이하, 후술되는 실시예들에서는 설명의 편의상 다른 언급이 없는 경우에는 도 4의 410에서와 같은 인트라 예측 모드에 기반하여 인트라 예측이 수행되는 것으로 가정한다.
한편, 영상 내의 루마 성분과 크로마 성분은 상관성을 가지므로, 크로마 성분의 예측 모드는 대응되는 루마 성분의 예측 모드를 기반으로 부호화될 수 있으며, 복호화기는 루마 성분의 예측 모드를 기반으로 크로마 성분의 예측 모드를 도출할 수 있다. 따라서, 부호화기에서 복호화기로 전송되는 크로마 성분의 예측 모드 정보는 크로마 성분의 예측 모드 자체가 아니라 루마 성분의 예측 모드와의 관계에서 크로마 성분의 예측 모드를 도출하는 데 이용되는 별도의 값일 수 있다. 다음 표 1은 루마 성분의 예측 모드와 전송되는 값에 따라 결정되는 크로마 예측 모드의 일 실시예를 나타낸다.
[표 1]
표 1을 참조하면, 부호화기에서 복호화기로 전송되는 값은 intra_chroma_pred_mode에 할당된 값일 수 있다. IntraPredMode는 루마 성분의 인트라 예측 모드를 나타낸다. 예를 들어, intra_chroma_pred_mode 값이 2이고 IntraPredMode의 값이 26인 경우, 크로마 성분의 인트라 예측 모드 값은 10일 수 있다. 상기 intra_chroma_pred_mode 및 IntraPredMode는 그 명칭에 한정되는 것은 아니다. 또한, 각각의 예측 모드에 할당되는 값들은 하나의 실시예로서 구현 및/또는 필요에 따라 다르게 정해질 수도 있다.
표 1의 실시예에서 intra_chroma_pred_mode의 값이 4일 때에 크로마 성분의 예측 모드는 LM모드로 불릴 수 있고, intra_chroma_pred_mode의 값이 5일 때에 크로마 성분의 예측 모드는 DM모드로 불릴 수 있다. LM 모드는 루마 성분의 픽셀값에 따라 크로마 성분 픽셀의 예측값이 결정되는 예측 모드이고, DM 모드는 루마 성분의 예측 모드가 그대로 크로마 성분의 예측 모드로 사용되는 예측 모드이다.
또한, 부호화기는 현재 시퀀스 내에서 크로마 성분의 예측 모드에 따라 LM 모드가 적용되는지, 즉 현재 시퀀스 내에서 크로마 성분의 인트라 예측에 LM 모드가 적용될 수 있는지 여부를 지시하는 LM 플래그 정보를 부호화하여 복호화기로 전송할 수 있다. LM 플래그 정보는 일례로 chroma_pred_from_luma_enabled_flag라는 구문 요소(syntax element)를 통해 복호화기로 전송될 수 있다. 예를 들어, chroma_pred_from_luma_enabled_flag에 1이 할당된 경우 상기 플래그는 크로마 성분의 인트라 예측에 LM 모드가 이용될 수 있음을 지시할 수 있다. 또한, chroma_pred_from_luma_enabled_flag에 0이 할당된 경우 상기 플래그는 크로마 성분의 인트라 예측에 LM 모드가 이용되지 않음을 지시할 수 있다.
LM 플래그가 사용되는 경우, chroma_pred_from_luma_enabled_flag에 1이 할당되면 표 1의 실시예에 따라 크로마 예측 모드가 결정될 수 있다. 그러나, chroma_pred_from_luma_enabled_flag에 0이 할당되면 크로마 성분의 인트라 예측에 LM 모드가 이용되지 않으므로, 루마 성분의 예측 모드와 전송되는 값에 따라 결정되는 크로마 예측 모드는 표 1의 실시예에서와 다르게 결정될 수도 있다. 예를 들어, 크로마 성분의 인트라 예측에 LM 모드가 이용되지 않는 경우, 크로마 예측 모드는 다음 표 2의 실시예에서와 같이 나타내어질 수 있다.
[표 2]
한편, 색 공간을 구성하는 복수의 색 성분은 서로 상관성을 가지므로, 하나의 색 성분(제1 색 성분)을 기반으로 다른 색 성분(제2 색 성분)에 대한 예측을 수행함으로써, 제2 색 성분에 대한 부호화 효율이 향상될 수 있다. 이러한 예측 과정은 '색 성분 간 예측'으로도 불릴 수 있다. 상술한 바와 같이, 색 공간을 구성하는 색 성분에는 R, G, B, 루마 성분(예컨대, Y) 및/또는 크로마 성분(예컨대, U, V, Cb, Cr) 등이 있을 수 있다.
일례로, 상술한 LM 모드에서는 루마 성분을 기반으로 크로마 성분에 대한 예측이 수행될 수 있다. 이 때, 제1 색 성분은 루마 성분에 해당될 수 있고, 제2 색 성분은 크로마 성분에 해당될 수 있다. LM 모드에서 루마 성분과 크로마 성분의 상관성은 예측 파라미터를 이용한 선형 관계로 표현될 수 있다. 루마 성분을 기반으로 크로마 성분에 대해 예측을 수행하는 과정의 구체적인 실시예는 후술하기로 한다.
상기 제1 색 성분 및 상기 제2 색 성분은 다양한 조합을 가질 수 있으나, 본 명세서에서는 설명의 편의상 제1 색 성분은 루마 성분이라 하고, 제2 색 성분은 크로마 성분이라 한다. 다만, 후술되는 실시예들은 이에 한정되어 적용되는 것은 아니며, 제1 색 성분 및 제2 색 성분의 가능한 모든 조합에 대해 동일하거나 유사한 방식으로 적용될 수 있다. 이 때, 후술되는 실시예들에서 루마 성분은 제1 색 성분으로 볼 수 있으며, 크로마 성분은 제2 색 성분으로 볼 수 있다.
도 5는 루마 성분을 기반으로 하여 크로마 성분에 대한 예측을 수행하는 색 성분 간 예측 방법의 일 실시예를 개략적으로 나타내는 흐름도이다. 후술되는 예측 과정은 부호화 장치 및 복호화 장치의 인트라 예측부에서 수행될 수 있다.
이하, 본 명세서에서 부호화/복호화 대상이 되는 크로마 블록은 현재 크로마 블록이라 한다. 또한, 상기 현재 크로마 블록에 대응되는 '복원된' 루마 블록은 현재 루마 블록이라 한다. 일례로 현재 루마 블록은 현재 크로마 블록과 동일한 위치에 존재하는 블록일 수 있다. 다른 예로 현재 루마 블록은 현재 크로마 블록에 대해 소정의 상대적인 위치에 존재하거나 소정의 고정된 위치에 존재하는 블록일 수도 있다.
도 5를 참조하면, 부호화기 및 복호화기는 현재 루마 블록 내의 픽셀 및 현재 루마 블록 주변의 픽셀을 기반으로 현재 크로마 블록의 예측에 사용될 루마 참조 정보를 도출할 수 있다(S510).
루마 참조 정보는 현재 크로마 블록의 예측에 사용될 루마 성분의 픽셀 값들을 의미할 수 있다. 따라서, 본 명세서에서 루마 참조 정보는 '루마 참조 픽셀'로 지칭될 수도 있다. 이 때, 현재 크로마 블록 내의 픽셀들에 대응되는 루마 참조 픽셀들은 '루마 참조 블록'을 구성할 수 있다. 또한, 본 명세서에서 현재 루마 블록 주변에 위치하는 픽셀은 '주변 루마 픽셀'이라 하고, 현재 크로마 블록 주변에 위치하는 픽셀은 '주변 크로마 픽셀'이라 하며, 루마 참조 블록 주변에 위치하는 루마 참조 픽셀은 '주변 루마 참조 픽셀'이라 한다. 이 때, 루마 참조 블록은 현재 크로마 블록에 대응될 수 있고, 주변 루마 참조 픽셀은 주변 크로마 픽셀에 대응될 수 있다. 본 명세서에서, 루마 참조 정보는 루마 참조 블록 내의 픽셀 및 주변 루마 참조 픽셀을 포함한 개념으로 사용될 수 있다.
한편, 상술한 바와 같이 현재 루마 블록 및 현재 크로마 블록은 영상 포맷에 따라 서로 다른 크기를 가질 수도 있다. 이 경우, 부호화기 및 복호화기는 현재 루마 블록 내의 픽셀들 및 현재 루마 블록 주변의 픽셀들에 대해 다운 샘플링(down sampling) 및/또는 업 샘플링(up sampling)을 수행함으로써, 현재 크로마 블록과 동일한 크기의 루마 참조 블록 및 이에 대응되는 주변 루마 참조 픽셀들을 도출할 수 있다.
이 때, 부호화기 및 복호화기는 부호화 파라미터를 기반으로 루마 참조 정보를 다르게 생성할 수도 있다. 여기서, 부호화 파라미터는 부호화 및 복호화에 필요한 매개변수로서, 구문 요소와 같이 부호화기에서 부호화되어 복호화기로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 부호화하거나 복호화할 때 필요한 정보를 의미할 수 있다. 부호화 파라미터에는 예를 들어, 부호화 모드, 인트라 예측 모드, 인터 예측 모드, 양자화 파라미터(Quantization Parameter: QP) 등이 있을 수 있다.
또한, 현재 루마 블록, 루마 참조 블록 및/또는 현재 크로마 블록의 주변에 위치한 픽셀들 중에서는 가용하지 않은(unavailable) 픽셀들이 있을 수 있다. 이 경우, 부호화기 및 복호화기는 가용하지 않은 픽셀들에 대해 패딩 과정(padding process)을 수행할 수도 있다. 여기서, 패딩은 가용하지 않은 픽셀의 위치에 가용한 픽셀을 기반으로 새로운 픽셀 값을 채워 넣는 프로세스를 의미할 수 있다.
루마 참조 정보 도출 과정의 구체적인 실시예들은 후술하기로 한다.
다시 도 5를 참조하면, 부호화기 및 복호화기는 루마 참조 정보 및 크로마 성분 정보를 기반으로 현재 크로마 블록에 대한 예측 파라미터를 도출할 수 있다(S520).
일례로, 부호화기 및 복호화기는 주변 루마 참조 픽셀들의 픽셀 값 및 주변 크로마 픽셀들의 픽셀 값을 기반으로 예측 파라미터를 도출할 수 있다. 여기서, 예측 파라미터는 최소 자승법을 기반으로 하는 알파(α) 및 베타(β)일 수 있다.
예측 파라미터 도출 과정의 구체적인 실시예들은 후술하기로 한다.
다시 도 5를 참조하면, 부호화기 및 복호화기는 예측 파라미터 및 루마 참조 블록 내의 루마 참조 픽셀 값을 기반으로 현재 크로마 블록 내 픽셀들의 예측 값을 도출할 수 있다(S530). 즉, 부호화기 및 복호화기는 예측 파라미터 및 루마 참조 블록 내의 루마 참조 픽셀 값을 기반으로 현재 크로마 블록에 대해 인트라 예측을 수행할 수 있다. 현재 크로마 블록 내 픽셀들의 예측 값을 도출하는 과정의 구체적인 실시예는 후술하기로 한다.
도 6은 현재 루마 블록의 크기 및 현재 크로마 블록의 크기가 서로 다른 경우, 루마 참조 정보를 도출하는 방법의 일 실시예를 나타낸다.
상술한 바와 같이 현재 루마 블록 및 현재 크로마 블록은 영상 포맷에 따라 서로 다른 크기를 가질 수 있다. 예를 들어, 영상의 색 공간(color space)이 YUV 4:2:0 또는 YCbCr 4:2:0인 경우, 현재 루마 블록의 크기가 현재 크로마 블록의 크기보다 4배 클 수 있다. 이 경우 부호화기 및 복호화기는 현재 루마 블록을 기반으로 현재 크로마 블록과 동일한 크기를 갖는 루마 참조 블록 내의 픽셀들을 도출할 수 있으며, 상기 루마 참조 블록의 주변에 위치한 주변 루마 참조 픽셀들을 도출할 수 있다. 즉, 이 경우 부호화기 및 복호화기는 현재 크로마 블록의 크기에 대응되도록 루마 참조 정보를 생성할 수 있다.
도 6의 610은 현재 루마 블록(612), 주변 루마 픽셀들(614), 현재 크로마 블록(616) 및 주변 크로마 픽셀들(618)의 실시예를 도시한다. 도 6의 610을 참조하면, 현재 크로마 블록(616)의 크기가 4x4일 때, 이에 대응되는 현재 루마 블록(612)의 크기는 8x8일 수 있다. 이 경우, 부호화기 및 복호화기는 4x4 크기의 루마 참조 블록에 대응되는 루마 참조 픽셀들을 생성할 수 있다.
도 6의 620은 루마 참조 정보 도출 방법의 일 실시예를 도시한다.
도 6의 620의 실시예에서는, 도 6의 610에서와 같이 현재 루마 블록(612)의 크기가 8x8이고 현재 크로마 블록(616)의 크기가 4x4인 경우의 루마 참조 정보(626, 628) 도출 방법이 도시된다.
도 6의 620을 참조하면, 부호화기 및 복호화기는 현재 루마 블록(612) 내의 픽셀 및 주변 루마 픽셀들(624)을 기반으로, 현재 크로마 블록(616)의 예측에 사용될 루마 참조 블록(626) 및 주변 루마 참조 픽셀들(628)을 생성할 수 있다. 여기서, 루마 참조 정보 도출에 사용되는 주변 루마 픽셀들(624)은, 현재 루마 블록(612)의 좌측에 가장 가까이 위치한 두 개의 픽셀 라인에 포함된 픽셀들, 및 현재 루마 블록(612)의 상단에 가장 가까이 위치한 한 개의 픽셀 라인에 포함된 픽셀들을 포함할 수 있다.
한편, 도 6의 620에서는 현재 루마 블록(612) 및 현재 크로마 블록(616)의 크기가 서로 다르므로, 부호화기 및 복호화기는 현재 크로마 블록(616)과 동일한 크기(4x4)의 루마 참조 블록(626) 및 이에 대응되는 주변 루마 참조 픽셀들(628)을 생성할 수 있다. 이 때, 현재 크로마 블록(616)의 크기가 현재 루마 블록(612)의 크기보다 작으므로, 부호화기 및 복호화기는 현재 루마 블록(612) 내의 픽셀들 및 주변 루마 픽셀들(624)에 대해 다운 샘플링(down sampling)을 수행함으로써 루마 참조 정보를 생성할 수 있다.
이하, 본 명세서의 좌표들(예컨대, (x,y))은 블록 내의 가장 좌측 상단에 존재하는 픽셀의 위치를 기준으로 하는 좌표일 수 있다. 일례로 본 명세서에서 블록 내의 가장 좌측 상단에 존재하는 픽셀의 좌표는 (0,0)일 수 있다.
일 실시예로, 부호화기 및 복호화기는 현재 루마 블록(612) 내의 픽셀들 및 주변 루마 픽셀들(624)에 대해 2 탭(2-tap) 필터, 3 탭(3-tap) 필터 및/또는 4 탭(4-tap) 필터 등을 적용함으로써 다운 샘플링을 수행할 수 있다. 이 때, 다운 샘플링 수행 과정은 일례로 다음 수학식 1에 의해 나타내어질 수 있다.
[수학식 1]
p'[x,y] = (p[2x,2y] + p[2x,2y+1]) >> 1
p'[x,y] = (p[2x+1,2y] + p[2x+1,2y+1]) >> 1
p'[x,y] = (p[2x-1,2y+1] + 2*p[2x,2y+1] + p[2x+1,2y+1] + 2) >> 2
여기서, p[x,y]는 복원된 루마 성분 픽셀들, 즉 현재 루마 블록(612) 내의 픽셀들 및 주변 루마 픽셀들(624)의 픽셀 값을 나타낼 수 있다. 또한, p'[x,y]는 현재 크로마 블록(616)의 크기에 따라 생성된 루마 참조 픽셀들(626, 628)의 픽셀 값을 나타낼 수 있다.
다른 실시예로, 부호화기 및 복호화기는 소정의 연산에 따라 현재 루마 블록(612) 내의 픽셀들 및 주변 루마 픽셀들(624) 중에서 루마 참조 픽셀로 사용될 픽셀들을 선택함으로써, 다운 샘플링을 수행할 수도 있다. 이 때, 일례로 부호화기 및 복호화기는 소정의 크기를 갖는 픽셀 그룹 내에서 하나의 픽셀을 선택하여 루마 참조 픽셀로 사용할 수 있다. 이러한 다운 샘플링 수행 과정은 일례로 다음 수학식 2, 수학식 3 및 수학식 4 에 의해 나타내어지는 다운 샘플링 방식 중에서 적어도 하나의 방식으로 수행될 수 있다.
[수학식 2]
p'[x,y] = p[2x,2y]
[수학식 3]
p'[x,y] = p[2x,2y+1]
[수학식 4]
p'[x,y] = p[2x+1,2y]
또한, 현재 루마 블록(612) 내의 픽셀들, 현재 루마 블록(612)의 상단에 위치한 주변 루마 픽셀들 및 현재 루마 블록(612)의 좌측에 위치한 주변 루마 픽셀들에는 서로 다른 다운 샘플링 방식이 적용될 수도 있다. 일례로, 현재 루마 블록(612) 내의 픽셀들에 수학식 1에 의한 다운 샘플링 방식이 적용될 때, 현재 루마 블록(612)의 상단에 위치한 주변 루마 픽셀들에는 수학식 2에 의한 다운 샘플링 방식이 적용될 수도 있고, 현재 루마 블록(612)의 좌측에 위치한 주변 루마 픽셀들에는 수학식 3에 의한 다운 샘플링 방식이 적용될 수도 있다. 여기서, 다운 샘플링 방식이 적용되는 가능한 실시예들의 조합이 모두 서술되지는 않지만, 당해 분야에서 통상의 지식을 가진 자라면, 상술한 다운 샘플링 방식들의 다른 조합의 사용이 가능함을 인식할 수 있을 것이다.
도 6의 630은 루마 참조 정보 도출 방법의 다른 실시예를 도시한다.
도 6의 630의 실시예에서는, 도 6의 610에서와 같이 현재 루마 블록(612)의 크기가 8x8이고 현재 크로마 블록(616)의 크기가 4x4인 경우의 루마 참조 정보(636, 638) 도출 방법이 도시된다.
도 6의 630을 참조하면, 부호화기 및 복호화기는 현재 루마 블록(612) 내의 픽셀 및 주변 루마 픽셀들(634)을 기반으로, 현재 크로마 블록(616)의 예측에 사용될 루마 참조 블록(636) 및 주변 루마 참조 픽셀들(638)을 생성할 수 있다.
도 6의 630에서는, 도 6의 620에서와 달리 현재 루마 블록(612)의 좌측에 가장 가까이 위치한 “한 개”의 픽셀 라인에 포함된 픽셀들, 및 현재 루마 블록(612)의 상단에 가장 가까이 위치한 한 개의 픽셀 라인에 포함된 픽셀들을 기반으로 다운 샘플링을 수행함으로써, 루마 참조 정보(636, 638)가 도출될 수 있다. 즉, 도 6의 630의 실시예에서는, 현재 루마 블록(612) 좌측 및 상단에서 각각 한 개의 픽셀 라인에 포함된 픽셀들(634)만이 루마 참조 정보 (636, 638) 도출에 사용될 수 있다.
도 6의 630에서 다운 샘플링 수행 방법은 도 6의 620에서와 동일하므로 다운 샘플링 수행 방법에 관한 구체적인 설명은 생략하기로 한다.
한편, 부호화기 및 복호화기는 주변 루마 픽셀들을 포함하는 블록 및/또는 현재 루마 블록의 부호화 파라미터를 기반으로 루마 참조 정보를 다르게 생성할 수도 있다. 상술한 바와 같이, 부호화 파라미터에는 부호화 모드, 인트라 예측 모드, 인터 예측 모드, 양자화 파라미터(Quantization Parameter: QP) 등이 있을 수 있다. 예를 들어, 부호화기 및 복호화기는 왜곡이 작은 픽셀들의 픽셀 값만을 이용하여 루마 참조 정보를 생성할 수 있다.
일 실시예로, 부호화기 및 복호화기는 부호화 모드를 기반으로 루마 참조 정보를 다르게 생성할 수 있다. 일례로, 부호화기 및 복호화기는 현재 루마 블록 내의 픽셀들 및 주변 루마 픽셀들 중에서 인트라 모드로 부호화된 블록 내의 픽셀들만을 루마 참조 정보 도출에 이용할 수 있다.
부호화 파라미터를 기반으로 루마 참조 정보를 생성하는 방법의 추가 실시예는 도 7에서 후술된다.
도 7은 부호화 파라미터를 기반으로 루마 참조 정보를 생성하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 7의 710은 현재 루마 블록(712)의 인트라 예측 모드를 기반으로 루마 참조 정보(716, 718)를 생성하는 방법의 일 실시예를 나타낸다. 도 7의 710에서, 현재 루마 블록(712)의 크기는 8x8이고 현재 크로마 블록의 크기는 4x4라 가정한다.
도 7의 710에서는 현재 루마 블록(712) 내의 픽셀들 및 주변 루마 픽셀들(714)을 기반으로, 현재 크로마 블록의 예측에 사용될 루마 참조 블록(716) 및 주변 루마 참조 픽셀들(718)이 생성될 수 있다. 현재 크로마 블록의 크기는 4x4이므로, 생성된 루마 참조 블록(716)의 크기는 4x4일 수 있다.
이 때, 현재 루마 블록(712)의 인트라 예측 모드는 수직(vertical) 모드(722)이므로, 부호화기 및 복호화기는 주변 루마 픽셀들(714) 중에서 현재 루마 블록(712)의 상단에 인접하여 위치한 픽셀들만을 루마 참조 정보(716, 718) 생성에 이용할 수 있다. 따라서, 도 7의 710에서 도출되는 주변 루마 참조 픽셀들(718)은 루마 참조 블록(716)의 상단에 인접하여 위치한 픽셀들일 수 있다.
도 7의 710에서와 달리 현재 루마 블록의 인트라 예측 모드가 수평(horizontal) 모드이면, 부호화기 및 복호화기는 주변 루마 픽셀들 중에서 현재 루마 블록의 좌측에 인접하여 위치한 픽셀들만을 루마 참조 정보 생성에 이용할 수도 있다. 이 경우 도출되는 주변 루마 참조 픽셀들은 루마 참조 블록의 좌측에 인접하여 위치한 픽셀들일 수 있다. 현재 루마 블록의 인트라 예측 모드가 DC 모드 또는 플래너 모드이면, 부호화기 및 복호화기는 현재 루마 블록의 좌측에 위치한 픽셀들 및 현재 루마 블록의 상단에 위치한 픽셀들이 모두 루마 참조 정보 생성에 이용될 수 있다. 이 경우 도출되는 주변 루마 참조 픽셀들은 루마 참조 블록의 좌측에 위치한 픽셀들 및 루마 참조 블록의 상단에 위치한 픽셀들을 모두 포함할 수 있다.
도 7의 730은 현재 루마 블록(732)의 주변에 위치한 주변 루마 블록(734, 736, 738)의 양자화 파라미터를 기반으로 루마 참조 정보(752, 754)를 생성하는 방법의 일 실시예를 나타낸다. 도 7의 730에서, 현재 루마 블록(732)의 크기는 8x8이고, 현재 크로마 블록의 크기는 4x4라 가정한다.
도 7의 730을 참조하면, 현재 루마 블록(732)의 상단에 인접하여 위치한 상단 주변 루마 블록(734)의 양자화 파라미터 값은 22이고, 현재 루마 블록(732) 외부의 좌측 상단 코너에 위치한 좌측 상단 주변 루마 블록(736)의 양자화 파라미터 값은 26이다. 또한, 현재 루마 블록(732)의 좌측에 인접하여 위치한 좌측 주변 루마 블록(738)의 양자화 파라미터 값은 28이다. 이 때, 부호화기 및 복호화기는 주변 루마 픽셀들(744, 746, 748) 중에서, 가장 작은 양자화 파라미터 값을 갖는 주변 루마 블록에 속한 주변 루마 픽셀들을 루마 참조 정보 생성에 이용할 수 있다.
도 7의 730에서는 상단 주변 루마 블록(734), 좌측 상단 주변 루마 블록(736) 및 좌측 주변 루마 블록(738) 중에서 상단 주변 루마 블록(734)이 가장 작은 양자화 파라미터 값(예컨대, 22)을 가지므로, 상단 주변 루마 블록(734) 내의 주변 루마 픽셀들(744)이 루마 참조 정보 생성에 이용될 수 있다. 즉, 도 7의 730에서 부호화기 및 복호화기는 현재 루마 블록(732) 내의 픽셀들 및 상단 주변 루마 블록(734) 내의 주변 루마 픽셀들(744)이 루마 참조 블록(752) 및 주변 루마 참조 픽셀들(754)의 생성에 이용될 수 있다.
도 7의 730에서 현재 크로마 블록의 크기는 4x4이므로, 생성된 루마 참조 블록(752)의 크기는 4x4일 수 있다. 또한, 도 7의 730에서 도출되는 주변 루마 참조 픽셀들(754)은 루마 참조 블록(752)의 상단에 인접하여 위치한 픽셀들일 수 있다.
도 7의 실시예에서, 루마 참조 정보를 생성하기 위해 수행되는 다운 샘플링 과정은 도 6의 실시예에서와 유사하므로 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
도 8은 주변 루마 픽셀들 중에서 가용하지 않은 픽셀이 존재하는 경우에 루마 참조 정보를 생성하는 과정의 실시예를 개략적으로 나타내는 도면이다.
상술한 바와 같이, 현재 루마 블록의 주변에 위치한 주변 루마 픽셀들 중에서는 가용하지 않은(unavailable) 픽셀들이 있을 수 있다. 주변 루마 픽셀이 가용하지 않은 경우로는 현재 루마 블록이 현재 픽쳐의 경계에 인접하여 위치한 경우, 현재 루마 블록이 현재 슬라이스(slice)의 경계에 인접하여 위치한 경우 및 현재 루마 블록에 대해 CIP(Constrained Intra Prediction)가 적용되는 경우 등이 있을 수 있다.
도 8의 810은 현재 루마 블록이 현재 픽쳐 및/또는 현재 슬라이스의 경계에 인접하여 위치하는 경우 루마 참조 정보를 도출하는 방법의 실시예를 도시한다. 도 8의 810을 참조하면, 현재 루마 블록(812)은 현재 픽쳐 및/또는 현재 슬라이스의 좌측 경계(818)에 인접하여 위치한 블록일 수 있다. 이 경우, 현재 루마 블록(812)의 좌측에 위치하는 주변 루마 픽셀들(816)은 현재 픽쳐 및/또는 현재 슬라이스의 외부에 위치하므로, 가용하지 않은 픽셀들에 해당될 수 있다.
이 때, 일 실시예로 부호화기 및 복호화기는 다운 샘플링 과정을 수행하기에 앞서 가용하지 않은 픽셀들에 대해 패딩 과정을 수행할 수 있다. 상술한 바와 같이, 패딩은 가용하지 않은 픽셀의 위치에 새로운 픽셀 값을 채워 넣는 프로세스를 의미할 수 있다.
도 8의 810에서와 같이 현재 루마 블록(812)의 좌측에 위치하는 주변 루마 픽셀들(816)이 가용하지 않은 경우, 부호화기 및 복호화기는 현재 루마 블록(812)의 상단에 위치한 가용한 주변 루마 픽셀들(814) 중에서 적어도 하나의 픽셀의 픽셀 값을 현재 루마 블록(812)의 좌측에 위치한 주변 루마 픽셀들의 위치에 채워 넣을 수 있다. 일례로, 현재 루마 블록(812)의 좌측에 가장 가까이 위치한 제1 픽셀 라인에 픽셀 값을 채워 넣는 과정은 다음 수학식 5에 의해 나타내어질 수 있다.
[수학식 5]
p[-1,y] = p[0,-1], (y=0~7)
여기서, p[x,y]는 루마 성분의 복원된 픽셀 값을 나타낼 수 있다.
현재 루마 블록(812)의 좌측에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 픽셀 라인의 좌측에 인접하여 위치한 제2 픽셀 라인에 픽셀 값을 채워 넣는 과정은 일례로 다음 수학식 6에 의해 나타내어질 수 있다.
[수학식 6]
p[-2,y] = p[0,-1], (y=0~7)
패딩 과정이 수행된 경우 부호화기 및 복호화기는 새로이 채워진 픽셀 값을 루마 참조 정보 생성에 이용할 수 있다. 즉, 부호화기 및 복호화기는 가용한 주변 루마 픽셀들(814)의 픽셀 값, 패딩 과정에 의해 채워진 픽셀들(816)의 픽셀 값 및 현재 루마 블록(812) 내의 픽셀들의 픽셀 값을 기반으로 루마 참조 정보를 생성할 수 있다.
다른 실시예로 부호하기 및 복호화기는 가용하지 않은 주변 루마 픽셀들은 루마 참조 정보 생성에 이용하지 않을 수도 있다. 즉, 부호화기 및 복호화기는 현재 루마 블록 내의 픽셀들 및 가용한 주변 루마 픽셀들을 기반으로 루마 참조 정보를 생성할 수 있다. 예를 들어, 도 8의 810에서는 현재 루마 블록(812) 내의 픽셀들 및 현재 루마 블록(812)의 상단에 위치한 가용한 주변 루마 픽셀들(814)이 루마 참조 정보 생성에 이용될 수 있다.
도 8의 810에서 루마 참조 정보 생성 과정에서는 도 6 및 도 7의 실시예에서 상술한 루마 참조 정보 생성 방법들 중에서 적어도 하나가 상술한 실시예들과 함께 적용될 수도 있다.
도 8의 820은 CIP(Constrained Intra Prediction)가 적용되는 경우에 루마 참조 정보를 도출하는 방법의 실시예를 도시한다.
CIP는 예측 대상 블록의 주변에 위치한 블록들 중에서 인트라 예측에 의해 부호화/복호화되는 블록 내의 픽셀들만을 예측에 이용하는 인트라 예측 방식을 의미할 수 있다. CIP가 적용되는 경우, 인터 예측에 의해 부호화/복호화된 블록 내의 픽셀들은 인트라 예측에 이용되지 않을 수 있다.
일례로 부호화기는 CIP가 적용되는지 여부에 대한 플래그 정보를 복호화기로 전송할 수 있다. 이 때, 복호화기는 상기 플래그 정보를 기반으로 CIP 적용 여부를 결정할 수 있다. CIP가 적용되는지 여부에 대한 플래그 정보는 일례로 'constrained_intra_pred_flag'로 나타내어질 수 있다.
도 8의 820을 참조하면, 현재 루마 블록(822)의 상단에 위치한 상단 주변 루마 블록(824)은 인트라(intra) 모드로 부호화/복호화된 블록이고, 현재 루마 블록(822)의 좌측에 위치한 좌측 주변 루마 블록(826)은 인터(inter) 모드로 부호화/복호화된 블록일 수 있다. 이 경우, 좌측 주변 루마 블록(826) 내에 위치하는 주변 루마 픽셀들(836)은 가용하지 않은 픽셀들에 해당될 수 있다.
이 때, 일 실시예로 부호화기 및 복호화기는 다운 샘플링 과정을 수행하기에 앞서 가용하지 않은 픽셀들에 대해 패딩 과정을 수행할 수 있다. 상술한 바와 같이, 패딩은 가용하지 않은 픽셀의 위치에 새로운 픽셀 값을 채워 넣는 프로세스를 의미할 수 있다. 이 때, 부호화기 및 복호화기는 가용하지 않은 주변 루마 픽셀들을 가용한 주변 루마 픽셀의 픽셀 값으로 채워 넣을 수 있다.
일례로, 도 8의 820에서와 같이 좌측 주변 루마 블록(826) 내에 위치하는 주변 루마 픽셀들(836)이 가용하지 않은 경우, 부호화기 및 복호화기는 상단 주변 루마 블록(824) 내에 위치하는 가용한 주변 루마 픽셀들(834) 중에서 적어도 하나의 픽셀의 픽셀 값을 가용하지 않은 주변 루마 픽셀들(836)의 위치에 채워 넣을 수 있다. 일례로, 상단 주변 루마 블록(824) 내의 픽셀을 기반으로 패딩을 수행하는 과정은 다음 수학식 7에 의해 나타내어질 수 있다.
[수학식 7]
p[-2,y] = p[-2,-1] (y=0~7) 또는
p[-2,y] = p[-1,-1] (y=0~7) 또는
p[-1,y] = p[-1,-1] (y=0~7)
다른 예로, 좌측 주변 루마 블록(826)의 하단에 인접하여 위치한 픽셀들(838)은 인트라 모드로 부호화/복호화된 블록 내의 픽셀일 수 있다. 이 때, 부호화기 및 복호화기는 좌측 주변 루마 블록의 상단에 위치한 픽셀(예컨대, (-2,-1)의 위치에 존재하는 픽셀 또는 (-1,-1)의 위치에 존재하는 픽셀) 및 좌측 주변 루마 블록의 하단에 위치한 픽셀(예컨대, (-2,8)의 위치에 존재하는 픽셀 또는 (-1,8)의 위치에 존재하는 픽셀)의 픽셀 평균 값을 가용하지 않은 주변 루마 픽셀들(836)의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 8에 의해 나타내어질 수 있다.
[수학식 8]
p[-2,y] = (p[-2,-1] + p[-2,8] + 1)>>1, (y=0~7) 또는
p[-2,y] = (p[-1,-1] + p[-1,8] + 1)>>1, (y=0~7)
*163패딩 과정이 수행된 경우 부호화기 및 복호화기는 새로이 채워진 픽셀 값을 루마 참조 정보 생성에 이용할 수 있다. 즉, 부호화기 및 복호화기는 가용한 주변 루마 픽셀들(834)의 픽셀 값, 패딩 과정에 의해 채워진 픽셀들(836)의 픽셀 값 및 현재 루마 블록(822) 내의 픽셀들의 픽셀 값을 기반으로 루마 참조 정보를 생성할 수 있다.
다른 실시예로 도 8의 820에서 부호하기 및 복호화기는 가용하지 않은 주변 루마 픽셀들은 루마 참조 정보 생성에 이용하지 않을 수도 있다. 즉, 부호화기 및 복호화기는 현재 루마 블록 내의 픽셀들 및 가용한 주변 루마 픽셀들을 기반으로 루마 참조 정보를 생성할 수 있다. 예를 들어, 도 8의 820에서는 현재 루마 블록(822) 내의 픽셀들 및 상단 주변 루마 블록(824) 내에 위치한 가용한 주변 루마 픽셀들(834)이 루마 참조 정보 생성에 이용될 수 있다.
도 8의 820에서 루마 참조 정보 생성 과정에서는 도 6 및 도 7의 실시예에서 상술한 루마 참조 정보 생성 방법들 중에서 적어도 하나가 상술한 실시예들과 함께 적용될 수도 있다.
도 9는 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 실시예를 설명하기 위한 도면이다.
도 9의 실시예는 현재 루마 블록(910)의 좌측에 가장 가까이 위치한 제1 좌측 픽셀 라인 및 현재 루마 블록(910)의 상단에 가장 가까이 위치한 제1 상단 픽셀 라인 내의 주변 루마 픽셀들이 루마 참조 정보 생성에 사용되는 경우의 실시예를 도시한다. 도 9의 실시예에서, 현재 루마 블록(910)의 좌측에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 좌측 픽셀 라인의 좌측에 인접하여 위치한 픽셀 라인은 제2 좌측 픽셀 라인이라 지칭하기로 한다. 또한, 현재 루마 블록(910)의 상단에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 상단 픽셀 라인의 상단에 인접하여 위치한 픽셀 라인은 제2 상단 픽셀 라인이라 지칭하기로 한다.
도 9의 실시예에서, 예측 대상이 되는 현재 크로마 블록의 인트라 예측 모드는 LM 모드라 가정한다. 일례로, LM 모드는 Intra_FromLuma로 나타내어질 수 있다. 또한, 도 9에서 현재 루마 블록(910)의 크기는 8x8이고 현재 크로마 블록의 크기는 4x4라 가정한다. 상술한 바와 같이 현재 크로마 블록의 예측에 사용될 루마 참조 블록의 크기는 현재 크로마 블록의 크기와 동일할 수 있다. 따라서, 도 9의 실시예에서 도출되는 루마 참조 블록(930)의 크기는 4x4일 수 있다.
또한, 도 9의 실시예에 도시된 주변 루마 픽셀들(922, 924, 926, 928) 중에서, 922에 해당되는 주변 루마 픽셀들 및 926에 해당되는 주변 루마 픽셀들은 가용한(available) 픽셀이고, 924에 해당되는 주변 루마 픽셀들 및 928에 해당되는 주변 루마 픽셀들은 가용하지 않은(unavailable) 픽셀이라 가정한다. 이 경우, 부호화기 및 복호화기는 가용하지 않은 주변 루마 픽셀에 대해 패딩 과정을 수행한 후에 루마 참조 정보를 생성할 수 있다.
도 9의 실시예에서, 부호화기 및 복호화기는 제2 좌측 픽셀 라인 상의 주변 루마 픽셀 값들을 제1 좌측 픽셀 라인에 카피(copy)한 후에 패딩 과정을 수행할 수 있다. 즉 부호화기 및 복호화기는 제1 좌측 픽셀 라인의 주변 루마 픽셀 값들을 제2 좌측 픽셀 라인의 주변 루마 픽셀 값으로 대체한 후에, 제1 좌측 픽셀 라인 및 제1 상단 픽셀 라인 상의 가용하지 않은 주변 루마 픽셀에 대한 패딩 과정을 수행할 수 있다. 제2 좌측 픽셀 라인 상의 주변 루마 픽셀 값들을 제1 좌측 픽셀 라인에 카피(copy)하는 과정은 일례로 다음 수학식 9에 의해 나타내어질 수 있다.
[수학식 9]
PY[x,y] = PY[x-1,y], (x=-1, y=0~2*nS-1)
*173여기서, PY 는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, nS는 현재 루마 블록(910)의 가로 길이 및 세로 길이를 나타낼 수 있다.
제2 촤즉 픽셀 라인 상의 주변 루마 픽셀 값들이 제1 좌측 픽셀 라인에 카피된 후, 부호화기 및 복호화기는 주변 루마 픽셀에 대한 패딩 과정을 수행함으로써, 루마 참조 정보 생성에 사용될 주변 루마 픽셀들의 픽셀 값을 도출할 수 있다. 루마 참조 정보 생성에 사용될 주변 루마 픽셀들의 픽셀 값들은 다음 수학식 10에 의해 나타내어질 수 있다.
[수학식 10]
PY[x,y], (x=-1, y=-1~nS*2-1), (x=0~nS*2-1, y=-1)
주변 루마 픽셀들 중에서 가용하지 않은 픽셀들은 도 9의 924, 928과 같이 픽셀 그룹을 구성할 수 있다. 도 9의 실시예에서는 설명의 편의상 제1 좌측 픽셀 라인 상의 가용하지 않은 픽셀들(예컨대, 도 9의 928에서 좌측에 위치한 네 개의 픽셀들)의 그룹은 좌측 픽셀 그룹이라 하고, 제1 상단 픽셀 라인 상의 가용하지 않은 픽셀들(924)의 그룹은 상단 픽셀 그룹이라 한다. 도 9의 실시예에서, 상단 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=nS~nS*2-1, y=-1)로 나타내어질 수 있고, 좌측 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=-1, y=nS~nS+(nS>>1)-1)로 나타내어질 수 있다.
부호화기 및 복호화기는 패딩을 수행하기 위해 각각의 픽셀 그룹(예컨대, 좌측 픽셀 그룹, 상단 픽셀 그룹)의 양 쪽 끝에 상기 픽셀 그룹에 인접하여 위치한 가용한 픽셀이 존재하는지 여부를 판단할 수 있다.
일례로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 한 쪽 끝에만 존재할 수 있다. 도 9를 참조하면, 상단 픽셀 그룹(924)의 우측에는 가용한 픽셀이 존재하지 않고, 상단 픽셀 그룹(924)의 좌측에는 가용한 픽셀(c)이 존재할 수 있다. 여기서, 픽셀 c는 PY[nS-1,-1]로 나타내어질 수 있다.
이 경우, 제1 상단 픽셀 라인 내에서 상단 픽셀 그룹(924)에 인접하여 위치한 가용한 픽셀은 하나만 존재할 수 있다. 따라서, 부호화기 및 복호화기는 상단 픽셀 그룹에 인접하여 위치한 가용한 픽셀(c)의 픽셀 값을, 상단 픽셀 그룹(924) 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 11에 의해 나타내어질 수 있다.
[수학식 11]
PY[x,y] = PY[nS-1,-1], (x=nS~nS*2-1, y=-1)
다른 예로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 양 쪽 끝에 존재할 수도 있다. 도 9를 참조하면, 좌측 픽셀 그룹의 상단에는 가용한 픽셀 b가 인접하여 위치할 수 있고, 좌측 픽셀 그룹의 하단에는 가용한 픽셀 a가 인접하여 위치할 수 있다. 여기서, 픽셀 a는 PY[-1, nS+(nS>>1)]로 나타내어질 수 있고, 픽셀 b는 PY[-1, nS-1]로 나타내어질 수 있다.
이 경우, 제1 좌측 픽셀 라인 내에서 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들은 두 개가 존재할 수 있다. 따라서, 부호화기 및 복호화기는 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들(a,b)의 픽셀 평균 값을, 좌측 픽셀 그룹 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 12에 의해 나타내어질 수 있다.
[수학식 12]
PY[x,y] = (PY[-1,nS-1] + PY[-1,nS+(nS>>1)] + 1) >> 1,
*187(x=-1, y=nS~nS+(nS>>1)-1)
상술한 패딩 과정에 의해 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들 및 제1 상단 픽셀 라인 상의 주변 루마 픽셀들의 픽셀 값들이 결정될 수 있다. 이 때, 부호화기 및 복호화기는 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들, 제1 상단 픽셀 라인 상의 주변 루마 픽셀들 및 현재 루마 블록(910) 내의 픽셀들의 픽셀 값을 기반으로, 루마 참조 정보(루마 참조 블록(930) 및 주변 루마 참조 픽셀들(940))를 생성할 수 있다. 다만, [-1,-1]의 위치에 존재하는 주변 루마 픽셀은 루마 참조 정보 생성에 사용되지 않을 수도 있다. 도 9의 실시예에서, 루마 참조 정보 생성 과정은 일례로 다음 수학식 13에 의해 나타내어질 수 있다.
[수학식 13]
PY'[x,y] = (PY[2x-1,y] + 2*PY[2x,y] + PY[2x+1,y] + 2) >> 2, (x=0~nS-1, y=-1)
PY'[x,y] = (PY[x,2y] + PY[x,2y+1]) >> 1, (x=-1, y=0~nS-1)
PY'[x,y] =(PRecY[2x,2y] + PRecY[2x,2y+1]) >> 1, (x=0~nS-1, y=0~nS-1)
여기서, PRecY 는 현재 루마 블록 내 픽셀의 픽셀 값을 나타낼 수 있다. 또한, PY'는 루마 참조 정보에 해당되는 픽셀 값(예컨대, 루마 참조 블록 내의 픽셀 및/또는 주변 루마 참조 픽셀의 픽셀 값)을 나타낼 수 있다.
도 10은 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 다른 실시예를 설명하기 위한 도면이다.
도 10의 실시예는 현재 루마 블록(1010)의 좌측에 가장 가까이 위치한 제1 좌측 픽셀 라인 및 현재 루마 블록(1010)의 상단에 가장 가까이 위치한 제1 상단 픽셀 라인 내의 주변 루마 픽셀들이 루마 참조 정보 생성에 사용되는 경우의 실시예를 도시한다. 도 10의 실시예에서, 현재 루마 블록(1010)의 좌측에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 좌측 픽셀 라인의 좌측에 인접하여 위치한 픽셀 라인은 제2 좌측 픽셀 라인이라 지칭하기로 한다. 또한, 현재 루마 블록(1010)의 상단에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 상단 픽셀 라인의 상단에 인접하여 위치한 픽셀 라인은 제2 상단 픽셀 라인이라 지칭하기로 한다.
도 10의 실시예에서, 예측 대상이 되는 현재 크로마 블록의 인트라 예측 모드는 LM 모드라 가정한다. 일례로, LM 모드는 Intra_FromLuma로 나타내어질 수 있다. 또한, 도 10에서 현재 루마 블록(1010)의 크기는 8x8이고 현재 크로마 블록의 크기는 4x4라 가정한다. 상술한 바와 같이 현재 크로마 블록의 예측에 사용될 루마 참조 블록의 크기는 현재 크로마 블록의 크기와 동일할 수 있다. 따라서, 도 10의 실시예에서 도출되는 루마 참조 블록(1030)의 크기는 4x4일 수 있다.
또한, 도 10의 실시예에 도시된 주변 루마 픽셀들(1022, 1024, 1026, 1028) 중에서, 1022에 해당되는 주변 루마 픽셀들 및 1026에 해당되는 주변 루마 픽셀들은 가용한(available) 픽셀이고, 1024에 해당되는 주변 루마 픽셀들 및 1028에 해당되는 주변 루마 픽셀들은 가용하지 않은(unavailable) 픽셀이라 가정한다. 이 경우, 부호화기 및 복호화기는 가용하지 않은 주변 루마 픽셀에 대해 패딩 과정을 수행한 후에 루마 참조 정보를 생성할 수 있다.
도 10의 실시예에서, 부호화기 및 복호화기는 제1 좌측 픽셀 라인 및 제1 상단 픽셀 라인 상의 가용하지 않은 주변 루마 픽셀에 대한 패딩 과정을 수행함으로써, 주변 루마 픽셀들의 픽셀 값 PY[x,y], (x=-1, y=-1~nS*2-1), (x=0~nS*2-1, y=-1)을 도출할 수 있다. 여기서, PY 는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, nS는 현재 루마 블록(1010)의 가로 길이 및 세로 길이를 나타낼 수 있다.
주변 루마 픽셀들 중에서 가용하지 않은 픽셀들은 도 10의 1024, 1028과 같이 픽셀 그룹을 구성할 수 있다. 도 10의 실시예에서는 설명의 편의상 제1 좌측 픽셀 라인 상의 가용하지 않은 픽셀들(예컨대, 도 10의 1028에서 좌측에 위치한 네 개의 픽셀들)의 그룹은 좌측 픽셀 그룹이라 하고, 제1 상단 픽셀 라인 상의 가용하지 않은 픽셀들(1024)의 그룹은 상단 픽셀 그룹이라 한다. 도 10의 실시예에서, 상단 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=nS~nS*2-1, y=-1)로 나타내어질 수 있고, 좌측 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=-1, y=nS~nS+(nS>>1)-1)로 나타내어질 수 있다.
부호화기 및 복호화기는 패딩을 수행하기 위해 각각의 픽셀 그룹(예컨대, 좌측 픽셀 그룹, 상단 픽셀 그룹)의 양 쪽 끝에 상기 픽셀 그룹에 인접하여 위치한 가용한 픽셀이 존재하는지 여부를 판단할 수 있다.
일례로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 한 쪽 끝에만 존재할 수 있다. 도 10을 참조하면, 상단 픽셀 그룹(1024)의 우측에는 가용한 픽셀이 존재하지 않고, 상단 픽셀 그룹(1024)의 좌측에는 가용한 픽셀(c)이 존재할 수 있다. 여기서, 픽셀 c는 PY[nS-1,-1]로 나타내어질 수 있다.
이 경우, 제1 상단 픽셀 라인 내에서 상단 픽셀 그룹(1024)에 인접하여 위치한 가용한 픽셀은 하나만 존재할 수 있다. 따라서, 부호화기 및 복호화기는 상단 픽셀 그룹에 인접하여 위치한 가용한 픽셀(c)의 픽셀 값을, 상단 픽셀 그룹(1024) 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 14에 의해 나타내어질 수 있다.
[수학식 14]
PY[x,y] = PY[nS-1,-1], (x=nS~nS*2-1, y=-1)
다른 예로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 양 쪽 끝에 존재할 수도 있다. 도 10을 참조하면, 좌측 픽셀 그룹의 상단에는 가용한 픽셀 b가 인접하여 위치할 수 있고, 좌측 픽셀 그룹의 하단에는 가용한 픽셀 a가 인접하여 위치할 수 있다. 여기서, 픽셀 a는 PY[-1, nS+(nS>>1)]로 나타내어질 수 있고, 픽셀 b는 PY[-1, nS-1]로 나타내어질 수 있다.
이 경우, 제1 좌측 픽셀 라인 내에서 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들은 두 개가 존재할 수 있다. 따라서, 부호화기 및 복호화기는 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들(a,b)의 픽셀 평균 값을, 좌측 픽셀 그룹 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 15에 의해 나타내어질 수 있다.
[수학식 15]
PY[x,y] = (PY[-1,nS-1] + PY[-1,nS+(nS>>1)] + 1) >> 1,
*209(x=-1, y=nS~nS+(nS>>1)-1)
상술한 패딩 과정에 의해 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들 및 제1 상단 픽셀 라인 상의 주변 루마 픽셀들의 픽셀 값들이 결정될 수 있다. 부호화기 및 복호화기는 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들, 제1 상단 픽셀 라인 상의 주변 루마 픽셀들 및 현재 루마 블록(1010) 내의 픽셀들의 픽셀 값을 기반으로, 루마 참조 정보(루마 참조 블록(1030) 및 주변 루마 참조 픽셀들(1040))를 생성할 수 있다.
이 때, 제1 좌측 픽셀 라인의 좌측에 인접하여 위치한 제2 좌측 픽셀 라인 상의 픽셀들 중에는 가용한 픽셀들이 존재할 수 있다. 제1 좌측 픽셀 라인 상의 픽셀의 좌측에 인접하여 위치한 픽셀(제2 좌측 픽셀 라인 상의 픽셀)이 가용한 경우, 부호화기 및 복호화기는 상기 제1 좌측 픽셀 라인 상의 픽셀 대신 이에 인접하여 위치한 제2 좌측 픽셀 라인 상의 픽셀을 루마 참조 정보 생성에 이용할 수 있다. 그러나, 제1 좌측 픽셀 라인 상의 픽셀의 좌측에 인접하여 위치한 픽셀(제2 좌측 픽셀 라인 상의 픽셀)이 가용하지 않은 경우, 부호화기 및 복호화기는 패딩 과정이 수행된 제1 좌측 픽셀 라인 상의 픽셀을 루마 참조 정보 생성에 이용할 수 있다.
도 10의 실시예에서, 루마 참조 정보 생성 과정은 일례로 다음 수학식 16에 의해 나타내어질 수 있다.
[수학식 16]
PY'[x,y] = (PY[2x-1,y] + 2*PY[2x,y] + PY[2x+1,y] + 2) >> 2, (x=0~nS-1, y=-1)
PY'[x,y] = (PRecY[2x,2y] + PRecY[2x,2y+1]) >> 1, (x=0~nS-1, y=0~nS-1)
만일, PY[2x,2y], (x=-1, y=0~nS-1)이 가용하면,
PY'[x,y] = (PY[2x,2y] + PY[2x,2y+1]) >> 1, (x=-1, y=0~nS-1)
만일, PY[2x,2y], (x=-1, y=0~nS-1)이 가용하지 않으면,
PY'[x,y] = (PY[x,2y] + PY[x,2y+1]) >> 1, (x=-1, y=0~nS-1)
여기서, PRecY 는 현재 루마 블록 내 픽셀의 픽셀 값을 나타낼 수 있다. 또한, PY'는 루마 참조 정보에 해당되는 픽셀 값(예컨대, 루마 참조 블록 내의 픽셀 및/또는 주변 루마 참조 픽셀의 픽셀 값)을 나타낼 수 있다.
도 11은 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 11의 실시예는 현재 루마 블록(1110)의 좌측에 가장 가까이 위치한 제1 좌측 픽셀 라인 및 현재 루마 블록(1110)의 상단에 가장 가까이 위치한 제1 상단 픽셀 라인 내의 주변 루마 픽셀들이 루마 참조 정보 생성에 사용되는 경우의 실시예를 도시한다. 도 11의 실시예에서, 현재 루마 블록(1110)의 좌측에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 좌측 픽셀 라인의 좌측에 인접하여 위치한 픽셀 라인은 제2 좌측 픽셀 라인이라 지칭하기로 한다. 또한, 현재 루마 블록(1110)의 상단에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 상단 픽셀 라인의 상단에 인접하여 위치한 픽셀 라인은 제2 상단 픽셀 라인이라 지칭하기로 한다.
도 11의 실시예에서, 예측 대상이 되는 현재 크로마 블록의 인트라 예측 모드는 LM 모드라 가정한다. 일례로, LM 모드는 Intra_FromLuma로 나타내어질 수 있다. 또한, 도 11에서 현재 루마 블록(1110)의 크기는 8x8이고 현재 크로마 블록의 크기는 4x4라 가정한다. 상술한 바와 같이 현재 크로마 블록의 예측에 사용될 루마 참조 블록의 크기는 현재 크로마 블록의 크기와 동일할 수 있다. 따라서, 도 11의 실시예에서 도출되는 루마 참조 블록(1130)의 크기는 4x4일 수 있다.
또한, 도 11의 실시예에 도시된 주변 루마 픽셀들(1122, 1124, 1126, 1128) 중에서, 1122에 해당되는 주변 루마 픽셀들 및 1126에 해당되는 주변 루마 픽셀들은 가용한(available) 픽셀이고, 1124에 해당되는 주변 루마 픽셀들 및 1128에 해당되는 주변 루마 픽셀들은 가용하지 않은(unavailable) 픽셀이라 가정한다. 이 경우, 부호화기 및 복호화기는 가용하지 않은 주변 루마 픽셀에 대해 패딩 과정을 수행한 후에 루마 참조 정보를 생성할 수 있다.
도 11의 실시예에서, 부호화기 및 복호화기는 제1 좌측 픽셀 라인, 제2 좌측 픽셀 라인 및 제1 상단 픽셀 라인 상의 가용하지 않은 주변 루마 픽셀에 대한 패딩 과정을 수행할 수 있다. 그리고, 부호화기 및 복호화기는 제2 좌측 픽셀 라인 상의 주변 루마 픽셀 값들을 제1 좌측 픽셀 라인에 카피할 수 있다. 상술한 과정에 의해 생성되는, 참조 정보 생성에 사용될 주변 루마 픽셀들의 픽셀 값은 다음 수학식 17에 의해 나타내어질 수 있다.
[수학식 17]
PY[x,y], (x=-1, y=-1~nS*2-1), (x=0~nS*2-1, y=-1)
여기서, PY 는 제1 좌측 픽셀 라인 및/또는 제1 상단 픽셀 라인에 속한 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, nS는 현재 루마 블록(1110)의 가로 길이 및 세로 길이를 나타낼 수 있다.
주변 루마 픽셀들 중에서 가용하지 않은 픽셀들은 도 11의 1124, 1128과 같이 픽셀 그룹을 구성할 수 있다. 도 11의 실시예에서는 설명의 편의상 제1 좌측 픽셀 라인 상의 가용하지 않은 픽셀들(예컨대, 도 11의 1128에서 좌측에 위치한 네 개의 픽셀들)의 그룹은 제1 좌측 픽셀 그룹이라 하고, 제2 좌측 픽셀 라인 상의 가용하지 않은 픽셀들(예컨대, 도 11의 1128에서 우측에 위치한 네 개의 픽셀들)의 그룹은 제2 좌측 픽셀 그룹이라 하며, 제1 상단 픽셀 라인 상의 가용하지 않은 픽셀들(1124)의 그룹은 상단 픽셀 그룹이라 한다. 도 11의 실시예에서, 상단 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=nS~nS*2-1, y=-1)로 나타내어질 수 있고, 제1 좌측 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=-1, y=nS~nS+(nS>>1)-1)로 나타내어질 수 있으며, 제2 좌측 픽셀 그룹에 속한 픽셀들은 PY2[x,y], (x=-2, y=nS~nS+(nS>>1)-1)로 나타내어질 수 있다. 여기서, PY2 는 제2 좌측 픽셀 라인에 속한 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다.
부호화기 및 복호화기는 패딩을 수행하기 위해 각각의 픽셀 그룹(예컨대, 제1 좌측 픽셀 그룹, 제2 좌측 픽셀 그룹, 상단 픽셀 그룹)의 양 쪽 끝에 상기 픽셀 그룹에 인접하여 위치한 가용한 픽셀이 존재하는지 여부를 판단할 수 있다.
일 실시예로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 한 쪽 끝에만 존재할 수 있다. 도 11을 참조하면, 상단 픽셀 그룹(1124)의 우측에는 가용한 픽셀이 존재하지 않고, 상단 픽셀 그룹(1124)의 좌측에는 가용한 픽셀(c)이 존재할 수 있다. 여기서, 픽셀 c는 PY[nS-1,-1]로 나타내어질 수 있다.
이 경우, 제1 상단 픽셀 라인 내에서 상단 픽셀 그룹(1124)에 인접하여 위치한 가용한 픽셀은 하나만 존재할 수 있다. 따라서, 부호화기 및 복호화기는 상단 픽셀 그룹에 인접하여 위치한 가용한 픽셀(c)의 픽셀 값을, 상단 픽셀 그룹(1124) 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 18에 의해 나타내어질 수 있다.
[수학식 18]
PY[x,y] = PY[nS-1,-1], (x=nS~nS*2-1, y=-1)
다른 실시예로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 양 쪽 끝에 존재할 수도 있다.
일례로, 도 11의 실시예에서 제1 좌측 픽셀 그룹의 상단에는 가용한 픽셀 b가 인접하여 위치할 수 있고, 제1 좌측 픽셀 그룹의 하단에는 가용한 픽셀 a가 인접하여 위치할 수 있다. 여기서, 픽셀 a는 PY[-1, nS+(nS>>1)]로 나타내어질 수 있고, 픽셀 b는 PY[-1, nS-1]로 나타내어질 수 있다.
이 경우, 제1 좌측 픽셀 라인 내에서 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들은 두 개가 존재할 수 있다. 따라서, 부호화기 및 복호화기는 제1 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들(a,b)의 픽셀 평균 값을, 제1 좌측 픽셀 그룹 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 19에 의해 나타내어질 수 있다.
[수학식 19]
PY[x,y] = (PY[-1,nS-1] + PY[-1,nS+(nS>>1)] + 1) >> 1,
(x=-1, y=nS~nS+(nS>>1)-1)
다른 예로, 도 11의 실시예에서 제2 좌측 픽셀 그룹의 상단에는 가용한 픽셀 e가 인접하여 위치할 수 있고, 제2 좌측 픽셀 그룹의 하단에는 가용한 픽셀 d가 인접하여 위치할 수 있다. 여기서, 픽셀 d는 PY2[-2, nS+(nS>>1)]로 나타내어질 수 있고, 픽셀 e는 PY2[-2, nS-1]로 나타내어질 수 있다.
이 경우, 제2 좌측 픽셀 라인 내에서 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들은 두 개가 존재할 수 있다. 따라서, 부호화기 및 복호화기는 제2 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들(e,d)의 픽셀 평균 값을, 제2 좌측 픽셀 그룹 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 20에 의해 나타내어질 수 있다.
[수학식 20]
PY2[x,y] = (PY2[-2,nS-1] + PY2[-2,nS+(nS>>1)] + 1) >> 1,
(x=-2, y=nS~nS+(nS>>1)-1)
패딩 과정이 수행된 후에 결정된 제2 좌측 픽셀 라인 상의 픽셀 값들은 일례로 PY2[x,y], (x=-2, y=-1~2*nS-1)로 나타내어질 수 있다.
상술한 패딩 과정에 의해 제1 좌측 픽셀 라인, 제2 좌측 픽셀 라인 및 제1 상단 픽셀 라인 상의 주변 루마 픽셀들의 픽셀 값들이 결정될 수 있다. 이 때, 부호화기 및 복호화기는 제2 좌측 픽셀 라인 상의 주변 루마 픽셀 값들을 제1 좌측 픽셀 라인에 카피함으로써, 루마 참조 정보 생성에 사용될 제1 좌측 픽셀 라인 상의 픽셀 값들을 도출할 수 있다. 즉, 부호화기 및 복호화기는 제1 좌측 픽셀 라인의 주변 루마 픽셀 값들을 제2 좌측 픽셀 라인의 주변 루마 픽셀 값으로 대체할 수 있다. 제2 좌측 픽셀 라인 상의 주변 루마 픽셀 값들을 제1 좌측 픽셀 라인에 카피하는 과정은 일례로 다음 수학식 21에 의해 나타내어질 수 있다.
[수학식 21]
PY[x,y] = PY2[x-1,y], (x=-1, y=0~2*nS-1)
제2 촤즉 픽셀 라인 상의 주변 루마 픽셀 값들이 제1 좌측 픽셀 라인에 카피된 후, 부호화기 및 복호화기는 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들, 제1 상단 픽셀 라인 상의 주변 루마 픽셀들 및 현재 루마 블록(1110) 내의 픽셀들의 픽셀 값을 기반으로, 루마 참조 정보(루마 참조 블록(1130) 및 주변 루마 참조 픽셀들(1140))을 생성할 수 있다. 도 11의 실시예에서, 루마 참조 정보 생성 과정은 일례로 다음 수학식 22에 의해 나타내어질 수 있다.
[수학식 22]
PY'[x,y] = (PY[2x-1,y] + 2*PY[2x,y] + PY[2x+1,y] + 2) >> 2, (x=0~nS-1, y=-1)
PY'[x,y] = (PY[x,2y] + PY[x,2y+1]) >> 1, (x=-1, y=0~nS-1)
PY'[x,y] = (PRecY[2x,2y] + PRecY[2x,2y+1]) >> 1, (x=0~nS-1, y=0~nS-1)
여기서, PRecY 는 현재 루마 블록 내 픽셀의 픽셀 값을 나타낼 수 있다. 또한, PY'는 루마 참조 정보에 해당되는 픽셀 값(예컨대, 루마 참조 블록 내의 픽셀 및/또는 주변 루마 참조 픽셀의 픽셀 값)을 나타낼 수 있다.
도 12는 패딩 과정을 수행한 후 루마 참조 정보를 생성하는 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 12의 실시에는 현재 루마 블록(1210)의 좌측에 가장 가까이 위치한 제1 좌측 픽셀 라인 및 현재 루마 블록(1210)의 상단에 가장 가까이 위치한 제1 상단 픽셀 라인 내의 주변 루마 픽셀들이 루마 참조 정보 생성에 사용되는 경우의 실시예를 도시한다. 도 12의 실시예에서, 현재 루마 블록(1210)의 좌측에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 좌측 픽셀 라인의 좌측에 인접하여 위치한 픽셀 라인은 제2 좌측 픽셀 라인이라 지칭하기로 한다. 또한, 현재 루마 블록(1210)의 상단에 두 번째로 가까이 위치한 픽셀 라인, 즉 제1 상단 픽셀 라인의 상단에 인접하여 위치한 픽셀 라인은 제2 상단 픽셀 라인이라 지칭하기로 한다.
도 12의 실시예에서, 예측 대상이 되는 현재 크로마 블록의 인트라 예측 모드는 LM 모드라 가정한다. 일례로, LM 모드는 Intra_FromLuma로 나타내어질 수 있다. 또한, 도 12에서 현재 루마 블록(1210)의 크기는 8x8이고 현재 크로마 블록의 크기는 4x4라 가정한다. 상술한 바와 같이 현재 크로마 블록의 예측에 사용될 루마 참조 블록의 크기는 현재 크로마 블록의 크기와 동일할 수 있다. 따라서, 도 12의 실시예에서 도출되는 루마 참조 블록(1230)의 크기는 4x4일 수 있다.
또한, 도 12의 실시예에 도시된 주변 루마 픽셀들(1222, 1224, 1226, 1228) 중에서, 1222에 해당되는 주변 루마 픽셀들 및 1226에 해당되는 주변 루마 픽셀들은 가용한(available) 픽셀이고, 1224에 해당되는 주변 루마 픽셀들 및 1228에 해당되는 주변 루마 픽셀들은 가용하지 않은(unavailable) 픽셀이라 가정한다. 이 경우, 부호화기 및 복호화기는 가용하지 않은 주변 루마 픽셀에 대해 패딩 과정을 수행한 후에 루마 참조 정보를 생성할 수 있다.
도 12의 실시예에서, 부호화기 및 복호화기는 제1 좌측 픽셀 라인 및 제1 상단 픽셀 라인 상의 가용하지 않은 주변 루마 픽셀에 대한 패딩 과정을 수행함으로써, 주변 루마 픽셀들의 픽셀 값 PY[x,y], (x=-1, y=-1~nS*2-1), (x=0~nS*2-1, y=-1)을 도출할 수 있다. 여기서, PY 는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, nS는 현재 루마 블록(1210)의 가로 길이 및 세로 길이를 나타낼 수 있다.
주변 루마 픽셀들 중에서 가용하지 않은 픽셀들은 도 12의 1224, 1228과 같이 픽셀 그룹을 구성할 수 있다. 도 12의 실시예에서는 설명의 편의상 제1 좌측 픽셀 라인 상의 가용하지 않은 픽셀들(예컨대, 도 12의 1228에서 좌측에 위치한 네 개의 픽셀들)의 그룹은 좌측 픽셀 그룹이라 하고, 제1 상단 픽셀 라인 상의 가용하지 않은 픽셀들(1224)의 그룹은 상단 픽셀 그룹이라 한다. 도 12의 실시예에서, 상단 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=nS~nS*2-1, y=-1)로 나타내어질 수 있고, 좌측 픽셀 그룹에 속한 픽셀들은 PY[x,y], (x=-1, y=nS~nS+(nS>>1)-1)로 나타내어질 수 있다.
부호화기 및 복호화기는 패딩을 수행하기 위해 각각의 픽셀 그룹(예컨대, 좌측 픽셀 그룹, 상단 픽셀 그룹)의 양 쪽 끝에 상기 픽셀 그룹에 인접하여 위치한 가용한 픽셀이 존재하는지 여부를 판단할 수 있다.
일례로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 한 쪽 끝에만 존재할 수 있다. 도 12를 참조하면, 상단 픽셀 그룹(1224)의 우측에는 가용한 픽셀이 존재하지 않고, 상단 픽셀 그룹(1224)의 좌측에는 가용한 픽셀(c)이 존재할 수 있다. 여기서, 픽셀 c는 PY[nS-1,-1]로 나타내어질 수 있다.
이 경우, 제1 상단 픽셀 라인 내에서 상단 픽셀 그룹(1224)에 인접하여 위치한 가용한 픽셀은 하나만 존재할 수 있다. 따라서, 부호화기 및 복호화기는 상단 픽셀 그룹에 인접하여 위치한 가용한 픽셀(c)의 픽셀 값을, 상단 픽셀 그룹(1224) 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 23에 의해 나타내어질 수 있다.
[수학식 23]
PY[x,y] = PY[nS-1,-1], (x=nS~nS*2-1, y=-1)
다른 예로, 픽셀 그룹에 인접하여 위치한 가용한 픽셀은 픽셀 그룹의 양 쪽 끝에 존재할 수도 있다. 도 12를 참조하면, 좌측 픽셀 그룹의 상단에는 가용한 픽셀 b가 인접하여 위치할 수 있고, 좌측 픽셀 그룹의 하단에는 가용한 픽셀 a가 인접하여 위치할 수 있다. 여기서, 픽셀 a는 PY[-1, nS+(nS>>1)]로 나타내어질 수 있고, 픽셀 b는 PY[-1, nS-1]로 나타내어질 수 있다.
이 경우, 제1 좌측 픽셀 라인 내에서 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들은 두 개가 존재할 수 있다. 따라서, 부호화기 및 복호화기는 좌측 픽셀 그룹에 인접하여 위치한 가용한 픽셀들(a,b)의 픽셀 평균 값을, 좌측 픽셀 그룹 내의 가용하지 않은 픽셀들의 위치에 채워 넣을 수 있다. 이러한 패딩 수행 과정은 일례로 다음 수학식 24에 의해 나타내어질 수 있다.
[수학식 24]
PY[x,y] = (PY[-1,nS-1] + PY[-1,nS+(nS>>1)] + 1) >> 1,
*271(x=-1, y=nS~nS+(nS>>1)-1)
상술한 패딩 과정에 의해 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들 및 제1 상단 픽셀 라인 상의 주변 루마 픽셀들의 픽셀 값들이 결정될 수 있다. 부호화기 및 복호화기는 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들, 제1 상단 픽셀 라인 상의 주변 루마 픽셀들 및 현재 루마 블록(1210) 내의 픽셀들의 픽셀 값을 기반으로, 루마 참조 정보(루마 참조 블록(1230) 및 주변 루마 참조 픽셀들(1240))를 생성할 수 있다. 도 12의 실시예에서, 루마 참조 정보 생성 과정은 일례로 다음 수학식 25에 의해 나타내어질 수 있다.
[수학식 25]
PY'[x,y] = (PY[2x-1,y] + 2*PY[2x,y] + PY[2x+1,y] + 2) >> 2, (x=0~nS-1, y=-1)
PY'[x,y] =(PRecY[2x,2y] + PRecY[2x,2y+1]) >> 1, (x=0~nS-1, y=0~nS-1)
PY'[x,y] = (PY[x,2y] + PY[x,2y+1]) >> 1, (x=-1, y=0~nS-1)
여기서, PRecY 는 현재 루마 블록 내 픽셀의 픽셀 값을 나타낼 수 있다. 또한, PY'는 루마 참조 정보에 해당되는 픽셀 값(예컨대, 루마 참조 블록 내의 픽셀 및/또는 주변 루마 참조 픽셀의 픽셀 값)을 나타낼 수 있다.
상술한 내용을 참고하면, 도 12의 실시예에서는 제2 좌측 픽셀 라인 상의 픽셀들은 루마 참조 정보 생성에 사용되지 않고, 제1 좌측 픽셀 라인 상의 주변 루마 픽셀들, 제1 상단 픽셀 라인 상의 주변 루마 픽셀들 및 현재 루마 블록(1210) 내의 픽셀들만이 루마 참조 정보(루마 참조 블록(1230) 및 주변 루마 참조 픽셀들(1240)) 생성에 사용될 수 있다.
한편, 상술한 도 5 내지 도 12에서는 제1 색 성분이 루마 성분이고 제2 색 성분이 크로마 성분인 경우의 실시예들이 서술되고 있으나, 본 발명은 이에 한정되어 적용되는 것은 아니다. 상술한 바와 같이 본 발명은 제1 색 성분 및 제2 색 성분의 가능한 모든 조합에 대해 동일하거나 유사한 방식으로 적용될 수 있다.
또한, 상술한 도 6 내지 도 12에서는 제1 색 성분 블록(예컨대, 루마 블록)의 크기가 제2 색 성분 블록(예컨대, 크로마 블록)의 크기보다 큰 경우의 실시예들이 서술되었으나, 제1 색 성분 블록은 제2 색 성분 블록보다 작은 크기를 가질 수도 있고 또는 동일한 크기를 가질 수도 있다.
이러한 경우에도 부호화기 및 복호화기는 제1 색 성분 블록 내의 픽셀 및 제1 색 성분 블록 주변의 픽셀을 기반으로 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출할 수 있다.
여기서, 제1 색 성분 참조 정보는 제2 색 성분 블록의 예측에 사용될 제1 색 성분의 픽셀 값들을 의미할 수 있다. 따라서, 본 명세서에서 제1 색 성분 정보는 '제1 색 성분 픽셀'로 지칭될 수도 있다. 이 때, 제2 색 성분 블록 내의 픽셀들에 대응되는 제1 색 성분 픽셀들은 '제1 색 성분 참조 블록'을 구성할 수 있다. 또한, 본 명세서에서 제1 색 성분 블록 주변에 위치하는 픽셀은 '주변 제1 색 성분 픽셀'이라 하고, 제2 색 성분 블록 주변에 위치하는 픽셀은 '주변 제2 색 성분 픽셀'이라 하며, 제1 색 성분 참조 블록 주변에 위치하는 픽셀은 '주변 제1 색 성분 참조 픽셀'이라 한다. 이 때, 제1 색 성분 참조 블록은 제2 색 성분 블록에 대응될 수 있고, 주변 제1 색 성분 참조 픽셀은 주변 제2 색 성분 픽셀에 대응될 수 있다. 본 명세서에서, 제1 색 성분 참조 정보는 제1 색 성분 참조 블록 내의 픽셀 및 주변 제1 색 성분 참조 픽셀을 포함한 개념으로 사용될 수 있다.
제1 색 성분 블록이 제2 색 성분 블록보다 작은 크기를 갖거나 동일한 크기를 갖는 경우, 제1 색 성분 블록을 기반으로 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정은 상술한 도 6 내지 도 12의 실시예에서와는 다를 수 있다.
도 13은 제1 색 성분 블록의 크기가 제2 색 성분 블록의 크기보다 작은 경우, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정의 실시예를 개략적으로 나타내는 도면이다.
도 13의 1310은 제1 색 성분 블록(1312), 주변 제1 색 성분 픽셀들(1314), 제2 색 성분 블록(1316) 및 주변 제2 색 성분 픽셀들(1318)의 실시예를 도시한다. 도 13의 1310을 참조하면, 제2 색 성분 블록(1316)의 크기가 8x8일 때, 이에 대응되는 제1 색 성분 블록(1312)의 크기는 4x4일 수 있다. 이 경우, 부호화기 및 복호화기는 8x8 크기의 제1 색 성분 참조 블록에 대응되는 제1 색 성분 참조 픽셀들을 생성할 수 있다.
도 13의 1320은 제1 색 성분 참조 정보 도출 방법의 일 실시예를 도시한다.
도 13의 1320의 실시예에서는, 도 13의 1310에서와 같이 제1 색 성분 블록(1312)의 크기가 4x4이고 제2 색 성분 블록(1316)의 크기가 8x8인 경우의 제1 색 성분 참조 정보 도출 방법이 도시된다.
도 13의 1320을 참조하면, 부호화기 및 복호화기는 제1 색 성분 블록(1312) 내의 픽셀 및 주변 제1 색 성분 픽셀들(1314)을 기반으로, 제2 색 성분 블록(1316)의 예측에 사용될 제1 색 성분 참조 블록(1326) 및 주변 제1 색 성분 참조 픽셀들(1328)을 생성할 수 있다. 여기서, 제1 색 성분 참조 정보 도출에 사용되는 주변 제1 색 성분 픽셀들(1314)은 일례로, 제1 색 성분 블록(1312)의 좌측에 가장 가까이 위치한 한 개의 픽셀 라인에 포함된 픽셀들, 및 제1 색 성분 블록(1312)의 상단에 가장 가까이 위치한 한 개의 픽셀 라인에 포함된 픽셀들을 포함할 수 있다.
한편, 도 13의 1320에서는 제1 색 성분 블록(1312) 및 제2 색 성분 블록(1316)의 크기가 서로 다르므로, 부호화기 및 복호화기는 제2 색 성분 블록(1316)과 동일한 크기(8x8)의 제1 색 성분 참조 블록(1326) 및 이에 대응되는 주변 제1 색 성분 참조 픽셀들(1328)을 생성할 수 있다. 이 때, 제1 색 성분 블록(1312)의 크기가 제2 색 성분 블록(1316)의 크기보다 작으므로, 부호화기 및 복호화기는 제1 색 성분 블록(1312) 내의 픽셀들 및 주변 제1 색 성분 픽셀들(1314)에 대해 업 샘플링(up sampling)을 수행함으로써 제1 색 성분 참조 정보를 생성할 수 있다.
주변 제1 색 성분 픽셀들(1314) 중에서 가용하지 않은 픽셀들이 존재하는 경우, 부호화기 및 복호화기는 가용하지 않은 픽셀들에 대해 패딩 과정을 수행한 후에 업 샘플링을 수행할 수도 있다. 패딩 과정은 상술한 실시예들에서와 유사하므로 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
제1 색 성분 블록(1312) 내의 픽셀들 및 주변 제1 색 성분 픽셀들(1314)에 대해 업 샘플링을 수행하는 과정은 일례로 다음 수학식 26에 의해 나타내어질 수 있다.
[수학식 26]
*293p'[2x,2y] = p[x,y]
p'[2x+1,2y] = (p[x,y] + p[x+1,y])>>1
p'[2x,2y+1] = (p[x,y] + p[x,y+1])>>1
p'[2x+1,2y+1] = (p[x+1,y] + p[x,y+1])>>1
여기서, p[x,y]는 복원된 제1 색 성분 픽셀들, 즉 제1 색 성분 블록(1312) 내의 픽셀들 및 주변 제1 색 성분 픽셀들(1314)의 픽셀 값을 나타낼 수 있다. 또한, p'[x,y]는 제2 색 성분 블록(1316)의 크기에 따라 생성된 제1 색 성분 참조 픽셀들(1326, 1328)의 픽셀 값을 나타낼 수 있다.
도 14는 제1 색 성분 블록의 크기가 제2 색 성분 블록의 크기와 동일한 경우, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 정보를 도출하는 과정의 실시예를 개략적으로 나타내는 도면이다.
상술한 바와 같이, 4:4:4 영상 포맷이 사용되는 경우, 즉 영상의 색 공간이 RGB 4:4:4 또는 YUV 4:4:4인 경우에는 루마 블록과 크로마 블록의 크기가 동일할 수 있다. 따라서, 이 경우 제1 색 성분 블록이 루마 블록이고 제2 색 성분 블록이 크로마 블록이라고 하면, 제1 색 성분 블록의 크기와 제2 색 성분 블록의 크기가 동일할 수 있다. 또한, 제1 색 성분 블록이 U에 해당되는 크로마 블록이고 제2 색 성분 블록이 V에 해당되는 크로마 블록인 경우, 제1 색 성분 블록의 크기와 제2 색 성분 블록의 크기가 동일할 수 있다. 도 14의 실시예에서는 제1 색 성분 블록(1412)의 크기가 8x8이고 제2 색 성분 블록(1422)의 크기가 8x8이라 가정한다.
도 14를 참조하면, 부호화기 및 복호화기는 제1 색 성분 블록(1412) 내의 픽셀 및 주변 제1 색 성분 픽셀들(1414)을 기반으로, 제2 색 성분 블록의 예측에 사용될 제1 색 성분 참조 블록(1422) 및 주변 제1 색 성분 참조 픽셀들(1424)을 생성할 수 있다. 생성된 제1 색 성분 참조 블록(1422)은 제2 색 성분 블록에 대응되는 위치에 존재할 수 있다. 여기서, 제1 색 성분 참조 정보 도출에 사용되는 주변 제1 색 성분 픽셀들(1414)은 일례로, 제1 색 성분 블록(1412)의 좌측에 가장 가까이 위치한 한 개의 픽셀 라인에 포함된 픽셀들, 및 제1 색 성분 블록(1412)의 상단에 가장 가까이 위치한 한 개의 픽셀 라인에 포함된 픽셀들을 포함할 수 있다.
이 때, 제1 색 성분 블록(1412)의 크기가 제2 색 성분 블록의 크기와 동일하므로, 부호화기 및 복호화기는 제1 색 성분 정보 생성 시에 다운 샘플링(down sampling), 서브 샘플링(sub smapling) 및 업 샘플링(up sampling) 등을 수행하지 않을 수 있다. 따라서, 제1 색 성분 블록(1412) 내 픽셀들의 픽셀 값 및 주변 제1 색 성분 픽셀들(1414)의 픽셀 값이 그대로 제1 색 성분 참조 정보로 사용될 수 있다.
또한, 인트라 모드에서는 변환/양자화 등이 이용되는 손실 부호화/복호화 방식 대신 무손실 부호화/복호화 방식이 적용될 수도 있다. 무손실 부호화/복호화 방식에서는 부호화 대상 블록에 대해 변환 양자화 등의 과정이 적용되지 않을 수 있다. 제1 색 성분 블록(1412)의 크기가 제2 색 성분 블록의 크기와 동일할 때에는, 무손실 부호화/복호화 방식이 적용되는 경우에도, 상술한 실시예에서와 같이 제1 색 성분 참조 정보가 도출될 수 있다. 이 경우, 부호화기 및 복호화기는 제1 색 성분 정보 생성 시에 다운 샘플링, 서브 샘플링 및 업 샘플링 등을 수행하지 않을 수 있다. 생성된 제1 색 성분 참조 블록(1422)은 제2 색 성분 블록에 대응되는 위치에 존재할 수 있다.
한편, 상술한 실시예들에서는 현재 루마 블록의 상단에 위치하는 상단 주변 루마 픽셀들 및 현재 루마 블록의 좌측에 위치하는 좌측 주변 루마 픽셀들이 모두 루마 참조 정보 생성에 사용될 수 있다. 그러나, 본 발명은 이에 한정되는 것은 아니며, 루마 참조 정보 생성에 사용되는 주변 루마 픽셀들은 다양한 방법으로 정해질 수 있다. 예컨대, 상단 주변 루마 픽셀들만이 루마 참조 정보 생성에 사용될 수도 있고, 좌측 주변 루마 픽셀들만이 루마 참조 정보 생성에 사용될 수도 있다. 또한, 루마 참조 정보 생성에 사용되는 주변 루마 픽셀들은 현재 루마 블록의 인트라 예측 모드에 따라 정해질 수도 있다.
도 15는 루마 참조 정보 생성에 사용되는 주변 루마 픽셀들의 실시예를 개략적으로 나타내는 도면이다.
*305도 15의 실시예에서, 현재 루마 블록(1512)의 크기는 8x8이고 이에 대응되는 현재 크로마 블록의 크기는 4x4라 가정한다. 일례로, 도 15는 YUV 4:2:0의 영상 포맷이 이용되는 경우의 실시예에 해당될 수 있다. 또한, 도 15에 도시된 주변 루마 픽셀들(A, B, C, D, E, F)에는 상술한 패딩 과정을 통해 이미 픽셀 값이 채워져 있다고 가정한다. 그리고, 도 15에서는 상술한 도 4의 410에서와 같은 인트라 예측 모드의 모드 값이 사용된다고 가정한다.
도 15의 실시예에서는 주변 루마 픽셀들(A, B, C, D, E, F) 중에서 적어도 하나 및 현재 루마 블록(1512) 내의 픽셀들을 기반으로, 현재 크로마 블록의 예측에 사용될 루마 참조 블록(1522, 1532 또는 1542) 및 주변 루마 참조 픽셀들(1524, 1534 또는 1544)이 생성될 수 있다. 이 때, 현재 크로마 블록의 크기는 4x4이므로, 생성된 루마 참조 블록(1522, 1532 또는 1542)의 크기는 4x4일 수 있다.
도 15의 실시예에서, 루마 참조 정보 생성에 이용될 주변 루마 픽셀들은 일례로 다음 표 3에 나타내어진 조합들 중에서 적어도 하나에 의해 획득될 수 있다.
[표 3]
표 3의 실시예에서 P는 현재 루마 블록(1512)의 좌측에 위치한 좌측 주변 루마 픽셀들 및 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들이 루마 참조 정보 생성에 사용됨을 의미할 수 있다. 또한, Q는 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들이 루마 참조 정보 생성에 사용됨을 의미할 수 있다. 그리고, R은 현재 루마 블록(1512)의 좌측에 위치한 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 사용됨을 의미할 수 있다.
또한, 표 3의 실시예에서 L은 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용되는 경우, 현재 루마 블록(1512)의 좌측에 가장 가까이 위치한 제1 좌측 픽셀 라인 상의 픽셀들이 루마 참조 정보 생성에 사용됨을 의미할 수 있다. 그리고, M은 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용되는 경우, 현재 루마 블록(1512)의 좌측에 두 번째로 가까이 위치한 제2 좌측 픽셀 라인 상의 픽셀들이 루마 참조 정보 생성에 사용됨을 의미할 수 있다. 이 경우에는, 서브 샘플링을 위해 제1 좌측 픽셀 라인 상의 픽셀들이 함께 이용될 수도 있다.
또한, N은 현재 루마 블록(1512)의 인트라 예측 모드를 기반으로 루마 참조 정보 생성에 이용될 주변 루마 픽셀들이 결정됨을 의미할 수 있다. 이 경우 루마 참조 정보는 현재 루마 블록(1512)의 인트라 예측 모드를 기반으로 적응적으로 생성될 수 있다. 현재 루마 블록(1512)의 인트라 예측 모드를 기반으로 루마 참조 정보가 생성되는 경우에 사용되는 좌측 주변 루마 픽셀들은 일례로 제1 좌측 픽셀 라인 상의 픽셀들일 수도 있고 다른 예로 제2 좌측 픽셀 라인 상의 픽셀들일 수도 있다.
일례로, P 및 L의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들 및 제1 좌측 픽셀 라인 상의 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. 따라서, 이 경우에는 도 15의 1510에 도시된 [A, D] 또는 [A, B, D, F]의 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다.
[A, D]를 기반으로 루마 참조 정보가 생성된 경우, 생성된 루마 참조 정보는 일례로 도 15의 1520에서와 같이 도시될 수 있다. 도 15의 1520에서, 주변 루마 참조 픽셀들(1524)은 루마 참조 블록(1522)의 상단에 인접한 픽셀들 및 루마 참조 블록(1522)의 좌측에 인접한 픽셀들을 포함할 수 있다.
다른 예로, Q 및 L의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. 따라서, 이 경우에는 도 15의 1510에 도시된 [A, B]의 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다.
[A, B]를 기반으로 루마 참조 정보가 생성된 경우, 생성된 루마 참조 정보는 일례로 도 15의 1530에서와 같이 도시될 수 있다. 도 15의 1530에서, 주변 루마 참조 픽셀들(1534)은 루마 참조 블록(1532)의 상단에 위치한 픽셀들일 수 있다.
또 다른 예로, R 및 L의 조합이 적용되는 실시예에서는 제1 좌측 픽셀 라인 상의 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. 따라서, 이 경우에는 도 15의 1510에 도시된 [D, F]의 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다.
[D, F]를 기반으로 루마 참조 정보가 생성된 경우, 생성된 루마 참조 정보는 일례로 도 15의 1540에서와 같이 도시될 수 있다. 도 15의 1540에서, 주변 루마 참조 픽셀들(1544)은 루마 참조 블록(1542)의 좌측에 위치한 픽셀들일 수 있다.
또 다른 예로, P 및 M의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들 및 제2 좌측 픽셀 라인 상의 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. 따라서, 이 경우에는 도 15의 1510에 도시된 [A, C] 또는 [A, B, C, E]의 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. P 및 M의 조합이 적용되는 경우에 생성되는 루마 참조 정보는 일례로 도 15의 1520에서와 같이 도시될 수 있다.
또 다른 예로, Q 및 M의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. 따라서, 이 경우에는 도 15의 1510에 도시된 [A, B]의 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. Q 및 M의 조합이 적용되는 경우에 생성되는 루마 참조 정보는 일례로 도 15의 1530에서와 같이 도시될 수 있다.
또 다른 예로, R 및 M의 조합이 적용되는 실시예에서는 제2 좌측 픽셀 라인 상의 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. 따라서, 이 경우에는 도 15의 1510에 도시된 [C, E]의 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 수 있다. R 및 M의 조합이 적용되는 경우에 생성되는 루마 참조 정보는 일례로 도 15의 1540에서와 같이 도시될 수 있다.
또 다른 예로, P 및 N의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 인트라 예측 모드를 기반으로, 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들 및 현재 루마 블록(1512)의 좌측에 위치한 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 주변 루마 픽셀로 결정될 수 있다.
이 때, 현재 루마 블록(1512)의 인트라 예측 모드는 현재 루마 블록(1512)의 상단 및 좌측에 위치한 픽셀을 모두 이용하는 제1 인트라 예측 모드일 수 있다. 일례로, 상기 제1 인트라 예측 모드는 DC 모드, 플래너 모드 또는 4, 19, 11, 20, 5, 21, 12, 22, 27, 15, 28, 8, 29, 16 또는 30의 모드 값을 갖는 모드일 수 있다.
P 및 N의 조합이 적용되는 경우에 생성되는 루마 참조 정보는 일례로 도 15의 1520에서와 같이 도시될 수 있다.
또 다른 예로, Q 및 N의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 인트라 예측 모드를 기반으로, 현재 루마 블록(1512)의 상단에 위치한 상단 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 주변 루마 픽셀로 결정될 수 있다.
이 때, 현재 루마 블록(1512)의 인트라 예측 모드는 현재 루마 블록(1512)의 상단에 위치한 픽셀을 주로 이용하는 제2 인트라 예측 모드일 수 있다. 일례로, 제2 인트라 예측 모드는 1, 23, 13, 24, 6, 25, 14, 26 또는 7의 모드 값을 갖는 모드일 수 있다.
Q 및 N의 조합이 적용되는 경우에 생성되는 루마 참조 정보는 일례로 도 15의 1530에서와 같이 도시될 수 있다.
또 다른 예로, R 및 N의 조합이 적용되는 실시예에서는 현재 루마 블록(1512)의 인트라 예측 모드를 기반으로, 현재 루마 블록(1512)의 좌측에 위치한 좌측 주변 루마 픽셀들이 루마 참조 정보 생성에 이용될 주변 루마 픽셀로 결정될 수 있다.
이 때, 현재 루마 블록(1512)의 인트라 예측 모드는 현재 루마 블록(1512)의 좌측에 위치한 픽셀을 주로 이용하는 제3 인트라 예측 모드일 수 있다. 일례로, 제3 인트라 예측 모드는 2, 31, 17, 32, 9, 33, 18, 34 또는 10의 모드 값을 갖는 모드일 수 있다.
R 및 N의 조합이 적용되는 경우에 생성되는 루마 참조 정보는 일례로 도 15의 1540에서와 같이 도시될 수 있다.
상술한 실시예에 따라 결정된 주변 루마 픽셀들을 기반으로 주변 루마 참조 픽셀들의 픽셀 값이 도출된 경우에는, 각각의 주변 루마 참조 픽셀과 동일한 위치에 있는 주변 크로마 픽셀들을 이용하여 예측 파라미터를 도출할 수 있다. 예측 파라미터 도출 과정의 구체적인 실시예는 후술하기로 한다.
도 16은 예측 파라미터를 도출하는 과정 및 현재 크로마 블록 내 픽셀들의 예측값을 도출하는 과정의 실시예를 설명하기 위한 도면이다.
도 16은 루마 참조 블록(1610), 주변 루마 참조 픽셀들(1620), 현재 크로마 블록(1630) 및 복원된 주변 크로마 픽셀들(1640)을 도시한다. 도 16의 실시예에서, 루마 참조 블록(1610)의 크기 및 현재 크로마 블록(1630)의 크기는 각각 8x8일 수 있다.
일 실시예로, 부호화기 및 복호화기는 루마 참조 정보 및 크로마 성분 정보를 기반으로 현재 크로마 블록(1630)에 대한 예측 파라미터를 도출할 수 있다. 일례로, 부호화기 및 복호화기는 주변 루마 참조 픽셀들(1620)의 픽셀 값 및 주변 크로마 픽셀들(1640)의 픽셀 값을 기반으로 예측 파라미터를 도출할 수 있다. 여기서, 예측 파라미터는 최소 자승법을 기반으로 하는 알파(α) 및 베타(β)일 수 있다.
주변 루마 참조 픽셀들(1620) 및 주변 크로마 픽셀들(1640)의 픽셀 값을 기반으로 예측 파라미터를 도출하는 과정은 일례로 다음 수학식 27에 의해 나타내어질 수 있다.
[수학식 27]
수학식 27에서, p1은 주변 루마 참조 픽셀들(1620)의 픽셀 값을 나타내고, p2는 주변 크로마 픽셀들(1640)의 픽셀 값을 나타낼 수 있다. 또한, nS는 루마 참조 블록(1610) 및 현재 크로마 블록(1630)의 가로 길이 및 세로 길이를 나타내고, 'Bitdepth'는 크로마 성분 픽셀의 비트 심도를 나타낼 수 있다. 그리고, abs(x)는 x의 절대값을 나타낼 수 있다. 'lmDiv'는 'a2s'의 값에 따라 결정되는 변수로서, 일례로 다음 표 4에 의해 결정될 수 있다.
[표 4]
수학식 27에서 a는 알파(α)를 나타내고, b는 베타(β)를 나타낼 수 있다.
상술한 예측 파라미터 도출 과정에서, 주변 루마 참조 픽셀들(1620) 및/또는 주변 크로마 픽셀들(1640) 중에서는 가용하지 않은 픽셀이 존재할 수도 있다. 이 경우, 일례로 부호화기 및 복호화기에서는 주변 루마 참조 픽셀들(1620) 및/또는 주변 크로마 픽셀들(1640) 중에서 가용한 픽셀들만을 기반으로 예측 파라미터를 도출할 수 있다.
다른 실시예로, 부호화기 및 복호화기는 주변 루마 참조 픽셀들(1620) 및 주변 크로마 픽셀들(1640)을 기반으로 예측 파라미터를 도출하지 않고, 기본 예측 파라미터(default prediction parameter)를 현재 크로마 블록(1630)의 예측에 이용할 수도 있다. 예를 들어, 기본 예측 파라미터로 사용되는 알파(α)는 1일 수 있고, 기본 예측 파라미터로 사용되는 베타(β)는 0일 수 있다.
상술한 실시예들에 따라 예측 파라미터가 도출되면, 부호화기 및 복호화기는 예측 파라미터 및 루마 참조 블록(1610) 내의 픽셀들의 픽셀 값을 기반으로, 현재 크로마 블록(1630) 내 픽셀들의 예측 값을 도출할 수 있다. 일례로, 부호화기 및 복호화기는 수학식 27에 의해 도출된 예측 파라미터 'a', 'k', 'b'와 도 16에 도시된 루마 참조 블록(1610) 내 픽셀들의 픽셀 값을 기반으로 현재 크로마 블록(1630) 내 픽셀들의 예측 값을 도출할 수 있다. 이 때, 현재 크로마 블록(1630) 내 픽셀들의 예측 값을 도출하는 과정은 일례로 다음 수학식 28에 의해 나타내어질 수 있다.
[수학식 28]
predSamples[x,y] = Clip1(((p1[x,y]*a)>>k)+b), (x,y=0~(nS-1))
Clip1(i) = Clip3(0,(1<<BitDepth)-1,i)
여기서, 'predSamples[x,y]'는 현재 크로마 블록(1630) 내 픽셀의 예측 값을 나타낼 수 있다. 또한, clip(x,y,z)는 z가 x보다 작으면 x이고 z가 y보다 크면 y이고 그렇지 않으면 z일 수 있다.
도 17은 본 발명에 따른 복호화 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 17의 실시예에서, PY는 현재 루마 블록의 예측에 사용되는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, NY는 현재 루마 블록의 가로 길이 및 세로 길이를 나타낼 수 있고, PLM은 LM 모드에서 루마 참조 정보 생성에 사용되는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 여기서, PY[x,y]와 PLM[x,y]는 서로 동일한 값을 가질 수 있다.
도 17의 실시예는 루마 성분(Y)을 기준으로 서술된다. 그러나, 본 발명은 이에 한정되는 것은 아니며, 도 17의 실시예는 루마 성분(Y)이 아닌 크로마 성분(U,V)에 대해서도 루마 성분에서와 동일하거나 유사한 방식으로 적용될 수 있다. 또한, 이 경우에는 변수 PY 대신 PC가 사용될 수 있고, 변수 NY 대신 NC가 사용될 수 있으며, cIdx에 할당되는 값은 0이 아닌 1 또는 2일 수 있다. 여기서, cIdx는 현재 블록의 색 성분이 Y, U, V 중에서 어떤 성분에 해당되는지를 지시하는 인덱스일 수 있다. 일례로, 현재 블록의 색 성분이 Y인 경우 cIdx에는 0이 할당될 수 있고, 현재 블록의 색 성분이 U인 경우 cIdx에 1이 할당될 수 있으며, 현재 블록의 색 성분이 V인 경우 cIdx에는 2가 할당될 수 있다. 색 성분에 따라 도 17의 실시예에 적용되는 변수들의 관계는 일례로 다음 표 5에 의해 나타내어질 수 있다.
[표 5]
여기서, PC는 현재 크로마 블록의 주변에 위치한 주변 크로마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, NC는 현재 크로마 블록의 가로 길이 및 세로 길이를 나타낼 수 있다.
일례로, 도 17의 실시예는 색 공간을 구성하는 각각의 색 성분에 대해, Y 성분, U 성분, V 성분의 순서로 적용될 수 있다.
도 17을 참조하면, 부호화기 및 복호화기는 PY[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1)가 가용한지 여부를 체크하여 마킹(marking)할 수 있다(S1710). 여기서, 마킹이라 함은 가용성(availability)에 대한 정보를 저장하거나 표시하는 과정을 의미할 수 있다. 주변 루마 픽셀이 가용하지 않은 경우의 실시예들은 도 8의 실시예에서 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
다시 도 17을 참조하면, 부호화기 및 복호화기는 현재 루마 블록에 대해 조건 A 및 조건 B가 만족되는지 여부를 판단할 수 있다(S1720).
여기서, 조건 A는 현재 루마 블록에 대응되는 현재 크로마 블록의 인트라 예측에 LM 모드가 적용될 수 있음을 나타내는 조건이다. 일례로, 조건 A는 LM 플래그(chroma_pred_from_luma_enabled_flag)에 1이 할당되어 있는 경우에 만족될 수 있다. 상술한 바와 같이, chroma_pred_from_luma_enabled_flag는 현재 크로마 블록의 인트라 예측에 대해 LM 모드가 지원될 수 있는지 여부를 나타낼 수 있다. 또한, 조건 B는 현재 블록이 루마 성분 블록(Y)임을 나타내는 조건이다. 일례로, 조건 B는 cIdx에 0이 할당되어 있는 경우에 만족될 수 있다.
조건 A 및 조건 B가 만족되는 경우, 부호화기 및 복호화기는 PLM을 생성할 수 있다.
다시 도 17을 참조하면, 조건 A 및 조건 B가 만족되는 경우 부호화기 및 복호화기는 PLM[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1)가 가용한지 여부를 체크하여 마킹(marking)할 수 있다(S1730).
이 때, PY[x,y]와 PLM[x,y]는 서로 동일한 값을 가질 수 있으므로, PY[x,y]가 가용한 경우 PLM[x,y]도 가용한 것으로 마킹될 수 있고 PY[x,y]가 가용하지 않은 경우 PLM[x,y]도 가용하지 않은 것으로 마킹될 수 있다.
또한, 일례로 PLM 에 대한 마킹 과정이 수행된 후 부호화기 및 복호화기는 PLM[x,y], (x=-1, y=0~NY*2-1)에 해당되는 픽셀들 중에서 가용한 것으로 판별된 픽셀들의 픽셀 값을 [x-1,y] 위치의 루마 픽셀 값으로 대체할 수도 있다.
다시 도 17을 참조하면, 부호화기 및 복호화기는 현재 루마 블록의 예측에 사용될 주변 루마 픽셀들에 대해 조건 C가 만족되는지 여부를 판단할 수 있다(S1740). 여기서, 조건 C는 PY[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1) 중에서 적어도 하나의 픽셀이 가용하지 않음을 나타내는 조건이다.
조건 C가 만족되는 경우, 즉 현재 루마 블록의 예측에 사용될 주변 루마 픽셀들 중에서 적어도 하나의 픽셀이 가용하지 않은 경우, 부호화기 및 복호화기는 PY[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1) 중에서 가용하지 않은 픽셀들에 대해 패딩 과정을 수행할 수 있다(S1750). 패딩 과정의 실시예들은 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
다시 도 17을 참조하면, 부호화기 및 복호화기는 루마 참조 정보 생성에 사용될 주변 루마 픽셀들에 대해 조건 A, B 및 D가 만족되는지 여부를 판단할 수 있다(S1760). 여기서, 조건 D는 PLM[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1) 중에서 적어도 하나의 픽셀이 가용하지 않음을 나타내는 조건이다.
조건 A, B 및 D가 만족되는 경우, 즉 루마 참조 정보 생성에 사용될 주변 루마 픽셀들 중에서 적어도 하나의 픽셀이 가용하지 않은 경우, 부호화기 및 복호화기는 PLM[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1) 중에서 가용하지 않은 픽셀들에 대해 패딩 과정을 수행할 수 있다(S1770). 패딩 과정의 실시예들은 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
상술한 패딩 과정이 수행된 후, 부호화기 및 복호화기는 주변 루마 픽셀들을 기반으로 현재 루마 블록에 대한 예측 및 복호화 과정을 수행함으로써, 현재 루마 블록에 대한 복원 블록을 생성할 수 있다(S1780). 도 17의 실시예가 크로마 성분(U 또는 V)에 대해 적용된 경우, 부호화기 및 복호화기는 주변 루마 픽셀들, 복원된 현재 루마 블록 내 픽셀들 및 주변 크로마 픽셀들을 기반으로 현재 크로마 블록에 대한 예측 블록을 생성할 수 있으며, 생성된 예측 블록을 기반으로 현재 크로마 블록에 대한 복원 블록을 생성할 수 있다.
도 18은 도 17의 실시예에서와 같이 복호화 과정이 수행되는 경우, 현재 크로마 블록에 대한 루마 참조 정보 및 예측 파라미터를 도출하는 과정의 실시예를 설명하기 위한 도면이다.
도 18은 예측 대상이 되는 루마 성분 블록(1810), 루마 성분 블록의 예측에 사용되는 주변 루마 픽셀들(1820, PY), 복원된 현재 루마 블록(1830, PRecY), 루마 참조 정보 생성에 사용되는 주변 루마 픽셀들(1840, PLM), 현재 크로마 블록(1850) 및 주변 크로마 픽셀들(1860, PC)을 도시한다. 도 18의 실시예에서, 예측 대상이 되는 루마 성분 블록(1810) 및 복원된 현재 루마 블록(1830, PRecY)의 크기는 8x8이고 현재 크로마 블록(1850)의 크기는 4x4일 수 있다.
상술한 바와 같이, 도 17의 실시예는 루마 성분(Y)이 아닌 크로마 성분(U,V)에 대해서도 적용될 수 있다. 현재 크로마 블록(1850)의 예측 모드가 LM 모드인 경우, 패딩 과정이 수행된 후에 부호화기 및 복호화기는 현재 크로마 블록(1850)에 대한 루마 참조 정보 및 예측 파라미터를 도출할 수 있다.
부호화기 및 복호화기는 주변 루마 픽셀들(1820, PY)을 기반으로 예측 대상이 되는 루마 성분 블록(1810) 내 픽셀들의 예측 값을 도출할 수 있다. 이 때, 부호화기 및 복호화기는 도출된 예측 값을 기반으로 루마 성분의 복원 블록을 생성할 수 있으며, 이는 복원된 현재 루마 블록(1830, PRecY)에 해당될 수 있다. 또한, 부호화기 및 복호화기는 루마 성분 블록(1810)의 예측에 사용된 주변 루마 픽셀들(1820, PY)을 기반으로, 루마 참조 정보 생성에 사용될 주변 루마 픽셀들(1840, PLM)을 결정할 수 있다.
부호화기 및 복호화기는 주변 루마 픽셀들(1840, PLM) 및 복원된 현재 루마 블록(1830, PRecY)을 기반으로 현재 크로마 블록(1850)의 예측에 사용될 루마 참조 정보를 생성할 수 있다. 도 18에서는 복원된 현재 루마 블록(1830) 및 현재 크로마 블록(1850)의 크기가 서로 다르므로, 부호화기 및 복호화기는 현재 크로마 블록(1850)과 동일한 크기(4x4)의 루마 참조 블록 및 이에 대응되는 주변 루마 참조 픽셀들을 생성할 수 있다. 이 때, 현재 크로마 블록(1850)의 크기가 복원된 현재 루마 블록(1830)의 크기보다 작으므로, 부호화기 및 복호화기는 복원된 현재 루마 블록(1830) 내의 픽셀들 및 주변 루마 픽셀들(1840)에 대해 다운 샘플링을 수행함으로써 루마 참조 정보를 생성할 수 있다.
복원된 현재 루마 블록(1830)의 상단에 위치한 주변 루마 픽셀들에 대해서는 일례로 다음 수학식 29에 의해 다운 샘플링 과정이 수행될 수 있다.
[수학식 29]
PY'[x,-1] = (PLM[2x-1,-1] + 2*PLM[2x,-1] + PLM[2x+1,-1] + 2) >> 2,
(x = 0~NC-1)
여기서, PY'은 루마 참조 정보에 해당되는 픽셀(예컨대, 루마 참조 블록 내의 픽셀 또는 주변 루마 참조 픽셀)의 픽셀 값을 나타낼 수 있다. 또한, PLM은 루마 참조 정보 생성에 사용될 주변 루마 픽셀(1840)의 픽셀 값을 나타낼 수 있다. 그리고, NC는 현재 크로마 블록(1850)의 가로 길이 및 세로 길이를 나타낼 수 있다.
복원된 현재 루마 블록(1830)의 좌측에 위치한 주변 루마 픽셀들에 대해서는 일례로 다음 수학식 30에 의해 다운 샘플링 과정이 수행될 수 있다.
[수학식 30]
PY'[-1,y] = (PLM[-1,2y] + PLM[-1,2y+1]) >> 1, (y = 0~NC-1)
복원 현재 루마 블록(1830) 내의 픽셀들에 대해서는 일례로 다음 수학식 31에 의해 다운 샘플링 과정이 수행될 수 있다. 다음 수학식 31에 의해서 현재 크로마 블록(1850)에 대응되는 루마 참조 블록이 생성될 수 있다.
[수학식 31]
PY'[x,y] = (PRecY[2x,2y] + PRecY[2x,2y+1]) >> 1, (x,y = 0~NC-1)
여기서, PRecY는 현재 루마 블록(1830) 내 픽셀의 픽셀 값을 나타낼 수 있다.
상술한 과정에 의해 루마 참조 정보가 생성되면, 부호화기 및 복호화기는 루마 참조 정보 및 크로마 성분 정보를 기반으로 현재 크로마 블록(1850)에 대한 예측 파라미터를 도출할 수 있다. 일례로, 부호화기 및 복호화기는 주변 루마 참조 픽셀들(1840)의 픽셀 값 및 주변 크로마 픽셀들(1860)의 픽셀 값을 기반으로 예측 파라미터를 도출할 수 있다. 다음 수학식 32는 예측 파라미터를 도출하는 과정의 일부를 나타낼 수 있다.
[수학식 32]
여기서, PC는 루마 참조 정보 생성에 사용될 주변 크로마 픽셀(1860)의 픽셀 값을 나타낼 수 있고, 'Bitdepth'는 크로마 성분 픽셀의 비트 심도를 나타낼 수 있다.
수학식 32에 의해 도출된 k3, L, C, LL, LC를 기반으로 k2, a1, a2, k1, a1s, a2s, a3, α(알파), k 및 β(베타) 를 도출하는 과정의 실시예는 수학식 27의 실시예에서와 유사하므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다. 다만, 이 경우 수학식 27의 실시예에서 nS는 NC로 대체될 수 있고, p1은 PY'으로 대체될 수 있으며, p2는 PC로 대체될 수 있다.
예측 파라미터가 도출되면, 부호화기 및 복호화기는 예측 파라미터 및 루마 참조 블록(1830) 내 픽셀들의 픽셀 값을 기반으로, 현재 크로마 블록(1850) 내 픽셀들의 예측 값을 도출할 수 있다. 현재 크로마 블록(1850) 내 픽셀들의 예측 값을 도출하는 과정의 실시예는 수학식 28의 실시예에서와 유사하므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다. 다만, 이 경우 수학식 28의 실시예에서 nS는 NC로 대체될 수 있고, p1은 PRecY로 대체될 수 있다.
도 19a 및 도 19b는 본 발명에 따른 복호화 과정의 다른 실시예를 설명하기 위한 도면이다.
도 19a는 본 발명에 따른 복호화 과정의 실시예를 나타낸다. 또한, 도 19b는 하나의 CU(1990)가 쿼드 트리 구조(quad-tree structure)를 기반으로 복수의 TU로 분할된 것을 나타낸다.
도 19a 및 도 19b(이하, 도 19라 함)의 실시예에서, Pk는 PY, PU 또는 PV일 수 있고, Nk는 NY, NU 또는 NV일 수 있다. 여기서, PY는 현재 루마 블록의 예측에 사용되는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 또한, PU 및 PV 는 현재 크로마 블록의 예측에 사용되는 주변 크로마 픽셀의 픽셀 값을 나타낼 수 있다. 여기서, PU 및 PV 는 PC로 나타내어질 수도 있다. 그리고, NY는 현재 루마 블록의 가로 길이 및 세로 길이를 나타내고, NU 및 NV 는 현재 크로마 블록의 가로 길이 및 세로 길이를 나타낼 수 있다. 여기서, NU 및 NV 는 NC로 나타내어질 수도 있다. 도 19의 실시예에서, PLM은 LM 모드에서 루마 참조 정보 생성에 사용되는 주변 루마 픽셀의 픽셀 값을 나타낼 수 있다. 여기서, PY[x,y]와 PLM[x,y]는 서로 동일한 값을 가질 수 있다.
도 19의 실시예에서 k는 Y, U 또는 V일 수 있으므로, 도 19의 실시예는 루마 성분(Y) 및 크로마 성분(U, V)에 대해 모두 적용될 수 있다. 색 성분에 따라 도 19의 실시예에 적용되는 변수들의 관계는 일례로 다음 표 6에 의해 나타내어질 수 있다.
[표 6]
여기서, cIdx는 현재 블록의 색 성분이 Y, U(Cb), V(Cr) 중에서 어떤 성분에 해당되는지를 지시하는 인덱스일 수 있다. 일례로, 현재 블록의 색 성분이 Y인 경우 cIdx에는 0이 할당될 수 있고, 현재 블록의 색 성분이 U(Cb)인 경우 cIdx에 1이 할당될 수 있으며, 현재 블록의 색 성분이 V(Cr)인 경우 cIdx에는 2가 할당될 수 있다.
또한, 도 19의 실시예는 일례로 하나의 CU에서 색 공간을 구성하는 각각의 색 성분에 대해, Y 성분, U(Cb) 성분, V(Cr) 성분의 순서로 적용될 수 있다.
도 19b를 참조하면, 하나의 CU(1990)는 쿼드 트리 구조를 기반으로 복수 개의 TU(1, 2, 3, 4, 5, 6, 7)로 분할될 수 있다. 이 때, 부호화기 및 복호화기는 우선 CU(1990) 내의 Y 성분 블록들에 대해 도 19a의 실시예에 따른 복호화 과정을 수행할 수 있다. 그리고 부호화기 및 복호화기는 CU(1990) 내의 U 성분 블록들 및 V 성분 블록들에 대해 순서대로 도 19a의 실시예에 따른 복호화 과정을 수행할 수 있다. 일례로, 도 19의 실시예에 따른 복호화 과정은 [Y1->Y2->...->Y7->U1->U2->...->U7->V1->V2...->V7]의 순서로 수행될 수 있다. 여기서 일례로, Y1은 도 19b에서 블록 1의 루마 성분에 대해 복호화가 수행됨을 의미할 수 있다.
도 19a를 참조하면, 부호화기 및 복호화기는 Pk[x,y], (x=-1, y=-1~Nk*2-1 및 x=0~Nk*2-1, y=-1)가 가용한지 여부를 체크하여 마킹(marking)할 수 있다(S1910). 상술한 바와 같이, 마킹이라 함은 가용성(availability)에 대한 정보를 저장하거나 표시하는 과정을 의미할 수 있다. 주변 루마 픽셀이 가용하지 않은 경우의 실시예들은 도 8의 실시예에서 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
다시 도 19a를 참조하면, 부호화기 및 복호화기는 조건 A, 조건 B 및 조건 C가 만족되는지 여부를 판단할 수 있다(S1920).
여기서, 조건 A는 현재 크로마 블록의 인트라 예측에 LM 모드가 적용될 수 있음을 나타내는 조건이다. 일례로, 조건 A는 LM 플래그(chroma_pred_from_luma_enabled_flag)에 1이 할당되어 있는 경우에 만족될 수 있다. 상술한 바와 같이, chroma_pred_from_luma_enabled_flag는 현재 크로마 블록의 인트라 예측에 대해 LM 모드가 지원될 수 있는지 여부를 나타낼 수 있다. 또한, 조건 B는 현재 블록의 인트라 예측 모드가 LM 모드임을 나타내는 조건이다. 여기서, 일례로 LM 모드는 Intra_FromLuma로 나타내어질 수 있다. 또한, 조건 C는 현재 블록이 크로마 성분 블록(U(Cb) 또는 V(Cr))임을 나타내는 조건이다. 일례로, 조건 C는 cIdx에 1 또는 2가 할당되어 있는 경우에 만족될 수 있다.
조건 A, 조건 B 및 조건 C가 만족되는 경우, 부호화기 및 복호화기는 PLM을 생성할 수 있다.
다시 도 19a를 참조하면, 조건 A, 조건 B 및 조건 C가 만족되는 경우 부호화기 및 복호화기는 PLM[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1)가 가용한지 여부를 체크하여 마킹(marking)할 수 있다(S1930).
이 때 일례로 일례로 PLM 에 대한 마킹 과정이 수행된 후 부호화기 및 복호화기는 PLM[x,y], (x=-1, y=0~NY*2-1)에 해당되는 픽셀들 중에서 가용한 것으로 판별된 픽셀들의 픽셀 값을 [x-1,y] 위치의 픽셀 값 즉, PLM[x-1,y]의 픽셀 값으로 대체할 수도 있다.
또한 이 때 일 실시예로, 부호화기 및 복호화기는 주변 루마 픽셀들에 대응되는 주변 크로마 픽셀, 즉 PU 또는 PV의 가용성을 기반으로 PLM이 가용한지 여부를 체크할 수 있다. 이 때, PU 또는 PV가 가용한지 여부는 S1910 단계에서 이미 마킹되어 있을 수 있다. 일례로, 부호화기 및 보호화기는 PU에 해당되는 픽셀이 가용한지 여부를 기반으로 PLM이 가용한지 여부를 판단할 수 있다.
예를 들어, x=-1, y=0~NU*2-1에 대해 주변 크로마 픽셀 PU[x,y]가 가용하지 않은 것으로 마킹된다면, 부호화기 및 복호화기는 주변 루마 픽셀 PLM[x,2y] 및 PLM[x,2y+1]도 가용하지 않은 것으로 판단할 수 있다. 반면, x=-1, y=0~NU*2-1에 대해 주변 크로마 픽셀 PU[x,y]가 가용한 것으로 마킹된다면, 부호화기 및 복호화기는 주변 루마 픽셀 PLM[x,2y] 및 PLM[x,2y+1]도 가용한 것으로 판단할 수 있다.
이 때, 부호화기 및 복호화기는 [x-1,2y] 및 [x-1,2y+1]에 위치한 루마 픽셀 값을 각각 PLM[x,2y] 및 PLM[x,2y+1]에 할당할 수 있다. 따라서, 주변 루마 픽셀이 현재 루마 블록의 좌측에 인접하여 위치한 좌측 픽셀 라인상의 픽셀이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀의 좌측에 인접하여 위치한 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
또한, x=0~NU*2-1, y=-1에 대해 주변 크로마 픽셀 PU[x,y]가 가용하지 않은 것으로 마킹된다면, 부호화기 및 복호화기는 주변 루마 픽셀 PLM[2x,y] 및 PLM[2x+1,y]도 가용하지 않은 것으로 판단할 수 있다. 반면, x=0~NU*2-1, y=-1에 대해 주변 크로마 픽셀 PU[x,y]가 가용한 것으로 마킹된다면, 부호화기 및 복호화기는 주변 루마 픽셀 PLM[2x,y] 및 PLM[2x+1,y]도 가용한 것으로 판단할 수 있다.
이 때, 부호화기 및 복호화기는 [2x,y] 및 [2x+1,y]에 위치한 루마 픽셀 값을 각각 PLM[2x,y] 및 PLM[2x+1,y]에 할당할 수 있다. 따라서, 주변 루마 픽셀이 현재 루마 블록의 상단에 인접하여 위치한 상단 픽셀 라인상의 픽셀이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀과 동일한 위치의 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
또한, x=-1, y=-1에 대해 주변 크로마 픽셀 PU[x,y]가 가용하지 않은 것으로 마킹된다면, 부호화기 및 복호화기는 주변 루마 픽셀 PLM[x,y]도 가용하지 않은 것으로 판단할 수 있다. 반면, x=-1, y=-1에 대해 주변 크로마 픽셀 PU[x,y]가 가용한 것으로 마킹된다면, 부호화기 및 복호화기는 주변 루마 픽셀 PLM[x,y]도 가용한 것으로 판단할 수 있다.
이 때, 부호화기 및 복호화기는 [x,y]에 위치한 루마 픽셀 값을 PLM[x,y]에 할당할 수 있다. 따라서, 주변 루마 픽셀의 위치가 [-1,-1]이고 상기 주변 루마 픽셀이 가용한 것으로 결정된 경우, 상기 주변 루마 픽셀과 동일한 위치의 루마 픽셀의 픽셀 값이 상기 주변 루마 픽셀의 픽셀 값으로 결정될 수 있다.
상술한 실시예에서는 PU를 기반으로 PLM이 가용한지 여부를 체크하는 과정이 서술되고 있지만 본 발명은 이에 한정되는 것은 아니다. 예를 들어, PLM이 가용한지 여부는 PV를 기반으로 체크될 수도 있다.
다시 도 19a를 참조하면, 부호화기 및 복호화기는 조건 D가 만족되는지 여부를 판단할 수 있다(S1940). 여기서, 조건 D는 Pk[x,y], (x=-1, y=-1~Nk*2-1 및 x=0~Nk*2-1, y=-1) 중에서 적어도 하나의 픽셀이 가용하지 않음을 나타내는 조건이다.
조건 D가 만족되는 경우, 부호화기 및 복호화기는 Pk[x,y], (x=-1, y=-1~Nk*2-1 및 x=0~Nk*2-1, y=-1) 중에서 가용하지 않은 픽셀들에 대해 패딩 과정을 수행할 수 있다(S1950). 패딩 과정의 실시예들은 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
다시 도 19a를 참조하면, 부호화기 및 복호화기는 조건 A, 조건 B, 조건 C 및 조건 E가 만족되는지 여부를 판단할 수 있다(S1960). 여기서, 조건 E는 PLM[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1) 중에서 적어도 하나의 픽셀이 가용하지 않음을 나타내는 조건이다.
조건 A, 조건 B, 조건 C 및 조건 E가 만족되는 경우, 부호화기 및 복호화기는 PLM[x,y], (x=-1, y=-1~NY*2-1 및 x=0~NY*2-1, y=-1) 중에서 가용하지 않은 픽셀들에 대해 패딩 과정을 수행할 수 있다(S1970). 패딩 과정의 구체적인 실시예들은 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
상술한 패딩 과정이 수행된 후, 부호화기 및 복호화기는 현재 루마 블록 및/또는 현재 크로마 블록에 대한 예측 및 복호화 과정을 수행함으로써, 현재 루마 블록에 대한 복원 블록 및/또는 현재 크로마 블록에 대한 복원 블록을 생성할 수 있다(S1980).
이 때, 현재 크로마 블록에 대해서는 LM 모드 예측이 적용될 수도 있다. LM 모드에서의 예측 과정은 도 18의 실시예에서와 유사하므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
Claims (9)
- 현재 크로마 블록에 대응되는 루마 참조 블록의 주변 루마 픽셀들 중 상기 루마 참조 블록의 좌측에 인접한 좌측 주변 루마 픽셀들이 이용가능한지 여부 및 상기 루마 참조 블록의 상단에 인접한 상단 주변 루마 픽셀들이 이용가능한지 여부를 결정하는 단계;
상기 좌측 주변 루마 픽셀들이 이용가능한지 여부 및 상기 상단 주변 루마 픽셀들이 이용가능한지 여부에 따라, 주변 루마 참조 픽셀들을 결정하는 단계;
상기 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 참조 픽셀들에 대응되는 주변 크로마 참조 픽셀들을 결정하는 단계;
상기 주변 루마 참조 픽셀들 및 상기 주변 크로마 참조 픽셀들을 기반으로, 상기 현재 크로마 블록에 대한 예측 파라미터를 도출하는 단계; 및
상기 루마 참조 블록 내 픽셀 및 상기 예측 파라미터를 기반으로, 상기 현재 크로마 블록 내 픽셀의 예측 값을 도출하는 단계를 포함하고,
상기 좌측 주변 루마 픽셀들은, 상기 루마 참조 블록의 좌측에 바로 인접한 제1 좌측 주변 루마 픽셀과, 상기 제1 좌측 주변 루마 픽셀의 좌측에 바로 인접한 제2 좌측 주변 루마 픽셀을 포함하고,
상기 좌측 주변 루마 픽셀들이 이용가능할 경우, 상기 제1 좌측 주변 루마 픽셀 및 상기 제2 좌측 주변 루마 픽셀에 기초하여 결정된 다운샘플링된 주변 루마 참조 픽셀과 상기 다운샘플링된 주변 루마 참조 픽셀에 대응되는 주변 크로마 참조 픽셀에 기반하여, 상기 현재 크로마 블록에 대한 상기 예측 파라미터가 도출되고,
상기 상단 주변 루마 픽셀들은, 상기 루마 참조 블록의 상단에 바로 인접한 제1 상단 주변 루마 픽셀을 포함하는 것을 특징으로 하는 영상 복호화 방법.
- 제 1항에 있어서,
상기 주변 루마 참조 픽셀들을 결정하는 단계는,
상기 좌측 주변 루마 픽셀들이 이용가능하지 않은 경우, 상기 좌측 주변 루마 픽셀들은 주변 루마 참조 픽셀들에 포함되지 않고,
상기 상단 주변 루마 픽셀들이 이용가능하지 않은 경우, 상기 상단 주변 루마 픽셀들은 주변 루마 참조 픽셀들에 포함되지 않는 것을 특징으로 하는 영상 복호화 방법.
- 제 1항에 있어서,
상기 예측 파라미터를 도출하는 단계에서,
상기 주변 루마 픽셀들은 소정의 크기를 갖는 픽셀 그룹들에 포함되고,
상기 픽셀 그룹들 각각에 대하여, 상기 주변 루마 픽셀들 중 소정 위치의 주변 루마 샘플이 선택되고,
상기 선택된 소정 위치의 주변 루마 샘플에 기초하여, 상기 주변 루마 픽셀들이 다운샘플링되고,
상기 다운샘플링된 주변 루마 픽셀들에 기초하여, 상기 예측 파라미터가 도출되는 것을 특징으로 하는 영상 복호화 방법.
- 제 1항에 있어서,
상기 상단 주변 루마 픽셀들은, 상기 제1 상단 주변 루마 픽셀의 상단에 바로 인접한 제2 상단 주변 루마 픽셀을 더 포함하는 것을 특징으로 하는 영상 복호화 방법.
- 제 1항에 있어서,
상기 주변 루마 참조 픽셀들을 결정하는 단계는,
상기 좌측 주변 루마 픽셀들이 이용가능한 경우, 상기 좌측 주변 루마 픽셀들 및 좌하측 주변 루마 픽셀들에 따라, 상기 주변 루마 참조 픽셀들을 결정하는 것을 특징으로 하는 영상 복호화 방법.
- 제 1항에 있어서,
상기 주변 루마 참조 픽셀들을 결정하는 단계는,
상기 상단 주변 루마 픽셀들이 이용가능한 경우, 상기 상단 주변 루마 픽셀들 및 우상측 주변 루마 픽셀에 따라, 상기 주변 루마 참조 픽셀들을 결정하는 것을 특징으로 하는 영상 복호화 방법.
- 제1항에 있어서,
상기 영상 복호화 방법은,
상기 현재 크로마 블록이 포함된 현재 시퀀스에서 크로마 블록의 인트라 예측에 LM 모드가 적용될 수 있는지 여부를 나타내는 LM 플래그 정보를 획득하는 단계; 및
상기 LM 플래그 정보가 상기 현재 시퀀스에서 크로마 블록의 인트라 예측에 LM 모드가 적용됨을 나타낼 때, 상기 현재 크로마 블록의 인트라 예측 모드를 나타내는 인트라 예측 모드 정보에 따라, 상기 현재 크로마 블록에 LM 모드가 적용되는지 여부를 판단하는 단계를 더 포함하는 영상 복호화 방법.
- 현재 크로마 블록에 대응되는 루마 참조 블록의 주변 루마 픽셀들 중 상기 루마 참조 블록의 좌측에 인접한 좌측 주변 루마 픽셀들이 이용가능한지 여부 및 상기 루마 참조 블록의 상단에 인접한 상단 주변 루마 픽셀들이 이용가능한지 여부를 결정하는 단계;
상기 좌측 주변 루마 픽셀들이 이용가능한지 여부 및 상기 상단 주변 루마 픽셀들이 이용가능한지 여부에 따라, 주변 루마 참조 픽셀들을 결정하는 단계;
상기 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 참조 픽셀들에 대응되는 주변 크로마 참조 픽셀들을 결정하는 단계;
상기 주변 루마 참조 픽셀들 및 상기 주변 크로마 참조 픽셀들을 기반으로, 상기 현재 크로마 블록에 대한 예측 파라미터를 도출하는 단계; 및
상기 루마 참조 블록 내 픽셀 및 상기 예측 파라미터를 기반으로, 상기 현재 크로마 블록 내 픽셀의 예측 값을 도출하는 단계를 포함하고,
상기 좌측 주변 루마 픽셀들은, 상기 루마 참조 블록의 좌측에 바로 인접한 제1 좌측 주변 루마 픽셀과, 상기 제1 좌측 주변 루마 픽셀의 좌측에 바로 인접한 제2 좌측 주변 루마 픽셀을 포함하고,
상기 좌측 주변 루마 픽셀들이 이용가능할 경우, 상기 제1 좌측 주변 루마 픽셀 및 상기 제2 좌측 주변 루마 픽셀에 기초하여 결정된 다운샘플링된 주변 루마 참조 픽셀과 상기 다운샘플링된 주변 루마 참조 픽셀에 대응되는 주변 크로마 참조 픽셀에 기반하여, 상기 현재 크로마 블록에 대한 상기 예측 파라미터가 도출되고,
상기 상단 주변 루마 픽셀들은, 상기 루마 참조 블록의 상단에 바로 인접한 제1 상단 주변 루마 픽셀을 포함하는 것을 특징으로 하는 영상 부호화 방법.
- 비트스트림을 저장한 컴퓨터로 판독 가능한 기록 매체로서,
상기 비트스트림은 영상 복호화 방법에 의해 복호화되는 영상 데이터를 포함하고,
상기 영상 복호화 방법은,
현재 크로마 블록에 대응되는 루마 참조 블록의 주변 루마 픽셀들 중 상기 루마 참조 블록의 좌측에 인접한 좌측 주변 루마 픽셀들이 이용가능한지 여부 및 상기 루마 참조 블록의 상단에 인접한 상단 주변 루마 픽셀들이 이용가능한지 여부를 결정하는 단계;
상기 좌측 주변 루마 픽셀들이 이용가능한지 여부 및 상기 상단 주변 루마 픽셀들이 이용가능한지 여부에 따라, 주변 루마 참조 픽셀들을 결정하는 단계;
상기 현재 크로마 블록 주변에 위치한 주변 크로마 픽셀들 중에서 상기 주변 루마 참조 픽셀들에 대응되는 주변 크로마 참조 픽셀들을 결정하는 단계;
상기 주변 루마 참조 픽셀들 및 상기 주변 크로마 참조 픽셀들을 기반으로, 상기 현재 크로마 블록에 대한 예측 파라미터를 도출하는 단계; 및
상기 루마 참조 블록 내 픽셀 및 상기 예측 파라미터를 기반으로, 상기 현재 크로마 블록 내 픽셀의 예측 값을 도출하는 단계를 포함하고,
상기 좌측 주변 루마 픽셀들은, 상기 루마 참조 블록의 좌측에 바로 인접한 제1 좌측 주변 루마 픽셀과, 상기 제1 좌측 주변 루마 픽셀의 좌측에 바로 인접한 제2 좌측 주변 루마 픽셀을 포함하고,
상기 좌측 주변 루마 픽셀들이 이용가능할 경우, 상기 제1 좌측 주변 루마 픽셀 및 상기 제2 좌측 주변 루마 픽셀에 기초하여 결정된 다운샘플링된 주변 루마 참조 픽셀과 상기 다운샘플링된 주변 루마 참조 픽셀에 대응되는 주변 크로마 참조 픽셀에 기반하여, 상기 현재 크로마 블록에 대한 상기 예측 파라미터가 도출되고,
상기 상단 주변 루마 픽셀들은, 상기 루마 참조 블록의 상단에 바로 인접한 제1 상단 주변 루마 픽셀을 포함하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230005110A KR102607887B1 (ko) | 2011-11-08 | 2023-01-13 | 인트라 예측 방법 및 그 장치 |
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20110116096 | 2011-11-08 | ||
KR1020110116096 | 2011-11-08 | ||
KR1020110119992 | 2011-11-17 | ||
KR20110119992 | 2011-11-17 | ||
KR20120005946 | 2012-01-18 | ||
KR1020120005946 | 2012-01-18 | ||
KR1020120006657 | 2012-01-20 | ||
KR20120006657 | 2012-01-20 | ||
KR1020120010004 | 2012-01-31 | ||
KR20120010004 | 2012-01-31 | ||
KR1020220070901A KR102449210B1 (ko) | 2011-11-08 | 2022-06-10 | 인트라 예측 방법 및 그 장치 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220070901A Division KR102449210B1 (ko) | 2011-11-08 | 2022-06-10 | 인트라 예측 방법 및 그 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230005110A Division KR102607887B1 (ko) | 2011-11-08 | 2023-01-13 | 인트라 예측 방법 및 그 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220133170A KR20220133170A (ko) | 2022-10-04 |
KR102489735B1 true KR102489735B1 (ko) | 2023-01-18 |
Family
ID=48661126
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120125858A KR20130050900A (ko) | 2011-11-08 | 2012-11-08 | 인트라 예측 방법 및 그 장치 |
KR1020210079558A KR102409444B1 (ko) | 2011-11-08 | 2021-06-18 | 인트라 예측 방법 및 그 장치 |
KR1020220070901A KR102449210B1 (ko) | 2011-11-08 | 2022-06-10 | 인트라 예측 방법 및 그 장치 |
KR1020220121818A KR102489735B1 (ko) | 2011-11-08 | 2022-09-26 | 인트라 예측 방법 및 그 장치 |
KR1020230005110A KR102607887B1 (ko) | 2011-11-08 | 2023-01-13 | 인트라 예측 방법 및 그 장치 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120125858A KR20130050900A (ko) | 2011-11-08 | 2012-11-08 | 인트라 예측 방법 및 그 장치 |
KR1020210079558A KR102409444B1 (ko) | 2011-11-08 | 2021-06-18 | 인트라 예측 방법 및 그 장치 |
KR1020220070901A KR102449210B1 (ko) | 2011-11-08 | 2022-06-10 | 인트라 예측 방법 및 그 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230005110A KR102607887B1 (ko) | 2011-11-08 | 2023-01-13 | 인트라 예측 방법 및 그 장치 |
Country Status (1)
Country | Link |
---|---|
KR (5) | KR20130050900A (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103313055B (zh) * | 2013-06-03 | 2016-04-20 | 电子科技大学 | 一种基于分割的色度帧内预测方法、及视频编码解码方法 |
US10602138B2 (en) | 2015-08-27 | 2020-03-24 | Lg Electronics Inc. | Method and device for chroma sample intra prediction in video coding system |
CN118714296A (zh) * | 2016-10-04 | 2024-09-27 | Lx 半导体科技有限公司 | 图像编码/解码方法和图像数据的发送方法 |
US10880546B2 (en) | 2016-10-11 | 2020-12-29 | Lg Electronics Inc. | Method and apparatus for deriving intra prediction mode for chroma component |
WO2019198997A1 (ko) * | 2018-04-11 | 2019-10-17 | 엘지전자 주식회사 | 인트라 예측에 기반한 영상 코딩 방법 및 그 장치 |
WO2019203487A1 (ko) * | 2018-04-19 | 2019-10-24 | 엘지전자 주식회사 | 인트라 예측에 기반한 영상 코딩 방법 및 그 장치 |
WO2020050607A1 (ko) * | 2018-09-05 | 2020-03-12 | 엘지전자 주식회사 | 크로마 인트라 예측 모드를 도출하기 위한 영상 예측 방법 및 장치 |
US11582482B2 (en) | 2018-12-05 | 2023-02-14 | Lg Electronics Inc. | Image prediction method and device for deriving chroma intra prediction mode |
CN114586350A (zh) | 2019-08-29 | 2022-06-03 | Lg 电子株式会社 | 基于交叉分量自适应环路滤波的图像编译装置和方法 |
KR20220044766A (ko) | 2019-08-29 | 2022-04-11 | 엘지전자 주식회사 | 크로스 컴포넌트 필터링 기반 영상 코딩 장치 및 방법 |
KR20230137250A (ko) * | 2022-03-21 | 2023-10-04 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 장치 |
WO2023200302A1 (ko) * | 2022-04-14 | 2023-10-19 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 장치 |
KR20240053272A (ko) | 2022-10-17 | 2024-04-24 | 주식회사 엘지화학 | 열적 안정성 판단 장치 및 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013034162A (ja) * | 2011-06-03 | 2013-02-14 | Sony Corp | 画像処理装置及び画像処理方法 |
EP2732624A4 (en) * | 2011-07-12 | 2015-07-15 | Intel Corp | LUMBASED CHROMAINTRAPREDICTION |
-
2012
- 2012-11-08 KR KR1020120125858A patent/KR20130050900A/ko not_active Application Discontinuation
-
2021
- 2021-06-18 KR KR1020210079558A patent/KR102409444B1/ko active IP Right Grant
-
2022
- 2022-06-10 KR KR1020220070901A patent/KR102449210B1/ko active IP Right Grant
- 2022-09-26 KR KR1020220121818A patent/KR102489735B1/ko active IP Right Grant
-
2023
- 2023-01-13 KR KR1020230005110A patent/KR102607887B1/ko active IP Right Grant
Non-Patent Citations (3)
Title |
---|
B. Bross, et al. High Efficiency Video Coding (HEVC) text specification draft 6. JCT-VC of ITU-T and ISO/IEC. JCTVC-H1003 Ver.1, Feb. 10, 2012, pp.1-211 |
B. Bross, et al. WD4: Working Draft 4 of High-Efficiency Video Coding. JCT-VC of ITU-T and ISO/IEC. JCTVC-F803 Ver.7, Oct. 28, 2011, pp.1-217* |
J. Lee, et al. Inconsistency of intra LM mode between HM and WD. JCT-VC of ITU-T and ISO/IEC. JCTVC-G419 Ver.3, Nov. 28, 2011, pp.1-7 |
Also Published As
Publication number | Publication date |
---|---|
KR20220083654A (ko) | 2022-06-20 |
KR102607887B1 (ko) | 2023-11-29 |
KR20230165180A (ko) | 2023-12-05 |
KR20220133170A (ko) | 2022-10-04 |
KR102449210B1 (ko) | 2022-09-29 |
KR20210079254A (ko) | 2021-06-29 |
KR20230013146A (ko) | 2023-01-26 |
KR102409444B1 (ko) | 2022-06-15 |
KR20130050900A (ko) | 2013-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102489735B1 (ko) | 인트라 예측 방법 및 그 장치 | |
KR102431537B1 (ko) | 루마 및 크로마 성분에 대한 ibc 전용 버퍼 및 디폴트 값 리프레싱을 사용하는 인코더, 디코더 및 대응하는 방법들 | |
JP2019004491A (ja) | 映像符号化/復号化方法及びその装置 | |
TW201830964A (zh) | 基於在視訊寫碼中之一預測模式導出雙邊濾波器資訊 | |
KR20200112964A (ko) | 변환 도메인에서 잔차 부호 예측 방법 및 장치 | |
CN115244924A (zh) | 跨分量自适应环路滤波器的信令通知 | |
CN113261291A (zh) | 基于多个参数的两步交叉分量预测模式 | |
KR20210125088A (ko) | 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법 | |
JP7486595B2 (ja) | ビデオフィルタリングのための方法及び装置 | |
KR20220080738A (ko) | 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
KR102349435B1 (ko) | 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치 | |
EP4118822A1 (en) | Adaptive non-linear mapping for sample offset | |
KR20220128468A (ko) | 미리 정의된 필터들에 의한 샘플 오프셋 | |
KR20220100991A (ko) | 비디오 필터링 방법 및 장치 | |
CN114747212A (zh) | 用于视频滤波中的偏移的方法和设备 | |
KR20220127308A (ko) | 비디오 코딩을 위한 방법 및 장치 | |
JP2024019652A (ja) | ビデオフィルタリングのための方法および装置 | |
CN116325734A (zh) | 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强 | |
CN113647103A (zh) | 用于基于矩阵的帧内预测技术的量化系数的方法和设备 | |
JP2024510600A (ja) | 一般化サンプルオフセットの適応的適用 | |
KR102722425B1 (ko) | 인트라 예측 방법 및 그 장치 | |
CN117596409A (zh) | 用于处理视频数据的方法、装置以及计算机可读存储介质 | |
JP2018530956A (ja) | 映像の符号化/復号化方法及びそのための装置 | |
WO2013069972A1 (ko) | 인트라 예측 방법 및 그 장치 | |
CN114631313B (en) | Cross-component adaptive loop filter using luminance difference |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right |