KR20200053603A - 비디오 코딩을 위한 공간 변화 변환 - Google Patents

비디오 코딩을 위한 공간 변화 변환 Download PDF

Info

Publication number
KR20200053603A
KR20200053603A KR1020207011700A KR20207011700A KR20200053603A KR 20200053603 A KR20200053603 A KR 20200053603A KR 1020207011700 A KR1020207011700 A KR 1020207011700A KR 20207011700 A KR20207011700 A KR 20207011700A KR 20200053603 A KR20200053603 A KR 20200053603A
Authority
KR
South Korea
Prior art keywords
svt
block
residual block
coefficients
transform
Prior art date
Application number
KR1020207011700A
Other languages
English (en)
Other versions
KR102424088B1 (ko
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 KR20200053603A publication Critical patent/KR20200053603A/ko
Application granted granted Critical
Publication of KR102424088B1 publication Critical patent/KR102424088B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 디코딩 디바이스가 공간 변화 변환(SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신한다. 비디오 디코딩 디바이스는 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT의 유형을 결정하고 SVT에 대한 위치 인덱스 및 후보 위치 스텝 크기를 결정함으로써 잔차 블록에 대한 SVT의 위치를 결정한다. 비디오 디코딩 디바이스는 SVT 유형 및 위치에 기초하여 계수들에 역변환을 적용하여 재구성된 잔차 블록을 생성한다. 비디오 디코딩 디바이스는 재구성된 잔차 블록을 예측 블록에 적용하여 비디오 블록을 재구성하고 디스플레이를 위한 비디오 시퀀스를 재구성하고, 비디오 시퀀스는 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함한다.

Description

비디오 코딩을 위한 공간 변화 변환
관련 출원들에 대한 상호 참조
본 특허 출원은 발명의 명칭이 "Spatial Varying Transform for Video Coding"인, Yin Zhao 등에 의해 2018년 8월 22일자로 출원된 미국 가특허 출원 제62/721,179호, 및 발명의 명칭이 "Spatial Varying Transform for Video Coding"인, Yin Zhao 등에 의해 2017년 10월 16일자로 출원된 미국 가특허 출원 제62/572,987호의 이익을 주장하고, 이들은 이로써 인용에 의해 포함된다.
본 개시내용은 일반적으로 비디오 코딩 시스템들에 관한 것이고, 구체적으로 예측 기반 코딩으로부터 발생하는 잔차 블록들을 압축하기 위한 공간 변화 변환(spatial varying transform)들에 관한 것이다.
비교적 짧은 비디오조차 묘사하기 위해 필요한 비디오 데이터의 양은 상당할 수 있고, 이는 데이터가 제한된 대역폭 용량을 갖는 통신 네트워크를 가로질러 스트리밍되거나 다른 스킴으로 통신되어야 할 때 어려움을 야기할 수 있다. 따라서, 비디오 데이터는 일반적으로 현대의 통신 네트워크들을 가로질러 통신되기 전에 압축된다. 비디오의 크기는 또한 비디오가 저장 디바이스 상에 저장될 때 문제일 수 있는데, 그 이유는 메모리 리소스들이 제한될 수 있기 때문이다. 비디오 압축 디바이스들은 종종 소스에서 소프트웨어 및/또는 하드웨어를 이용하여 비디오 데이터를 송신 또는 저장 전에 코딩하고, 그에 의해 디지털 비디오 이미지들을 표현하기 위해 필요한 데이터의 양을 감소시킨다. 압축된 데이터는 그 후 목적지에서 비디오 데이터를 디코딩하는 비디오 압축해제 디바이스에 의해 수신된다. 네트워크 리소스들이 제한되고 더 높은 비디오 품질의 요구가 계속 증가함에 따라, 이미지 품질의 희생이 거의 또는 전혀 없이 압축 비를 개선하는 개선된 압축 및 압축해제 기법들이 바람직하다.
일 실시예에서, 본 개시내용은 공간 변화 변환(SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하는 것에 관한 방법을 포함한다. 이 방법은 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT 블록의 유형을 결정하는 단계를 포함한다. 상기 SVT 블록에 대한 위치 인덱스 및 후보 위치 스텝 크기를 결정함으로써 상기 잔차 블록에 대한 상기 SVT 블록의 위치가 또한 결정된다. 상기 SVT 블록 유형 및 위치에 기초하여 상기 계수들에 역변환을 적용하여 재구성된 잔차 블록을 생성한다. 상기 재구성된 잔차 블록을 상기 예측 블록에 적용하여 비디오 블록을 재구성한다. 디스플레이를 위한 비디오 시퀀스가 구성된다. 상기 비디오 시퀀스는 상기 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함한다. 위치 인덱스, SVT 블록 유형, 및 후보 위치 스텝 크기에 따라 SVT 블록 위치를 시그널링하는 것은 인코딩 크기를 감소시키고, 따라서 코딩 효율을 증가시킨다. 예를 들어, SVT 블록은 잔차 블록에 대해 많은 상이한 위치들에 배치될 수 있고, SVT 블록의 좌표를 시그널링하는 결과를 야기한다. SVT 블록 유형 및 후보 위치 스텝 크기에 따라 SVT 위치를 제한함으로써, SVT 블록의 위치를 지시하기 위해 단일 위치 인덱스가 이용될 수 있다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, SVT 블록의 유형이 수직 SVT 및 수평 SVT로 구성되는 그룹으로부터 선택되고, 상기 수직 SVT가 상기 잔차 블록의 높이와 동등한 높이를 포함하고 상기 잔차 블록의 폭의 1/2과 동등한 폭을 포함하고, 상기 수평 SVT가 상기 잔차 블록의 높이의 1/2과 동등한 높이를 포함하고 상기 잔차 블록의 폭과 동등한 폭을 포함하는 것을 포함한다. SVT 블록은 잔차 블록에 대해 많은 차이 위치들을 점유할 수 있다. SVT를 수직 SVT 및 수평 SVT로 제한함으로써, 잠재적 위치들의 수가 감소된다. 이는 SVT 위치가 단일 인덱스에 의해 지시되는 것을 허용하고, 이는 코딩 크기를 감소시킨다. 이는 또한 SVT가 점유할 수 있는 잠재적 위치들의 수를 감소시키고, 따라서 레이트 왜곡 최적화를 수행할 때 인코더에 의해 테스트되는 대안적 인코딩 스킴들의 수를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기와 위치 인덱스를 곱함으로써 상기 SVT 블록의 위치가 결정되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기가 수직 SVT 유형에 대해 상기 잔차 블록의 폭을 미리 결정된 정수(M1)로 나누는 것에 의해 결정되거나 또는 수평 SVT 유형에 대해 상기 잔차 블록의 높이를 미리 결정된 정수(M2)로 나누는 것에 의해 결정되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기가 상기 수직 SVT에 대해 최소 스텝 크기(Th1)와 상기 잔차 블록의 폭을 M1로 나눈 결과 사이의 최대값을 선택함으로써 결정되는 것과, 상기 후보 위치 스텝 크기가 상기 수평 SVT에 대해 최소 스텝 크기(Th2)와 상기 잔차 블록의 높이를 M2로 나눈 결과 사이의 최대값을 선택함으로써 결정되는 것을 포함한다. 디코더에서 후보 위치 스텝 크기를 결정함으로써, 상기 후보 위치는 명시적으로 시그널링되지 않을 수 있고, 이는 인코딩의 크기를 감소시키고, 따라서 코딩 효율을 증가시킬 수 있다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, M1은 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 작을 경우 4로 설정되고, M2는 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 작을 경우 4로 설정되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, M1, M2, Th1, Th2, 또는 이들의 조합들이 비트스트림 내의 구문 요소로부터 획득되는 것을 포함한다. 구문 요소들에서 그러한 정보를 시그널링함으로써, 상기 디코더는 구문 요소들의 작은 그룹에 기초하여 다수의 블록 및/또는 프레임에 대한 후보 위치 스텝 크기를 결정할 수 있고, 이는 인코딩 크기를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 비트스트림으로부터 상기 위치 인덱스를 획득하는 것을 추가로 포함하는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 잔차 블록 내의 계수들에 대해 산술 연산을 적용함으로써 상기 위치 인덱스를 결정하는 것을 추가로 포함하는 것을 포함한다. 상기 디코더에서의 산술 연산에 기초하여 상기 위치 인덱스를 결정함으로써, 상기 위치 인덱스는 별도로 시그널링될 필요가 없고, 이는 인코딩 크기를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 산술 연산이 합 연산, 모듈로 연산, 나눗셈 연산, 또는 이들의 조합들을 포함하는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 계수들의 수가 임계치보다 작거나 그와 동등할 경우 상기 비트스트림으로부터 상기 위치 인덱스가 획득되고, 상기 계수들의 수가 상기 임계치보다 클 경우 상기 계수들에 상기 산술 연산을 적용함으로써 상기 위치 인덱스가 결정되는 것을 포함한다. 이 접근법은 상기 위치 인덱스가 충분한 수의 계수들이 존재할 경우 별개의 데이터 요소로서 생략되고 소수의 계수들이 존재할 경우 별개의 인덱스로서 시그널링되는 것을 허용한다. 따라서, 일부 경우들에서 인코딩 크기를 증가시킬 수 있는, SVT 블록 위치 시그널링을 지원하기 위해 계수들이 불필요하게 추가될 필요가 없다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 SVT 블록의 유형이 계수들의 제1 그룹에 기초하여 결정되고, 상기 위치 인덱스가 계수들의 제2 그룹에 기초하여 결정되는 것을 포함한다. 이 접근법은 비디오 재구성을 지원하기 위해 비트스트림에 이미 존재하는 계수들을 검사함으로써 SVT 블록 유형 및 위치 둘 다가 결정되는 것을 허용한다. 따라서, SVT 블록 유형 및 위치가 비트스트림에서 별개의 데이터 요소들로서 생략될 수 있고, 이는 인코딩 크기를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기 또는 대응하는 후보 위치들의 수가 비-제로 계수들의 수 또는 위치에 기초하여 결정되는 것을 포함한다. 이 접근법은 비디오 재구성을 지원하기 위해 비트스트림에 이미 존재하는 계수들을 검사함으로써 후보 위치가 시그널링되는 것을 허용한다. 따라서, SVT 후보 위치들이 시그널링되고 그럼에도 비트스트림에서 별개의 데이터 요소들로서 생략되고, 이는 인코딩 크기를 감소시킨다.
일 실시예에서, 본 개시내용은 비디오 코딩 디바이스를 포함한다. 상기 비디오 코딩 디바이스는 공간 변화 변환(SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하도록 구성된 수신기를 포함한다. 상기 비디오 코딩 디바이스는 상기 수신기에 결합된 프로세서를 또한 포함한다. 상기 프로세서는 상기 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT 블록의 유형을 결정하도록 구성된다. 상기 프로세서는 또한 상기 SVT 블록에 대한 위치 인덱스 및 후보 위치 스텝 크기를 결정함으로써 상기 잔차 블록에 대한 상기 SVT 블록의 위치를 결정한다. 상기 프로세서는 상기 SVT 블록 유형 및 위치에 기초하여 상기 계수들에 역변환을 적용하여 재구성된 잔차 블록을 생성한다. 상기 프로세서는 또한 상기 재구성된 잔차 블록을 상기 예측 블록에 적용하여 비디오 블록을 재구성한다. 그 후 상기 프로세서는 디스플레이를 위한 비디오 시퀀스를 재구성할 수 있고, 여기서 상기 비디오 시퀀스는 상기 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함한다. 위치 인덱스, SVT 블록 유형, 및 후보 위치 스텝 크기에 따라 SVT 블록 위치를 시그널링하는 것은 인코딩 크기를 감소시키고, 따라서 코딩 효율을 증가시킨다. 예를 들어, SVT 블록은 잔차 블록에 대해 많은 상이한 위치들에 배치될 수 있고, SVT 블록의 좌표를 시그널링하는 결과를 야기한다. SVT 블록 유형 및 후보 위치 스텝 크기에 따라 SVT 위치를 제한함으로써, SVT 블록의 위치를 지시하기 위해 단일 위치 인덱스가 이용될 수 있다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, SVT 블록의 유형이 수직 SVT 및 수평 SVT로 구성되는 그룹으로부터 선택되고, 상기 수직 SVT가 상기 잔차 블록의 높이와 동등한 높이를 포함하고 상기 잔차 블록의 폭의 1/2과 동등한 폭을 포함하고, 상기 수평 SVT가 상기 잔차 블록의 높이의 1/2과 동등한 높이를 포함하고 상기 잔차 블록의 폭과 동등한 폭을 포함하는 것을 포함한다. SVT 블록은 잔차 블록에 대해 많은 차이 위치들을 점유할 수 있다. SVT를 수직 SVT 및 수평 SVT로 제한함으로써, 잠재적 위치들의 수가 감소된다. 이는 SVT 위치가 단일 인덱스에 의해 지시되는 것을 허용하고, 이는 코딩 크기를 감소시킨다. 이는 또한 SVT가 점유할 수 있는 잠재적 위치들의 수를 감소시키고, 따라서 레이트 왜곡 최적화를 수행할 때 인코더에 의해 테스트되는 대안적 인코딩 스킴들의 수를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기와 위치 인덱스를 곱함으로써 상기 SVT 블록의 위치가 결정되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기가 수직 SVT 유형에 대해 상기 잔차 블록의 폭을 미리 결정된 정수(M1)로 나누는 것에 의해 결정되거나 또는 수평 SVT 유형에 대해 상기 잔차 블록의 높이를 미리 결정된 정수(M2)로 나누는 것에 의해 결정되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기가 상기 수직 SVT에 대해 최소 스텝 크기(Th1)와 상기 잔차 블록의 폭을 M1로 나눈 결과 사이의 최대값을 선택함으로써 결정되는 것과, 상기 후보 위치 스텝 크기가 상기 수평 SVT에 대해 최소 스텝 크기(Th2)와 상기 잔차 블록의 높이를 M2로 나눈 결과 사이의 최대값을 선택함으로써 결정되는 것을 포함한다. 디코더에서 후보 위치 스텝 크기를 결정함으로써, 상기 후보 위치는 명시적으로 시그널링되지 않을 수 있고, 이는 인코딩의 크기를 감소시키고, 따라서 코딩 효율을 증가시킬 수 있다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, M1은 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 작을 경우 4로 설정되고, M2는 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 작을 경우 4로 설정되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, M1, M2, Th1, Th2, 또는 이들의 조합들이 비트스트림 내의 구문 요소로부터 획득되는 것을 포함한다. 구문 요소들에서 그러한 정보를 시그널링함으로써, 상기 디코더는 구문 요소들의 작은 그룹에 기초하여 다수의 블록 및/또는 프레임에 대한 후보 위치 스텝 크기를 결정할 수 있고, 이는 인코딩 크기를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 프로세서가 상기 비트스트림으로부터 상기 위치 인덱스를 획득하도록 추가로 구성되는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 프로세서가 상기 잔차 블록 내의 계수들에 대해 산술 연산을 적용함으로써 상기 위치 인덱스를 결정하도록 추가로 구성되는 것을 포함한다. 상기 디코더에서의 산술 연산에 기초하여 상기 위치 인덱스를 결정함으로써, 상기 위치 인덱스는 별도로 시그널링될 필요가 없고, 이는 인코딩 크기를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 산술 연산이 합 연산, 모듈로 연산, 나눗셈 연산, 또는 이들의 조합들을 포함하는 것을 포함한다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 계수들의 수가 임계치보다 작거나 그와 동등할 경우 상기 비트스트림으로부터 상기 위치 인덱스가 획득되고, 상기 계수들의 수가 상기 임계치보다 클 경우 상기 계수들에 상기 산술 연산을 적용함으로써 상기 위치 인덱스가 결정되는 것을 포함한다. 이 접근법은 상기 위치 인덱스가 충분한 수의 계수들이 존재할 경우 별개의 데이터 요소로서 생략되고 소수의 계수들이 존재할 경우 별개의 인덱스로서 시그널링되는 것을 허용한다. 따라서, 일부 경우들에서 인코딩 크기를 증가시킬 수 있는, SVT 블록 위치 시그널링을 지원하기 위해 계수들이 불필요하게 추가될 필요가 없다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 SVT 블록의 유형이 계수들의 제1 그룹에 기초하여 결정되고, 상기 위치 인덱스가 계수들의 제2 그룹에 기초하여 결정되는 것을 포함한다. 이 접근법은 비디오 재구성을 지원하기 위해 비트스트림에 이미 존재하는 계수들을 검사함으로써 SVT 블록 유형 및 위치 둘 다가 결정되는 것을 허용한다. 따라서, SVT 블록 유형 및 위치가 비트스트림에서 별개의 데이터 요소들로서 생략될 수 있고, 이는 인코딩 크기를 감소시킨다.
옵션으로, 전술한 방면들 중 임의의 방면에서, 방면의 다른 구현은, 상기 후보 위치 스텝 크기 또는 대응하는 후보 위치들의 수가 비-제로 계수들의 수 또는 위치에 기초하여 결정되는 것을 포함한다. 이 접근법은 비디오 재구성을 지원하기 위해 비트스트림에 이미 존재하는 계수들을 검사함으로써 후보 위치가 시그널링되는 것을 허용한다. 따라서, SVT 후보 위치들이 시그널링되고 그럼에도 비트스트림에서 별개의 데이터 요소들로서 생략되고, 이는 인코딩 크기를 감소시킨다.
일 실시예에서, 본 개시내용은 비디오 코딩 디바이스에 의한 사용을 위한 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독가능 매체를 포함하고, 상기 컴퓨터 프로그램 제품은, 프로세서에 의해 실행될 때 상기 비디오 코딩 디바이스로 하여금 전술한 방면들 중 임의의 방면을 수행하게 하도록 상기 비일시적 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 실행가능 명령어들을 포함한다.
일 실시예에서, 본 개시내용은 비디오 코딩 디바이스를 포함한다. 상기 비디오 코딩 디바이스는 공간 변화 변환(SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하도록 구성된 수신 수단을 포함한다. 상기 비디오 코딩 디바이스는 상기 수신 수단과 함께 전술한 방면들 중 임의의 방면을 수행하도록 구성된 처리 수단을 또한 포함한다.
명료성을 위해, 전술한 실시예들 중 어느 하나를 다른 전술한 실시예들 중 어느 하나 이상과 조합하여 본 개시내용의 범위 내의 새로운 실시예를 생성할 수 있다.
이들 및 다른 특징들은 첨부 도면들 및 청구항들과 함께 다음의 상세한 설명을 읽음으로써 더 명확하게 이해될 것이다.
본 개시내용의 보다 완전한 이해를 위해, 이제부터 첨부 도면들 및 상세한 설명과 관련하여 다음의 간단한 설명을 참조하고, 유사한 참조 번호들은 유사한 부분들을 나타낸다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 공간 변화 변환들(SVT들)을 구현할 수 있는 예시적인 비디오 인코더를 예시하는 개략도이다.
도 4는 SVT를 구현할 수 있는 예시적인 비디오 디코더를 예시하는 개략도이다.
도 5는 예시적인 수직 SVT를 예시하는 개략도이다.
도 6은 예시적인 수평 SVT를 예시하는 개략도이다.
도 7a 내지 도 7e는 예시적인 수직 SVT 후보 위치들을 예시하는 개략도들이다.
도 8a 내지 도 8e는 예시적인 수평 SVT 후보 위치들을 예시하는 개략도들이다.
도 9는 예시적인 변환 계수 그룹들을 예시하는 개략도이다.
도 10은 SVT 크기 및 위치를 결정하는 예시적인 방법의 흐름도이다.
도 11은 예시적인 비디오 코딩 디바이스의 개략도이다.
도 12는 SVT 크기 및 위치를 결정하기 위한 디바이스의 일 실시예이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템들 및/또는 방법들은, 현재 공지되어 있든 존재하든 간에, 임의의 수의 기법들을 이용하여 구현될 수 있다는 점을 처음부터 이해해야 한다. 본 개시내용은 본 명세서에서 예시되고 설명되는 예시적인 설계들 및 구현들을 포함하여, 아래에 예시되는 예시적인 구현들, 도면들 및 기법들로 결코 제한되어서는 안 되고, 첨부된 청구항들의 범위와 함께 그들의 등가물들의 전체 범위 내에서 수정될 수 있다.
비디오 코딩은 인터-예측(프레임들 간의 예측) 및 인트라-예측(프레임 내의 예측)에 의한 압축의 조합을 수반한다. 이는 예측 블록들 및 잔차 블록들의 생성을 야기한다. 예측 블록은 비디오 프레임 내의 픽셀 블록(block of pixels)을 재구성하기 위해 이용될 수 있는 예측 정보의 블록이다. 예측 블록들은 참조 블록들로서의 역할을 하는 다른 픽셀 블록들에 대한 관계를 나타내는 것에 의해 생성된다. 잔차 블록은 예측 블록에 의해 참조되는 참조 블록(들)과 압축되고 있는 원래의 픽셀 블록 간의 차이들을 저장한다. 잔차 블록은 또한 추가로 압축될 수 있다. 예를 들어, 잔차 데이터에 변환이 적용될 수 있고, 이는 대응하는 잔차 데이터를 변환 계수들로 변화시킨다. 변환은 본질적으로 신호/패턴이다. 계수들은 패턴이 데이터와 매칭하게 하는 패턴에 대한 수정들을 기술한다. 그러한 계수들은 잔차 블록에서 기저의 잔차 데이터보다 적은 공간을 차지할 수 있다.
그러나, 일부 경우들에서, 잔차 블록은 데이터의 불균일한 분포를 포함한다. 예를 들어, 잔차 블록의 상당한 부분들이 데이터로서 제로 값들을 포함할 수 있다. 그러한 영역들에 변환을 적용하는 것은 실제로 데이터의 크기를 증가시킬 수 있다. 따라서, SVT가 이용될 수 있다. SVT는 잔차 블록 내의 잔차 데이터의 일부에만 변환 블록을 적용하고 다른 데이터를 변환되지 않은 채로 남겨두는 프로세스이다. 비-제로 잔차 데이터는 잔차 블록에 걸쳐 불균일하게 분포될 수 있고, 그러한 분포는 블록마다 달라질 수 있다. SVT는 압축을 최적화하기 위해 변환 블록이 잔차 블록에 대해 상이한 위치들에 배치되는 것을 허용한다. 일 예에서, SVT는 잔차 블록의 크기의 1/4인 변환 블록들을 이용한다. 이 예에서 변환 블록들 중 일부는 잔차 블록의 높이보다 작은 높이 및 잔차 블록의 폭보다 작은 폭을 갖는다. 이는 그러한 변환이 후보 위치들(예를 들어, 일 예에서 81개의 가능한 후보 위치)로 알려진 많은 수의 위치들에 배치될 수 있다는 것을 의미한다. 따라서, SVT가 사용될 때, 위치는 시그널링될 수 있고, 많은 수의 가능한 후보 위치들이 이용가능할 때 그러한 위치 정보의 시그널링 오버헤드가 상당할 수 있다. 이는 후보 변환 위치들의 전체 그룹으로부터 선택된 변환 위치를 고유하게 나타내기 위해 필요한 비트의 수에 의해 위치가 시그널링될 수 있기 때문이다. 잔차 블록이 더 커짐에 따라, 후보 위치들의 수가 증가하고, 이는 시그널링 오버헤드를 추가로 증가시키고 압축 효율을 감소시킨다. 또한, 실제로, SVT 변환의 1/4 크기는 많은 경우에 잔차 블록에서 비-제로 데이터의 대부분을 커버하기에 불충분할 수 있고, 따라서 변환 압축과 시그널링 오버헤드 사이의 차선의 트레이드오프일 수 있다. 또한, 인코더는 각각의 프레임에 대한 모든 가능한 인코딩 옵션들을 검사하는 것, 압축 및 비디오 품질 저하를 고려하는 것, 및 프레임에 대한 최상의 코딩 기법을 선택하는 것을 포함하는 레이트 왜곡 최적화(RDO) 프로세스를 이용한다. 더 많은 수의 후보 변환 위치는 검사할 더 많은 잠재적인 인코딩 옵션들을 생성함으로써 RDO 프로세스의 복잡도를 증가시키고, 따라서 후보 변환 위치들의 수가 바람직하지 않을 수 있다.
증가된 압축 및/또는 더 낮은 시그널링 오버헤드를 야기하는 개선된 SVT 스킴이 본 명세서에서 개시된다. 개시된 SVT 블록들은 잔차 블록들의 크기의 1/2인 것으로 선택된다. 구체적으로, 수직 SVT 블록 및/또는 수평 SVT 블록이 이용된다. 수직 SVT 블록은 잔차 블록과 동일한 높이 및 잔차 블록의 폭의 1/2을 포함한다. 수평 SVT 블록은 잔차 블록과 동일한 폭 및 잔차 블록의 높이의 1/2을 포함한다. 이 접근법은 후보 위치들의 수를 크게 감소시키고, 따라서 SVT 시그널링 오버헤드를 크게 감소시킨다. 또한, 증가된 SVT 블록 크기는 잔차 데이터의 더 많은 부분을 변환한다. 예를 들어, 단지 2개의 SVT 블록이 이용되기 때문에, 이용될 SVT 블록 유형은 단일 비트로 시그널링될 수 있다. 또한, SVT 블록 위치는 후보 위치 스텝 크기 및/또는 위치 인덱스에 의해 시그널링될 수 있다. 이들 값은 (예를 들어, 높이 좌표 및 폭 좌표 둘 다를 이용하는 대신에) 잔차 블록에 대한 SVT 블록 위치를 결정하기 위해 이용되는 오프셋을 결정하기 위해 디코더에 의해 이용될 수 있다. 일부 예들에서, 후보 위치 스텝 크기는 시그널링 오버헤드를 추가로 감소시키기 위해 사전 정의될 수 있다. 다른 예들에서, 인코더는 시그널링 목적을 위해 잔차 계수들 중 일부를 변경할 수 있다. 디코더는 그 후 잔차 계수들에 기초하여 SVT 블록 유형, SVT 블록 후보 위치 스텝 크기, 및/또는 SVT 블록 위치 인덱스를 결정할 수 있다.
도 1은 비디오 신호를 코딩하는 예시적인 방법(100)의 흐름도이다. 구체적으로, 비디오 신호는 인코더에서 인코딩된다. 인코딩 프로세스는 비디오 파일 크기를 감소시키기 위해 다양한 메커니즘을 이용하여 비디오 신호를 압축한다. 더 작은 파일 크기는 압축된 비디오 파일이 사용자를 향해 송신되는 것을 허용하면서, 연관된 대역폭 오버헤드를 감소시킨다. 디코더는 그 후 최종 사용자에게 디스플레이하기 위한 원래의 비디오 신호를 재구성하기 위해 압축된 비디오 파일을 디코딩한다. 디코딩 프로세스는 일반적으로 인코딩 프로세스를 미러링하여 디코더가 비디오 신호를 일관되게 재구성하는 것을 허용한다.
단계 101에서, 비디오 신호는 인코더에 입력된다. 예를 들어, 비디오 신호는 메모리에 저장된 압축되지 않은 비디오 파일일 수 있다. 다른 예로서, 비디오 파일은 비디오 카메라와 같은 비디오 캡처 디바이스에 의해 캡처되고, 비디오의 라이브 스트리밍을 지원하도록 인코딩될 수 있다. 비디오 파일은 오디오 컴포넌트 및 비디오 컴포넌트 둘 다를 포함할 수 있다. 비디오 컴포넌트는 시퀀스에서 볼 때, 움직임의 시각적 느낌을 제공하는 일련의 이미지 프레임들을 포함한다. 프레임들은 본 명세서에서 루마 성분들이라고 지칭되는 광, 및 크로마 성분들이라고 지칭되는 색의 관점에서 표현되는 픽셀들을 포함한다. 일부 예들에서, 프레임들은 3차원 보기를 지원하기 위한 깊이 값들을 또한 포함할 수 있다.
단계 103에서, 비디오는 블록들로 파티셔닝된다. 파티셔닝은 각각의 프레임 내의 픽셀들을 압축을 위해 정사각형 및/또는 직사각형 블록들로 세분하는 것을 포함한다. 예를 들어, 추가 인코딩을 지원하는 구성들이 달성될 때까지 블록들을 분할하고 그 후 반복적으로 세분하기 위해 코딩 트리들이 이용될 수 있다. 그에 따라, 블록들은 고효율 비디오 코딩(HEVC)(H.265 및 MPEG(Motion Picture Experts Group)-H Part 2로도 알려짐)에서 코딩 트리 유닛들이라고 지칭될 수 있다. 예를 들어, 프레임의 루마 성분들은 개별 블록들이 비교적 균일한 광 값들을 포함할 때까지 세분될 수 있다. 또한, 프레임의 크로마 성분들은 개별 블록들이 비교적 균일한 색 값들을 포함할 때까지 세분될 수 있다. 따라서, 파티셔닝 메커니즘들은 비디오 프레임들의 콘텐츠에 따라 달라진다.
단계 105에서, 단계 103에서 파티셔닝된 이미지 블록들을 압축하기 위해 다양한 압축 메커니즘들이 이용된다. 예를 들어, 인터-예측 및/또는 인트라-예측이 이용될 수 있다. 인터-예측은 공통 장면 내의 객체들이 연속적인 프레임들에 나타나는 경향이 있다는 사실을 이용하도록 설계된다. 따라서, 참조 프레임 내의 객체를 묘사하는 블록은 인접 프레임들에서 반복적으로 기술될 필요가 없다. 구체적으로, 테이블과 같은 객체는 다수의 프레임에 걸쳐 일정한 위치에 머무를 수 있다. 따라서, 테이블은 한 번 기술되고 인접 프레임들은 참조 프레임을 다시 참조할 수 있다. 다수의 프레임에 걸쳐 객체들을 매칭시키기 위해 패턴 매칭 메커니즘들이 이용될 수 있다. 또한, 예를 들어, 객체 이동 또는 카메라 이동으로 인해 다수의 프레임에 걸쳐 이동하는 객체들이 표현될 수 있다. 특정한 예로서, 비디오는 다수의 프레임에 걸쳐 스크린을 가로질러 이동하는 자동차를 보여줄 수 있다. 그러한 이동(또는 그것의 부재)을 기술하기 위해 움직임 벡터들이 이용될 수 있다. 움직임 벡터는 프레임 내의 객체의 좌표들로부터 참조 프레임 내의 객체의 좌표들로의 오프셋을 제공하는 2차원 벡터이다. 그에 따라, 인터-예측은 참조 프레임 내의 대응하는 블록으로부터의 오프셋을 지시하는 움직임 벡터들의 세트로서 현재 프레임 내의 이미지 블록을 인코딩할 수 있다.
인트라-예측은 공통 프레임 내의 블록들을 인코딩한다. 인트라-예측은 루마 및 크로마 성분들이 프레임에서 클러스터링하는 경향이 있다는 사실을 이용한다. 예를 들어, 나무의 일부에서 녹색의 부분(patch)은 녹색의 유사한 부분들에 인접하여 배치되는 경향이 있다. 인트라-예측은 다수의 방향 예측 모드(예를 들어, HEVC에서 33), 평면 모드, 및 직류(DC) 모드를 이용한다. 방향 모드들은 현재 블록이 대응하는 방향으로 이웃 블록의 샘플들과 유사/동일하다는 것을 지시한다. 평면 모드는 행/열(예를 들어, 평면)을 따른 일련의 블록들이 행의 에지들에서의 이웃 블록들에 기초하여 보간될 수 있다는 것을 지시한다. 평면 모드는, 사실상, 값들을 변경함에 있어서 비교적 일정한 기울기를 이용하여 행/열에 걸쳐 광/색의 매끄러운 전이를 지시한다. DC 모드는 경계 평활화를 위해 이용되고 블록이 방향 예측 모드들의 각도 방향들과 연관된 모든 이웃 블록들의 샘플들과 연관된 평균 값과 유사/동일하다는 것을 지시한다. 따라서, 인트라-예측 블록들은 실제 값들 대신에 다양한 관계 예측 모드 값들로서 이미지 블록들을 표현할 수 있다. 또한, 인터-예측 블록들은 실제 값들 대신에 움직임 벡터 값들로서 이미지 블록들을 표현할 수 있다. 어느 경우든, 예측 블록들은 일부 경우들에서 이미지 블록들을 정확하게 표현하지 않을 수 있다. 임의의 차이들이 잔차 블록들에 저장된다. 파일을 추가로 압축하기 위해 잔차 블록들에 변환들이 적용될 수 있다.
단계 107에서, 다양한 필터링 기법들이 적용될 수 있다. HEVC에서, 필터들은 인-루프 필터링 스킴(in-loop filtering scheme)에 따라 적용된다. 위에서 논의된 블록 기반 예측은 디코더에서 농담이 고르지 않은 이미지들(blocky images)의 생성을 야기할 수 있다. 또한, 블록 기반 예측 스킴은 블록을 인코딩한 다음 인코딩된 블록을 참조 블록으로서 나중의 사용을 위해 재구성할 수 있다. 인-루프 필터링 스킴은 블록들/프레임들에 잡음 억제 필터들, 디블로킹 필터들, 적응 루프 필터들, 및 샘플 적응 오프셋(SAO) 필터들을 반복적으로 적용한다. 이들 필터는 인코딩된 파일이 정확하게 재구성될 수 있도록 그러한 블로킹 아티팩트들을 완화시킨다. 또한, 이들 필터는 재구성된 참조 블록들에서 아티팩트들을 완화시켜 아티팩트들이 재구성된 참조 블록들에 기초하여 인코딩되는 후속 블록들에서 추가적인 아티팩트들을 생성할 가능성이 더 적다.
비디오 신호가 파티셔닝되고, 압축되고, 필터링되면, 결과 데이터는 단계 109에서 비트스트림에 인코딩된다. 비트스트림은 위에서 논의된 데이터뿐만 아니라 디코더에서 적절한 비디오 신호 재구성을 지원하기 위해 요구되는 임의의 시그널링 데이터를 포함한다. 예를 들어, 그러한 데이터는 파티션 데이터, 예측 데이터, 잔차 블록들, 및 디코더에 코딩 명령어들을 제공하는 다양한 플래그들을 포함할 수 있다. 비트스트림은 요청 시에 디코더를 향한 송신을 위해 메모리에 저장될 수 있다. 비트스트림은 또한 복수의 디코더를 향해 브로드캐스트 및/또는 멀티캐스트될 수 있다. 비트스트림의 생성은 반복적 프로세스이다. 따라서, 단계들 101, 103, 105, 107 및 109는 많은 프레임들 및 블록들에 걸쳐 연속적으로 및/또는 동시에 발생할 수 있다. 도 1에 도시된 순서는 논의의 명료성 및 편의를 위해 제시되고, 비디오 코딩 프로세스를 특정한 순서로 제한하도록 의도되지 않는다. 또한, 단계들 111, 113, 115, 및 117에서의 디코딩은 많은 프레임들 및 블록들에 걸쳐 연속적으로 및/또는 동시에 발생할 수 있고, 따라서 디코딩을 위해 도시된 순서도 제한적인 것으로 간주되어서는 안 된다.
디코더는 단계 111에서 비트스트림을 수신하고 디코딩 프로세스를 시작한다. 구체적으로, 디코더는 엔트로피 디코딩 스킴을 이용하여 비트스트림을 대응하는 구문 및 비디오 데이터로 변환한다. 디코더는 단계 111에서 비트스트림으로부터의 구문 데이터를 이용하여 프레임들에 대한 파티션들을 결정한다. 단계 103에서 파티셔닝은 블록 파티셔닝의 결과들과 매칭해야 한다. 이제부터 단계 111에서 이용되는 바와 같은 엔트로피 인코딩/디코딩이 설명된다. 인코더는 압축 프로세스 동안, 입력 이미지(들) 내의 값들의 공간적 배치에 기초하여 여러 가능한 선택들로부터 블록 파티셔닝 스킴들을 선택하는 것과 같은, 많은 선택들을 행한다. 정확한 선택들을 시그널링하는 것은 많은 수의 빈들을 이용할 수 있다. 본 명세서에서 사용되는, 빈은 변수로서 취급되는 이진 값(예를 들어, 컨텍스트에 따라 달라질 수 있는 비트 값)이다. 엔트로피 코딩은 인코더가 특정한 경우에 대해 명확하게 실행가능하지 않은 임의의 옵션들을 버려, 허용가능한 옵션들(예를 들어, 후보들)의 세트를 남겨두는 것을 허용한다. 그 후 각각의 허용가능한 옵션에는 코드 워드가 할당된다. 코드 워드들의 길이는 허용가능한 옵션들의 수에 기초한다(예를 들어, 2개의 옵션에 대한 1개의 빈, 3개 내지 4개의 옵션에 대한 2개의 빈 등). 그 후 인코더는 선택된 옵션에 대한 코드 워드를 인코딩한다. 이 스킴은 코드 워드들의 크기를 감소시키는데 그 이유는 코드 워드들이 잠재적으로 큰 세트의 모든 가능한 옵션들로부터의 선택을 고유하게 지시하는 것과는 대조적으로 허용가능한 옵션들의 작은 서브세트로부터의 선택을 고유하게 지시하기 위해 원하는 만큼 크기 때문이다. 디코더는 그 후 인코더와 유사한 방식으로 허용가능한 옵션들의 세트를 결정함으로써 선택을 디코딩한다. 허용가능한 옵션들의 세트를 결정함으로써, 디코더는 코드 워드를 판독하고 인코더에 의해 행해진 선택을 결정할 수 있다.
단계 113에서, 디코더는 블록 디코딩을 수행한다. 구체적으로, 디코더는 잔차 블록들을 생성하기 위해 역변환들을 이용한다. 그 후 디코더는 잔차 블록들 및 대응하는 예측 블록들을 이용하여 파티셔닝에 따라 이미지 블록들을 재구성한다. 예측 블록들은 단계 105에서 인코더에서 생성된 인트라-예측 블록들 및 인터-예측 블록들 둘 다를 포함할 수 있다. 재구성된 이미지 블록들은 그 후 단계 111에서 결정된 파티셔닝 데이터에 따라 재구성된 비디오 신호의 프레임들 내에 배치된다. 단계 113에 대한 구문은 또한 위에서 논의된 바와 같이 엔트로피 코딩을 통해 비트스트림에서 시그널링될 수 있다.
단계 115에서, 인코더에서의 단계 107과 유사한 방식으로 재구성된 비디오 신호의 프레임들에 대해 필터링이 수행된다. 예를 들어, 블로킹 아티팩트들을 제거하기 위해 프레임들에 잡음 억제 필터들, 디블로킹 필터들, 적응 루프 필터들, 및 SAO 필터들이 적용될 수 있다. 프레임들이 필터링되면, 최종 사용자에 의한 보기를 위해 단계 117에서 비디오 신호가 디스플레이에 출력될 수 있다.
본 개시내용은 SVT를 개선하기 위한 수정들에 관한 것이다. 구체적으로, 본 개시내용은 잔차 블록들에 적용되는 변환들로서의 사용을 위한 개선된 SVT 블록들을 도입한다. 개선된 SVT 블록들은 레거시 SVT 블록들보다 크다. 따라서, 개선된 SVT 블록들은 더 적은 수의 후보 위치들을 갖고, 시그널링 오버헤드가 감소되는 결과를 야기한다. 또한, SVT 블록 유형 및 위치에 대한 개선된 시그널링 메커니즘들이 개시된다. 따라서, 아래의 도면들에서 설명된 개선된 SVT 블록들 및 시그널링 메커니즘들은 단계 105에서의 블록 압축, 단계 109에서의 비트스트림 인코딩, 디코더에서의 비트스트림의 수신, 및 단계 113에서의 블록 디코딩을 개선한다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템(200)의 개략도이다. 구체적으로, 코덱 시스템(200)은 방법(100)의 구현을 지원하기 위한 기능을 제공한다. 코덱 시스템(200)은 인코더 및 디코더 둘 다에서 이용되는 컴포넌트들을 묘사하기 위해 일반화되어 있다. 코덱 시스템(200)은 방법(100)에서의 단계들 101 및 103과 관하여 논의된 바와 같이 비디오 신호를 수신하여 파티셔닝하고, 이는 파티셔닝된 비디오 신호(201)를 야기한다. 코덱 시스템(200)은 그 후 방법(100)에서의 단계들 105, 107, 및 109와 관하여 논의된 바와 같이 인코더로서의 역할을 할 때 파티셔닝된 비디오 신호(201)를 코딩된 비트스트림으로 압축한다. 디코더로서의 역할을 할 때, 코덱 시스템(200)은 방법(100)에서의 단계들 111, 113, 115, 및 117과 관하여 논의된 바와 같이 비트스트림으로부터 출력 비디오 신호를 생성한다. 코덱 시스템(200)은 일반 코더 제어 컴포넌트(211), 변환 스케일링 및 양자화 컴포넌트(213), 인트라-픽처 추정 컴포넌트(215), 인트라-픽처 예측 컴포넌트(217), 움직임 보상 컴포넌트(219), 움직임 추정 컴포넌트(221), 스케일링 및 역변환 컴포넌트(229), 필터 제어 분석 컴포넌트(227), 인-루프 필터들 컴포넌트(225), 디코딩된 픽처 버퍼 컴포넌트(223), 및 헤더 포맷팅 및 CABAC(context adaptive binary arithmetic coding) 컴포넌트(231)를 포함한다. 그러한 컴포넌트들은 도시된 바와 같이 결합된다. 도 2에서, 검은 선들은 인코딩/디코딩될 데이터의 이동을 지시하는 반면 파선들은 다른 컴포넌트들의 동작을 제어하는 제어 데이터의 이동을 지시한다. 코덱 시스템(200)의 컴포넌트들은 모두 인코더에 존재할 수 있다. 디코더는 코덱 시스템(200)의 컴포넌트들의 서브세트를 포함할 수 있다. 예를 들어, 디코더는 인트라-픽처 예측 컴포넌트(217), 움직임 보상 컴포넌트(219), 스케일링 및 역변환 컴포넌트(229), 인-루프 필터들 컴포넌트(225), 및 디코딩된 픽처 버퍼 컴포넌트(223)를 포함할 수 있다. 이제부터 이들 컴포넌트가 설명된다.
파티셔닝된 비디오 신호(201)는 코딩 트리에 의해 픽셀 블록들로 파티셔닝된 캡처된 비디오 시퀀스이다. 코딩 트리는 다양한 분할 모드들을 이용하여 픽셀 블록을 더 작은 픽셀 블록들로 세분한다. 그 후 이들 블록은 더 작은 블록들로 추가로 세분될 수 있다. 블록들은 코딩 트리 상의 노드들이라고 지칭될 수 있다. 더 큰 부모 노드들은 더 작은 자식 노드들로 분할된다. 노드가 세분되는 횟수는 노드/코딩 트리의 깊이라고 지칭된다. 분할된 블록들은 일부 경우들에서 코딩 유닛들(CU들)이라고 지칭된다. 분할 모드들은 노드를 이용되는 분할 모드들에 따라 변화하는 형상들의 2개, 3개, 또는 4개의 자식 노드로 각각 파티셔닝하기 위해 이용되는 이진 트리(binary tree, BT), 트리플 트리(triple tree, TT), 및 쿼드 트리(quad tree, QT)를 포함할 수 있다. 파티셔닝된 비디오 신호(201)는 압축을 위해 일반 코더 제어 컴포넌트(211), 변환 스케일링 및 양자화 컴포넌트(213), 인트라-픽처 추정 컴포넌트(215), 필터 제어 분석 컴포넌트(227), 및 움직임 추정 컴포넌트(221)로 전달된다.
일반 코더 제어 컴포넌트(211)는 애플리케이션 제약들에 따라 비트스트림 내로의 비디오 시퀀스의 이미지들의 코딩에 관련된 결정들을 하도록 구성된다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 비트레이트/비트스트림 크기 대 재구성 품질의 최적화를 관리한다. 그러한 결정들은 저장 공간/대역폭 이용가능성 및 이미지 해상도 요청들에 기초하여 행해질 수 있다. 일반 코더 제어 컴포넌트(211)는 또한 버퍼 언더런 및 오버런 문제들을 완화시키기 위해 송신 속도를 고려하여 버퍼 이용을 관리한다. 이들 문제를 관리하기 위해, 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트들에 의한 파티셔닝, 예측, 및 필터링을 관리한다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 동적으로 압축 복잡도를 증가시켜 해상도를 증가시키고 대역폭 사용을 증가시키거나 압축 복잡도를 감소시켜 해상도 및 대역폭 사용을 감소시킬 수 있다. 따라서, 일반 코더 제어 컴포넌트(211)는 코덱 시스템(200)의 다른 컴포넌트들을 제어하여 비디오 신호 재구성 품질과 비트 레이트 관심사들의 균형을 잡는다(예를 들어, 레이트 왜곡 최적화). 일반 코더 제어 컴포넌트(211)는, 다른 컴포넌트들의 동작을 제어하는, 제어 데이터를 생성한다. 제어 데이터는 또한 디코더에서 디코딩하기 위한 파라미터들을 시그널링하기 위해 비트스트림에 인코딩되기 위해 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다.
파티셔닝된 비디오 신호(201)는 또한 인터-예측을 위해 움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)에 송신된다. 파티셔닝된 비디오 신호(201)의 프레임 또는 슬라이스는 다수의 비디오 블록으로 분할될 수 있다. 움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)는 시간 예측을 제공하기 위해 하나 이상의 참조 프레임 내의 하나 이상의 블록에 대한 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 코덱 시스템(200)은, 예를 들어, 비디오 데이터의 각각의 블록에 대해 적절한 코딩 모드를 선택하기 위해 다수의 코딩 패스를 수행할 수 있다.
움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 예시되어 있다. 움직임 추정 컴포넌트(221)에 의해 수행되는 움직임 추정은, 비디오 블록들에 대한 움직임을 추정하는, 움직임 벡터들을 생성하는 프로세스이다. 움직임 벡터는, 예를 들어, 예측 블록에 대한 코딩된 객체의 변위를 지시할 수 있다. 예측 블록은, 픽셀 차이의 관점에서, 코딩될 블록과 가깝게 매칭하는 것으로 밝혀지는 블록이다. 예측 블록은 참조 블록이라고도 지칭될 수 있다. 그러한 픽셀 차이는 SAD(sum of absolute difference), SSD(sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수 있다. HEVC는 코딩 트리 유닛(CTU), 코딩 트리 블록(CTB) 들 및 CU들을 포함하는 여러 코딩된 객체들을 이용한다. 예를 들어, CTU는 CTB들로 분할될 수 있고, 이는 그 후 CU들로 분할될 수 있고, 이는 원하는 대로 추가로 세분될 수 있다. CU는 예측 데이터를 포함하는 예측 유닛(PU) 및/또는 CU에 대한 변환된 잔차 데이터를 포함하는 변환 유닛(TU)으로서 인코딩될 수 있다. 움직임 추정 컴포넌트(221)는 레이트-왜곡 분석을 이용하여 움직임 벡터들, PU들 및 TU들을 생성한다. 예를 들어, 움직임 추정 컴포넌트(221)는 현재 블록/프레임에 대한 다수의 참조 블록들, 다수의 움직임 벡터들 등을 결정할 수 있고, 최상의 레이트-왜곡 특성들을 갖는 참조 블록들, 움직임 벡터들 등을 선택할 수 있다. 최상의 레이트-왜곡 특성들은 비디오 재구성의 품질(예를 들어, 압축에 의한 데이터 손실의 양)과 코딩 효율(예를 들어, 인코딩의 크기) 둘 다의 균형을 잡는다.
일부 예들에서, 코덱 시스템(200)은 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된 참조 픽처들의 정수 미만의(sub-integer) 픽셀 위치에 대한 값들을 계산할 수 있다. 예를 들어, 비디오 코덱 시스템(200)은 참조 픽처의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 보간할 수 있다. 따라서, 움직임 추정 컴포넌트(221)는 전체 픽셀 위치들 및 분수 픽셀 위치들에 대해 움직임 검색을 수행하고 분수 픽셀 정밀도를 갖는 움직임 벡터를 출력할 수 있다. 움직임 추정 컴포넌트(221)는 PU의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써 인터-코딩된 슬라이스에서 비디오 블록의 PU에 대한 움직임 벡터를 계산한다. 움직임 추정 컴포넌트(221)는 계산된 움직임 벡터를 움직임 데이터로서 인코딩을 위해 헤더 포맷팅 및 CABAC 컴포넌트(231)에 그리고 움직임을 움직임 보상 컴포넌트(219)에 출력한다.
움직임 보상 컴포넌트(219)에 의해 수행되는 움직임 보상은 움직임 추정 컴포넌트(221)에 의해 결정된 움직임 벡터에 기초하여 예측 블록을 페치하거나 생성하는 것을 수반할 수 있다. 다시, 일부 예들에서, 움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)는 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 움직임 벡터를 수신하면, 움직임 보상 컴포넌트(219)는 움직임 벡터가 가리키는 예측 블록을 찾을 수 있다. 그 후 코딩되고 있는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여, 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록이 형성된다. 일반적으로, 움직임 추정 컴포넌트(221)는 루마 성분들에 대해 움직임 추정을 수행하고, 움직임 보상 컴포넌트(219)는 크로마 성분들 및 루마 성분들 둘 다에 대해 루마 성분들에 기초하여 계산된 움직임 벡터들을 사용한다. 예측 블록 및 잔차 블록은 변환 스케일링 및 양자화 컴포넌트(213)로 전달된다.
파티셔닝된 비디오 신호(201)는 또한 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)로 송신된다. 움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)와 마찬가지로, 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 예시되어 있다. 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)는, 위에 설명된 바와 같이, 프레임들 간에 움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)에 의해 수행되는 인터-예측에 대한 대안으로서, 현재 프레임 내의 블록들에 대해 현재 블록을 인트라-예측한다. 특히, 인트라-픽처 추정 컴포넌트(215)는 현재 블록을 인코딩하기 위해 사용할 인트라-예측 모드를 결정한다. 일부 예들에서, 인트라-픽처 추정 컴포넌트(215)는 다수의 테스트된 인트라-예측 모드로부터 현재 블록을 인코딩할 적절한 인트라-예측 모드를 선택한다. 선택된 인트라-예측 모드들은 그 후 인코딩을 위해 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다.
예를 들어, 인트라-픽처 추정 컴포넌트(215)는 다양한 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산하고, 테스트된 모드들 중에서 최상의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택한다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩된 원래의 인코딩되지 않은 블록 사이의 왜곡(또는 오류)의 양뿐만 아니라, 인코딩된 블록을 생성하기 위해 사용되는 비트레이트(예를 들어, 비트의 수)를 결정한다. 인트라-픽처 추정 컴포넌트(215)는 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위해 다양한 인코딩된 블록들에 대한 레이트들 및 왜곡들로부터의 비율들을 계산한다. 또한, 인트라-픽처 추정 컴포넌트(215)는 레이트-왜곡 최적화(RDO)에 기초하여 깊이 모델링 모드(depth modeling mode, DMM)를 이용하여 깊이 맵의 깊이 블록들을 코딩하도록 구성될 수 있다.
인트라-픽처 예측 컴포넌트(217)는 인코더 상에서 구현될 때 인트라-픽처 추정 컴포넌트(215)에 의해 결정된 선택된 인트라-예측 모드들에 기초하여 예측 블록으로부터 잔차 블록을 생성하거나 디코더 상에서 구현될 때 비트스트림으로부터 잔차 블록을 판독할 수 있다. 잔차 블록은, 행렬로서 표현되는, 예측 블록과 원래의 블록 사이의 값들의 차이를 포함한다. 잔차 블록은 그 후 변환 스케일링 및 양자화 컴포넌트(213)로 전달된다. 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)는 루마 및 크로마 성분들 둘 다에 대해 동작할 수 있다.
변환 스케일링 및 양자화 컴포넌트(213)는 잔차 블록을 추가로 압축하도록 구성된다. 변환 스케일링 및 양자화 컴포넌트(213)는 DCT(discrete cosine transform), DST(discrete sine transform), 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 웨이블릿 변환들, 정수 변환들, 부대역 변환들 또는 다른 유형의 변환들이 또한 사용될 수 있다. 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한, 예를 들어, 주파수에 기초하여 변환된 잔차 정보를 스케일링하도록 구성된다. 그러한 스케일링은 상이한 주파수 정보가 상이한 입도들로 양자화되도록 스케일 인자를 잔차 정보에 적용하는 것을 수반하고, 이는 재구성된 비디오의 최종 시각적 품질에 영향을 미칠 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한 비트 레이트를 추가로 감소시키기 위해 변환 계수들을 양자화하도록 구성된다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 일부 예들에서, 변환 스케일링 및 양자화 컴포넌트(213)는 그 후 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 양자화된 변환 계수들은 비트스트림에 인코딩되기 위해 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다.
스케일링 및 역변환 컴포넌트(229)는 움직임 추정을 지원하기 위해 변환 스케일링 및 양자화 컴포넌트(213)의 역 동작을 적용한다. 스케일링 및 역변환 컴포넌트(229)는, 예를 들어, 다른 현재 블록에 대한 예측 블록이 될 수 있는 참조 블록으로서 나중의 사용을 위해, 픽셀 도메인에서의 잔차 블록을 재구성하기 위해 역 스케일링, 변환, 및/또는 양자화를 적용한다. 움직임 추정 컴포넌트(221) 및/또는 움직임 보상 컴포넌트(219)는 나중의 블록/프레임의 움직임 추정에서의 사용을 위해 대응하는 예측 블록에 잔차 블록을 다시 추가함으로써 참조 블록을 계산할 수 있다. 스케일링, 양자화, 및 변환 동안 생성된 아티팩트들을 완화시키기 위해 재구성된 참조 블록들에 필터들이 적용된다. 그러한 아티팩트들은 후속 블록들이 예측될 때 부정확한 예측을 야기할 수 있다(그리고 추가적인 아티팩트들을 생성할 수 있다).
필터 제어 분석 컴포넌트(227) 및 인-루프 필터들 컴포넌트(225)는 필터들을 잔차 블록들 및/또는 재구성된 이미지 블록들에 적용한다. 예를 들어, 스케일링 및 역변환 컴포넌트(229)로부터의 변환된 잔차 블록은 인트라-픽처 예측 컴포넌트(217) 및/또는 움직임 보상 컴포넌트(219)로부터의 대응하는 예측 블록과 조합되어 원래의 이미지 블록을 재구성할 수 있다. 필터들은 그 후 재구성된 이미지 블록에 적용될 수 있다. 일부 예들에서, 필터들은 대신에 잔차 블록들에 적용될 수 있다. 도 2의 다른 컴포넌트들과 마찬가지로, 필터 제어 분석 컴포넌트(227) 및 인-루프 필터들 컴포넌트(225)는 고도로 통합되고 함께 구현될 수 있지만, 개념적 목적을 위해 개별적으로 묘사되어 있다. 재구성된 참조 블록들에 적용되는 필터들은 특정한 공간 영역들에 적용되고, 그러한 필터들이 어떻게 적용되는지를 조정하기 위한 다수의 파라미터를 포함한다. 필터 제어 분석 컴포넌트(227)는 재구성된 참조 블록들을 분석하여 어느 필터들이 적용되어야 하는지를 결정하고 대응하는 파라미터들을 설정한다. 그러한 데이터는 인코딩을 위한 필터 제어 데이터로서 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다. 인-루프 필터들 컴포넌트(225)는 필터 제어 데이터에 기초하여 그러한 필터들을 적용한다. 필터들은 디블로킹 필터, 잡음 억제 필터, SAO 필터, 및 적응 루프 필터를 포함할 수 있다. 그러한 필터들은, 예에 따라, 공간/픽셀 도메인에서(예를 들어, 재구성된 픽셀 블록에 대해) 또는 주파수 도메인에서 적용될 수 있다.
인코더로서 동작할 때, 필터링된 재구성된 이미지 블록, 잔차 블록, 및/또는 예측 블록은 위에서 논의된 바와 같이 움직임 추정에서 나중의 사용을 위해 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된다. 디코더로서 동작할 때, 디코딩된 픽처 버퍼 컴포넌트(223)는 재구성되고 필터링된 블록들을 저장하고 출력 비디오 신호의 일부로서 디스플레이를 향해 전달한다. 디코딩된 픽처 버퍼 컴포넌트(223)는 예측 블록들, 잔차 블록들, 및/또는 재구성 이미지 블록을 저장할 수 있는 임의의 메모리 디바이스일 수 있다.
헤더 포맷팅 및 CABAC 컴포넌트(231)는 코덱 시스템(200)의 다양한 컴포넌트들로부터 데이터를 수신하고 그러한 데이터를 디코더를 향한 송신을 위한 코딩된 비트스트림 내에 인코딩한다. 구체적으로, 헤더 포맷팅 및 CABAC 컴포넌트(231)는 일반 제어 데이터 및 필터 제어 데이터와 같은 제어 데이터를 인코딩하기 위한 다양한 헤더들을 생성한다. 또한, 인트라-예측 및 움직임 데이터를 포함하는 예측 데이터뿐만 아니라, 양자화된 변환 계수 데이터의 형식의 잔차 데이터가 모두 비트스트림에 인코딩된다. 최종 비트스트림은 원래의 파티셔닝된 비디오 신호(201)를 재구성하기 위해 디코더에 의해 요구되는 모든 정보를 포함한다. 그러한 정보는 인트라-예측 모드 인덱스 테이블들(코드 워드 매핑 테이블들이라고도 지칭됨), 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들, 가장 가능성 있는 인트라-예측 모드들의 지시들, 파티션 정보의 지시 등을 또한 포함할 수 있다. 그러한 데이터는 엔트로피 코딩을 이용하여 인코딩될 수 있다. 예를 들어, 정보는 CAVLC(context adaptive variable length coding), CABAC, SBAC(syntax-based context-adaptive binary arithmetic coding), PIPE(probability interval partitioning entropy) 코딩, 또는 다른 엔트로피 코딩 기법을 이용하여 인코딩될 수 있다. 엔트로피 코딩에 이어서, 코딩된 비트스트림은 다른 디바이스(예를 들어, 비디오 디코더)로 송신되거나 나중의 송신 또는 검색을 위해 보관될 수 있다.
본 개시내용은 SVT를 개선하기 위한 수정들에 관한 것이다. 구체적으로, 본 개시내용은 잔차 블록들에 적용되는 변환들로서의 사용을 위한 개선된 SVT 블록들을 도입한다. 개선된 SVT 블록들은 레거시 SVT 블록들보다 크다. 따라서, 개선된 SVT 블록들은 더 적은 수의 후보 위치들을 갖고, 시그널링 오버헤드가 감소되는 결과를 야기한다. 또한, SVT 블록 유형 및 위치에 대한 개선된 시그널링 메커니즘들이 개시된다. 따라서, 아래의 도면들에서 설명된 개선된 SVT 블록들 및 시그널링 메커니즘들은 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 헤더 포맷팅 및 CABAC 컴포넌트(231), 및/또는 일반 코더 제어 컴포넌트(211)의 동작을 개선한다.
도 3은 SVT를 구현할 수 있는 예시적인 비디오 인코더(300)를 예시하는 블록도이다. 비디오 인코더(300)는 코덱 시스템(200)의 인코딩 기능들을 구현하고/하거나 방법(100)의 단계들 101, 103, 105, 107, 및/또는 109를 구현하기 위해 이용될 수 있다. 인코더(300)는 입력 비디오 신호를 파티셔닝하여, 파티셔닝된 비디오 신호(301)를 야기하고, 이는 파티셔닝된 비디오 신호(201)와 실질적으로 유사하다. 파티셔닝된 비디오 신호(301)는 그 후 압축되고 인코더(300)의 컴포넌트들에 의해 비트스트림 내에 인코딩된다.
구체적으로, 파티셔닝된 비디오 신호(301)는 인트라-예측을 위해 인트라-픽처 예측 컴포넌트(317)로 전달된다. 인트라-픽처 예측 컴포넌트(317)는 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)와 실질적으로 유사할 수 있다. 파티셔닝된 비디오 신호(301)는 또한 디코딩된 픽처 버퍼 컴포넌트(323) 내의 참조 블록들에 기초하여 인터-예측을 위해 움직임 보상 컴포넌트(321)로 전달된다. 움직임 보상 컴포넌트(321)는 움직임 추정 컴포넌트(221) 및 움직임 보상 컴포넌트(219)와 실질적으로 유사할 수 있다. 인트라-픽처 예측 컴포넌트(317) 및 움직임 보상 컴포넌트(321)로부터의 예측 블록들 및 잔차 블록들은 잔차 블록들의 변환 및 양자화를 위해 변환 및 양자화 컴포넌트(313)로 전달된다. 변환 및 양자화 컴포넌트(313)는 변환 스케일링 및 양자화 컴포넌트(213)와 실질적으로 유사할 수 있다. 변환되고 양자화된 잔차 블록들 및 대응하는 예측 블록들은(연관된 제어 데이터와 함께) 비트스트림 내로 코딩을 위해 엔트로피 코딩 컴포넌트(331)로 전달된다. 엔트로피 코딩 컴포넌트(331)는 헤더 포맷팅 및 CABAC 컴포넌트(231)와 실질적으로 유사할 수 있다.
변환되고 양자화된 잔차 블록들 및/또는 대응하는 예측 블록들은 또한 움직임 보상 컴포넌트(321)에 의한 사용을 위한 참조 블록들로의 재구성을 위해 변환 및 양자화 컴포넌트(313)로부터 역변환 및 양자화 컴포넌트(329)로 전달된다. 역변환 및 양자화 컴포넌트(329)는 스케일링 및 역변환 컴포넌트(229)와 실질적으로 유사할 수 있다. 인-루프 필터들 컴포넌트(325) 내의 인-루프 필터들은 또한 재구성된 참조 블록들에 적용된다. 인-루프 필터들 컴포넌트(325)는 필터 제어 분석 컴포넌트(227) 및 인-루프 필터들 컴포넌트(225)와 실질적으로 유사할 수 있다. 인-루프 필터들 컴포넌트(325)는 인-루프 필터들 컴포넌트(225)에 관하여 논의된 바와 같은 다수의 필터를 포함할 수 있다. 필터링된 블록들은 그 후 움직임 보상 컴포넌트(321)에 의한 참조 블록들로서 사용을 위해 디코딩된 픽처 버퍼 컴포넌트(323)에 저장된다. 디코딩된 픽처 버퍼 컴포넌트(323)는 디코딩된 픽처 버퍼 컴포넌트(223)와 실질적으로 유사할 수 있다.
본 개시내용은 SVT를 개선하기 위한 수정들에 관한 것이다. 구체적으로, 본 개시내용은 잔차 블록들에 적용되는 변환들로서의 사용을 위한 개선된 SVT 블록들을 도입한다. 개선된 SVT 블록들은 레거시 SVT 블록들보다 크다. 따라서, 개선된 SVT 블록들은 더 적은 수의 후보 위치들을 갖고, 시그널링 오버헤드가 감소되는 결과를 야기한다. 또한, SVT 블록 유형 및 위치에 대한 개선된 시그널링 메커니즘들이 개시된다. 예를 들어, SVT 유형 및/또는 위치는 파라미터 세트 내의 파라미터로서 시그널링될 수 있다. 다른 예에서, 인코더(300)는 변환된 잔차 블록 내의 계수들을 변경하여 SVT 유형, 및/또는 위치를 시그널링할 수 있다. 따라서, 아래의 도면들에서 설명된 개선된 SVT 블록들 및 시그널링 메커니즘들은 인코더(300) 내의 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 엔트로피 코딩 컴포넌트(331)의 동작을 개선한다.
도 4는 SVT를 구현할 수 있는 예시적인 비디오 디코더(400)를 예시하는 블록도이다. 비디오 디코더(400)는 코덱 시스템(200)의 디코딩 기능들을 구현하고/하거나 방법(100)의 단계들 111, 113, 115, 및/또는 117을 구현하기 위해 이용될 수 있다. 디코더(400)는 예를 들어 인코더(300)로부터 비트스트림을 수신하고, 최종 사용자에게 디스플레이하기 위한 비트스트림에 기초하여 재구성된 출력 비디오 신호를 생성한다.
비트스트림은 엔트로피 디코딩 컴포넌트(433)에 의해 수신된다. 엔트로피 디코딩 컴포넌트(433)는 CAVLC, CABAC, SBAC, PIPE 코딩, 또는 다른 엔트로피 코딩 기법들과 같은 엔트로피 디코딩 스킴을 구현하도록 구성된다. 예를 들어, 엔트로피 디코딩 컴포넌트(433)는 헤더 정보를 이용하여 비트스트림 내에 코드워드들로서 인코딩된 추가적인 데이터를 해석하기 위한 컨텍스트를 제공할 수 있다. 디코딩된 정보는 잔차 블록들로부터의 일반 제어 데이터, 필터 제어 데이터, 파티션 정보, 움직임 데이터, 예측 데이터, 및 양자화된 변환 계수들과 같은 비디오 신호를 디코딩하기 위한 임의의 원하는 정보를 포함한다. 양자화된 변환 계수들은 잔차 블록들로의 재구성을 위해 역변환 및 양자화 컴포넌트(429)로 전달된다. 역변환 및 양자화 컴포넌트(429)는 역변환 및 양자화 컴포넌트(329)와 유사할 수 있다.
재구성된 잔차 블록들 및/또는 예측 블록들은 인트라-예측 동작들에 기초하여 이미지 블록들로의 재구성을 위해 인트라-픽처 예측 컴포넌트(417)로 전달된다. 인트라-픽처 예측 컴포넌트(417)는 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)와 유사할 수 있다. 구체적으로, 인트라-픽처 예측 컴포넌트(417)는 예측 모드들을 이용하여 프레임 내의 참조 블록을 찾고 잔차 블록을 결과에 적용하여 인트라-예측된 이미지 블록을 재구성한다. 재구성된 인트라-예측된 이미지 블록들 및/또는 잔차 블록들 및 대응하는 인터-예측 데이터는 인-루프 필터들 컴포넌트(425)를 통해 디코딩된 픽처 버퍼 컴포넌트(423)로 전달되는데, 이들은 각각, 인-루프 필터들 컴포넌트(225) 및 디코딩된 픽처 버퍼 컴포넌트(223)와 실질적으로 유사할 수 있다. 인-루프 필터들 컴포넌트(425)는 재구성된 이미지 블록들, 잔차 블록들 및/또는 예측 블록들을 필터링하고, 그러한 정보는 디코딩된 픽처 버퍼 컴포넌트(423)에 저장된다. 디코딩된 픽처 버퍼 컴포넌트(423)로부터의 재구성된 이미지 블록들은 인터-예측을 위해 움직임 보상 컴포넌트(421)로 전달된다. 움직임 보상 컴포넌트(421)는 움직임 추정 컴포넌트(221) 및/또는 움직임 보상 컴포넌트(219)와 실질적으로 유사할 수 있다. 구체적으로, 움직임 보상 컴포넌트(421)는 참조 블록으로부터 움직임 벡터들을 이용하여 예측 블록을 생성하고 잔차 블록을 결과에 적용하여 이미지 블록을 재구성한다. 결과적인 재구성된 블록은 또한 인-루프 필터들 컴포넌트(425)를 통해 디코딩된 픽처 버퍼 컴포넌트(423)로 전달될 수 있다. 디코딩된 픽처 버퍼 컴포넌트(423)는 계속해서 추가적인 재구성된 이미지 블록들을 저장하고, 이들은 파티션 정보를 통해 프레임들로 재구성될 수 있다. 그러한 프레임들은 또한 시퀀스에 배치될 수 있다. 시퀀스는 재구성된 출력 비디오 신호로서 디스플레이를 향해 출력된다.
본 개시내용은 SVT를 개선하기 위한 수정들에 관한 것이다. 구체적으로, 본 개시내용은 잔차 블록들에 적용되는 변환들로서의 사용을 위한 개선된 SVT 블록들을 도입한다. 개선된 SVT 블록들은 레거시 SVT 블록들보다 크다. 따라서, 개선된 SVT 블록들은 더 적은 수의 후보 위치들을 갖고, 시그널링 오버헤드가 감소되는 결과를 야기한다. 또한, SVT 블록 유형 및 위치에 대한 개선된 시그널링 메커니즘들이 개시된다. 예를 들어, SVT 유형 및/또는 위치는 파라미터 세트 내의 파라미터로서 시그널링될 수 있다. 다른 예에서, 인코더(300)는 변환된 잔차 블록 내의 계수들을 변경하여 SVT 유형, 및/또는 위치를 시그널링할 수 있다. 따라서, 아래의 도면들에서 설명된 개선된 SVT 블록들 및 시그널링 메커니즘들은 디코더(400) 내의 엔트로피 디코딩 컴포넌트(433) 및 역변환 및 양자화 컴포넌트(429)의 동작을 개선한다.
이제부터 방법(100), 코덱 시스템(200), 인코더(300), 및/또는 디코더(400)에 대한 개선들이 다음의 도면들에 관하여 제공되는 추가의 예시적인 구현 세부사항들과 함께 일반적으로 설명된다. 위에서 논의된 바와 같이, 인코더(예를 들어, 인코더(300))는 그러한 블록들을, 예측 블록들이라고도 지칭될 수 있는, 예측 정보로 변환함으로써 픽셀 블록들을 인코딩한다. 예측 블록들은 대응하는 참조 블록들을 참조하여 픽셀 블록들을 인코딩한다. 잘 매칭된 참조 블록들조차 인코딩되고 있는 픽셀 블록들과 다소 상이할 수 있다. 그에 따라, 예측 블록들만으로는 디코더(예를 들어, 디코더(400))에서 픽셀 블록들을 재구성하기에 충분한 정보를 제공하지 않을 수 있다. 픽셀 블록과 예측 블록에 의해 참조되는 참조 블록(들) 사이의 차이들은 잔차 블록에 인코딩된다. 그에 따라, 디코더는 예측 블록, 잔차 블록, 및 대응하는 참조 블록(들)을 이용하여 픽셀 블록을 디코딩할 수 있다. 잔차 블록들은 잔차 블록들에 포함된 값들에 변환을 적용함으로써 추가로 압축될 수 있다. 이는 잔차 블록 값들을 변환 도메인(예를 들어, 주파수 도메인)에서의 계수들로 변환한다. 전체 잔차 블록을 변환하는 것은, 특히 잔차 블록이 제로 값들의 상당한 그룹들을 포함할 때(픽셀 블록과 참조 블록(들) 사이의 양호한 매칭의 경우에 발생함), 변환 계산 메커니즘들과 관련된 이유들 때문에 최적의 압축을 제공하지 않을 수 있다.
따라서, SVT 프로세스가 변환 블록을 인코더에서 잔차 블록 상에 배치한다. 변환 블록은 잔차 블록의 대응하는 부분들을 변환 계수들로 변환하고 잔차 블록의 다른 부분들을 변환되지 않은 채로 남겨둔다. 잔차 블록은 그 후 변환 계수들 및 비-제로 값들(있다면)의 조합으로서 비트스트림에 인코딩될 수 있다. 잔차 블록을 디코딩하기 위해, 디코더는 사용되는 변환(사전 정의될 수 있음), 변환 블록의 크기, 및 잔차 블록에 대한 변환 블록의 위치를 알고 있어야 한다. 디코더는 그 후 대응하는 역변환 블록을 잔차 블록에 적용하여 추가 디코딩을 위한 잔차 블록 값들을 재구성할 수 있다. 역변환은 변환의 반대 수학 함수이고, 변환에 의해 야기되는 계산을 반전시키기 위해 이용될 수 있다. 그에 따라, 변환은 데이터 값들을 계수들로 변환할 수 있고, 역변환은 계수들에 기초하여 원래의 데이터 값들을 복구한다. 변환/변환 블록은 본 명세서에서, 논의의 명료성을 증가시키기 위해 인코딩할 때의 변환 및 디코딩할 때의 대응하는 역변환을 지칭하기 위해 사용된다는 점에 유의해야 한다.
디코더에서 변환 블록을 배치하는 것을 지원하기 위해 SVT 정보를 시그널링하는 것은 전체 압축/코딩 효율을 감소시킬 수 있다. 본 개시내용은 변환 블록들을 선택할 때 시그널링 오버헤드를 감소시키고, 코딩 효율을 증가시키고, 및/또는 인코더에서 RDO 프로세스의 복잡도를 감소시키는 SVT 개선들을 포함한다. 본 개시내용에서, 인코더는, 도 5 및 도 6에 각각 묘사된 바와 같이, 수직 SVT 또는 수평 SVT를 선택하는 것으로 제한된다. 2개의 옵션만이 이용가능하므로, 시그널링 오버헤드가 감소된다. 예를 들어, 변환 블록 크기 및 형상은, 수직 또는 수평의, 어느 SVT 블록 유형이 이용되는지를 결정함으로써 디코더에서 결정될 수 있다. 수직 SVT 및 수평 SVT는 잔차 블록들의 크기의 1/2를 커버하고, 따라서 다른 SVT 스킴들(잔차 블록들의 크기의 1/4만을 커버함)보다 잔차 블록들의 더 많은 것을 변환한다. 또한, 수직 SVT는 잔차 블록의 높이이고, 수평 SVT는 잔차 블록의 폭이다. 이는 변환 블록의 위치를 대응하는 수직 SVT 후보 위치들 또는 수평 후보 위치들의 작은 그룹으로 제한하고, 그 예들이 각각 도 7 및 도 8에 도시되어 있다. 변환 블록의 위치는 어느 후보 위치가 선택되는지를 인코딩함으로써 시그널링될 수 있다. 구체적으로, 디코더는 SVT 블록 유형, 후보 위치 스텝 크기, 및 위치 인덱스를 결정함으로써 SVT 블록에 대한 선택된 후보 위치를 결정할 수 있다. SVT 블록 유형 및 위치 인덱스는 시그널링될 수 있고, 후보 위치 스텝 크기는, 예에 따라, 사전 정의되거나 시그널링될 수 있다. SVT 블록 유형, 후보 위치 스텝 크기, 및/또는 위치 인덱스는 본 명세서에서 SVT 정보라고 지칭된다.
본 개시내용은 SVT 정보를 시그널링하기 위한 개선된 시그널링 메커니즘들을 또한 포함한다. 일부 예들에서, SVT 정보는 SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 헤더 등과 같은 파라미터들 세트들에서 시그널링된다. 일부 예들에서, SVT 정보의 일부 또는 전부는 시그널링 오버헤드를 감소시키기 위해 잔차 블록 내의 계수들에 의해 시그널링될 수 있다. 예를 들어, 인코더는 전체 이미지 품질에 크게 영향을 미치지 않고 잔차 값들/변환 계수들을 조정할 수 있다. 그에 따라, 인코더는 SVT 정보 또는 그의 부분들을 지시하기 위해 어떤 사전 정의된 위치들에서 잔차 값들/변환 계수들을 조정할 수 있다. 디코더는 그 후 사전 정의된 위치들(들)에서 잔차 값들/변환 계수들의 그룹들을 검토하여 SVT 정보를 결정할 수 있다. 그러한 계수 그룹들의 예가 도 9에 도시되어 있다. 특정한 예로서, 디코더는 합산 또는 모듈로 연산들과 같은 산술 함수들을 사전 정의된 그룹들에 적용하여, 단독으로 또는 파라미터 세트에서의 시그널링과 조합하여, SVT 정보를 결정할 수 있다. 이제부터 전술한 개선들의 세부사항들이 대응하는 도면들에 관하여 아래에 논의된다.
SVT는 일부 예들에서 인터-예측 기반 예측 블록에 관련한 사용을 위해 제한될 수 있다는 점에 유의해야 한다. 다른 예들에서, SVT는 또한 인트라-예측 기반 예측 블록들을 위해 사용될 수 있다. 일부 예들에서, SVT는 특정 인터-예측 메커니즘들(예를 들어, 번역 모델 기반 움직임 보상)을 이용하는 예측 블록들을 위해 이용되지만, 다른 인터-예측 메커니즘들(예를 들어, 어파인 모델 기반 움직임 보상)을 이용하는 예측 블록들을 위해서는 이용되지 않을 수 있다.
도 5는 예시적인 수직 SVT(543)를 예시하는 개략도(500)이다. 수직 SVT(543)는 위치 오프셋(545)에 기초하여 잔차 블록(541) 상에 배치될 수 있는 SVT 블록(예를 들어, 수직 SVT 블록)이다. 예를 들어, 수직 SVT(543)는 방법(100)의 단계 105 및/또는 113에서 이용된 잔차 블록(541)을 변환할 수 있다. 또한, 수직 SVT(543)는 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의해 이용될 수 있다. 수직 SVT(543)는, 예에 따라, 잔차 블록(541)에서의 데이터 값들을 픽셀 도메인으로부터 주파수/변환 도메인으로 또는 그 반대로 각각 변환하기 위한 변환 또는 역변환을 포함하는 블록이다.
잔차 블록(541)은 예측 블록과 하나 이상의 대응하는 참조 블록 사이의 차이를 표현하는 값들의 행렬을 포함한다. 따라서, 잔차 블록(541) 및 대응하는 예측 블록은 디코더에서 이미지 블록을 재구성하기 위해 이용될 수 있다. 인코더에서, 잔차 블록(541)은 초기에 변화하는 값들의 분포들을 포함한다. 예측 블록과 참조 블록(들) 사이의 매칭이 더 가까울수록, 더 적은 수의 비-제로 값들이 잔차 블록(541)에 포함된다. 그에 따라, 상이한 잔차 블록들(541)은 변화하는 위치들에서 변화하는 수의 제로 값들 및 변화하는 수의 비-제로 값들을 포함할 수 있다. 비-제로 값들의 위치가 변화하기 때문에, 수직 SVT(543)는 가능한 최대 수의 비-제로 값들을 커버하고, 따라서 변환하게 하기 위해 여러 후보 위치들 중 하나에 배치될 수 있다.
인코더에서, 대각선 음영을 갖는 박스에 의해 묘사되는 수직 SVT(543)는 잔차 블록(541) 값들의 일부를 변환 계수들로 변환함으로써 잔차 블록(541)을 압축하기 위해 적용될 수 있다. 수직 SVT(543)는 DCT, DST, 또는 다른 변환(예를 들어, 푸리에 관련 변환)과 같은 변환을 포함한다. 변환은 상이한 주파수들 및 진폭들을 갖는 정현파들의 관점에서 표현될 수 있는 함수/신호이다. 인코더에서, 변환은 변환에 의해 커버되는 잔차 블록(541)의 값들을 변환 함수와 수직 SVT(543)에 의해 커버되는 잔차 블록(541) 내의 값들에 의해 생성되는 신호 사이의 차이를 나타내는 변환 계수들로 변환한다. 그에 따라, 인코더는 비트스트림 내의 잔차 블록(541)을 값들 및 변환 계수들의 조합으로서 인코딩할 수 있다. 구체적으로, 변환된 잔차 블록(541)은 변환에 의해 생성되는 계수들을 포함할 수 있고, 변환 블록에 의해 커버되는 잔차 블록(541)의 영역 외부에 배치된 변환되지 않은 값들을 또한 포함할 수 있다. 디코더에서, 잔차 블록(541)은 값들 및 변환 계수들의 조합으로서 수신된다. 디코더에서, 수직 SVT(543)는 인코더에서 이용되는 변환에 대한 역변환을 포함한다. 역변환은 변환 계수들에 적용되어 수치 값들만을 포함하는 잔차 블록(541)을 재구성할 수 있다. 잔차 블록(541)은 그 후, 예측 블록 및 참조 블록(들)과 함께, 비디오 시퀀스에서의 사용을 위한 픽셀 블록을 재구성하기 위해 이용될 수 있다.
수직 SVT(543)는 잔차 블록(541)의 영역의 1/2를 커버한다. 이는 다른 SVT 스킴들(잔차 블록의 영역의 1/4를 커버하는 SVT 블록들을 이용함)에 비해 수직 SVT(543)에 의해 변환될 수 있는 잔차 블록(541) 내의 값들의 수를 증가시킨다. 구체적으로, 잔차 블록(541)은 폭(w)(541a) 및 높이(h)(541b)를 포함한다. 수직 SVT(543)는 변환 폭(w_t)(543a) 및 변환 높이(h_t)(543b)를 포함한다. 수직 SVT(543) 변환 높이(543b)는 잔차 블록(541) 높이(541b)와 동등하다. 수직 SVT(543) 변환 폭(543a)은 잔차 블록(541) 폭(541a)의 1/2이다. 이는 수직 SVT(543)가 잔차 블록(541)에 대해 상이한 후보 위치들로 수평으로 시프트되는 것을 허용하지만, 수직 SVT(543)는 잔차 블록(541)에 대해 수직으로 시프트될 수 없다. 그에 따라, 수직 SVT(543)에 대한 후보 위치들의 수는, 잔차 블록(541) 높이(541b)가 아니라, 잔차 블록(541) 폭(541a)의 함수이다. 이는 다른 SVT 스킴들에 비해 수직 SVT(543)에 대한 가능한 후보 위치들의 수를 감소시킨다.
또한, 수직 SVT(543)는 수직 관점에서 하나의 위치에만 배치될 수 있기 때문에, 수직 SVT(543)를 배치하기 위해 어떤 수직 좌표도 시그널링되지 않는다. 구체적으로, 수직 SVT(543)는 위치 오프셋(545)에 의해 잔차 블록에 대해 배치될 수 있다. 수직 SVT(543)에 대한 위치 오프셋(545)은 수직 SVT(543)의 시작 위치와 잔차 블록(541)의 좌측 사이의 수평 거리를 지시한다.
예를 들어, 수직 SVT(543)에 대한 후보 위치들은 후보 위치 스텝 크기(candidate position step size, CPSS)에 따라 결정될 수 있다. CPSS를 이용할 때, 후보 위치들은 CPSS에 의해 지정된 동등한 공간으로 분리된다(예를 들어, 수직 SVT(543)에 대한 수평 방향으로). 후보 위치들의 수는 일부 예들에서 5 이하로 감소될 수 있다. 이는 위치 정보의 오버헤드 시그널링을 추가로 완화시킨다. 이는 또한 RDO 프로세스에서 최상의 변환 블록 위치를 결정할 때 인코더에서의 결정 복잡도를 감소시킬 수 있다.
후보 위치 스텝 크기는 잔차 블록(541)에 대한 2개의 인접한 후보 위치 사이의 거리를 지시하는 값이다. 후보 위치 스텝 크기는 SVT 블록에 대한 가능한 후보 위치들의 세트를 결정하기 위해 이용될 수 있다. 위치 인덱스는 후보 위치들의 세트로부터 선택된 SVT 위치를 지시하는 데이터 값이다. CPSS는, 아래에서 더 상세히 논의되는 바와 같이 수직 SVT(543)가 이용되는지 또는 수평 SVT가 이용되는지에 따라, 잔차 블록(541)의 폭(541a) 또는 높이(541b)에 기초하여 계산될 수 있다. 예를 들어, 수직 SVT(543)에 대한 CPSS는 아래의 수학식 1에 따라 결정될 수 있다:
CPSS = w/M1, 수학식 1
여기서 w는 폭(541a)이고, M1은 2 내지 8의 범위에 있을 수 있는 사전 정의된 스텝 크기를 표현하는 정수이다. 더 큰 M1 값으로 더 많은 후보 위치들이 허용된다. 예에서, M1은 8로 설정되고, 이는 0 내지 4의 위치 인덱스를 허용한다. 이 예는 도 7에 묘사되어 있다. 다른 예로서, 수직 SVT(543)에 대한 CPSS는 아래의 수학식 2에 따라 결정될 수 있다:
CPSS = max(w/M1, Th1), 수학식 2
여기서 w는 폭(541a)이고, M1은 사전 정의된 스텝 크기를 표현하는 정수이고, Th1은 최대 스텝 크기 임계치를 지시하는 사전 정의된 정수이고, max()는 포함된 값들 사이의 최대값을 선택하는 함수이다. 따라서, 수직 SVT(543)에 대한 CPSS는 임계 최대 수의 스텝 크기들을 갖는 잔차 블록(541) 폭(541a)의 함수일 수 있다. 특정한 예에서, M1은 2 내지 8의 정수(예를 들어, 8, 4, 또는 2)일 수 있다. Th1은 2 이상의 정수일 수 있다. M1 및/또는 Th1은 인코더/디코더에 알려진 고정 값들일 수 있고/있거나, SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 헤더 등과 같은, 비트스트림 내의 하이-레벨 구문 구조로부터 도출될 수 있다.
CPSS를 이용하여, 위치 오프셋(545)은, 예를 들어, 인덱스를 이용하여 결정될 수 있다. 그러한 경우에, 인덱스는 어느 후보 위치가 인코더에 의해 선택되는지를 지시하기 위해 시그널링될 수 있다. 디코더는 그 후 인덱스 및 CPSS를 이용하여 위치 오프셋(545)을 결정하고, 적절한 위치에서 수직 SVT(543)를 잔차 블록(541)에 적용할 수 있다.
본 개시내용은 SVT 정보의 코딩을 위한 개선된 시그널링 메커니즘을 또한 포함한다. SVT 정보는 SVT 유형, 이 경우에 수직 SVT(543) 및 잔차 블록(541)에 대한 변환 블록의 위치를 포함할 수 있다. 일부 예들에서, 그러한 데이터의 일부 또는 전부는 잔차 블록(541)에서의 변환 계수들을 검사함으로써 디코더에서 결정될 수 있다. 예를 들어, 잔차 블록(541)에서의 변환 계수 값의 작은 변화들이 최종 이미지 품질에 크게 영향을 미치지 않을 수 있다. 따라서, 인코더는 잔차 블록(541)에서의 변환 계수 값들을 변경하여 SVT 정보를 시그널링할 수 있다. 디코더는 그 후 잔차 블록(541)에서의 변환 계수 값들을 검사하여 SVT 정보를 결정할 수 있다. 예를 들어, 위치 인덱스 및/또는 CPSS와 같은 수직 SVT(543) 위치 정보는 잔차 블록(541)에서의 변환 계수 레벨들의 합으로부터 도출될 수 있다. 다른 예에서, SVT 유형 정보는 변환 계수들의 제1 그룹(예를 들어, 스캔 순서에서의 처음 16개의 계수)의 합으로부터 도출될 수 있고, 위치 정보는 변환 계수들의 제2 그룹(예를 들어, 잔차 블록(541)에서의 나머지 계수들)의 합으로부터 도출된다. 또 다른 예에서, 후보 위치들의 수는 변환 계수 정보에 따라 결정될 수 있고, 위치 정보는 후보 위치들의 수에 기초하여 디코딩될 수 있다.
도 6은 예시적인 수평 SVT(643)를 예시하는 개략도(600)이다. 수평 SVT(643)는 위치 오프셋(645)에 기초하여 잔차 블록(641) 상에 배치될 수 있는 SVT 블록(예를 들어, 수평 SVT 블록)이다. 예를 들어, 수평 SVT(643)는 방법(100)의 단계 105 및/또는 113에서 이용된 잔차 블록(641)을 변환할 수 있다. 또한, 수평 SVT(643)는 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의해 이용될 수 있다. 수평 SVT(643)는, 예에 따라, 잔차 블록(641)에서의 데이터 값들을 픽셀 도메인으로부터 주파수/변환 도메인으로 또는 그 반대로 각각 변환하기 위한 변환 또는 역변환을 포함하는 블록이다.
대각선 음영을 갖는 박스에 의해 묘사되는 수평 SVT(643)는 수직 SVT(543)와 실질적으로 유사하지만, 상이한 치수들을 포함한다. 예를 들어, 인코더는 비-제로 값의 분포에 따라 잔차 블록(541/641)을 변환하기 위해 수평 SVT(643) 또는 수직 SVT(543)를 선택할 수 있다. 구체적으로, 잔차 블록(641)은 폭(641a) 및 높이(641b)를 포함하고, 그러한 항목들은 각각 잔차 블록(541), 폭(541a) 및 높이(541b)와 실질적으로 유사할 수 있다. 수평 SVT(643)는 또한 잔차 블록(641)의 영역의 1/2를 커버한다. 수평 SVT(643)는 변환 폭(w_t)(643a) 및 변환 높이(h_t)(643b)를 포함한다. 수평 SVT(643) 변환 높이(643b)는 잔차 블록(641) 높이(641b)의 1/2이다. 수평 SVT(643) 변환 폭(643a)은 잔차 블록(641) 폭(641a)과 동등하다. 이는 수직 SVT 수평 SVT(643)가 잔차 블록(641)에 대해 상이한 후보 위치들로 수직으로 시프트되는 것을 허용한다(수직 SVT(543)의 수평 시프팅과 대조적으로). 수평 SVT(643)는 잔차 블록(641)에 대해 수평으로 시프트될 수 없다. 그에 따라, 수평 SVT(643)에 대한 후보 위치들의 수는, 잔차 블록(641) 폭(641a)이 아니라, 잔차 블록(641) 높이(641b)의 함수이다. 이는 다른 SVT 스킴에 비해 수평 SVT(643)에 대한 가능한 후보 위치들의 수를 감소시킨다.
수평 SVT(643)에 대해, 위치 오프셋(645)은 수평 SVT(643)의 시작 위치와 잔차 블록(641)의 상부측 사이의 수직 거리를 지시한다. 수평 SVT(643)가 단일 수평 위치에만 배치될 수 있기 때문에, 위치 오프셋(645)은 잔차 블록(641)에 대해 수평 SVT(643)를 배치하기에 충분한 정보를 포함한다. 수직 SVT(543)와 마찬가지로, 수평 SVT(643)는 CPSS에 기초하여 배치될 수 있다. 그러나, 수평 SVT(643)를 이용할 때, CPSS는 CPSS에 의해 지정된 바와 같이 수직 방향으로 동등한 공간으로 분리되는 후보 위치들을 나타낸다. CPSS의 결정 및 대응하는 시그널링은 수직 SVT(543)에 대한 CPSS 결정/시그널링과 실질적으로 유사할 수 있다. 그러나, 수평 SVT(643)에 대한 CPSS는 잔차 블록(641) 높이(641b)의 함수로서 결정될 수 있다.
예를 들어, 수평 SVT(643)에 대한 CPSS는 아래의 수학식 3에 따라 결정될 수 있다:
CPSS = h/M2, 수학식 3
여기서 h는 높이(541b)이고, M2는 2 내지 8의 범위에 있을 수 있는 사전 정의된 스텝 크기를 표현하는 정수이다. 더 큰 M3 값으로 더 많은 후보 위치들이 허용된다. 예에서, M3은 8로 설정되고, 이는 0 내지 4의 위치 인덱스를 허용한다. 이 예는 도 8에 묘사되어 있다. 다른 예로서, 수평 SVT(643)에 대한 CPSS는 아래의 수학식 4에 따라 결정될 수 있다:
CPSS = max(h/M2, Th2), 수학식 4
여기서 h는 높이(541b)이고, M2는 사전 정의된 스텝 크기를 표현하는 정수이고, Th2는 최대 스텝 크기 임계치를 지시하는 사전 정의된 정수이고, max()는 포함된 값들 사이의 최대값을 선택하는 함수이다. 따라서, 수평 SVT(643)에 대한 CPSS는 임계 최대 수의 스텝 크기들을 갖는 잔차 블록(641) 높이(641b)의 함수일 수 있다. 특정한 예에서, M2는 2 내지 8의 정수(예를 들어, 8, 4, 또는 2)일 수 있다. Th2는 2 이상의 정수일 수 있다. M2 및/또는 Th2는 인코더/디코더에 알려진 고정 값들일 수 있고/있거나, SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 헤더 등과 같은, 비트스트림 내의 하이-레벨 구문 구조로부터 도출될 수 있다. 또한, 수평 SVT(643)에 대한 SVT 정보는 수직 SVT(543)와 유사한 방식으로 변환 계수들에 의해 시그널링될 수 있다.
도 7a 내지 도 7e는 예시적인 수직 SVT 후보 위치들(700)을 예시하는 개략도들이다. 예를 들어, 수직 SVT 후보 위치들(700)은, 수직 SVT(543)를 구현할 수 있는, 수직 SVT(743)에 의해 이용될 수 있다. 따라서, 후보 위치들(700)은 방법(100)의 단계 105 및/또는 113에서 이용될 수 있다. 또한, 후보 위치들(700)은 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의해 이용될 수 있다.
후보 위치들(700)은 수직 SVT(743)가 위치 오프셋(745)의 변화들에 기초하여 잔차 블록(741)에 대해 - 이들은 위치 오프셋(545) 및 잔차 블록(541)과 각각 유사할 수 있음 - 점유할 수 있는 상이한 가능한 위치들을 포함한다. 도시된 예에서, CPSS 계산은 5개의 가능한 후보 위치(700)를 야기한다. 구체적으로, 도 7a는 위치 오프셋(745)이 제로인 제1 후보 위치(예를 들어, 위치 인덱스 1)를 묘사하고; 도 7b는 위치 오프셋(745)이 잔차 블록(741) 폭의 1/8인 제2 후보 위치(예를 들어, 위치 인덱스 2)를 묘사하고; 도 7c는 위치 오프셋(745)이 잔차 블록(741) 폭의 1/4인 제3 후보 위치(예를 들어, 위치 인덱스 3)를 묘사하고; 도 7d는 위치 오프셋(745)이 잔차 블록(741) 폭의 3/8인 제4 후보 위치(예를 들어, 위치 인덱스 4)를 묘사하고; 도 7e는 위치 오프셋(745)이 잔차 블록(741) 폭의 1/2인 제5 후보 위치(예를 들어, 위치 인덱스 5)를 묘사한다. 따라서, 수직 SVT(743)는, 수직 SVT(743)가 이용되는(예를 들어, 수평 SVT 대신에) 것을 결정하는 것, CPSS를 결정하는 것(예를 들어, 이 예에서 5개의 후보 위치(700)를 야기함), 및 후보 위치들(700) 중 어느 것이 이용되는지를 지시하기 위해 위치 인덱스를 결정하는 것에 의해 특정한 잔차 블록(741) 상에 배치될 수 있다. 이용된 SVT 블록의 아이덴티티, CPSS/후보 위치들, 및/또는 위치 인덱스는 SVT 정보로서 인코더와 디코더 사이에 시그널링될 수 있다. SVT 정보는 파라미터 세트에서 시그널링되거나 잔차 블록(741) 계수들에 인코딩될 수 있다. 시그널링 메커니즘들은 아래에 더 상세히 논의된다.
도 8a 내지 도 8e는 예시적인 수평 SVT 후보 위치들(800)을 예시하는 개략도들이다. 예를 들어, 수평 SVT 후보 위치들(800)은, 수평 SVT(643)를 구현할 수 있는, 수평 SVT(843)에 의해 이용될 수 있다. 따라서, 후보 위치들(800)은 방법(100)의 단계 105 및/또는 113에서 이용될 수 있다. 또한, 후보 위치들(800)은 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의해 이용될 수 있다.
후보 위치들(800)은 수평 SVT(843)가 위치 오프셋(845)의 변화들에 기초하여 잔차 블록(841)에 대해 - 이들은 위치 오프셋(645) 및 잔차 블록(641)과 각각 유사할 수 있음 - 점유할 수 있는 상이한 가능한 위치들을 포함한다. 도시된 예에서, CPSS 계산은 5개의 가능한 후보 위치(800)를 야기한다. 구체적으로, 도 8a는 위치 오프셋(845)이 제로인 제1 후보 위치(예를 들어, 위치 인덱스 1)를 묘사하고; 도 8b는 위치 오프셋(845)이 잔차 블록(841) 폭의 1/8인 제2 후보 위치(예를 들어, 위치 인덱스 2)를 묘사하고; 도 8c는 위치 오프셋(845)이 잔차 블록(841) 폭의 1/4인 제3 후보 위치(예를 들어, 위치 인덱스 3)를 묘사하고; 도 8d는 위치 오프셋(845)이 잔차 블록(841) 폭의 3/8인 제4 후보 위치(예를 들어, 위치 인덱스 4)를 묘사하고; 도 8e는 위치 오프셋(845)이 잔차 블록(841) 폭의 1/2인 제5 후보 위치(예를 들어, 위치 인덱스 5)를 묘사한다. 따라서, 수평 SVT(843)는, 수평 SVT(843)가 이용되는(예를 들어, 수직 SVT 대신에) 것을 결정하는 것, CPSS를 결정하는 것(예를 들어, 이 예에서 5개의 후보 위치(800)를 야기함), 및 후보 위치들(800) 중 어느 것이 이용되는지를 지시하기 위해 위치 인덱스를 결정하는 것에 의해 특정한 잔차 블록(841) 상에 배치될 수 있다. 이용된 SVT 블록의 아이덴티티, CPSS/후보 위치들, 및/또는 위치 인덱스는 SVT 정보로서 인코더와 디코더 사이에 시그널링될 수 있다. SVT 정보는 파라미터 세트에서 시그널링되거나 잔차 블록(841) 계수들에 인코딩될 수 있다. 시그널링 메커니즘들은 아래에 더 상세히 논의된다.
도 9는 예시적인 변환 계수 그룹들(900)을 예시하는 개략도이다. 예를 들어, 변환 계수 그룹들(900)은, 수직 SVT(543) 또는 수평 SVT(643)를 각각 구현할 수 있는, 수직 SVT(743) 또는 수평 SVT(843)에 대한 SVT 정보를 시그널링하기 위해 이용될 수 있다. 따라서, 변환 계수 그룹들(900)은 단계 105에 응답하여 생성될 수 있고 방법(100)의 단계 113에서의 사용을 위한 SVT 정보를 시그널링할 수 있다. 또한, 변환 계수 그룹들(900)은 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의한 사용을 위한 SVT 정보를 지시하기 위해 이용될 수 있다.
변환 계수 그룹들(900)은, 예에 따라, 수직 SVT(543), 수직 SVT(743), 수평 SVT(643), 및/또는 수평 SVT(843)와 같은 변환 블록(943)에 의해 변환된 잔차 블록 내의 변환 계수들을 포함한다. 변환 계수 그룹들(900)은 수평 음영을 갖는 박스에 의해 묘사된 제1 변환 계수 그룹(947), 및 수직 음영을 갖는 박스에 의해 묘사된 제2 변환 계수 그룹(949)을 포함한다. 제1 변환 계수 그룹(947)은 제1 변환 그룹 폭(w_t1) 및 제1 변환 그룹 높이(h_t1)를 포함하고, 이들은 사전 정의될 수 있다. 제2 변환 계수 그룹(949)은 제2 변환 그룹 폭(w_t2) 및 제2 변환 그룹 높이(h_t2)를 포함하고, 이들도 사전 정의될 수 있다. 그러한 폭들 및 높이들은 예에 따라 달라질 수 있다. 또한, 일부 예들은 SVT 정보를 시그널링하기 위해 제1 변환 계수 그룹(947)과 제2 변환 계수 그룹(949) 둘 다를 이용하는 반면, 일부 예들은 SVT 정보를 시그널링하기 위해 단일 변환 계수 그룹(947 또는 949)을 이용한다. 일부 코딩 스킴들에서 비디오 프레임들은 Y 성분들로 알려진 루마 성분들, 및 U 성분들 및 V 성분들로 알려진 크로마 성분들로 분할된다는 점에 또한 유의해야 한다. 따라서, Y, U, 및/또는 V 성분들에 대한 별개의 잔차 블록들, 및 따라서 상이한 변환 계수들의 그룹들이 존재할 수 있다.
일 예에서, SVT 정보의 적어도 일부는 Y 성분들만의 변환 블록(943)에서의 변환 계수들의 합을 결정함으로써 결정될 수 있다. 일 예에서, SVT 정보의 적어도 일부는 Y, U, 및 V 성분들의 대응하는 변환 블록들(943)에서의 변환 계수들의 합을 결정함으로써 결정될 수 있다. 다른 예에서, SVT 정보의 적어도 일부는 계수 스캔 순서로(예를 들어, 지그재그 스캔을 이용함) Y 성분들의 변환 블록(943)에서의 처음 N개의 변환 계수의 합을 결정함으로써 결정될 수 있고, 여기서 N은 16 또는 32와 같은 정수일 수 있다.
다른 예에서, SVT 정보의 적어도 일부는 변환 블록(943)의 좌측 상부에서 크기 w_t1×h_t1의 영역을 갖는 제1 변환 계수 그룹(947)에서의 계수들의 합을 결정함으로써 결정될 수 있다. 이 위치는 더 낮은 주파수 변환 계수들에 대응할 수 있다. 일 예에서, w_t1 및 h_t1은 둘 다 4로 설정된다. 다른 예에서, w_t1 및 h_t1은 아래의 수학식 5-6에 따라 설정된다:
w_t1 = max(w/8, 4), 수학식 5
h_t1 = max(h/8, 4), 수학식 6
여기서 w_t1 및 h_t1은 각각 제1 변환 계수 그룹(947)의 폭 및 높이이고, h 및 w는 각각 잔차 블록의 높이 및 폭이고, max()는 포함된 값들 사이의 최대값을 선택하는 함수이다. 예를 들어, 제1 변환 계수 그룹(947)의 짝수 합은 수직 SVT가 이용된다는 것을 지시할 수 있고 제1 변환 계수 그룹(947)의 홀수 합은 수평 SVT가 이용된다는 것을 지시할 수 있고, 그 반대도 가능하다.
다른 예에서, SVT 정보의 적어도 일부는 제2 변환 계수 그룹(949)의 합을 결정함으로써 결정될 수 있다. 예를 들어, 위치 인덱스는 제2 변환 계수 그룹(949)에서의 변환 계수들의 합에 기초하여 도출될 수 있다. 제2 변환 계수 그룹(949)은, 제1 변환 계수 그룹(947)을 포함하지 않는, 잔차 블록(941)의 좌측 상부 코너에서의 크기 w_t2×h_t2의 영역에 있을 수 있다. 일 예에서, w_t2=w_t 및 h_t2=h_t이고, 따라서 제1 변환 계수 그룹(947) 이외의 모든 계수들이 제2 변환 계수 그룹(949)에 속한다. 다른 예에서, w_t2 및 h_t2는 아래의 수학식 7-8에 따라 결정된다:
w_t2 = max(w_t/2, w_t1), 수학식 7
h_t2 = max(h_t/2, h_t1), 수학식 8
여기서, w_t2 및 h_t2는 각각 제2 변환 계수 그룹(949)의 폭 및 높이이고, w_t1 및 h_t1은 각각 제1 변환 계수 그룹(947)의 폭 및 높이이고, w_t 및 h_t는 각각 변환 블록(943)의 폭 및 높이이다.
일 예에서, 제1 변환 계수 그룹(947)은 SVT 위치 인덱스를 결정하기 위해 이용될 수 있다. 다른 예에서, 제1 변환 계수 그룹(947)은 SVT 유형을 결정하기 위해 이용될 수 있고 제2 변환 계수 그룹(949)은 SVT 위치 인덱스를 결정하기 위해 이용될 수 있고, 그 반대도 가능하다. 계수 스캔 순서는 변환 블록(943)의 폭 및 높이에 기초하여 도출될 수 있다. 또한, SVT 위치에 대한 변환 계수들을 파싱할 때, 제1 변환 계수 그룹(947)에 의해 커버되는 위치들에서의 계수들은 스킵될 수 있고, 따라서 제2 변환 계수 그룹(947)에 할당될 수 있다.
예를 들어, SVT 블록에 대한 위치 인덱스는 SVT 블록과 연관된 후보 위치들의 수 및 변환 계수 그룹(947 또는 949)에서의 변환 계수들의 합에 기초하여 결정될 수 있다. 이 예에서, SVT 블록 유형은 파라미터 세트에서 시그널링될 수 있고, 후보 위치들의 수는, 사전 정의되거나 파라미터 세트에서 시그널링될 수 있는, CPSS에 기초하여 결정될 수 있다. 위치 인덱스는 아래의 수학식 9에 따라 결정될 수 있다:
P = St % Nt, 수학식 9
여기서 P는 위치 인덱스이고, St는 변환 계수 그룹(947 또는 949)에서의 변환 계수들의 합이고, Nt는 SVT 블록에 대한 후보 위치들의 수이고, %는 St를 Nt로 나눈 후의 나머지를 반환하는 모듈로 연산을 나타낸다.
특정 예로서, 수학식 1 내지 수학식 4의 파라미터 M1 및 M2는 4로 설정될 수 있고, 이는 수평 SVT 또는 수직 SVT에 대한 3개의 후보 위치를 야기한다. 이는 수평 또는 수직 SVT들에 대해 수학식 9로부터의 Nt를 3으로 설정한다. 위치 인덱스는 그 후 St를 3으로 나눈 것의 나머지로서 계산된다. 다른 예에서, 파라미터 M1 및 M2는 2로 설정되고, 이는 수평 또는 수직 SVT들에 대한 2개의 후보 위치를 야기한다. 이는 수평 또는 수직 SVT들에 대해 수학식 9로부터의 Nt를 2로 설정한다. 위치 인덱스는 그 후 St를 2로 나눈 것의 나머지로서 계산된다.
다른 예에서, 위치 인덱스는 변환 계수 그룹(947 또는 949)으로부터의 변환 계수 합에 의해 부분적으로 결정될 수 있다. 파라미터 M1 및 M2는 8로 설정될 수 있고, 이는 SVT에 대한 5개의 후보 위치를 야기한다. St 모듈로 3이 제로와 동등한 경우, 위치 인덱스는 제로인 것으로 결정되고, St 모듈로 3이 1과 동등한 경우 위치 인덱스는 4인 것으로 결정된다. 그렇지 않으면, 위치 인덱스 값은 1과 3 사이에 있지만, 미정이다. 그 후, 파라미터 세트로부터 3개의 가능한 값을 갖는 구문 요소를 파싱하여 위치 인덱스가 1, 2, 또는 3과 동등한지를 결정한다(예를 들어, 구문 요소 값이 각각 0, 1, 또는 2이면 P는 1, 2, 또는 3으로서 설정된다).
일부 예들에서, 디코더는 조건 검사를 이용하여 SVT 정보 중 임의의 것이 계수 합(들)에 숨겨져 있는지를 결정할 수 있다. 예를 들어, 변환 계수들의 수가 임계치(예를 들어, 4 또는 6)보다 작거나 첫 번째 계수와 마지막 계수 간의 거리가 임계치(예를 들어, 5 또는 6)보다 작을 때, 위치 인덱스는 계수 합에 의존하지 않는다. 이 경우, 위치 인덱스는 명시적으로 시그널링되고, 디코더는 SVT 정보를 위해 변환 계수 그룹(들)(947 또는 949)을 찾지 않는다.
도 10은 SVT 크기 및 위치를 결정하는 예시적인 방법(1000)의 흐름도이다. 예를 들어, 방법(1000)은 변환 계수 그룹들(900)을 이용하여 SVT 정보를 시그널링할 수 있다. 또한, 방법(1000)은 수직 SVT(543 및/또는 743) 또는 수평 SVT(643 및/또는 843)를 이용하여 잔차 블록을 변환할 수 있다. 따라서, 방법(1000)은 방법(100)의 단계 105 및/또는 113의 일부로서 이용될 수 있다. 또한, 방법(1000)은 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의해 이용될 수 있다.
단계 1001에서, 비트스트림은 디코더(400)와 같은 디코더에서 수신된다. 비트스트림은 디코딩을 위한 비디오 데이터의 적어도 하나의 픽처/프레임을 포함한다. 픽처/프레임은 복수의 직사각형 이미지 영역으로 분할된다. 각각의 영역은 CTU에 대응한다. CTU는, 비트스트림에 포함된 블록 파티션 정보에 따라, HEVC에서의 코딩 유닛들과 같은 복수의 블록으로 파티셔닝된다. 코딩 정보에 기초한 블록들의 픽셀들의 재구성을 위해 블록들의 코딩 정보가 비트스트림으로부터 파싱된다. 일 예에서, 블록은 코딩 유닛을 지칭할 수 있고, 여기서 코딩 유닛은 하나의 예측 블록 및 하나의 잔차 블록을 포함할 수 있다. 예측 블록은 코딩 유닛의 예측 샘플들을 포함할 수 있다. 잔차 블록은 코딩 유닛의 잔차 샘플들을 포함할 수 있다. 예측 블록은 잔차 블록과 동일한 크기일 수 있다. 다른 예에서, 코딩 유닛은 2개의 예측 블록 및 하나의 잔차 블록을 포함할 수 있다. 이 경우, 각각의 예측 블록은 코딩 유닛의 예측 샘플들의 일부를 포함할 수 있는 반면, 잔차 블록은 코딩 유닛에 대한 잔차 샘플들을 포함한다. 다른 예에서, 코딩 유닛은 2개의 예측 블록과 4개의 잔차 블록을 포함할 수 있다. HEVC에서의 잔차 쿼드-트리(Residual Quad-Tree, RQT)와 같은, 코딩 유닛에서의 잔차 블록들의 파티션 패턴이 비트스트림에서 시그널링될 수 있다. 블록은 일부 예들에서 이미지 샘플들(또는 픽셀들)의 루마/Y 성분들만을 포함할 수 있다. 다른 예들에서, 블록은 이미지 샘플들/픽셀들의 루마 및 크로마 성분들(Y, U, 및 V 성분들)을 포함할 수 있다. 따라서, 비트스트림은 인코딩된 픽셀 블록들을 표현하는 예측 블록들을 포함한다. 비트스트림은 SVT에 의해 변환된 계수들을 갖는 잔차 블록들을 또한 포함한다.
단계 1003에서, 디코더는, 다른 변환 메커니즘들과는 대조적으로, SVT가 사용되는지를 결정한다. 예를 들어, 디코더는 구문 요소에 따라 SVT의 사용을 결정할 수 있다. SVT를 사용하도록 허용되는 잔차 블록에 대해, 플래그(즉 SVT 플래그(svt_flag))가 비트스트림으로부터 파싱될 수 있다. 플래그는 잔차 블록이 잔차 블록과 동일한 크기의 변환 블록을 이용하여 코딩되는지(예를 들어, svt_flag = 0) 또는 잔차 블록이 잔차 블록보다 작은 크기의 변환 블록으로 코딩되는지(예를 들어, svt_flag = 1)를 지시한다. 이 검사는 잔차 블록이 루마 성분들(또는 일부 예들에서는 크로마 성분들)의 비-제로 변환 계수들을 갖는 경우에 이용된다. 예를 들어, 루마/크로마 성분에 대응하는 코딩된 블록 플래그(cbf)를 이용하여 블록이 대응하는 성분의 비-제로 변환 계수들을 갖는지를 지시할 수 있다. 또한, 루트 코딩된 블록 플래그(root cbf)를 이용하여 블록이 임의의 색 성분의 비-제로 변환 계수들을 갖는지를 지시할 수 있다. 일 예에서, 대응하는 블록이 인터-예측을 이용하여 예측될 때 잔차 블록이 SVT를 사용하도록 허용되고, 블록 폭 또는 블록 높이는 미리 결정된 범위 [a1, a2]에 속하고, 여기서 a1=16 및 a2=64, a1=8 및 a2=64, 또는 a1=16 및 a2=128이다. a1 및 a2의 값은 고정 값들일 수 있다. 이 값은 또한 SPS, PPS, 또는 슬라이스 헤더로부터 도출될 수 있다. 블록이 SVT를 사용하지 않으면, 변환 블록 크기는 잔차 블록과 동일한 크기로 설정된다. 그렇지 않으면, 방법(1000)은 단계 1005로 진행한다.
방법(1000)이 SVT가 이용되는 것으로 결정하면, 단계 1005에서 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT 블록의 유형이 결정된다. 위에 언급된 바와 같이, 사용되는 SVT 블록의 유형을 결정하기 위해 많은 상이한 메커니즘들이 이용될 수 있다. SVT 블록의 유형은 수직 SVT 및 수평 SVT로 구성되는 그룹으로부터 선택된다. 수직 SVT는 잔차 블록의 높이와 동등한 높이 및 잔차 블록의 폭의 1/2과 동등한 폭을 포함한다. 수평 SVT는 잔차 블록의 높이의 1/2과 동등한 높이 및 잔차 블록의 폭과 동등한 폭을 포함한다.
일 예에서, SVT 블록의 유형은 구문 요소(예를 들어, 파라미터 세트 내의 파라미터)에 따라 결정될 수 있다. 그 후 SVT 유형에 따라 변환 블록 크기가 도출될 수 있다. 예를 들어, 잔차 블록에 대한 허용된 SVT 유형들은 잔차 블록의 폭 및 높이에 기초하여 결정될 수 있다. 수직 SVT는 잔차 블록의 폭이 범위 [a1, a2]에 있을 때 허용될 수 있고, 여기서 a1 및 a2는 사전 정의된 정수들이다. 수평 SVT는 잔차 블록 폭이 범위 [a1, a2] ]에 있을 때 허용될 수 있고, 여기서 a1 및 a2는 사전 정의된 정수들이다. 일부 예들에서, SVT는 Y 성분에 대해서만 사용될 수 있다. 다른 예들에서, SVT는 3개의 컴포넌트 모두에 대해 사용될 수 있다. SVT가 Y 성분에 대해서만 사용될 때, Y 성분 잔차 블록은 SVT에 의해 변환되고 U 및 V 성분 잔차 블록들은 대응하는 잔차 블록들의 크기에 따라 변환된다. 수직 SVT 및 수평 SVT 둘 다가 허용되는 경우, SVT 유형 플래그(svt_type_flag)가 비트스트림으로부터 파싱될 수 있다. SVT 유형 플래그는 잔차 블록에 대해 수직 SVT가 사용되는지(예를 들어, svt_type_flag = 0) 또는 수평 SVT가 사용되는지(예를 들어, svt_type_flag = 1)를 지시할 수 있다. 그 후 시그널링된 SVT 유형에 따라 변환 블록 크기가 설정된다. 예를 들어, 수직 SVT에 대해 변환 폭은 잔차 블록 폭의 1/2로 설정되고 변환 높이는 잔차 블록 높이로 설정되고, 수평 SVT에 대해 변환 폭은 잔차 블록 폭으로 설정되고 변환 높이는 잔차 블록 높이의 1/2로 설정된다. 수직 SVT만이 허용되거나 수평 SVT만이 허용되는 경우, svt_type_flag는 비트스트림으로부터 파싱되지 않을 수 있고, 변환 블록 크기는 허용된 SVT 유형에 따라 설정된다.
다른 예에서, SVT 블록의 유형은 도 9에 관하여 논의된 바와 같은 계수들의 제1 그룹에 기초하여 결정될 수 있다. 예를 들어, SVT 블록의 유형은 (Y 성분들, 또는 Y, U, 및 V 성분들에 대한) 잔차 블록 내의 계수들에 산술 연산을 적용함으로써 결정될 수 있다. 그러한 산술 연산은 합 연산, 모듈로 연산, 나눗셈 연산, 또는 이들의 조합들을 포함할 수 있다. 산술 연산은 일부 예들에서 잔차 블록 내의 계수들 모두에 적용될 수 있다. 다른 예들에서, 산술 연산은 잔차 블록 내의 처음 X개의 계수에 적용될 수 있고, 여기서 X는 사전 정의된 정수이다. 또 다른 예들에서, 산술 연산은 잔차 블록의 사전 정의된 영역 내의(예를 들어, 잔차 블록의 좌측 상부 코너에서의) 계수들에 적용될 수 있다. 이용되는 메커니즘에 관계없이, 방법(1000)은 SVT 블록 유형 및 대응하는 크기를 결정하면 단계 1007로 진행한다.
SVT 블록의 유형이 결정되면, 단계 1007에서 잔차 블록에 대한 SVT 블록의 위치가 결정된다. SVT 블록의 위치는 SVT 블록에 대한 위치 인덱스 및 후보 위치 스텝 크기/후보 위치들의 수를 결정함으로써 결정될 수 있다. 이는 여러 메커니즘들에 의해 달성될 수 있다.
일 예에서, 비트스트림으로부터 위치 인덱스(P)가 파싱된다. 위치 인덱스 P는 절단된 단항 코드(truncated unary code)를 이용하여 하나 이상의 빈으로 이진화될 수 있다. 예를 들어, P 값이 0 내지 4의 범위에 있을 때, P 값 0, 4, 2, 3 및 1은 각각 0, 01, 001, 0001 및 0000으로서 이진화된다. P 값이 0 내지 1의 범위에 있을 때, P 값 0 및 1은 각각 0 및 1로서 이진화된다. 잔차 블록의 좌측 상부 코너에 대한 변환 블록의 좌측 상부 코너의 위치 오프셋(Z)은 아래의 수학식 10에 따라 결정될 수 있다:
Z = s × P, 수학식 10,
여기서 s는 CPSS이고, P는 위치 인덱스이고, Z는 위치 오프셋이다. P의 값은 수직 SVT에 대해 0, 1, ...,
Figure pct00001
의 범위 내의 값일 수 있다. P의 값은 수평 SVT에 대해 0, 1, ...,
Figure pct00002
의 범위 내의 값일 수 있다. 구체적으로, (0, 0)이 잔차 블록의 좌측 상부 코너의 좌표를 표현할 때, 변환 블록의 좌측 상부 코너의 좌표는 수직 SVT에 대해 (Z, 0) 또는 수평 SVT에 대해 (0, Z)이다.
CPSS는 위의 수학식 1 내지 4 중 임의의 것에 따라 계산될 수 있다. 예를 들어, 그러한 수학식들에서 Th1 및 Th2는 4로 설정되고, M1 및 M2는 8로 설정될 수 있고, 이는 SVT 유형 및 잔차 블록 폭 및 높이에 따라, 후보 위치들(700 및 800)을 야기한다. 따라서, 상이한 잔차 블록 크기들은 상이한 후보 위치들의 수를 가질 수 있다. 예를 들어, 수직 SVT에 대해 잔차 블록 폭이 8일 때, 수직 SVT에 대한 2개의 후보 위치(700)가 이용가능하다(예를 들어, 도 7a 및 도 7e에 도시된 바와 같이). 또한, 수직 SVT에 대해 잔차 블록 폭이 16일 때, 3개의 후보 위치(700)가 이용가능하다(예를 들어, 도 7a, 도 7c, 및 도 7e에 도시된 바와 같이). 또한, 수직 SVT에 대해 잔차 블록 폭이 16보다 클 때 5개의 후보 위치(700)가 이용가능하다. 잔차 블록 높이를 변화시킬 때 수평 SVT에 동일한 접근법이 적용된다.
이 메커니즘의 추가의 특정한 예로서, 수학식 1 및 3이 이용될 수 있고, 여기서 M1 및 M2는 4로 설정되고, 이는 3개의 허용가능한 후보 위치를 야기한다. 따라서, 후보 위치 스텝 크기가 수직 SVT 유형에 대해 잔차 블록의 폭을 미리 결정된 정수 M1로 나누는 것에 의해 결정되거나 또는 수평 SVT 유형에 대해 잔차 블록의 높이를 미리 결정된 정수 M2로 나누는 것에 의해 결정될 수 있다. 특정한 예로서, M1 및 M2는 2로 설정될 수 있고, 이는 2개의 허용가능한 후보 위치를 야기한다.
다른 예에서, 수학식 2 및 4가 이용될 수 있다. 따라서, 후보 위치 스텝 크기가 수직 SVT에 대해 최소 스텝 크기 Th1과 잔차 블록의 폭을 M1로 나눈 결과 사이의 최대값을 선택함으로써 결정될 수 있다. 또한, 후보 위치 스텝 크기가 수평 SVT에 대해 최소 스텝 크기 Th2와 잔차 블록의 높이를 M2로 나눈 결과 사이의 최대값을 선택함으로써 결정될 수 있다. 일부 경우들에서, 미리 결정된 정수들 M1 및/또는 M2는 잔차 블록의 폭 및/또는 높이에 기초하여 설정될 수 있다. 특정한 예로서, Th1 및 Th2는 2로 설정될 수 있고 M1은 잔차 블록 폭이 잔차 블록 높이보다 크거나 그와 동등한 경우 8로 설정되거나 또는 잔차 블록 폭이 잔차 블록 높이보다 작은 경우 4로 설정될 수 있다. 또한, M2는 잔차 블록 높이가 잔차 블록 폭보다 크거나 그와 동등한 경우 8로 설정되거나 또는 잔차 블록 높이가 잔차 블록 폭보다 작은 경우 4로 설정될 수 있다. 이 경우, 수직 SVT 또는 수평 SVT에 대한 후보 위치들의 수는 잔차 블록의 종횡비에 추가로 의존할 수 있다. 다른 예에서, CPSS는 수학식 2 및 4에 따라 계산되고, 여기서 M1, M2, Th1 및 Th2의 값들은 SPS, PPS, 슬라이스 헤더 등과 같은, 비트스트림 내의 하이-레벨 구문 구조로부터 도출된다. M1 및 M2는 구문 요소로부터 파싱된 동일한 값을 공유할 수 있고, Th1 및 Th2는 다른 구문 요소로부터 파싱된 동일한 값을 공유할 수 있다. 따라서, CPSS는 사전 정의되거나 비트스트림을 통해 시그널링될 수 있다. 그 후 후보 위치 스텝 크기와 위치 인덱스를 곱함으로써 SVT 블록의 위치가 결정된다. 위치 인덱스가 구문 파라미터들에 의해 시그널링될 때, 가장 큰 가능한 값이 후보 위치들의 수 마이너스 1인 후보 위치들의 수에 기초한 절단된 단항 코드를 이용하여 위치 인덱스를 디코딩할 수 있다는 점에 또한 유의해야 한다.
다른 예에서, SVT의 위치 인덱스는 변환 계수의 분포에 기초하여 도출된다. 예를 들어, 위치 인덱스는 잔차 블록 내의 계수들에 대해 산술 연산을 적용함으로써 결정될 수 있다. 그러한 산술 연산은 합 연산, 모듈로 연산, 나눗셈 연산, 또는 이들의 조합들을 포함할 수 있다. 예를 들어, 위치 인덱스는 도 9에 관하여 논의된 바와 같이 변환 그룹들(900) 중 하나와 같은 변환 계수 그룹에 연산을 적용함으로써 결정될 수 있다. 위치 인덱스는 잔차 블록 내의 모든 계수들, 제1 변환 그룹 내의 계수들, 및/또는 제2 변환 그룹 내의 계수들을 고려함으로써 결정될 수 있고, 제1 변환 그룹은 SVT 유형을 지시한다. 다른 예에서, SVT를 사용하는 잔차 블록에 대한 후보 위치들의 수가 변환 계수의 분포에 기초하여 도출된다(예를 들어, 위의 위치 인덱스를 결정하는 것에 관하여 논의된 바와 같이 계수 그룹에 산술 연산을 적용함으로써).
위에 언급된 메커니즘들의 다양한 조합들이 또한 이용될 수 있다. 예를 들어, 계수들의 수가 임계치보다 작거나 그와 동등할 때 위치 인덱스가 비트스트림으로부터 획득될 수 있고, 계수들의 수가 임계치보다 클 때 계수들에 산술 연산을 적용함으로써 위치 인덱스가 결정될 수 있다. 다른 예로서, 후보 위치 스텝 크기가 비-제로 계수들의 수 또는 위치에 기초하여 결정된다. 예를 들어, 후보 위치들의 수를 결정하기 위해 비-제로 변환 계수들의 수(Nnz)가 사용될 수 있다. Nnz가 임계치(예를 들어, 4, 5, 또는 8)보다 작으면, 후보 위치 스텝 크기는 수직 SVT에 대해 잔차 블록 폭을 4로 나눈 것 및 수평 SVT에 대해 잔차 블록 높이를 4로 나눈 것으로서 설정될 수 있고, 이는 3개의 후보 위치를 야기할 수 있다. 그렇지 않으면, 후보 위치 스텝 크기는 수직 SVT에 대해 잔차 블록 폭을 8로 나눈 것 및 수평 SVT에 대해 잔차 블록 높이를 8로 나눈 것으로서 설정될 수 있고, 이는 5개의 후보 위치를 야기할 수 있다. 다른 예에서, 마지막 비-제로 변환 계수가 변환 블록 내의 좌측 상부 4×4 영역 내부에 있다면, 후보 위치 스텝 크기는 수직 SVT에 대해 잔차 블록 폭을 4로 나눈 것 및 수평 SVT에 대해 잔차 블록 높이를 4로 나눈 것으로서 설정될 수 있다. 이는 3개의 후보 위치를 야기한다. 그렇지 않으면, 후보 위치 스텝 크기는 수직 SVT에 대해 잔차 블록 폭을 8로 나눈 것 및 수평 SVT에 대해 잔차 블록 높이를 8로 나눈 것으로서 설정될 수 있다. 이는 5개의 후보 위치를 야기한다.
SVT 유형 및 위치를 결정하기 위해 이용되는 메커니즘에 관계없이, 방법(1000)은 단계 1009로 진행한다. 단계 1009에서, 예를 들어 SVT 블록 유형에 기초하여, 잔차 블록으로부터의 계수들이 파싱된다. 파싱 프로세스는, MPEG-4 Part 10, Advanced Video Coding(MPEG-4 AVC)로도 알려져 있는, HEVC 또는 표준 H.264에 기술된 바와 같은 변환 계수들 파싱을 이용할 수 있다. 변환 계수들은 런-길이 코딩을 이용하여 코딩될 수 있다. 변환 계수들은 또한 변환 그룹들의 세트로서 코딩될 수 있다. 단계 1009의 파싱은 잔차 블록으로부터의 계수들 및 다른 데이터(뿐만 아니라 예측 블록으로부터의 데이터, 및/또는 다른 관련 데이터)를 판독하고 그러한 데이터를 추가 처리를 위해 메모리에 저장하는 것을 포함한다. 단계 1009의 파싱은, 예에 따라, 단계 1003, 1005, 및/또는 1007 이전에 발생할 수 있다는 점에 유의해야 한다.
단계 1011에서, SVT 블록 유형 및 위치에 기초하여 계수들에 역변환을 적용하여 재구성된 잔차 블록을 생성한다. 역변환은 디코더가 알 수 있고/있거나 비트스트림에서 시그널링될 수 있다. SVT 블록 유형 및 위치는 잔차 블록 내의 정보에 대해 변환을 배치하기에 충분한 정보를 제공한다. 예를 들어, 크기 w_t×h_t의 역양자화 및 역변환을 변환 계수들에 적용하여 잔차 샘플들을 복구한다. 복구된 잔차 샘플들(예를 들어, 인코더에 의해 SVT의 외부에 배치되는 잔차 샘플들을 포함하지 않음)의 크기는 변환 블록 크기와 동일한 크기인 w_t×h_t일 수 있다. 역변환은 역 DCT(Discrete Cosine Transform) 또는 역 DST(Discrete Sine Transform)일 수 있다. 잔차 샘플들은 변환 블록 위치에 따라 잔차 블록 내부의 대응하는 영역에 할당된다. 일부 예들에서, 잔차 블록 내부의 나머지 샘플들은 제로로 설정될 수 있다. 예를 들어, 수직 SVT가 사용되고, 후보 위치들의 수가 5 이고, 위치 인덱스가 4인 경우, 재구성된 잔차 샘플들은 도 7e에서 음영 영역에 할당될 수 있고 음영 영역 외부의 크기 (w/2)×h의 영역은 일부 경우들에서 어떤 잔차 정보도 포함하지 않을 수 있다.
단계 1013에서, 재구성된 잔차 블록을 예측 블록과 함께 구성하여 코딩 유닛에서 재구성된 샘플들을 생성할 수 있다. 재구성된 샘플들에, 디블로킹 필터 및/또는 SAO 필터와 같은, 필터링 프로세스가 또한 적용될 수 있다. 따라서, 재구성된 잔차 블록을 예측 블록에 적용하여 비디오 블록을 재구성한다. 재구성된 비디오 블록을 다른 재구성된 비디오 블록들과 함께 배치하여 프레임/픽처를 생성한다. 프레임들/픽처들을 시퀀스로 배치하여 디스플레이를 위한 비디오 시퀀스를 재구성한다. 따라서, 비디오 시퀀스는 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함한다.
전술한 메커니즘들의 결과로서, SVT 블록들에 대한 후보 위치들은 잔차 블록의 폭 및 높이에 관련된 스텝 크기에 의해 결정될 수 있다. 후보 위치들은 일부 예들에서 5개 이하의 위치로 제한될 수 있고, 이는 다른 SVT 스킴들과 비교하여 변환 블록 정보를 감소시킨다. 이는 시그널링 오버헤드와 잔차 코딩 효율 간의 더 양호한 균형을 달성한다. 또한, SVT 정보는 다른 SVT 메커니즘들과는 상이하게 코딩된다. 예를 들어, SVT 코딩 정보는 SVT 사용 정보, SVT 유형 정보, 및 SVT가 사용되는지를 지시하는, SVT 위치 정보, 사용되는 SVT의 유형, 및 SVT 블록의 위치로서 각각 조직된다. 또한, SVT 위치 정보는 잔차 블록의 복수의 변환 계수의 합에 기초하여 도출될 수 있다. 또한, SVT 유형 정보는 잔차 블록의 복수의 변환 계수의 합에 기초하여 도출될 수 있다.
도 11은 본 개시내용의 실시예에 따른 예시적인 비디오 코딩 디바이스(1100)의 개략도이다. 비디오 코딩 디바이스(1100)는 본 명세서에서 설명된 바와 같은 개시된 예들/실시예들을 구현하기에 적합하다. 비디오 코딩 디바이스(1100)는 다운스트림 포트들(1120), 업스트림 포트들(1150), 및/또는 네트워크를 통해 업스트림 및/또는 다운스트림으로 데이터를 통신하기 위한 송신기들 및/또는 수신기들을 포함하는 트랜시버 유닛들(Tx/Rx)(1110)을 포함한다. 비디오 코딩 디바이스(1100)는 데이터를 처리하기 위한 로직 유닛 및/또는 중앙 처리 유닛(CPU)을 포함하는 프로세서(1130) 및 데이터를 저장하기 위한 메모리(1132)를 또한 포함한다. 비디오 코딩 디바이스(1100)는 광학 또는 무선 통신 네트워크들을 통한 데이터의 통신을 위해 업스트림 포트들(1150) 및/또는 다운스트림 포트들(1120)에 결합되는 OE(optical-to-electrical) 컴포넌트들, EO(electrical-to-optical) 컴포넌트들, 및/또는 무선 통신 컴포넌트들을 또한 포함할 수 있다. 비디오 코딩 디바이스(1100)는 사용자에게 그리고 사용자로부터 데이터를 통신하기 위한 입력 및/또는 출력(I/O) 디바이스들(1160)을 또한 포함할 수 있다. I/O 디바이스들(1160)은 비디오 데이터를 디스플레이하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커들 등과 같은 출력 디바이스들을 포함할 수 있다. I/O 디바이스들(1160)은 키보드, 마우스, 트랙볼 등과 같은 입력 디바이스들 및/또는 그러한 출력 디바이스들과 상호작용하기 위한 대응하는 인터페이스들을 또한 포함할 수 있다.
프로세서(1130)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(1130)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티 코어 프로세서), 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 및 디지털 신호 프로세서(DSP)로서 구현될 수 있다. 프로세서(1130)는 다운스트림 포트들(1120), Tx/Rx(1110), 업스트림 포트들(1150), 및 메모리(1132)와 통신한다. 프로세서(1130)는 코딩 모듈(1114)을 포함한다. 코딩 모듈(1114)은, 도면(600)의 수직 SVT 후보 위치들에서의 수직 SVT(543), 수평 SVT 후보 위치들(700)에서의 수평 SVT(643)와 같은 개선된 SVT들, 변환 계수 그룹들(900)을 이용하는 방법들(100 및/또는 1000)뿐만 아니라 본 명세서에서 설명된 임의의 다른 방법/메커니즘과 같은, 위에 설명된 개시된 실시예들을 구현한다. 또한, 코딩 모듈(1114)은 코덱 시스템(200), 인코더(300), 및/또는 디코더(400)를 구현할 수 있다. 따라서, 코딩 모듈(1114)은 SVT 블록에 대한 SVT 유형, 후보 위치 스텝 크기, 및 위치 인덱스를 결정 및/또는 시그널링하기 위해 이용될 수 있다. 그러한 정보는 잔차 블록 내의 하나 이상의 변환 계수 그룹에 대해 연산들을 수행함으로써 그리고/또는 파라미터 세트에서 결정/시그널링될 수 있다. 코딩 모듈(1114)은 그 후 SVT 유형, 후보 위치 스텝 크기, 및 위치 인덱스 위치를 이용하여 잔차 블록 상에 SVT 블록을 배치하고, 역변환을 적용하고, 재구성된 잔차 블록을 생성하고, 잔차 블록과 예측 블록으로부터 픽셀 블록을 재구성하고, 재구성된 픽셀 블록에 기초하여 디스플레이를 위한 프레임을 생성할 수 있다. 따라서 코딩 모듈(1114)의 포함은 SVT 블록에 대한 후보 위치들의 수를 감소시키고 따라서 SVT와 연관된 대응하는 시그널링 오버헤드 및 RDO 계산 복잡도를 감소시킴으로써 비디오 코딩 디바이스(1100)의 기능에 대한 상당한 개선을 제공한다. 또한, 코딩 모듈(1114)은 상이한 상태로의 비디오 코딩 디바이스(1100)의 변환을 달성한다. 대안적으로, 코딩 모듈(1114)은 메모리(1132)에 저장되고 프로세서(1130)에 의해 실행되는 명령어들로서 구현될 수 있다(예를 들어, 비일시적 매체 상에 저장된 컴퓨터 프로그램 제품으로서).
메모리(1132)는 디스크들, 테이프 드라이브들, 솔리드-스테이트 드라이브들, ROM(read only memory), RAM(random access memory), 플래시 메모리, TCAM(ternary content-addressable memory), SRAM(static random-access memory) 등과 같은 하나 이상의 메모리 유형을 포함한다. 메모리(1132)는 오버-플로우 데이터 저장 디바이스로서, 그러한 프로그램들이 실행을 위해 선택될 때 프로그램들을 저장하고, 프로그램 실행 동안 판독되는 명령어들 및 데이터를 저장하기 위해 사용될 수 있다.
도 12는 SVT 크기 및 위치를 결정하기 위한 디바이스(1200)의 일 실시예이다. 예를 들어, 디바이스(1200)는 방법(1000)을 수행하기 위해 이용될 수 있고, 따라서 변환 계수 그룹들(900)을 이용하여 SVT 정보를 시그널링할 수 있다. 또한, 디바이스(1200)는 수직 SVT(543 및/또는 743) 또는 수평 SVT(643 및/또는 843)를 이용하여 잔차 블록을 변환할 수 있다. 따라서, 디바이스(1200)는 방법(100)의 단계 105 및/또는 113의 부분들을 수행하기 위해 이용될 수 있다. 또한, 디바이스(1200)는 변환 스케일링 및 양자화 컴포넌트(213), 스케일링 및 역변환 컴포넌트(229), 변환 및 양자화 컴포넌트(313), 역변환 및 양자화 컴포넌트(329), 및/또는 역변환 및 양자화 컴포넌트(429)에 의해 이용될 수 있다.
디바이스(1200)는 SVT에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하도록 구성된 수신기(1201)를 포함한다. 디바이스(1200)는 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT 블록의 유형을 결정하도록 구성된 유형 결정 모듈(1203)을 추가로 포함한다. 디바이스(1200)는 SVT 블록에 대한 위치 인덱스 및 후보 위치 스텝 크기를 결정함으로써 잔차 블록에 대한 SVT 블록의 위치를 결정하도록 구성된 위치 결정 모듈(1205)을 추가로 포함한다. 디바이스(1200)는 재구성된 잔차 블록을 생성하기 위해 SVT 블록 유형 및 위치에 기초하여 계수들에 역변환을 적용하도록 구성된 역변환 적용 모듈(1207)을 추가로 포함한다. 디바이스(1200)는 비디오 블록을 재구성하기 위해 예측 블록에 재구성된 잔차 블록을 적용하도록 구성된 잔차 적용 모듈(1207)을 추가로 포함한다. 디바이스(1200)는 디스플레이를 위한 비디오 시퀀스를 재구성하도록 구성된 재구성 모듈(1211)을 추가로 포함하고, 비디오 시퀀스는 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함한다.
제1 컴포넌트와 제2 컴포넌트 사이에 라인, 트레이스, 또는 다른 매체를 제외하고는 개재하는 컴포넌트들이 없을 때 제1 컴포넌트는 제2 컴포넌트에 직접 결합된다. 제1 컴포넌트와 제2 컴포넌트 사이에 라인, 트레이스, 또는 다른 매체 이외의 개재하는 컴포넌트들이 있을 때 제1 컴포넌트는 제2 컴포넌트에 간접적으로 결합된다. 용어 "결합된" 및 그의 변형들은 직접 결합되고 간접적으로 결합되는 것 둘 다를 포함한다. 용어 "약"의 사용은 달리 언급되지 않는 한 후속하는 수의 ±10%를 포함하는 범위를 의미한다.
본 개시내용에서는 여러 실시예들이 제공되었지만, 개시된 시스템들 및 방법들은 본 개시내용의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형식들로 구현될 수 있다는 것을 이해할 수 있다. 본 예들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 하고, 의도는 본 명세서에서 주어진 세부사항들로 제한되지 않는 것이다. 예를 들어, 다양한 요소들 또는 컴포넌트들이 다른 시스템에서 조합 또는 통합될 수 있거나 특정 특징들이 생략될 수 있거나, 또는 구현되지 않을 수 있다.
또한, 다양한 실시예들에서 개별 또는 별개로서 설명되고 예시된 기법들, 시스템들, 서브시스템들, 및 방법들은 본 개시내용의 범위를 벗어나지 않고 다른 시스템들, 컴포넌트들, 기법들, 또는 방법들과 조합 또는 통합될 수 있다. 변화들, 치환들 및 변경들의 다른 예들은 본 기술분야의 통상의 기술자에 의해 확인될 수 있고 본 명세서에서 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (28)

  1. 방법으로서,
    공간 변화 변환(Spatial Varying Transform, SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하는 단계;
    상기 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT 블록의 유형을 결정하는 단계;
    상기 SVT 블록에 대한 위치 인덱스 및 후보 위치 스텝 크기를 결정함으로써 상기 잔차 블록에 대한 상기 SVT 블록의 위치를 결정하는 단계;
    상기 SVT 블록 유형 및 위치에 기초하여 상기 계수들에 역변환을 적용하여 재구성된 잔차 블록을 생성하는 단계;
    상기 재구성된 잔차 블록을 상기 예측 블록에 적용하여 비디오 블록을 재구성하는 단계; 및
    디스플레이를 위한 비디오 시퀀스를 재구성하는 단계를 포함하고, 상기 비디오 시퀀스는 상기 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함하는, 방법.
  2. 제1항에 있어서,
    SVT 블록의 유형이 수직 SVT 및 수평 SVT로 구성되는 그룹으로부터 선택되고, 상기 수직 SVT가 상기 잔차 블록의 높이와 동등한 높이를 포함하고 상기 잔차 블록의 폭의 1/2과 동등한 폭을 포함하고, 상기 수평 SVT가 상기 잔차 블록의 높이의 1/2과 동등한 높이를 포함하고 상기 잔차 블록의 폭과 동등한 폭을 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 후보 위치 스텝 크기와 위치 인덱스를 곱함으로써 상기 SVT 블록의 위치가 결정되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 후보 위치 스텝 크기가 수직 SVT 유형에 대해 상기 잔차 블록의 폭을 미리 결정된 정수(M1)로 나누는 것에 의해 결정되거나 또는 수평 SVT 유형에 대해 상기 잔차 블록의 높이를 미리 결정된 정수(M2)로 나누는 것에 의해 결정되는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 후보 위치 스텝 크기가 수직 SVT에 대해 최소 스텝 크기(Th1)와 상기 잔차 블록의 폭을 M1로 나눈 결과 사이의 최대값을 선택함으로써 결정되고, 상기 후보 위치 스텝 크기가 수평 SVT에 대해 최소 스텝 크기(Th2)와 상기 잔차 블록의 높이를 M2로 나눈 결과 사이의 최대값을 선택함으로써 결정되는, 방법.
  6. 제5항에 있어서,
    M1은 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 작을 경우 4로 설정되고, M2는 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 작을 경우 4로 설정되는, 방법.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서,
    M1, M2, Th1, Th2, 또는 이들의 조합들이 상기 비트스트림 내의 구문 요소로부터 획득되는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 비트스트림으로부터 상기 위치 인덱스를 획득하는 단계를 추가로 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 잔차 블록 내의 계수들에 대해 산술 연산을 적용함으로써 상기 위치 인덱스를 결정하는 단계를 추가로 포함하는, 방법.
  10. 제9항에 있어서,
    상기 산술 연산은 합 연산, 모듈로 연산, 나눗셈 연산, 또는 이들의 조합들을 포함하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    계수들의 수가 임계치보다 작거나 그와 동등할 경우 상기 비트스트림으로부터 상기 위치 인덱스가 획득되고, 상기 계수들의 수가 상기 임계치보다 클 경우 상기 계수들에 산술 연산을 적용함으로써 상기 위치 인덱스가 결정되는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 SVT 블록의 유형이 계수들의 제1 그룹에 기초하여 결정되고, 상기 위치 인덱스가 계수들의 제2 그룹에 기초하여 결정되는, 방법.
  13. 제1항 내지 제3항 및 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 후보 위치 스텝 크기 또는 대응하는 후보 위치들의 수가 비-제로 계수들의 수 또는 위치에 기초하여 결정되는, 방법.
  14. 비디오 코딩 디바이스로서,
    공간 변화 변환(SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하도록 구성된 수신기; 및
    상기 수신기에 결합된 프로세서를 포함하고, 상기 프로세서는:
    상기 잔차 블록 내의 계수들을 변환하기 위해 이용되는 SVT 블록의 유형을 결정하고;
    상기 SVT 블록에 대한 위치 인덱스 및 후보 위치 스텝 크기를 결정함으로써 상기 잔차 블록에 대한 상기 SVT 블록의 위치를 결정하고;
    상기 SVT 블록 유형 및 위치에 기초하여 상기 계수들에 역변환을 적용하여 재구성된 잔차 블록을 생성하고;
    상기 재구성된 잔차 블록을 상기 예측 블록에 적용하여 비디오 블록을 재구성하고;
    디스플레이를 위한 비디오 시퀀스를 재구성하도록 구성되고, 상기 비디오 시퀀스는 상기 재구성된 비디오 블록을 포함하는 비디오 프레임을 포함하는, 비디오 코딩 디바이스.
  15. 제14항에 있어서,
    SVT 블록의 유형이 수직 SVT 및 수평 SVT로 구성되는 그룹으로부터 선택되고, 상기 수직 SVT가 상기 잔차 블록의 높이와 동등한 높이를 포함하고 상기 잔차 블록의 폭의 1/2과 동등한 폭을 포함하고, 상기 수평 SVT가 상기 잔차 블록의 높이의 1/2과 동등한 높이를 포함하고 상기 잔차 블록의 폭과 동등한 폭을 포함하는, 비디오 코딩 디바이스.
  16. 제14항 또는 제15항에 있어서,
    상기 후보 위치 스텝 크기와 위치 인덱스를 곱함으로써 상기 SVT 블록의 위치가 결정되는, 비디오 코딩 디바이스.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서,
    상기 후보 위치 스텝 크기가 수직 SVT 유형에 대해 상기 잔차 블록의 폭을 미리 결정된 정수(M1)로 나누는 것에 의해 결정되거나 또는 수평 SVT 유형에 대해 상기 잔차 블록의 높이를 미리 결정된 정수(M2)로 나누는 것에 의해 결정되는, 비디오 코딩 디바이스.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서,
    상기 후보 위치 스텝 크기가 수직 SVT에 대해 최소 스텝 크기(Th1)와 상기 잔차 블록의 폭을 M1로 나눈 결과 사이의 최대값을 선택함으로써 결정되고, 상기 후보 위치 스텝 크기가 수평 SVT에 대해 최소 스텝 크기(Th2)와 상기 잔차 블록의 높이를 M2로 나눈 결과 사이의 최대값을 선택함으로써 결정되는, 비디오 코딩 디바이스.
  19. 제18항에 있어서,
    M1은 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 폭이 상기 잔차 블록의 높이보다 작을 경우 4로 설정되고, M2는 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 크거나 그와 동등할 경우 8로 설정되고 상기 잔차 블록의 높이가 상기 잔차 블록의 폭보다 작을 경우 4로 설정되는, 비디오 코딩 디바이스.
  20. 제17항 또는 제18항에 있어서,
    M1, M2, Th1, Th2, 또는 이들의 조합들이 상기 비트스트림 내의 구문 요소로부터 획득되는, 비디오 코딩 디바이스.
  21. 제14항 내지 제20항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 비트스트림으로부터 상기 위치 인덱스를 획득하도록 추가로 구성되는, 비디오 코딩 디바이스.
  22. 제14항 내지 제21항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 잔차 블록 내의 계수들에 대해 산술 연산을 적용함으로써 상기 위치 인덱스를 결정하도록 추가로 구성되는, 비디오 코딩 디바이스.
  23. 제22항에 있어서,
    상기 산술 연산은 합 연산, 모듈로 연산, 나눗셈 연산, 또는 이들의 조합들을 포함하는, 비디오 코딩 디바이스.
  24. 제14항 내지 제23항 중 어느 한 항에 있어서,
    계수들의 수가 임계치보다 작거나 그와 동등할 경우 상기 비트스트림으로부터 상기 위치 인덱스가 획득되고, 상기 계수들의 수가 상기 임계치보다 클 경우 상기 계수들에 산술 연산을 적용함으로써 상기 위치 인덱스가 결정되는, 비디오 코딩 디바이스.
  25. 제14항 내지 제24항 중 어느 한 항에 있어서,
    상기 SVT 블록의 유형이 계수들의 제1 그룹에 기초하여 결정되고, 상기 위치 인덱스가 계수들의 제2 그룹에 기초하여 결정되는, 비디오 코딩 디바이스.
  26. 제14항 내지 제16항 및 제21항 내지 제25항 중 어느 한 항에 있어서,
    상기 후보 위치 스텝 크기 또는 대응하는 후보 위치들의 수가 비-제로 계수들의 수 또는 위치에 기초하여 결정되는, 비디오 코딩 디바이스.
  27. 비디오 코딩 디바이스에 의한 사용을 위한 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독가능 매체로서, 상기 컴퓨터 프로그램 제품은, 프로세서에 의해 실행될 때 상기 비디오 코딩 디바이스로 하여금 제1항 내지 제13항 중 어느 한 항의 방법을 수행하게 하도록 상기 비일시적 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 실행가능 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  28. 비디오 코딩 디바이스로서,
    공간 변화 변환(SVT)에 의해 변환된 계수들을 갖는 잔차 블록 및 예측 블록을 포함하는 비트스트림을 수신하도록 구성된 수신 수단; 및
    상기 수신 수단과 함께 제1항 내지 제13항 중 어느 한 항의 방법을 수행하도록 구성된 처리 수단을 포함하는, 비디오 코딩 디바이스.
KR1020207011700A 2017-10-16 2018-10-16 비디오 코딩을 위한 공간 변화 변환 KR102424088B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762572987P 2017-10-16 2017-10-16
US62/572,987 2017-10-16
US201862721179P 2018-08-22 2018-08-22
US62/721,179 2018-08-22
PCT/CN2018/110399 WO2019076290A1 (en) 2017-10-16 2018-10-16 VARIANT TRANSFORMERS IN SPACE FOR VIDEO CODING

Publications (2)

Publication Number Publication Date
KR20200053603A true KR20200053603A (ko) 2020-05-18
KR102424088B1 KR102424088B1 (ko) 2022-07-22

Family

ID=66174295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207011700A KR102424088B1 (ko) 2017-10-16 2018-10-16 비디오 코딩을 위한 공간 변화 변환

Country Status (7)

Country Link
US (1) US11606571B2 (ko)
EP (1) EP3677031B1 (ko)
JP (1) JP7150861B2 (ko)
KR (1) KR102424088B1 (ko)
CN (1) CN111226441B (ko)
PL (1) PL3677031T3 (ko)
WO (1) WO2019076290A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021252995A1 (en) * 2020-06-12 2021-12-16 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding in 4:4:4 color format

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6808889B2 (ja) * 2018-03-29 2021-01-06 日本放送協会 画像符号化装置、画像復号装置、及びプログラム
CN117221544A (zh) * 2019-05-19 2023-12-12 字节跳动有限公司 数字视频中的变换旁路编解码残差块
EP3977728A4 (en) * 2019-06-21 2022-08-17 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING VIDEO AND STILL IMAGES USING ADAPTIVE RESIDUAL BLOCK SHAPE RESAMPLING
US11758133B2 (en) * 2019-10-31 2023-09-12 Apple Inc Flexible block partitioning structures for image/video compression and processing
CN113727103B (zh) * 2020-05-25 2022-08-12 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、电子设备及存储介质
WO2023133888A1 (zh) * 2022-01-17 2023-07-20 深圳市大疆创新科技有限公司 图像处理方法、装置、遥控设备、系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016201818A (ja) * 2011-09-29 2016-12-01 シャープ株式会社 画像復号装置、画像復号方法および画像符号化装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101403338B1 (ko) * 2007-03-23 2014-06-09 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
WO2010017837A1 (en) * 2008-08-12 2010-02-18 Nokia Corporation Video coding using spatially varying transform
GB0906058D0 (en) * 2009-04-07 2009-05-20 Nokia Corp An apparatus
US8526495B2 (en) 2010-11-22 2013-09-03 Mediatek Singapore Pte. Ltd. Apparatus and method of constrained partition size for high efficiency video coding
US9049452B2 (en) 2011-01-25 2015-06-02 Mediatek Singapore Pte. Ltd. Method and apparatus for compressing coding unit in high efficiency video coding
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
CN103636203B (zh) 2011-06-17 2017-07-14 寰发股份有限公司 内部预测模式编码的方法及装置
KR101943049B1 (ko) 2011-06-30 2019-01-29 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
JP5740239B2 (ja) 2011-08-03 2015-06-24 日本放送協会 モード情報伝送置換装置、画像符号化装置、画像復号装置、及びこれらのプログラム
WO2013023518A1 (en) 2011-08-17 2013-02-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction using non-square blocks
US9363511B2 (en) 2011-09-13 2016-06-07 Mediatek Singapore Pte. Ltd. Method and apparatus for Intra mode coding in HEVC
WO2013106986A1 (en) 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding
EP2936816B1 (en) 2013-04-09 2020-04-29 MediaTek Singapore Pte Ltd. Method and apparatus for non-square intra mode coding
US10448011B2 (en) 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
US10230961B2 (en) 2016-06-03 2019-03-12 Mediatek Inc. Method and apparatus for template-based intra prediction in image and video coding
US20170374369A1 (en) 2016-06-24 2017-12-28 Mediatek Inc. Methods and Apparatuses of Decoder Side Intra Mode Derivation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016201818A (ja) * 2011-09-29 2016-12-01 シャープ株式会社 画像復号装置、画像復号方法および画像符号化装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Cixun Zhang, et al. Video coding using Variable Block-Size Spatially Varying Transforms, 2009 IEEE International Conference on Acoustics, Speech and Signal Processing, 2009-04-19, pp.905-908* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021252995A1 (en) * 2020-06-12 2021-12-16 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding in 4:4:4 color format

Also Published As

Publication number Publication date
JP2020537468A (ja) 2020-12-17
CN111226441B (zh) 2021-10-15
EP3677031A4 (en) 2020-10-28
EP3677031B1 (en) 2023-10-04
US20220217370A9 (en) 2022-07-07
JP7150861B2 (ja) 2022-10-11
US20200244976A1 (en) 2020-07-30
KR102424088B1 (ko) 2022-07-22
CN111226441A (zh) 2020-06-02
WO2019076290A1 (en) 2019-04-25
EP3677031A1 (en) 2020-07-08
PL3677031T3 (pl) 2024-01-29
US11606571B2 (en) 2023-03-14

Similar Documents

Publication Publication Date Title
US11800094B2 (en) Intra-prediction with multiple reference lines
US10609384B2 (en) Restriction on sub-block size derivation for affine inter prediction
KR102424088B1 (ko) 비디오 코딩을 위한 공간 변화 변환
JP7485803B2 (ja) ルマおよびクロマブロックパーティショニング
CN110199524B (zh) 一种在计算设备中实现的方法
CN114205629B (zh) 一种支持受约束编码树划分的编解码方法及装置
CN111971958B (zh) 视频编码中的块分割方法和设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant