KR20220036982A - 비디오 인코딩 및 디코딩을 위한 이차 변환 - Google Patents

비디오 인코딩 및 디코딩을 위한 이차 변환 Download PDF

Info

Publication number
KR20220036982A
KR20220036982A KR1020227006899A KR20227006899A KR20220036982A KR 20220036982 A KR20220036982 A KR 20220036982A KR 1020227006899 A KR1020227006899 A KR 1020227006899A KR 20227006899 A KR20227006899 A KR 20227006899A KR 20220036982 A KR20220036982 A KR 20220036982A
Authority
KR
South Korea
Prior art keywords
transform
coding block
block
lfnst
blocks
Prior art date
Application number
KR1020227006899A
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 KR20220036982A publication Critical patent/KR20220036982A/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/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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

비디오 인코딩 및 디코딩을 위한 이차 변환
본 실시예들 중 적어도 하나는 일반적으로 비디오 압축 분야에 관한 것이다. 특히, 적어도 하나의 실시예는 인트라 서브 블록 파티션들의 비디오 인코딩 또는 디코딩을 위해 이차 변환을 사용하는 것에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 방식들은 일반적으로 비디오 콘텐츠에서 공간적 및 시간적 리던던시를 이용하기 위해 예측 및 변환을 사용한다. 일반적으로, 인트라 또는 인터 예측은 인트라 또는 인터 프레임 상관을 활용하기 위해 사용되고, 그 후 종종 예측 에러들 또는 예측 잔차들로 표시되는 원래의 블록과 예측 블록 사이의 차이들이 변환, 양자화, 및 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축된 데이터는 엔트로피 코딩, 양자화, 변환, 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다.
본 실시예들 중 하나 이상은 인트라 모드에서 비디오 인코딩 및 디코딩을 위해 이차 변환을 사용하고, 더 구체적으로는 인트라 서브 파티션 모드에서 코딩 유닛의 변환 유닛들에 대해 이차 변환을 사용한다. 코딩 유닛 및 변환 유닛의 다양한 파라미터들에 따라 상이한 시그널링 및 선택 변형들이 제안된다.
적어도 하나의 실시예의 제1 양태에 따르면, 비디오 인코딩 방법은 코딩 유닛에 대해 제1 변환을 적용하는 단계, 제2 변환이 적용되어야 할지를 결정하는 단계, 및 제2 변환이 적용되어야 할 때, 코딩 유닛에 대한 제2 변환의 사용을 시그널링하고, 코딩 유닛의 변환 유닛들에 대해 제2 변환을 수행한 후, 시그널링 정보로 코딩 유닛을 인코딩하는 단계를 포함하고, 코딩 유닛들은 인트라 서브 파티션 모드에서 코딩된다.
적어도 하나의 실시예의 제2 양태에 따르면, 비디오 디코딩 방법은, 코딩 유닛에 대해 제2 변환이 시그널링될 때, 변환 유닛에 대한 제2 역변환 및 코딩 유닛의 변환 유닛들에 대한 제1 역변환을 수행하는 단계, 및 역변환된 변환 유닛들을 디코딩하는 단계를 포함하고, 코딩 유닛들은 인트라 서브 파티션 모드에서 코딩된다.
적어도 하나의 실시예의 제3 양태에 따르면, 장치는 픽처 또는 비디오 내의 적어도 하나의 블록에 대한 픽처 데이터를 인코딩하기 위한 인코더를 포함하고, 인코더는 코딩 유닛에 대해 제1 변환을 적용하고, 제2 변환이 적용되어야 할지를 결정하고, 제2 변환이 적용되어야 할 때, 코딩 유닛에 대한 제2 변환의 사용을 시그널링하고, 코딩 유닛의 변환 유닛들에 대해 제2 변환을 수행한 후, 시그널링 정보로 코딩 유닛을 인코딩하도록 구성되고, 코딩 유닛들은 인트라 서브 파티션 모드에서 코딩된다.
적어도 하나의 실시예의 제4 양태에 따르면, 장치는 픽처 또는 비디오 내의 적어도 하나의 블록에 대한 픽처 데이터를 디코딩하기 위한 디코더를 포함하고, 디코더는 코딩 유닛에 대해 제2 변환이 시그널링될 때, 변환 유닛에 대한 제2 역변환 및 코딩 유닛의 변환 유닛들에 대한 제1 역변환을 수행한 후, 역변환된 변환 유닛들을 디코딩하도록 구성되고, 코딩 유닛들은 인트라 서브 파티션 모드에서 코딩된다.
적어도 하나의 실시예의 제5 양태에 따르면, 프로세서에 의해 실행가능한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램이 제시되며, 컴퓨터 프로그램은 적어도 제1 또는 제2 양태에 따른 방법의 단계들을 구현한다.
적어도 하나의 실시예의 제6 양태에 따르면, 비일시적 컴퓨터 판독가능 매체 상에 저장되고 프로세서에 의해 실행가능한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품이 제시되며, 컴퓨터 프로그램 제품은 적어도 제1 또는 제2 양태에 따른 방법의 단계들을 구현한다.
도 1은 고효율 비디오 코딩(HEVC) 인코더와 같은 비디오 인코더(100)의 예의 블록도를 도시한다.
도 2는 HEVC 디코더와 같은 비디오 디코더(200)의 예의 블록도를 도시한다.
도 3은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 블록도를 도시한다.
도 4는 가능한 인트라 서브 파티션(ISP) 모드의 예를 도시한다.
도 5는 ISP 모드에서 사용되는 사전 정의된 변환 쌍의 예를 도시한다.
도 6a는 인트라 서브 블록 파티션 모드에서 이차 변환을 사용할 때의 인코딩 프로세스의 예시적인 실시예를 하이-레벨에서 도시한다.
도 6b는 인트라 서브 블록 파티션 모드에서 이차 변환을 사용할 때의 디코딩 프로세스의 예시적인 실시예를 하이-레벨에서 도시한다.
도 6c는 인트라 CU를 인트라 서브 블록 파티션 모드에서 코딩하고 LFNST를 이차 변환으로 사용하는 디코딩 프로세스의 예시적인 실시예를 도시한다.
도 6d 및 도 6e는 LFNST 인덱스가 각각 "0R" 또는 "AND" 방식으로 파싱되어야 하는지에 대한 테스트의 예시적인 실시예들을 도시한다.
도 7은 각각의 TU에 대해 사용되는 일차 역변환이 ISP 모드에서 코딩된 고려되는 CU와 관련된 LFNST 인덱스에 기초하여 도출되는 디코딩 프로세스의 예시적인 실시예를 도시한다.
도 8은 이차 변환의 선택이 미리 결정되는 디코딩 프로세스의 예시적인 실시예를 도시한다.
도 9는 이차 변환의 선택이 미리 결정되고 이차 변환의 사용이 플래그에 의해 시그널링되는 디코딩 프로세스의 예시적인 실시예를 도시한다.
도 10은 이차 변환의 사용이 암시적인 디코딩 프로세스의 예시적인 실시예를 도시한다.
도 11은 TU 레벨에서 이차 변환의 사용이 행해지는 디코딩 프로세스의 예시적인 실시예를 도시한다.
도 12a 및 도 12b는 이차 변환의 사용이 TU의 서브세트로 제한되는 디코딩 프로세스의 예시적인 실시예들을 도시한다.
도 13은 ISP 모드에서 코딩된 인트라 CU 내부의 TU들 간의 분할 비율이 변하는 예시적인 실시예를 도시한다.
다양한 실시예들은 인트라 서브 파티션 모드에서 코딩 유닛의 변환 유닛들의 비디오 인코딩 및 디코딩을 위한 이차 변환의 사용에 관한 것이다. 본 출원에서 설명된 다양한 방법들 및 다른 양태들은 코딩 유닛 및 변환 유닛의 다양한 파라미터들에 따라 사용될 변환의 시그널링 및 선택에 사용될 수 있다.
더욱이, 본 양태들은 VVC(Versatile Video Coding) 또는 HEVC(High Efficiency Video Coding) 사양들의 특정 드래프트들에 관련된 원리들을 설명하지만 VVC 또는 HEVC로 제한되지 않고, 예를 들어, 기존의 것인지 또는 장래에 개발될 것인지에 관계없이 다른 표준들 및 권고안들, 및 임의의 그러한 표준들 및 권고안들(VVC 및 HEVC를 포함함)의 확장들에 적용될 수 있다. 달리 표시되거나 기술적으로 배제되지 않는 한, 본 출원에서 설명된 양태들은 개별적으로 또는 조합하여 사용될 수 있다.
도 1은 HEVC 인코더와 같은 비디오 인코더(100)의 예의 블록도를 도시한다. 도 1은 또한 HEVC 표준에 대한 개선들이 이루어지는 인코더 또는 VVC를 위한 JVET(Joint Video Exploration Team)에 의해 개발 중인 JEM(Joint Exploration Model) 인코더와 같은, HEVC와 유사한 기술들을 사용하는 인코더를 도시할 수 있다.
인코딩되기 전에, 비디오 시퀀스는 프리-인코딩 처리(101)를 거칠 수 있다. 이것은 예를 들어 입력 컬러 픽처에 컬러 변환(예를 들어, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환)을 적용하거나 (예를 들어, 컬러 성분들 중 하나의 컬러 성분의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 성분들의 리매핑을 수행함으로써 수행된다. 메타데이터가 전처리와 관련되고 비트스트림에 첨부될 수 있다.
HEVC에서, 하나 이상의 픽처를 갖는 비디오 시퀀스를 인코딩하기 위해, 픽처는 하나 이상의 슬라이스로 파티션화되고(102), 각각의 슬라이스는 하나 이상의 슬라이스 세그먼트를 포함할 수 있다. 슬라이스 세그먼트는 코딩 유닛들, 예측 유닛들, 및 변환 유닛들로 조직된다. HEVC 사양은 "블록들"과 "유닛들"을 구별하며, "블록"은 샘플 어레이 내의 특정 영역(예를 들어, 루마, Y)을 어드레싱하고, "유닛"은 모든 인코딩된 컬러 성분들(Y, Cb, Cr, 또는 단색)의 병치된 블록들, 신택스 요소들, 및 블록들과 관련된 예측 데이터(예를 들어, 모션 벡터들)를 포함한다.
HEVC에서의 코딩을 위해, 픽처는 구성가능한 크기를 갖는 정사각형 형상의 코딩 트리 블록들(CTB)로 파티션화되고, 코딩 트리 블록들의 연속 세트는 슬라이스로 그룹화된다. 코딩 트리 유닛(CTU)은 인코딩된 컬러 성분들의 CTB들을 포함한다. CTB는 코딩 블록들(CB)로의 쿼드트리 파티셔닝의 루트이고, 코딩 블록은 하나 이상의 예측 블록들(PB)로 파티션화될 수 있고, 변환 블록들(TB)로의 쿼드트리 파티셔닝의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛들(PU), 및 변환 유닛들(TU)의 트리-구조화된 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하고, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다. 본 출원에서, 용어 "블록"은 예를 들어 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 것을 지칭하기 위해 사용될 수 있다. 또한, "블록"은 H.264/AVC 또는 다른 비디오 코딩 표준들에서 특정된 바와 같은 매크로블록 및 파티션을 지칭하기 위해, 더 일반적으로는 다양한 크기들의 데이터의 어레이를 지칭하기 위해 사용될 수도 있다.
인코더(100)의 예에서, 픽처는 아래에 설명되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는 CU들의 유닛들에서 처리된다. 각각의 CU는 인트라 또는 인터 모드를 사용하여 인코딩된다. CU가 인트라 모드에서 인코딩될 때, 그것은 인트라 예측(160)을 수행한다. 인터 모드에서, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(105) 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 예측 잔차들은 원래의 이미지 블록으로부터 예측 블록을 감산(110)함으로써 계산된다.
인트라 모드에서의 CU들은 동일한 슬라이스 내의 재구성된 이웃 샘플들로부터 예측된다. DC, 평면 및 33개의 각도 예측 모드들을 포함하는 35개의 인트라 예측 모드들의 세트가 HEVC에서 이용 가능하다. 인트라 예측 참조는 현재 블록에 인접한 행 및 열로부터 재구성된다. 참조는 이전에 재구성된 블록들로부터의 이용 가능한 샘플들을 사용하여 수평 및 수직 방향들에서 블록 크기의 2배에 걸쳐 연장된다. 각도 예측 모드가 인트라 예측에 사용될 때, 참조 샘플들은 각도 예측 모드에 의해 표시된 방향을 따라 복사될 수 있다.
현재 블록에 대한 적용가능한 루마 인트라 예측 모드는 2개의 상이한 옵션들을 사용하여 코딩될 수 있다. 적용가능한 모드가 6개의 최고 확률의 모드(MPM)의 구성된 리스트에 포함되면, 모드는 MPM 리스트 내의 인덱스에 의해 시그널링된다. 그렇지 않으면, 모드는 모드 인덱스의 고정 길이 이진화에 의해 시그널링된다. 6개의 최고 확률의 모드는 상부 및 좌측 이웃 블록들의 인트라 예측 모드들로부터 도출된다(아래의 표 1 참조).
Figure pct00001
인터 CU에 대해, 모션 정보(예를 들어, 모션 벡터 및 참조 픽처 인덱스)는 다수의 방법, 예를 들어, "병합 모드" 또는 "진보된 모션 벡터 예측(AMVP)"으로 시그널링될 수 있다.
병합 모드에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들에 기초하여 후보 리스트를 조립하고, 비디오 인코더는 후보 리스트 내의 후보들 중 하나에 대한 인덱스를 시그널링한다. 디코더 측에서, 모션 벡터(MV) 및 참조 픽처 인덱스는 시그널링된 후보에 기초하여 재구성된다.
AMVP에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들로부터 결정된 모션 벡터들에 기초하여 후보 리스트들을 조립한다. 그 후, 비디오 인코더는 모션 벡터 예측자(MVP)를 식별하기 위해 후보 리스트 내의 인덱스를 시그널링하고 모션 벡터 차이(MVD)를 시그널링한다. 디코더 측에서, 모션 벡터(MV)는 MVP+MVD로서 재구성된다. 적용가능한 참조 픽처 인덱스는 또한 AMVP에 대한 CU 신택스에서 명시적으로 코딩된다.
이어서, 예측 잔차들은 후술하는 크로마 양자화 파라미터를 적응시키기 위한 적어도 하나의 실시예를 포함하여 변환(125) 및 양자화(130)된다. 변환들은 일반적으로 분리가능한 변환들에 기초한다. 예를 들어, DCT 변환이 먼저 수평 방향으로, 이어서 수직 방향으로 적용된다. JEM과 같은 최근의 코덱들에서, 양 방향에서 사용되는 변환들은 상이할 수 있고(예를 들어, 하나의 방향에서 DCT, 다른 방향에서 DST), 이는 다양한 2D 변환들로 이어지는 반면, 이전의 코덱들에서는, 주어진 블록 크기에 대한 다양한 2D 변환들이 일반적으로 제한된다.
양자화된 변환 계수들뿐만 아니라, 모션 벡터들 및 다른 신택스 요소들은 비트스트림을 출력하기 위하여 엔트로피 코딩(145)된다. 인코더는 또한 변환을 스킵할 수 있고, 4x4 TU에 기초하여 비변환된 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 또한 변환 및 양자화 둘 다를 우회할 수 있는데, 즉 잔차는 변환 또는 양자화 프로세스의 적용 없이 직접 코딩된다. 직접 PCM 코딩에서는, 예측이 적용되지 않고, 코딩 유닛 샘플들은 비트스트림으로 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 참조를 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(140) 역변환된다(150). 디코딩된 예측 잔차들과 예측 블록을 조합하여(155), 이미지 블록이 재구성된다. 인-루프 필터들(165)이 재구성된 픽처에 적용되어, 예를 들어, 인코딩 아티팩트들을 감소시키기 위해 디블로킹/SAO(Sample Adaptive Offset) 필터링을 수행한다. 필터링된 이미지는 참조 픽처 버퍼(180)에 저장된다.
도 2는 HEVC 디코더와 같은 비디오 디코더(200)의 예의 블록도를 도시한다. 디코더(200)의 예에서, 비트스트림은 이하에서 설명되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행하는, 도 1에서 설명된 바와 같은 인코딩 패스(encoding pass)의 역인 디코딩 패스를 일반적으로 수행한다. 도 2는 또한, HEVC 표준에 대해 개선들이 행해지는 디코더, 또는 JEM 디코더와 같은, HEVC와 유사한 기술들을 사용하는 디코더를 도시할 수 있다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 먼저, 변환 계수들, 모션 벡터들, 픽처 파티셔닝 정보, 및 다른 코딩된 정보를 획득하기 위해 엔트로피 디코딩된다(230). 픽처 파티셔닝 정보는 CTU들의 크기, 및 CTU가 CU들로, 그리고 가능하게는 적용가능할 때 PU들로 분할되는 방식을 표시한다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 CTU들로, 그리고 각각의 CTU를 CU들로 분할할 수 있다(235). 변환 계수들은 후술하는 크로마 양자화 파라미터를 적응시키기 위한 적어도 하나의 실시예를 포함하여 역양자화되고(240), 예측 잔차들을 디코딩하기 위해 역변환된다(250).
디코딩된 예측 잔차들과 예측 블록을 조합하여(255), 이미지 블록이 재구성된다. 예측 블록은 인트라 예측(260) 또는 모션-보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 위에 설명된 바와 같이, AMVP 및 병합 모드 기술들은 참조 블록의 하위-정수 샘플들에 대한 보간된 값들을 계산하기 위해 보간 필터들을 사용할 수 있는 모션 보상을 위한 모션 벡터들을 도출하기 위해 사용될 수 있다. 인-루프 필터들(265)이 재구성된 이미지에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 포스트-디코딩 처리(285), 예를 들어, 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환) 또는 프리-인코딩 처리(101)에서 수행되는 리매핑 프로세스의 역을 수행하는 역 리매핑을 추가로 거칠 수 있다. 포스트-디코딩 처리는 프리-인코딩 처리에서 도출되고 비트스트림에서 시그널링되는 메타데이터를 사용할 수 있다.
도 3은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 블록도를 도시한다. 시스템(300)은 후술하는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고, 본 출원에서 설명되는 양태들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은 개인용 컴퓨터들, 랩탑 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 기록 시스템들, 접속된 가전 기기들, 인코더들, 트랜스코더들 및 서버들과 같은 다양한 전자 디바이스들을 포함하지만 이에 한정되지 않는다. 시스템(300)의 요소들은 단독으로 또는 조합하여 단일 집적 회로, 다수의 IC들 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 일 실시예에서, 시스템(300)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 개별 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(300)의 요소들은 내부 버스(310)를 통해 통신가능하게 결합된다. 다양한 실시예들에서, 시스템(300)은 예를 들어 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 다른 유사한 시스템들에 또는 다른 전자 디바이스들에 통신가능하게 결합된다. 다양한 실시예들에서, 시스템(300)은 위에서 설명되고 아래에 설명되는 바와 같이 수정되는 비디오 인코더(100) 및 비디오 디코더(200)와 같은, 본 명세서에서 설명되는 양태들 중 하나 이상을 구현하도록 구성된다.
시스템(300)은 예를 들어 본 명세서에 설명된 다양한 양태들을 구현하기 위해 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(301)를 포함한다. 프로세서(301)는 내장 메모리, 입출력 인터페이스, 및 이 분야에 공지된 다양한 다른 회로들을 포함할 수 있다. 시스템(300)은 적어도 하나의 메모리(302)(예를 들어, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(300)은 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지는 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(304)를 포함한다. 저장 디바이스(304)는 비제한적인 예들로서 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.
시스템(300)은 예를 들어 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(303)을 포함하고, 인코더/디코더 모듈(303)은 그 자신의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(303)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 공지된 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 다를 포함할 수 있다. 또한, 인코더/디코더 모듈(303)은 시스템(300)의 별개의 요소로서 구현될 수 있거나, 이 분야의 기술자들에게 공지된 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(301) 내에 통합될 수 있다.
본 명세서에 설명된 다양한 양태들을 수행하기 위해 프로세서(301) 또는 인코더/디코더(303) 상에 로딩될 프로그램 코드는 저장 디바이스(304)에 저장될 수 있고, 후속하여 프로세서(301)에 의한 실행을 위해 메모리(302) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(301), 메모리(302), 저장 디바이스(304) 및 인코더/디코더 모들(303) 중 하나 이상은 본 명세서에 설명된 프로세스들의 수행 동안 다양한 아이템들 중 하나 이상을 저장할 수 있다. 이러한 저장된 아이템들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 부분들, 비트스트림, 행렬들, 변수들, 및 방정식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이에 제한되지는 않는다.
몇몇 실시예들에서, 프로세서(301) 및/또는 인코더/디코더 모듈(303) 내부의 메모리는 명령어들을 저장하고 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(301) 또는 인코더/디코더 모듈(303) 중 어느 하나일 수 있음) 외부의 메모리는 이러한 기능들 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(302) 및/또는 저장 디바이스(304), 예를 들어 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예들에서, 외부 비휘발성 플래시 메모리는 텔레비전의 운영 체제를 저장하기 위해 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는 MPEG-2, HEVC, 또는 VVC와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(300)의 요소들에 대한 입력은 블록(309)에 나타낸 바와 같이 다양한 입력 디바이스들을 통해 제공될 수 있다. 이러한 입력 디바이스들은 (i) 예를 들어, 브로드캐스터에 의해 무선으로 송신되는 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 블록(309)의 입력 디바이스들은 이 분야에 공지된 바와 같은 각각의 입력 처리 요소들과 관련될 수 있다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하고(신호를 선택하거나, 신호를 주파수들의 대역으로 대역 제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향 변환하고, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역 제한하고, (iv) 하향 변환되고 대역 제한된 신호를 복조하고, (V) 에러 정정을 수행하고, (vi) 원하는 데이터 패킷들의 스트림을 선택하기 위해 역다중화하는 데 필요한 요소들과 관련될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소, 예를 들어 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 에러 정정기들 및 역다중화기들을 포함한다. RF 부분은 예를 들어 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 기저대역 근처의 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함하는 다양한 이러한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그의 관련 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신되는 RF 신호를 수신하고, 필터링, 하향 변환 및 필터링에 의해 다시 원하는 주파수 대역으로의 주파수 선택을 수행한다. 다양한 실시예들은 전술한 (및 다른) 요소들의 순서를 재배열하고, 이러한 요소들 중 일부를 제거하고/하거나, 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은 예를 들어 증폭기들 및 아날로그/디지털 변환기를 삽입하는 것과 같이 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 USB 및/또는 HDMI 접속들을 통해 시스템(300)을 다른 전자 디바이스들에 접속하기 위한 각각의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 양태들, 예를 들어, 리드-솔로몬 에러 정정은 예를 들어 별도의 입력 처리 IC 내에서 또는 필요에 따라 프로세서(301) 내에서 구현될 수 있다는 것을 이해해야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 양태들은 별도의 인터페이스 IC들 내에서 또는 필요에 따라 프로세서(301) 내에서 구현될 수 있다. 복조된, 에러 정정된 그리고 역다중화된 스트림은 예를 들어 프로세서(301), 및 출력 디바이스 상의 제시를 위해 필요에 따라 데이터-스트림을 처리하기 위해 메모리 및 저장 요소들과 조합하여 동작하는 인코더/디코더(303)를 포함하는 다양한 처리 요소들에 제공된다.
시스템(300)의 다양한 요소들은 통합 하우징 내에 제공될 수 있다. 통합 하우징 내에서, 다양한 요소들은 적절한 접속 배열, 예를 들어, I2C 버스, 배선, 및 인쇄 회로 보드들을 포함하는 이 분야에 알려진 바와 같은 내부 버스를 사용하여 상호접속되고 그들 사이에 데이터를 송신할 수 있다.
시스템(300)은 통신 채널(320)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(305)를 포함한다. 통신 인터페이스(305)는 통신 채널(320)을 통해 데이터를 송신 및 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 한정되지 않는다. 통신 인터페이스(305)는 모뎀 또는 네트워크 카드를 포함할 수 있지만, 이에 한정되지 않으며, 통신 채널(320)은 예를 들어 유선 및/또는 무선 매체 내에 구현될 수 있다.
다양한 실시예들에서, 데이터는 IEEE 802.11과 같은 Wi-Fi 네트워크를 사용하여 시스템(300)에 스트리밍된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 적응되는 통신 채널(320) 및 통신 인터페이스(305)를 통해 수신된다. 이러한 실시예들의 통신 채널(320)은 스트리밍 응용들 및 다른 오버-더-톱(over-the-top) 통신들을 허용하기 위해 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 통상적으로 접속된다. 다른 실시예들은 입력 블록(309)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 시스템(300)에 스트리밍된 데이터를 제공한다. 또 다른 실시예들은 입력 블록(309)의 RF 접속을 사용하여 시스템(300)에 스트리밍된 데이터를 제공한다.
시스템(300)은 디스플레이(330), 스피커들(340), 및 다른 주변 디바이스들(350)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(350)은, 실시예들의 다양한 예들에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(300)의 출력에 기초한 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 제어 신호들은 AV.Link, CEC, 또는 사용자 개입이 있거나 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 사용하여 시스템(300)과 디스플레이(330), 스피커들(340), 또는 다른 주변 디바이스들(350) 사이에서 통신된다. 출력 디바이스들은 각각의 인터페이스들(306, 307, 및 308)을 통한 전용 접속들을 통해 시스템(300)에 통신가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(305)를 통해 통신 채널(320)을 사용하여 시스템(300)에 접속될 수 있다. 디스플레이(330) 및 스피커들(340)은 예를 들어 텔레비전과 같은 전자 디바이스에서 시스템(300)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(306)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(330) 및 스피커(340)는 대안적으로, 예를 들어, 입력(309)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상으로부터 분리될 수 있다. 디스플레이(330) 및 스피커들(340)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다. 본 명세서에 설명된 구현들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현(예를 들어, 방법으로서만 논의됨)의 맥락에서만 논의되더라도, 논의되는 특징들의 구현은 또한 다른 형태들(예를 들어, 장치 또는 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍 가능 로직 디바이스를 포함하는, 일반적으로 처리 디바이스들을 지칭하는, 예를 들어 프로세서와 같은, 예를 들어 장치로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀폰들, 휴대용/개인 휴대 단말기들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
도 4는 가능한 인트라 서브 파티션(ISP) 모드의 예를 도시한다. ISP 모드는 인트라 예측에 사용되고, 코딩 유닛을 동일한 크기들의 2개 또는 4개의 변환 유닛으로 분할하는 것을 포함한다. 이 분할은 수평으로 또는 수직으로 수행된다. 분할은 표 2에 도시된 바와 같이 블록 크기에 의존한다. 기본적으로, 4x4는 분할될 수 없다. 크기 4x8 또는 8x4의 CU는 2개의 TU로 분할된다. 다른 CU들은 4개의 TU로 분할된다.
Figure pct00002
ISP 모드를 사용하여 코딩된 CU 내부에서, TU는 순차적으로 디코딩되고, 동일한 인트라 예측 모드를 사용하여 TU로부터 TU로 인트라 예측되며, 이는 CU 레벨에서 시그널링된다. 마지막으로, 잔차 코딩은 또한 인트라 서브 파티션 크기들에 따라 적응된다. 실제로, 서브 파티션들은 크기 1xN, Nx1, 2xN 또는 Nx2일 수 있고, 크기 1x16, 16x1, 2x8 또는 8x2의 코딩 그룹이 이러한 각각의 경우들에서 사용된다.
ISP 코딩 모드는 예를 들어 2개의 연속적인 플래그들을 통해 시그널링될 수 있다.
- intra_subpartitions_mode_flag는 주어진 인트라 CU에 대한 ISP 모드의 사용을 표시한다.
- intra_subpartitions_split_flag는 인트라 서브 파티션으로의 분할의 배향을 표시하고, 여기서 분할 방향이 CU 크기로부터 직접 추론될 수 없을 때, 0은 수평 분할을 나타내고 1은 수직 분할을 나타낸다.
도 5는 ISP 모드에서 사용되는 사전 정의된 변환 쌍의 예를 도시한다. 실제로, ISP가 주어진 인트라 CU에 대해 사용될 때, 사전 정의된 변환 쌍이 그러한 CU에 포함된 (2개 또는 4개의) TU들 각각을 코딩 및 디코딩하는 데 사용된다. 변환 쌍은 변환 블록의 차원에 따라 수평 또는 수직 방향들을 따라 적용되는 DCT2와 DST7 사이의 조합으로서 선택된다. 즉, 수평(trTypeHor) 및 수직(trTypeVer) 변환들은 다음과 같이 선택된다.
trTypeHor=(폭>=4 && 폭<=16) ? DST7:DCT2
trTypeVer=(높이>=4 && 높이<=16) ? DST7:DCT2
이러한 유형의 선택은 도 5에 도시된 바와 같이 DCT2와 DST7 사이의 조합들인 4개의 상이한 쌍들의 세트를 생성한다. 변환 유닛에 적용되는 분리 가능한 변환은 일차 변환이라고 한다.
일차 변환에 더하여, 소위 저주파수 분리 불가능 변환(LFNST, 이전에 분리 불가능 이차 변환(NSST)으로 알려짐)이 일부 경우들에서 일차 변환으로부터 발행된 변환 계수의 서브세트에 적용될 수 있다. LFNST는 비디오 코덱의 코딩 효율을 증가시킨다. 2개의 LFNST 변환 세트: 큰 잔차 블록들에 대해 하나 및 작은 잔차 블록들에 대해 하나가 정의될 수 있다. 각각의 세트에 대해, 변환들의 4개의 그룹이 정의되고, 각각의 그룹은 2개의 변환 행렬을 포함한다. 그룹의 선택은 인트라 예측 모드에 의존하고, 이하에서 LFNST 인덱스라고 불리는 변환 인덱스는 비트스트림에서 코딩된다. 일차 변환들과 달리, LFNST는 일부 큰 데이터세트 잔차 데이터로부터 학습함으로써 획득되는 훈련된 변환이다. 그러나, 전통적으로, LFNST 이차 변환은 ISP 모드에서 코딩된 인트라 CU의 경우에는 적용되지 않는다.
디코더 측에서, 역 LFNST 변환은 도 2의 단계 240과 단계 250 사이에서, 역 양자화 후에 그리고 역 일차 변환 전에 발생한다. 인코더에서, LFNST는 도 1의 단계 125와 단계 130 사이에서, 순방향 일차 변환과 양자화 스테이지 사이에 발생한다. LFNST는 2개의 가능한 분리 불가능 변환들: 4x4 LFNST 및 8x8 LFNST의 형태를 취할 수 있다. 4x4 LFNST는 작은 블록, 즉 min(폭, 높이)<8인 블록들에 대해 적용되고, 여기서 폭 및 높이는 블록의 폭 및 높이를 나타낸다. 8x8 LFNST는 더 큰 블록, 즉 min(폭, 높이)>4인 블록들에 적용된다.
순방향 4x4 LFNST는 다음과 같이 적용된다. 이것은 고려되는 변환 블록의 4x4 최저 주파수 서브 블록에 적용된다. 입력 16 계수는 16x1 벡터
Figure pct00003
로서 표현된다. LFNST 변환은 다음과 같은 연산으로 구성된다.
Figure pct00004
여기서, T는 16x16 행렬이고,
Figure pct00005
는 출력 변환 16x1 벡터이다. 이어서,
Figure pct00006
는 4x4 서브 블록으로서 재조직되고, 이는 스캐닝 순서에서 최저 주파수 코딩 그룹이 된다.
더 큰 블록들에 관하여, 8x8 LFNST는 다음과 같이 적용된다. 그것은 입력으로서 순방향 일차 변환된 블록인 3 상부-좌측 변환 4x4 서브 블록을 취한다. 따라서, 이것은 48개의 변환 계수들에 대응한다. 그 후 LFNST는 계수들의 48x1 벡터(X48)로 조직된, 스캐닝 순서에서의 48개의 최저 주파수 계수들에 적용된다. 따라서, 순방향 LFNST는 다음의 형태를 취한다.
Figure pct00007
디코더 측에서, T_16x48의 48x16 전치 행렬은 역양자화된 계수들에 적용되어 역 LFNST 변환을 수행한다.
4x4 LFNST 및 8x8 LFNST에 대해 각각, 4개의 LFNST 변환 세트가 사용될 수 있다. 이들 세트는 인트라 예측 모드에 기초하여 정의된다. 각각의 세트에 대해, 2개의 LFNST 변환 행렬(커널)이 사용될 수 있다. 사용된 변환 행렬은 LFNST 인덱스 신택스 요소를 통해 시그널링된다.
이후에 설명되는 실시예들은 전술한 내용을 염두에 두고 설계되었다.
적어도 하나의 실시예에서, 이차 변환은 인트라 서브 블록 파티션 모드에서 코딩 유닛의 변환 유닛들에 사용된다. 이것은 저주파수 대역들을 향해 변환 계수들의 에너지를 더 압축하여 압축의 효율을 증가시킴으로써, 양자화된 변환된 잔차 블록의 엔트로피 코딩을 훨씬 더 효율적이게 하는 것을 가능하게 한다. 상이한 실시예들은 일부 변형들과 함께 이러한 원리에 기초하여 아래에 설명된다.
도 6a는 인트라 서브 블록 파티션 모드에서 이차 변환을 사용할 때의 인코딩 프로세스의 예시적인 실시예를 하이-레벨에서 도시한다. 이 실시예는 예를 들어 도 3의 프로세서(301)에 의해 실행된다. 먼저, 단계 601에서, 프로세서(301)는 일차 변환을 코딩 유닛에 적용한다. 단계 602에서, 프로세서는 이차 변환이 사용되어야 하는지를 체크한다. 적어도 하나의 실시예에서, 이차 변환은 (예를 들어 도 6c에서 상세히 설명되는 바와 같이) LFNST이고, 테스트는 LFNST의 적용가능성의 전통적인 테스트이다. 적어도 하나의 실시예에서, 단계 602의 테스트는 도 6d 또는 도 6e의 프로세스에 따라 수행된다. 이차 변환이 사용되지 않아야 할 때, 프로세스는 종료하고, 코딩 유닛은 전통적으로 인코딩될 수 있다. 이차 변환이 사용되지 않아야 할 때, 프로세스는 단계 603에서 코딩 유닛에 대한 이차 변환의 사용을 시그널링한다. 그 후, 단계 604에서, 이차 변환이 결정되고 변환 유닛에 적용된다. 단계 604는 코딩 유닛의 모든 변환 유닛들에 대해 반복된다. 모든 변환 유닛들이 처리되었을 때, 단계 605에서, 프로세스는 종료하고, 코딩 유닛은 전통적으로 인코딩될 수 있다.
이차 변환의 사용의 시그널링은 상이한 메커니즘들을 통해 행해질 수 있다. 하나의 예시적인 실시예에서, 전용 플래그가 사용된다. 다른 실시예에서, 인덱스가 사용되며, 인덱스는 변환들의 리스트로부터 사용될 변환을 식별하는 값을 갖고, 제로 값은 이차 변환이 사용되지 않는 경우에 대응한다.
도 6b는 인트라 서브 블록 파티션 모드에서 이차 변환을 사용할 때의 디코딩 프로세스의 예시적인 실시예를 하이-레벨에서 도시한다. 이 실시예는 예를 들어 도 3의 프로세서(301)에 의해 실행된다. 먼저, 단계 650에서, 프로세서는 이차 변환이 시그널링되고 사용되어야 하는지를 체크한다. 적어도 하나의 실시예에서, 이차 변환은 (예를 들어, 도 6c에서 상세히 설명되는 바와 같이) LFNST이고, 테스트는 LFNST의 적용가능성의 전통적인 테스트이다. 적어도 하나의 실시예에서, 단계 650의 테스트는 도 6d 또는 도 6e의 프로세스에 따라 수행된다. 이차 변환이 사용되어야 할 때, 단계 660에서, 이차 변환이 코딩 유닛의 변환 유닛에 대해 결정되고 코딩 유닛의 변환 유닛에 적용된다. 단계 680에서, 변환 유닛에 대해 일차 역변환이 수행되고, 단계 690에서, 프로세스는 모든 TU들이 처리될 때까지 단계 650으로부터 반복한다. 그 후, 디코딩 프로세스는 전통적으로 계속되어 디코딩을 완료한다.
도 6c는 인트라 CU를 인트라 서브 블록 파티션 모드에서 코딩하고 LFNST를 이차 변환으로 사용하는 디코딩 프로세스의 예시적인 실시예를 도시한다. 이 실시예는 예를 들어 도 3의 프로세서(301)에 의해 실행된다. 적어도 하나의 실시예에 따르면, 인트라 서브 블록 파티션 모드에서 코딩된 인트라 CU에 대해 사용될 이차 변환은 LFNST이고, 그것의 사용은 인덱스 LFNST idx를 통해 시그널링되며: 인덱스가 제로일 때, LFNST는 사용되지 않고, 제로와 상이할 때, 인덱스는 변환들의 리스트에서 어느 변환이 사용되어야 하는지를 나타낸다.
먼저, 단계 609에서, 잔차들이 디코딩된다. 단계 610에서, 프로세서는 LFNST 인덱스가 CU에 대해 파싱되어야 하는지를 체크한다. 이 테스트는 LFNST 인덱스가 CU의 TU들에 대해 파싱되어야 하는지를 개별적으로 테스트하는 것을 수반한다. 이 테스트에 대한 OR 대안은 도 6d에 설명되고, AND 대안은 도 6e에 설명된다. LFNST 인덱스가 TU에 대해 파싱되어야 하는지의 결정에 관한 조건들은 전통적으로 사용되는 것들과 동일하다.
- 고려되는 성분에서의 CU 크기는 폭 및 높이에서 적어도 4이고;
- LFNST는 SPS 레벨에서 인에이블되고;
- CU 내의 유효 계수들의 수는 이중 트리 경우에 엄격하게 1보다 높거나, 단일 트리 경우에 엄격하게 2보다 높고;
- 고려되는 CU의 TU에서, 적어도 4x4 크기의 변환 블록에 대한 최저 주파수 4x4 코딩 그룹 이외의 4x4 코딩 그룹에서, 또는 4 또는 8과 동일한 크기의 정사각형 변환 블록 내의 7보다 큰 스캐닝 위치에 대해, 0이 아닌 양자화된 계수가 존재하지 않는다.
LFNST가 사용되지 않을 때, 단계 615에서 LFNST 인덱스는 0으로 설정된다. 이는 고려된 CU에 대해 LFNST가 적용되지 않고, 따라서 고려된 CU에 포함된 임의의 TU에서 LFNST가 적용되지 않는다는 것을 의미한다.
단계 620에서, LFNST 인덱스가 파싱된다. 그것이 0이면, 나중에 LFNST가 적용되지 않는다. 그것이 0과 상이하면, 나중에 대응하는 LFNST 변환이 적용된다.
단계 630에서, 역양자화가 전통적으로 수행되고, TU들을 카운트하기 위한 인덱스가 단계 640에서 0으로 설정된다. 단계 650에서, LFNST 인덱스가 테스트되고, (0과 동일할 때) LFNST가 사용되지 않는다는 것을 표시하는 플래그 및 어느 변환이 사용되어야 하는지를 표시하는 값 둘 다로서 작용한다. LFNST 인덱스가 0과 상이하면, 역 LFNST(이차 변환)가 디코더 측에서 단계 660에서 수행된다. 이것은, 루마 및 크로마 성분들 사이의 공유 코딩 트리의 경우에, CU에 포함된 크로마 변환 블록뿐만 아니라, 고려된 CU에 포함된 2 또는 4개의 루마 변환 블록들을 포함한다. 그 후, 단계 670에서, 일차 변환들의 쌍이 전통적으로 결정되고, 현재 TU에 대해 역 일차 변환이 적용된다. 단계 690에서, 프로세스는 프로세스를 종료하기 전에 모든 TU가 처리되었다는 것을 검증하거나, 적어도 하나의 TU가 처리되지 않았을 때 단계 650으로부터 반복한다.
VVC에 적용될 때, 도 6c의 실시예는 코딩 유닛 신택스의 수정을 요구한다. 이 수정은 표 3에 예시되고 회색 배경에 의해 식별된다. 그것은 IntraSubPartitionSplitTypeISP_NO_SPLIT와 동일할 때에도 LFNST의 사용을 허가하기 위해 IntraSubPartitionSplitType에 관한 테스트를 제거하는 것을 포함한다. 그 결과, 이차 변환이 인트라 서브 블록 파티션 모드에서 사용된다.
Figure pct00008
도 6d 및 도 6e는 각각 "OR" 또는 "AND" 방식에서, LFNST 인덱스가 파싱되어야 하는지에 대한 테스트의 예시적인 실시예들을 도시한다. 이 테스트는 예를 들어 도 6a의 단계 602, 도 6b의 단계 650, 도 6c의 단계 610 및 655에서 사용된다. 도 6d의 테스트는 "OR" 방식으로 동작하여, CU의 TU들 중 하나에 대해 유효 조건이 검출되자마자, LFNST 인덱스는 파싱된다. 반대로, 도 6e의 테스트는 "AND" 방식으로 동작하여, CU의 TU들 중 하나에 대해 무효 조건이 검출되자마자, LFNST 인덱스는 파싱되지 않으며, 이는 LFNST 인덱스를 파싱하기 위해 모든 TU들에 대해 조건들이 유효해야 한다는 것을 의미한다.
도 7은 각각의 TU에 대해 사용되는 일차 역변환이 ISP 모드에서 코딩된 고려되는 CU와 관련된 LFNST 인덱스에 기초하여 도출되는 디코딩 프로세스의 예시적인 실시예를 도시한다. 이 실시예에서는, 루프가 ISP 인트라 CU 내의 각각의 TU에 대해 수행되고, 이차 변환이 사용되는지를 테스트한다. 이 실시예에서, 이것은 단계 710에서 LFNST 인덱스를 테스트함으로써 수행된다. LFNST 인덱스가 0일 때, 이 CU에 대한 인코딩에서 이차 변환이 사용되지 않았다. 이 경우, 단계 720에서, 일차 변환의 선택은 예를 들어 도 5의 표를 사용하여 전통적으로 수행된다. 이어서, 단계 730에서, 선택된 일차 변환이 TU에 적용되고, 프로세스는 단계 760에서 TU들에 대해 계속 루핑(looping)한다. 단계 710으로 돌아가서, LFNST 인덱스가 0과 상이할 때, 일차 변환에 대한 {DCT2, DCT2} 쌍과 조합하여 이차 변환이 사용된다. 이 경우, LFNST 인덱스에 따라 이차 변환이 식별되고, 단계 740에서 TU에 대해 역변환이 수행된다. 단계 750에서, TU에 대해 역 2D DCT2 변환이 수행된다. 모든 TU들이 처리되었을 때 프로세스는 종료된다.
도 8은 이차 변환의 선택이 미리 결정되는 디코딩 프로세스의 예시적인 실시예를 도시한다. 이 실시예에서는, LFNST에 대해 전통적으로 행해지는 바와 같이, LFNST에 대한 조건들이 충족되는지가 먼저 검증된다. 충족되지 않을 때, 단계 810에서, LFNST 인덱스는 0으로 설정된다. 충족될 때, LFNST 인덱스는 1로 설정된다. 즉, 이 실시예에서, 이차 변환은 미리 결정된다. 유일한 선택은 리스트 내의 제1 변환 쌍이다. 이전의 실시예에서와 같이, 이차 변환이 사용될 때, 사용될 일차 변환은 2D DCT2 쌍이다.
이 실시예의 변형에서, 다른 이차 변환을 선택하기 위해 ISP 모드에서 코딩된 인트라 CU의 경우에 디코더에 의해 다른 LFNST 인덱스 값이 추론될 수 있다.
도 9는 이차 변환의 선택이 미리 결정되고 이차 변환의 사용이 플래그에 의해 시그널링되는 디코딩 프로세스의 예시적인 실시예를 도시한다. 이전의 실시예들은 이차 변환의 사용을 나타내기 위해 0과 상이한 LFNST 인덱스의 값을 사용했지만, 이 실시예는 ISP 모드에서 코딩된 인트라 CU에 대한 LFNST의 사용을 시그널링하기 위해 전용 플래그를 사용한다. 이 경우, LFNST가 사용될 때(플래그가 참으로 설정됨), LFNST 인덱스는 고정된 값으로 추론된다. 하나의 예시적인 실시예에서, 이 고정된 값은 제1 변환 쌍을 선택하기 위해 1과 동일하다. 이전의 실시예와 유사하게, LFNST가 사용될 때, 현재 CU에 적용될 2D 일차 변환은 DCT2_DCT2로 추론된다.
도 10은 이차 변환의 사용이 암시적인 디코딩 프로세스의 예시적인 실시예를 도시한다. 도 7, 도 8 및 도 9의 이전 실시예들의 이러한 변형에서, LFNST의 사용은 암시적이고, 이차 변환의 선택은 명시적이고 LFNST 인덱스에 의해 운반된다. 더욱이, ISP에서 코딩된 인트라 CU의 경우에 2D 일차 변환은 DCT2_DCT2로 추론된다.
적어도 하나의 실시예에서, 인트라 ISP CU에 대한 LFNST의 사용은 고려된 CU의 크기에 의존한다. 예를 들어, CU의 폭 및 높이에서의 크기가 주어진 문턱값보다 작다면, 고려된 CU에 대해 LFNST이 사용되지 않는다. 실제로, LFNST의 사용을 허용하기 위해 행렬 기반 인트라 예측(MIP) 경우와 동일한 CU 크기에 관한 제약이 부과될 수 있다. VVC에 적용될 때, 이 실시예는 표 4에 예시되고 회색 배경에 의해 강조된 바와 같은 코딩 유닛 신택스의 수정을 요구한다.
Figure pct00009
변형 실시예에 따르면, LFNST는, ISP 모드가 고려된 CU에 대해 활성일 때, CU 크기가 폭 및 높이에서 16 이상인 경우에 허용된다.
변형 실시예에 따르면, LFNST는, ISP 모드가 고려된 CU에 대해 활성일 때, CU 크기가 폭 및 높이에서 32 이상인 경우에 허용된다.
통상적으로, 이 분야의 기술자는 폭 및 높이에서 4 이상인 블록 크기들에 대해 설계된 LFNST가 TU 크기들이 폭 및 높이에서 적어도 4와 동일하도록 CU 크기들에 대해 잘 작동할 수 있다는 것을 이해할 것이다.
적어도 하나의 실시예에서, ISP 모드에서 코딩된 인트라 CU에 대해 LFNST를 인에이블하기 위한 조건들은 고려된 CU의 ISP 모드에 따라 분할된 CU로부터 발행된 루마 변환 블록의 크기에 의존한다. tbWidth 및 tbHeight를 루마 변환 블록의 폭 및 높이라고 한다. 이 제안된 실시예에서, LFNST는 통상적으로 루마 변환 블록 크기가 폭 및 높이에서 적어도 4인 경우에 인에이블될 수 있다. VVC에 적용될 때, 이 실시예는 표 5에 예시되고 회색 배경에 의해 강조된 바와 같은 코딩 유닛 신택스의 수정을 요구한다.
Figure pct00010
도 11은 이차 변환의 사용이 TU 레벨에서 행해지는 디코딩 프로세스의 예시적인 실시예를 도시한다. 이 실시예에서는, 인트라 ISP 코딩 유닛의 경우에, LFNST 인덱스가 CU에 포함된 각각의 변환 유닛에 대해 시그널링된다. LFNST의 사용을 시그널링하기 위한 동일한 조건들은 LFNST 인덱스가 TU 레벨 상에서 시그널링되어 TU당 하나의 LFNST 인덱스가 시그널링되는 차이와 함께 전통적인 바와 같이 사용된다. 도 11에서 알 수 있는 바와 같이, 이 실시예에서, CU에 포함된 TU들에 걸친 루프는 각각의 TU에 대한 LFNST 인덱스의 파싱을 포함한다.
이 실시예의 결과로서, 고려된 CU에 포함된 TU들 사이에 상이한 일차 역변환이 사용될 수 있다. 이것은 이전의 실시예들에 비해 증가된 코딩 효율로 이어질 수 있는데, 그 이유는 ISP 모드에서 코딩된 코딩 유닛들 내부의 각각의 TU에 대한 LFNST의 할당에서 소정의 유연성이 도입되기 때문이다. 따라서, 인코더는 ISP 모드에서 인트라 CU에 사용될 최상의 코딩 모드를 찾기 위해 레이트 왜곡 최적화에 관한 더 많은 자유를 갖는다.
도 12a 및 도 12b는 이차 변환의 사용이 TU의 서브세트로 제한되는 디코딩 프로세스의 예시적인 실시예들을 도시한다. 이러한 실시예들에 따르면, LFNST 인덱스는 인트라 ISP 코딩 유닛들 내부의 TU-레벨에서, 그러나 코딩 유닛에 포함된 TU들의 서브세트에 대해 시그널링된다. 도 12a에 도시된 제1 변형에서, LFNST는 CU의 제1 TU에 대해 허용되지 않고, 변환의 전통적인 선택이 이 TU에 대해 사용될 수 있다. 그러나, CU의 다른 TU들에 대해, LFNST는 이전 실시예에서 설명된 바와 같이 허용되고 시그널링된다. 도 12b에 도시된 제2 변형에서, LFNST는 CU의 2개의 제1 TU에 대해 허용되지 않고, 변환의 전통적인 선택이 이 TU에 대해 사용될 수 있다. 그러나, CU의 다른 TU들에 대해, LFNST는 이전 실시예에서 설명된 바와 같이 허용되고 시그널링된다.
도 13은 ISP 모드에서 코딩된 인트라 CU 내의 TU들 간의 분할 비율이 변하는 예시적인 실시예를 도시한다. 이 실시예에서, ISP 모드는 인트라 CU를 4개 대신에 3개의 TU로 분할한다. 그러면, 부모 CU에 대한 TU 크기들은 수평 또는 수직인 고려된 분할 배향을 따라 1/4, 1/4 및 1/2일 수 있다. 이 실시예에서, 제3 TU만이 LFNST를 사용한다. 도 13에 도시된 예에서, 2개의 제1 TU는 부모 CU의 1/4과 동일한 크기를 갖는다. 이러한 TU들에 대해 일차 변환 유형의 전통적인 선택이 사용되지만 LFNST는 사용되지 않는다. 제3 TU는 CU 크기의 1/2과 동일한 크기를 갖는다. CU의 이 마지막 TU에 대해, DCT2는 일차 변환으로서 사용되고 LFNST는 허용된다. LFNST 인덱스는 이전의 실시예들에서 설명된 바와 같이 CU 레벨에서 또는 TU 레벨에서 시그널링될 수 있다.
이전에 제안된 실시예들의 변형 실시예들에서, 큰 블록 8x8 LFNST는 고려된 CU 크기의 절반 또는 1/4과 동일한 크기를 갖는 TU들에 LFNST를 적용하는 데 사용될 수 있다. 이전에 설명된 실시예들의 적어도 추가의 변형 실시예에서, 이러한 8x8 LFNST 기저 함수들은 또한 크기 2xN, Nx2, 1xN 또는 Nx1의 변환 블록들에 적용될 수 있으며, N은 0이 아닌 양의 정수 값이다.
이전에 제안된 실시예들의 변형 실시예들에서, CU 크기에 대한 제약들은 예를 들어 표 6을 사용하여, 더 큰 블록(통상적으로 8x8 블록들)에 대한 LFNST의 사용을 증가시키기 위해 변경된다.
Figure pct00011
새로운 경우들에서, 8x16 및 16x8 경우들은 2개의 결과적인 TU가 크기 8x8인 것과 같이 암시적으로 분할된다.
변형 실시예에서, ISP의 전통적인 분할 결정은 양 방향에서 적어도 4개의 샘플의 TU에 대한 LFNST를 선호하도록 수정된다. 즉, ISP 조건들은 예를 들어 1xN, Nx1, 2xN 및 Nx2를 금지하도록 변경된다.
추가 실시예에서, ISP 모드에서 코딩된 CU의 경우에 LFNST를 적용하기 위한 조건들은 VVC 드래프트 6 사양과 비교하여 수정된다. 실제로, TU는 하나 또는 여러 개의 변환 블록으로 이루어진다. VVC 드래프트 6의 경우에, 단일 트리 구성에서 코딩된 인트라 CU의 경우에 여러 개의 변환 블록이 TU에 포함된다. 단일 트리는 모든 루마 및 크로마 성분들에 대해, CTU를 코딩 유닛으로 파티션화하기 위해 단일 코딩 트리가 사용된다는 것을 의미한다. 따라서, CU는 이 경우에 루마 및 2개의 크로마 코딩 블록으로 이루어진다. 더욱이, 단일 TU로 이루어진 CU는 루마 및 2개의 크로마 변환 블록을 포함한다. VVC 드래프트 6에서, 그러한 CU에 대한 LFNST를 인에이블하는 하나의 조건은 CU 내의 적어도 하나의 변환 블록이 잔차 데이터를 포함하는 것이고, 여기서 마지막 유효 계수 위치, 즉 변환 블록 내의 최대 스캐닝 위치를 갖는 0이 아닌 변환 계수의 위치는 잔차 블록 내의 (0, 0) 위치가 아니다.
이 제안된 실시예에서, 코딩 유닛에 포함된 모든 루마 변환 블록들이 계수 위치 0과 상이한 마지막 유효 계수 위치를 갖는 경우에 ISP 모드에서 코딩된 CU에 대해 LFNST가 인에이블된다는 것을 언급하는 추가적인 조건이 추가된다.
추가 실시예에 따르면, LFNST 인덱스의 엔트로피 코딩은 고려된 인트라 코딩 유닛에 대한 ISP의 사용에 따라 수정된다. VVC 드래프트 6에서, LFNST는 2개의 이진 요소(빈)에 의해 시그널링된다. 제1 빈은 LFNST 인덱스가 0인지 여부를 나타내는데, 즉 현재 CU에 대해 LFNST가 사용되는지 여부를 나타낸다. 제1 빈이 1과 동일하면, 제2 빈은 LFNST 인덱스가 1과 동일한지 또는 2와 동일한지를 나타낸다. VVC 드래프트 6에서, 제1 빈은 컨텍스트-기반 코딩된다. 사용되는 CABAC 컨텍스트는 별개의 트리 모드가 고려된 CU에 대해 사용되는지 여부에 의존한다. 본 실시예에 따르면, LFNST 인덱스의 제1 빈을 시그널링하는 데 사용되는 컨텍스트는 또한 고려된 CU에 대해 ISP 모드가 오프인지 또는 온인지에 의존한다. 따라서, LFNST 인덱스의 제1 빈을 코딩하는 데 사용되는 컨텍스트들의 수는 이 실시예에서 VVC 드래프트 6에 비해 배가되며: 2개 대신에 4개의 컨텍스트가 사용된다.
더욱이, 추가 변형에 따르면, 추가된 CABAC 컨텍스트와 관련된 초기 조건 확률들은 인트라 슬라이스의 경우에 LFNST 인덱스가 0과 상이할 매우 낮은 확률을 나타내는 값으로 설정된다. 실제로, LFNST와 ISP 코딩 모드의 제안된 조합은 인터 픽처에서 압축 이익을 초래하지만, 인트라 픽처들에서는 이익이 훨씬 낮은 경향이 있다는 것이 관찰되었다.
추가 실시예에 따르면, LFNST와 ISP의 조합된 사용은 단일 트리 모드에서 코딩되는 인트라 코딩 유닛들에 대해서만 규범적으로 인에이블된다.
추가 실시예에 따르면, LFNST와 ISP의 조합된 사용은 INTRA 슬라이스들에서 코딩되는 인트라 코딩 유닛들에 대해서만 규범적으로 인에이블된다.
추가 실시예에 따르면, LFNST와 ISP의 조합된 사용은 단일 또는 이중 트리 모드에 관계없이 모든 인트라 코딩 유닛들에 대해 규범적으로 인에이블되지만, 이러한 모드의 조합은 단일 트리 경우에서만 인코더 측 레이트 왜곡 검색에 의해 후보 모드로서 평가된다.
추가 실시예에 따르면, LFNST와 ISP의 조합된 사용은 단일 또는 이중 트리 모드에 관계없이 모든 인트라 코딩 유닛들에 대해 규범적으로 인에이블되지만, 이러한 모드의 조합은 인트라 슬라이스들에서만 인코더 측 레이트 왜곡 검색에 의해 후보 모드로서 평가된다.
다양한 구현들은 디코딩을 수반한다. "디코딩"은, 본 출원에서 사용되는 바와 같이, 디스플레이에 적합한 최종 출력을 생성하기 위해, 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 디코더에 의해 통상적으로 수행되는 프로세스들, 예를 들어 엔트로피 디코딩, 역양자화, 역변환, 및 차분 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 이러한 프로세스들은 또한 또는 대안적으로, 본 출원, 예를 들어 도 6b 내지 도 13에 제시된 실시예들에서 설명되는 다양한 구현들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가의 예로서, 일 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차분 디코딩만을 지칭하며, 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차분 디코딩의 조합을 지칭한다. "디코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하는 것으로 의도되는지는 특정의 설명들의 맥락에 기초하여 명백할 것이며, 이 분야의 기술자들에 의해 잘 이해될 것으로 생각된다.
다양한 구현들은 인코딩을 수반한다. "디코딩"에 관한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은 인코딩된 비트스트림을 생성하기 위해, 예를 들어, 입력 비디오 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 인코더에 의해 통상적으로 수행되는 프로세스들, 예를 들어 파티셔닝, 차분 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 이러한 프로세스들은 또한 또는 대안적으로, 본 출원, 예를 들어, 도 6b 내지 도 13의 실시예들에서 설명되는 다양한 구현들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 일 실시예에서, "인코딩"은 엔트로피 인코딩만을 지칭하고, 다른 실시예에서, "인코딩"은 차분 인코딩만을 지칭하며, 다른 실시예에서, "인코딩"은 차분 인코딩과 엔트로피 인코딩의 조합을 지칭한다. "인코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 이 분야의 기술자들에 의해 잘 이해될 것으로 생각된다.
본 명세서에서 사용되는 바와 같은 신택스 요소들은 설명적 용어들이라는 점에 유의한다. 따라서, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
본 출원은 도구들, 특징들, 실시예들, 모델들, 접근법들 등을 포함하는 다양한 양태들을 설명한다. 이러한 양태들 중 다수는 구체적으로 설명되고, 적어도 개별 특성들을 보여주기 위해, 종종 제한으로 들릴 수 있는 방식으로 설명된다. 그러나, 이것은 설명의 명료성을 위한 것이고, 그러한 양태들의 응용 또는 범위를 제한하지 않는다. 실제로, 상이한 양태들 모두는 추가 양태들을 제공하기 위해 조합되고 교환될 수 있다. 더욱이, 양태들은 이전 출원들에서 설명된 양태들과 조합되고 교환될 수도 있다. 본 출원에서 설명되고 고려되는 양태들은 많은 상이한 형태들로 구현될 수 있다. 위의 도 1, 도 2 및 도 3은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되고, 도면들의 논의는 구현들의 범위를 제한하지 않는다.
본 출원에서, 용어 "재구성" 및 "디코딩"은 교환 가능하게 사용될 수 있고, 용어 "픽셀" 및 "샘플"은 교환 가능하게 사용될 수 있고, 용어 "이미지", "픽처" 및 "프레임"은 교환 가능하게 사용될 수 있고, 용어 "인덱스" 및 "idx"는 교환 가능하게 사용될 수 있다. 반드시는 아니지만 보통은, 용어 "재구성"은 인코더 측에서 사용되는 반면, "디코딩"은 디코더 측에서 사용된다.
다양한 방법들이 본 명세서에 설명되고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 단계들 또는 액션들의 특정 순서가 방법의 적절한 동작을 위해 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다.
다양한 수치 값들이 예를 들어 블록 크기들과 관련하여 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이고, 설명된 양태들은 이들 특정 값들로 제한되지 않는다.
"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"은 물론, 이들의 다른 변형들에 대한 참조는 실시예와 관련하여 설명되는 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서 전반의 다양한 장소들에서 나타나는 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서"라는 문구는 물론, 임의의 다른 변형들의 출현들은 반드시 모두가 동일 실시예를 지칭하는 것은 아니다.
또한, 본 출원 또는 그의 청구항들은 다양한 정보를 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원 또는 그의 청구항들은 다양한 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원 또는 그의 청구항들은 다양한 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은, "액세스하는 것"과 같이, 광의의 용어로 의도된 것이다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리 또는 광학 매체 저장소로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 통상적으로, 예를 들어, 정보를 저장하는 것, 정보를 처리하는 것, 정보를 송신하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 소거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것과 같은 동작들 동안, 하나의 방식 또는 다른 방식으로 수반된다.
예를 들어, "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)만의 선택, 또는 모든 3개의 옵션 (A 및 B 및 C)의 선택을 포함하도록 의도된다. 이것은 이 분야 및 관련 분야의 통상의 기술자에 의해 쉽게 명백한 바와 같이, 열거된 많은 아이템에 대해 확장될 수 있다.
이 분야의 기술자에게 명백한 바와 같이, 구현들은 예를 들어 저장되거나 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는 예를 들어 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 비트스트림을 운반하도록 포맷팅될 수 있다. 이러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 무선 주파수 부분을 사용하여) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는 예를 들어 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 바와 같은 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.

Claims (34)

  1. 비디오 인코딩 방법에 있어서,
    인트라 코딩 블록을 적어도 2개의 변환 블록들로 분할하는 단계,
    상기 코딩 블록의 상기 변환 블록들에 대해 제1 변환을 적용하는 단계(601), 제2 변환이 적용되어야 한다는 결정(602)에 응답하여:
    코딩 블록에 대한 제2 변환의 사용을 시그널링하는 단계(603),
    시그널링 정보로 상기 코딩 블록을 인코딩한 상기 코딩 블록의 상기 변환 블록들에 대해 제2 변환들을 수행하는 단계(604)
    를 포함하는, 방법.
  2. 비디오 디코딩 방법에 있어서,
    적어도 2개의 변환 블록들로 분할되는 코딩 블록(650)에 대한 제2 변환을 나타내는 정보에 응답하여:
    상기 코딩 블록의 상기 변환 블록들에 대해 제2 역변환(660)을 수행하는 단계, 및
    상기 코딩 블록의 상기 변환 블록들에 대해 제1 역변환들(680)을 수행하는 단계,
    상기 역변환 블록들을 디코딩하는 단계
    를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제2 변환은 저주파수 분리 불가능 변환인 것인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 변환은, 제2 변환이 적용될 경우에 2D DCT2 변환인 것인, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환들의 리스트 내의 인덱스로서 선택되는 것인, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환들의 리스트 내의 미리결정된 인덱스로서 선택되는 것인, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환들의 리스트 내의 상기 제1 변환으로서 선택되는 것인, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 코딩 블록의 크기가 폭과 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 코딩 블록의 크기가 폭 또는 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 방법.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 코딩 블록의 크기가 폭과 높이에서 문턱값보다 더 작을 때 적용되어야 하는 것인, 방법.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 변환 블록의 크기가 폭과 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 방법.
  12. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 변환 블록의 크기가 폭 또는 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 방법.
  13. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 변환 블록의 크기가 폭과 높이에서 문턱값보다 더 작을 때 적용되어야 하는 것인, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환 블록 레벨에서 선택되는 것인, 방법.
  15. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 제2 변환은 상기 코딩 블록의 변환 블록들의 서브세트에 대해서만 수행되는 것인, 방법.
  16. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 변환 블록들은 상이한 크기들을 갖고, 상기 제2 변환은 상기 코딩 블록의 최대 변환 블록에 대해서만 수행되는 것인, 방법.
  17. 비디오 인코딩 장치(100, 300)에 있어서,
    코딩 블록에 대해 제1 변환을 적용하기 위한 수단(601),
    인트라 코딩 블록을 적어도 2개의 변환 블록들로 분할하기 위한 수단,
    코딩 블록에 대해 제1 변환을 적용하기 위한 수단(601),
    제2 변환이 적용되어야 한다는 결정(602)에 응답하여:
    코딩 블록에 대한 제2 변환의 사용을 시그널링하기 위한 수단(603),
    시그널링 정보로 상기 코딩 블록을 인코딩한 상기 코딩 블록의 상기 변환 블록들에 대해 제2 변환들을 수행하기 위한 수단(604)
    을 포함하는, 장치.
  18. 비디오 디코딩 장치(200, 300)에 있어서,
    적어도 2개의 변환 블록들로 분할되는 코딩 블록(650)에 대한 제2 변환을 나타내는 정보에 응답하여:
    상기 코딩 블록의 상기 변환 블록들에 대해 제2 역변환(660)을 수행하기 위한 수단, 및
    상기 코딩 블록의 상기 변환 블록들에 대해 제1 역변환들(680)을 수행하기 위한 수단,
    상기 역변환 블록들을 디코딩하기 위한 수단
    을 포함하는, 장치.
  19. 제17항 또는 제18항에 있어서,
    상기 제2 변환은 저주파수 분리 불가능 변환인 것인, 장치.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 제1 변환은, 제2 변환이 적용될 경우에 2D DCT2 변환인 것인, 장치.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환들의 리스트 내의 인덱스로서 선택되는 것인, 장치.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환들의 리스트 내의 미리결정된 인덱스로서 선택되는 것인, 장치.
  23. 제17항 내지 제22항 중 어느 한 항에 있어서,
    상기 제2 변환은 변환들의 리스트 내의 상기 제1 변환으로서 선택되는 것인, 장치.
  24. 제17항 내지 제23항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 코딩 블록의 크기가 폭과 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 장치.
  25. 제17항 내지 제23항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 코딩 블록의 크기가 폭 또는 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 장치.
  26. 제17항 내지 제23항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 코딩 블록의 크기가 폭과 높이에서 문턱값보다 더 작을 때 적용되어야 하는 것인, 장치.
  27. 제17항 내지 제23항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 변환 블록의 크기가 폭과 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 장치.
  28. 제17항 내지 제23항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 변환 블록의 크기가 폭 또는 높이에서 문턱값보다 더 클 때 적용되어야 하는 것인, 장치.
  29. 제17항 내지 제23항 중 어느 한 항에 있어서,
    상기 제2 변환은, 상기 변환 블록의 크기가 폭과 높이에서 문턱값보다 더 작을 때 적용되어야 하는 것인, 장치.
  30. 제17항 내지 제29항 중 어느 한 항에 있어서,
    상기 제2 변환은 블록 레벨에서 선택되는 것인, 장치.
  31. 제17항 내지 제29항 중 어느 한 항에 있어서,
    상기 제2 변환은 상기 코딩 블록의 변환 블록들의 서브세트에 대해서만 수행되는 것인, 장치.
  32. 제17항 내지 제29항 중 어느 한 항에 있어서,
    상기 변환 블록들은 상이한 크기들을 갖고, 상기 제2 변환은 상기 코딩 블록의 최대 변환 블록에 대해서만 수행되는 것인, 장치.
  33. 프로세서에 의해 실행될 때 제1항 내지 제16항 중 적어도 하나의 항에 따른 방법의 단계들을 구현하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램.
  34. 프로세서에 의해 실행될 때 제1항 내지 제16항 중 적어도 하나의 항에 따른 방법의 단계들을 구현하기 위한 프로그램 코드 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체.
KR1020227006899A 2019-08-06 2020-07-27 비디오 인코딩 및 디코딩을 위한 이차 변환 KR20220036982A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
EP19306007.6 2019-08-06
EP19306007 2019-08-06
EP19306174.4 2019-09-23
EP19306174 2019-09-23
EP19306182.7 2019-09-24
EP19306182 2019-09-24
PCT/EP2020/071151 WO2021023552A1 (en) 2019-08-06 2020-07-27 Secondary transform for video encoding and decoding

Publications (1)

Publication Number Publication Date
KR20220036982A true KR20220036982A (ko) 2022-03-23

Family

ID=71728748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227006899A KR20220036982A (ko) 2019-08-06 2020-07-27 비디오 인코딩 및 디코딩을 위한 이차 변환

Country Status (8)

Country Link
US (1) US20220345744A1 (ko)
EP (1) EP4011073A1 (ko)
KR (1) KR20220036982A (ko)
CN (1) CN114208178A (ko)
BR (1) BR112022001333A2 (ko)
CA (1) CA3149102A1 (ko)
TW (1) TW202107897A (ko)
WO (1) WO2021023552A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202118299A (zh) * 2019-09-13 2021-05-01 法商內數位Vc控股法國公司 與其他轉換工具之最大轉換尺度互動
CN116600120A (zh) 2019-09-21 2023-08-15 Lg电子株式会社 解码设备、编码设备和数据发送设备
CN114731439A (zh) * 2019-11-01 2022-07-08 Lg 电子株式会社 基于变换的图像编译方法及其装置
KR20220106209A (ko) * 2019-12-12 2022-07-28 에이치에프아이 이노베이션 인크. 이미지 코딩에서 제한된 2차 변환 및 그의 시그널링을 위한 방법들 및 장치
WO2021141443A1 (ko) * 2020-01-10 2021-07-15 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
CN115606182A (zh) * 2020-03-25 2023-01-13 抖音视界有限公司(Cn) 使用增强二次变换的编解码视频处理

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
EP3443746B1 (en) * 2016-05-17 2021-07-21 ARRIS Enterprises LLC Template matching for jvet intra prediction
US11095893B2 (en) * 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
EP3462744A1 (en) * 2017-09-28 2019-04-03 Thomson Licensing Method and apparatus for encoding a picture block
US10827173B2 (en) * 2017-11-13 2020-11-03 Electronics And Telecommunications Research Institute Method and apparatus for quantization
US11240534B2 (en) * 2019-04-05 2022-02-01 Qualcomm Incorporated Extended multiple transform selection for video coding

Also Published As

Publication number Publication date
WO2021023552A1 (en) 2021-02-11
US20220345744A1 (en) 2022-10-27
BR112022001333A2 (pt) 2022-03-22
CA3149102A1 (en) 2021-02-11
EP4011073A1 (en) 2022-06-15
CN114208178A (zh) 2022-03-18
TW202107897A (zh) 2021-02-16

Similar Documents

Publication Publication Date Title
US20220345744A1 (en) Secondary transform for video encoding and decoding
KR20210087078A (ko) 블록의 표면에 기초한 비디오 인코딩 또는 디코딩을 위한 양자화
CN113228676A (zh) 在合并列表中运动矢量预测量候选排序
US20210400276A1 (en) Quantization for video encoding and decoding
KR20210018270A (ko) 비디오 인코딩 또는 디코딩을 위한 신택스 요소들
EP3664449A1 (en) Method and device for picture encoding and decoding
WO2020006338A1 (en) Method and apparatus for video encoding and decoding based on adaptive coefficient group
US20220116662A1 (en) Entropy coding for video encoding and decoding
WO2020185492A1 (en) Transform selection and signaling for video encoding or decoding
JP2022549312A (ja) コンテキストコード化bin(ccb)カウント方法の統合
EP3687172A1 (en) Multiple transforms selection signalling
US20230023837A1 (en) Subblock merge candidates in triangle merge mode
US20220150501A1 (en) Flexible allocation of regular bins in residual coding for video coding
WO2020096848A1 (en) Parameter grouping among plural coding units for video encoding and decoding
US20230024223A1 (en) Intra sub partitions for video encoding and decoding combined with multiple transform selection, matrix weighted intra prediction or multi-reference-line intra prediction
EP3664450A1 (en) Method and device for picture encoding and decoding
EP3595309A1 (en) Method and apparatus for video encoding and decoding based on adaptive coefficient group
EP4014490A1 (en) Quantization matrix prediction for video encoding and decoding
EP3891984A1 (en) Method and device for picture encoding and decoding
WO2020060864A1 (en) Multiple transforms selection signalling
KR20210028645A (ko) 다수의 영역에 대한 인-루프 필터

Legal Events

Date Code Title Description
N231 Notification of change of applicant