KR20220016844A - 비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링 - Google Patents

비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링 Download PDF

Info

Publication number
KR20220016844A
KR20220016844A KR1020217039173A KR20217039173A KR20220016844A KR 20220016844 A KR20220016844 A KR 20220016844A KR 1020217039173 A KR1020217039173 A KR 1020217039173A KR 20217039173 A KR20217039173 A KR 20217039173A KR 20220016844 A KR20220016844 A KR 20220016844A
Authority
KR
South Korea
Prior art keywords
transform
video block
block
current video
tool
Prior art date
Application number
KR1020217039173A
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 KR20220016844A publication Critical patent/KR20220016844A/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/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/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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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

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

디지털 비디오 프로세스를 위한 디바이스들, 시스템들 및 방법들이 설명된다. 비디오 처리를 위한 한 예시적인 방법은, 비디오의 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환을 수행하는 단계는 현재 비디오 블록의 폭(W) 및/또는 높이(H)에 기초하여, 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계를 포함하며, 2차 변환 툴은 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함한다.

Description

비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링
관련 출원의 상호참조
적용가능한 특허법 및/또는 파리 협약에 따른 규칙들 하에서, 본 출원은 2019년 6월 7일 출원된 국제 특허 출원 번호 PCT/CN2019/090446호에 대한 우선권을 주장한다. 법에 따른 모든 목적을 위해, 앞서 언급된 출원들의 전체 개시내용은 본 출원의 개시내용의 일부로서 참조에 의해 포함된다.
기술 분야
이 특허 문서는, 비디오 처리 기술들, 디바이스들 및 시스템들에 관한 것이다.
비디오 압축에서의 진보에도 불구하고, 디지털 비디오는 여전히 인터넷 및 기타의 디지털 통신 네트워크에서 가장 큰 대역폭을 이용한다. 비디오를 수신하고 디스플레이할 수 있는 접속된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 이용에 대한 대역폭 수요는 계속 증가할 것으로 예상된다.
디지털 비디오 처리와 관련된 디바이스들, 시스템들 및 방법들. 설명되는 방법들은 기존의 비디오 코딩 표준들(예를 들어, HEVC(High Efficiency Video Coding)) 및 미래의 비디오 코딩 표준들 또는 비디오 코덱들 양쪽 모두에 적용될 수 있다.
한 대표적인 양태에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는데 이용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환을 수행하는 단계는 현재 비디오 블록의 폭(W) 및/또는 높이(H)에 기초하여, 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계를 포함하며, 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함한다.
또 다른 대표적인 양태에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는데 이용될 수 있다. 이 방법은, 비디오의 코딩 유닛의 현재 비디오 블록이 규칙에 따라 조건을 충족하는지에 관해 결정하는 단계, 및 결정에 따라 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 조건은 비디오의 하나 이상의 컬러 성분의 특성, 현재 비디오 블록의 크기, 또는 현재 비디오 블록의 잔차 블록의 일부의 계수들과 관련되며; 상기 규칙은, 상기 조건이 코딩된 표현에서의 2차 변환 툴에 관한 부가 정보의 존재를 제어한다는 것을 명시하고; 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함한다.
역시 또 다른 대표적인 양태에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는데 이용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서, 변환의 수행은, 현재 비디오 블록에 적용되는 파티션 트리 유형과는 무관한 규칙에 따라 2차 변환 툴의 이용 및/또는 2차 변환 툴과 관련된 정보의 시그널링을 결정하는 단계를 포함하고, 여기서, 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화 출력에 역 2차 변환을 적용하는 것을 포함한다.
역시 또 다른 대표적인 양태에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는데 이용될 수 있다. 이 방법은 비디오의 코딩 유닛의 현재 비디오 블록에 대해, 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계 ― 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는, 코딩 유닛의 단일 변환 유닛에 기초함 ―; 및 상기 결정에 기초하여 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함한다.
역시 또 다른 대표적인 양태에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는데 이용될 수 있다. 이 방법은, 비디오의 코딩 유닛의 현재 비디오 블록에 대해, 2차 변환 툴의 적용가능성 및/또는 2차 변환 툴과 관련된 부가 정보의 존재를 결정하는 단계 ― 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는 변환 유닛 레벨 또는 예측 유닛 레벨에서 이루어짐 ―; 및 상기 결정에 기초하여 비디오의 코딩된 표현의 현재 비디오 블록 사이의 변환을 수행하는 단계를 포함하고, 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전의 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화 출력에 역 2차 변환을 적용하는 것을 포함한다.
역시 또 다른 대표적인 양태에서, 전술된 방법은 프로세서-실행가능한 코드의 형태로 구현되어 컴퓨터-판독가능 프로그램 매체에 저장된다.
역시 또 다른 대표적인 양태에서, 전술된 방법을 수행하도록 구성되거나 동작가능한 디바이스가 개시된다. 디바이스는, 이 방법을 구현하도록 프로그래밍된 프로세서를 포함할 수 있다.
역시 또 다른 대표적인 양태에서, 비디오 디코더 장치는 여기서 설명된 방법을 구현할 수 있다.
개시된 기술의 상기 및 기타의 양태들 및 피처들은, 도면들, 상세한 설명 및 청구항들에서 더 상세하게 설명된다.
도 1은 한 예시적인 인코더의 블록도를 보여준다.
도 2는 67개의 인트라 예측 모드의 한 예를 나타낸다.
도 3은 4×4 블록들에 대한 ALWIP의 한 예를 도시한다.
도 4는 8×8 블록들에 대한 ALWIP의 한 예를 도시한다.
도 5는 8×4 블록들에 대한 ALWIP의 한 예를 도시한다.
도 6은 16×16 블록들에 대한 ALWIP의 한 예를 도시한다.
도 7은 예측 블록에 이웃한 4개의 기준 라인의 한 예를 도시한다.
도 8은 4×8 및 8×4 블록들의 분할의 한 예를 도시한다.
도 9는 4×8, 8×4, 4×4를 제외한 모든 블록의 분할의 한 예를 도시한다.
도 10은 JEM에서 2차 변환의 한 예를 도시한다.
도 11은 제안된 감축된 2차 변환(reduced secondary transform)(RST)의 한 예를 도시한다.
도 12는 순방향 및 역 감축된 변환들의 예들을 도시한다.
도 13은 16×48 행렬과의 순방향 RST 8×8 프로세스의 한 예를 도시한다.
도 14는 8×8 행렬에 대한 제로-아웃 영역의 한 예를 도시한다.
도 15는 서브블록 변환 모드들 SBT-V 및 SBT-H의 한 예를 도시한다.
도 16은 4×4 코딩 그룹에 대한 대각선 우상향 스캔 순서의 한 예를 도시한다.
도 17은 크기 4×4의 코딩 그룹들을 갖는 8×8 블록에 대한 대각선 우상향 스캔 순서의 한 예를 도시한다.
도 18은 확률 모델들을 선택하는데 이용되는 템플릿의 한 예를 도시한다.
도 19는 종속 양자화에 이용되는 2개의 스칼라 양자화기의 한 예를 도시한다.
도 20은 제안된 종속 양자화 프로세스에 대한 상태 천이 및 양자화기 선택의 한 예를 도시한다.
도 21은 4개의 코딩 그룹을 갖는 8×8 블록의 한 예를 도시한다.
도 22a 내지 도 22d는 비디오 처리를 위한 예시적인 방법들의 플로차트들을 도시한다.
도 23 및 도 24는 본 문서에 설명된 시각적 미디어 디코딩 또는 시각적 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예들의 블록도이다.
개시된 기술의 실시예들은 압축 성능을 개선하기 위해 기존의 비디오 코딩 표준들(예를 들어, HEVC, H.265) 및 미래의 표준들에 적용될 수 있다. 섹션 제목들은 본 문서에서 설명의 가독성을 향상시키기 위해 이용되며 논의 또는 실시예들(및/또는 구현들)을 각각의 섹션들로만 어떤 식으로든 제한하지 않는다.
1. 비디오 코딩 소개
고해상도 비디오에 대한 수요가 증가함으로 인해, 비디오 코딩 방법들 및 기술들은 현대 기술에서 유비쿼터스이다. 비디오 코덱은 전형적으로 디지털 비디오를 압축하거나 압축해제하는 전자 회로 또는 소프트웨어를 포함하고, 더 높은 코딩 효율성을 제공하기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축된 포멧으로 또는 그 반대로 변환한다. 비디오 품질, (비트 레이트에 의해 결정되는) 비디오를 나타내는데 이용되는 데이터의 양, 인코딩 및 디코딩 알고리즘들의 복잡성, 데이터 손실들 및 오류들에 대한 민감도, 편집 용이성, 랜덤 액세스, 및 종단간 지연(레이턴시) 사이에는 복잡한 관계들이 존재한다. 압축 포멧은 대개, 표준 비디오 압축 명세, 예를 들어 HEVC(High Efficiency Video Coding) 표준(H.265 또는 MPEG-H Part 2라고도 알려짐), 마무리 예정인 Versatile Video Coding 표준, 또는 기타의 현재 및/또는 미래의 비디오 코딩 표준들을 준수한다.
비디오 코딩 표준은 주로, 널리 공지된 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전해 왔다. ITU-T는 H.261과 H.263을 생성했고, ISO/IEC는 MPEG-1과 MPEG-4 Visual을 생성했고, 2개의 조직은 공동으로 H.262/MPEG-2 Video와 H.264/MPEG-4 Advanced Video Coding (AVC) 및 H.265/HEVC 표준들을 생성했다. H.262 이후로, 비디오 코딩 표준들은, 시간적 예측과 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술들을 탐구하기 위해, JVET(Joint Video Exploration Team)가 2015년 VCEG와 MPEG에 의해 공동으로 설립되었다. 그 이후로, JVET에 의해 많은 새로운 방법들이 채택되었고 JEM(Joint Exploration Model)[3][4]이라는 레퍼런스 소프트웨어에 적용되었다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 JVET(Joint Video Expert Team)가 HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준 작업을 위해 창설되었다.
2.1. 전형적인 비디오 코덱의 코딩 흐름
도 1은 3개의 인루프 필터링 블록: 디블록킹 필터(DF), 샘플 적응형 오프셋(SAO) 및 ALF를 포함하는 VVC의 인코더 블록 다이어그램의 한 예를 도시한다. 미리정의된 필터들을 이용하는 DF와는 달리, SAO 및 ALF는, 오프셋들 및 필터 계수들을 시그널링하는 코딩된 부가 정보를 이용하여, 각각 오프셋을 추가하고 유한 임펄스 응답(FIR) 필터를 적용함으로써 원본 샘플들과 복원된 샘플들 사이의 평균 제곱 오차를 감소시키기 위해 현재 픽처의 원본 샘플들을 이용한다. ALF는 각각의 픽처의 마지막 처리 스테이지에 위치하고, 이전 스테이지들에서 생성된 아티팩트들을 포착하여 수정하는 툴이라고 간주될 수 있다.
2.2. VVC에서의 인트라 코딩
2.2.1. 67개의 인트라 예측 모드를 갖는 인트라 모드 코딩
자연스런 비디오에서 나타나는 임의의 엣지 방향들을 캡처하기 위해, 방향성 인트라 모드의 수는, HEVC에서 이용될 때, 33에서 65로 확장된다. 추가적인 방향 모드들은 도 2에서 점선 화살표들로 표시되며, 평면 및 DC 모드들은 동일하게 유지된다. 이들 더 조밀한 방향성 인트라 예측 모드들은, 모든 블록 크기에 대해, 및 루마 및 크로마 인트라 예측 양쪽 모두에 대해 적용된다.
종래의 각도 인트라 예측 방향들은 도 2에 도시된 바와 같이 시계 방향으로 45도 내지 -135도까지 정의된다. VTM2에서, 종래의 수개의 각도 인트라 예측 모드들은 비-정사각형 블록들에 대해 광각 인트라 예측 모드로 적응적으로 대체된다. 대체된 모드들은 원래의 방법을 이용하여 시그널링되고 파싱 후에 광각 모드들의 인덱스들에 리맵핑된다. 인트라 예측 모드의 총 개수는 변경되지 않고, 즉, 67이고, 인트라 모드 코딩도 변경되지 않는다.
HEVC에서, 모든 인트라 코딩된 블록은 정사각형 형상을 가지며, 각각의 변의 길이는 2의 거듭제곱이다. 따라서, DC 모드를 이용하여 인트라 예측자를 생성하기 위해 어떠한 분할 동작도 요구되지 않는다. VVV2에서, 블록들은 일반적인 경우에 블록당 분할 동작의 이용을 필요로 하는 직사각형 형상을 가질 수 있다. DC 예측을 위한 분할 동작들을 피하기 위해, 비-정사각형 블록들에 대한 평균을 계산하기 위해 더 긴 변만이 이용된다.
67개의 인트라 예측 모드 외에도, 소정의 블록들에 대해, 비정사각형 블록들에 대한 광각 인트라 예측(wide-angle intra prediction)(WAIP) 및 위치 의존적 인트라 예측 조합(position dependent intra prediction combination)(PDPC) 방법들이 추가로 인에이블된다. PDPC는 시그널링 없이 다음과 같은 인트라 모드들에 적용된다: 평면, DC, 수평, 수직, 좌측 하단 각도 모드 및 8개의 인접 각도 모드, 우측 상단 각도 모드 및 8개의 인접 각도 모드.
2.2.2. 어파인 선형 가중된 인트라 예측( ALWIP 또는 행렬 기반 인트라 예측)
어파인 선형 가중된 인트라 예측(ALWIP, 일명, 행렬 기반의 인트라 예측(MIP))은 JVET-N0217에서 제안된다.
2.2.2.1. 행렬 벡터 곱셈에 의한 감축된 예측 신호의 생성
이웃하는 기준 샘플들은 먼저 평균화를 통해 다운샘플링되어 감축된 기준 신호
Figure pct00001
를 생성한다. 그 다음, 행렬 벡터 곱을 계산하고 오프셋을 추가함으로써 감축된 예측 신호
Figure pct00002
가 계산된다:
Figure pct00003
Figure pct00004
는,
Figure pct00005
개의 행과,
Figure pct00006
인 경우 4개의 열, 다른 모든 경우에는 8개의 열을 갖는 행렬이다.
Figure pct00007
는 크기
Figure pct00008
의 벡터이다.
2.2.2.2. 전체 ALWIP 프로세스의 예시
평균화, 행렬 벡터 곱셈 및 선형 보간의 전체 프로세스가 도 3 내지 도 6에서 상이한 형상들에 대해 예시되어 있다. 나머지 형상들은 도시된 경우들 중 하나인 것으로 취급된다는 점에 유의한다.
1.
Figure pct00009
블록이 주어지면, ALWIP는 경계의 각각의 축을 따라 2개의 평균을 취한다. 결과적인 4개의 입력 샘플은 행렬 벡터 곱셈에 들어간다. 행렬들은 세트
Figure pct00010
로부터 취해진다. 오프셋을 추가한 후, 이는 16개의 최종 예측 샘플을 산출한다. 예측 신호의 생성에 대해 선형 보간이 필요하지 않다. 따라서, 샘플당 총 (4·16)/(4·4) = 4개의 곱셈이 수행된다.
2.
Figure pct00011
블록이 주어지면, ALWIP는 경계의 각각의 축을 따라 4개의 평균을 취한다. 결과적인 8개의 입력 샘플은 행렬 벡터 곱셈에 들어간다. 행렬들은 세트
Figure pct00012
로부터 취해진다. 이것은 예측 블록의 홀수 위치들에서 16개의 샘플을 산출한다. 따라서, 샘플당 총 (8·16)/(8·8) = 2개의 곱셈이 수행된다. 오프셋을 추가한 후, 이들 샘플들은 감축된 상단 경계를 이용하여 수직으로 보간된다. 원래의 좌측 경계를 이용하여 수평 보간이 뒤따른다.
3.
Figure pct00013
블록이 주어지면, ALWIP는 경계의 수평 축을 따라 4개의 평균 및 좌측 경계에서 4개의 원래 경계 값을 취한다. 결과적인 8개의 입력 샘플은 행렬 벡터 곱셈에 들어간다. 행렬들은 세트
Figure pct00014
로부터 취해진다. 이것은 예측 블록의 홀수 수평 및 각각의 수직 위치들에서 16개의 샘플을 산출한다. 따라서, 샘플당 총 (8·16)/(8·4) = 4개의 곱셈이 수행된다. 오프셋을 추가한 후, 이들 샘플들은 원래의 좌측 경계를 이용하여 수평으로 보간된다.
4.
Figure pct00015
블록이 주어지면, ALWIP는 경계의 각각의 축을 따라 4개의 평균을 취한다. 결과적인 8개의 입력 샘플은 행렬 벡터 곱셈에 들어간다. 행렬들은 세트
Figure pct00016
로부터 취해진다. 이것은 예측 블록의 홀수 위치들에서 64개의 샘플을 산출한다. 따라서, 샘플당 총 (8·64)/(16·16) = 2개의 곱셈이 수행된다. 오프셋을 추가한 후, 이들 샘플들은 상단 경계의 8개의 평균을 이용하여 수직으로 보간된다. 원래의 좌측 경계를 이용하여 수평 보간이 뒤따른다. 이 경우, 보간 프로세스는 어떠한 곱셈도 추가하지 않는다. 따라서, ALWIP 예측을 계산하기 위해 샘플당 총 2개의 곱셈이 요구된다.
더 큰 형상들의 경우, 절차는 본질적으로 동일하며 샘플당 곱셈 수가 4개보다 작은지를 체크하는 것이 쉽다.
W>8인 W×8 블록들의 경우, 샘플들이 홀수 수평 및 각각의 수직 위치들에 제공되므로 수평 보간만이 필요하다.
마지막으로, W>8인 W×4 블록들의 경우, A_kbe를, 다운샘플링된 블록의 수평 축을 따라 홀수 엔트리에 대응하는 모든 행을 생략함으로써 발생하는 행렬이라고 하자. 따라서, 출력 크기는 32이고 다시 수평 보간만 수행된다.
전치된 사례들은 그에 따라 취급된다.
2.2.2.3. 신택스 시맨틱스
7.3.6.5 코딩 유닛 신택스
Figure pct00017
Figure pct00018
2.2.3. 복수의 기준 라인( MRL )
복수의 기준 라인(MRL) 인트라 예측은 인트라 예측을 위해 더 많은 기준 라인을 이용한다. 도 7에서, 4개의 기준 라인의 예가 나와 있고, 여기서, 세그먼트 A 및 F의 샘플들은 복원된 이웃 샘플들로부터 가져온 것이 아니라, 세그먼트 B 및 E로부터 가장 가까운 샘플들로 각각 패딩된다. HEVC 인트라-픽처 예측은 가장 가까운 기준 라인(즉, 기준 라인 0)을 이용한다. MRL에서, 2개의 추가적인 라인(기준 라인 1 및 기준 라인 3)이 이용된다.
선택된 기준 라인의 인덱스(mrl_idx)는 시그널링되고 인트라 예측자를 생성하는데 이용된다. 0보다 큰 기준 라인 인덱스의 경우, MPM 목록에는 추가적인 기준 라인 모드들만 포함하고 나머지 모드 없이 MPM 인덱스만을 시그널링한다. 기준 라인 인덱스는 인트라 예측 모드 이전에 시그널링되고, Planar 및 DC 모드들은 0이 아닌 기준 라인 인덱스가 시그널링되는 경우 인트라 예측 모드들로부터 제외된다.
MRL은, 현재 CTU 라인 외부에서 확장 기준 샘플을 이용하는 것을 방지하기 위해 CTU 내부에서 블록들의 첫 번째 라인에 대해 디스에이블된다. 또한, 추가적인 라인이 이용될 때 PDPC는 디스에이블된다.
2.2.4. 인트라 서브블록 분할( ISP )
JVET-M0102에서, 루마 인트라-예측된 블록들을, 표 1에 도시된 바와 같이, 블록 크기 치수들에 따라 수직 또는 수평으로 2개 또는 4개의 서브파티션들로 분할하는 ISP가 제안된다. 도 8 및 도 9는 2개의 가능성의 예들을 도시한다. 모든 서브파티션은 적어도 16개의 샘플을 갖는 조건을 충족한다. 블록 크기들 4×N 또는 N×4(N>8)의 경우, 허용되는 경우, 1×N 또는 N×1 서브파티션이 존재할 수 있다.
표 1: 블록 크기에 의존하는 서브파티션의 수(최대 변환 크기를 maxTBSize로 표시)
Figure pct00019
이들 서브파티션들 각각에 대해, 인코더에 의해 전송된 계수들을 엔트로피 디코딩한 다음 역양자화 및 역변환함으로써 잔차 신호가 생성된다. 그 다음, 서브파티션이 인트라 예측되고 최종적으로 예측 신호에 잔차 신호를 더함으로써 대응하는 복원된 샘플들이 획득된다. 따라서, 각각의 서브파티션의 복원된 값들은 다음 서브파티션의 예측을 생성하는데 이용가능할 것이고, 이것은 프로세스 등을 반복할 수 있다. 모든 서브파티션은 동일한 인트라 모드를 공유한다.
표 2: predModeIntra에 의존하는 trTypeHor 및 trTypeVer의 명세
Figure pct00020
2.2.4.1. 신택스 시맨틱스
7.3.7.5 코딩 유닛 신택스
Figure pct00021
Figure pct00022
1과 동일한 intra_subpartitions_mode_flag[ x0 ][ y0 ]는 현재 인트라 코딩 유닛이 NumIntraSubPartitions[ x0 ][ y0 ]개의 직사각형 변환 블록 서브파티션들로 분할됨을 명시한다. 0과 동일한 intra_subpartitions_mode_flag[ x0 ][ y0 ]은 현재 인트라 코딩 유닛이 직사각형 변환 블록 서브파티션들로 분할되지 않음을 명시한다.
intra_subpartitions_mode_flag[ x0 ][ y0 ]가 존재하지 않을 때, 이것은 0인 것으로 추론된다.
intra_subpartitions_split_flag[ x0 ][ y0 ]은 인트라 서브파티션 분할 유형이 수평인지 수직인지를 명시한다. intra_subpartitions_split_flag[ x0 ][ y0 ]가 존재하지 않으면, 다음과 같이 추론된다:
- cbHeight가 MaxTbSizeY보다 크다면, intra_subpartitions_split_flag[ x0 ][ y0 ]가 0인 것으로 추론된다.
- 그렇지 않으면(cbWidth가 MaxTbSizeY보다 큼), intra_subpartitions_split_flag[ x0 ][ y0 ]가 1인 것으로 추론된다.
변수 IntraSubPartitionsSplitType 표 7-9에 나타낸 바와 같이 현재 루마 코딩 블록에 이용되는 분할의 유형을 명시한다. IntraSubPartitionsSplitType은 다음과 같이 도출된다:
- intra_subpartitions_mode_flag[ x0 ][ y0 ]가 0이면, IntraSubPartitionsSplitType이 0으로 설정된다.
- 그렇지 않으면, IntraSubPartitionsSplitType은 1 + intra_subpartitions_split_flag[ x0 ][ y0 ]와 동일하게 설정된다.
표 7-9 - IntraSubPartitionsSplitType에 대한 이름 연관
Figure pct00023
변수 NumIntraSubPartitions는, 인트라 루마 코딩 블록이 분할되어 이루어지는 변환 블록 서브파티션의 수를 명시한다. NumIntraSubPartitions는 다음과 같이 도출된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 동일하면, NumIntraSubPartitions는 1과 동일하게 설정된다.
- 그렇지 않고, 다음과 같은 조건들 중 하나가 참이면, NumIntraSubPartitions는 2와 동일하게 설정된다:
- cbWidth는 4이고 cbHeight는 8이다.
- cbWidth는 8이고 cbHeight는 4이다.
- 그렇지 않으면, NumIntraSubPartitions가 4와 동일하게 설정된다.
2.3. 크로마 인트라 모드 코딩
크로마 인트라 모드 코딩의 경우, CCLM(cross-component linear model)의 인에이블 여부에 따라 크로마 인트라 모드 코딩에 대해 총 8 또는 5개의 인트라 모드가 허용된다. 이들 모드는 5개의 전통적인 인트라 모드와 3개의 교차-성분 선형 모델 모드를 포함한다. 크로마 DM 모드는 대응하는 루마 인트라 예측 모드를 이용한다. I개 슬라이스에서 루마 및 크로마 성분들에 대한 별개의 블록 파티션화 구조가 인에이블되기 때문에, 하나의 크로마 블록은 복수의 루마 블록에 대응할 수 있다. 따라서, 크로마 DM 모드의 경우, 현재 크로마 블록의 중심 위치를 커버하는 대응하는 루마 블록의 인트라 예측 모드가 직접 상속된다.
표 8-2 - sps_cclm_enabled_flag가 0일 때 intra_chroma_pred_mode[ xCb ][ yCb ] 및 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ]에 의존하는 IntraPredModeC[ xCb ][ yCb ]의 명세
Figure pct00024
표 8-3 - sps_cclm_enabled_flag가 1일 때 intra_chroma_pred_mode[ xCb ][ yCb ] 및 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ]에 의존하는 IntraPredModeC[ xCb ][ yCb ]의 명세
Figure pct00025
2.4. VVC에서의 변환 코딩 변환
2.4.1. VVC에서의 복수의 변환 세트( MTS )
2.4.1.1. 명시적 복수의 변환 세트( MTS )
VTM4에서, 최대 64×64 크기의 큰 블록-크기 변환들이 인에이블되어, 예를 들어, 1080p 및 4K 시퀀스 등의 고해상도 비디오에 주로 유용하다. 64와 동일한 크기(폭 또는 높이, 또는 폭과 높이 양쪽 모두)를 가진 변환 블록들에 대해 고주파수 변환 계수들이 0이 되어, 저주파 계수들만이 유지된다. 예를 들어, M×N 변환 블록의 경우, M이 블록 폭이고 N이 블록 높이인 경우, M이 64일 때, 변환 계수들의 좌측 32개 열만 유지된다. 마찬가지로, N이 64일 때, 변환 계수들의 상위 32개 행만 유지된다. 변환 스킵 모드가 큰 블록에 이용되면, 어떠한 값도 0으로 만들지 않고 전체 블록이 이용된다.
HEVC에서 이용된 DCT-II에 추가하여, MTS (Multiple Transform Selection) 방식은 인터 및 인트라 코딩된 블록들 양쪽 모두의 잔차 코딩에 이용된다. 이것은 DCT8/DST7로부터 선택된 복수의 변환을 이용한다. 새로 도입된 변환 행렬들은 DST-VII 및 DCT-VIII이다. 아래의 표 4는 선택된 DST/DCT의 기본적인 함수들을 도시한다.
표 4: VVC에서 이용되는 변환 행렬들의 기본적인 함수들
Figure pct00026
변환 행렬의 직교성을 유지하기 위해, 변환 행렬들은 HEVC의 변환 행렬들보다 더 정확하게 양자화된다. 변환된 계수들의 중간 값들을 16비트 범위 내로 유지하기 위해서, 수평 변환 후 및 수직 변환 후, 모든 계수가 10비트가 되어야 한다.
MTS 방식을 제어하기 위해, 각각 인트라 및 인터에 대해 SPS 레벨에서 별개의 인에이블 플래그들이 명시된다. MTS가 SPS에서 인에이블되면, CU 레벨 플래그가 시그널링되어 MTS가 적용되는지 여부를 나타낸다. 여기서, MTS는 루마에 대해서만 적용된다. MTS CU 레벨 플래그는 다음과 같은 조건들이 충족될 때 시그널링된다.
○ 폭과 높이 양쪽 모두가 32보다 작거나 같다
○ CBF 플래그가 1이다.
MTS CU 플래그가 0이면, DCT2가 양쪽 방향으로 적용된다. 그러나, MTS CU 플래그가 1이면, 각각 수평 및 수직 방향에 대해 변환 유형을 나타내기 위해 2개의 다른 플래그가 추가적으로 시그널링된다. 표 5에 도시된 바와 같은 변환 및 시그널링 맵핑 테이블. 변환 행렬 정밀도와 관련하여, 8비트 주 변환 코어들이 이용된다. 따라서, 4-포인트 DCT-2 및 DST-7, 8-포인트, 16-포인트 및 32-포인트 DCT-2를 포함한, HEVC에서 이용되는 모든 변환 코어가 동일하게 유지된다. 또한, 64-포인트 DCT-2, 4-포인트 DCT-8, 8-포인트, 16-포인트, 32-포인트 DST-7 및 DCT-8을 포함한 다른 변환 코어들은 8비트 주 변환 코어들을 이용한다.
표 5: tu_mts_idx의 디코딩된 값과 수평 및 수직 방향에 대한 대응하는 변환 행렬들의 맵핑.
Figure pct00027
큰 크기의 DST-7 및 DCT-8의 복잡성을 감소시키기 위해, 크기(폭 또는 높이, 또는 폭과 높이 양쪽 모두)가 32인 DST-7 및 DCT-8 블록들에 대해 고주파수 변환 계수들은 0이 된다. 16×16 저주파 영역 내의 계수들만이 유지된다.
상이한 변환들이 적용되는 경우들에 추가하여, VVC는 또한, HEVC에서 TS의 개념과 유사한 변환 스킵(TS) 이라 불리는 모드도 지원한다. TS는 MTS의 특별한 경우로서 취급된다.
2.4.2. JVET -N0193에서 제안된 감축된 2차 변환( RST )
2.4.2.1. JEM의 비분리 2차 변환(Non-Separable Secondary Transform)( NSST )
JEM에서, 2차 변환은 (인코더에서의) 순방향 1차 변환 및 양자화와 (디코더 측에서의) 역양자화와 역 1차 변환 사이에 적용된다. 도 10에 도시된 바와 같이, 블록 크기에 따라 4×4(또는 8×8) 2차 변환이 수행된다. 예를 들어, 4×4 2차 변환은 작은 블록들(즉, min(width, height) < 8)에 대해 적용되고 8×8 2차 변환은 8×8 블록당 더 큰 블록들(즉, min(width, height) > 4)에 대해 적용된다.
비분리 변환의 적용은 입력을 한 예로서 이용하여 다음과 같이 설명된다. 비분리 변환을 적용하기 위해, 4×4 입력 블록 X
Figure pct00028
먼저, 벡터
Figure pct00029
로서 표현된다:
Figure pct00030
비분리 변환은
Figure pct00031
로서 계산되고, 여기서
Figure pct00032
는 변환 계수 벡터를 나타내고, T는 16×16 변환 행렬이다. 16×1 계수 벡터
Figure pct00033
는, 그 블록에 대한 스캔 순서(수평, 수직 또는 대각선)를 이용하여 후속해서 4×4 블록으로서 재구성된다. 더 작은 인덱스를 가진 계수들은 4×4 계수 블록에서 더 작은 스캔 인덱스와 함께 배치된다. 총 35개의 변환 세트가 있고 변환 세트당 3개의 비분리 변환 행렬들(커널들)이 이용된다. 인트라 예측 모드로부터 변환 세트로의 맵핑은 미리정의된다. 각각의 변환 세트에 대해, 선택된 비분리 2차 변환(NSST) 후보는, 명시적으로 시그널링된 2차 변환 인덱스에 의해 추가로 명시된다. 인덱스는 변환 계수들 이후에 인트라 CU당 한 번 비트스트림에서 시그널링된다.
2.4.2.2. JVET -N0193에서의 감축된 2차 변환( RST )
RST(저주파 비분리 변환(Low Frequency Non-Separable Transform)(LFNST)이라고도 함)는 JVET-K0099에 도입되었고 (35개 변환 세트 대신에) 4개의 변환 세트 맵핑이 JVET-L0133에서 도입되었다. 이 JVET-N0193에서, 16×64(16×48로 추가 감축됨) 및 16×16 행렬들이 이용된다. 표기 상의 편의를 위해, 16×64(16×48로 감축됨) 변환은 RST8×8로 표시되고 16×16 변환은 RST4×4로 표시된다. 도 11은 RST의 한 예를 도시한다.
2.4.2.2.1. RST 계산
감축된 변환(RT)의 주요 아이디어는 N차원 벡터를 상이한 공간의 R차원 벡터에 맵핑하는 것이다, 여기서 R/N(R < N)은 감축 계수이다.
RT 행렬은 다음과 같은 R×N 행렬이다:
Figure pct00034
여기서 변환의 R 행들은 N차원 공간의 R 베이스들이다. RT에 대한 역변환 행렬은 그 순방향 변환의 전치(transpose)이다. 순방향 및 역 RT가 도 12에 도시되어 있다.
이 기여에서, 감축 계수 4(1/4 크기)를 갖는 RST8×8이 적용된다. 따라서, 종래의 8×8 비분리 변환 행렬 크기인 64×64 대신에, 16×64 직접 행렬이 이용된다. 즉, 64×16 역 RST 행렬은 디코더 측에서 이용되어 8×8 상단 좌측 영역에서 코어(1차) 변환 계수를 생성한다. 순방향 RST8×8은 16×64(또는 8×8 블록의 경우 8×64) 행렬들을 이용하여 주어진 8×8 영역 내의 상단 좌측 4×4 영역에서만 0이 아닌 계수들을 생성한다. 즉, RST가 적용되면 상단 좌측 4×4 영역을 제외한 8×8 영역은 0 계수들만을 가질 것이다. RST4×4의 경우, 16×16(또는 4×4 블록의 경우 8×16) 직접 행렬 곱셈이 적용된다.
역 RST는 다음과 같은 2개의 조건이 충족될 때 조건부로 적용된다:
○ 블록 크기가 주어진 임계값보다 크거나 같다(W>=4 && H>=4)
○ 변환 스킵 모드 플래그는 0과 같다.
변환 계수 블록의 폭(W)와 높이(H)가 양쪽 모두가 4보다 크면, 변환 계수 블록의 상단 좌측 8×8 영역에 RST8×8이 적용된다. 그렇지 않으면, 변환 계수 블록의 상단 좌측 min(8, W) × min(8, H) 영역에 RST4×4가 적용된다.
RST 인덱스가 0이면, RST가 적용되지 않는다. 그렇지 않으면 RST가 적용되며, 그 커널은 RST 인덱스와 함께 선택된다. RST 선택 방법과 RST 인덱스의 코딩에 대해서는 후술된다.
또한, RST는 인트라 슬라이스와 인터 슬라이스 양쪽 모두의 인트라 CU에 적용되며, 루마와 크로마 양쪽 모두에 적용된다. 이중 트리가 인에이블되면, 루마 및 크로마에 대한 RST 인덱스들이 별개로 시그널링된다. 인터 슬라이스(이중 트리가 디스에이블됨)의 경우, 루마와 크로마 양쪽 모두에 대해 단일 RST 인덱스가 시그널링되고 이용된다.
2.4.2.2.2. RST의 제한
ISP 모드가 선택되면, RST가 디스에이블되고, RST 인덱스는 시그널링되지 않는데, 모든 가능한 파티션 블록에 대해 RST가 적용되더라도 성능 향상이 미미하기 때문이다. 또한, ISP-예측된 잔차에 대해 RST를 디스에이블하는 것은 인코딩 복잡성을 감소시킬 수 있다.
2.4.2.2.3. RST 선택
RST 행렬은, 각각 2개의 변환으로 구성된 4개의 변환 세트로부터 선택된다. 어느 변환 세트가 적용되는지는 다음과 같이 인트라 예측 모드로부터 결정된다.
(1) 3개의 CCLM 모드 중 하나가 표시되면, 변환 세트 0이 선택된다.
(2) 그렇지 않으면, 다음과 같은 표에 따라 변환 세트 선택이 수행된다.
변환 세트 선택 테이블
Figure pct00035
IntraPredMode로서 표시된 위의 테이블에 액세스하기 위한 인덱스는 광각 인트라 예측에 이용되는 변환 모드 인덱스인 [-14, 83]의 범위를 갖는다.
2.4.2.2.4. 감축된 치수의 RST 행렬들
추가 단순화로서, 동일한 변환 세트 구성을 갖는 16×64 대신에 16×48 행렬이 적용되고, 그 각각은 (도 13에 도시된 바와 같이) 우측 하단 4×4 블록을 제외한 상단 좌측 8×8 블록 내의 3개의 4×4 블록으로부터 48개의 입력 데이터를 취한다.
2.4.2.2.5. RST 시그널링
순방향 RST8×8은 16×48 행렬들을 이용하여 처음 3개의 4×4 영역 내의 상단 좌측 4×4 영역에서만 0이 아닌 계수들을 생성한다. 즉, RST8×8이 적용되는 경우, (RST8×8로 인한) 상단 좌측 4×4 및 (1차 변환으로 인한) 우측 하단 4×4 영역만이 0이 아닌 계수들을 가질 수 있다. 그 결과, RST 인덱스는, (도 14에 도시되고 "제로 아웃" 영역이라고 지칭되는) 우측 상단 4×4 및 좌측 하단 4×4 블록 영역 내에서 임의의 0이 아닌 요소가 검출되면 RST가 적용되지 않았음을 의미하므로 코딩되지 않는다. 이러한 경우, RST 인덱스는 0인 것으로 추론된다.
2.4.2.2.6. 하나의 CG 내의 제로 아웃 영역
대개, 4×4 서브블록에 역 RST를 적용하기 전에, 4×4 서브블록 내의 임의의 모든 계수는 0이 아닐 수 있다. 그러나, 일부 경우에, 4×4 서브블록 내의 일부 계수는 역 RST가 서브블록에 적용되기 전에 0이어야 한다는 제약이 있다.
nonZeroSize를 변수라고 하자. 역 RST 전에 1차원 배열로 재배열될 때 nonZeroSize보다 작지 않은 인덱스를 갖는 임의의 계수는 0이어야 한다는 것이 요구된다.
nonZeroSize가 16이면, 상단 좌측 4×4 서브블록 내의 계수들에 관한 제로 아웃 제약이 없다.
JVET-N0193에서, 현재 블록 크기가 4×4 또는 8×8이면, nonZeroSize는 8과 동일하게 설정된다(즉, 도 14에서 도시된 바와 같이 [8, 15] 범위의 스캔 인덱스를 갖는 계수들은 0이어야 한다). 다른 블록 치수들의 경우, nonZeroSize는 16과 동일하게 설정된다.
2.4.2.2.7. 연구 초안의 RST에 대한 설명
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00036
7.3.7.11 잔차 코딩 신택스
Figure pct00037
7.3.7.5 코딩 유닛 신택스
Figure pct00038
1과 동일한 sps _st_enabled_flag는 st_idx가 인트라 코딩 유닛들에 대한 잔차 코딩 신택스에 존재할 수 있다는 것을 명시한다. 0과 동일한 sps_st_enabled_flag는 st_idx가 인트라 코딩 유닛들에 대한 잔차 코딩 신택스에 존재하지 않음을 명시한다.
st_idx[ x0 ][ y0 ]은 선택된 변환 세트 내의 2개의 후보 커널 사이에서 어떤 2차 변환 커널이 적용되는지를 명시한다. 0과 동일한 st_idx[ x0 ][ y0 ]는 2차 변환이 적용되지 않음을 명시한다. 어레이 인덱스들 x0, y0은 픽처의 상단 좌측 샘플에 관한 고려된 변환 블록의 상단 좌측 샘플의 위치( x0, y0 )를 명시한다.
st_idx[ x0 ][ y0 ]이 존재하지 않을 때, st_idx[ x0 ][ y0 ]은 0인 것으로 추론된다.
st_idx를 전송할지의 여부는 CU 내의 모든 TU에서 0이 아닌 계수의 수(예를 들어, 단일 트리의 경우, 3개 블록(즉, Y, Cb, Cr)에서 0이 아닌 계수의 수); 이중 트리 및 루마가 코딩되는 경우, 루마 블록의 0이 아닌 계수의 수; 이중 트리 및 크로마가 코딩되는 경우, 2개의 크로마 블록의 0이 아닌 계수의 수에 의존한다는 점에 유의한다. 또한, 임계값은 파티션화 구조에 의존한다, (treeType == SINGLE_TREE ) ? 2: 1).
st_idx의 빈들은 컨텍스트 코딩된다. 더 구체적으로, 다음이 적용된다:
표 9-9 ― 신택스 요소들 및 연관된 2진화들
Figure pct00039
표 9-15 ― 컨텍스트 코딩된 빈들을 갖는 신택스 요소들로의 ctxInc의 할당
Figure pct00040
9.5.4.2.8 신택스 요소 st_idx에 대한 ctxInc의 도출 프로세스
이 프로세스에 대한 입력들은, 컬러 성분 인덱스 cIdx, cIdx에 따라 현재 픽처의 상단 좌측 샘플에 관한 현재 루마 또는 크로마 코딩 블록의 상단 좌측 샘플을 명시하는 루마 또는 크로마 위치 ( x0, y0 ), 트리 유형 treeType, 조항 8.4.2에 명시된 루마 인트라 예측 모드 IntraPredModeY[ x0 ][ y0 ], 조항 7.4.7.5에 명시된 크로마 샘플들에 대한 인트라 예측 모드를 명시하는 신택스 요소 intra_chroma_pred_mode[ x0 ][ y0 ], 및 복수의 변환 선택 인덱스 tu_mts_idx[ x0 ][ y0 ]이다.
이 프로세스의 출력은 변수 ctxInc이다.
변수 intraModeCtx는 다음과 같이 도출된다:
cIdx가 0이라면, intraModeCtx는 다음과 같이 도출된다:
intraModeCtx = ( IntraPredModeY[ x0 ][ y0 ] <= 1 ) ? 1: 0
그렇지 않으면(cIdx가 0보다 큼), intraModeCtx가 다음과 같이 도출된다:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] >= 4 ) ? 1: 0
변수 mtsCtx는 다음과 같이 도출된다:
mtsCtx = ( tu_mts_idx[ x0 ][ y0 ] == 0 && treeType != SINGLE_TREE ) ? 1: 0
변수 ctxInc는 다음과 같이 도출된다:
ctxInc = ( binIdx << 1 ) + intraModeCtx + ( mtsCtx << 2 )
2.4.2.2.8. RST 이용 요약
RST는 한 블록 내의 0이 아닌 계수의 수가 단일 및 별개의 트리에 대해 각각 2 및 1보다 큰 경우에만 인에이블될 수 있다. 또한, RST가 인에이블된 경우, RST가 적용된 CG(Coding Group)들에 대한 0이 아닌 계수들의 위치들에 대한 다음과 같은 제약이 역시 요구된다.
표 1: RST의 이용
Figure pct00041
2.4.3. 서브블록 변환
cu_cbf가 1인 인터 예측된 CU에 대해, cu_sbt_flag는 전체 잔차 블록 또는 잔차 블록의 하위 부분이 디코딩되는지를 나타내기 위해 시그널링될 수 있다. 전자의 경우, 인터 MTS 정보를 더 파싱하여 CU의 변환 유형을 결정한다. 후자의 경우, 잔차 블록의 일부는 추론된 적응 변환으로 코딩되고 잔차 블록의 다른 부분은 0이 된다. SBT는 결합된 인터-인트라 모드에 적용되지 않는다.
서브블록 변환에서, 위치-의존적 변환이 SBT-V 및 SBT-H(크로마 TB는 항상 DCT-2를 이용)의 루마 변환 블록들에 적용된다. SBT-H 및 SBT-V의 2개의 위치는 상이한 코어 변환들과 연관된다. 더 구체적으로, 각각의 SBT 위치에 대한 수평 및 수직 변환은 도 3에 명시되어 있다. 예를 들어, SBT-V 위치 0에 대한 수평 및 수직 변환은 각각 DCT-8 및 DST-7이다. 잔차 TU의 한 변이 32보다 크면, 대응하는 변환은 DCT-2로 설정된다. 따라서, 서브블록 변환은, TU 타일링, cbf, 그리고 잔차 블록의 수평 및 수직 변환을 공동으로 명시하는데, 이것은 블록의 주요 잔차가 블록의 한 변에 있는 경우에 대한 신택스 숏컷(shortcut)으로서 간주될 수 있다.
2.4.3.1. 신택스 요소들
7.3.7.5 코딩 유닛 신택스
Figure pct00042
1과 동일한 cu_ sbt _flag는, 현재 코딩 유닛에 대해 서브블록 변환이 이용됨을 명시한다. 0과 동일한 cu_ sbt _flag는 현재 코딩 유닛에 대해 서브블록 변환이 이용되지 않음을 명시한다.
cu_sbt_flag가 존재하지 않을 때, 그 값은 0인 것으로 추론된다.
유의사항 -: 서브블록 변환이 이용될 때, 코딩 유닛은 2개의 변환 유닛으로 분할된다; 한 변환 유닛에는 잔차 데이터를 갖고 다른 변환 유닛은 잔차 데이터를 갖지 않는다.
1과 동일한 cu_sbt_quad_flag는, 현재 코딩 유닛에 대해 서브블록 변환이 현재 코딩 유닛의 1/4 크기의 변환 유닛을 포함한다는 것을 명시한다. 0과 동일한 cu_sbt_quad_flag는, 현재 코딩 유닛에 대해, 서브블록 변환이 현재 코딩 유닛의 1/2 크기의 변환 유닛을 포함한다는 것을 명시한다.
cu_sbt_quad_flag가 존재하지 않을 때, 그 값은 0인 것으로 추론된다.
1과 동일한 cu_sbt_horizontal_flag는 현재 코딩 유닛이 수평으로 2개의 변환 유닛으로 분할됨을 명시한다. 0과 동일한 cu_sbt_horizontal_flag[ x0 ][ y0 ]는 현재 코딩 유닛이 수직으로 2개의 변환 유닛으로 분할됨을 명시한다.
cu_sbt_horizontal_flag가 존재하지 않을 때, 그 값은 다음과 같이 도출된다:
- cu_sbt_quad_flag가 1인 경우 cu_sbt_horizontal_flag는 allowSbtHorQ와 동일하게 설정된다.
- 그렇지 않으면(cu_sbt_quad_flag가 0임), cu_sbt_horizontal_flag가 allowSbtHorH와 동일하게 설정된다.
1과 동일한 cu_sbt_pos_flag는, 현재 코딩 유닛의 첫 번째 변환 유닛의 tu_cbf_luma, tu_cbf_cb 및 tu_cbf_cr이 비트스트림에 존재하지 않음을 명시한다. 0과 동일한 cu_sbt_pos_flag는 현재 코딩 유닛의 두 번째 변환 유닛의 tu_cbf_luma, tu_cbf_cb 및 tu_cbf_cr이 비트스트림에 존재하지 않음을 명시한다.
변수 SbtNumFourthsTb0은 다음과 같이 도출된다:
Figure pct00043
0과 동일한 sps _ sbt _max_size_64_flag는 서브블록 변환을 허용하기 위한 최대 CU 폭 및 높이가 32개 루마 샘플임을 명시한다. 1과 동일한 sps_sbt_max_size_64_flag는 서브블록 변환을 허용하기 위한 최대 CU 폭 및 높이가 64개 루마 샘플임을 명시한다.
MaxSbtSize = sps_sbt_max_size_64_flag ? 64: 32 (7-33)
2.4.4. 양자화된 잔차 도메인 블록 차분 펄스 코드 변조 코딩(QR-BDPCM)
JVET-N0413에서, 양자화된 잔차 도메인 BDPCM(이하 RBDPCM으로 표기)이 제안된다. 인트라 예측은, 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)으로 샘플을 복사함으로써 전체 블록에 관해 수행된다. 잔차는 양자화되고 양자화된 잔차와 그 예측자(수평 또는 수직) 양자화된 값 사이의 델타가 코딩된다.
크기가 M(행) × N(열)인 블록의 경우,
Figure pct00044
을, 위쪽 또는 좌측 블록 경계 샘플들로부터 필터링되지 않은 샘플들을 이용하여 수평으로 인트라 예측을 수행(라인별로 예측된 블록을 가로질러 좌측 이웃 픽셀 값을 복사)하거나 또는 수직으로 인트라 예측을 수행(상단 이웃 라인을 예측된 블록의 각각의 라인에 복사)한 후의 예측 잔차라고 하자.
Figure pct00045
은, 잔차
Figure pct00046
의 양자화된 버전을 나타낸다고 하자, 여기서 잔차는 원래 블록과 예측된 블록 값들 사이의 차이이다. 그 다음, 블록 DPCM이 양자화된 잔차 샘플들에 적용되어, 요소들
Figure pct00047
을 갖는 수정된 M × N 어레이
Figure pct00048
를 생성한다. 수직 BDPCM이 시그널링될 때:
Figure pct00049
수평 예측의 경우, 유사한 규칙들이 적용되고, 잔차 양자화된 샘플은 다음과 같이 획득된다
Figure pct00050
잔차 양자화된 샘플들
Figure pct00051
은 디코더에 전송된다.
디코더 측에서, 상기 계산들이 역전되어
Figure pct00052
를 생성한다. 수직 예측의 경우,
Figure pct00053
수평의 경우,
Figure pct00054
역양자화된 잔차들,
Figure pct00055
은 인트라 블록 예측 값들에 추가되어 복원된 샘플 값을 생성한다.
QR-BDPCM이 선택되면, 변환은 적용되지 않는다.
2.5. 계수들의 엔트로피 코딩
2.5.1. 변환-적용된 블록들의 계수들 코딩
HEVC에서, 코딩 블록의 변환 계수들은 비중첩 계수 그룹들(또는 서브블록들)을 이용하여 코딩되고, 각각의 CG는 코딩 블록의 4×4 블록의 계수들을 포함한다. 코딩 블록 내의 CG들, 및 CG 내의 변환 계수들은 미리 정의된 스캔 순서들에 따라 코딩된다.
코딩 블록 내의 CG들, 및 CG 내의 변환 계수들은 미리 정의된 스캔 순서들에 따라 코딩된다. CG와 CG 내의 계수들 양쪽 모두는 대각선 우상향 스캔 순서를 따른다. 4×4 블록 및 8×8 스캔 순서에 대한 한 예가 각각 도 16과 도 17에 도시되어 있다.
코딩 순서는 역으로 된 스캔 순서(즉, 도 17에서 CG3으로부터 CG0으로 디코딩)이며, 한 블록을 디코딩할 때 0이 아닌 마지막 계수의 좌표가 먼저 디코딩된다는 점에 유의한다.
적어도 하나의 0이 아닌 변환 계수를 갖는 CG의 변환 계수 레벨들의 코딩은 복수의 스캔 패스로 분리될 수 있다. 첫 번째 패스에서, 첫 번째 빈(bin0으로 표시됨, 계수의 크기가 0보다 크다는 것을 나타내는 significant_coeff_flag라고도 함)이 코딩된다. 그 다음, 두 번째/세 번째 빈(각각 bin1 및 bin2로 표시됨, coeff_abs_greater1_flag 및 coeff_abs_greater2_flag라고도 함)을 컨텍스트 코딩하기 위한 2개의 스캔 패스가 적용될 수 있다. 마지막으로, 부호 정보와 계수 레벨들의 나머지 값들(coeff_abs_level_remaining이라고도 함)을 코딩하기 위한 2개의 추가적인 스캔 패스가 필요한 경우 기동된다. 처음 3개의 스캔 패스의 빈들만이 일반 모드로 코딩되고 이들 빈들은 이후의 설명에서는 일반 빈이라고 명명한다는 점에 유의한다.
VVC 3에서, 각각의 CG에 대해, 일반 코딩된 빈들과 바이패스 코딩된 빈들이 코딩 순서에서 분리된다; 먼저 서브블록에 대한 모든 일반 코딩된 빈들이 전송된 후, 바이패스 코딩된 빈들이 전송된다. 서브블록의 변환 계수 레벨들은 다음과 같이 스캔 위치들에 관해 5개 패스에서 코딩된다:
패스 1: 중요도(sig_flag), 1보다 큼 플래그(gt1_flag), 패리티(par_level_flag) 및 2보다 큼 플래그(gt2_flag)의 코딩이 코딩 순서로 처리된다. sig_flag가 1이면, 먼저 gt1_flag가 코딩된다(절대 레벨이 1보다 큰지를 명시함). gt1_flag가 1이면, par_flag가 추가로 코딩된다(절대 레벨 - 2의 패리티를 명시함).
패스 2: 남아 있는 절대 레벨(나머지)의 코딩은 gt2_flag가 1이거나 gt1_flag가 1인 모든 스캔 위치에 대해 처리된다. 비-2진 신택스 요소는 Golomb-Rice 코드로 2진화되고 결과 빈들은 산술 코딩 엔진의 바이패스 모드에서 코딩된다.
패스 3: (일반-코딩된 빈들의 한계 도달로 인해) 첫 번째 패스에서 어떠한 sig_flag도 코딩되지 않은 계수들의 절대 레벨(absLevel)은 Golomb-Rice 코드를 이용하여 산술 코딩 엔진의 바이패스 모드에서 완전히 코딩된다.
패스 4: sig_coeff_flag가 1인 모든 스캔 위치에 대한 부호들(sign_flag)의 코딩
4×4 서브블록에 대해 32개 이하의 일반-코딩된 빈들(sig_flag, par_flag, gt1_flag 및 gt2_flag)이 인코딩 또는 디코딩됨이 보장된다. 2×2 크로마 서브블록들의 경우, 일반-코딩된 빈들의 수는 8로 제한된다.
(패스 3에서) 비2진 신택스 요소 나머지를 코딩하기 위한 Rice 파라미터(ricePar)는 HEVC와 유사하게 도출된다. 각각의 서브블록의 시작에서, ricePar는 0으로 설정된다. 신택스 요소 나머지를 코딩한 후, Rice 파라미터는 미리정의된 방정식에 따라 수정된다. (패스 4에서) 비2진 신택스 요소 absLevel을 코딩하기 위해, 로컬 템플릿에서의 절대값들의 합 sumAbs가 결정된다. 변수 ricePar 및 posZero는 테이블 조회에 의한 종속 양자화 및 sumAbs에 기초하여 결정된다. 중간 변수 codeValue는 다음과 같이 도출된다:
○ absLevel[k]가 0이면, codeValue는 posZero로 설정된다;
○ 그렇지 않고, absLevel[k]가 posZero보다 작거나 같으면, codeValue는 absLevel[k] - 1와 동일하게 설정된다.
○ 그렇지 않으면(absLevel[k]가 posZero보다 큼), codeValue는 absLevel[k]로 설정된다.
codeValue의 값은 Rice 파라미터 ricePar와 함께 Golomb-Rice 코드를 이용하여 코딩된다.
2.5.1.1. 계수 코딩을 위한 컨텍스트 모델링
변환 계수 레벨들의 절대값들에 관련된 신택스 요소들에 대한 확률 모델들의 선택은 절대 레벨들 또는 로컬 이웃에서 부분적으로 복원된 절대 레벨들의 값들에 의존한다. 이용된 템플릿은 도 18에 나와 있다.
선택된 확률 모델들은 로컬 이웃의 절대 레벨들(또는 부분적으로 복원된 절대 레벨들)의 합과 로컬 이웃의 (1과 동일한 sig_coeff_flags의 수에 의해 제공되는) 0보다 큰 절대 레벨들의 수에 의존한다. 컨텍스트 모델링 및 2진화는 로컬 이웃에 대한 다음과 같은 측정값들에 의존한다:
○ numSig: 로컬 이웃에서 0이 아닌 레벨들의 수.
○ sumAbs1: 로컬 이웃에서의 첫 번째 패스 후 부분적으로 복원된 절대 레벨(absLevel1)들의 합.
○ sumAbs: 로컬 이웃에서의 복원된 절대 레벨들의 합
○ 대각선 위치(d): 변환 블록 내부의 현재 스캔 위치의 수평 및 수직 좌표들의 합
numSig, sumAbs1, d의 값들에 기초하여, sig_flag, par_flag, gt1_flag, gt2_flag를 코딩하기 위한 확률 모델들이 선택된다. abs_remainder를 2진화하기 위한 Rice 파라미터는 sumAbs 및 numSig 값들에 기초하여 선택된다.
2.5.1.2. 종속 양자화( DQ )
또한, 동일한 HEVC 스칼라 양자화가 종속 스케일 양자화라고 불리는 새로운 개념에서 이용된다. 종속 스칼라 양자화란, 변환 계수에 대한 허용가능한 복원 값들의 세트가 복원 순서에서 현재 변환 계수 레벨에 선행하는 변환 계수 레벨들의 값들에 의존하는 접근법을 말한다. 이 접근법의 주요 효과는, HEVC에서 이용되는 종래의 독립 스칼라 양자화와 비교하여, 허용가능한 복원 벡터들이 N차원 벡터 공간에서 더 조밀하게 팩킹된다는 것이다(N은 변환 블록의 변환 계수들의 수를 나타냄). 즉, N차원 유닛 볼륨당 허용가능한 복원 벡터들의 주어진 평균 개수에 대해, 입력 벡터와 가장 가까운 복원 벡터 사이의 평균 왜곡이 감소된다. 종속 스칼라 양자화의 접근법은 다음과 같이 실현된다: (a) 상이한 복원 레벨들을 갖는 2개의 스칼라 양자화기를 정의하고 (b) 2개의 스칼라 양자화기 사이에서 스위칭하기 위한 프로세스를 정의함.
Q0 및 Q1으로 표시된 이용된 2개의 스칼라 양자화기가 도 19에 예시되어 있다. 이용가능한 복원 레벨들의 위치는 양자화 단계 크기 Δ에 의해 고유하게 명시된다. 이용된 스칼라 양자화기(Q0 또는 Q1)는 비트스트림에서 명시적으로 시그널링되지 않는다. 대신에, 현재 변환 계수에 이용되는 양자화기는 코딩/복원 순서에서 현재 변환 계수에 선행하는 변환 계수 레벨의 패리티들에 의해 결정된다.
도 20에 나타낸 바와 같이, 2개의 스칼라 양자화기(Q0 및 Q1) 사이의 스위칭은 4개의 상태를 갖는 상태 머신을 통해 실현된다. 상태는 4개의 상이한 값들: 0, 1, 2, 3을 가질 수 있다. 이것은 코딩/복원 순서에서 현재 변환 계수에 선행하는 변환 계수 레벨들의 패리티들에 의해 고유하게 결정된다. 변환 블록에 대한 역양자화 시작시, 상태는 0과 동일하게 설정된다. 변환 계수들은 스캔 순서로 복원된다(즉, 그들이 엔트로피 디코딩되는 것과 동일한 순서로). 현재 변환 계수가 복원된 후, 상태는 도 20에 도시된 바와 같이 업데이트되고, 여기서 k는 변환 계수 레벨의 값을 나타낸다.
2.5.1.3. 신택스 시맨틱스
7.3.7.11 잔차 코딩 신택스
Figure pct00056
Figure pct00057
Figure pct00058
Figure pct00059
Figure pct00060
2.5.2. TS-코딩된 블록들 및 QR - BDPCM 코딩된 블록들의 계수들 코딩
QR-BDPCM은 TS 코딩된 블록들에 대한 컨텍스트 모델링 방법을 따른다.
TS 잔차에 대한 수정된 변환 계수 레벨 코딩. 일반 잔차 코딩의 경우에 비해, TS에 대한 잔차 코딩에는 다음과 같은 변경들을 포함한다:
(1) 마지막 x/y 위치의 시그널링 없음
(2) 모든 이전 플래그가 0일 때 마지막 서브블록을 제외한 모든 서브블록에 대해 코딩된 coded_sub_block_flag;
(3) 감축된 템플릿을 이용한 sig_coeff_flag 컨텍스트 모델링,
(4) abs_level_gt1_flag 및 par_level_flag에 대한 단일 컨텍스트 모델,
(5) 부호 플래그에 대한 컨텍스트 모델링, 추가적인 5, 7, 9보다 큼 플래그들,
(6) 나머지 2진화를 위한 수정된 Rice 파라미터 도출
(7) 샘플당 컨텍스트 코딩된 빈들의 수에 대한 제한, 한 블록 내 샘플당 2개의 빈.
2.5.2.1. 신택스 시맨틱스
7.3.6.10 변환 유닛 신택스
Figure pct00061
Figure pct00062
Figure pct00063
컨텍스트 코딩된 빈들의 수는 각각의 CG에 대해 샘플당 2개 이하의 빈으로 제약된다.
표 9-15 ― 컨텍스트 코딩된 빈들을 갖는 신택스 요소들로의 ctxInc의 할당
Figure pct00064
3. 기존 구현들의 단점들
현재 설계는 다음과 같은 문제들을 갖는다:
(1) 크로마 성분들에 대한 4개의 미리정의된 변환 세트들은 루마 성분에 대한 것들과 동일하다. 또한, 동일한 인트라 예측 모드를 갖는 루마 및 크로마 블록들은 동일한 변환 세트를 이용한다. 그러나, 크로마 신호는 전형적으로 루마 성분에 비해 더 평활하다. 동일한 세트를 이용하는 것은 차선책일 수 있다.
(2) RST는 모든 CG가 아닌 소정의 CG들에만 적용된다. 그러나, RST 인덱스의 시그널링에 관한 결정은 전체 블록에서 0이 아닌 계수들의 수에 의존한다. RST-적용된 CG들의 모든 계수가 0이면, RST 인덱스를 시그널링할 필요가 없다. 그러나, 현재 설계는 여전히 인덱스를 시그널링하여, 불필요하게 비트들을 낭비한다.
(3) RST 인덱스는, 얼마나 많은 0이 아니는 계수들이 있는지, 소정의 위치들에 0이 아닌 계수가 존재하는지(예를 들어, 섹션 2.3.2.2.7의 numZeroOutSigCoeff, numSigCoeff)를 기록할 것이 요구되므로, 잔차 코딩 후에 시그널링된다. 이러한 설계는 신택스 파싱 프로세스를 더 복잡하게 만든다.
(4) RST 인덱스는 컨텍스트 코딩되고 컨텍스트 모델링은 코딩된 루마/크로마 인트라 예측 모드 및 MTS 인덱스에 의존한다. 이러한 설계는 인트라 예측 모드들의 복원 측면에서 파싱 지연을 도입한다. 그리고, 하드웨어 구현에 부담이될 수 있는 8개의 컨텍스트가 도입된다.
(a) DM과 CCLM은 동일한 컨텍스트 인덱스 오프셋을 공유하는데, 이것은 2개의 상이한 크로마 인트라 예측 방법이기 때문에 의미가 없다.
(5) 비-TS 잔차 코딩의 현재 설계는, 먼저, 계수들 정보를 코딩한 다음, RST의 인덱스를 코딩한다(즉, RST를 이용하는지 여부, 이용되는 경우, 어떤 행렬이 선택되는지). 이러한 설계에서는, RST 온/오프의 정보가 잔차들의 엔트로피 코딩에서 고려될 수 없다.
(6) RST는 1차 변환이 적용된 변환 블록의 상단 좌측 영역에 항상 적용된다. 그러나, 상이한 1차 변환 기반의 경우, 에너지가 변환 블록의 상단 좌측 영역에 집중되는 것은 항상 사실인 것은 아니다.
(7) RST 관련 정보의 시그널링 여부에 대한 결정은 이중 트리 및 단일 트리 코딩 구조에 대해 상이한 방식으로 수행된다.
(8) CU에 하나보다 많은 TU가 있는 경우(예를 들어, CU 크기가 128×128인 경우), RST 관련 정보를 파싱할지는 모든 TU를 디코딩한 후에만 결정될 수 있다. 예를 들어, 128×128 CU의 경우, 마지막 PB 이후에 오는 LFNST 인덱스를 기다리지 않고는 첫 번째 PB가 처리될 수 없다. 이것이 반드시 전체 64×64 기반의 디코더 파이프라인을 깨뜨리는 것은 아니지만(CABAC가 분리될 수 있는 경우), 소정의 개수의 디코더 파이프라인 스테이지들에 대해 데이터 버퍼링을 4배 증가시킨다. 이것은, 비용이 많이 든다.
4. 잔차 코딩을 위한 컨텍스트 모델링 예시적인 방법들
현재 개시된 기술의 실시예들은 기존 구현들의 단점들을 극복함으로써 더 높은 코딩 효율을 갖는 비디오 코딩을 제공한다. 잔차 코딩을 위한 컨텍스트 모델링을 위한 방법들은, 개시된 기술에 기초하여, 기존 및 미래의 비디오 코딩 표준들 양쪽 모두를 향상시킬 수 있으며, 다양한 구현에 대해 설명되는 이하의 예들에서 명료화된다. 아래에 제공된 개시된 기술의 예들은 일반적인 개념을 설명하는 것이고, 제한하는 것으로서 해석될 것을 의미하지 않는다. 한 예에서, 반대로 명시적으로 나타내지 않는 한, 이들 예에서 설명된 다양한 피처들은 결합될 수 있다.
이하의 설명에서, "블록"이란 코딩 유닛(CU) 또는 변환 유닛(TU) 또는 비디오 데이터의 임의의 직사각형 영역을 지칭할 수 있다. "현재 블록"이란 현재 디코딩/코딩되는 코딩 유닛(CU) 또는 현재 디코딩/코딩된 변환 유닛(TU) 또는 임의의 디코딩/코딩되는 비디오 데이터의 코딩 직사각형 영역을 지칭할 수 있다. "CU" 또는 "TU"는 "코딩 블록" 및 "변환 블록"이라고도 알려져 있을 수 있다.
이들 예에서, RST는 JVET-N0193에서의 임의의 설계 변형일 수 있다. RST는 하나의 블록에 2차 변환을 적용하거나 변환 스킵(TS)-코딩된 블록에 변환을 적용할 수 있는 임의의 기술일 수 있다(예를 들어, TS 코딩된 블록에 적용되는 JVET-N0193에서 제안된 RST).
또한, '제로 아웃 영역' 또는 '제로 아웃 CG'는 2차 변환 프로세스에서 이용되는 감축된 변환 크기로 인해 항상 0인 계수들을 갖는 영역들/CG들을 나타낼 수 있다. 예를 들어, 2차 변환 크기가 16×32이고 CG 크기가 4×4인 경우, 처음 2개의 CG에 적용되지만, 첫 번째 CG만 0이 아닌 계수들을 가질 수 있으며, 두 번째 4×4 CG는 제로 아웃 CG라고도 불린다.
RST에서 변환 행렬들의 선택
1. RST가 적용되는 하위영역은 블록의 상단 좌측 부분이 아닌 하위영역일 수 있다.
a. 한 예에서, RST는 블록의 우측 상단 또는 우측 하단 또는 좌측 하단 또는 중앙 하위영역에 적용될 수 있다.
b. RST가 적용되는 하위영역은 인트라 예측 모드 및/또는 1차 변환 행렬(예를 들어, DCT-II, DST-VII, 아이덴티티 변환)에 의존할 수 있다.
2. RST에서 이용되는 변환 세트 및/또는 변환 행렬의 선택은 컬러 성분에 의존할 수 있다.
a. 한 예에서, 한 세트의 변환 행렬은 루마(또는 G) 성분에 대해 이용되고, 한 세트는 크로마 성분(또는 B/R)에 대해 이용될 수 있다.
b. 한 예에서, 각각의 컬러 성분은 하나의 세트에 대응할 수 있다.
c. 한 예에서, 적어도 하나의 행렬은 상이한 컬러 성분들에 대해 2개 또는 복수의 세트 중 임의의 것에서 상이하다.
3. RST에서 이용되는 변환 세트 및/또는 변환 행렬의 선택은 인트라 예측 방법(예를 들어, CCLM, 복수의 기준 라인 기반의 인트라 예측 방법, 행렬 기반의 인트라 예측 방법)에 의존할 수 있다.
a. 한 예에서, 한 세트의 변환 행렬은 CCLM 코딩된 블록들에 대해 이용되고 다른 세트는 비-CCLM 코딩된 블록들에 대해 이용될 수 있다.
b. 한 예에서, 한 세트의 변환 행렬은 일반 인트라 예측 코딩된 블록들에 대해 이용되고 다른 세트는 복수의 기준 라인 인에이블된 블록들(즉, 인트라 예측을 위해 인접 라인을 이용하지 않음)에 대해 이용될 수 있다.
c. 한 예에서, 한 세트의 변환 행렬은 공동 크로마 잔차 코딩을 갖는 블록들에 대해 이용되고, 다른 세트는 공동 크로마 잔차 코딩이 적용되지 않는 블록들에 대해 이용될 수 있다.
d. 한 예에서, 적어도 하나의 행렬은 상이한 인트라 예측 방법들에 대해 2개 또는 복수의 세트 중 임의의 것에서 상이하다.
e. 대안으로서, RST는, 소정의 인트라 예측 방향들 및/또는 소정의 코딩 툴들, 예를 들어 CCLM, 및/또는 공동 크로마 잔차 코딩, 및/또는 소정의 컬러 성분(예를 들어, 크로마)으로 코딩된 블록들에 대해 디스에이블될 수 있다.
4. RST에서 이용되는 변환 세트 및/또는 변환 행렬들의 선택은 1차 변환에 의존할 수 있다.
a. 한 예에서, 하나의 블록에 적용된 1차 변환이 아이덴티티 변환인 경우(예를 들어, TS 모드가 하나의 블록에 적용됨), RST에서 이용되는 변환 세트 및/또는 변환 행렬들은 다른 종류의 1차 변환과는 상이할 수 있다.
b. 한 예에서, 하나의 블록에 적용된 수평 및 수직 1D 1차 변환이 동일한 기초인 경우(예를 들어, 양쪽 모두 DCT-II), RST에서 이용되는 변환 세트 및/또는 변환 행렬들은 상이한 방향들(수직 또는 수평)에 대해 상이한 기준의 1차 변환과는 상이할 수 있다.
RST 부가 정보 및 잔차 코딩의 시그널링
5. RST(예를 들어, st_idx)의 부가 정보를 시그널링할지의 여부 및/또는 시그널링하는 방법은 블록에서 (스캔 순서에서) 0이 아닌 마지막 계수에 의존할 수 있다.
a. 한 예에서, 0이 아닌 마지막 제로 계수가 RST가 적용된 CG들에 위치해 있는 경우에만, RST가 인에이블되고, RST의 인덱스가 시그널링될 수 있다.
b. 한 예에서, 0이 아닌 마지막 제로 계수가 RST가 적용된 CG들에 위치해 있지 않은 경우, RST는 디스에이블되고 RST의 시그널링은 스킵된다.
6. RST의 부가 정보(예를 들어, st_idx)를 시그널링할지 여부 및/또는 시그널링하는 방법은 CU에서 이용가능한 모든 컬러 성분들 대신에 소정의 컬러 성분의 계수들에 의존할 수 있다.
a. 한 예에서, 루마 정보만이 RST의 부가 정보를 시그널링할지 여부 및/또는 시그널링하는 방법을 결정하는데 이용될 수 있다.
i. 대안으로서, 또한, 상기의 방법은 블록의 치수가 소정의 조건들을 충족하는 경우에만 적용된다.
1) 조건은 W<T1 또는 H<T2이다.
2) 예를 들어, T1=T2=4. 따라서, 4×4 CU의 경우, 루마 블록 크기는 4×4이고, 4:2:0 포멧의 2개의 크로마 블록은 2×2이며, 이 경우, 루마 정보만이 이용될 수 있다.
ii. 대안으로서, 또한, 상기 방법은 현재 파티션 유형 트리가 단일 트리인 경우에만 적용된다.
b. 하나의 컬러 성분 정보를 이용할지 모든 컬러 성분 정보를 이용할지의 여부는 블록 치수/코딩된 정보에 의존할 수 있다.
7. RST의 부가 정보(예를 들어, st_idx)를 시그널링할지의 여부 및/또는 시그널링하는 방법은 전체 블록 대신에 하나의 블록의 부분적 영역 내의 계수들에 의존할 수 있다.
a. 한 예에서, 부분적 영역은 RST가 적용된 CG들로서 정의될 수 있다.
b. 한 예에서, 부분적 영역은 블록의 스캔 순서 또는 역 스캔 순서에서 처음 또는 마지막 M(예를 들어, M=1 또는 2) CG들로서 정의될 수 있다.
i. 한 예에서, M은 블록 치수에 의존할 수 있다.
ii. 한 예에서, 블록 크기가 4×N 및/또는 N×4(N>8)인 경우 M은 2로 설정된다.
iii. 한 예에서, 블록 크기가 4×8 및/또는 8×4 및/또는 W×H(W>=8, H>=8)인 경우 M은 1로 설정된다.
c. 한 예에서, 치수 W×H를 갖는 블록의 정보(예를 들어, 블록의 0이 아닌 계수들의 수)는 RST의 이용 및/또는 RST 관련 정보의 시그널링을 결정하기 위해 고려되는 것이 불허될 수 있다.
i. 예를 들어, 블록의 0이 아닌 계수들의 수는 W<T1 또는 H<T2인 경우 카운트되지 않을 수 있다. 예를 들어, T1=T2=4.
d. 한 예에서, 부분적 영역은 치수 W×H를 갖는 현재 블록의 상단 좌측 M×N 영역으로서 정의될 수 있다.
i. 한 예에서, M은 W보다 작을 수 있거나 및/또는 N은 H보다 작을 수 있다.
ii. 한 예에서, M 및 N은 고정된 수일 수 있다. 예를 들어, M=N=4.
iii. 한 예에서, M 및/또는 N은 W 및/또는 H에 의존할 수 있다.
iv. 한 예에서, M 및/또는 N은 최대 허용된 변환 크기에 의존할 수 있다.
1) 예를 들어, W가 8보다 크고 H가 4인 경우 M=8 및 N=4이다.
2) 예를 들어, H가 8보다 크고 W가 4인 경우 M=4 및 N=8이다.
3) 예를 들어, 상기의 2개의 조건 중 어느 것도 충족되지 않으면 M=4 및 N=4이다.
v. 대안으로, 또한, 이들 방법들은, 7.c의 조건이 충족되지 않는 것 등의, 소정의 블록 치수들에 대해서만 적용될 수 있다.
e. 한 예에서, 부분적 영역은 모든 블록에 대해 동일할 수 있다.
i. 대안으로서, 이것은 블록 치수 및/또는 코딩된 정보에 기초하여 변경될 수 있다.
f. 한 예에서, 부분적 영역은 스캔 순서 인덱스의 주어진 범위에 의존할 수 있다.
i. 한 예에서, 부분적 영역은, 치수 W×H를 갖는 현재 블록의 계수 스캔 순서(예를 들어, 역전된 디코딩 순서)에 기초하여 [dxS, IdxE](양쪽 끝값 포함) 이내의 스캔 순서 인덱스로 특정한 범위에 위치한 계수들을 포함하는 것일 수 있다.
1) 한 예에서, IdxS는 0이다.
2) 한 예에서, IdxE는 W×H-1보다 작을 수 있다.
3) 한 예에서, IdxE는 고정된 수일 수 있다. 예를 들어, IdxE = 15.
4) 한 예에서, IdxE는 W 및/또는 H에 의존할 수 있다.
a. 예를 들어, W가 8보다 크고 H가 4인 경우 IdxE = 31이다.
b. 예를 들어, H가 8보다 크고 W가 4인 경우 IdxE = 31이다.
c. 예를 들어, W가 8이고 H가 8인 경우 IdxE = 7이다.
d. 예를 들어, W가 4이고 H가 4인 경우 IdxE = 7이다.
e. 예를 들어, 상기의 2개의 조건 a) 및 b) 중 어느 것도 충족되지 않으면 IdxE = 15이다.
f. 예를 들어, 상기의 2개의 조건 a), b), c) 및 d) 중 어느 것도 충족되지 않으면 IdxE = 15이다.
g. 예를 들어, 상기의 2개의 조건 c) 및 d) 중 어느 것도 충족되지 않으면 IdxE = 15이다.
ii. 대안으로서, 또한, 이들 방법들은, 7.c의 조건이 충족되지 않는 것 등의, 소정의 블록 치수들에 대해서만 적용될 수 있다.
g. 한 예에서, 이것은 부분적 영역 내에서 0이 아닌 계수들의 위치에 의존할 수 있다.
h. 한 예에서, 이것은 부분적 영역 내에서 0이 아닌 계수들의 에너지(예를 들어, 제곱의 합 또는 절대값들의 합)에 의존할 수 있다.
i. 한 예에서, 이것은 전체 블록 대신에 한 블록의 부분적 영역 내의 0이 아닌 계수들의 수에 의존할 수 있다.
i. 대안으로서, 이것은 CU의 하나 또는 복수의 블록의 부분적 영역 내의 0이 아닌 계수들의 수에 의존할 수 있다.
ii. 한 블록의 부분적 영역 내의 0이 아닌 계수들의 수가 임계값 미만인 경우, RST의 부가 정보의 시그널링은 스킵될 수 있다.
iii. 한 예에서, 임계값은 N으로 고정된다(예를 들어, N = 1 또는 2).
iv. 한 예에서, 임계값은 슬라이스 유형/픽처 유형/파티션 트리 유형(이중 또는 단일)/비디오 콘텐츠(스크린 콘텐츠 또는 카메라 캡처된 콘텐츠)에 의존할 수 있다.
v. 한 예에서, 임계값은 4:2:0 또는 4:4:4 등의 컬러 포멧들 및/또는 Y 또는 Cb/Cr 등의 컬러 성분들에 의존할 수 있다.
8. RST가 적용될 수 있는 CG들에서 0이 아닌 계수가 없을 때, RST는 디스에이블되어야 한다.
a. 한 예에서, RST가 하나의 블록에 적용될 때, RST가 적용되는 적어도 하나의 CG는 적어도 하나의 0이 아닌 계수를 포함해야 한다.
b. 한 예에서, 4×N 및/또는 N×4(N>8)의 경우, RST가 적용되면, 처음 2개의 4×4 CG는 적어도 하나의 0이 아닌 계수를 포함해야 한다.
c. 한 예에서, 4×8 및/또는 8×4의 경우, RST가 적용되면, 상단 좌측 4×4는 적어도 하나의 0이 아닌 계수를 포함해야 한다.
d. 한 예에서, W×H(W>=8 및 H>=8)의 경우, RST가 적용되면, 상단 좌측 4×4는 적어도 하나의 0이 아닌 계수를 포함해야 한다.
e. 순응 비트스트림(conformance bitstream)은 상기의 조건들 중 하나 또는 복수개를 충족해야 한다.
9. RST 관련 신택스 요소들은 잔차들을 코딩하기 전에 시그널링될 수 있다(예를 들어, 변환 계수/직접 양자화됨).
a. 한 예에서, 제로 아웃 영역에서 0이 아닌 계수들의 수(예를 들어, numZeroOutSigCoeff) 및 전체 블록에서 0이 아닌 계수들의 수(예를 들어, numSigCoeff)는 계수의 파싱 프로세스에서 제거된다.
b. 한 예에서, RST 관련 신택스 요소들(예를 들어, st_idx)는 residual_coding 전에 코딩될 수 있다.
c. RST 관련 신택스 요소들은 조건부로 시그널링될 수 있다(예를 들어, 코딩된 블록 플래그들, TS 모드 이용에 따라).
vi. 한 예에서, RST 관련 신택스 요소들(예를 들어, st_idx)은 코딩된 블록 플래그들의 시그널링 후에 또는 TS/MTS 관련 신택스 요소들의 시그널링 후에 코딩될 수 있다.
vii. 한 예에서, TS 모드가 인에이블될 때(예를 들어, 디코딩된 transform_skip_flag가 1과 동일함), RST 관련 신택스 요소들의 시그널링은 스킵된다.
d. 제로 아웃 CG들에 대해서는 잔차 관련 신택스가 시그널링되지 않을 수 있다.
e. 잔차들을 코딩하는 방법(예를 들어, 스캔 순서, 2진화, 디코딩될 신택스, 컨텍스트 모델링)은 RST에 의존할 수 있다.
i. 한 예에서, 대각선 우상향 스캔 순서 대신에 래스터 스캔 순서가 적용될 수 있다.
1) 래스터 스캔 순서는 좌측에서 우측으로, 위에서 아래로, 또는 그 역순이다.
2) 대안으로서, 대각선 우상향 스캔 순서 대신에 수직 스캔 순서(위에서 아래로, 좌측에서 우측으로, 또는 그 역순)가 적용될 수 있다.
3) 대안으로서, 또한, 컨텍스트 모델링이 수정될 수 있다.
a. 한 예에서, 컨텍스트 모델링은, 우측, 하단, 우측 하단 이웃들을 이용하는 것 대신에, 스캔 순서에서 가장 최근의 N개의 이웃들인 템플릿의 이전에 코딩된 정보에 의존할 수 있다.
b. 한 예에서, 컨텍스트 모델링은 스캔된 인덱스(예를 들어, -1, -2, .. 현재 인덱스가 0이라고 가정함)에 따라 템플릿에서 이전에 코딩된 정보에 의존할 수 있다.
ii. 한 예에서, 상이한 2진화 방법들(예를 들어, rice 파라미터 도출)이 RST 코딩된 블록 및 비-RST 코딩된 블록과 연관된 잔차들을 코딩하기 위해 적용될 수 있다.
iii. 한 예에서, 소정의 신택스 요소들의 시그널링은 RST 코딩된 블록들에 대해 스킵될 수 있다.
1) RST가 적용되는 CG들에 대한 CG 코딩된 블록 플래그들(coded_sub_block_flag)의 시그널링은 스킵될 수 있다.
a. 한 예에서, 대각선 스캔 순서로 처음 3개의 CG들에 RST8×8이 적용될 때, 두 번째 및 세 번째 CG, 예를 들어, 블록의 상단 좌측 8×8 영역의 우측 상단 4×4 CG 및 좌측 하단 4×4 CG에 대해, CG 코딩된 블록 플래그들의 시그널링은 스킵된다.
i. 대안으로서, 또한, 대응하는 CG 코딩된 블록 플래그는 0인 것으로 추론된다, 즉, 모든 계수는 0이다.
b. 한 예에서, 하나의 블록에 RST가 적용될 때, 스캔 순서의 첫 번째 CG(또는 역 스캔 순서의 마지막 CG)에 대해 CG 코딩된 블록 플래그의 시그널링이 스킵된다.
ii. 대안으로서, 또한, 블록의 상단 좌측 CG에 대한 CG 코딩된 블록 플래그는 1인 것으로 추론된다, 즉, 적어도 하나의 0이 아닌 계수를 포함한다.
c. 8×8 블록의 한 예가 도 21에 도시되어 있다. 8×8 블록에 RST8×8 또는 RST4×4가 적용될 때, CG0의 coded_sub_block_flag는 1인 것으로 추론되고, CG1 및 CG2의 coded_sub_block_flag는 0인 것으로 추론된다.
2) 소정의 좌표들에 대한 계수들 및/또는 부호 플래그들의 크기들의 시그널링은 스킵될 수 있다.
a. 한 예에서, 스캔 순서에서 하나의 CG에 관한 인덱스가 0이 아닌 계수가 존재할 수 있는 최대 허용 인덱스(예를 들어, 섹션 0의 nonZeroSize) 이상인 경우, 계수들의 시그널링은 스킵될 수 있다.
b. 한 예에서, sig _ coeff _flag, abs _level_ gtx _flag, par_level_flag, abs_remainder, coeff _sign_flag, dec_ abs _level 등의 신택스 요소들의 시그널링은 스킵될 수 있다.
3) 대안으로서, 잔차들의 시그널링(예를 들어, CG 코딩된 블록 플래그, 계수들의 크기들 및/또는 소정의 좌표들에 대한 부호 플래그들)이 유지될 수 있지만, 컨텍스트 모델링은 다른 CG들과는 상이하도록 수정될 수 있다.
iv. 한 예에서, RST-적용된 CG들 및 다른 CG들에서의 잔차들의 코딩은 상이할 수 있다.
1) 상기 sub-bullet들의 경우, 이들은 RST가 적용된 CG들에만 적용될 수 있다.
10. RST 관련 신택스 요소들은, 변환 스킵 및/또는 MTS 인덱스 등의, 다른 변환 표시들 이전에 시그널링될 수 있다.
a. 한 예에서, 변환 스킵의 시그널링은 RST 정보에 의존할 수 있다.
i. 한 예에서, 변환 스킵 표시는 시그널링되지 않고 블록에 RST가 적용되는 경우 그 블록에 대해 0인 것으로 추론된다.
b. 한 예에서, MTS 인덱스의 시그널링은 RST 정보에 의존할 수 있다.
i. 한 예에서, RST가 블록에 적용되는 경우 하나 또는 복수의 MTS 변환 표시가 시그널링되지 않고 블록에 대해 이용되지 않는 것으로 추론된다.
11. 하나의 블록 내의 상이한 부분들에 대한 산술 코딩에서 상이한 컨텍스트 모델링 방법들을 이용하는 것이 제안된다.
a. 한 예에서, 블록은, 스캔 순서의 처음 M개의 CG들과, 나머지 CG의 2개의 부분으로 처리된다.
i. 한 예에서 M은 1로 설정된다.
ii. 한 예에서, M은 4×N 및 N×4(N>8) 블록에 대해 2로 설정된다; 다른 모든 경우에 대해서는 1로 설정된다.
b. 한 예에서, 블록은, RST가 적용되는 하위영역들과 RST가 적용되지 않는 하위영역들의 2개의 부분으로 처리된다.
i. RST4×4가 적용되는 경우, RST가 적용된 하위영역은 현재 블록의 처음 하나 또는 2개의 CG이다.
ii. RST4×4가 적용되는 경우, RST가 적용된 하위영역은 현재 블록의 처음 3개의 CG이다.
c. 한 예에서, 한 블록 내의 첫 번째 부분에 대한 컨텍스트 모델링 프로세스에서 이전에 코딩된 정보의 이용을 디스에이블하고 두 번째 부분에 대해서는 인에이블하는 것이 제안된다.
d. 한 예에서, 첫 번째 CG를 디코딩할 때, 나머지 하나 또는 복수의 CG에 대한 정보는 이용이 불허될 수 있다.
i. 한 예에서, 첫 번째 CG에 대한 CG 코딩된 블록 플래그를 코딩할 때, 두 번째 CG의 값(예를 들어, 우측 또는 아래)은 고려되지 않는다.
ii. 한 예에서, 첫 번째 CG에 대한 CG 코딩된 블록 플래그를 코딩할 때, 두 번째 및 세 번째 CG(예를 들어, W×H(W>=8 및 H>=8)의 경우 우측 및 아래 CG들)의 값은 고려되지 않는다.
iii. 한 예에서, 현재 계수를 코딩할 때, 컨텍스트 템플릿의 그 이웃이 상이한 CG에 있으면, 이 이웃으로부터의 정보는 이용이 불허된다.
e. 한 예에서, RST가 적용된 영역의 계수들을 디코딩할 때, RST가 적용되지 않는 나머지 영역의 정보는 이용이 불허될 수 있다.
f. 대안으로서, 또한, 상기 방법들은 소정의 조건들 하에서 적용될 수 있다.
i. 조건은 RST가 인에이블되었는지의 여부를 포함할 수 있다.
ii. 조건은 블록 치수를 포함할 수 있다.
RST 부가 정보의 산술 코딩에서 컨텍스트 모델링
12. RST 인덱스를 코딩할 때, 컨텍스트 모델링은 명시적 또는 묵시적 복수의 변환 선택(multiple transform selection)(MTS)이 인에이블되었는지 여부에 의존할 수 있다.
a. 한 예에서, 묵시적 MTS가 인에이블될 때, 동일한 인트라 예측 모드로 코딩된 블록들에 대해 상이한 컨텍스트들이 선택될 수 있다.
i. 한 예에서, 형상(정사각형 또는 비정사각형) 등의 블록 치수들은 컨텍스트를 선택하는데 이용된다.
b. 한 예에서, 명시적 MTS에 대해 코딩된 변환 인덱스(예를 들어, tu_mts_idx)를 체크하는 것 대신에, 변환 행렬 기반이 이용될 수 있다.
i. 한 예에서, 수평 및 수직 1D 변환들 양쪽 모두에 대한 DCT-II를 이용한 변환 행렬 기반의 경우, 대응하는 컨텍스트는 다른 종류들의 변환 행렬과 상이할 수 있다.
13. RST 인덱스를 코딩할 때, 컨텍스트 모델링은 CCLM이 인에이블되었는지 여부(예를 들어, sps_cclm_enabled_flag)에 의존할 수 있다.
a. 대안으로서, RST 인덱스 코딩을 위한 컨텍스트를 인에이블할지 여부 또는 선택하는 방법은, 하나의 블록에 CCLM이 적용되는지 여부에 의존할 수 있다.
b. 한 예에서, 컨텍스트 모델링은 CCLM이 현재 블록에 대해 인에이블되었는지 여부에 의존할 수 있다.
i. 한 예에서, intraModeCtx = sps_cclm_enabled_flag? ( intra_chroma_pred_mode[ x0 ][ y0 ] is CCLM: intra_chroma_pred_mode[ x0 ][ y0 ] is DM) ? 1: 0.
c. 대안으로서, RST 인덱스 코딩을 위한 컨텍스트를 인에이블할지 여부 또는 선택하는 방법은 현재 크로마 블록이 DM 모드로 코딩되는지 여부에 의존할 수 있다.
i. 한 예에서, the intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] == (sps _ cclm _enabled_ flag ? 7:4) ) ? 1: 0.
14. RST 인덱스를 코딩할 때, 컨텍스트 모델링은 블록 치수/분할 깊이(예를 들어, 쿼드트리 깊이 및/또는 BT/TT 깊이)에 의존할 수 있다.
15. RST 인덱스를 코딩할 때, 컨텍스트 모델링은 컬러 포멧들 및/또는 컬러 성분들에 의존할 수 있다.
16. RST 인덱스를 코딩할 때, 컨텍스트 모델링은 인트라 예측 모드, 및/또는 MTS 인덱스와는 독립적일 수 있다.
17. RST 인덱스를 코딩할 때, 첫 번째 및/또는 두 번째 빈은 단 하나의 컨텍스트로 컨텍스트 코딩될 수 있다; 또는 바이패스 코딩될 수 있다.
조건들 하에서 RST 프로세스 기동
18. 역 RST 프로세스를 기동할지의 여부는 CG 코딩된 블록 플래그들에 의존할 수 있다.
a. 한 예에서, 상단 좌측 CG 코딩된 블록 플래그가 0이면, 프로세스를 기동할 필요가 없다.
i. 한 예에서, 상단 좌측 CG 코딩된 블록 플래그가 0이고 블록 크기가 4×N/N×4(N>8)와 같지 않으면, 프로세스를 기동할 필요가 없다.
b. 한 예에서, 스캔 순서에서 처음 2개의 CG 코딩된 블록 플래그가 모두 0과 같으면, 프로세스를 기동할 필요가 없다.
i. 한 예에서, 스캔 순서에서 처음 2개의 CG 코딩된 블록 플래그가 모두 0이고 블록 크기가 4×N/N×4(N>8)이면, 프로세스를 기동할 필요가 없다.
19. 역 RST 프로세스를 기동할지 여부는 블록 치수에 의존할 수 있다.
a. 한 예에서, 4×8/8×4 등의 소정의 블록 치수의 경우, RST가 디스에이블될 수 있다. 대안으로서, 또한, RST 관련 신택스 요소들의 시그널링은 스킵될 수 있다.
이중 트리 및 단일 트리 코딩을 위한 단일화
20. RST의 이용 및/또는 RST 관련 정보의 시그널링은 이중 트리 및 단일 트리 코딩에서 동일한 방식으로 결정될 수 있다.
a. 예를 들어, 카운팅된 0이 아닌 계수들의 수(예를 들어, JVET-N0193에 명시된 numSigCoeff)가 이중-트리 코딩의 경우 T1보다 크지 않거나 단일-트리 코딩의 경우 T2보다 크지 않다면, RST를 적용되지 않아야 하고, 관련 정보는 시그널링되지 않으며, 여기서 T1은 T2와 동일하다.
b. 한 예에서, T1 및 T2 양쪽 모두는 N으로 설정된다, 예를 들어, N = 1 또는 2.
CU에서 복수의 TU를 고려하기.
21. RST를 적용할지 여부 및/또는 적용 방법은 블록 치수들 W×H에 의존할 수 있다.
a. 한 예에서, W>T1 또는 H>T2인 경우 RST가 적용되지 않을 수 있다.
b. 한 예에서, W>T1 및 H>T2인 경우 RST가 적용되지 않을 수 있다.
c. 한 예에서, W*H>=T인 경우 RST가 적용되지 않을 수 있다.
d. 상기의 예들에서, 다음이 적용된다:
i. 한 예에서, 블록은 CU이다.
ii. 한 예에서, T1=T2=64이다.
iii. 한 예에서, T1 및/또는 T2는 허용된 최대 변환 크기에 의존할 수 있다. 예를 들어, T1=T2= 허용된 최대 변환 크기.
iv. 한 예에서, T는 4096으로 설정된다.
e. 대안으로서, 또한, RST가 적용되지 않는 것으로 결정되면, 관련 정보는 시그널링되지 않을 수 있다.
22. CU에 N개의(N>1) TU가 있는 경우, N개의 TU 중 하나만의 코딩된 정보가 RST의 이용 및/또는 RST 관련 정보의 시그널링을 결정하는데 이용된다.
a. 한 예에서, 디코딩 순서에서 CU의 첫 번째 TU는 결정을 내리는데 이용될 수 있다.
b. 한 예에서, 디코딩 순서에서 CU의 상단 좌측 TU는 결정을 내리는데 이용될 수 있다.
c. 하나의 예에서, 특정한 TU에 대한 결정은 CU에 오직 하나의 TU가 있는 경우와 동일한 방식으로 이루어질 수 있다.
23. RST의 이용 및/또는 RST 관련 정보의 시그널링은 CU 레벨 대신에 TU 레벨 또는 PU 레벨에서 수행될 수 있다.
a. 대안으로서, 또한, CU 내의 상이한 TU들/PU들은 상이한 2차 변환 행렬들 또는 인에이블/디스에이블 제어 플래그들을 선택할 수 있다.
b. 대안으로서, 또한, 이중 트리 경우 및 크로마 블록이 코딩되는 경우, 상이한 컬러 성분들은 상이한 2차 변환 행렬들 또는 인에이블/디스에이블 제어 플래그들을 선택할 수 있다.
c. 대안으로서, 비디오 유닛 레벨에서 RST 관련 정보를 시그널링할지 여부는 파티션 트리 유형(이중 또는 단일)에 의존할 수 있다.
d. 대안으로서, 비디오 유닛 레벨에서 RST 관련 정보를 시그널링할지 여부는, CU/PU/TU와, 더 크거나 더 작은 것 등의 최대 허용 변환 블록 크기 사이의 관계에 의존할 수 있다.
5. 개시된 기술의 예시적인 구현들.
이하의 예시적인 실시예들에서, JVET-N0193 상단의 변경은 회색으로 강조된다. 삭제된 텍스트는 이중 브라켓으로 마킹된다(예를 들어, [[a]]는 문자 "a"의 삭제를 나타냄).
5.1. 실시예 #1
RST 인덱스의 시그널링은, 전체 블록 대신에, 블록의 하위영역 내의 0이 아닌 계수의 수에 의존한다.
7.3.6.11 잔차 코딩 신택스
Figure pct00065
Figure pct00066
Figure pct00067
대안으로서, 조건은 다음으로 대체될 수 있다:
Figure pct00068
5.2. 실시예 #2
RST는 소정의 CG들의 코딩된 블록 플래그들에 따라 기동되지 않을 수도 있다.
8.7.4. 스케일링된 변환 계수들에 대한 변환 프로세스
8.7.4.1 일반
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 상단 좌측 루마 샘플에 관한 현재 루마 변환 블록의 상단 좌측 샘플을 명시하는 루마 위치(xTbY, yTbY),
- 현재 변환 블록의 폭을 명시하는 변수 nTbW,
- 현재 변환 블록의 높이를 명시하는 변수 nTbH,
- 현재 블록의 컬러 성분을 명시하는 변수 cIdx,
- x = 0..nTbW-1, y = 0..nTbH-1인 스케일링된 변환 계수들의 (nTbW)×(nTbH) 어레이 d[ x ][ y ].
이 프로세스의 출력은 x = 0..nTbW-1, y = 0..nTbH-1인 잔차 샘플들의 (nTbW)×(nTbH) 어레이 r[ x ][ y ]이다.
변수 bInvokeST는 0으로 설정되고, 다음 조건들 중 하나가 참인 경우 1로 추가로 수정된다:
- coded_sub_block_flag[0][0]이 1이고 nTbW × nTbH !=32인 경우
- coded_sub_block_flag[0][0] 및 coded_sub_block_flag[0][1]이 1이고 nTbW가 4이고 nTbH가 8보다 큰 경우
- coded_sub_block_flag[0][0] 및 coded_sub_block_flag[1][0]이 1이고 nTbW가 8보다 크고 nTbH가 4인 경우
bInvokeST가 1이고 st_idx[ xTbY ][ yTbY ]가 0이 아닌 경우, 다음이 적용된다:
1. 변수 nStSize, log2StSize, numStX, numStY 및 nonZeroSize는 다음과 같이 도출된다:
- nTbW와 nTbH가 모두 8보다 크거나 같으면, log2StSize는 3으로 설정되고 nStOutSize는 48로 설정된다.
- 그렇지 않으면, log2StSize가 2로 설정되고 nStOutSize가 16으로 설정된다.
- nStSize는( 1 << log2StSize )로 설정된다.
- nTbH가 4이고 nTbW가 8보다 크면, numStX는 2와 동일하게 설정된다.
- 그렇지 않으면, numStX가 1로 설정된다.
- nTbW가 4이고 nTbH가 8보다 크면, numStY는 2와 동일하게 설정된다.
- 그렇지 않으면, numStY가 1로 설정된다.
- nTbW와 nTbH가 모두 4와 같거나 nTbW와 nTbH 양쪽 모두가 8인 경우, nonZeroSize는 8과 동일하게 설정된다.
- 그렇지 않으면, nonZeroSize가 16과 동일하게 설정된다.
2. xSbIdx = 0..numStX - 1 및 ySbIdx = 0..numStY - 1의 경우 다음이 적용된다:
- x = 0..nonZeroSize - 1인 변수 어레이 u[ x ]는 다음과 같이 도출된다:
xC = ( xSbIdx << log2StSize ) + DiagScanOrder[ log2StSize ][ log2StSize ][ x ][ 0 ]
yC = ( ySbIdx << log2StSize ) + DiagScanOrder[ log2StSize ][log2StSize ][ x ][ 1 ]
u[ x ] = d[ xC ][ yC ]
- x = 0..nonZeroSize - 1인 u[ x ]는, 스케일링된 변환 계수들의 변환 입력 길이 nonZeroSize, 변환 출력 길이 nStOutSize, x = 0..nonZeroSize - 1인 목록 u[ x ], 변환 세트 선택을 위한 인덱스 stPredModeIntra, 및 변환 세트 st_idx에서의 변환 선택을 위한 인덱스 [ xTbY ][ yTbY ]를 입력으로 취하여, 조항 8.7.4.4에 명시된 대로 1차원 변환 프로세스를 기동함으로써 x = 0..nStOutSize - 1인 변수 어레이 v[ x ]로 변환되고, 출력은 x = 0..nStOutSize - 1인 목록 v[ x ]이다. 변수 stPredModeIntra는 조항 8.4.4.2.1에 명시된 predModeIntra로 설정된다.
- x = 0..nStSize - 1, y = 0..nStSize - 1인 어레이 d[( xSbIdx << log2StSize ) + x ][( ySbIdx << log2StSize ) + y ]는 다음과 같이 도출된다:
- stPredModeIntra가 34보다 작거나 같거나 INTRA_LT_CCLM, INTRA_T_CCLM 또는 INTRA_L_CCLM과 같으면 다음이 적용된다:
d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] =
( y < 4 ) ? v[ x + ( y << log2StSize ) ]: ( ( x < 4 ) ? v[ 32 + x + ( ( y - 4 ) << 2 ) ]:
d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] )
- 그렇지 않으면, 다음이 적용된다:
d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] =
( y < 4 ) ? v[ y + ( x << log2StSize ) ]: ( ( x < 4 ) ? v[ 32 + ( y - 4 ) + ( x << 2 ) ]:
d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] )
변수 implicitMtsEnabled는 다음과 같이 도출된다:
- sps_mts_enabled_flag가 1이고 다음 조건들 중 하나가 참이면, implicitMtsEnabled는 1과 동일하게 설정된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 같지 않음.
- cu_sbt_flag는 1이고 Max( nTbW, nTbH )는 32보다 작거나 같다
- sps_explicit_mts_intra_enabled_flag 및 sps_explicit_mts_inter_enabled_flag 양쪽 모두는 0이고 CuPredMode[ xTbY ][ yTbY ]는 MODE_INTRA와 같다
- 그렇지 않으면, implicitMtsEnabled가 0과 동일하게 설정된다.
수평 변환 커널을 명시하는 변수 trTypeHor와 수직 변환 커널을 명시하는 변수 trTypeVer는 다음과 같이 도출된다:
- cIdx가 0보다 크면, trTypeHor 및 trTypeVer가 0과 동일하게 설정된다.
- 그렇지 않고, implicitMtsEnabled가 1이면 다음이 적용된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 같지 않으면, trTypeHor와 trTypeVer는 intraPredMode에 따라 표 8-15에서 명시된다.
- 그렇지 않고, cu_sbt_flag가 1인 경우, trTypeHor 및 trTypeVer는 cu_sbt_horizontal_flag 및 cu_sbt_pos_flag에 따라 표 8-14에서 명시된다.
- 그렇지 않으면(sps_e×plicit_mts_intra_enabled_flag 및 sps_e×plicit_mts_inter_enabled_flag가 0임), trTypeHor 및 trTypeVer는 다음과 같이 도출된다:
trTypeHor = ( nTbW >= 4 && nTbW <= 16 && nTbW <= nTbH ) ? 1: 0 (8-1029)
trTypeVer = ( nTbH >= 4 && nTbH <= 16 && nTbH <= nTbW ) ? 1: 0 (8-1030)
- 그렇지 않으면, trTypeHor 및 trTypeVer는 tu_mts_idx[ xTbY ][ yTbY ]에 따라 표 8-13에서 명시된다.
변수들 nonZeroW 및 nonZeroH는 다음과 같이 도출된다:
nonZeroW = Min( nTbW, ( trTypeHor > 0 )  ?  16  :  32 ) (8-1031)
nonZeroH = Min( nTbH, ( trTypeVer > 0 )  ?  16  :  32 ) (8-1032)
잔차 샘플들의 (nTbW)×(nTbH) 어레이 r은 다음과 같이 도출된다:
1. nTbH가 1보다 크면 x = 0..nonZeroW-1, y = 0..nonZeroH-1인 스케일링된 변환 계수들 d[ × ][ y ]의 각각의 (수직) 열은, 변환 블록의 높이 nTbH, 스케일링된 변환 계수들의 0이 아닌 높이 nonZeroH, y = 0..nonZeroH-1인 목록 d[ x ][ y ] 및 trTypeVer와 동일하게 설정된 변환 유형 변수 trType을 입력들로서 취하여 각각의 열 x = 0..nonZeroW-1에 대해 조항 8.7.4.2에 명시된 1차원 변환 프로세스를 기동함으로써 x = 0..nonZeroW-1, y = 0..nTbH-1인 e[ x ][ y ] 변환되고, 출력은 y = 0..nTbH-1인 목록 e[ x ][ y ]이다.
2. nTbH와 nTbW 양쪽 모두가 1보다 큰 경우, x = 0..nonZeroW-1, y = 0..nTbH-1인 중간 샘플 값들 g[ x ][ y ]는 다음과 같이 도출된다:
g[ x ][ y ] = Clip3( CoeffMin, CoeffMax, ( e[ x ][ y ] + 64 ) >> 7 ) (8-1033)
nTbW가 1보다 크면, x = 0..nonZeroW-1, y = 0..nTbH-1인 결과 어레이 g[ x ][ y ]의 각각의 (수평) 행은, 변환 블록의 폭 nTbW, 결과 어레이 g[ x ][ y ]의 0이 아닌 폭 nonZeroW, x = 0..nonZeroW-1인 목록 g[ x ][ y ] 및 trTypeHor와 동일하게 설정된 변환 유형 변수 trType을 입력들로서 취하여 각각의 행 y = 0..nTbH-1에 대해 조항 8.7.4.2에 명시된 1차원 변환 프로세스를 기동함으로써 x = 0..nTbW-1, y = 0..nTbH-1인 r[ x ][ y ]로 변환되고, 출력은 x = 0..nTbW-1인 목록 r[ x ][ y ]이다.
5.3 실시예 #3
RST 인덱스의 컨텍스트 모델링이 교정된다.
5.3.1 대안 #1
9.5.4.2.8 신택스 요소 st_idx에 대한 ctxInc의 도출 프로세스
이 프로세스에 대한 입력들은, 컬러 성분 인덱스 cIdx, cIdx에 따라 현재 픽처의 상단 좌측 샘플에 관한 현재 루마 또는 크로마 코딩 블록의 상단 좌측 샘플을 명시하는 루마 또는 크로마 위치 ( x0, y0 ), 트리 유형 treeType, 조항 8.4.2에 명시된 루마 인트라 예측 모드 IntraPredModeY[ x0 ][ y0 ], 조항 7.4.7.5에 명시된 크로마 샘플들에 대한 인트라 예측 모드를 명시하는 신택스 요소 intra_chroma_pred_mode[ x0 ][ y0 ], 블록 폭 nTbW 및 높이 nTbH, 및 복수의 변환 선택 인덱스 tu_mts_idx[ x0 ][ y0 ]이다.
이 프로세스의 출력은 변수 ctxInc이다.
변수 intraModeCtx는 다음과 같이 도출된다:
cIdx가 0이라면, intraModeCtx는 다음과 같이 도출된다:
intraModeCtx = ( IntraPredModeY[ x0 ][ y0 ] <= 1 ) ? 1: 0
그렇지 않으면(cIdx가 0보다 큼), intraModeCtx가 다음과 같이 도출된다:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] >= 4 ) ? 1: 0
변수 mtsCtx는 다음과 같이 도출된다:
mtsCtx = ( ( sps_explicit_mts_intra_enabled_fla g ? tu_mts_idx[ x0 ][ y0 ] == 0: nTbW==nTbH ) && treeType != SINGLE_TREE ) ? 1: 0
변수 ctxInc는 다음과 같이 도출된다:
ctxInc = ( binIdx << 1 ) + intraModeCtx + ( mtsCtx << 2 )
5.3.2 대안 #2
Figure pct00069
표 9-15 ― 컨텍스트 코딩된 빈들을 갖는 신택스 요소들로의 ctxInc의 할당
Figure pct00070
[[9.5.4.2.8 신택스 요소 st_ idx에 대한 ctxInc의 도출 프로세스
이 프로세스에 대한 입력들은, 컬러 성분 인덱스 cIdx, cIdx에 따라 현재 픽처의 상단 좌측 샘플에 관한 현재 루마 또는 크로마 코딩 블록의 상단 좌측 샘플을 명시하는 루마 또는 크로마 위치 ( x0, y0 ), 트리 유형 treeType, 조항 8.4.2에 명시된 루마 인트라 예측 모드 IntraPredModeY[ x0 ][ y0 ], 조항 7.4.7.5에 명시된 크로마 샘플들에 대한 인트라 예측 모드를 명시하는 신택스 요소 intra_chroma_pred_mode[ x0 ][ y0 ], 및 복수의 변환 선택 인덱스 tu_mts_idx[ x0 ][ y0 ]이다.
이 프로세스의 출력은 변수 ctxInc이다.
변수 intraModeCtx는 다음과 같이 도출된다:
cIdx가 0이라면, intraModeCtx는 다음과 같이 도출된다:
intraModeCtx = ( IntraPredModeY[ x0 ][ y0 ] <= 1 ) ? 1: 0
그렇지 않으면(cIdx가 0보다 큼), intraModeCtx가 다음과 같이 도출된다:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] >= 4 ) ? 1: 0
변수 mtsCtx는 다음과 같이 도출된다:
mtsCtx = ( tu_mts_idx[ x0 ][ y0 ] == 0 && treeType != SINGLE_TREE ) ? 1: 0
변수 ctxInc는 다음과 같이 도출된다:
ctxInc = ( binIdx << 1 ) + intraModeCtx + ( mtsCtx << 2 ) ]]
5.4 실시예 #4
대응하는 글순서 기호 7.c 및 7.d
7.3.7.11 잔차 코딩 신택스
Figure pct00071
한 대안적인 예에서, 다음이 적용될 수 있다:
Figure pct00072
한 예에서, 다음이 적용될 수 있다:
log2TbWidth > 3 && log2TbHeight = = 2인 경우 SigRangeX는 8과 같다. 그렇지 않으면, 4와 같다.
log2TbHeight > 3 && log2TbWidth = = 2인 경우 SigRangeY는 8과 같다. 그렇지 않으면, 4와 같다.
5.5 실시예 #5
글순서 기호 19에 대응.
7.3.6.5 코딩 유닛 신택스
Figure pct00073
5.6 실시예 #6
글순서 기호 20에 대응.
7.3.6.5 코딩 유닛 신택스
Figure pct00074
5.7 실시예 #7
글순서 기호 21에 대응.
7.3.7.11 잔차 코딩 신택스
Figure pct00075
(CbX[x0][y0], CbY[x0][y0])는 위치 (x0, y0)를 커버하는 코딩 유닛의 상단 좌측 위치를 명시한다.
전술된 예들은, 비디오 디코더 또는 비디오 인코더에서 구현될 수 있는 후술되는 방법들, 예를 들어, 방법들 2200, 2210, 2220, 2230, 2240 및 2250의 정황에서 통합될 수 있다.
도 22a는 비디오 처리를 위한 한 예시적인 방법의 플로차트를 도시한다. 방법(2210)은, 단계 2212에서, 비디오의 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함한다. 일부 구현에서, 변환을 수행하는 단계는, 현재 비디오 블록의 폭(W) 및/또는 높이(H)에 기초하여, 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계를 포함한다. 일부 구현에서, 변환을 수행하는 단계는, 현재 비디오 블록에 적용되는 파티션 트리 유형과는 독립적인 규칙에 따라 2차 변환 툴의 이용 및/또는 2차 변환 툴과 관련된 정보의 시그널링을 결정하는 단계를 포함한다.
도 22b는 비디오 처리를 위한 한 예시적인 방법의 플로차트를 도시한다. 방법(2220)은, 단계 2222에서, 비디오의 코딩 유닛의 현재 비디오 블록이 규칙에 따라 조건을 충족하는지에 관해 결정하는 단계를 포함한다. 방법(2220)은, 단계 2224에서, 결정에 따라 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 더 포함한다. 일부 구현에서, 상기 조건은, 비디오의 하나 이상의 컬러 성분의 특성, 현재 비디오 블록의 크기, 또는 현재 비디오 블록의 잔차 블록의 일부에서의 계수들에 관한 것이다. 일부 구현에서, 상기 규칙은, 상기 조건이 코딩된 표현에서 2차 변환 툴에 관한 부가 정보의 존재를 제어한다는 것을 명시한다.
도 22c는 비디오 처리를 위한 한 예시적인 방법의 플로차트를 도시한다. 방법(2230)은, 단계 2232에서, 비디오의 코딩 유닛의 현재 비디오 블록에 대해, 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계 ― 코딩 유닛은 복수의 변환 유닛을 포함함 ― 를 포함하며, 결정하는 단계는 코딩 유닛의 단일 변환 유닛에 기초한다. 방법(2230)은, 단계 2234에서, 결정에 기초하여 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 더 포함한다.
도 22a 내지 도 22c에 도시된 동작들에서, 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용되는 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함한다.
역시 또 다른 대표적인 양태에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는데 이용될 수 있다. 이 방법은, 비디오의 코딩 유닛의 현재 비디오 블록에 대해, 2차 변환 툴의 적용가능성 및/또는 2차 변환 툴과 관련된 부가 정보의 존재를 결정하는 단계 ― 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는 변환 유닛 레벨 또는 예측 유닛 레벨에서 이루어짐 ―; 및 상기 결정에 기초하여 비디오의 코딩된 표현의 현재 비디오 블록 사이의 변환을 수행하는 단계를 포함하고, 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전의 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안 역 1차 변환을 적용하기 전에 비디오 블록의 역양자화 출력에 역 2차 변환을 적용하는 것을 포함한다.
일부 실시예에서, 비디오 코딩 방법들은 도 23 또는 도 24와 관련하여 설명된 바와 같이 하드웨어 플랫폼 상에서 구현되는 장치를 이용하여 구현될 수 있다.
도 23은 비디오 처리 장치(2300)의 블록도이다. 장치(2300)는 여기서 설명된 방법들 중 하나 이상을 구현하는데 이용될 수 있다. 장치(2300)는, 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(2300)는, 하나 이상의 프로세서(2302), 하나 이상의 메모리(2304) 및 비디오 처리 하드웨어(2306)를 포함할 수 있다. 프로세서(들)(2302)는 본 문서에 설명된 하나 이상의 방법(방법 2200, 2210, 2220, 2230, 2240 및 2250을 포함하지만, 이것으로 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리들)(2304)는 여기서 설명된 방법들 및 기술들을 구현하는데 이용되는 데이터 및 코드를 저장하는데 이용될 수 있다. 비디오 처리 하드웨어(2306)는 본 문서에 설명된 일부 기술을 하드웨어 회로로 구현하는데 이용될 수 있다.
도 24는 개시된 기술들이 구현될 수 있는 비디오 처리 시스템의 블록도의 또 다른 예이다. 도 24는 여기서 개시된 다양한 기술들이 구현될 수 있는 한 예시적인 비디오 처리 시스템(2400)을 보여주는 블록도이다. 다양한 구현은 시스템(4100)의 컴포넌트들 중 일부 또는 전부를 포함할 수 있다. 시스템(2400)은 비디오 콘텐츠를 수신하기 위한 입력(2402)을 포함할 수 있다. 비디오 콘텐츠는, 원시 또는 압축되지 않은 포멧, 예를 들어 8 또는 10비트 다중 컴포넌트 픽셀 값들로 수신될 수 있거나, 압축되거나 인코딩된 포멧일 수 있다. 입력(2402)은, 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예는, Ethernet, 수동 광 네트워크(passive optical network)(PON) 등의 유선 인터페이스들, 및 Wi-Fi 또는 셀룰러 인터페이스들 등의 무선 인터페이스들을 포함한다.
시스템(2400)은, 본 문서에서 설명된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(2404)를 포함할 수 있다. 코딩 컴포넌트(2404)는, 비디오의 코딩된 표현을 생성하기 위해 입력(2402)으로부터 코딩 컴포넌트(2404)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술들은, 때때로, 비디오 압축 또는 비디오 트랜스코딩 기술들이라고도 한다. 코딩 컴포넌트(2404)의 출력은, 컴포넌트(2406)에 의해 표현되는 바와 같이, 접속된 통신을 통해 저장되거나 전송될 수 있다. 입력(2402)에서 수신된 비디오의 저장되거나 전달된 비트스트림(또는 코딩된) 표현은, 디스플레이 인터페이스(2410)로 전송되는 픽셀 값들 또는 디스플레이가능한 비디오를 생성하기 위해 컴포넌트(2408)에 의해 이용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오를 생성하는 프로세스는 때때로 비디오 압축해제라고도 불린다. 더욱이, 소정의 비디오 처리 동작들은 "코딩" 동작들 또는 툴들이라고 지칭되지만, 코딩 툴들 또는 동작들은 인코더에서 이용되고, 코딩의 결과들을 역전시키는 대응하는 디코딩 툴들 또는 동작들은 디코더에 의해 수행될 것이라는 것을 이해할 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예들은, USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 저장 인터페이스들의 예들은, SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명된 기술들은, 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 전화들, 랩탑들, 스마트폰들, 또는 기타의 디바이스들 등의 다양한 전자 디바이스에 구현될 수 있다.
개시된 기술의 일부 실시예는, 비디오 처리 툴 또는 모드를 가능케하기 위한 결정 또는 판정을 내리는 것을 포함한다. 한 예에서, 비디오 처리 툴 또는 모드가 인에이블되면, 인코더는 비디오 블록의 처리에서 툴 또는 모드를 이용하거나 구현하지만, 툴 또는 모드의 이용에 기초하여 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록으로부터 비디오의 비트스트림 표현으로의 변환은, 결정 또는 판정에 기초하여 인에이블될 때 비디오 처리 툴 또는 모드를 이용할 것이다. 또 다른 예에서, 비디오 처리 툴 또는 모드가 인에이블될 때, 디코더는 비디오 처리 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 것을 알고 비트스트림을 처리할 것이다. 즉, 비디오의 비트스트림 표현으로부터 비디오 블록으로의 변환은, 결정 또는 판정에 기초하여 인에이블된 비디오 처리 툴 또는 모드를 이용하여 수행될 것이다.
개시된 기술의 일부 실시예는, 비디오 처리 툴 또는 모드를 디스에이블하기 위한 결정 또는 판정을 내리는 것을 포함한다. 한 예에서, 비디오 처리 툴 또는 모드가 디스에이블되면, 인코더는 비디오 블록을 비디오의 비트스트림 표현으로 변환하는데 있어서 툴 또는 모드를 이용하지 않을 것이다. 또 다른 예에서, 비디오 처리 툴 또는 모드가 디스에이블될 때, 디코더는 결정 또는 판정에 기초하여 디스에이블된 비디오 처리 툴 또는 모드를 이용하여 비트스트림이 수정되지 않았다는 것을 알고 비트스트림을 처리할 것이다.
본 문서에서, "비디오 처리"라는 용어는, 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축해제를 지칭할 수 있다. 예를 들어, 비디오 압축 알고리즘들은, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이, 비트스트림 내의 상이한 위치들에 함께 배치되거나 분산되어 있는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은, 변환되고 코딩된 오차 잔차 값들의 측면에서 및 비트스트림의 헤더들 및 기타의 필드들 내의 비트들을 이용하여 인코딩될 수 있다.
다양한 기술들 및 실시예들은 다음과 같은 조항-기반의 포멧을 이용하여 기술될 수 있다. 제1 세트의 조항들은 이전 절에서 개시된 기술들의 소정의 피처들 및 양태들을 기술한다.
1. 비디오 처리를 위한 방법으로서, 현재 비디오 블록의 특성에 기초하여, 상기 현재 비디오 블록에 감축된 2차 변환을 적용하기 위한 변환 세트 또는 변환 행렬을 선택하는 단계; 및 상기 현재 비디오 블록과 상기 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환의 일부로서, 상기 선택된 변환 세트 또는 변환 행렬을 상기 현재 비디오 블록의 부분에 적용하는 단계를 포함하는 방법.
2. 제1조항에 있어서, 상기 현재 비디오 블록의 부분은 상기 현재 비디오 블록의 우측 상단 하위영역, 우측 하단 하위영역, 좌측 하단 하위영역 또는 중앙 하위영역인, 방법.
3. 제1조항 또는 제2조항에 있어서, 상기 현재 비디오 블록의 특성은 상기 현재 비디오 블록의 인트라 예측 모드 또는 1차 변환 행렬인, 방법.
4. 제1조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 컬러 성분인, 방법.
5. 제4조항에 있어서, 상기 현재 비디오 블록의 루마 성분에 대해 제1 변환 세트가 선택되고, 상기 현재 비디오 블록의 하나 이상의 크로마 성분에 대해 상기 제1 변환 세트와 상이한 제2 변환 세트가 선택되는, 방법.
6. 제1조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 인트라 예측 모드 또는 인트라 코딩 방법인, 방법.
7. 제6조항에 있어서, 상기 인트라 예측 방법은 복수의 기준 라인(multiple reference line)(MRL) 기반의 예측 방법 또는 행렬 기반의 인트라 예측 방법을 포함하는, 방법.
8. 제6조항에 있어서, 상기 현재 비디오 블록이 교차 성분 선형 모델(cross-component linear model)(CCLM) 코딩된 블록일 때 제1 변환 세트가 선택되고, 상기 현재 비디오 블록이 비-CCLM 코딩된 블록일 때 상기 제1 변환 세트와 상이한 제2 변환 세트가 선택되는, 방법.
9. 제6조항에 있어서, 상기 현재 비디오 블록이 공동 크로마 잔차 코딩 방법으로 코딩될 때 제1 변환 세트가 선택되고, 상기 현재 비디오 블록이 상기 공동 크로마 잔차 코딩 방법으로 코딩되지 않을 때 상기 제1 변환 세트와는 상이한 제2 변환 세트가 선택되는, 방법.
10. 제1조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 1차 변환인, 방법.
11. 비디오 처리를 위한 방법으로서, 현재 비디오 블록과 연관된 하나 이상의 계수에 기초하여, 상기 현재 비디오 블록의 비트스트림 표현에서 감축된 2차 변환(reduced secondary transform)(RST)의 적용을 위한 부가 정보의 시그널링의 선택적 포함에 관하여 결정하는 단계; 상기 결정에 기초하여, 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현을 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하는 방법.
12. 제11조항에 있어서, 상기 하나 이상의 계수는 상기 현재 비디오 블록의 스캔 순서에서 0이 아닌 마지막 계수를 포함하는, 방법.
13. 제11조항에 있어서, 상기 하나 이상의 계수는 상기 현재 비디오 블록의 부분적 영역 내의 복수의 계수를 포함하는, 방법.
14. 제13조항에 있어서, 상기 부분적 영역은 상기 RST가 적용될 수 있는 하나 이상의 코딩 그룹을 포함하는, 방법.
15. 제13조항에 있어서, 상기 부분적 영역은 상기 현재 비디오 블록의 스캔 순서에서 처음 M개의 코딩 그룹 또는 마지막 M개의 코딩 그룹을 포함하는, 방법.
16. 제13조항에 있어서, 상기 부분적 영역은 상기 현재 비디오 블록의 역 스캔 순서에서 처음 M개의 코딩 그룹 또는 마지막 M개의 코딩 그룹을 포함하는, 방법.
17. 제13조항에 있어서, 상기 결정하는 단계는 또한, 상기 복수의 계수 중 하나 이상의 0이 아닌 계수의 에너지에 기초하는, 방법.
18. 비디오 처리를 위한 방법으로서, 현재 비디오 블록에 대한 감축된 2차 변환(RST)의 적용을 위해, 상기 현재 비디오 블록의 비트스트림 표현을 구성하는 단계 ― 상기 RST에 관련된 신택스 요소는 잔차 정보를 코딩하기 전에 상기 비트스트림 표현에서 시그널링됨 ―; 및 상기 구성에 기초하여, 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는 방법.
19. 제18조항에 있어서, 상기 RST에 관련된 신택스 요소를 시그널링하는 것은 적어도 하나의 코딩된 블록 플래그 또는 변환 선택 모드의 이용에 기초하는, 방법.
20. 제18조항에 있어서, 상기 비트스트림 표현은 계수들이 모두 0인 코딩 그룹들에 대응하는 코딩 잔차 정보를 제외하는, 방법.
21. 제18조항에 있어서, 상기 코딩 잔차 정보는 상기 RST의 적용에 기초하는, 방법.
22. 비디오 처리를 위한 방법으로서, 현재 비디오 블록에 대한 감축된 2차 변환(RST)의 적용을 위해, 상기 현재 비디오 블록의 비트스트림 표현을 구성하는 단계 ― 상기 RST에 관련된 신택스 요소는 변환 스킵 표시 또는 복수의 변환 세트(MTS) 인덱스 전에 상기 비트스트림 표현에서 시그널링됨 ―; 및 상기 구성에 기초하여, 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는 방법.
23. 제22조항에 있어서, 상기 변환 스킵 표시 또는 상기 MTS 인덱스는 상기 RST에 관련된 신택스 요소에 기초하는, 방법.
24. 비디오 처리를 위한 방법으로서, 현재 비디오 블록의 특성에 기초하여, 감축된 2차 변환(RST)의 인덱스를 코딩하기 위한 컨텍스트 모델을 구성하는 단계; 및 상기 구성에 기초하여, 상기 현재 비디오 블록과 상기 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는 방법.
25. 제24조항에 있어서, 상기 특성은 복수의 변환 선택(MTS) 프로세스의 명시적 또는 묵시적 인에이블인, 방법.
26. 제24조항에 있어서, 상기 특성은 상기 현재 비디오 블록에서 교차 성분 선형 모델(CCLM) 코딩 모드의 인에이블인, 방법.
27. 제24조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 크기인, 방법.
28. 제24조항에 있어서, 상기 특성은 상기 현재 비디오 블록에 적용된 파티션화 프로세스의 분할 깊이인, 방법.
29. 제28조항에 있어서, 상기 파티션화 프로세스는, 쿼드트리(QT) 파티션화 프로세스, 2진 트리(BT) 파티션화 프로세스, 또는 3진 트리(TT) 파티션화 프로세스인, 방법.
30. 제24조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 컬러 포멧 또는 컬러 성분인, 방법.
31. 제24조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 인트라 예측 모드 및 복수의 변환 선택(MTS) 프로세스의 인덱스를 제외하는, 방법.
32. 비디오 처리를 위한 방법으로서, 현재 비디오 블록의 특성에 기초하여, 상기 현재 비디오 블록에 관한 역 감축된 2차 변환(RST) 프로세스의 선택적 적용에 관해 결정하는 단계; 및 상기 결정에 기초하여, 상기 현재 비디오 블록과 상기 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는 방법.
33. 제32조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 코딩 그룹의 코딩된 블록 플래그인, 방법.
34. 제33조항에 있어서, 상기 역 RST 프로세스가 적용되지 않고, 상단 좌측 코딩 그룹의 상기 코딩된 블록 플래그는 0인, 방법.
35. 제33조항에 있어서, 상기 역 RST 프로세스가 적용되지 않고, 상기 현재 비디오 블록의 스캔 순서에서 제1 및 제2 코딩 그룹에 대한 코딩된 블록 플래그들은 0인, 방법.
36. 제32조항에 있어서, 상기 특성은 상기 현재 비디오 블록의 높이(M) 또는 폭(N)인, 방법.
37. 제36조항에 있어서, 상기 역 RST 프로세스가 적용되지 않고, (i) M = 8이고 N = 4이거나, (ii) M = 4이고 N = 8인, 방법.
38. 비디오 처리를 위한 방법으로서, 현재 비디오 블록의 특성에 기초하여, 상기 현재 비디오 블록에 대한 역 감축된 2차 변환(RST) 프로세스의 선택적 적용에 관해 결정하는 단계; 및 상기 결정에 기초하여, 상기 현재 비디오 블록과 상기 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 비트스트림 표현은 상기 RST에 관한 부가 정보를 포함하고, 상기 부가 정보는 상기 현재 비디오 블록의 단일 컬러 또는 루마 성분의 계수들에 기초하여 포함되는, 방법.
39. 제38조항에 있어서, 상기 부가 정보는 상기 현재 비디오 블록의 치수들에 더 기초하여 포함되는, 방법.
40. 제38조항 또는 제39조항에 있어서, 상기 부가 정보는 상기 현재 비디오 블록에 대한 블록 정보를 고려하지 않고 포함되는, 방법.
41. 제1조항 내지 제40조항 중 어느 한 조항에 있어서, 상기 변환은 상기 현재 비디오 블록으로부터 상기 비트스트림 표현을 생성하는 것을 포함하는, 방법.
42. 제1조항 내지 제40조항 중 어느 한 조항에 있어서, 상기 변환은 상기 비트스트림 표현으로부터 상기 현재 비디오 블록을 생성하는 것을 포함하는, 방법.
43. 프로세서 및 명령어들이 저장된 비일시적 메모리를 포함하는 비디오 시스템의 장치로서, 상기 명령어들은 상기 프로세서에 의한 실행시 상기 프로세서로 하여금 제1조항 내지 제42조항 중 어느 한 조항의 방법을 구현하게 하는, 장치.
44. 비일시적 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 제1조항 내지 제42조항 중 어느 한 조항의 방법을 실행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
제2 세트의 조항들은 이전 섹션에서 개시된 기술들, 예를 들어, 예시적 구현들 6, 7, 및 20-23의 소정의 피처들 및 양태들을 기술한다.
1. 비디오 처리 방법으로서, 비디오의 현재 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 변환을 수행하는 단계는, 상기 현재 비디오 블록의 폭(W) 및/또는 높이(H)에 기초하여, 상기 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계를 포함하며, 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
2. 제1조항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(low frequency non-separable transform)(LFNST) 툴에 대응하는, 방법.
3. 제1조항에 있어서, 상기 2차 변환 툴은 W>T1 또는 H>T2인 경우에 적용되지 않고, T1 및 T2는 정수인, 방법.
4. 제1조항에 있어서, 상기 2차 변환 툴은 W>T1 및 H>T2인 경우에 적용되지 않고, T1 및 T2는 정수인, 방법.
5. 제1조항에 있어서, 상기 2차 변환 툴은 W*H>=T인 경우에 적용되지 않고, T는 정수인, 방법.
6. 제1항 내지 제5조항 중 어느 한 조항에 있어서, 상기 블록은 코딩 유닛인, 방법.
7. 제3조항 또는 제4조항에 있어서, T1=T2=64인, 방법.
8. 제3조항 또는 제4조항에 있어서, T1 및/또는 T2는 최대로 허용된 변환 크기에 의존하는, 방법.
9. 제5조항에 있어서, T는 4096인, 방법.
10. 제1조항에 있어서, 상기 결정하는 단계는 상기 2차 변환 툴을 적용하지 않기로 결정하고, 상기 2차 변환 툴에 관련된 정보는 시그널링되지 않는, 방법.
11. 비디오 처리 방법으로서, 비디오의 코딩 유닛의 현재 비디오 블록이 규칙에 따라 조건을 충족하는지에 관해 결정하는 단계, 및 상기 결정에 따라 상기 비디오의 코딩된 표현과 현재 비디오 블록 사이의 변환을 수행하는 단계를 포함하고, 상기 조건은 상기 비디오의 하나 이상의 컬러 성분의 특성, 상기 현재 비디오 블록의 크기, 또는 상기 현재 비디오 블록의 잔차 블록의 부분의 계수들과 관련되며; 상기 규칙은, 상기 조건이 상기 코딩된 표현에서의 2차 변환 툴에 관한 부가 정보의 존재를 제어한다는 것을 명시하고; 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
12. 제11조항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
13. 제11조항 또는 제12조항에 있어서, 상기 하나 이상의 컬러 성분의 특성은 상기 현재 비디오 블록을 포함하는 상기 코딩 유닛의 루마 정보에만 대응하는, 방법.
14. 제13조항에 있어서, 상기 비디오의 코딩 유닛이 T1보다 작은 높이(H) 및 T2보다 작은 폭(W)을 갖는 경우에만 상기 조건이 충족되고, T1 및 T2는 정수인, 방법.
15. 제14조항에 있어서, T1=T2=4인, 방법.
16. 제12조항에 있어서, 상기 코딩 유닛에 적용된 파티션 유형 트리가 단일 트리인 경우에만 상기 조건이 충족되는, 방법.
17. 제11조항에 있어서, 상기 규칙은, 상기 현재 비디오 블록의 치수 및/또는 코딩된 정보에 기초해 하나의 컬러 성분 또는 모든 컬러 성분을 이용하여 상기 결정을 내리는, 방법.
18. 제11조항에 있어서, 상기 결정은, 폭(W) 및 높이(H)를 갖는 상기 현재 비디오 블록의 정보를 이용하지 않고 상기 규칙에 따라 이루어지는, 방법.
19. 제18조항에 있어서, 상기 현재 비디오 블록의 정보는, W<T1 또는 H<T2인 경우에 상기 현재 비디오 블록의 0이 아닌 계수들의 수를 포함하고, T1 및 T2는 정수인, 방법.
20. 제11조항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지며, 상기 부분은 폭(W) 및 높이(H)를 갖는 상기 현재 비디오 블록의 상단 좌측 M × N 영역으로서 정의되고, M, N, W, H는 정수인, 방법.
21. 제20조항에 있어서, M은 W보다 작고 그리고/또는 N은 H보다 작은, 방법.
22. 제20조항에 있어서, M 및 N은 고정된 수들인, 방법.
23. 제20조항에 있어서, M 및/또는 N은 W 및/또는 H에 의존하는, 방법.
24. 제20조항에 있어서, M 및/또는 N은 최대 변환 크기에 의존하는, 방법.
25. 제11조항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 비디오의 모든 비디오 블록에 대해 동일하게 정의되는, 방법.
26. 제11조항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 현재 비디오 블록의 치수 및/또는 코딩된 정보에 따라 정의되는, 방법.
27. 제11조항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 현재 비디오 블록의 스캔 순서 인덱스의 주어진 범위에 따라 정의되는, 방법.
28. 제27조항에 있어서, 상기 규칙은, 1) IdxS가 0과 같음, 2) IdxE가 W와 (H-1)의 곱보다 작음, 3) IdxE가 고정된 수임, 또는 4) IdxE가 W 및/또는 H에 의존함 중 적어도 하나를 충족하는 [IdxS, IdxE]의 범위(양쪽 끝값 포함) 내의 스캔 순서 인덱스로 상기 부분을 정의하고, W 및 H는 각각 상기 현재 비디오 블록의 폭 및 높이에 대응하는, 방법.
29. 제11조항에 있어서, 상기 현재 비디오 블록이 소정의 치수를 갖는 경우에 상기 조건이 충족되는, 방법.
30. 제11조항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 0이 아닌 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은, 상기 현재 비디오 블록의 상기 부분 및/또는 상기 코딩 유닛의 다른 블록들 내의 0이 아닌 계수들의 수에 의존하여 정의되는, 방법.
31. 비디오 처리 방법으로서, 비디오의 현재 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 변환의 수행은, 상기 현재 비디오 블록에 적용되는 파티션 트리 유형과는 무관한 규칙에 따라 상기 2차 변환 툴의 이용 및/또는 상기 2차 변환 툴과 관련된 정보의 시그널링을 결정하는 단계를 포함하고, 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
32. 제31조항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
33. 제31조항에 있어서, 상기 현재 비디오 블록에 적용되는 파티션 트리 유형은 이중 트리 유형 또는 단일 트리 유형인, 방법.
34. 제31조항에 있어서, 상기 규칙은 카운트된 0이 아닌 계수들의 수가 T보다 크지 않은 경우 상기 2차 변환 툴을 이용하지 않을 것을 명시하고, T의 값은 상기 파티션 트리 유형과는 독립적으로 결정되는, 방법.
35. 제34조항에 있어서, T는 1 또는 2인, 방법.
36. 비디오 처리 방법으로서, 비디오의 코딩 유닛의 현재 비디오 블록에 대해, 상기 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계 ― 상기 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는, 상기 코딩 유닛의 단일 변환 유닛에 기초함 ―; 및 상기 결정에 기초하여 상기 비디오의 코딩된 표현과 상기 현재 비디오 블록 사이의 변환을 수행하는 단계를 포함하고, 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
37. 제36조항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
38. 제37조항에 있어서, 상기 단일 변환 유닛은 디코딩 순서에서 상기 코딩 유닛의 첫 번째 변환 유닛에 대응하는, 방법.
39. 제37조항에 있어서, 상기 단일 변환 유닛은 디코딩 순서에서 상기 코딩 유닛의 상단 좌측 변환 유닛에 대응하는, 방법.
40. 제36조항 내지 제39조항 중 어느 한 조항에 있어서, 상기 단일 변환 유닛은, 코딩 유닛에 단 하나의 변환 유닛이 있는 경우에 적용되는 유사한 규칙을 이용하여 결정되는, 방법.
41. 비디오 처리 방법으로서, 비디오의 코딩 유닛의 현재 비디오 블록에 대해, 2차 변환 툴의 적용가능성 및/또는 상기 2차 변환 툴과 관련된 부가 정보의 존재를 결정하는 단계 ― 상기 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는 변환 유닛 레벨 또는 예측 유닛 레벨에서 이루어짐 ―; 및 상기 결정에 기초하여 상기 비디오의 코딩된 표현의 상기 현재 비디오 블록 사이의 변환을 수행하는 단계를 포함하고, 상기 2차 변환 툴은, 인코딩 동안, 양자화 이전의 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
42. 제41조항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
43. 제41조항에 있어서, 상기 코딩 유닛은 상기 2차 변환 툴의 적용가능성을 나타내는 상이한 2차 변환 행렬들 또는 플래그들을 이용하는 상이한 변환 유닛들 또는 상이한 예측 유닛들을 포함하는, 방법.
44. 제41조항에 있어서, 이중 트리가 인에이블되고 크로마 블록이 코딩되는 경우에 상이한 컬러 성분들은 상기 2차 변환 툴의 적용가능성을 나타내는 상이한 2차 변환 행렬들 또는 플래그들을 이용하는, 방법.
45. 제41조항에 있어서, 상기 결정하는 단계는 상기 현재 비디오 블록에 적용되는 파티션 트리 유형에 기초하여 상기 부가 정보의 존재를 결정하는, 방법.
46. 제41조항에 있어서, 상기 결정하는 단계는, 상기 코딩 유닛, 상기 예측 유닛, 또는 상기 변환 유닛이 최대로 허용된 변환 블록 크기보다 크거나 작은지에 기초하여 상기 부가 정보의 존재를 결정하는, 방법.
47. 제1조항 내지 제46조항 중 어느 한 조항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오로부터 상기 코딩된 표현을 생성하거나 상기 코딩된 표현으로부터 상기 비디오를 생성하는 단계를 포함하는, 방법.
48. 프로세서 및 명령어들이 저장된 비일시적 메모리를 포함하는 비디오 시스템의 장치로서, 상기 명령어들은 상기 프로세서에 의한 실행시 상기 프로세서로 하여금 제1조항 내지 제47조항 중 어느 한 조항의 방법을 구현하게 하는, 장치.
49. 비일시적 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 제1조항 내지 제47조항 중 어느 한 조항의 방법을 실행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
전술한 내용으로부터, 본 개시된 기술의 특정한 실시예들이 예시의 목적으로 여기서 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 본 개시된 기술은 첨부된 청구항들에 의한 경우를 제외하고는 제한되지 않는다.
본 특허 문서에서 설명된 주제와 기능적 동작들의 구현은, 본 명세서에서 개시된 구조들 및 그들의 구조적 균등물들을 포함한, 다양한 시스템들, 디지털 전자 회로, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에서 설명된 주제의 구현은, 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위한 유형의 및 비일시적인 컴퓨터 판독가능한 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능한 매체는, 머신 판독가능한 저장 디바이스, 머신 판독가능한 저장 기판, 메모리 디바이스, 머신 판독가능한 전파된 신호에 영향을 미치는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 유닛 또는"데이터 처리 장치"는, 예로서 프로그램가능한 프로세서, 컴퓨터, 또는 복수의 프로세서나 컴퓨터를 포함한, 데이터를 처리하기 위한 모든 장치, 디바이스, 및 머신을 포괄한다. 장치는, 하드웨어 외에도, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합으로 구성된 코드를 포함할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려진) 컴퓨터 프로그램은, 컴파일형 또는 인터프리터형 언어를 포함한 임의의 형태의 프로그래밍 언어로 작성될 수 있고-, 단독형 프로그램이나, 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 이용하기에 적합한 기타의 유닛을 포함한, 임의 형태로 배치될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템 내의 파일에 대응할 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하고 있는 파일(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)의 일부로서, 해당 프로그램에 전용된 단일 파일에, 또는 복수의 조율된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램, 또는 코드의 부분들을 저장하고 있는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터에서, 또는 적어도 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐 분산되고 통신 네트워크를 통해 상호접속된 복수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에서 설명된 프로세스들 및 로직 흐름들은, 입력 데이터에 관해 동작하고 출력을 생성함으로써 하나 이상의 컴퓨터 프로그램을 실행하여 기능을 수행하는 하나 이상의 프로그램가능한 프로세서에 의해 수행될 수 있다. 프로세스들과 로직 흐름들은 또한, 특별 목적 로직 회로, 예를 들어, FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(application specific integrated circuit; 주문형 집적 회로)에 의해 수행될 수 있고, 또한 장치가 이들로서 구현될 수 있다.
컴퓨터 프로그램을 실행하기에 적합한 프로세서로는, 예로서, 범용 마이크로프로세서 및 특별 목적 마이크로프로세서 양쪽 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서가 포함된다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 양쪽 모두로부터 명령어와 데이터를 수신할 것이다. 컴퓨터의 본질적 요소들은, 명령어를 수행하기 위한 프로세서와, 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크를 포함하거나, 이들로부터 데이터를 수신, 이들에게 데이터를 전송, 또는 양쪽 모두를 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 이러한 디바이스를 가질 필요는 없다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독가능한 매체는, 예로서 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스를 포함한, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특별 목적 로직 회로에 의해 보충되거나, 이에 병합될 수 있다.
도면들과 함께, 본 명세서는, 단지 예시인 것으로 간주되어야 하며, 여기서, 예시란 예를 의미한다. 명세서에서 사용될 때 "또는"의 사용은, 문맥상 명시적으로 달리 나타내지 않는 한, "및/또는"을 포함하는 것을 의도한다.
본 특허 문서가 많은 특정한 사항들을 포함하지만, 이들은 본 발명의 범위의 또는 청구 범위에 관한 제한으로서 해석되어서는 안 되고, 특정한 발명의 특정한 실시예들 고유의 피처들의 설명으로서 해석되어야 한다. 별개의 실시예들의 정황에서 본 특허 문서에서 설명된 소정 피처들은 또한, 단일의 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 정황에서 설명된 다양한 피처들은 또한, 복수의 실시예에서 별개로 구현되거나 임의의 적절한 하위조합(subcombination)으로 구현될 수 있다. 게다가, 피처들이 상기에서 소정 조합으로 작용하는 것으로 설명되거나 심지어 그와 같이 처음 청구되더라도, 청구된 조합으로부터의 하나 이상의 피처들은 일부 경우에는 그 조합으로부터 삭제될 수도 있고, 청구된 조합은 하위조합이나 하위조합의 변형에 관한 것일 수도 있다.
유사하게, 동작들이 도면에서 특정 순서로 도시되더라도, 이것은, 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행될 것을 요구하거나, 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 또한, 본 특허 문헌에서 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 개의 구현 및 예들만이 설명되었지만, 본 특허 문서에서 설명되고 예시된 내용에 기초하여 다른 구현, 개선 및 변형이 이루어질 수 있다.

Claims (49)

  1. 비디오 처리 방법으로서,
    비디오의 현재 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고,
    상기 변환을 수행하는 단계는 상기 현재 비디오 블록의 폭(W) 및/또는 높이(H)에 기초하여, 상기 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계를 포함하며,
    상기 2차 변환 툴은 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
  2. 제1항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(low frequency non-separable transform)(LFNST) 툴에 대응하는, 방법.
  3. 제1항에 있어서, 상기 2차 변환 툴은 W>T1 또는 H>T2인 경우에 적용되지 않고, T1 및 T2는 정수들인, 방법.
  4. 제1항에 있어서, 상기 2차 변환 툴은 W>T1 및 H>T2인 경우에 적용되지 않고, T1 및 T2는 정수들인, 방법.
  5. 제1항에 있어서, 상기 2차 변환 툴은 W*H>=T인 경우에 적용되지 않고, T는 정수인, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 블록은 코딩 유닛인, 방법.
  7. 제3항 또는 제4항에 있어서, T1=T2=64인, 방법.
  8. 제3항 또는 제4항에 있어서, T1 및/또는 T2는 최대로 허용된 변환 크기에 의존하는, 방법.
  9. 제5항에 있어서, T는 4096인, 방법.
  10. 제1항에 있어서, 상기 결정하는 단계는 상기 2차 변환 툴을 적용하지 않기로 결정하고, 상기 2차 변환 툴에 관련된 정보는 시그널링되지 않는, 방법.
  11. 비디오 처리 방법으로서,
    비디오의 코딩 유닛의 현재 비디오 블록이 규칙에 따라 조건을 충족하는지에 관해 결정하는 단계, 및
    상기 결정에 따라 상기 비디오의 코딩된 표현과 상기 현재 비디오 블록 사이의 변환을 수행하는 단계
    를 포함하고,
    상기 조건은 상기 비디오의 하나 이상의 컬러 성분의 특성, 상기 현재 비디오 블록의 크기, 또는 상기 현재 비디오 블록의 잔차 블록의 부분의 계수들과 관련되며;
    상기 규칙은, 상기 조건이 상기 코딩된 표현에서의 2차 변환 툴에 관한 부가 정보의 존재를 제어한다는 것을 명시하고;
    상기 2차 변환 툴은 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
  12. 제11항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
  13. 제11항 또는 제12항에 있어서, 상기 하나 이상의 컬러 성분의 특성은 상기 현재 비디오 블록을 포함하는 상기 코딩 유닛의 루마 정보에만 대응하는, 방법.
  14. 제13항에 있어서, 상기 비디오의 코딩 유닛이 T1보다 작은 높이(H) 및 T2보다 작은 폭(W)을 갖는 경우에만 상기 조건이 충족되고, T1 및 T2는 정수들인, 방법.
  15. 제14항에 있어서, T1=T2=4인, 방법.
  16. 제12항에 있어서, 상기 코딩 유닛에 적용된 파티션 유형 트리가 단일 트리인 경우에만 상기 조건이 충족되는, 방법.
  17. 제11항에 있어서, 상기 규칙은 상기 현재 비디오 블록의 치수 및/또는 코딩된 정보에 기초해 하나의 컬러 성분 또는 모든 컬러 성분을 이용하여 상기 결정을 내리는, 방법.
  18. 제11항에 있어서, 상기 결정은 폭(W) 및 높이(H)를 갖는 상기 현재 비디오 블록의 정보를 이용하지 않고 상기 규칙에 따라 이루어지는, 방법.
  19. 제18항에 있어서, 상기 현재 비디오 블록의 정보는 W<T1 또는 H<T2인 경우에 상기 현재 비디오 블록의 0이 아닌 계수들의 수를 포함하고, T1 및 T2는 정수들인, 방법.
  20. 제11항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지며, 상기 부분은 폭(W) 및 높이(H)를 갖는 상기 현재 비디오 블록의 상단 좌측 M × N 영역으로서 정의되고, M, N, W, H는 정수들인, 방법.
  21. 제20항에 있어서, M은 W보다 작고 그리고/또는 N은 H보다 작은, 방법.
  22. 제20항에 있어서, M 및 N은 고정된 수들인, 방법.
  23. 제20항에 있어서, M 및/또는 N은 W 및/또는 H에 의존하는, 방법.
  24. 제20항에 있어서, M 및/또는 N은 최대 변환 크기에 의존하는, 방법.
  25. 제11항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 비디오의 모든 비디오 블록에 대해 동일하게 정의되는, 방법.
  26. 제11항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 현재 비디오 블록의 치수 및/또는 코딩된 정보에 따라 정의되는, 방법.
  27. 제11항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 현재 비디오 블록의 스캔 순서 인덱스의 주어진 범위에 따라 정의되는, 방법.
  28. 제27항에 있어서, 상기 규칙은, 1) IdxS가 0과 같음, 2) IdxE가 W와 (H-1)의 곱보다 작음, 3) IdxE가 고정된 수임, 또는 4) IdxE가 W 및/또는 H에 의존함 중 적어도 하나를 충족하는 [IdxS, IdxE]의 범위(양쪽 끝값 포함) 내의 스캔 순서 인덱스로 상기 부분을 정의하고, W 및 H는 각각 상기 현재 비디오 블록의 폭 및 높이에 대응하는, 방법.
  29. 제11항에 있어서, 상기 현재 비디오 블록이 소정의 치수를 갖는 경우에 상기 조건이 충족되는, 방법.
  30. 제11항에 있어서, 상기 결정은 상기 현재 비디오 블록의 상기 부분 내의 0이 아닌 계수들에 기초하여 상기 규칙에 따라 이루어지고, 상기 부분은 상기 현재 비디오 블록의 상기 부분 및/또는 상기 코딩 유닛의 다른 블록들 내의 0이 아닌 계수들의 수에 의존하여 정의되는, 방법.
  31. 비디오 처리 방법으로서,
    비디오의 현재 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고,
    상기 변환을 수행하는 단계는 상기 현재 비디오 블록에 적용되는 파티션 트리 유형과는 무관한 규칙에 따라 2차 변환 툴의 이용 및/또는 상기 2차 변환 툴과 관련된 정보의 시그널링을 결정하는 단계를 포함하고,
    상기 2차 변환 툴은 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
  32. 제31항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
  33. 제31항에 있어서, 상기 현재 비디오 블록에 적용되는 파티션 트리 유형은 이중 트리 유형 또는 단일 트리 유형인, 방법.
  34. 제31항에 있어서, 상기 규칙은 카운트된 0이 아닌 계수들의 수가 T보다 크지 않은 경우 상기 2차 변환 툴을 이용하지 않을 것을 명시하고, T의 값은 상기 파티션 트리 유형과는 독립적으로 결정되는, 방법.
  35. 제34항에 있어서, T는 1 또는 2인, 방법.
  36. 비디오 처리 방법으로서,
    비디오의 코딩 유닛의 현재 비디오 블록에 대해, 상기 현재 비디오 블록에 대한 2차 변환 툴의 적용가능성을 결정하는 단계 ― 상기 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는 상기 코딩 유닛의 단일 변환 유닛에 기초함 ―; 및
    상기 결정에 기초하여 상기 비디오의 코딩된 표현과 상기 현재 비디오 블록 사이의 변환을 수행하는 단계
    를 포함하고;
    상기 2차 변환 툴은 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
  37. 제36항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
  38. 제37항에 있어서, 상기 단일 변환 유닛은 디코딩 순서에서 상기 코딩 유닛의 첫 번째 변환 유닛에 대응하는, 방법.
  39. 제37항에 있어서, 상기 단일 변환 유닛은 디코딩 순서에서 상기 코딩 유닛의 상단 좌측 변환 유닛에 대응하는, 방법
  40. 제36항 내지 제39항 중 어느 한 항에 있어서, 상기 단일 변환 유닛은 코딩 유닛에 단 하나의 변환 유닛이 있는 경우에 적용되는 유사한 규칙을 이용하여 결정되는, 방법.
  41. 비디오 처리 방법으로서,
    비디오의 코딩 유닛의 현재 비디오 블록에 대해, 2차 변환 툴의 적용가능성 및/또는 상기 2차 변환 툴과 관련된 부가 정보의 존재를 결정하는 단계 ― 상기 코딩 유닛은 복수의 변환 유닛을 포함하고, 상기 결정하는 단계는 변환 유닛 레벨 또는 예측 유닛 레벨에서 이루어짐 ―; 및
    상기 결정에 기초하여 상기 비디오의 코딩된 표현의 상기 현재 비디오 블록 사이의 변환을 수행하는 단계
    를 포함하고,
    상기 2차 변환 툴은 인코딩 동안, 양자화 이전에 비디오 블록의 잔차에 적용된 순방향 1차 변환의 출력에 순방향 2차 변환을 적용하는 것, 또는 디코딩 동안, 역 1차 변환을 적용하기 전에 상기 비디오 블록의 역양자화의 출력에 역 2차 변환을 적용하는 것을 포함하는, 방법.
  42. 제41항에 있어서, 상기 2차 변환 툴은 저주파 비분리 변환(LFNST) 툴에 대응하는, 방법.
  43. 제41항에 있어서, 상기 코딩 유닛은 상기 2차 변환 툴의 적용가능성을 나타내는 상이한 2차 변환 행렬들 또는 플래그들을 이용하는 상이한 변환 유닛들 또는 상이한 예측 유닛들을 포함하는, 방법.
  44. 제41항에 있어서, 이중 트리가 인에이블되고 크로마 블록이 코딩되는 경우에 상이한 컬러 성분들은 상기 2차 변환 툴의 적용가능성을 나타내는 상이한 2차 변환 행렬들 또는 플래그들을 이용하는, 방법.
  45. 제41항에 있어서, 상기 결정하는 단계는 상기 현재 비디오 블록에 적용되는 파티션 트리 유형에 기초하여 상기 부가 정보의 존재를 결정하는, 방법.
  46. 제41항에 있어서, 상기 결정하는 단계는 상기 코딩 유닛, 상기 예측 유닛, 또는 상기 변환 유닛이 최대로 허용된 변환 블록 크기보다 크거나 작은지에 기초하여 상기 부가 정보의 존재를 결정하는, 방법.
  47. 제1항 내지 제46항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오로부터 상기 코딩된 표현을 생성하거나 상기 코딩된 표현으로부터 상기 비디오를 생성하는 단계를 포함하는, 방법.
  48. 프로세서 및 명령어들이 저장된 비일시적 메모리를 포함하는 비디오 시스템에서의 장치로서, 상기 명령어들은 상기 프로세서에 의한 실행시 상기 프로세서로 하여금 제1항 내지 제47항 중 하나 이상의 항에 기재된 방법을 구현하게 하는, 장치.
  49. 비일시적 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 제1항 내지 제47항 중 하나 이상의 항에 기재된 방법을 실행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
KR1020217039173A 2019-06-07 2020-06-08 비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링 KR20220016844A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/090446 2019-06-07
CN2019090446 2019-06-07
PCT/CN2020/094854 WO2020244656A1 (en) 2019-06-07 2020-06-08 Conditional signaling of reduced secondary transform in video bitstreams

Publications (1)

Publication Number Publication Date
KR20220016844A true KR20220016844A (ko) 2022-02-10

Family

ID=73652975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039173A KR20220016844A (ko) 2019-06-07 2020-06-08 비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링

Country Status (6)

Country Link
US (2) US11924469B2 (ko)
EP (1) EP3967032A4 (ko)
JP (2) JP7277616B2 (ko)
KR (1) KR20220016844A (ko)
CN (2) CN113950828A (ko)
WO (1) WO2020244656A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240031432A (ko) * 2019-03-04 2024-03-07 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
CN113812162B (zh) 2019-05-10 2022-12-30 北京字节跳动网络技术有限公司 视频中的简化二次变换的上下文建模
CN117834877A (zh) * 2019-06-14 2024-04-05 松下电器(美国)知识产权公司 编码装置、解码装置和非暂时性的计算机可读取介质
JP7422858B2 (ja) 2019-08-03 2024-01-26 北京字節跳動網絡技術有限公司 ビデオ処理方法、装置、記憶媒体及び記憶方法
CN114223208B (zh) 2019-08-17 2023-12-29 北京字节跳动网络技术有限公司 为视频中的缩减二次变换的边信息的上下文建模
KR20220038127A (ko) * 2019-08-22 2022-03-25 엘지전자 주식회사 매트릭스 기반 인트라 예측 장치 및 방법
MX2022003319A (es) * 2019-09-21 2022-06-16 Lg Electronics Inc Metodo de codificacion de imagenes a base de transformacion y dispositivo para el mismo.
US20230054294A1 (en) * 2020-01-10 2023-02-23 Lg Electronics Inc. Transform-based image coding method and device for same
US20220150518A1 (en) * 2020-11-11 2022-05-12 Tencent America LLC Method and apparatus for video coding

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796842A (en) 1996-06-07 1998-08-18 That Corporation BTSC encoder
WO2007017986A1 (ja) 2005-08-10 2007-02-15 Mitsubishi Electric Corporation 記録媒体、再生装置および再生方法
JPWO2011016250A1 (ja) 2009-08-06 2013-01-10 パナソニック株式会社 符号化方法、復号方法、符号化装置及び復号装置
US9661338B2 (en) 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US8693795B2 (en) 2010-10-01 2014-04-08 Samsung Electronics Co., Ltd. Low complexity secondary transform for image and video compression
KR101756442B1 (ko) 2010-11-29 2017-07-11 에스케이텔레콤 주식회사 인트라예측모드의 중복성을 최소화하기 위한 영상 부호화/복호화 방법 및 장치
AU2015249109B2 (en) 2011-03-08 2017-08-24 Qualcomm Incorporated Coding of transform coefficients for video coding
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
US20120320972A1 (en) 2011-06-16 2012-12-20 Samsung Electronics Co., Ltd. Apparatus and method for low-complexity optimal transform selection
US20130003856A1 (en) 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
MX2014004851A (es) 2011-10-18 2014-05-28 Kt Corp Metodo para codificar imagen, metodo para decodificar imagen, codificador de imagen y decodificador de imagen.
KR20130058524A (ko) 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
KR102158629B1 (ko) 2011-12-29 2020-09-22 엘지전자 주식회사 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치
EP3723369A1 (en) 2012-01-20 2020-10-14 Dolby Laboratories Licensing Corporation Intra prediction mode mapping device
CN108632611A (zh) 2012-06-29 2018-10-09 韩国电子通信研究院 视频解码方法、视频编码方法和计算机可读介质
US9277212B2 (en) 2012-07-09 2016-03-01 Qualcomm Incorporated Intra mode extensions for difference domain intra prediction
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
WO2014055826A2 (en) 2012-10-05 2014-04-10 Huawei Technologies Co., Ltd. Improved architecture for hybrid video codec
CN104272736B (zh) 2013-01-16 2018-04-17 黑莓有限公司 用于对视频进行编码/解码的方法和设备及其处理器可读介质
US20140254661A1 (en) 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
CN104488266B (zh) 2013-06-27 2018-07-06 北京大学深圳研究生院 Avs视频压缩编码方法及编码器
WO2015056945A1 (ko) 2013-10-14 2015-04-23 삼성전자 주식회사 깊이 인트라 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US10271052B2 (en) 2014-03-14 2019-04-23 Qualcomm Incorporated Universal color-space inverse transform coding
EP3192261A1 (en) 2014-09-12 2017-07-19 VID SCALE, Inc. Inter-component de-correlation for video coding
CN105516730B (zh) 2014-09-24 2018-04-24 晨星半导体股份有限公司 视讯编码装置及视讯解码装置以及其编码与解码方法
US10091504B2 (en) 2015-01-08 2018-10-02 Microsoft Technology Licensing, Llc Variations of rho-domain rate control
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US20170034530A1 (en) 2015-07-28 2017-02-02 Microsoft Technology Licensing, Llc Reduced size inverse transform for decoding and encoding
WO2017041271A1 (en) 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
US10681379B2 (en) 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
CN108141585B (zh) 2015-10-22 2021-11-19 Lg 电子株式会社 视频编码***中的帧内预测方法和装置
US20190052878A1 (en) 2016-02-08 2019-02-14 Sharp Kabushiki Kaisha Systems and methods for transform coefficient coding
CN105791867B (zh) 2016-03-23 2019-02-22 北京大学 基于边界自适应变换的优化视频数据编码方法
WO2017173593A1 (en) 2016-04-06 2017-10-12 Mediatek Singapore Pte. Ltd. Separate coding secondary transform syntax elements for different color components
US10708164B2 (en) 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
EP3453181A4 (en) 2016-05-04 2019-05-01 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR ENCODING TRANSFORMED DATA
EP3453173B1 (en) 2016-05-05 2021-08-25 InterDigital Madison Patent Holdings, SAS Control-point based intra direction representation for intra coding
WO2017192995A1 (en) 2016-05-06 2017-11-09 Vid Scale, Inc. Method and system for decoder-side intra mode derivation for block-based video coding
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
CN113411580B (zh) 2016-05-13 2024-01-30 夏普株式会社 图像解码装置及其方法、图像编码装置及其方法
AU2017261992A1 (en) 2016-05-13 2018-11-22 Sony Corporation Image processing device and method
EP4300968A1 (en) 2016-05-13 2024-01-03 Sony Group Corporation Image processing device and method
WO2017222334A1 (ko) 2016-06-24 2017-12-28 한국전자통신연구원 변환 기반의 영상 부호화/복호화 방법 및 장치
US10972733B2 (en) 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
WO2018026118A1 (ko) 2016-08-01 2018-02-08 한국전자통신연구원 영상 부호화/복호화 방법
CN109644269B (zh) * 2016-08-24 2022-02-11 索尼公司 图像处理设备、图像处理方法和存储介质
US10880564B2 (en) 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
US11095893B2 (en) * 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
KR102287305B1 (ko) * 2017-01-03 2021-08-06 엘지전자 주식회사 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치
US11025903B2 (en) 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
AU2017397390B2 (en) 2017-01-31 2022-07-14 FG Innovation Company Limited Systems and methods for scaling transform coefficient level values
EP3586511B1 (en) 2017-03-16 2022-01-05 MediaTek Inc. Method and apparatus of enhanced multiple transforms and non-separable secondary transform for video coding
US20180288439A1 (en) 2017-03-31 2018-10-04 Mediatek Inc. Multiple Transform Prediction
US10855997B2 (en) * 2017-04-14 2020-12-01 Mediatek Inc. Secondary transform kernel size selection
US10638126B2 (en) 2017-05-05 2020-04-28 Qualcomm Incorporated Intra reference filter for video coding
US10742975B2 (en) 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US10750181B2 (en) 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
JP2021010046A (ja) 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
US10827173B2 (en) * 2017-11-13 2020-11-03 Electronics And Telecommunications Research Institute Method and apparatus for quantization
US10764590B2 (en) 2017-11-15 2020-09-01 Google Llc Entropy coding primary and secondary coefficients of video data
WO2019117634A1 (ko) * 2017-12-15 2019-06-20 엘지전자 주식회사 2차 변환에 기반한 영상 코딩 방법 및 그 장치
EP3716625A4 (en) 2017-12-15 2020-09-30 LG Electronics Inc. IMAGE CODING PROCESS CARRIED OUT ON THE BASIS OF A NON-SEPARABLE SECONDARY TRANSFORM AND DEVICE FOR THIS EFFECT
GB2570711B (en) 2018-02-05 2023-04-05 Sony Corp Data encoding and decoding
CN108322745B (zh) 2018-02-28 2019-12-03 中南大学 一种基于不可分二次变换模式的帧内快速选择方法
WO2019172705A1 (ko) 2018-03-09 2019-09-12 한국전자통신연구원 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치
EP3764649B1 (en) 2018-04-01 2023-09-27 LG Electronics Inc. Processing video signal by using reduced secondary transform
US11019355B2 (en) * 2018-04-03 2021-05-25 Electronics And Telecommunications Research Institute Inter-prediction method and apparatus using reference frame generated based on deep learning
WO2019231291A1 (ko) * 2018-05-31 2019-12-05 엘지전자 주식회사 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
PL3806476T3 (pl) * 2018-06-03 2023-09-11 Lg Electronics Inc. Sposób i urządzenie do przetwarzania sygnału video za pomocą transformacji zredukowanej
KR102555363B1 (ko) * 2018-06-29 2023-07-13 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 확장 기준 인트라 화면 예측
US11166044B2 (en) 2018-07-31 2021-11-02 Tencent America LLC Method and apparatus for improved compound orthonormal transform
TWI814889B (zh) 2018-08-16 2023-09-11 大陸商北京字節跳動網絡技術有限公司 變換矩陣選擇的係數相關的編解碼
JP7052075B2 (ja) 2018-09-02 2022-04-11 エルジー エレクトロニクス インコーポレイティド 映像信号を処理するための方法および装置
CN115379211B (zh) 2018-09-02 2024-06-04 Lg电子株式会社 对视频信号进行解码/编码的方法和计算机可读存储介质
CN115484463B (zh) 2018-09-05 2024-06-04 Lg电子株式会社 对视频信号进行解码/编码及发送数据的设备
CN116055718A (zh) 2018-09-05 2023-05-02 Lg电子株式会社 设备对图像信号进行编码/解码的方法及比特流发送方法
US10819979B2 (en) 2018-09-06 2020-10-27 Tencent America LLC Coupled primary and secondary transform
US11039139B2 (en) 2018-09-14 2021-06-15 Tencent America LLC Method and apparatus for identity transform in multiple transform selection
JP2022514870A (ja) 2018-12-20 2022-02-16 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 隣接サンプル減少を伴う線形またはアフィン変換を使用するイントラ予測
WO2020139008A1 (ko) 2018-12-28 2020-07-02 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20210077776A (ko) 2019-01-14 2021-06-25 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2020159198A1 (ko) 2019-01-28 2020-08-06 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11523136B2 (en) 2019-01-28 2022-12-06 Hfi Innovation Inc. Methods and apparatuses for coding transform blocks
US11595663B2 (en) * 2019-02-01 2023-02-28 Qualcomm Incorporated Secondary transform designs for partitioned transform units in video coding
KR20210114386A (ko) * 2019-02-08 2021-09-23 주식회사 윌러스표준기술연구소 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
US11616966B2 (en) 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
US11172211B2 (en) * 2019-04-04 2021-11-09 Tencent America LLC Method and apparatus for video coding
US11134257B2 (en) 2019-04-04 2021-09-28 Tencent America LLC Simplified signaling method for affine linear weighted intra prediction mode
CA3135944A1 (en) 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Chroma coding mode determination based on matrix-based intra prediction
EP3949414A4 (en) 2019-04-16 2023-04-12 HFI Innovation Inc. METHODS AND APPARATUS FOR CODING VIDEO DATA WITH ADAPTIVE SECONDARY TRANSFORM SIGNALING
CN116684613A (zh) 2019-04-16 2023-09-01 Lg电子株式会社 解码设备、编码设备和数据发送设备
CN117956188A (zh) 2019-04-20 2024-04-30 北京字节跳动网络技术有限公司 用于色度残差的联合编解码的语法元素的信令
KR20210136157A (ko) 2019-05-08 2021-11-16 엘지전자 주식회사 Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN113812162B (zh) 2019-05-10 2022-12-30 北京字节跳动网络技术有限公司 视频中的简化二次变换的上下文建模
CN117336484A (zh) 2019-06-06 2024-01-02 Lg电子株式会社 图像解码和编码设备及发送比特流的设备
US11115658B2 (en) 2019-06-25 2021-09-07 Qualcomm Incorporated Matrix intra prediction and cross-component linear model prediction harmonization for video coding
EP4346209A1 (en) 2019-07-21 2024-04-03 LG Electronics Inc. Image encoding/decoding method and device for signaling chroma component prediction information according to whether palette mode is applicable, and method for transmitting bitstream
JP7422858B2 (ja) 2019-08-03 2024-01-26 北京字節跳動網絡技術有限公司 ビデオ処理方法、装置、記憶媒体及び記憶方法
CN114223208B (zh) 2019-08-17 2023-12-29 北京字节跳动网络技术有限公司 为视频中的缩减二次变换的边信息的上下文建模
WO2021110018A1 (en) * 2019-12-02 2021-06-10 Beijing Bytedance Network Technology Co., Ltd. Separable secondary transform processing of coded video

Also Published As

Publication number Publication date
JP2022535898A (ja) 2022-08-10
CN117354521A (zh) 2024-01-05
US20220094986A1 (en) 2022-03-24
JP2023109795A (ja) 2023-08-08
WO2020244656A1 (en) 2020-12-10
EP3967032A4 (en) 2022-07-27
US20230038161A1 (en) 2023-02-09
EP3967032A1 (en) 2022-03-16
JP7277616B2 (ja) 2023-05-19
CN113950828A (zh) 2022-01-18
US11924469B2 (en) 2024-03-05

Similar Documents

Publication Publication Date Title
CN113841409B (zh) 用于视频处理的简化二次变换的有条件使用
CN114208190B (zh) 视频编解码中缩减二次变换的矩阵的选择
KR20220016844A (ko) 비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링
CN114223208B (zh) 为视频中的缩减二次变换的边信息的上下文建模
WO2020228717A1 (en) Block dimension settings of transform skip mode
WO2020233664A1 (en) Sub-block based use of transform skip mode
WO2020228716A1 (en) Usage of transquant bypass mode for multiple color components
WO2020228693A1 (en) Coding of multiple intra prediction methods