KR20240042127A - 인트라 예측을 위한 방법 및 장치 - Google Patents

인트라 예측을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20240042127A
KR20240042127A KR1020247008707A KR20247008707A KR20240042127A KR 20240042127 A KR20240042127 A KR 20240042127A KR 1020247008707 A KR1020247008707 A KR 1020247008707A KR 20247008707 A KR20247008707 A KR 20247008707A KR 20240042127 A KR20240042127 A KR 20240042127A
Authority
KR
South Korea
Prior art keywords
mode
intra prediction
idx
prediction mode
block
Prior art date
Application number
KR1020247008707A
Other languages
English (en)
Inventor
뱌오 왕
세미 에센리크
아난드 메헤르 코트라
한 가오
젠러 첸
즈제 자오
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20240042127A publication Critical patent/KR20240042127A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

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

Abstract

비디오의 현재 블록을 디코딩하기 위한 디코딩 방법 및 디코더가 제공되며, 여기서 디코딩 방법은: 비트스트림으로부터 현재 블록에 대한 최고 확률 모드, MPM, 플래그의 값을 획득하는 단계; MPM 플래그의 값이 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함된 인트라 예측 모드임을 표시할 때, 비트스트림으로부터 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및 현재 블록에 대한 MPM 인덱스 및 상기 MPM 세트에 기초하여, 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계를 포함하고; 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드일 때, 예측 모드들의 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드를 포함한다.

Description

인트라 예측을 위한 방법 및 장치{METHOD AND APPARATUS FOR INTRA PREDICTION}
본 개시내용은 이미지 및/또는 비디오 코딩 및 디코딩의 기술 분야에 관한 것으로, 특히 인트라 예측을 위한 방법 및 장치에 관한 것이다.
디지털 비디오는 DVD 디스크가 도입된 이후로 널리 사용되고 있다. 송신 전에, 비디오는 송신 매체를 사용하여 인코딩되고 송신된다. 시청자는 비디오를 수신하고 시청 디바이스(viewing device)를 사용하여 비디오를 디코딩하고 디스플레이한다. 수년에 걸쳐, 비디오의 품질은 예를 들어, 더 높은 해상도, 컬러 깊이, 및 프레임 레이트로 인해 개선되었다. 이것은 오늘날 인터넷 및 이동 통신 네트워크를 통해 흔히 송신되는 더 큰 데이터 스트림으로 이어졌다.
그러나, 더 높은 해상도의 비디오들은 전형적으로 더 많은 정보를 갖기 때문에 더 많은 대역폭을 필요로 한다. 대역폭 요건들을 줄이기 위해, 비디오의 압축을 수반하는 비디오 코딩 표준들이 도입되었다. 비디오가 인코딩될 때, 대역폭 요건들(또는 저장의 경우 대응하는 메모리 요건들)이 감소된다. 종종 이러한 감소는 품질을 희생하게 된다. 따라서, 비디오 코딩 표준들은 대역폭 요건들과 품질 사이의 균형을 찾으려고 시도한다.
고효율 비디오 코딩(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(JTC1/SC29/WG11)은 현재 HEVC 표준(스크린 콘텐츠 코딩 및 높은 동적 범위 코딩을 위한 그것의 현재 확장들 및 단기 확장들을 포함함)의 압축 능력을 상당히 초과하는 압축 능력을 갖는 미래의 비디오 코딩 기술의 표준화에 대한 잠재적인 필요성을 연구하고 있다. 그룹들은, 이 분야에서 그들의 전문가들에 의해 제안된 압축 기술 설계들을 평가하기 위해 JVET(Joint Video Exploration Team)로서 알려진 공동 협력 작업에서 이러한 탐구 활동에 대해 함께 작업하고 있다.
VTM(Versatile Test Model) 표준은 35개의 인트라 모드를 사용하는 반면 BMS(Benchmark Set)는 67개의 인트라 모드를 사용한다.
현재 BMS에 설명된 인트라 모드 코딩 방식은 복잡한 것으로 간주되며 비선택된 모드 세트의 단점은 인덱스 리스트가 항상 일정하다는 것이다.
본 출원의 실시예들은 독립 청구항들에 따른 디코딩을 위한 장치들 및 방법들을 제공한다.
본 출원의 실시예들은 예를 들어, 인트라 예측을 위한 효율적인 최고 확률 모드(MPM) 방식을 제공한다.
전술한 목적 및 다른 목적은 독립 청구항들의 요지에 의해 달성된다. 추가적인 구현 형태는 종속 청구항, 설명 및 도면으로부터 명백하다.
특정 실시예들은 첨부된 독립 청구항들에 약술되고, 다른 실시예들은 종속 청구항들에 약술된다.
본 발명의 제1 양태는 비디오의 현재 블록을 디코딩하기 위한 방법에 관한 것으로, 디코딩 방법은: 비트스트림으로부터 현재 블록에 대한 최고 확률 모드, MPM, 플래그의 값을 획득하는 단계; MPM 플래그의 값이 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함된 인트라 예측 모드임을 표시할 때, 비트스트림으로부터 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및 현재 블록에 대한 MPM 인덱스 및 MPM 세트에 기초하여, 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계를 포함하고; 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드일 때, 예측 모드들의 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드를 포함한다. 이 방법은, 예를 들어, 비디오 디코딩 디바이스에 의해 수행될 수 있다.
제1 양태에 따른 방법의 가능한 구현 형태에서, 현재 블록에 대한 MPM 플래그의 값이 1이고 현재 블록에 대한 MPM 인덱스가 0일 때, 현재 블록에 대한 인트라 예측 모드는 평면 모드이다.
제1 양태 또는 제1 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제1 오프셋은 -4이다.
제1 양태 또는 제1 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제2 오프셋은 +4이다.
본 발명의 제2 양태는 비디오의 현재 블록을 디코딩하기 위한 방법에 관한 것으로, 디코딩 방법은: 비트스트림으로부터 현재 블록에 대한 최고 확률 모드, MPM, 플래그의 값을 획득하는 단계; MPM 플래그의 값이 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함된 인트라 예측 모드임을 표시할 때, 비트스트림으로부터 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및 현재 블록에 대한 MPM 인덱스 및 MPM 세트에 기초하여, 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계를 포함하고; 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 DC 모드일 때, 예측 모드들의 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드를 포함한다. 이 방법은, 예를 들어, 비디오 디코딩 디바이스에 의해 수행될 수 있다.
제2 양태에 따른 방법의 가능한 구현 형태에서, 현재 블록에 대한 MPM 플래그의 값이 1이고 현재 블록에 대한 MPM 인덱스가 0일 때, 현재 블록에 대한 인트라 예측 모드는 평면 모드이다.
제2 양태 또는 제2 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제1 오프셋은 -4이다.
제2 양태 또는 제2 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제2 오프셋은 +4이다.
본 발명의 제3 양태는 비디오의 현재 블록을 디코딩하기 위한 방법에 관한 것으로, 디코딩 방법은: 비트스트림으로부터 현재 블록에 대한 최고 확률 모드, MPM, 플래그의 값을 획득하는 단계; MPM 플래그의 값이 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함된 인트라 예측 모드임을 표시할 때, 비트스트림으로부터 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및
현재 블록에 대한 MPM 인덱스 및 MPM 세트에 기초하여, 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계를 포함하고; 현재 블록의 좌측 이웃 블록이 이용가능하지 않고, 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드일 때, 예측 모드들의 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드를 포함한다. 이 방법은, 예를 들어, 비디오 디코딩 디바이스에 의해 수행될 수 있다.
제3 양태에 따른 방법의 가능한 구현 형태에서, 현재 블록에 대한 MPM 플래그의 값이 1이고 현재 블록에 대한 MPM 인덱스가 0일 때, 현재 블록에 대한 인트라 예측 모드는 평면 모드이다.
제3 양태 또는 제3 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제1 오프셋은 -4이다.
제3 양태 또는 제3 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제2 오프셋은 +4이다.
본 발명의 제4 양태는 비디오의 현재 블록을 디코딩하기 위한 방법에 관한 것으로, 디코딩 방법은: 비트스트림으로부터 현재 블록에 대한 최고 확률 모드, MPM, 플래그의 값을 획득하는 단계; MPM 플래그의 값이 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함된 인트라 예측 모드임을 표시할 때, 비트스트림으로부터 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및
현재 블록에 대한 MPM 인덱스 및 MPM 세트에 기초하여, 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계를 포함하고; 현재 블록의 좌측 이웃 블록이 이용가능하지 않고, 현재 블록의 상부 이웃 블록이 이용가능하지 않을 때, 예측 모드들의 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드를 포함한다. 이 방법은, 예를 들어, 비디오 디코딩 디바이스에 의해 수행될 수 있다.
제4 양태에 따른 방법의 가능한 구현 형태에서, 현재 블록에 대한 MPM 플래그의 값이 1이고 현재 블록에 대한 MPM 인덱스가 0일 때, 현재 블록에 대한 인트라 예측 모드는 평면 모드이다.
제4 양태 또는 제4 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제1 오프셋은 -4이다.
제4 양태 또는 제4 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제2 오프셋은 +4이다.
본 발명의 제5 양태는 비디오의 현재 블록을 디코딩하기 위한 방법에 관한 것으로, 디코딩 방법은: 비트스트림으로부터 현재 블록에 대한 최고 확률 모드, MPM, 플래그의 값을 획득하는 단계; MPM 플래그의 값이 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함된 인트라 예측 모드임을 표시할 때, 비트스트림으로부터 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및
현재 블록에 대한 MPM 인덱스 및 MPM 세트에 기초하여, 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계를 포함하고; 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고, 현재 블록의 상부 이웃 블록이 이용가능하지 않을 때, 예측 모드들의 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 수직 모드에 대응하는 인트라 예측 모드를 포함한다. 이 방법은, 예를 들어, 비디오 디코딩 디바이스에 의해 수행될 수 있다.
제5 양태에 따른 방법의 가능한 구현 형태에서, 현재 블록에 대한 MPM 플래그의 값이 1이고 현재 블록에 대한 MPM 인덱스가 0일 때, 현재 블록에 대한 인트라 예측 모드는 평면 모드이다.
제5 양태 또는 제5 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제1 오프셋은 -4이다.
제5 양태 또는 제5 양태의 임의의 선행하는 구현에 따른 방법의 가능한 구현 형태에서, 제2 오프셋은 +4이다.
본 발명의 제5 양태는 프로세서 및 메모리를 포함하는, 비디오 스트림을 디코딩하기 위한 장치에 관한 것이다. 메모리는 프로세서로 하여금 제1 내지 제4 양태에 따른 방법 또는 제1 내지 제4 양태의 임의의 가능한 구현 또는 실시예에 따른 방법을 수행하게 하는 명령어들을 저장하고 있다.
본 발명의 제6 양태는 실행될 때 비디오 데이터를 코딩하도록 구성된 하나 이상의 프로세서로 하여금 수행하게 하는 명령어들이 저장된 컴퓨터 판독가능 저장 매체에 관한 것이다. 명령어들은 하나 이상의 프로세서로 하여금 제1 내지 제4 양태에 따른 방법 또는 제1 내지 제4 양태의 임의의 가능한 구현 또는 실시예에 따른 방법을 수행하게 한다.
제7 양태에 따르면, 본 발명은 컴퓨터 상에서 실행될 때 제1 내지 제4 양태에 따른 방법 또는 제1 내지 제4 양태의 임의의 가능한 구현 또는 실시예에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램에 관한 것이다.
또한, 본 출원의 실시예들은 예를 들어, 비선택된 모드 세트가 현재 블록 속성들에 기초하여 적응적인, 예를 들어, 그의 이웃 블록들의 인트라 모드들에 기초하여 적응적인 인트라 모드 코딩 방식을 제공한다.
하나 이상의 실시예의 세부사항들은 이하의 첨부 도면들 및 설명에 제시된다. 다른 특징들, 목적들 및 이점들은 설명, 도면들 및 청구항들로부터 명백할 것이다.
이하의 실시예들은 첨부 도면들 및 도면들을 참조하여 보다 상세히 설명된다.
도 1은 본 발명의 실시예들을 구현하도록 구성된 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 2는 본 발명의 실시예들을 구현하도록 구성된 비디오 인코더의 예를 도시하는 블록도이다.
도 3은 본 발명의 실시예들을 구현하도록 구성된 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 4는 67개의 인트라 예측 모드를 나타내는 개략도를 도시한다.
도 5는 MPM 도출을 위한 인접 블록들을 나타내는 개략도를 도시한다.
도 6은 나머지 모드 리스트 내의 처음 3개의 모드를 도출하는데 사용되는 제2 계층 이웃 블록 인트라 모드들을 나타내는 개략도를 도시한다.
도 7은 나머지 모드 리스트 생성 프로세스에서의 처음 3개의 모드의 예를 나타내는 개략도를 도시한다.
도 8은 비디오 디코딩 방법의 예를 나타내는 개략도를 도시한다.
도 9는 비디오 디코딩 방법의 예를 나타내는 다른 개략도를 도시한다.
도 10은 장치의 블록도를 도시한다.
인트라 예측을 위한 장치 및 방법이 개시된다. 이 장치 및 방법은 매핑 프로세스를 사용하여 인트라 예측을 위한 계산 절차를 단순화함으로써, 코딩 효율을 향상시킨다. 보호 범위는 청구항들에 의해 정의된다.
두문자어들 및 용어들의 정의들
CTU/CTB - 코딩 트리 유닛/코딩 트리 블록
CU/CB - 코딩 유닛/코딩 블록
PU/PB - 예측 유닛/예측 블록
TU/TB - 변환 유닛/변환 블록
HEVC - 고효율 비디오 코딩
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)로서 알려진 공동 협력 작업에서 이러한 탐구 활동에 대해 함께 작업하고 있다.
다음의 설명에서, 본 개시내용의 일부를 형성하고 본 발명이 배치될 수 있는 특정 양태들이 예시로서 도시되는 첨부 도면들을 참조한다.
예를 들어, 설명된 방법과 관련된 개시내용은 또한 그 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해 유효할 수 있고, 그 반대의 경우도 마찬가지라는 것이 이해된다. 예를 들어, 특정 방법 단계가 설명되는 경우, 대응하는 디바이스는 설명된 방법 단계를 수행하기 위한 유닛을 포함할 수 있는데, 이는 그러한 유닛이 도면들에 명시적으로 설명 또는 예시되어 있지 않더라도 그러하다. 추가로, 구체적으로 달리 언급되지 않는 한, 본 명세서에서 설명되는 다양한 예시적인 양태들의 특징들은 서로 조합될 수 있다는 것이 이해된다.
비디오 코딩은 통상적으로 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 처리를 지칭한다. 픽처, 이미지 또는 프레임이라는 용어는 본 출원에서 뿐만 아니라 비디오 코딩 분야에서 동의어로 사용될 수 있다. 각각의 픽처는 통상적으로 비중첩 블록들의 세트로 분할된다. 픽처의 인코딩/디코딩은 통상적으로 블록 레벨에서 수행되고, 여기서 예를 들어, 인터 프레임 예측 또는 인트라 프레임 예측을 예측 블록 생성에 사용하여, 현재 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 감산함으로써 잔차 블록을 획득하는데, 이 잔차 블록은 추가로 변환 및 양자화되어 송신될 데이터의 양을 감소(압축)시키는 반면, 디코더 측에서는, 역 처리가 인코딩/압축된 블록에 적용되어 표현을 위해 블록을 재구성한다.
도 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차원 어레이 또는 행렬이거나 그것으로 간주될 수 있다. 어레이 내의 샘플은 픽셀(짧은 형태의 픽처 요소) 또는 펠(pel)이라고도 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)에서의 샘플들의 수는 픽처의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 통상적으로 3개의 컬러 성분이 이용되는데, 즉 픽처는 3개의 샘플 어레이를 나타내거나 포함할 수 있다. RBG 포맷 또는 컬러 공간에서, 픽처는 대응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 통상적으로 휘도/색차 포맷 또는 컬러 공간, 예를 들어, YCbCr로 표현되고, 이는 Y로 표시된 휘도 성분(때때로 그 대신에 L이 사용됨) 및 Cb 및 Cr로 표시된 2개의 색차 성분들을 포함한다. 휘도(또는 짧게 루마) 성분 Y는 밝기 또는 그레이 레벨 강도(예를 들어, 그레이-스케일 픽처에서와 같음)를 나타내는 반면, 2개의 색차(또는 짧게 크로마) 성분 Cb 및 Cr은 색도 또는 컬러 정보 성분들을 나타낸다. 따라서, YCbCr 포맷의 픽처는 휘도 샘플 값들(Y)의 휘도 샘플 어레이, 및 색차 값들(Cb 및 Cr)의 2개의 색차 샘플 어레이를 포함한다. RGB 포맷의 픽처들은 YCbCr 포맷으로 변환 또는 변형될 수 있고, 그 반대의 경우도 가능하며, 프로세스는 컬러 변환 또는 변형으로도 알려져 있다. 픽처가 흑백이면, 픽처는 휘도 샘플 어레이만을 포함할 수 있다.
픽처 소스(16)(예를 들어, 비디오 소스(16))는 예를 들어, 픽처를 캡처하기 위한 카메라, 이전에 캡처되거나 생성된 픽처를 포함하거나 저장하는 메모리, 예를 들어, 픽처 메모리, 및/또는 픽처를 획득하거나 수신하기 위한 임의의 종류의 인터페이스(내부 또는 외부)일 수 있다. 카메라는 예를 들어, 소스 디바이스에 통합된 로컬 또는 통합된 카메라일 수 있고, 메모리는 예를 들어, 소스 디바이스에 통합된 로컬 또는 통합된 메모리일 수 있다. 인터페이스는 예를 들어, 외부 비디오 소스, 예를 들어, 카메라와 같은 외부 픽처 캡처링 디바이스, 외부 메모리, 또는 외부 픽처 생성 디바이스, 예를 들어, 외부 컴퓨터 그래픽 프로세서, 컴퓨터 또는 서버로부터 픽처를 수신하는 외부 인터페이스일 수 있다. 인터페이스는 임의의 종류의 인터페이스, 예를 들어, 유선 또는 무선 인터페이스, 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따른 광 인터페이스일 수 있다. 픽처 데이터(17)를 획득하기 위한 인터페이스는 통신 인터페이스(22)와 동일한 인터페이스 또는 그 일부일 수 있다.
전처리 유닛(18) 및 전처리 유닛(18)에 의해 수행되는 처리와 구별하여, 픽처 또는 픽처 데이터(17)(예를 들어, 비디오 데이터(16))는 원시 픽처 또는 원시 픽처 데이터(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)를 수신하여 디코딩된 픽처(131)를 획득하도록 구성된다. 디코딩 프로세스 동안, 비디오 디코더(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에 도시된 바와 같이, 이 세트는 다음의 모드들: 평면 모드(인트라 예측 모드 인덱스가 0임), DC 모드(인트라 예측 모드 인덱스가 1임), 및 180° 범위를 커버하고 도 4에서 흑색 화살표들로 도시된 2 내지 34의 인트라 예측 모드 인덱스 값 범위를 갖는 방향성(각도) 모드들을 포함한다. 내추럴 비디오(natural video)에서 제시된 임의의 에지 방향들을 캡처하기 위해, 방향성 인트라 모드들의 수는, HEVC에서 사용되는 바와 같이, 33에서 65로 확장된다. 추가적인 방향 모드들은 도 4에서 점선 화살표들로 도시되며, 평면 및 DC 모드들은 동일하게 유지된다. 인트라 예측 모드들에 의해 커버되는 범위는 180° 보다 넓을 수 있다는 점에 주목할 만한 가치가 있다. 특히, 3 내지 64의 인덱스 값들을 갖는 62개의 방향성 모드는 대략 230° 의 범위를 커버하는데, 즉, 몇몇 쌍들의 모드는 반대 방향성을 갖는다. HEVC 기준 모델(HM) 및 JEM 플랫폼들의 경우에, 단지 한 쌍의 각도 모드(즉, 모드들 2 및 66) 만이 도 4에 도시된 바와 같이 반대 방향성을 갖는다. 예측자를 구성하기 위해, 종래의 각도 모드들은 참조 샘플들을 취하고, (필요한 경우) 이들을 필터링하여 샘플 예측자를 얻는다. 예측자를 구성하는데 필요한 참조 샘플의 수는 보간에 사용되는 필터의 길이에 의존한다(예를 들어, 바이리니어(bilinear) 및 큐빅 필터(cubic filter)들은, 각각, 2 및 4의 길이를 가짐).
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개의 그룹: 이웃 인트라 모드들, 도출된 인트라 모드들, 및 디폴트 인트라 모드들로 분류된다.
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들의 절단된 단항 이진화가 사용된다. 처음 3개의 빈은 현재 시그널링되고 있는 빈과 관련된 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) 1 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 ] )(8-11)
IntraPredModeY[ xPb ][ yPb ]는 다음의 순서화된 단계들에 의해 도출된다:
IntraPredModeY[ xPb ][ yPb ]는 intra_luma_mpm_remainder[ xPb ][ yPb ]와 동일하게 설정된다.
i가 0 내지 2(포함)와 동일한 경우, IntraPredModeY[ xPb ][ yPb ]가 candModeList[ i ]보다 크거나 같을 때, IntraPredModeY[ xPb ][ yPb ]의 값은 1씩 증분된다.
본 출원의 일 구현 형태에서, 프레임은 픽처와 동일하다.
본 개시내용의 일 양태에서, 최고 확률 모드, 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), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
본 출원의 일 구현 형태에서, 본 방법은 MPM 리스트 내에 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하거나 이들로 구성되는 각도 모드 후보들의 리스트를 추가로 포함하고; 본 방법은: 리스트 내의 그들의 순서에 따라, 리스트의 각도 모드가 MPM 리스트에 있는지를 반복적으로 판정하는 단계, 및 각각의 각도 모드가 MPM 리스트에 있지 않으면 각각의 각도 모드를 MPM 리스트 내에 추가하는 단계를 추가로 포함한다.
본 출원의 일 구현 형태에서, MPM 리스트를 구성하는 것은 예를 들어, 빈 MPM 리스트에 기초하여 현재 코딩 블록의 좌측 블록이 이용가능한지의 여부를 판정하는 단계로 시작한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 일반 좌측 방향에서의 다른 블록(예를 들어, 도 5의 BL 또는 AL)이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하고, 좌측 블록이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하지 않는 단계를 추가로 포함한다.
본 출원의 일 구현 형태에서, 본 방법은: 현재 코딩 블록의 상부 블록이 이용가능하지 않고 일반 상부 방향에서의 다른 블록(예를 들어, 도 5의 AR 또는 AL)이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하고, 상부 블록이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하지 않는 단계를 추가로 포함한다.
본 출원의 일 구현 형태에서, 본 방법은 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 그들이 MPM 리스트에 없는 경우 MPM 리스트에 추가하는 단계를 추가로 포함한다.
본 출원의 일 구현 형태에서, 본 방법은:
현재 코딩 블록의 좌측 및 상부 블록 양쪽 모두가 각도가 아닌 경우, 하나 이상의 다른 이웃 블록(예를 들어, 도 5의 BL 또는 AL 또는 AR)을 추가로 체크하는 단계를 추가로 포함한다. 그것들 중 임의의 것(BL, 또는 AL, 또는 AR)이 각도인 경우, 앞서 기술된 바와 같이, 이 각도 모드를 -1+1 도출 프로세스에 대한 시작 각도 모드로서 사용한다.
본 출원의 일 구현 형태에서, 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에 대응하는 인트라 예측 모드를 포함한다.
본 출원의 일 구현 형태에서, VER_IDX 더하기 오프셋 -4(the VER_IDX to add the offset -4)에 대응하는 인트라 예측 모드는 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을 갖는 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 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면,
인트라 예측 모드들의 세트의 제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에 대응하는 인트라 예측 모드, HOR_IDX 더하기 오프셋 4(HOR_IDX add an offset 4); 또는
(제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에 대응하는 인트라 예측 모드, 및 HOR_IDX 더하기 오프셋 4(HOR_IDX add an offset 4); 또는
수평 모드(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)에 대응하는 인트라 예측 모드.
본 출원의 일 구현 형태에서, 본 방법은:
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이고; 다른 예에서, 오프셋은 1이다. 일부 예들에서, 오프셋은 2 또는 -2일 수 있다.
본 출원의 일 구현에서, 본 방법은: 현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 각도 모드이면, 상부 블록의 예측 모드에 오프셋을 가산하여 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드가 MPM 리스트에 있지 않으면, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
일례에서, 오프셋은 -1이고; 다른 예에서, 오프셋은 1이다. 일부 예들에서, 오프셋은 2 또는 -2일 수 있다.
본 출원의 일 양태에서, 인코더는 상기 방법들을 수행하기 위한 처리 회로를 포함한다.
본 출원의 일 양태에서, 디코더는 상기 방법들을 수행하기 위한 처리 회로를 포함한다.
본 출원의 일 양태에서, 컴퓨터 프로그램 제품은 상기 방법들을 수행하기 위한 프로그램 코드를 포함한다.
본 출원의 일 양태에서, 최고 확률 모드, 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), VER_IDX 더하기 오프셋 -4(a VER_IDX add an offset -4) 또는 VER_IDX 더하기 오프셋 4(a VER_IDX add an offset 4)를 포함한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 디폴트 리스트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), VER_IDX 더하기 오프셋 4(a VER_IDX add an offset 4) 또는 VER_IDX 더하기 오프셋 -4(a VER_IDX add an offset -4)를 포함한다.
일례에서, 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 디폴트 리스트는 다음을 포함한다:
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2); 또는
수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), VER_IDX 더하기 오프셋 -1(VER_IDX add an offset -1), VER_IDX 더하기 오프셋 1(VER_IDX add an offset 1); 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VER_IDX 더하기 오프셋 -4, 및 VER_IDX 더하기 오프셋 4; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VDIA_IDX 더하기 오프셋 -4, 및 VER_IDX 더하기 오프셋 -1; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VDIA_IDX 더하기 오프셋 -4, VER_IDX 오프셋 +1; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VDIA_IDX 더하기 오프셋 -1, 및 VER_IDX 더하기 오프셋 -1; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VDIA_IDX 더하기 오프셋 -1, 및 VER_IDX 더하기 오프셋 1; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VER_IDX 더하기 오프셋 -1, 및 VDIA_IDX 더하기 오프셋 -4; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VER_IDX 더하기 오프셋 1, 및 VDIA_IDX 더하기 오프셋 -4; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VER_IDX 더하기 오프셋 -1, VDIA_IDX 더하기 오프셋 -1; 또는
수직 모드들(VER_IDX), 수직 대각선 모드(VDIA_IDX), VER_IDX 더하기 오프셋 1, 및 VDIA_IDX 더하기 오프셋 -1.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 상부 블록은 이용가능하지 않다면, 디폴트 리스트는:
수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고, 현재 코딩 블록의 상부 블록이 이용가능하면, 디폴트 리스트는 다음을 포함한다:
수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX); 또는
수직 모드(VER_IDX), 수평 모드(HOR_IDX), VER_IDX 더하기 오프셋 -4 또는 VER_IDX 더하기 오프셋 4; 또는
수직 모드(VER_IDX), 수평 모드(HOR_IDX), VER_IDX 더하기 오프셋 4 또는 VER_IDX 더하기 오프셋 -4.
일례에서, MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 디폴트 리스트는 다음을 포함한다:
수평 모드(HOR_IDX), 인트라 모드 2(2), HOR_IDX 더하기 오프셋 -1, 및 HOR_IDX 더하기 오프셋 1; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), HOR_IDX 더하기 오프셋 -4, 및 HOR_IDX 더하기 오프셋 4; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), 인트라 모드 2(2) 더하기 오프셋 4, 및 HOR_IDX 더하기 오프셋 -1; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), 인트라 모드 2(2) 더하기 오프셋 4, 및 HOR_IDX 더하기 오프셋 1; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), 인트라 모드 2(2) 더하기 오프셋 1, 및 HOR_IDX 더하기 오프셋 -1; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), 인트라 모드 2(2) 더하기 오프셋 1, 및 HOR_IDX 더하기 오프셋 1; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), HOR_IDX 더하기 오프셋 -1, 및 인트라 모드 2(2) 더하기 오프셋 4; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), HOR_IDX 더하기 오프셋 1, 및 인트라 모드 2(2) 더하기 오프셋 4; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), HOR_IDX 더하기 오프셋 -1, 및 인트라 모드 2(2) 더하기 오프셋 1; 또는
수평 모드들(HOR_IDX), 인트라 모드 2(2), HOR_IDX 더하기 오프셋 1, 및 인트라 모드 2(2) 더하기 오프셋 1.
본 출원의 일 구현 형태에서, 현재 코딩 블록의 좌측 블록이 이용가능하지 않을 때, 현재 코딩 블록의 상부 블록은 이용가능할 수 있거나 또는 이용가능하지 않을 수 있다.
본 출원의 일 구현 형태에서, 현재 코딩 블록의 상부 블록이 이용가능하지 않을 때, 현재 코딩 블록의 좌측 블록은 이용가능할 수 있거나 또는 이용가능하지 않을 수 있다.
본 출원의 일 구현 형태에서, 본 방법은 수직 모드(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), VER_IDX 더하기 오프셋 -4 또는 VER_IDX 더하기 오프셋 4를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
본 출원의 일 구현 형태에서, 본 방법은 수직 모드(VER_IDX), 수평 모드(HOR_IDX), VER_IDX 더하기 오프셋 4 또는 VER_IDX 더하기 오프셋 -4를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
일례에서, 단계 6이후에, MPM 리스트가 여전히 가득 차 있지 않은 경우, 디폴트 모드 리스트 내의 인트라 예측 모드를 MPM 리스트에 추가하고, 이러한 모드 또는 이러한 모드들이 MPM 리스트에 있지 않은 경우, MPM 리스트가 가득 찰 때까지 이러한 단계를 반복적으로 수행한다.
단계 7: 수직 모드(VER_IDX), 수평 모드(HOR_IDX), VER_IDX 더하기 오프셋 -4 또는 VER_IDX 더하기 오프셋 4를 MPM 리스트에 추가하거나; 또는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), VER_IDX 더하기 오프셋 4 또는 VER_IDX 더하기 오프셋 -4를 MPM 리스트에 추가한다.
예를 들어, 수직 모드가 MPM 리스트에 있지 않고 MPM 리스트가 가득 차 있지 않은 경우, 수직 모드를 MPM 리스트에 추가하고, 수직 모드를 추가한 후에 MPM 리스트가 가득 찬 경우, MPM 리스트 구성을 완료한다.
그리고 수직 모드를 추가한 후에 MPM 리스트가 여전히 가득 차 있지 않은 경우, 수평 모드가 MPM 리스트에 있는지를 체크한다. 수평 모드가 MPM 리스트에 있는 경우, 값이 VER_IDX 더하기 오프셋 -4의 값과 동일한 예측 모드가 MPM 리스트에 있는지를 추가로 체크하고; 값이 VER_IDX 더하기 오프셋 -4의 값과 동일한 예측 모드가 MPM 리스트에 없는 경우, 값이 VER_IDX 더하기 오프셋 -4의 값과 동일한 예측 모드를 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), VER_IDX 더하기 오프셋 -4 또는 VER_IDX 더하기 오프셋 4를 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이다.
본 개시내용은 인트라 모드 시그널링 방식의 개선을 목표로 한다. 본 개시내용에서는, 비디오 디코딩 방법 및 비디오 디코더가 제안된다.
도 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 비트를 사용하여 코딩된다.
본 출원의 다른 양태에서, 상기 인코딩 방법들을 수행하도록 구성된 처리 회로를 포함하는 인코더가 개시된다.
본 출원의 다른 양태에서, 상기 인코딩 방법들을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 개시된다.
본 출원의 다른 양태에서, 비디오 데이터를 인코딩하기 위한 인코더가 개시되며, 이 인코더는: 하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그래밍은, 프로세서들에 의해 실행될 때, 상기 인코딩 방법들을 수행하도록 인코더를 구성한다.
처리 회로는, 예를 들어, 소프트웨어 프로그래밍가능 프로세서 등에 의해, 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
본 출원의 일 구현 형태에서, 도 8에 따르면, 본 출원은 비디오 디코딩 방법을 개시하며, 이 방법은 다음을 포함한다:
S801: 픽처 블록의 인코딩된 데이터를 디코딩하여 픽처 블록에 대한 복수의 인트라 예측 모드로부터 인트라 예측 모드를 획득하는 단계;
픽처 블록에 대한 복수의 인트라 예측 모드는 최고 확률 모드들, MPM들의 세트와 비-MPM들의 세트를 포함하고, 비-MPM들의 세트는 인트라 예측 모드들의 제1 세트와 인트라 예측 모드들의 제2 세트를 포함하고, 인트라 예측 모드들의 제1 세트 내의 모드는 N 비트를 사용하여 인코딩되고, 인트라 예측 모드들의 제2 세트 내의 모드는 M 비트를 사용하여 인코딩되고, N 및 M은 양의 정수들이고, N은 M 미만이고,
픽처 블록의 인코딩된 데이터를 디코딩하여 픽처 블록에 대한 복수의 인트라 예측 모드로부터 인트라 예측 모드를 획득하는 단계(S801)는 다음을 포함한다:
S802: 인코딩된 데이터를 디코딩하여 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있는지의 여부를 나타내는 표시를 획득하는 단계; 표시가 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있지 않다는 것을 표시하면,
S803: 인트라 예측 모드들의 제1 세트 내의 적어도 하나의 인트라 예측 모드와 비-MPM들의 세트 내의 적어도 하나의 인트라 예측 모드 사이의 매핑 관계를 생성하는 단계;
S804: 인코딩된 데이터를 디코딩하여 픽처 블록에 대한 인트라 예측 모드 코드워드를 획득하는 단계;
S805: 매핑 관계 및 인트라 예측 모드 코드워드에 따라 픽처 블록에 대한 인트라 예측 모드를 획득하는 단계.
본 출원의 비디오 디코딩 방법에 따르면, 비-MPM들의 세트 내의 예측 모드들을 코딩하기 위해 절단된 이진화 방식이 사용되고, 매핑 관계가 생성되므로, 현재 블록에 대한 예측 모드는 더 적은 비트들을 사용하여 코딩될 더 높은 가능성을 갖고, 디코더 측에서의 계산 복잡도가 감소된다.
본 출원의 일 구현 형태에서, 도 9에 따르면, 본 출원은 비디오 디코딩 방법을 개시하며, 이 방법은 다음을 포함한다:
S901: 픽처 블록의 인코딩된 데이터를 수신하는 단계;
디코더 측은 인코더 측과 디코더 측 사이의 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 접속을 통해, 또는 임의의 종류의 네트워크, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 종류의 사설 및 공공 네트워크, 또는 이들의 임의의 종류의 조합을 통해 인코딩된 픽처 데이터를 수신하도록 구성될 수 있다.
S902: 인코딩된 데이터를 디코딩하여 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있는지의 여부를 나타내는 표시를 획득하는 단계.
픽처 블록에 대한 인트라 예측 모드를 나타내는 표시는 MPM의 세트에 있거나 또는 그렇지 않을 수 있고, 플래그는, 플래그의 값이 1일 때, 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있다는 것을 표시할 수 있고, 플래그의 값이 0일 때, 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있지 않다는 것을 표시할 수 있다. 예를 들어, 인코더 측에서, MPM 리스트(MPM들의 세트)가 [25, 42, 63]이라고 할 수 있는 인트라 모드들의 세트이고, 현재 블록들의 인트라 모드 값이 42이면, MPM 플래그 표시자는 1로 설정되는데, 이는 현재 블록에 대한 인트라 모드가 MPM 리스트의 제2 엔트리에서 발견되기 때문이다. 예를 들어, 현재 블록들의 인트라 모드가 42 대신에 41인 경우, MPM 플래그 표시자는 0으로 설정되고, MPM 플래그는 인코딩된 데이터의 디코드 측에 전송된다.
표시가 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있다는 것을 표시하면, 단계 S903을 수행하고;
픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있다는 것을 표시하면, 단계 S904를 수행하고;
S903: 인코딩된 데이터를 디코딩하여 MPM들의 세트에 따라 픽처 블록에 대한 인트라 예측 모드를 획득하는 단계;
일례에서, 픽처 블록에 대한 인트라 예측 모드를 나타내는 표시가 MPM들의 세트에 있는 경우. 픽처 블록(IntraPredModeY[ xPb ][ yPb ])에 대한 인트라 예측 모드에 대한 도출 프로세스는 다음과 같이 정의된다:
IntraPredModeY[ xPb ][ yPb ]는 다음의 절차를 적용함으로써 도출된다:
intra_luma_mpm_flag[ xPb ][ yPb ]가 1(이는 픽처 블록에 대한 인트라 예측 모드가 MPM의 세트에 있다는 것을 표시함)과 동일하고, IntraPredModeY[ xPb ][ yPb ]는 candModeList[ intra_luma_mpm_idx[ xPb ][ yPb ] ]와 동일하게 설정되는 경우- ( xPb , yPb )는 현재 픽처의 좌측 상단 루마 샘플에 대한 현재 루마 예측 블록의 좌측 상단 샘플을 지정하고, candModeList는 실제 MPM 리스트임 -, 인코딩된 데이터를 디코딩하여 MPM 인덱스를 획득하고, MPM 인덱스 및 MPM 리스트에 따라 픽처 블록의 인트라 예측 모드를 획득한다.
특정 예에서, MPM들의 세트는 (15, 0, 20)이고, MPM 인덱스의 값은 2이고, 따라서 픽처 블록의 인트라 예측 모드는 평면 모드(값 0)이다. 다른 특정 예에서, MPM들의 세트는 (15, 36, 0, 1, 21, 19)이고, MPM 인덱스의 값은 5이고, 따라서 픽처 블록의 인트라 예측 모드는 각도 모드 21이다.
S904: 인트라 예측 모드들의 제1 세트 내의 적어도 하나의 인트라 예측 모드와 비-MPM들의 세트 내의 적어도 하나의 인트라 예측 모드 사이의 매핑 관계를 생성하는 단계;
일례에서, 표시가 픽처 블록에 대한 인트라 예측 모드가 MPM들의 세트에 있지 않다는 것을 표시하면, 2개의 리스트: 즉, 코드워드 리스트와 도출된 모드 리스트가 구성된다.
제1 코드워드 리스트는 다음과 같이 구성된다:
1. MPM 리스트에서 최소 모드를 찾고, 최소 모드가 Ms라고 가정한다.
2. 초기 증분 변수 Inc=1를 설정한다.
3. 후보 모드 Mc를 (Ms+Inc)로서 설정하고, 모드 Mc가 또한 MPM 리스트에 있는지를 체크한다.
Mc가 MPM 리스트에 없는 경우, Mc를 코드워드 리스트에 추가한다.
그렇지 않으면, 단계 4로 진행한다.
4. 코드워드 리스트의 삽입된 엔트리들이 가득 찼는지(삽입된 길이가 코드워드 리스트의 길이와 동일한지)를 체크한다:
가득 찬 경우, 종료하고;
그렇지 않으면, Inc=Inc+1로 설정하고, 단계 3으로 진행한다.
요약하면, 코드워드 리스트는 MPM 리스트에 존재했던 것들을 제외한 최소 모드들을 포함할 것이다. MPM 리스트의 길이가 L인 경우, 코드워드 리스트의 길이는 64-(67-L) = L-3이다. 예로서, MPM 리스트가 (15, 36, 0, 1, 21, 19)이면, 구성된 코드워드는 (2, 3, 4)이다.
제2 도출된 모드 리스트는 다음과 같이 구성된다:
1. MPM 리스트에서 첫번째 2개의 각도 모드를 찾고, 발견한 것들은 angular0와 angular1이라고 가정한다.
2. 초기 증분 변수 Inc=1를 설정한다.
3. 새로운 모드 M0minus = angular0 - Inc를 도출한다. M0minus는 각도 모드(즉, 66>=M0minus>=2)도 보장되어야 한다는 점에 유의한다. 따라서, angular0이 2와 동일하고, Inc가 1이면; 도출된 M0minus는 66일 것이고; Inc가 2이면, M0minus는 65일 것이며, 기타 등등이다. 마이너스 연산은 최대 각도 모드로 랩 업할 것이다.
4. MPM 리스트에 M0minus가 있는지를 체크하고, 그렇지 않다면 그리고 도출된 모드 리스트가 가득 차 있지 않다면, M0minus를 도출된 모드 리스트에 삽입한다. 그렇지 않으면,
도출된 모드 리스트가 가득 찼다면, 종료된다.
그렇지 않으면, 단계 5로 진행한다.
5. 새로운 모드 M0plus = angular0 + Inc를 도출한다. M0plus는 각도 모드(즉, 66>=M0plus>=2)도 보장되어야 한다는 점에 유의한다. 따라서, angular0이 66과 동일하고, Inc가 1이면, 도출된 M0plus는 2일 것이고, Inc가 2이면, M0plus는 3일 것이며, 기타 등등이다. 플러스 연산은 최소 각도 모드로 랩 다운할 것이다.
6. MPM 리스트에 M0plus가 있는지를 체크하고, 그렇지 않다면 그리고 도출된 모드 리스트가 가득 차 있지 않다면, M0plus를 도출된 모드 리스트에 삽입한다. 그렇지 않으면,
도출된 모드 리스트가 가득 찼다면, 종료된다.
그렇지 않으면, 단계 7로 진행한다.
7. angular0을 angular1로 대체함으로써 단계 3-6을 반복한다.
8. Inc=Inc+1을 설정하고, 단계 3-7을 반복한다.
요약하면, 도출된 모드 리스트는 MPM 리스트 내의 처음 2개의 각도 모드의 이웃 모드들을 획득한다. 이러한 이웃 모드들이 이미 MPM 리스트에 포함되어 있으면, 이들은 도출된 모드 리스트로부터 배제된다. MPM 리스트의 길이가 L인 경우, 도출된 모드 리스트의 길이는 64-(67-L) = L-3이다. 예로서, MPM 리스트가(15, 36, 0, 1, 21, 19)이면, 구성된 도출된 모드 리스트는(14, 16, 35)이다.
코드워드 리스트 및 도출된 모드 리스트가 구성될 때, 이들 사이의 양방향 매핑 관계가 구축된다. 즉, 상기 예시적인 리스트들이 코드워드 리스트(2, 3, 4) 및 도출된 모드 리스트(14, 16, 35)라고 고려하면, 2←→14, 3←→16, 및 3←→35, 여기서 ←→는 양방향 매핑을 나타낸다.
코드워드 리스트와 도출된 모드 리스트 사이의 양방향 매핑 관계를 구축하기 위해 2개의 옵션이 허용된다. 제1 옵션은 도출된 모드 리스트가 도출된 모드 리스트와 코드워드 리스트에 요소들 모두가 존재할 수 있는 방식으로 구성되도록 허용된다는 것이다. 다른 옵션은 도출된 모드 리스트가 코드워드 리스트 내의 모드와 중첩되도록 허용되지 않는다는 것이다.
다른 예에서, 본 출원의 일 구현 형태에서, 인트라 예측 모드들의 제1 세트 내의 적어도 하나의 인트라 예측 모드와 비-MPM들의 세트 내의 적어도 하나의 인트라 예측 모드 사이의 매핑 관계를 생성하는 단계는: 각각의 인트라 예측 모드 카테고리 내에 속하는 MPM의 세트 내의 인트라 예측 모드들의 수량 및/또는 방향에 따라 복수의 인트라 예측 모드 카테고리를 순위화하는 단계; 및 가장 높은 순위의 인트라 예측 모드 카테고리에 따라 매핑 관계를 생성하는 단계를 포함한다.
일례에서, 5개의 각도 인트라 예측 모드 카테고리, 즉, dc 모드(DC_IDX), 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 및 대각선 모드 DIA_IDX, 여기서 각각의 각도 인트라 예측 모드 카테고리 내에 속하는 최고 확률 모드 리스트의 각도 인트라 예측 모드는, 예를 들어, 최고 확률 모드 리스트의 각도 인트라 예측 모드들 각각을 최고 확률 모드 리스트의 대응하는 각도 인트라 예측 모드에 가장 가까운 각도 인트라 예측 모드 카테고리에 연관시키는 것에 대응한다. 다른 예에서, 두번째로 높은 순위의 각도 인트라 예측 모드 카테고리로 이 단계를 반복한다.
일례에서, 인트라 예측 모드들의 제1 세트 내의 적어도 하나의 인트라 예측 모드와 비-MPM들의 세트 내의 적어도 하나의 인트라 예측 모드 사이의 매핑 관계를 생성하는 단계는: MPM들의 세트에 대응하는 복수의 값에 오프셋을 가산하는 것에 따라 인트라 예측 모드들의 초기 세트를 생성하는 단계; MPM들의 세트를 분류하여 가장 높은 순위의 인트라 예측 모드 카테고리를 획득하는 단계; 및 가장 높은 순위의 인트라 예측 모드 카테고리와 인트라 예측 모드들의 초기 세트에 따라 매핑 관계를 생성하는 단계를 포함한다.
일례에서, 인트라 예측 모드들의 초기 세트는 -1, +1, +2, -2, +3, -3, +4 또는 -4의 오프셋을 MPM들의 세트에 대응하는 복수의 값에 가산하는 것에 따라 생성된다.
일례에서, 매핑 관계는 평면 모드(PLANAR_IDX), dc 모드(DC_IDX), 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX), 및 대각선 모드(DIA_IDX)를 포함하거나 이들로 구성되는 미리 결정된 디폴트 모드 리스트에 따라 생성된다.
S905: 인코딩된 데이터를 디코딩하여 픽처 블록에 대한 인트라 예측 모드 코드워드를 획득하는 단계;
코드워드는 인코딩된 측에서 N 비트 또는 M 비트를 사용하여 인코딩된다. 일례에서, 이것은 양방향 매핑 관계이며, 따라서 코드워드에 대응하는 인트라 예측 모드는 비-MPM들의 세트 내의 다른 인트라 예측 모드에 매핑될 수 있다.
S906: 매핑 관계 및 인트라 예측 모드 코드워드에 따라 픽처 블록에 대한 인트라 예측 모드를 획득하는 단계.
일례에서, 양방향 매핑 관계가 구축된 후에, 인트라 예측 모드 코드워드에 대응하는 인트라 예측 모드가 코드워드 리스트 또는 도출된 모드 리스트에 있는지를 체크한다.
파싱된 인트라 예측 모드가 코드워드 리스트에도 도출된 모드 리스트에도 있지 않다면, 최종 예측 모드를 파싱된 인트라 예측 모드로서 설정한다.
파싱된 인트라 예측 모드가 코드워드 리스트에만 있거나 도출된 모드 리스트에만 있으면, 최종 예측 모드를 그의 대응하는 매핑된 인트라 예측 모드로서 설정한다.
파싱된 인트라 예측 모드가 코드워드 리스트 및 도출된 모드 리스트 양쪽 모두에 있으면, 이러한 2개의 리스트의 구축에 메커니즘이 도입되어, 양방향 매핑 관계가 조정되고 모든 중첩된 모드들이 다른 리스트 내의 자신들에 매핑된다. 예: MPM 리스트는 (0 1 2 3 50 66)이고, 코드워드 리스트는 (4 5 6)이며, 도출된 모드 리스트는 (4 65 5)이다. 도출된 모드 리스트 또는 코드워드 리스트를 구성할 때, 4←→4, 5←→5, 및 6←→65을 확실하게 한다.
디코더는 상기 방법들을 수행하도록 구성된 처리 회로를 포함한다.
본 개시내용에서는, 상기 방법들을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 개시된다.
본 개시내용에서는, 비디오 데이터를 디코딩하기 위한 디코더가 개시되며, 이러한 디코더는: 하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그래밍은, 프로세서들에 의해 실행될 때, 상기 방법들을 수행하도록 디코더를 구성한다.
도 7은 예를 들어, VVC에 대해 제안된 바와 같이, 67개의 인트라 예측 모드의 예를 도시하며, 67개의 인트라 예측 모드의 복수의 인트라 예측 모드는: 평면 모드(인덱스 0), dc 모드(인덱스 1), 및 인덱스들 2 내지 66을 갖는 각도 모드들을 포함하고, 여기서 도 7에서의 좌측 하단 각도 모드는 인덱스 2를 지칭하고, 인덱스들의 넘버링은 인덱스 66이 도 7의 상단 우측 최대 각도 모드일 때까지 증분된다.
이하에서, 추가적인 실시예들이 개시되며, 여기서 넘버링은 다른 실시예들 또는 설명의 예들의 넘버링과 반드시 일치하지 않을 수 있다.
실시예 1. 최고 확률 모드, MPM, 리스트를 구성하기 위한 방법으로서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능한지의 여부를 판정하고, 현재 코딩 블록의 좌측 블록이 이용가능한 경우, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계; 현재 코딩 블록의 상부 블록이 이용가능한지의 여부를 판정하고, 현재 코딩 블록의 상부 블록이 이용가능한 경우, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계; 평면 모드가 MPM 리스트에 있지 않은 경우, 평면 모드를 MPM 리스트에 추가하는 단계; 및 DC 모드가 MPM 리스트에 있지 않은 경우, DC 모드를 MPM 리스트에 추가하는 단계를 포함한다.
실시예 2. 실시예 1에 있어서, 좌측 블록의 예측 모드가 인트라 예측 모드가 아닐 때, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
실시예 3. 실시예 1 또는 실시예 2에 있어서, 현재 코딩 블록이 프레임의 가장 좌측에 위치하는 코딩 블록일 때, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
실시예 4. 실시예 1 내지 실시예 3 중 어느 하나에 있어서, 병렬 처리가 지원되고, 현재 코딩 블록은 타일의 가장 좌측에 위치된 코딩 블록이고, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
실시예 5. 실시예 1 내지 실시예 4 중 어느 하나에 있어서, 병렬 처리가 지원되지 않고, 현재 코딩 블록은 타일의 가장 좌측에 위치하지만 프레임의 가장 좌측에 위치하지 않는 코딩 블록이고, 현재 코딩 블록의 좌측 블록은 이용가능하다.
실시예 6. 실시예 1 내지 실시예 5 중 어느 하나에 있어서, 병렬 처리가 지원되고, 현재 코딩 블록은 슬라이스의 가장 좌측에 위치된 코딩 블록이고, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
실시예 7. 실시예 1 내지 실시예 6 중 어느 하나에 있어서, 병렬 처리가 지원되지 않고, 현재 코딩 블록은 슬라이스의 가장 좌측에 위치하지만 프레임의 가장 좌측에 위치하지 않는 코딩 블록이고, 현재 코딩 블록의 좌측 블록은 이용가능하다.
실시예 8. 실시예 1 내지 실시예 7 중 어느 하나에 있어서, 상부 블록의 예측 모드가 인트라 예측 모드가 아닐 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
실시예 9. 실시예 1 내지 실시예 8 중 어느 하나에 있어서, 현재 코딩 블록이 프레임의 최상부 측에 위치된 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
실시예 10. 실시예 1 내지 실시예 9 중 어느 하나에 있어서, 병렬 처리가 지원되고, 현재 코딩 블록은 타일의 최상부 측에 위치된 코딩 블록이고, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
실시예 11. 실시예 1 내지 실시예 10 중 어느 하나에 있어서, 병렬 처리가 지원되지 않고, 현재 코딩 블록이 타일의 최상부 측에 위치하지만 프레임의 최상부 측에 위치하지 않는 코딩 블록인 경우, 현재 코딩 블록의 상부 블록은 이용가능하다.
실시예 12. 실시예 1 내지 실시예 11 중 어느 하나에 있어서, 병렬 처리가 지원되고 현재 코딩 블록은 슬라이스의 최상부 측에 위치된 코딩 블록이며, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
실시예 13. 실시예 1 내지 실시예 12 중 어느 하나에 있어서, 병렬 처리가 지원되지 않고, 현재 코딩 블록은 슬라이스의 최상부 측에 위치되지만 프레임의 최상부 측에 위치되지 않는 코딩 블록이며, 현재 코딩 블록의 상부 블록은 이용가능하다.
실시예 14. 실시예 1 내지 실시예 13 중 어느 하나에 있어서, 라인 버퍼 크기가 제약되고 현재 코딩 블록이 현재 CTU의 최상부 측에 위치된 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
실시예 15. 실시예 1 내지 실시예 14 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하고 좌측 블록의 인트라 예측 모드가 각도 모드이면, 좌측 블록의 예측 모드에 오프셋을 가산하여 새로운 예측 모드를 획득하고, 새로운 예측 모드가 MPM 리스트에 있지 않으면, 새로운 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
실시예 16. 실시예 15에 있어서, 오프셋은 -1이다.
실시예 17. 실시예 15에 있어서, 오프셋은 1이다.
실시예 18. 실시예 1 내지 실시예 17 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 각도 모드이면, 상부 블록의 예측 모드에 오프셋을 가산하여 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드가 MPM 리스트에 있지 않으면, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
실시예 19. 실시예 18에 있어서, 오프셋은 -1이다.
실시예 20. 실시예 18에 있어서, 오프셋은 1이다.
실시예 21. 실시예 1 내지 실시예 20 중 어느 하나에 있어서, 본 방법은:
수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
실시예 22. 실시예 1 내지 실시예 20 중 어느 하나에 있어서, 본 방법은 MPM 리스트 내에 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하거나 이들로 구성되는 각도 모드 후보들의 리스트를 추가로 포함하고; 본 방법은: 리스트 내의 그들의 순서에 따라, 리스트의 각도 모드가 MPM 리스트에 있는지를 반복적으로 판정하는 단계, 및 각각의 각도 모드가 MPM 리스트에 있지 않으면 각각의 각도 모드를 MPM 리스트 내에 추가하는 단계를 추가로 포함한다.
실시예 23. 실시예 1 내지 실시예 20 중 어느 하나에 있어서, MPM 리스트를 구성하는 것은 예를 들어, 빈 MPM 리스트에 기초하여 현재 코딩 블록의 좌측 블록이 이용가능한지의 여부를 판정하는 단계로 시작한다.
실시예 24. 실시예 1 내지 실시예 23 중 어느 하나에 있어서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능하지 않고 일반 좌측 방향에서의 다른 블록(예를 들어, 도 5의 BL 또는 AL)이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하고, 좌측 블록이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하지 않는 단계를 추가로 포함한다.
실시예 25. 실시예 1 내지 실시예 23 중 어느 하나에 있어서, 본 방법은: 현재 코딩 블록의 상부 블록이 이용가능하지 않고 일반 상부 방향에서의 다른 블록(예를 들어, 도 5의 AR 또는 AL)이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하고, 상부 블록이 이용가능한 경우, 다른 블록의 인트라 예측 모드를 MPM 리스트에 삽입하지 않는 단계를 추가로 포함한다.
실시예 26. 실시예 1 내지 실시예 25 중 어느 하나에 있어서, 본 방법은: 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 그들이 MPM 리스트에 없는 경우 MPM 리스트에 추가하는 단계를 추가로 포함한다.
실시예 27. 실시예 1 내지 실시예 26 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 및 상부 블록 양쪽 모두가 각도가 아닌 경우, 하나 이상의 다른 이웃 블록(예를 들어, 도 5의 BL 또는 AL 또는 AR)을 추가로 체크하는 단계를 추가로 포함한다. 그것들 중 임의의 것(BL, 또는 AL, 또는 AR)이 각도인 경우, 앞서 기술된 바와 같이, 이 각도 모드를 -1+1 도출 프로세스에 대한 시작 각도 모드로서 사용한다.
실시예 28. 인코더는 실시예 1 내지 실시예 27 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
실시예 29. 디코더는 실시예 1 내지 실시예 27 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
실시예 30. 컴퓨터 프로그램 제품은 실시예 1 내지 실시예 27 중 어느 하나에 따른 방법을 수행하기 위한 프로그램 코드를 포함한다.
실시예 31. 최고 확률 모드, MPM, 리스트를 구성하기 위한 디코더는:
하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그래밍은, 프로세서들에 의해 실행될 때, 실시예 1 내지 실시예 27 중 어느 하나에 따른 방법을 수행하도록 디코더를 구성한다.
실시예 32. 최고 확률 모드, MPM, 리스트를 구성하기 위한 인코더는:
하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그래밍은, 프로세서들에 의해 실행될 때, 실시예 1 내지 실시예 27 중 어느 하나에 따른 방법을 수행하도록 인코더를 구성한다.
실시예 33. 인트라 예측을 위한 최고 확률 모드, MPM, 리스트를 구성하기 위한 방법으로서, 본 방법은: 현재 코딩 블록의 좌측 블록이 이용가능한지의 여부를 판정하고, 현재 코딩 블록의 좌측 블록이 이용가능한 경우, 좌측 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계; 현재 코딩 블록의 상부 블록이 이용가능한지의 여부를 판정하고, 현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 MPM 리스트에 있지 않은 경우, 상부 블록의 인트라 예측 모드를 MPM 리스트에 추가하는 단계; 평면 모드가 MPM 리스트에 있지 않은 경우, 평면 모드를 MPM 리스트에 추가하는 단계; 및 DC 모드가 MPM 리스트에 있지 않은 경우, DC 모드를 MPM 리스트에 추가하는 단계를 포함한다.
실시예 34. 실시예 33에 있어서, 현재 코딩 블록이 프레임의 가장 좌측에 위치된 코딩 블록일 때, 현재 코딩 블록의 좌측 블록은 이용가능하지 않다.
실시예 35. 실시예 33 또는 실시예 34에 있어서, 현재 코딩 블록이 프레임의 가장 좌측에 위치하지 않은 코딩 블록일 때, 현재 코딩 블록의 좌측 블록은 이용가능하다.
실시예 36. 실시예 33 내지 실시예 35 중 어느 하나에 있어서, 현재 코딩 블록이 프레임의 최상부 측에 위치하는 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하지 않다.
실시예 37. 실시예 33 내지 실시예 36 중 어느 하나에 있어서, 현재 코딩 블록이 프레임의 최상부 측에 위치되지 않은 코딩 블록일 때, 현재 코딩 블록의 상부 블록은 이용가능하다.
실시예 38. 실시예 33 내지 실시예 37 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하고 좌측 블록의 인트라 예측 모드가 각도 모드이면, 좌측 블록의 예측 모드에 오프셋을 가산하여 새로운 예측 모드를 획득하고, 새로운 예측 모드가 MPM 리스트에 있지 않으면, 새로운 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
실시예 39. 실시예 33 내지 실시예 38 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 상부 블록이 이용가능하고 상부 블록의 인트라 예측 모드가 각도 모드이면, 상부 블록의 예측 모드에 오프셋을 가산하여 상부 오프셋 예측 모드를 획득하고, 상부 오프셋 예측 모드가 MPM 리스트에 있지 않으면, 상부 오프셋 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함한다.
실시예 40. 실시예 38 또는 실시예 39에 있어서, 오프셋은 -1이다.
실시예 41. 실시예 38 또는 실시예 39에 있어서, 오프셋은 1이다.
실시예 42. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
실시예 43. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 44. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면,
인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 포함한다.
실시예 45. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면,
인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수직 대각선 모드(VDIA_IDX), 대각선 모드(DIA_IDX) 또는 인트라 모드 2(2)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 46. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면,
인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함한다.
실시예 47. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 48. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함한다.
실시예 49. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 50. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되지 않으면 제1 인트라 예측 모드를 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을 갖는 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에 대응하는 인트라 예측 모드.
실시예 51. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 좌측 블록이 이용가능하지 않고 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을 갖는 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에 대응하는 인트라 예측 모드.
실시예 52. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
실시예 53. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 54. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함한다.
실시예 55. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 인트라 모드 2(2), 수직 대각선 모드(VDIA_IDX) 또는 대각선 모드(DIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 56. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함한다.
실시예 57. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 상부 블록이 이용가능하지 않다면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수평 모드(HOR_IDX), 인트라 모드 2(2), 대각선 모드(DIA_IDX) 또는 수직 대각선 모드(VDIA_IDX)를 포함하는 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 58. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함한다.
실시예 59. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이고, 현재 코딩 블록의 좌측 블록이 이용가능하고 현재 코딩 블록의 상부 블록이 이용가능하면, 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 수직 모드(VER_IDX), 수평 모드(HOR_IDX), 오프셋 -4를 갖는 VER_IDX에 대응하는 인트라 예측 모드 또는 오프셋 4를 갖는 VER_IDX에 대응하는 인트라 예측 모드를 포함하는 인트라 예측 모드들의 세트의 안트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함한다.
실시예 60. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 상부 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면, 인트라 예측 모드들의 세트의 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있는지를 체크하고, 제1 인트라 예측 모드가 MPM 리스트에 포함되어 있지 않으면 제1 인트라 예측 모드를 MPM 리스트에 추가하는 단계를 추가로 포함하고, 인트라 예측 모드들의 세트는 다음 인트라 예측 모드들의 세트들 중 하나를 포함한다:
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -4를 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 HOR_IDX 더하기 오프셋 4(HOR_IDX add an offset 4); 또는
수평 모드(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)에 대응하는 인트라 예측 모드.
실시예 61. 실시예 33 내지 실시예 41 중 어느 하나에 있어서, 본 방법은:
현재 코딩 블록의 상부 블록이 이용가능하지 않고 MPM 리스트 내의 인트라 예측 모드들의 수량이 임계값 미만이면,
인트라 예측 모드가 MPM 리스트에 포함되어 있지 않을 때, 예측 모드들의 수량이 임계값과 동일할 때까지, 전술한 순서에 따라 인트라 예측 모드들의 세트의 인트라 예측 모드를 MPM 리스트에 반복적으로 추가하는 단계를 추가로 포함하고;
인트라 예측 모드들의 세트는 다음 인트라 예측 모드들의 세트들 중 하나를 포함한다:
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 오프셋 1을 갖는 HOR_IDX에 대응하는 인트라 예측 모드; 또는
수평 모드(HOR_IDX), 인트라 모드 2(2), 오프셋 -4를 갖는 HOR_IDX에 대응하는 인트라 예측 모드, 및 HOR_IDX 더하기 오프셋 4(HOR_IDX add an offset 4); 또는
수평 모드(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)에 대응하는 인트라 예측 모드.
실시예 62. 인코더는 실시예 33 내지 실시예 61 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
실시예 63. 디코더는 실시예 33 내지 실시예 61 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
실시예 64. 컴퓨터 프로그램 제품은 실시예 33 내지 실시예 61 중 어느 하나에 따른 방법을 수행하기 위한 프로그램 코드를 포함한다.
실시예 65. 최고 확률 모드, MPM, 리스트를 구성하기 위한 디코더는:
하나 이상의 프로세서; 및
및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그래밍은, 프로세서들에 의해 실행될 때, 실시예 33 내지 실시예 61 중 어느 하나에 따른 방법을 수행하도록 디코더를 구성한다.
실시예 66. 최고 확률 모드, MPM, 리스트를 구성하기 위한 인코더는:
하나 이상의 프로세서; 및 프로세서들에 결합되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 프로그래밍은, 프로세서들에 의해 실행될 때, 실시예 33 내지 실시예 61 중 어느 하나에 따른 방법을 수행하도록 인코더를 구성한다.
도 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)는 다른 처리 유닛들, 인터넷, 또는 원격 저장 설비들 등과 같은, 원격 디바이스들과의 통신 및 데이터 처리를 위해 근거리 네트워크 또는 광역 네트워크에 결합된다.
주어진 블록 내의 픽셀들을 예측하는데 필요한 가중 계수의 값을 계산하기 위해 구분적 선형 근사가 도입된다. 구분적 선형 근사는, 한편으로는, 간단한 가중 계수 계산과 비교하여 거리-가중 예측 메커니즘의 계산 복잡성을 상당히 감소시키고, 다른 한편으로는, 종래 기술의 단순화들과 비교하여 가중 계수 값들의 더 높은 정확도를 달성하는 것을 돕는다.
실시예들은 픽처의 상이한 부분들을 혼합하기 위해 하나의 픽셀로부터 다른 픽셀까지의 거리에 의존하는 가중 계수들을 사용하는 메커니즘들(예를 들어, 이미지 처리에서의 일부 혼합 방법들)뿐만 아니라 다른 양방향 및 위치 종속 인트라 예측 기술들(예를 들어, 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 (8)

  1. 비디오의 현재 블록을 디코딩하기 위한 디코딩 방법으로서, 상기 디코딩 방법은,
    비트스트림으로부터 상기 현재 블록에 대한 최고 확률 모드(MPM) 플래그의 값을 획득하는 단계;
    상기 MPM 플래그의 값이 상기 현재 블록에 대한 인트라 예측 모드가 인트라 예측 모드들의 MPM 세트에 포함되는 인트라 예측 모드임을 나타내는 경우, 상기 비트스트림으로부터 상기 현재 블록에 대한 MPM 인덱스를 획득하는 단계; 및
    상기 현재 블록에 대한 상기 MPM 인덱스 및 상기 MPM 세트에 기초하여, 상기 현재 블록에 대한 인트라 예측 모드의 값을 획득하는 단계 - 절단된 단항 이진화가 상기 MPM 인덱스의 시그널링을 위해 사용됨 -
    를 포함하고,
    상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드인 경우,
    상기 예측 모드들의 MPM 세트는:
    평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드 - 상기 제1 오프셋은 -4이고 상기 제2 오프셋은 +4임 -를 포함하는, 디코딩 방법.
  2. 비디오의 현재 블록을 인코딩하기 위한 방법으로서, 상기 방법은,
    상기 현재 블록에 대한 최고 확률 모드(MPM) 세트를 결정하는 단계 - 상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드인 경우, 상기 MPM 세트는: 평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드 - 상기 제1 오프셋은 -4이고 상기 제2 오프셋은 +4임 - 를 포함함;
    상기 현재 블록의 샘플들 및 상기 현재 블록의 이웃 블록들의 샘플들에 기초하여 상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계;
    상기 현재 블록에 대한 인트라 예측 모드가 상기 MPM 세트 내에 있는지 여부를 나타내기 위해 상기 현재 블록에 대한 MPM 플래그의 값을 결정하는 단계;
    상기 현재 블록에 대한 인트라 예측 모드가 상기 MPM 세트 내에 있는 경우 상기 현재 블록에 대한 인트라 예측 모드를 나타내기 위해 상기 현재 블록에 대한 MPM 인덱스의 값을 결정하는 단계; 및
    상기 MPM 플래그 및 상기 MPM 인덱스를 비디오 비트스트림으로 인코딩하는 단계 - 절단된 단항 이진화는 상기 MPM 인덱스의 시그널링을 위해 사용됨 -
    를 포함하는 방법.
  3. 제1항의 방법을 수행하기 위한 처리 회로를 포함하는 디코더.
  4. 제2항의 방법을 수행하기 위한 처리 회로를 포함하는 인코더.
  5. 컴퓨터 판독 가능 기록 매체에 기록된 컴퓨터 프로그램으로서,
    제1항 또는 제2항의 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램.
  6. 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 제1항 또는 제2항의 방법을 수행하게 하는 컴퓨터 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
  7. 비디오의 현재 블록에 대한 최고 확률 모드(MPM) 플래그, 및 MPM 인덱스를 포함하는 비디오 비트스트림으로서,
    상기 MPM 플래그는 상기 현재 블록에 대한 인트라 예측 모드가 MPM 세트 내에 있는 것을 나타내고, 상기 MPM 인덱스는 상기 현재 블록에 대한 인트라 예측 모드가 상기 MPM 세트 내에 있는 것을 나타내고;
    상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드인 경우, 상기 MPM 세트는:
    평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드 - 상기 제1 오프셋은 -4이고 상기 제2 오프셋은 +4임 -
    를 포함하는, 비디오 비트스트림.
  8. 비디오 비트스트림을 저장하기 위한 디바이스로서,
    상기 비디오 비트스트림을 저장하도록 구성된 저장 매체; 및
    상기 비디오 비트스트림을 수신 및/또는 송신하도록 구성된 통신 인터페이스
    를 포함하고,
    상기 비디오 비트스트림은 비디오의 현재 블록에 대한 최고 확률 모드(MPM) 플래그, 및 MPM 인덱스를 포함하고, 상기 MPM 플래그는 상기 현재 블록에 대한 인트라 예측 모드가 MPM 세트 내에 있는 것을 나타내고, 상기 MPM 인덱스는 상기 현재 블록에 대한 인트라 예측 모드가 상기 MPM 세트 내에 있는 것을 나타내고;
    상기 현재 블록의 좌측 이웃 블록의 인트라 예측 모드가 평면 모드이고 상기 현재 블록의 상부 이웃 블록의 인트라 예측 모드가 평면 모드인 경우, 상기 MPM 세트는:
    평면 모드, DC 모드, 수직 모드, 수평 모드, 제1 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드, 및 제2 오프셋을 갖는 상기 수직 모드에 대응하는 인트라 예측 모드 - 상기 제1 오프셋은 -4이고 상기 제2 오프셋은 +4임 -
    를 포함하는, 비디오 비트스트림을 저장하기 위한 디바이스.
KR1020247008707A 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치 KR20240042127A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862726419P 2018-09-03 2018-09-03
US62/726,419 2018-09-03
KR1020227025315A KR20220107089A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치
PCT/CN2019/104254 WO2020048463A1 (en) 2018-09-03 2019-09-03 Method and apparatus for intra prediction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020227025315A Division KR20220107089A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240042127A true KR20240042127A (ko) 2024-04-01

Family

ID=69721566

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207034163A KR20210002663A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치
KR1020227025315A KR20220107089A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치
KR1020247008707A KR20240042127A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020207034163A KR20210002663A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치
KR1020227025315A KR20220107089A (ko) 2018-09-03 2019-09-03 인트라 예측을 위한 방법 및 장치

Country Status (11)

Country Link
US (3) US10972725B2 (ko)
EP (2) EP3818715B1 (ko)
JP (3) JP7039731B2 (ko)
KR (3) KR20210002663A (ko)
CN (5) CN117729327A (ko)
AU (2) AU2019335453B2 (ko)
BR (1) BR112020027043A2 (ko)
CA (1) CA3111038A1 (ko)
MX (2) MX2020014195A (ko)
SG (1) SG11202101742UA (ko)
WO (1) WO2020048463A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112015004140A8 (pt) * 2012-09-26 2023-01-24 Velos Media Int Ltd Método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação e decodificação de imagem
CN112689999A (zh) * 2018-09-11 2021-04-20 Lg 电子株式会社 基于内预测模式处理图像的方法及其设备
WO2020139006A2 (ko) * 2018-12-28 2020-07-02 한국전자통신연구원 화면 내 예측 모드 유도 방법 및 장치
CN116527892A (zh) * 2019-01-08 2023-08-01 Lg电子株式会社 解码设备、编码设备和数据发送设备
US11190758B2 (en) * 2019-04-25 2021-11-30 Qualcomm Incorporated Block-based quantized residual domain pulse code modulation assignment for intra prediction mode derivation
WO2020262988A1 (ko) * 2019-06-25 2020-12-30 엘지전자 주식회사 영상 코딩 시스템에서 무손실 코딩을 적용하는 영상 디코딩 방법 및 그 장치
US20220400255A1 (en) * 2021-06-11 2022-12-15 Tencent America LLC Intra Mode Coding
US20230008488A1 (en) * 2021-07-07 2023-01-12 Tencent America LLC Entropy coding for intra prediction modes
US11917136B2 (en) 2021-07-15 2024-02-27 Tencent America LLC Intra mode coding

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100348051C (zh) * 2005-03-31 2007-11-07 华中科技大学 一种增强型帧内预测模式编码方法
AU2007244443A1 (en) * 2006-04-28 2007-11-08 Ntt Docomo, Inc. Image predictive coding device, image predictive coding method, image predictive coding program, image predictive decoding device, image predictive decoding method and image predictive decoding program
KR102194679B1 (ko) * 2009-07-01 2020-12-24 인터디지털 브이씨 홀딩스 인코포레이티드 비디오 인코더 및 디코더용 대형 블록에 대한 인트라 예측을 시그널링하기 위한 방법 및 장치
US9154798B2 (en) * 2009-09-14 2015-10-06 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
US8902978B2 (en) * 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
CA2840587C (en) * 2011-06-28 2017-06-20 Samsung Electronics Co., Ltd. Method and apparatus for coding video and method and apparatus for decoding video, accompanied with intra prediction
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US9699457B2 (en) * 2011-10-11 2017-07-04 Qualcomm Incorporated Most probable transform for intra prediction coding
EP3780623A1 (en) * 2011-10-24 2021-02-17 Innotive Ltd Method and apparatus for image decoding
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
US9210438B2 (en) * 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
CN107113425A (zh) * 2014-11-06 2017-08-29 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
CN115134591A (zh) * 2015-06-05 2022-09-30 杜比实验室特许公司 图像编解码方法、比特流存储方法
US10142627B2 (en) * 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
KR102434479B1 (ko) * 2016-02-16 2022-08-19 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
KR20180107097A (ko) * 2016-02-16 2018-10-01 삼성전자주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
ES2688624R1 (es) * 2016-04-06 2018-12-04 Kt Corporation Método y aparato para procesar señales de vídeo
US10547854B2 (en) * 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US20170374369A1 (en) * 2016-06-24 2017-12-28 Mediatek Inc. Methods and Apparatuses of Decoder Side Intra Mode Derivation
CN116527887A (zh) * 2016-08-01 2023-08-01 韩国电子通信研究院 图像编码/解码方法和设备以及存储比特流的记录介质
CN110089115B (zh) * 2016-08-26 2021-07-06 夏普株式会社 图像解码装置、图像编码装置
KR20190042732A (ko) * 2016-09-30 2019-04-24 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10506228B2 (en) * 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
WO2018070790A1 (ko) * 2016-10-14 2018-04-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
EP4072134A1 (en) * 2016-12-27 2022-10-12 Samsung Electronics Co., Ltd. Video affine mode encoding method and device therefor, and decoding method and device therefor
CN110366850B (zh) * 2016-12-28 2023-06-20 Lg电子株式会社 基于帧内预测模式处理图像的方法和用于该方法的设备
CN117119185A (zh) * 2017-01-02 2023-11-24 Lx 半导体科技有限公司 图像编码/解码设备以及发送图像数据的设备
CN117395400A (zh) * 2017-04-28 2024-01-12 英迪股份有限公司 图像解码方法、图像编码方法和用于发送比特流的方法
US10742975B2 (en) * 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US10986351B2 (en) * 2017-07-03 2021-04-20 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Method and device for decoding image by using partition unit including additional region
CN117354514A (zh) * 2017-07-28 2024-01-05 韩国电子通信研究院 图像编码方法和图像解码方法以及计算机可读记录介质
CN116405680A (zh) * 2017-09-28 2023-07-07 三星电子株式会社 编码方法和装置以及解码方法和装置
JP7043616B2 (ja) * 2017-10-24 2022-03-29 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド ビデオ信号処理方法及び装置
KR102595070B1 (ko) * 2017-11-16 2023-10-27 인텔렉추얼디스커버리 주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN116389731A (zh) * 2017-12-22 2023-07-04 数码士有限公司 视频信号处理方法和设备
KR102422798B1 (ko) * 2018-03-08 2022-07-19 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
KR102446669B1 (ko) * 2018-04-01 2022-09-26 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
EP3562158A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for combined intra prediction modes
KR101956756B1 (ko) * 2018-06-12 2019-03-11 광운대학교 산학협력단 성분 간 참조 기반의 비디오 신호 처리 방법 및 장치
US10638161B2 (en) * 2018-07-13 2020-04-28 Tencent America LLC Methods and apparatus for most probable mode derivation
WO2020043092A1 (en) * 2018-08-31 2020-03-05 Mediatek Singapore Pte. Ltd. Method and apparatus of intra prediction with mpm generation in image and video processing

Also Published As

Publication number Publication date
SG11202101742UA (en) 2021-03-30
JP2022091799A (ja) 2022-06-21
JP2021528888A (ja) 2021-10-21
EP4346211A2 (en) 2024-04-03
CA3111038A1 (en) 2020-03-12
MX2020014195A (es) 2022-01-14
US20230319266A1 (en) 2023-10-05
US20200389644A1 (en) 2020-12-10
KR20220107089A (ko) 2022-08-01
EP3818715A4 (en) 2021-07-21
AU2019335453B2 (en) 2023-06-15
AU2023229601A1 (en) 2023-10-05
JP2024045200A (ja) 2024-04-02
CN113612995A (zh) 2021-11-05
MX2022000585A (es) 2022-03-04
BR112020027043A2 (pt) 2021-03-30
WO2020048463A1 (en) 2020-03-12
US10972725B2 (en) 2021-04-06
CN112640467A (zh) 2021-04-09
JP7419418B2 (ja) 2024-01-22
KR20210002663A (ko) 2021-01-08
US11647182B2 (en) 2023-05-09
CN117998095A (zh) 2024-05-07
CN117729327A (zh) 2024-03-19
AU2019335453A1 (en) 2021-03-25
US20210203927A1 (en) 2021-07-01
JP7039731B2 (ja) 2022-03-22
CN117896518A (zh) 2024-04-16
EP3818715B1 (en) 2024-04-03
EP4346211A3 (en) 2024-06-19
CN112640467B (zh) 2023-10-20
EP3818715A1 (en) 2021-05-12
CN113612995B (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
AU2019335453B2 (en) Method and apparatus for intra prediction
US11044469B2 (en) Method and apparatus for intra prediction
US11277608B2 (en) Method and apparatus for intra prediction
US11297345B2 (en) Intra prediction mode derivation based on neighboring blocks
RU2785106C2 (ru) Способ и устройство для внутреннего предсказания
RU2780222C2 (ru) Способ и устройство для внутреннего предсказания