KR20220106209A - 이미지 코딩에서 제한된 2차 변환 및 그의 시그널링을 위한 방법들 및 장치 - Google Patents
이미지 코딩에서 제한된 2차 변환 및 그의 시그널링을 위한 방법들 및 장치 Download PDFInfo
- Publication number
- KR20220106209A KR20220106209A KR1020227022909A KR20227022909A KR20220106209A KR 20220106209 A KR20220106209 A KR 20220106209A KR 1020227022909 A KR1020227022909 A KR 1020227022909A KR 20227022909 A KR20227022909 A KR 20227022909A KR 20220106209 A KR20220106209 A KR 20220106209A
- Authority
- KR
- South Korea
- Prior art keywords
- lfnst
- current
- syntax
- tbs
- transform
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
저주파수 비-분리 변환(LFNST) 모드를 사용하는 비디오 코딩을 위한 방법 및 그의 장치가 개시된다. CU는 하나 이상의 변환 블록(TB)들로 파티셔닝된다. 신택스는 인코더 측 또는 디코더 측에서 결정되며, 결정 단계는 하나 이상의 조건들이 충족되면 인코더 측에서 신택스를 시그널링함으로써 또는 디코더 측에서 신택스를 파싱함으로써 수행된다. 신택스는 LFNST 모드가 현재 CU에 적용되는지 여부 및/또는 LFNSF가 적용될 때 어느 LFNST 커널이 적용되는지를 표시하고, 하나 이상의 조건들은, 타겟 TB 세트 내의 모든 타겟 TB들이 거짓으로서 TS 모드 표시를 갖는 것에 대응하는 타겟 조건을 포함하고, 타겟 TB 세트는 현재 CU에서 TB들로부터 선택된다. 현재 CU는 신택스에 의해 표시된 LFNST 모드에 따라 인코더 측에서 인코딩되거나 디코더 측에서 디코딩된다.
Description
본 출원은 2019년 12월 12일에 출원된 미국 가특허 출원 일련번호 제62/947,057호, 2019년 12월 18일에 출원된 미국 가특허 출원 일련번호 제62/949,505호 및 2020년 1월 11일에 출원된 미국 가특허 출원 일련번호 제62/959,938호에 대한 우선권을 주장한다. 이로써, 미국 가특허 출원들은 그 전체가 참조로 통합된다.
본 발명은 비디오 코딩에 관한 것이다. 특히, 본 발명은 저주파수 비-분리 변환(Low-Frequency Non-Separable Transform, LFNST) 모드 및 그의 시그널링에 대한 제한들을 개시한다.
HEVC(High-Efficiency Video Coding)는 JCT-VC(Joint Collaborative Team on Video Coding)에 의해 개발된 새로운 국제 비디오 코딩 표준이다. HEVC는 하이브리드 블록-기반 모션-보상 DCT형 변환 코딩 아키텍처에 기초한다. 코딩 유닛(coding unit, CU)으로 지칭되는 압축의 기본 단위는 2Nx2N 정사각형 블록이고, 각각의 CU는 미리 정의된 최소 크기에 도달할 때까지 4개의 더 작은 CU들로 회귀적으로 분할될 수 있다. 각각의 CU는 하나의 또는 다수의 예측 유닛(prediction unit, PU)들을 포함한다.
HEVC에서 하이브리드 코딩 아키텍처의 최상의 코딩 효율을 달성하기 위해, 각각의 PU에 대한 2개의 종류들의 예측 모드들, 즉 인트라 예측 및 인터 예측이 존재한다. 인트라 예측 모드들의 경우, 공간적 이웃의 재구성된 픽셀들은 방향성 예측들을 생성하는 데 사용될 수 있다. HEVC에서 최대 35개의 방향들이 존재한다. 인터 예측 모드들의 경우, 시간적 재구성된 기준 프레임들은 모션 보상된 예측들을 생성하는 데 사용될 수 있다. 스킵, 병합 및 인터 AMVP(Advanced Motion Vector Prediction) 모드들을 포함하는 3개의 상이한 모드들이 존재한다.
변환 프로세스
예측 후에, 하나의 CU에 대한 예측된 잔차는 변환 유닛(transform unit, TU)들로 분할되고, 변환 및 양자화를 사용하여 코딩된다. 많은 다른 선례 표준들과 같이, HEVC는 자신의 코어 변환(1차 변환)으로서 이산 코사인 변환 유형 II(Discrete Cosine Transform type II, DCT-II)를 채택하는데, 이는, 이것이 강한 "에너지 압축" 속성을 갖기 때문이다. 변환을 개선하기 위해, 비스듬한 인트라 모드들에 대해 DCT와 대안적으로 사용되도록 이산 사인 변환(Discrete Sine Transform, DST)이 도입되었다. 인터-예측된 잔차의 경우, DCT-II는 현재 HEVC에서 사용되는 유일한 변환이다. 그러나, DCT-II는 모든 경우들에 대한 최적의 변환은 아니다. 일부 경우들에서, DCT-II를 대체하기 위해, 이산 사인 변환 유형 VII(DST-VII) 및 이산 코사인 변환 유형 IVIII(DCT-VIII)가 제안된다. 또한, 다중 변환 선택(multiple transform selection, MTS) 방식은 인트라 및 인터 코딩된 블록들 둘 모두에 대한 잔차 코딩을 위해 사용된다. 이는 HEVC의 현재 변환들 이외의 DCT/DST 패밀리들로부터의 다수의 선택된 변환들을 활용한다. 새롭게 도입된 변환 행렬들은 DCT-VIII이다. VVC에서, 코어 변환을 위한 다중 변환 선택(MTS)은 다음과 같이 설명된다.
HEVC에서 이용된 DCT-II에 부가하여, 다중 변환 선택(MTS) 방식이 잔차 코딩 인터 및/또는 인트라 코딩된 블록들에 대해 사용된다. 이는 DCT8(DCT-VIII)/DST7(DST-VII)로부터의 다수의 선택된 변환들을 사용한다. 새롭게 도입된 변환 행렬들은 DST-VII 및 DCT-VIII이다. 하기 표 1은 선택된 DST/DCT의 기본 함수들을 보여준다.
[표 1]
표 1: N-포인트 입력에 대한 DCI-II/III 및 DSTVII의 변환 기본 함수들
변환 행렬의 직교성을 유지하기 위해, 변환 행렬들은 HEVC의 변환 행렬들보다 더 정확하게 양자화된다. 변환된 계수들의 중간 값들을 16-비트 범위 내에 유지하기 위해, 수평 변환 후 및 수직 변환 후에, 모든 계수들이 10-비트로 유지된다.
MTS 방식을 제어하기 위해, 별개의 인에이블 플래그들이 인트라 및 인터 모드에 대해 SPS 레벨에서 각각 특정된다. MTS가 SPS에서 인에이블될 때, 현재 CU에 대한 수평 및 수직 방향들에 대한 변환 유형들을 표시하는 변환 모드를 표시하기 위해 CU 레벨 인덱스가 시그널링된다. 여기서, MTS는 루마에 대해서만 적용된다. MTS CU 레벨 인덱스(즉, mts_idx)는 폭 및 높이 둘 모두가 32 이하이고 CBF 플래그가 1과 동일할 때 시그널링될 수 있다.
MTS CU 인덱스가 0과 동일하면, DCT2가 양방향들에 적용된다. 그러나, MTS CU 인덱스가 0보다 크면, 수평 및 수직 방향들에 대한 변환 유형들이 표 2에서 특정된다.
[표 2]
표 2: 변환 및 시그널링 맵핑 표
저-주파수 비-분리 변환(LFNST)
큰 크기의 DST-7 및 DCT-8의 복잡도를 감소시키기 위해, 32와 동일한 크기(폭 또는 높이, 또는 폭 및 높이 둘 모두)를 갖는 DST-7 및 DCT-8 블록들에 대해 고주파수 변환 계수들이 제로화된다. 16x16의 더 낮은 주파수 영역 내의 계수들만이 유지된다.
VVC에서는, 도 1에 도시된 바와 같이, 감소된 2차 변환으로 알려진 순방향 LFNST(low-frequency non-separable transform)(120)가 (인코더에서) 순방향 1차 변환(110)과 양자화(130) 사이에서 적용되고, 역 LFNST(150)가 (디코더 측에서) 역양자화(140)와 역 1차 변환(160) 사이에서 적용된다. LFNST에서, 블록 크기에 따라 4x4 비-분리 변환 또는 8x8 비-분리 변환이 적용된다. 예를 들어, 작은 블록들(즉, min(폭, 높이) < 8)에 대해 4x4 LFNST가 적용되고, 더 큰 블록들(즉, min(폭, 높이) > 4)에 대해 8x8 LFNST가 적용된다. 도 1에서, 점으로 채워진 영역(122)은 4x4 순방향 LFNST에 대한 16개의 입력 계수들 또는 8x8 순방향 LFNST에 대한 48개의 입력 계수들에 대응한다. 점으로 채워진 영역(152)은 4x4 역 LFNST에 대한 8 또는 16개의 입력 계수들, 또는 8x8 역 LFNST에 대한 8 또는 16개의 입력 계수들에 대응한다. 이 경우, 순방향 1차 변환에 대한 입력은 예측 잔차들이고, 역 1차 변환으로부터의 출력은 재구성된 잔차이다.
LFNST에서 사용되고 있는 비-분리 변환의 적용이 다음의 예에서 설명된다. 4x4 LFNST를 적용하기 위해, 4x4 입력 블록 X,
비-분리 변환은 로서 계산되며, 여기서, 는 변환 계수 벡터를 표시하고, T는 16x16 변환 행렬이다. 16x1 계수 벡터 는 후속하여, 그 블록에 대한 스캐닝 순서(즉, 수평, 수직 또는 대각선)를 사용하여 4x4 블록으로서 재구성된다. 더 작은 인덱스들을 갖는 계수들은 4x4 계수 블록에서 더 작은 스캐닝 인덱스들과 함께 배치될 것이다.
감소된 비-분리 변환
LFNST(low-frequency non-separable transform)는, 그것이 다수의 반복들 없이 단일 패스에서 구현되도록 비-분리 변환을 적용하기 위해 직접 행렬 곱셈 접근법에 기초한다. 그러나, 비-분리 변환 행렬 차원은 변환 계수들을 저장하기 위한 계산 복잡도 및 메모리 공간을 최소화하기 위해 감소될 필요가 있다. 따라서, 감소된 비-분리 변환(또는 RST) 방법이 LFNST에서 사용된다. 감소된 비-분리 변환의 주요 아이디어는 N 차원 벡터를 상이한 공간의 R 차원 벡터에 맵핑하는 것이며, 여기서 N/R(R < N)은 감소 팩터이고 N은 일반적으로 8x8 NSST(비-분리 2차 변환들)에 대해 64와 동일하다. 따라서, NxN 행렬 대신에, RST 행렬은 다음과 같이 RxN 행렬이 된다:
여기서 변환의 R개의 행들은 N 차원 공간의 R개의 베이스들이다. RT에 대한 역변환 행렬은 그의 순방향 변환의 전치이다. 8x8 LFNST의 경우, 4의 감소 팩터가 적용된다. 이러한 경우, 8x8 비-분리 변환 행렬에 대해 통상적으로 사용되는 64x64 직접 행렬은 16x48 직접 행렬로 감소된다. 따라서, 48x16 RST 역행렬은 8x8 최상부-좌측 영역에서 코어(1차) 변환 계수들을 생성하기 위해 디코더 측에서 사용된다. 동일한 변환 세트 구성을 갖는 16x64 대신에 16x48 행렬들이 적용될 때, 이들 각각은 우측 최하부 4x4 블록을 제외한 최상부-좌측 8x8 블록 내의 3개의 4x4 블록들로부터 48개의 입력 데이터를 취한다.
감소된 차원의 도움으로, 모든 LFNST 행렬들을 저장하기 위한 메모리 사용량은 합리적인 성능 저하와 함께 10KB에서 8KB로 감소된다. 복잡도를 감소시키기 위해, LFNST는 제1 계수 서브-그룹 외부의 모든 계수들이 유의적이 아닌 경우에만 적용가능하도록 제한된다. 따라서, LFNST가 적용될 때 모든 1차-전용 변환 계수들은 0이어야 한다. 이는, 마지막-유의적 위치에 대한 LFNST 인덱스 시그널링의 컨디셔닝을 가능하게 한다. 따라서, 이는, 특정 위치들에서만 유의적 계수들을 체크하는 데 필요한, 현재 LFNST 설계에서의 여분의 계수 스캐닝을 회피한다. 픽셀 당 곱셈들의 관점들에서 LFNST의 최악의 경우의 핸들링은 4x4 및 8x8 블록들에 대한 비-분리 변환들을 각각 8x16 및 8x48 변환들로 제한한다. 이러한 경우들에서, LFNST가 16 미만의 다른 크기들에 대해 적용될 때, 마지막-유의적 스캔 위치는 8 미만이어야 한다. 4xN, Nx4 및 N >= 8의 형상을 갖는 블록들의 경우, 제안된 제한은 LFNST가 한 번만 적용되고 최상부-좌측 4x4 구역에만 적용된다는 것을 의미한다. LFNST가 적용될 때 모든 1차-전용 계수들이 0이기 때문에, 그러한 경우들에서 1차 변환들에 필요한 동작들의 수가 감소된다. 인코더 관점에서, 계수들의 양자화는 LFNST 변환들이 테스트될 때 현저하게 단순화된다. 레이트-왜곡 최적화된 양자화는 스캔 순서에서 많아야 8개 또는 16개의 계수들에 대해 수행되어야 하며, 나머지 계수들은 0이 되도록 강제된다.
LFNST 변환 선택
LFNST에서 변환 세트마다 총 4개의 변환 세트들 및 2개의 비-분리 변환 행렬들(커널들)이 존재한다. 인트라 예측 모드로부터 변환 세트로의 맵핑은 하기 표 3에 도시된 바와 같이 미리-정의된다. 3개의 CCLM(교차 컴포넌트 선형 모델) 모드들(즉, 81 <= predModeIntra <= 83에 의해 표시되는 바와 같은 INTRA_LT_CCLM, INTRA_T_CCLM 또는 INTRA_L_CCLM) 중 하나가 현재 블록에 대해 사용되는 경우, 변환 세트 0 또는 루마에 대한 인트라 예측 모드는 현재 크로마 블록에 대해 선택된다. 각각의 변환 세트에 대해, 선택된 (또는 비-분리 변환 행렬로 명명된) 비-분리 2차 변환 후보는 명시적으로 시그널링된 LFNST 인덱스에 의해 추가로 특정된다. 변환 세트 인덱스는 변환 계수들 이후 인트라 CU 당 한 번 비트스트림에서 시그널링된다.
[표 3]
표 3: 변환 선택 표
LFNST 인덱스 시그널링 및 다른 도구들과의 상호작용
LFNST는 제1 계수 서브-그룹 외부의 모든 계수들이 유의적이 아닌 경우에만 적용가능하도록 제한되므로, LFNST 인덱스(CU-레벨) 코딩은 마지막 유의적 계수의 위치에 의존한다. 또한, LFNST 인덱스는 콘텍스트 코딩된다. 그러나, LFNST 인덱스는 인트라 예측 모드에 의존하지 않고, 적어도 하나의 빈(bin)이 콘텍스트 코딩된다. 또한, LFNST는 루마 및/또는 크로마에 대한 인트라 및 인터 슬라이스들 둘 모두에서 인트라 CU에 대해 적용된다. 듀얼 트리가 인에이블되면, 루마 및 크로마에 대한 LFNST 인덱스들이 별개로 시그널링된다. 인터 슬라이스(즉, 듀얼 트리가 디스에이블됨)의 경우, 단일 LFNST 인덱스가 시그널링되고 루마 및/또는 크로마에 대해 사용된다.
64x64보다 큰 CU가 기존의 최대 변환 크기 제한(즉, 64x64 또는 구성에 따라 설정됨)으로 인해 묵시적으로 분할(TU 타일링)되는 것을 고려하면, LFNST 인덱스 탐색은 특정 수의 디코딩 파이프라인 스테이지들에 대해 4배만큼 데이터 버퍼링을 증가시킬 수 있다. 따라서, LFNST가 허용되는 최대 크기는 64x64 또는 최대 변환 크기로 제한된다. MTS는 LFNST가 오프인 경우에만 인에이블된다는 것에 유의한다.
JVET-P0058JVET-P0058 (T. Tsukuba 등의 "CE8-2.1: Transform Skip for Chroma with limiting maximum number of context-coded bin in TS residual coding," ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11, 16th Meeting: Geneva, CH, 1-11 October 2019, Document: JVET-P0058)에서 제안된 바와 같이, 크로마에 대한 변환 스킵(TS)을 도입하고 TS 잔차 코딩을 변환-스킵된 크로마 블록에 적용한다. 예를 들어, TS는 모든 크로마 샘플링 포맷들에서 크로마에 대해 인에이블된다. 또한, BDPCM(block-based delta pulse code modulation)이 TS를 사용하기 때문에, BDPCM은 TS 인에이블 조건이 충족되는 경우에만 인에이블될 수 있다. TS 인에이블 조건은, 블록 폭이 최대 변환 스킵 크기(MaxTsSize) 이하이고 블록 높이가 MaxTsSize 이하일 때를 의미하는 크기 제약을 포함한다. 조건이 충족되면, TS가 인에이블될 수 있다. MaxTsSize는 1 << ( log2_transform_skip_max_size_minus2 + 2 )와 동일한 고정 정수 또는 변수이고, 여기서 log2_transform_skip_max_size_minus2는 변환 스킵에 사용되는 최대 블록 크기를 특정한다. log2_transform_skip_max_size_minus2는 0 내지 3의 범위에 있을 것이고, 존재하지 않는 경우 0과 동일한 것으로 추론된다.
VVC에서, 루마에 대한 TS에 대한 크기 제약은, tbWidth <= MaxTsSize && tbHeight <= MaxTsSize이면 TS가 인에이블될 수 있다는 것이다.
VVC에서, 크로마에 대한 TS에 대한 크기 제약은, wC <= MaxTsSize && hC <= MaxTsSize이면 TS가 인에이블될 수 있다는 것이다.
전술된 제한들에서, wC = tbWidth / SubWidthC 및 hC = tbHeight / SubHeightC이다. tbwidth는 루마에 대한 블록 폭이고, tbHeight는 루마에 대한 블록 높이이다. 변수들 SubwidthC 및 SubHeightC는 크로마 포맷 샘플링 구조에 따라 다음의 표 4에서 특정되며, 이는 through chroma_format_idc 및 separate_colour_plane_flag를 통해 특정된다. chroma_format_idc, SubWidthC 및 SubHeightC의 다른 값들은 장래에 특정될 수 있다.
[표 4]
표 4: 변수들 SubWidthC 및 SubHeightC 규격
각각의 컴포넌트에 대한 변환 스킵 모드에 대한 상세한 시그널링 조건은 아래의 표 5에 나타난다.
[표 5]
표 5: 각각의 컴포넌트에 대한 변환 스킵 모드에 대한 시그널링 조건
위의 신택스 표에서, transform_skip_flag[ x0 ][ y0 ][ cIdx ]는 연관된 변환 블록에 변환이 적용되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 최상부-좌측 루마 샘플에 대한 고려된 변환 블록의 최상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다. 어레이 인덱스 cIdx는 컬러 컴포넌트에 대한 표시자를 특정하고; 이는 Y에 대해 0, Cb에 대해 1, 및 Cr에 대해 2와 동일하다. 1과 동일한 transform_skip_flag[ x0 ][ y0 ][ cIdx ]는 연관된 변환 블록에 변환이 적용되지 않음을 특정한다. 0과 동일한 transform_skip_flag[ x0 ][ y0 ][ cIdx ]는, 연관된 변환 블록에 변환이 적용되는지 여부에 대한 결정이 다른 신택스 요소들에 의존한다는 것을 특정한다.
transform_skip_flag[ x0 ][ y0 ][ cIdx ]가 존재하지 않을 때, 이는 다음과 같이 추론된다:
-
BdpcmFlag[ x0 ][ y0 ][ cIdx ]가 1과 동일하면, transform_skip_flag[ x0 ][ y0 ][ cIdx ]는 1과 동일한 것으로 추론된다.
-
그렇지 않으면 (BdpcmFlag[ x0 ][ y0 ][ cIdx ]가 0과 동일하면), transform_skip_flag[ x0 ][ y0 ][ cIdx ]는 0과 동일한 것으로 추론된다.
상기에서, BdpcmFlag[ x0 ][ y0 ][ cIdx ]는 루마 컴포넌트(즉, cIdx = 0) 또는 크로마 컴포넌트(즉, cIdx = 1 또는 2)에 대한 인트라 BDPCM 플래그에 대응하는 변수이다.
저주파수 비-분리 변환(LFNST) 모드 및 변환 스킵(TS) 모드를 사용하는 비디오 코딩을 위한 방법 및 장치가 개시된다. 본 발명에 따르면, 현재 픽처에서 현재 코딩 유닛(CU)과 관련된 입력 데이터가 수신되고, 여기서 CU는 하나 이상의 변환 블록(TB)들로 파티셔닝되고, 입력 데이터는 비디오 인코더 측에서 잔차 데이터에 대응하고, 입력 데이터는 비디오 디코더 측에서 현재 CU의 코딩된 데이터에 대응한다. 신택스는 인코더 측 또는 디코더 측에서 결정되며, 상기 신택스를 결정하는 것은 하나 이상의 조건들이 충족되면 인코더 측에서 신택스를 시그널링함으로써 또는 디코더 측에서 신택스를 파싱함으로써 수행된다. 신택스(예를 들어, LFNST 인덱스)는 LFNST 모드가 현재 CU에 적용되는지 여부 및/또는 LFNST 모드가 적용되는 경우 어느 LFNST 커널이 적용되는지를 표시하고, 하나 이상의 조건들은, 타겟 TB 세트 내의 모든 타겟 TB들이 거짓으로서 TS 모드 표시를 갖는 것에 대응하는 타겟 조건을 포함하고, 타겟 TB 세트는 현재 CU에서 TB들로부터 선택된다. 현재 CU는 신택스에 의해 표시된 LFNST 모드에 따라 인코더 측에서 인코딩되거나 디코더 측에서 디코딩된다. 일 실시예에서, 신택스는 LFNST 인덱스를 지칭한다.
일 실시예에서, 루마 분할 트리에서, 현재 CU는 루마 코딩 블록(VB)에 대응하고, 타겟 TB 세트는 하나 이상의 루마 TB들에 대응한다.
일 실시예에서, 크로마 분할 트리에서, 현재 CU는 하나 이상의 크로마 코딩 블록들에 대응하고, 타겟 TB 세트는 하나 이상의 크로마 TB들에 대응한다.
일 실시예에서, 단일 분할 트리에서, 현재 CU는 하나의 루마 코딩 블록 및 하나 이상의 크로마 코딩 블록들에 대응하고, 타겟 TB 세트는 하나 이상의 루마 TB들 및 하나 이상의 크로마 TB들에 대응한다.
일 실시예에서, 타겟 TB 세트는 현재 CU의 각각의 코딩 블록(CB)에 대한 제1 변환 TB(들)를 포함한다. 예를 들어, 루마 분할 트리에서, 타겟 TB 세트는 현재 CU의 루마 CB에 대한 제1 루마 TB를 포함한다. 다른 예의 경우, 크로마 분할 트리에서, 타겟 TB 세트는 현재 CU의 Cb CB에 대한 제1 Cb TB 및 현재 CU의 Cr CB에 대한 제1 Cr TB를 포함한다. 다른 예의 경우, 단일 분할 트리에서, 타겟 TB 세트는 현재 CU의 루마 CB에 대한 제1 루마 TB, 현재 CU의 Cb CB에 대한 제1 Cb TB 및 현재 CU의 Cr CB에 대한 제1 Cr TB를 포함한다.
일 실시예에서, LFNST 모드에 대한 신택스를 시그널링할지 또는 파싱할지를 기록하기 위해 변수가 사용된다. 다른 실시예에서, 신택스는, TS 모드 표시가 참일 때, 현재 CU에 적용되지 않는 LFNST 모드로서 추론된다.
일 실시예에서, 현재 CU에 대한 LFNST 인덱스가 0과 동일하면, LFNST 모드는 현재 CU 내의 TB에 대해 사용되지 않고, 0보다 큰 값을 갖는 LFNST 인덱스는 저주파수 변환 행렬들 중 하나가 선택된 것을 표시한다.
도 1은 LFNST(Low-Frequency Non-Separable Transform)를 통합하는 비디오 코딩의 예를 예시한다.
도 2는 본 발명의 일 실시예에 따른 제한된 LFNST(Low-Frequency Non-Separable Transform) 시그널링을 통합하는 예시적인 코딩 시스템의 흐름도를 예시한다.
도 2는 본 발명의 일 실시예에 따른 제한된 LFNST(Low-Frequency Non-Separable Transform) 시그널링을 통합하는 예시적인 코딩 시스템의 흐름도를 예시한다.
다음의 설명은 본 발명을 수행하는 최선으로 고려되는 모드에 관한 것이다. 이러한 설명은 본 발명의 일반 원리들을 예시할 목적으로 이루어지며, 제한적인 의미로 취해지지 않아야 한다. 본 발명의 범위는 첨부된 청구항들을 참조하여 가장 잘 결정된다.
변환 스킵이 적용될 때 어떠한 변환 프로세스(1차/코어 변환 및/또는 2차 변환)도 사용되지 않을 것이기 때문에, LFNST와 변환 스킵의 조합들은 허용되지 않아야 한다. VVC 드래프트 7(B. Bross 등의, "Versatile Video Coding (Draft 7)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11, 16th Meeting: Geneva, CH, 1-11 Oct. 2019, Document: JVET-P2001)에서, 변환 스킵 모드에 대한 신택스는 TB 레벨에서 시그널링/파싱된다. 다른 한편으로, LFNST에 대한 신택스는 그 CU들/CB들 내의 모든 TU들/TB들이 시그널링/파싱된 후에 CU 레벨에서 시그널링/파싱된다. 따라서, (표 6a에 도시된 바와 같이) 현재 VVC 드래프트 텍스트에서, LFNST에 대한 시그널링/파싱 조건들은 다음과 같이 루마에 대한 변환 스킵 플래그를 고려한다. 다음의 신택스 표에 나타난 바와 같이, 기존의 조건들은, 그러한 조합을 방지하기 위한 루마 변환 스킵(즉, transform_skip_flag[ x0 ][ y0 ][ 0 ] == 0 )에 대한 체크를 포함한다. 이러한 체크를 위해, VVC 테스트 모델 버전 7(VTM7, J. Chen 등의 "Algorithm description for Versatile Video Coding and Test Model 7 (VTM 7)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11, 16th Meeting: Geneva, CH, 1-11 Oct. 2019, Document: JVET-P2002) 코드들은 VVC 드래프트 7과 일치하는 것으로 나타난다. JVET-P2001에 따른 잔차 코딩에 대한 신택스 표는 표 6b에 나타난다.
[표 6a]
표 6a: VVC 드래프트 7에서의 LFNST에 대한 조건 시그널링/파싱
[표 6b]
표 6b: VVC 드래프트 7에서의 잔차 코딩에 대한 신택스 표
LFNST 시그널링/파싱의 기존 조건에서, 2개의 문제들이 관찰된다. 하나의 문제는, 루마 및 크로마가 상이한 분할 트리들을 사용할 때, 현재 CU가 크로마 분할 트리에 있는 경우(즉, treeType == DUAL_TREE_CHROMA인 경우) 루마에 대한 변환 스킵 플래그(즉, transform_skip_flag [x0][y0][0])를 발견하지 못한다는 점이다. 다른 문제는 JVET-P0058에 개시된 바와 같이 크로마로의 변환 스킵의 확장에 의해 야기된다. 위에서 언급된 체크는 Cb 및 Cr 체크들을 포함하도록 확장되어야 한다. 문제들을 처리하기 위해 일부 방법들이 제안된다.
제안된 체크는 CU 내의 M개의 TB(들)의 변환 스킵 플래그(들)의 조건을 고려하는 것이다. 0과 동일하지 않은 하나 이상의 변환 계수 레벨들을 갖는 TB의 경우, TB에 대한 변환 스킵 플래그는 변환 동작들이 TB에 적용되는지 여부를 표시하기 위해 사용되고, 제안된 체크는 변환 스킵과 LFNST의 조합들로부터 TB를 방지하기 위해 사용된다. 이전에 언급된 바와 같이, 루마 분할 트리(DUAL_TREE_LUMA), 크로마 분할 트리(DUAL_TREE_CHROMA), 또는 단일 분할 트리(SINGLE_TREE)일 수 있는 대응하는 분할 트리에서, 현재 CU에 하나 이상의 TB들이 존재한다. M개의 TB(들)는 타겟 TB들로 지칭되는 선택된 TB들의 세트에 대응한다. 타겟 TB 세트의 변환 스킵 플래그(들)의 조건이 체크된다. 체크를 통과한다는 것은 모든 M개의 TB들에 대한 변환 스킵 플래그(들)가 거짓(즉, 변환 스킵 플래그(들) 0)이라는 것을 의미하고; 다시 말해서, 체크를 통과하는 것은 타겟 조건(타겟 TB 세트 내의 모든 타겟 TB들이 거짓으로서 TS 모드 표시를 갖는 것에 대응함)이 충족됨을 의미한다. 즉, 선택된 TB(들) 중 어느 것도 변환 스킵 모드를 사용하지 않으면, 변환 스킵 모드 플래그(들) 조건이 충족된다. 체크를 통과한 후(즉, 변환 스킵 모드 플래그(들) 조건이 충족됨), 변환 스킵 모드와 관련된 LFNST에 대한 시그널링/파싱 조건들이 충족되고, LFNST에 대한 다른 시그널링/파싱 조건들이 또한 충족되면 LFNST에 대한 신택스가 시그널링/파싱될 수 있다.
일 실시예에서, M개의 TB(들)는 각각의 루마/크로마 분할 트리에서 제1 컴포넌트만을 포함한다. 제안된 신택스 표의 예는 표 7에 나타난다.
[표 7]
표 7: 본 발명의 일 실시예에 따른, LFNST에 대한 조건 시그널링/파싱의 예시적인 신택스 표
다른 실시예에서, 루마 및 크로마 컴포넌트들 둘 모두에 대해 사용되는 단일 분할 트리의 경우, M개의 TB(들)는 하나 이상의 컴포넌트들을 포함한다.
하나의 하위 실시예에서, M개의 TB(들)는 하나의 선택된 컴포넌트를 지칭한다. 예를 들어, M개의 TB(들)는 제1 컴포넌트를 지칭한다. 다른 예에서, M개의 TB(들)는 Y(즉, 루마 컴포넌트)를 지칭한다. 일 실시예에 따른 예시적인 신택스 표가 표 8에 나타난다. 다른 예에서, M개의 TB(들)는 분할 트리의 임의의 하나의 컴포넌트일 수 있다.
[표 8]
표 8: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 실시예에서, 분할 트리가 크로마 트리가 아닐 때(즉, 분할 트리가 Y(즉, 루마) 컴포넌트를 포함할 때), M개의 TB(들)은 Y(즉, 루마) TB(들)를 지칭한다. 일 실시예에 따른 예시적인 신택스 표가 표 9에 나타난다.
[표 9]
표 9 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 실시예에서, 크로마 분할 트리의 경우, M개의 TB(들)는 모든 크로마 컴포넌트들(예를 들어, Cb 및 Cr)을 포함한다. 크로마 컴포넌트들에 대한 임의의 변환 스킵 플래그가 거짓이면(즉, 0과 동일한 변환 스킵 플래그), 체크는 통과된다.
다른 실시예에서, 루마 분할 트리의 경우, M개의 TB(들)는 모든 컴포넌트들(예를 들어, Y)을 포함한다. 이러한 컴포넌트들에 대한 임의의 변환 스킵 플래그가 거짓이면(즉, 0과 동일한 변환 스킵 플래그), 체크는 통과된다. 이 실시예에 따른 예시적인 신택스 표가 표 10에 나타난다.
다른 실시예에서, 루마 및 크로마 컴포넌트들에 대해 사용되는 단일 트리의 경우, M개의 TB(들)는 모든 컴포넌트들(예를 들어, Y, Cb 및 Cr)을 포함한다. 이러한 컴포넌트들에 대한 임의의 변환 스킵 플래그가 거짓이면(즉, 0과 동일한 변환 스킵 플래그), 체크는 통과된다. 이 실시예에 따른 예시적인 신택스 표가 표 10에 나타난다.
[표 10]
표 10: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 실시예에서, 크로마 분할 트리의 경우, M개의 TB(들)는 모든 크로마 컴포넌트들(예를 들어, Cb 및 Cr)을 포함한다. 크로마 컴포넌트들에 대한 변환 스킵 플래그들 모두가 거짓이면(즉, 0과 동일한 변환 스킵 플래그), 체크는 통과된다.
다른 실시예에서, 루마 분할 트리의 경우, M개의 TB(들)는 모든 루마 컴포넌트들(예를 들어, Y)을 포함한다. 이러한 컴포넌트들에 대한 변환 스킵 플래그들 모두가 거짓이면(즉, 0과 동일한 변환 스킵 플래그), 체크는 통과된다. 이 실시예에 따른 예시적인 신택스 표가 표 11에 나타난다.
다른 실시예에서, 루마 및 크로마 컴포넌트들에 대해 사용되는 단일 트리의 경우, M개의 TB(들)는 모든 컴포넌트들(예를 들어, Y, Cb 및 Cr)을 포함한다. 이러한 컴포넌트들에 대한 변환 스킵 플래그들 모두가 거짓이면(즉, 0과 동일한 변환 스킵 플래그), 체크는 통과된다. 이 실시예에 따른 예시적인 신택스 표가 표 11에 나타난다.
또 다른 실시예에서, 상기 3개의 실시예들 중 2개 이상이 조합될 수 있다. 예를 들어, 조합된 실시예는, 분할 트리가 크로마 분할 트리가 아닐 때(예를 들어, DUAL_TREE_CHROMA에 대한 것이 아닌 경우) 루마 transform_skip_flag만을 체크할 수 있고, 분할 트리가 루마 분할 트리가 아닐 때(예를 들어, DUAL_TREE_LUMA에 대한 것이 아닌 경우) 크로마 transform_skip_flag만을 체크할 수 있다. 이 실시예에 따른 예시적인 신택스 표가 표 11에 나타난다.
[표 11]
표 11: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
상기 3개의 실시예들의 조합에 대한 다른 예시적인 신택스 표가 표 12에 나타난다.
[표 12]
표 12: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 실시예에서, 체크가 통과되지 않고, LFNST에 대한 신택스(예를 들어, LFNST 인덱스)는 시그널링/파싱되지 않는다.
하나의 하위 실시예에서, LFNST에 대한 신택스(LFNST 인덱스)는 0인 것으로 추론된다(즉, LFNST가 적용되지 않음).
다른 실시예에서, 체크가 통과되지 않은 경우를 처리하기 위해 하나의 비트스트림 준수가 요구된다. 비트스트림 준수는 다음과 같다. 체크가 통과되지 않을 때 lfnst_index의 값이 0보다 크지 않을 것이 비트스트림 준수의 요건이다. 하기에서, 비트스트림 준수의 예는 "M개의 TB(들)에 대한 변환 스킵 플래그(들), 여기서 M개의 TB(들)는 각각의 루마/크로마 분할 트리에서 제1 컴포넌트만을 의미함"을 체크하는 경우에 대해 예시된다. 비트스트림 준수의 요건은, 루마/크로마 분할 트리 각각에서 제1 컴포넌트에 대한 변환 스킵 플래그의 값이 1 초과일 때 lfnst_index의 값이 0 초과가 아닐 것에 대응한다(예를 들어, transform_skip_flag[x0][y0][chType], 여기서 treeType == DUAL_TREE_CHROMA이면, chType은 1(즉, Cb)을 표시하고; 그렇지 않으면, chType은 0(즉, Y)을 표시한다).
다른 실시예에서, LFNST에 대한 신택스를 시그널링/파싱할지 여부를 기록하기 위해 드래프트 텍스트 또는 소프트웨어에서 변수가 생성될 수 있다. 이 변수의 값은 본 발명에서 LFNST에 대한 하나 이상의 기존의 시그널링/파싱 조건들 및/또는 하나 이상의 제안된 체크들에 따라 업데이트된다. 예를 들어, 이 변수는 1로 초기화되고, 본 발명에서 LFNST에 대한 임의의 기존의 시그널링/파싱 조건 및/또는 하나 이상의 제안된 체크들이 충족되지 않으면, 이 변수는 0으로 변경되고, LFNST에 대한 신택스는 시그널링/파싱되지 않는다.
다른 실시예에서, 루마 및 크로마에 대한 상이한 분할 트리들에 대해 단일화 체크 메커니즘이 사용된다. 예를 들어, 루마 및 크로마가 듀얼 트리들(즉, 별개의 분할 트리들)을 사용할 때, 루마 CU는 루마 분할 트리에 있고, 크로마 CU는 크로마 분할 트리에 있다. 통합 메커니즘은, 현재 CU의 모든 컴포넌트들에 대한 변환 스킵 플래그(들) 중 임의의 하나가 변환 스킵을 사용하고 있으면 LFNST가 디스에이블된다는 것이다.
LFNST에 대한 현재 크기 제약으로 인해, 하나의 CU/CB가 하나의 TU/TB를 포함할 때 LFNST가 적용될 수 있다. 체크는 다수의 TU들/TB들 대신에 하나의 TU/TB에 대한 변환 스킵 플래그를 고려할 수 있다. 하나의 CU/CB가 다수의 TU들/TB들을 포함할 때, 제안된 체크는 그 CU/CB 내의 하나 이상의 TU들/TB들을 따른다. 일 실시예에서, 제안된 체크는 그 CU/CB 내의 모든 TU들/TB들에 따른다. 다른 실시예에서, 체크는 그 CU/CB 내의 TU들/TB들 중 임의의 하나(예를 들어, 제1 TU/TB 또는 마지막 TU/TB)에 따른다. 예를 들어, 루마 분할 트리에서, 타겟 TB 세트는 현재 CU의 루마 CB에 대한 제1 루마 TB를 포함한다. 다른 예의 경우, 크로마 분할 트리에서, 타겟 TB 세트는 현재 CU의 Cb CB에 대한 제1 Cb TB 및 현재 CU의 Cr CB에 대한 제1 Cr TB를 포함한다. 다른 예의 경우, 단일 분할 트리에서, 타겟 TB 세트는 현재 CU의 루마 CB에 대한 제1 루마 TB, 현재 CU의 Cb CB에 대한 제1 Cb TB 및 현재 CU의 Cr CB에 대한 제1 Cr TB를 포함한다. 다른 실시예에서, 체크는 그 CU/CB 내의 TU들/TB들의 임의의 서브세트에 따른다.
조인트 Cb/Cr 변환(JCCR)에서의 오버플로우는 JVET-N0054(J. Lainema, "CE7: Joint coding of chrominance residuals (CE7-1)," ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11, 14th Meeting: Geneva, CH, 19-27 Mar. 2019, Document: JVET-N0054)에서 처음 제안되었다. TrQuant.cpp, invTransformCbCr( )에서, 값 cb[x] = -32768은, Cr = -Cb 변환이 적용되는 경우 16-비트 데이터 유형을 오버플로우할 것이다. 구체적으로, 아래의 코드 라인:
else if ( signedMode == -2 ) { cr[x] = -cb[x]; }.
이를 수정하기 위한 하나의 방법은 여분의 조건을 추가하는 것일 수 있다. 예를 들어,
else if ( signedMode == -2 ) { cr[x] = (cb[x] == -32768) ? 32767 : -cb[x]; }
이는 규범적인 변화가 아니라 구현의 문제이다. 본 구현은 cb가 -32768과 동일할 때 +32768보다는 Cr = +32767을 설정함으로써 오버플로우를 야기하지 않을 것이다.
Cr 잔차를 32768보다는 32767로 설정하는 것은, 잔차가 예측에 추가되고 픽셀 비트 깊이로 클리핑된 후에는 차이를 만들지 않을 것이다. 이는 적어도, 최대 14 비트의 비트 깊이들에 대한 경우이다.
JCCR에서 이러한 오버플로우를 수정하기 위한 다른 방법은 CoeffMin을 -( 1 << 15 ) + 1로서 설정하는 것이다.
최소 및 최대 변환 계수 값들을 특정하는 변수들 CoeffMin 및 CoeffMax는 다음과 같이 도출된다:
CoeffMin = -( 1 << 15 )
CoeffMax = ( 1 << 15 ) - 1
게다가, LFNST의 사용은 일부 조건들 하에서 제한될 수 있다. 현재 설계에서, LFNST는 인트라 및 인터 슬라이스들 둘 모두의 인트라 CU, 및 루마 및/또는 크로마에 적용된다. 듀얼 트리가 인에이블되면, 루마 및 크로마에 대한 LFNST 인덱스들이 별개로 시그널링/파싱된다. 듀얼 트리가 디스에이블되는 인터 슬라이스의 경우, 단일 LFNST 인덱스가 시그널링/파싱되어 루마 및/또는 크로마에 대해 사용된다. 본 발명에서, 크로마 LFNST는 일부 경우들에서 디스에이블된다.
일 실시예에서, 단일 트리에 대해, 크로마 LFNST는 디스에이블된다.
하나의 하위 실시예에서, 크로마 LFNST가 디스에이블될 때, LFNST 인덱스는 여전히 시그널링/파싱되고 루마에 대해 사용될 수 있다.
다른 실시예에서, 크로마 LFNST는 디스에이블된다.
하나의 하위 실시예에서, 크로마 LFNST가 디스에이블될 때, LFNST 인덱스는 크로마 듀얼 트리에서 시그널링/파싱되지 않는다.
다른 실시예에서, TB를 포함하는 CU에 대한 LFNST 인덱스가 0보다 크더라도 LFNST는 TB에 대해 사용될 수 없다. LFNST가 사용될 수 있는지 여부를 표시하기 위해 변수 applyLfnstFlag가 생성된다. applyLfnstFlag가 0과 동일하면, LFNST가 사용될 수 없다. applyLfnstFlag가 1과 동일하면, LFNST가 사용될 수 있다.
예를 들어, 단일 트리에 대해, 크로마 LFNST는 디스에이블된다. 변수 applyLfnstFlag 는 다음과 같이 도출된다: (여기서, xTbY 및 yTbY는 TB에 대한 대응하는 루마 샘플 위치를 의미하고, cIdx는 TB에 대한 컴포넌트를 지칭하고(예를 들어, 0과 동일한 cIdx는 루마 컴포넌트를 나타내고, 1과 동일한 cIdx는 Cb 컴포넌트를 나타내고, 2와 동일한 cIdx는 Cr 컴포넌트를 나타냄), lfnst_idx는 CU에 대한 LFNST 인덱스이고, nTbW 및 nTbH는 TB의 폭 및 높이를 의미함)
- (1) treeType이 SINGLE_TREE와 동일하고, (2) lfnst_idx가 0과 동일하지 않고, (3) transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]가 0과 동일하고, (4) cIdx가 0과 동일하고, (5) nTbW 및 nTbH 둘 모두가 4 이상이면, applyLfnstFlag는 1로 설정된다. ((1) 내지 (5)의 임의의 서브세트가 이 조건에서 사용될 수 있음)
- 그렇지 않고 (1) treeType이 SINGLE_TREE와 동일하지 않고, (2) lfnst_idx가 0과 동일하지 않고, (3) transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]가 0과 동일하고, (4) nTbW 및 nTbH 둘 모두가 4 이상이면, applyLfnstFlag는 1로 설정된다. ((1) 내지 (4)의 임의의 서브세트가 이 조건에서 사용될 수 있음)
- 그렇지 않으면, applyLfnstFlag가 0으로 설정된다.
다른 예에서, 크로마 LFNST는 디스에이블된다. 변수 applyLfnstFlag 는 다음과 같이 도출된다:
- (1) lfnst_idx가 0과 동일하지 않고, (2) transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]가 0과 동일하고, (3) cIdx가 0과 동일하고, (4) nTbW 및 nTbH 둘 모두가 4 이상이면, applyLfnstFlag는 1로 설정된다. (1 내지 4의 임의의 서브세트가 이 조건에서 사용될 수 있음)
- 그렇지 않으면, applyLfnstFlag가 0으로 설정된다.
다른 하위 실시예에서, 하나 이상의 LFNST-관련 섹션들에서, applyLfnstFlag가 사용될 수 있다. 예를 들어, LFNST 인덱스는 드래프트 표준의 대응하는 섹션에서 참조된다.
8.7.4 스케일링된 변환 계수들에 대한 변환 프로세스
... applyLfnstFlag가 1과 동일할 때 //lfnst_idx는 0과 동일하지 않고 transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]는 0과 동일하고 nTbW 및 nTbH는 4 이상일 때 //, 다음이 적용된다:...
드래프트 표준에 기초한 위의 수정된 텍스트들에서, "//"의 쌍으로 둘러싸인 텍스트들은 삭제된 텍스트들을 표시한다.
8.7.3 변환 계수들에 대한 스케일링 프로세스
... x = 0..nTbW - 1, y = 0..nTbH - 1을 이용한 스케일링 변환 계수들 d[ x ][ y ]의 도출의 경우, 다음이 적용된다:
- 중간 스케일링 팩터 m[ x ][ y ]는 다음과 같이 도출된다:
- 다음 조건들 중 하나 이상이 참이면, m[ x ][ y ]는 16과 동일하게 설정된다:
- sps_scaling_list_enabled_flag는 0과 동일하다.
- pic_scaling_list_present_flag는 0과 동일하다.
- transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]는 1과 동일하다.
- scaling_matrix_for_lfnst_disabled_flag는 1과 동일하고 applyLfnstFlag는 1과 동일하다 // lfnst_idx[ xTbY ][ yTbY ]는 0과 동일하지 않음 // ...
드래프트 표준에 기초한 위의 수정된 텍스트들에서, "//"의 쌍으로 둘러싸인 텍스트들은 삭제된 텍스트들을 표시한다.
다른 실시예에서, 일부 경우들에서 크로마 LFNST가 디스에이블될 때, 하나의 CU 내의 각각의 TB를 파싱하기 전에 1로 초기화되고 그 CU 내의 임의의 TB가 DC 위치보다 큰 위치에 위치된 임의의 유의적 계수들(또는 마지막 유의적 계수)을 가지면 0으로 변경되는 LfnstDcOnly는 비-LFNST TB들에서 업데이트되지 않는다. 예를 들어, 크로마 LFNST는 단일 트리에 대해 디스에이블된다. 이어서, 비-LFNST TB들은 단일 트리에 대한 크로마 TB들을 포함한다. 신택스 표에서 대응하는 변화들의 예는 표 13에 나타난다.
[표 13]
표 13: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 예에서, 크로마 LFNST는 디스에이블되고, 비-LFNST TB들은 크로마 TB들을 포함한다. 신택스 표에서 대응하는 변화들의 예는 표 14에 나타난다.
[표 14]
표 14: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 실시예에서, 일부 경우들에서 크로마 LFNST가 디스에이블될 때, 하나의 CU 내의 각각의 TB를 파싱하기 전에 1로 초기화되고 그 CU 내의 임의의 TB가 LFNST 제로-아웃 영역에 위치된 임의의 유의적 계수들(또는 마지막 유의적 계수)을 가지면 0으로 변경되는 LfnstZeroOutSigCoeffFlag는 비-LFNST TB들에서 업데이트되지 않는다. 예를 들어, 크로마 LFNST는 단일 트리에 대해 디스에이블된다. 이어서, 비-LFNST TB들은 단일 트리에 대한 크로마 TB들을 포함한다. 신택스 표에서 대응하는 변화들의 예는 표 15에 나타난다.
[표 15]
표 15: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 예에서, 크로마 LFNST는 디스에이블되고, 비-LFNST TB들은 크로마 TB들을 포함한다. 신택스 표에서 대응하는 변화들의 예는 표 16에 나타난다.
[표 16]
표 16: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
표 11에 기초하여(이는 루마 TU들을 코딩할 때(예를 들어, DUAL_TREE_CHROMA에 대한 것이 아님) 루마 transform_skip_flag만을 체크하고, 크로마 TU들을 코딩할 때(예를 들어, DUAL_TREE_LUMA에 대한 것이 아님) 크로마 transform_skip_flag만을 체크하는 것을 의미함), 크로마 LFNST는 일부 경우들에서 디스에이블된다. 예를 들어, 단일 트리에 대해, 크로마 LFNST는 디스에이블된다. 제안된 신택스 표의 예는 표 17에 나타난다.
[표 17]
표 17: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
표 12에 기초한 제안된 신택스 표의 다른 예가 또한 표 18에 표현된다.
[표 18]
표 18: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
다른 예에서, 크로마 LFNST는 디스에이블된다. 제안된 신택스 표는 다음과 같이 나타난다. 제안된 신택스 표의 예는 표 19에 나타난다.
[표 19]
표 19: 본 발명의 일 실시예에 따른, LFNST에 대한 시그널링/파싱의 예시적인 신택스 표
VVC 드래프트 7에서, LFNST 및 MTS 인덱스들은 CU의 끝에서 코딩되며, 이는 디코더가 MTS 및 LFNST 인덱스들을 수신하기 전에 모든 3개의 컬러 컴포넌트들의 모든 계수들을 버퍼링할 필요가 있는 레이턴시 및 버퍼 문제들을 도입한다. 레이턴시 및 버퍼 문제들을 감소시키기 위해, CU의 제1 TB의 끝 또는 제1 컬러 컴포넌트의 하나 이상의 TB들의 끝에서 또는 CU의 제1 비-제로 TB(및 비-변환 스킵 TB)의 끝 또는 제1 컬러 컴포넌트의 하나 이상의 TB들(및 비-변환 스킵 TB)의 끝에서 MTS 및/또는 LFNST 인에이블 플래그 또는 인덱스(예를 들어, 디스에이블의 경우 0, 인에이블의 경우 1 및 2. 1 및 2는 상이한 1차 변환 또는 상이한 LFNST 행렬을 사용하는 것을 의미함)를 전송하는 것이 제안된다.
다른 실시예에서, CU의 제1 비-제로 TB(및 비-변환 스킵 TB)의 끝 또는 제1 컬러 컴포넌트의 하나 이상의 TB들(및 비-변환 스킵 TB)의 끝에서 MTS 및/또는 LFNST 인에이블 플래그 또는 인덱스를 전송하는 것이 제안된다. 일 예에서, 이는 단일 트리에만 적용될 수 있다. 단일 트리에서, LFNST 및 MTS 인덱스들은 루마 TB 이후에(또는 크로마 TB들 이전에) 시그널링/파싱된다. 단일 트리 및 ISP가 적용되는 경우, LFNST 및 MTS 인덱스들은 마지막 루마 TB 이후에(또는 크로마 TB들 이전에) 시그널링/파싱된다. 예를 들어, subTuInindex가 사용될 수 있다. subTuInindex가 NumIntraSubPartitions - 1과 동일하고, 현재 TB가 루마 TB이고, 현재 트리 유형이 단일 트리일 때, MTS 및 LFNST 인덱스들은 (하나 이상의 조건들이 충족되면) 시그널링/파싱된다.
다른 실시예에서, 단일 트리 경우에서, CU 내의 하나 이상의 루마 TB들의 끝에서 (또는 크로마 TB들 이전에) MTS 및/또는 LFNST 인에이블 플래그 또는 인덱스를 전송하는 것이 제안되는 한편; 루마 듀얼 트리에서, MTS 및/또는 LFNST 인덱스는 CU의 하나 이상의 루마 TB들의 끝에서(또는 CU의 끝에서) 시그널링/파싱되고; 크로마 듀얼 트리에서, MTS 및/또는 LFNST 인덱스는 CU에서 Cr TB들의 끝 이후(또는 CU의 끝에서) 시그널링/파싱된다. 단일 트리 및 ISP가 적용되는 경우, LFNST 및 MTS 인덱스들은 마지막 루마 TB 이후에(또는 크로마 TB들 이전에) 시그널링/파싱된다. 예를 들어, subTuInindex가 사용될 수 있다. subTuInindex가 NumIntraSubPartitions - 1과 동일하고, 현재 TB가 루마 TB이고, 현재 트리 유형이 단일 트리일 때, MTS 및 LFNST 인덱스들은 (하나 이상의 조건들이 충족되면) 시그널링/파싱된다.
다른 실시예에서, MTS 및/또는 LFNST 인에이블 플래그 또는 인덱스는, ISP 모드가 사용될 때 제1 TB에서(예를 들어, 제1 TB의 끝에서) 시그널링/파싱된다. 제안된 방법은 단일 트리에만 적용될 수 있다(예를 들어, 루마 듀얼 트리 또는 크로마 듀얼 트리에서 CU의 끝에서 MTS/LFNST 인덱스를 여전히 시그널링/파싱함).
전술된 방법에서, MTS 인덱스는 LFNST 인덱스 이후에 시그널링/파싱될 수 있다. LFNST가 사용되면(예를 들어, LFNST 인덱스가 0이 아닌 경우), MTS 인덱스는 0으로 추론된다. 다른 실시예에서, LFNST는 MTS 인덱스 시그널링/파싱 이후 시그널링/파싱될 수 있다. MTS가 사용되면(예를 들어, MTS 인덱스가 0이 아닌 경우), LFNST 인덱스는 0으로서 추론된다.
임의의 위에서 제안된 방법들이 조합될 수 있다.
상기의 임의의 분산들은 블록 폭 또는 블록 높이 또는 블록 영역으로 묵시적으로 결정되거나, CU, CTU, 슬라이스, 타일, 타일 그룹, SPS, PPS 또는 픽처 레벨에서 시그널링/파싱된 플래그에 의해 명시적으로 결정될 수 있다. 본 발명에서 "블록"은 TU/TB/CU/CB/PU/PB를 의미할 수 있다.
앞서 제안된 방법들 중 임의의 방법은 인코더들 및/또는 디코더들에서 구현될 수 있다. 예를 들어, 제안된 방법들 중 임의의 방법은 인코더의 인터/인트라/변환 코딩 모듈, 모션 보상 모듈, 디코더의 병합 후보 도출 모듈에서 구현될 수 있다. 대안적으로, 제안된 방법들 중 임의의 방법은 인코더의 인터/인트라/변환 코딩 모듈, 및/또는 모션 보상 모듈, 디코더의 병합 후보 도출 모듈에 결합된 회로로서 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 제한된 LFNST(Low-Frequency Non-Separable Transform) 시그널링/파싱을 통합하는 예시적인 인코딩/디코딩 시스템의 흐름도를 예시한다. 흐름도에 도시된 단계들은 인코더 측의 하나 이상의 프로세서들(예를 들어, 하나 이상의 CPU들) 상에서 실행가능한 프로그램 코드들로서 구현될 수 있다. 흐름도에 도시된 단계들은 또한 흐름도의 단계들을 수행하도록 배열된 하나 이상의 전자 디바이스들 또는 프로세서들과 같은 하드웨어 기반으로 구현될 수 있다. 이 방법에 따르면, 단계(210)에서 현재 픽처에서 현재 코딩 유닛(CU)과 관련된 입력 데이터가 수신되고, 여기서 CU는 하나 이상의 변환 블록(TB)들로 파티셔닝되고, 입력 데이터는 비디오 인코더 측에서 잔차 데이터에 대응하고, 입력 데이터는 비디오 디코더 측에서 현재 CU의 코딩된 데이터에 대응한다. 단계(220)에서 신택스는 인코더 측 또는 디코더 측에서 결정되며, 상기 신택스를 결정하는 것은 하나 이상의 조건들이 충족되면 인코더 측에서 신택스를 시그널링함으로써 또는 디코더 측에서 신택스를 파싱함으로써 수행된다. 신택스는 LFNST 모드가 현재 CU에 적용되는지 여부 및/또는 LFNSF 모드가 적용될 때 어느 LFNSF 커널이 적용되는지를 표시하고, 조건들은, 타겟 TB 세트 내의 모든 타겟 TB들이 거짓으로서 TS 모드 표시를 갖는 것에 대응하는 타겟 조건을 포함하고, 타겟 TB 세트는 현재 CU에서 TB들로부터 선택된다. 단계(230)에서 현재 CU는 신택스에 의해 표시된 LFNST 모드에 따라 인코더 측에서 인코딩되거나 디코더 측에서 디코딩된다.
도시된 흐름도는 본 발명에 따른 비디오 인코딩/디코딩의 예를 예시하도록 의도된다. 당업자는, 본 발명의 사상을 벗어나지 않으면서 본 발명을 실시하기 위해, 각각의 단계를 수정하거나, 단계들을 재배열하거나, 단계를 분할하거나, 또는 단계들을 조합할 수 있다. 본 개시내용에서, 본 발명의 실시예들을 구현하기 위한 예들을 예시하기 위해 특정 신택스 및 의미론들이 사용되었다. 당업자는 본 발명의 사상을 벗어나지 않으면서 신택스 및 의미론들을 동등한 신택스 및 의미론들로 대체함으로써 본 발명을 실시할 수 있다.
위의 설명은 당업자가 특정 애플리케이션 및 그 요건의 맥락에서 제공되는 본 발명을 실시할 수 있게 하기 위해 제시된다. 설명된 실시예들에 대한 다양한 수정들이 당업자들에게 명백할 것이며, 본 명세서에서 정의된 일반적인 원리들은 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 도시되고 설명된 특정 실시예들로 제한되도록 의도되는 것이 아니라, 본 명세서에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 부합할 것이다. 위의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다양한 특정 세부사항들이 예시된다. 그럼에도 불구하고, 본 발명이 실시될 수 있다는 것이 당업자들에 의해 이해될 것이다.
전술된 바와 같은 본 발명의 실시예는 다양한 하드웨어, 소프트웨어 코드들, 또는 이 둘의 조합으로 구현될 수 있다. 예를 들어, 본 발명의 실시예는 비디오 압축 칩에 통합된 하나 이상의 회로 회로들 또는 본 명세서에서 설명된 프로세싱을 수행하기 위한 비디오 압축 소프트웨어에 통합된 프로그램 코드일 수 있다. 본 발명의 실시예는 또한, 본 명세서에서 설명된 프로세싱을 수행하기 위해 디지털 신호 프로세서(DSP) 상에서 실행될 프로그램 코드일 수 있다. 본 발명은 또한, 컴퓨터 프로세서, 디지털 신호 프로세서, 마이크로프로세서, 또는 필드 프로그래밍가능 게이트 어레이(FPGA)에 의해 수행될 다수의 기능들을 수반할 수 있다. 이러한 프로세서들은, 본 발명에 의해 구현되는 특정 방법들을 정의하는 기계 판독가능 소프트웨어 코드 또는 펌웨어 코드를 실행함으로써, 본 발명에 따른 특정 작업들을 수행하도록 구성될 수 있다. 소프트웨어 코드 또는 펌웨어 코드는 상이한 프로그래밍 언어들 및 상이한 포맷들 또는 스타일들로 개발될 수 있다. 소프트웨어 코드는 또한, 상이한 타겟 플랫폼들을 위해 컴파일될 수 있다. 그러나, 소프트웨어 코드들의 상이한 코드 포맷들, 스타일들 및 언어들, 및 본 발명에 따라 작업들을 수행하도록 코드를 구성하는 다른 수단은 본 발명의 사상 및 범위를 벗어나지 않을 것이다. 전술된 바와 같은 본 발명의 실시예는 비디오 인코더 및 비디오 디코더에서 구현될 수 있다. 비디오 인코더 및 비디오 디코더의 컴포넌트들은 하드웨어 컴포넌트들, 메모리에 저장된 프로그램 명령들을 실행하도록 구성된 하나 이상의 프로세서들, 또는 하드웨어와 프로세서의 조합에 의해 구현될 수 있다. 예를 들어, 프로세서는 현재 픽처 내의 현재 블록을 포함하는 비디오 시퀀스와 연관된 입력 데이터의 수신을 제어하기 위한 프로그램 명령들을 실행한다. 프로세서에는 단일 또는 다수의 프로세싱 코어들이 구비된다. 일부 예들에서, 프로세서는 인코더 및 디코더의 일부 컴포넌트들의 기능들을 수행하기 위해 프로그램 명령들을 실행하고, 프로세서와 전기적으로 결합된 메모리는 프로그램 명령들, 블록들의 재구성된 이미지들에 대응하는 정보 및/또는 인코딩 또는 디코딩 프로세스 동안의 중간 데이터를 저장하기 위해 사용된다. 일부 실시예에서 메모리는 비일시적 컴퓨터 판독가능 매체, 예컨대, 반도체 또는 솔리드 스테이트 메모리, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 하드 디스크, 광학 디스크, 또는 다른 적절한 저장 매체를 포함한다. 메모리는 또한, 위에서 열거된 비일시적 컴퓨터 판독가능 매체 중 2개 이상의 조합일 수 있다.
본 발명은 본 발명의 사상 또는 본질적인 특성들로부터 벗어남이 없이 다른 특정 형태들로 구현될 수 있다. 설명된 예들은 모든 양태들에서 제한적인 것이 아닌 오직 예시적인 것으로 고려되어야 한다. 따라서, 본 발명의 범위는 전술한 설명에 의해서가 아니라 첨부된 청구항들에 의해 표시된다. 청구항들의 의미 및 균등 범위에 속하는 모든 변경들은 본 발명의 범위 내에 포함되어야 한다.
Claims (18)
- 비디오 시퀀스를 인코딩 또는 디코딩하기 위한 방법으로서,
저주파수 비-분리 변환(Low-Frequency Non-Separable Transform, LFNST) 모드 및 변환 스킵(Transform Skip, TS) 모드가 지원되고, 상기 방법은,
현재 픽처에서 현재 코딩 유닛(coding unit, CU)과 관련된 입력 데이터를 수신하는 단계 - 상기 CU는 하나 이상의 변환 블록(transform block, TB)으로 파티셔닝되고, 상기 입력 데이터는 비디오 인코더 측에서 잔차 데이터에 대응하고, 상기 입력 데이터는 비디오 디코더 측에서 상기 현재 CU의 코딩된 데이터에 대응함 -;
인코더 측 또는 디코더 측에서 신택스를 결정하는 단계 - 상기 신택스를 결정하는 단계는 하나 이상의 조건이 충족되면 상기 인코더 측에서 상기 신택스를 시그널링함으로써 또는 상기 디코더 측에서 상기 신택스를 파싱함으로써 수행되고, 상기 신택스는 상기 LFNST 모드가 상기 현재 CU에 적용되는지 여부 및 상기 LFNST 모드가 적용되는 경우 어느 LFNST 커널이 적용되는지, 중 적어도 하나를 표시하고, 상기 하나 이상의 조건은, 타겟 TB 세트 내의 모든 타겟 TB들이 거짓으로서 TS 모드 표시를 갖는 것에 대응하는 타겟 조건을 포함하고, 상기 타겟 TB 세트는 상기 하나 이상의 TB로부터 선택됨 -; 및
상기 신택스에 의해 표시된 바와 같이 상기 LFNST 모드에 따라 상기 인코더 측에서 상기 현재 CU를 인코딩하거나 상기 디코더 측에서 상기 현재 CU를 디코딩하는 단계
를 포함하는,
방법. - 제1항에 있어서,
루마 분할 트리(luma splitting tree)에서, 상기 현재 CU는 루마 코딩 블록에 대응하고, 상기 타겟 TB 세트는 하나 이상의 루마 TB에 대응하는 것인,
방법. - 제1항에 있어서,
크로마 분할 트리(chroma splitting tree)에서, 상기 현재 CU는 하나 이상의 크로마 코딩 블록에 대응하고, 상기 타겟 TB 세트는 하나 이상의 크로마 TB에 대응하는 것인,
방법. - 제1항에 있어서,
단일 분할 트리(single splittng tree)에서, 상기 현재 CU는 하나의 루마 코딩 블록 및 하나 이상의 크로마 코딩 블록에 대응하고, 상기 타겟 TB 세트는 하나 이상의 루마 TB 및 하나 이상의 크로마 TB에 대응하는 것인,
방법. - 제1항에 있어서,
상기 현재 CU는 하나의 루마 코딩 블록 또는 하나 이상의 크로마 코딩 블록 중 어느 하나에 대응하고, 상기 타겟 TB 세트는 상기 현재 CU의 모든 컴포넌트들에 대한 하나 이상의 TB에 대응하는 것인,
방법. - 제1항에 있어서,
상기 타겟 TB 세트는 상기 현재 CU의 각각의 코딩 블록에 대한 하나 이상의 제1 TB에 대응하는 것인,
방법. - 제1항에 있어서,
상기 LFNST 모드에 대한 상기 신택스를 시그널링할지 또는 파싱할지를 기록하기 위해 변수가 사용되는 것인,
방법. - 제1항에 있어서,
상기 신택스는, 상기 TS 모드 표시가 참일 때, 상기 현재 CU에 적용되지 않는 LFNST 모드로서 추론되는 것인,
방법. - 제1항에 있어서,
상기 현재 CU에 대한 LFNST 인덱스로서 지정된 상기 신택스가 0과 동일하면, 상기 LFNST 모드는 상기 현재 CU 내의 TB에 대해 사용되지 않고, 0보다 큰 값을 갖는 상기 LFNST 인덱스는 저주파수 변환 행렬들 중 하나가 선택된 것을 표시하는 것인,
방법. - 비디오 시퀀스를 인코딩 또는 디코딩하기 위한 장치로서,
저주파수 비-분리 변환(LFNST) 모드 및 변환 스킵(TS) 모드가 지원되고, 상기 장치는 하나 이상의 전자 회로 또는 프로세서를 포함하고, 상기 하나 이상의 전자 회로 또는 프로세서는,
현재 픽처에서 현재 코딩 유닛(CU)과 관련된 입력 데이터를 수신하고 - 상기 CU는 하나 이상의 변환 블록(TB)으로 파티셔닝되고, 상기 입력 데이터는 비디오 인코더 측에서 잔차 데이터에 대응하고, 상기 입력 데이터는 비디오 디코더 측에서 상기 현재 CU의 코딩된 데이터에 대응함 -;
인코더 측 또는 디코더 측에서 신택스를 결정하고 - 상기 신택스를 결정하는 것은 하나 이상의 조건이 충족되면 상기 인코더 측에서 상기 신택스를 시그널링함으로써 또는 상기 디코더 측에서 상기 신택스를 파싱함으로써 수행되고, 상기 신택스는 상기 LFNST 모드가 상기 현재 CU에 적용되는지 여부 및 상기 LFNST 모드가 적용되는 경우 어느 LFNST 커널이 적용되는지, 중 적어도 하나를 표시하고, 상기 하나 이상의 조건은, 타겟 TB 세트 내의 모든 타겟 TB들이 거짓으로서 TS 모드 표시를 갖는 것에 대응하는 타겟 조건을 포함하고, 상기 타겟 TB 세트는 상기 하나 이상의 TB로부터 선택됨 -;
상기 신택스에 의해 표시된 바와 같이 상기 LFNST 모드에 따라 상기 인코더 측에서 상기 현재 CU를 인코딩하거나 상기 디코더 측에서 상기 현재 CU를 디코딩하도록
배열되는 것인,
장치. - 제10항에 있어서,
루마 분할 트리(luma splitting tree)에서, 상기 현재 CU는 루마 코딩 블록에 대응하고, 상기 타겟 TB 세트는 하나 이상의 루마 TB에 대응하는 것인,
장치. - 제10항에 있어서,
크로마 분할 트리(chroma splitting tree)에서, 상기 현재 CU는 하나 이상의 크로마 코딩 블록에 대응하고, 상기 타겟 TB 세트는 하나 이상의 크로마 TB에 대응하는 것인,
장치. - 제10항에 있어서,
단일 분할 트리(single splittng tree)에서, 상기 현재 CU는 하나의 루마 코딩 블록 및 하나 이상의 크로마 코딩 블록에 대응하고, 상기 타겟 TB 세트는 하나 이상의 루마 TB 및 하나 이상의 크로마 TB에 대응하는 것인,
장치. - 제10항에 있어서,
상기 현재 CU는 하나의 루마 코딩 블록 또는 하나 이상의 크로마 코딩 블록 중 어느 하나에 대응하고, 상기 타겟 TB 세트는 상기 현재 CU의 모든 컴포넌트들에 대한 하나 이상의 TB에 대응하는 것인,
장치. - 제10항에 있어서,
상기 타겟 TB 세트는 상기 현재 CU의 각각의 코딩 블록에 대한 하나 이상의 제1 TB에 대응하는 것인,
장치. - 제10항에 있어서,
상기 LFNST 모드에 대한 상기 신택스를 시그널링할지 또는 파싱할지를 기록하기 위해 변수가 사용되는 것인,
장치. - 제10항에 있어서,
상기 신택스는, 상기 TS 모드 표시가 참일 때, 상기 현재 CU에 적용되지 않는 LFNST 모드로서 추론되는 것인,
장치. - 제10항에 있어서,
상기 현재 CU에 대한 LFNST 인덱스로서 지정된 상기 신택스가 0과 동일하면, 상기 LFNST 모드는 상기 현재 CU 내의 TB에 대해 사용되지 않고, 0보다 큰 값을 갖는 상기 LFNST 인덱스는 저주파수 변환 행렬들 중 하나가 선택된 것을 표시하는 것인,
장치.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962947057P | 2019-12-12 | 2019-12-12 | |
US62/947,057 | 2019-12-12 | ||
US201962949505P | 2019-12-18 | 2019-12-18 | |
US62/949,505 | 2019-12-18 | ||
US202062959938P | 2020-01-11 | 2020-01-11 | |
US62/959,938 | 2020-01-11 | ||
PCT/CN2020/135303 WO2021115387A1 (en) | 2019-12-12 | 2020-12-10 | Methods and apparatus for restricted secondary transform and signaling thereof in image coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220106209A true KR20220106209A (ko) | 2022-07-28 |
Family
ID=76329613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227022909A KR20220106209A (ko) | 2019-12-12 | 2020-12-10 | 이미지 코딩에서 제한된 2차 변환 및 그의 시그널링을 위한 방법들 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220385946A1 (ko) |
EP (1) | EP4074036A4 (ko) |
KR (1) | KR20220106209A (ko) |
CN (1) | CN114830655B (ko) |
TW (1) | TWI784369B (ko) |
WO (1) | WO2021115387A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230054294A1 (en) * | 2020-01-10 | 2023-02-23 | Lg Electronics Inc. | Transform-based image coding method and device for same |
EP4109902A4 (en) * | 2020-02-21 | 2023-03-22 | LG Electronics, Inc. | TRANSFORM-BASED IMAGE CODING METHOD AND RELATED DEVICE |
KR20230012534A (ko) * | 2020-05-11 | 2023-01-26 | 엘지전자 주식회사 | 영상 코딩 방법 및 그 장치 |
US11902531B2 (en) * | 2021-04-12 | 2024-02-13 | Qualcomm Incorporated | Low frequency non-separable transform for video coding |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9426466B2 (en) * | 2012-06-22 | 2016-08-23 | Qualcomm Incorporated | Transform skip mode |
US20140169452A1 (en) * | 2012-12-14 | 2014-06-19 | Electronics And Telecommunications Research Institute | Video encoding method and apparatus using the same |
US10681379B2 (en) * | 2015-09-29 | 2020-06-09 | Qualcomm Incorporated | Non-separable secondary transform for video coding with reorganizing |
US20180199062A1 (en) * | 2017-01-11 | 2018-07-12 | Qualcomm Incorporated | Intra prediction techniques for video coding |
WO2018166429A1 (en) * | 2017-03-16 | 2018-09-20 | Mediatek Inc. | Method and apparatus of enhanced multiple transforms and non-separable secondary transform for video coding |
US11240534B2 (en) * | 2019-04-05 | 2022-02-01 | Qualcomm Incorporated | Extended multiple transform selection for video coding |
EP3790275A4 (en) * | 2019-06-25 | 2022-03-16 | Wilus Institute of Standards and Technology Inc. | VIDEO SIGNAL PROCESSING METHOD AND APPARATUS USING SECONDARY TRANSFORMATION |
KR20220036982A (ko) * | 2019-08-06 | 2022-03-23 | 인터디지털 브이씨 홀딩스 프랑스 에스에이에스 | 비디오 인코딩 및 디코딩을 위한 이차 변환 |
MX2022005517A (es) * | 2019-11-13 | 2022-07-19 | Lg Electronics Inc | Metodo de codificacion de imagenes a base de transformacion y dispositivo para el mismo. |
US20220394257A1 (en) * | 2019-11-13 | 2022-12-08 | Lg Electronics Inc. | Transform-based image coding method and device therefor |
US20230063796A1 (en) * | 2019-12-29 | 2023-03-02 | Lg Electronics Inc. | Transform-based image coding method and device for same |
KR20220161381A (ko) * | 2020-03-24 | 2022-12-06 | 엘지전자 주식회사 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
-
2020
- 2020-12-10 EP EP20899036.6A patent/EP4074036A4/en active Pending
- 2020-12-10 CN CN202080085700.9A patent/CN114830655B/zh active Active
- 2020-12-10 US US17/783,954 patent/US20220385946A1/en active Pending
- 2020-12-10 KR KR1020227022909A patent/KR20220106209A/ko unknown
- 2020-12-10 WO PCT/CN2020/135303 patent/WO2021115387A1/en unknown
- 2020-12-11 TW TW109143841A patent/TWI784369B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2021115387A1 (en) | 2021-06-17 |
EP4074036A1 (en) | 2022-10-19 |
TW202131677A (zh) | 2021-08-16 |
CN114830655A (zh) | 2022-07-29 |
EP4074036A4 (en) | 2023-12-20 |
TWI784369B (zh) | 2022-11-21 |
CN114830655B (zh) | 2023-08-18 |
US20220385946A1 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11611779B2 (en) | Multiple secondary transform matrices for video processing | |
CN109089117B (zh) | 编码或解码视频数据的方法及装置 | |
CN114208190B (zh) | 视频编解码中缩减二次变换的矩阵的选择 | |
US11924469B2 (en) | Conditional signaling of reduced secondary transform in video bitstreams | |
CN113632493B (zh) | 变换跳过模式中的子块变换 | |
WO2021115387A1 (en) | Methods and apparatus for restricted secondary transform and signaling thereof in image coding | |
US11490086B2 (en) | Block dimension settings of transform skip mode | |
US11425380B2 (en) | Context modeling for residual coding | |
WO2021169994A1 (en) | Methods and apparatus for secondary transform signaling in video coding | |
KR20210149182A (ko) | 비디오 코딩 시스템에서 신택스 시그널링 및 참조 제약의 방법 및 장치 | |
US11228787B2 (en) | Signaling multiple transmission selection | |
KR20230069262A (ko) | 적응적 변환 타입의 공간 가변 변환 | |
CN114365490A (zh) | 高精度图像和视频编解码的系数缩放 | |
US11546595B2 (en) | Sub-block based use of transform skip mode | |
WO2017059787A1 (en) | Method and apparatus of palette index map coding for screen content coding | |
CN113826405B (zh) | 多个颜色分量的变换量化旁路模式的使用 |