KR20210130153A - 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스 - Google Patents

픽처 인코딩 및 디코딩을 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20210130153A
KR20210130153A KR1020217027168A KR20217027168A KR20210130153A KR 20210130153 A KR20210130153 A KR 20210130153A KR 1020217027168 A KR1020217027168 A KR 1020217027168A KR 20217027168 A KR20217027168 A KR 20217027168A KR 20210130153 A KR20210130153 A KR 20210130153A
Authority
KR
South Korea
Prior art keywords
chroma
luma
block
picture
chroma block
Prior art date
Application number
KR1020217027168A
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
Priority claimed from EP19305236.2A external-priority patent/EP3703366A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20210130153A publication Critical patent/KR20210130153A/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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/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

Landscapes

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

Abstract

픽처의 크로마 블록에 대해 사용될 교차 성분 의존 도구는 상기 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 인에이블된다. 그 후, 상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 크로마 블록이 디코딩된다. 인코딩 및 디코딩 방법뿐만 아니라 인코딩 및 디코딩 디바이스가 제시된다.

Description

픽처 인코딩 및 디코딩을 위한 방법 및 디바이스
본 실시예들 중 적어도 하나는 일반적으로 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스에 관한 것으로, 특히, 독립적인 루마 및 크로마 파티셔닝을 이용한 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 비디오 콘텐츠에서의 공간적 및 시간적 중복성(spatial and temporal redundancy)를 활용하기 위해 보통은 예측 및 변환을 채택한다. 일반적으로, 인트라 또는 인터 프레임 상관을 활용하기 위해 인트라 또는 인터 예측이 사용되고, 예측 오류들 또는 예측 잔차들로 종종 표시되는 원래의 이미지 블록과 예측된 이미지 블록 사이의 차이들이 변환, 양자화, 및 엔트로피 코딩된다. 인코딩 동안, 원래의 이미지 블록은 보통은 아마도 쿼드-트리 파티셔닝(quad-tree partitioning)을 사용하여 서브-블록들로 파티셔닝/스플릿된다. 비디오를 재구성하기 위해, 압축된 데이터는 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들(inverse processes)에 의해 디코딩된다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 비디오 데이터를 디코딩하는 방법이 제시되고, 이 방법은:
크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구(cross-component dependent tool)가 사용되도록 인에이블하는 단계;
상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 디코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 비디오 데이터를 디코딩하기 위한 장치가 제시되며, 이 장치는 하나 이상의 프로세서를 포함하며, 하나 이상의 프로세서는:
크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 것; 및
상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 디코딩하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 또 다른 일반적인 양태에 따르면, 비트스트림이 전술한 인코딩 방법들에 따라 생성된 신호를 포함하도록 포맷팅된다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 비디오 데이터를 인코딩하기 위한 방법이 제시되며, 이 방법은:
크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 단계;
상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 인코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 비디오 데이터를 인코딩하기 위한 장치가 제시되며, 이 장치는 적어도 하나의 프로세서를 포함하며, 적어도 하나의 프로세서는:
크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 것; 및
상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 인코딩하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 또 다른 일반적인 양태에 따르면, 비트스트림이 전술한 인코딩 방법들에 따라 생성된 신호를 포함하도록 포맷팅된다.
또 다른 일반적인 양태에 따르면, 비디오를 디코딩 또는 인코딩하기 위한 방법 또는 비디오를 디코딩 또는 인코딩하기 위한 장치는 크로마 블록에서 주어진 샘플 위치의 픽처에서의 위치를 결정하는 것, 크로마 블록에서의 위치와 공동 위치된 루마 샘플을 포함하는 루마 블록인 공동 위치된 루마 블록을 결정하는 것, 공동 위치된 루마 블록의 이웃 루마 샘플들을 결정하는 것, 결정된 이웃 루마 샘플들로부터 루마 값을 결정하는 것, 결정된 루마 값에 기초하여 스케일링 인자를 결정하는 것, 및 스케일링 인자에 따라 크로마 블록 잔차의 스케일링을 적용하는 것을 추가로 포함한다.
본 실시예들 중 하나 이상은 또한 전술한 방법들 중 임의의 것의 적어도 일부에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법 및 장치를 제공한다. 하나 이상의 실시예는 또한 전술한 방법들 중 임의의 것의 적어도 일부를 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
도 1은 코딩 트리 유닛(Coding Tree Unit, CTU)을 묘사한다.
도 2는 코딩 유닛들, 예측 유닛들 및 변환 유닛들로 분할된 코딩 트리 유닛을 묘사한다.
도 3 및 도 4는 QTBT(Quad-Tree Plus Binary-Tree)를 사용하여 코딩 유닛들로 분할된 CTU를 묘사한다.
도 5는 QTBT 코딩 도구에 의해 정의된 바와 같은 코딩 유닛의 스플릿 모드들을 도시한다.
도 6은 코딩 유닛의 추가적인 스플릿 모드들, 예를 들어, 비대칭 이진 스플릿 모드들 및 트리플 트리 스플릿 모드들을 도시한다.
도 7은 일 실시예에 따라 교차 성분 의존 코딩 도구(cross-component dependent coding tool)를 인에이블 또는 디스에이블하는 방법의 흐름도를 묘사한다.
도 8a, 도 8b, 도 8c, 도 8d는 도 7의 실시예에 따른 교차 성분 의존 코딩 도구를 인에이블/디스에이블하는 원리를 도시한다.
도 9는 일 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블 또는 디스에이블하는 방법의 흐름도를 묘사한다.
도 10은 예에 따른 크로마 블록 및 그것의 공동 위치된 루마 블록들을 도시한다.
도 11은 도 9의 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블/디스에이블하는 원리를 도시한다.
도 12는 일 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블 또는 디스에이블하는 방법의 흐름도를 묘사한다.
도 13 및 도 14는 도 12의 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블/디스에이블하는 원리를 도시한다.
도 15는 일 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블 또는 디스에이블하는 방법의 흐름도를 묘사한다.
도 16은 도 15의 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블/디스에이블하는 원리를 도시한다.
도 17은 일 실시예에 따라 크로마 블록에 대한 스케일링 인자 또는 스케일링 인자 인덱스를 획득하는 방법의 흐름도를 묘사한다.
도 18은 현재 크로마 블록 및 일부 이웃 크로마 블록들을 묘사한다.
도 19, 도 20 및 도 21은 실시예에 따라 교차 성분 의존 코딩 도구를 인에이블/디스에이블하는 원리를 도시한다.
도 22는 일 실시예에 따른 크로마 잔차 스케일링에서 사용될 스케일링 인자를 결정하기 위한 방법의 흐름도를 묘사한다.
도 23a, 도 23b, 도 23c 및 도 23d는 크로마 블록 및 공동 위치된 루마 블록을 묘사한다.
도 24a 및 도 24b는 상부 좌측 이웃 루마 샘플과 이웃 크로마 샘플들 사이의 거리들의 예들을 도시한다.
도 25는 그의 병치된 크로마 샘플들에 그리고 현재 블록의 크로마 샘플들에 기초하여 루마 샘플 가용성을 검사하기 위한 방법의 흐름도를 묘사한다.
도 26은 실시예에 따른 비디오 인코더의 블록도를 도시한다.
도 27은 실시예에 따른 비디오 디코더의 블록도를 도시한다.
도 28은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 블록도를 도시한다.
HEVC 코딩에서, 픽처는 전형적으로 64x64, 128x128, 또는 256x256의 구성가능한 크기를 갖는 정사각형 형상의 CTU들로 파티셔닝된다. CTU는 도 1에 묘사된 바와 같이 동일한 크기의 4개의 정사각형 코딩 유닛(CU)으로, 즉 폭 및 높이에 있어서 부모 블록 크기의 절반 크기로 파티셔닝되는 쿼드-트리의 루트이다. 쿼드-트리는 부모 노드가 4개의 자식 노드로 스플릿될 수 있는 트리이고, 자식 노드들 각각은 4개의 자식 노드로의 또 다른 스플릿에 대한 부모 노드가 될 수 있다. HEVC에서, 코딩 블록(coding Block, CB)은 하나 이상의 예측 블록(Prediction Block, PB)으로 파티셔닝되고, 변환 블록(Transform Block, TB)들로의 쿼드트리 파티셔닝의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 도 2에 묘사된 바와 같이 코딩 유닛(CU)은 예측 유닛들(PU들) 및 변환 유닛들(TU들)의 트리-구조화된 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보(예를 들어, 인트라 또는 인터 예측 파라미터들)를 포함하고, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조를 포함한다. 인트라 또는 인터 코딩 모드는 CU에 할당된다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다.
보다 최근의 인코딩 시스템들에서, CTU는 코딩 유닛(CU)들로 파티셔닝되는 코딩 트리의 루트이다. 코딩 트리는 부모 노드(보통은 블록에 대응함)가 자식 노드들로(예를 들어, 2, 3 또는 4개의 자식 노드로) 스플릿될 수 있는 트리이고, 자식 노드들 각각은 자식 노드들로의 또 다른 스플릿에 대한 부모 노드가 될 수 있다. 쿼드-트리 스플릿 모드에 더하여, 가능한 스플릿 모드들의 총 수를 증가시키는 새로운 스플릿 모드들(이진 트리 대칭 스플릿 모드들, 이진 트리 비대칭 스플릿 모드들 및 트리플 트리 스플릿 모드들)이 또한 정의된다. 코딩 트리는 고유 루트 노드(unique root node), 예를 들어, CTU를 갖는다. 코딩 트리의 리프(leaf)는 트리의 종단 노드(terminating node)이다. 코딩 트리의 각각의 노드는 서브-블록들로도 명명된 더 작은 블록들로 추가로 스플릿될 수 있는 블록을 나타낸다. 일단 CTU의 CU들로의 파티셔닝이 결정되면, 코딩 트리의 리프들에 대응하는 CU들이 인코딩된다. CTU의 CU들로의 파티셔닝 및 (코딩 트리의 리프에 대응하는) 각각의 CU를 인코딩하기 위해 사용되는 코딩 파라미터들은 레이트 왜곡 최적화 절차를 통해 인코더 측에서 결정될 수 있다.
도 3은 코딩 유닛들이 쿼드-트리 및 대칭 이진 트리 스플릿 모드들 둘 모두에 따라 스플릿될 수 있는 CTU의 CU들로의 파티셔닝을 나타낸다. 이러한 타입의 스플릿은 QTBT(Quad-Tree plus Binary Tree)로 알려져 있다. 대칭 이진 트리 스플릿 모드들은 CU가 동일한 크기의 2개의 코딩 유닛으로 수평으로 또는 수직으로 스플릿되게 허용하도록 정의된다. 도 3에서, 실선들은 쿼드-트리 파티셔닝을 나타내고 점선들은 CU의 대칭 CU들로의 이진 스플릿을 나타낸다. 도 4는 연관된 코딩 트리를 나타낸다. 도 4에서, 실선들은 쿼드-트리 스플릿을 나타내고 점선들은 쿼드-트리 리프들에 공간적으로 삽입되는 이진 스플릿을 나타낸다. 도 5는 도 3에서 사용된 4개의 스플릿 모드를 묘사한다. NO_SPLIT 모드는 CU가 추가로 스플릿되지 않는 것을 나타낸다. QT_SPLIT 모드는 CU가 쿼드-트리에 따라 4개의 사분면으로 스플릿되는 것을 나타내고, 사분면들은 두 개의 스플릿 선(split line)에 의해 분리된다. HOR 모드는 CU가 하나의 스플릿 선에 의해 분리되는 같은 크기의 2개의 CU로 수평으로 스플릿되는 것을 나타낸다. VER)은 CU가 하나의 스플릿 선에 의해 분리되는 같은 크기의 2개의 CU로 수직으로 스플릿되는 것을 나타낸다. 스플릿 선들은 도 5에서 점선들로 표현된다.
QTBT 스플릿에 의해, CU는 정사각형 또는 직사각형 형상을 갖는다. 코딩 유닛의 크기는 2의 거듭제곱이고, 전형적으로 양 방향(수평 및 수직)으로 4에서 128까지 이른다. QTBT는 HEVC의 스플릿과 몇 가지 차이를 갖는다.
먼저, CTU의 QTBT 스플릿은 2 단계로 이루어진다. CTU는 먼저 쿼드-트리 방식으로 스플릿된다. 각각의 쿼드-트리 리프는 이후 이진 방식으로 추가로 분할될 수 있다. 이것은 도 3의 우측에 도시되며, 여기서 실선들은 쿼드-트리 분해 국면들을 나타내고, 점선들은 쿼드-트리 리프들에 공간적으로 삽입된 이진 분해를 나타낸다.
둘째, 루마 및 크로마 블록 파티셔닝 구조는 특히 인트라 슬라이스들에서 독립적으로 분리 및 결정될 수 있다.
추가적인 타입의 파티셔닝도 이용될 수 있다. 도 6에 묘사된 바와 같이, 비대칭 이진 트리(asymmetric binary tree, ABT) 스플릿 모드들은 CU가 각자의 직사각형 크기들 (w, h/4) 및 (w,3h/4)에 대하여 2개의 코딩 유닛으로 수평으로 스플릿되거나 또는 각자의 직사각형 크기들 (w/4, h) 및 (3w/4, h)에 대하여 2개의 코딩 유닛으로 수직으로 스플릿되게 허용하도록 정의된다. 2개의 코딩 유닛은 도 6에서 점선으로 표현된 하나의 스플릿 선에 의해 분리된다.
도 6은 또한 코딩 유닛이 수직 및 수평 방향들 모두에서 3개의 코딩 유닛으로 스플릿되는 트리플 트리 스플릿 모드들을 도시한다. 수평 방향에서, CU는 각자의 크기들 (w, h/4), (w, h/2) 및 (w, h/4)의 3개의 코딩 유닛으로 스플릿된다. 수직 방향에서, CU는 각자의 크기들 (w/4, h), (w/2, h) 및 (w/4, h)의 3개의 코딩 유닛으로 스플릿된다.
코딩 유닛의 스플릿은 최소 레이트 왜곡 비용으로 CTU의 표현을 결정하는 것을 포함하는 레이트 왜곡 최적화에 의해 인코더 측에서 결정된다.
본 출원에서, "블록" 또는 "픽처 블록(picture block)"이라는 용어는 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 것을 지칭하기 위해 사용될 수 있다. 그에 부가하여, "블록" 또는 "픽처 블록"이라는 용어는 H.264/AVC에서 또는 다른 비디오 코딩 표준들에서 지정된 바와 같은 매크로블록, 파티션 및 서브-블록을 지칭하기 위해 사용될 수 있고, 보다 일반적으로는 수많은 크기의 샘플들의 어레이를 지칭하기 위해 사용될 수 있다.
본 출원에서, 용어들 "재구성된" 및 "디코딩된"은 상호교환가능하게 사용될 수 있고, 용어들 "픽셀" 및 "샘플"은 상호교환가능하게 사용될 수 있고, 용어들 "이미지", "슬라이스", "타일", "픽처" 및 "프레임"은 상호교환가능하게 사용될 수 있다. 필수적은 아니지만 통상적으로, 용어 "재구성된"은 인코더 측에서 사용되는 한편, "디코딩된"은 디코더 측에서 사용된다.
이러한 새로운 토폴로지를 사용하면 코딩 효율을 크게 향상시킬 수 있다. 특히, 크로마 성분들에 대해 상당한 이득이 획득된다. 이 이득은 루마 및 크로마 코딩 트리들의 분리/독립성(또는 파티셔닝)으로부터 온다.
그러나, CTU 레벨에서의 루마 및 크로마 코딩 트리의 이러한 분리는 하드웨어 구현의 관점에서 일부 문제점들을 갖는다. CTU는 전형적으로 크기 128x128 또는 256x256을 갖는다. 루마 및 크로마 성분들의 코딩 트리들을 완전히 분리하는 것은 이들 루마 및 크로마가 또한 압축 도메인에서 완전히 분리되고, 따라서 코딩된 비트-스트림에서 분리된 방식으로 또한 등장한다는 것을 함의한다. 이것은 디코더 구현들에 대해 어떤 문제를 유발하며, 이 경우에 CTU 크기보다 작을 수 있는 최대 디코딩 유닛 크기에 대해 디코딩 파이프라인이 달성될 수 있는 것을 보장하기를 원한다. 통상적으로, 64x64 기반 디코더 파이프라인이 일부 디코더 구현을 위해 요구된다. 그렇게 하기 위해, 다용도 비디오 코딩 테스트 모델에서 64x64와 동일한 최대 변환 블록 크기가 선택되었다.
별개의 루마/크로마 코딩 트리들의 사용을 크로마와 그들의 공동 위치된 루마 샘플들 사이의 상호 의존성(예를 들어, 루마 의존적 크로마 잔차 스케일링)을 수반하는 코딩 도구들과 조합하는 것은 문제가 될 수 있다. 실제로, 크로마 블록을 처리하기 위해, 고려된 크로마 블록과 공동 위치된 루마 블록의 루마 샘플들은 크로마 블록 이전에 처리되어야 한다. 루마 블록이 큰 크기인 경우, 이는 크로마 블록을 처리할 수 있기 전에 높은 구조적 파이프라인 지연을 생성할 수 있다.
적어도 하나의 실시예는 크로마 코딩된 블록과 공동 위치된 적어도 하나의 루마 코딩된 블록의 크기에 응답하여 크로마와 이들의 공동 위치된 루마 샘플들 사이의 상호 의존성(예컨대, 크로마 잔차 스케일링, CCLM(Cross Component Linear Model)으로서 알려진 교차 컴포넌트 선형 모델)을 수반하는 코딩 도구들과 별개의 루마/크로마 코딩 트리들의 조합된 이용에 대해 제약조건(들)을 적용한다.
적어도 하나의 실시예는 크로마 코딩된 블록의 그리고 고려된 크로마 코딩된 블록의 샘플들과 공동 위치된 루마 코딩된 블록들의 크기(또는 수평/수직 차원들)에 응답하여 컴포넌트 상호 의존적 코딩 도구(예를 들어, 크로마 코딩된 블록들에 대한 루마 의존적 크로마 잔차 스케일링)을 인에이블하거나 디스에이블한다.
적어도 하나의 실시예는 개별 루마/크로마 코딩 트리 및 크로마 잔차 스케일링의 조합된 사용에 대한 전술한 제약들로 인해 크로마 잔차 스케일링이 디스에이블되는 경우에 크로마 블록들에 대한 솔루션을 제공한다.
루마 의존적 크로마 잔차 스케일링은 크로마와 이들의 공동 위치된 루마 샘플들 사이의 상호 의존성을 수반하는 코딩 도구의 일 예이다. 루마 의존적 크로마 잔차 스케일링은 "CE12: Mapping functions (test CE12-1 and CE12-2)"이라는 명칭의 Lu 등으로부터의 JVET-M0427에 개시되어 있다. 루마 의존적 크로마 잔차 스케일링은 루마 값들에 의해 인덱싱된 스케일링 또는 역 스케일링 테이블을 이용하는 것을 포함한다. 테이블은 스트림에서 명시적으로 시그널링되거나 또는 스트림에서 코딩된 테이블로부터 추론된다.
인코더 측에서, 프로세스는 다음과 같이 동작한다. 크로마 블록을 인코딩할 때, 공동 위치된 루마 블록을 나타내는 루마 값이 계산된다. 이것은 전형적으로, 고려된 크로마 블록과 공동 위치된 루마 예측(또는 재구성된) 블록에서의 루마 샘플들의 평균이다. 계산된 루마 값으로부터, 스케일링 값이 스케일링 테이블로부터 픽업된다. 스케일링 값은, 변환을 적용한 다음 크로마 잔차 신호에 양자화를 적용하기 전에, 크로마 예측의 잔차에 곱셈 인자로서 적용된다.
디코더 측에서, 프로세스는 다음과 같이 동작한다. 크로마 블록을 디코딩할 때, 고려 중인 크로마 블록과 공동 위치된 루마 블록을 나타내는 루마 값이 계산된다. 이것은 전형적으로, 고려된 크로마 블록과 공동 위치된 루마 예측(또는 재구성된) 블록에서의 루마 샘플들의 평균이다. 계산된 루마 값으로부터, 스트림에서 시그널링된 또는 스트림에서의 시그널링된 데이터로부터 추론된 역 스케일링 테이블로부터 역 스케일링 값이 픽업된다. 역양자화 다음에 역변환을 적용한 후에, 역 스케일링 값이 크로마 예측의 잔차에 적용된다.
JVET-M0427은 루마/크로마 개별 코딩 트리의 사용의 경우에 크로마 잔차 스케일링을 디스에이블하는 것을 제안한다. 이 해결책은 크로마 성분들에 대한 코딩 손실을 발생시킨다.
다양한 실시예들에서, 개별 루마/크로마 트리 파티셔닝이 가능해지는데, 즉 루마 및 크로마 파티셔닝이 독립적으로 달성될 수 있다. 제안된 실시예들은 특히 크로마 성분들에 대한 코딩 효율을 개선한다.
이하에서, 크로마 포맷은 4:2:0인 것으로 간주되는데, 즉 크로마 성분들의 치수들은 루마 성분의 치수들의 절반이다. 그러나, 본 실시예들은 이러한 특정 크로마 포맷에 제한되지 않는다는 것이 이해될 것이다. 다른 크로마 포맷들은 루마 차원들과 크로마 치수들 사이의 비율을 수정함으로써 이용될 수 있다.
단순화 및 가독성을 위해, 이하의 도면들에서, 예를 들어, 4:2:0 크로마 포맷의 경우에서와 같이 실제 해상도들이 상이하더라도, 루마 및 크로마 성분들에 대해 동일한 해상도로 묘사된다. 이러한 경우에, 간단한 스케일링이 크로마 픽처들에 적용되어야만 한다.
개별 루마/크로마 트리 파티셔닝이 인에이블되는 경우에, 주어진 코딩된 크로마 블록에 대한 루마 의존적 크로마 잔차 스케일링의 사용을 제약하는 최대 수평/수직 치수들 Wmax/Hmax가 특정된다. 픽처는 루마에 대한 크기 Wmax/Hmax, 크로마에 대한 WmaxC/HmaxC(전형적으로 루마에 대해 Wmax=Hmax=32, 또는 크로마에 대해 WmaxC=HmaxC=16)의 비중첩 직사각형 영역들로 분할되며, 이하 "허가된 직사각형 영역들"(authorized rectangular areas, ARA들)로 명명된다. 다수의 변형 실시예들에서, 루마 의존적 크로마 잔차 스케일링(Luma-Dependent chroma Residual Scaling, LDCRS로 이하 언급됨) 활성화는 ARA들 그리드와 관련된 크로마 블록과 공동 위치된 루마 블록들의 및 크로마 블록의 위치 및 크기로 컨디셔닝된다.
다양한 실시예들은 고려된 크로마 블록과 공동 위치된 루마 블록들을 참조한다. 크로마 블록과 공동 위치된 루마 블록들은 다음과 같이 정의될 수 있다:
- 루마 블록은 다음과 같이 크로마 블록에서의 주어진 위치와 공동 위치된 픽셀을 포함한다.
o 예를 들어, 크로마 블록에서의 상대 위치 ((x0+Wc)/2,(y0+Hc)/2)로서 정의되는 크로마 블록의 중심, 여기서 (x0,y0)는 크로마 블록의 상부 좌측 샘플의 크로마 픽처에서의 상대 위치에 대응하고, (Wc,Hc)는 크로마 블록의 수평/수직 치수들이다.
o 크로마 픽처에서의 상대 위치 (x0,y0)로서 정의되는, 크로마 블록에서의 상단 좌측 위치
o 크로마 픽처에서의 상대 위치 (x0+Wc-1,y0+Hc-1)로서 정의되는, 크로마 블록에서의 하단 우측 위치
o 크로마 픽처에서의 상대 위치 (x0+Wc-1,y0)로서 정의되는, 크로마 블록에서의 상단 우측 위치
o 크로마 픽처에서의 상대 위치 (x0,y0+Hc-1)로서 정의되는, 크로마 블록에서의 하단 좌측 위치
- 위에서 언급된 것들과 같은, 크로마 블록에서의 몇몇 주어진 위치들과 공동 위치된 루마 블록들; 예를 들어, 4개의 크로마 블록 위치 상단 좌측, 상단 우측, 하단 좌측, 하단 우측과 공동 위치된 루마 블록들이 고려되고(도 10 참조); 또는
- 고려된 크로마 블록의 모든 크로마 샘플 위치들과 공동 위치된 루마 블록들
실시예 1 - 크로마 블록이 ARA들 경계들과 교차하는 경우에 디스에이블된 LDCRS
적어도 하나의 실시예에서, 고려된 크로마 블록이 단일 크로마 ARA에 완전히 포함되지 않는 경우, LDCRS가 디스에이블된다. 이는 다음의 수학식들에 대응한다:
Figure pct00001
Figure pct00002
이면, LDCRS는 디스에이블된다.
여기서 x || y는 x와 y의 부울 논리 "or"이고 "!="은 "Not equal to"를 의미한다.
프로세스의 단순화된 블록도가 도 7에 도시되어 있다. 단계 300은 크로마 블록이 하나의 단일 크로마 ARA 내부에 있는지를 검사한다. 이 조건이 참이면, LDCRS가 인에이블된다(단계 303). 이 조건이 거짓이면, LDCRS는 디스에이블된다(단계 302).
도 8a, 도 8b, 도 8c, 도 8d는 크로마 파티셔닝의 일부 경우들을 예시하며, 회색 블록(grey block)들은 LDCRS가 인에이블되는 크로마 블록들에 대응하고, 백색 블록(white block)들은 LDCRS가 디스에이블되는 크로마 블록들에 대응한다. 크로마 블록들은 굵은 흑색선들에 의해 윤곽이 그려진다. WmaxC 및 HmaxC에 의해 정의된 그리드는 파선들로 표시된다.
- 도 8a에서, 2개의 크로마 블록은 몇개의 크로마 ARA와 교차한다; 현재의 실시예에 따르면, LDCRS는 둘 모두의 크로마 블록들에 대하여 디스에이블된다.
- 도 8b에서, 2개의 크로마 블록은 하나의 크로마 ARA 내부에 있다; 현재의 실시예에 따르면, LDCRS는 둘 모두의 크로마 블록들에 대하여 인에이블된다.
- 도 8c에서, 1개의 직사각형 수직 크로마 블록은 2개의 크로마 ARA와 교차한다. 현재의 실시예에 따르면, LDCRS는 이 크로마 블록에 대하여 디스에이블된다. 모든 다른 크로마 블록들은 하나의 크로마 ARA 내부에 있고, 그러므로, LDCRS는 그러한 크로마 블록들에 대하여 인에이블될 수 있다.
- 도 8d에서, 하나의 수평 크로마 블록은 2개의 크로마 ARA와 교차한다; 현재의 실시예에 따르면, LDCRS는 이 크로마 블록에 대하여 디스에이블된다. 모든 다른 크로마 블록들은 하나의 크로마 ARA 내부에 있고, 그러므로, LDCRS는 그러한 크로마 블록들에 대하여 인에이블될 수 있다.
실시예 2 - 크로마 블록이 크로마 ARA들 경계들과 교차하는 경우 또는 공동 위치된 루마 블록들 중 적어도 하나가 공동 위치된 루마 ARA 경계들과 교차하는 경우에 디스에이블된 LDCRS
실시예에서, LDCRS는 다음의 조건들 중의 적어도 하나가 참일 경우에 디스에이블된다:
● 고려된 크로마 블록은 단일 크로마 ARA에 완전히 포함되지는 않는다
● 고려된 크로마 블록과 공동 위치된 루마 블록들 중 적어도 하나는 크로마 ARA와 공동 위치된 루마 ARA에 완전히 포함되지는 않는데, 즉 공동 위치된 루마 ARA 경계들과 교차한다.
프로세스의 단순화된 블록도가 도 9에 도시된다. 단계 400은 크로마 블록이 하나의 단일 크로마 ARA 내부에 있는지를 검사한다. 이 조건이 거짓이면, LDCRS는 디스에이블된다(단계 401). 이 조건이 참이면, 고려된 크로마 블록과 공동 위치된 루마 블록들이 식별된다(단계 402). 단계 403은 모든 공동 위치된 루마 블록들이 크로마 ARA와 공동 위치된 루마 ARA 내부에 있는지를 검사한다. 이 조건이 거짓이면, LDCRS는 디스에이블된다(단계 404). 이 조건이 참이면, LDCRS는 인에이블된다(단계 405).
도 11은 현재 실시예의 2가지 예를 제공한다. 도면의 상단에서, 크로마 블록은 단일 크로마 ARA(상단 좌측) 내부에 포함되고, 3개의 공동 위치된 루마 블록(공동 위치된 루마 블록들 1, 2 및 3, 상단 우측)을 갖는다. 이들 중 2개(파선 블록들에서의, 공동 위치된 루마 블록들 1 및 2)는 공동 위치된 루마 ARA 내부에 있는 한편, 제3의 것(공동 위치된 루마 블록 3)은 공동 위치된 루마 ARA 외부에 있다. 이 제3 루마 블록이 공동 위치된 루마 ARA 외부에 있기 때문에, 현재 실시예에 따라 LDCRS가 디스에이블된다.
도면의 하단에서, 크로마 블록은 단일 크로마 ARA 내부에 포함되고, 3개의 공동 위치된 루마 블록(공동 위치된 루마 블록들 1, 2 및 3)을 갖는다. 이들 중 3개는 공동 위치된 루마 ARA 내부에 있다. LDCRS는 현재 실시예에 따라 인에이블된다.
현재의 VVC 사양은 도 5 및 도 6에 도시된 바와 같이, 3가지 타입의 스플릿: 쿼드 트리(QT), 이진 트리(BT, 수평 또는 수직) 및 삼진 트리(TT, 수평 또는 수직)를 지원한다. 변형에서, BT 및 TT 스플릿들은 주어진 ARA 치수(예를 들어, 루마에 대해 32x32, 4:2:0 크로마 포맷이 고려될 때 크로마로부터 16x16)로부터 가능해진다. 이 치수 위에서, QT 스플릿만이 가능해지거나, 분할이 가능하지 않다. 따라서, 루마 ARA/크로마 ARA 치수들보다 큰 블록들의 "스플릿 없음"의 경우(예를 들어, 4개의 블록 32x32로 스플릿되지 않는 루마 블록 64x64에 대해)를 제외하고는, 실시예 1 및 2에 제시된 조건들이 체계적으로 충족된다.
적어도 하나의 실시예에서, BT 및 TT 스플릿들은 (4:2:0 크로마 포맷이 사용될 때) 32x32 이하의 루마 블록 크기들 또는 16x16 이하의 크로마 블록 크기들에 대해서만 인에이블된다. 이러한 크기를 초과하면, QT 스플릿만이 가능해진다(또는 스플릿 없음). 제한은 모드 LDCRS 또는 모드 CCLM에 관한 것이다. 프로세스는 크기 32x32의 루마 ARA 및 크기 16x16의 크로마 ARA를 고려하여 도 11c에 도시되어 있다. 단계 1300에서, 고려된 블록이 64x64 이상의 크기의 루마 블록 또는 32x32 이상의 크기의 크로마 블록인지가 검사된다. 이 테스트가 참이면, 단계 1301은 BT 및 TT 스플릿을 디스에이블하는 한편, 스플릿 없음 및 QT 스플릿을 인에이블한다. 이 테스트가 거짓이면, 단계 1302는 스플릿 없음, QT, BT 및 TT 스플릿을 인에이블한다.
적어도 하나의 실시예에서, 모드 LDCRS 또는 CCLM의 경우에 크로마를 처리하는 것의 레이턴시를 감소시키기 위해, 루마 ARA보다 큰 정사각형 루마 블록이 스플릿되지 않을 때, 대응하는 크로마 블록은 가능하게는 추가로 스플릿될 수 있는 QT 스플릿에 의해 4개의 블록으로만 스플릿될 수 있거나, 또는 전혀 스플릿되지 않을 수 있다. 예를 들어, 크기 32x32의 루마 ARA 및 크기 16x16의 크로마 ARA를 고려하면, 크기 64x64의 정사각형 루마 블록이 스플릿되지 않을 때, 대응하는 크로마 블록(4:2:0 포맷의 크기 32x32의 것)은 가능하게는 추가로 스플릿될 수 있는(도면에서 점선) QT 스플릿에 의해 4개의 16x16 블록으로만 스플릿될 수 있거나, 또는 전혀 스플릿되지 않을 수 있다. 이러한 제한들을 따르는 경우들이 도 11d에 도시된다.
적어도 하나의 실시예에서, 모드 LDCRS 또는 CCLM의 경우에 크로마를 처리하는 것의 레이턴시를 감소시키기 위해, 루마 ARA보다 큰 정사각형 루마 블록이 QT 스플릿에 의해 4개의 블록으로 스플릿될 때, 대응하는 크로마 블록은 가능하게는 추가로 스플릿될 수 있는 QT 스플릿에 의해 4개의 블록으로만 스플릿될 수 있거나, 또는 전혀 스플릿되지 않을 수 있다. 예를 들어, 크기 32x32의 루마 ARA 및 크기 16x16의 크로마 ARA를 고려하면, 크기 64x64의 정사각형 루마 블록이 4개의 32x32 블록으로 스플릿될 때, 대응하는 크로마 블록(4:2:0 포맷의 크기 32x32의 것)은 가능하게는 추가로 스플릿될 수 있는(도면에서 점선) QT 스플릿에 의해 4개의 16x16 블록으로만 스플릿될 수 있거나, 또는 전혀 스플릿되지 않을 수 있다. 이러한 제한들을 따르는 경우들이 도 11e에 도시된다.
적어도 하나의 실시예에서, 모드 LDCRS 또는 CCLM의 경우에 크로마를 처리하는 것의 레이턴시를 감소시키기 위해, 루마 ARA보다 큰 정사각형 루마 블록이 수평 BT 스플릿에 의해 2개의 블록으로 스플릿될 때, 대응하는 크로마 블록은 수평 BT 스플릿에 의해 2개의 블록으로, 또는 QT 스플릿에 의해 4개의 블록으로만 스플릿될 수 있다. 예를 들어, 크기 32x32의 루마 ARA 및 크기 16x16의 크로마 ARA를 고려하면, 크기 64x64의 정사각형 루마 블록이 32 라인 및 64 열의 2 블록으로 스플릿될 때, 대응하는 크로마 블록(4:2:0 포맷의 크기 32x32의 것)은 수평 BT 스플릿에 의해 16 라인 및 32 열의 2개의 블록으로, 또는 QT 스플릿에 의해 4개의 16x16 블록으로만 스플릿될 수 있다. 이러한 제한들을 따르는 경우들이 도 11f에 도시된다.
적어도 하나의 실시예에서, 모드 LDCRS 또는 CCLM의 경우에 크로마를 처리하는 것의 레이턴시를 감소시키기 위해, 루마 ARA보다 큰 정사각형 루마 블록이 스플릿되지 않거나 또는 QT 스플릿에 의해 4개의 블록으로 스플릿되거나 또는 수평 QT 스플릿에 의해 2개의 블록으로 스플릿될 때, 대응하는 크로마 블록은 수직 이진 스플릿에 의해 2개의 블록으로 스플릿될 수 없지만, QT 스플릿에 의해 4개의 블록으로, 또는 수평 BT 스플릿에 의해 2개의 블록으로 스플릿될 수 있거나, 또는 스플릿되지 않을 수 있다.
적어도 하나의 실시예에서, 모드 LDCRS 또는 CCLM의 경우에 크로마를 처리하는 것의 레이턴시를 감소시키기 위해, 루마 ARA보다 큰 정사각형 루마 블록이 수직 BT 스플릿에 의해 2개의 블록으로 스플릿될 때, 대응하는 크로마 블록은 수직 BT 스플릿에 의해 2개의 블록으로만 스플릿될 수 있다. 예를 들어, 크기 32x32의 루마 ARA 및 크기 16x16의 크로마 ARA를 고려하면, 크기 64x64의 정사각형 루마 블록이 64 라인 및 32 열의 2개의 블록으로 스플릿될 때, 대응하는 크로마 블록은 32 라인 및 16 열의 2개의 블록으로만 스플릿될 수 있다. 이러한 제한들을 따르는 경우들이 도 11g에 도시된다.
문서 JVET-N1001(버전 9 - 날짜 2019-06-25 13:45:21)에 설명된 VTM5.0 신택스에 기초한 신택스의 예
아래의 작은 폰트의 텍스트는, 문서 JVET-N1001 버전 9에 설명되는 신택스에 기초하여, 위에 설명된 실시예들의 예시적인 구현에 대응하는, 신택스의 예에 대응한다. 번호매기기 섹션들은 JVET-N1001 버전 9에서 사용되는 번호매기기에 대응한다.
BT/TT 스플릿이 VDPU보다 큰 블록들에 대해 금지되는 버전
이하의 신택스 설명은, 전술한 바와 같이, 파티셔닝을 제한하는 실시예에 대응한다. VTM5 v9 사양에 대한 변경들은 밑줄로 강조된다.
6.4.2 허용된 이진 스플릿 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 이진 스플릿 모드 btSplit,
- 루마 샘플들에서의 코딩 블록 폭 cbWidth,
- 루마 샘플들에서의 코딩 블록 높이 cbHeight,
- 픽처의 상부 좌측 루마 샘플에 대한 고려된 코딩 블록의 상부 좌측 루마 샘플의 위치 (x0, y0),
- 다중-타입 트리 깊이 mttDepth,
- 오프셋 maxMttDepth를 갖는 최대 다중-타입 트리 깊이,
- 최대 이진 트리 크기 maxBtSize,
- 파티션 인덱스 partIdx,
- 단일 트리(SINGLE_TREE) 또는 이중 트리가 CTU들을 파티셔닝하기 위해 사용되는지, 및 이중 트리가 사용될 때, 루마 성분(DUAL_TREE_LUMA) 또는 크로마 성분(DUAL_TREE_CHROMA)이 현재 처리되는지를 특정하는 변수 treeType.
이 프로세스의 출력은 변수 allowBtSplit이다.
[표 6-2]
Figure pct00003
변수 parallelTtSplit 및 cbSize는 표 6-2에 명시된 바와 같이 도출된다.
변수 allowBtSplit는 다음과 같이 도출된다:
- 다음 조건들 중 하나 이상이 참이면, allowBtSplit는 FALSE와 동일하게 설정된다:
- cbSize는 MinBtSizeY보다 작거나 같다
- cbWidth는 maxBtSize보다 크다
- cbHeight는 maxBtSize보다 크다
- treeType이 SINGLE_TREE와 동일하지 않고 cbWidth는 32보다 큼
- treeType은 SINGLE_TREE와 동일하지 않고 cbHeight는 32보다 큼
- mttDepth는 maxMttDepth 이상임
- treeType는 DUAL_TREE_CHROMA와 동일하고 ( cbWidth / SubWidthC ) * ( cbHeight / SubHeightC )는 16 이하이다[Ed. (SL): "보다 작거나 또는"이 여기서 필요한가?]
- 그렇지 않고, 다음의 조건들 모두가 참이면, allowBtSplit는 FALSE와 동일하게 설정된다.
...
- 그렇지 않으면, allowBtSplit는 TRUE와 동일하게 설정된다.
6.4.3 허용된 삼진 스플릿 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 삼진 스플릿 모드 ttSplit,
- 루마 샘플들에서의 코딩 블록 폭 cbWidth,
- 루마 샘플들에서의 코딩 블록 높이 cbHeight,
- 픽처의 상부 좌측 루마 샘플에 대한 고려된 코딩 블록의 상부 좌측 루마 샘플의 위치 (x0, y0),
- 다중-타입 트리 깊이 mttDepth
- 오프셋 maxMttDepth를 갖는 최대 다중-타입 트리 깊이,
- 최대 삼진 트리 크기 maxTtSize,
- 단일 트리(SINGLE_TREE) 또는 이중 트리가 CTU들을 파티셔닝하기 위해 사용되는지, 및 이중 트리가 사용될 때, 루마 성분(DUAL_TREE_LUMA) 또는 크로마 성분(DUAL_TREE_CHROMA)이 현재 처리되는지를 특정하는 변수 treeType.
이 프로세스의 출력은 변수 allowTtSplit이다.
[표 6-3]
Figure pct00004
변수 cbSize는 표 6-3에 명시된 바와 같이 도출된다.
변수 allowTtSplit는 다음과 같이 도출된다:
- 다음 조건들 중 하나 이상이 참이면, allowTtSplit는 FALSE와 동일하게 설정된다:
- cbSize가 2 * MinTtSizeY 이하임
- cbWidth가 Min(MaxTbSizeY, maxTtSize)보다 큼
- cbHeight가 Min(MaxTbSizeY, maxTtSize)보다 큼
- treeType이 SINGLE_TREE와 동일하지 않고 cbWidth는 32보다 큼
- treeType은 SINGLE_TREE와 동일하지 않고 cbHeight는 32보다 큼
- mttDepth는 maxMttDepth 이상임
- x0+ cbWidth는 pic_width_in_luma_samples보다 큼
- y0+ cbHeight는 pic_height_in_luma_samples보다 큼
- treeType이 DUAL_TREE_CHROMA와 동일하고 (cbWidth/ SubWidthC) * (cbHeight/ SubHeightC)는 32 이하임
- 그렇지 않으면, allowTtSplit는 TRUE와 동일하게 설정된다.
VDPU가 BT 또는 TT로 스플릿되는 경우 CCLM이 금지되는 버전
아래의 신택스 설명은 CCLM(또는 CRS)이 위에서 설명된 파티셔닝 제한들을 준수하지 않는 인에이블된 파티션들이 아닌 실시예에 대응한다. 예를 들어, CCLM은 크로마 블록이 크기 32x16, 16x32를 가질 때, 또는 그 병치된 루마 블록이 64x32 또는 32x64일 때에 대하여 디스에이블된다. 다른 경우들에서, CCLM(또는 CRS)이 인에이블된다. VTM5 v9 사양에 대한 변경들은 밑줄로 강조된다.
1.1.1 크로마 인트라 예측 모드에 대한 도출 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 크로마 코딩 블록의 상부 좌측 샘플을 특정하는 루마 위치 (xCb, yCb),
- 루마 샘플들에서 현재 코딩 블록의 폭을 특정하는 변수 cbWidth,
- 루마 샘플들에서 현재 코딩 블록의 높이를 특정하는 변수 cbHeight.
- CTU들을 파티셔닝하는데 단일 트리(SINGLE_TREE) 또는 이중 트리가 사용되는지를 특정하는 변수 treeType.
이 프로세스에서, 크로마 인트라 예측 모드 IntraPredModeC[ xCb ][ yCb ]가 도출된다.
대응하는 루마 인트라 예측 모드 lumaIntraPredMode는 다음과 같이 도출된다:
- intra_mip_flag[ xCb ][ yCb ]가 1과 동일하면, lumaIntraPredMode는 표 8-4에 명시된 바와 같이 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] 및 MipSizeId[ xCb ][ yCb ]와 동일하게 설정된 sizeId를 사용하여 도출된다.
- 그렇지 않으면, lumaIntraPredMode는 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ]와 동일하게 설정된다.
- 변수 cclmEnabled는 하위 절 x.xx [Ed.(EF): 하위 절 번호 tbd] 교차 성분 크로마 인트라 예측 모드 검사 프로세스를 호출함으로써 도출된다.
크로마 인트라 예측 모드 IntraPredModeC[ xCb ][ yCb ]는 표 8-5 및 표 8-6에 명시된 바와 같이 intra_chroma_pred_mode[ xCb ][ yCb ] 및 lumaIntraPredMode를 사용하여 도출된다.
[표 8-5]
Figure pct00005
[표 8-6]
Figure pct00006
chroma_format_idc가 2와 동일할 때, 크로마 인트라 예측 모드 Y는 표 8-7에 명시된 바와 같이 표 8-5 및 표 8-6에서 크로마 인트라 예측 모드 X를 사용하여 도출되고, 크로마 인트라 예측 모드 X는 그 후에 크로마 인트라 예측 모드 Y와 동일하게 설정된다.
[표 8-7]
Figure pct00007
x.x.x 교차 성분 크로마 인트라 예측 모드 검사 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 크로마 코딩 블록의 상부 좌측 샘플을 특정하는 루마 위치 (xCb, yCb),
- 루마 샘플들에서 현재 코딩 블록의 폭을 특정하는 변수 cbWidth,
- 루마 샘플들에서 현재 코딩 블록의 높이를 특정하는 변수 cbHeight.
이 프로세스에 대한 출력은 다음과 같다:
- 현재 크로마 코딩 블록에 대해 교차 성분 크로마 인트라 예측 모드가 인에이블되는지 여부를 특정하는 플래그 lmEnabled.
이 프로세스에서, cclmEnabled는 다음과 같이 도출된다.
- wColoc 및 hColoc는 ( xCb << 1, yCb << 1)에 의해 주어지는 위치를 커버하는 병치된 루마 코딩 블록의 폭 및 높이와 동일하게 설정된다.
- cclmEnabled는 1과 동일하게 설정된다.
- sps_cclm_enabled_flag가 0과 동일하면, cclmEnabled는 0과 동일하게 설정된다.
- 그렇지 않고, treeType가 SINGLE_TREE와 동일하면, cclmEnabled는 1과 동일하게 설정된다.
- 그렇지 않고, 다음의 조건들 중 하나가 거짓이면, cclmEnabled는 0과 동일하게 설정된다.
- cbWidth 또는 cbHeight는 32 이상이고 cbWidth는 cbHeight와 동일하지 않다.
- wColoc 또는 hColoc는 64 이상이고 wColoc는 hColoc와 동일하지 않다.
실시예 2a - 루마 ARA들에 대한 추론된 인에이블링 플래그의 사용을 갖는 변형; CCLM에 대한 일반화
위에서 설명된 개념들은 CCLM과 같은 다른 루마-대-크로마 모드들에 또한 적용될 수 있다.
실시예 2의 변형에서, CCLM(또는 LDCRS)은 다음 조건들 중 적어도 하나가 참인 경우에 디스에이블된다:
● 고려된 크로마 블록은 단일 크로마 ARA에 완전히 포함되지는 않는다.
● 크로마 ARA와 공동 위치된 루마 ARA는 루마 ARA 내부에 완전히 존재하지 않는 적어도 하나의 루마 블록, 즉, 공동 위치된 루마 ARA의 경계들과 교차하는 하나의 루마 블록을 포함한다.
이는 각각의 루마 ARA에 할당된, 이하 luma_blocks_inside_flag로 명명되는 추론된 플래그의 사용에 의해 구현될 수 있다. 각각의 루마 ARA에 대해, 플래그는 루마 파티셔닝 트리(인코더에서 선택되거나 디코더에서 파싱됨)로부터 추론된다. 일단 루마 파티셔닝 트리가 CTU(또는 VDPU)에 대해 생성되면, CTU(또는 VDPU)의 각각의 루마 ARA에 대한 플래그는 다음과 같이 추론된다. 주어진 루마 ARA의 모든 루마 블록이 루마 ARA에 엄격하게 포함된다면, 플래그는 참으로 설정된다. 그렇지 않고, 적어도 하나의 루마 블록이 루마 ARA 경계들 중 하나 이상과 교차하는 경우, 플래그는 거짓으로 설정된다.
그 후 플래그는 다음과 같이 사용될 수 있다. 조건(위에 언급됨):
● 크로마 ARA와 공동 위치된 루마 ARA는 루마 ARA 내부에 완전히 존재하지 않는 적어도 하나의 루마 블록, 즉, 공동 위치된 루마 ARA의 경계들과 교차하는 하나의 루마 블록을 포함한다.
다음과 같이 동등하게 공식화될 수 있다:
● 크로마 ARA와 공동 위치된 루마 ARA의 플래그 luma_blocks_inside_flag는 거짓이다.
실시예 2b - LDCRS 또는 CCLM은 이것이 이것의 병치된 루마 블록 내부에 있으면 인에이블됨
또 다른 변형에서, 크로마 블록이 그의 병치된 루마 블록 내부에 완전히 있지 않은 경우 루마 의존적 모드(LDCRS 또는 CCLM)가 디스에이블된다.
이것은 다음과 같이 표현될 수 있다. 다음의 조건들 중 하나가 거짓이면 LDCRS 또는 CCLM이 디스에이블된다:
● (위치 (x0,y0)에 있고 크기 (Wc,Hc)를 갖는) 크로마 블록의 상부 좌측 샘플과 병치된 루마 블록은 32x32 크로마 ARA 내부에 있다.
● xColocY <=2* x0
Figure pct00008
● yColocY <=2* y0
Figure pct00009
(xColocY, yColocY)는 크로마 블록의 상부 좌측 샘플과 병치된 루마 블록의 상부 좌측 샘플 위치이고, (wColocY, hColocY)는 이 루마 블록의 치수들이다.
실시예 2c - LDCRS 또는 CCLM이 디스에이블될 때 폴백 모드(fallback mode)의 사용
적어도 하나의 실시예는 CCLM 모드(및 그것의 변형 MDLM)에 관련된다. 이 실시예에서, 종래의 CCLM 모드에 폴백 CCLM 모드를 더한 것이 있는지가 고려된다. 폴백 CCLM은 본 출원에서 설명된 제한들로 인해 종래의 CCLM 모드가 인에이블되지 않을 때 이용될 수 있다.
도 11a의 블록도는 CCLM 프로세스 활성화의 단순화된 블록도를 제공한다. 단계 112에서, 주어진 크로마 블록에 대해 종래의 CCLM 모드를 활성화하기 위한 조건들이 검사된다(그러한 조건들은 현재 출원의 다양한 실시예들에서 설명된다). 모든 인에이블 조건들이 주어진 크로마 블록에 대해 만족되면, 종래의 CCLM 모드가 인에이블되고 인코더/디코더(113)에 의해 사용될 수 있다. 인에이블 조건들 중 하나가 주어진 크로마 블록에 대해 만족되지 않는 경우, 종래의 CCLM 모드가 디스에이블되고, 폴백 CCLM 모드가 인에이블되고 인코더/디코더(114)에 의해 사용될 수 있다.
적어도 하나의 실시예에서, 종래의 CCLM 모드는 CCLM 파라미터들이 고려된 크로마 블록의 근접한 이웃에서의 루마 및 크로마 샘플들(예컨대, 크로마 블록의 상부의 하나 또는 2개의 라인에 속하는 크로마 샘플들, 및 그 병치된 루마 샘플들, 및/또는 크로마 블록의 좌측 상의 하나 또는 2개의 열에 속하는 크로마 샘플들, 및 그 병치된 루마 샘플들)로부터 도출되는 모드에 대응한다.
가능한 폴백 CCLM 모드들
적어도 하나의 실시예에서, 폴백 CCLM 모드는 현재 CTU에 이웃하는 크로마 및 루마 샘플들로부터 도출된 CCLM 파라미터들을 사용한다. 예를 들어, CTU의 상부의 1개 또는 2개의 라인 및/또는 CTU의 좌측의 1개 또는 2개의 열이 사용된다.
적어도 하나의 실시예에서, 폴백 CCLM 모드는 현재의 VDPU에 이웃하는 크로마 및 루마 샘플들로부터 도출된 CCLM 파라미터들을 이용한다. 예를 들어, VDPU의 상부의 1개 또는 2개의 라인 및/또는 VDPU의 좌측의 1개 또는 2개의 열이 사용된다.
적어도 하나의 실시예에서, 폴백 CCLM 모드는 현재의 16x16 크로마 ARA 및 그것의 32x32 대응하는 루마 ARA에 이웃하는 크로마 및 루마 샘플들로부터 도출된 CCLM 파라미터들을 이용한다. 예를 들어, 현재 16x16 크로마 ARA 및 그것의 32x32 대응하는 루마 ARA 상부의 1개 또는 2개의 라인 및/또는 현재 16x16 크로마 ARA 및 그의 32x32 대응하는 루마 ARA의 좌측의 1개 또는 2개의 열이 사용된다.
적어도 하나의 실시예에서, 폴백 CCLM 모드는 크로마 블록의 상부 좌측 샘플과 병치된 루마 블록에 이웃하는 루마 샘플들로부터, 그리고 이 루마 샘플들에 병치된 크로마 샘플들로부터 도출된 CCLM 파라미터들을 이용한다.
적어도 하나의 실시예에서, 폴백 CCLM 모드는 가장 최근에 이용된 CCLM 파라미터들을 이용한다.
CCLM 파라미터들의 이력 리스트의 사용
적어도 하나의 실시예에서, 폴백 CCLM 모드는 인코더에서 및 디코더에서 구축된 CCLM 파라미터들의 이력 리스트로부터의 CCLM 파라미터들을 이용한다. 이력 리스트에 대해 최대 크기 Nh가 지정된다. 이력 리스트는 가장 최근에 이용된 CCLM 파라미터들로 채워진다. 크로마 블록이 CCLM 모드를 이용하는 경우, 그것의 CCLM 파라미터들이 이력 리스트에 추가된다. 이력 리스트가 이미 가득 차면, 가장 오래된 CCLM 파라미터들이 제거되고, 새로운 것들이 이력 리스트에 삽입된다.
● 일 변형에서, 새로운 CCLM 파라미터들은 그들이 이력 리스트에 이미 존재하는 CCLM 파라미터들과 상이한 경우에만 이력 리스트에 추가된다.
● 일 변형에서, CCLM 파라미터 이력 리스트로부터의 CCLM 파라미터들의 인덱스는 그것이 폴백 CCLM 모드를 사용하여 코딩되는 경우 크로마 블록에 대해 코딩된다.
● 일 변형에서, 이력 리스트로부터의 CCLM 파라미터들의 인덱스는 루마 및/또는 크로마 샘플들이 리스트의 CCLM 파라미터들을 계산하기 위하여 이용된 크로마 블록 내부의 또는 주위의 루마 및/또는 크로마 샘플들의 유사성 검사에 기초하여 추론된다.
후자의 변형의 하나의 가능한 구현은 다음과 같다. CCLM 파라미터들이 이력 리스트에 삽입될 때, 파라미터들을 도출하기 위하여 이용된 루마 샘플들의 평균 값들이 계산되고 리스트에 저장된다. 그것들은 avg_Ref_Y[ idx ]로 표기되고, idx는 CCLM 파라미터들의 이력 리스트에서의 인덱스이다(idx=0 내지 Nh-1이고, Nh는 이력 리스트의 크기임).
CCLM 모드가 크로마 블록에 대하여 이용될 때, 크로마 블록에 이웃하는 루마 샘플들(이용가능한 루마 샘플들만이 고려됨)의 평균 값들이 계산된다. 이들은 avg_Cur_Y로 표기된다.
크로마 블록의 CCLM 예측을 수행하기 위하여 이용되는, 리스트에서의 CCLM 파라미터들 인덱스 idx0은 avg_Ref_Y[ i ]와 avg_Cur_Y 사이의 차이의 절대 값을 최소화하는 인덱스로서 식별된다:
Figure pct00010
유사성 메트릭은 대안적으로 크로마 샘플들에 기초할 수 있다. CCLM 파라미터들이 이력 리스트에 삽입될 때, 파라미터들을 도출하기 위해 이용되는 크로마 샘플들의 평균 값들이 계산되고 리스트에 저장된다. 이들은 avg_Ref_Cb[ idx ], avg_Ref_Cr[ idx ]로 표기된다.
CCLM 모드가 크로마 블록에 대하여 이용될 때, 크로마 블록에 이웃하는 크로마 샘플들의 평균 값들이 계산된다. 이들은 avg_Cur_Cb 및 avg_Cur_Cr로 표기된다.
크로마 블록의 CCLM 예측을 수행하기 위하여 이용되는, 리스트에서의 CCLM 파라미터들 인덱스 idx0은 avg_Ref_Cb[ idx ], avg_Ref_Cr[ idx ]와 avg_Cur_Cb, avg_Cur_Cr 사이의 차이의 절대 값을 최소화하는 인덱스로서 식별된다:
Figure pct00011
도 11b는 이력 리스트로부터의 인덱스 선택 프로세스의 일 예의 간략화된 블록도를 묘사한다. 프로세스의 입력들은 고려된 크로마 블록에 이웃하는 루마 및/또는 크로마 샘플들, 및 이력 리스트이다. 이력 리스트는, 각각의 인덱스 i에 대해, CCLM 파라미터들, 및 CCLM 파라미터들을 도출하기 위하여 이용되는 루마 또는 크로마 샘플들에 관련된 참조 값들(예컨대, avg_Ref_Y[ i ], avg_Ref_Cb[ i ], avg_Ref_Cr[ i ])을 포함한다. 단계 1200에서, 로컬 값은 크로마 블록에 이웃하는 이웃 루마 또는 크로마 샘플들로부터 계산된다(예를 들어, avg_Cur_Y, avg_Cur_Cb, avg_Cur_Cr). 단계 1201에서, 파라미터 distMin은 큰 값에 설정된다. 단계 1202에서, 인덱스=0 내지 Nh-1에 걸친 루프. 단계 1203에서, 단계 1200에서 계산된 로컬 값과 인덱스 i의 참조 값 사이의 왜곡 "dist". 단계 1204는 dist가 minDist보다 작은지를 검사한다. 이것이 참인 경우, 단계 1205에서 idx0 및 minDist 값이 업데이트되고, 이어서 프로세스는 단계 1206으로 진행한다. 그렇지 않으면(dist가 minDist보다 작지 않으면), 프로세스는 단계 1206으로 진행한다. 단계 1206은 이력 리스트 인덱스들에 걸친 루프의 끝이 완료되었는지를 검사한다. 예인 경우, idx0은 출력 인덱스 값이다. 아니오인 경우, 프로세스는 다음 인덱스를 검사하기 위해 단계 1202로 되돌아간다.
실시예 3 - 크로마 블록이 ARA 경계들과 교차하지 않는 경우 그리고 공동 위치된 루마 블록들 중 적어도 하나가 공동 위치된 루마 ARA 경계들과 교차하지 않는 경우에 LDCRS가 인에이블됨
실시예에서, LDCRS는 다음의 조건들 모두가 참인 경우에 인에이블된다:
● 고려된 크로마 블록이 단일 크로마 ARA에 완전히 포함된다
● 고려된 크로마 블록과 공동 위치된 루마 블록들 중 적어도 하나가 크로마 ARA와 공동 위치된 루마 ARA에 완전히 포함된다. 이러한 루마 블록들은 이하에서 "공동 위치된 인에이블된 루마 블록들"로 명명된다.
프로세스의 단순화된 블록도가 도 12에 도시된다. 단계 500은 크로마 블록이 하나의 단일 크로마 ARA 내부에 있는지를 검사한다. 이 조건이 거짓이면, LDCRS는 디스에이블된다(단계 501). 이 조건이 참이면, 고려된 크로마 블록과 공동 위치된 루마 블록들이 식별된다(단계 502). 단계 503은 공동 위치된 루마 블록들 중 적어도 하나가 크로마 ARA와 공동 위치된 루마 ARA 내부에 있는지를 검사한다. 이 조건이 거짓이면, LDCRS는 디스에이블된다(단계 504). 이 조건이 참이면, LDCRS가 인에이블된다(단계 505).
(도 11의 상부 픽처들과 동일한 파티셔닝을 도시하는) 도 13을 참조하면, 크로마 블록이 하나의 단일 크로마 ARA 내부에 있고, 공동 위치한 루마 블록들 1 및 2가 공동 위치한 루마 ARA 내부에 있기 때문에, 즉, 고려된 크로마 블록과 공동 위치된 루마 블록들 중 적어도 하나가 크로마 ARA와 공동 위치된 루마 ARA에 완전히 포함되기 때문에, LDCRS가 인에이블된다.
도 14를 참조하면, LDCRS가 디스에이블되는데, 그 이유는 크로마 블록이 2개의 크로마 ARA(첫번째 크로마 ARA 및 두번째 크로마 ARA)를 커버하기 때문이며, 그의 공동 위치된 루마 블록들 중 2개(공동 위치된 루마 블록들 1 및 2)가 제1 크로마 ARA와 공동 위치된 루마 ARA 내부에 있더라도 그러하다.
실시예 4 - 공동 위치된 루마 블록들 중 적어도 하나가 공동 위치된 루마 ARA 경계들과 교차하지 않는 경우에 LDCRS가 인에이블됨
실시예에서, 고려된 크로마 블록이 단일 크로마 ARA에 완전히 포함되지 않더라도, 고려된 크로마 블록과 공동 위치된 루마 블록들 중 적어도 하나가 고려된 크로마 블록의 제1 크로마 ARA와 공동 위치된 루마 ARA에 완전히 포함되는 경우에 LDCRS가 인에이블될 수 있다. 이 실시예에서, 고려된 크로마 블록은 하나의 단일 크로마 ARA보다 클 수 있다.
프로세스의 단순화된 블록도가 도 15에 도시되어 있다. 고려된 크로마 블록과 공동 위치된 루마 블록들이 식별된다(단계 600). 단계 601은 공동 위치된 루마 블록들 중 적어도 하나가 제1 크로마 ARA와 공동 위치된 루마 ARA 내부에 있는지를 검사한다. 이 조건이 거짓이면, LDCRS는 디스에이블된다(단계 602). 이 조건이 참이면, LDCRS가 인에이블된다(단계 603).
도 16은 도 14와 동일한 파티셔닝을 도시한다. LDCRS가 인에이블되는데, 그 이유는 크로마 블록이 2개의 크로마 ARA(제1 및 제2 크로마 ARA들)를 커버하더라도, 그의 공동 위치된 루마 블록들 중 일부(블록들 1 및 2)가 크로마 블록의 제1 크로마 ARA와 공동 위치된 루마 ARA 내부에 있기 때문이다.
현재 실시예의 변형에서, LDCRS가 인에이블되고 크로마 블록에 대해 활성화되는 경우, 크로마 잔차를 스케일링하기 위해 사용되는 스케일링 인자는 공동 위치된 인에이블된 루마 블록들에 속하는 루마 샘플들로부터만 도출된다. 모든 크로마 샘플들은 공동 위치된 루마 샘플들의 일부로부터만 도출된 동일한 스케일링 인자를 사용한다.
예를 들어, 도 16의 예를 고려하면, 공동 위치된 루마 블록들 1 및 2로부터의 루마 샘플들의 평균이 계산된다. 이 평균 루마 값은 전체 크로마 블록 잔차에 적용될 스케일링 인자를 식별하기 위해 사용된다. 따라서, 루마 블록 3의 루마 샘플들은 사용되지 않는다.
실시예 5: LDCRS가 디스에이블되는 크로마 블록들에 대한 스케일링 인자 시그널링
실시예에서, 크로마 블록이 루마 기반 크로마 잔차 스케일링으로부터 이익을 얻는 경우, 크로마 스케일링 인자는 비트스트림에서 시그널링된다. 크로마 블록이 여러 개의 변환 유닛들로 이루어지는 경우, 크로마 스케일링 인자는 각각의 TU에 대한 잔차에 적용된다.
프로세스의 단순화된 블록도가 도 17에 도시되어 있다. 단계 700은 고려된 크로마 블록에 대해 LDCRS가 인에이블되는지를 검사한다. 이 조건이 거짓이면, 스케일링 인자 또는 스케일링 인자 인덱스가 코딩/디코딩된다(단계 701). 이 조건이 참이면, 스케일링 인자 또는 스케일링 인자 인덱스는 공동 위치된 루마 블록들로부터 도출된다(단계 702).
실시예에서, 크로마 스케일링 인자의 인덱스가 시그널링된다. 실시예에서, 스케일링 인자 또는 스케일링 인자의 인덱스는 이전에 코딩/디코딩된 하나 또는 여러 개의 이웃 크로마 블록의 스케일링 인자 또는 스케일링 인자 인덱스로부터 예측된다. 예를 들어, 도 18에 예시된 바와 같이, 블록 A, 이어서 블록 A가 이용가능하지 않은 경우 B, 이어서 블록 A 및 블록 B가 이용가능하지 않은 경우 C, 이어서 블록 A 및 블록 B 및 블록 C가 이용가능하지 않은 경우 블록 D를 포함하는 크로마 블록으로부터의 스케일링 인자 또는 스케일링 인자 인덱스가 예측자로서 사용된다. 그렇지 않으면, 스케일링 인자 또는 스케일링 인자 인덱스는 예측되지 않는다.
변형에서, 스케일링 인자는 이미 처리된 이웃 크로마 블록들을 사용하여 예측 프로세스에 의해 추론된다. 추가적인 시그널링이 사용되지 않고, 추론된 스케일링 값만이 고려된 크로마 블록에 대해 사용된다.
실시예 6: LDCRS가 디스에이블되는 크로마 블록들에 대한 델타 QP 시그널링
실시예에서, 크로마 블록이 루마 기반 크로마 잔차 스케일링으로부터 이익을 얻는 경우에, 비트스트림에서 시그널링된 델타 QP 파라미터가 이 크로마 블록에 대해 사용될 수 있다. 크로마 블록이 여러 개의 변환 유닛(Transform unit)들로 이루어지는 경우, 델타 QP 파라미터는 각각의 TU에 대한 잔차에 적용된다.
실시예에서, 델타 QP 파라미터는 크로마 블록에 대해 시그널링된다.
실시예에서, 델타 QP 파라미터는 크로마 블록을 포함하는 양자화 그룹에 대해 시그널링된다.
실시예에서, 크로마 블록을 포함하는 CTU에 대해 델타 QP 파라미터가 시그널링된다.
실시예에서, 크로마 QP 파라미터는 이전에 코딩/디코딩된 하나 또는 여러 개의 이웃 크로마 블록으로부터의 QP 값 또는 스케일링 인자에 기초하여 예측된다. 예를 들어, 도 18에 예시된 바와 같이, 블록 A, 이어서 블록 A가 이용가능하지 않은 경우 블록 B, 이어서 블록 A 및 블록 B가 이용가능하지 않은 경우 블록 C, 이어서 블록 A 및 블록 B 및 블록 C가 이용가능하지 않은 경우 블록 D를 포함하는 크로마 블록으로부터의 QP 값 또는 스케일링 인자가 예측자로서 사용된다.
예측자가 스케일링 인자 sc인 경우, 크로마 QP를 예측하기 위해 사용되는 이러한 스케일링 인자는 먼저 아래의 수학식을 이용하여 QPpred로 표기되는 QP형 값으로 변환된다.
Figure pct00012
여기서 Log2는 밑이 2인 로그 함수이다.
예측자가 QP 값인 경우, 이 QP 값은 예측자 QPpred로서 사용된다.
변형에서, QP 값은 이미 처리된 이웃 크로마 블록들을 사용하여 예측 프로세스에 의해 추론된다. 추가적인 시그널링이 사용되지 않고, 추론된 QP 값만이 고려된 크로마 블록에 대해 사용된다.
실시예 7: 다른 루마 의존적 크로마 코딩 모드들로의 확장
루마 기반 크로마 잔차 스케일링에 대해 개시된 실시예들은 다른 루마 의존적 크로마 코딩 모드들과 함께, 또는 더 일반적으로는 교차 성분 의존성, 예를 들어, 루마로부터의 크로마(chroma-from-luma) 인트라 예측( CCLM 또는 LM 모드로도 알려짐, 및 그 변형인 Multiple Direction Linear Model, MDLM으로도 알려짐) 을 수반하는 코딩 도구들에 사용될 수 있다.
추가적인 실시예에서, WmaxL 및 HmaxL보다 더 큰 치수들 WL 및 HL을 갖는 루마 블록의 경우, CCLM은 루마 블록이 최대 치수들 WmaxL 및 HmaxL의 변환 유닛들로 스플릿되는 경우에만 인에이블될 수 있다.
동일한 방식으로, WmaxL 및 HmaxL보다 더 큰 치수들 WL 및 HL을 갖는 루마 블록의 경우, 크로마 잔차 스케일링은 루마 블록이 최대 치수들 WmaxL 및 HmaxL의 변환 유닛들로 스플릿되는 경우에만 인에이블될 수 있다.
추가적인 실시예에서, WmaxL 및 HmaxL보다 더 큰 치수들 WL 및 HL을 갖는 루마 블록의 경우, 루마 블록은 최대 크기 WmaxL 및 HmaxL의 변환 유닛들로 체계적으로 스플릿된다. 이러한 방식으로, 크로마 잔차 스케일링 및/또는 CCLM 모드들은 크로마 블록들을 처리하기 위해 재구성된 공동 위치된 루마 블록의 가용성에 대한 필요성에 의해 암시되는 구조적 지연 때문에 손해를 입지 않고서 크로마 성분에서 사용될 수 있다.
추가적인 변형에서, WmaxC 및 HmaxC보다 더 큰 치수들 Wc 및 Hc를 갖는 크로마 블록의 경우, 크로마 블록은 최대 크기 WmaxC 및 HmaxC의 변환 유닛들로 체계적으로 스플릿된다. 이러한 방식으로, 크로마 잔차 스케일링 및/또는 CCLM 모드들은 크로마 코딩 유닛의 크기가 무엇이든 간에 크로마 성분에서 이용될 수 있다.
2개의 TU(좌측) 또는 4개의 TU(우측)로의 루마 블록 스플릿이 도 19의 예들에 도시되어 있다.
변형에서, 따라서, 크로마 블록이 WmaxC 및 HmaxC보다 더 큰 치수들 Wc 및 Hc를 갖는 경우, CCLM은 크로마 블록이 최대 치수들 WmaxC 및 HmaxC의 변환 유닛들로 스플릿되는 경우에만 인에이블될 수 있다.
동일한 방식으로, 크로마 블록이 WmaxC 및 HmaxC보다 더 큰 치수들 Wc 및 Hc를 갖는 경우, 크로마 잔차 스케일링은 크로마 블록이 최대 치수들 WmaxC 및 HmaxC의 변환 유닛들로 스플릿되는 경우에만 인에이블될 수 있다.
실시예 8: CCLM에 대한 참조 샘플 가용성을 사용하는 CTU들에 대한 개별 루마/크로마 트리의 비활성화
CCLM 모드는 그 공동 위치된 루마 샘플들로부터 크로마 블록 샘플들을 예측하기 위하여 추가로 이용되는 파라미터들을 결정하기 위하여 참조 루마 및 크로마 샘플들을 이용한다. 참조 루마 및 크로마 샘플들은 전형적으로 위치가 정해진다.
● 크로마/공동 위치된 루마 블록에 이웃하는 상부 라인(들) 상에,
● 크로마/공동 위치된 루마 블록에 이웃하는 좌측 열(들) 상에,
● 가능하게는 크로마/공동 위치된 루마 블록에 이웃하는 상부 좌측 위치(들) 상에. 고려된 CCLM 모드에 의존하여 이러한 3개의 위치의 조합들이 사용될 수 있다.
실시예에서, CCLM 모드에 대해 사용되는 크로마 참조 샘플들은 이들이 고려 중인 크로마 블록을 포함하는 크로마 ARA의 상부/좌측/상부 우측 이웃 크로마 ARA들에 포함된 크로마 블록들에 속하는 경우 이용가능한 것으로 간주된다(도 20). 크로마 참조 샘플들이 상부/좌측/상부 우측 이웃 크로마 ARA들에 포함되지 않는 경우, 이들은 이용가능하지 않은 것으로 간주된다.
도 21은 크로마 블록에 대해 사용되는 (크로마 블록 위의 대각선 해칭된 직사각형에서의) 상부 참조 크로마 샘플들이 상이한 루마 블록들(블록들 1, 3 및 4)에 속하고, 그러한 루마 블록들 중 일부(블록들 3 및 4)가 이웃 상부 크로마 ARA 내부에 있지 않은 경우를 나타낸다. 실시예에 따르면, 블록 1에 속하는 참조 샘플들만이 이용 가능한 것으로 간주된다. 블록 3 및 블록 4로부터의 다른 참조 샘플들은 CCLM 모드에 대해 이용가능하지 않다.
변형에서, CCLM 예측에 대해 사용되는 크로마 참조 샘플들의 주어진 비율(예를 들어, 30%)이 이웃하는 상부/좌측/상부 우측 크로마 ARA들에 포함되지 않는 경우, CCLM 모드는 디스에이블된다.
도 21에서, 이용 가능한 참조 샘플들의 수는 참조 샘플들의 총 수의 25%와 동일하다. 따라서, CCLM은 디스에이블될 것이다.
변형에서, CCLM 모드는 CCLM 예측에 대해 이용되는 적어도 하나의 크로마 참조 샘플이 이웃하는 상부/좌측/상부 우측 크로마 ARA들에 포함되지 않자마자 디스에이블된다.
도 21을 참조하면, 적어도 하나의 참조 샘플이 이 예시에서 이용가능하지 않기 때문에, CCLM은 디스에이블될 것이다.
유사하게, CCLM에 대해 이용되는 루마 참조 샘플들에 대하여, 다음의 실시예가 제안된다. CCLM 모드에 대해 사용되는 루마 참조 샘플들은, 이들이 고려 중인 크로마 블록을 포함하는 크로마 ARA의 상부/좌측/상부 우측에서 이웃하는 크로마 ARA들과 공동 위치된 루마 ARA에 포함된 루마 블록들에 속하는 경우, 이용가능한 것으로 간주된다(도 20). 루마 참조 샘플들이 이웃하는 상부/좌측/상부 우측 이웃하는 크로마 ARA들과 공동 위치된 이웃하는 상부/좌측/상부 우측 루마 ARA들에 포함되지 않는 경우, 이들은 이용가능하지 않은 것으로 간주된다.
변형에서, CCLM 모드는, 루마 참조 샘플들의 주어진 비율(예컨대, 30%)이 상부/좌측/상부 우측 이웃하는 크로마 ARA들과 공동 위치된 이웃하는 상부/좌측/상부 우측 루마 ARA들에 포함되지 않는 경우에 디스에이블된다.
변형에서, CCLM 모드는, 적어도 하나의 루마 참조 샘플이 이웃하는 상부/좌측/상부 우측 크로마 ARA들과 공동 위치된 이웃하는 상부/좌측/상부 우측 루마 ARA들에 포함되지 않는 경우 디스에이블된다.
실시예 9: CCLM을 이용한 CTU들에 대한 개별 루마/크로마 트리의 비활성화
실시예에서, CTU 내부의 적어도 하나의 크로마 블록이 CCLM(또는 LDCRS)을 사용하는 경우에, 개별 루마/크로마 트리는 디스에이블되고, CTU에 대한 크로마 파티셔닝은 루마 파티셔닝으로부터 추론된다.
변형에서, CCLM(또는 LDCRS)이 CTU에서 사용되는지 여부를 지시하기 위해 플래그가 CTU 레벨에서 시그널링된다.
이 개념은 CTU들과 상이한 블록 타입들(예를 들어, Video Decoding Processing Unit, VDPU로도 알려짐)에 대해 일반화될 수 있다.
실시예 10: 크로마 블록의 상부 좌측 코너와 공동 위치된 루마 블록의 이웃 샘플들에 기초한 크로마 잔차 스케일링
또 다른 실시예에서, 잠재적 하드웨어 레이턴시 문제는, 크로마 블록에서의 주어진 위치와 공동 위치된 루마 블록의 이웃에서 이미 처리된 예측 또는 재구성된 루마 샘플들로부터 크로마 블록의 크로마 잔차 스케일링에서 사용될 스케일링 인자를 결정함으로써 더 감소된다.
그러한 샘플들은 이하의 "이웃 루마 샘플들"에서 호출된다.
도 22는 크로마 블록의 크로마 잔차 스케일링에서 사용될 스케일링 인자를 결정하기 위한 방법의 흐름도를 묘사한다.
단계 800에서, 크로마 블록에서의 주어진 샘플 위치의 픽처에서의 위치가 식별된다. 단계 801에서, 크로마 블록에서의 위치와 공동 위치된 루마 샘플을 포함하는 루마 블록이 식별된다. 단계 802에서, 루마 블록에 이웃하는 이미 처리된 루마 샘플들이 식별된다. 단계 803에서, 그러한 식별된 이웃 루마 샘플들로부터 루마 값, 예를 들어, 식별된 이웃 루마 샘플들의 평균 값이 결정된다. 단계 804에서, 루마 값에 기초하여 크로마 블록에 대한 스케일링 인자가 결정된다. 단계 805에서, 크로마 블록 잔차가 스케일링 인자를 사용하여 스케일링된다.
실시예에서, 크로마 블록에서의 주어진 샘플 위치는 크로마 블록의 상부 좌측 코너이다. 이것은 도 23a에 도시되어 있다. 크로마 블록(직사각형)은 굵은 선들로 표시된다. 크로마 블록의 상부 좌측 샘플에 대한 공동 위치된 루마 블록(정사각형)은 얇은 선으로 있다. 그것의 이웃 샘플들은 회색으로 표시된다. 변형에서, 크로마 블록에서의 주어진 샘플 위치는 크로마 블록의 중심이다.
실시예에서, 하나의 이웃 루마 샘플만이 사용되고, 공동 위치된 루마 블록의 상부 좌측 샘플의 상부 또는 좌측 샘플에 대응한다. 이것은 도 23b에 도시되어 있다. 변형에서, 상부 및 좌측 샘플들 모두가 사용된다.
또 다른 실시예에서, 이웃 루마 샘플들은 크기 WL의 이웃하는 상부 라인으로, 그리고 크기 HL의 이웃하는 좌측 열 라인으로 이루어지고, WL 및 HL은 루마 블록의 수평 및 수직 치수들이다. 이것은 도 23c에 도시되어 있다.
또 다른 실시예에서, 이웃 루마 샘플들은 크기 minS의 이웃하는 상부 라인으로, 그리고 크기 minS의 이웃하는 좌측 열 라인으로 이루어지고, 여기서 minS는 WL 및 HL 중의 최소 값이다.
또 다른 실시예에서, 이웃 루마 샘플들은 크기 Wc*2의 이웃하는 상부 라인으로, 그리고 크기 Hc*2의 이웃하는 좌측 열 라인으로 이루어지고, Wc 및 Hc는 크로마 블록의 수평 및 수직 치수들이고 크로마 포맷이 4:2:0인 것을 고려한다.
또 다른 실시예에서, 이웃 루마 샘플들은 크기 minSC*2의 이웃하는 상부 라인으로, 그리고 크기 minSC*2의 이웃하는 좌측 열 라인으로 이루어지고, 여기서 minSC는 Wc 및 Hc 중의 최소 값이다.
변형에서, 도 23d에 예시된 바와 같이, 크기 minSC*2의 이웃하는 상부 라인은 크로마 상부 좌측 코너와 동일한 상대적 수평 위치에서 시작하고, 크기 minSC*2의 이웃하는 좌측 열 라인은 크로마 상부 좌측 코너와 동일한 상대적 수직 위치에서 시작한다. 예를 들어, 크로마 블록에서의 상부 좌측 코너가 크로마 픽처에서의 위치 (xc,yc)에 있고, 크로마 포맷이 4:2:0인 경우, 이웃 루마 샘플들의 상부 라인에서의 제1 샘플은 수평 위치 2*xc에 있고, 이웃 루마 샘플들의 좌측 열에서의 제1 샘플은 수직 위치 2*yc에 있다.
추가 변형에 따르면, 잔차 현재 크로마 블록에 적용될 스케일링 인자를 결정하기 위해 사용되는 이웃 샘플들은 현재 크로마 블록을 포함하는 ARA의 상부 및 좌측 이웃 ARA들에 제각기 속하는 루마 샘플들의 하부 라인 및/또는 우측 열에 속하는 하나 이상의 재구성된 루마 샘플로 이루어진다.
또 다른 실시예에서, 이웃 루마 샘플들의 주어진 비율이 이용가능하지 않은 경우, 크로마 블록 잔차 스케일링은 적용되지 않는다.
또 다른 실시예에서, 이웃 루마 샘플은 그것이 크로마 블록과 동일한 CTU에 있지 않은 경우 이용가능하지 않은 것으로 간주된다.
또 다른 실시예에서, 이웃 루마 샘플은 그것이 크로마 블록과 동일한 VDPU에 있지 않은 경우 이용가능하지 않은 것으로 간주된다.
또 다른 실시예에서, 이웃 루마 샘플은 그것이 제1 크로마 블록 ARA와 공동 위치된 동일한 루마 ARA에 있지 않은 경우 이용불가능한 것으로 간주된다.
또 다른 실시예에서, 고려된 이웃에서의 크로마 샘플들의 주어진 비율이 이용 가능하지 않은 경우, 크로마 블록 잔차 스케일링은 적용되지 않는다. 이는 현재 크로마 블록이 처리되고 있을 때에, 이웃 크로마 블록들이 그들의 재구성된 상태에서 아직 이용가능하지 않은 경우에 일어날 수 있다.
실시예에서, 크로마 잔차 스케일링 인자를 도출하기 위해 사용되는 이웃 루마 샘플들은 공동 위치된 루마 블록을 예측하기 위해 사용되는 샘플들(또한 종종 인트라 예측 참조 샘플들로 알려짐)이다. 이중 트리의 경우, 각각의 주어진 영역(예를 들어, VDPU)에 대해, 먼저 주어진 영역의 루마 블록들을 처리하고, 이어서 주어진 영역의 크로마 블록들을 처리하는 것이 일반적이다. 현재 실시예가 적용될 때, 이는 주어진 영역의 각각의 루마 블록에 대해 그의 이웃 루마 샘플들을 저장하는 것이 필요할 것임을 의미하며, 이는 추가 메모리 저장 공간을 필요로 하고, 참조 샘플들의 수가 블록 크기에 좌우되어 변함에 따라 프로세스를 복잡하게 만든다. 이러한 부정적인 영향들을 감소시키기 위해, 일 실시예에서, 이웃 루마 샘플들로부터 단계 803에서 도출된 루마 값만이 각각의 루마 블록에 대해 저장된다. 또 다른 실시예에서, 이웃 루마 샘플들로부터 단계 803에서 도출된 루마 값으로부터 단계 804에서 도출된 스케일링 인자만이 각각의 루마 블록에 대해 저장된다. 이는 저장 공간을 루마 블록당 하나의 단일 값으로 제한한다. 이 원리는 LMCS 이외의 다른 모드들, 예를 들어, CCLM으로 확장될 수 있고, 여기서, 각각의 블록의 루마 및 크로마 샘플들을 저장하는 대신에, 블록의 CCLM 파라미터들을 도출하기 위하여 이용되는 루마 및 크로마 샘플들의 최소 및 최대 값들만이 저장된다.
실시예 10의 개념은 CCLM 모드까지 일반화될 수 있다. 이 경우, 현재 실시예는 예측 또는 재구성된 루마 샘플들(이웃 루마 샘플들) 및 크로마 블록에서의 주어진 위치와 공동 위치된 루마 블록의 이웃에서 이미 처리된 예측 또는 재구성된 크로마 샘플들(이웃 크로마 샘플들)로부터 크로마 블록의 예측을 위하여 이용될 CCLM 선형 파라미터들을 결정하는 것으로 구성된다. 도 23a 내지 도 23d는 이 개념을 나타낸다. 회색으로 채워진 직사각형 영역들은 CCLM 파라미터들의 도출을 위하여 잠재적으로 이용되는, 현재 크로마 블록의 상부 좌측 샘플과 병치된 루마 블록의 이웃 샘플들(루마 및 크로마)에 대응한다.
변형에 따르면, 현재 크로마 블록의 CCLM 예측을 수행하기 위해 사용될 선형 모델을 결정하기 위해 사용되는 루마 및/또는 크로마 이웃 샘플들은 현재 크로마 블록을 포함하는 ARA의 상부에 및/또는 그 좌측 이웃 루마 및/또는 크로마 ARA들에 제각기 속하는, 루마 및/또는 크로마 샘플들의 하부 라인에 및/또는 우측 열에 속하는 적어도 하나의 재구성된 또는 예측된 루마 및/또는 크로마 샘플들로 이루어진다. 개념은 현재 크로마 블록을 포함하는 ARA의 상부 우측 이웃 루마 및/또는 크로마 ARA들의 하부 라인들로, 그리고 현재 크로마 블록을 포함하는 ARA의 하부 좌측 이웃 루마 및/또는 크로마 ARA들의 우측 열들로 확장될 수 있다. 개념은 현재 크로마 블록을 포함하는 ARA의 상부 우측 이웃 루마 및/또는 크로마 ARA들의 하부 라인들로, 그리고 현재 크로마 블록을 포함하는 ARA의 하부 좌측 이웃 루마 및/또는 크로마 ARA들의 우측 열들로 확장될 수 있다.
실시예 11: 크로마 블록에 대한 그 위치에 기초한 루마 샘플 가용성 검사
또 다른 실시예에서, 위치 (xL, yL)에서의 이웃 루마 샘플과 고려된 크로마 블록의 상부 좌측 샘플의 위치 (xC, yC) 사이의 거리가 주어진 값보다 더 높으면, 이웃 루마 샘플은 이용가능하지 않은 것으로 간주된다. 다시 말해서, 이웃 루마 샘플은 다음의 조건이 참일 경우에 이용가능하지 않은 것으로서 고려된다:
( (xC*2) - xL) > TH 또는 ( (yC*2) - yL ) > TV
또는 등가적으로
(xC - (xL/2) ) > TH/2 또는 ( yC - (yL/2) ) > TV/2
여기서 TH 및 TV는 비트스트림에서 미리 정의되거나 시그널링된 값들이다. 통상적으로, TH=TC=16이다. 변형에서, TH 및 TC는 픽처 해상도에 의존한다. 예를 들어, TH 및 TH는 다음의 조건들에 따라 정의된다:
- 픽처 해상도가 832x480 루마 샘플 이하인 경우, TH=TC=8,
- 그렇지 않고 픽처 해상도가 1920x1080 루마 샘플 이하인 경우, TH=TC=16,
- 그렇지 않으면, TH=TC=32이다.
도 24a 및 도 24b는 상부 좌측 이웃 루마 샘플과 이웃 크로마 샘플들(4:2:0 크로마 포맷의 경우에 2만큼 스케일링됨) 사이의 거리들의 예들을 도시한다. 도 24a는 병치된 루마 블록의 상부 좌측 크로마 샘플과 상부 좌측 이웃 크로마 샘플 사이의 거리를 나타낸다. 도 24b는 상부 좌측 크로마 샘플과 상부 라인 또는 좌측 열 사이의 거리를 나타낸다.
변형에서, 상부 좌측 크로마 샘플로부터 너무 멀리 있는 샘플들을 엄격하게 디스에이블하는 대신에, 이웃 크로마 샘플과 상부 좌측 크로마 샘플 사이의 거리에 의존하는 가중이 고려된 참조 샘플에 적용된다.
변형에서, 상부 좌측 크로마 샘플로부터 너무 멀리 있는 샘플들을 엄격하게 디스에이블하는 대신에, 이웃 크로마 샘플과 상부 좌측 크로마 샘플 사이의 거리에 의존하는 가중이 고려된 참조 샘플에 적용된다.
실시예 12: 현재 블록의 크로마 샘플들의 값에 대한 그의 병치된 크로마 샘플들의 값에 기초한 루마 샘플 가용성 검사
또 다른 실시예에서, 이웃 루마 샘플 neighborY의 가용성은 그의 병치된 Cb 및 Cr 크로마 샘플들, neighborCb, neighborCr의 값들, 및 현재 크로마 블록의 예측 Cb 및 Cr 크로마 샘플들의 값들에 기초한다. 예를 들어, 이하의 조건들이 참인 경우, 이웃 루마 샘플 이웃은 이용가능하지 않은 것으로 간주된다:
- 만일 Abs(topLeftCb - neighborCb) > Th_Ch 또는
Abs(topLeftCr - neighborCr) > Th_Ch
여기서 Th_Ch는 비트스트림에서 미리 정의되거나 시그널링된 값이고, Abs는 절대값 함수이다. Th_Ch는 크로마 샘플들의 비트 깊이에 의존할 수 있다. 전형적으로, Th_Ch는 10-비트 콘텐츠에 대해 64이고, 8-비트 콘텐츠에 대해 32이다.
변형에서, 크로마 잔차 스케일링은, 이웃 루마 샘플들과 병치된 크로마 샘플들의 평균 Cb 및 Cr 값들 avgNeighCb, avgNeighCr이 현재 크로마 블록의 크로마 샘플들의 평균 Cb 및 Cr 값들 avgCurrCb, avgCurrCr로부터 너무 멀지 않은 경우에만 적용된다.
예를 들어, 이하의 조건들이 참인 경우, 이웃 루마 샘플은 이용가능하지 않은 것으로 간주된다:
- 만일 Abs(avgCurrCb-avgNeighCb) > Th_Ch 또는
Abs(avgCurrCr-avgNeighCr) > Th_Ch
변형에서, 상부 좌측 크로마 샘플과 너무 상이한 샘플들을 엄격하게 디스에이블하는 대신에, 이웃 크로마 샘플과 상부 좌측 크로마 샘플 사이의 차이에 의존하는 가중이 고려된 참조 샘플에 적용된다.
변형에서, 상부 좌측 크로마 샘플과 너무 상이한 샘플들을 엄격하게 디스에이블하는 대신에, 이웃 크로마 샘플과 상부 좌측 크로마 샘플 사이의 차이에 의존하는 가중이 고려된 참조 샘플에 적용된다.
도 25는 그의 병치된 크로마 샘플들에 및 현재 블록의 크로마 샘플들에 기초하여 루마 샘플 가용성을 검사하기 위한 방법의 흐름도를 묘사한다. 단계 800 내지 802는 도 22의 대응하는 단계들과 유사하다. 단계 900은 단계 802 후에 이웃 루마 샘플들과 병치된 이웃 크로마 샘플들을 식별하기 위해 삽입된다. 단계 901에서, 이웃 크로마 샘플들의 및 현재 블록의 크로마 샘플들의 유사성이 검사된다. 크로마 샘플들이 유사하면, 크로마 잔차 스케일링은 현재 크로마 블록에 대해 인에이블된다(903). 샘플들이 유사하지 않은 것으로 간주되면, 크로마 잔차 스케일링은 현재 크로마 블록에 대해 디스에이블된다(902).
실시예 12a: MDLM에 대한 참조 샘플 가용성
MDLM 모드는 루마 샘플들로부터 크로마 샘플들의 예측을 위한 선형 파라미터들을 도출하기 위한 참조 샘플들로서 상부 이웃 루마 및 크로마 샘플들(MDLM 상부), 또는 좌측 이웃 루마 및 크로마 샘플들(MDLM 좌측)을 사용하는 CCLM 모드의 변형이다.
적어도 일 실시예에서, 스플릿 프로세스가 VDPU 폭/높이의 절반 폭/높이의 2개의 상부 정사각형 블록을 포함하는 루마 VDPU의 파티셔닝으로, 또는 VDPU 폭/높이 크로마 VDPU의 절반 폭/높이의 2개의 상부 정사각형 블록을 포함하는 크로마 VDPU의 파티셔닝으로 이끌 때, 제2 정사각형 블록(도 25a에서 "2"로 표시됨)의 좌측의 MDLM에 대한 참조 샘플들은 블록 2의 좌측 경계에 이웃하는 샘플들만이다. 이들 참조 샘플들 아래의 샘플들은 이용가능하지 않은 것으로 간주된다. 이는 유리하게도 블록 2를 처리하기 위한 레이턴시를 제한하는데, 그 이유는 MDLM 파라미터들을 도출하기 위해 블록 2 아래의 블록들이 필요하지 않기 때문이다.
이 실시예는 도 25a의 루마 또는 크로마 블록(1)이 더 작은 파티션들로 더 스플릿되는 경우에 대해서도 일반화될 수 있다.
실시예 13: 크로마 잔차 스케일링을 활성화 또는 비활성화하기 위한 저 레벨 플래그
또 다른 실시예에서, 슬라이스 또는 타일 그룹보다 더 낮은 레벨에서 크로마 잔차 스케일링 도구를 인에이블 또는 디스에이블하기 위해 비트스트림 신택스에 저 레벨 플래그가 삽입된다. 이 실시예는 별개의 루마/크로마 파티셔닝 트리의 경우에만 적용될 수 있다. 이는 별개의 루마/크로마 파티셔닝 트리가 사용되지 않는 경우에도 확장될 수 있다.
다음의 표는 문서 JVET-N0220의 VTM 사양과 비교하여, 신택스 변경(회색으로 강조됨)의 예를 도시한다. 이 표에서, 시그널링은 CTU 레벨에서 이루어지고, 시그널링은 (신택스 요소 qtbtt_dual_tree_intra_flag에 의해 식별되는) 별개의 루마/크로마 파티셔닝 트리의 경우에서만 행해진다.
Figure pct00013
다음의 표는 문서 JVET-N0220의 VTM 사양과 비교하여, 신택스 변경(회색으로 강조됨)의 또 다른 예를 도시한다. 이 표에서, 시그널링은 CTU 레벨에서 이루어지고, 시그널링은 별개의 루마/크로마 파티셔닝 트리가 사용되든 사용되지 않든 간에 행해진다.
Figure pct00014
이러한 변형들에 따르면, 크로마 잔차 스케일링의 CTU에서의 활성화는 플래그 ctu_chroma_residual_scale_flag의 값에 의해 컨디셔닝된다.
실시예 2에 따른 사양 신택스 적응의 예
실시예 2에 따른 현재 VVC 드래프트 사양(Benjamin Bross et al. "Versatile Video Coding(Draft4)", JVET 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, JVET-M1001-v7을 참조)에서의 신택스 변경들의 예가 아래에 제공된다. JVET-M1001과 비교되는 변경들은 회색으로 강조된다.
8.4.3 크로마 인트라 예측 모드에 대한 도출 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 크로마 코딩 블록의 상부 좌측 샘플을 특정하는 루마 위치 (xCb, yCb),
- 루마 샘플들에서 현재 코딩 블록의 폭을 특정하는 변수 cbWidth,
- 루마 샘플들에서 현재 코딩 블록의 높이를 특정하는 변수 cbHeight.
이 프로세스에서, 크로마 인트라 예측 모드 IntraPredModeC[ xCb ][ yCb ]가 도출된다.
- 변수 lmEnabled가 sps_cclm_enabled_flag와 동일하게 설정된다.
- 아래의 조건들이 참일 때, lmEnabled는 프로세스 교차 성분 크로마 인트라 예측 모드 검사 프로세스를 호출함으로써 도출된다.
- lmEnabled는 1과 동일하고,
- tile_group_type는 2(I 타일 그룹)와 동일하고,
- qtbtt_dual_tree_intra_flag는 1과 동일하다.
크로마 인트라 예측 모드 IntraPredModeC[ xCb ][ yCb ]는 표 8-2 및 표 8-3에 명시된 바와 같이 intra_chroma_pred_mode[ xCb ][ yCb ] 및 IntraPredModeY[ xCb + cbWidth/ 2 ][ yCb + cbHeight/2]를 사용하여 도출된다.
[표 8-2]
Figure pct00015
[표 8-3]
Figure pct00016
교차 성분 크로마 인트라 예측 모드 검사 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 크로마 코딩 블록의 상부 좌측 샘플을 특정하는 루마 위치 (xCb, yCb),
- 루마 샘플들에서 현재 코딩 블록의 폭을 특정하는 변수 cbWidth,
- 루마 샘플들에서 현재 코딩 블록의 높이를 특정하는 변수 cbHeight.
이 프로세스에 대한 출력은 다음과 같다:
- 현재 크로마 코딩 블록에 대해 교차 성분 크로마 인트라 예측 모드가 인에이블되는지 여부를 특정하는 플래그 lmEnabled.
이 프로세스에서, lmEnabled는 다음과 같이 도출된다.
- ((16+ xCb)/ 16)이 ((16+ xCb+ cbWidth -1) / 16)과 동일하지 않거나 또는 ((16+ yCb)/ 16)이 ((16+ yCb+ cbHeight -1) / 16)과 동일하지 않으면, cclmEnabled는 0과 동일하게 설정된다
- 그렇지 않으면, 다음이 적용된다.
- i=0, (cbHeight-1) 및 j=0..( cbWidth - 1)에 대해, 이하가 적용된다.
- (xTL, yTL)은 ((xCb + j) <<1, (yCb + i) <<1)에 의해 주어진 위치를 커버하는 병치된 루마 코딩 블록 ColLumaBlock의 현재 픽처의 상부 좌측 루마 샘플에 대한 상부 좌측 샘플 위치와 동일하게 설정된다.
- wColoc 및 hColoc는 ColLumaBlock의 폭 및 높이와 동일하게 설정된다.
- 다음의 조건들 중 하나가 거짓이면, cclmEnabled는 0과 동일하게 설정되고, i 및 j에 걸친 루프가 중지된다.
- ((32 + xTL) / 32)은 ((32 + xTL + wColoc-1) / 32)와 동일하다
- ((32 + yTL) / 32)은 ((32 + yTL+ hColoc -1) / 32)와 동일하다
- cclmEnabled가 1과 동일할 때, i=1..( cbHeight - 2 ) 및 j=0, ( cbWidth - 1 )에 대해 다음이 적용된다.
- (xTL, yTL)은 ((xCb + j) <<1, (yCb + i) <<1)에 의해 주어진 위치를 커버하는 병치된 루마 코딩 블록 ColLumaBlock의 현재 픽처의 상부 좌측 루마 샘플에 대한 상부 좌측 샘플 위치와 동일하게 설정된다.
- wColoc 및 hColoc는 ColLumaBlock의 폭 및 높이와 동일하게 설정된다.
- 다음의 조건들 중 하나가 거짓이면, cclmEnabled는 0과 동일하게 설정되고, i 및 j에 걸친 루프가 중지된다.
- ((32 + xTL) / 32)은 ((32 + xTL + wColoc-1) / 32)와 동일하다
- ((32 + yTL) / 32)은 ((32 + yTL+ hColoc -1) / 32)와 동일하다
실시예 10에 따른 사양 신택스 적응의 예
실시예 10에 따른 현재 VVC 초안 사양(예를 들어, 문서 JVET-M1001)에 포함시키기 위한 신택스의 예가 아래에 제공된다.
크로마 샘플 값을 위한 매핑 프로세스를 갖는 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 블록의 매핑된 루마 예측 샘플들을 특정하는 (nCurrSwx2)x(nCurrShx2) 어레이 매핑된 predMapSamples,
- tile_group_type가 2(I 타일 그룹)과 동일하고 qtbtt_dual_tree_intra_flag가 1과 동일할 때, 현재 픽처의 재구성된 루마를 특정하는 어레이 recSamples,
- 현재 블록의 크로마 예측된 샘플들을 특정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 특정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples,
- 7.4.4.1에서 도출된, i가 0 내지 MaxBinIdx + 1(경계 포함)의 범위에 있는 어레이 InputPivot[ i ] 및 ReshapePivot [ i ]
- 7.4.4.1에서 도출된, i가 0 내지 MaxBinIdx(경계 포함)의 범위에 있는 어레이 InvScaleCoeff[ i ] 및 ChromaScaleCoef[i]
이 프로세스에 대한 출력은 재구성된 크로마 샘플 어레이 recSamples이다.
recSamples는 다음과 같이 도출된다:
- 만일 (!tile_group_reshaper_chroma_residual_scale_flag || ((nCurrSw)x(nCurrSh) <= 4))이면
recSamples[ xCurr + i ][ yCurr + j ] = Clip1C ( predSamples[ i ][ j ] + resSamples[ i ][ j ] )
여기서 i=0..nCurrSw - 1, j=0..nCurrSh - 1이다
- 그렇지 않으면(tile_group_reshaper_chroma_residual_scale_flag && ( (nCurrSw)x(nCurrSh) > 4)), 다음이 적용된다:
변수 varScale는 다음과 같이 도출된다:
- invAvgLuma는 다음과 같이 도출된다:
- 만일 tile_group_type가 2와 동일하고(I 타일 그룹) qtbtt_dual_tree_intra_flag가 1과 동일하면, 이하가 적용된다.
- 현재 픽처의 상부 좌측 크로마 샘플에 대한 크로마 현재 블록의 상부 좌측 샘플의 크로마 위치 (xCh, yCh)가 식별된다.
- 루마 위치 (xTL, yTL)는 현재 픽처의 상부 좌측 루마 샘플에 대해 (xCh << 1, yCh << 1)에 의해 주어지는 위치를 커버하는 병치된 루마 코딩 블록 ColLumaBlock의 상부 좌측 샘플 위치와 동일하게 설정되고, wColoc 및 hColoc는 ColLumaBlock의 폭 및 높이와 동일하게 설정된다.
- ((32 + yCh) / 32)가 ((64 + yTL -1) / 64)와 동일하면, invAvgLuma는 recSamples[ yTL - 1 ][  xTL ]과 동일하게 설정된다.
- 그렇지 않고 만일 ((32 + xCh) / 32)가 ((64 + xTL -1) / 64)와 동일하면, invAvgLuma는 recSamples[ yTL ][  xTL - 1 ]과 동일하게 설정된다
- 그렇지 않으면, invAvgLuma는- 1과 동일하게 설정된다.
- 그렇지 않으면, 다음이 적용된다:
invAvgLuma = Clip1Y( ( ΣiΣj predMapSamples[ i ][  j ] + nCurrSw * nCurrSh *2) / ( nCurrSw * nCurrSh *4 ) ) 
- invAvgLuma가 -1 과 동일하지 않으면, 다음이 적용된다:
- 변수 idxYInv는 샘플 값 invAvgLuma의 입력에 의해 조항 8.5.6.2에 특정된 바와 같은 조각별 함수 인덱스의 식별을 수반함으로써 도출된다.
- varScale은 ChromaScaleCoef[ idxYInv ]와 동일하게 설정된다
- 그렇지 않으면, varScale은 (1 << shiftC)와 동일하게 설정된다.
recSamples는 다음과 같이 도출된다:
- tu_cbf_cIdx[ xCurr ][ yCurr ]가 1과 동일하면, 다음이 적용된다:
shiftC=11
recSamples[ xCurr + i ][ yCurr + j ] = ClipCidx1 ( predSamples[ i ][ j ] + Sign( resSamples[ i ][ j ] )
 * ( ( Abs( resSamples[ i ][ j ] ) * varScale + ( 1 << ( shiftC - 1 ) ) ) >> shiftC ) )
여기서 i=0..nCurrSw - 1, j=0..nCurrSh - 1이다
- 그렇지 않으면(tu_cbf_cIdx[ xCurr ][ yCurr ]가 0과 동일하면)
recSamples[ xCurr + i ][ yCurr + j ] = ClipCidx1(predSamples[ i ][ j ] )
여기서 i=0..nCurrSw - 1, j=0..nCurrSh - 1이다
이 출원은 도구, 특징, 실시예, 모델, 접근법 등을 포함하는 다양한 양태를 설명한다. 다수의 이 양태들은 특정성으로 설명되고, 적어도 개별 특성들을 보여주기 위해, 제한하는 것일 수 있는 방식으로 종종 설명된다. 그러나, 이는 설명의 명료함을 위한 것이고, 그들 양태들의 적용 또는 범위를 제한하지 않는다. 실제로, 추가의 양태들을 제공하기 위해 상이한 양태들 모두가 조합되고 교환될 수 있다. 더구나, 양태들은 마찬가지로 이전의 출원들에서 설명된 양태들과 조합되고 교환될 수 있다.
본 출원에서 설명되고 고려되는 양태들은 많은 상이한 형태들로 구현될 수 있다. 아래의 도 26, 도 27 및 도 28은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되며, 도 26, 도 27 및 도 28의 논의는 구현들의 범위를 한정하지 않는다. 양태들 중 적어도 하나는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고 적어도 하나의 다른 양태는 일반적으로 생성되거나 또는 인코딩된 비트스트림을 송신하는 것에 관한 것이다. 이들 및 다른 양태들은 방법, 장치, 설명된 방법들 중 임의의 것에 따른 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들을 저장하는 컴퓨터 판독가능 저장 매체, 및/또는 설명된 방법들 중 임의의 것에 따라 생성된 비트스트림을 저장하는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
다양한 방법들이 본 명세서에서 설명되었고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않으면, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다.
본 출원에서 설명되는 다양한 방법들 및 다른 양태들은 모듈들, 예를 들어, 도 26 및 도 27에 도시된 바와 같은 비디오 인코더(100) 및 디코더(200)의 이미지 파티셔닝 및 스케일링 모듈들(102, 151, 235, 및 251)을 수정하기 위해 사용될 수 있다. 더구나, 현재의 양태들은 VVC 또는 HEVC로 제한되지 않고, 예를 들어, 미리 존재하든 또는 장래에 개발되든 간에, 다른 표준들 및 권고안들과, (VVC 및 HEVC를 포함한) 임의의 이러한 표준들 및 권고안들의 확장들에 적용될 수 있다. 달리 표시되지 않거나 또는 기술적으로 배제되지 않는 한, 본 출원에서 설명되는 양태들은 개별적으로 또는 조합하여 사용될 수 있다.
다양한 수치 값들, 예를 들어, Wmax, Hmax, WmaxC 및 HmaxC가 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이고 설명되는 양태들은 이러한 특정 값들로 제한되지는 않는다.
도 26은 인코더(100)를 예시한다. 이 인코더(100)의 변형들이 구상되지만, 모든 예상되는 변동들을 설명하지 않고서 인코더(100)는 명료함을 위해 아래에서 설명된다.
인코딩되기 전에, 비디오 시퀀스는 프리-인코딩 처리(101), 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용하는 것(예를 들어, RGB 4:4:4로부터 YCbCr 4:2:0로의 변환), 또는 (예를 들면 컬러 컴포넌트들 중 하나의 컬러 컴포넌트의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분산을 얻기 위하여 입력 픽처 컴포넌트들의 리매핑을 수행하는 것을 겪을 수 있다. 메타데이터는 프리-프로세싱에 연관되고, 비트스트림에 첨부된다.
인코더(100)에서, 픽처는 아래에서 설명되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는, 예를 들어, CU들의 유닛들로 파티셔닝되고(102) 처리된다. 각각의 유닛은, 예를 들어, 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 이는 인트라 예측(160)을 수행한다. 인터 모드에서는, 모션 추정(motion estimation)(175) 및 보상(compensation)(170)이 수행된다. 인코더는 유닛을 인코딩하기 위해 사용할 인트라 모드 또는 인터 모드 중 하나를 결정하고(105), 예를 들어, 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 인코더는 예측된 루마 블록을 획득하기 위해 루마 샘플들에 적용되는 순방향 매핑(191)을 수행할 수 있다. 크로마 샘플들의 경우, 순방향 매핑은 적용되지 않을 것이다. 예측 잔차들은, 예를 들어, 원래의 이미지 블록에서 예측된 블록을 감산함으로써(110) 계산된다. 크로마 샘플들의 경우, 크로마 잔차 스케일링이 크로마 잔차들에 적용될 수 있다(111).
예측 잔차들이 이어서 변환되고(125) 양자화된다(130). 양자화된 변환 계수들 뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은, 비트스트림을 출력하도록 엔트로피 코딩(145)된다. 인코더는 변환을 건너 뛰고 비변환된 잔차 신호에 직접적으로 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 둘 다를 건너 뛸 수 있으며, 즉, 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접적으로 코딩될 수 있다.
인코더는 추가적 예측들을 위한 참조를 제공하기 위해 인코딩된 블록을 디코딩한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(140), 역변환된다(150). 이어서, 크로마 잔차들이 스케일링 프로세스(111)의 역 프로세스를 수행하는 역 스케일링(151)에 의해 처리된다. 디코딩된 예측 잔차들 및 예측된 블록을 조합하면(155), 이미지 블록이 재구성된다. 루마 샘플들에 대해, 역 매핑(190)이 적용될 수 있고, 이 단계는 순방향 매핑 단계(191)의 역이다. 인-루프 필터들(165)은, 예를 들어, 인코딩 아티팩트들을 감소시키기 위한 디블로킹/SAO(Sample Adaptive Offset), ALF(Adaptive Loop-Filter) 필터링을 수행하기 위해 재구성된 픽처에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(180)에 저장된다.
도 27은 비디오 디코더(200)의 블록도를 나타낸 것이다. 디코더(200)에서, 비트스트림은 아래에서 설명되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로 도 26에 기술된 바와 같이 인코딩 패스에 역인 디코딩 패스를 수행한다. 인코더(100)는 비디오 데이터를 인코딩하는 일부로서 비디오 디코딩을 또한 일반적으로 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은, 변환 계수들, 모션 벡터들 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩된다(230). 픽처 파티션 정보는 픽처가 파티셔닝되는 방법을 표시한다. 디코더는 그러므로 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(235). 변환 계수들은 예측 잔차들을 디코딩하기 위해 탈양자화되고(240), 역변환된다(250). 크로마 샘플들에 대해, 크로마 잔차들은 인코더의 역 스케일링(151)과 유사한 역 스케일링(251)에 의해 처리된다. 디코딩된 예측 잔차들 및 예측된 블록을 조합하면(255), 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 모션 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 순방향 매핑(295)은 예측 후에 루마 샘플들에 적용될 수 있다. 인코더의 역 매핑(190)과 유사한 역 매핑(296)은 재구성된 루마 샘플들에 적용될 수 있다. 이어서, 인-루프 필터들(265)이 재구성된 이미지에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 포스트-디코딩 처리(285), 예를 들어, 역 컬러 변환(예를 들어, YCbCr 4:2:0부터 RGB 4:4:4로의 변환) 또는 프리-인코딩 처리(101)에서 수행되는 리매핑 프로세스의 역을 수행하는 역 리매핑을 추가로 겪을 수 있다. 포스트-디코딩 처리는 프리-인코딩 처리에서 도출되고 비트스트림에서 시그널링되는 메타데이터를 사용할 수 있다.
도 28은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 블록도를 도시한다. 시스템(1000)은 아래에서 설명되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고 이 문서에서 설명되는 양태들의 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예는 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 텔레비전 수신기, 개인 비디오 기록 시스템, 접속된 가전 기기, 및 서버와 같은 다양한 전자 디바이스들을 포함하지만 이에 한정되지는 않는다. 시스템(1000)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로(IC), 다중 IC, 및/또는 이산 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 처리 및 인코더/디코더 요소들은 다중 IC 및/또는 이산 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 하나 이상의 다른 시스템들에, 또는 다른 전자 디바이스들에 통신가능하게 결합된다. 다양한 실시예들에서, 시스템(1000)은 본 문서에서 설명된 양태들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 본 문서에 설명된 다양한 양태들을 구현하기 위해, 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 내장된 메모리, 입력 출력 인터페이스, 및 본 기술분야에 공지된 다양한 다른 회로들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예를 들어, 휘발성 메모리 디바이스 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은 EEPROM(Electrically Erasable Programmable Read-Only Memory), ROM(Read-Only Memory), PROM(Programmable Read-Only Memory), RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 플래시, 자기 디스크 드라이브, 및/또는 광 디스크 드라이브를 포함하지만 이에 한정되지는 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는 비제한적 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스(분리식(detachable) 및 비분리식 저장 디바이스들을 포함함), 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.
시스템(1000)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 그 자신의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 또한, 인코더/디코더 모듈(1030)은 시스템(1000)의 별도 요소로서 구현될 수 있거나, 또는 본 기술분야의 통상의 기술자에게 공지된 바와 같이 하드웨어 및 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
본 문서에 설명된 다양한 양태들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030) 상에 로딩될 프로그램 코드는 저장 디바이스(1040)에 저장될 수 있고, 후속하여 프로세서(1010)에 의한 실행을 위해 메모리(1020) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040), 및 인코더/디코더 모듈(1030) 중 하나 이상은 본 문서에 설명된 프로세스들의 수행 동안 다양한 아이템들 중 하나 이상을 저장할 수 있다. 이러한 저장된 아이템들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 부분들, 비트스트림, 행렬들, 변수들, 및 수학식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이에 제한되지는 않는다.
몇몇 실시예에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030)의 내부에 있는 메모리는 명령어들을 저장하기 위해 및 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030) 중 하나일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예에서, 외부 비휘발성 플래시 메모리는 예를 들어, 텔레비전의 운영 체제를 저장하기 위해 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는 MPEG-2(MPEG는 Moving Picture Experts Group를 지칭하고, MPEG-2는 ISO/IEC13818로도 지칭되고, 13818-1은 H.222로도 알려져 있고, 13818-2는 H.262로도 알려져 있음), HEVC(HEVC는 H.265 및 MPEG-H 파트 2로도 알려져 있는 고효율 비디오 코딩을 지칭함), 또는 VVC(Versatile Video Coding, JVET, Joint Video Experts Team에 의해 개발되고 있는 새로운 표준)와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(1000)의 요소들에의 입력은 블록(1130)에 표시된 바와 같이 다양한 입력 디바이스들을 통해 제공될 수 있다. 이러한 입력 디바이스들은 (i) 예를 들어, 브로드캐스터에 의해 공중을 통해 송신된 RF 신호를 수신하는 무선 주파수(RF) 부분, (ii) 컴포넌트(COMP) 입력 단자(또는 COMP 입력 단자들의 세트), (iii) 범용 직렬 버스(USB) 입력 단자, 및/또는 (iv) 고선명 멀티미디어 인터페이스(HDMI) 입력 단자를 포함하지만, 이에 한정되지는 않는다. 도 28에 도시되지 않은 다른 예들은 합성 비디오를 포함한다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 관련 기술분야에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(또한 신호를 선택하는 것, 또는 주파수들의 대역에 신호를 대역 제한하는 것으로 지칭됨), (ii) 선택된 신호를 다운컨버팅하는 것, (iii) 주파수들의 더 좁은 대역으로 다시 대역 제한하여 특정 실시예들에서 채널로 지칭될 수 있는 (예를 들어) 신호 주파수 대역을 선택하는 것, (iv) 다운컨버팅된 및 대역 제한된 신호를 복조하는 것, (v) 오류 정정을 수행하는 것, 및 (vi) 원하는 데이터 패킷들의 스트림을 선택하도록 디멀티플렉싱하기 위해 적절한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소, 예를 들어, 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 다운컨버터들, 복조기들, 오류 정정기들, 및 디멀티플렉서들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근 기저대역 주파수)로 또는 기저대역으로 다운컨버팅하는 것을 포함하여, 다양한 이러한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그것의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신되는 RF 신호를 수신하고, 필터링, 다운컨버팅, 및 원하는 주파수 대역으로의 재차 필터링에 의해 주파수 선택을 수행한다. 다양한 실시예들은 전술한 (및 다른) 요소들의 순서를 재배열하고, 이 요소들의 일부를 제거하고, 및/또는 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은, 예를 들어, 증폭기들과 아날로그-투-디지털 변환기를 삽입하는 것과 같이 기존 요소들 사이 내에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단말기들은 USB 및/또는 HDMI 접속들을 통해 다른 전자 디바이스들에 시스템(1000)을 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 양태들, 예를 들어, 리드-솔로몬(Reed-Solomon) 오류 정정이, 예를 들어, 필요에 따라 별도의 입력 처리 IC 내에서 또는 프로세서(1010) 내에서 구현될 수 있다는 것을 이해해야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 양태들은 필요에 따라 별도의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 구현될 수 있다. 복조된, 오류 정정된, 및 디멀티플렉싱된 스트림은, 예를 들어, 프로세서(1010), 및 출력 디바이스 상의 프리젠테이션을 위해 필요한 대로 데이터 스트림을 처리하기 위해 메모리 및 저장 요소들과 조합하여 동작하는 인코더/디코더(1030)를 포함하여 다양한 처리 요소들에 제공된다.
시스템(1000)의 다양한 요소들은 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소들은 적절한 접속 배열(1140), 예를 들어, IC 간(I2C) 버스, 배선, 및 인쇄 회로 기판을 포함한, 본 기술 분야에 공지된 내부 버스를 이용하여 인터커넥트되고 이들 사이에서 데이터를 송신할 수 있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는 통신 채널(1060)을 통해 데이터를 송신하고 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 한정되는 것은 아니다. 통신 인터페이스(1050)는 모뎀 또는 네트워크 카드를 포함할 수 있지만, 이에 한정되지는 않으며, 통신 채널(1060)은 예를 들어, 유선 및/또는 무선 매체 내에 구현될 수 있다.
다양한 실시예들에서, Wi-Fi 네트워크, 예를 들어, IEEE 802.11(IEEE는 Institute of Electrical and Electronics Engineers를 지칭함)과 같은 무선 네트워크를 사용하여 데이터가 시스템(1000)에 스트리밍되거나 또는 다른 방식으로 제공된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들을 위해 적응되는 통신 채널(1060) 및 통신 인터페이스(1050)를 통해 수신된다. 이러한 실시예들의 통신 채널(1060)은 스트리밍 애플리케이션들 및 다른 OTT(over-the-top) 통신들을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 통상적으로 접속된다. 다른 실시예들은 입력 블록(1130)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 위에 언급한 바와 같이, 다양한 실시예들은 비-스트리밍 방식으로 데이터를 제공한다. 추가적으로, 다양한 실시예들은 Wi-Fi 이외의 무선 네트워크들, 예를 들어, 셀룰러 네트워크 또는 블루투스 네트워크를 사용한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110), 및 다른 주변기기 디바이스들(1120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예들의 디스플레이(1100)는, 예를 들어, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 곡면 디스플레이, 및/또는 폴더블 디스플레이 중 하나 이상을 포함한다. 디스플레이(1100)는 텔레비전, 태블릿, 랩톱, 휴대폰(mobile phone), 또는 다른 디바이스를 위한 것일 수 있다. 디스플레이(1100)는 (예를 들어, 스마트폰에서와 같이) 다른 컴포넌트들과 통합되거나, 별개일 수 있다(예를 들어, 랩톱에 대한 외부 모니터). 다른 주변기기 디바이스들(1120)은, 실시예들의 다양한 예들에서, 독립형 디지털 비디오 디스크(또는 디지털 다기능 디스크)(DVR, 양자 모두에 대해), 디스크 플레이어, 스테레오 시스템, 및/또는 조명 시스템 중 하나 이상을 포함한다. 다양한 실시예들은 시스템(1000)의 출력에 기초하여 기능을 제공하는 하나 이상의 주변기기 디바이스(1120)를 사용한다. 예를 들어, 디스크 플레이어는 시스템(1000)의 출력을 재생하는 기능을 수행한다.
다양한 실시예에서, 제어 신호들은 AV.Link, CEC(Consumer Electronics Control), 또는 사용자 개입을 이용하거나 이용하지 않고 디바이스-투-디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 이용하여 시스템(1000)과 디스플레이(1100), 스피커들(1110), 또는 다른 주변기기 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(1070, 1080, 및 1090)을 통한 전용 접속들을 통해 시스템(1000)에 통신가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 사용하여 시스템(1000)에 접속될 수 있다. 디스플레이(1100) 및 스피커들(1110)은, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(1000)의 다른 컴포넌트들과 함께 단일 유닛에 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(1100) 및 스피커(1110)는 대안적으로, 예를 들어, 입력(1130)의 RF 부분이 별도의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상으로부터 분리될 수 있다. 디스플레이(1100) 및 스피커들(1110)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다.
실시예들은 프로세서(1010)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어 및 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로에 의해 구현될 수 있다. 메모리(1020)는 기술적 환경에 적절한 임의의 타입의 것일 수 있고, 비제한적 예들로서, 광학적 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정식 메모리, 및 이동식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(1010)는 기술적 환경에 적절한 임의의 타입의 것일 수 있고, 비제한적 예들로서 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티 코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다.
다양한 구현들은 디코딩을 수반한다. 본 출원에서 사용되는 "디코딩"은 디스플레이에 적합한 최종 출력을 생성하기 위해, 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 통상적으로 수행되는 프로세스들, 예를 들어, 엔트로피 디코딩, 역 양자화, 역 변환, 및 디퍼렌셜 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 예를 들어, 크로마 블록의 크기에 및 크로마 블록의 적어도 하나의 샘플과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 크로마 블록에 대해 교차 성분 의존 도구가 사용될 수 있게 하는, 본 출원에서 설명된 다양한 구현들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 디퍼렌셜 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩 및 디퍼렌셜 디코딩의 조합을 지칭한다. "디코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하도록 의도되는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현들은 인코딩을 수반한다. "디코딩"에 관한 위의 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은 인코딩된 비트스트림을 생성하기 위해, 예를 들어, 입력 비디오 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 인코더에 의해 통상적으로 수행되는 프로세스들, 예를 들어, 파티셔닝, 디퍼렌셜 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 이러한 프로세스들은 또한, 또는 대안적으로, 예를 들어, 상기 크로마 블록의 크기에 및 크로마 블록의 적어도 하나의 샘플과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 교차 성분 의존 도구가 크로마 블록에 대해 사용될 수 있게 하는, 본 출원에서 설명된 다양한 구현들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가의 예들로서, 하나의 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭하고, 다른 실시예에서 "인코딩"은 디퍼렌셜 인코딩만을 지칭하며, 다른 실시예에서 "인코딩"은 디퍼렌셜 인코딩 및 엔트로피 인코딩의 조합을 지칭한다. "인코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하도록 의도되는지 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 여겨진다.
본 명세서에서 사용되는 신택스 요소들, 예를 들어, 크로마 스케일링 인자의 인덱스는 설명적 용어들이라는 점에 유의한다. 이와 같이, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것이 이해되어야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 대응하는 방법/프로세스의 흐름도를 또한 제공한다는 것이 이해되어야 한다.
다양한 실시예들은 레이트 왜곡 최적화를 언급한다. 특히, 인코딩 프로세스 동안, 계산 복잡도의 제약이 종종 주어지면, 레이트와 왜곡 사이의 균형 또는 절충이 보통은 고려된다. 레이트 왜곡 최적화는 보통은 레이트와 왜곡의 가중 합인 레이트 왜곡 함수를 최소화하는 것으로 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법들이 있다. 예를 들어, 이 접근법들은, 코딩 및 디코딩 이후에 재구성된 신호의 그 코딩 비용 및 관련 왜곡의 완전한 평가와 함께, 모든 고려된 모드들 또는 코딩 파라미터 값들을 포함하는, 모든 인코딩 옵션들의 광범위한 테스트에 기초할 수 있다. 인코딩 복잡성을 피하기 위해, 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산을 사용하여 더 빠른 접근법들이 또한 사용될 수 있다. 이들 2개의 접근법의 혼합은 또한, 예컨대, 가능한 인코딩 옵션들 중 일부에 대해서만 근사화된 왜곡, 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 사용함으로써 사용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기법들 중 임의의 기법을 사용하지만, 최적화가 반드시 코딩 비용 및 관련 왜곡 둘 다의 완전한 평가인 것은 아니다.
본 명세서에서 설명되는 구현들 및 양태들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 구현 형태의 맥락에서만 논의되더라도(예를 들어, 방법으로서만 논의되더라도), 논의되는 특징들의 구현은 다른 형태들(예를 들어, 장치 또는 프로그램)로 또한 구현될 수 있다. 장치는 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 일반적으로 처리 디바이스들을 지칭하는, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래머블 논리 디바이스를 포함하는 프로세서로 구현될 수 있다. 프로세서들은 또한 예를 들어, 컴퓨터들, 휴대폰들, 휴대용/개인 정보 단말기들(portable/personal digital assistants)("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은, 통신 디바이스들을 포함한다.
"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현" 뿐만 아니라 그의 다른 변형들에 대한 언급은, 실시예와 관련하여 설명된 특정한 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 등장하는 구문 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서" 뿐만 아니라 임의의 다른 변형들의 등장은 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
또한, 본 출원은 다양한 정보 피스들을 "결정"하는 것을 지칭할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 정보를 메모리로부터 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보 피스들에 "액세스"하는 것을 지칭할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보 피스들을 "수신"하는 것을 지칭할 수 있다. 수신하는 것은, "액세스하는 것"에서와 같이 광의의 용어로 의도된다. 정보의 수신은 예를 들어, 정보의 액세스 또는 (예로서, 메모리로부터의) 정보의 검색 중 하나 이상을 포함할 수 있다. 또한, "수신"은 통상적으로 예를 들어, 정보의 저장, 정보의 처리, 정보의 송신, 정보의 이동, 정보의 복사, 정보의 소거, 정보의 계산, 정보의 결정, 정보의 예측 또는 정보의 추정과 같은 동작들 동안에 어떻게든 수반된다.
예를 들어, "A/B", "A 및/또는 B(A and/or B)" 및 "A 및 B 중 적어도 하나(at least one of A and B)"의 경우들에서, 이상의 "/", "및/또는(and/or)", 및 "~ 중 적어도 하나(at least one of)" 중 임의의 것의 사용은, 처음 열거된 옵션 (A) 만을 선택함, 또는 2번째로 열거된 옵션 (B) 만을 선택함, 또는 옵션들 둘 다 (A 및 B)를 선택함을 포괄하려는 의도임을 알 것이다. 추가 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우들에서, 이러한 어구는 첫번째로 열거된 옵션 (A)만의 선택, 또는 두번째로 열거된 옵션 (B)만의 선택, 또는 세번째로 열거된 옵션 (C)만의 선택, 또는 첫번째와 두번째로 열거된 옵션들 (A 및 B)만의 선택, 또는 첫번째와 세번째로 열거된 옵션들 (A 및 C)만의 선택, 또는 두번째와 세번째로 열거된 옵션들 (B 및 C)만의 선택, 또는 3개의 옵션 (A 및 B 및 C) 전부의 선택을 포괄하려고 의도된다. 이는 본 기술분야 및 관련 기술분야의 통상의 기술자에게 명백한 바와 같이 열거된 많은 아이템들에 대해 확장될 수 있다.
또한, 본 명세서에 이용된 바와 같이, 단어 "신호"는 다른 것들 중에서도, 대응하는 디코더에게 무언가를 나타내는 것을 지칭한다. 예를 들어, 특정 실시예들에서, 인코더는 크로마 스케일링 인자 인덱스 중 특정한 하나를 시그널링한다. 이러한 방식으로, 실시예에서, 인코더 측 및 디코더 측 둘 다에서 동일한 파라미터가 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신(명시적 시그널링)할 수 있다. 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 것들을 갖는 경우, 단순히 디코더가 특정 파라미터를 알고 선택하는 것을 허용하기 위해 송신(암시적 시그널링) 없이 시그널링이 사용될 수 있다. 임의의 실제 기능들의 송신을 회피함으로써, 다양한 실시예들에서 비트 절약이 실현된다. 시그널링은 다양한 방식들로 달성될 수 있다는 것을 알아야 한다. 예를 들어, 다양한 실시예들에서, 하나 이상의 신택스 요소, 플래그 등이 정보를 대응하는 디코더에 시그널링하는데 이용된다. 전술한 것은 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 명사로서도 본 명세서에서 사용될 수 있다.
본 기술분야의 통상의 기술자에게 분명한 바와 같이, 구현들은, 예를 들어, 저장 또는 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호가 설명된 실시예의 비트스트림을 운반하기 위해 포맷팅될 수 있다. 이러한 신호는 예를 들어, (예컨대, 스펙트럼의 무선 주파수 부분을 사용하여) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하는 것과 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 것으로서 각종의 상이한 유선 또는 무선 링크를 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.
다수의 실시예를 설명한다. 이러한 실시예들의 특징들은 다양한 청구항 카테고리들 및 타입들에 걸쳐 단독으로 또는 임의의 조합으로 제공될 수 있다. 게다가, 실시예들은 다양한 청구항 카테고리들 및 타입들에 걸쳐, 하기의 특징들, 디바이스들, 또는 양태들 중 하나 이상을, 단독으로 또는 임의의 조합으로 포함할 수 있다:
● 크로마 블록의 크기에, 및 가능하게는 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 교차 성분 의존 도구를 인에이블한다.
● 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의되는 단일 크로마 직사각형 영역 내부에 크로마 블록이 있는 경우에 교차 성분 의존 도구를 인에이블한다;
● 적어도 하나의 공동 위치된 루마 블록이 제1 크로마 직사각형 영역과 공동 위치된 루마 직사각형 영역 내부에 있는 경우에 교차 성분 의존 도구를 인에이블하는데, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의된다;
● 설명된 신택스 요소들, 또는 그의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호.
● 설명된 실시예들 중 임의의 것에 따라 생성된 정보를 전달하는 신택스를 포함하는 비트스트림 또는 신호.
● 인코더에 의해 사용되는 것에 대응하는 방식으로 디코더가 교차 성분 의존 도구를 인에이블/디스에이블할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
● 설명된 신택스 요소들, 또는 그의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성 및/또는 송신 및/또는 수신 및/또는 디코딩하는 것.
● 설명되는 실시예들 중 임의의 것에 따른 생성 및/또는 송신 및/또는 수신 및/또는 디코딩하는 것.
● 설명된 실시예들 중 임의의 것에 따른 방법, 프로세스, 장치, 명령어들을 저장하는 매체, 데이터 또는 신호를 저장하는 매체.
● 설명된 실시예들 중 임의의 것에 따른 교차 성분 의존 도구를 인에이블/디스에이블하는 것을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
● 설명된 실시예들 중 임의의 것에 따른 교차 성분 의존 도구를 인에이블/디스에이블하는 것을 수행하고, 결과적인 이미지를 (예를 들어, 모니터, 스크린, 또는 다른 타입의 디스플레이를 사용하여) 디스플레이하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
● 인코딩된 이미지를 포함하는 신호를 수신하기 위한 채널을 (예를 들어, 튜너를 이용하여) 선택하고, 설명된 실시예들 중 임의의 것에 따라 교차 성분 의존 도구를 인에이블/디스에이블하는 것을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
● 인코딩된 이미지를 포함하는 신호를 OTA(over the air)로 (예를 들어, 안테나를 사용하여) 수신하고, 설명된 실시예들 중 임의의 것에 따라 교차 성분 의존 도구를 인에이블/디스에이블하는 것을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
또한, 실시예들은 다양한 청구항 카테고리들 및 타입들에 걸쳐, 단독으로 또는 임의의 조합으로, 다음의 특징들, 디바이스들, 또는 양태들 중 하나 이상을 포함할 수 있다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 다음을 포함하는 디코딩 방법이 제시된다:
- 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 단계;
- 상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 디코딩하는 단계.
적어도 하나의 실시예의 일반적인 양태에 따르면, 하나 이상의 프로세서를 포함하는 디코딩 장치가 제시되는데, 하나 이상의 프로세서는:
- 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 것; 및
- 상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 디코딩하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 다음을 포함하는 인코딩 방법이 제시된다:
- 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 단계;
- 상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 인코딩하는 단계.
적어도 하나의 실시예의 일반적인 양태에 따르면, 하나 이상의 프로세서를 포함하는 인코딩 장치가 제시되며, 하나 이상의 프로세서는:
- 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 것; 및
- 상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 인코딩하는 것을 수행하도록 구성된다.
본 실시예들 중 하나 이상은 또한 전술한 방법들 중 임의의 것의 적어도 일부에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법 및 장치를 제공한다. 하나 이상의 실시예는 또한 전술한 방법들 중 임의의 것의 적어도 일부를 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
일 실시예에서, 상기 교차 성분 의존 도구는 루마 의존적 크로마 잔차 스케일링이다.
일 실시예에서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
- 아래의 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것:
● 크로마 블록이 단일 크로마 직사각형 영역 내부에 있고, 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
● 크로마 블록과 공동 위치된 적어도 하나의 루마 블록이 상기 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
- 그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함한다.
일 실시예에서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
- 아래의 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것:
● 크로마 블록이 단일 크로마 직사각형 영역 내부에 있고, 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
● 상기 크로마 블록과 공동 위치된 모든 루마 블록들이 상기 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
- 그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함한다.
일 실시예에서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
- 크로마 블록과 공동 위치된 적어도 하나의 루마 블록이 제1 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있는 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것 - 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의되고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨 -; 및
- 그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함한다.
일 실시예에서, 상기 루마 의존적 크로마 잔차 스케일링이 디스에이블되는 경우, 크로마 스케일링 인자로부터의 또는 상기 크로마 블록에 이웃하는 적어도 하나의 디코딩된 (제각기 인코딩된) 크로마 블록과 연관된 크로마 스케일링 인자를 식별하는 인덱스로부터의 예측에 의해 상기 크로마 블록에 대해 스케일링 인자가 결정된다.
일 실시예에서, 상기 루마 의존적 크로마 잔차 스케일링이 디스에이블되는 경우, 델타 양자화 파라미터가 상기 크로마 블록에 대한 비트스트림으로부터 디코딩된다(제각기 비트스트림으로 인코딩된다).
또 다른 실시예에서, 교차 성분 의존 도구는 교차 성분 선형 모델 예측이다.

Claims (20)

  1. 디코딩 방법으로서:
    크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 단계;
    상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 디코딩하는 단계를 포함하는 방법.
  2. 하나 이상의 프로세서를 포함하는 디코딩 장치로서, 상기 하나 이상의 프로세서는:
    크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 것; 및
    상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 디코딩하는 것을 수행하도록 구성되는 장치.
  3. 제1항의 방법 또는 제2항의 장치에 있어서, 상기 교차 성분 의존 도구는 루마 의존적 크로마 잔차 스케일링인 방법 또는 장치.
  4. 제3항의 방법 또는 제3항의 장치에 있어서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
    아래의 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것:
    상기 크로마 블록이 단일 크로마 직사각형 영역 내부에 있고, 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록은 상기 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함하는 방법 또는 장치.
  5. 제3항의 방법 또는 제3항의 장치에 있어서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
    아래의 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것:
    상기 크로마 블록이 단일 크로마 직사각형 영역 내부에 있고, 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    상기 크로마 블록과 공동 위치된 모든 루마 블록들은 상기 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함하는 방법 또는 장치.
  6. 제3항의 방법 또는 제3항의 장치에 있어서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
    상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록이 제1 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있는 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것 - 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의되고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨 -; 및
    그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함하는 방법 또는 장치.
  7. 제3항 내지 제6항 중 어느 한 항의 방법 또는 제3항 내지 제6항 중 어느 한 항의 장치에 있어서, 상기 루마 의존적 크로마 잔차 스케일링이 디스에이블되는 경우, 크로마 스케일링 인자로부터의 또는 상기 크로마 블록에 이웃하는 적어도 하나의 디코딩된 크로마 블록과 연관된 크로마 스케일링 인자를 식별하는 인덱스로부터의 예측에 의해 상기 크로마 블록에 대한 스케일링 인자가 결정되는 방법 또는 장치.
  8. 제3항 내지 제6항 중 어느 한 항의 방법 또는 제3항 내지 제6항 중 어느 한 항의 장치에 있어서,
    상기 크로마 블록에서의 주어진 샘플 위치의 상기 픽처에서의 위치를 결정하는 것(800),
    상기 크로마 블록에서의 위치와 공동 위치된 상기 루마 샘플을 포함하는 루마 블록인 공동 위치된 루마 블록을 결정하는 것(801),
    상기 공동 위치된 루마 블록의 이웃 루마 샘플들을 결정하는 것(802),
    상기 결정된 이웃 루마 샘플들로부터 루마 값을 결정하는 것(803),
    상기 결정된 루마 값에 기초하여 스케일링 인자를 결정하는 것(804), 및
    상기 스케일링 인자에 따라 상기 크로마 블록 잔차의 스케일링을 적용하는 것(805)을 추가로 포함하는 방법 또는 장치.
  9. 제1항 및 제4항 내지 제7항 중 어느 한 항의 방법 또는 제2항 및 제4항 내지 제7항 중 어느 한 항의 장치에 있어서, 상기 교차 성분 의존 도구는 교차 성분 선형 모델 예측인 방법 또는 장치.
  10. 인코딩 방법으로서:
    크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 단계;
    상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 인코딩하는 단계를 포함하는 방법.
  11. 하나 이상의 프로세서를 포함하는 인코딩 장치로서, 상기 하나 이상의 프로세서는:
    크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 교차 성분 의존 도구가 사용되도록 인에이블하는 것; 및
    상기 교차 성분 의존 도구의 상기 인에이블에 응답하여 상기 크로마 블록을 인코딩하는 것을 수행하도록 구성되는 장치.
  12. 제9항의 방법 또는 제10항의 장치에 있어서, 상기 교차 성분 의존 도구는 루마 의존적 크로마 잔차 스케일링인 방법 또는 장치.
  13. 제11항의 방법 또는 제11항의 장치에 있어서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
    아래의 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것:
    상기 크로마 블록이 단일 크로마 직사각형 영역 내부에 있고, 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    상기 크로마 블록과 공동 위치된 상기 적어도 하나의 루마 블록은 상기 크로마 직사각형 영역과 공동 위치된 루마 직사각형 영역 내부에 있고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함하는 방법 또는 장치.
  14. 제11항의 방법 또는 제11항의 장치에 있어서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
    아래의 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것;
    상기 크로마 블록이 단일 크로마 직사각형 영역 내부에 있고, 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    상기 크로마 블록과 공동 위치된 모든 루마 블록들은 상기 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨; 및
    그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함하는 방법 또는 장치.
  15. 제11항의 방법 또는 제11항의 장치에 있어서, 크로마 블록의 크기에 및 상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록의 크기에 응답하여 픽처의 상기 크로마 블록에 대해 상기 루마 의존적 크로마 잔차 스케일링이 사용되도록 인에이블하는 것은:
    상기 크로마 블록과 공동 위치된 적어도 하나의 루마 블록이 제1 크로마 직사각형 영역과 공동 위치된 단일 루마 직사각형 영역 내부에 있는 경우에 상기 루마 의존적 크로마 잔차 스케일링을 인에이블하는 것 - 상기 크로마 직사각형 영역은 상기 픽처의 크로마 성분을 비중첩 직사각형 영역들로 파티셔닝함으로써 정의되고, 상기 루마 직사각형 영역은 상기 픽처의 루마를 비중첩 직사각형 영역들로 파티셔닝함으로써 정의됨 -; 및
    그렇지 않으면 상기 루마 의존적 크로마 잔차 스케일링을 디스에이블하는 것을 포함하는 방법 또는 장치.
  16. 제12항 내지 제15항 중 어느 한 항의 방법 또는 제12항 내지 제15항 중 어느 한 항의 장치에 있어서, 상기 루마 의존적 크로마 잔차 스케일링이 디스에이블되는 경우, 크로마 스케일링 인자로부터의 또는 상기 크로마 블록에 이웃하는 적어도 하나의 인코딩된 크로마 블록과 연관된 크로마 스케일링 인자를 식별하는 인덱스로부터의 예측에 의해 상기 크로마 블록에 대한 스케일링 인자가 결정되는 방법 또는 장치.
  17. 제12항 내지 제15항 중 어느 한 항의 방법 또는 제12항 내지 제15항 중 어느 한 항의 장치에 있어서,
    상기 크로마 블록에서의 주어진 샘플 위치의 상기 픽처에서의 위치를 결정하는 것(800),
    상기 크로마 블록에서의 위치와 공동 위치된 루마 샘플을 포함하는 루마 블록인 공동 위치된 루마 블록을 결정하는 것(801),
    상기 공동 위치된 루마 블록의 이웃 루마 샘플들을 결정하는 것(802),
    상기 결정된 이웃 루마 샘플들로부터 루마 값을 결정하는 것(803),
    상기 결정된 루마 값에 기초하여 스케일링 인자를 결정하는 것(804), 및
    상기 스케일링 인자에 따라 상기 크로마 블록 잔차의 스케일링을 적용하는 것(805)을 추가로 포함하는 방법 또는 장치.
  18. 제10항 및 제13항 내지 제16항 중 어느 한 항의 방법 또는 제11항 및 제13항 내지 제16항 중 어느 한 항의 장치에 있어서, 상기 교차 성분 의존 도구는 교차 성분 선형 모델 예측인 방법 또는 장치.
  19. 하나 이상의 프로세서에 의해 실행될 때 제1항 내지 제18항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품.
  20. 하나 이상의 프로세서에 의해 실행될 때 제1항 내지 제18항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독가능 매체.
KR1020217027168A 2019-02-28 2020-02-25 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스 KR20210130153A (ko)

Applications Claiming Priority (19)

Application Number Priority Date Filing Date Title
EP19305236.2 2019-02-28
EP19305236.2A EP3703366A1 (en) 2019-02-28 2019-02-28 Method and device for picture encoding and decoding
EP19305281.8 2019-03-11
EP19305281 2019-03-11
EP19305326 2019-03-18
EP19305326.1 2019-03-18
EP19305373 2019-03-25
EP19305373.3 2019-03-25
EP19305465.7 2019-04-10
EP19305465 2019-04-10
EP19305591 2019-05-09
EP19305591.0 2019-05-09
EP19305633.0 2019-05-17
EP19305633 2019-05-17
EP19305684 2019-05-29
EP19305684.3 2019-05-29
EP19305904 2019-07-02
EP19305904.5 2019-07-02
PCT/US2020/019626 WO2020176459A1 (en) 2019-02-28 2020-02-25 Method and device for picture encoding and decoding

Publications (1)

Publication Number Publication Date
KR20210130153A true KR20210130153A (ko) 2021-10-29

Family

ID=69941495

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217027168A KR20210130153A (ko) 2019-02-28 2020-02-25 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스

Country Status (7)

Country Link
US (1) US11991373B2 (ko)
EP (1) EP3932063A1 (ko)
JP (2) JP7350074B2 (ko)
KR (1) KR20210130153A (ko)
CN (1) CN113545056A (ko)
BR (1) BR112021013611A2 (ko)
WO (1) WO2020176459A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113273217A (zh) * 2019-02-03 2021-08-17 北京字节跳动网络技术有限公司 非对称四叉树分割
CN113545064B (zh) 2019-03-04 2024-05-10 阿里巴巴集团控股有限公司 用于处理视频内容的方法和装置及计算机可读存储介质
EP3918800A4 (en) 2019-03-08 2022-07-06 Beijing Bytedance Network Technology Co., Ltd. SIGNALING TRANSFORMATION INFORMATION IN VIDEO PROCESSING
EP3935834A4 (en) * 2019-04-18 2022-08-17 Beijing Bytedance Network Technology Co., Ltd. LIMITATION ON THE APPLICABILITY OF A CROSS COMPONENT MODE
MX2021012674A (es) 2019-04-23 2021-11-12 Beijing Bytedance Network Tech Co Ltd Metodos para la reduccion de dependencia de componentes cruzados.
JP7407206B2 (ja) * 2019-05-08 2023-12-28 北京字節跳動網絡技術有限公司 クロスコンポーネントコーディングの適用条件
US11102483B2 (en) 2019-05-17 2021-08-24 Panasonic Intellectual Property Corporation Of America System and method for video coding
JP7418478B2 (ja) 2019-06-22 2024-01-19 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのためのシンタックス要素
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
JP7479456B2 (ja) 2019-09-20 2024-05-08 北京字節跳動網絡技術有限公司 ビデオ・データ処理方法及び装置並びに記憶媒体及び方法
CN117121481A (zh) * 2021-03-17 2023-11-24 抖音视界有限公司 单独树编解码限制
WO2024002675A1 (en) * 2022-06-30 2024-01-04 Interdigital Ce Patent Holdings, Sas Simplification for cross-component intra prediction
CN115834897B (zh) * 2023-01-28 2023-07-25 深圳传音控股股份有限公司 处理方法、处理设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9693070B2 (en) 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
GB2508339A (en) * 2012-11-22 2014-06-04 Sony Corp Manipulation of transform coefficient blocks in high-efficiency video coding (HEVC)
US9648330B2 (en) * 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
US9294766B2 (en) * 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
US10397607B2 (en) * 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
US10200700B2 (en) * 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
EP3192261A1 (en) * 2014-09-12 2017-07-19 VID SCALE, Inc. Inter-component de-correlation for video coding
US10455249B2 (en) 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
WO2017083553A1 (en) * 2015-11-10 2017-05-18 Vid Scale, Inc. Systems and methods for coding in super-block based video coding framework
US10567759B2 (en) * 2016-03-21 2020-02-18 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
RU2710667C1 (ru) * 2016-05-28 2019-12-30 МедиаТек Инк. Способ и устройство привязки к текущему изображению для кодирования видео
US10477240B2 (en) * 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
EP3386198A1 (en) * 2017-04-07 2018-10-10 Thomson Licensing Method and device for predictive picture encoding and decoding
AU2019222715B2 (en) 2018-02-14 2021-09-16 Dolby Laboratories Licensing Corporation Image reshaping in video coding using rate distortion optimization
US10609402B2 (en) 2018-05-02 2020-03-31 Tencent America LLC Method and apparatus for prediction and transform for small blocks

Also Published As

Publication number Publication date
CN113545056A (zh) 2021-10-22
US11991373B2 (en) 2024-05-21
JP2023175772A (ja) 2023-12-12
EP3932063A1 (en) 2022-01-05
BR112021013611A2 (pt) 2021-09-14
JP7350074B2 (ja) 2023-09-25
WO2020176459A1 (en) 2020-09-03
JP2022532277A (ja) 2022-07-14
US20230300351A1 (en) 2023-09-21

Similar Documents

Publication Publication Date Title
JP7350074B2 (ja) ピクチャの符号化及び復号のための方法及び装置
CN113228650B (zh) 基于块的表面的视频编码或解码的量化
KR20210007987A (ko) 쿼드트리-이진 트리에 대한 블록 형상 적응적 인트라 예측 방향들
CN112956192A (zh) 多参考行帧内预测和最可能的模式
US20220329839A1 (en) Video decoding method and video decoder
CN112352427B (zh) 基于图像块的非对称二元分区的视频编码和解码的方法和装置
EP3703366A1 (en) Method and device for picture encoding and decoding
KR20210099017A (ko) 코딩 도구 조합 및 제한의 관리
WO2020254335A1 (en) Lossless mode for versatile video coding
KR20210066823A (ko) 광각 인트라 예측을 위한 방향들
EP3641311A1 (en) Encoding and decoding methods and apparatus
KR20220035108A (ko) 행렬 기반 인트라 예측을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
US20220038704A1 (en) Method and apparatus for determining chroma quantization parameters when using separate coding trees for luma and chroma
RU2789112C1 (ru) Способ и устройство для кодирования и декодирования изображений
CN114930819A (zh) 三角形合并模式中的子块合并候选
WO2024066320A1 (en) Encoding/decoding video picture data
US20230232045A1 (en) Scaling process for joint chroma coded blocks
US20230232003A1 (en) Single-index quantization matrix design for video encoding and decoding
EP3994883A1 (en) Chroma format dependent quantization matrices for video encoding and decoding
KR20230174244A (ko) Abt를 위한 vvc 규범적 및 인코더 측 적응들
CN114073093A (zh) 三角形分割的合并索引的信令通知
KR20210074388A (ko) 코딩 유형 또는 코딩 트리 유형의 시그널링을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR20230162634A (ko) 비디오 인코딩 및 디코딩을 위한 템플릿 매칭 예측
CN117501692A (zh) 用于视频编码和解码的模板匹配预测
CN118233634A (zh) 基于块的表面的视频编码或解码的量化