KR20230174244A - Abt를 위한 vvc 규범적 및 인코더 측 적응들 - Google Patents

Abt를 위한 vvc 규범적 및 인코더 측 적응들 Download PDF

Info

Publication number
KR20230174244A
KR20230174244A KR1020237039666A KR20237039666A KR20230174244A KR 20230174244 A KR20230174244 A KR 20230174244A KR 1020237039666 A KR1020237039666 A KR 1020237039666A KR 20237039666 A KR20237039666 A KR 20237039666A KR 20230174244 A KR20230174244 A KR 20230174244A
Authority
KR
South Korea
Prior art keywords
coding unit
size
parent
tree
mode
Prior art date
Application number
KR1020237039666A
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 KR20230174244A publication Critical patent/KR20230174244A/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/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
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)

Abstract

ABT 분할의 일부 시리즈는, 허용되는 분할 시리즈의 수를 제한하되 그 허용되는 분할 시리즈의 양과 압축 효율 간의 절충을 개선하는 방식으로 제한하기 위해 규범적으로 금지된다. 특히, 허용되는 분할 시리즈의 측면에서의 조합 감소에 의해, 최상의 블록 파티셔닝을 위한 레이트 왜곡 검색에서의 인코더 측 복잡성이 감소되게 된다. 규범적 분할 제한은, 수평 또는 수직 비대칭 분할과 그 다음의 수직 또는 수평 비대칭 분할을 연속적으로 사용할 때, 고려되는 두 분할의 연속에 의해, 폭 및 높이에서 부모 블록의 크기의 3/4인 입력 블록의 하위영역이 분리되게 되는 것을 제공한다. 추가 실시예들은 변환 크기, 블록 크기, 및 슬라이스의 시간 계층 및 슬라이스 유형에 대한 허용되는 분할들을 조건화한다.

Description

ABT를 위한 VVC 규범적 및 인코더 측 적응들
본 실시예들 중 적어도 하나는 일반적으로, 비디오 인코딩 또는 디코딩, 압축 또는 압축해제를 위한 방법 또는 장치에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 통상적으로 모션 벡터 예측을 포함한 예측과, 비디오 콘텐츠에서 공간적 및 시간적 중복성(redundancy)을 활용하기 위한 변환을 을 채용한다. 일반적으로, 화면내(intra) 또는 화면간(inter) 예측을 사용하여 화면내 또는 화면간 프레임 상관관계를 활용하고, 이어서, 종종 예측 오류들 또는 예측 잔차들로 표시되는, 원래의 이미지와 예측 이미지 사이의 차이들이 변환되고, 양자화되고, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축 데이터는 엔트로피 코딩, 양자화, 변환, 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다.
본 실시예들 중 적어도 하나는 일반적으로 비디오 인코딩 또는 디코딩을 위한 방법 또는 장치에 관한 것으로, 보다 구체적으로는, VVC(Versatile Video Coding 또는 H.266)에서와 같이, 코딩 툴들에 기초하여 하위블록과의 비대칭 이진 트리(asymmetric binary tree)들을 사용하기 위한 방법 또는 장치에 관한 것이다.
제1 태양에 따르면, 방법이 제공된다. 본 방법은, 부모 코딩 단위를 인코딩하기 위한 분할 모드를 결정하는 단계; 부모 코딩 단위의 하위블록의 인덱스를 결정하는 단계; 부모 코딩 단위에 대한 분할 모드 및 부모 코딩 단위의 하위블록의 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하는 단계; 및 허용되는 분할 모드를 사용하여 부모 코딩 단위를 인코딩하는 단계를 포함한다.
제2 태양에 따르면, 방법이 제공된다. 본 방법은, 부모 코딩 단위를 디코딩하기 위한 분할 모드를 결정하는 단계; 부모 코딩 단위의 하위블록의 인덱스를 결정하는 단계; 부모 코딩 단위에 대한 분할 모드 및 부모 코딩 단위의 하위블록의 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하는 단계; 및 허용되는 분할 모드를 사용하여 부모 코딩 단위를 디코딩하는 단계를 포함한다.
다른 태양에 따르면, 장치가 제공된다. 본 장치는 프로세서를 포함한다. 프로세서는 전술된 방법들 중 임의의 것을 실행함으로써 비디오의 블록을 인코딩하거나 비트스트림을 디코딩하도록 구성될 수 있다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 디코딩 실시예들 중 임의의 것에 따른 장치; 및 (i) 신호를 수신하도록 구성된 안테나 - 신호는 비디오 블록을 포함함 -, (ii) 비디오 블록을 포함하는 수신된 신호를 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 또는 (iii) 비디오 블록을 나타내는 출력을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형례들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독 가능 매체가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형례들 중 임의의 것에 따라 생성된 비디오 데이터를 포함하는 신호가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형례들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하도록 비트스트림이 포맷화된다.
적어도 하나의 실시예의 다른 대체적인 태양에 따르면, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금, 기술된 디코딩 실시예들 또는 변형례들 중 임의의 것을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
일반적인 태양들의 이들 및 다른 태양들, 특징들 및 이점들은 첨부된 도면들과 관련하여 읽힐 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 압축 HEVC(High Efficiency Video Coding) 픽처를 나타내는 코딩 트리 단위(CTU: Coding Tree Unit) 및 코딩 트리 개념들을 도시한다.
도 2는 코딩 단위(CU: Coding Unit)들, 예측 단위(PU: Prediction Unit)들 및 변환 단위(TU: Transform Unit)들로의 코딩 트리 단위의 예시적인 구획(division)을 도시한다.
도 3은 예측 단위들로의 코딩 단위들의 파티셔닝을 도시한다.
도 4는 사중 트리 플러스 이진 트리(QTBT: Quad-Tree Plus Binary-Tree) CTU 표현의 예를 도시한다.
도 5는 수평(좌) 및 수직(우) 삼중 트리 코딩 단위(Triple Tree Coding Unit) 분할 모드를 도시한다.
도 6은 본 설명에서 고려되는 비디오 코딩 스킴에서 지원되는 모든 코딩 단위 분할 모드들의 세트를 도시한다.
도 7은 ABT(Asymmetric Binary Tree) 코딩 툴에 의해 도입된 추가적인 CU 이진 비대칭 분할 모드들을 도시한다.
도 8은 수평 및 수직 삼중 트리 분할 모드를 포함하여, 가능한 CU 분할 모드들의 확장된 세트를 도시한다.
도 9는 CTU들의 사중 트리 분해 및 사중 트리에 내장된 이진 트리 분해를 포함하여, 예시적인 픽처를 인코딩하기 위해 선택된 코딩 구조들의 예를 도시한다.
도 10은 표준의 포괄적 비디오 압축 스킴을 도시한다.
도 11은 표준의 포괄적 비디오 압축해제 스킴을 도시한다.
도 12는 비대칭 이진 트리와 대칭 이진 트리 간의 중복들을 회피하기 위한 제한을 예시한다.
도 13은 JVET-J0022에 기술된 바와 같은 허용 및 비허용된 분할들의 시리즈를 예시한다.
도 14는 본 실시예에 따른 허용 및 비허용된 비대칭 분할들의 시리즈를 예시한다.
도 15는 본 실시예에 따른 허용 및 비허용된 분할 모드들의 도출을 예시한다.
도 16은 고려된 슬라이스/픽처에서 허용 및 비허용된 변환 크기들에 기초하여 일부 ABT 분할을 허용하지 않는 제안된 프로세스를 예시한다.
도 17은 본 실시예에 따른 maxAbtSize에 기초한 비허용된 분할 모드의 도출을 예시한다.
도 18은 VPDU 제약 조건을 준수하기 위해 VVC 사양에 따른 허용된 분할(좌)과 비허용된 분할(우)을 예시한다.
도 19는 이중 트리 모드에서 코딩된 화면내 슬라이스의 경우, LMCS 크로마 스케일링 인자 계산을 위해 VVC에서 사용되는 루마 컴포넌트 템플릿을 예시한다.
도 20은 이중 트리 모드에서 코딩된 화면내 슬라이스의 경우, LMCS 크로마 스케일링 인자를 계산하는 제안된 실시예의 수정된 템플릿을 예시한다.
도 21은 이중 트리 모드의 경우, LMCS 크로마 스케일링 파라미터를 계산하는 데 사용되는 루마 템플릿의 크기를 결정하는 제안된 프로세스를 예시한다.
도 22는 TT 분할 전용의 레이트 왜곡(rate distortion) 검색의 속도를 향상시키기 위한 VVC 기준 소프트웨어에 존재하는 인코더 측 속도 향상을 예시한다.
도 23은 ABT 레이트 왜곡 검색을 위한 제안된 인코더 측 속도 향상을 예시한다.
도 24는 일반적인 기술된 태양들 하의 방법의 하나의 실시예를 예시한다.
도 25는 일반적인 기술된 태양들 하의 방법의 다른 실시예를 예시한다.
도 26은 기술된 태양들 하의 예시적인 장치를 예시한다.
도 27은 일반적인 기술된 태양들 하의 인코딩/디코딩을 위한 프로세서 기반 시스템을 예시한다.
도 28은 4-루마 샘플 수직 또는 수평 에지가 2개의 상이한 변환 단위와 중복될 수 있음을 예시한다.
도 29는 2-샘플 길이의 수직 및 수평 에지 기반의 디블로킹 필터링 프로세스를 예시한다.
본원에 기술된 실시예들은 비디오 압축 분야의 것이고, 일반적으로 비디오 압축과 비디오 인코딩 및 디코딩에 관한 것이고, 더 구체적으로 실시예들은 기존의 표준 비디오 압축 시스템들에 비해 압축 효율을 개선하는 것을 목적으로 한다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 통상적으로, 모션 벡터 예측을 포함한 예측과, 비디오 콘텐츠에서 공간적 및 시간적 중복성을 활용하기 위한 변환을 채용한다. 일반적으로, 화면내 또는 화면간 예측을 사용하여 화면내 또는 화면간 프레임 상관관계를 활용하고, 이어서, 종종 예측 오류들 또는 예측 잔차들로 표시되는, 원래의 이미지와 예측 이미지 사이의 차이들이 변환되고, 양자화되고, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축 데이터는 엔트로피 코딩, 양자화, 변환, 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다.
HEVC(High Efficiency Video Coding, ISO/IEC 23008-2, ITU-T H.265) 비디오 압축 표준에서, 픽처는 64x64, 128x128 또는 256x256의 전형적인 크기를 갖는 소위 코딩 트리 단위(CTU)들로 분할된다.
각각의 코딩 트리 단위(CTU)는 압축 도메인에서 코딩 트리로 표현된다. 이는 도 1에 도시된 바와 같이, CTU의 사중 트리 구획이며, 여기서 각각의 리프(leaf)는 코딩 단위(CU)로 불린다.
그 다음, 각각의 CU는 일부 화면내 또는 화면간 예측 파라미터들(예측 정보)을 제공받는다. 이렇게 하기 위해, 이는 하나 이상의 예측 단위(PU)들로 공간적으로 파티셔닝되며, 각각의 PU에는 일부 예측 정보가 할당된다. 각각의 예측 단위(PU)에 모션 벡터가 연관된다. 도 2에 도시된 바와 같이, 화면내 또는 화면간 코딩 모드는 CU 레벨에서 할당된다.
예측 단위(들)로의 코딩 단위의 파티셔닝은 비트스트림에서 시그널링되는 파티션 유형에 따라 행해진다. 화면내 코딩 단위의 경우, 도 3에 예시된 파티션 유형들 2Nx2N 및 NxN만이 사용된다. 이는 단지 정사각형 예측 단위들만이 화면내 코딩 단위들에 사용됨을 의미한다.
반대로, 화면간 코딩 단위들은 도 3에 도시된 모든 파티션 유형들을 사용할 수 있다.
HEVC 표준에 따르면, 코딩 단위들은 또한 변환 트리 후에, 재귀적 방식으로, 소위 변환 단위들로 분할된다. 따라서, 변환 트리는 코딩 단위의 사중 트리 구획이고, 변환 단위들은 변환 트리의 리프이다. 변환 단위는 고려되는 정사각형 공간 영역에 대응하는 각각의 픽처 컴포넌트의 정사각형 변환 블록들을 캡슐화한다. 변환 블록은 단일 컴포넌트 내의 샘플들의 정사각형 블록이며, 여기서 동일한 변환이 적용된다.
VVC의 새로운 이머징 비디오 압축 툴들은 압축 도메인에서 보다 유연한 방식으로 픽처 데이터를 나타내기 위해 압축 도메인에 코딩 트리 단위 표현을 포함한다. 코딩 트리의 이러한 유연한 표현의 이점은, 그것이 HEVC 표준의 CU/PU/TU 배열에 비해 증가된 압축 효율을 제공한다는 것이다.
사중 트리 플러스 이진 트리(QTBT) 코딩 툴은 이러한 증가된 유연성을 제공한다. 이는 코딩 단위들이 사중 트리 방식 및 이진 트리 방식 둘 모두로 분할될 수 있는 코딩 트리에 본질이 있다. 코딩 트리 단위의 이러한 코딩 트리 표현은 도 4에 예시되어 있다.
코딩 단위의 분할은 레이트 왜곡 비용이 최소인 CTU의 QTBT 표현을 결정하는 것에 본질이 있는 레이트 왜곡 최적화 절차를 통해 인코더 측에서 결정된다.
QTBT 기술에서, CU는 정사각형 또는 직사각형 형상을 갖는다. 코딩 단위의 크기는 항상 2의 거듭제곱이고, 전형적으로 4 내지 128이 된다.
코딩 단위에 대한 이러한 다양한 직사각형 형상들에 더하여, 이러한 새로운 CTU 표현은 HEVC에 비해 하기의 상이한 특성들을 갖는다.
Figure pct00001
CTU의 QTBT 분해는 2개의 스테이지로 이루어진다: 먼저 CTU는 사중 트리 방식으로 분할되고, 이어서 각각의 사중 트리 리프는 이진 방식으로 추가로 분할될 수 있다. 이는 도 4의 우측에 예시되어 있으며, 여기서 실선들은 사중 트리 분해 단계를 나타내고, 파선들은 사중 트리 리프들 내에 공간적으로 임베딩된 이진 분해를 나타낸다.
화면내 슬라이스들에서, 루마 및 크로마 블록 파티셔닝 구조는 분리되고 독립적으로 결정된다.
예측 단위들 또는 변환 단위로의 CU 파티셔닝이 더 이상 사용되지 않는다. 다시 말하면, 각각의 코딩 단위는 체계적으로 단일 예측 단위(이전의 2Nx2N 예측 단위 파티션 유형) 및 단일 변환 단위(변환 트리로의 구획 없음)로 이루어진다.
VVC 드래프트 6에서의 대부분의 코딩 단위들에 대하여, 대부분의 CU 코딩 모드들의 경우, 예측 단위들 또는 변환 단위로의 CU 파티셔닝이 더 이상 사용되지 않는다. 다시 말하면, 각각의 코딩 단위는 체계적으로 단일 예측 단위(2N x 2N 예측 단위 파티션 유형) 및 단일 변환 단위(변환 트리로의 구획 없음)로 이루어진다. 이는, VVC 드래프트 6의 4개의 특정 코딩 모드들을 제외하고, 모든 VVC 코딩 단위들에 대해 참(true)이며, 여기서 하기의 PU 또는 TU 파티셔닝이 적용된다.
o 폭 또는 높이가 64보다 큰 CU의 경우, 지원되는 최대 변환 크기와 동일한 크기의 TU로의 CU의 타일링이 수행된다. 전형적으로, 최대 변환 크기는 64와 동일할 수 있다.
o ISP(intra sub-partition) 모드에서 코딩된 화면내 CU의 경우, CU는 사용되는 ISP 모드의 유형 및 CU의 형상에 따라, 2 또는 4개의 변환 단위들로 분할된다.
o SBT(sub-block transform) 모드에서 코딩된 화면간 CU의 경우, CU는 2개의 변환 단위들로 분할되고, 생성된 TU 중 하나는 반드시 0과 동일한 잔차 데이터를 갖는다.
o TPM(Triangle Prediction Merge) 모드에서 코딩된 화면간 CU의 경우, CU는 2개의 삼각형 예측 단위로 이루어지고, 각각의 PU에는 그 자신의 모션 데이터가 할당된다.
수평 또는 수직 삼중 트리 분할 모드로 불리는 VVC(Versatile Video Coding) 비디오 압축 표준에서 채택된 추가적인 CU 분할 모드는 코딩 단위(CU)를 3개의 하위 코딩 단위들(하위 CU들)로 분할하는 것에 본질이 있고, 이때 각자의 크기들은 고려되는 공간 구획의 방향에서의 부모 CU 크기의 ¼, ½ 및 ¼과 동일하다. 이것은 도 5에 예시되어 있다.
그러한 코덱에 존재하는 CU 분할 모드들의 완전한 세트가 도 6에 도시되어 있다.
다른 개시내용에서는, 비대칭 분할 모드로 불리는 새로운 이진 분할 모드로부터 생성되는, 새로운 직사각형 형상들을 갖는 코딩 단위들을 도입하는 것이 제안된다.
이는 새로운 직사각형 CU 형상들이 추가됨을 의미한다. 이러한 새로운 형상들은 폭 및/또는 높이가 과 동일한 크기인 것에 본질이 있다. 추가로, 폭 또는 높이가 3의 크기 배수를 갖는 CU는 수평으로 또는 수직으로 이진 방식으로 추가로 분할될 수 있다.
결과적으로, 제안된 비대칭 이진 분할 모드들 중 하나, 예를 들어, HOR_UP(horizontal-up)을 통해 분할될 크기 (폭 및 높이)를 갖는 정사각형 코딩 단위는 각자의 직사각형 크기들 를 갖는 2개의 하위 코딩 단위들로 이어질 것이다.
VVC로부터의 모든 분할 모드들 및 모든 ABT(Asymmetric Binary Tree) 분할 모드들을 사용할 때, 구상된 코딩 스킴에서 지원되는 가능한 파티션들의 세트가 도 8에 주어진다. 삼중 트리는, 고려되는 배향에서, 부모 CU에 대해 크기 (1/4, 1/2, 1/4)를 갖는 3개의 하위 CU로 CU를 분할하는 것에 본질이 있다.
도 9는 인코더에 의해 선택된 코딩 단위들을 예시한다. 이 예시적인 픽처에서는 삼중 트리 및 비대칭 이진 트리 분할 모드들이 종종 사용되는 것을 볼 수 있다. 또한 이러한 추가 코딩 단위 토폴로지들이 원래 신호에 포함된 구조들 및 불연속성들과 공간적으로 정합하는 코딩 구조들을 갖는 데 도움이 된다는 점에 유의해야 한다.
기술된 실시예들은 VVC 드래프트 10 압축 시스템의 상부에 비대칭 이진 트리(ABT) 분할 모드들을 도입할 때, 일부 VVC 코딩 툴들의 일부 적응들을 제안하고 있다.
이러한 적응들은 JEM3, JVET-J0022에 포함된 코딩 스킴들에 포함되지 않았던 VTM에 포함된 코딩 툴들과 ABT의 시너지를 포함한다.
기술된 실시예들에 의해 해결된 하나의 문제는 일부 VVC 규범적 태양과 비규범적 태양을 적응시켜, 코딩된 VVC의 상부에 ABT를 도입할 때 복잡성/압축 효율 절충(trade-off)을 최적화하는 것이다.
이 설명은 규범적 태양 및 비규범적 태양을 포함한, ABT 파티셔닝 관리와 관련된 수개의 태양들을 제안하고 있다. 제안된 적응 목록은 다음을 포함한다:
- ABT 분할들의 일부 연속에 대한 규범적 또는 비규범적 제한들.
- ABT 파티셔닝에 결부된 지원되는 변환 크기들의 규범적 또는 비규범적 구성.
- ABT 분할이 허용되는 최대 블록 크기들의 사양 및 연관된 시멘틱을 지원하기 위한 증가된 신택스.
- LMCS 크로마 스케일링 파라미터 도출을 위한 적응형 규범적 규칙들.
- VVC에 비해 증가된 최대 변환 크기에 결부된 적응형 규범적 규칙들.
- 인코더 측 복잡성과 압축 효율성 간의 절충을 최적화하기 위해, 일부 ABT 분할들에 대한 평가를 우회하기 위한 인코더 측에 대한 새로운 레이트 왜곡 검색 방법.
도 10 및 도 11의 영향 받은 모드들은 다음을 포함한다: 영향 받은 인코더 모듈들은 도 10의 코딩 모듈들(102, 125, 130, 160, 170)이다. 영향 받은 디코더 모듈들은 도 11의 디코딩 모듈들(230, 235, 240, 250, 260 및 275)이다.
ABT 사용에 대한 규범적 제한들/구성들
이 부분에서는 ABT 파티셔닝을 사용할 때 복잡성과 코딩 효율 간의 절충을 더욱 개선하기 위한 실시예를 설명한다.
첫째로, JVET-J0022 기여에 기술된 바와 같이, BT(Binary Tree), TT(Ternary Tree) 및 ABT(Asymmetric Binary Tree) 분할들 간의 분할 모드들의 일부 연속들은, 고려된 픽처 영역 내의 분할들의 일부 허용된 연속과 엄격하게 동일한 블록 구획으로 이어지기 때문에, 규범적으로 금지된다. JVET-J0022에 기술된 바와 같은 분할들의 금지 및 허용 연속들은 도 12 및 도 13에 설명되어 있다.
본 실시예에서, 일부 추가적인 ABT 분할의 시리즈는 규범적으로 금지된다. 원리는 허용된 분할들의 시리즈의 양과 압축 효율 간의 절충을 개선하는 방식으로 허용된 분할들의 시리즈의 수를 제한하는 것이다. 특히, 허용되는 분할 시리즈의 측면에서의 조합 감소에 의해, 최상의 블록 파티셔닝을 위한 레이트 왜곡 검색에서의 인코더 측 복잡성이 감소되게 된다. 현재의 규범적 분할 제한의 원리는, 수평(또는 수직) 비대칭 분할과 그 다음의 수직(또는 수평) 비대칭 분할을 연속적으로 사용할 때, 고려된 두 분할의 연속은 폭 및 높이에서 부모 블록의 크기의 ¾인 입력 블록의 하위영역을 분리하는 것으로 이어진다. 이것은 도 14에 예시되어 있다. 알 수 있는 바와 같이, 부모 블록을 먼저 수평으로 분할하는 것에 의해, 또는 부모 블록을 먼저 수직으로 분할하는 것에 의해, 2개의 분리 방법이 가능하다. 제안된 실시예는 주어진 블록에서의 하위영역 분리의 측면에서 유사한 역할을 한다고 가정하여 이러한 2개의 방법 중 하나를 규범적으로 금지하는 것에 본질이 있다.
본 실시예에 따른 예시적인 금지된 분할 시리즈는 도 14에서 줄이 그어져 있다.
본 실시예에 따른 일부 ABT 분할 모드를 허용하지 않는 데 사용되는 도출 프로세스가 도 15에 도시되어 있다. 프로세스에 대한 입력은 현재 CU와 이 CU로 이어지는 관련 코딩 트리이다. 처음 두 단계는 부모 CU 분할 시, 현재 CU의 부모 CU의 분할 모드를 얻는 것과 현재 CU의 인덱스를 얻는 것에 본질이 있다. 일반적으로, 이 인덱스 는 현재 CU가 스캔 순서상 부모 CU의 제1 하위 CU인 경우에는 0이 되고, 현재 CU가 스캔 순서상 부모 CU의 제2 하위 CU인 경우에는 1이 된다. 다음 단계는 로 표기된 부모 분할 모드가 HOR_DOWN과 동일한지 그리고 가 0과 동일한지를 검사하고, 그러한 경우, 분할 모드 VER_LEFT가 현재 CU에 대해 규범적으로 금지된다. 이는 도 14의 좌측에 있는 제1 비허용 분할 모드에 대응한다.
마찬가지로, 다음 단계는 가 VER_LEFT와 동일한지 그리고 가 1과 동일한지를 검사한다. 그러한 경우에는, 분할 모드 HOR_UP이 도 14의 제2 비허용 분할에 대응하는 현재 CU에 대해 규범적으로 금지된다.
마찬가지로, 다음 단계는 가 HOR_UP과 동일한지 그리고 가 1과 동일한지를 검사한다. 그러한 경우에는, 분할 모드 VER_RIGHT가 도 14의 제3 비허용 분할에 대응하는 현재 CU에 대해 규범적으로 금지된다.
마찬가지로, 다음 단계는 가 VER_RIGHT와 동일한지 그리고 가 0과 동일한지를 검사한다. 그러한 경우에는, 분할 모드 HOR_DOWN이 도 14의 제3 비허용 분할에 대응하는 현재 CU에 대해 규범적으로 금지된다.
변형례: 인코더 측 전용, 비규범적 프로세스
전술된 본 실시예에서, 일부 ABT 분할 모드를 허용하지 않는 기술된 규칙들은 규범적이고, 즉, 인코더와 디코더 둘 모두에서 정확히 동일한 방식으로 준수된다.
변형례에서, 일부 ABT 분할들의 시리즈를 디스에이블하기 위한 전술된 규칙들은 레이트 왜곡 최적화 프로세스 동안 고려되는 분할들의 시리즈의 양을 제한하기 위해 인코더 측에만 적용될 수 있다. 이 변형례의 이점은 인코더 측 복잡성이 감소되고 디코더 측에 추가 로직을 지원할 필요가 없다는 것이다. 단점은 일부 중복 분할 정보가 비트스트림에서 시그널링되기 때문에 제1 변형례에 비해 코딩 효율이 낮다는 것이다.
변환 크기 사용에 대한 규범적 제한들/구성들
ABT 파티셔닝의 사용은 VVC의 QTBT+TT 파티셔닝 프레임워크에서 다수의 추가 변환 크기의 사용을 유도된다. 전형적으로, 추가된 변환 크기들은 형태이다. 이러한 모든 변환 크기가 지원되는 경우에는, 변환 크기 6, 12, 24, 48, 96이 허용됨을 의미한다. CTU 크기가 VVC 이후의 차세대 비디오 압축 표준에 현실적인 256으로 확장되는 경우, 변환 크기 192도 지원될 수 있다.
코덱에 이러한 모든 변환 크기를 도입하는 것의 단점은 메모리 소비 증가 외에 CTU의 최상의 파티셔닝을 위한 인코더 레이트 왜곡 검색의 조합 증가이다. 이와 같이, 압축 증가는 인코더 측 복잡성 측면에서 상당한 비용을 발생시킬 수 있다.
따라서, 본 실시예의 목표는 ABT에 의해 야기되는 압축 효율 증가와 인코더 측 복잡성 간의 절충을 개선하는 것이다.
이를 위해, 제1 변형례에 따르면, 변환 크기 96은 지원되지 않는다. 이는 수직 또는 수평 방향의 크기가 128인 직사각형 블록의 경우 해당 방향으로 ABT 분할이 허용되지 않음을 의미한다. 반대로, 블록 크기가 다른 방향에서 128보다 작은 경우에는, ABT 분할이 해당 다른 방향으로 허용될 수 있다.
또 다른 변형례에 따르면, 변환 크기, 이후 CU 크기 48은 규범적으로 금지된다. 이는 수직 또는 수평 방향의 크기가 64인 직사각형 블록의 경우 해당 방향으로 ABT 분할이 허용되지 않음을 의미한다. 반대로, 블록 크기가 다른 방향에서 64와 다른 경우에는, ABT 분할이 해당 다른 방향으로 허용될 수 있다.
또 다른 변형례에 따르면, 변환 크기, 이후 CU 크기 24는 규범적으로 금지된다. 이는 수직 또는 수평 방향의 크기가 32인 직사각형 블록의 경우 해당 방향으로 ABT 분할이 허용되지 않음을 의미한다. 반대로, 블록 크기가 다른 방향에서 32와 다른 경우에는, ABT 분할이 해당 다른 방향으로 허용될 수 있다.
또 다른 변형례에 따르면, 변환 크기, 이후 CU 크기 12는 규범적으로 금지된다. 이는 수직 또는 수평 방향의 크기가 16인 직사각형 블록의 경우 해당 방향으로 ABT 분할이 허용되지 않음을 의미한다. 반대로, 블록 크기가 다른 방향에서 16과 다른 경우에는, ABT 분할이 해당 다른 방향으로 허용될 수 있다.
이 실시예에 따른 분할 모드를 허용하지 않는 프로세스는 도 16에 도시되어 있다.
또 다른 실시예에 따르면, 일부 ABT 변환 블록 크기의 활성화/비활성화는 일부 상위 레벨 신택스 요소들로 규범적으로 구성될 수 있다.
예를 들어, 블록 크기 12, 24, 48, 96의 활성화/비활성화는 SPS(Sequence Parameter Set)에서 시그널링될 수 있다. 이는 전형적으로 각 블록 크기 12, 24, 48 및 96과 연관된 플래그 형태를 취할 수 있다.
또 다른 변형례에 따르면, ABT 블록 크기들의 활성화/비활성화는 코딩된 비트스트림에 포함된 각 시간 계층마다 규범적으로 구성된다. 이는 각 시간 계층마다 각 변환 크기의 사용을 표시하는 플래그들의 시리즈 형태를 취할 수 있다. 그런 다음, 슬라이스 또는 픽처의 코딩 또는 디코딩 동안, 인코더 또는 디코더는 슬라이스 또는 픽처가 속하는 시간 계층에 기초하여, 고려된 슬라이스 또는 픽처에 어떤 변환 크기가 허용되는지를 알고 있다.
또 다른 변형례에 따르면, ABT 블록 크기들의 활성화/비활성화는 코딩된 비트 스트림에 포함된 각 슬라이스 유형(화면내 슬라이스, B 슬라이스)마다 규범적으로 구성된다. 이는 각 슬라이스 유형마다 각 변환 크기의 사용을 표시하는 플래그들의 시리즈 형태를 취할 수 있다.
변형례: 인코더 측 전용, 비규범적 프로세스
전술한 바와 같은 본 실시예에서, 선택적으로 코딩/디코딩되는 슬라이스의 시간 계층에 기초하여, 또는 슬라이스 유형에 기초하여, 지원되는 변환 크기들에 따라 일부 ABT 분할 모드를 허용하지 않는 기술된 규칙들은 규범적이고, 즉, 인코더와 디코더 둘 모두에서 정확히 동일한 방식으로 준수된다.
변형례에서, 현재 블록 폭 또는 높이, 시간 계층 또는 슬라이스 유형에 따라 지원되는 변환 크기들 및 일부 ABT 분할 모드의 관련 디스에이블링을 구성하기 위한 전술한 규칙들은 레이트 왜곡 최적화 프로세스 동안 고려된 분할들의 시리즈의 양을 제한하기 위해 인코더 측에만 적용될 수 있다. 이 변형례의 이점은 인코더 측 복잡성이 감소되고 디코더 측에 추가 로직을 지원할 필요가 없다는 것이다. 단점은 일부 중복 분할 정보가 비트스트림에서 시그널링되기 때문에 제1 변형례에 비해 코딩 효율이 낮다는 것이다.
또 다른 실시예: 최대 ABT 크기 코딩 파라미터
또 다른 실시예에 따르면, VVC 신택스 요소들 sps_log2_diff_max_bt_min_qt_intra_slice_luma 및 sps_log2_diff_max_tt_min_qt_intra_slice_luma와 유사한 ABT 파티셔닝 전용의 신택스 요소는, 이중 트리가 고려된 비트스트림에 사용될 때, 화면내 슬라이스의 루마 컴포넌트에서 ABT 파티셔닝의 사용을 규범적으로 구성하도록 도입된다. 이는 신택스 요소 sps_log2_diff_max_tt_min_qt_intra_slice_luma 다음에 시그널링되는 신택스 요소 sps_log2_diff_max_abt_min_qt_intra_slice_luma의 형태를 취한다.
여기서 MinQtLog2SizeY는 사중 트리 분할로부터 얻어질 수 있는 최소 CU 크기의 log2이다. 마찬가지로, 신택스 요소들 sps_log2_diff_max_abt_min_qt_intra_slice_chroma 및 sps_log2_diff_max_abt_min_qt_inter_slice.
수정된 SPS 신택스가 표 1에 나타나 있다:
[표 1]
또한, VVC에서 지정하는 픽처 헤더에서 시그널링하는 최대 이진 트리(BT) 크기 및 최대 삼진 트리(TT) 크기와 마찬가지로, 다음의 신택스 요소들이 픽처 헤더 신택스에 추가될 수 있다.
- ph_log2_diff_max_tt_min_qt_intra_slice_luma
- ph_log2_diff_max_abt_min_qt_intra_slice_chroma
- ph_log2_diff_max_tt_min_qt_inter_slice
BT 및 TT 최대 크기 관련 신택스 요소들과 동일한 방식으로, 이들 3개의 신택스 요소는 비트스트림에 존재하지 않는 경우 각각의 SPS 레벨 대응 요소와 동일한 것으로 추론된다.
이렇게 수정된 그림 헤더 신택스 구조가 표 2에 나타나 있다.
[표 2]
결과로서, 이중 트리로 코딩된 화면내 픽처의 루마 컴포넌트, 이중 트리로 코딩된 화면내 픽처의 크로마 컴포넌트의 최대 ABT 크기들
MaxAbtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_abt_min_qt_intra_slice_luma)
MaxAbtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_abt_min_qt_intra_slice_chroma)
화면간 픽처에서, 최대 ABT 크기는 다음과 같이 도출된다.
MaxAbtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_abt_min_qt_inter_slice)
MaxAbtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_abt_min_qt_inter_slice)
시맨틱 측면에서, BT 또는 TT의 경우와 마찬가지로, 최대 ABT 크기는 ABT 분할이 허용되는 폭 또는 높이의 최대 CU 크기로 정의된다. 이는 CU 폭 또는 CU 높이가 최대 ABT 크기보다 높은 경우 CU에서 ABT 분할이 허용되지 않음을 의미한다.
또 다른 실시예: 최대 ABT 크기의 수정된 사양
또 다른 변형례에 따르면, 최대 ABT 크기 파라미터들의 시맨틱은 다음과 같이 정의된다.
현재 CU가 이중 트리로 코딩된 슬라이스의 크로마 컴포넌트에 속하는 경우MaxAbtSize를 MaxAbtSizeC로 정의되고, 그렇지 않은 경우 MaxAbtSizeY와 동일하게 정의된다.
현재 CU의 폭이 MaxAbtSize보다 높은 경우에는, 임의의 수직 ABT 분할이 허용되지 않는다. 현재 CU의 높이가 MaxAbtSize보다 높은 경우에는, 임의의 수평 ABT 분할이 허용되지 않는다.
maxAbtSize 파라미터의 함수로서 수직 또는 수평 ABT 분할을 규범적으로 허용하지 않는 제안된 프로세스가 도 17에 도시되어 있다.
LMCS 파라미터 도출을 위한 규범적 규칙
VVC 비디오 코딩 표준은 픽처의 디코딩이 64x64 루마 샘플 블록 기반으로 진행될 수 있도록 설계되며, 즉, 64x64 루마 영역에 포함된 모든 샘플 및 대응하는 32x32 크로마 영역에 포함된 샘플들이 픽처의 다음 64x64/32x32 루마/크로마 영역을 디코딩하기 시작하기 전에 완전히 재구성될 수 있다. 이러한 64x64/32x32 루마/크로마 영역을 VPDU(Virtual Pipeline Decoding Unit)라고 칭한다. 그 결과, VVC 아키텍처를 설계하기 위해 고려된 규칙들은 다음 2개이다:
- CU가 적어도 하나의 VPDU를 포함하는 경우에는, 하나 또는 수개의 전체 VPDU를 포함해야 한다.
- VPDU가 적어도 하나의 CU를 포함하는 경우에는, 하나 또는 수개의 전체 CU를 포함해야 한다.
즉, CU는 VPDU에 전체적으로 포함되거나 전체 VPDU(들)를 포함한다. 동일한 방식으로, VPDU는 CU에 전체적으로 포함되거나 하나 이상의 전체 CU를 포함한다.
이러한 규칙들은 도 18에 예시된 바와 같이 허용 및 비허용된 분할 모드들에 대한 일부 제약을 유발한다. 기본적으로, BT 분할들은 128x64 및 64x128 크기의 블록들에서 규범적으로 금지된다. 또한, TT 분할들은 128x128, 128x64 및 64x128 크기의 블록들에서 규범적으로 금지된다.
본 개시내용의 실시예에서, maxABTSize 파라미터는 압축 효율 이유로 64x64보다 큰 값으로 설정된다. 마찬가지로, maxBTSize 및 maxTTSize 파라미터는 64x64보다 큰 값으로 설정되어, VVC의 64x64/32x32 VPDU 개념을 깨뜨린다.
실제로, VVC에서, LMCS(Luma Mapping with Chroma Scaling)와 같은 일부 코딩 툴은 VPDU 기반으로, 즉 64x64 루마 영역 기반으로 진행된다. LMCS는 블록의 루마 샘플들을 재성형하는 것에 본질이 있다. 즉, LMCS는 소위 루마 룩업 테이블을 통해 샘플들 각각에 대해 단조 성장 함수를 적용한다. 또한 현재 CU 주위의 템플릿 영역 내의 재구성된 루마 샘플들로부터 도출된 곱셈 인수(multiplicative factor)를 통해 크로마 컴포넌트 샘플들을 리스케일링한다. VVC에서, 분리된 루마 및 크로마 코딩 트리들로 코딩된 슬라이스(이중 트리 모드라고 칭함)의 경우, 이 템플릿은 현재 CU가 속한 VPDU(즉, 64x64 루마 영역) 주위의 좌상단 재구성된 루마 샘플들의 세트로 설정된다.
그러나, 최대 BT 크기, 최대 TT 크기 및 가능하게는 최대 ABT 크기가 64보다 큰 값으로 설정될 수 있으므로, 크로마 스케일링 인자를 계산하기 위한 이 VPDU 기반 루마 템플릿은 더 이상 유효하지 않을 수 있다.
그 결과, LMCS 크로마 스케일링 인자 도출의 적응이 필요하다. 이를 위해, 평균 재구성 루마가 계산되는 템플릿 영역은 현재 CU가 속한 128x128 루마 영역 주위의 좌상단 샘플인 것에 본질이 있을 수 있다.
그러나, 최대 변환 크기가 128(일반적으로 64)보다 작고 최대 TT 및 ABT 크기가 최대 64인 경우에는, 크로마 스케일링 인자가 계산되는 루마 블록 영역은 64x64와 동일하게 유지될 수 있다.
또한, 압축 효율과 복잡성 간의 양호한 절충을 달성하기 위해서는, 특히 저해상도 비디오 콘텐츠의 경우 64 이하의 최대 BT, TT 및 ABT 크기를 사용하는 것이 중요할 수 있다. 이 경우, LMCS 크로마 스케일링 파라미터를 계산하기 위해 고려되는 영역 크기는 128x128이 아닌 64x64로 설정될 수 있다.
그 결과, 이 실시예에서 제안된 프로세스는 최대 변환 블록 크기, 최대 ABT 크기 및 최대 TT 크기 파라미터들의 함수로서 LMCS에서 고려되는 VPDU 크기를 동적으로 변경하는 것에 본질이 있다.
128로 확장된 최대 변환 크기와 관련된 규범적 규칙들
이 부분에서는, 코딩 효율과 인코더 측 복잡성 간의 절충을 최적화하기 위한 일부 규범적 실시예가 제안된다.
이 부분에서 제안된 실시예들의 원리는, 고해상도 시퀀스들의 경우, VVC 표준에 의해 지원되는 최대 변환 크기인 64보다 큰 변환 블록 크기들을 허용하는 것이 도움이 된다는 것이다. 그러나, 저해상도 콘텐츠의 경우, 큰 블록 크기들을 위한 지원은 불필요한 추가적인 인코더 복잡성을 유발할 수 있다. 저해상도 시퀀스들의 경우, 코딩 효율과 인코더 측 복잡성 간의 더 나은 절충이 제한된 최대 블록 크기를 유지함으로써 얻어질 수 있다는 것이 관찰되었다.
특히, VVC에서는, 이전에 이미 제시한 VPDU 개념 때문에, 분리된 루마/크로마 코딩 트리들이 사용되는 화면내 슬라이스들에서, VVC에서 128x128 CTU가 분할되는 경우에는, 사중 트리 분할이 루마와 크로마 컴포넌트 둘 모두에 체계적으로 적용된다. 이는 루마 및 크로마 코딩 트리가 64x64/32x32 루마/크로마 블록 영역들에 대응하는 사중 트리 깊이 레벨을 갖는 사중 트리 노드들에 대응하는 코딩 트리 노드들로부터만 분리됨을 의미한다. 이 규범적 규칙을 제거하는 것은 인코더에 CTU의 더 자유롭게 분할을 제공하지만, 이러한 증가된 자유도는 저해상도 비디오 콘텐츠에 대한 코딩 효율의 매우 제한된 증가에 의해 더 높은 인코더 복잡성을 유발하는 것이 관찰되었다.
그 결과, 예를 들어 사중 트리 노드 크기 파라미터를 통해, 구성될 수 있는 사중 트리 노드 크기에서 조인트 루마/크로마 코딩 트리로부터 이중 코딩 트리로 전환하는 것이 실시예에서 제안된다.
특정 실시예에서, 최대 변환 블록 크기는 코딩 트리가 조인트 루마/크로마 트리로부터 분리된 루마/크로마 코딩 트리로 전환하고 있는 사중 트리 노드 크기를 결정하는 데 사용된다. 따라서 이 실시예는 표 3에 나타낸 바와 같이 VVC 표준 사양과 비교하여 수정된 dual_tree_implicit_qt_split 신택스 구조를 포함한다.
[표 3]
또한, 64보다 큰 최대 변환 크기의 도입은 다음에 열거되는 VVC 사양의 또 다른 규범적 수정을 유발할 수도 있다.
- 화면간 코딩된 CU를 2개의 TU로 분할하는 것에 본질이 있는 SBT(sub-block Transform) 코딩 툴과 관련하여, SBT가 허용되는 최대 CU 크기는 폭과 높이의 최대 변환 크기로 고정된다. 이 실시예에서는, 최대 SBT CU 크기를 min(64,maxTbSize)로 고정하는 것이 제안된다. 즉, 그 크기는 최대 변환 크기 값이 무엇이든 간에 최대 64이어야 한다. 이것의 이점은 폭 또는 높이가 64보다 엄격하게 큰 CU에 SBT 툴을 사용할 수 있게 함으로써 낮은 압축 효율 증가를 기대할 수 있다는 것이다. 본 실시예에 따른 코딩 단위 신택스 구조에 적용된 수정은 표 4에 음영 처리되어 나타나 있다.
[표 4]
VVC 사양에 대한 또 다른 규범적 수정에 따르면, SPS 레벨 플래그는 코딩된 비트스트림에 사용되는 최대 변환 크기를 표시한다. VVC 사양에서, SPS 플래그는 최대 변환 크기가 64 또는 32인 경우를 표시한다. 여기서, 이 플래그를 최대 변환 크기가 128 또는 64과 동일한 경우를 표시하는 플래그로 변경하는 것이 제안된다. SPS 신택스 테이블에 적용된 수정들은 표 5에 나타나 있다.
[표 5]
마지막으로, 화면내 코딩 단위들에 대한 매트릭스 기반 화면내 예측(MIP)의 허용 또는 디스에이블링과 관련된 VVC 사양에 대한 최종 수정.
VVC에서, MIP는 최대 변환 크기에 관계없이 64x64 블록 크기까지 허용된다. 본 실시예에서는, 최대 변환 크기까지 MIP를 허용하는 것이 제안된다. 이는 MIP가 최대 블록 크기 128x128까지 허용될 수 있음을 의미한다.
SBT 모드로 코딩된 비이원(non-dyadic) CU들과 관련된 규범적 프로세스
실시예에 따르면, 12와 동일한 크기를 가질 수 있는 비대칭 분할로부터 발행된 코딩 단위는 위에서 도입된 SBT(Sub-Block Transform) 모드로 코딩될 수 있다.
이러한 경우, CU의 SBT 파티셔닝으로 기인한 TU들은 폭 또는 높이에서 6개의 루마 샘플과 동일한 크기, 또는 폭 또는 높이에서 3개의 루마 샘플과 동일한 크기를 가질 수 있다.
이러한 TU 크기를 적절하게 지원하기 위해, VVC의 디블로킹 필터링 프로세스가 적응된다. 실제로, VVC에서는 디블로킹 필터링 프로세스가 4x4 블록 기반으로 진행된다. 4개의 루마 샘플 길이의 각 수직 및 수평 잠재 블록 경계에 대해서는, 고려되는 수직 또는 수평 잠재 블록 에지에서 디블로킹 필터링 프로세스를 적용할지 여부가 결정된다.
이를 위해, 고려되는 에지가 2개의 코딩된 블록(CU 또는 TU) 사이의 경계에 있는지 여부가 검사되고, 그러한 경우, 다양한 코딩 파라미터에 따라 디블록 필터의 강도가 결정된다. 이러한 코딩 파라미터들은 2개의 블록 각각의 각 QP(quantization parameter), 2개의 이웃 블록의 코딩 모드(화면내, 화면간), 및 가능하게는 2개의 이웃 블록의 모션 벡터일 수 있다.
루마 컴포넌트의 크기 6의 변환 단위들에 대하여, 4-루마 샘플 에지 기반으로 달성된 VVC 디블로킹 프로세스는 더 이상 적용되지 않는데, 이는 4-루마 샘플 수직 또는 수평 에지가 2개의 상이한 TU와 중첩할 수 있기 때문이다. 이것은 도 28에 예시되어 있다.
크기 6인 TU들의 경우에 이러한 부적절한 디블로킹 필터링 문제를 해결하기 위해, 2-샘플 길이 수직 및 수평 에지 기반으로 디블로킹 필터링 프로세스를 달성하는 것이 제안된다. 이러한 수정된 디블로킹 필터링 프로세스는 도 29에 예시되어 있다. 그 결과, 새로 제안된 디블로킹 프로세스는 픽처에서의 각 2-샘플 길이 수직 및 수평 에지 상에 루프를 달성하므로, 4의 배수와는 다른 크기, 예를 들어 6을 갖는 TU의 에지들은 디블로킹 필터 단계에 의해 적절하게 처리된다.
또한, 변형례에서는, 크기 12를 갖는 CU를 분할 비율(1/4, ¾)을 갖는 TU로 SBT 분할하는 것이 규범적으로 허용될 수 있다. 이러한 경우, 이는 크기 3을 갖는 코딩된 TU를 발생시킬 수 있다. 이러한 경우, 디블로킹 필터링 프로세스는 2-샘플 길이 에지들이 아닌 1-샘플 길이 수직 및 수평 에지들에 적용될 수 있다.
ABT에 대한 인코더 측 고속 레이트 왜곡 검색 방법들
제1 인코더 측 속도 향상 제안
이 부분에서는 ABT 파티셔닝에 대한 고속 레이트 왜곡 결정을 목표로 하는 또 다른 실시예들을 설명했다.
먼저, 실시예에 따르면, 코드에 대한 원래 블록에서 측정된 일부 공간적 활동에 따라 수직 ABT 후보 분할 모드들 또는 수평 ABT 후보 분할 모드들의 레이트 왜곡 평가가 우회될 수 있다.
이를 위해, 다음의 수평, 수직, 하향 및 상향 활동이 다음과 같이 원래 블록들에서 계산된다:
-
-
-
-
은 고려되는 코딩 단위에서 공간 위치 에서의 원래 샘플 값을 나타내고, 는 화면내 기간이 1과 다른 경우는 1이고 그렇지 않은 경우에는 1.2와 동일한 상수 값이다.
VVC 기준 소프트웨어에서는, 다음 조건이 참인 경우, 인코더 측 레이트 왜곡 검색에서 수평 BT 및 TT 분할 모드는 우회된다:
본 실시예에 따르면, 상기 조건이 참인 경우, 인코더 측 레이트 왜곡 검색에서 2개의 수평 ABT 분할 모드(HOR_UP 및 HOR_DOWN)도 우회된다.
또한, VVC 기준 소프트웨어에서는, 다음 조건이 참인 경우, 인코더 측 레이트 왜곡 검색에서 수평 BT 및 TT 분할 모드는 우회된다:
본 실시예에 따르면, 상기 조건이 참인 경우, 인코더 측 레이트 왜곡 검색에서 2개의 수직 ABT 분할 모드(VER_UP 및 VER_DOWN)도 우회된다.
제2 인코더 측 속도 향상 제안
VVC 기준 소프트웨어에서는, 인코더 속도 향상 방법이 다음과 같이 진행되는 수평 TT 분할과 수직 TT 분할의 레이트 왜곡 평가를 우회하는 데 사용된다.
현재 CU가 크기(폭 및 높이)로 처리되는 경우, 다음이 적용된다.
수평 BT 분할이 바로 평가되었고 레이트 왜곡 검색이 제1 하위 CU 또는 최종 하위 CU가 보다 낮은 높이를 갖는 현재 CU의 구획으로 이어지는 경우 및 현재 CU의 현재 다중 유형 트리 깊이가 과 동일한 경우에는, 수평 TT 분할은 레이트 왜곡 검색에 의해 평가되지 않는다. 여기서, 는 현재 코딩 트리에 대한 최대 허용된 다중 유형 트리 깊이이다.
마찬가지로, 수직 BT 분할이 바로 평가되었고 레이트 왜곡 검색이 제1 하위 CU 또는 최종 하위 CU가 보다 낮은 폭을 갖는 현재 CU의 블록 구획으로 이어지는 경우 및 현재 CU의 현재 다중 유형 트리 깊이가 (maxMtDepth-1)과 동일한 경우에는, 수식 TT 분할은 레이트 왜곡 검색에 의해 평가되지 않는다.
본 실시예에서, 상기 방법은 다음과 같이 ABT 분할에 적응된다. 그의 원리는 도 23에 나타나 있다.
수평 BT 또는 TT 분할이 바로 평가되었고 레이트 왜곡 검색이 제1 하위 CU가 보다 낮은 높이를 갖는 현재 CU의 구획으로 이어지는 경우 및 현재 CU의 현재 다중 유형 트리 깊이가 과 동일한 경우에는, ABT 분할 모드 HOR_DOWN 분할은 현재 CU에 대한 레이트 왜곡 검색에 의해 평가되지 않는다. 도 23의 제1 예를 참조한다.
수평 BT 또는 TT 분할이 바로 평가되었고 레이트 왜곡 검색이 최종 하위 CU가 보다 낮은 높이를 갖는 현재 CU의 구획으로 이어지는 경우 및 현재 CU의 현재 다중 유형 트리 깊이가 과 동일한 경우에는, ABT 분할 모드 HOR_UP 분할은 현재 CU에 대한 레이트 왜곡 검색에 의해 평가되지 않는다. 도 23의 제2 예를 참조한다.
수직 BT 또는 TT 분할이 바로 평가되었고 레이트 왜곡 검색이 제1 하위 CU가 보다 낮은 폭을 갖는 현재 CU의 구획으로 이어지는 경우 및 현재 CU의 현재 다중 유형 트리 깊이가 과 동일한 경우에는, ABT 분할 모드 VER_RIGHT 분할은 현재 CU에 대한 레이트 왜곡 검색에 의해 평가되지 않는다. 도 23의 제3 예를 참조한다.
수직 BT 또는 TT 분할이 바로 평가되었고 레이트 왜곡 검색이 최종 하위 CU가 보다 낮은 폭을 갖는 현재 CU의 구획으로 이어지는 경우 및 현재 CU의 현재 다중 유형 트리 깊이가 과 동일한 경우에는, ABT 분할 모드 VER_LEFT 분할은 현재 CU에 대한 레이트 왜곡 검색에 의해 평가되지 않는다. 도 23의 제4 예를 참조한다.
본 명세서에 기술된 대체적인 태양들 하의 방법(2400)의 하나의 실시예가 도 24에 도시되어 있다. 본 방법은 시작 블록 2401에서 시작되고, 제어는 부모 코딩 단위를 인코딩하기 위한 분할 모드를 결정하기 위해 블록 2410으로 진행한다. 제어는 부모 코딩 단위의 하위블록의 인덱스를 결정하기 위해 블록 2410으로부터 블록 2420으로 진행된다. 제어는 부모 코딩 단위에 대한 분할 모드 및 부모 코딩 단위의 하위블록의 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하기 위해 블록 2420으로부터 블록 2430으로 진행된다. 제어는 허용되는 분할 모드를 사용하여 부모 코딩 단위를 디코딩하기 위해 블록 2430으로부터 블록 2440으로 진행된다.
본 명세서에 기술된 대체적인 태양들 하의 방법(2500)의 하나의 실시예가 도 25에 도시되어 있다. 본 방법은 시작 블록 2501에서 시작되고, 제어는 부모 코딩 단위를 디코딩하기 위한 분할 모드를 결정하기 위해 블록 2510으로 진행한다. 제어는 부모 코딩 단위의 하위블록의 인덱스를 결정하기 위해 블록 2510으로부터 블록 2520으로 진행된다. 제어는 부모 코딩 단위에 대한 분할 모드 및 부모 코딩 단위의 하위블록의 인덱스를 포함하는 인자에 기초하여 분할 모드가 허용되는지 여부를 결정하기 위해 블록 2520에서 블록 2530으로 진행된다. 제어는 블록 2530으로부터 블록 2540으로 진행하여, 허용되는 분할 모드를 사용하여 부모 코딩 단위를 디코딩한다.
도 26은 이웃 샘플 의존적 파라미터 모델들에 기초한 코딩 모드들의 단순화를 사용하여 비디오 데이터를 인코딩, 디코딩, 압축 또는 압축해제하기 위한 장치(2600)의 하나의 실시예를 도시한다. 본 장치는 프로세서(2610)를 포함하고, 적어도 하나의 포트를 통해 메모리(2620)에 상호접속될 수 있다. 프로세서(2610) 및 메모리(2620) 둘 모두는 또한, 외부 접속부들에 대한 하나 이상의 추가적인 상호접속부들을 가질 수 있다.
프로세서(2610)는 또한, 비트스트림에 정보를 삽입하거나 그 내의 정보를 수신하도록, 그리고 기술된 태양들 중 임의의 것을 사용하여 압축, 인코딩 또는 디코딩하도록 구성된다.
본 명세서에 기술된 실시예들은 툴들, 특징들, 실시예들, 모델들, 접근법 등을 포함한 다양한 태양을 포함한다. 이러한 태양들 중 대부분이 구체적으로 기술되어 있으며, 적어도 개별적인 특성들을 나타내기 위해, 종종 제한적으로 들릴 수 있는 방식으로 기술된다. 그러나, 이는 설명의 명확성을 위한 것이며, 그들 태양들의 응용 또는 범위를 제한하지 않는다. 실제로, 상이한 모든 태양들이 조합되고 상호교환되어 추가의 태양들을 제공할 수 있다. 또한, 태양들이 조합될 수 있고, 마찬가지로 이전의 출원에 기술된 태양들과 상호교환될 수 있다.
본 출원에서 기술되고 고려되는 태양들은 많은 다양한 형태로 구현될 수 있다. 도 10, 도 11, 및 도 27은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되고, 도 10, 도 11 및 도 27의 논의는 구현예들의 외연(breadth)을 제한하지 않는다. 태양들 중 적어도 하나는 대체적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 태양은 대체적으로 생성되거나 인코딩된 비트스트림을 전송하는 것에 관한 것이다. 이들 및 다른 태양들은 기술된 방법들 중 임의의 방법에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 방법, 장치, 컴퓨터 판독 가능 저장 매체, 및/또는 기술된 방법들 중 임의의 방법에 따라 생성된 비트스트림이 저장된 컴퓨터 판독 가능 저장 매체로서 구현될 수 있다.
본 출원에서, "재구성된"및 "디코딩된"이라는 용어들은 상호교환 가능하게 사용될 수 있으며, "픽셀" 및 "샘플"이라는 용어들은 상호교환 가능하게 사용될 수 있고, "이미지", "픽처" 및 "프레임"이라는 용어들은 상호교환 가능하게 사용될 수 있다. 반드시 그렇지는 않지만, 일반적으로, "재구성된"이라는 용어는 인코더 측에서 사용되는 반면, "디코딩된"은 디코더 측에서 사용된다.
다양한 방법들이 본 명세서에 기술되고, 각각의 방법은 기술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다.
본 출원에 기술된 다양한 방법들 및 다른 태양들은, 도 10 및 도 11에 도시된 바와 같이, 비디오 인코더(100) 및 디코더(200)의 모듈들, 예를 들어, 화면내 예측, 엔트로피 코딩, 및/또는 디코딩 모듈들(160, 360, 145, 330)을 수정하는 데 사용될 수 있다. 또한, 본 태양들은 VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 기존에 존재하든 향후 개발되든, 다른 표준들 및 권고들, 및 임의의 그러한 표준들 및 권고들(VVC 및 HEVC를 포함함)의 확장들에 적용될 수 있다. 달리 나타내지 않거나, 또는 기술적으로 배제되지 않는 한, 본 출원에 기술되는 태양들은 개별적으로 또는 조합하여 사용될 수 있다.
다양한 수치 값들이 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이고, 기술된 태양들은 이러한 특정 값들로 제한되지 않는다.
도 10은 인코더(100)를 예시한다. 이러한 인코더(100)의 변형들이 고려되지만, 인코더(100)는 모든 예상된 변형들을 기술하지 않고서 명료성의 목적들을 위해 후술된다.
인코딩되기 전에, 비디오 시퀀스는, 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용하거나(예컨대, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환), 또는 (예를 들어, 컬러 컴포넌트들 중 하나의 컴포넌트의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 컴포넌트들의 재맵핑을 수행하는, 사전-인코딩 처리(101)를 거칠 수 있다. 메타데이터는 사전-처리와 연관될 수 있고, 비트스트림에 부착될 수 있다.
인코더(100)에서, 픽처는 후술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는, 예를 들어, CU들의 유닛들로 파티셔닝(102) 및 처리된다. 각각의 유닛은, 예를 들어 화면내 또는 화면간 모드를 사용하여 인코딩된다. 유닛이 화면내 모드에서 인코딩될 때, 그것은 화면내 예측(160)을 수행한다. 화면간 모드에서는, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 유닛을 인코딩하기 위해 화면내 모드 또는 화면간 모드 중 어느 것을 사용할지를 결정하고(105), 예를 들어, 예측 모드 플래그에 의해 화면내/화면간 결정을 나타낸다. 예측 잔차들은, 예를 들어, 오리지널 이미지 블록에서 예측된 블록을 감산(110)함으로써 계산된다.
이어서, 예측 잔차들은 변환되고(125) 양자화된다(130). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들이 엔트로피 코딩되어(145) 비트스트림을 출력한다. 인코더는 변환을 스킵할 수 있고, 비변환된 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 모두를 스킵할 수 있으며, 즉, 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 기준을 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(140) 역변환된다(150). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(155), 이미지 블록이 재구성된다. 인루프(in-loop) 필터들(165)이, 예를 들어, 인코딩 아티팩트들을 감소시키기 위해 디블록킹/SAO(Sample Adaptive Offset) 필터링을 수행하도록 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(180)에 저장된다.
도 11은 비디오 디코더(200)의 블록도를 예시한다. 디코더(200)에서, 비트스트림은 후술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로, 도 10에 기술된 바와 같이, 인코딩 패스에 상반되는 디코딩 패스를 수행한다. 인코더(100)는 또한 일반적으로, 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 먼저, 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 엔트로피 디코딩된다(230). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 나타낸다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(235). 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(240) 역변환된다(250). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(255), 이미지 블록이 재구성된다. 예측된 블록은 화면내 예측(260) 또는 모션 보상된 예측(즉, 화면간 예측)(275)으로부터 획득될 수 있다(270). 재구성된 이미지에 인루프 필터들(265)이 적용된다. 필터링된 이미지는 기준 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 추가로, 사후-디코딩 처리(285), 예를 들어, 역 색상 변환(예컨대, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환), 또는 사전-인코딩 처리(101)에서 수행되는 재맵핑 프로세스의 역을 수행하는 역 재맵핑을 거칠 수 있다. 사후-디코딩 처리는 사전-인코딩 처리에서 도출되고 비트스트림에서 시그널링된 메타데이터를 사용할 수 있다.
도 27은 다양한 태양들 및 실시예들이 구현되는 시스템의 일례의 블록도를 도시한다. 시스템(1000)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있으며, 본 문헌에 기술된 태양들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 다양한 전자 디바이스들, 예컨대 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 커넥티드 가전, 및 서버를 포함하지만, 이들로 제한되지 않는다. 시스템(1000)의 요소들은 단일 집적 회로(IC), 다수의 IC들, 및/또는 별개의 컴포넌트들에서, 단독으로 또는 조합되어 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 하나 이상의 다른 시스템들, 또는 다른 전자 디바이스들에 통신 가능하게 결합된다. 다양한 실시예들에서, 시스템(1000)은 본 문헌에 기술된 태양들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 본 문헌에 기술된 다양한 태양들을 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 내장된 메모리, 입력 출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예컨대, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은 전기적으로 소거 가능한 프로그래밍 가능 판독 전용 메모리(EEPROM), 판독 전용 메모리(ROM), 프로그래밍 가능 판독 전용 메모리(PROM), 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 플래시, 자기 디스크 드라이브 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스(분리 가능한 저장 디바이스 및 분리 가능하지 않은 저장 디바이스를 포함함), 및/또는 네트워크 액세스 가능한 저장 디바이스를 포함할 수 있다.
시스템(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/IEC 13818로도 지칭되고, 13818-1은 또한 H.222로도 알려져 있고, 13818-2는 또한 H.262로도 알려져 있음), HEVC(HEVC는 High Efficiency Video Coding을 지칭하고, H.265 및 MPEG-H Part 2로도 알려져 있음), 또는 VVC(Versatile Video Coding, JVET(Joint Video Experts Team)에서 개발 중인 새로운 표준)와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로 사용된다.
시스템(1000)의 요소들에 대한 입력은 블록 1130에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은 (i) 예를 들어 브로드캐스터(broadcaster)에 의해 무선으로(over the air) 전송된 무선 주파수(RF) 신호를 수신하는 무선 주파수(RF) 부분, (ii) 컴포넌트(COMP) 입력 단자(또는 COMP 입력 단자들의 세트), (iii) 범용 직렬 버스(USB) 입력 단자 및/또는 (iv) 고화질 멀티미디어 인터페이스(HDMI) 입력 단자를 포함하지만, 이들로 국한되지 않는다. 도 27에 도시되지 않은 다른 예들은 복합 비디오(composite video)를 포함한다.
다양한 실시예들에서, 블록 1130의 입력 디바이스들은 당업계에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은, (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 또는 신호를 주파수들의 대역으로 대역 제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향변환(downconvert)하는 것, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역-제한하는 것, (iv) 하향변환되고 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것에 적합한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향변환기들, 복조기들, 에러 정정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근거리 기저대역 주파수)로 또는 기저대역으로 하향변환하는 것을 포함하여 이러한 다양한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱박스 실시예에서, RF 부분 및 그의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 전송된 RF 신호를 수신하고, 그리고 필터링하고, 하향변환하고 다시 원하는 주파수 대역으로 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예는 전술한(및 다른) 요소의 순서를 재배열하고, 이들 요소 중 일부를 제거하고/하거나 유사하거나 상이한 기능을 수행하는 다른 요소를 추가한다. 요소를 추가하는 것은, 예를 들어, 증폭기 및 아날로그-디지털 변환기를 삽입하는 것과 같이, 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 시스템(1000)을 USB 및/또는 HDMI 접속부들을 통해 다른 전자 디바이스들에 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 태양들, 예를 들어, 리드-솔로몬(Reed-Solomon) 에러 정정은 필요에 따라, 예를 들어, 별개의 입력 처리 IC 내에서 또는 프로세서(1010) 내에서 구현될 수 있다는 것이 이해되어야 한다. 마찬가지로, USB 또는 HDMI 인터페이스 처리의 태양들은 필요에 따라, 별개의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 구현될 수 있다. 복조되고 에러 정정되고 역다중화된 스트림은, 출력 디바이스 상의 프레젠테이션을 위해 필요에 따라 데이터스트림을 처리하기 위해, 예를 들어, 프로세서(1010), 및 메모리 및 저장 요소들과 조합하여 동작하는 인코더/디코더(1030)를 포함한 다양한 처리 요소들에 제공된다.
시스템(1000)의 다양한 요소들이 집적 하우징 내에 제공될 수 있다. 집적 하우징 내에서, 다양한 요소들은 화면간-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)은 전형적으로, 스트리밍 응용들 및 다른 오버-더-탑 통신을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록 1130의 HDMI 접속을 통해 데이터를 전달하는 셋톱박스를 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 또 다른 실시예들은 입력 블록 1130의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 전술한 바와 같이, 다양한 실시예는 비-스트리밍 방식으로 데이터를 제공한다. 또한, 다양한 실시예는 Wi-Fi 이외의 무선 네트워크, 예를 들어 셀룰러 네트워크 또는 블루투스 네트워크를 사용한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110), 및 기타 주변 디바이스들(1120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예들의 디스플레이(1100)는, 예를 들어, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 커브드(curved) 디스플레이, 및/또는 폴더블(foldable) 디스플레이 중 하나 이상을 포함한다. 디스플레이(1100)는 텔레비전, 태블릿, 랩톱, 셀폰(모바일폰), 또는 다른 디바이스를 위한 것일 수 있다. 디스플레이(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)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티-코어 아키텍처에 기반한 프로세서들 중 하나 이상을 포괄할 수 있다.
다양한 구현예들은 디코딩을 포함한다. 본 출원에서 사용되는 바와 같이, "디코딩"은, 예를 들어, 디스플레이에 적합한 최종 출력을 생성하기 위해 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포괄할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들 중 하나 이상의 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환, 및 차동 디코딩을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에 기술된 다양한 구현예들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차동 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차동 디코딩의 조합을 지칭한다. 어구 "디코딩 프로세스"가 작동의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 일반적으로 보다 광의의 디코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현예들은 인코딩을 포함한다. "디코딩"에 관한 상기의 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은, 예를 들어, 인코딩된 비트스트림을 생성하기 위해 입력 비디오 시퀀스에 대해 수행된 프로세스들의 전부 또는 일부를 포괄할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 전형적으로 인코더에 의해 수행되는 프로세스들, 예를 들어, 파티셔닝, 차동 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에서 기술된 다양한 구현예들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들에서, 하나의 실시예에서, "인코딩"은 단지 엔트로피 인코딩을 지칭하며, 다른 실시예에서 "인코딩"은 단지 차동 인코딩을 지칭하고, 다른 실시예에서 "인코딩"은 차동 인코딩과 엔트로피 인코딩의 조합을 지칭한다. 어구 "인코딩 프로세스"가 작동의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 일반적으로 보다 광의의 인코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
본 명세서에 사용된 바와 같은 신택스 요소들은 설명적 용어들임에 유의한다. 이와 같이, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해해야 한다.
다양한 실시예들은 파라미터 모델(parametric model)들 또는 레이트 왜곡 최적화(RDO: rate distortion optimization)를 언급할 수 있다. 특히, 인코딩 프로세스 동안, 계산 복잡성의 제약이 종종 있게 되면, 레이트와 왜곡 사이의 균형 또는 절충이 일반적으로 고려된다. 그것은 레이트 왜곡 최적화(RDO) 메트릭을 통해, 또는 최소 제곱 평균(LMS: Least Mean Square), 절대 오차 평균(MAE: Mean of Absolute Error), 또는 다른 그러한 측정들을 통해 측정될 수 있다. 레이트 왜곡 최적화는 보통, 레이트 및 왜곡의 가중화된 합인 레이트 왜곡 함수를 최소화하는 것으로서 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법들이 있다. 예를 들어, 접근법들은, 코딩 및 디코딩 후 재구성된 신호의 코딩 비용 및 관련된 왜곡의 완전한 평가를 이용한, 모든 고려된 모드들 또는 코딩 파라미터들 값들을 포함하는 모든 인코딩 옵션들의 광범위한 검사에 기초할 수 있다. 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산과 함께 인코딩 복잡성을 덜기 위해, 더 빠른 접근법들이 또한 사용될 수 있다. 이들 2개의 접근법들의 혼합은 또한, 예컨대, 가능한 인코딩 옵션들 중 일부만에 대한 근사화된 왜곡 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 사용함으로써 사용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기술들 중 임의의 기술을 채용하지만, 최적화가 반드시 코딩 비용과 관련된 왜곡 둘 모두에 대한 완전한 평가이지는 않다.
본 명세서에 기술된 구현예들 및 태양들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호에서 구현될 수 있다. 구현예의 단일 형태의 맥락에서 논의된다 하더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 다른 형태들(예를 들어, 장치 또는 프로그램)에서 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은 예를 들어 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍 가능 논리 디바이스를 포함하는, 일반적으로 처리 디바이스들을 지칭하는 프로세서에서 구현될 수 있다. 프로세서는 또한, 예를 들어, 컴퓨터, 셀폰, 휴대용/개인 디지털 어시스턴트("PDA"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 기타 디바이스들과 같은 통신 디바이스를 포함한다.
"하나의 실시예" 또는 "실시예" 또는 "하나의 구현예" 또는 "구현예"뿐만 아니라 그의 다른 변형례에 대한 언급은, 실시예와 관련하여 기술된 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 나타나는 어구 "하나의 실시예에서" 또는 "실시예에서" 또는 "하나의 구현예에서" 또는 "구현예에서"뿐만 아니라 임의의 다른 변형례의 출현이 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
또한, 본 출원은 여러 가지의 정보를 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 여러 가지의 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동하는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 여러 가지의 정보를 "수신하는 것"을 지칭할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어 정보를 저장하는 동작, 정보를 처리하는 동작, 정보를 전송하는 동작, 정보를 이동하는 동작, 정보를 복사하는 동작, 정보를 소거하는 동작, 정보를 계산하는 동작, 정보를 결정하는 동작, 정보를 예측하는 동작, 또는 정보를 추정하는 동작 동안 어떤 방식으로든 포함된다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 두 옵션(A 및 B)의 선택을 포함하도록 의도됨을 이해해야 한다. 또 다른 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우에서, 이러한 어구는 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 제3 열거된 옵션(C) 단독의 선택, 또는 제1 및 제2 열거된 옵션(A 및 B) 단독의 선택, 또는 제1 및 제3 열거된 옵션(A 및 C) 단독의 선택, 또는 제2 및 제3 열거된 옵션(B 및 C) 단독의 선택, 또는 3개의 모든 옵션(A, B 및 C)의 선택을 포함하도록 의도된다. 이는, 본 명세서에 기술된 바와 같은 많은 항목에 대해, 본 명세서 및 관련 분야의 당업자에게 명백한 바와 같이 확장될 수 있다.
또한, 본 명세서에 사용된 바와 같이, 용어 "신호"는 특히 대응하는 디코더에게 무언가를 나타내는 것을 지칭한다. 예를 들어, 소정 실시예들에서, 인코더는 복수의 변환들, 코딩 모드들 또는 플래그들 중 특정한 하나를 시그널링한다. 이러한 방식으로, 일 실시예에서, 동일한 변환, 파라미터, 또는 모드는 인코더 측 및 디코더 측 둘 모두에서 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 전송할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 것들을 갖고 있다면, 단순히 디코더가 특정 파라미터를 알고 선택할 수 있게 하기 위해 전송 없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 전송을 회피함으로써, 다양한 실시예들에서 비트 절약이 실현된다. 시그널링은 다양한 방식들로 달성될 수 있다는 것이 이해되어야 한다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등이 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하는 데 사용된다. 전술된 표현이 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 또한 명사로서 본 명세서에서 사용될 수 있다.
당업자에게 명백할 바와 같이, 구현예는, 예를 들어 저장되거나 전송될 수 있는 정보를 반송하도록 포맷화된 다양한 신호를 생성할 수 있다. 예를 들어, 정보는 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 전달하도록 포맷화될 수 있다. 이러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크를 통해 전송될 수 있다. 신호는 프로세서 판독 가능 매체 상에 저장될 수 있다.
다양한 청구범위 카테고리들 및 유형들에 걸쳐서 다수의 실시예들을 기술한다. 이들 실시예의 특징은 단독으로 또는 임의의 조합으로 제공될 수 있다. 또한, 실시예들은 다양한 청구항 카테고리들 및 유형들에 걸쳐 단독으로 또는 임의의 조합으로 하기의 특징, 디바이스, 또는 태양 중 하나 이상을 포함할 수 있다:
부모 코딩 단위에 대한 분할 모드 및 부모 코딩 단위의 하위블록의 인덱스를 포함하는 팩터들에 기초하여 일부 비대칭 이진 트리 분할들을 금지하는 것.
상기 실시예에서, 분할 모드는 수평 상측, 수평 하측, 수직 좌측 및 수직 우측을 포함한다.
변환 크기, 블록 크기, 슬라이스의 시간 계층 및 슬라이스 유형을 포함하는 팩터들에 기초하여 허용된 분할들을 조건화하는 것.
비트스트림 내의 신택스에 기초하여 허용된 분할들을 조건화하는 것.
상기 실시예들 중 임의의 것에 있어서, 허용 가능한 분할들은 인코더 측에서만 구현되는 것.
상기 실시예들 중 임의의 것에 있어서, 최대 ABT 크기는 폭 또는 높이에서 최대 코딩 단위 크기로서 정의되고, 여기서 ABT 분할이 허용되는 것.
상기 실시예들 중 임의의 것에 있어서, 최대 ABT 크기 파라미터가 64x64보다 큰 값으로 설정되는 것.
상기 실시예들 중 임의의 것에 있어서, 현재의 것을 포함하는 128x128 루마 영역 주위의 좌상단 샘플인 것에 본질이 있을 수 있는, 평균 재구성 루마가 계산되는 템플릿 영역을 이용하여, 휘도 맵핑 크로마 스케일링이 수행되는 것.
상기 실시예들 중 임의의 것에 있어서, 최대 하위블록 변환 크기가 최소 64 또는 최대 변환 블록 크기로 고정되는 것.
디코더가 인코더에 의해 사용된 것에 대응하는 방식으로 디코딩 정보를 결정할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
기술된 신택스 요소들, 또는 이들의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성하고/하거나 전송하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 임의의 실시예들에 따라 변환 방법(들)을 수행하는 TV, 셋톱박스, 셀폰, 태블릿, 또는 다른 전자 디바이스.
전술된 실시예들 중 임의의 것에 따라 변환 방법(들) 결정을 수행하고 (예를 들어, 모니터, 스크린, 또는 다른 유형의 디스플레이를 사용하여) 결과적인 이미지를 디스플레이하는 TV, 셋톱박스, 셀폰, 태블릿, 또는 다른 전자 디바이스.
인코딩된 이미지를 포함하는 신호를 수신하기 위한 채널을 선택, 대역제한, 또는 (예를 들어, 튜너를 사용하여) 튜닝하고, 기술된 실시예들 중 임의의 것에 따른 변환 방법(들)을 수행하는 TV, 셋톱박스, 셀폰, 태블릿, 또는 다른 전자 디바이스.
(예를 들어, 안테나를 사용하여) 인코딩된 이미지를 포함하는 무선 신호를 수신하고, 변환 방법(들)을 수행하는 TV, 셋톱박스, 셀폰, 태블릿, 또는 다른 전자 디바이스.

Claims (15)

  1. 방법으로서,
    부모 코딩 단위를 인코딩하기 위한 분할 모드를 결정하는 단계;
    부모 코딩 단위의 하위블록의 인덱스를 결정하는 단계;
    상기 부모 코딩 단위에 대한 상기 분할 모드 및 상기 부모 코딩 단위의 상기 하위블록의 상기 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하는 단계; 및
    허용되는 분할 모드를 사용하여 상기 부모 코딩 단위를 인코딩하는 단계를 포함하는, 방법.
  2. 장치로서,
    프로세서를 포함하고, 상기 프로세서는:
    부모 코딩 단위를 인코딩하기 위한 분할 모드를 결정하는 것;
    상기 부모 코딩 단위의 하위블록의 인덱스를 결정하는 것;
    상기 부모 코딩 단위에 대한 상기 분할 모드 및 상기 부모 코딩 단위의 상기 하위블록의 상기 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하는 것; 및
    허용되는 분할 모드를 사용하여 상기 부모 코딩 단위를 인코딩하는 것을 수행하도록 구성된, 장치.
  3. 방법으로서,
    부모 코딩 단위를 디코딩하기 위한 분할 모드를 결정하는 단계;
    상기 부모 코딩 단위의 하위블록의 인덱스를 결정하는 단계;
    상기 부모 코딩 단위에 대한 상기 분할 모드 및 상기 부모 코딩 단위의 상기 하위블록의 상기 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하는 단계; 및
    허용되는 분할 모드를 사용하여 상기 부모 코딩 단위를 디코딩하는 단계를 포함하는, 방법.
  4. 장치로서,
    프로세서를 포함하고, 상기 프로세서는:
    부모 코딩 단위를 디코딩하기 위한 분할 모드를 결정하는 것;
    상기 부모 코딩 단위의 하위블록의 인덱스를 결정하는 것;
    상기 부모 코딩 단위에 대한 상기 분할 모드 및 상기 부모 코딩 단위의 상기 하위블록의 상기 인덱스를 포함하는 인자들에 기초하여 분할 모드가 허용되는지 여부를 결정하는 것; 및
    허용되는 분할 모드를 사용하여 상기 부모 코딩 단위를 디코딩하는 것을 수행하도록 구성된, 장치.
  5. 제1항 및 제3항 중 어느 한 항의 방법, 또는 제2항 및 제4항 중 어느 한 항의 장치에 있어서, 상기 인자들은 변환 크기를 더 포함하는, 방법 또는 장치.
  6. 제1항, 제3항 및 제5항 중 어느 한 항의 방법, 또는 제2항, 제4항 및 제5항 중 어느 한 항의 장치에 있어서, 상기 인자들은 신택스에서 시그널링되는 블록 크기를 더 포함하는, 방법 또는 장치.
  7. 제1항, 제3항, 제5항 및 제6항 중 어느 한 항의 방법, 또는 제2항, 제4항 내지 제6항 중 어느 한 항의 장치에 있어서, 상기 인자들은 슬라이스의 시간 계층 및 슬라이스 유형을 더 포함하는, 방법 또는 장치.
  8. 제1항, 제3항, 제5항 내지 제7항 중 어느 한 항의 방법, 또는 제2항, 제4항 내지 제7항 중 어느 한 항의 장치에 있어서, 이중 트리가 사용될 때 화면내 슬라이스의 루마 컴포넌트에서 파티셔닝의 사용을 구성하는 데 신택스가 사용되는, 방법 또는 장치.
  9. 제1항, 제3항, 제5항 내지 제8항 중 어느 한 항의 방법, 또는 제2항, 제4항 내지 제8항 중 어느 한 항의 장치에 있어서, 가상 파이프라인 디코딩 단위 크기는 최대 변환 블록 크기, 최대 비대칭 이진 트리 크기 및 최대 삼진 트리 크기에 기초하여 동적으로 변경되는, 방법 또는 장치.
  10. 제1항, 제3항, 제5항 내지 제9항 중 어느 한 항의 방법, 또는 제2항, 제4항 내지 제9항 중 어느 한 항의 장치에 있어서, 조인트 루마/크로마 코딩 트리는 구성 가능한 사중 트리 노드 크기에 대한 이중 코딩 트리로 대체되는, 방법 또는 장치.
  11. 제1항, 제3항, 제5항 내지 제10항 중 어느 한 항의 방법, 또는 제2항, 제4항 내지 제10항 중 어느 한 항의 장치에 있어서, 플래그는 최대 변환 크기가 2개의 값 중 하나인지 여부를 표시하는, 방법 또는 장치.
  12. 디바이스로서,
    제4항에 따른 장치; 및
    (i) 신호를 수신하도록 구성된 안테나 - 상기 신호는 코딩 단위를 포함함 -, (ii) 상기 코딩 단위를 포함하는 수신된 신호를 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 코딩 단위를 나타내는 출력을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는, 디바이스.
  13. 프로세서를 사용한 재생을 위해, 제1항 및 제5항 내지 제11항 중 어느 한 항의 방법에 따라 또는 제2항 및 제5항 내지 제11항 중 어느 한 항의 장치에 의해 생성된 데이터 콘텐츠를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  14. 프로세서를 사용한 재생을 위해, 제1항 및 제5항 내지 제11항 중 어느 한 항의 방법에 따라 또는 제2항 및 제5항 내지 제11항 중 어느 한 항의 장치에 의해 생성된 비디오 데이터를 포함하는, 신호.
  15. 프로그램이 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항, 제3항 및 제5항 내지 제11항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 프로그램 제품.
KR1020237039666A 2021-04-19 2022-04-07 Abt를 위한 vvc 규범적 및 인코더 측 적응들 KR20230174244A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP21305514.8 2021-04-19
EP21305514 2021-04-19
EP21306266.4 2021-09-14
EP21306266 2021-09-14
PCT/EP2022/059338 WO2022223312A1 (en) 2021-04-19 2022-04-07 Vvc normative and encoder-side adaptations for abt

Publications (1)

Publication Number Publication Date
KR20230174244A true KR20230174244A (ko) 2023-12-27

Family

ID=81580155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237039666A KR20230174244A (ko) 2021-04-19 2022-04-07 Abt를 위한 vvc 규범적 및 인코더 측 적응들

Country Status (3)

Country Link
EP (1) EP4327554A1 (ko)
KR (1) KR20230174244A (ko)
WO (1) WO2022223312A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210020915A (ko) * 2018-06-18 2021-02-24 인터디지털 브이씨 홀딩스 인코포레이티드 이미지 블록들의 비대칭 이진 파티셔닝에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치

Also Published As

Publication number Publication date
EP4327554A1 (en) 2024-02-28
WO2022223312A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
EP3932063A1 (en) Method and device for picture encoding and decoding
CN113228650B (zh) 基于块的表面的视频编码或解码的量化
KR20210020915A (ko) 이미지 블록들의 비대칭 이진 파티셔닝에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
WO2020254335A1 (en) Lossless mode for versatile video coding
WO2021058383A1 (en) Method and apparatus using homogeneous syntax with coding tools
CN112771874A (zh) 用于画面编码和解码的方法和设备
US11876968B2 (en) Method and device for picture encoding and decoding
WO2019191218A1 (en) Chroma quantization parameter adjustment in video encoding and decoding
WO2020263799A1 (en) High level syntax for controlling the transform design
WO2020185492A1 (en) Transform selection and signaling for video encoding or decoding
EP3641311A1 (en) Encoding and decoding methods and apparatus
EP4078953A1 (en) Subblock merge candidates in triangle merge mode
KR20230174244A (ko) Abt를 위한 vvc 규범적 및 인코더 측 적응들
EP3664450A1 (en) Method and device for picture encoding and decoding
CN117716689A (zh) 用于abt的vvc规范性和编码器侧适配
US20220038704A1 (en) Method and apparatus for determining chroma quantization parameters when using separate coding trees for luma and chroma
EP4193593A1 (en) Combining abt with vvc sub-block-based coding tools
WO2024002699A1 (en) Intra sub-partition improvements
TW202416714A (zh) 基於可用參考樣本之幀內預測模式改善
KR20210074388A (ko) 코딩 유형 또는 코딩 트리 유형의 시그널링을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
EP3891984A1 (en) Method and device for picture encoding and decoding
WO2021001514A1 (en) Signaling of merge indices for triangle partitions