[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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

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

Info

Publication number
KR20210096116A
KR20210096116A KR1020217016690A KR20217016690A KR20210096116A KR 20210096116 A KR20210096116 A KR 20210096116A KR 1020217016690 A KR1020217016690 A KR 1020217016690A KR 20217016690 A KR20217016690 A KR 20217016690A KR 20210096116 A KR20210096116 A KR 20210096116A
Authority
KR
South Korea
Prior art keywords
transform
split
block
vertical
transforms
Prior art date
Application number
KR1020217016690A
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 EP18306603.4A external-priority patent/EP3664450A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20210096116A publication Critical patent/KR20210096116A/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/18Methods 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 set of transform coefficients
    • 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
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

디코딩 방법이 제시된다. 블록의 변환 유닛들로의 스플릿의 타입이 먼저 디코딩된다. 이후 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대해 변환이 결정된다. 마지막으로, 상기 변환 유닛들의 디코딩된 변환 계수들이 결정된 변환들을 사용하여 역 변환된다.

Description

픽처 인코딩 및 디코딩을 위한 방법 및 디바이스
본 실시예들 중 적어도 하나는 일반적으로 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스에 관한 것으로, 보다 구체적으로는, 변환, 즉 공간 변환을 사용하는 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 방식들은 보통은 비디오 콘텐츠에서의 공간적 및 시간적 중복성을 활용하기 위한 예측 및 변환을 채택한다. 일반적으로, 인트라 또는 인터 프레임 상관을 활용하기 위해 인트라 또는 인터 예측이 사용되고, 예측 오류들 또는 예측 잔차들 또는 예측자로 종종 표시되는 원래의 이미지 블록과 예측된 이미지 블록 사이의 차이들이 변환, 양자화, 및 엔트로피 코딩된다. 인코딩 동안, 원래의 이미지 블록은 보통 쿼드-트리 파티셔닝(quad-tree partitioning)을 사용하여 서브-블록들로 파티셔닝/스플릿된다. 비디오를 재구성하기 위해, 압축된 데이터는 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들에 의해 디코딩된다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 디코딩 방법이 제시되는데, 디코딩 방법은:
- 블록의 변환 유닛들로의 스플릿의 타입을 디코딩하는 단계;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 단계; 및
- 결정된 변환들을 사용하여 상기 변환 유닛들의 디코딩된 변환 계수들을 역변환하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 하나 이상의 프로세서를 포함하는 디코딩 장치가 제시되는데, 하나 이상의 프로세서는:
- 블록의 변환 유닛들로의 스플릿의 타입을 디코딩하는 것;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 것; 및
- 결정된 변환들을 사용하여 상기 변환 유닛들의 디코딩된 변환 계수들을 역변환하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 인코딩 방법이 제시되는데, 인코딩 방법은:
- 블록의 변환 유닛들로의 스플릿의 타입을 결정하여 인코딩하는 단계;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 단계;
- 결정된 변환들을 사용하여 상기 변환 유닛들의 잔차들을 변환하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 하나 이상의 프로세서를 포함하는 인코딩 장치가 제시되는데, 하나 이상의 프로세서는:
- 블록의 변환 유닛들로의 스플릿의 타입을 결정하여 인코딩하는 것;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 것;
- 결정된 변환들을 사용하여 상기 변환 유닛들의 잔차들을 변환하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 또 다른 일반적인 양태에 따르면, 비트스트림은 전술된 인코딩 방법들에 따라 생성된 신호를 포함하도록 포맷팅된다.
본 실시예들 중 하나 이상은 또한 전술한 방법들 중 임의의 것의 적어도 일부에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법 및 장치를 제공한다. 하나 이상의 실시예는 또한 전술한 방법들 중 임의의 것의 적어도 일부를 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
도 1은 수직으로(도 1의 상부) 또는 수평으로(도 1의 하부) 변환 유닛(TU)들로 스플릿된 블록들을 묘사한다.
도 2는 다양한 쿼드 트리, 바이너리 트리 및 터너리 트리 스플릿 타입들에 따른 블록의 TU들로의 스플릿을 도시한다.
도 3은 T형 스플릿에 따른 블록의 TU들로의 스플릿을 도시한다.
도 4는 블록을 수직으로 및 수평으로 4개의 TU로 스플릿하는 것을 도시한다.
도 5는 수직으로(도 5a) 및 수평으로(도 5b) 2개의 TU로 스플릿된 블록을 묘사한다.
도 6, 도 7 및 도 8은 상보적 변환들(complementary transforms)의 상이한 경우들을 도시한다.
도 9, 도 10 및 도 11은 다양한 스플릿 타입들에 대한 변환들의 결정을 도시한다.
도 12 내지 도 14는 다양한 실시예들에 따른 디코딩 방법의 흐름도들이다.
도 15 내지 도 17, 도 19 내지 도 20, 도 23 내지 도 28 및 도 30 내지 도 33은 좌측에 변환 선택을 도시하고, 우측에 다양한 스플릿 타입에 대한 모든 TU의 2D 제1 기저 함수(basis function)를 도시한다.
도 18, 도 21 내지 도 22 및 도 29는 다양한 스플릿 타입에 대한 모든 TU들의 2D 제1 기저 함수를 도시한다.
도 34 및 도 35는 다양한 실시예들에 따른 인코딩 방법의 흐름도들이다.
도 36은 실시예에 따른 비디오 인코더의 블록도를 도시한다.
도 37은 실시예에 따른 비디오 디코더의 블록도를 도시한다.
도 38은 다양한 양태 및 실시예가 구현되는 시스템의 한 예의 블록도를 도시한다.
HEVC 코딩에서, 픽처는 전형적으로 64x64의 구성가능한 크기를 갖는 정사각형 형상의 CTU들로 파티셔닝된다. 크기는 다른 비디오 코딩 표준들에서 128x128 또는 256x256일 수 있다. CTU는 동일한 크기의 4개의 정사각형 코딩 유닛(Coding Unit, CU)으로, 즉 폭 및 높이에 있어서 부모 블록 크기의 절반 크기로 파티셔닝되는 쿼드-트리의 루트이다. 쿼드-트리는 부모 노드가 4개의 자식 노드로 스플릿될 수 있는 트리이고, 자식 노드들 각각은 4개의 자식 노드로의 또 다른 스플릿에 대한 부모 노드가 될 수 있다. HEVC에서, 코딩 블록(coding Block, CB)은 하나 이상의 예측 블록(Prediction Block, PB)으로 파티셔닝되고, 변환 블록(Transform Block, TB)들로의 쿼드트리 파티셔닝의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛들(PU들) 및 변환 유닛들(TU들)의 트리-구조화된 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하고, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다.
보다 최근의 인코딩 시스템들, 예를 들어, VVC(Versatile Video Coding)에서, CTU는 코딩 유닛들(CU)로 파티셔닝되는 코딩 트리의 루트이다. 코딩 트리는 부모 노드(보통은 블록에 대응함)가 자식 노드들로 (예를 들어, 2, 3 또는 4개의 자식 노드로) 스플릿될 수 있는 트리이고, 자식 노드들 각각은 자식 노드들로의 또 다른 스플릿에 대한 부모 노드가 될 수 있다. 쿼드-트리 스플릿 모드에 더하여, 가능한 스플릿 모드들의 총 수를 증가시키는 새로운 스플릿 모드들(바이너리 트리 대칭 스플릿 모드들, 바이너리 트리 비대칭 스플릿 모드들 및 트리플 트리 스플릿 모드들)이 또한 정의된다. 코딩 트리는 고유 루트 노드, 예를 들어, CTU를 갖는다. 코딩 트리의 리프(leaf)는 트리의 종단 노드이다. 코딩 트리의 각각의 노드는 서브-블록들로도 명명된 더 작은 블록들로 추가로 스플릿될 수 있는 블록을 나타낸다. 일단 CTU의 CU들로의 파티셔닝이 결정되면, 코딩 트리의 리프들에 대응하는 CU들이 인코딩된다. CTU의 CU들로의 파티셔닝 및 (코딩 트리의 리프에 대응하는) 각각의 CU를 인코딩하기 위해 사용되는 코딩 파라미터들은 레이트 왜곡 최적화 절차를 통해 인코더 측에서 결정될 수 있다.
본 출원에서, "블록" 또는 "픽처 블록(picture block)"이라는 용어는 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 것을 지칭하기 위해 사용될 수 있다. 그에 부가하여, "블록" 또는 "픽처 블록"이라는 용어는 H.264/AVC에서 또는 다른 비디오 코딩 표준들에서 지정된 바와 같은 매크로블록, 파티션 및 서브-블록을 지칭하기 위해 사용될 수 있고, 보다 일반적으로는 수많은 크기의 샘플들의 어레이를 지칭하기 위해 사용될 수 있다.
본 출원에서, 용어 "재구성된" 및 "디코딩된"은 상호교환가능하게 사용될 수 있고, 용어 "픽셀" 및 "샘플"은 상호교환가능하게 사용될 수 있고, 용어 "이미지", "픽처", 및 "프레임"은 상호교환가능하게 사용될 수 있다. 필수적은 아니지만 보통은, 용어 "재구성된"은 인코더 측에서 사용되는 한편, "디코딩된"은 디코더 측에서 사용된다.
HEVC에서, 예측 유닛은 잔차 쿼드 트리(residual quad tree)로 알려진 기법을 사용하여 변환 유닛으로 스플릿된다. 이러한 기법은 일부 불연속들이 존재할 때 잔차 신호 특성들을 더 양호하게 맞추기 위한 유연성을 코딩 시스템에 제공한다. 따라서, 이 도구로 상당한 비트레이트 이득이 달성될 수 있다.
VVC에서, 고전적인 DCT2 변환에 부가하여 DST7 및 DCT8이 사용된다. 따라서 전체 CU/PU는 수평으로 변환들 중 하나 및 수직으로 변환들 중 하나를 적용함으로써 변환될 수 있다.
변형에서, CU/PU는 먼저 TU들로 스플릿될 수 있고, 이어서 TU들이 변환된다. 따라서, 도 1은 수직으로(도 1의 상부) 또는 수평으로(도 1의 하부) TU들로 스플릿된 블록들(예를 들어, PU들)을 묘사한다. 이 도면에서, 블록은 수직으로 또는 수평으로 2개의 TU로만 스플릿되고, 수평 및 수직 변환들의 선택은 미리 정의된다. 따라서, 블록이 TU들로 스플릿되는 방식이 제한된다. 또한, 상이한 TU의 변환 타입을 선택하기 위한 단일 방식만이 존재한다. 예를 들어, 블록이 2개의 TU로 수직으로 스플릿되는 경우. (블록의 좌측의) 제1 TU는 제1 TU의 라인 상에 DCT-8을 적용하고 열들 상에 DST-7을 적용함으로써 변환되고, (블록의 우측의) 제2 TU는 제2 TU의 라인 상에 DST-7을 적용하고 열들 상에 DST-7을 적용함으로써 변환된다.
적어도 하나의 실시예는 다양한 스플릿 타입에 따라 블록(예를 들어, CU 또는 PU)을 복수의 TU로 스플릿하는 것을 가능하게 한다.
스플릿이 발생할 때, 인코더는 각각의 TU의 변환 타입을 선택하기 위한 여러 옵션을 갖는다. 이는 변환 타입이 각각의 TU에 대해 시그널링되어야 하기 때문에 상당한 비트 비용을 초래한다. 따라서, 적어도 하나의 실시예는 TU들의 변환 선택을 제한하는 것을 제안하는데, 즉, 몇몇 스플릿 타입이 허용되고, 고전적인 DCT2에 더하여 다양한 변환이 사용되는 경우이다.
일 실시예에서, 공간적으로 이웃하는 TU에 대해 결정된 변환에 응답하여 TU에 대해 변환이 결정된다.
도 2, 도 3 및 도 4는 블록의 TU들로의 다양한 스플릿 타입을 도시한다. 도 2는 쿼드트리(SPLIT_QT)에 따른, 바이너리 트리 수직 스플릿(SPLIT_BT_VER)에 따른, 바이너리 트리 수평 스플릿(SPLIT_BT_HOR)에 따른, 트리플 트리 수직 스플릿(SPLIT_TT_VER)에 따른 그리고 트리플 트리 수평 스플릿(SPLIT_TT_VER)에 따른 블록, 예를 들어, CU 또는 PU의 TU들로의 스플릿을 도시한다. SPLIT_BT_VER 및 SPLIT_BT_HOR의 경우, 블록은 2개의 TU로 대칭적으로 스플릿된다. SPLIT_TT_VER의 경우, 폭 W의 블록은 제각기 0.25*W, 05*W 및 0.25*W와 동일한 폭의 3개의 TU로 스플릿된다. SPLIT_TT_HOR의 경우, 높이 H의 블록은 제각기 0.25*H, 05*H 및 0.25*H와 동일한 높이의 3개의 TU로 스플릿된다.
도 3은 T형 스플릿에 따른 블록, 예를 들어, CU 또는 PU의 TU들로의 스플릿을 도시한다. SPLIT_T_TOP의 경우에, 블록은 먼저 동일한 크기의 2개의 서브-블록으로 수평으로 스플릿되고, 여기서 상부 서브-블록은 동일한 크기의 2개의 TU로 수직으로 추가로 스플릿된다. 따라서, 블록은 최종적으로 3개의 TU로 스플릿된다. 동일한 방식으로, SPLIT_T_BOTTOM의 경우에, 블록은 먼저 동일한 크기의 2개의 서브-블록으로 수평으로 스플릿되고, 여기서 하부 서브-블록은 동일한 크기의 2개의 TU로 수직으로 추가로 스플릿된다. SPLIT_T_RIGHT의 경우에, 블록은 먼저 동일한 크기의 2개의 서브-블록으로 수직으로 스플릿되고, 여기서 우측 서브-블록은 동일한 크기의 2개의 TU로 수평으로 추가로 스플릿된다. 따라서, 블록은 최종적으로 3개의 TU로 스플릿된다. 동일한 방식으로, SPLIT_T_LEFT의 경우에, 블록은 먼저 동일한 크기의 2개의 서브-블록으로 수직으로 스플릿되고, 여기서 좌측 서브-블록은 동일한 크기의 2개의 TU로 수평으로 추가로 스플릿된다.
도 4는 블록, 예를 들어, CU 또는 PU를 4개의 TU로 수직으로(SPLIT_Q_VER) 그리고 수평으로(SPLIT_Q_HOR) 스플릿하는 것을 도시한다. SPLIT_Q_VER의 경우, 폭 W의 블록은 각각 0.25*W와 동일한 폭을 갖는 4개의 TU로 스플릿된다. SPLIT_QT_HOR의 경우, 높이 H의 블록은 각각 0.25*H와 동일한 높이를 갖는 4개의 TU로 스플릿된다.
단일 블록/PU/CU로부터, 도 2, 도 3 및 도 4의 스플릿 타입들 중 하나에 따라 블록/PU/CU를 스플릿함으로써 다중의 TU가 획득될 수 있다.
도 5는 수직으로(도 5a) 및 수평으로(도 5b) 2개의 TU로 스플릿된 블록을 묘사한다. 스플릿이 발생할 때마다, 스플릿 경계들 주위에 일부 불연속이 존재할 가능성이 높은데, 즉 에지가 존재할 가능성이 있다. 도 5a에서, 수직 스플릿이 발생한다. 따라서, 수직 스플릿 라인 주변에는 일부 불연속이 존재할 가능성이 있는 반면, TU1 및 TU2의 수직 특성들은 유사한 것으로 가정될 수 있다. 따라서, 일 실시예에서, Tr1V 및 Tr2V는 이들이 유사한 변환들이도록 선택된다. 변형에서, Tr2V 및 Tr1V는 이들이 동일하도록 선택된다. 한편, Tr2H는 Tr1H의 상보적 변환(complementary transform)이 되도록 선택된다.
도 5b에서, 수평 스플릿이 발생한다. 따라서, 스플릿 라인 주변에는 일부 불연속이 있을 수 있는 반면, TU1 및 TU2의 수평 특성들은 유사한 것으로 가정될 수 있다.
그러므로, 일 실시예에서, Tr1H 및 Tr2HV는 이들이 유사한 변환들이도록 선택된다. 변형에서, Tr1H 및 Tr2H는 이들이 동일하도록 선택된다. 한편, Tr2V는 Tr1V의 상보적 변환이 되도록 선택된다.
보다 일반적으로, 일 실시예에서, 스플릿 라인들을 따라 적용되는 변환들은 이들이 유사하거나 심지어 동일하도록 선택되는 한편, 스플릿 라인(들)에 수직으로 적용되는 변환들은 상보적이도록 선택된다.
원래 변환의 상보적 변환은 그 제1 기저 함수가 원래 변환의 제1 기저 함수와 잘 매칭되는 변환인데, 즉 도 6 내지 도 8에 묘사된 바와 같이 원래 변환의 제1 기저 함수의 연속이다. 실제로, 제1 기저 함수는 변환을 표현하는 데 가장 중요한 것이다. 이것은 최저 주파수에서의 고려되는 변환의 기저 함수를 나타낸다. 상보적 함수들이 표 1에 정의되어 있다.
Figure pct00001
제로 변환은 그 기저 함수가 제로인 변환이다. 다시 말해서, 제로 변환은 잔차들을 제로와 동일한 계수들로 변환한다.
DCT/DST 변환 패밀리의 일부는 표 2에서와 같이 증가, 감소 및 상수 제1 기저 함수로서 분류될 수 있다.
Figure pct00002
예로서, DCT2 기저 함수들 Ti(j), i, j=0, 1, ..., N-1은 다음과 같이 정의된다:
Figure pct00003
제1 기저 함수는 i=0에 대한 것이고, 따라서 DCT2에 대해 상수이다.
또 다른 예로서, DCT8 기저 함수 Ti(j), i, j=0, 1, ..., N-1은 다음과 같이 정의된다:
Figure pct00004
제1 기저 함수는 i=0에 대한 것이고, 따라서 DCT8에 대해 감소하고 있다.
또 다른 예로서, DST7 기저 함수들 Ti(j), i, j=0, 1,..., N-1은 다음과 같이 정의된다:
Figure pct00005
제1 기저 함수는 i=0에 대한 것이고, 따라서 DST7에 대해 증가하고 있다.
도 6, 도 7 및 도 8은 (표 1에 따른) 상보적 변환들에 대한 상이한 경우들을 도시한다. 각각의 그래픽 상에, 변환의 제1 기저 함수가 (좌측에) 그려지고, 이어서 상보적 변환의 제1 기저 함수가 (우측에) 그려진다. 도 6에서, DCT8 변환의 제1 기저 함수(증가하는 기저 함수)가 그려지고, 이어서 도 6a에서 DST7(감소하는 기저 함수)이고 도 6b에서 DCT2(상수 기저 함수)인 상보적 변환의 제1 기저 함수가 그려진다.
도 7에서, DST7 변환의 제1 기저 함수(감소하는 기저 함수)가 그려지고, 이어서 도 7a에서 DCT8(증가하는 기저 함수)이고 도 7b에서 제로 기저 함수인 상보적 변환의 제1 기저 함수가 그려진다.
도 8a에서, DCT2 변환의 제1 기저 함수(상수 기저 함수)가 그려지고, 이어서 DST7(감소하는 기저 함수)인 상보적 변환의 제1 기저 함수가 그려진다. 도 8b에는, 제로 기저 함수가 그려지고 이어서 DCT8(증가하는 기저 함수)인 상보적 변환의 제1 기저 함수가 그려진다.
도 5로 되돌아가 참조하면, 제1 실시예에서, 스플릿 라인들을 따라, 즉 스플릿 라인들에 평행하게 적용되는 변환들은 이들이 동일하도록 선택된다. 그러므로, 오직 하나의 변환(제각기 Tr1V; Tr1H)이 2개(제각기 Tr1V 및 Tr2V; Tr1H 및 Tr2H) 대신에 시그널링될 필요가 있으므로, 시그널링 비용이 감소된다.
도 9, 도 10 및 도 11은 도 2 내지 도 4에 묘사된 다양한 스플릿 타입에 대한 이 제1 실시예를 도시하며, 여기서 스플릿 라인들을 따라, 즉 스플릿 라인들에 평행하게 적용되는 변환들은 동일하다. 예로서, 도 9에서, 스플릿 타입 SPLIT_BT_VER에 대해, V로 표시된 동일한 변환이 수직 스플릿 라인에 평행하게 적용된다. 스플릿 타입 SPLIT_BT_HOR에 대해 동일한 원리가 적용되며, 여기서 H로 표시된 동일한 변환이 수평 스플릿 라인에 평행하게 적용된다.
도 5로 되돌아가 참조하면, 제2 실시예에서, 스플릿 라인에 수직으로 적용되는 변환들은 이들이 상보적이 되도록 선택된다. 그러므로, 오직 하나의 변환(제각기 Tr1H; Tr1V)이 2개(제각기 Tr1H 및 Tr2H; Tr1V 및 Tr2V) 대신에 시그널링될 필요가 있으므로, 시그널링 비용이 감소된다.
도 9, 도 10 및 도 11은 또한 도 2 내지 도 4에 도시된 묘사한 다양한 스플릿 타입들에 대한 이 제2 실시예를 도시하며, 여기서 스플릿 라인에 수직으로 적용되는 변환들은 상보적이다. 예로서, 도 9에서, 스플릿 타입(SPLIT_BT_VER)에 대해, H 및 H_c로 표시된 상보적 변환들은 수직 스플릿 라인에 수직으로 적용된다. 스플릿 타입 SPLIT_BT_HOR에 대해 동일한 원리가 적용되며, 여기서 V 및 V_c로 표시된 상보적 변환들은 수평 스플릿 라인에 수직으로 적용된다.
스플릿 타입 SPLIT_TT_VER의 경우, H 및 H_c로 표시된 상보적 변환들은 처음 2개의 블록(TU1 및 TU2)상의 제1 수직 스플릿 라인에 수직으로 적용되고, H_c 및 H_c_c로 표시된 상보적 변환들은 마지막 2개의 블록(TU2 및 TU3)상의 제2 수직 스플릿 라인에 수직으로 적용된다. 스플릿 타입 SPLIT_TT_VER에 대해서도 동일한 원리가 적용되고, 여기서 V 및 V_c로 표시된 상보적 변환들(TU1 및 TU2)은 처음 2개의 블록상의 제1 수평 스플릿 라인에 수직으로 적용되고, V_c 및 V_c_c로 표시된 상보적 변환들(TU2 및 TU3)은 마지막 2개의 블록상의 제2 수직 스플릿 라인에 수직으로 적용된다. TT 스플릿의 경우, 3개의 수평(수직) TU가 있다. 제1 수평(수직) TU1은 제2의 것인 TU2에 대한 참조로서 간주되고, 제2의 것인 TU2는 제3의 것인 TU3에 대한 참조로서 간주된다.
도 10에서, 스플릿 타입 SPLIT_Q_HOR에 대해 상보적 변환들이 수직 스플릿 라인에 수직으로 적용된다. 보다 구체적으로, V 및 그 상보적 변환 V_c가 처음 2개의 블록에 대해 적용되고, 바로 위의 이웃 블록에 대해 적용된 V_c에 대한 상보적 변환인 다음 V_c_c가 적용되고, 바로 위의 이웃 블록에 적용된 V_c_c에 대한 상보적 변환인 다음 V_c_c_c가 적용된다. 스플릿 타입 SPLIT_Q_VER에 대해서도 동일한 원리가 적용된다. H_c는 H의 상보적 변환이고, H_c_c는 H_c의 상보적 변환이고, H_c_c_c는 H_c_c의 상보적 변환이다. 도 11에서, 특정 변환 Const는 더 큰 스플릿 방향에 평행한 방향으로 더 큰 TU에 적용된다. Const는 그 제1 기저 함수가 상수인 변환(예컨대, DCT2)이다.
제1 및 제2 실시예들은 독립적으로 사용될 수 있거나 조합될 수 있다.
도 12는 일 실시예에 따른 디코딩 방법의 흐름도이다. (S100)에서, 스플릿 타입이 디코딩된다. 블록이 스플릿되는 경우, 제1 수평 변환(Tr1H) 및 수직 변환(Tr1V)이 디코딩되는데, 더 정확하게는 이러한 변환들을 식별하는 인덱스들이 디코딩된다(S110). 블록에서 사용되는 다른 변환들은 이러한 2개의 변환 중 적어도 하나로부터 더 도출된다(S112). 일 예로서, (S112)에서, 스플릿 라인들에 평행하게 적용되는 변환들은 이들이 스플릿 라인이 수평인 경우에 Tr1H와 동일하도록 결정된다. 일 예로서, (S112)에서, 스플릿 라인에 평행하게 적용되는 변환들은 이들이 스플릿 라인이 수직인 경우에 Tr1V와 동일하도록 결정된다. 일 예로서, (S112)에서, 도 5a의 경우, Tr2V는 디코딩된 Tr1V와 동일하다고 결정된다. 이 실시예에서, 다른 변환 Tr2H가 또한 (S110)에서 디코딩될 수 있다.
변형에서, 블록에서 사용되는 다른 변환들은 이들 2개의 변환으로부터 추가로 도출된다. 이 변형에서, 스플릿 라인에 수직으로 적용되는 변환들은 상보적인 것으로 결정된다. 일 예로서, (S112)에서, 도 5a의 경우, Tr2V는 디코딩된 Tr1V와 동일하다고 결정되고, Tr2H는 디코딩된 Tr1H에 상보적이도록 선택된다. 따라서, 변환들 Tr2H 및 Tr2V(이들은 디코딩되지 않음)는 (S110)에서 디코딩된 변환들로부터 결정된다.
변환이 하나보다 많은 상보적 변환을 갖는 경우, 어느 상보적 변환이 사용되는지를 표시하기 위해 추가 비트가 디코딩된다. 일 예로서, 디코딩된 변환 Tr1H의 제1 기저 함수가 감소하는 경우(예컨대, Tr1H=DCT8), 이것은 표 1에 나타낸 바와 같이 2개의 상보적 변환을 가질 수 있는데: 하나는 증가하는 제1 기저 함수를 갖고 다른 하나는 제로 제1 기저 함수를 갖는다. 값 0인 이진수는 제1 상보적 변환(증가하는 제1 기저 함수, 예컨대, DST7)을 지정할 수 있고, 1의 값은 제로 제1 기저 함수 상보적 변환을 지정할 수 있다.
디코딩된 변환 제1 기저 함수가 제로 또는 상수인 경우에, 표 1에 나타낸 바와 같이 단일의 상보적 변환이 있고, 이 경우에 어떤 부가의 이진 값도 디코딩되지 않는다.
QT 및 T 스플릿 타입들에 대해, 상보적 수평(H_c) 및 수직 변환들(V_c)을 표시하기 위해 최대 2개의 추가적인 이진 값이 디코딩된다. BT의 경우, 상보적 수평 또는 수직 변환(제각기 SPLIT_BT_HOR에 대한 V_c 및 SPLIT_BT_VER에 대한 H_c)을 표시하기 위해 최대 1개의 추가적인 이진 값이 디코딩된다. TT 스플릿 타입들에 대해, 제1 및 제2 상보적 변환들(SPLIT_TT_VER에 대한 H_c 및 H_c_c 및 SPLIT_TT_HOR에 대한 V_c 및 V_c_c)을 표시하기 위해 최대 2개의 추가적인 이진 값이 디코딩되고, 쿼터 스플릿 타입들에 대해 최대 3개의 추가적인 이진 값이 디코딩된다(SPLIT_Q_VER에 대한 H_c, H_c_c 및 H_c_c_c 및 SPLIT_Q_HOR에 대한 V_c, V_c_c 및 V_c_c_c).
도 12로 되돌아가면, 블록이 스플릿되지 않는 경우, 전체 블록에 대해 단일 변환이 디코딩된다(S114). 보다 상세하게는, 사용된 변환을 식별하기 위해 적어도 하나의 인덱스(MTS 플래그)가 디코딩된다(S114). 특정한 비제한적인 실시예에서, (S114)는 MTS 플래그를 디코딩하는 단계(S1140)를 포함한다. MTS=0인 경우, DCT2가 사용된다. MTS=1인 경우, 또 다른 디코딩된 인덱스에 의존하여 DCT8 또는 DST7 중 어느 하나가 사용된다(S1142). (S114)의 다른 변형들이 사용될 수 있다. 예를 들어, 전체 블록에 대한 사용된 변환을 직접 표시하기 위해 단일 플래그가 디코딩될 수 있다.
일단 사용될 변환들이 결정되면, (S116)에서 디코딩된 변환 계수들은 결정된 변환된 것(S118, S120)을 사용하여 역변환되어 잔차들을 획득한다.
변형에서, 상보적 변환들의 수는 1에 제한된다. 이 경우, 일단 변환이 알려지면, 그것의 상보적 변환이 또한 아래의 표 3에 표시된 바와 같이 알려지기 때문에, (S112)에서 어떠한 추가적인 이진 값도 디코딩되지 않는다.
Figure pct00006
일 예로서, 디코딩된 변환 Tr1H의 제1 기저 함수가 감소하고 있는 경우(예컨대, Tr1H=DCT8), 이것은 표 2에 나타낸 바와 같이 단일의 상보적 변환, 즉 증가하는 제1 기저 함수를 갖는 것을 가진다. 이 실시예는 어떤 추가적인 것도 디코딩되지 않으므로 코딩 효율을 개선한다. 역(reverse)은 상보적 변환의 특별한 경우이다. 역 변환은 그 제1 기저 함수가 원래의 변환에 대한 역 속성(증가 대 감소)을 가지는 변환이다. 즉, 그 제1 기저 함수가 증가하는 변환(예컨대, DST7)에서, 그것의 역 변환의 제1 기저 함수는 감소하는 함수(예컨대, DCT8)이다.
변형에서, 표 3의 2개의 마지막 라인이 제거된다.
도 13에서, 블록의 제1 TU는 그 수평 및 수직 변환들(Tr1H 및 Tr1V)이 디코딩되는 참조 TU로서 고려된다. 우측, 하단 및 하단-우측 TU들은 (도 11에 도시된 바와 같이) T-타입 스플릿에 대해 동일한 변환, 그 역 또는 상수 변환(constant transform)을 재사용함으로써 획득될 수 있다.
도 14는 또 다른 실시예에 따른 디코딩 방법의 흐름도이다. 도 12의 단계들과 동일한 단계들은 동일한 참조 번호들로 식별되며, 더 개시되지 않는다. 이 실시예에서, 제1 TU에 대한 것을 포함하여 TU 변환 타입들의 모든 시그널링이 제거된다. 따라서, 도 12의 (S110)이 제거된다. (S113)에서, 변환들은 디코딩된 SPLIT 타입에 응답하여 직접 결정된다.
그렇게 하기 위해, 각각의 스플릿 타입에 대해 초기 변환들이 정의된다. 이후, 다른 변환들에의 매핑은 도 9 내지 도 11에 도시된 것과 동일하다. 스플릿의 타입과 잘 닮은 변환들의 세트가 선택된다. 다시 말해서, 도 15 내지 도 33에 도시된 바와 같이, 모든 TU의 2D 제1 기저 함수는 요구된 스플릿과의 유사성을 보여준다.
도 15는 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_QT인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는(Dec) 제1 기저 함수(예컨대, DCT8)의 것이고, TU1 수직 변환은 감소하는 제1 기저 함수(예컨대, DCT8)의 것이다.
다른 변환들은 위에서 정의된 규칙들에 따라 결정된다.
TU2 수평 변환은 증가하는(Inc) 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이다.
TU4 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이다.
도 15의 좌측은 변환 선택을 도시하고, 도 15의 우측은 모든 TU의 2D 제1 기저 함수를 보여준다.
도 16은 좌측에 변환 선택을 나타내고, 우측에 스플릿 타입이 SPLIT_BT_VER인 경우에, 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
도 17은 좌측에 변환 선택을 나타내고, 우측에 스플릿 타입이 SPLIT_BT_HOR인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
대안적으로, 수직 스플릿에 대해, 제1 수직 변환은 상수 제1 기저 함수의 것일 수 있거나 또는 수평 스플릿에 대해, 제1 수평 변환은 상수 제1 기저 함수의 것일 수 있다. 이는 도 18에 도시된 바와 같이 더 예리한 에지를 달성하고 중심을 향해 더 집중되는 것이다.
도 19는 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_TT_VER인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
도 20은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_TT_HOR인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU2 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
대안적으로, 수직 스플릿에 대해, 제1 수직 변환은 상수 제1 기저 함수의 것일 수 있거나 또는 수평 스플릿에 대해, 제1 수평 변환은 상수 제1 기저 함수의 것일 수 있다. 이는 도 21에 도시된 바와 같이 더 예리한 에지를 달성하고 중심을 향해 더 집중되는 것이다.
TT 스플릿의 2개의 경계에 걸쳐 대칭을 획득하기 위해, 중심 변환(central transform)은 상수 변환으로서 간주될 수 있다. 즉, 수직 TT에 대해, 다음과 같은 변환들이 사용될 수 있다:
TU1 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU1 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이고, TU2 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU3 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
수평 TT에 대해, 다음의 변환들은 다음과 같을 수 있다:
TU1 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU1 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이고, TU2 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU3 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
이는 도 22에 도시된 기저 함수라는 결과를 낳는다. 분명히, 이는 TT 스플릿에 대한 더 나은 매칭이다.
일부 TT 경우들은 블록을 2개의 부분: 1/4 및 3/4으로 스플릿하는 비대칭 바이너리 트리(ABT, Asymmetric binary Tree)와 매우 잘 닮을 수 있다.
도 23은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_TT_VER인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다. 좌측 에지를 갖는 수직 ABT(ABT_VER_LEFT)는 다음의 변환들을 사용함으로써 달성될 수 있다:
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이고, TU3 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
도 24는 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_TT_VER인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다. 좌측 에지를 갖는 수직 ABT(ABT_VER_RIGHT)는 다음의 변환들을 사용함으로써 달성될 수 있다:
TU1 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이고, TU1 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU2 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU3 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
도 25는 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_TT_HOR인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다. 좌측 에지를 갖는 수직 ABT(ABT_HOR_TOP)는 다음의 변환들을 사용함으로써 달성될 수 있다:
TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이고, TU3 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
도 26은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_TT_HOR인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다. 좌측 에지를 갖는 수직 ABT(ABT_HOR_BOT)는 다음의 변환들을 사용함으로써 달성될 수 있다:
TU1 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이고, TU1 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU2 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU3 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
도 27은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_Q_VER인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU3 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU4 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU4 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
도 28은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_Q_HOR인 경우에, 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU3 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU4 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU4 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
대안적으로, 상수 변환은 도 29에 도시된 바와 같이 수평 스플릿의 수평 변환을 위해 그리고 수직 스플릿의 수직 변환을 위해 사용될 수 있다.
도 30은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_T_TOP인 경우에, 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU3 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
도 31은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_T_BOTTOM인 경우에, 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수평 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU3 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이다.
도 32는 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_T_RIGHT인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU3 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU3 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이다.
도 33은 좌측에 변환 선택을 도시하고, 우측에 스플릿 타입이 SPLIT_T_LEFT인 경우에 모든 TU의 2D 제1 기저 함수를 보여준다.
TU1 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU1 수직 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이다.
TU2 수평 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이고, TU2 수직 변환은 상수 제1 기저 함수(예를 들어, DCT2)의 것이다.
TU3 수평 변환은 감소하는 제1 기저 함수(예를 들어, DCT8)의 것이고, TU3 수직 변환은 증가하는 제1 기저 함수(예를 들어, DST7)의 것이다.
대안적인 실시예에서, TU 스플릿은 PU 또는 CU 스플릿과 동일한 것으로 간주될 수 있다. 예를 들어, 수평 바이너리 스플릿이 PU 또는 CU에서 발생하면, 대응하는 TU 스플릿은 또한 수평 바이너리이고 개별 변환들은 상기 실시예들에서 설명된 바와 같이 획득된다.
상기 실시예들은 재귀적 스플릿이 발생하는 경우로 확장될 수 있다. 그렇게 하기 위해, 인접 TU의 변환들 사이의 관계들은 본 발명에서 제안된 방법을 준수할 필요가 있다. 즉, 스플릿 경계들 주위의 변환들은 서로 상보적인 것으로 취해질 필요가 있고, 다른 방향의 변환들은 유사하거나 동일하다. 이러한 방식으로, 본 발명은 재귀적 및 비재귀적 시나리오들 둘 모두에 대한 모든 가능한 TU 스플릿에 적용된다.
도 34는 일 실시예에 따른 인코딩 방법의 흐름도이다. 디코딩 방법과 관련하여 개시된 실시예들 및 변형들은 또한 인코딩 방법에 적용된다. (S200)에서, 스플릿 타입이 결정되고 인코딩된다. 스플릿 타입은 보통은 레이트 왜곡 최적화 프로세스(Rate Distortion Optimization process, RDO)에 의해 인코더 측에서 결정된다. 블록이 스플릿되는 경우에, 제1 수평 변환 Tr1H 및 수직 변환 Tr1V는 예를 들어, RDO를 사용하여 결정된다. 보다 정확하게는, 이들 변환들을 식별하는 인덱스들이 획득되고 인코딩된다(S210). 블록에서 사용되는 다른 변환들은 이러한 2개의 변환 중 적어도 하나로부터 더 도출된다(S212). 일 예로서, (S112)에서, 스플릿 라인들에 평행하게 적용되는 변환들은 이들이 스플릿 라인이 수평인 경우에 Tr1H와 동일하도록 결정된다. 일 예로서, (S112)에서, 스플릿 라인에 평행하게 적용되는 변환들은 이들이 스플릿 라인이 수직인 경우에 Tr1V와 동일하도록 결정된다. 일 예로서, (S112)에서, 도 5a의 경우, Tr2V는 디코딩된 Tr1V와 동일하다고 결정된다. 이 실시예에서, 다른 변환 Tr2H가 또한 (S110)에서 디코딩될 수 있다.
변형에서, 블록에서 사용되는 다른 변환들은 이들 2개의 변환으로부터 추가로 도출된다. 이 변형에서, 스플릿 라인에 수직으로 적용되는 변환들은 상보적인 것으로 결정된다. 일 예로서, (S212)에서, 도 5a의 경우, Tr2V는 디코딩된 Tr1V와 동일하다고 결정되고, Tr2H는 디코딩된 Tr1H에 상보적이도록 선택된다. 따라서, 변환들 Tr2H 및 Tr2V(이들은 디코딩되지 않음)는 (S210)에서 결정된 변환들로부터 결정된다.
변환이 하나보다 많은 상보적 변환을 갖는 경우, 어느 상보적 변환이 사용되는지를 표시하기 위해 추가 비트가 인코딩된다.
도 12로 되돌아가면, 블록이 스플릿되지 않는 경우, 전체 블록에 대해 단일 변환이 결정된다(S214).
일단 사용될 변환들이 결정되면, (S216)에서 결정된 잔차들은 결정된 변환을 사용하여 변환되어 변환 계수들을 획득한다.
도 35는 또 다른 실시예에 따른 디코딩 방법의 흐름도이다. 도 34의 단계들과 동일한 단계들은 동일한 참조 번호들로 식별되며, 더 개시되지 않는다. 이 실시예에서, 제1 TU에 대한 것을 포함하여 TU 변환 타입들의 모든 시그널링이 제거된다. (S213)에서, 변환들은 디코딩된 SPLIT 타입에 응답하여 직접 결정된다. 이 실시예는 도 14의 디코더 실시예에 대응한다.
이 출원은 도구, 특징, 실시예, 모델, 접근법 등을 포함하는 다양한 양태를 설명한다. 이러한 양태들 중 다수는 특정성으로 설명되고, 적어도 개별적인 특성들을 보여주기 위해, 종종 제한하는 것처럼 들리는 방식으로 설명된다. 그러나, 이것은 설명에서의 명료성을 위한 것이며, 그러한 양태들의 적용 또는 범위를 제한하지는 않는다. 실제로, 상이한 양태들 모두가 추가 양태들을 제공하기 위해 조합되고 교환될 수 있다. 더욱이, 양태들은 또한 더 이른 출원들에서 설명된 양태들과 조합되고 교환될 수 있다.
본 출원에서 설명되고 고려되는 양태들은 많은 상이한 형태들로 구현될 수 있다. 아래의 도 36, 도 37 및 도 38은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되며, 도 36, 도 37 및 도 38의 설명은 구현들의 범위를 한정하지 않는다. 양태들 중 적어도 하나는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 양태는 일반적으로 생성되거나 인코딩된 비트스트림을 송신하는 것에 관한 것이다. 이들 및 다른 양태들은 방법, 장치, 설명된 방법들 중 임의의 방법에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는 컴퓨터 판독가능 저장 매체, 및/또는 설명된 방법들 중 임의의 방법에 따라 생성되는 비트스트림이 저장되어 있는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
다양한 방법들이 본 명세서에서 설명되었고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않으면, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다.
본 출원에서 설명되는 다양한 방법들 및 다른 양태들은 도 36 및 도 37에 도시된 바와 같은 비디오 인코더(100) 및 디코더(200)의 모듈들, 예를 들어 변환/역변환 모듈들(125, 150, 250)을 수정하기 위해 사용될 수 있다. 더욱이, 본 양태들은 VVC 또는 HEVC에 제한되지 않고, 예를 들어, 기존의 것이든지 또는 향후 개발되든지 간에, 다른 표준들 및 권고안들, 그리고 임의의 이러한 표준들 및 권고안들(VVC 및 HEVC를 포함함)의 확장들에 대해 적용될 수 있다. 달리 표시되지 않거나 또는 기술적으로 배제되지 않는 한, 본 출원에서 설명되는 양태들은 개별적으로 또는 조합하여 사용될 수 있다.
다양한 수치 값들, 예를 들어, 블록이 스플릿되는 TU들의 수가 본 출원에서 사용된다. 특정 값들은 예시적인 목적을 위한 것이고, 설명된 양태들은 이러한 특정 값들로만 제한되지는 않는다. 또한, 도 2 내지 도 4에서의 스플릿들의 타입은 예시 목적을 위한 것이다. 추가적인 스플릿 타입들이 사용될 수 있다. 한편, 도 2 내지 도 4의 스플릿 타입들의 서브세트가 사용될 수 있다.
도 36은 인코더(100)를 도시한다. 이 인코더(100)의 변형예들이 고려되지만, 인코더(100)는 모든 예상되는 변형예들을 설명하지 않고서 명료성 목적을 위해 이하에서 설명된다.
인코딩되기 전에, 비디오 시퀀스는 프리-인코딩 처리(101), 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용하거나(예를 들어, RGB 4:4:4 로부터 YCbCr 4:2:0으로의 변환), 또는 (예를 들어, 컬러 컴포넌트들 중 하나의 것의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 획득하기 위해 입력 픽처 컴포넌트들의 리매핑을 수행하는 것을 거칠 수 있다. 메타데이터는 전처리와 연관되고, 비트스트림에 부착될 수 있다.
인코더(100)에서, 픽처는 아래에서 설명되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는 파티셔닝되고(102), 예를 들어, CU들의 유닛들로 처리된다. 각각의 유닛은 예를 들어, 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 이것은 인트라 예측(160)을 수행한다. 인터 모드에서는, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 유닛을 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(105), 예를 들어, 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 예측 잔차들은, 예를 들어, 원래의 이미지 블록으로부터 예측된 블록을 감산(110)함으로써 계산된다.
예측 잔차들이 이어서 변환되고(125) 양자화된다(130). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은 비트스트림을 출력하도록 엔트로피 코딩된다(145). 인코더는 변환을 스킵하고 양자화를 비변환된 잔차 신호에 직접 적용할 수 있다. 인코더는 변환 및 양자화 둘 모두를 바이패스할 수 있는데, 즉 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접적으로 코딩된다.
인코더는 추가적 예측들을 위한 참조를 제공하기 위해 인코딩된 블록을 디코딩한다. 예측 잔차들을 디코딩하기 위해, 양자화된 변환 계수들이 탈양자화되고(140) 역변환된다(150). 디코딩된 예측 잔차들 및 예측된 블록을 조합하면(155), 이미지 블록이 재구성된다. 인-루프 필터들(165)이 재구성된 픽처에 적용되어, 예를 들어, 인코딩 아티팩트들을 감소시키도록 디블로킹/SAO(Sample Adaptive Offset) 필터링을 수행한다. 필터링된 이미지는 참조 픽처 버퍼(180)에 저장된다.
도 37은 비디오 디코더(200)의 블록도를 도시한다. 디코더(200)에서, 비트스트림은 아래에서 설명되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로 도 37에 설명된 바와 같이 인코딩 패스에 역인 디코딩 패스를 수행한다. 또한, 인코더(100)는 일반적으로 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은, 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩된다(230). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 표시한다. 따라서 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(235). 예측 잔차들을 디코딩하기 위해, 변환 계수들이 탈양자화되고(240) 역변환된다(250). 디코딩된 예측 잔차들 및 예측된 블록을 조합하면(255), 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 모션 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 인-루프 필터들(265)이 재구성된 이미지에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 포스트-디코딩 처리(285), 예를 들어, 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환) 또는 프리-인코딩 처리(101)에서 수행되는 리매핑 프로세스의 역을 수행하는 역 리매핑을 추가로 거칠 수 있다. 포스트-디코딩 처리는 프리-인코딩 처리에서 도출되고 비트스트림에서 시그널링되는 메타데이터를 사용할 수 있다.
도 38은 다양한 양태 및 실시예가 구현되는 시스템의 한 예의 블록도를 도시한다. 시스템(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/IEC 13818로도 지칭되고, 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) 입력 단자를 포함하지만, 이에 한정되지는 않는다. 도 10에 도시되지 않은 다른 예들은 합성 비디오를 포함한다.
다양한 실시예들에서, 블록(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)의 다양한 요소들이 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소들이 상호접속될 수 있고, 예를 들어, I2C(Inter-IC) 버스, 배선, 및 인쇄 회로 기판을 포함하여 관련 기술분야에 공지된 바와 같은 적절한 접속 배열을 사용하여 그 사이에서 데이터를 송신할 수 있다.
시스템(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)는 기술적인 환경에 적합한 임의의 유형의 것일 수 있고, 비제한적 예들로서 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들 및 멀티-코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다.
다양한 구현들은 디코딩을 수반한다. 본 출원에서 사용되는 "디코딩"은 디스플레이를 위해 적합한 최종 출력을 생성하기 위해, 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들, 예를 들어, 엔트로피 디코딩, 역 양자화, 역 변환, 및 디퍼렌셜 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한 또는 대안으로서 본 출원에서 설명되는 다양한 구현들의 디코더에 의해 수행되는 프로세스들, 예를 들어, 블록의 TU들에 대해 적용될 변환들을 결정하는 것을 포함한다.
추가 예들로서, 일 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 디퍼렌셜 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩 및 디퍼렌셜 디코딩의 조합을 지칭한다. "디코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하거나 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 생각된다.
다양한 구현들은 인코딩을 수반한다. "디코딩"에 관한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은 인코딩된 비트스트림을 생성하기 위해, 예를 들어, 입력 비디오 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 인코더에 의해 전형적으로 수행되는 프로세스들, 예를 들어, 파티셔닝, 디퍼렌셜 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한 또는 대안으로서 본 출원에서 설명되는 다양한 구현들의 인코더에 의해 수행되는 프로세스들, 예를 들어, 블록의 TU들에 대해 적용될 변환들을 결정하는 것을 포함한다.
추가 예로서, 일 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭하고, 또 다른 실시예에서 "인코딩"은 디퍼렌셜 인코딩만을 말하며, 또 다른 실시예에서 "인코딩"은 디퍼렌셜 인코딩 및 엔트로피 인코딩의 조합을 지칭한다. "인코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하거나 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 생각된다.
본 명세서에서 사용되는 신택스 요소들, 예를 들어, MTS 플래그/인덱스는 설명적 용어들이라는 점에 유의한다. 따라서, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 이는 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 이는 대응하는 방법/프로세스의 흐름도를 또한 제공한다는 것을 이해해야 한다.
다양한 실시예들은 레이트 왜곡 최적화를 언급한다. 특히, 인코딩 프로세스 동안, 계산 복잡도의 제약이 종종 주어지면, 레이트와 왜곡 사이의 균형 또는 절충이 보통은 고려된다. 레이트 왜곡 최적화는 보통은 레이트와 왜곡의 가중 합인 레이트 왜곡 함수를 최소화하는 것으로 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법이 있다. 예를 들어, 이 접근법들은, 코딩 및 디코딩 이후의 재구성된 신호의 코딩 비용 및 관련 왜곡의 완전한 평가와 함께, 모든 고려된 모드들 또는 코딩 파라미터 값들을 비롯한, 모든 인코딩 옵션들의 광범위한 테스팅에 기초할 수 있다. 인코딩 복잡도를 줄이기 위해, 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산에 의해 더 빠른 접근법이 또한 사용될 수 있다. 이들 두 가지 접근법의 혼합은 또한, 예를 들어, 가능한 인코딩 옵션들 중 일부에 대해서만 근사화된 왜곡을, 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 사용함으로써 사용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기법들 중 임의의 기법을 이용하지만, 최적화가 코딩 비용 및 관련 왜곡 둘 다의 완전한 평가일 필요는 없다.
본 명세서에 설명된 구현들 및 양태들은 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 비록 단지 단일 형태의 구현의 맥락에서만 논의될지라도(예컨대, 단지 방법으로서만 논의될지라도), 논의된 특징들의 구현은 다른 형식들(예컨대, 장치 또는 프로그램)로 또한 구현될 수 있다. 장치는 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 일반적으로 처리 디바이스들을 지칭하고, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래머블 논리 디바이스를 포함하는 프로세서로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 폰들(cell phones), PDA(portable/personal digital assistant)들, 및 최종 사용자들 간의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현" 뿐만 아니라 그의 다른 변형들에 대한 참조는 실시예와 관련하여 설명된 특정한 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 위치들에서 등장하는 구문 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서" 뿐만 아니라 임의의 다른 변형들의 등장은 반드시 모두 동일한 실시예를 참조하는 것은 아니다.
또한, 본 출원은 다양한 정보 피스들을 "결정"하는 것을 지칭할 수 있다. 정보를 결정하는 것은 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터의 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보 피스들에 "액세스" 하는 것을 지칭할 수 있다. 정보의 액세스는 예를 들어, 정보의 수신, (예를 들어, 메모리로부터의) 정보의 검색, 정보의 저장, 정보의 이동, 정보의 복사, 정보의 계산, 정보의 결정, 정보의 예측, 또는 정보의 추정 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보 피스들을 "수신"하는 것을 지칭할 수 있다. 수신하는 것은, "액세스하는 것"에서와 같이 광의의 용어로 의도된다. 정보의 수신은 예를 들어, 정보의 액세스 또는 (예로서, 메모리로부터의) 정보의 검색 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 통상적으로 예를 들어, 정보의 저장, 정보의 처리, 정보의 송신, 정보의 이동, 정보의 복사, 정보의 소거, 정보의 계산, 정보의 결정, 정보의 예측, 또는 정보의 추정과 같은 동작들 동안 하나의 방식 또는 또 다른 방식으로 수반된다.
예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서, "/", "및/또는", 및 "~ 중 적어도 하나" 중 임의의 것의 이용은 첫번째로 열거된 옵션 (A)만의 선택, 또는 두번째로 열거된 옵션 (B)만의 선택, 또는 양쪽 옵션 (A 및 B)의 선택을 포함하고자 의도된다는 것을 알아야 한다. 추가의 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 경우들에서, 이러한 문구는 첫 번째로 열거된 옵션 (A)만의 선택, 또는 두 번째로 열거된 옵션 (B)만의 선택, 또는 세 번째로 열거된 옵션 (C)만의 선택, 또는 첫 번째 및 두 번째로 열거된 옵션들 (A 및 B)만의 선택, 또는 첫 번째 및 세 번째로 열거된 옵션들 (A 및 C)만의 선택, 또는 두 번째 및 세 번째로 열거된 옵션들 (B 및 C) 만의 선택, 또는 세 가지 옵션 모두 (A 및 B 및 C)의 선택을 포함하는 것으로 의도된다. 이는, 본 기술분야 및 관련 기술분야의 통상의 기술자에게 명백한 바와 같이, 항목들이 많이 열거되는 만큼 확장될 수 있다.
또한, 본 명세서에서 사용되는 바와 같이, 단어 "신호"는 무엇보다도, 무언가를 대응하는 디코더에 나타내는 것을 지칭한다. 예를 들어, 특정 실시예들에서, 인코더는 상보적 변환 중 특정한 하나를 시그널링한다. 이러한 방식으로, 일 실시예에서, 인코더 측 및 디코더 측 둘 다에서 동일한 파라미터가 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신(명시적 시그널링)할 수 있다. 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 것들을 갖는 경우, 단순히 디코더가 특정 파라미터를 알고 선택하는 것을 허용하기 위해 송신 없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 송신을 회피함으로써, 다양한 실시예들에서 비트 절약이 실현된다. 시그널링이 다양한 방식으로 달성될 수 있다는 것을 알 것이다. 예를 들어, 다양한 실시예들에서, 하나 이상의 신택스 요소, 플래그 등이 정보를 대응하는 디코더에 시그널링하는데 이용된다. 전술한 것은 단어 "신호(signal)"의 동사 형태와 관련되지만, 단어 "신호"는 또한 본 명세서에서 명사로서 이용될 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현들은 예컨대 저장되거나 또는 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호를 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 비트스트림을 운반하도록 포맷팅될 수 있다. 이러한 신호는 예컨대(예컨대, 스펙트럼의 무선 주파수 부분을 사용하여) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고 인코딩된 데이터 스트림으로 반송파를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 것으로서 각종의 상이한 유선 또는 무선 링크를 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체상에 저장될 수 있다.
우리는 다수의 실시예를 설명한다. 이러한 실시예들의 특징들은 다양한 청구항 카테고리들 및 타입들에 걸친 다양한 청구항 카테고리들 및 타입들에 걸쳐 단독으로 또는 임의의 조합으로 제공될 수 있다. 게다가, 실시예들은 다양한 청구항 카테고리들 및 유형들에 걸쳐, 하기의 특징들, 디바이스들, 또는 양태들 중 하나 이상을, 단독으로 또는 임의의 조합으로 포함할 수 있다:
● 기술된 신택스 요소들 중 하나 이상, 예를 들어, 상보적 변환, 또는 그 변형을 나타내는 인덱스를 포함하는 비트스트림 또는 신호.
● 디코더가 디코딩된 계수들을 인코더에 의해 사용된 것에 대응하는 방식으로 역 변환할 수 있게 하는 신택스 요소들을 시그널링에 삽입하기.
● 설명된 신택스 요소들, 또는 이것의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성 및/또는 송신 및/또는 수신 및/또는 디코딩.
● 설명된 실시예들 중 임의의 것에 따라 변환들의 결정을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
● 설명된 실시예들 중 임의의 것에 따라 변환들의 결정을 수행하고 (예를 들어, 모니터, 스크린, 또는 다른 유형의 디스플레이를 사용하여) 결과 이미지를 디스플레이하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
● 인코딩된 이미지를 포함하는 신호를 수신하기 위해 채널을 (예를 들어, 튜너를 사용하여) 튜닝하고, 설명된 실시예들 중 임의의 것에 따라 변환들의 결정을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
● 인코딩된 이미지를 포함하는 공중을 통한 신호를 (예를 들어, 안테나를 사용하여) 수신하고, 설명된 실시예들 중 임의의 것에 따라 변환들의 결정을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
디코딩 방법이 개시되는데, 이 방법은:
- 블록의 변환 유닛들로의 스플릿의 타입을 디코딩하는 단계;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 단계; 및
- 결정된 변환들을 사용하여 상기 변환 유닛들의 디코딩된 변환 계수들을 역 변환하는 단계를 포함한다.
인코딩 방법이 개시되는데, 이 방법은:
- 블록의 변환 유닛들로의 스플릿의 타입을 결정하여 인코딩하는 단계;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 단계; 및
- 결정된 변환들을 사용하여 상기 변환 유닛들의 잔차들을 변환하는 단계를 포함한다.
하나 이상의 프로세서를 포함하는 디코딩 장치로서, 하나 이상의 프로세서는:
- 블록의 변환 유닛들로의 스플릿의 타입을 디코딩하는 것;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 것;
- 결정된 변환들을 사용하여 상기 변환 유닛들의 디코딩된 변환 계수들을 역 변환하는 것을 수행하도록 구성된다.
하나 이상의 프로세서를 포함하는 인코딩 장치로서, 하나 이상의 프로세서는:
- 블록의 변환 유닛들로의 스플릿의 타입을 결정하여 인코딩하는 것;
- 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 것;
- 결정된 변환들을 사용하여 상기 변환 유닛들의 잔차들을 변환하는 것을 수행하도록 구성된다.
본 실시예들 중 하나 이상은 또한 전술한 방법들 중 임의의 것의 적어도 일부에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술한 인코딩 방법들에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법 및 장치를 제공한다. 하나 이상의 실시예는 또한 전술한 방법들 중 임의의 것의 적어도 일부를 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
특정 실시예에서, 상기 스플릿 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하는 것은:
- 상기 블록의 제1 변환 유닛에 대한 제1 수평 변환 및 상기 블록의 제2 변환 유닛에 대한 제1 수직 변환을 디코딩하는 것; 및
- 상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 모든 변환 유닛들의 변환들을 결정하는 것을 포함한다.
특정 실시예에서, 상기 제1 및 제2 변환 유닛들은 상기 블록의 하나의 동일한 변환 유닛이다.
특정 실시예에서, 상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 모든 변환 유닛들의 변환들을 결정하는 것은, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수평인 경우에, 상기 또 다른 변환 유닛의 수평 변환과 동일한 수평 변환을 또 다른 변환 유닛에 인접한 변환 유닛에 대해 결정하는 것을 포함한다.
특정 실시예에서, 상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 모든 변환 유닛들의 변환들을 결정하는 것은, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수평인 경우에 상기 또 다른 변환의 수직 변환에 상보적인 수직 변환을 또 다른 변환 유닛에 인접한 변환 유닛에 대해 결정하는 것을 포함하고, 여기서 2개의 변환은 그들의 제1 기저 함수들이 매칭되는 경우에 상보적이다.
특정 실시예에서, 상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 모든 변환 유닛들의 변환들을 결정하는 것은, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수직인 경우에, 상기 또 다른 변환 유닛의 수직 변환과 동일한 수직 변환을 또 다른 변환 유닛에 인접한 변환 유닛에 대해 결정하는 것을 포함한다.
특정 실시예에서, 상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 모든 변환 유닛들의 변환들을 결정하는 것은, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수직인 경우에 상기 또 다른 변환의 수평 변환에 상보적인 수평 변환을 또 다른 변환 유닛에 인접한 변환 유닛에 대해 결정하는 것을 포함하고, 여기서 2개의 변환은 그들의 제1 기저 함수들이 매칭되는 경우에 상보적이다.
특정 실시예에서, 상기 상보적 변환은 인코딩된/디코딩된 이진 값에 의해 표시된다.

Claims (14)

  1. 디코딩 방법으로서:
    블록의 변환 유닛들로의 스플릿의 타입을 디코딩하는 단계;
    상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛에 대한 변환을 결정하는 단계; 및
    상기 결정된 변환들을 사용하여 상기 변환 유닛들의 디코딩된 변환 계수들을 역변환하는 단계를 포함하고; 상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛에 대한 변환을 결정하는 단계는:
    상기 블록의 제1 변환 유닛에 대한 제1 수평 변환 및 상기 블록의 제2 변환 유닛에 대한 제1 수직 변환을 디코딩하는 단계; 및
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 단계를 포함하는 방법.
  2. 인코딩 방법으로서:
    블록의 변환 유닛들로의 스플릿의 타입을 결정하여 인코딩하는 단계;
    상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛에 대한 변환을 결정하는 단계; 및
    상기 결정된 변환들을 사용하여 상기 변환 유닛들의 잔차들을 변환하는 단계를 포함하고; 상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛에 대한 변환을 결정하는 단계는:
    상기 블록의 제1 변환 유닛에 대한 제1 수평 변환 및 상기 블록의 제2 변환 유닛에 대한 제1 수직 변환을 결정하고 인코딩하는 단계; 및
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 단계를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 단계는, 상기 변환 유닛과 또 다른 변환 유닛 사이의 스플릿 라인이 수평인 경우에, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해 상기 또 다른 변환 유닛의 제1 수평 변환과 동일한 제2 수평 변환을 결정하는 단계를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 단계는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수평인 경우에, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해 상기 또 다른 변환의 제1 수직 변환에 상보적인 제2 수직 변환을 결정하는 단계를 포함하고, 2개의 변환은 그들의 제1 기저 함수들이 매칭되는 경우에 상보적인 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 단계는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수직인 경우에, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해 상기 또 다른 변환 유닛의 제1 수직 변환과 동일한 제2 수직 변환을 결정하는 단계를 포함하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 단계는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수직인 경우에, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해 상기 또 다른 변환의 제1 수평 변환에 상보적인 제2 수평 변환을 결정하는 단계를 포함하고, 2개의 변환은 그들의 제1 기저 함수들이 매칭되는 경우에 상보적인 방법.
  7. 제4항 또는 제6항에 있어서,
    상기 블록은 비트스트림의 적어도 하나의 비트스트림 부분에 의해 표현되고, 상기 상보적 변환은 상기 적어도 하나의 비트스트림 부분에서 이진 값에 의해 표시되는 방법.
  8. 하나 이상의 프로세서를 포함하는 디코딩 장치로서,
    상기 하나 이상의 프로세서는 적어도:
    블록의 변환 유닛들로의 스플릿의 타입을 디코딩하는 것;
    상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛에 대한 변환을 결정하는 것; 및
    상기 결정된 변환들을 사용하여 상기 변환 유닛들의 디코딩된 변환 계수들을 역변환하는 것을 수행하도록 구성되고; 상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛들에 대한 변환을 결정하기 위해, 상기 하나 이상의 프로세서는:
    상기 블록의 제1 변환 유닛에 대한 제1 수평 변환 및 상기 블록의 제2 변환 유닛에 대한 제1 수직 변환을 결정하고 인코딩하는 것; 및
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 것을 수행하도록 추가로 구성되는 장치.
  9. 하나 이상의 프로세서를 포함하는 인코딩 장치로서,
    상기 하나 이상의 프로세서는 적어도:
    블록의 변환 유닛들로의 스플릿의 타입을 결정하여 인코딩하는 것;
    상기 스플릿의 타입에 응답하여 상기 블록의 복수의 변환 유닛에 대한 변환을 결정하는 것;
    상기 결정된 변환들을 사용하여 상기 변환 유닛들의 잔차들을 변환하는 것을 수행하도록 구성되고; 상기 스플릿의 타입에 응답하여 상기 블록의 각각의 변환 유닛에 대한 변환을 결정하기 위해, 상기 하나 이상의 프로세서는:
    상기 블록의 제1 변환 유닛에 대한 제1 수평 변환 및 상기 블록의 제2 변환 유닛에 대한 제1 수직 변환을 결정하고 인코딩하는 것; 및
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하는 것을 수행하도록 추가로 구성되는 장치.
  10. 제8항 또는 제9항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하기 위해, 상기 하나 이상의 프로세서는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수평인 경우, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해 상기 또 다른 변환 유닛의 제1 수평 변환과 동일한 제2 수평 변환을 결정하도록 추가로 구성되는 장치.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하기 위해, 상기 하나 이상의 프로세서는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수평인 경우에, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해, 상기 또 다른 변환의 제1 수직 변환에 상보적인 제2 수직 변환을 결정하도록 추가로 구성되고, 2개의 변환은 그들의 제1 기저 함수들이 매칭되는 경우에 상보적인 장치.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하기 위해, 상기 하나 이상의 프로세서는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수직인 경우, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해 상기 또 다른 변환 유닛의 제1 수직 변환과 동일한 제2 수직 변환을 결정하도록 추가로 구성되는 장치.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 제1 수평 변환 및 상기 제1 수직 변환 중 하나 이상에 응답하여 상기 블록의 복수의 변환 유닛의 변환들을 결정하기 위해, 상기 하나 이상의 프로세서는, 상기 변환 유닛과 상기 또 다른 변환 유닛 사이의 스플릿 라인이 수직인 경우에, 상기 또 다른 변환 유닛에 인접한 변환 유닛에 대해, 상기 또 다른 변환의 제1 수평 변환에 상보적인 제2 수평 변환을 결정하도록 추가로 구성되고, 2개의 변환은 그들의 제1 기저 함수들이 매칭되는 경우에 상보적인 장치.
  14. 제11항 또는 제13항에 있어서,
    상기 블록은 비트스트림의 적어도 하나의 부분에 의해 표현되고, 상기 상보적 변환은 상기 적어도 하나의 비트스트림 부분에서 이진 값에 의해 표시되는 장치.
KR1020217016690A 2018-12-03 2019-12-02 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스 KR20210096116A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP18306603.4A EP3664450A1 (en) 2018-12-03 2018-12-03 Method and device for picture encoding and decoding
EP18306603.4 2018-12-03
EP18306619 2018-12-05
EP18306619.0 2018-12-05
PCT/US2019/063913 WO2020117628A1 (en) 2018-12-03 2019-12-02 Method and device for picture encoding and decoding

Publications (1)

Publication Number Publication Date
KR20210096116A true KR20210096116A (ko) 2021-08-04

Family

ID=68944421

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016690A KR20210096116A (ko) 2018-12-03 2019-12-02 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스

Country Status (5)

Country Link
US (1) US11539951B2 (ko)
EP (1) EP3891984A1 (ko)
KR (1) KR20210096116A (ko)
CN (1) CN113170149B (ko)
WO (1) WO2020117628A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11688588B1 (en) * 2022-02-09 2023-06-27 Velvetch Llc Electron bias control signals for electron enhanced material processing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747255B2 (en) * 2011-05-13 2017-08-29 Texas Instruments Incorporated Inverse transformation using pruning for video coding
US9247254B2 (en) * 2011-10-27 2016-01-26 Qualcomm Incorporated Non-square transforms in intra-prediction video coding
AU2012200319B2 (en) * 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
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
US9674530B1 (en) * 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US20160044314A1 (en) * 2014-08-08 2016-02-11 Qualcomm Incorporated System and method for reusing transform structure for multi-partition transform
US9762912B2 (en) * 2015-01-16 2017-09-12 Microsoft Technology Licensing, Llc Gradual updating using transform coefficients for encoding and decoding
CN108605135A (zh) 2016-02-04 2018-09-28 三星电子株式会社 依据色度多变换的视频解码方法和设备、以及依据色度多变换的视频编码方法和设备
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US10972733B2 (en) * 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
RU2733279C2 (ru) * 2017-03-21 2020-10-01 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ преобразования в системе кодирования изображений и устройство для его осуществления
US10750181B2 (en) * 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding

Also Published As

Publication number Publication date
CN113170149B (zh) 2024-06-25
CN113170149A (zh) 2021-07-23
US11539951B2 (en) 2022-12-27
US20220030238A1 (en) 2022-01-27
WO2020117628A1 (en) 2020-06-11
EP3891984A1 (en) 2021-10-13

Similar Documents

Publication Publication Date Title
JP7510412B2 (ja) ブロックの面に基づくビデオの符号化又は復号のための量子化
EP3977732B1 (en) Implicit multiple transform selection
CN113228676A (zh) 在合并列表中运动矢量预测量候选排序
CN112889287A (zh) 广义双向预测和加权预测
KR20210020915A (ko) 이미지 블록들의 비대칭 이진 파티셔닝에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR20210058938A (ko) 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스
KR20210066823A (ko) 광각 인트라 예측을 위한 방향들
KR20210058846A (ko) 인트라 변환 코딩 및 광각 인트라 예측의 조화
KR20200128587A (ko) 비디오 인코딩 및 디코딩에서의 크로마 양자화 파라미터 조정
WO2020185492A1 (en) Transform selection and signaling for video encoding or decoding
KR20210132079A (ko) 인트라 예측 모드 파티셔닝
US11539951B2 (en) Method and device for picture encoding and decoding
EP3664450A1 (en) Method and device for picture encoding and decoding
US20220264147A1 (en) Hmvc for affine and sbtmvp motion vector prediction modes
US20220038704A1 (en) Method and apparatus for determining chroma quantization parameters when using separate coding trees for luma and chroma
KR20220123643A (ko) 삼각형 병합 모드에서의 서브-블록 병합 후보들
KR20220024643A (ko) 위치 의존적 인트라 예측 조합을 이용한 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스
JP7580410B2 (ja) 位置依存イントラ予測コンビネーションを用いたピクチャ符号化及び復号の方法及びデバイス
US20230336721A1 (en) Combining abt with vvc sub-block-based coding tools
US12143567B2 (en) Subblock merge candidates in triangle merge mode
KR20210074388A (ko) 코딩 유형 또는 코딩 트리 유형의 시그널링을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
CN112806013A (zh) 仿射模式下基于块大小的运动矢量编码
CN114073093A (zh) 三角形分割的合并索引的信令通知