KR20220003022A - 비디오 시퀀스에 대한 인트라 예측 방법 및 장치 - Google Patents

비디오 시퀀스에 대한 인트라 예측 방법 및 장치 Download PDF

Info

Publication number
KR20220003022A
KR20220003022A KR1020217038535A KR20217038535A KR20220003022A KR 20220003022 A KR20220003022 A KR 20220003022A KR 1020217038535 A KR1020217038535 A KR 1020217038535A KR 20217038535 A KR20217038535 A KR 20217038535A KR 20220003022 A KR20220003022 A KR 20220003022A
Authority
KR
South Korea
Prior art keywords
tree node
coding tree
chroma coding
mode
chroma
Prior art date
Application number
KR1020217038535A
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 KR20220003022A publication Critical patent/KR20220003022A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 출원의 실시예들은 비디오 시퀀스에 대한 인트라 예측 방법을 개시한다. 이 방법은: 크로마 코딩 트리 노드의 크기 및 분할 모드를 획득하는 단계; 크로마 코딩 트리 노드의 크기 및 분할 모드에 따라, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되도록 허용할지 여부를 결정하는 단계; 크로마 코딩 유닛에 대해 CCLM이 수행되도록 허용할지 여부에 따라, 크로마 코딩 유닛의 예측 모드를 결정하는 단계; 및 크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛을 처리하는 단계를 포함한다. 본 출원의 실시예들은 인트라 예측 장치 및 디코더를 추가로 개시된다. 본 출원의 실시예들은 크로마 코딩 유닛의 처리 레이턴시를 감소시키고 하드웨어 디코더의 스루풋을 향상시키는 것을 돕는다.

Description

비디오 시퀀스에 대한 인트라 예측 방법 및 장치
본 출원은 "INTRA PREDICTION METHOD AND APPARATUS FOR VIDEO SEQUENCE"라는 명칭으로 중국 국가지식산권국에 2019년 4월 30일자 출원된 중국 특허출원 제201910370987.9호에 대한 우선권을 주장하며, 이 특허출원은 그 전체가 인용에 의해 본 명세서에 포함된다.
본 출원은 비디오 인코딩 및 디코딩 기술들의 분야에 관한 것으로, 특히 비디오 시퀀스(video sequence)에 대한 인트라 예측(intra prediction) 방법 및 장치에 관한 것이다.
비디오 코딩 표준 H.265에서, 픽처(picture)의 프레임은 서로 중첩되지 않는 코딩 트리 유닛(CTU: coding tree unit)들로 파티셔닝되고, CTU의 크기는 64 × 64 또는 다른 값으로 설정될 수 있다. 크기가 64 × 64인 CTU는 64 × 64 샘플들을 포함하는 직사각형 샘플 행렬이다. 직사각형 샘플 행렬은 64개의 열들을 포함하고, 각각의 열은 64개의 샘플들을 포함하며, 각각의 샘플은 루마(luma) 컴포넌트 또는/또는 크로마(chroma) 컴포넌트를 포함한다.
H.265는 CTU가 쿼드 트리(QT: quadtree)의 루트(root) 노드로서 사용되며, CTU가 여러 리프(leaf) 노드들로 재귀적으로 분할되는 쿼드 트리 분할 모드에 기반한다. 노드는 하나의 픽처 영역에 대응한다. 노드가 계속해서 분리되지 않는다면, 노드는 리프 노드로 지칭되고, 노드에 대응하는 픽처 영역은 CU가 된다. 노드가 계속해서 분할된다면, 노드에 대응하는 픽처 영역은 4개의 동일한 크기의 픽처 영역들로 분할되고, 각각의 영역은 하나의 노드에 대응한다. 노드가 분할될지 여부는, 비트스트림에 있으며 노드에 대응하는 분할 플래그(flag)에 의해 결정된다. 루트 노드의 깊이는 0이고, 자식(child) 노드의 깊이는 부모(parent) 노드의 깊이에 1을 더한 것이다.
크기가 64 × 64인(0의 깊이를 갖는) CTU 노드는 CTU 노드에 대응하는 분할 플래그에 기반하여 분리되지 않고, 크기가 64 × 64인 CU가 될 수 있거나, 크기들이 32 × 32인(1의 깊이를 갖는) 4개의 노드들로 분할될 수 있다. 크기들이 32 × 32인 4개의 노드들 각각은 노드에 대응하는 분할 플래그에 기반하여 계속해서 분할될 수 있거나 추가로 분할되지 않을 수 있다. 크기가 32 × 32인 노드가 계속 분할된다면, 크기들이 16 × 16인(2의 깊이를 갖는) 4개의 노드들이 생성된다. 나머지는 어떤 노드도 추가로 분할되지 않을 때까지 유추에 의해 추론될 수 있다. 이 경우, 하나의 CTU는 한 그룹의 CU들로 분할된다.
쿼드 트리 분할에 기반하여, 이진 트리(BT: binary tree) 분할 모드 및 삼진 트리(TT: ternary tree) 분할 모드가 VTM 기준 소프트웨어에 추가된다.
또한, QT 및 BT/TT를 캐스케이드(cascade)하는 분할 모드가 다목적 비디오 코딩 시험 모델(VTM: versatile video coding test model)에서 사용될 수 있으며, 쿼드 트리 + 다중 타입 트리(QT-BTT: quadtree plus multi-type tree) 모드로 지칭된다. 즉, 레벨 1 코딩 트리의 노드는 단지 QT 모드만을 사용함으로써 자식 노드들로 분할될 수 있고, 레벨 1 코딩 트리의 리프 노드는 레벨 2 코딩 트리의 루트 노드이며; 레벨 2 코딩 트리의 노드는 다음의 4개의 분할 모드들: 수평 이진 분할, 수직 이진 분할, 수평 삼진 분할 및 수직 삼진 분할 중 하나를 사용함으로써 자식 노드들로 분할될 수 있고; 레벨 2 코딩 트리의 리프 노드는 코딩 유닛이다.
노드가 리프 노드이고 리프 노드가 CU라는 것이 파싱(parse)을 통해 학습된 후, CU에 대응하는 (CU의 예측 모드 및 변환 계수, 예를 들어 H.265의 신택스(syntax) 구조 coding_unit()를 포함하는) 코딩 정보가 추가로 파싱된다. 이어서, CU에 대응하는 재구성된 픽처를 생성하기 위해, 코딩 정보에 기초하여 CU에 대해 디코딩 처리, 이를테면 역양자화, 역변환 및 루프 필터링이 수행된다. QT-MTT와 같은 이러한 유연한 코딩 트리 구조는 CTU가 픽처의 로컬 특징에 기반하여 적절한 크기의 한 그룹의 CU들로 분할될 수 있게 한다.
CTU를 한 그룹의 CU들로 분할하는 모드는 하나의 코딩 트리에 대응한다. VTM에서는, 분리 트리 구조가 인트라 픽처(I 픽처)에 대해 사용될 수 있게 한다. 이 경우, 코딩 트리의 특정 노드 A로부터 시작하여, 노드 A의 루마 블록은 루마 코딩 트리를 사용함으로써 분할되고, 루마 코딩 트리의 리프 노드는 루마 CU이며, 루마 샘플들만을 포함한다. 노드 A의 크로마 블록은 크로마 코딩 트리를 사용함으로써 분할되고, 크로마 코딩 트리의 리프 노드는 크로마 CU이며, 크로마 샘플들만을 포함한다.
VTM5(즉, VTM 소프트웨어 버전 5)에서는, 분리 트리 구조가 인트라 픽처에 사용될 수 있다. 분리 트리 구조를 사용하는 인트라 픽처의 경우, 크기가 128 × 128인 코딩 트리 노드는 쿼드 트리 분할 모드를 사용함으로써 크기가 64 × 64인 4개의 노드들로 분할될 수 있고, 크기가 64 × 64인 각각의 노드는 루마 샘플들 및 크로마 샘플들을 포함한다. 크기가 64 × 64인 노드에 분리 트리 구조가 사용되는데, 즉 크기가 64 × 64인 노드의 루마 블록은 루마 코딩 트리를 사용함으로써 분할되고, 크기가 64 × 64인 노드의 크로마 블록은 크로마 코딩 트리를 사용함으로써 분할된다. 루마 코딩 트리에 사용되는 분할 모드는 크로마 코딩 트리에 사용되는 분할 모드와 상이할 수 있다. 예를 들어, 크기가 64 × 64인 노드의 루마 블록은 쿼드 트리 분할 모드를 사용함으로써 분할될 수 있고, 크로마 블록은 수평 이진 분할 모드를 사용함으로써 분할될 수 있다. YUV4:2:0 포맷에서, 크로마의 수평 및 수직 샘플링 레이트들은 크로마의 샘플링 레이트들의 절반이기 때문에, 크기가 M × N인 노드는 (M/2) × (N/2) 크로마 샘플들에 대응한다.
그러나 인트라 픽처에 분리 트리 구조가 사용될 때, 비교적 긴 크로마 처리 레이턴시가 야기되어, 하드웨어 디코더의 스루풋이 감소될 수 있다.
본 출원의 실시예들은 비디오 시퀀스에 대한 인트라 예측 방법 및 장치를 제공한다. 본 출원의 실시예들은 크로마 처리 레이턴시를 감소시키고 하드웨어 디코더의 스루풋을 향상시키는 것을 돕는다. 비디오 시퀀스(video sequence)는 하나 이상의 픽처(picture)들을 포함한다.
설명의 간결성을 위해, 본 발명의 실시예들에서의 노드의 크기 및 형상은 노드에 대응하는 픽처 영역의 크기 및 형상이다. 본 발명의 실시예들에서, 노드의 폭과 높이 모두는 노드에 대응하는 루마 샘플들의 양에 의해 표현된다.
제1 양상에 따르면, 본 발명의 일 실시예는 비디오 시퀀스에 대한 인트라 예측 방법을 제공하며, 이 방법은:
크로마 코딩 트리 노드의 크기 및 분할 모드를 획득하는 단계; 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM: cross-component linear model) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계; 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 크로마 코딩 유닛의 예측 모드를 결정하는 단계; 및 크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛을 처리하는 단계를 포함한다. 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부는 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여 결정되며, 이로써 CCLM이 수행되는 크로마 코딩 유닛을 처리할 때의 레이턴시를 감소시키고, 하드웨어 디코더의 스루풋을 향상시킨다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
M과 N이 둘 다 미리 설정된 임계치(T1)와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며, 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
M이 T1과 같고 N이 T1/2와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 인트라 서브-파티션(ISP: intra sub-partition) 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계; 또는
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, M은 T1과 같고, N은 T1과 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며, 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 인트라 서브-파티션(ISP) 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건에서 임의의 하나의 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, N = T1, 그리고 M = T1/2일 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음의 조건 1 내지 조건 13 중 하나 또는 이들의 임의의 조합을 포함하고, 조건 1 내지 조건 13은 다음과 같다:
조건 1: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 2: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 3: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수평 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 4: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수평 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수평 삼진 분할 모드, 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 5: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수평 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 수평 삼진 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 루마 코딩 트리 노드의 크기는 T1 × T1이고, 크로마 코딩 트리 노드의 크기는 T1 × (T1/2)이다.
조건 6: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수직 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기와 루마 코딩 트리 노드의 크기 모두 T1 × T1이다.
조건 7: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수직 ISP 예측 모드가 사용되며, 크로마 코딩 트리 노드는 수직 삼진 분할 모드, 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 8: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수직 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 수직 삼진 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 루마 코딩 트리 노드의 크기 및 루마 블록의 크기는 둘 다 T1 × T1이고, 크로마 코딩 트리 노드의 크기는 T1 × (T1/2)이다.
조건 9: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수평 이진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 10: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수직 이진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 11: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수평 삼진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 12: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수직 삼진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 13: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드는 비분할 및 쿼드 트리 분할 이외의 분할 모드이며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
본 명세서에서, 크로마 코딩 트리 노드가 자식 노드들로 분할된다는 것은 구체적으로, 크로마 코딩 트리 노드가 수평 이진 분할 모드, 수직 이진 분할 모드, 수평 삼진 분할 모드, 수직 삼진 분할 모드 및 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할된다는 것을 의미한다는 점이 주목되어야 한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 루마 코딩 트리 노드의 크기 및 루마 블록의 크기는 둘 다 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 1 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 2 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되거나; 또는 루마 코딩 트리 노드의 분할 모드는 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 3, 조건 5, 조건 6, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 4, 조건 5, 조건 7, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 3, 조건 5, 조건 7, 조건 8, 조건 9, 조건 10, 조건 11 및 조건 12를 포함한다.
실행 가능한 실시예에서, 미리 설정된 임계치(T1)는 64와 같다.
제2 양상에 따르면, 본 발명의 일 실시예는 비디오 시퀀스에 대한 인트라 예측 방법을 제공하며, 이 방법은:
제1 식별자 및 제2 식별자를 획득하기 위해 비트스트림을 파싱하는 단계 ― 제1 식별자는 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 제2 식별자는 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용할지 여부를 지시하는 데 사용됨 ―; 및
제1 식별자가 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용됨을 지시하고, 제2 식별자가 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용함을 지시한다면, 제1 양상 및 제1 양상의 실시예들 중 어느 하나에서 설명된 비디오 시퀀스에 대한 인트라 예측 방법을 수행하는 단계를 포함한다.
제3 양상에 따르면, 본 발명의 일 실시예는 비디오 시퀀스에 대한 인트라 예측 장치를 제공하며, 이 장치는:
크로마 코딩 트리 노드의 크기 및 분할 모드를 획득하도록 구성된 획득 유닛;
크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하고; 그리고 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 크로마 코딩 유닛의 예측 모드를 결정하도록 구성된 결정 유닛; 및
크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛을 처리하도록 구성된 예측 유닛을 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛은 구체적으로:
M과 N이 둘 다 미리 설정된 임계치(T1)와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛은 구체적으로:
M이 T1과 같고 N이 T1/2와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛은 구체적으로:
크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 ISP 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하도록 구성된다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 인트라 서브-파티션(ISP) 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛은 구체적으로:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, M은 T1과 같고, N은 T1과 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 인트라 서브-파티션(ISP) 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛은 구체적으로:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건에서 임의의 하나의 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, N = T1, 그리고 M = T1/2일 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 제1 양상에서의 조건 1, 조건 2, 조건 3, 조건 4, 조건 5, 조건 6, 조건 7, 조건 8, 조건 9, 조건 10, 조건 11, 조건 12 및 조건 13 중 하나 이상을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 루마 코딩 트리 노드의 크기 및 루마 블록의 크기는 둘 다 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 제1 양상에서의 조건 1 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 제1 양상에서의 조건 2 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되거나; 또는 루마 코딩 트리 노드의 분할 모드는 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 제1 양상에서의 조건 3, 조건 5, 조건 6, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 제1 양상에서의 조건 4, 조건 5, 조건 7, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 제1 양상에서의 조건 3, 조건 5, 조건 7, 조건 8, 조건 9, 조건 10, 조건 11 및 조건 12를 포함한다.
실행 가능한 실시예에서, 미리 설정된 임계치(T1)는 64와 같다.
제4 양상에 따르면, 본 발명의 일 실시예는 비디오 시퀀스에 대한 인트라 예측 장치를 제공하며, 이 장치는:
제1 식별자 및 제2 식별자를 획득하기 위해 비트스트림을 파싱하도록 구성된 디코딩 유닛 ― 제1 식별자는 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 제2 식별자는 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용할지 여부를 지시하는 데 사용됨 ―; 및
제1 식별자가 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용됨을 지시하고, 제2 식별자가 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용함을 지시한다면, 제1 양상에서의 비디오 시퀀스에 대한 인트라 예측 방법의 전부 또는 일부를 수행하도록 구성된 예측 유닛을 포함한다.
제5 양상에 따르면, 본 발명의 일 실시예는 서로 결합된 비휘발성 메모리 및 프로세서를 포함하는 디코딩 디바이스를 제공하며, 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 제1 양상 또는 제2 양상에서의 방법의 단계들의 일부 또는 전부를 수행한다.
제6 양상에 따르면, 본 발명의 일 실시예는 컴퓨터 판독 가능 저장 매체를 제공한다. 컴퓨터 판독 가능 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 제1 양상 또는 제2 양상에서의 방법의 단계들의 일부 또는 전부를 수행하기 위한 명령들을 포함한다.
본 출원의 제2 양상 내지 제6 양상의 기술적 솔루션들은 본 발명의 제1 양상의 기술적 솔루션들과 일치하며, 양상들 및 대응하는 실행 가능한 구현들에 의해 달성되는 유리한 효과들은 유사하다고 이해되어야 한다. 세부사항들은 다시 설명되지 않는다.
본 발명의 실시예들의 또는 종래 기술의 기술적 솔루션들을 보다 명확하게 설명하기 위해, 다음은 실시예들 또는 종래 기술을 설명하기 위한 첨부 도면들을 간략하게 설명한다. 다음의 설명들에서의 첨부 도면들은 단지 본 발명의 일부 실시예들을 도시할 뿐이며, 당해 기술분야에서 통상의 지식을 가진 자는 창의적인 노력들 없이 이러한 첨부 도면들로부터 다른 도면들을 도출할 수 있다.
도 1은 CTU 분할 모드의 개략도이다.
도 2는 크로마 블록 및 루마 블록의 분할 모드의 개략도이다.
도 3은 크로마 블록 및 루마 블록의 다른 분할 모드의 개략도이다.
도 4는 본 발명의 일 실시예에 따른 비디오 인코딩 및 디코딩 시스템의 개략적인 블록도이다.
도 5a는 본 발명의 일 실시예에 따른 비디오 인코더의 개략적인 블록도이다.
도 5b는 본 발명의 일 실시예에 따른 비디오 디코더의 개략적인 블록도이다.
도 5c는 본 발명의 일 실시예에 따른 인코딩 장치 또는 디코딩 장치의 일례의 블록도이다.
도 6은 본 발명의 일 실시예에 따른 비디오 시퀀스에 대한 인트라 예측 방법의 개략적인 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 비디오 시퀀스에 대한 인트라 예측 방법의 개략적인 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 인트라 예측 장치의 개략적인 구조도이다.
도 9는 본 발명의 일 실시예에 따른 인트라 예측 장치의 개략적인 구조도이다.
다음은 첨부 도면들을 참조로 본 출원의 실시예들을 설명한다.
먼저 본 명세서에서 본 발명의 용어들이 설명된다.
코딩 트리 유닛(CTU: coding tree unit): 픽처는 복수의 CTU들을 포함하고, 하나의 CTU는 대개 하나의 정사각형 픽처 영역에 대응하고, 픽처 영역에 루마 샘플들 및 크로마 샘플들을 포함한다(또는 루마 샘플들만을 포함할 수 있거나 크로마 샘플들만을 포함할 수 있다). CTU는 신택스 엘리먼트들을 더 포함한다. 이러한 신택스 엘리먼트들은, 재구성된 픽처를 획득하기 위해 어떻게 CTU를 적어도 하나의 코딩 유닛(CU: coding unit)으로 분할하고 각각의 코딩 유닛을 디코딩하는지에 관한 방법을 지시한다.
CU: CU는 대개 A × B 직사각형 영역에 대응하고, A × B 루마 샘플들 및 루마 샘플들에 대응하는 크로마 샘플들을 포함하며, 여기서 A는 직사각형의 폭이고, B는 직사각형의 높이이며, A는 B와 동일하거나 또는 상이할 수 있다. A 및 B의 값들은 대개 2의 정수 거듭제곱들, 예를 들어 256, 128, 64, 32, 16, 8 및 4이다. 코딩 유닛은 디코딩되어 A × B 직사각형 영역의 재구성된 픽처를 획득할 수 있다. 디코딩 처리는 대개 예측, 역양자화 및 역변환과 같은 처리를 수행하여 예측 픽처 및 잔차를 생성하는 것을 포함한다. 예측 픽처와 잔차를 중첩시킴으로써 재구성된 픽처가 획득된다.
쿼드 트리: 쿼드 트리는 트리 형상 구조이며, 노드가 4개의 자식 노드들로 분할될 수 있다. 비디오 코딩 표준 H.265에서 쿼드 트리 기반 CTU 분할 모드가 사용된다: CTU가 루트 노드로서 사용되며, 각각의 노드는 하나의 정사각형 영역에 대응한다. 노드는 추가로 분할되지 않을 수 있거나(이 경우, 노드에 대응하는 영역은 CU임), 또는 노드는 4개의 하위 레벨 노드들로 분할되는데, 즉 도 1의 (a)에 도시된 바와 같이, 정사각형 영역이 4개의 동일한 크기의 정사각형 영역들로 분할되고(여기서 4개의 동일한 크기의 정사각형 영역들 각각의 길이 및 폭은 분할되기 전인 정사각형 영역의 길이 및 폭의 절반임), 각각의 영역은 하나의 노드에 대응한다.
이진 트리: 이진 트리는 트리 형상 구조이며, 노드가 2개의 자식 노드들로 분할될 수 있다. 이진 트리가 사용되는 기존의 코딩 방법에서, 이진 트리 구조 내의 노드는 분할되지 않을 수 있거나, 노드가 2개의 하위 레벨 노드들로 분할된다. 노드는 2개의 방식들 중 임의의 방식으로 2개의 노드들로 분할된다: (1) 수평 이진 분할: 도 1의 (b)에 도시된 바와 같이, 노드에 대응하는 영역이 2개의 동일한 크기의 영역들: 상부 영역 및 하부 영역으로 분할되고, 각각의 영역은 하나의 노드에 대응함; 또는 (2) 수직 이진 분할: 도 1의 (c)에 도시된 바와 같이, 노드에 대응하는 영역이 2개의 동일한 크기의 영역들: 좌측 영역 및 우측 영역으로 분할되고, 각각의 영역은 하나의 노드에 대응함.
삼진 트리: 삼진 트리는 트리 형상 구조이며, 노드가 3개의 자식 노드들로 분할될 수 있다. 기존의 삼진 트리 기반 코딩 방법에서, 삼진 트리 구조 상의 노드는 분리되지 않을 수 있거나, 또는 노드는 3개의 하위 레벨 노드들로 분할될 수 있다. 노드는 2개의 방식들 중 임의의 방식으로 3개의 노드들로 분할된다: (1) 수평 삼진 분할: 노드에 대응하는 영역이 3개의 영역들: 상부 영역, 중간 영역 및 하부 영역으로 분할되고, 각각의 영역은 하나의 노드에 대응하며, 도 1의 (d)에 도시된 바와 같이, 상부 영역, 중간 영역 및 하부 영역의 높이들은 각각 노드의 높이의 1/4, 1/2 및 1/4임; (2) 수직 삼진 분할: 노드에 대응하는 영역이 3개의 영역들: 좌측 영역, 중간 영역 및 우측 영역으로 분할되고, 각각의 영역은 하나의 노드에 대응하며, 도 1의 (e)에 도시된 바와 같이, 좌측 영역, 중간 영역 및 우측 영역의 폭들은 각각 노드의 높이의 1/4, 1/2 및 1/4임.
다목적 비디오 코딩 시험 모델(VTM: versatile video coding test model): JVET에 의해 조직되고 개발된 H.266/다목적 비디오 코딩(VVC: versatile video coding) 표준에 대한 코덱 기준 소프트웨어이다.
크로스 컴포넌트 선형 모델(CCLM: cross-component linear model) 인트라 예측: 예를 들어, VTM5의 CCLM 기술인 루마 재구성 샘플을 사용함으로써 크로마를 예측하는 방법이다. CCLM에서, 현재 크로마 블록 주위에서 재구성된 루마 샘플 및 재구성된 크로마 샘플을 사용함으로써 선형 모델 파라미터들(α, β)이 추정되며; 현재 크로마 블록에 대응하는 재구성된 루마 샘플들이 다운샘플링된 후에, 공식 1에 도시된 바와 같이 선형 모델을 사용함으로써 현재 크로마 블록의 예측 샘플들이 획득된다:
Figure pct00001
(1)
αβ는 선형 모델 계수들이며,
Figure pct00002
는 포지션(i, j)에서의 크로마 샘플의 예측자이고,
Figure pct00003
는 현재 크로마 블록에 대응하는 루마 재구성 블록이 크로마 컴포넌트 분해능으로 다운샘플링된 이후 포지션(i, j)에서의 루마 재구성 샘플 값들을 표현한다. YUV4:2:0 포맷의 비디오에 대해, 루마 컴포넌트의 분해능은 크로마 컴포넌트의 분해능의 4배(폭의 2배 및 높이의 2배)임이 주목되어야 한다. 크로마 블록과 동일한 분해능을 갖는 루마 블록을 획득하기 위해, 루마 컴포넌트는 크로마 컴포넌트와 동일한 다운샘플링 방법에 따라 크로마 분해능으로 다운샘플링될 필요가 있고, 그 다음에 사용된다.
인트라 서브-파티션(ISP: intra sub-partition)은 서브블록 분할, 예를 들어 VTM5의 ISP 기술에 기반한 인트라 예측 기술이다. ISP 모드가 사용될 때, 루마 블록은 수평으로 또는 수직으로 복수의(예를 들어, 2개 또는 4개의) 동일한 크기의 루마 서브블록들로 분할되고, 루마 서브블록은 순차적으로 디코딩되고 재구성된다. 공통 인트라 예측 모드(예를 들어, 각도 예측 모드, 평면 예측 모드 또는 직류 예측 모드)가 크로마 블록에 대해 사용된다면, 크로마 블록 주위의 재구성된 샘플들만이 크로마 블록의 인트라 예측에 사용된다. 이 경우, 크로마 블록의 인트라 예측과 루마 블록의 인트라 예측이 동시에 수행될 수 있는데, 대응하는 영역의 루마 블록에 대해 예측 처리를 수행하는 것에 비해 크로마 블록에 대해 예측 처리를 수행하기 위한 최대 레이턴시(이는 줄여서 크로마 처리 레이턴시임)는 0 루마 샘플들을 포함하는 영역에 대해 인트라 예측 및 재구성을 수행하기 위한 처리 시간이다. 단일 트리에서, CU는 루마 샘플들 및 크로마 샘플들을 포함한다. 크로마 샘플에 대해 CCLM이 수행될 때, 대응하는 포지션의 루마 재구성 샘플이 사용될 필요가 있다. 루마 블록이 순차적 처리를 위해 복수의 하위 영역들로 분할된다면, 루마 하위 영역에 대해 인트라 예측이 수행된 후에, 예측자들 및 잔차들이 중첩되어 루마 하위 영역의 재구성된 샘플들을 획득하고, 루마 하위 영역의 재구성된 샘플들을 사용함으로써 대응하는 포지션의 크로마 하위 영역에 대해 CCLM 예측이 수행될 수 있다. 따라서 인트라 픽처에 분리 트리 구조가 사용될 때, 크로마 블록에 대해 CCLM 예측이 수행된다면, 비교적 긴 크로마 처리 레이턴시의 문제가 야기될 수 있다.
예를 들어, (도 2의 (a)에 도시된 바와 같이) 크기가 64 × 64인 노드의 루마 블록이 쿼드 트리 분할 모드를 사용함으로써 분할될 때, 생성된 4개의 루마 노드들의 처리 시퀀스는 노드 0, 노드 1, 노드 2 및 노드 3이다. 크기가 64 × 64인 노드의 크로마 블록이 도 2의 (b)에 도시된 수직 이진 분할 모드를 사용함으로써 분할되어 2개의 크로마 노드들을 생성할 때, 크로마 노드 0에 대해 CCLM 예측이 수행된다면, CCLM 예측에 필요한 루마 재구성 샘플 값들은 루마 노드 2가 재구성된 후에만 크로마 노드 0에 대해 획득될 수 있다. 크로마 처리 레이턴시는 크기들이 32 × 32인 3개의 루마 영역들(즉, 3072개의 루마 샘플들)의 처리 시간이다. 다른 예의 경우, 크기가 64 × 64인 노드의 크로마 블록이 도 2의 (c)에 도시된 수평 이진 트리를 사용함으로써 2개의 크로마 노드들로 분할되고, 수평 이진 트리 모드를 사용함으로써 상부 측에서 크기가 64 × 32인 노드의 크로마 블록이 계속해서 2개의 노드들로 추가로 분할될 때, 크로마 노드 0에 대해 CCLM 예측이 수행된다면, CCLM 예측에 필요한 모든 루마 재구성 샘플 값들은 루마 노드 1이 재구성된 후에만 크로마 노드 0에 대해 획득될 수 있고, 크로마 처리 레이턴시는 크기들이 32 × 32인 2개의 루마 영역들(즉, 2048개의 루마 샘플들)의 처리 시간이다.
크기가 64 × 64인 노드의 크로마 블록에 대해 일부 분할들이 수행될 때, 크로마 노드에 대해 CCLM을 수행하기 위한 처리 레이턴시는 크기가 32 × 32인 하나의 루마 영역의 처리 시간을 초과하지 않는다. 예를 들어, 크기가 64 × 64인 루마 블록이 쿼드 트리 분할 모드를 사용함으로써 분할될 때, 도 2의 (d)에 도시된 바와 같이, 쿼드 트리 분할 모드를 사용함으로써 대응하는 크로마 블록이 또한 분할된다면, 루마 노드 0이 재구성된 이후 크로마 노드 0에 대해 CCLM이 수행될 수 있고, 루마 노드 1이 재구성된 이후 크로마 노드 1에 대해 CCLM이 수행될 수 있는 식이다. 다른 예의 경우, 도 2의 (e)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 분할되지 않는다면, 크로마 블록은 순차적 인트라 예측을 위해 4개의 영역들(p0, p1, p2, p3)로 분할될 수 있고, 루마 노드 0이 재구성된 이후 크로마 영역 p0에 대해 CCLM이 수행될 수 있고, 루마 노드 1이 재구성된 이후 크로마 영역 p1에 대해 CCLM이 수행될 수 있는 식이다. 다른 예의 경우, 도 2의 (f)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 먼저 수평 분할 모드를 사용함으로써 분할되고, 상부 측의 크기가 64 × 32인 크로마 노드가 수직 분할 모드를 사용함으로써 분할되고, 하부 측의 크기가 64 × 32인 크로마 노드는 분할되지 않는다면, 크로마 노드들 0, 1 및 2의 크로마 처리 레이턴시들은 모두, 크기가 32 × 32인 루마 영역을 처리할 때의 레이턴시이다. 이는, 루마 노드 0이 재구성된 이후 크로마 노드 0에 대해 CCLM이 수행될 수 있고, 루마 노드 1이 재구성된 이후 크로마 노드 2에 대해 CCLM이 수행될 수 있고, 루마 노드 2가 완성된 이후 크로마 노드 2의 영역 p0에 대해 CCLM이 수행될 수 있고, 루마 노드 3이 재구성된 이후 크로마 노드 2의 영역 p1에 대해 CCLM이 수행될 수 있기 때문이다.
또한, 인트라 픽처에 대해 분리 트리 구조가 사용된다면, 크기가 64 × 64인 루마 블록이 분할되지 않고 루마 블록에 대해 ISP 모드가 사용될 때, 크로마 처리 레이턴시는 크기가 32 × 32인 하나의 루마 영역의 처리 시간을 초과할 수 있다. 예를 들어, 도 3의 (a)에 도시된 바와 같이, 크기가 64 × 64인 노드의 루마 블록이 수직 ISP 모드를 사용함으로써 4개의 루마 서브블록들로 분할될 때, 도 3의 (b)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 수평 이진 분할 모드를 사용함으로써 분할된다면, 4개의 루마 서브블록들이 재구성된 이후에만 크로마 노드 0에 대해 CCLM이 수행될 수 있고, 크로마 처리 레이턴시는 크기들이 32 × 32인 4개의 루마 영역들의 처리 시간이다. 유사하게, 크기가 64 × 64인 노드의 루마 블록이 도 3의 (e)에 도시된 바와 같이, 수평 ISP 모드를 사용함으로써 4개의 루마 서브블록들로 분할될 때, 도 3의 (f)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 수직 이진 분할 모드를 사용함으로써 분할된다면, 4개의 루마 서브블록들이 재구성된 이후에만 크로마 노드 0에 대해 CCLM이 수행될 수 있고, 크로마 처리 레이턴시는 크기들이 32 × 32인 4개의 루마 영역들의 처리 시간이다.
크기가 64 × 64인 노드의 크로마 블록에 대해 일부 분할들이 수행될 때, 크기가 64 × 64인 루마 블록이 분할되지 않고 루마 블록에 대해 ISP 모드가 사용되더라도, 크로마 노드에 의해 CCLM을 수행하기 위한 처리 레이턴시는 크기가 32 × 32인 하나의 루마 영역의 처리 시간을 초과하지 않는다. 예를 들어, 크기가 64 × 64인 노드의 루마 블록에 대해 수직 ISP 모드가 사용될 때, 도 3의 (d)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 분할되지 않거나, 도 3의 (c)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 수직 이진 모드를 사용함으로써 분할되어 크기들이 32 × 64인 노드들을 획득하고, 노드들이 수직 이진 분할 모드를 사용함으로써 분할되거나 분할되지 않는다면, 크로마 처리 레이턴시는 크기가 16 × 64인 하나의 루마 영역의 처리 시간이고, 또한 하나의 32 × 32 루마 영역의 처리 시간과 대략 동일한 것으로 간주될 수 있다(둘 다 1024개의 루마 샘플들에 대응함). 보다 구체적으로, 크기가 64 × 64인 노드의 크로마 블록이 분할되지 않을 때, 크로마 블록은 4개의 하위 영역들로 수직으로 분할될 수 있고, 크기가 16 × 64인 대응하는 루마 서브블록이 재구성된 이후 각각의 하위 영역에 대해 CCLM이 수행되기 시작할 수 있다. 크기가 64 × 64인 노드의 크로마 블록이 수직 이진 모드를 사용함으로써 분할되어 크기들이 32 × 64인 노드들을 획득하고, 노드들이 수직 이진 분할 모드를 사용함으로써 분할된다면, 크기가 16 × 64인 대응하는 루마 서브블록이 재구성된 이후 크기가 16 × 64인 각각의 크로마 노드에 대해 CCLM이 수행되기 시작할 수 있다. 크기가 32 × 64인 노드가 수평으로 분할되지 않을 때, 노드는 크기가 16 × 64인 2개의 하위 영역들로 수직으로 분할될 수 있고, 크기가 16 × 64인 대응하는 루마 서브블록이 재구성된 이후 각각의 하위 영역에 대해 CCLM이 수행되기 시작할 수 있다. 유사하게, 크기가 64 × 64인 노드의 루마 블록에 대해 수평 ISP 모드가 사용될 때, 도 3의 (h)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 분할되지 않거나, 도 3의 (g)에 도시된 바와 같이, 크기가 64 × 64인 노드의 크로마 블록이 수평 이진 분할 모드를 사용함으로써 분할되어 크기들이 64 × 32인 노드들을 획득하고, 노드들이 수평 이진 분할 모드를 사용함으로써 분할되거나 분할되지 않는다면, 크로마 처리 레이턴시는 크기가 64 × 4 × 16인 하나의 루마 영역의 처리 시간이고, 크기가 32 × 32인 하나의 루마 영역의 처리 시간과 동일하다.
도 4는 본 출원의 일 실시예에서 설명되는 비디오 코딩 시스템(4)의 일례의 블록도이다. 본 명세서에서 사용되는 바와 같이, "비디오 코덱(codec)"이라는 용어는 대개 비디오 인코더 및 비디오 디코더를 의미한다. 본 출원에서, "비디오 코딩" 또는 "코딩"이라는 용어는 대개 비디오 인코딩 또는 비디오 디코딩을 의미할 수 있다. 비디오 코딩 시스템(1)의 비디오 인코더(100) 및 비디오 디코더(300)는 본 출원에서 제공되는 복수의 새로운 인터 예측 모드들 중 임의의 하나에서 설명되는 다양한 방법 예들을 사용함으로써 현재 코딩된 픽처 블록 또는 현재 코딩된 픽처 블록의 서브블록의 모션 정보, 예를 들어 모션 벡터를 예측하여, 예측 모션 벡터가 모션 추정 방법을 사용함으로써 획득된 모션 벡터에 최대로 가깝게 되도록 구성된다. 이런 식으로, 인코딩 동안 모션 벡터 차이가 송신될 필요가 없으며, 이로써 인코딩 및 디코딩 성능을 더 향상시킨다.
도 4에 도시된 바와 같이, 비디오 코딩 시스템(1)은 소스 장치(10) 및 목적지 장치(30)를 포함한다. 소스 장치(10)는 인코딩된 비디오 데이터를 생성한다. 따라서 소스 장치(10)는 비디오 인코딩 장치로 지칭될 수 있다. 목적지 장치(30)는 소스 장치(10)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있다. 따라서 목적지 장치(30)는 비디오 인트라 예측 장치로 지칭될 수 있다. 소스 장치(10), 목적지 장치(30) 또는 소스 장치(10)와 목적지 장치(30)의 다양한 구현 솔루션들은 하나 이상의 프로세서들 및 하나 이상의 프로세서들에 결합된 메모리를 포함할 수 있다. 메모리는 본 명세서에서 설명되는 바와 같이, RAM, ROM, EEPROM, 플래시 메모리, 또는 컴퓨터에 액세스 가능한 데이터 구조 또는 명령의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만 이에 제한되는 것은 아니다.
소스 장치(10) 및 목적지 장치(30)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 핸드헬드 전화 세트, 이를테면 "스마트" 폰, 텔레비전 세트, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 내 컴퓨터 또는 유사한 장치를 포함하는 다양한 장치들을 포함할 수 있다.
목적지 장치(30)는 링크(50)를 통해 소스 장치(10)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 링크(50)는 인코딩된 비디오 데이터를 소스 장치(10)로부터 목적지 장치(30)로 전송할 수 있는 하나 이상의 매체들 또는 장치들을 포함할 수 있다. 일례로, 링크(50)는 소스 장치(10)가 인코딩된 비디오 데이터를 목적지 장치(30)에 실시간으로 직접 송신할 수 있게 하는 하나 이상의 통신 매체들을 포함할 수 있다. 이 예에서, 소스 장치(10)는 인코딩된 비디오 데이터를 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 변조할 수 있고, 변조된 비디오 데이터를 목적지 장치(30)로 송신할 수 있다. 하나 이상의 통신 매체들은 무선 통신 매체 및/또는 유선 통신 매체, 예를 들어 무선 주파수(RF: radio frequency) 스펙트럼 또는 하나 이상의 물리적 전송 케이블들을 포함하며 수 있다. 하나 이상의 통신 매체들은 패킷 기반 네트워크의 일부일 수 있고, 패킷 기반 네트워크는 예를 들어, 근거리 네트워크, 광역 네트워크 또는 글로벌 네트워크(예를 들어, 인터넷)이다. 하나 이상의 통신 매체들은 라우터, 스위치, 기지국, 또는 소스 장치(10)로부터 목적지 장치(30)로의 통신을 가능하게 하는 다른 디바이스를 포함할 수 있다.
다른 예에서, 인코딩된 데이터는 출력 인터페이스(140)를 통해 저장 장치(40)에 출력될 수 있다. 유사하게, 인코딩된 비디오 데이터는 저장 장치(40)로부터 입력 인터페이스(340)를 통해 액세스될 수 있다. 저장 장치(40)는 복수의 분산 또는 로컬 액세스 데이터 저장 매체들 중 임의의 매체, 예를 들어 하드 디스크 드라이브, 블루레이 디스크, DVD, CD-ROM, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하도록 구성된 임의의 다른 적절한 디지털 저장 매체를 포함할 수 있다.
다른 예에서, 저장 장치(40)는 소스 장치(10)에 의해 생성된 인코딩된 비디오를 유지할 수 있는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 목적지 장치(30)는 스트리밍 전송 또는 다운로드를 통해 저장 장치(40)로부터의 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장할 수 있고 인코딩된 비디오 데이터를 목적지 장치(30)로 송신할 수 있는 임의의 타입의 서버일 수 있다. 예를 들어, 파일 서버는 (예를 들어, 웹사이트에 사용되는) 네트워크 서버, FTP 서버, 네트워크 부착 저장(NAS: network-attached storage) 장치 또는 로컬 디스크 드라이브일 수 있다. 목적지 장치(30)는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통해, 인코딩된 비디오 데이터에 액세스할 수 있다. 표준 데이터 접속은 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합한 무선 채널(예를 들어, Wi-Fi 접속), 유선 접속(예를 들어, DSL 또는 케이블 모뎀), 또는 이들의 조합을 포함할 수 있다. 저장 장치(40)로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송 또는 이들의 조합일 수 있다.
본 출원에서의 모션 벡터 예측 기술은 복수의 멀티미디어 애플리케이션들, 예를 들어 공중파 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, (예를 들어, 인터넷을 통한) 스트리밍 비디오 전송, 데이터 저장 매체에 저장된 비디오 데이터의 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들을 지원하도록 비디오 인코딩 및 디코딩에 사용될 수 있다. 일부 예들에서, 비디오 코딩 시스템(1)은 단방향 또는 양방향 비디오 전송을 지원하여 비디오 스트리밍 전송, 비디오 재생, 비디오 방송 및/또는 비디오 전화와 같은 애플리케이션들을 지원하도록 구성될 수 있다.
도 4에서 설명되는 비디오 코딩 시스템(1)은 단지 일례일 뿐이며, 본 출원에서의 기술은 비디오 인코딩 장치와 비디오 디코딩 장치 간의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용 가능하다. 다른 예들에서, 데이터는 로컬 메모리로부터 리트리브되거나, 네트워크를 통해 스트리밍되는 식이다. 비디오 인코딩 장치는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있고, 그리고/또는 비디오 디코딩 장치는 메모리로부터 데이터를 리트리브하고 데이터를 디코딩할 수 있다. 많은 예들에서, 단지 데이터를 인코딩하고 데이터를 메모리에 저장하며 그리고/또는 메모리로부터 데이터를 리트리브하고 데이터를 디코딩하는 그리고 서로 통신하지 않는 장치들이 인코딩 및 디코딩을 수행한다.
도 4의 예에서, 소스 장치(10)는 비디오 소스(120), 비디오 인코더(100) 및 출력 인터페이스(140)를 포함한다. 일부 예들에서, 출력 인터페이스(140)는 변조기/복조기(모뎀) 및/또는 전송기를 포함할 수 있다. 비디오 소스(120)는 비디오 캡처 장치(예를 들어, 카메라), 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드-인(feed-in) 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 앞서 말한 비디오 데이터 소스들의 조합을 포함할 수 있다.
비디오 인코더(100)는 비디오 소스(120)로부터의 비디오 데이터를 인코딩할 수 있다. 일부 예들에서, 소스 장치(10)는 인코딩된 비디오 데이터를 출력 인터페이스(140)를 통해 목적지 장치(30)에 직접 송신한다. 다른 예에서, 인코딩된 비디오 데이터는 대안으로 저장 장치(40)에 저장될 수 있고, 그에 따라 목적지 장치(30)는 디코딩 및/또는 재생을 위해 인코딩된 비디오 데이터에 후속적으로 액세스한다.
도 4의 예에서, 목적지 장치(30)는 입력 인터페이스(340), 비디오 디코더(300) 및 디스플레이 장치(330)를 포함한다. 일부 예들에서, 입력 인터페이스(340)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(340)는 링크(50)를 통해 그리고/또는 저장 장치(40)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(330)는 목적지 장치(30)와 통합될 수 있거나 목적지 장치(30) 외부에 위치될 수 있다. 디스플레이 장치(330)는 대개, 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치(330)는 복수의 타입들의 디스플레이 장치들, 예를 들어 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이, 유기 발광 다이오드(OLED: organic light-emitting diode) 디스플레이, 또는 다른 타입의 디스플레이 장치를 포함할 수 있다.
도 4에 도시되진 않지만, 일부 양상들에서, 비디오 인코더(100) 및 비디오 디코더(300)는 오디오 인코더 및 오디오 디코더와 각각 통합될 수 있고, 오디오 및 비디오를 공통 데이터 스트림 또는 개별 데이터 스트림으로 인코딩하도록 적절한 멀티플렉서-디멀티플렉서(MUX-DEMUX: multiplexer-demultiplexer) 유닛, 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 일부 예들에서, 적용 가능하다면, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜(UDP: user datagram protocol)과 같은 다른 프로토콜을 따를 수 있다.
비디오 인코더(100) 및 비디오 디코더(300)는 각각, 예를 들어 다음의 복수의 회로들: 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서(DSP: digital signal processor), 주문형 집적 회로(ASIC: application-specific integrated circuit), 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array), 이산 로직, 하드웨어, 또는 이들의 임의의 조합 중 임의의 회로로서 구현될 수 있다. 본 출원이 부분적으로는 소프트웨어를 통해 구현된다면, 장치는 소프트웨어에 사용된 명령을 적절한 비휘발성 컴퓨터 판독 가능 저장 매체에 저장할 수 있고, 하드웨어에서 명령을 실행하여 본 출원의 기술을 구현하도록 하나 이상의 프로세서들을 사용할 수 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는) 앞서 말한 콘텐츠 중 임의의 콘텐츠는 하나 이상의 프로세서들로 간주될 수 있다. 비디오 인코더(100) 및 비디오 디코더(300)는 각각 하나 이상의 인코더들 또는 디코더들에 포함될 수 있으며, 인코더 또는 디코더는 대응하는 장치에서 조합된 인코더/디코더(코덱)의 일부로 통합될 수 있다.
본 출원에서, 비디오 인코더(100)는 대략적으로, 예를 들어 비디오 디코더(300)에 일부 정보를 "시그널링" 또는 "송신하는" 다른 장치로 지칭될 수 있다. "시그널링" 또는 "전송"이라는 용어는 대략적으로, 압축된 비디오 데이터를 디코딩하는 데 사용되는 신택스 엘리먼트 및/또는 다른 데이터의 전달을 의미할 수 있다. 전송은 실시간으로 또는 거의 실시간으로 발생할 수 있다. 대안으로, 통신은 일정 시간 기간 후에 발생할 수 있는데, 예를 들어 인코딩된 비트스트림의 신택스 엘리먼트가 인코딩 동안 컴퓨터 판독 가능 저장 매체에 저장될 때 발생할 수 있고, 이어서 인트라 예측 장치는 신택스 엘리먼트가 매체에 저장된 이후 임의의 시점에 신택스 엘리먼트를 리트리브할 수 있다.
비디오 인코더(100) 및 비디오 디코더(300)는 고효율 비디오 코딩(HEVC: high efficiency video coding)과 같은 비디오 압축 표준, 또는 그 확장에 따라 동작할 수 있으며, HEVC 시험 모델(HM: HEVC test model)을 따를 수 있다. 대안으로, 비디오 인코더(100) 및 비디오 디코더(300)는 다른 산업 표준들, 예를 들어 ITU-T H.264 및 H.265 표준들, 또는 표준들의 확장들에 따른 동작을 수행할 수 있다. 그러나 본 출원에서의 기술들은 어떠한 특정 인코딩 및 디코딩 표준들로도 제한되지 않는다.
도 5a는 본 출원에서의 (개시된) 기술을 구현하도록 구성된 비디오 인코더(100)의 일례의 개략적인/개념적인 블록도이다. 도 5a의 예에서, 비디오 인코더(100)는 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(DPB: decoded picture buffer)(230), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 (도면에 도시되지 않은) 모션 추정 유닛 및 모션 보상 유닛을 포함할 수 있다. 도 5a에 도시된 비디오 인코더(100)는 또한 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 기반한 비디오 인코더로 지칭될 수 있다.
예를 들어, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(100)의 순방향 신호 경로를 형성하는 반면, 예를 들어 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230) 및 예측 처리 유닛(260)은 인코더의 역방향 신호 경로를 형성하고, 여기서 비디오 인코더의 역방향 신호 경로는 디코더(도 5b의 비디오 디코더(300) 참조)의 신호 경로에 대응한다.
인코더(100)는 예를 들어, 입력(202)을 통해 픽처(201) 또는 픽처(201)의 블록(203), 예를 들어 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스 내의 픽처를 수신한다. 픽처 블록(203)은 또한 현재 픽처 블록 또는 인코딩될 픽처 블록으로 지칭될 수 있고, 픽처(201)는 (특히, 비디오 코딩에서, 현재 픽처를 다른 픽처들, 예를 들어 동일한 비디오 시퀀스, 즉 현재 픽처를 또한 포함하는 비디오 시퀀스에서 이전에 인코딩 및/또는 디코딩된 픽처들과 구별하기 위해) 현재 픽처 또는 인코딩될 픽처로 지칭될 수 있다.
파티셔닝
일 실시예에서, 인코더(100)는 픽처(201)를 블록들(203)과 같은 복수의 블록들로 파티셔닝하도록 구성된 (도 5a에 도시되지 않은) 파티셔닝 유닛을 포함할 수 있다. 픽처(201)는 대개 복수의 비중첩 블록들로 파티셔닝된다. 파티셔닝 유닛은 비디오 시퀀스의 모든 픽처들에 대해 동일한 블록 크기 및 그 블록 크기를 정의하는 대응하는 그리드를 사용하도록, 또는 픽처들 또는 픽처들의 서브세트들 또는 그룹들 간에 블록 크기를 변경하고, 각각의 픽처를 대응하는 블록들로 파티셔닝하도록 구성될 수 있다.
일례로, 비디오 인코더(100)의 예측 처리 유닛(260)은 앞서 말한 파티셔닝 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
블록(203)의 크기는 픽처(201)의 크기보다 작지만, 블록(203)은 픽처(201)와 마찬가지로 루마 값들(샘플 값들)을 갖는 샘플들의 2차원 배열 또는 행렬로 또한 간주되거나 간주될 수 있다. 즉, 블록(203)은 예를 들어, 적용되는 색상 포맷에 따라, 하나의 샘플 배열(예를 들어, 단색 픽처(201)의 경우 루마 배열), 3개의 샘플 배열들(예를 들어, 컬러 픽처의 경우 하나의 루마 배열 및 2개의 크로마 배열들), 또는 임의의 다른 수량 및/또는 타입의 배열들을 포함할 수 있다. 블록(203)의 수평 및 수직 방향들(또는 축들)의 샘플들의 양은 픽처 블록(203)의 크기를 정의한다.
도 5a에 도시된 인코더(100)는 픽처(201)를 블록 단위로 인코딩하도록, 예를 들어 각각의 블록(203)을 인코딩 및 예측하도록 구성된다.
잔차 계산
잔차 계산 유닛(204)은 픽처 블록(203) 및 예측 블록(265)(예측 블록(265)에 관한 세부사항들은 아래에 추가 제공됨)에 기초하여, 예를 들어 픽처 블록(203)의 샘플 값들에서 예측 블록(265)의 샘플 값들을 샘플 단위로(sample by sample) 감산함으로써 잔차 블록(205)을 계산하여 샘플 도메인에서 잔차 블록(205)을 획득하도록 구성된다.
변형
변환 처리 유닛(206)은 잔차 블록(205)의 샘플 값들에 변환, 예를 들어 이산 코사인 변환(DCT: discrete cosine transform) 또는 이산 사인 변환(DST: discrete sine transform)을 적용하여 변환 도메인에서 변환 계수들(207)을 획득하도록 구성된다. 변환 계수들(207)은 또한 변환 잔차 계수들로 지칭될 수 있고, 변환 도메인에서 잔차 블록(205)을 나타낼 수 있다.
변환 처리 유닛(206)은 HEVC/H.265에 지정된 변환들과 같은 DCT/DST의 정수 근사들을 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교하여, 이러한 정수 근사들은 대개 인수에 의해 스케일링된다. 순방향 및 역방향 변환들을 사용함으로써 처리되는 잔차 블록의 노름(norm)을 보존하기 위해, 변환 프로세스의 일부로서 추가 스케일링 인수가 적용된다. 스케일링 인수는 대개 일부 제약들, 예를 들어 시프트 연산을 위해 2의 거듭제곱인 스케일링 인수, 변환 계수의 비트 깊이, 및 정확도와 구현 비용 간의 절충에 기초하여 선택된다. 예를 들어, 특정 스케일링 인수가 예를 들어, 디코더(300) 측의 역변환 처리 유닛(212)에 의한 역방향 변환(그리고 예를 들어, 인코더(100) 측의 역변환 처리 유닛(212)에 의한 대응하는 역방향 변환)에 대해 지정되고, 이에 대응하여, 대응하는 스케일 인수가 인코더(100) 측의 변환 처리 유닛(206)에 의한 순방향 변환에 대해 지정될 수 있다.
양자화
양자화 유닛(208)은 예를 들어, 스칼라 양자화 또는 벡터 양자화를 적용함으로써 변환 계수들(207)을 양자화하여 양자화된 변환 계수들(209)을 획득하도록 구성된다. 양자화된 변환 계수(209)는 양자화된 잔차 계수(209)로도 또한 지칭될 수 있다. 양자화 프로세스는 변환 계수들(207) 중 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수 있다. 예를 들어, 양자화 중에 n 비트 변환 계수는 m 비트 변환 계수로 반내림(round down)될 수 있으며, 여기서 n은 m보다 크다. 양자화 정도는 양자화 파라미터(QP: quantization parameter)를 조정함으로써 수정될 수 있다. 예를 들어, 스칼라 양자화의 경우, 더 미세한 또는 더 대략적인 양자화를 달성하도록 서로 다른 스케일링이 적용될 수 있다. 더 작은 양자화 단계 크기는 더 미세한 양자화에 대응하고, 더 큰 양자화 단계 크기는 더 대략적인 양자화에 대응한다. 적절한 양자화 단계 크기는 양자화 파라미터(QP)에 의해 지시될 수 있다. 예를 들어, 양자화 파라미터는 미리 정의된 세트의 적절한 양자화 단계 크기들에 대한 인덱스일 수 있다. 예를 들어, 더 작은 양자화 파라미터는 더 미세한 양자화(더 작은 양자화 단계 크기)에 대응할 수 있고 더 큰 양자화 파라미터는 더 대략적인 양자화(더 큰 양자화 단계 크기)에 대응할 수 있거나, 그 반대일 수 있다. 양자화는 양자화 단계 크기에 의한 나눗셈 및 예를 들어, 역양자화 유닛(210)에 의해 수행되는 대응하는 양자화 또는 역양자화를 포함할 수 있거나, 양자화 단계 크기에 의한 곱셈을 포함할 수 있다. 일부 표준들, 이를테면 HEVC에 따른 실시예들은 양자화 파라미터를 사용하여 양자화 단계 크기를 결정할 수 있다. 일반적으로, 양자화 단계 크기는 나눗셈을 포함하는 식의 고정 소수점 근사를 사용함으로써 양자화 파라미터를 기초로 계산될 수 있다. 잔차 블록의 노름을 복원하기 위해 양자화 및 역양자화에 추가 스케일링 계수들이 도입될 수 있는데, 잔차 블록의 노름은 양자화 단계 크기 및 양자화 파라미터에 대한 식의 고정 소수점 근사에 사용된 스케일링으로 인해 수정될 수 있다. 일 예시적인 구현에서는, 역변환과 역양자화의 스케일링이 조합될 수 있다. 대안으로, 맞춤형 양자화 표들이 사용되며 인코더로부터 디코더로, 예를 들어 비트스트림으로 시그널링될 수 있다. 양자화는 손실이 있는 연산이며, 여기서는 양자화 단계 크기들의 증가에 따라 손실이 증가한다.
역양자화 유닛(210)은 양자화 유닛(208)의 역양자화를 양자화된 계수들에 적용하여 역양자화 계수들(211)을 얻도록, 예를 들어 양자화 유닛(208)과 동일한 양자화 단계 크기에 기초하여 또는 이를 사용함으로써, 양자화 유닛(208)에 의해 적용된 양자화 방식의 역을 적용하도록 구성된다. 역양자화 계수들(211)은 또한 역양자화 잔차 계수들(211)로도 지칭될 수 있으며, 양자화에 의해 야기된 손실로 인해 대개는 변환 계수들과 동일하지 않더라도, 변환 계수들(207)에 대응할 수 있다.
역변환 처리 유닛(212)은 변환 처리 유닛(206)에 의해 적용된 변환의 역변환, 예를 들어 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST)을 적용하여 샘플 도메인에서 역변환 블록(213)을 획득하도록 구성된다. 역변환 블록(213)은 또한 역변환 역양자화된 블록(213) 또는 역변환 잔차 블록(213)으로 지칭될 수 있다.
재구성 유닛(214)(예를 들어, 합산기(214))은 예를 들어, 재구성된 잔차 블록(213)의 샘플 값들과 예측 블록(265)의 샘플 값들을 더함으로써 역변환 블록(213)(즉, 재구성된 잔차 블록(213))을 예측 블록(265)에 더하여, 샘플 도메인에서 재구성된 블록(215)을 얻도록 구성된다.
선택적으로, 예를 들어 라인 버퍼(216)인 버퍼 유닛(216)(또는 줄여서 "버퍼"(216))은 예를 들어, 인트라 예측을 위해 재구성된 블록(215) 및 대응하는 샘플 값을 버퍼링 또는 저장하도록 구성된다. 다른 실시예들에서, 인코더는 임의의 타입의 추정 및/또는 예측, 예를 들어 인트라 예측을 위해 버퍼 유닛(216)에 저장된 필터링되지 않은 재구성된 블록 및/또는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예를 들어, 일 실시예에서, 버퍼 유닛(216)이 인트라 예측(254)을 위해 재구성된 블록(215)을 저장하는 데 사용될 뿐만 아니라 (도 5a에 도시되지 않은) 루프 필터 유닛(220)에도 사용되도록, 그리고/또는 예를 들어, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)이 하나의 버퍼를 형성하도록 인코더(100)가 구성될 수 있다. 다른 실시예들에서, 필터링된 블록들(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록들 또는 샘플들(블록들 또는 샘플들은 도 5a에 도시되지 않음)은 인트라 예측(254)에 대한 입력 또는 기반으로서 사용된다.
루프 필터 유닛(220)(또는 줄여서 "루프 필터"(220))은 샘플 전환들을 매끄럽게 하거나 비디오 품질을 개선하기 위해, 재구성된 블록(215)을 필터링하여 필터링된 블록(221)을 획득하도록 구성된다. 루프 필터 유닛(220)은 하나 이상의 루프 필터들, 이를테면 블록 분리(deblocking) 필터, 샘플 적응 오프셋(SAO: sample-adaptive offset) 필터, 또는 다른 필터, 이를테면 양방향 필터, 적응 루프 필터(ALF: adaptive loop filter), 선명화 또는 평활화 필터, 또는 협업 필터를 나타내는 것으로 의도된다. 도 5a에서는 루프 필터 유닛(220)이 루프 내 필터로서 도시되지만, 다른 구성에서 루프 필터 유닛(220)은 포스트 루프 필터로서 구현될 수 있다. 필터링된 블록(221)은 필터링된 재구성 블록(221)으로도 또한 지칭될 수 있다. 디코딩된 픽처 버퍼(230)는 루프 필터 유닛(220)이 재구성된 인코딩된 블록에 대해 필터링 동작을 수행한 후 재구성된 인코딩된 블록을 저장할 수 있다.
일 실시예에서, 인코더(100)(대응하여, 루프 필터 유닛(220))는 루프 필터 파라미터(이를테면, 샘플 적응 오프셋 정보)를 예를 들어, 직접 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 후에 출력하여, 예를 들어 디코더(30)가 동일한 루프 필터 파라미터를 수신하고 디코딩을 위해 동일한 루프 필터 파라미터를 적용할 수 있도록 구성될 수 있다.
디코딩된 픽처 버퍼(DPB)(230)는 비디오 인코더(100)에 의한 비디오 데이터 인코딩에 사용하기 위한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 (동기식 DRAM(SDRAM: synchronous DRAM), 자기 저항성 RAM(MRAM: magnetoresistive RAM), 저항성 RAM(RRAM: resistive RAM)을 포함하는) 동적 랜덤 액세스 메모리(DRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 저장 디바이스에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수 있다. 일례로, 디코딩된 픽처 버퍼(DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 동일한 현재 픽처의 또는 상이한 픽처들, 예를 들어 이전에 재구성된 픽처들의 이전에 필터링된 다른 블록들, 예를 들어 이전에 재구성되고 필터링된 블록들(221)을 저장하도록 추가로 구성될 수 있고, 완전한 이전에 재구성된, 즉 디코딩된 픽처들(및 대응하는 참조 블록들 및 샘플들) 및/또는 부분적으로 재구성된 현재 픽처(및 대응하는 참조 블록들 및 샘플들)를 예를 들어, 인터 예측을 위해 제공할 수 있다. 일례로, 재구성된 블록(215)이 루프 내 필터링 없이 재구성된다면, 디코딩된 픽처 버퍼(DPB)(230)는 재구성된 블록(215)을 저장하도록 구성된다.
블록 예측 처리 유닛(260)으로도 또한 지칭되는 예측 처리 유닛(260)은, 픽처 블록(203)(현재 픽처(201)의 현재 블록(203)) 및 재구성된 픽처 데이터, 예를 들어 버퍼(216)로부터의 동일한(현재) 픽처의 참조 샘플들 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 픽처들의 참조 픽처 데이터(231)를 수신 또는 획득하고, 그리고 예측을 위해 이러한 데이터를 처리하도록, 특정하게는 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은 잔차 블록(205)의 계산을 위한 그리고 재구성된 블록(215)의 재구성을 위한 예측 블록(265)으로서 사용될 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 대응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
일 실시예에서, 모드 선택 유닛(262)은 (예를 들어, 예측 처리 유닛(260)에 의해 지원되는 예측 모드들 중에서) 예측 모드를 선택하도록 구성될 수 있으며, 여기서 예측 모드는 최상의 매칭 또는 다시 말해서 최소 잔차(최소 잔차는 전송 또는 저장을 위한 더 나은 압축을 의미함)를 제공하거나, 최소 시그널링 오버헤드들(최소 시그널링 오버헤드들은 전송 또는 저장을 위한 더 나은 압축을 의미함)을 제공하거나, 이 둘 다를 고려하거나 이 둘의 균형을 유지한다. 모드 선택 유닛(262)은 레이트 왜곡 최적화(RDO: rate distortion optimization)에 기초하여 예측 모드를 결정하도록, 특정하게는 최소 레이트 왜곡 최적화를 제공하는 예측 모드를 선택하거나 관련된 레이트 왜곡이 적어도 예측 모드 선택 기준을 충족하는 예측 모드를 선택하도록 구성될 수 있다.
다음에서, 인코더(100)의 일례에 의해 (예를 들어, 예측 처리 유닛(260)을 사용함으로써) 수행되는 예측 처리 및 (예를 들어, 모드 선택 유닛(262)을 사용함으로써) 수행되는 모드 선택이 더 상세히 설명된다.
앞서 설명한 바와 같이, 인코더(100)는 한 세트의 (미리 결정된) 예측 모드들 중에서 최상의 또는 최적의 예측 모드를 결정 또는 선택하도록 구성된다. 예측 모드들의 세트는 예를 들어, 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
한 세트의 인트라 예측 모드들은 35개의 서로 다른 인트라 예측 모드들, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들 또는 H.265에 정의된 것들과 같은 방향성 모드들을 포함할 수 있거나, 67개의 서로 다른 인트라 예측 모드들, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들 또는 개발 중인 H.266에 정의된 것들과 같은 방향성 모드를 포함할 수 있다.
(가능하게는) 인터 예측 모드들의 세트는 예를 들어, 가장 매칭하는 참조 블록을 검색하는 데 전체 참조 픽처가 사용되는지 또는 참조 픽처의 일부, 예를 들어 현재 블록의 영역 주변의 검색창 영역만이 사용되는지에 따라, 그리고/또는 예를 들어, 하프 샘플 및/또는 쿼터 샘플 보간과 같은 샘플 보간이 적용되는지 여부에 따라, 이용 가능한 참조 픽처(즉, DBP(230)에 저장된 디코딩된 픽처의 적어도 일부) 및 다른 인터 예측 파라미터에 의존한다.
앞서 말한 예측 모드들에 추가하여, 스킵 모드 및/또는 직접 모드가 적용될 수 있다.
예측 처리 유닛(260)은 예를 들어, 쿼드 트리(QT: quad-tree) 파티셔닝, 이진 트리(BT: binary-tree) 파티셔닝, 삼진 트리(TT: triple-tree) 파티셔닝, 또는 이들의 임의의 조합을 반복적으로 사용함으로써 블록(203)을 더 작은 블록 파티션들 또는 서브블록들로 분할하도록, 그리고 예를 들어, 블록 파티션들 또는 서브블록들 각각에 대한 예측을 수행하도록 추가로 구성될 수 있다. 모드 선택은 파티셔닝된 블록(203)의 트리 구조의 선택 및 블록 파티션들 또는 서브블록들 각각에 적용되는 예측 모드의 선택을 포함한다.
인터 예측 유닛(244)은 (도 5a에 도시되지 않은) 모션 추정(ME: motion estimation) 유닛 및 (도 5a에 도시되지 않은) 모션 보상(MC: motion compensation) 유닛을 포함할 수 있다. 모션 추정 유닛은 모션 추정을 위해 픽처 블록(203)(현재 픽처(201)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 이상의 이전에 재구성된 블록들, 예를 들어 다른/서로 다른 이전에 디코딩된 픽처들(231)의 하나 이상의 재구성된 블록들을 수신 또는 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재 픽처 및 이전에 디코딩된 픽처들(31)을 포함할 수 있다. 즉, 현재 픽처와 이전에 디코딩된 픽처들(31)은 비디오 시퀀스를 형성하는 픽처들의 시퀀스를 형성하거나 그 일부일 수 있다.
예를 들어, 인코더(100)는 동일한 픽처 또는 복수의 다른 픽처들의 서로 다른 픽처들의 복수의 참조 블록들 중에서 참조 블록을 선택하고, 참조 블록의 포지션(X 좌표 및 Y 좌표)과 현재 블록의 포지션 간의 오프셋(공간 오프셋) 및/또는 참조 픽처를 (도 5a에 도시되지 않은) 모션 추정 유닛에 인터 예측 파라미터로서 제공하도록 구성될 수 있다. 오프셋은 또한 모션 벡터(MV: motion vector)로 지칭된다.
모션 보상 유닛은 인터 예측 파라미터를 획득, 예를 들어 수신하도록, 그리고 인터 예측 파라미터에 기초하여 또는 인터 예측 파라미터를 사용함으로써 인터 예측을 수행하여 인터 예측 블록(245)을 획득하도록 구성된다. (도 5a에 도시되지 않은) 모션 보상 유닛에 의해 수행되는 모션 보상은 모션 추정 유닛을 통해 (가능하게는 서브샘플 정밀도로 보간들을 수행함으로써) 결정된 모션/블록 벡터에 기초하여 예측 블록을 페치(fetch) 또는 생성하는 것을 포함할 수 있다. 보간 필터링은 알려진 샘플들로부터 추가 샘플들을 생성함으로써, 픽처 블록을 코딩하는 데 사용될 수 있는 후보 예측 블록들의 양을 잠재적으로 증가시킬 수 있다. 현재 픽처 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 유닛(246)은 참조 픽처 리스트들 중 하나에서 모션 벡터가 가리키는 예측 블록의 위치를 찾을 수 있다. 모션 보상 유닛(246)은 또한 비디오 슬라이스의 픽처 블록들을 디코딩할 때 비디오 디코더(300)에 의한 사용을 위해 블록들 및 비디오 슬라이스들과 연관된 신택스 엘리먼트들을 생성할 수 있다.
인트라 예측 유닛(254)은 인트라 추정을 위해 픽처 블록(203)(현재 픽처 블록) 및 동일한 픽처의 하나 이상의 이전에 재구성된 블록들, 예를 들어 재구성된 이웃 블록들을 획득, 예를 들어 수신하도록 구성된다. 인코더(100)는 예를 들어, 복수의(미리 결정된) 인트라 예측 모드들 중에서 인트라 예측 모드를 선택하도록 구성될 수 있다.
일 실시예에서, 인코더(100)는 최적화 기준에 기반하여, 예를 들어 최소 잔차(예를 들어, 현재 픽처 블록(203)과 가장 유사한 예측 블록(255)을 제공하는 인트라 예측 모드) 또는 최소 레이트 왜곡에 기초하여 인트라 예측 모드를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은 예를 들어 선택된 인트라 예측 모드에서의 인트라 예측 파라미터에 기초하여 인트라 예측 블록(255)을 결정하도록 추가로 구성된다. 어떤 경우든, 블록의 인트라 예측 모드를 선택한 후, 인트라 예측 유닛(254)은 인트라 예측 파라미터, 즉 블록의 선택된 인트라 예측 모드를 지시하는 정보를 엔트로피 인코딩 유닛(270)에 제공하도록 추가로 구성된다. 일례로, 인트라 예측 유닛(254)은 아래에서 설명되는 인트라 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
엔트로피 인코딩 유닛(270)은 예를 들어, 인코딩된 비트스트림(21)의 형태로 출력(272)을 통해 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하기 위해, 양자화된 잔차 계수들(209), 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 루프 필터 파라미터 중 하나 또는 전부에 엔트로피 인코딩 알고리즘 또는 방식(예를 들어, 가변 길이 코딩(VLC: variable length coding) 방식, 컨텍스트 적응적 VLC(CAVLC: context adaptive VLC) 방식, 산술 코딩 방식, 컨텍스트 적응적 이진 산술 코딩(CABAC: context adaptive binary arithmetic coding), 신택스 기반 컨텍스트 적응적 이진 산술 코딩(SBAC: syntax-based context-adaptive binary arithmetic coding) 방식, 확률 구간 파티셔닝 엔트로피(PIPE: probability interval partitioning entropy) 코딩, 또는 다른 엔트로피 인코딩 방법 또는 기술)을 적용하도록(또는 적용하지 않도록) 구성된다. 인코딩된 비트스트림은 비디오 디코더(300)에 전송되거나, 비디오 디코더(300)에 의한 이후의 전송 또는 리트리브를 위해 보관될 수 있다. 엔트로피 인코딩 유닛(270)은 인코딩되고 있는 현재 비디오 슬라이스에 대한 다른 신택스 엘리먼트를 엔트로피 인코딩하도록 추가로 구성될 수 있다.
비디오 인코더(100)의 다른 구조적 변형들이 비디오 스트림을 인코딩하는 데 사용될 수 있다. 예를 들어, 비-변환 기반 인코더(100)는 일부 블록들 또는 프레임들에 대해 변환 처리 유닛(206) 없이 직접 잔차 신호를 양자화할 수 있다. 다른 구현에서, 인코더(100)는 단일 유닛으로 조합된 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수 있다.
도 5b는 본 발명의 일 실시예에 따른 비디오 디코더의 개략적인 블록도이다. 비디오 디코더(300)의 엔트로피 디코더(303)는 비트스트림을 엔트로피 디코딩하여, 양자화된 계수 및 일부 신택스 엘리먼트들을 생성한다. 엔트로피 디코더(303)는 신택스 엘리먼트들을 예측 처리 유닛(308)에 포워딩한다. 비디오 디코더(300)는 비디오 슬라이스 레벨 및/또는 픽처 블록 레벨에서 신택스 엘리먼트들/신택스 엘리먼트를 수신할 수 있다. 본 출원에서는, 일례로, 본 명세서의 신택스 엘리먼트는 크로마 코딩 트리 노드와 관련된 인트라 예측 데이터를 포함할 수 있으며, 인트라 예측 데이터는 제1 식별자(qtbtt_dual_tree_intra_flag) 및 제2 식별자(sps_cclm_enabled_flag)를 포함할 수 있고, 제1 식별자는 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 제2 식별자는 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용할지 여부를 지시하는 데 사용된다. 선택적으로, 인터 예측 데이터는 크로마 코딩 트리 노드의 크기 및 분할 플래그를 더 포함할 수 있고, 분할 플래그는 크로마 코딩 트리 노드에 대해 상이한 분할 모드들이 사용된다는 것을 지시하도록 상이한 값들로 설정될 수 있다. 선택적으로, 다른 신택스 엘리먼트가 더 포함될 수 있다.
엔트로피 디코더(303)는 비트스트림을 엔트로피 디코딩하여 제1 식별자(qtbtt_dual_tree_intra_flag) 및 제2 식별자(sps_cclm_enabled_flag)를 획득한다. 제1 식별자가 인트라 픽처에 분리 트리 구조가 사용됨을 지시하고, 제2 식별자가 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용함을 지시한다면, 엔트로피 디코더(303)는 비트스트림으로부터의 크로마 코딩 트리 노드의 크기 및 분할 플래그를 계속해서 파싱하고, 인트라 예측기(309)는 분할 플래그에 기초하여 크로마 코딩 트리 노드의 분할 모드를 결정하고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정한다. 엔트로피 디코더(303)는 비트스트림으로부터의 크로마 코딩 유닛의 제1인덱스(CuPreMode)를 파싱한다. 제1 인덱스의 값이 MODE_INTRA와 같다면, 엔트로피 디코더(303)는 비트스트림으로부터의 제3 식별자(pcm_flag)를 계속해서 파싱한다. 제3 식별자가 크로마 코딩 유닛에 대해 어떠한 PCM 모드도 사용되지 않음을 지시한다면, 엔트로피 디코더(303)는 비트스트림으로부터의 제2 인덱스(intra_chroma_pred_mode)를 파싱한다. 인트라 예측기(309)는 크로마 코딩 유닛에 대응하는 루마 코딩 유닛의 예측 모드 및 제2 인덱스(intra_chroma_pred_mode)에 기초하여 크로마 코딩 유닛의 예측 모드를 결정하고, 이어서 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛을 인트라 예측하여 크로마 코딩 유닛의 예측 샘플들을 획득한다. 엔트로피 디코더(303)는 비트스트림을 추가로 파싱하여 크로마 코딩 유닛의 잔차 정보를 획득한다.
역양자화기(304) 및 역변환기(305)는 크로마 코딩 유닛의 잔차 정보를 처리하여 크로마 코딩 유닛의 재구성된 잔차들을 획득한다.
인트라 예측기(309)가 크로마 코딩 유닛에 사용되는 예측 샘플들을 생성한 후, 비디오 디코더(300)는 역변환기(305)로부터의 재구성된 잔차들과 인트라 예측기(309)에 의해 생성된 예측 샘플들을 더하여, 크로마 코딩 유닛의 재구성된 샘플들, 즉 디코딩된 픽처 블록을 획득한다. 합산기(311)는 합산 동작을 수행하는 컴포넌트를 나타낸다. 필요한 경우, 샘플 전환들을 평활화하거나 아니면 비디오 품질을 개선하기 위해 (디코딩 루프 내에서 또는 그 뒤에) 루프 필터가 추가로 사용될 수 있다. 필터 유닛(306)은 하나 이상의 루프 필터들, 예를 들어 블록 분리 필터, 적응 루프 필터(ALF) 및 샘플 적응 오프셋(SAO) 필터를 나타낼 수 있다. 도 5b에서는 필터 유닛(306)이 루프 내 필터로서 도시되지만, 다른 구현에서 필터 유닛(306)은 포스트 루프 필터로서 구현될 수 있다. 일례로, 필터 유닛(306)은 블록 왜곡을 감소시키기 위해 블록 재구성에 적용 가능하고, 이 결과는 디코딩된 비디오 스트림으로서 출력된다. 추가로, 주어진 프레임 또는 픽처 내의 디코딩된 픽처 블록은 디코딩된 픽처 버퍼(307)에 추가로 저장될 수 있고, 디코딩된 픽처 버퍼(307)는 후속 모션 보상에 사용되는 참조 픽처를 저장한다. 디코딩된 픽처 버퍼(307)는 메모리의 일부일 수 있고, 디스플레이 장치(예를 들어, 도 4의 디스플레이 장치(330)) 상에서의 후속 표현을 위해 디코딩된 비디오를 추가로 저장할 수 있다. 대안으로, 디코딩된 픽처 버퍼(307)는 그러한 메모리로부터 분리될 수 있다.
비디오 디코더(300)의 다른 구조적 변형이 인코딩된 비디오 비트스트림을 디코딩하는 데 사용될 수 있다고 이해되어야 한다. 예를 들어, 비디오 디코더(300)는 필터 유닛(306)에 의한 처리 없이 출력 비디오 스트림을 생성할 수 있다. 대안으로, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 디코더(300)의 엔트로피 디코더(303)는 양자화된 계수를 디코딩을 통해 획득하지 않으며, 대응하여, 역양자화기(304) 및 역변환기(305)에 의한 처리는 요구되지 않는다.
도 5c는 예시적인 실시예에 따라, 도 4의 소스 디바이스(10) 및 목적지 디바이스(30) 중 어느 하나 또는 둘로서 사용될 수 있는 장치(500)의 단순화된 블록도이다. 이 장치(500)는 본 출원의 기술들을 구현할 수 있다. 이 장치(500)는 복수의 컴퓨팅 디바이스들을 포함하는 컴퓨팅 시스템의 형태일 수 있거나, 휴대 전화, 태블릿 컴퓨터, 랩톱 컴퓨터 또는 데스크톱 컴퓨터와 같은 단일 컴퓨팅 디바이스의 형태일 수 있다.
장치(500)의 프로세서(502)는 또한 중앙 처리 유닛일 수 있다. 대안으로, 프로세서(502)는 정보를 제어 또는 처리할 수 있는 그리고 존재하고 있거나 향후에 개발될 임의의 다른 타입의 디바이스 또는 복수의 디바이스들일 수 있다. 도면에 도시된 바와 같이, 개시된 구현들은 단일 프로세서, 이를테면 프로세서(502)로 실시될 수 있지만, 하나보다 많은 프로세서를 사용함으로써 속도 및 효율의 이점들이 달성될 수 있다.
일 구현에서, 장치(500)의 메모리(504)는 판독 전용 메모리(ROM: Read Only Memory) 디바이스 또는 랜덤 액세스 메모리(RAM: random access memory) 디바이스일 수 있다. 임의의 다른 적절한 타입의 저장 디바이스가 메모리(504)로서 사용될 수 있다. 메모리(504)는 버스(512)를 사용함으로써 프로세서(502)에 의해 액세스되는 코드 및 데이터(506)를 포함할 수 있다. 메모리(504)는 운영 시스템(508) 및 애플리케이션 프로그램들(510)을 더 포함할 수 있다. 애플리케이션 프로그램들(510)은 프로세서(502)가 본 명세서에서 설명되는 방법들을 수행할 수 있게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램들(510)은 애플리케이션 1 내지 애플리케이션 N을 포함할 수 있으며, 애플리케이션 1 내지 애플리케이션 N은 본 명세서에서 설명되는 방법들을 수행하는 비디오 코딩 애플리케이션을 더 포함한다. 이 장치(500)는 또한 2차 저장소(514) 형태의 추가 메모리를 포함할 수 있다. 2차 저장소(514)는 예를 들어, 모바일 컴퓨팅 디바이스와 함께 사용되는 메모리 카드일 수 있다. 비디오 통신 세션들이 많은 양의 정보를 포함할 수 있기 때문에, 이러한 정보의 전부 또는 일부는 2차 저장소(514)에 저장될 수 있고, 처리를 위해 필요에 따라 메모리(504)에 로딩될 수 있다.
장치(500)는 또한 디스플레이(518)와 같은 하나 이상의 출력 디바이스들을 포함할 수 있다. 일례로, 디스플레이(518)는 터치 입력들을 감지하도록 작동 가능한 터치 감지 엘리먼트와 디스플레이를 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 사용함으로써 프로세서(502)에 결합될 수 있다. 사용자가 장치(500)를 프로그래밍하거나 달리 사용할 수 있게 하는 다른 출력 디바이스들이 디스플레이(518)에 추가로 또는 그에 대한 대안으로서 제공될 수 있다. 출력 디바이스가 디스플레이이거나 디스플레이를 포함할 때, 디스플레이는 액정 디스플레이(LCD), 음극선관(CRT: cathode-ray tube) 디스플레이, 플라즈마 디스플레이 또는 발광 다이오드(LED: light emitting diode) 디스플레이, 이를테면 유기 LED(OLED) 디스플레이를 이용하는 것을 포함하여 다양한 방식들로 구현될 수 있다.
장치(500)는 또한 픽처 감지 디바이스(520)를 포함하거나 그에 접속될 수 있다. 픽처 감지 디바이스(520)는 예를 들어, 카메라 또는 픽처를 감지할 수 있는 그리고 존재하고 있거나 향후에 개발될 임의의 다른 픽처 감지 디바이스(520)이다. 픽처는 예를 들어, 장치(500)를 실행하는 사용자의 픽처이다. 픽처 감지 디바이스(520)는 장치(500)를 실행하는 사용자를 직접 향하게 배치될 수 있다. 일례로, 픽처 감지 디바이스(520)의 포지션 및 광학 축은, 픽처 감지 디바이스(520)의 시야가 디스플레이(518)에 매우 인접한 영역을 포함하고 디스플레이(518)가 영역으로부터 보일 수 있도록 구성될 수 있다.
장치(500)는 또한 사운드 감지 디바이스(522), 예를 들어 마이크로폰 또는 존재하고 있거나 향후에 개발될 그리고 장치(500) 근처에서 사운드들을 감지할 수 있는 임의의 다른 사운드 감지 디바이스를 포함하거나 그와 통신할 수 있다. 사운드 감지 디바이스(522)는 장치(500)를 실행하는 사용자를 직접 향하게 배치될 수 있고, 장치(500)를 실행할 때 사용자에 의해 만들어진 사운드, 예를 들어 음성 또는 다른 사운드를 수신하도록 구성될 수 있다.
도 5c는 장치(500)의 프로세서(502) 및 메모리(504)가 단일 유닛으로 통합되는 것을 도시하지만, 다른 구성들이 이용될 수 있다. 프로세서(502)의 실행은 로컬 영역 또는 다른 네트워크에 분산되거나 직접적으로 결합될 수 있는 복수의 머신들(각각의 머신이 하나 이상의 프로세서들을 가짐)에 분산될 수 있다. 메모리(504)는 장치(500)가 실행되는 복수의 머신들 내의 메모리 또는 네트워크 기반 메모리와 같은 복수의 머신들에 걸쳐 분산될 수 있다. 본 명세서에서는 단일 버스로서 도시되지만, 장치(500)의 버스(512)는 복수의 버스들을 포함할 수 있다. 추가로, 2차 저장소(514)가 장치(500)의 다른 컴포넌트들에 직접 결합될 수 있거나, 네트워크를 통해 액세스될 수 있고, 메모리 카드와 같은 단일 통합 유닛 또는 복수의 메모리 카드들과 같은 복수의 유닛들을 포함할 수 있다. 따라서 장치(500)는 매우 다양한 구성들로 구현될 수 있다.
도 5a에 도시된 인코더, 도 5b에 도시된 디코더, 및 도 5c에 도시된 장치는 도 6 및 도 7에 도시된 다음의 방법 실시예들의 일부 또는 전부를 수행할 수 있다는 점이 주목되어야 한다.
도 6은 본 발명의 일 실시예에 따른 비디오 시퀀스에 대한 인트라 예측 방법의 개략적인 흐름도이다. 도 6에 도시된 바와 같이, 이 방법은 다음의 단계들을 포함한다.
S601. 크로마 코딩 트리 노드의 크기 및 분할 모드를 획득한다.
구체적으로, 비트스트림 내의 대응하는 신택스 엘리먼트가 파싱되어 크로마 코딩 트리 노드의 크기 및 분할 모드를 획득한다. 크로마 코딩 트리 노드의 분할 모드는 비분할, 쿼드 트리 분할, 수평 이진 분할, 수평 삼진 분할, 수직 이진 분할 및 수직 삼진 분할 중 적어도 하나를 포함할 수 있다. 물론, 대안으로 다른 분할 모드가 있을 수 있다. 이는 본 발명에서 제한되지 않는다.
본 발명의 이러한 실시예에서의 비디오 시퀀스의 포맷은 YUV4:2:0 포맷, YUV4:2:2 포맷 또는 YUV4:2:4 포맷일 수 있다는 점이 본 명세서에서 주목되어야 한다.
S602. 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정한다.
크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛은 크로마 코딩 트리 노드에 대응하는 픽처 영역 내의 크로마 코딩 유닛이다. 크로마 코딩 트리 노드가 분할되지 않는다면, 크로마 코딩 트리 노드는 하나의 크로마 코딩 유닛을 포함한다. 크로마 코딩 트리 노드가 자식 노드들로 분할된다면, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛은 크로마 코딩 트리 노드의 모든 코딩 트리 리프 노드들에 대응하는 크로마 코딩 유닛이다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
M과 N이 둘 다 미리 설정된 임계치(T1)와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계 ― 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함하고, 임계치(T1)는 예를 들어, 64 또는 32임 ―; 또는
M이 T1과 같고 N이 T1/2와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 더 포함하며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
보다 구체적으로, 제1 사전 설정 조건이 비분할 모드 또는 쿼드 트리 분할 모드일 때, "크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면"은 "크로마 코딩 트리 노드의 분할 모드가 비분할 모드 또는 쿼드 트리 분할 모드라면"이다. 제2 사전 설정 조건이 비분할 모드 또는 수직 이진 분할 모드일 때, "크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면"은 "크로마 코딩 트리 노드의 분할 모드가 비분할 모드 또는 수직 이진 분할 모드라면"이다. 다른 실행 가능한 실시예에서, 제1 사전 설정 조건은 대안으로, 비분할, 쿼드 트리 분할 모드 또는 수평 이진 분할 모드일 수 있다. 다른 실행 가능한 실시예에서, 제2 사전 설정 조건은 대안으로, 비분할, 수직 이진 분할 모드 또는 수평 이진 분할 모드일 수 있다.
현재 크로마 코딩 트리 노드가 분할되지 않는다면, 현재 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛의 코딩 모드 정보가 추가로 파싱되고, 디코딩 및 재구성이 완료된다. 그렇지 않으면, 현재 크로마 코딩 트리 노드는 현재 크로마 코딩 트리 노드의 분할 모드에 기반하여 복수의 노드들로 분할된다.
본 명세서에서, 분리 트리 구조가 인트라 픽처에 대해 사용된다면, 크기가 T1 × (T1/2)인 크로마 코딩 트리 노드는 수평 이진 분할 모드를 사용함으로써 크기가 T1 × T1인 크로마 코딩 트리 노드를 분할함으로써만 획득될 수 있으며; 따라서 "크로마 코딩 트리 노드의 크기가 T1 × (T1/2)이다"는, 크로마 코딩 트리 노드의 부모 노드(즉, 크기가 T1 × T1인 크로마 코딩 트리 노드)의 분할 모드가 수평 이진 분할 모드라는 것과 동일하다는 점이 주목되어야 한다.
예를 들어, 크로마 코딩 트리 노드의 크기가 64 × 64인 것으로 가정된다. 도 2의 (a)에 도시된 바와 같이, 크기가 64 × 64인 크로마 코딩 트리 노드의 루마 블록이 쿼드 트리 분할 모드를 사용함으로써 분할될 때, 크로마 코딩 트리 노드의 분할 모드가 쿼드 트리 분할 모드라면, 즉 도 2의 (d)에 도시된 바와 같이, 크로마 코딩 트리 노드의 크로마 블록에 대해 쿼드 트리 분할 모드가 사용된다면, 루마 노드 0이 재구성된 이후 크로마 노드 0에 대해 CCLM이 수행될 수 있고, 루마 노드 1이 재구성된 이후 크로마 노드 1에 대해 CCLM이 수행될 수 있는 식이다. 다른 예의 경우, 크로마 코딩 트리 노드의 분할 모드가 비분할이라면, 즉 도 2의 (e)에 도시된 바와 같이, 크로마 코딩 트리 노드의 크로마 블록이 분할되지 않는다면, 크로마 블록은 4개의 하위 영역들(p0, p1, p2, p3)로 분할될 수 있으며, p0, p1, p2 및 p3의 인트라 예측이 순차적으로 완료된다. 루마 노드 0이 재구성된 이후 크로마 영역 p0에 대해 CCLM이 수행될 수 있고, 루마 노드 1이 재구성되기 이전 크로마 영역 p1에 대해 CCLM이 수행될 수 있는 식이다.
도 2의 (f)에 도시된 바와 같이, 크기가 64 × 64인 크로마 코딩 트리 노드의 크로마 블록이 먼저 수평 이진 분할 모드를 사용함으로써 분할되고, 상부 부분의 크기가 64 × 32인 크로마 노드가 수직 이진 분할 모드를 사용함으로써 분할되고, 하부 부분의 크기가 64 × 32인 크로마 노드는 분할되지 않는다면, 루마 노드 0이 재구성된 이후 크로마 노드 0에 대해 CCLM이 수행될 수 있고, 루마 노드 1이 재구성된 이후 크로마 노드 1에 대해 CCLM이 수행될 수 있고, 루마 노드 2가 재구성된 이후 크로마 노드 2의 영역 p0에 대해 CCLM이 수행될 수 있고, 루마 노드 3이 재구성된 이후 크로마 노드 2의 영역 p1에 대해 CCLM이 수행될 수 있다. 따라서 크기가 64 × 64인 크로마 코딩 트리 노드의 크로마 블록이 분할되지 않거나 쿼드 트리 분할 모드를 사용함으로써 분할되거나, 크기가 64 × 32인 크로마 코딩 트리 노드의 크로마 블록이 분할되지 않거나 수직 이진 분할 모드를 사용함으로써 분할될 때, 크로마 노드에 대해 CCLM을 수행하기 위한 처리 레이턴시는 크기가 32 × 32인 하나의 루마 영역의 처리 시간을 초과하지 않는다.
이 실시예에서, 크기가 T1 × T1인 루마 코딩 트리 노드에 의해 사용될 수 있는 분할 모드는 비분할 모드 및 쿼드 트리 분할 모드만을 포함하는 것으로 제한될 수 있다. 이러한 제한은, I-프레임 픽처의 최대 이진 트리 노드 크기(예를 들어, VTM5의 MaxBtSizeY)가 T1/2를 초과할 수 없고 최대 삼진 트리 노드 크기(예를 들어, VTM5의 MaxTtSizeY)가 T1/2를 초과할 수 없다는 제한에 의해 구현될 수 있다.
추가로, 크기가 T1 × T1인 그리고 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 포함되는 루마 코딩 유닛에 대해서는 어떤 ISP 모드도 사용되지 않는다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부가 결정된다. 추가로, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부가 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여 추가로 결정된다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계는:
크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 인트라 서브-파티션(ISP) 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계를 포함하며, 여기서 루마 코딩 트리 노드가 분할되지 않는 경우는 하나의 루마 코딩 유닛에 대응하고; 따라서 루마 코딩 트리 노드가 분할되지 않은 경우에 대응하는 루마 블록은 루마 코딩 트리 노드에 대응하는 루마 코딩 유닛의 루마 블록이다.
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는, 크로마 코딩 트리가 위치되는 분리 트리 내의 루마 코딩 트리에서 크기가 T1 × T1인 루마 코딩 트리 노드이다. 예를 들어, VVC 초안 5에서 인트라 픽처에 대해 분리 트리가 사용될 때, 분리 트리를 사용함으로써 64 × 64 코딩 트리 노드가 분할되고, 분리 트리는 루마 코딩 트리 및 크로마 코딩 트리를 포함한다. T1이 64로 설정된다면, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 크로마 코딩 트리가 위치되는 분리 트리의 루마 코딩 트리의 루트 노드이다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 인트라 서브-파티션(ISP) 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건에서 임의의 하나의 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계;
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, M은 T1과 같고, N은 T1과 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계 ― 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함함 ―; 또는
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, M은 T1과 같고, N은 T1/2와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
일 실시예에서, 제3 사전 설정 조건은 다음의 조건 1 내지 조건 13 중 하나 또는 이들의 임의의 조합을 포함하고, 조건 1 내지 조건 13은 다음과 같다:
조건 1: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 여기서 루마 코딩 트리 노드의 크기는 T1 × T1이다(여기서 루마 코딩 트리 노드 및 크로마 코딩 트리 노드는 동일한 분리 트리에 속하는데, 즉 루마 코딩 트리 노드의 최상부 좌측 코너의 좌표들은 크로마 코딩 트리의 루트 노드의 최상부 좌측 코너의 좌표들과 동일하다).
조건 2: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 3: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수평 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 4: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수평 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수평 삼진 분할 모드, 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 5: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수평 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 수평 삼진 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 루마 코딩 트리 노드의 크기는 T1 × T1이고, 크로마 코딩 트리 노드의 크기는 T1 × (T1/2)이다.
조건 6: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수직 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기와 루마 코딩 트리 노드의 크기 모두 T1 × T1이다.
조건 7: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수직 ISP 예측 모드가 사용되며, 크로마 코딩 트리 노드는 수직 삼진 분할 모드, 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
조건 8: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 수직 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 수직 삼진 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할되고, 루마 코딩 트리 노드의 크기 및 루마 블록의 크기는 둘 다 T1 × T1이고, 크로마 코딩 트리 노드의 크기는 T1 × (T1/2)이다.
조건 9: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수평 이진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 10: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수직 이진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 11: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수평 삼진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 12: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드는 수직 삼진 분할 모드를 사용함으로써 자식 노드들로 분할되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
조건 13: 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드는 비분할 및 쿼드 트리 분할 이외의 분할 모드이며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
루마 코딩 트리 노드에 사용되는 분할 모드는 비분할 이외의 분할 모드이고, 쿼드 트리 분할은 루마 코딩 트리 노드에 사용되는 분할 모드가 쿼드 트리 분할 또는 비분할이 아님을 의미한다는 점이 주목되어야 한다.
쿼드 트리-다중 타입 트리(QT-MTT: quad-tree plus multi-type tree) 구조에서, 노드에 대해 허용되는 분할 모드들은 최대 비분할, 수평 이진 분할 모드, 수직 이진 분할 모드, 수평 삼진 분할 모드, 수직 삼진 분할 모드 및 쿼드 트리 분할 모드를 포함하며; 따라서 조건 3의 "크로마 코딩 트리 노드가 수직 이진 분할 모드, 수직 삼진 분할 모드 또는 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할된다"는 QT-MTT 구조에서, "크로마 코딩 트리 노드에 사용되는 분할 모드는 수평 이진 분할 모드, 수평 삼진 분할 모드 또는 비분할이 아님"으로서 동등하게 설명될 수 있다는 점이 본 명세서에서 주목되어야 한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드가 비분할 및 쿼드 트리 분할로 제한된다는 전제 하에, 제3 사전 설정 조건은 조건 1 내지 조건 9 중 적어도 하나를 포함한다.
본 명세서에서, 크로마 코딩 트리 노드가 자식 노드들로 분할된다는 것은 구체적으로, 크로마 코딩 트리 노드가 수평 이진 분할 모드, 수직 이진 분할 모드, 수평 삼진 분할 모드, 수직 삼진 분할 모드 및 쿼드 트리 분할 모드 중 하나를 사용함으로써 자식 노드들로 분할된다는 것을 의미한다는 점이 주목되어야 한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 루마 코딩 트리 노드의 크기는 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되거나; 또는 루마 코딩 트리 노드의 분할 모드는 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 1 내지 조건 13 중 하나 이상을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 1 또는 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 2 또는 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 3, 조건 5, 조건 6, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 조건 4, 조건 5, 조건 7, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제4 사전 설정 조건은 조건 3, 조건 5, 조건 7, 조건 8, 조건 9, 조건 10, 조건 11 및 조건 12를 포함한다.
가능한 실시예에서, T1은 64와 같을 수 있다. 즉, 크로마 코딩 트리 노드의 크기가 T1 × T1이라면, 크로마 코딩 트리 노드의 크기는 실제로 64 × 64이다. 크로마 코딩 트리 노드의 크기가 T1 × (T1/2)이라면, 크로마 코딩 트리 노드의 크기는 실제로 64 × 32이다. 루마 코딩 트리 노드의 크기가 T1 × T1이라면, 루마 코딩 트리 노드의 크기는 실제로 64 × 64이다. 루마 코딩 트리 노드의 루마 블록의 크기가 T1 × T1이라면, 크로마 코딩 트리 노드의 크기는 실제로 64 × 64이다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부가 결정된 후, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 추가로 결정하기 위해 크로마 코딩 유닛이 제3 사전 설정 조건을 충족하는지 여부가 결정된다.
S603. 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 크로마 코딩 유닛의 예측 모드를 획득한다.
크로마 코딩 유닛의 예측 모드는 직접 모드, 평면 모드(planar mode), 직류 모드(DC mode), 각도 모드(angular mode), CCLM 모드, 펄스 코드 변조(PCM: pulse-code modulation) 모드 및 인트라 블록 카피(IBC: intra block copy) 모드 중 적어도 하나를 포함한다.
구체적으로, 크로마 코딩 유닛의 신택스 엘리먼트(CuPredMode)가 신택스 표로부터 파싱된다. 크로마 코딩 유닛의 CuPredMode의 값이 MODE_INTRA와 같다면, 파싱을 통해 pcm_flag가 획득되며, 여기서 pcm_flag는 크로마 코딩 유닛에 대해 PCM 모드가 사용되는지 여부를 지시하는 데 사용된다. pcm_flag에 기초하여, 크로마 코딩 유닛에 대해 어떠한 PCM 모드도 사용되지 않는다고 결정된다면, 신택스 엘리먼트(intra_chroma_pred_mode)가 추가로 파싱된다.
크로마 코딩 유닛에 대한 CCLM이 허용되지 않는다면, 표 1에 기반하여, 크로마 코딩 유닛에 대응하는 신택스 엘리먼트(intra_chroma_pred_mode) 및 루마 인트라 예측 모드(IntraPredModeY)에 의해 크로마 코딩 유닛의 예측 모드가 결정될 수 있다.
intra_chroma_pred_mode[xCb][yCb] IntraredModeY[xCb + cbWidth/2][yCb + cbHeight/2]
0 50 18 1 X(0 ≤ X ≤ 66)
0 66 0 0 0 0
1 50 66 50 50 50
2 18 18 66 18 18
3 1 1 1 66 1
4 0 50 18 1 X
크로마 코딩 유닛에 대해 CCLM 모드가 허용된다면, 표 2에 기반하여, 크로마 코딩 유닛에 대응하는 신택스 엘리먼트(intra_chroma_pred_mode) 및 루마 인트라 예측 모드(IntraPredModeY)에 의해 크로마 코딩 유닛의 예측 모드가 결정될 수 있다.
intra_chroma_pred_mode[xCb][yCb] IntraredModeY[xCb + cbWidth/2][yCb + cbHeight/2]
0 50 18 1 X(0 ≤ X ≤ 66)
0 66 0 0 0 0
1 50 66 50 50 50
2 18 18 66 18 18
3 1 1 1 66 1
4 81 81 81 81 81
5 82 82 82 82 82
6 83 83 83 83 83
7 0 50 18 1 X
xCb 및 xCr은 크로마 코딩 유닛의 상부 좌측 코너의 (대응하는 루마 샘플들의 양을 사용함으로써 표현되는) 좌표들을 나타내고, cbWidth 및 cbHeight는 각각, 크로마 코딩 유닛의 (대응하는 루마 샘플들의 양을 사용함으로써 표현되는) 폭 및 높이를 나타내며, intra_chroma_pred_mode[xCb][yCb]는 크로마 코딩 유닛의 다수의 인트라 예측 모드를 나타내고, IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight/2]는 좌표 포지션(xCb + cbWidth/2, yCb + cbHeight/2)의 루마 인트라 예측 모드를 나타내며, 크로마 코딩 유닛의 인트라 예측 모드 IntraPredModeC[xCb][yCb]는 표 1 또는 표 2를 룩업함으로써 획득될 수 있다.
S604. 크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛에 대해 인트라 예측을 수행한다.
실행 가능한 실시예에서, 제1 식별자(qtbtt_dual_tree_intra_flag) 및 제2 식별자(sps_cclm_enabled_flag)가 비트스트림으로부터 파싱된다. 제1 식별자는 인트라 픽처에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 제2 식별자는 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용할지 여부를 지시하는 데 사용된다. 예를 들어, 제1 식별자의 값이 제1 값(예를 들어, 1 또는 참)이라면, 제1 식별자는 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용됨을 지시하는 데 사용되고; 또는 제1 식별자의 값이 제2 값(예를 들어, 0 또는 거짓)이라면, 제1 식별자는 비디오 시퀀스에서 인트라 픽처에 대해 어떠한 분리 트리 구조도 사용되지 않음을 지시하는 데 사용된다. 제2 식별자의 값이 제1 값(예를 들어, 1 또는 참)이라면, 제2 식별자는 비디오 시퀀스의 크로마 블록에 대한 CCLM이 허용됨을 지시하는 데 사용되고; 또는 제2 식별자의 값이 제2 값(예를 들어, 0 또는 거짓)이라면, 제2 식별자는 비디오 시퀀스의 크로마 블록에 대한 CCLM이 허용되지 않음을 지시하는 데 사용된다.
제1 식별자의 값과 제2 식별자의 값 둘 다 제1 값일 때, 본 발명의 인트라 예측 방법을 사용함으로써 크로마 코딩 유닛에 대해 인트라 예측 동작이 수행된다.
본 발명의 이러한 실시예에서의 솔루션에서는, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부가 결정됨으로써, 크로마 코딩 유닛에 대해 CCLM을 수행하기 위한 처리 레이턴시를 감소시키고, 하드웨어 디코더의 스루풋을 향상시킨다는 것을 알게 될 수 있다.
도 7은 본 발명의 일 실시예에 따른 디코딩 방법의 개략적인 흐름도이다. 도 7에 도시된 바와 같이, 이 방법은 다음의 단계들을 포함한다.
S701. 크로마 코딩 트리 노드의 크기 및 분할 모드를 획득하기 위해 비트스트림을 파싱한다.
구체적으로, 비디오 디코딩 유닛은 대응하는 신택스 엘리먼트를 획득하기 위해 비트스트림을 디코딩하고, 신택스 엘리먼트에 기초하여 크로마 코딩 트리 노드의 크기 및 분할 모드를 추가로 결정한다.
S702. 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정한다.
S703. 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 크로마 코딩 유닛의 예측 모드를 결정한다.
S704. 크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛을 처리한다.
단계들(S701 내지 S704)의 특정 설명들을 위해, 도 6에 도시된 실시예에서의 단계들(S601 내지 S604)의 관련된 설명들을 참조한다는 점이 주목되어야 한다. 세부사항들은 여기서 다시 설명되지 않는다.
S705. 크로마 코딩 유닛의 재구성된 잔차들을 획득하고, 크로마 코딩 유닛의 재구성된 잔차들 및 크로마 코딩 유닛의 예측 샘플들에 기초하여 크로마 코딩 유닛의 재구성된 샘플들을 획득한다.
구체적으로, 잔차 정보는 코딩된 블록 플래그 및 변환 계수를 포함하고, 수평 변환 타입 및 수직 변환 타입(예를 들어, DCT-2, DCT-7 또는 DCT-8)을 더 포함할 수 있다.
구체적으로, 비트스트림이 파싱된다. 파싱을 통해 크로마 코딩 유닛의 잔차 정보가 획득된다면, 크로마 코딩 유닛의 재구성된 잔차들을 획득하기 위해, 크로마 코딩 유닛의 잔차 정보에 대해 역양자화 처리 및 역변환 처리가 수행되고; 또는 파싱을 통해 크로마 코딩 유닛의 잔차 정보가 획득되지 않는다면, 크로마 코딩 유닛의 재구성된 잔차들이 0이라고 결정된다. 잔차 정보는 코딩된 블록 플래그 및 변환 계수를 포함하고, 수평 변환 타입 및 수직 변환 타입(예를 들어, DCT-2, DCT-7 또는 DCT-8)을 더 포함할 수 있다. 크로마 코딩 유닛의 재구성된 잔차들 및 크로마 코딩 유닛의 예측 샘플들이 더해지고, 덧셈의 결과들은 미리 설정된 값 범위(예를 들어, 0 내지 255 또는 0 내지 1023) 내에 있도록 잘려, 크로마 코딩 유닛의 재구성된 샘플들을 획득한다.
본 발명의 이러한 실시예에서의 솔루션에서는, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부가 결정됨으로써, 크로마 코딩 유닛에 대해 CCLM을 수행하기 위한 처리 레이턴시를 감소시키고, 하드웨어 디코더의 스루풋을 향상시키며, 비디오 디코딩 효율을 향상시킨다는 것을 알게 될 수 있다.
도 8은 본 발명의 일 실시예에 따른 인트라 예측 장치의 개략적인 구조도이다. 도 8에 도시된 바와 같이, 인트라 예측 장치(800)는:
크로마 코딩 트리 노드의 크기 및 분할 모드를 획득하도록 구성된 획득 유닛(801);
크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하고; 그리고 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 크로마 코딩 유닛의 예측 모드를 결정하도록 구성된 결정 유닛(802); 및
크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 크로마 코딩 유닛의 예측 모드에 기초하여 크로마 코딩 유닛을 처리하도록 구성된 예측 유닛(803)을 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛(802)은 구체적으로:
M과 N이 둘 다 미리 설정된 임계치(T1)와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛(802)은 구체적으로:
M이 T1과 같고 N이 T1/2와 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛(802)은 구체적으로:
크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 ISP 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하도록 구성된다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 ISP 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛(802)은 구체적으로:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, M은 T1과 같고, N은 T1과 같을 때, 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함한다.
실행 가능한 실시예에서, 크로마 코딩 트리 노드의 크기는 M × N이고, 크로마 코딩 트리 노드의 크기 및 분할 모드, 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드, 및 루마 코딩 트리 노드가 분할되지 않을 때, 대응하는 루마 블록에 ISP 모드가 사용되는 것을 허용할지 여부에 기초하여, 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 결정 유닛(802)은 구체적으로:
크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건에서 임의의 하나의 조건을 충족할 때, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족하지 않으며, N = T1, 그리고 M = T1/2일 때, 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며, 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 도 6에 도시된 예에서의 조건 1, 조건 2, 조건 3, 조건 4, 조건 5, 조건 6, 조건 7, 조건 8, 조건 9, 조건 10, 조건 11, 조건 12 및 조건 13 중 하나 이상을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 루마 코딩 트리 노드의 크기 및 루마 블록의 크기는 둘 다 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 도 6에 도시된 예에서의 조건 1 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 도 6에 도시된 예에서의 조건 2 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 다음을 포함한다:
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할, 쿼드 트리 분할 모드, 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이며, 여기서 루마 코딩 트리 노드의 크기는 T1 × T1이고; 또는
크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 크로마 코딩 트리 노드는 자식 노드들로 분할되거나; 또는 루마 코딩 트리 노드의 분할 모드는 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이고, 크로마 코딩 트리 노드의 크기, 루마 코딩 트리 노드의 크기, 및 루마 블록의 크기는 모두 T1 × T1이다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 도 6에 도시된 예에서의 조건 3, 조건 5, 조건 6, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 도 6에 도시된 예에서의 조건 4, 조건 5, 조건 7, 조건 8 및 조건 13을 포함한다.
실행 가능한 실시예에서, 제3 사전 설정 조건은 도 6에 도시된 예에서의 조건 3, 조건 5, 조건 7, 조건 8, 조건 9, 조건 10, 조건 11 및 조건 12를 포함한다.
실행 가능한 실시예에서, 미리 설정된 임계치(T1)는 64와 같다.
앞서 말한 유닛들(획득 유닛(801), 결정 유닛(802) 및 예측 유닛(803))은 앞서 말한 방법들의 관련 단계들을 수행하도록 구성된다는 점이 주목되어야 한다. 구체적으로, 획득 유닛(801)은 단계들(S601, S701)의 관련 콘텐츠를 수행하도록 구성되고, 결정 유닛(802)은 단계들(S602, S603, S702, S703)의 관련 콘텐츠를 수행하도록 구성되며, 예측 유닛(803)은 단계들(S604, S704)의 관련 콘텐츠를 수행하도록 구성된다. 다시 말해서, 획득 유닛(801)은 도 5b의 엔트로피 디코더(303) 및 인트라 예측기(309)의 관련 기능들을 구현하도록 구성되고, 결정 유닛(802) 및 예측 유닛(803)은 도 5b의 인트라 예측기(309)의 관련 기능들을 구현하도록 구성된다.
이 실시예에서, 인트라 예측 장치(800)는 유닛의 형태로 제시된다. 본 명세서의 "유닛"은 주문형 집적 회로(ASIC: application-specific integrated circuit), 하나 이상의 소프트웨어 또는 펌웨어 프로그램들을 실행하는 프로세서 및 메모리, 집적 로직 회로, 및/또는 앞서 말한 기능들을 제공하는 다른 디바이스일 수 있다.
도 9는 본 발명의 일 실시예에 따른 비디오 시퀀스에 대한 인트라 예측 장치의 개략적인 구조도이다. 도 9에 도시된 바와 같이, 인트라 예측 장치(900)는:
제1 식별자 및 제2 식별자를 획득하기 위해 비트스트림을 파싱하도록 구성된 디코딩 유닛(901) ― 제1 식별자는 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 제2 식별자는 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용할지 여부를 지시하는 데 사용됨 ―; 및
제1 식별자가 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용됨을 지시하고, 제2 식별자가 비디오 시퀀스에서 크로마 블록에 대해 CCLM이 수행되는 것을 허용함을 지시한다면, 도 6에서의 비디오 시퀀스에 대한 인트라 예측 방법의 단계들의 일부 또는 전부를 수행하도록 구성된 예측 유닛(902)을 포함한다.
앞서 말한 유닛들(디코딩 유닛(901) 및 예측 유닛(903))은 앞서 말한 방법의 관련 단계들을 수행하도록 구성된다는 점이 주목되어야 한다. 다시 말해서, 디코딩 유닛(901)은 도 5b의 엔트로피 디코더(303)의 관련 기능들을 구현하도록 구성되고, 예측 유닛(902)은 도 5b의 인트라 예측기(309)의 관련 기능들을 구현하도록 구성된다.
본 발명의 실시예들은 컴퓨터 저장 매체를 추가로 제공한다. 컴퓨터 저장 매체는 프로그램을 저장할 수 있고; 프로그램이 실행될 때, 앞서 말한 방법 실시예들에서 설명된 인트라 예측 방법들 중 임의의 하나의 방법의 단계들의 적어도 일부 또는 전부가 포함된다.
당해 기술분야에서 통상의 지식을 가진 자는, 본 명세서에 개시되고 설명된 다양한 예시적인 논리 블록들, 모듈들 및 알고리즘 단계들을 참조하여 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 구현될 수 있다는 것을 이해할 수 있다. 소프트웨어에 의해 구현된다면, 예시적인 논리 블록들, 모듈들 및 단계들을 참조하여 설명된 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능 매체에 저장되거나 이를 통해 전송될 수 있고, 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는, 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있거나, (예를 들어, 통신 프로토콜에 따라) 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 통신 매체를 포함할 수 있다. 이런 식으로, 컴퓨터 판독 가능 매체는 일반적으로: (1) 비-일시적인 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 출원에서 설명된 기술들을 구현하기 위한 명령들, 코드 및/또는 데이터 구조들을 리트리브하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독 가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 콤팩트 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 명령이나 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있는 그리고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 추가로, 임의의 접속이 적절하게 컴퓨터 판독 가능 매체로 지칭된다. 예를 들어, 명령이 동축 케이블, 광섬유, 꼬임 쌍선, 디지털 가입자 회선(DSL: digital subscriber line), 또는 무선 기술, 이를테면 적외선, 라디오 또는 마이크로파를 통해 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유, 꼬임 쌍선, DSL 또는 무선 기술, 이를테면 적외선, 라디오 또는 마이크로파가 매체의 정의에 포함된다. 그러나 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 접속들, 반송파들, 신호들 또는 다른 일시적인 매체들을 포함하는 것이 아니라, 실제로 비-일시적 유형의 저장 매체를 의미한다고 이해되어야 한다. 본 명세서에서 사용되는 디스크(disk, disc)들은 콤팩트 디스크(CD: compact disc), 레이저 디스크, 광 디스크, 디지털 다기능 디스크(DVD: digital versatile disc) 및 블루레이 디스크를 포함한다. 디스크(disk)들은 대개 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 레이저들을 사용함으로써 데이터를 광학적으로 재생한다. 앞서 말한 항목들의 조합들이 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
명령은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서들, 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA) 또는 다른 대등한 집적 회로들 또는 이산 로직 회로들에 의해 실행될 수 있다. 따라서 본 명세서에서 사용되는 "프로세서"라는 용어는 앞서 말한 구조들 또는 본 명세서에서 설명되는 기술들을 구현하는 데 적합한 임의의 다른 구조 중 임의의 구조일 수 있다. 또한, 일부 양상들에서, 본 명세서에서 설명되는 예시적인 논리 블록들, 모듈들 및 단계들에서 설명되는 기능들은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있거나, 결합된 코덱으로 통합될 수 있다. 또한, 이 기술들은 모두 하나 이상의 회로들 또는 로직 엘리먼트들로 구현될 수 있다.
본 출원의 기술들은 무선 핸드셋, 집적 회로(IC: integrated circuit) 또는 한 세트의 IC들(예를 들어, 칩셋)을 포함하는 다양한 장치들 또는 디바이스들에서 구현될 수 있다. 개시된 기술들을 구현하도록 구성된 장치들의 기능적 양상들을 강조하기 위해 본 출원에서는 다양한 컴포넌트들, 모듈들 또는 유닛들이 설명되지만, 이들이 반드시 서로 다른 하드웨어 유닛들에 의해 구현되는 것은 아니다. 실제로, 위에서 설명된 바와 같이, 다양한 유닛들은 적절한 소프트웨어 및/ 또는 펌웨어와 조합하여 코덱 하드웨어 유닛으로 조합될 수 있거나, (위에서 설명된 하나 이상의 프로세서들을 포함하는) 상호 운용 가능한 하드웨어 유닛들에 의해 제공될 수 있다.
앞서 언급한 설명들은 단지 본 출원의 특정 구현들의 예들일 뿐이지만, 본 출원의 보호 범위를 제한하는 것으로 의도되는 것은 아니다. 본 출원에 개시된 기술적 범위 내에서 당해 기술분야에서 통상의 지식을 가진 자에 의해 용이하게 파악되는 임의의 변형 또는 대체가 본 출원의 보호 범위 내에 속할 것이다. 따라서 본 출원의 보호 범위는 청구항들의 보호 범위의 대상이 될 것이다.

Claims (28)

  1. 비디오 시퀀스(video sequence)에 대한 인트라 예측(intra prediction) 방법으로서,
    크로마 코딩 트리 노드(chroma coding tree node)의 크기 및 분할 모드를 획득하는 단계;
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM: cross-component linear model) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계;
    상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 상기 크로마 코딩 유닛의 예측 모드를 결정하는 단계; 및
    상기 크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 상기 크로마 코딩 유닛의 예측 모드에 기초하여 상기 크로마 코딩 유닛을 처리하는 단계를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  2. 제1항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계는:
    M과 N이 둘 다 미리 설정된 임계치(T1)와 같을 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하는 단계; 또는
    상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며,
    상기 제1 사전 설정 조건은 비분할 또는 쿼드 트리(quadtree) 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  3. 제1항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계는:
    M이 미리 설정된 임계치(T1)와 같고 N이 T1/2와 같을 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하는 단계; 또는
    상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며,
    상기 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  4. 제1항에 있어서,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계는:
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 상기 크로마 코딩 트리 노드에 대응하는 루마(luma) 코딩 트리 노드의 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  5. 제4항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
    상기 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계; 또는
    상기 크로마 코딩 트리 노드의 분할 모드가 상기 제3 사전 설정 조건을 충족하지 않으며, M은 미리 설정된 임계치(T1)와 같고, N은 T1과 같을 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며,
    상기 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  6. 제4항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 단계는:
    상기 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계; 또는
    상기 크로마 코딩 트리 노드의 분할 모드가 상기 제3 사전 설정 조건을 충족하지 않으며, N = T1, 그리고 M = T1/2일 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하며,
    T1은 미리 설정된 임계치이고; 그리고
    상기 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 제3 사전 설정 조건은:
    상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며,
    상기 루마 코딩 트리 노드의 크기 및 상기 루마 블록의 크기는 둘 다 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  8. 제5항 또는 제6항에 있어서,
    상기 제3 사전 설정 조건은:
    상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 상기 크로마 코딩 트리 노드는 자식(child) 노드들로 분할되고,
    상기 크로마 코딩 트리 노드의 크기, 상기 루마 코딩 트리 노드의 크기, 및 상기 루마 블록의 크기는 모두 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  9. 제5항 또는 제6항에 있어서,
    상기 제3 사전 설정 조건은:
    조건 1: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 상기 루마 코딩 트리 노드의 크기 및 상기 루마 블록의 크기는 둘 다 T1 × T1인 것; 또는
    조건 2: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드는 비분할 및 쿼드 트리 분할 이외의 분할 모드이며, 상기 루마 코딩 트리 노드의 크기는 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  10. 제1항에 있어서,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 단계는:
    상기 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하는 단계를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  11. 제5항, 제6항 또는 제10항에 있어서,
    상기 제3 사전 설정 조건은:
    조건 1: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 상기 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 상기 크로마 코딩 트리 노드의 크기, 상기 루마 코딩 트리 노드의 크기, 및 상기 루마 블록의 크기는 모두 T1 × T1인 것; 또는
    조건 2: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드는 비분할 및 쿼드 트리 분할 이외의 분할 모드이며, 상기 루마 코딩 트리 노드의 크기는 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  12. 제5항, 제6항 또는 제10항에 있어서,
    상기 제3 사전 설정 조건은:
    상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 상기 크로마 코딩 트리 노드는 자식 노드들로 분할되거나; 또는 상기 루마 코딩 트리 노드의 분할 모드는 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이고, 상기 크로마 코딩 트리 노드의 크기, 상기 루마 코딩 트리 노드의 크기, 및 상기 루마 블록의 크기는 모두 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  13. 제2항, 제3항 및 제5항 내지 제12항 중 어느 한 항에 있어서,
    상기 미리 설정된 임계치(T1)는 64와 같은,
    비디오 시퀀스에 대한 인트라 예측 방법.
  14. 비디오 시퀀스에 대한 인트라 예측 방법으로서,
    제1 식별자 및 제2 식별자를 획득하기 위해 비트스트림을 파싱(parse)하는 단계 ― 상기 제1 식별자는 상기 비디오 시퀀스에서 인트라 픽처(intra picture)에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 상기 제2 식별자는 상기 비디오 시퀀스에서 크로마 블록에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 지시하는 데 사용됨 ―; 및
    상기 제1 식별자가 상기 비디오 시퀀스에서 상기 인트라 픽처에 상기 분리 트리 구조가 사용됨을 지시하고, 상기 제2 식별자가 상기 비디오 시퀀스에서 상기 크로마 블록에 대해 CCLM이 수행되는 것을 허용함을 지시한다면, 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하는 단계를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 방법.
  15. 비디오 시퀀스에 대한 인트라 예측 장치로서,
    크로마 코딩 트리 노드의 크기 및 분할 모드를 획득하도록 구성된 획득 유닛;
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하고; 그리고 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부에 따라 상기 크로마 코딩 유닛의 예측 모드를 결정하도록 구성된 결정 유닛; 및
    상기 크로마 코딩 유닛의 예측 샘플들을 획득하기 위해 상기 크로마 코딩 유닛의 예측 모드에 기초하여 상기 크로마 코딩 유닛을 처리하도록 구성된 예측 유닛을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  16. 제15항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 상기 결정 유닛은 구체적으로:
    M과 N이 둘 다 미리 설정된 임계치(T1)와 같을 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며,
    상기 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  17. 제15항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 상기 결정 유닛은 구체적으로:
    M이 미리 설정된 임계치(T1)와 같고 N이 T1/2와 같을 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며,
    상기 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  18. 제15항에 있어서,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 상기 결정 유닛은 구체적으로:
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하도록 구성되는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  19. 제18항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 상기 결정 유닛은 구체적으로:
    상기 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는
    상기 크로마 코딩 트리 노드의 분할 모드가 상기 제3 사전 설정 조건을 충족하지 않으며, M은 T1과 같고, N은 T1과 같을 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 상기 크로마 코딩 트리 노드의 분할 모드가 제1 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며,
    T1은 미리 설정된 값이고; 그리고
    상기 제1 사전 설정 조건은 비분할 또는 쿼드 트리 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  20. 제18항에 있어서,
    상기 크로마 코딩 트리 노드의 크기는 M × N이고,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드 그리고 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 상기 결정 유닛은 구체적으로:
    상기 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하거나; 또는
    상기 크로마 코딩 트리 노드의 분할 모드가 상기 제3 사전 설정 조건을 충족하지 않으며, N = T1, 그리고 M = T1/2일 때, 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족한다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하는 것으로 결정하거나; 또는 상기 크로마 코딩 트리 노드의 분할 모드가 제2 사전 설정 조건을 충족하지 않는다면, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되며,
    T1은 미리 설정된 임계치이고; 그리고
    상기 제2 사전 설정 조건은 비분할 또는 수직 이진 분할 모드를 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  21. 제19항 또는 제20항에 있어서,
    상기 제3 사전 설정 조건은:
    상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 상기 루마 코딩 트리 노드의 크기 및 상기 루마 블록의 크기는 둘 다 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  22. 제19항 또는 제20항에 있어서,
    상기 제3 사전 설정 조건은:
    상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 상기 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 상기 크로마 코딩 트리 노드의 크기, 상기 루마 코딩 트리 노드의 크기, 및 상기 루마 블록의 크기는 모두 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  23. 제19항 또는 제20항에 있어서,
    상기 제3 사전 설정 조건은:
    조건 1: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 예측 모드가 사용되며, 상기 루마 코딩 트리 노드의 크기 및 상기 루마 블록의 크기는 둘 다 T1 × T1인 것; 또는
    조건 2: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드는 비분할 및 쿼드 트리 분할 이외의 분할 모드이며, 상기 루마 코딩 트리 노드의 크기는 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  24. 제15항에 있어서,
    상기 크로마 코딩 트리 노드의 크기 및 분할 모드에 기초하여, 상기 크로마 코딩 트리 노드에 포함된 크로마 코딩 유닛에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 결정하는 것의 일 양상에서, 상기 결정 유닛은 구체적으로:
    상기 크로마 코딩 트리 노드의 분할 모드가 제3 사전 설정 조건을 충족할 때, 상기 크로마 코딩 유닛에 대해 CCLM이 수행되는 것을 허용하지 않는 것으로 결정하도록 구성되는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  25. 제19항, 제20항 또는 제24항에 있어서,
    상기 제3 사전 설정 조건은:
    조건 1: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 상기 크로마 코딩 트리 노드는 자식 노드들로 분할되고, 상기 크로마 코딩 트리 노드의 크기, 상기 루마 코딩 트리 노드의 크기, 및 상기 루마 블록의 크기는 모두 T1 × T1인 것; 또는
    조건 2: 상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드에 대해 사용되는 분할 모드는 비분할 및 쿼드 트리 분할 이외의 분할 모드이며, 상기 루마 코딩 트리 노드의 크기는 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  26. 제19항, 제20항 또는 제24항에 있어서,
    상기 제3 사전 설정 조건은:
    상기 크로마 코딩 트리 노드에 대응하는 루마 코딩 트리 노드의 분할 모드는 비분할이고, 상기 루마 코딩 트리 노드의 루마 블록에 대해 ISP 모드가 사용되며, 상기 크로마 코딩 트리 노드는 자식 노드들로 분할되거나; 또는 상기 루마 코딩 트리 노드의 분할 모드는 수평 이진 분할 모드 및 수직 이진 분할 모드 중 하나이고, 상기 크로마 코딩 트리 노드의 크기, 상기 루마 코딩 트리 노드의 크기, 및 상기 루마 블록의 크기는 모두 T1 × T1인 것을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
  27. 제16항, 제17항 및 제19항 내지 제25항 중 어느 한 항에 있어서,
    상기 미리 설정된 임계치(T1)는 64와 같은,
    비디오 시퀀스에 대한 인트라 예측 장치.
  28. 비디오 시퀀스에 대한 인트라 예측 장치로서,
    제1 식별자 및 제2 식별자를 획득하기 위해 비트스트림을 파싱하도록 구성된 디코딩 유닛 ― 상기 제1 식별자는 상기 비디오 시퀀스에서 인트라 픽처에 분리 트리 구조가 사용되는지 여부를 지시하는 데 사용되고, 상기 제2 식별자는 상기 비디오 시퀀스에서 크로마 블록에 대해 크로스 컴포넌트 선형 모델(CCLM) 인트라 예측이 수행되는 것을 허용할지 여부를 지시하는 데 사용됨 ―; 및
    상기 제1 식별자가 상기 비디오 시퀀스에서 상기 인트라 픽처에 상기 분리 트리 구조가 사용됨을 지시하고, 상기 제2 식별자가 상기 비디오 시퀀스에서 상기 크로마 블록에 대해 CCLM이 수행되는 것을 허용함을 지시한다면, 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하도록 구성된 예측 유닛을 포함하는,
    비디오 시퀀스에 대한 인트라 예측 장치.
KR1020217038535A 2019-04-30 2020-03-27 비디오 시퀀스에 대한 인트라 예측 방법 및 장치 KR20220003022A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910370987.9A CN111866510A (zh) 2019-04-30 2019-04-30 视频序列的帧内预测方法及装置
CN201910370987.9 2019-04-30
PCT/CN2020/081672 WO2020220884A1 (zh) 2019-04-30 2020-03-27 视频序列的帧内预测方法及装置

Publications (1)

Publication Number Publication Date
KR20220003022A true KR20220003022A (ko) 2022-01-07

Family

ID=72965849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217038535A KR20220003022A (ko) 2019-04-30 2020-03-27 비디오 시퀀스에 대한 인트라 예측 방법 및 장치

Country Status (11)

Country Link
US (2) US12022081B2 (ko)
EP (1) EP3955575B1 (ko)
JP (2) JP7348307B2 (ko)
KR (1) KR20220003022A (ko)
CN (5) CN111866510A (ko)
AU (2) AU2020264569B2 (ko)
BR (1) BR112021021679A2 (ko)
CA (1) CA3135596A1 (ko)
MX (1) MX2021013320A (ko)
PT (1) PT3955575T (ko)
WO (1) WO2020220884A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113545070B (zh) 2019-03-08 2023-10-03 北京字节跳动网络技术有限公司 视频处理中整形信息的信令通知
BR112021019675A2 (pt) 2019-04-23 2021-12-07 Beijing Bytedance Network Tech Co Ltd Método para processamento de mídia visual, aparelho codificador de vídeo, aparelho decodificador de vídeo, e, mídia legível por computador
CN117221558A (zh) * 2019-05-08 2023-12-12 北京字节跳动网络技术有限公司 跨分量编解码的适用性条件
CN113678442A (zh) 2019-05-17 2021-11-19 松下电器(美国)知识产权公司 用于视频编码的系统和方法
KR20220024006A (ko) 2019-06-22 2022-03-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 잔차 스케일링을 위한 신택스 요소
JP6899053B2 (ja) * 2019-06-24 2021-07-07 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012175003A1 (en) 2011-06-20 2012-12-27 Mediatek Singapore Pte. Ltd. Method and apparatus of chroma intra prediction with reduced line memory
CN103220508B (zh) 2012-01-20 2014-06-11 华为技术有限公司 编解码方法和装置
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma
WO2017164297A1 (ja) * 2016-03-25 2017-09-28 パナソニックIpマネジメント株式会社 信号依存型適応量子化を用いて動画像を符号化及び復号するための方法及び装置
CA3025334C (en) * 2016-05-25 2021-07-13 Arris Enterprises Llc Binary ternary quad tree partitioning for jvet coding of video data
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US10652575B2 (en) 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
JP2018056685A (ja) 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
JP2020031252A (ja) * 2016-12-22 2020-02-27 シャープ株式会社 画像復号装置及び画像符号化装置
CN109510987B (zh) * 2017-09-15 2022-12-06 华为技术有限公司 编码树节点划分方式的确定方法、装置及编码设备
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
US10819977B2 (en) * 2018-07-05 2020-10-27 Tencent America LLC Methods and apparatus for multiple line intra prediction in video compression
WO2020139008A1 (ko) * 2018-12-28 2020-07-02 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020189960A1 (ko) * 2019-03-15 2020-09-24 엘지전자 주식회사 크로마 포맷에 대한 정보를 시그널링 하는 방법 및 장치

Also Published As

Publication number Publication date
CN112042195A (zh) 2020-12-04
BR112021021679A2 (pt) 2021-12-21
EP3955575A1 (en) 2022-02-16
US20240305784A1 (en) 2024-09-12
WO2020220884A1 (zh) 2020-11-05
EP3955575A4 (en) 2022-06-22
MX2021013320A (es) 2022-01-24
JP2022531280A (ja) 2022-07-06
US12022081B2 (en) 2024-06-25
US20220053194A1 (en) 2022-02-17
CN114245132A (zh) 2022-03-25
JP7543508B2 (ja) 2024-09-02
CN112042195B (zh) 2021-12-10
AU2024201621A1 (en) 2024-03-28
CN114205591A (zh) 2022-03-18
AU2020264569A1 (en) 2021-12-02
CN114205592B (zh) 2023-10-20
CN111866510A (zh) 2020-10-30
JP7348307B2 (ja) 2023-09-20
JP2023169238A (ja) 2023-11-29
CA3135596A1 (en) 2020-11-05
AU2020264569B2 (en) 2023-12-14
PT3955575T (pt) 2024-07-30
CN114205592A (zh) 2022-03-18
EP3955575B1 (en) 2024-07-03
CN114205591B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
AU2018282523B2 (en) Intra filtering applied together with transform processing in video coding
TWI755394B (zh) 二值化二次轉換指數
US12022081B2 (en) Intra prediction method and apparatus for video sequence
US11451840B2 (en) Trellis coded quantization coefficient coding
CN112789858B (zh) 帧内预测方法及设备
US20130051475A1 (en) Coefficient scanning in video coding
KR20220032563A (ko) 비디오 코딩에서의 랩어라운드 모션 보상
KR102221569B1 (ko) 멀티-계층 비디오 코딩에서의 크로스 계층 픽처 타입 정렬의 표시
KR102616713B1 (ko) 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체
CN111200735B (zh) 一种帧间预测的方法及装置
KR20210047949A (ko) 비디오 디코딩 방법 및 비디오 디코더
CN110290384A (zh) 图像滤波方法、装置及视频编解码器
WO2020041306A1 (en) Intra prediction method and device
JP7331105B2 (ja) フレーム間予測方法及び関連する装置
KR102597838B1 (ko) 비디오 코딩을 위한 위치 종속 공간 가변 변환
KR20220163374A (ko) 이미지 및 비디오 코딩을 위한 블록 파티셔닝
RU2801327C2 (ru) Способ и устройство внутреннего прогнозирования для видеопоследовательности
KR20210024092A (ko) 비디오 코딩에서의 경계 블록 파티셔닝
CN112913243A (zh) 帧内预测方法及设备