KR102543792B1 - 이웃 블록에 기초한 인트라 예측 모드 도출 - Google Patents
이웃 블록에 기초한 인트라 예측 모드 도출 Download PDFInfo
- Publication number
- KR102543792B1 KR102543792B1 KR1020217010709A KR20217010709A KR102543792B1 KR 102543792 B1 KR102543792 B1 KR 102543792B1 KR 1020217010709 A KR1020217010709 A KR 1020217010709A KR 20217010709 A KR20217010709 A KR 20217010709A KR 102543792 B1 KR102543792 B1 KR 102543792B1
- Authority
- KR
- South Korea
- Prior art keywords
- mode
- block
- intra prediction
- prediction mode
- idx
- Prior art date
Links
- 238000009795 derivation Methods 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 239
- 238000012545 processing Methods 0.000 claims description 72
- 238000003860 storage Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 31
- 238000004891 communication Methods 0.000 description 23
- 230000006854 communication Effects 0.000 description 23
- 239000000523 sample Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000013139 quantization Methods 0.000 description 14
- 241000023320 Luma <angiosperm> Species 0.000 description 13
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 9
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 101100102504 Caenorhabditis elegans ver-4 gene Proteins 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- FZEIVUHEODGHML-UHFFFAOYSA-N 2-phenyl-3,6-dimethylmorpholine Chemical compound O1C(C)CNC(C)C1C1=CC=CC=C1 FZEIVUHEODGHML-UHFFFAOYSA-N 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- IESVDEZGAHUQJU-ZLBXKVHBSA-N 1-hexadecanoyl-2-(4Z,7Z,10Z,13Z,16Z,19Z-docosahexaenoyl)-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CC\C=C/C\C=C/C\C=C/C\C=C/C\C=C/C\C=C/CC IESVDEZGAHUQJU-ZLBXKVHBSA-N 0.000 description 1
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 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/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/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/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/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)
Abstract
인트라 예측을 위한 최고 확률 모드(MPM) 리스트를 구성하는 방법으로서, 이 방법은, 현재 코딩 블록의 좌측 블록이 이용 가능한지 여부를 결정하는 단계와, 현재 코딩 블록의 상부 블록이 이용 가능한지 여부를 결정하는 단계와, 조건 중 하나가 만족되면, 평면 모드, DC 모드, 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 수직 모드에 대응하는 인트라 예측 모드, 오프셋 4를 갖는 수직 모드에 대응하는 인트라 예측 모드를 사용하는 단계를 포함한다. MPM 리스트는 코딩 효율을 높이기 위해 픽처 블록의 예측 모드에 대응하는 인덱스 값을 획득하는 데 사용된다.
Description
본 개시는 이미지 및/또는 비디오 코딩 및 디코딩의 기술 분야에 관한 것으로, 특히 인트라 예측 방법 및 장치에 관한 것이다.
DVD 디스크가 도입된 이후 디지털 비디오가 널리 사용되고 있다. 이 비디오는 전송 전에 전송 매체를 사용해서 인코딩되고 전송된다. 시청자는 비디오를 수신하고 시청 장치를 사용해서 비디오를 디코딩하여 표시한다. 예를 들어 해상도, 색상 심도 및 프레임 속도가 더 높아짐으로 인해서, 비디오 품질은 수년간 향상되었다. 이는, 오늘날 일반적으로 인터넷 및 이동 통신 네트워크를 통해서 전송되는 더 큰 데이터 스트림으로 이어졌다.
그러나, 고해상도 비디오는 더 많은 정보를 가지고 있기 때문에 전형적으로 더 많은 대역폭을 필요로 한다. 대역폭 요건을 감소시키기 위해서, 비디오 압축을 포함하는 비디오 코딩 표준이 도입되었다. 비디오가 인코딩되면, 대역폭 요건(또는 스토리지의 경우 대응하는 메모리 요건)이 감소된다. 이와 같이 감소시키면 종종 품질이 희생된다. 따라서, 비디오 코딩 표준은 대역폭 요건과 품질 사이의 균형을 찾으려고 한다.
고효율 비디오 코딩(High Efficiency Video Coding, HEVC)은 당업자에게 일반적으로 알려진 비디오 코딩 표준의 일례이다. HEVC에서는, 코딩 유닛(CU)을 예측 유닛(PU)들 또는 변환 유닛(TU)들로 분할한다. VVC(Versatile Video Coding) 차세대 표준은, JVET(Joint Video Exploration Team)라고 알려진 파트너십에서 공동 작업하는 ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC MPEG(Moving Picture Experts Group) 표준화 조직의 가장 최근 공동 비디오 프로젝트이다. VVC는 ITU-T H.266/NGVC(Next Generation Video Coding) 표준이라고도 한다. VVC에서는, 여러 파티션 타입의 개념이 제거되어야 하며, 즉 최대 변환 길이에 비해서 크기가 너무 크고 CU 파티션 형상에 더 많은 유연성을 지원하는 CU들에 필요한 경우를 제외하면, CU, PU 및 TU 개념을 분리하는 것을 제거해야 한다.
이러한 코딩 유닛(CU)(블록이라고도 함)의 처리는, 인코더가 명시하는 크기, 공간 위치 및 코딩 모드에 따라 달라진다. 코딩 모드는 예측 타입에 따라서, 인트라 예측 모드와 인터 예측 모드의 2가지 그룹으로 분류될 수 있다. 인트라 예측 모드는 동일한 픽처의 샘플(프레임 또는 이미지라고도 함)을 사용해서, 재구성될 블록의 샘플의 예측 값을 계산하기 위한 참조 샘플을 생성한다. 인트라 예측은 공간 예측이라고도 한다. 인터-예측 모드는 시간적 예측을 위해 설계된 것으로, 이전 픽쳐 또는 다음 픽쳐의 참조 샘플을 사용해서 현재 픽처 블록의 샘플을 예측한다.
ITU-T VCEG(Q6/16) 및 ISO/IEC MPEG(JTC 1/SC 29/WG 11)는 현재의 HEVC 표준을 훨씬 능가하는 압축 성능을 가진 미래 비디오 코딩 기술의 표준화에 대한 잠재적 필요성을 연구하고 있다(스크린 콘텐츠 코딩 및 하이-다이나믹-레인지 코딩의 현재의 확장판 및 곧 나올 확장판을 포함함). 이 그룹은, 이 분야의 전문가들이 제안한 압축 기술 설계를 평가하기 위해서 JVET(Joint Video Exploration Team)라고 알려진 협업 활동에서 이러한 탐사 활동을 함께 작업하고 있다.
VTM(Versatile Test Model) 표준은 35개의 인트라 모드를 사용하는 반면, BMS(Benchmark Set)는 67개의 인트라 모드를 사용한다.
현재 BMS에 기술되어 있는 인트라 모드 코딩 방식은 복잡하고, 비선택된 모드 세트의 단점은 인덱스 리스트가 항상 일정해서 현재 블록 속성(예를 들어, 이웃 블록 INTRA 모드)에 기초해서 적응되지 않는다는 것이다.
인트라 예측을 위한 장치 및 방법이 개시된다. 이 장치 및 방법은 코딩 효율을 향상시키기 위해서, 매핑 과정을 사용해서 인트라 예측을 위한 계산 절차를 단순화시킨다. 보호 범주는 청구 범위에 의해 정의된다.
이하 첨부된 도면 및 도면을 참조하면서 실시예를 더 상세하게 설명한다.
도 1은 본 개시의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 예를 나타내는 블록도이다.
도 2는 본 개시의 실시예를 구현하도록 구성된 비디오 인코더의 예를 나타내는 블록도이다.
도 3은 본 개시의 실시예를 구현하도록 구성된 비디오 디코더의 예시적인 구조를 나타내는 블록도이다.
도 4는 제안된 67개의 인트라 예측 모드를 예시하는 개략도를 나타낸다.
도 5는 MPM 도출을 위한 이웃 블록을 예시하는 개략도를 나타낸다.
도 6은 나머지 모드 리스트에서 처음 3개의 모드를 도출하기 위해 사용되는 제 2 계층 이웃 블록 인트라 모드를 예시하는 개략도를 도시한다.
도 7은 나머지 모드 리스트 생성 과정에서 처음 3개의 모드의 예를 예시하는 개략도를 도시한다.
도 8은 비디오 디코딩 방법의 예를 예시하는 개략도를 도시한다.
도 9는 비디오 디코딩 방법의 예를 예시하는 다른 개략도를 도시한다.
도 10은 장치의 블록도를 도시한다.
도 1은 본 개시의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 예를 나타내는 블록도이다.
도 2는 본 개시의 실시예를 구현하도록 구성된 비디오 인코더의 예를 나타내는 블록도이다.
도 3은 본 개시의 실시예를 구현하도록 구성된 비디오 디코더의 예시적인 구조를 나타내는 블록도이다.
도 4는 제안된 67개의 인트라 예측 모드를 예시하는 개략도를 나타낸다.
도 5는 MPM 도출을 위한 이웃 블록을 예시하는 개략도를 나타낸다.
도 6은 나머지 모드 리스트에서 처음 3개의 모드를 도출하기 위해 사용되는 제 2 계층 이웃 블록 인트라 모드를 예시하는 개략도를 도시한다.
도 7은 나머지 모드 리스트 생성 과정에서 처음 3개의 모드의 예를 예시하는 개략도를 도시한다.
도 8은 비디오 디코딩 방법의 예를 예시하는 개략도를 도시한다.
도 9는 비디오 디코딩 방법의 예를 예시하는 다른 개략도를 도시한다.
도 10은 장치의 블록도를 도시한다.
이하 설명에서는 본 개시의 일부를 이루는 첨부 도면을 참조하며, 도면에는 본 개시가 배치될 수 있는 특정한 측면들이 예시로서 도시되어 있다.
예를 들어, 설명된 방법과 관련된 개시 내용은 방법을 수행하도록 구성된 대응하는 장치 또는 시스템에도 성립될 수도 있고, 그 반대의 경우도 마찬가지라는 것을 이해할 것이다. 예를 들어, 특정 방법 단계가 설명된 경우, 대응하는 장치는, 설명된 방법 단계를 수행하기 위한 유닛이 도면에 명시적으로 설명되거나 예시되지 않았다고 해도, 이 유닛을 포함할 수 있다. 또한, 본 명세서에 설명된 다양한 예시적인 측면의 특징은, 별도로 언급하지 않는 한, 서로 결합될 수도 있다는 것을 이해할 것이다.
비디오 코딩은 통상적으로 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 처리를 지칭한다. 픽처, 이미지 또는 프레임이라는 용어는 본 출원에서 뿐만 아니라 비디오 코딩 분야에서 동의어로 사용될 수 있다. 각각의 픽처는 통상적으로 비중첩 블록들의 세트로 분할된다. 픽처의 인코딩/디코딩은 통상적으로 블록 레벨에서 수행되고, 여기서 예를 들어, 인터 프레임 예측 또는 인트라 프레임 예측을 예측 블록을 생성하는데 사용하여, 현재 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 감산함으로써 잔차 블록을 획득하는데, 이 잔차 블록은 추가로 변환 및 양자화되어 송신될 데이터의 양을 감소(압축)시키는 반면, 디코더 측에서는, 역 처리가 인코딩/압축된 블록에 적용되어 표현을 위해 블록을 재구성한다.
도 1은 본 출원(본 개시)의 기술들을 이용할 수 있는 예시적인 코딩 시스템(10), 예를 들어, 비디오 코딩 시스템(10)을 나타내는 개념적인 또는 개략적인 블록도이다. 비디오 코딩 시스템(10)의 인코더(20)(예를 들어, 비디오 인코더(20)) 및 디코더(30)(예를 들어, 비디오 디코더(30))는 본 출원에서 설명된 다양한 예들에 따른 기술들을 수행하도록 구성될 수 있는 장치들의 예들을 나타낸다. 도 1에 도시된 바와 같이, 코딩 시스템(10)은 인코딩된 데이터(13), 예를 들어, 인코딩된 픽처(13)를 예를 들어, 인코딩된 데이터(13)를 디코딩하기 위한 목적지 장치(14)에 제공하도록 구성되는 소스 장치(12)를 포함한다.
소스 장치(12)는 인코더(20)를 포함하고, 추가적으로, 즉, 선택적으로, 픽처 소스(16), 전처리 유닛(18), 예를 들어, 픽처 전처리 유닛(18), 및 통신 인터페이스 또는 통신 유닛(22)을 포함할 수 있다.
픽처 소스(16)는 예를 들어, 현실 세계 픽처를 캡처하기 위한 임의의 종류의 픽처 캡처링 장치, 및/또는 임의의 종류의 픽처 또는 코멘트(스크린 콘텐츠 코딩을 위해, 스크린 상의 일부 텍스트들은 또한 인코딩될 픽처 또는 이미지의 일부로 간주됨) 생성 장치, 예를 들어, 컴퓨터 애니메이션 픽처를 생성하기 위한 컴퓨터 그래픽 프로세서, 또는 현실 세계 픽처를 획득하고 및/또는 제공하기 위한 임의의 종류의 장치, 컴퓨터 애니메이션 픽처(예를 들어, 스크린 콘텐츠, 가상 현실(VR) 픽처) 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(AR) 픽처)을 포함하거나, 이들일 수 있다.
(디지털) 픽처는 강도 값을 갖는 샘플의 2차원 어레이 또는 행렬이거나 그것으로 간주될 수 있다. 이 어레이 내의 샘플은 픽셀(picture element의 줄임말) 또는 펠(pel)이라고도 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)에서의 샘플의 수는 픽처의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 통상적으로 3개의 컬러 성분이 이용되는데, 즉 픽처는 3개의 샘플 어레이를 나타내거나 포함할 수 있다. RBG 포맷 또는 컬러 공간에서, 픽처는 대응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 통상적으로 휘도/색차 포맷 또는 컬러 공간, 예를 들어, YCbCr로 표현되고, 이는 Y로 표시된 휘도 성분(때때로 그 대신에 L이 사용됨) 및 Cb 및 Cr로 표시된 2개의 색차 성분들을 포함한다. 휘도(luminance)(또는 줄임말로 루마) 성분 Y는 밝기 또는 그레이 레벨 강도(예를 들어, 그레이-스케일 픽처에서와 같음)를 나타내는 반면, 2개 의 색차(chrominance)(또는 줄임말로 크로마) 성분 Cb 및 Cr은 색도 또는 컬러 정보 성분들을 나타낸다. 따라서, YCbCr 포맷의 픽처는 휘도 샘플 값들(Y)의 휘도 샘플 어레이, 및 색차 값(Cb 및 Cr)의 2개의 색차 샘플 어레이를 포함한다. RGB 포맷의 픽처는 YCbCr 포맷으로 변환 또는 변형될 수 있고, 그 반대의 경우도 가능하며, 프로세스는 컬러 변환 또는 변형으로도 알려져 있다. 픽처가 흑백이면, 픽처는 휘도 샘플 어레이만을 포함할 수 있다.
픽처 소스(16)(예를 들어, 비디오 소스(16))는 예를 들어, 픽처를 캡처하기 위한 카메라, 이전에 캡처되거나 생성된 픽처를 포함하거나 저장하는 메모리, 예를 들어, 픽처 메모리, 및/또는 픽처를 획득하거나 수신하기 위한 임의의 종류의 인터페이스(내부 또는 외부)일 수 있다. 카메라는 예를 들어, 로컬일 수도 있고 또는 소스 장치에 통합된 통합 카메라일 수 있으며, 메모리는 예를 들어, 로컬일 수도 있고 또는 소스 장치에 통합된 통합 메모리일 수 있다. 인터페이스는 예를 들어, 외부 비디오 소스, 예를 들어, 카메라와 같은 외부 픽처 캡처링 장치, 외부 메모리, 또는 외부 픽처 생성 장치, 예를 들어, 외부 컴퓨터 그래픽 프로세서, 컴퓨터 또는 서버로부터 픽처를 수신하는 외부 인터페이스일 수 있다. 인터페이스는 임의의 종류의 인터페이스, 예를 들어, 유선 또는 무선 인터페이스, 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따른 광 인터페이스일 수 있다. 픽처 데이터(17)를 획득하기 위한 인터페이스는 통신 인터페이스(22)와 동일한 인터페이스 또는 그 일부일 수 있다.
전처리 유닛(18) 및 전처리 유닛(18)에 의해 수행되는 처리와 구별하여, 픽처 또는 픽처 데이터(17)(예를 들어, 비디오 데이터(16))는 로우(raw) 픽처 또는 로우 픽처 데이터(17)로서 또한 지칭될 수 있다.
전처리 유닛(18)은 (로우) 픽처 데이터(17)를 수신하고 픽처 데이터(17)에 대해 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하도록 구성된다. 전처리 유닛(18)에 의해 수행되는 전처리는 예를 들어, 트리밍, (예를 들어, RGB로부터 YCbCr로의) 컬러 포맷 변환, 컬러 보정, 또는 노이즈-제거를 포함할 수 있다. 전처리 유닛(18)은 선택적 컴포넌트일 수 있음을 이해할 수 있다.
인코더(20)(예를 들어, 비디오 인코더(20))는 전처리된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(추가의 세부사항들은 예를 들어, 도 2에 기초하여 이하에서 기술될 것이다).
소스 장치(12)의 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고 그것을 저장 또는 직접 재구성을 위해 다른 장치, 예를 들어, 목적지 장치(14) 또는 임의의 다른 장치에 송신하거나, 또는 인코딩된 데이터(13)를 저장하고 및/또는 인코딩된 데이터(13)를 디코딩 또는 저장하기 위해 다른 장치, 예를 들어, 목적지 장치(14) 또는 임의의 다른 장치에 송신하기 전에 인코딩된 픽처 데이터(21)를 각각 처리하도록 구성될 수 있다.
목적지 장치(14)는 디코더(30)(예를 들어, 비디오 디코더(30))를 포함하고, 추가적으로, 즉, 선택적으로, 통신 인터페이스 또는 통신 유닛(28), 후처리 유닛(32) 및 디스플레이 장치(34)를 포함할 수 있다.
목적지 장치(14)의 통신 인터페이스(28)는 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를, 예를 들어, 소스 장치(12)로부터 직접 또는 임의의 다른 소스, 예를 들어, 저장 장치, 예를 들어, 인코딩된 픽처 데이터 저장 장치로부터 수신하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 소스 장치(12)와 목적지 장치(14) 사이의 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 접속을 통해, 또는 임의의 종류의 네트워크, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 종류의 사설 및 공중 네트워크, 또는 이들의 임의의 종류의 조합을 통해, 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 송신 또는 수신하도록 구성될 수 있다.
통신 인터페이스(22)는 예를 들어, 통신 링크 또는 통신 네트워크를 통한 송신을 위해, 인코딩된 픽처 데이터(21)를 적절한 포맷, 예를 들어, 패킷으로 패키징하도록 구성될 수 있다.
통신 인터페이스(22)의 대응관계를 형성하는 통신 인터페이스(28)는 예를 들어, 인코딩된 데이터(13)를 디패키징하여 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(22)와 통신 인터페이스(28)는 모두 소스 장치(12)로부터 목적지 장치(14)를 가리키는 도 1a에서의 인코딩된 픽처 데이터(13)에 대한 화살표로 나타낸 바와 같은 단방향 통신 인터페이스, 또는 양방향 통신 인터페이스로서 구성될 수 있고, 예를 들어, 통신 링크 및/또는 데이터 송신, 예를 들어, 인코딩된 픽처 데이터 송신과 관련된 임의의 다른 정보를 확인 및 교환하기 위해, 메시지를 전송 및 수신하도록, 예를 들어 접속을 확립하도록 구성될 수 있다.
디코더(30)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(추가적인 세부사항들은 예를 들어, 도 3에 기초하여 후술될 것이다).
목적지 장치(14)의 포스트-프로세서(32)는 디코딩된 픽처 데이터(31)(재구성된 픽처 데이터라고도 칭함), 예를 들어, 디코딩된 픽처(31)를 후처리하여 후처리된 픽처 데이터(33), 예를 들어, 후처리된 픽처(33)를 획득하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는 예를 들어, (예를 들어, YCbCr로부터 RGB로의) 컬러 포맷 변환, 컬러 보정, 트리밍, 또는 리샘플링, 또는 예를 들어, 디스플레이 장치(34)에 의한 디스플레이를 위해 디코딩된 픽처 데이터(31)를 준비하기 위한 임의의 다른 처리를 포함할 수 있다.
목적지 장치(14)의 디스플레이 장치(34)는 예를 들어, 사용자 또는 뷰어에게 픽처를 디스플레이하기 위한 후처리된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 장치(34)는 재구성된 픽처를 나타내기 위한 임의의 종류의 디스플레이, 예를 들어, 통합된 또는 외부 디스플레이 또는 모니터일 수 있거나 이를 포함할 수 있다. 디스플레이는 예를 들어, 액정 디스플레이(LCD), 유기 발광 다이오드(OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, LCoS(liquid crystal on silicon), DLP(digital light processor) 또는 임의의 종류의 다른 디스플레이를 포함할 수 있다.
도 1이 소스 장치(12) 및 목적지 장치(14)를 별개의 장치들로서 도시하고 있지만, 장치들의 실시예들은 또한 양쪽 모두 또는 양쪽 모두의 기능, 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예들에서, 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어를 사용하여 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다.
이 설명에 기초하여 당업자에게 명백해지는 바와 같이, 도 1에 도시된 소스 장치(12) 및/또는 목적지 장치(14) 내의 상이한 유닛들 또는 기능들의 존재와 (정확한) 분리는 실제 장치 및 응용에 따라 달라질 수 있다.
인코더(20)(예를 들어, 비디오 인코더(20)) 및 디코더(30)(예를 들어, 비디오 디코더(30)) 각각은 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 조합과 같은 다양한 적절한 회로 중 어느 하나로서 구현될 수 있다. 기술들이 부분적으로 소프트웨어로 구현되는 경우, 장치는 소프트웨어에 대한 명령어들을 적절한 비일시적 컴퓨터 판독가능 저장 매체에 저장할 수 있고, 본 개시내용의 기술들을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어로 명령어들을 실행할 수 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는) 전술한 것 중 임의의 것이 하나 이상의 프로세서인 것으로 간주될 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있고, 이들 중 어느 하나는 각각의 장치에서 조합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
도 2는 본 출원의 기술들을 구현하도록 구성된 예시적인 비디오 인코더(20)의 개략적인/개념적인 블록도를 도시한다. 도 2의 예에서, 비디오 인코더(20)는 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210), 및 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터 유닛(220), DPB(decoded picture buffer)(230), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(도시되지 않음)을 포함할 수 있다. 도 2에 도시된 비디오 인코더(20)는 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 따른 비디오 인코더라고도 칭할 수 있다.
예를 들어, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하는 반면, 예를 들어, 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), DPB(decoded picture buffer)(230), 예측 처리 유닛(260)은 인코더의 역방향 신호 경로를 형성하며, 인코더의 역방향 신호 경로는 디코더의 신호 경로에 대응한다(도 3의 디코더(30) 참조).
인코더(20)는 예를 들어, 입력(202)에 의해 픽처(201) 또는 픽처(201)의 블록(203), 예를 들어, 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 픽처를 수신하도록 구성된다. 픽처 블록(203)은 또한 현재 픽처 블록 또는 코딩될 픽처 블록이라고 칭할 수 있으며, 픽처(201)는 (특히, 비디오 코딩에서 현재 픽처를 다른 픽처, 예를 들어, 동일한 비디오 시퀀스의 이전에 인코딩된 및/또는 디코딩된 픽처, 즉 현재 픽처를 또한 포함하는 비디오 시퀀스와 구별하기 위해) 현재 픽처 또는 코딩될 픽처라고 칭할 수 있다.
블록 예측 처리 유닛(260)이라고도 지칭되는 예측 처리 유닛(260)은 블록(203)(현재 픽처(201)의 현재 블록(203)) 및 재구성된 픽처 데이터, 예를 들어, 버퍼(216)로부터의 동일한(현재) 픽처의 참조 샘플들 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 또는 복수의 이전에 디코딩된 픽처로부터의 참조 픽처 데이터(231)를 수신또는 획득하고, 예측을 위해 이러한 데이터를 처리하도록, 즉, 인터-예측된 블록(245) 또는 인트라-예측된 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은 잔차 블록(205)의 계산을 위한 그리고 재구성된 블록(215)의 재구성을 위한 예측 블록(265)으로서 사용될 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 대응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
모드 선택 유닛(262)의 실시예는 (예를 들어, 예측 처리 유닛(260)에 의해 지원되는 것들로부터) 예측 모드를 선택하도록 구성될 수 있으며, 이 예측 모드는 최상의 매치, 즉 최소 잔차(최소 잔차는 송신 또는 저장을 위한 보다 양호한 압축을 의미함), 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 송신 또는 저장을 위한 보다 양호한 압축을 의미함)를 제공하거나, 또는 이들 모두를 고려하거나 균형을 유지한다. 모드 선택 유닛(262)은 RDO(rate distortion optimization)에 기초하여 예측 모드를 결정하도록, 즉 최소 레이트 왜곡 최적화를 제공하는 또는 어느 연관된 레이트 왜곡이 예측 모드 선택 기준을 적어도 충족시키는지를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은 인트라 예측 파라미터, 예를 들어, 선택된 인트라 예측 모드에 기초하여 인트라 예측 블록(255)을 결정하도록 추가로 구성된다. 어떤 경우든, 블록에 대한 인트라 예측 모드를 선택한 후에, 인트라 예측 유닛(254)은 또한 인트라 예측 파라미터, 즉 블록에 대한 선택된 인트라 예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛(270)에 제공하도록 구성된다. 일례에서, 인트라 예측 유닛(254)은 후술하는 인트라 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
도 3은 본 출원의 기술들을 구현하도록 구성된 예시적인 비디오 디코더(30)를 도시한다. 비디오 디코더(30)는 예를 들어, 인코더(100)에 의해 인코딩되는 인코딩된 픽처 데이터(예를 들어, 인코딩된 비트스트림)(21)를 수신하여 디코딩된 픽처(331)를 획득하도록 구성된다. 디코딩 프로세스 동안, 비디오 디코더(30)는 비디오 인코더(100)로부터 비디오 데이터, 예를 들어, 인코딩된 비디오 슬라이스의 픽처 블록들 및 연관된 신택스 요소를 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330) 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354), 및 모드 선택 유닛(362)을 포함할 수 있다. 비디오 디코더(30)는 일부 예들에서, 일반적으로 도 2의 비디오 인코더(100)와 관련하여 설명된 인코딩 패스와 상반되는 디코딩 패스를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은 인코딩된 픽처 데이터(21)에 엔트로피 디코딩을 수행하여, 예를 들어, 양자화된 계수들(309) 및/또는 디코딩된 코딩 파라미터들(도 3에 도시되지 않음), 예를 들어, 인터 예측 파라미터들, 인트라 예측 파라미터, 루프 필터 파라미터들, 및/또는 다른 신택스 요소들 중 (디코딩된) 임의의 것 또는 전부를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인터 예측 파라미터들, 인트라 예측 파라미터 및/또는 다른 신택스 요소들을 예측 처리 유닛(360)에 포워딩하도록 추가로 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 요소들을 수신할 수 있다.
역양자화 유닛(310)은 역양자화 유닛(110)과 기능상 동일할 수 있고, 역변환 처리 유닛(312)은 역변환 처리 유닛(112)과 기능상 동일할 수 있으며, 재구성 유닛(314)은 기능 재구성 유닛(114)과 동일할 수 있고, 버퍼(316)는 버퍼(116)와 기능상 동일할 수 있으며, 루프 필터(320)는 루프 필터(120)와 기능상 동일할 수 있고, 디코딩된 픽처 버퍼(330)는 디코딩된 픽처 버퍼(130)와 기능상 동일할 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344)과 인트라 예측 유닛(354)을 포함할 수 있고, 여기서 인터 예측 유닛(344)은 기능상 인터 예측 유닛(144)과 유사할 수 있고, 인트라 예측 유닛(354)은 기능상 인트라 예측 유닛(154)과 유사할 수 있다. 예측 처리 유닛(360)은 통상적으로 블록 예측을 수행하고 및/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예측 관련 파라미터들 및/또는 선택된 예측 모드에 관한 정보를 (명시적으로 또는 암시적으로) 예를 들어, 엔트로피 디코딩 유닛(304)으로부터 수신 또는 획득하도록 구성된다.
비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩될 때, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 현재 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 시그널링된 인트라 예측 모드 및 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 코딩된(즉, B, 또는 P) 슬라이스로서 코딩될 때, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예를 들어, 모션 보상 유닛)은 엔트로피 디코딩 유닛(304)으로부터 수신된 모션 벡터들 및 다른 신택스 요소들에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들(365)을 생성하도록 구성된다. 인터 예측을 위해, 예측 블록들은 참조 픽처 리스트들 중 하나 내의 참조 픽처들 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(330)에 저장된 참조 픽처에 기초한 디폴트 구성 기술들을 사용하여 참조 프레임 리스트들, 즉 리스트 0 및 리스트 1을 구성할 수 있다.
예측 처리 유닛(360)은 모션 벡터 및 다른 신택스 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하도록 구성되고, 예측 정보를 사용하여 디코딩되는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 예측 처리 유닛(360)은 수신된 신택스 요소들 중 일부를 사용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용되는 예측 모드(예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 상태, 및 현재 비디오 슬라이스 내의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
역양자화 유닛(310)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수들을 역양자화(inverse quantize), 즉 역양자화(de-quantize)하도록 구성된다. 역양자화 프로세스는 비디오 슬라이스 내의 각각의 비디오 블록에 대해 비디오 인코더(100)에 의해 계산된 양자화 파라미터의 사용을 포함하여, 양자화의 정도 및 마찬가지로 적용되어야 하는 역양자화의 정도를 결정할 수 있다.
역변환 처리 유닛(312)은 픽셀 도메인에서 잔차 블록들을 생성하기 위해 변환 계수들에 역변환, 예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 적용하도록 구성된다.
재구성 유닛(314)(예를 들어, 합산기(314))은 예를 들어, 재구성된 잔차 블록(313)의 샘플 값들 및 예측 블록(365)의 샘플 값들을 가산함으로써, 역변환 블록(313)(즉, 재구성된 잔차 블록(313))을 예측 블록(365)에 가산하여 샘플 도메인에서 재구성된 블록(315)을 획득하도록 구성된다.
루프 필터 유닛(320)(코딩 루프 내에서 또는 코딩 루프 이후에)은 재구성된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하도록, 예를 들어, 픽셀 전이들을 매끄럽게 하도록, 또는 그렇지 않으면 비디오 품질을 개선하도록 구성된다. 일례에서, 루프 필터 유닛(320)은 후술하는 필터링 기술들의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 디블로킹 필터(de-blocking filter), SAO(sample-adaptive offset) 필터, 또는 다른 필터들, 예를 들어, 양방향 필터 또는 ALF(adaptive loop filter) 또는 샤프닝(sharpening) 또는 스무딩(smoothing) 필터들 또는 협업 필터들과 같은 하나 이상의 루프 필터를 나타내도록 의도된다. 루프 필터 유닛(320)이 인 루프 필터(in loop filter)인 것으로 도 3에 도시되어 있지만, 다른 구성들에서는, 루프 필터 유닛(320)이 포스트 루프 필터(post loop filter)로서 구현될 수 있다.
그 후, 주어진 프레임 또는 픽처 내의 디코딩된 비디오 블록들(321)은 후속 모션 보상을 위해 사용되는 참조 픽처들을 저장하는 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(30)는 사용자에게 제시 또는 보여주기 위해, 예를 들어, 출력(332)을 통해, 디코딩된 픽처(331)를 출력하도록 구성된다.
압축된 비트스트림을 디코딩하기 위해 비디오 디코더(30)의 다른 변형들이 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터링 유닛(320)없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비변환 기반 디코더(30)는 특정 블록들 또는 프레임들에 대해 역변환 처리 유닛(312) 없이 직접 잔차 신호를 역양자화할 수 있다. 다른 구현예에서, 비디오 디코더(30)는 단일 유닛으로 결합된 역양자화 유닛(310) 및 역변환 처리 유닛(312)을 가질 수 있다.
HEVC/H.265 표준에 따르면, 35개의 인트라 예측 모드가 이용가능하다. 도 4에 도시된 바와 같이, 이 세트는 다음의 모드: 평면(Planar) 모드(인트라 예측 모드 인덱스가 0임), DC 모드(인트라 예측 모드 인덱스가 1임), 및 180°범위를 커버하고 도 4에서 흑색 화살표들로 도시된 2 내지 34의 인트라 예측 모드 인덱스 값 범위를 갖는 방향성(각도) 모드를 포함한다. 내추럴 비디오(natural video)에서 제시된 임의의 에지 방향들을 캡처하기 위해, 방향성 인트라 모드의 수는, HEVC에서 사용되는 바와 같이, 33에서 65로 확장된다. 추가적인 방향 모드는 도 4에서 점선 화살표들로 도시되며, 평면(Planar) 모드 및 DC 모드는 동일하게 유지된다. 인트라 예측 모드에 의해 커버되는 범위는 180°보다 넓을 수 있다는 점에 주목할 만한 가치가 있다. 특히, 3 내지 64의 인덱스 값들을 갖는 62개의 방향성 모드는 대략 230°의 범위를 커버하는데, 즉, 몇몇 쌍들의 모드는 반대 방향성을 갖는다. HEVC 기준 모델(HM) 및 JEM 플랫폼들의 경우에, 단지 한 쌍의 각도 모드(즉, 모드 2 및 66) 만이 도 4에 도시된 바와 같이 반대 방향성을 갖는다. 예측자를 구성하기 위해, 종래의 각도 모드는 참조 샘플들을 취하고, (필요한 경우) 이들을 필터링하여 샘플 예측자를 얻는다. 예측자를 구성하는데 필요한 참조 샘플의 수는 보간에 사용되는 필터의 길이에 의존한다(예를 들어, 바이리니어(bilinear) 및 큐빅 필터(cubic filter)들은, 각각, 2 및 4의 길이를 가짐).
도 7은 예를 들어, VVC에 대해 제안된 바와 같이, 67개의 인트라 예측 모드의 예를 도시하며, 67개의 인트라 예측 모드의 복수의 인트라 예측 모드는: 평면 모드(인덱스 0), dc 모드(인덱스 1), 및 인덱스들 2 내지 66을 갖는 각도 모드를 포함하고, 여기서 도 7에서의 좌측 하단 각도 모드는 인덱스 2를 지칭하고, 인덱스들의 넘버링은 인덱스 66이 도 7의 상단 우측 최대 각도 모드일 때까지 증분된다.
도 10은 본 개시내용의 실시예에 따른 네트워크 장치(1300)의 개략도이다. 네트워크 장치(1300)는 본 명세서에 설명된 개시된 실시예들을 구현하기에 적합하다. 네트워크 장치(1300)는 데이터를 수신하기 위한 진입 포트들(1310) 및 수신기 유닛들(Rx)(1320); 데이터를 처리하기 위한 프로세서, 로직 유닛, 또는 중앙 처리 유닛(CPU)(1330); 데이터를 송신하기 위한 송신기 유닛들(Tx)(1340) 및 출구 포트들(1350); 및 데이터를 저장하기 위한 메모리(1360)를 포함한다. 네트워크 장치(1300)는 또한 광학 또는 전기 신호들의 출구 또는 진입을 위해 진입 포트들(1310), 수신기 유닛들(1320), 송신기 유닛들(1340), 및 출구 포트들(1350)에 결합된 광학-전기(OE) 컴포넌트들 및 전기-광학(EO) 컴포넌트들을 포함한다.
프로세서(1330)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(1330)는 하나 이상의 CPU 칩, (예를 들어, 멀티-코어 프로세서로서의) 코어, 필드-프로그램가능한 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 및 디지털 신호 프로세서(DSP)로서 구현될 수 있다. 프로세서(1330)는 진입 포트(1310), 수신기 유닛(1320), 송신기 유닛(1340), 출구 포트(1350), 및 메모리(1360)와 통신한다. 프로세서(1330)는 코딩 모듈(1370)을 포함한다. 코딩 모듈(1370)은 위에서 설명된 개시된 실시예들을 구현한다. 예를 들어, 코딩 모듈(1370)은 다양한 네트워킹 기능을 구현, 처리, 준비, 또는 제공한다. 따라서, 코딩 모듈(1370)의 포함은 네트워크 장치(1300)의 기능성에 실질적인 개선을 제공하고, 네트워크 장치(1300)의 상이한 상태로의 변환에 영향을 미친다. 대안적으로, 코딩 모듈(1370)은 메모리(1360)에 저장되고 프로세서(1330)에 의해 실행되는 명령어들로서 구현된다.
메모리(1360)는 하나 이상의 디스크, 테이프 드라이브, 및 솔리드 스테이트 드라이브를 포함하고, 오버 플로우 데이터 저장 장치로서 사용될 수 있어서, 이러한 프로그램들이 실행을 위해 선택될 때 프로그램들을 저장하고 또한 프로그램 실행 동안 판독되는 명령어들 및 데이터를 저장할 수 있다. 메모리(1360)는 휘발성 및/또는 비휘발성일 수 있고, 판독 전용 메모리(read-only memory)(ROM), 랜덤 액세스 메모리(random-access memory)(RAM), 3진 콘텐츠 어드레스가능 메모리(ternary content-addressable memory)(TCAM), 및/또는 정적 랜덤 액세스 메모리(static random-access memory)(SRAM)일 수 있다.
도 10은 다양한 실시예들을 구현하기 위해 사용될 수 있는 장치(1100)의 블록도이다. 장치(1100)는 도 1에 도시된 소스 장치(102), 또는 도 2에 도시된 비디오 인코더(200), 또는 도 1에 도시된 목적지 장치(104), 또는 도 3에 도시된 비디오 디코더(300)일 수 있다. 추가적으로, 장치(1100)는 설명된 요소들 중 하나 이상을 호스팅할 수 있다. 일부 실시예들에서, 장치(1100)는 스피커, 마이크로폰, 마우스, 터치스크린, 키패드, 키보드, 프린터, 디스플레이 등과 같은 하나 이상의 입출력 장치들을 구비한다. 장치(1100)는 버스에 접속된 하나 이상의 중앙 처리 장치(CPU)(1510), 메모리(1520), 대용량 스토리지(1530), 비디오 어댑터(1540), 및 I/O 인터페이스(1560)를 포함할 수 있다. 버스는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 비디오 버스, 등을 포함하는 임의의 타입의 몇 개의 버스 아키텍처들 중 하나 이상일 수 있다.
CPU(1510)는 임의의 타입의 전자 데이터 프로세서를 가질 수 있다. 메모리(1520)는 SRAM(static random access memory), DRAM(dynamic random access memory), SDRAM(synchronous DRAM), ROM(read-only memory), 그들의 조합 또는 그와 유사한 것과 같은 임의의 타입의 시스템 메모리를 가질 수 있다. 실시예에서, 메모리(1520)는 부트업 시에 사용할 ROM, 및 프로그램 실행 동안 사용할 데이터 및 프로그램 저장용 DRAM을 포함할 수 있다. 실시예들에서, 메모리(1520)는 비-일시적(non-transitory)이다. 대용량 스토리지(1530)는 데이터, 프로그램들 및 다른 정보를 저장하고 데이터, 프로그램들 및 다른 정보를 버스를 통해 액세스 가능하게 하는 임의의 타입의 저장 장치를 포함한다. 대용량 스토리지(1530)는 예를 들어, 솔리드 스테이트 드라이브, 하드 디스크 드라이브, 자기 디스크 드라이브, 광학 디스크 드라이브 또는 그와 유사한 것 중 하나 이상을 포함할 수 있다.
비디오 어댑터(1540) 및 I/O 인터페이스(1560)는 외부 입력 및 출력 장치들을 장치(1100)에 결합하는 인터페이스들을 제공한다. 예를 들어, 장치(1100)는 클라이언트들에게 SQL 커맨드 인터페이스를 제공할 수 있다. 예시된 바와 같이, 입력 및 출력 장치들의 예들은 비디오 어댑터(1540)에 연결된 디스플레이(1590) 및 I/O 인터페이스(1560)에 연결된 마우스/키보드/프린터(1570)의 임의의 조합을 포함한다. 다른 장치들은 장치(1100)에 연결될 수 있고, 추가적인, 또는 더 적은 인터페이스 카드들이 활용될 수 있다. 예를 들어, 직렬 인터페이스 카드(도시되지 않음)는 프린터용 직렬 인터페이스를 제공하기 위해 사용될 수 있다.
장치(1100)는 또한 이더넷 케이블 등과 같은 유선 링크들, 및/또는 액세스 노드들 또는 하나 이상의 네트워크(1580)에 대한 무선 링크들을 포함하는 하나 이상의 네트워크 인터페이스들(1550)을 포함한다. 네트워크 인터페이스(1550)는 장치(1100)가 네트워크들(1580)을 통해 원격 유닛들과 통신할 수 있게 한다. 예를 들어, 네트워크 인터페이스(1550)는 데이터베이스에 통신을 제공할 수 있다. 실시예에서, 장치(1100)는 다른 처리유닛들, 인터넷, 또는 원격 저장 설비들 등과 같은, 원격 장치들과의 통신 및 데이터 처리를 위해 근거리 네트워크 또는 광역 네트워크에 연결된다.
약어 및 용어의 정의
CTU/CTB-코딩 트리 유닛(Coding Tree Unit)/코딩 트리 블록(Coding Tree Block)
CU/CB-코딩 유닛(Coding Unit)/코딩 블록(Coding Block)
PU/PB-예측 유닛(Prediction Unit)/예측 블록(Prediction Block)
TU/TB-변환 유닛(Transform Unit)/변환 블록(Transform Block)
HEVC-고효율 비디오 코딩(High Efficienty Video Coding)
H.264/AVC 및 HEVC와 같은 비디오 코딩 방식은 블록-기반 하이브리드 비디오 코딩의 성공적인 원리에 따라 설계된다. 이 원리를 사용하여, 픽처가 먼저 블록들로 분할되고, 그 후 각각의 블록이 인트라 픽처 또는 인터 픽처 예측을 사용하여 예측된다.
H.261 이후의 여러 비디오 코딩 표준들은 "손실 하이브리드 비디오 코덱들"의 그룹에 속한다(즉, 변환 도메인에서 양자화를 적용하기 위해 샘플 도메인의 공간 및 시간 예측과 2D 변환 코딩을 조합함). 비디오 시퀀스의 각 픽처는 통상적으로 비중첩 블록들의 세트로 분할되며, 코딩은 통상적으로 블록 레벨에서 수행된다. 즉, 인코더에서, 비디오는 통상적으로, 예를 들어, 공간(인트라 픽처) 예측 및 시간(인터 픽처) 예측을 사용하여 예측 블록을 생성하고, 현재 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 감산하여 잔차 블록을 획득하고, 잔차 블록을 변환하고 변환 도메인에서 잔차 블록을 양자화하여 송신될 데이터의 양을 줄임으로써(압축함으로써), 블록(픽처 블록) 레벨에서 처리, 즉 인코딩되는 반면, 디코더에서는 인코더에 비해 역 처리가 인코딩되거나 압축된 블록에 부분적으로 적용되어 표현을 위한 현재 블록을 재구성한다. 또한, 인코더는 디코더 처리 루프를 복제하여, 양쪽 모두가 후속 블록들을 처리, 즉 코딩하기 위해 동일한 예측들(예를 들어, 인트라 예측 및 인터 예측) 및/또는 재구성들을 생성하게 할 것이다.
본 명세서에서 사용되는 바와 같이, 용어 "블록"은 픽처 또는 프레임의 일부일 수 있다. 설명의 편의를 위해, 본 발명의 실시예들은 본 명세서에서 ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC MPEG(Motion Picture Experts Group)의 JCT-VC(Joint Collaboration Team on Video Coding)에 의해 개발된 HEVC(High Efficiency Video Coding) 또는 VVC(Versatile video coding)의 참조 소프트웨어를 참조하여 설명된다. 본 기술분야의 통상의 기술자는 본 발명의 실시예들이 HEVC 또는 VVC에 한정되지 않는다는 것을 이해할 것이다. 이것은 CU, PU, 및 TU를 참조할 수 있다. HEVC에서, CTU는 코딩 트리로서 표시된 쿼드-트리 구조를 사용하여 CU로 분할된다. 인터 픽처(시간) 또는 인트라 픽처(공간) 예측을 사용하여 픽처 영역을 코딩할지의 결정은 CU 레벨에서 이루어진다. 각각의 CU는 PU 분할 타입에 따라 1개, 2개 또는 4개의 PU로 추가로 분할될 수 있다. 하나의 PU 내부에서는, 동일한 예측 프로세스가 적용되고 관련 정보가 PU 기준으로 디코더에 송신된다. PU 분할 타입에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후에, CU는 CU에 대한 코딩 트리와 유사한 다른 쿼드트리 구조에 따라 변환 유닛(TU)들로 분할될 수 있다. 비디오 압축 기술의 최신의 개발에서는, 코딩 블록을 분할하기 위해 QTBT(Quad-tree and binary tree) 분할이 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형 형상을 가질 수 있다. 예를 들어, CTU(coding tree unit)가 쿼드트리 구조에 의해 먼저 분할된다. 쿼드트리 리프 노드(quadtree leaf node)들은 이진 트리 구조에 의해 추가로 분할된다. 이진 트리 리프 노드들은 코딩 유닛(CU)들이라고 불리며, 그 세그먼트화는 어떠한 추가적인 분할 없이도 예측 및 변환 처리에 사용된다. 이는 CU, PU 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. 병렬로, 다수의 분할, 예를 들어, 트리플 트리 분할이 또한 QTBT 블록 구조와 함께 사용되도록 제안되었다.
ITU-T VCEG(Q6/16) 및 ISO/IEC MPEG(JTC1/SC29/WG11)은 현재 HEVC 표준(스크린 콘텐츠 코딩 및 높은 동적 범위 코딩을 위한 그것의 현재 확장들 및 단기 확장들을 포함함)의 압축 능력을 상당히 초과하는 압축 능력을 갖는 미래의 비디오 코딩 기술의 표준화에 대한 잠재적인 필요성을 연구하고 있다. 그룹들은, 이 분야에서 그들의 전문가들에 의해 제안된 압축 기술 설계들을 평가하기 위해 JVET(Joint Video Exploration Team)로서 알려진 공동 협력 작업에서 이러한 탐구 활동에 대해 함께 작업하고 있다.
VTM(Versatile Test Model)은 35개의 인트라 모드를 사용하는 반면 BMS(Benchmark Set)는 67개의 인트라 모드를 사용한다. 67개의 인트라 모드를 코딩하기 위해, BMS에서의 현재 인트라 모드 코딩 방식은 하기의 방법을 사용한다:
BMS에서 증가된 개수의 방향성 인트라 모드를 수용하기 위해, 6개의 MPM(Most Probable Mode)을 갖는 인트라 모드 코딩 방법이 사용된다. 2개의 주요 기술적 양태들이 수반된다.
1) 6개의 MPM의 도출, 및
2) 6개의 MPM 및 비-MPM 모드의 엔트로피 코딩.
BMS에서, MPM 리스트들에 포함된 모드는 3개의 그룹: 이웃 인트라 모드(Neighbor intra modes), 도출된 인트라 모드(Derived intra modes), 및 디폴트 인트라 모드(Default intra modes)로 분류된다.
5개의 이웃 인트라 예측 모드가 MPM 리스트를 형성하는데 사용된다. 5개의 이웃 블록의 위치는 병합 모드에서 사용되는 것들, 즉, 도 5에 도시된 바와 같은 좌측(L), 상부(A), 하부 좌측(BL), 상부 우측(AR), 및 상부 좌측(AL)과 동일하다. 5개의 이웃 인트라 모드, 평면 및 DC 모드를 MPM 리스트에 삽입함으로써 초기 MPM 리스트가 형성된다. 고유 모드만이 MPM 리스트에 포함되도록 중복된 모드를 제거하기 위해 프루닝 프로세스(pruning process)가 사용된다. 초기 모드가 포함되는 순서는 좌측, 상부, 평면, DC, 하부 좌측, 상부 우측 및 상부 좌측이다.
MPM 리스트가 가득 차 있지 않은 경우(즉, 리스트에서 6개 미만의 MPM 후보를 갖는 경우), 도출된 모드가 추가되고, 이러한 인트라 모드는 MPM 리스트에 이미 포함된 각도 모드에 -1 또는 +1을 가산함으로써 획득된다. 도출은 비-각도 모드, 즉, DC 또는 평면에 적용되지 않는다.
마지막으로, MPM 리스트가 여전히 완료되지 않은 경우, 디폴트 모드가 수직, 수평, 인트라 모드 2, 및 대각선 모드의 순서로 추가된다. 이 프로세스의 결과로서, 6개의 MPM 모드의 고유 리스트가 생성된다.
6개의 MPM의 엔트로피 코딩을 위해, MPM의 절단된 단항 이진화(truncated unary binarization)가 사용된다. 처음 3개의 빈(bins)은 현재 시그널링되고 있는 빈과 관련된 MPM 모드에 의존하는 컨텍스트들로 코딩된다. MPM 모드는 3개의 카테고리: (a) 모드가 수평(MPM 모드가 대각선 방향 이하인지), (b) 수직(대각선 방향보다 더 큰 MPM 모드), 또는 (c) 비-각도(DC 및 평면) 클래스에 속하는지 중 하나로 분류된다. 따라서, 3개의 컨텍스트가 MPM 인덱스를 시그널링하는데 사용된다.
나머지 61개의 비-MPM의 코딩은 다음과 같이 행해진다. 61개의 비-MPM은 먼저 2개의 세트: 선택된 모드 세트 및 비선택된 모드 세트로 분할된다. 선택된 모드 세트는 16개의 모드를 포함하고 나머지(45개의 모드)는 비선택된 모드 세트에 할당된다. 현재 모드가 속하는 모드 세트는 플래그와 함께 비트스트림에 표시된다. 그 후, 선택된 세트로부터의 모드는 4비트 고정 길이 코드로 시그널링되고, 비선택된 세트로부터의 모드는 절단된 이진 코드로 코딩된다. 선택된 모드 세트는 다음과 같이 총 61개의 비-MPM을 인덱스들로 서브-샘플링함으로써 생성된다:
선택된 모드 세트={0, 4, 8, 12, 16, 20 ... 60}
비선택된 모드 세트={1, 2, 3, 5, 6, 7, 9, 10 ... 59}
상이한 인트라 모드 시그널링 메커니즘의 요약이 표 1에 도시되어 있다.
인트라 예측 모드 | MPM 플래그 | 선택된 플래그 | 빈 스트링 |
MPM 모드(6) | 0 | ||
10 | |||
110 | |||
1110 | |||
11110 | |||
11111 | |||
선택된 모드(16) | 0 | 1 | 4 비트 고정된 길이 코드 |
비선택된 모드(45) | 0 | 0 | 절단된 2진 코드 |
표 1: BMS에서의 현재 루마(LUMA) 인트라 모드 시그널링다른 예에서, 3개의 MPM(Most Probable Mode)을 갖는 인트라 모드 코딩 방법이 사용된다. 일례에서, 신택스 요소들 intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] 및 intra_luma_mpm_remainder[ x0 ][ y0 ]는 루마 샘플들에 대한 인트라 예측 모드를 명시한다. 어레이 인덱스들 x0, y0은 픽처의 상부 좌측 루마 샘플과 관련하여 고려된 예측 블록의 상부 좌측 루마 샘플의 위치(x0, y0)를 명시한다. intra_luma_mpm_flag[ x0 ][ y0 ]가 1일 때, 인트라 예측 모드는 이웃 인트라-예측된 예측 유닛으로부터 추론된다.
현재 블록에 대한 인트라 예측(IntraPredModeY[ xPb ][ yPb ])은 다음의 순서화된 단계들에 의해 도출된다:
이웃 위치들(xNbA, yNbA) 및(xNbB, yNbB)은 각각 (xPb-1, yPb) 및(xPb, yPb-1)과 동일하게 설정된다.
X가 A 또는 B로 대체되는 경우, 변수 candIntraPredModeX는 다음과 같이 도출된다:
블록에 대한 가용성 도출 프로세스는 입력들로서 (xPb, yPb)와 동일하게 설정된 위치(xCurr, yCurr) 및 (xNbX, yNbX)와 동일하게 설정된 이웃 위치(xNbY, yNbY)로 호출되고, 출력은 availableX에 할당된다.
후보 인트라 예측 모드 candIntraPredModeX는 다음과 같이 도출된다:
하기 조건들 중 하나 이상이 참인 경우, candIntraPredModeX는 INTRA DC와 동일하게 설정된다.
변수 availableX는 FALSE와 동일하다.
CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
X는 B와 동일하고, yPb-1은 ((yPb >> CtbLog2SizeY) << CtbLog2SizeY)보다 작다.
그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
x=0..2인 candModeList[ x ]는 다음과 같이 도출된다:
candIntraPredModeB가 candIntraPredModeA와 동일한 경우, 다음을 적용한다:
candIntraPredModeA가 2보다 작은 경우(즉, INTRA_PLANAR 또는 INTRA_DC와 동일한 경우), x=0..2인 candModeList[ x ]가 다음과 같이 도출된다:
candModeList[ 0 ]=INTRA_PLANAR
candModeList[ 1 ]=INTRA_DC
candModeList[ 2 ]=INTRA_ANGULAR50
그렇지 않으면, x=0..2인 candModeList[ x ]는 다음과 같이 도출된다:
candModeList[ 0 ]=candIntraPredModeA
candModeList[ 1 ]=2+((candIntraPredModeA+61) % 64)
candModeList[ 2 ]=2+((candIntraPredModeA-1) % 64)
그렇지 않으면(candIntraPredModeB가 candIntraPredModeA와 동일하지 않으면), 다음을 적용한다:
candModeList[ 0 ] 및 candModeList[ 1 ]은 다음과 같이 도출된다:
candModeList[ 0 ]=candIntraPredModeA
candModeList[ 1 ]=candIntraPredModeB
candModeList[ 0 ]과 candModeList[ 1 ] 중 어느 것도 INTRA_PLANAR과 동일하지 않으면, candModeList[ 2 ]는 INTRA_PLANAR과 동일하게 설정되고,
그렇지 않으면, candModeList[ 0 ]과 candModeList[ 1 ] 중 어느 것도 INTRA_DC와 동일하지 않으면, candModeList[ 2 ]는 INTRA_DC와 동일하게 설정된다.
그렇지 않으면, candModeList[ 2 ]는 INTRA_ANGULAR50과 동일하게 설정된다.
IntraPredModeY[ xPb ][ yPb ]는 다음의 절차를 적용함으로써 도출된다:
intra_luma_mpm_flag[ xPb ][ yPb ]가 1과 동일한 경우, IntraPredModeY[ xPb ][ yPb ]는 candModeList[intra_luma_mpm_idx[ xPb ][ yPb ] ]와 동일하게 설정된다.
그렇지 않으면, IntraPredModeY[ xPb ][ yPb ]는 다음의 순서화된 단계들을 적용함으로써 도출된다:
어레이 candModeList[ x ], x=0..2는 다음의 순서화된 단계들에 의해 수정된다:
candModeList[ 0 ]이 candModeList[ 1 ]보다 클 때, 양쪽 값들은 다음과 같이 스와핑된다:
(candModeList[ 0 ], candModeList[ 1 ])=Swap(candModeList[ 0 ], candModeList[ 1 ])
candModeList[ 0 ]이 candModeList[ 2 ]보다 클 때, 양쪽 값들은 다음과 같이 스와핑된다:
(candModeList[ 0 ], candModeList[ 2 ])=Swap(candModeList[ 0 ], candModeList[ 2 ])
candModeList[ 1 ]이 candModeList[ 2 ]보다 클 때, 양쪽 값들은 다음과 같이 스와핑된다:
(candModeList[ 1 ], candModeList[ 2 ])=Swap(candModeList[ 1 ], candModeList[ 2 ]) IntraPredModeY[ xPb ][ yPb ]는 다음의 순서화된 단계들에 의해 도출된다:
IntraPredModeY[ xPb ][ yPb ]는 intra_luma_mpm_remainder[ xPb ][ yPb ]와 동일하게 설정된다.
i가 0 내지 2(포함)와 동일한 경우, IntraPredModeY[ xPb ][ yPb ]가 candModeList[ i ]보다 크거나 같을 때, IntraPredModeY[ xPb ][ yPb ]의 값은 1씩 증분된다.
본 출원의 일 구현 형태에서, 프레임은 픽처와 동일하다.
본 개시의 일 측면에서, 최고 확률 모드(Most Probable Mode, MPM) 리스트를 구성하는 방법이 개시되며, 이 방법은:
현재 코딩 블록의 좌측 블록이 이용가능한지의 여부를 결정하고, 현재 코딩 블록의 좌측 블록이 이용가능한 경우, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계;
현재 코딩 블록의 상부 블록이 이용가능한지의 여부를 결정하고, 현재 코딩 블록의 상부 블록이 이용가능한 경우, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계;
평면 모드가 MPM 리스트에 포함되어 있지 않으면, 평면 모드를 MPM 리스트에 추가하는 단계; 및
DC 모드가 MPM 리스트에 포함되어 있지 않으면, DC 모드를 MPM 리스트에 추가하는 단계를 포함한다.
본 출원의 일 구현 형태에서, 현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한다.
본 출원의 일 구현 형태에서, 현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 MPM 리스트에 포함되어 있으면, "추가"가 수행되었거나 또는 "추가" 프로세스의 결과가 MPM 리스트를 변경하지 않는다고 말할 수 있다.
본 출원의 일 구현 형태에서, 좌측 블록의 예측 모드가 인트라 예측 모드가 아닐 때, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 현재 코딩 블록이 프레임의 가장 좌측에 위치한 코딩 블록일 때, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되고 현재 코딩 블록은 타일의 가장 좌측에 위치하는 코딩 블록이고, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되지 않고, 현재 코딩 블록은 타일의 가장 좌측에 위치하지만 프레임의 가장 좌측에 위치하지 않는 코딩 블록이며, 현재 코딩 블록의 좌측 블록은 이용가능하다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되고 현재 코딩 블록은 슬라이스의 가장 좌측에 위치하는 코딩 블록이고, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되지 않고, 현재 코딩 블록은 슬라이스의 가장 좌측에 위치하지만 프레임의 가장 좌측에 위치하지 않는 코딩 블록이며, 현재 코딩 블록의 좌측 블록은 이용가능하다.
본 출원의 일 구현 형태에서, 상부 블록의 예측 모드가 인트라 예측 모드가 아닐 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 현재 코딩 블록이 프레임의 최상부 측에 위치하는 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되고 현재 코딩 블록은 타일의 최상부 측에 위치하는 코딩 블록이고, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되지 않고 현재 코딩 블록은 타일의 최상부 측에 위치하지만 프레임의 최상부 측에 위치하지 않는 코딩 블록이고, 현재 코딩 블록의 상부 블록은 이용가능하다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되고 현재 코딩 블록은 슬라이스의 최상부 측에 위치하는 코딩 블록이고, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 병렬 처리가 지원되지 않고 현재 코딩 블록은 슬라이스의 최상부 측에 위치하지만 프레임의 최상부 측에 위치하지 않는 코딩 블록이고, 현재 코딩 블록의 상부 블록은 이용가능하다.
본 출원의 일 구현 형태에서, 라인 버퍼 크기가 제약되고 현재 코딩 블록이 현재 CTU의 최상부 측에 위치하는 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
본 출원의 일 구현 형태에서, 현재 코딩 블록이 프레임의 가장 좌측에 위치하지 않는 코딩 블록일 때, 현재 코딩 블록의 좌측 블록은 이용가능하다.
본 출원의 일 구현 형태에서, 현재 코딩 블록이 프레임의 최상단 측에 위치하지 않는 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하다.
본 출원의 일 구현 형태에서, 이러한 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, VER_IDX에 대응하는 값은 50이고; HOR_IDX에 대응하는 값은 18이며; VDIA_IDX에 대응하는 값은 66이고, 이 값은 각도 모드에 대응하는 값들 중에서 가장 큰 값일 수 있고; 인트라 모드 2에 대응하는 값 2는 각도 모드에 대응하는 값들 중에서 가장 작은 값일 수 있으며; DIA_IDX에 대응하는 값은 34이다.
본 출원의 일 구현 형태에서, MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드 (DIA_IDX) 또는 인트라 모드 2(2)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드2(2)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함한다.
본 출원의 일 구현 형태에서, 오프셋 -4을 갖는 VER_IDX에 대응하는 인트라 예측 모드가 VER_IDX에 대응하는 값을 사용해서 오프셋 -4을 추가하고 대응하는 인트라 예측 모드의 값을 획득하며, 예를 들어, VER_IDX의 값이 50일 때, 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드는 인트라 예측 모드 46이고, 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드는 인트라 예측 모드 54이다. 오프셋을 갖는 다른 예들은 이 예와 유사한 프로세스를 갖는다.
-1 또는 +1 또는 다른 오프셋 값들을 수행할 때, 랩 업 및 랩 다운 동작을 수반할 수 있는데, 예를 들어, 인트라 모드 (2)의 값이 2(각도 모드들에 대응하는 값들 중에서 가장 작은 값)일 때, 인트라 모드 (2)-1은 66(랩 업경우)일 것이고, 또는 VDIA_IDX의 값이 66(각도 모드들에 대응하는 값들 중에서 가장 큰 값)일 때, VDIA_IDX+1은 2일 것이라는(랩 다운 경우) 점에 유의한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면,
인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 다음 인트라 예측 모드의 세트들 중 하나를 포함한다:
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 +1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1를 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 1를 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1를 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VDIA_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VDIA_IDX에 대응하는 인트라 예측 모드.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함하고;
인트라 예측 모드의 세트는 다음 인트라 예측 모드의 세트들 중 하나를 포함한다:
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 +1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VDIA_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -4를 갖는 VDIA_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VDIA_IDX에 대응하는 인트라 예측 모드; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 1을 갖는 VER_IDX에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 VDIA_IDX에 대응하는 인트라 예측 모드.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 (제 1 인트라 예측 모드로서의) 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 상부 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 다음 인트라 예측 모드의 세트들 중 하나를 포함한다:
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -4를 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 오프셋 4를 갖는 HOR_IDX; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드; 또는
(제 1 인트라 예측 모드로서의) 수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함하고; 인트라 예측 모드의 세트는 다음 인트라 예측 모드의 세트들 중 하나를 포함한다:
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -4를 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 인트라 모드 2(2)에 대응하는 인트라 예측 모드.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드의 세트는 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 포함하는 인트라 예측 모드의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 인트라 예측 모드를 MPM 리스트에 추가하는 것은 인트라 예측 모드에 대응하는 값을 MPM 리스트에 추가하는 것이라는 점이 이해될 수 있다.
본 출원의 일 구현 형태에서, 임계값은 6이다.
본 출원의 일 양태에서, 인코더는 상기 방법들을 수행하기 위한 처리 회로를 포함한다.
본 출원의 일 양태에서, 디코더는 상기 방법들을 수행하기 위한 처리 회로를 포함한다.
본 출원의 일 양태에서, 컴퓨터 프로그램 제품은 상기 방법들을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품을 포함한다.
본 출원의 일 양태에서, 최고 확률 모드(MPM) 리스트를 구성하기 위한 디코더는: 하나 이상의 프로세서; 및 프로세서에 연결되고 프로세서에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그램은, 프로세서에 의해 실행될 때, 상기 방법을 수행하도록 디코더를 구성한다.
본 출원의 일 양태에서, 최고 확률 모드(MPM) 리스트를 구성하기 위한 인코더는: 하나 이상의 프로세서; 및 프로세서에 연결되고 프로세서에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그램은, 프로세서에 의해 실행될 때, 상기 방법을 수행하도록 인코더를 구성한다.
일례에서,
단계 1: 현재 코딩 블록의 좌측 블록이 이용가능한지의 여부를 결정한다.
현재 코딩 블록의 좌측 블록이 이용가능한 경우, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한다. MPM 리스트는 빈 리스트일 수 있고, 현재 코딩 블록의 좌측 블록이 이용가능한 경우, 좌측 블록의 인트라 예측 모드는 MPM 리스트에 추가되고, 그 후 MPM 리스트는 하나의 인트라 예측 모드를 포함하고; 현재 코딩 블록의 좌측 블록이 이용가능하지 않은 경우, MPM 리스트는 여전히 단계 1이후에 빈 리스트이다.
단계 2: 현재 코딩 블록의 상부 블록이 이용가능한지의 여부를 결정한다.
현재 코딩 블록의 상부 블록이 이용가능한 경우, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한다. MPM 리스트는 좌측 블록의 인트라 예측 모드 또는 여전히 빈 리스트를 포함할 수 있다.
현재 코딩 블록의 상부 블록이 이용가능하고 MPM 리스트가 좌측 블록의 인트라 예측 모드를 포함하면, 상부 블록의 인트라 예측 모드가 좌측 블록의 인트라 예측 모드와 동일한지를 추가로 결정하고, 이들이 동일하면, "상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하는" 단계의 결과는 MPM 리스트에서 인트라 예측 모드의 수량을 변경하지 않고, MPM 리스트는 하나의 인트라 예측 모드만을 포함하고; 상부 블록의 인트라 예측 모드가 좌측 블록의 인트라 예측 모드와 동일하지 않으면, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하고 그 후 MPM 리스트는 2개의 인트라 예측 모드들을 포함한다.
현재 코딩 블록의 상부 블록이 이용가능하고 MPM 리스트가 여전히 빈 리스트이면, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하고, MPM 리스트는 하나의 인트라 예측 모드만을 포함한다.
현재 코딩 블록의 상부 블록이 이용가능하지 않고 MPM 리스트가 좌측 블록의 인트라 예측 모드를 포함하는 경우, MPM 리스트는 여전히 좌측 블록의 인트라 예측 모드만을 포함할 것이다.
현재 코딩 블록의 상부 블록이 이용가능하지 않고 MPM 리스트가 여전히 빈 리스트이면, MPM 리스트는 여전히 빈 리스트일 것이다.
단계 3: 평면 모드가 MPM 리스트에 있지 않으면, 평면 모드를 MPM 리스트에 추가한다.
단계 2 이후에, MPM 리스트가 평면 모드를 포함하고 있지 않으면, 평면 모드를 MPM 리스트에 추가한다.
좌측 블록의 인트라 예측 모드와 상부 블록의 인트라 예측 모드 양쪽 모두가 이용가능하지 않거나, 또는 이용가능한 인트라 예측 모드가 평면 모드가 아니면, MPM 리스트는 평면 모드를 포함하지 않는다.
평면 모드가 MPM 리스트에 있는 경우, 단계 4로 진행한다.
단계 4: DC 모드가 MPM 리스트에 있지 않은 경우, DC 모드를 MPM 리스트에 추가한다.
단계 2 또는 단계 3 이후에, MPM 리스트가 DC 모드를 포함하고 있지 않으면, DC 모드를 MPM 리스트에 추가한다.
좌측 블록의 인트라 예측 모드와 상부 블록의 인트라 예측 모드 양쪽 모두가 이용가능하지 않거나, 또는 이용가능한 인트라 예측 모드가 DC 모드가 아니면, MPM 리스트는 DC 모드를 포함하지 않는다.
DC 모드가 MPM 리스트에 있는 경우, 다음 단계들로 진행하거나 또는 MPM 리스트 구성을 완료한다.
본 출원의 일 구현 형태에서, 각각의 단계에서, 예측 모드를 MPM 리스트에 추가하는 프로세스는 MPM 리스트에 중복된 예측 모드가 없는지를 확인할 필요가 있다. 따라서, MPM 리스트에 추가될 필요가 있는 인트라 예측 모드가 MPM 리스트 내의 하나의 인트라 예측 모드와 동일하면, "추가" 프로세스는 MPM 리스트를 변경하지 않거나 또는 "추가" 프로세스는 수행되지 않는다.
본 출원의 일 구현 형태에서, 단계 4 이후에, 각도 모드가 존재하는 경우에만, 각도-1, 각도+1을 행한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 6이면. 단계 4 이후에, MPM의 길이에 관한 3개의 경우가 존재한다.
경우 1: MPM 길이는 2이고: →L과 A 둘 다 각도(>DC)가 없거나 이용가능하지 않고, 평면과 DC만이 →4개의 디폴트 모드 모두를 사용한다.
경우 2: MPM 길이는 3이고: →L과 A 중 하나는 각도가 있거나, 또는 이들은 동일한 각도이다. →하나의 디폴트 모드를 사용한다.
경우 3: MPM 길이는 4이고: →L과 A 둘 다 각도가 있고, 이들은 상이하고 →L-1, L+1 중 적어도 하나가 추가될 것이므로 어떠한 디폴트 모드도 사용되지 않는다. 이들 중 하나가 위의 (diff(L-A)=1)의 복제이면, A-1 및 A+1 중 적어도 하나가 추가로 삽입될 것이다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하고 좌측 블록의 인트라 예측 모드가 각도 모드이면, 좌측 블록의 예측 모드에 오프셋을 가산하여 새로운 예측 모드를 획득하고, 새로운 예측 모드가 MPM 리스트에 있지 않으면, 새로운 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
다른 예에서, MPM 리스트는 6개의 인트라 예측 모드를 포함하는데, 위의 4개의 단계는 가장 큰 경우에 4개의 인트라 예측 모드만을 획득할 수 있기 때문이다. 본 방법은:
단계 5: 현재 코딩 블록의 좌측 블록이 이용가능하고 좌측 블록의 인트라 예측 모드가 각도 모드이면, 좌측 블록의 예측 모드에 오프셋을 가산하여 새로운 예측 모드를 획득하고, 새로운 예측 모드가 MPM 리스트에 있지 않으면, 새로운 예측 모드를 MPM 리스트에 추가한다.
예를 들어, 현재 코딩 블록의 좌측 블록이 각도 모드 27이고(이러한 각도 인트라 예측 모드에 대응하는 값은 27임), 위의 4개의 단계 이후의 MPM 리스트가 (27, 15, 0, 1)인 경우, 좌측 블록의 예측 모드에 오프셋을 가산하여 새로운 예측 모드를 획득하고, 새로운 예측 모드가 MPM 리스트에 있지 않은 경우, 새로운 예측 모드를 MPM 리스트에 추가한다. 일례에서, 오프셋은 -1이고, 따라서 새로운 예측 모드는 26이고 업데이트된 MPM 리스트는 (27, 15, 0, 1, 26)이다. 다른 예에서, 오프셋은 1이고, 따라서 새로운 예측 모드는 28이고 업데이트된 MPM 리스트는 (27, 15, 0, 1, 28)이다. 다른 예에서, 단계 5는 좌측 블록의 인트라 예측 모드에 2개의 오프셋을 가산할 수 있는데, 먼저 -1을 더하고, 그 후 1을 더하거나, 또는 먼저 1을 더하고 그 후 -1을 더함으로써, 업데이트된 MPM 리스트는 (27, 15, 0, 1, 26, 28) 또는 (27, 15, 0, 1, 28, 26)일 수 있다.
단계 5 이후에, MPM 리스트가 가득 차 있는지를 체크한다(MPM 리스트 내의 인트라 예측 모드들의 수가 임계값과 동일하면, 예를 들어, 임계값이 6이면, MPM 리스트는 가득 차 있다. MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, MPM 리스트는 가득 차 있지 않다). MPM 리스트가 가득 찼다면, MPM 리스트 구성을 완료하고; MPM 리스트가 가득 차지 않았다면, 다음 단계들로 진행한다.
그리고 현재 코딩 블록의 좌측 블록이 이용가능하지 않다면, 단계 5는 수행되지 않고 다음 단계들로 진행한다.
각도 예측 모드에 오프셋(예를 들어, -1 또는 +1)을 가산할 때, 랩 업 및 랩 다운 동작을 수반할 수 있는데, 예를 들어, 각도 예측 모드 angularLeft가 2이면, angularLeft-1은 66일 것(랩 업 경우)이고, 또는 angularLeft가 66이면, angularLeft+1은 2일 것(랩 다운 경우)이라는 점에 유의한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 각도 모드이면, 상부 블록의 예측 모드에 오프셋을 가산하여 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드가 MPM 리스트에 있지 않으면, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
일례에서, 본 방법은:
단계 6: 현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 각도 모드이면, 상부 블록의 예측 모드에 오프셋을 가산하여 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드가 MPM 리스트에 있지 않으면, 새로운 예측 모드를 MPM 리스트에 추가한다.
예를 들어, 현재 코딩 블록의 상부 블록이 각도 모드 26이고(이러한 각도 인트라 예측 모드에 대응하는 값은 26임), 위의 5개의 단계 이후의 MPM 리스트가 (27, 26, 0, 1, 28)인 경우, 좌측 블록의 예측 모드에 오프셋을 가산하여 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드가 MPM 리스트에 있지 않으면, 상부 오프셋 예측 모드를 MPM 리스트에 추가한다. 일례에서, 오프셋은 -1이고, 따라서 상부 오프셋 예측 모드는 25이고 업데이트된 MPM 리스트는 (27, 26, 0, 1, 28, 25)이다. 다른 예에서, 오프셋은 1이므로, 모드 27이 삽입되었기 때문에, 상부 오프셋 예측 모드는 27이고, 상부 오프셋 모드 27의 삽입은 차단된다. 다른 예에서, MPM 리스트가 가산된 1개의 오프셋 이후에 여전히 가득 차 있지 않은 경우, 단계 6은 상부 블록의 인트라 예측 모드에 2개의 오프셋을 가산할 수 있는데, 먼저 -1을 더하고 그 후 1을 더하거나, 또는 먼저 1을 더하고 그 후 -1을 더한다.
그리고 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 단계 6이 수행되지 않고 다음 단계들로 진행한다. 단계 6이후에, MPM 리스트가 가득 차 있는지를 체크한다(MPM 리스트 내의 인트라 예측 모드들의 수량은 6과 동일하다). MPM 리스트가 가득 찼다면, MPM 리스트 구성을 완료하고; MPM 리스트가 가득 차 있지 않다면(MPM 리스트 내의 인트라 예측 모드들의 수가 6 미만임), 다음 단계들로 진행한다.
본 출원의 일 구현 형태에서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면(예를 들어, 임계값이 6이면), 디폴트 리스트를 사용하여 MPM 리스트를 구성하는 단계를 더 포함한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, 디폴트 리스트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, 디폴트 리스트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX 또는 오프셋 4를 갖는 VER_IDX를 포함한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, 디폴트 리스트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX 또는 오프셋 -4를 갖는 VER_IDX를 포함한다.
일례에서, 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, 디폴트 리스트는 다음을 포함한다:
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2); 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX, 오프셋 1을 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VER_IDX, 및 오프셋 4를 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VDIA_IDX, 및 오프셋 -1을 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -4를 갖는 VDIA_IDX, 오프셋 +1을 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VDIA_IDX, 및 오프셋 -1을 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VDIA_IDX, 및 오프셋 1을 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX, 및 오프셋 -4를 갖는 VDIA_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 1을 갖는 VER_IDX, 및 오프셋 -4를 갖는 VDIA_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 -1을 갖는 VER_IDX, 오프셋 -1을 갖는 VDIA_IDX; 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 오프셋 1을 갖는 VER_IDX, 및 오프셋 -1을 갖는 VDIA_IDX.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록은 이용가능하지 않다면, 디폴트 리스트는:
수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고, 현재 코딩 블록의 상부 블록이 이용가능하면, 디폴트 리스트는 다음을 포함한다:
수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX); 또는
수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX 또는 오프셋 4를 갖는 VER_IDX; 또는
수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX 또는 오프셋 -4를 갖는 VER_IDX.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 디폴트 리스트는 다음을 포함한다:
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX, 및 오프셋 1을 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -4를 갖는 HOR_IDX, 및 오프셋 4를 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 4를 갖는 인트라 모드 2(2), 및 오프셋 -1을 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 4를 갖는 인트라 모드 2(2), 및 오프셋 1을 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 인트라 모드 2(2), 및 오프셋 -1을 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 인트라 모드 2(2), 및 오프셋 1을 갖는 HOR_IDX; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX, 및 오프셋 4를 갖는 인트라 모드 2(2); 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 HOR_IDX, 및 오프셋 4를 갖는 인트라 모드 2(2); 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX, 및 오프셋 1을 갖는 인트라 모드 2(2); 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 1을 갖는 HOR_IDX, 및 오프셋 1을 갖는 인트라 모드 2(2).
본 출원의 일 구현 형태에서, 현재 코딩 블록의 좌측 블록이 이용가능하지 않을 때, 현재 코딩 블록의 상부 블록은 이용가능할 수 있거나 또는 이용가능하지 않을 수 있다.
본 출원의 일 구현 형태에서, 현재 코딩 블록의 상부 블록이 이용가능하지 않을 때, 현재 코딩 블록의 좌측 블록은 이용가능할 수 있거나 또는 이용가능하지 않을 수 있다.
본 출원의 일 구현 형태에서, 본 방법은 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 MPM 리스트에 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, 인트라 예측 모드들의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않은 경우(MPM 리스트 내의 인트라 예측 모드들의 수가 임계값보다 작은 경우), 디폴트 모드 리스트 내의 인트라 예측 모드를 순서대로 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복한다.
단계 7: 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 MPM 리스트에 추가한다.
예를 들어, 수직 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수직 모드를 MPM 리스트에 추가하고, 수직 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수직 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 수평 모드가 MPM 리스트에 있는지를 체크한다. 수평 모드가 MPM 리스트에 있는 경우, 인트라 모드 2가 MPM 리스트에 있는지를 추가로 체크하고; 수평 모드가 MPM 리스트에 있지 않은 경우, 수평 모드를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 수행한다.
본 출원의 일 구현 형태에서, 단계 7에서, 디폴트 모드 리스트들에 의해, MPM 리스트에의 디폴트 모드의 모든 삽입은 어떠한 중복된 모드도 삽입되지 않도록 할 것이다. 삽입이 성공적이면, MPM이 가득 차 있는지를 검출하기 위한 다른 체크가 수행된다. 그렇다면, MPM 구성 프로세스는 종료되고; 그렇지 않으면, 지정된 순서로 다른 디폴트 모드로 삽입을 계속한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면,
인트라 예측 모드들의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이면,
인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
일례에서, 단계 6이후에, MPM 리스트가 여전히 가득 차 있지 않고 현재 코딩 블록의 좌측 블록이 이용가능하지 않은 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 순서대로 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 MPM 리스트에 추가한다.
예를 들어, 수직 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수직 모드를 MPM 리스트에 추가하고, 수직 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수직 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 수직 대각선 모드가 MPM 리스트에 있는지를 체크한다. 수직 대각선 모드가 MPM 리스트에 있으면, 대각선 모드가 MPM 리스트에 있는지를 추가로 체크하고; 대각선 모드가 MPM 리스트에 없는 경우, 대각선 모드를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 반복한다.
본 출원의 일 구현 형태에서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록은 이용가능하지 않다면, 인트라 예측 모드들의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드들의 세트는 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않고, 현재 코딩 블록의 상부 블록이 이용가능하지 않은 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 순서대로 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 MPM 리스트에 추가한다.
예를 들어, 수평 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수평 모드를 MPM 리스트에 추가하고, 수평 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수평 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 인트라 모드 2가 MPM 리스트에 있는지를 체크한다. 인트라 모드 2가 MPM 리스트에 있는 경우, 대각선 모드가 MPM 리스트에 있는지를 추가로 체크하고; 대각선 모드가 MPM 리스트에 없는 경우, 대각선 모드를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 반복한다.
본 출원의 일 구현 형태에서, 본 방법은: MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면,
인트라 예측 모드들의 세트의 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제 1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제 1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
본 출원의 일 구현 형태에서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수가 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수가 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 더 포함한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않고, 현재 코딩 블록의 좌측 블록이 이용가능하고, 현재 코딩 블록의 상부 블록이 또한 이용가능한 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 MPM 리스트에 추가한다.
예를 들어, 수직 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수직 모드를 MPM 리스트에 추가하고, 수직 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수직 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 수평 모드가 MPM 리스트에 있는지를 체크한다. 수평 모드가 MPM 리스트에 있는 경우, 인트라 모드 2가 MPM 리스트에 있는지를 추가로 체크하고; 인트라 모드 2가 MPM 리스트에 있지 않은 경우, 인트라 모드 2를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 수행한다.
본 출원의 일 구현 형태에서, 본 방법은 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX 또는 오프셋 4를 갖는 VER_IDX를 MPM 리스트에 추가하는 단계를 더 포함한다.
본 출원의 일 구현 형태에서, 본 방법은 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX 또는 오프셋 -4를 갖는 VER_IDX를 MPM 리스트에 추가하는 단계를 더 포함한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않은 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX 또는 오프셋 4를 갖는 VER_IDX를 MPM 리스트에 추가하거나; 또는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX 또는 오프셋 -4를 갖는 VER_IDX를 MPM 리스트에 추가한다.
예를 들어, 수직 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수직 모드를 MPM 리스트에 추가하고, 수직 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수직 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 수평 모드가 MPM 리스트에 있는지를 체크한다. 수평 모드가 MPM 리스트에 있는 경우, 값이 오프셋 -4를 갖는 VER_IDX의 값과 동일한 예측 모드가 MPM 리스트에 있는지를 추가로 체크하고; 값이 오프셋 -4를 갖는 VER_IDX의 값과 동일한 예측 모드가 MPM 리스트에 없는 경우, 값이 오프셋 -4를 갖는 VER_IDX의 값과 동일한 예측 모드를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 수행한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않고 현재 코딩 블록의 좌측 블록이 이용가능하지 않은 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 MPM 리스트에 추가한다.
예를 들어, 수직 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수직 모드를 MPM 리스트에 추가하고, 수직 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수직 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 수직 대각선 모드가 MPM 리스트에 있는지를 체크한다. 수직 대각선 모드가 MPM 리스트에 있으면, 대각선 모드가 MPM 리스트에 있는지를 추가로 체크하고; 대각선 모드가 MPM 리스트에 없는 경우, 대각선 모드를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 수행한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않고, 현재 코딩 블록의 상부 블록이 이용가능하지 않은 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 MPM 리스트에 추가한다.
예를 들어, 수평 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수평 모드를 MPM 리스트에 추가하고, 수평 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수평 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 인트라 모드 2가 MPM 리스트에 있는지를 체크한다. 인트라 모드 2가 MPM 리스트에 있는 경우, 대각선 모드가 MPM 리스트에 있는지를 추가로 체크하고; 대각선 모드가 MPM 리스트에 없는 경우, 대각선 모드를 MPM 리스트에 추가한다. MPM 리스트가 가득 찰 때까지 이 단계를 반복적으로 수행한다.
일례에서, 단계 6 이후에, MPM 리스트가 여전히 가득 차 있지 않고, 현재 코딩 블록의 좌측 블록이 이용가능하고, 현재 코딩 블록의 상부 블록이 이용가능한 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX 또는 오프셋 4를 갖는 VER_IDX를 MPM 리스트에 추가한다.
일례에서, 가득 차 있지 않다면 MPM 리스트를 구성하기 위해, 미리 정의된 디폴트 모드들: 즉, 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 제공한다. 이러한 디폴트 모드들에 관한 2개의 추가적인 접근법이 제안된다. 이들은 적응적 디폴트 접근법 및 변경된 디폴트 접근법이다.
적응 모드들을 사용하는 접근법은 프레임의 가장 좌측 및 최상부에 위치하는 블록들을 고려한다.
프레임의 좌측 경계에 위치하는 블록들의 경우, 현재 블록의 좌측 블록에 위치하는 소스 예측 샘플들이 존재하지 않기 때문에 수평 모드는 사용될 가능성이 없다. 또한, 일반적으로 수평 모드(즉, DIA_IDX, 모드 2)을 사용하는 모드들은 더 낮은 기회를 갖는다.
프레임의 상부 경계에 위치하는 블록들의 경우, 현재 블록의 상부 블록에 위치하는 소스 예측 샘플들이 존재하지 않기 때문에 수직 모드가 사용될 가능성이 없다. 또한, 일반적으로 수직 모드(즉, VDIA_IDX, DIA_IDX)을 사용하는 모드들은 더 낮은 기회를 갖는다.
따라서, 다음의 경계 인식 접근법이 사용된다:
현재 코딩 블록의 좌측 블록이 존재하지 않는 경우, 디폴트 후보 모드들로서 순서대로 다음 모드들: VER_IDX, VDIA_IDX, DIA_IDX, 모드 2를 사용한다.
그렇지 않으면(좌측 블록이 존재하는 경우):
현재 코딩 블록의 상부 블록이 존재하지 않는 경우, 디폴트 후보 모드들로서 순서대로 다음 모드들: HOR_IDX, 모드 2, DIA_IDX, VDIA_IDX를 사용한다.
그렇지 않으면(상부 블록이 존재하는 경우), 정상 디폴트 모드들: VER_IDX, HOR_IDX, 인트라 모드 2(2), VDIA_IDX 또는 DIA_IDX를 사용한다.
변경된 디폴트 접근법은 다음의 후보 모드들: VER, HOR, VER-4, VER+4를 MPM 리스트에 추가한다. VER-4와 VER+4의 순서는 교환될 수 있다.
이러한 두 가지 방법의 한가지 조합은 다음과 같을 수 있다:
현재 코딩 블록의 좌측 블록이 존재하지 않는 경우, 디폴트 후보 모드들로서 순서대로 다음 모드들: VER_IDX, VDIA_IDX, DIA_IDX, 모드 2를 사용한다.
그렇지 않으면(좌측 블록이 존재하는 경우):
현재 코딩 블록의 상부 블록이 존재하지 않는 경우, 디폴트 후보 모드들로서 순서대로 다음 모드들: HOR_IDX, 모드 2, DIA_IDX, VDIA_IDX를 사용한다.
그렇지 않으면(상부 블록이 존재하는 경우), 변경된 디폴트 모드들: VER_IDX, HOR_IDX, VER, HOR, VER-4, VER+4를 사용한다.
본 개시내용의 일 양태에서, 6-엔트리 MPM 리스트를 구성하기 위한 단순화된 방법이 제안되는데, 이 방법은 현재 코딩 유닛의 좌측 블록의 가용성을 체크하는 단계를 포함한다. 좌측 블록의 위치는 도 5에 도시되어 있으며, 좌측 블록은 "L"로 라벨링된다.
좌측 블록으로부터 어떠한 인트라 예측 정보(즉, 인트라 예측 모드)도 도출될 수 없다면 좌측 블록은 이용가능하지 않다. 이는 다음의 경우들을 포함한다:
좌측 블록은 인트라 예측된 블록이 아니고; 좌측 블록은 존재하지 않으며, 예를 들어, 현재 블록은 프레임의 가장 좌측에 위치하는 코딩 블록이고; 인코더 또는 디코더가 병렬 처리를 지원하는 경우, 좌측 블록은 현재 블록의 상이한 타일들에 또는 이와 함께 위치할 때, 즉, 현재 코딩 블록이 타일의 가장 좌측에 위치하거나 위치될 때, 존재하지 않는(또는 이용가능하지 않은) 것으로 간주될 수 있다.
다른 예에서, 인코더 또는 디코더에서 병렬 처리가 지원되지 않는 경우, 좌측 블록은 현재 블록의 상이한 타일들에 위치할 때, 즉, 현재 코딩 블록이 타일의 가장 좌측에 위치할 때 이용가능한 것으로 간주될 수 있다.
인코더 또는 디코더에서 병렬 처리가 지원되는 경우, 좌측 블록은 현재 블록과 상이한 슬라이스들 내에 위치할 때, 즉, 현재 코딩 블록이 슬라이스의 가장 좌측에 위치할 때 존재하지 않는 것으로 간주될 수 있다.
다른 예에서, 인코더 또는 디코더에서 병렬 처리가 지원되지 않는 경우, 좌측 블록은 현재 블록과 상이한 슬라이스들 내에 위치할 때, 즉, 현재 코딩 블록이 슬라이스의 가장 좌측에 위치할 때 이용가능한 것으로 간주될 수 있다.
그렇지 않으면(즉, 좌측 블록이 이용가능한 경우), 6-엔트리 MPM 리스트 내의 좌측 블록의 인트라 예측 모드를 포함한다.
현재 코딩 유닛들의 상부 블록의 가용성을 체크한다. 상부 블록의 위치는 도 5에 도시되어 있으며, 상부 블록은 "A"로 라벨링된다.
상부 블록으로부터 어떠한 인트라 예측 정보(즉, 인트라 예측 모드)도 도출될 수 없다면 상부 블록은 이용가능하지 않다. 이는 다음의 경우들을 포함한다:
상부 블록은 인트라 예측된 블록이 아니다.
상부 블록은 존재하지 않는다. 예를 들어, 현재 블록은 프레임의 최상부 측에 위치된 코딩 블록이다.
인코더 또는 디코더에서 병렬 처리가 지원되는 경우, 상단 블록은 현재 블록과 상이한 타일들에 위치하는 경우, 즉, 현재 코딩 블록이 타일의 최상부 측에 위치하는 경우, 존재하지 않는 것으로 간주될 수 있다.
다른 예에서, 인코더 또는 디코더에서 병렬 처리가 지원되지 않는 경우, 상단 블록은 현재 블록과 상이한 타일들에 위치하는 경우, 즉 현재 코딩 블록이 타일의 최상부 측에 위치하는 경우 이용가능한 것으로 간주될 수 있다.
인코더 또는 디코더에서 병렬 처리가 지원되는 경우, 상단 블록은 현재 블록과 상이한 슬라이스들에 위치하는 경우, 즉, 현재 코딩 블록이 슬라이스의 최상부 측에 위치하는 경우, 존재하지 않는 것으로 간주될 수 있다.
다른 예에서, 인코더 또는 디코더에서 병렬 처리가 지원되지 않는 경우, 상단 블록은 현재 블록과 상이한 슬라이스들에 위치하는 경우, 즉, 현재 코딩 블록이 슬라이스의 최상부 측에 위치하는 경우, 이용가능한 것으로 간주될 수 있다.
인코더 또는 디코더에서 라인 버퍼 크기를 제한할 필요가 있는 경우, 상단 블록은 현재 블록과 상이한 CTU에 위치하는 경우, 즉, 현재 코딩 블록이 현재 CTU의 최상부 측에 위치하는 경우, 존재하지 않는 것으로 간주될 수 있다.
일례에서, 디코더 측 또는 인코더 측이 라인 버퍼 제약을 지원하면, 현재 블록 CTU와 상이한 CTU 상에 위치하는 상부 블록은 존재하지 않는 것으로 간주된다. 라인 버퍼 제약을 지원하지 않는 경우, 존재하는 것으로 간주한다.
그렇지 않으면(즉, 좌측 블록이 이용가능한 경우), 6-엔트리 MPM 리스트에 상단 블록의 인트라 예측 모드를 포함한다.
평면(PLANAR_IDX=0) 모드가 MPM 리스트에 삽입되었는지를 체크하고(즉, 좌측 및 상단 블록의 인트라 모드 어느 쪽이 평면 모드인지를 체크하고), 평면 모드가 MPM 리스트에 삽입되어 있지 않은 경우에만, 평면 모드를 MPM 리스트에 삽입한다. DC(DC_IDX=1) 모드가 MPM 리스트에 삽입되었는지를 체크하고(즉, 좌측 및 상단 블록의 인트라 모드들 어느 쪽이 DC 모드인지를 체크하고), DC 모드가 MPM 리스트에 삽입되어 있지 않은 경우에만, DC 모드를 MPM 리스트에 삽입한다.
좌측 블록이 이용가능한 경우와 그 인트라 예측 모드가 각도 모드인 경우에, 즉(모드>DC_IDX이고, 모드가 angularLeft인 경우), angularLeft-1, angularLeft+1을 수행함으로써 가장 가까운 2개의 각도 모드들을 얻는다. -1 또는 +1을 수행할 때, 예를 들어, 랩 업 및 랩 다운 동작을 수반할 수 있다는 점에 유의한다.
angularLeft가 2인 경우, angularLeft-1은 66일 것이거나(랩 업 경우), 또는 angularLeft가 66인 경우, angularLeft+1은 2일 것이다(랩 다운 경우).
angularLeft-1의 예측 모드가 MPM 리스트에 삽입되어 있지 않은 경우, 그것을 MPM 리스트에 삽입한다.
angularLeft+1의 예측 모드가 MPM 리스트에 삽입되어 있지 않은 경우, 그것을 MPM 리스트에 삽입한다.
MPM 리스트가 가득 차 있지 않은 경우, 상부 블록이 이용가능한 경우, 및 그 인트라 예측 모드가 각도 모드인 경우에, 즉(모드>DC_IDX이고, 모드가 angularAbove인 경우), angularAbove-1, angularAbove+1을 수행함으로써 가장 가까운 2개의 각도 모드를 얻는다. -1 또는 +1을 수행할 때, 랩 업 및 랩 다운 동작을 수반할 수 있는데, 일례에서, angularLeft가 2인 경우, angularLeft-1은 66일 것이거나(랩 업 경우), 또는 angularLeft가 66인 경우, angularLeft+1은 2일 것이라는(랩 다운 경우) 점에 유의한다.
angularAbove-1의 예측 모드가 MPM 리스트에 삽입되어 있지 않은 경우, 그것을 MPM 리스트에 삽입한다.
MPM 리스트가 가득 차 있지 않은 경우(예를 들어, MPM 리스트 내의 예측 모드들의 수가 6 미만인 경우)와 angularAbove+1의 예측 모드가 MPM 리스트에 삽입되어 있지 않은 경우에, 그것을 MPM 리스트에 삽입한다.
MPM 리스트가 가득 차 있지 않은 경우, 가득 찰 때까지 MPM 리스트에 다음의 모드들을 삽입한다(예를 들어, MPM 리스트 내의 예측 모드들의 수가 6과 동일한 경우):
수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX).
제안된 방법의 변형들의 요약:
좌측 블록의 가용성은 병렬 처리를 지원하거나 또는 이를 지원하지 않는 것 양쪽 모두를 고려해야 한다.
상부 블록의 가용성은 병렬 처리를 지원하거나 또는 이를 지원하지 않는 것 양쪽 모두를 고려해야 한다.
좌측 및 상부 블록의 2개의 가장 가까운 모드를 도출하기 위한 순서는 또한 먼저 +1 그리고 그 후에 -1일 수 있다.
MPM 리스트의 마지막 후보는 VIDA_IDX 또는 DIA_IDX일 수 있다.
삽입 순서는 또한 좌측, 상부, 평면, DC, 및 디폴트 모드(VER_IDX, HOR_IDX, 2, VDIA_IDX 또는 DIA_IDX)일 수 있다.
mpm_idx의 시그널링을 위해, 절단된 단항 이진화가 사용된다. mpm_idx의 처음 3개의 빈(bin)은 3개의 상이한 독립 콘텍스트를 사용하도록 허용되거나, 또는 mpm_idx의 모든 빈들은 CABAC 바이패스 코딩된다.
일 예에서, 루마 인트라 예측 모드의 도출 프로세스가 개시되며,
이 프로세스에 대한 입력은:
현재 픽처의 좌상 루마 샘플에 대한 현재 루마 코딩 블록의 좌상 샘플을 지정하는 루마 위치(xCb, yCb),
루마 샘플에서 현재 코딩 블록의 폭을 지정하는 변수 cbWidth,
루마 샘플에서 현재 코딩 블록의 높이를 지정하는 변수 cbHeight
이다.
이 과정에서 루마 인트라 예측 모드 IntraPredModeY [xCb] [yCb]가 도출된다.
표 8-1은 인트라 예측 모드 IntraPredModeY [xCb] [yCb] 및 관련 이름에 대한 값을 지정한다.
인트라 예측 모드 | 관련 명칭 |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2..66 | INTRA_ANGULAR2..INTRA_ANGULAR66 |
77 | INTRA_CCLM |
주의 : 인트라 예측 모드 INTRA_CCLM는 크로마 컴포넌트에만 적용된다.IntraPredModeY [xCb] [yCb]는 다음 순서의 단계에 의해 도출된다.
이웃 위치(xNbA, yNbA) 및 (xNbB, yNbB)는 각각(xCb-1, yCb+cbHeight-1) 및 (xCb+cbWidth-1, yCb-1)로 설정된다.
X가 A 또는 B로 대체되는 경우 candIntraPredModeX 및 addModeX 변수는 다음과 같이 파생된다.
절 6.4.X [Ed.(BB) : 이웃 블록 가용성 체킹 프로세스 tbd]에 지정되어 있는 블록의 가용성 도출 프로세스는, (xCb, yCb)와 동일하게 설정된 위치(xCurr, yCurr) 및 (xNbX, yNbX)와 동일하게 설정된 이웃 위치(xNbY, yNbY)를 입력으로 사용해서 호출되며, 그 출력은 availableX에 할당된다.
후보 인트라 예측 모드 candIntraPredModeX 및 addModeX는 다음과 같이 도출된다.
다음 조건 중 하나 이상이 참인 경우, candIntraPredModeX는 0 내지 66 이외의 값(예를 들어, 값은 -1)과 같이 설정되고, 폭괄적으로 addModeX는 FALSE로 설정된다.
availableX 변수는 FALSE와 같다.
CuPredMode [xNbX] [yNbX]는 MODE_INTRA와 같지 않다.
X는 B와 같고, yCb-1은 ((yCb >>CtbLog2SizeY)<<CtbLog2SizeY)보다 작다.
그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정되고, addModeX는 TRUE으로 설정된다. 변수 mIdx는 0으로 설정된다. x=0..5인 candModeList [x]는 다음과 같이 도출된다.
모드 정의는 모드가 모드 폭괄적으로 2와 66 사이일 때에만 각도 모드이다.
candIntraPredModeA 및 candIntraPredModeB 모두 각도 모드가 아닌 경우 다음이 적용된다.
candModeList[ 0 ]=INTRA_PLANAR
candModeList[ 1 ]=INTRA_DC
candModeList[ 2 ]=INTRA_ANGULAR50
candModeList[ 3 ]=INTRA_ANGULAR18
candModeList[ 4 ]=INTRA_ANGULAR46
candModeList[ 5 ]=INTRA_ANGULAR54
그렇지 않으면(candIntraPredModeA 및 candIntraPredModeB 중 하나 이상이 각도 모드이다).
addModeA가 TRUE이면 candModeList [mIdx]는 candIntraPredModeA와 동일하게 설정되고 mIdx는 1 씩 증가한다.
addModeB가 TRUE이고 mIdx가 0과 동일하면 candModeList [mIdx]는 candIntraPredModeB와 동일하게 설정되고 mIdx는 1씩 증가한다.
addModeB가 TRUE이고 mIdx가 1과 동일하면 candIntraPredModeB가 candModeList [0]과 같지 않은 경우, candModeList [mIdx]는 candIntraPredModeB와 동일하게 설정되고 mIdx는 1씩 증가한다.
INTRA_PLANAR이 모든 i=0..mIdx-1에 대해 candModeList [i]와 같지 않으면, modeList [mIdx]는 INTRA_PLANAR과 동일하게 설정되고 mIdx는 1씩 증가한다.
INTRA_DC가 모든 i=0..mIdx-1에 대해 candModeList [i]와 같지 않으면, modeList [mIdx]는 INTRA_DC와 동일하게 설정되고 mIdx는 1씩 증가한다.
candIntraPredModeA와 candIntraPredModeB가 모두 모드 2와 66 사이이고 candIntraPredModeA가 candIntraPredModeB와 같지 않은 경우,
변수 angMinus를 2+((candIntraPredModeA+62)%65)와 동일하게 설정하고,
변수 angPlus를 2+((candIntraPredModeA-1)%65)로 설정하고,
candIntraPredModeB가 angMinus와 같으면,
candModeList [mIdx]는 2+((candIntraPredModeB+62)%65)로 설정되고 mIdx는 1씩 증가한다.
candModeList [mIdx]는 angPlus와 동일하게 설정된다.
그렇지 않으면(candIntraPredModeB는 angMinus와 같지 않음)
candModeList [mIdx]는 angMinus와 동일하게 설정되고 mIdx는 1씩 증가한다.
candIntraPredModeB가 angPlus와 같을 때 candModeList [mIdx]는 2 +((candIntraPredModeB-1)%65)로 설정된다.
그렇지 않으면(candIntraPredModeB가 angPlus와 같지 않음), candModeList [mIdx]가 angPlus와 동일하게 설정된다.
그렇지 않은 경우(모두, candIntraPredModeA만 모드 2와 66 사이에 있거나, 혹은 candIntraPredModeB만 모드 2와 66 사이에 있거나, candIntraPredModeA가 candIntraPredModeB와 같고 모드 2와 66 사이에 있다)
candIntraPredModeA가 모드 2보다 크면 변수 Angular는 candIntraPredModeA로 설정된다.
그렇지 않으면(candIntraPredModeA가 모드 2보다 크지 않음) Angular는 candIntraPredModeB로 설정된다.
Angular가 폭괄적으로 모드 49와 51 사이의 범위이면 finalMode 변수는 18로 설정된다.
그렇지 않으면(Angular는 모드 49에서 51 사이가 아님) finalMode 변수는 50으로 설정된다.
candModeList [mIdx]는 2+((Angular+62)%65)로 설정되고 mIdx는 1씩 증가한다.
candModeList [mIdx]는 2+((Angular-1)%65)로 설정되고 mIdx는 1씩 증가한다.
candModeList [mIdx]는 finalMode와 동일하게 설정된다.
IntraPredModeY [xCb] [yCb]는 다음 절차를 적용하여 도출된다.
intra_luma_mpm_flag [xCb] [yCb]가 1이면, IntraPredModeY [xCb] [yCb]는 candModeList [intra_luma_mpm_idx [xCb] [yCb]]와 동일하게 설정된다.
그렇지 않으면 다음 순서의 단계를 적용하여 IntraPredModeY [xCb] [yCb]가 도출된다.
배열 candModeList [x], x=0..5는 다음 순서의 단계에 의해 수정된다.
i가 순차적으로 0 내지 4이면 포괄적으로:
j가 순차적으로 i+1 내지 5이면, candModeList [i]를 candModeList [j]와 비교한다. candModeList [i]가 candModeList [j]보다 크면 두 값은 다음과 같이 바뀐다.
(candModeList [i], candModeList [j])=Swap(candModeList [i], candModeList [j])
IntraPredModeY [xCb] [yCb]는 다음 순서의 단계로 도출된다.
IntraPredModeY [xCb] [yCb]는 intra_luma_mpm_remainder [xCb] [yCb]와 동일하게 설정된다.
i가 0 내지 5인 경우, 포괄적으로 IntraPredModeY [xCb] [yCb]가 candModeList [i]보다 크거나 같으면, IntraPredModeY [xCb] [yCb]의 값이 1씩 증가한다.
x=xCb..xCb+cbWidth-1 및 y=yCb..yCb+cbHeight-1인 변수 IntraPredModeY [x] [y]는 IntraPredModeY [xCb] [yCb]와 같이 설정된다.
본 개시는 인트라 모드 시그널링 방식의 개선을 목표로 한다. 본 개시에서는, 비디오 디코딩 방법 및 비디오 디코더가 제안된다.
도 7은 예를 들어, VVC에 대해 제안된 바와 같이, 67개의 인트라 예측 모드의 예를 도시하며, 67개의 인트라 예측 모드의 복수의 인트라 예측 모드는: 평면 모드(인덱스 0), dc 모드(인덱스 1), 및 인덱스들 2 내지 66을 갖는 각도 모드들을 포함하고, 여기서 도 7에서의 좌측 하단 각도 모드는 인덱스 2를 지칭하고, 인덱스들의 넘버링은 인덱스 66이 도 7의 상단 우측 최대 각도 모드일 때까지 증분된다.
본 출원의 다른 양태에서, 상기 디코딩 방법들을 수행하도록 구성된 처리 회로를 포함하는 디코더가 개시된다.
본 출원의 다른 양태에서, 상기 디코딩 방법들을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 개시된다.
본 출원의 다른 양태에서, 비디오 데이터를 디코딩하기 위한 디코더가 개시되며, 이 디코더는: 하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그램은, 프로세서들에 의해 실행될 때, 상기 디코딩 방법들을 수행하도록 디코더를 구성한다.
처리 회로는, 예를 들어, 소프트웨어 프로그래밍가능 프로세서 등에 의해, 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
본 출원의 다른 양태에서, 인코딩 방법이 개시되며, 이 인코딩 방법은: 복수의 인트라 예측 모드로부터 픽처 블록의 인트라 예측 모드를 획득하는 단계 - 픽처 블록에 대한 복수의 인트라 예측 모드는 최고 확률 모드(MPM)의 세트 및 비-MPM의 세트를 포함하고, 비-MPM의 세트는 인트라 예측 모드들의 제 1 세트와 인트라 예측 모드들의 제 2 세트를 포함함 - ; 픽처 블록의 인트라 예측 모드가 비-MPM의 세트에 있으면, 인트라 예측 모드들의 제 1 세트 내의 적어도 하나의 인트라 예측 모드와 비-MPM의 세트 내의 적어도 하나의 인트라 예측 모드 사이의 매핑 관계를 생성하는 단계; 및 픽처 블록의 인트라 예측 모드를 인코딩하여 매핑 관계에 따라 인트라 예측 모드 코드워드를 획득하는 단계를 포함한다.
본 출원의 일 구현 형태에서, 픽처 블록의 인트라 예측 모드를 획득하는 프로세스는 실시예 부분의 이하의 상세한 설명에서의 상대적 개시내용, 또는 ITU-T H.264, ITU-T H.265에서와 같은 비디오 코딩 기술의 분야에서의 상대적 개시내용을 참조할 수 있다.
본 출원의 일 구현 형태에서, 인코딩 방법은: MPM의 세트를 생성하는 단계, 및 픽처 블록의 인트라 예측 모드가 MPM의 세트에 있는지를 결정하는 단계를 더 포함한다. 따라서, 픽처 블록의 인트라 예측 모드가 MPM의 세트에 있지 않다면, 픽처 블록의 인트라 예측 모드는 비-MPM의 세트에 있다.
MPM의 세트를 생성하는 프로세스는 설명 부분에서의 상대적 개시내용, 또는 ITU-T H.264, ITU-T H.265에서와 같은 비디오 코딩 기술의 분야에서의 상대적 개시내용을 참조할 수 있다.
본 출원의 일 구현 형태에서, 인트라 예측 모드들의 제 1 세트 내의 적어도 하나의 인트라 예측 모드와 비-MPM의 세트 내의 적어도 하나의 인트라 예측 모드 사이의 매핑 관계를 생성하는 프로세스는 디코딩 측에서의 상대적 개시내용을 참조할 수 있다.
본 출원의 일 구현 형태에서, 인트라 예측 모드들의 제 1 세트는 5 비트를 사용하여 코딩되고 인트라 예측 모드들의 제 2 세트는 6 비트를 사용하여 코딩된다.
본 출원의 다른 양태에서, 상기 인코딩 방법들을 수행하도록 구성된 처리 회로를 포함하는 인코더가 개시된다.
본 출원의 다른 양태에서, 상기 인코딩 방법들을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 개시된다.
본 출원의 다른 양태에서, 비디오 데이터를 인코딩하기 위한 인코더가 개시되며, 이 인코더는: 하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그램은, 프로세서들에 의해 실행될 때, 상기 인코딩 방법들을 수행하도록 인코더를 구성한다.
처리 회로는, 예를 들어, 소프트웨어 프로그래밍가능 프로세서 등에 의해, 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
실시예 1. 인트라 예측을 위한 MPM 리스트를 구성하는 방법으로서, 이 방법은:
현재 코딩 블록의 좌측 블록(예를 들어, 도 5의 블록 L)이 이용가능한지 여부를 결정하는 단계(예를 들어, 좌측 블록의 인트라 예측 모드가 없으면 좌측 블록은 이용 불가능하고, 좌측 블록의 인트라 예측 모드가 있으면 좌측 블록은 이용가능함);
현재 코딩 블록의 상부 블록(예를 들어, 도 5의 블록 A)이 이용가능한지 여부를 결정하는 단계(예를 들어, 상부 블록의 인트라 예측 모드가 없으면 상부 블록은 이용 불가능하고, 상부 블록의 인트라 예측 모드가 있으면 상부 블록은 이용가능함);
다음의 조건:
현재 코딩 블록의 좌측 블록이 이용 불가능하고, 현재 코딩 블록의 상부 블록이 이용 불가능함;
현재 코딩 블록의 좌측 블록이 이용 불가능하고, 현재 코딩 블록의 상부 블록이 이용 가능하며, 상부 블록의 인트라 예측 모드가 평면 모드임;
현재 코딩 블록의 좌측 블록이 이용 불가능하고, 현재 코딩 블록의 상부 블록이 이용 가능하며, 상부 블록의 인트라 예측 모드가 DC 모드임;
현재 코딩 블록의 좌측 블록이 이용 가능하고, 현재 코딩 블록의 상부 블록이 이용 불가능하며, 좌측 블록의 인트라 예측 모드가 평면 모드임;
현재 코딩 블록의 좌측 블록이 이용 가능하고, 현재 코딩 블록의 상부 블록이 이용 불가능하며, 좌측 블록의 인트라 예측 모드가 DC 모드임;
현재 코딩 블록의 좌측 블록이 이용 가능하고, 현재 코딩 블록의 상부 블록이 이용 가능하며, 좌측 블록의 인트라 예측 모드가 각도 모드가 아니며(즉, 좌측 블록의 인트라 예측 모드가 평면 모드 또는 DC임);
상부 블록의 인트라 예측 모드가 각도 모드가 아님(즉, 좌측 블록의 인트라 예측 모드가 평면 모드 또는 DC임)
중 하나가 만족되면:
평면 모드, DC 모드, 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 수직 모드에 대응하는 인트라 예측 모드, 오프셋 4를 갖는 수직 모드에 대응하는 인트라 예측 모드를 사용하는 단계(예를 들어, MPM 리스트는(0, 1, 50, 18, 46, 54), 값 0은 평면 모드에 대응하고, 값 1은 DC 모드에 대응하고, 값 50은 수직 모드에 대응하며, 값 18은 수평 모드(HOR_IDX)에 대응하고, 값 46은 오프셋 -4를 갖는 수직 모드에 대응하는 인트라 예측 모드에 대응하며, 값 54는 오프셋 4를 갖는 수직 모드에 대응하는 인트라 예측 모드에 대응함)
를 포함한다.
실시예 2. 인트라 예측을 위한 MPM 리스트를 구성하는 방법으로서, 이 방법은:
현재 코딩 블록의 좌측 블록(예를 들어, 도 5의 블록 L)이 이용가능한지 여부를 결정하는 단계(예를 들어, 좌측 블록의 인트라 예측 모드가 없으면 좌측 블록은 이용 불가능하고, 좌측 블록의 인트라 예측 모드가 있으면 좌측 블록은 이용가능하며, 좌측 블록이 이용가능하면 좌측 블록의 인트라 예측 모드가 획득됨);
좌측 블록이 이용 가능한 경우(예를 들어, 좌측 블록의 인트라 예측 모드가 각도 모드이고, 이는 좌측 블록의 인트라 예측 모드에 대응하는 값이 2 이상이거나(값의 범위는 2 내지 66일 수 있고, 값은 66일 수도 있음), 혹은 좌측 블록의 인트라 예측 모드에 대응하는 값이 0(평면 모드) 또는 1(DC 모드))이라는 것을 의미함), 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계(예를 들어, 초기 MPM 리스트는 빈 리스트이고, 이 단계에서 좌측 블록의 인트라 예측 모드가 MPM 리스트에 추가됨)
를 포함한다.
실시예 3. 인트라 예측을 위한 MPM(Most Probable Mode) 리스트를 구성하는 방법으로서, 이 방법은:
현재 코딩 블록의 상부 블록(예를 들어, 도 5의 블록 A)이 이용가능한지 여부를 결정하는 단계(예를 들어, 상부 블록의 인트라 예측 모드가 없으면 상부 블록은 이용 불가능하고, 상부 블록의 인트라 예측 모드가 있으면 상부 블록은 이용가능하며, 상부 블록이 이용가능하면 상부 블록의 인트라 예측 모드가 획득됨);
상부 블록이 이용 가능한 경우(예를 들어, 상부 블록의 인트라 예측 모드가 각도 모드이고, 이는 상부 블록의 인트라 예측 모드에 대응하는 값이 2 이상이거나(값의 범위는 2 내지 66일 수 있고, 값은 66일 수도 있음), 혹은 상부 블록의 인트라 예측 모드에 대응하는 값이 0(평면 모드) 또는 1(DC 모드))이라는 것을 의미함), 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계(예를 들어, 초기 MPM 리스트는 빈 리스트이고, 이 단계에서 좌측 블록의 인트라 예측 모드가 MPM 리스트에 추가됨);
MPM 리스트가 좌측 블록의 인트라 예측 모드를 포함하고, 상부 블록의 인트라 예측 모드가 좌측 블록의 인트라 예측 모드와 상이하며, 따라서 상부 블록의 인트라 예측 모드가 MPM 리스트에 추가되고, MPM 리스트에는 두 가지 인트라 예측 모드(좌측 블록의 인트라 예측 모드에 대응하는 값 및 상부 블록의 인트라 예측 모드에 대응하는 값)가 있다.
실시예 4. 실시예 2 또는 3의 방법으로서, 이 방법은,
좌측 블록이 이용 불가능하거나 좌측 블록의 인트라 예측 모드가 각도 모드가 아니고(예를 들어, 좌측 블록의 인트라 예측 모드가 없거나, 좌측 블록의 인트라 예측 모드가 평면 모드이거나, 좌측 블록의 인트라 예측 모드가 DC 모드인 경우), 상부 블록의 인트라 예측 모드는 각도 모드일 때(예를 들어, 상부 블록의 인트라 예측 모드에 대응하는 값이 2 이상이고, 값의 범위는 2 내지 66일 수 있고, 이 값은 66일 수도 있음),
그리고 상부 블록의 인트라 예측 모드가 MPM 리스트에 포함되지 않을 때, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계(이 예에서 초기 MPM 리스트는 빈 리스트거나 각도 모드만 포함하지 않고, 좌측 블록이 이용 불가능하거나 좌측 블록의 인트라 예측 모드가 각도 모드가 아닌 경우 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한다. 이 경우 상부 블록의 인트라 예측 모드가 분명히 MPM 리스트에 포함되어 있지 않기 때문에 상부 블록의 인트라 예측 모드가 MPM 리스트에 포함되어 있는지 여부를 결정할 필요가 없다)
를 더 포함한다.
실시예 5. 실시예 4의 방법으로서, 이 방법은,
평면 모드가 MPM 리스트에 포함되지 않은 경우 MPM 리스트에 평면 모드를 추가하는 단계(이 예에, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에, 평면 모드를 MPM 리스트에 추가할지 여부를 결정함)를 더 포함한다.
실시예 6. 실시예 4 또는 5의 방법으로서, 이 방법은,
DC 모드가 MPM 리스트에 포함되지 않은 경우, MPM 리스트에 DC 모드를 추가하는 단계(이 예에, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에, DC 모드를 MPM 리스트에 추가할지 여부를 결정한다. 다른 예에서, 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 후 DC 모드를 MPM 리스트에 추가할지 여부를 결정한다)를 더 포함한다.
실시예 7. 실시예 4 내지 6 중 어느 하나의 방법으로서, 이 방법은,
상부 블록의 예측 모드에 오프셋을 추가해서 상부 오프셋 예측 모드를 획득하는 단계와, 상부 오프셋 예측 모드가 MPM 리스트에 포함되지 않은 경우, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다).
실시예 8. 실시예 7의 방법에서 오프셋은 -1이다.
실시예 9. 실시예 7의 방법에서 오프셋은 1이다(이 예에서, 상부 블록의 예측 모드에 2개의 오프셋이 추가되어서 상부 오프셋 예측 모드 및 다른 상부 오프셋 예측 모드를 획득하고, 상부 오프셋(오프셋이 -1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 상부 오프셋 예측 모드를 MPM 리스트에 추가하고, 다른 상부 오프셋(오프셋이 1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 다른 상부 오프셋 예측 모드를 MPM 리스트에 추가함).
실시예 10. 실시예 4 내지 9 중 어느 하나의 방법으로서, 방법은
수직 모드가 MPM 리스트에 포함되지 않은 경우 수직 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 11. 실시예 4 내지 10 중 어느 하나의 방법으로서, 이 방법은:
수평 모드가 MPM 리스트에 포함되지 않은 경우 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 상부 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 12. 실시예 4 내지 10 중 어느 하나의 방법에 있어서, 이 방법은:
수평 모드가 MPM 리스트에 포함되어 있지 않고 MPM 리스트의 인트라 예측 모드의 수가 임계 값보다 작은 경우(예를 들어, 임계값은 6), 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 상부 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 13. 실시예 2 또는 3의 방법에 있어서, 이 방법은:
좌측 블록이 이용 불가능하거나 좌측 블록의 인트라 예측 모드가 각도 모드가 아니고(예를 들어, 상부 블록의 인트라 예측 모드가 없거나, 상부 블록의 인트라 예측 모드가 평면 모드이거나, 좌측 블록의 인트라 예측 모드가 DC 모드인 경우), 좌측 블록의 인트라 예측 모드는 각도 모드일 때(예를 들어, 좌측 블록의 인트라 예측 모드에 대응하는 값이 2 이상이고, 값의 범위는 2 내지 66일 수 있고, 이 값은 66일 수도 있음),
그리고 좌측 블록의 인트라 예측 모드가 MPM 리스트에 포함되지 않을 때, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계(이 예에서 좌측 블록의 인트라 예측 모드가 각도 모드이면, 이는 MPM 리스트에 추가될 것이며, 이 예에서, 좌측 블록의 인트라 예측 모드가 MPM 리스트에 포함되어 있는지 여부를 결정할 필요가 없다)를 더 포함한다.
실시예 14. 실시예 13의 방법에 있어서, 이 방법은:
평면 모드가 MPM 리스트에 포함되어 있지 않은 경우, 평면 모드를 MPM 리스트에 추가하는 단계(이 예에서, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 후, MPM 리스트에 평면 모드를 추가할지 여부를 결정한다)를 더 포함한다.
실시예 15. 실시예 13 또는 14의 방법으로서, 이 방법은:
DC 모드가 MPM 리스트에 포함되어 있지 않은 경우, DC 모드를 MPM 리스트에 추가하는 단계(이 예에서, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 후, DC 모드를 MPM 리스트에 추가할지 여부를 결정한다. 다른 예에서, 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 후, MPM 리스트에 DC 모드를 추가할지 여부를 결정한다)를 더 포함한다.
실시예 16. 실시예 13 내지 15 중 어느 하나의 방법에 있어서, 이 방법은:
좌측 오프셋 예측 모드가 MPM 리스트에 포함되지 않은 경우, 좌측 블록의 예측 모드에 오프셋을 추가해서 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 17. 실시예 16의 방법에서 오프셋은 -1이다.
실시예 18. 실시예 16의 방법에서 오프셋은 1이다(이 예에서, 좌측 블록의 예측 모드에 2개의 오프셋이 추가되어서 좌측 오프셋 예측 모드 및 다른 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋(오프셋이 -1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하고, 다른 좌측 오프셋(오프셋이 1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가함).
실시예 19. 실시예 13 내지 18 중 어느 하나의 방법으로서, 방법은
수직 모드가 MPM 리스트에 포함되지 않은 경우 수직 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 20. 실시예 13 내지 19 중 어느 하나의 방법으로서, 이 방법은:
수평 모드가 MPM 리스트에 포함되지 않은 경우 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 21. 실시예 13 내지 19 중 어느 하나의 방법에 있어서, 이 방법은:
수평 모드가 MPM 리스트에 포함되어 있지 않고 MPM 리스트의 인트라 예측 모드의 수가 임계 값보다 작은 경우(예를 들어, 임계값은 6), 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 22. 실시예 2의 방법에 있어서, 이 방법은:
현재 코딩 블록의 상부 블록(예를 들어, 도 5의 블록 A)이 이용가능한지 여부를 결정하는 단계(예를 들어, 상부 블록의 인트라 예측 모드가 없으면 상부 블록은 이용 불가능하고, 상부 블록의 인트라 예측 모드가 있으면 상부 블록은 이용가능함);
상부 블록의 인트라 예측 모드가 각도 모드일 때(예를 들어, 상부 블록의 인트라 예측 모드에 대응하는 값이 2 이상이고, 이 값의 범위는 2 내지 66일 수 있고, 값은 66일 수도 있음), 및 상부 블록의 인트라 예측 모드가 MPM 리스트에 포함될 때(예를 들어, 상부 블록의 인트라 예측 모드는 좌측 블록의 인트라 예측 모드와 동일함);
평면 모드가 MPM 리스트에 포함되어 있지 않은 경우, 평면 모드를 MPM 리스트에 추가하는 단계(이 예에서, 좌측 블록의 인트라 예측 모드 및 상부 블록의 인트라 예측 모드가 각도 모드여서, 평면 모드가 MPM 리스트에 추가됨)를 더 포함한다.
실시예 23. 실시예 22의 방법으로서, 이 방법은:
DC 모드가 MPM 리스트에 포함되어 있지 않은 경우, DC 모드를 MPM 리스트에 추가하는 단계(다른 예에서, 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 후, DC 모드를 MPM 리스트에 추가할지 여부를 결정한다. 이 예에서, 좌측 블록의 인트라 예측 모드 및 상부 블록의 인트라 예측 모드가 각도 모드여서, DC 모드가 MPM 리스트에 추가됨)를 더 포함한다.
실시예 24. 실시예 22 또는 23에 있어서, 이 방법은:
좌측 오프셋 예측 모드가 MPM 리스트에 포함되지 않은 경우, 좌측 블록의 예측 모드에 오프셋을 추가해서 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 25. 실시예 24의 방법에서 오프셋은 -1이다.
실시예 26. 실시예 24의 방법에서 오프셋은 1이다(이 예에서, 좌측 블록의 예측 모드에 2개의 오프셋이 추가되어서 좌측 오프셋 예측 모드 및 다른 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋(오프셋이 -1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하고, 다른 좌측 오프셋(오프셋이 1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가함).
실시예 27. 실시예 22 내지 26 중 어느 하나의 방법으로서, 방법은:
수직 모드가 MPM 리스트에 포함되지 않은 경우 수직 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 28. 실시예 22 내지 27 중 어느 하나의 방법으로서, 이 방법은:
수평 모드가 MPM 리스트에 포함되지 않은 경우 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 29. 실시예 22 내지 27 중 어느 하나의 방법으로서, 이 방법은:
수평 모드가 MPM 리스트에 포함되어 있지 않고 MPM 리스트의 인트라 예측 모드의 수가 임계값보다 작은 경우(예를 들어, 임계값은 6), 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 30. 실시예 2의 방법에 있어서, 이 방법은:
현재 코딩 블록의 상부 블록(예를 들어, 도 5의 블록 A)이 이용가능한지 여부를 결정하는 단계(예를 들어, 상부 블록의 인트라 예측 모드가 없으면 상부 블록은 이용 불가능하고, 상부 블록의 인트라 예측 모드가 있으면 상부 블록은 이용가능함);
상부 블록의 인트라 예측 모드가 각도 모드이고, 좌측 블록의 인트라 예측 모드가 각도 모드일 때(예를 들어, 상부 블록의 인트라 예측 모드에 대응하는 값이 2 이상이고, 이 값의 범위는 2 내지 66일 수 있고, 값은 66일 수도 있음), 및 상부 블록의 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때(예를 들어, 좌측 블록의 인트라 예측 모드는 상부 블록의 인트라 예측 모드와는 상이함);
상부 블록의 인트라 예측 모드를 MPM 리스트에 추가함(예를 들어, MPM 리스트는 좌측 블록의 인트라 예측 모드를 포함하고, 상부 블록의 인트라 예측 모드는 좌측 블록의 인트라 예측 모드와는 상이하며, 따라서 상부 블록의 인트라 예측 모드가 MPM 리스트에 추가되고, MPM 리스트에 2개의 인트라 예측 모드가 있음(좌측 블록에 대응하는 인트라 모드 및 상부 블록에 대응하는 인트라 모드).
실시예 31. 실시예 30의 방법으로서, 이 방법은,
평면 모드가 MPM 리스트에 포함되지 않은 경우 MPM 리스트에 평면 모드를 추가하는 단계(이 예에, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에, 평면 모드를 MPM 리스트에 추가할지 여부를 결정하고, 다른 예에서, 좌측 블록의 인트라 예측 모드와 상부 블록의 인트라 예측 모드가 모두 각도 모드이므로, MPM 리스트에 평면 모드가 추가됨)를 더 포함한다.
실시예 32. 실시예 30 또는 31의 방법으로서, 이 방법은,
DC 모드가 MPM 리스트에 포함되지 않은 경우, MPM 리스트에 DC 모드를 추가하는 단계(이 예에, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에, DC 모드를 MPM 리스트에 추가할지 여부를 결정한다. 다른 예에서, 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 후 DC 모드를 MPM 리스트에 추가할지 여부를 결정하고; 다른 예에서, 좌측 블록의 인트라 예측 모드 및 상부 블록의 인트라 예측 모드가 모두 각도 모드여서, 이 단계에서, DC 모드가 MPM 리스트에 추가됨)를 더 포함한다.
실시예 33. 실시예 30 내지 32 중 어느 하나의 방법에 있어서, 이 방법은:
좌측 오프셋 예측 모드가 MPM 리스트에 포함된 경우, 좌측 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가해서 좌측 오프셋 예측 모드를 획득하고, 상부 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가해서 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
실시예 34. 실시예 30 내지 33 중 어느 하나의 방법에 있어서, 이 방법은:
좌측 오프셋 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 좌측 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가해서 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
실시예 35. 실시예 30 내지 34 중 어느 하나의 방법에 있어서, 이 방법은:
좌측 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가하여 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드가 MPM 리스트에 포함된 경우 좌측 블록의 예측 모드에 다른 오프셋(예를 들어, 1)을 추가하여 다른 좌측 오프셋을 획득하며, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
실시예 36. 실시예 30 내지 34 중 어느 하나의 방법에 있어서, 이 방법은:
좌측 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가하여 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드가 MPM 리스트에 포함된 경우 좌측 블록의 예측 모드에 다른 오프셋(예를 들어, 1)을 추가하여 다른 좌측 오프셋을 획득하며, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
실시예 37. 실시예 30 내지 32 중 어느 하나의 방법에 있어서, 이 방법은:
좌측 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가하여 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드가 MPM 리스트에 포함된 경우 상부 블록의 예측 모드에 오프셋(예를 들어, -1)을 추가하여 상부 오프셋을 획득하며, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계와,
좌측 블록의 예측 모드에 다른 오프셋(예를 들어, 1)을 추가하여 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계
를 더 포함한다.
실시예 38. 실시예 34의 방법에 있어서, 이 방법은:
좌측 블록의 예측 모드에 다른 오프셋(예를 들어, 1)을 추가하여 좌측 오프셋 예측 모드를 획득하고, 다른 좌측 오프셋 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 더 포함한다.
실시예 39. 실시예 34 또는 38의 방법에 있어서, 이 방법은:
좌측 블록의 예측 모드에 다른 오프셋(예를 들어, 1)을 추가하여 다른 좌측 오프셋 예측 모드를 획득하고, 다른 좌측 오프셋 예측 모드가 MPM 리스트에 포함되어 있는 경우,
상부 블록의 예측 모드에 다른 오프셋(예를 들어, 1)을 추가하여 다른 좌측 오프셋 예측 모드를 획득하고, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계
를 더 포함한다.
실시예 40. 실시예 2의 방법에 있어서, 이 방법은:
현재 코딩 블록의 상부 블록(예를 들어, 도 5의 블록 A)이 이용가능한지 여부를 결정하는 단계(예를 들어, 상부 블록의 인트라 예측 모드가 없으면 상부 블록은 이용 불가능하고, 상부 블록의 인트라 예측 모드가 있으면 상부 블록은 이용가능하며, 상부 블록은 이용가능하면 상부 블록의 인트라 예측 모드가 획득됨);
상부 블록이 이용 불가능하거나 상부 블록의 인트라 예측 모드가 각도 모드가 아니고(예를 들어, 상부 블록의 인트라 예측 모드가 없거나, 상부 블록의 인트라 예측 모드가 평면 모드이거나, 상부 블록의 인트라 예측 모드가 DC 모드인 경우), 좌측 블록의 인트라 예측 모드는 각도 모드일 때(예를 들어, 좌측 블록의 인트라 예측 모드에 대응하는 값이 2 이상이고, 값의 범위는 2 내지 66일 수 있고, 이 값은 66일 수도 있음),
평면 모드가 MPM 리스트에 포함되지 않은 경우 MPM 리스트에 평면 모드를 추가하는 단계(이 예에, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에, MPM 리스트에 평면 모드가 추가됨)를 더 포함한다.
실시예 41. 실시예 40의 방법으로서, 이 방법은:
DC 모드가 MPM 리스트에 포함되어 있지 않은 경우, DC 모드를 MPM 리스트에 추가하는 단계(이 예에서, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 후, DC 모드를 MPM 리스트에 추가할지 여부를 결정한다. 다른 예에서, 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 후, MPM 리스트에 DC 모드를 추가할지 여부를 결정한다)를 더 포함한다.
실시예 42. 실시예 40 또는 41의 방법에 있어서, 이 방법은:
좌측 오프셋 예측 모드가 MPM 리스트에 포함되지 않은 경우, 좌측 블록의 예측 모드에 오프셋을 추가해서 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 43. 실시예 42의 방법에서 오프셋은 -1이다.
실시예 44. 실시예 42의 방법에서 오프셋은 1이다(이 예에서, 좌측 블록의 예측 모드에 2개의 오프셋이 추가되어서 좌측 오프셋 예측 모드 및 다른 좌측 오프셋 예측 모드를 획득하고, 좌측 오프셋(오프셋이 -1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 좌측 오프셋 예측 모드를 MPM 리스트에 추가하고, 다른 좌측 오프셋(오프셋이 1) 예측 모드가 MPM 리스트에 포함되어 있지 않은 경우, 다른 좌측 오프셋 예측 모드를 MPM 리스트에 추가함).
실시예 45. 실시예 40 내지 44 중 어느 하나의 방법으로서, 방법은
수직 모드가 MPM 리스트에 포함되지 않은 경우 수직 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 46. 실시예 40 내지 45 중 어느 하나의 방법으로서, 이 방법은:
수평 모드가 MPM 리스트에 포함되지 않은 경우 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 47. 실시예 40 내지 46 중 어느 하나의 방법에 있어서, 이 방법은:
수평 모드가 MPM 리스트에 포함되어 있지 않고 MPM 리스트의 인트라 예측 모드의 수가 임계 값보다 작은 경우(예를 들어, 임계값은 6), 수평 모드를 MPM 리스트에 추가하는 단계(이 예에서, 이 단계는 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가한 이후에 처리될 수 있다. 다른 예에서, 이 단계는 평면 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 DC 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 좌측 오프셋 예측 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다. 또 다른 예에서, 이 단계는 수직 모드를 MPM 리스트에 추가할지 여부를 결정한 이후에 처리될 수도 있다)를 더 포함한다.
실시예 48. 실시예 1 내지 47 중 어느 하나에 따른 방법을 수행하는 처리 회로를 포함하는 인코더.
실시예 49. 실시예 1 내지 47 중 어느 하나에 따른 방법을 수행하는 처리 회로를 포함하는 디코더.
실시예 50. 실시예 1 내지 47 중 어느 하나에 따른 방법을 수행하는 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
실시예 51. MPM 리스트를 구성하기 위한 디코더는:
하나 이상의 프로세서와,
프로세서에 연결되고 프로세서에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체-프로그램은, 프로세서에 의해 실행될 때, 실시예 1 내지 47 중 어느 하나에 따른 방법을 수행하도록 디코더를 구성함-
를 포함한다.
실시예 52. MPM 리스트를 구성하기 위한 인코더는:
하나 이상의 프로세서와,
프로세서에 연결되고 프로세서에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체 - 프로그램은, 프로세서에 의해 실행될 때, 실시예 1 내지 47 중 어느 하나에 따른 방법을 수행하도록 인코더를 구성함 -
를 포함한다.
주어진 블록 내에서 픽셀을 예측하는 데 필요한 가중치 계수의 값을 계산하기 위해 구분적 선형 근사(Piecewise linear approximation)가 도입된다. 구분적 선형 근사는 한편으로는 간단한 가중 계수 계산에 비해서 거리 가중 예측 메커니즘의 계산 복잡성을 크게 감소시키며 종래 기술의 간소화(simplification)에 비해서 가중 계수 값의 정확도를 높이는 데 도움을 준다.
실시예들은 픽처의 상이한 부분들을 혼합하기 위해 하나의 픽셀로부터 다른 픽셀까지의 거리에 의존하는 가중 계수들을 사용하는 메커니즘(예를 들어, 이미지 처리에서의 일부 혼합 방법)뿐만 아니라 다른 양방향 및 위치 종속 인트라 예측 기술(예를 들어, PDPC의 상이한 수정)에 적용될 수 있다.
본 개시에 개시된 구조 및 그의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하여, 본 개시에서 설명된 청구 대상 및 동작의 구현예는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 개시에서 설명된 대상의 실시예는 하나 이상의 컴퓨터 프로그램으로서, 즉 데이터 처리 장치에 의한 또는 그의 동작을 제어하기 위한 실행을 위해 컴퓨터 저장 매체 상에 인코딩되는 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 이와 달리 혹은 이에 더해서, 프로그램 명령어들은 인공적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치에 송신하기 위한 정보를 인코딩하도록 생성되는 머신 생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체, 예를 들어, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 장치, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 이들에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체가 전파 신호(propagated signal)는 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 별개의 물리적 및/또는 비일시적 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크, 또는 다른 저장 장치)일 수 있거나, 이들에 포함될 수 있다.
일부 구현예에서, 본 개시에서 설명된 동작들은 클라우드 컴퓨팅 네트워크 내의 서버 상에 제공되는 호스팅된 서비스로서 구현될 수 있다. 예를 들어, 컴퓨터 판독가능 저장 매체는 클라우드 컴퓨팅 네트워크 내에서 논리적으로 그룹화되어 액세스가능할 수 있다. 클라우드 컴퓨팅 네트워크 내의 서버들은 클라우드 기반 서비스들을 제공하기 위한 클라우드 컴퓨팅 플랫폼을 포함할 수 있다. "클라우드", "클라우드 컴퓨팅" 및 "클라우드 기반"이라는 용어들은 본 개시의 범위를 벗어나지 않고 적절한 경우 상호교환가능하게 사용될 수 있다. 클라우드 기반 서비스는 클라이언트 컴퓨터 상에서 로컬로 실행되는 애플리케이션을 개선, 보완 또는 대체하기 위해 서버에 의해 제공되고 네트워크를 거쳐 클라이언트 플랫폼으로 전달되는 호스팅된 서비스일 수 있다. 회로는 리소스가 회로에 전달될 수 있기 전에 긴 기간을 다른 방식으로 요구하는 소프트웨어 업그레이드, 애플리케이션, 및 다른 리소스를 신속하게 수신하기 위해 클라우드 기반 서비스를 사용할 수 있다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로서 알려짐)은 컴파일 언어 또는 해석된 언어, 선언 언어 또는 절차 언어를 포함하는, 임의의 형태의 프로그래밍 언어로 기입될 수 있고, 그것은, 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여, 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만, 그럴 필요는 없다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용된 단일 파일 내에, 또는 다수의 조정된 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 배치되어 있거나 다중 사이트에 걸쳐 분산되어 있고 통신 네트워크에 의해 상호 연결되어 있는 다중 컴퓨터로 실행되도록 배치될 수 있다.
본 개시에서 설명된 프로세스 및 로직 흐름은, 입력 데이터에 작용하여 출력을 생성함으로써 액션들을 수행하도록 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램가능 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한 그들로서 구현될 수 있다.
컴퓨터 프로그램을 실행하는데 적합한 프로세서들은, 예를 들어, 범용 및 특수 목적 마이크로프로세서들 양자 모두, 및 임의의 종류의 디지털 컴퓨터 중 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 ROM(read only memory) 또는 RAM(random access memory) 또는 둘 다로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들에 따라 액션들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터 저장을 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 자기 광학 디스크들 또는 광학 디스크들을 포함하거나, 이들로부터 데이터를 수신하거나 이들에 데이터를 송신하기 위해, 또는 둘다를 위해 이들에 동작가능하게 결합될 것이다. 그러나, 컴퓨터가 이러한 장치들을 가질 필요는 없다. 더욱이, 컴퓨터는, 몇 가지 예를 들자면, 다른 장치, 예를 들어, 모바일 전화, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 장치(예를 들어, USB(universal serial bus) 플래시 드라이브)에 임베딩될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 장치들은, 예로서, 반도체 메모리 장치들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 장치들을 포함하는, 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 자기 광학 디스크들; 및 CDROM 및 DVD-ROM 디스크들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보강될 수 있거나 특수 목적 로직 회로에 통합될 수 있다.
본 개시가 많은 구체적인 구현 세부사항들을 포함하지만, 이들은 임의의 구현 또는 청구될 수 있는 것의 범주에 대한 제한으로서 해석되어서는 안 되고, 오히려 특정 구현에 대해 특정된 특징들의 설명으로서 해석되어야 한다. 별도의 구현들의 측면에서 본 개시에서 설명된 것과 같은 소정의 특징들은 또한 단일의 구현에서 조합하여 구현될 수 있다. 역으로, 단일 구현의 맥락에서 설명된 다양한 특징들은 다수의 구현에서 별도로 또는 임의의 적절한 부조합으로 구현될 수도 있다. 더욱이, 특징들이 특정 조합에서 작용하는 것으로 위에 기술될 수 있고 심지어 그와 같이 처음에 주장될 수 있을지라도, 청구된 조합의 하나 이상의 특징은 몇몇 경우에 조합으로부터 삭제될 수 있고, 청구된 조합은 부조합 또는 부조합의 변형에 관련될 수 있다.
유사하게, 도면에는 동작이 특정 순서로 도시되지만, 이것은 바람직한 결과들을 달성하기 위해 그러한 동작들이 도시된 특정 순서로 또는 순차적으로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황들에서, 멀티태스킹 및 병렬 처리가 이로울 수도 있다. 또한, 각종 시스템 컴포넌트들을 상술한 구현들로 분리하는 것은 모든 구현들이 이렇게 분리되어야 함을 요구하는 것으로 이해되어서는 안되고, 기술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 하나의 소프트웨어 제품으로 함께 통합되거나 복수의 소프트웨어 제품들로 패키징될 수 있다고 이해되어야 한다.
따라서, 청구 대상의 특정 구현들이 설명되었다. 다른 구현예가 이하의 청구항의 범주 내에 있다. 일부 경우들에서, 청구항들에 언급된 액션들은 상이한 순서로 수행되고 여전히 바람직한 결과들을 달성할 수 있다. 또한, 첨부 도면들에 묘사된 프로세스들은 바람직한 결과들을 달성하기 위해, 도시된 특정한 순서, 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 특정 구현들에서, 멀티태스킹 및 병렬 처리가 이로울 수 있다.
본 개시에서 수 개의 실시예가 제공되었지만, 개시된 시스템 및 방법은 본 개시의 취지 또는 범위로부터 벗어나지 않으면서도 다수의 다른 구체적인 형태로 구현될 수도 있다는 것을 이해해야 한다. 본 예시는 제한이 아닌 예시로서 고려되어야 하며, 여기에 주어진 세부사항로 한정되도록 의도되지 않는다. 예를 들어, 여러 요소 또는 컴포넌트가 다른 시스템 내에 결합 또는 통합될 수 있거나, 또는 특정 특징들이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 별개로 또는 분리되어 설명되고 예시된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위로부터 벗어나지 않고서 다른 시스템, 모듈, 기술 또는 방법과 조합되거나 통합될 수 있다. 서로 결합되거나 직접 결합되거나 통신하는 것으로 도시되거나 논의된 다른 아이템들은 전기적으로, 기계적으로, 또는 다르게, 소정의 인터페이스, 장치 또는 중간 컴포넌트를 통해 간접적으로 결합되거나 통신할 수 있다. 변화, 대체 및 변경의 다른 예는 본 기술분야의 숙련된 자에 의해 확인가능하며, 본 명세서에 개시된 취지 및 범위를 벗어나지 않고서 달성질 수 있다.
삭제
삭제
Claims (18)
- 인트라 예측을 위한 최고 확률 모드(MPM, Most Probable Mode) 리스트를 구성하는 방법으로서,
현재 코딩 블록의 좌측 블록이 이용가능한지 여부를 결정하는 단계와,
상기 현재 코딩 블록의 상부 블록이 이용가능한지 여부를 결정하는 단계와,
다음의 조건:
상기 현재 코딩 블록의 상기 좌측 블록이 이용 불가능하고, 상기 현재 코딩 블록의 상기 상부 블록이 이용 불가능함;
상기 현재 코딩 블록의 상기 좌측 블록이 이용 불가능하고, 상기 현재 코딩 블록의 상기 상부 블록이 이용 가능하며, 상기 상부 블록의 인트라 예측 모드가 평면(Planar) 모드임;
상기 현재 코딩 블록의 상기 좌측 블록이 이용 불가능하고, 상기 현재 코딩 블록의 상기 상부 블록이 이용 가능하며, 상기 상부 블록의 인트라 예측 모드가 DC 모드임;
상기 현재 코딩 블록의 상기 좌측 블록이 이용 가능하고, 상기 현재 코딩 블록의 상기 상부 블록이 이용 불가능하며, 상기 좌측 블록의 인트라 예측 모드가 평면 모드임;
상기 현재 코딩 블록의 상기 좌측 블록이 이용 가능하고, 상기 현재 코딩 블록의 상기 상부 블록이 이용 불가능하며, 상기 좌측 블록의 인트라 예측 모드가 DC 모드임;
상기 현재 코딩 블록의 상기 좌측 블록이 이용 가능하고, 상기 현재 코딩 블록의 상기 상부 블록이 이용 가능하며, 상기 좌측 블록의 인트라 예측 모드가 각도 모드가 아니며, 상기 상부 블록의 인트라 예측 모드가 각도 모드가 아님;
중 하나의 조건이 만족되면, 평면 모드, DC 모드, 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 오프셋 4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드를 사용해서 상기 현재 코딩 블록의 인트라 예측 모드의 값을 획득하는 단계
를 포함하는 방법.
- ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 현재 코딩 블록의 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계를 더 포함하고,
상기 현재 코딩 블록의 상기 인트라 예측 모드의 상기 값은 상기 현재 코딩 블록의 상기 MPM 플래그의 값, 및 상기 평면 모드, 상기 DC 모드, 상기 수직 모드(VER_IDX), 상기 수평 모드(HOR_IDX), 오프셋 -4를 갖는 상기 수직 모드에 대응하는 상기 인트라 예측 모드, 오프셋 4를 갖는 상기 수직 모드에 대응하는 상기 인트라 예측 모드에 기초해서 획득되는
방법.
- 제 1 항에 있어서,
상기 현재 코딩 블록의 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계와,
상기 현재 코딩 블록의 인트라 예측 모드 인덱스 값을 획득하는 단계
를 더 포함하고,
상기 현재 코딩 블록의 상기 인트라 예측 모드의 상기 값은 상기 현재 코딩 블록의 상기 MPM 플래그의 값, 상기 현재 코딩 블록의 상기 인트라 예측 모드 인덱스 값 및 상기 평면 모드, 상기 DC 모드, 상기 수직 모드(VER_IDX), 상기 수평 모드(HOR_IDX), 오프셋 -4를 갖는 상기 수직 모드에 대응하는 상기 인트라 예측 모드, 오프셋 4를 갖는 상기 수직 모드에 대응하는 상기 인트라 예측 모드에 기초해서 획득되는
방법.
- 제 3 항에 있어서,
상기 현재 코딩 블록의 상기 MPM 플래그의 값이 1이고, 상기 현재 코딩 블록의 상기 인트라 예측 모드 인덱스 값이 0인 경우, 상기 현재 코딩 블록의 상기 인트라 예측 모드는 평면 모드인
방법.
- 제 3 항에 있어서,
상기 현재 코딩 블록의 상기 MPM 플래그의 값이 0인 경우,
상기 현재 코딩 블록의 상기 인트라 예측 모드는, 평면 모드, DC 모드, 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 또는 오프셋 4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드의 인트라 예측 모드 중 어느 것과 동일하지 않은
방법.
- ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈비디오의 현재 블록을 디코딩하는 디코딩 방법으로서,
현재 코딩 블록의 좌측 블록이 이용 가능한지 여부를 결정하는 단계와,
상기 현재 코딩 블록의 상부 블록이 이용 가능한지 여부를 결정하는 단계와,
비트스트림으로부터 상기 현재 블록의 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계와,
상기 MPM 플래그의 값이 상기 현재 블록의 인트라 예측 모드가 인트라 예측 모드의 MPM 세트에 포함된 인트라 예측 모드라는 것을 나타내는 경우, 상기 비트스트림으로부터 상기 현재 블록의 MPM 인덱스를 획득하는 단계와,
상기 현재 블록의 상기 MPM 인덱스 및 상기 MPM 세트에 기초해서, 상기 현재 블록의 상기 인트라 예측 모드의 값을 획득하는 단계
를 포함하고,
상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드인 경우, 상기 예측 모드의 MPM 세트는, 평면 모드, DC 모드, 수직 모드, 수평 모드, 오프셋 -4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드를 포함하는
디코딩 방법.
- ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제 6 항에 있어서,
상기 현재 블록의 상기 MPM 플래그의 값이 1이고, 상기 현재 블록의 상기 MPM 인덱스가 0인 경우, 상기 현재 블록의 상기 인트라 예측 모드는 평면 모드인
디코딩 방법.
- ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈비디오의 현재 블록을 디코딩하는 디코딩 방법으로서,
현재 블록의 좌측 블록이 이용 가능한지 여부를 결정하는 단계와,
상기 현재 블록의 상부 블록이 이용 가능한지 여부를 결정하는 단계와,
비트스트림으로부터 상기 현재 블록의 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계와,
상기 MPM 플래그의 값이 상기 현재 블록의 인트라 예측 모드가 인트라 예측 모드의 MPM 세트에 포함된 인트라 예측 모드라는 것을 나타내는 경우, 상기 비트스트림으로부터 상기 현재 블록의 MPM 인덱스를 획득하는 단계와,
상기 현재 블록의 상기 MPM 인덱스 및 상기 MPM 세트에 기초해서, 상기 현재 블록의 상기 인트라 예측 모드의 값을 획득하는 단계
를 포함하고,
상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 DC 모드인 경우, 상기 예측 모드의 MPM 세트는, 평면 모드, DC 모드, 수직 모드, 수평 모드, 제 1 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 제 2 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드를 포함하는
디코딩 방법.
- ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제 8 항에 있어서,
상기 현재 블록의 상기 MPM 플래그의 값이 1이고, 상기 현재 블록의 상기 MPM 인덱스가 0인 경우, 상기 현재 블록의 상기 인트라 예측 모드는 평면 모드인
디코딩 방법.
- ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈비디오의 현재 블록을 디코딩하는 디코딩 방법으로서,
현재 블록의 좌측 블록이 이용 가능한지 여부를 결정하는 단계와,
상기 현재 블록의 상부 블록이 이용 가능한지 여부를 결정하는 단계와,
비트스트림으로부터 상기 현재 블록의 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계와,
상기 MPM 플래그의 값이 상기 현재 블록의 인트라 예측 모드가 인트라 예측 모드의 MPM 세트에 포함된 인트라 예측 모드라는 것을 나타내는 경우, 상기 비트스트림으로부터 상기 현재 블록의 MPM 인덱스를 획득하는 단계와,
상기 현재 블록의 상기 MPM 인덱스 및 상기 MPM 세트에 기초해서, 상기 현재 블록의 상기 인트라 예측 모드의 값을 획득하는 단계
를 포함하고,
상기 현재 블록의 좌측 이웃 블록이 이용 불가능하고, 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드인 경우, 상기 예측 모드의 MPM 세트는, 평면 모드, DC 모드, 수직 모드, 수평 모드, 오프셋 -4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드를 포함하는
디코딩 방법.
- ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈제 10 항에 있어서,
상기 현재 블록의 상기 MPM 플래그의 값이 1이고, 상기 현재 블록의 상기 MPM 인덱스가 0인 경우, 상기 현재 블록의 상기 인트라 예측 모드는 평면 모드인
디코딩 방법.
- ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈비디오의 현재 블록을 디코딩하는 디코딩 방법으로서,
현재 블록의 좌측 블록이 이용 가능한지 여부를 결정하는 단계와,
상기 현재 블록의 상부 블록이 이용 가능한지 여부를 결정하는 단계와,
비트스트림으로부터 상기 현재 블록의 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계와,
상기 MPM 플래그의 값이 상기 현재 블록의 인트라 예측 모드가 인트라 예측 모드의 MPM 세트에 포함된 인트라 예측 모드라는 것을 나타내는 경우, 상기 비트스트림으로부터 상기 현재 블록의 MPM 인덱스를 획득하는 단계와,
상기 현재 블록의 상기 MPM 인덱스 및 상기 MPM 세트에 기초해서, 상기 현재 블록의 상기 인트라 예측 모드의 값을 획득하는 단계
를 포함하고,
상기 현재 블록의 좌측 이웃 블록이 이용 불가능하고, 상기 현재 블록의 상부 이웃 블록이 이용 불가능한 경우, 상기 예측 모드의 MPM 세트는, 평면 모드, DC 모드, 수직 모드, 수평 모드, 오프셋 -4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드를 포함하는
디코딩 방법.
- ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제 12 항에 있어서,
상기 현재 블록의 상기 MPM 플래그의 값이 1이고, 상기 현재 블록의 상기 MPM 인덱스가 0인 경우, 상기 현재 블록의 상기 인트라 예측 모드는 평면 모드인
디코딩 방법.
- ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈비디오의 현재 블록을 디코딩하는 디코딩 방법으로서,
현재 블록의 좌측 블록이 이용 가능한지 여부를 결정하는 단계와,
상기 현재 블록의 상부 블록이 이용 가능한지 여부를 결정하는 단계와,
비트스트림으로부터 상기 현재 블록의 MPM 플래그의 값을 획득하는 단계와,
상기 MPM 플래그의 값이 상기 현재 블록의 인트라 예측 모드가 인트라 예측 모드의 MPM 세트에 포함된 인트라 예측 모드라는 것을 나타내는 경우, 상기 비트스트림으로부터 상기 현재 블록의 MPM 인덱스를 획득하는 단계와,
상기 현재 블록의 상기 MPM 인덱스 및 상기 MPM 세트에 기초해서, 상기 현재 블록의 상기 인트라 예측 모드의 값을 획득하는 단계
를 포함하고,
상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 상기 현재 블록의 상부 이웃 블록이 이용 불가능한 경우, 상기 예측 모드의 MPM 세트는, 평면 모드, DC 모드, 수직 모드, 수평 모드, 오프셋 -4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 오프셋 4를 갖는 상기 수직 모드에 대응하는 인트라 예측 모드를 포함하는
디코딩 방법.
- ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈제 14 항에 있어서,
상기 현재 블록의 상기 MPM 플래그의 값이 1이고, 상기 현재 블록의 상기 MPM 인덱스가 0인 경우, 상기 현재 블록의 상기 인트라 예측 모드는 평면 모드인
디코딩 방법.
- 제 1 항 내지 제 15 항 중 어느 한 항에 따른 방법을 수행하는 처리 회로를 포함하는 디코더.
- 제 1 항 내지 제 15 항 중 어느 한 항에 따른 방법을 수행하는 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체에 기록된 컴퓨터 프로그램.
- MPM 리스트를 구성하는 디코더로서,
하나 이상의 프로세서와,
상기 프로세서에 연결되고, 상기 프로세서에 의한 실행을 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체
를 포함하고,
상기 프로그램은, 상기 프로세서에 의해 실행될 때, 제 1 항 내지 제 15 항 중 어느 한 항에 따른 방법을 수행하도록 상기 디코더를 구성하는
디코더.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237019594A KR20230088850A (ko) | 2018-09-21 | 2019-09-21 | 이웃 블록에 기초한 인트라 예측 모드 도출 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862734877P | 2018-09-21 | 2018-09-21 | |
US62/734,877 | 2018-09-21 | ||
PCT/CN2019/107142 WO2020057663A1 (en) | 2018-09-21 | 2019-09-21 | Intra prediction mode derivation based on neighboring blocks |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237019594A Division KR20230088850A (ko) | 2018-09-21 | 2019-09-21 | 이웃 블록에 기초한 인트라 예측 모드 도출 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210049932A KR20210049932A (ko) | 2021-05-06 |
KR102543792B1 true KR102543792B1 (ko) | 2023-06-16 |
Family
ID=69888330
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237019594A KR20230088850A (ko) | 2018-09-21 | 2019-09-21 | 이웃 블록에 기초한 인트라 예측 모드 도출 |
KR1020217010709A KR102543792B1 (ko) | 2018-09-21 | 2019-09-21 | 이웃 블록에 기초한 인트라 예측 모드 도출 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237019594A KR20230088850A (ko) | 2018-09-21 | 2019-09-21 | 이웃 블록에 기초한 인트라 예측 모드 도출 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11297345B2 (ko) |
KR (2) | KR20230088850A (ko) |
CN (2) | CN117651133A (ko) |
AU (1) | AU2019344407B2 (ko) |
BR (1) | BR112021005220A2 (ko) |
CA (1) | CA3113370A1 (ko) |
MX (1) | MX2021003297A (ko) |
NZ (1) | NZ774476A (ko) |
WO (1) | WO2020057663A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11516506B2 (en) * | 2018-10-05 | 2022-11-29 | Lg Electronics Inc. | Method and apparatus for processing image service |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101507344B1 (ko) * | 2009-08-21 | 2015-03-31 | 에스케이 텔레콤주식회사 | 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체 |
PL3139596T3 (pl) * | 2011-09-13 | 2020-03-31 | Hfi Innovation Inc. | Sposób i urządzenie do kodowania wewnątrzklatkowego w HEVC |
CN107197309B (zh) * | 2011-10-07 | 2020-02-18 | 英迪股份有限公司 | 对视频信号进行解码的方法 |
KR20130049522A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
WO2016195460A1 (ko) * | 2015-06-05 | 2016-12-08 | 한양대학교 산학협력단 | 화면 내 예측에 대한 부호화/복호화 방법 및 장치 |
US10841593B2 (en) * | 2015-06-18 | 2020-11-17 | Qualcomm Incorporated | Intra prediction and intra mode coding |
US10448011B2 (en) * | 2016-03-18 | 2019-10-15 | Mediatek Inc. | Method and apparatus of intra prediction in image and video processing |
US10547854B2 (en) * | 2016-05-13 | 2020-01-28 | Qualcomm Incorporated | Neighbor based signaling of intra prediction modes |
US10368107B2 (en) * | 2016-08-15 | 2019-07-30 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
US10506228B2 (en) * | 2016-10-04 | 2019-12-10 | Qualcomm Incorporated | Variable number of intra modes for video coding |
CN111034196B (zh) * | 2017-08-21 | 2023-11-17 | 韩国电子通信研究院 | 用于对视频进行编码/解码的方法和设备以及存储比特流的记录介质 |
US10652534B2 (en) * | 2018-03-08 | 2020-05-12 | Tencent America LLC | Methods and apparatus for directional intra prediction in video compression |
IL279503B2 (en) * | 2018-06-25 | 2024-09-01 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Interior-frame and device prediction method |
US11509890B2 (en) * | 2018-07-24 | 2022-11-22 | Hfi Innovation Inc. | Methods and apparatus for entropy coding and decoding aspects of video data |
WO2020050697A1 (ko) * | 2018-09-06 | 2020-03-12 | 엘지전자 주식회사 | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
WO2020055159A1 (ko) * | 2018-09-11 | 2020-03-19 | 엘지전자 주식회사 | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
US10771778B2 (en) * | 2018-09-14 | 2020-09-08 | Tencent America LLC | Method and device for MPM list generation for multi-line intra prediction |
-
2019
- 2019-09-21 AU AU2019344407A patent/AU2019344407B2/en active Active
- 2019-09-21 CA CA3113370A patent/CA3113370A1/en active Pending
- 2019-09-21 WO PCT/CN2019/107142 patent/WO2020057663A1/en active Application Filing
- 2019-09-21 BR BR112021005220-8A patent/BR112021005220A2/pt unknown
- 2019-09-21 CN CN202311323080.XA patent/CN117651133A/zh active Pending
- 2019-09-21 KR KR1020237019594A patent/KR20230088850A/ko not_active Application Discontinuation
- 2019-09-21 CN CN201980047356.1A patent/CN112425165B/zh active Active
- 2019-09-21 KR KR1020217010709A patent/KR102543792B1/ko active IP Right Grant
- 2019-09-21 NZ NZ774476A patent/NZ774476A/en unknown
- 2019-09-21 MX MX2021003297A patent/MX2021003297A/es unknown
-
2020
- 2020-08-24 US US17/000,765 patent/US11297345B2/en active Active
Non-Patent Citations (2)
Title |
---|
Chien et al. "Parsing friendly intra mode coding", Joint Collaborative Team on Video Coding (JCT-VC), JCTVC-F459 (2011.07.22.)* |
M.G. Sarwer et al., "CE3-related: Intra mode coding", JVET-K0243, version 2, 2018.7.11. |
Also Published As
Publication number | Publication date |
---|---|
CN112425165B (zh) | 2023-10-20 |
KR20230088850A (ko) | 2023-06-20 |
NZ774476A (en) | 2023-05-26 |
MX2021003297A (es) | 2021-05-13 |
US11297345B2 (en) | 2022-04-05 |
BR112021005220A2 (pt) | 2021-06-15 |
KR20210049932A (ko) | 2021-05-06 |
US20200389668A1 (en) | 2020-12-10 |
CA3113370A1 (en) | 2020-03-26 |
WO2020057663A1 (en) | 2020-03-26 |
CN117651133A (zh) | 2024-03-05 |
AU2019344407A1 (en) | 2021-04-15 |
AU2019344407B2 (en) | 2022-07-07 |
CN112425165A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2023229601B2 (en) | Method and apparatus for intra prediction | |
AU2023202685B2 (en) | Method and apparatus for intra prediction | |
US11503335B2 (en) | Method and apparatus for intra prediction | |
US11277608B2 (en) | Method and apparatus for intra prediction | |
KR102543792B1 (ko) | 이웃 블록에 기초한 인트라 예측 모드 도출 | |
KR102571856B1 (ko) | 인트라 예측 방법 및 장치 | |
RU2784004C2 (ru) | Деривация режима внутреннего предсказания на основе соседних блоков |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |