KR20220024966A - 변환 스킵된 블록의 코딩 시그널링 - Google Patents

변환 스킵된 블록의 코딩 시그널링 Download PDF

Info

Publication number
KR20220024966A
KR20220024966A KR1020227002595A KR20227002595A KR20220024966A KR 20220024966 A KR20220024966 A KR 20220024966A KR 1020227002595 A KR1020227002595 A KR 1020227002595A KR 20227002595 A KR20227002595 A KR 20227002595A KR 20220024966 A KR20220024966 A KR 20220024966A
Authority
KR
South Korea
Prior art keywords
current
syntax element
skip mode
bitstream
picture sequence
Prior art date
Application number
KR1020227002595A
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 KR20220024966A publication Critical patent/KR20220024966A/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/124Quantisation
    • 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

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

비디오 디코더에서 변환 스킵 모드(TSM)를 수행하기 위한 방법이 제공된다. 비디오 디코더는 비트스트림으로부터 복수의 비디오 픽처로서 디코딩될 데이터를 수신한다. 비디오 디코더는 현재의 비디오 픽처 시퀀스에 대한 시퀀스 파라미터 세트(SPS) 내의 제1 신택스 요소를 위해 비트스트림을 파싱한다. 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 제1 신택스 요소가 나타내는 경우 그리고 현재의 비디오 픽처 시퀀스 중 현재 픽처의 현재 블록에 대해 변환 스킵 모드가 사용되는 경우, 비디오 디코더는 변환되지 않은 양자화된 잔차 신호를 사용함으로써 현재 블록을 재구성한다.

Description

변환 스킵된 블록의 코딩 시그널링
본 개시 내용은 2019년 6월 28일에 출원된 미국 가특허 출원 번호 제62/868,830호의 우선권을 주장하는 정규 출원의 일부이다. 위에 나열된 출원의 내용은 본원에 참고로 포함된다.
본 개시 내용은 일반적으로 비디오 처리에 관련된 것이다. 특히, 본 개시 내용은 비디오 데이터 블록의 코딩을 시그널링하는 방법에 관련된 것이다.
본원에서 달리 표시되지 않는 한, 이 섹션에서 기술되는 접근 방식은 아래 나열되는 청구항에 대한 종래 기술은 아니며, 이 섹션에 포함되는 것에 의해 종래 기술로 인정되는 것은 아니다.
고효율 비디오 코딩(High-Efficiency Video Coding)(HEVC)을 구현하는 비디오 코딩 시스템에서, 입력 비디오 신호는, 코딩된 픽처 영역에서 유도되는 재구성된 신호로부터 예측된다. 예측 잔차 신호는 선형 변환에 의해 처리된다. 변환 계수는 양자화되고, 비트스트림 내의 다른 부가 정보(side information)와 함께 엔트로피 코딩된다. 재구성된 신호는 역양자화된 변환 계수에 대한 역변환 후, 예측 신호 및 재구성된 잔차 신호로부터 생성된다. 재구성된 신호는 코딩 아티팩트를 제거하기 위한 인루프 필터링(in-loop filtering)에 의해 추가로 처리된다. 디코딩된 픽처는 출력을 위해 그리고 입력 비디오 신호의 미래 픽처를 예측하기 위해 프레임 버퍼에 저장된다.
HEVC에서, 코딩된 픽처는 관련된 코딩 트리 단위(coding tree unit)(CTU)로 표현되는 비중첩된 정사각형 블록 영역으로 분할된다. 코딩된 픽처는 슬라이스 집합체(a collection of slices)로 표현될 수 있고, 각각의 슬라이스는 정수 개수의 CTU를 포함한다. 슬라이스 내의 개별 CTU는 래스터 스캔 순서(raster scanning order)로 처리된다. 이중 예측(B) 슬라이스는 각 블록의 샘플 값을 예측하기 위해 최대 2개의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 디코딩될 수 있다. 예측(P) 슬라이스는 각 블록의 샘플 값을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 디코딩된다. 인트라(I) 슬라이스는 인트라 예측만을 사용하여 디코딩된다.
CTU는 다양한 로컬 모션 및 텍스처 특성에 적응하기 위해 재귀적 쿼드트리(quadtree)(QT) 구조를 사용하여 다수의 비중첩된 코딩 단위(coding unit)(CU)로 분할될 수 있다. 각 CU마다 하나 이상의 예측 단위(prediction unit)(PU)가 지정된다. 예측 단위는, 연관된 CU 신택스와 함께, 예측자 정보를 시그널링하기 위한 기본 단위로서 작용한다. 지정된 예측 프로세스는 PU 내부의 연관된 픽셀 샘플들의 값을 예측하는 데 이용된다. CU는 연관된 예측 잔차 신호를 나타내기 위한 잔차 쿼드트리(residual quadtree)(RQT) 구조를 사용하여 더 분할될 수 있다. RQT의 리프 노드(leaf node)는 변환 단위(transform unit)(TU)에 해당한다. 변환 단위는 8x8, 16x16, 또는 32x32 사이즈의 루마 샘플의 하나의 변환 블록(TB) 또는 4x4 사이즈의 루마 샘플의 네 개의 변환 블록과, 4:2:0 컬러 포맷의 픽처의 크로마 샘플의 두 개의 해당 변환 블록을 포함한다. 변환 블록에는 정수 변환이 적용되고, 양자화된 계수의 레벨 값은, 다른 부가 정보와 함께, 비트스트림에서 엔트로피 코딩된다.
코딩 트리 블록(coding tree block)(CTB), 코딩 블록(coding block)(CB), 예측 블록(prediction block)(PB), 및 변환 블록(transform block)(TB)이라는 용어는 제각기 CTU, CU, PU 및 TU와 연관된 하나의 컬러 성분의 2-D 샘플 어레이를 지정하도록 정의된다. 따라서, CTU는 하나의 루마 CTB, 두 개의 크로마 CTB, 및 연관된 신택스 요소로 구성된다. 유사한 관계가 CU, PU, 및 TU에 대해 유효하다. 트리 분할(tree partitioning)은 일반적으로 루마 및 크로마 모두에 동시에 적용되지만, 크로마에 대해 특정 최소 사이즈에 도달하면 예외가 적용된다. 일부 다른 코딩 표준에서, 각 CTU는 바이너리 및 터너리 분할을 사용하여, 중첩된 다중 타입 트리(nested multi-type tree)가 있는 쿼드트리에 의해, 하나 또는 다수의 보다 작은 사이즈의 코딩 단위(CU)로 분할될 수 있다. 결과적인 CU 파티션들은 정사각형 또는 직사각형의 형상일 수 있다.
다음의 개요는 단지 설명만을 위한 것이며, 어떤 식으로든 제한하려는 의도는 아니다. 즉, 다음의 개요는 본원에 기술되는 신규하고 그리고 비 자명한 기법의 개념, 강조 사항, 이점 및 장점을 소개하기 위해 제공된다. 모든 것이 아닌 선택적인 구현예가 아래의 상세한 설명에서 추가로 기술된다. 따라서 다음의 개요는 청구된 발명의 대상의 필수적인 특징을 식별하기 위한 것도 아니며, 청구된 발명의 대상의 범위를 결정하는 데 사용하기 위한 것도 아니다.
일부 실시예는 비디오 디코더에서 변환 스킵 모드(transform skip mode)(TSM)를 수행하기 위한 방법을 제공한다. 비디오 디코더는 비트스트림으로부터 복수의 비디오 픽처로서 디코딩될 데이터를 수신한다. 비디오 디코더는 현재의 비디오 픽처 시퀀스에 대한 시퀀스 파라미터 세트(sequence parameter set)(SPS) 내의 제1 신택스 요소를 위해 비트스트림을 파싱한다. 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 제1 신택스 요소가 나타내는 경우 그리고 현재의 비디오 픽처 시퀀스 중 현재 픽처의 현재 블록에 대해 변환 스킵 모드가 사용되는 경우, 비디오 디코더는 변환되지 않은 양자화된 잔차 신호를 사용함으로써 현재 블록을 재구성한다.
현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 제1 신택스 요소가 나타내는 경우, 비디오 디코더는, 현재의 비디오 픽처 시퀀스에 대해 블록 델타 펄스 코드 변조(Block Delta Pulse Code Modulation)(BDPCM)가 허용되는지의 여부를 나타내기 위한 SPS 내의 제2 신택스 요소를 위해 비트스트림을 파싱한다. 일부 실시예에서, 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 제1 신택스 요소가 나타내는 경우, 비디오 디코더는 추가로, 대안적인 잔차 코딩 프로세스를 사용함으로써 현재 블록의 잔차 신호가 엔트로피 코딩되는지의 여부를 나타내기 위한 제3 신택스 요소를 위해 비트스트림을 파싱한다.
첨부된 도면은 본 개시 내용의 추가적인 이해를 제공하기 위해 포함되고, 본 개시 내용에 포함되어 본 개시 내용의 일부를 구성한다. 도면은 본 개시 내용의 구현예를 예시하고, 상세한 설명과 함께, 본 개시 내용의 원리를 설명하는 역할을 한다. 일부 컴포넌트는 본 개시 내용의 개념을 명확하게 설명하기 위해 실제 구현예의 사이즈와 비례하지 않게 표시될 수 있으므로, 도면은 반드시 축척대로 도시되는 것은 아니라는 것을 알 수 있다.
도 1은 하이 레벨 신택스 세트(high-level syntax set)에서 TSM 관련 신호의 시그널링을 개념적으로 도시한 것이다.
도 2는 변환 스킵 모드를 구현할 수 있는 예시적인 비디오 인코더를 도시한 것이다.
도 3은 변환 스킵 모드를 구현하는 비디오 인코더의 부분을 도시한 것이다.
도 4는 비디오 인코딩 동안 변환 스킵 모드를 사용하는 프로세스를 개념적으로 도시한 것이다.
도 5는 변환 스킵 모드를 구현할 수 있는 예시적인 비디오 디코더를 도시한 것이다.
도 6은 변환 스킵 모드를 구현하는 비디오 디코더의 부분을 도시한 것이다.
도 7은 비디오 디코딩 동안 변환 스킵 모드를 사용하는 프로세스를 개념적으로 도시한 것이다.
도 8은 본 개시 내용의 일부 실시예가 구현되는 전자 시스템을 개념적으로 도시한 것이다.
이하의 상세한 설명에서는, 관련 교시의 완벽한 이해를 제공하기 위해 다양한 특정 세부 사항이 예로서 제시되고 있다. 본원에 기술되는 교시 내용에 기반한 임의의 변형물, 파생물, 및/또는 확장물은 본 개시 내용의 보호 범위 내에 속한다. 일부 사례에서, 본원에 개시된 하나 이상의 예시적인 구현예에 관한 잘 알려진 방법, 절차, 컴포넌트, 및/또는 회로부는 본 개시 내용의 교시 내용의 양태를 불필요하게 모호하게 하는 것을 피하기 위해 세부 사항 없이 비교적 하이 레벨로 기술될 수 있다.
I. 픽셀 블록의 엔트로피 코딩
본 개시 내용의 일부 실시예는 비디오 코딩 시스템에서 코딩 툴의 사용을 제어하기 위한 방법을 제공한다. 다용도 비디오 코딩(Versatile Video Coding)(VVC)와 같은 일부 비디오 코딩 시스템은 다양한 비디오 애플리케이션을 지원하기 위해 개발되었다. 스크린 콘텐츠 코딩과 같은 새로운 코딩 애플리케이션을 위한 코딩 툴 중 일부는 기존의 카메라 캡처 비디오 콘텐츠를 코딩하는 데 유용하지 않을 수 있다. 본 발명의 일부 양태에 따르면, 비디오 코더는 애플리케이션을 표적화하기 위한 코딩 툴 중 일부의 사용을 제어하기 위해 하나 이상의 하이 레벨 신택스 요소를 시그널링할 수 있다.
일부 실시예에서, 코딩된 블록 플래그(coded block flag)(CBF)는 변환 블록에 임의의 넌제로(non-zero) 변환 계수가 존재하는지를 시그널링하는 데 이용된다. CBF가 0과 동일한 경우, 연관된 변환 블록은 더 이상 코딩되지 않고, 현재 변환 블록 내의 모든 계수는 0과 동일한 것으로 추론된다. 그렇지 않으면, 연관된 변환 블록은 적어도 하나의 넌제로 변환 계수를 포함한다. 넌제로 변환 블록은 비중첩된 서브 블록으로 더 나뉘게 된다. 신택스 요소인 coded_sub_block_flag는 현재 서브 블록이 임의의 넌제로 계수를 포함하는지의 여부를 나타내기 위해 시그널링될 수 있다. coded_sub_block_flag가 0과 동일한 경우, 연관된 변환 서브 블록은 더 이상 코딩되지 않고, 현재 변환 서브 블록 내의 모든 계수는 0과 동일한 것으로 추론된다. 그렇지 않으면, 연관된 변환 서브 블록은 적어도 하나의 넌제로 변환 계수를 포함한다. 연관된 변환 서브 블록 내의 변환 계수 레벨의 값은 다수의 서브 블록 코딩 패스(subblock coding pass)를 사용하여 엔트로피 코딩된다. 각 코딩 패스에서, 개별 변환 계수는 미리 정의된 스캔 순서에 따라 한 번 방문된다.
일부 실시예에서, 신택스 요소인 sig_coeff_flag는 현재 변환 계수 레벨의 절대값이 0보다 큰지의 여부를 나타내기 위해, 제1 서브 블록 코딩 패스에 시그널링된다. 신택스 요소인 coeff_abs_level_greater1_flag는 연관된 변환 계수 레벨의 절대값이 1보다 큰지의 여부를 나타내기 위해, 1과 동일한 sig_coeff_flag를 갖는 현재 계수를 위한 제2 서브 블록 코딩 패스에 추가로 시그널링된다. 신택스 요소인 coeff_abs_level_greater2_flag는 연관된 변환 계수 레벨의 절대값이 2보다 큰지의 여부를 나타내기 위해, 1과 동일한 coeff_abs_level_greater1_flag를 갖는 현재 계수를 위한 제3 서브 블록 코딩 패스에 추가로 시그널링된다. 부호 정보(sign information) 및 나머지 레벨 값은 신택스 요소인 coeff_sign_flag 및 coeff_abs_level_remaining에 의해, 제각기의 제4 서브 블록 코딩 패스 및 제5 서브 블록 코딩 패스에 추가로 시그널링된다.
일부 실시예에서, 변환 계수는 종속성 스칼라 양자화(dependent scalar quantization)에 의해 양자화될 수 있다. 2개의 양자화기 중 하나의 선택은 4개의 상태를 가진 상태 머신에 의해 결정된다. 현재 변환 계수의 상태는 스캔 순서에서 이전 변환 계수에 대한 절대 레벨 값의 상태 및 패리티에 의해 결정된다. 변환 블록은 비중첩된 서브 블록으로 분할된다. 각 서브 블록 내의 변환 계수 레벨은 다수의 서브 블록 코딩 패스를 사용하여 엔트로피 코딩된다. 신택스 요소인 sig_coeff_flag, abs_level_gt1_flag, par_level_flag, 및 abs_level_gt3_flag는 제1 서브 블록 코딩 패스에 시그널링된다. 신택스 요소인 abs_level_gt1_flag 및 abs_level_gt3_flag는 각각 현재 계수 레벨의 절대값이 1보다 큰지의 여부와, 3보다 큰지의 여부를 나타낸다. 신택스 요소인 par_level_flag는 현재 레벨의 절대값에 대한 패리티 비트를 나타낸다. 제1 서브 블록 코딩 패스로부터의 변환 계수 레벨의 부분적으로 재구성된 절대값은 다음에 의해 주어진다:
AbsLevelPass1 = sig_coeff_flag + par_level_flag + abs_level_gt1_flag + 2 * abs_level_gt3_flag.
sig_coeff_flag를 엔트로피 코딩하기 위한 컨텍스트 선택은 현재 계수의 상태에 따라 달라진다. 따라서, par_level_flag는 다음 계수에 대한 상태를 유도하기 위해 제1 서브 블록 코딩 패스에 시그널링된다. 신택스 요소인 abs_remainder 및 coeff_sign_flag는 나머지 계수 레벨 값 및 부호를 각각 나타내기 위해, 다음 서브 블록 코딩 패스에 추가로 시그널링된다. 변환 계수 레벨의 완전히 재구성된 절대값은 다음에 의해 주어진다:
AbsLevel = AbsLevelPass1 + 2 * abs_remainer.
변환 계수 레벨은 다음에 의해 주어진다:
TransCoeffLevel = (2 * AbsLevel - (QState > 1 ? 1 : 0)) * (1 - 2 * coeff_sign_flag),
여기서, QState는 현재 변환 계수의 상태를 나타낸다.
높은 압축 효율을 달성하기 위해, 컨텍스트 기반 적응성 이진 산술 코딩(context-based adaptive binary arithmetic coding)(CABAC) 모드(또는 정규 모드로 알려짐)는 HEVC 및 VVC Draft에서 신택스 요소들의 값을 엔트로피 코딩하는 데 이용된다. CABAC 엔진 내의 산술 코더가 이진 심볼 값만을 인코딩할 수 있으므로, CABAC 연산은 먼저 신택스 요소의 값을 이진 문자열로 변환해야 하는데, 이 프로세스는 일반적으로 이진화라고 지칭된다. 코딩 프로세스 동안, 확률 모델은 서로 다른 컨텍스트에 대한 코딩된 심볼로부터 점차적으로 구축된다. 다음 이진 심볼을 코딩하기 위한 모델링 컨텍스트의 선택은 코딩된 정보에 의해 결정될 수 있다. 심볼은 컨텍스트 모델링 스테이지 없이 코딩될 수 있으며, 비트스트림 파싱 처리율을 개선하기 위해, 일반적으로 바이패스 모드라고 지칭되는 등가 확률 분포를 가정할 수 있다.
일부 실시예에서, 변환 블록 내의 신택스 요소인 coded_sub_block_flag, sig_coeff_flag, coeff_abs_level_greater1_flag, 및 coeff_abs_level_greater2_flag는 정규 모드에서 코딩된다. 변환 블록 내의 신택스 요소인 coeff_sign_flag 및 coeff_abs_level_remaining의 값은 바이패스 모드에서 코딩된다. 최악의 시나리오에서 서브 블록 내의 변환 계수 레벨을 엔트로피 코딩하기 위한 정규 빈(regular bin)의 총 수를 제한하기 위해, 각 서브 블록은 최대 8개까지의 coeff_abs_level_greater1_flag의 값 및 하나의 coeff_abs_level_greater2_flag의 값만을 코딩할 수 있다. 이러한 방식으로, 각 서브 블록 내의 정규 빈의 최대 수는 25개로 제한될 수 있다.
일부 실시예에서, 신택스 요소인 sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, 및 par_level_flag는 제1 서브 블록 코딩 패스에 시그널링된다. 신택스 요소인 abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, 및 abs_level_gt9_flag는 각각 서브 블록 코딩 패스 2, 3, 4 및 5에서 엔트로피 코딩된다. Sig_coeff_flag에 대한 컨텍스트 모델링은 두 개의 이웃의 sig_coeff_flag의 값에 따라 결정된다. abs_level_gt1_flag 및 par_level_flag에 대한 컨텍스트 모델링은 각각 단일 컨텍스트를 이용한다. 일부 실시예에서, 신택스 요소인 abs_level_gtx_flag[ n ][ j ], j = 0..4, ]는, (스캔 위치 n에서) 변환 계수 레벨의 절대값이 (j << 1) + 1보다 큰지와, 신택스 요소인 abs_level_gt1_flag, abs_level_gt3_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, 및 abs_level_gt9_flag와 제각기 대응하는지의 여부를 지정한다. 신택스 요소인 par_level_flag 및 abs_level_gtx_flag[ n ][ j ], j = 0..4, ]는 각각 단일 컨텍스트 변수를 사용하여 코딩된다.
II. 변환 스킵된 블록
일부 실시예에서, 변환 스킵(TS) 모드, 블록 기반 델타 펄스 코드 변조(BDPCM) 모드, 및 다른 변환 스킵 관련 툴을 시그널링하기 위한 방법이 제공된다. 변환 스킵 모드를 사용하여 블록을 코딩하는 경우, 양자화된 잔차 신호는 변환 연산을 거치지 않고 엔트로피 코딩된다. BDPCM 모드를 사용하여 블록을 코딩하는 경우, 잔차는 양자화되고, 각각의 양자화된 잔차와 그 예측자 사이의 차이, 예컨대, (BDPCM 예측 방향에 따른) 수평 또는 수직의 이웃하는 위치의 이전에 코딩된 잔차가 코딩된다.
일부 실시예에서, 비디오 코더는, 시퀀스 파라미터 세트(sequence parameter set)(SPS), 픽처 파라미터 세트(picture parameter set)(PPS), 및/또는 변환 스킵 모드 및 관련 코딩 툴의 사용을 제어하기 위한 슬라이스 헤더와 같은 하이 레벨 신택스(high-level syntax) (HLS) 세트 내의 다수의 신택스 요소를 시그널링할 수 있다. 일부 실시예에서, 하이 레벨 신택스(HLS) 세트는, 블록 레벨보다 높은 레벨에 대한 신택스 세트, 예를 들어, 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 슬라이스 헤더, 또는 블록 레벨보다 높은 레벨에 대한 임의의 다른 세트를 나타낸다. 비디오 코더는 변환 스킵 모드(TSM)가 현재 비트스트림에서 인에이블되는지의 여부를 나타내기 위해 하나 이상의 하이 레벨 신택스 요소를 시그널링할 수 있다. 변환 스킵 모드가 인에이블되는 경우, 비디오 코더는 BDPCM이 현재 비트스트림에서 인에이블되는지의 여부를 나타내기 위해 하나 이상의 하이 레벨 신택스 요소를 추가로 시그널링할 수 있다.
일부 실시예에서, 변환 스킵 모드가 인에이블되는 경우, 비디오 코더는 TSM에서 잔차 블록을 코딩하기 위한 대안적인 잔차 코딩 툴 또는 프로세스를 이용할지의 여부를 나타내기 위해 하나 이상의 하이 레벨 신택스 요소를 추가로 시그널링할 수 있다. 구체적으로, CU가 변환 스킵 모드에서 코딩되는 경우(즉, 변환 스킵 모드가 CU에 대해 사용되는 경우), 그의 예측 잔차는, 또한 변환 스킵 잔차 코딩 프로세스(또한 대안적인 잔차 코딩 프로세스로 지칭되기도 함)를 사용하여 양자화되고 그리고 (엔트로피) 코딩될 수 있다. 일부 실시예에서, 대안적인 잔차 코딩 프로세스는 종래의 변환 계수 코딩 프로세스로부터 수정된다. 구체적으로, TU의 잔차는 4x4 사이즈의 비중첩된 서브 블록의 단위로 코딩되고, 순방향 스캔 순서가 변환 블록 내의 서브 블록 및 서브 블록 내의 위치를 스캔하도록 적용되며; 마지막 (x, y) 위치의 시그널링은 없고; coded_sub_block_flag는, 모든 이전 플래그가 0과 동일한 경우, 마지막 서브 블록을 제외한 모든 서브 블록에 대해 코딩되고; sig_coeff_flag 컨텍스트 모델링은 축소된 템플릿을 사용하고, sig_coeff_flag의 컨텍스트 모델은 상단 및 좌측 이웃 값에 따라 달라지며; abs_level_gt1_플래그의 컨텍스트 모델은 또한 좌측 및 상단 이웃 값에 따라 달라지고, sig_coeff_flag 컨텍스트 모델링은 축소된 템플릿을 사용하고, 그리고 sig_coeff_flag의 컨텍스트 모델은 상단 및 좌측 이웃 값에 따라 달라지며; par_level_flag는 하나의 컨텍스트 모델만을 사용하고; 3, 5, 7, 9보다 큰 추가적인 플래그가, 각 플래그마다 하나의 컨텍스트인 계수 레벨을 나타내기 위해 시그널링되고; 나머지 값의 이진화를 위해 수정된 파라미터 유도가 사용되고; 그리고 부호 플래그의 컨텍스트 모델은 좌측 및 위의 이웃 값에 기반하여 결정되고, 부호 플래그는 모든 컨텍스트 코딩된 빈을 함께 유지하기 위해 sig_coeff_flag 이후에 파싱된다.
일부 실시예에서, 비디오 코더는 TSM, BDPCM, 및 대안적인 잔차 코딩 툴을 인에이블할지의 여부를 시그널링하기 위해, SPS 신택스 요소인 sps_transform_skip_enabled_flag 및 PPS 신택스 요소인 pps_bdpcm_enabled_flag 및 pps_alternative_residual_coding_flag를 시그널링할 수 있다. SPS, PPS, 변환 단위에 대한 관련 신택스 테이블은 다음과 같이 제공된다:
Figure pct00001
Figure pct00002
Figure pct00003
일부 실시예에서, 비디오 코더는 TSM, BDPCM, 및 대안적인 잔차 코딩 툴을 인에이블할지의 여부를 시그널링하기 위해, SPS 신택스 요소인 sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, 및 sps_alternative_residual_coding_flag를 시그널링할 수 있다. SPS, PPS, 및 변환 단위에 대한 관련 신택스 테이블은 다음과 같이 제공된다:
Figure pct00004
Figure pct00005
Figure pct00006
도 1은 SPS와 같은 하이 레벨 신택스 세트에서 TSM 관련 신호의 시그널링을 개념적으로 도시한 것이다. 도면은 3개의 SPS(110, 120, 및 130)를 도시한 것이다. SPS(110)는 비디오 픽처(115)의 시퀀스에 적용 가능하다. SPS(120)는 비디오 픽처(125)의 시퀀스에 적용 가능하다. SPS(130)는 비디오 픽처(135)의 시퀀스에 적용 가능하다.
SPS(110)는 거짓으로 설정된 TSM 인에이블 신택스 요소를 포함한다. 결과적으로, TSM은 비디오 시퀀스(115)에 대해 허용되지 않으며, 시퀀스(115) 내의 모든 블록은 TSM 없이 코딩된다. 일부 실시예에서, 이것은, 비디오 시퀀스(125)의 각 블록이 공간 도메인 신호(예컨대, 예측 잔차)를 변환 도메인 신호(예컨대, 변환 계수)로 변환함으로써 코딩되고, 이는 다시 양자화되고 엔트로피 코딩된다는 것을 의미한다. 더욱이, SPS 내의 TSM 인에이블 신택스 요소가 거짓으로 설정되기 때문에, BDPCM 또는 대안적인 잔차 코딩과 같은 추가적인 TSM 관련 신택스 요소는 존재하지 않는다.
SPS(120)는 참으로 설정된 TSM 인에이블 신택스 요소를 포함한다. 결과적으로, TSM은 비디오 시퀀스(125)에 대해 허용되고, 시퀀스(125) 내의 일부 픽처의 일부 블록은 TSM을 사용하여 코딩된다. TSM 코딩된 블록의 경우, 공간 도메인 잔차 신호는 변환되지 않고 직접 양자화되고 엔트로피 코딩된다. TSM 인에이블 신택스 요소가 참으로 설정되기 때문에, SPS는 BDPCM 인에이블 신택스 요소와 같은 다른 TSM 관련 신택스 요소를 포함할 수 있다. 이 경우, BDPCM 인에이블 신택스 요소는 거짓으로 설정되고, 시퀀스(125) 내의 어떤 블록도 BDPCM을 사용하여 코딩되지 않는다. 도시되지는 않았지만, 시퀀스(125) 내에는 블록들 중 일부에 대한 대안적인 잔차 코딩을 인에이블 또는 디스에이블하는 신택스 요소(예컨대, alternative_residual_coding_flag)가 있을 수 있다.
SPS(130)는 참으로 설정되는 TSM 인에이블 신택스 요소 및 참으로 설정되는 BDPCM 인에이블 플래그를 포함한다. 결과적으로, 시퀀스(135) 내의 일부 블록은 TSM 및 BDPCM을 사용하여 코딩된다. 이러한 블록의 경우, 시간 도메인 잔차 신호는 BDPCM을 사용하여 코딩된 후, 변환되지 않고 양자화 및 엔트로피 코딩된다. 도시되지는 않았지만, 시퀀스(135) 내에는 블록들 중 일부에 대한 대안적인 잔차 코딩을 인에이블 또는 디스에이블하는 신택스 요소(예컨대, alternative_residual_coding_flag)가 있을 수 있다.
앞서 제안된 방법 중 임의의 방법이 인코더 및/또는 디코더에서 구현될 수 있다. 예를 들어, 제안된 방법 중 임의의 방법은 인코더의 엔트로피 코딩 모듈 및/또는 디코더의 엔트로피 코딩 모듈에서 구현될 수 있다. 대안적으로, 제안된 방법 중 임의의 방법은 인코더의 엔트로피 코딩 모듈 및/또는 디코더의 엔트로피 코딩 모듈에 통합된 회로로서 구현될 수 있다.
III. 예시적인 비디오 인코더
도 2는 변환 스킵 모드를 구현할 수 있는 예시적인 비디오 인코더(200)를 도시한 것이다. 도시된 바와 같이, 비디오 인코더(200)는 비디오 소스(205)로부터 입력 비디오 신호를 수신하고, 이러한 신호를 비트스트림(295)으로 인코딩한다. 비디오 인코더(200)는, 변환 모듈(210), 양자화 모듈(211), 역양자화 모듈(214), 역변환 모듈(215), 인트라 픽처 추정 모듈(220), 인트라 예측 모듈(225), 모션 보상 모듈(230), 모션 추정 모듈(235), 인루프 필터(245), 재구성된 픽처 버퍼(250), MV 버퍼(265), 및 MV 예측 모듈(275), 및 엔트로피 인코더(290)로부터 선택된 일부 컴포넌트를 적어도 포함하여, 비디오 소스(205)로부터 신호를 인코딩하기 위한 수 개의 컴포넌트 또는 모듈을 갖는다. 모션 보상 모듈(230) 및 모션 추정 모듈(235)은 인터 예측 모듈(240)의 일부이다.
일부 실시예에서, 모듈(210 내지 290)은 컴퓨팅 디바이스 또는 전자 장치의 하나 이상의 처리 유닛(예컨대, 프로세서)에 의해 실행되는 소프트웨어 인스트럭션의 모듈이다. 일부 실시예에서, 모듈(210 내지 290)은 전자 장치의 하나 이상의 집적 회로(IC)에 의해 구현되는 하드웨어 회로의 모듈이다. 모듈(210 내지 290)은 별도의 모듈로서 도시되지만, 일부 모듈은 단일 모듈로 결합될 수 있다.
비디오 소스(205)는 압축 없이 각 비디오 프레임의 픽셀 데이터를 나타내는 원시 비디오 신호를 제공한다. 감산기(208)는 비디오 소스(205)의 원시 비디오 픽셀 데이터와 모션 보상 모듈(230) 또는 인트라 예측 모듈(225)로부터의 예측된 픽셀 데이터(213) 사이의 차이를 계산한다. 변환 모듈(210)은 (예컨대, 이산 코사인 변환(Discrete Cosine Transform) 또는 DCT를 수행함으로써) 차이(또는 잔차 픽셀 데이터 또는 잔차 신호(209))를 변환 계수로 변환한다. 양자화 모듈(211)은 변환 계수를 양자화된 데이터(또는 양자화된 계수)(212)로 양자화하고, 이러한 양자화 데이터(212)는 엔트로피 인코더(290)에 의해 비트스트림(295)으로 인코딩된다.
역양자화 모듈(214)은 양자화된 데이터(또는 양자화된 계수)(212)를 역양자화하여 변환 계수를 획득하고, 역변환 모듈(215)은 변환 계수에 대해 역변환을 수행하여 재구성된 잔차(219)를 생성한다. 재구성된 잔차(219)는 예측된 픽셀 데이터(213)와 가산되어 재구성된 픽셀 데이터(217)를 생성하게 된다. 일부 실시예에서, 재구성된 픽셀 데이터(217)는 인트라 픽처 예측 및 공간 MV 예측을 위해 라인 버퍼(도시되지 않음)에 일시적으로 저장된다. 재구성된 픽셀은 인루프 필터(245)에 의해 필터링되어 재구성된 픽처 버퍼(250)에 저장된다. 일부 실시예에서, 재구성된 픽처 버퍼(250)는 비디오 인코더(200) 외부의 스토리지이다. 일부 실시예에서, 재구성된 픽처 버퍼(250)는 비디오 인코더(200) 내부의 스토리지이다.
인트라 픽처 추정 모듈(220)은 재구성된 픽셀 데이터(217)에 기반하여 인트라 예측을 수행하여 인트라 예측 데이터를 생성하게 된다. 인트라 예측 데이터는 엔트로피 인코더(290)에 제공되어 비트스트림(295)으로 인코딩된다. 인트라 예측 데이터는 또한 예측 픽셀 데이터(213)를 생성하는 인트라 예측 모듈(225)에 의해 사용된다.
모션 추정 모듈(235)은 재구성된 픽처 버퍼(250)에 저장된 이전에 디코딩된 프레임의 참조 픽셀 데이터에 대한 MV를 생성함으로써 인터 예측을 수행한다. 이들 MV는 예측된 픽셀 데이터를 생성하는 모션 보상 모듈(230)에 제공된다.
전체 실제 MV를 비트스트림으로 인코딩하는 대신, 비디오 인코더(200)는 MV 예측을 사용하여 예측된 MV를 생성하고, 모션 보상에 사용된 MV와 예측된 MV 간의 차이를 잔차 모션 데이터로 인코딩하여 비트스트림(295) 내에 저장한다.
MV 예측 모듈(275)은 이전 비디오 프레임을 인코딩하기 위해 생성된 참조 MV, 즉 모션 보상을 수행하는 데 사용된 모션 보상 MV에 기반하여 예측된 MV를 생성한다. MV 예측 모듈(275)은 MV 버퍼(265)로부터 이전 비디오 프레임으로부터의 참조 MV를 검색한다. 비디오 인코더(200)는 현재 비디오 프레임에 대해 생성된 MV를, 예측된 MV를 생성하기 위한 참조 MV로서, MV 버퍼(265)에 저장한다.
MV 예측 모듈(275)은 참조 MV를 사용하여 예측된 MV를 생성한다. 예측된 MV는 공간적 MV 예측 또는 시간적 MV 예측에 의해 계산될 수 있다. 예측된 MV와 현재 프레임(잔차 모션 데이터)의 모션 보상 MV(MC MV) 간의 차이는 엔트로피 인코더(290)에 의해 비트스트림(295)으로 인코딩된다.
엔트로피 인코더(290)는 컨텍스트 적응성 이진 산술 코딩(context-adaptive binary arithmetic coding)(CABAC) 또는 허프만 인코딩과 같은 엔트로피 코딩 기법을 사용하여 다양한 파라미터 및 데이터를 비트스트림(295)으로 인코딩한다. 엔트로피 인코더(290)는, 양자화된 변환 계수(212)와 함께, 다양한 헤더 요소, 플래그, 및 신택스 요소로서의 잔차 모션 데이터를 비트스트림(295)으로 인코딩한다. 비트스트림(295)은 다시 저장 디바이스에 저장되거나 네트워크와 같은 통신 매체를 통해 디코더로 전송된다.
인루프 필터(245)는 재구성된 픽셀 데이터(217)에 대해 필터링 또는 평활화 연산을 수행하여, 특히 픽셀 블록의 경계에서 코딩의 아티팩트를 감소시킨다. 일부 실시예에서, 수행되는 필터링 연산은 샘플 적응성 오프셋(sample adaptive offset)(SAO)을 포함한다. 일부 실시예에서, 필터링 연산은 적응성 루프 필터(adaptive loop filter)(ALF)를 포함한다.
도 3은 변환 스킵 모드를 구현하는 비디오 인코더(200)의 부분을 도시한 것이다. 구체적으로, 인코더(200)는, 현재 픽처에 대해 또는 현재 픽처를 포함하는 현재 시퀀스에 대해 해당 툴이 인에이블되는지의 여부에 기반하여, 픽셀의 각 블록에 대해, 변환 연산을 스킵할지의 여부, 및 BDPCM 및/또는 대안적인 잔차 코딩과 같은 변환 스킵 관련 연산을 사용할지의 여부를 결정한다.
도시된 바와 같이, 변환 모듈(210)은 잔차 신호(209)에 대한 변환 연산을 수행하고, 역변환 모듈(215)은 대응하는 역변환 연산을 수행한다. 인코더(200)는 코딩되고 있는 현재 블록에 대해 TSM이 활성화되면 변환 및 역변환 동작을 스킵할 수 있다. 변환 스킵 모드가 사용되는 경우, 잔차 신호(209)는 변환 모듈(210)에 의해 처리되지 않고, 대신 양자화 모듈(211)에 의해 직접 양자화된다. 또한, TSM이 사용되는 경우, 역양자화 모듈(214)의 출력은 역변환 모듈(215)에 의해 처리되지 않고, 재구성된 잔차로서 직접 사용된다.
BDPCM이 현재 블록에 대해 활성화되는 경우, BDPCM 모듈(311)은 엔트로피 인코딩 전에 양자화 모듈(211)의 출력에 대해 BDPCM 프로세스를 수행하고, 역 BDPCM 모듈(314)은 역양자화 모듈(214)의 입력에서 해당 BDPCM 프로세스를 수행한다. 엔트로피 인코더(290)는 대안적인 잔차 코딩의 사용 여부에 기반하여 정규 잔차 코딩(regular residual coding)(RRC) 프로세스(311) 또는 변환 스킵 잔차 코딩(transform skip residual coding)(TSRC) 프로세스(312)를 수행할 수 있다.
코딩 제어 모듈(300)은 변환 모듈(210) 및 역변환 모듈(215)에서 변환 및 역변환 연산의 스킵을 제어할 수 있다. 코딩 제어 모듈(300)은 또한 BDPCM 모듈(311) 및 역 BDPCM 모듈(314)에서 해당 BDPCM 연산을 인에이블 또는 디스에이블할 수 있다. 코딩 제어 모듈은 또한 엔트로피 인코더(290)에서 TSRC 또는 RRC 중 하나를 선택함으로써 대안적인 잔차 코딩을 인에이블 또는 디스에이블할 수 있다.
현재의 비디오 픽처 시퀀스, 현재 픽처, 또는 현재 블록에 대해 TSM, BDPCM, 및/또는 대안적인 잔차 코딩이 사용되는지의 여부에 따라, 코딩 제어 모듈(300)은 해당 신택스 요소, 예를 들어, sps_transform_skip_enable_flag, sps_bdpcm_enable_flag, 및/또는 (PPS 또는 SPS 또는 슬라이스 헤더에 대한) alternative_residual_coding_flag를 비트스트림(295)으로 인코딩할 수 있다.
도 4는 비디오 인코딩 동안 변환 스킵 모드를 사용하기 위한 프로세스(400)를 개념적으로 도시한 것이다. 일부 실시예에서, 인코더(200)를 구현하는 컴퓨팅 디바이스의 하나 이상의 처리 유닛(예컨대, 프로세서)은 컴퓨터 판독 가능 매체에 저장된 인스트럭션을 실행함으로써 프로세스(400)를 수행한다. 일부 실시예에서, 인코더(200)를 구현하는 전자 장치는 프로세스(400)를 수행한다.
인코더는 (블록 410에서) 비트스트림에서 하나 이상의 비디오 픽처로서 인코딩될 데이터를 수신한다. 인코더는 (블록 420에서) 비트스트림 내에, 현재의 비디오 픽처 시퀀스에 대한 SPS 내의 TSM 신택스 요소(예컨대, sps_transform_skip_enable_flag)를 시그널링한다. 인코더는 (블록 425에서) 현재의 비디오 픽처 시퀀스에 대해 TSM이 허용되는지의 여부를 결정한다. 현재의 비디오 픽처 시퀀스에 대해 TSM이 허용된다면, 프로세스는 440으로 진행한다. 현재의 비디오 픽처 시퀀스에 대해 TSM이 허용되지 않는다면, 프로세스는 430으로 진행한다.
블록 430에서, 인코더는 TSM을 사용하지 않고 현재 비디오 픽처 시퀀스의 픽처를 인코딩한다. 일부 실시예에서, 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 인에이블되지 않는다고 TSM 신택스 요소가 나타내는 경우, 현재의 비디오 픽처 시퀀스 내의 모든 블록은 양자화된 변환된 계수를 사용하여 코딩된다.
블록 440에서, 인코더는 비트스트림 내에, 현재의 비디오 픽처 시퀀스의 픽처에 대해 BDPCM이 허용되는지의 여부를 나타내기 위한 SPS 내의 BDPCM 신택스 요소(예컨대, sps_bdpcm_enable_flag)를 시그널링한다. 인코더는 또한 (블록 450에서) 비트스트림 내에, 대안적인 잔차 코딩 신택스 요소(예컨대, PPS 또는 SPS 또는 슬라이스 헤더에 대한 alternative_residual_coding_flag)를 시그널링한다. 그 후 프로세스는 블록 460으로 진행한다.
인코더는, (블록 460에서) 비디오 픽처 시퀀스에 대해 TSM이 허용되면 그리고 현재 블록에 대해 TSM이 인에이블되면 TSM을 사용함으로써, 현재의 비디오 픽처 시퀀스의 현재 픽처 내의 현재 블록을 인코딩한다. 예를 들어, 현재 블록에 대해 TSM이 활성 상태라는 것을 비트스트림의 플래그가 나타낸다면, 인코더는, 변환되지 않고 공간 도메인에 남아 있는 양자화된 잔차 신호를 사용함으로써, 현재 블록을 인코딩한다.
현재 블록이 TSM을 사용하여 코딩되는 경우, 현재 블록의 인코딩은 또한, 현재 블록에 대해 해당 모드가 인에이블되면, BDPCM 및/또는 대안적인 잔차 코딩을 사용할 수 있다. 구체적으로, 현재의 비디오 픽처 시퀀스에 대해 BDPCM이 허용되고 현재 블록에 대해 BDPCM이 인에이블되는 경우(예컨대, 현재 블록에 대해 BDPCM이 활성 상태임을 비트스트림의 플래그가 나타내는 경우), BDPCM은 현재 블록을 인코딩하는 데 사용된다(현재 블록 내의 위치의 잔차 신호는 잔차 신호와 이웃 위치에 대한 이전에 코딩된 잔차 신호의 차이를 사용하여 코딩된다). 현재 블록에 대해 대안적인 잔차 코딩이 인에이블되는 경우(예컨대, 현재 슬라이스에 대한 대안적 잔차 코딩을 디스에이블하는 플래그가 비트스트림 내에 존재하지 않는 경우), 대안적인 잔차 코딩(예컨대, TSRC)은 현재 블록의 잔차 신호를 엔트로피 인코딩하는 데 사용되며, 그렇지 않으면 정규 잔차 코딩(RRC)이 사용된다.
IV. 예시적인 비디오 디코더
도 5는 변환 스킵 모드를 구현할 수 있는 예시적인 비디오 디코더(500)를 도시한 것이다. 도시된 바와 같이, 비디오 디코더(500)는, 비트스트림(595)을 수신하고, 비트스트림의 콘텐츠를 디스플레이용 비디오 프레임의 픽셀 데이터로 디코딩하는 이미지 디코딩 또는 비디오 디코딩 회로이다. 비디오 디코더(500)는, 역양자화 모듈(505), 역변환 모듈(510), 인트라 예측 모듈(525), 모션 보상 모듈(530), 인루프 필터(545), 디코딩된 픽처 버퍼(550), MV 버퍼(565), MV 예측 모듈(575), 및 파서(590)로부터 선택된 일부 컴포넌트를 포함하여, 비트스트림(595)을 디코딩하기 위한 수 개의 컴포넌트 또는 모듈을 갖는다. 모션 보상 모듈(530)은 인터 예측 모듈(540)의 일부이다.
일부 실시예에서, 모듈(510 내지 590)은 컴퓨팅 디바이스의 하나 이상의 처리 유닛(예컨대, 프로세서)에 의해 실행되는 소프트웨어 인스트럭션의 모듈이다. 일부 실시예에서, 모듈(510 내지 590)은 전자 장치의 하나 이상의 IC에 의해 구현되는 하드웨어 회로의 모듈이다. 모듈(510 내지 590)은 별도의 모듈로서 도시되지만, 일부 모듈은 단일 모듈로 결합될 수 있다.
파서(590)(또는 엔트로피 디코더)는 비트스트림(595)을 수신하고, 비디오 코딩 또는 이미지 코딩 표준에 의해 정의된 신택스에 따라 초기 파싱을 수행한다. 파싱된 신택스 요소는 다양한 헤더 요소, 플래그, 및 양자화된 데이터(또는 양자화된 계수)(512)를 포함한다. 파서(590)는 컨텍스트 적응성 이진 산술 코딩(CABAC) 또는 허프만 인코딩과 같은 엔트로피 코딩 기법을 사용하여 다양한 신택스 요소를 파싱한다.
역양자화 모듈(505)은 양자화된 데이터(또는 양자화된 계수)(512)를 역양자화하여 변환 계수를 획득하고, 역변환 모듈(510)은 변환 계수(516)에 대해 역변환을 수행하여 재구성된 잔차 신호(519)를 생성한다. 재구성된 잔차 신호(519)는 인트라 예측 모듈(525) 또는 모션 보상 모듈(530)로부터 예측된 픽셀 데이터(513)와 가산되어 디코딩된 픽셀 데이터(517)를 생성하게 된다. 디코딩된 픽셀 데이터는 인루프 필터(545)에 의해 필터링되어 디코딩된 픽처 버퍼(550)에 저장된다. 일부 실시예에서, 디코딩된 픽처 버퍼(550)는 비디오 디코더(500) 외부의 스토리지이다. 일부 실시예에서, 디코딩된 픽처 버퍼(550)는 비디오 디코더(500) 내부의 스토리지이다.
인트라 예측 모듈(525)은 비트스트림(595)으로부터 인트라 예측 데이터를 수신하고, 이러한 인트라 예측 데이터에 따라, 디코딩된 픽처 버퍼(550)에 저장된 디코딩된 픽셀 데이터(517)로부터 예측된 픽셀 데이터(513)를 생성한다. 일부 실시예에서, 디코딩된 픽셀 데이터(517)는 또한 인트라 픽처 예측 및 공간 MV 예측을 위해 라인 버퍼(도시되지 않음)에 저장된다.
일부 실시예에서, 디코딩된 픽처 버퍼(550)의 콘텐츠는 디스플레이를 위해 사용된다. 디스플레이 디바이스(555)는 직접 디스플레이를 위해 디코딩된 픽처 버퍼(550)의 콘텐츠를 검색하거나, 디스플레이 버퍼로의 디코딩된 픽처 버퍼의 콘텐츠를 검색한다. 일부 실시예에서, 디스플레이 디바이스는 디코딩된 픽처 버퍼(550)로부터 픽셀 전송을 통해 픽셀 값을 수신한다.
모션 보상 모듈(530)은 모션 보상 MV(MC MV)에 따라, 디코딩된 픽처 버퍼(550)에 저장된 디코딩된 픽셀 데이터(517)로부터 예측된 픽셀 데이터(513)를 생성한다. 이들 모션 보상 MV는 비트스트림(595)으로부터 수신된 잔차 모션 데이터를 MV 예측 모듈(575)로부터 수신된 예측된 MV와 가산함으로써 디코딩된다.
MV 예측 모듈(575)은 이전 비디오 프레임을 디코딩하기 위해 생성된 참조 MV, 예컨대, 모션 보상을 수행하는 데 사용된 모션 보상 MV에 기반하여 예측된 MV를 생성한다. MV 예측 모듈(575)은 MV 버퍼(565)로부터 이전 비디오 프레임의 참조 MV를 검색한다. 비디오 디코더(500)는 현재 비디오 프레임을 디코딩하기 위해 생성된 모션 보상 MV를, 예측된 MV를 생성하기 위한 참조 MV로서, MV 버퍼(565)에 저장한다.
인루프 필터(545)는 디코딩된 픽셀 데이터(517)에 대해 필터링 또는 평활화 연산을 수행하여, 특히 픽셀 블록의 경계에서 코딩의 아티팩트를 감소시킨다. 일부 실시예에서, 수행되는 필터링 연산은 샘플 적응성 오프셋(SAO)을 포함한다. 일부 실시예에서, 필터링 연산은 적응성 루프 필터(ALF)를 포함한다.
도 6은 변환 스킵 모드를 구현하는 비디오 디코더(500)의 부분을 도시한 것이다. 구체적으로, 디코더(500)는, 현재 픽처에 대해 또는 현재 픽처를 포함하는 현재 시퀀스에 대해 해당 툴이 인에이블되는지의 여부에 기반하여, 픽셀의 각 블록에 대해 (역)변환 연산을 스킵할지의 여부, 및 BDPCM 및/또는 대안적인 잔차 코딩과 같은 변환 스킵 관련 연산을 사용할지의 여부를 결정한다.
도시된 바와 같이, 역양자화기(514)는 엔트로피 디코더(590)에 의해 파싱된 양자화된 계수(512)에 대해 역양자화 연산을 수행한다. 역양자화기(514)의 출력은 역변환 모듈(516)에 제공되어 잔차 신호로 역변환된다. TSM이 사용되는 경우, 역양자화 모듈(514)의 출력은 역변환 모듈(515)에 의해 처리되지 않고, 재구성된 잔차로서 직접 사용된다.
BDPCM이 현재 블록에 대해 인에이블되는 경우, 역 BDPCM 모듈(614)은 역양자화 모듈(514)의 입력에서 BDPCM 프로세스를 수행한다. 엔트로피 디코더(590)는 대안적인 잔차 코딩의 사용 여부에 기반하여 정규 잔차 코딩(RRC) 프로세스(611) 또는 변환 스킵 잔차 코딩(TSRC) 프로세스(612)를 수행할 수 있다.
코딩 제어 모듈(600)은 역변환 모듈(515)에서 역변환 연산의 스킵을 제어할 수 있다. 코딩 제어 모듈(600)은 또한 역 BDPCM 모듈(614)에서 BDPCM 연산을 인에이블 또는 디스에이블할 수 있다. 코딩 제어 모듈은 또한 엔트로피 디코더(590)에서 TSRC 또는 RRC 중 하나를 선택함으로써 대안적 잔차 코딩을 인에이블 또는 디스에이블할 수 있다. 코딩 제어 모듈(600)은 엔트로피 디코더(590)에 의해 비트스트림(595)으로부터 파싱되는 sps_transform_skip_enable_flag, sps_bdpcm_enable_flag, 및/또는 (PPS 또는 SPS 또는 슬라이스 헤더용의) alternative_residual_coding_flag와 같은 신택스 요소에 기반하여, 이들 TSM 관련 연산에 대한 제어를 생성할 수 있다.
도 7은 비디오 인코딩 동안 변환 스킵 모드를 사용하기 위한 프로세스(700)를 개념적으로 도시한 것이다. 일부 실시예에서, 디코더(500)를 구현하는 컴퓨팅 디바이스의 하나 이상의 처리 유닛(예컨대, 프로세서)은 컴퓨터 판독 가능 매체에 저장된 인스트럭션을 실행함으로써 프로세스(700)를 수행한다. 일부 실시예에서, 디코더(500)를 구현하는 전자 장치는 프로세스(700)를 수행한다.
디코더는 (블록 710에서) 비트스트림으로부터 하나 이상의 비디오 픽처로서 디코딩될 데이터를 수신한다. 디코더는 (블록 720에서) 현재의 비디오 픽처 시퀀스에 대한 SPS 내의 TSM 신택스 요소(예컨대, sps_transform_skip_enable_flag)를 위해 비트스트림을 파싱한다. 디코더는 (블록 725에서) 현재의 비디오 픽처 시퀀스에 대해 TSM이 허용되는지의 여부를 결정한다. 현재의 비디오 픽처 시퀀스에 대해 TSM이 허용된다면, 프로세스는 740으로 진행한다. 현재의 비디오 픽처 시퀀스에 대해 TSM이 허용되지 않는다면, 프로세스는 730으로 진행한다.
블록 730에서, 디코더는 TSM을 사용하지 않고 현재의 비디오 픽처 시퀀스의 픽처를 재구성한다. 일부 실시예에서, 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용되지 않는다고 TSM 신택스 요소가 나타내는 경우, 현재의 비디오 픽처 시퀀스 내의 모든 블록은 양자화된 변환된 계수를 사용하여 코딩된다.
블록 740에서, 디코더는 현재의 비디오 픽처 시퀀스의 픽처에 대해 BDPCM이 허용되는지의 여부를 나타내기 위한 SPS 내의 BDPCM 신택스 요소(예컨대, sps_bdpcm_enable_flag)를 위해 비트스트림을 파싱한다. 디코더는 또한 (블록 750에서) 대안적인 잔차 코딩 신택스 요소(예컨대, PPS 또는 SPS 또는 슬라이스 헤더에 대한 alternative_residual_coding_flag)를 위해 비트스트림을 파싱한다. 그 후 프로세스는 블록 760으로 진행한다.
디코더는, (블록 760에서) 비디오 픽처 시퀀스에 대해 TSM이 허용되면 그리고 현재 블록에 대해 TSM이 인에이블되면 TSM을 사용함으로써, 현재의 비디오 픽처 시퀀스의 현재 픽처 내의 현재 블록을 재구성한다. 예를 들어, 현재 블록에 대해 TSM이 활성 상태라는 것을 비트스트림의 플래그가 나타낸다면, 디코더는, 변환되지 않고 공간 도메인에 남아 있는 양자화된 잔차 신호를 사용함으로써, 현재 블록을 재구성한다.
현재 블록이 TSM을 사용하여 코딩되는 경우, 현재 블록의 디코딩은 또한, 현재 블록에 대해 해당 모드가 인에이블되면, BDPCM 및/또는 대안적인 잔차 코딩을 사용할 수 있다. 구체적으로, 현재의 비디오 픽처 시퀀스에 대해 BDPCM이 허용되고 현재 블록에 대해 BDPCM이 인에이블되는 경우(예컨대, 현재 블록에 대해 BDPCM이 활성 상태임을 비트스트림의 플래그가 나타내는 경우), BDPCM은 현재 블록을 디코딩하는 데 사용된다(현재 블록 내의 위치의 잔차 신호는 잔차 신호와 이웃 위치에 대한 이전에 코딩된 잔차 신호의 차이를 사용하여 코딩된다). 현재 블록에 대해 대안적인 잔차 코딩이 인에이블되는 경우(예컨대, 현재 슬라이스에 대한 대안적 잔차 코딩을 디스에이블하는 플래그가 비트스트림 내에 존재하지 않는 경우), 대안적인 잔차 코딩(예컨대, TSRC)은 현재 블록의 잔차 신호를 엔트로피 디코딩하는 데 사용되며, 그렇지 않으면 정규 잔차 코딩(RRC)이 사용된다.
V. 예시적인 전자 시스템
상술한 특징 및 애플리케이션 중 다수는 컴퓨터 판독 가능 저장 매체(또한 컴퓨터 판독 가능 매체라고 지칭됨)에 기록된 인스트럭션의 세트로서 지정되는 소프트웨어 프로세스로서 구현된다. 이들 인스트럭션이 하나 이상의 계산 또는 처리 유닛(들)(예컨대, 하나 이상의 프로세서, 프로세서들의 코어, 또는 다른 처리 유닛)에 의해 실행되는 경우, 이들 인스트럭션은 처리 유닛(들)으로 하여금 인스트럭션에 표시된 동작을 수행하게 한다. 컴퓨터 판독 가능 매체의 예는 CD-ROM, 플래시 드라이브, 랜덤 액세스 메모리(random-access memory)(RAM) 칩, 하드 드라이브, 소거 가능한 프로그래머블 판독 전용 메모리(EPROM), 전기적으로 소거 가능한 프로그래머블 판독 전용 메모리(EEPROM) 등을 포함하지만, 이에 제한되지는 않는다. 컴퓨터 판독 가능 매체는 무선으로 또는 유선 연결을 통해 전달되는 반송파 및 전자 신호를 포함하지는 않는다.
본 명세서에서 "소프트웨어"라는 용어는 판독 전용 메모리에 상주하는 펌웨어를 포함하거나 또는 프로세서에 의한 처리를 위해 메모리로 판독될 수 있는 자기 스토리지에 저장된 애플리케이션을 포함하는 것으로 의미된다. 또한, 일부 실시예에서, 다수의 소프트웨어 발명은 개별 소프트웨어 발명을 유지하면서 더 큰 프로그램의 서브 부분으로서 구현될 수 있다. 일부 실시예에서, 다수의 소프트웨어 발명은 또한 별도의 프로그램으로서 구현될 수 있다. 마지막으로, 본원에 기술된 소프트웨어 발명을 함께 구현하는 별도의 프로그램의 임의의 조합은 본 개시 내용의 범위 내에 속한다. 일부 실시예에서, 소프트웨어 프로그램은, 하나 이상의 전자 시스템 상에서 동작하도록 설치될 경우, 소프트웨어 프로그램의 동작을 실행하고 수행하는 하나 이상의 특정 머신 구현예를 정의한다.
도 8은 본 개시 내용의 일부 실시예가 구현되는 전자 시스템(800)을 개념적으로 도시한 것이다. 전자 시스템(800)은 컴퓨터(예컨대, 데스크탑 컴퓨터, 퍼스널 컴퓨터, 태블릿 컴퓨터 등), 전화기, PDA, 또는 임의의 다른 종류의 전자 디바이스일 수 있다. 이러한 전자 시스템은 다양한 타입의 컴퓨터 판독 가능 매체 및 다양한 다른 타입의 컴퓨터 판독 가능 매체에 대한 인터페이스를 포함한다. 전자 시스템(800)은 버스(805), 처리 유닛(들)(810), 그래픽 처리 유닛(GPU)(815), 시스템 메모리(820), 네트워크(825), 판독 전용 메모리(830), 영구 저장 디바이스(835), 입력 디바이스(840), 및 출력 디바이스(845)를 포함한다.
버스(805)는 전자 시스템(800)의 수많은 내부 디바이스를 통신 가능하게 연결하는 모든 시스템, 주변 장치, 및 칩셋 버스를 집합적으로 나타낸다. 예를 들어, 버스(805)는 처리 유닛(들)(810)을 GPU(815), 판독 전용 메모리(830), 시스템 메모리(820), 및 영구 저장 디바이스(835)와 통신 가능하게 연결한다.
이들 다양한 메모리 유닛으로부터, 처리 유닛(들)(810)은 본 개시 내용의 프로세스를 실행하기 위해 실행할 인스트럭션 및 처리할 데이터를 검색한다. 처리 유닛(들)은 상이한 실시예에서 단일 프로세서 또는 다중 코어 프로세서일 수 있다. 일부 인스트럭션은 GPU(815)에 전달되고 GPU(815)에 의해 실행된다. GPU(815)는 다양한 계산을 오프로드하거나 처리 유닛(들)(810)에 의해 제공되는 이미지 처리를 보완할 수 있다.
판독 전용 메모리(ROM)(830)는 전자 시스템의 처리 유닛(들)(810) 및 다른 모듈에 의해 사용되는 정적 데이터 및 인스트럭션을 저장한다. 한편, 영구 저장 디바이스(835)는 판독 및 기입 메모리 디바이스이다. 이러한 디바이스는 전자 시스템(800)이 턴오프되는 경우에도 인스트럭션 및 데이터를 저장하는 비 휘발성 메모리 유닛이다. 본 개시 내용의 일부 실시예는 영구 저장 디바이스(835)로서 대용량 저장 디바이스(예를 들어, 자기 또는 광 디스크 및 그 해당 디스크 드라이브)를 사용한다.
다른 실시예는 영구 저장 디바이스로서 착탈식 저장 디바이스(예를 들어, 플로피 디스크, 플래시 메모리 디바이스 등 및 그 해당 디스크 드라이브)를 사용한다. 영구 저장 디바이스(835)와 마찬가지로, 시스템 메모리(820)는 판독 및 기입 메모리 디바이스이다. 그러나, 저장 디바이스(835)와는 달리, 시스템 메모리(820)는 랜덤 액세스 메모리와 같은 휘발성 판독 및 기입 메모리이다. 시스템 메모리(820)는 프로세서가 런타임에 사용하는 인스트럭션 및 데이터의 일부를 저장한다. 일부 실시예에서, 본 개시 내용에 따른 프로세스는 시스템 메모리(820), 영구 저장 디바이스(835), 및/또는 판독 전용 메모리(830)에 저장된다. 예를 들어, 다양한 메모리 유닛은 일부 실시예에 따라 멀티미디어 클립을 처리하기 위한 인스트럭션을 포함한다. 이들 다양한 메모리 유닛으로부터, 처리 유닛(들)(810)은 일부 실시예의 프로세스를 실행하기 위해 실행할 인스트럭션 및 처리할 데이터를 검색한다.
버스(805)는 또한 입력 및 출력 디바이스(840 및 845)에 연결된다. 입력 디바이스(840)는 사용자로 하여금 전자 시스템에 정보를 전달하고 전자 시스템에 대한 커맨드를 선택하게 할 수 있다. 입력 디바이스(840)는 영숫자 키보드 및 포인팅 디바이스(또한 "커서 제어 디바이스"라고 지칭되기도 함), 카메라(예컨대, 웹캠), 마이크로폰, 또는 음성 커맨드를 수신하기 위한 유사한 디바이스 등을 포함한다. 출력 디바이스(845)는 전자 시스템에 의해 생성된 이미지를 디스플레이하거나 또는 그렇지 않으면 데이터를 출력한다. 출력 디바이스(845)는 프린터 및 디스플레이 디바이스, 예를 들어, 음극선관(CRT) 또는 액정 디스플레이(LCD), 뿐만 아니라 스피커 또는 유사한 오디오 출력 디바이스를 포함한다. 일부 실시예는 입력 및 출력 디바이스 모두로 기능하는 터치스크린과 같은 디바이스를 포함한다.
마지막으로, 도 8에 도시된 바와 같이, 버스(805)는 또한 네트워크 어댑터(도시되지 않음)를 통해 전자 시스템(800)을 네트워크(825)에 연결한다. 이러한 방식으로, 컴퓨터는 컴퓨터 네트워크(예를 들어, 근거리 통신망("LAN"), 광역 통신망("WAN"), 또는 인트라넷), 또는 인터넷과 같은 네트워크망(network of networks)의 일부일 수 있다. 전자 시스템(800)의 임의의 또는 모든 컴포넌트는 본 개시 내용과 함께 사용될 수 있다.
일부 실시예는 전자 컴포넌트, 예를 들어, 머신 판독 가능 또는 컴퓨터 판독 가능 매체(대안적으로 컴퓨터 판독 가능 저장 매체, 머신 판독 가능 매체, 또는 머신 판독 가능 저장 매체로 지칭됨)에 컴퓨터 프로그램 인스트럭션을 저장하는 마이크로프로세서, 스토리지, 및 메모리를 포함한다. 이러한 컴퓨터 판독 가능 매체의 일부 예는 RAM, ROM, 판독 전용 컴팩트 디스크(CD-ROM), 기록 가능한 컴팩트 디스크(CD-R), 재기록 가능한 컴팩트 디스크(CD-RW), 판독 전용 디지털 다용도 디스크(예컨대, DVD-ROM, 이중 층 DVD-ROM), 다양한 기록 가능/재기록 가능 DVD(예컨대, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예컨대, SD 카드, 미니 SD 카드, 마이크로 SD 카드 등), 자기 및/또는 솔리드 스테이트 하드 드라이브, 판독 전용 및 기록 가능한 Blu-Ray® 디스크, 초고밀도 광 디스크, 임의의 다른 광학 또는 자기 매체, 및 플로피 디스크를 포함한다. 컴퓨터 판독 가능 매체는, 적어도 하나의 처리 유닛에 의해 실행될 수 있고, 다양한 동작을 수행하기 위한 인스트럭션 세트를 포함하는 컴퓨터 프로그램을 저장할 수 있다. 컴퓨터 프로그램 또는 컴퓨터 코드의 예는 컴파일러에 의해 생성되는 것과 같은 머신 코드, 및 인터프리터를 사용하여 컴퓨터, 전자 컴포넌트, 또는 마이크로프로세서에 의해 실행되는 하이 레벨 코드를 포함하는 파일을 포함한다.
위의 논의는 주로 소프트웨어를 실행하는 마이크로프로세서 또는 다중 코어 프로세서를 언급하지만, 위에서 설명한 특징 및 애플리케이션의 다수는 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA)와 같은 하나 이상의 집적 회로에 의해 수행된다. 일부 실시예에서, 그러한 집적 회로는 회로 자체에 저장된 인스트럭션을 실행한다. 또한, 일부 실시예는 프로그래머블 로직 디바이스(programmable logic device)(PLD), ROM, 또는 RAM 디바이스에 저장된 소프트웨어를 실행한다.
본 명세서 및 본 출원의 모든 청구항에서 사용되는 바와 같이, 용어 "컴퓨터", "서버", "프로세서", 및 "메모리"는 모두 전자적 또는 다른 기술적 디바이스를 나타낸다. 이들 용어는 사람 또는 사람의 그룹을 배제한다. 명세서의 목적을 위해, 디스플레이 또는 디스플레이하는 용어는 전자 디바이스 상에 표시하는 것을 의미한다. 본 명세서 및 본 출원의 청구항에 사용된 바와 같이, "컴퓨터 판독 가능 매체", "컴퓨터 판독 가능 미디어" 및 "머신 판독 가능 매체"라는 용어는 컴퓨터에 의해 판독 가능한 형태로 정보를 저장하는 유형적인 물리적 객체로 완전히 제한된다. 이들 용어는 임의의 무선 신호, 유선 다운로드 신호, 및 임의의 다른 임시 신호를 배제한다.
본 개시 내용이 다수의 특정 세부 사항을 참조하여 설명되었지만, 본 기술 분야의 통상의 기술자는 본 개시 내용이 본 개시 내용의 사상을 벗어나지 않고 다른 특정 형태로 구현될 수 있음을 인식할 것이다. 또한, (도 4 내지 도 7을 포함하는) 여러 도면은 프로세스를 개념적으로 도시하고 있다. 이들 프로세스의 특정 동작은 도시 및 설명된 정확한 순서로 수행되지 않을 수 있다. 특정 동작은 하나의 연속적인 일련의 동작으로 수행되지 않을 수 있으며, 다른 실시예에서는 상이한 특정 동작이 수행될 수 있다. 또한, 프로세스는 여러 서브 프로세스를 사용하여 구현될 수 있거나, 또는 보다 큰 매크로 프로세스의 일부로서 구현될 수 있다. 따라서, 본 기술 분야의 통상의 기술자는 본 개시 내용이 전술한 예시적인 세부 사항에 의해 제한되는 것이 아니라, 오히려 첨부된 청구항에 의해 정의되어야 한다는 것을 이해할 것이다.
추가 참고 사항
본원에 기술된 발명의 대상은 때때로 상이한 다른 컴포넌트 내에 포함되거나 이들과 연결된 상이한 컴포넌트를 도시한다. 그러한 도시된 아키텍처는 단지 예에 불과할 뿐이며, 실제로 동일한 기능을 달성하는 많은 다른 아키텍처가 구현될 수 있다는 것을 이해해야 한다. 개념적 의미에서, 동일한 기능을 달성하기 위한 임의의 배열의 컴포넌트들은 원하는 기능이 달성되도록 효과적으로 "연관"된다. 따라서, 본원에서 특정 기능을 달성하기 위해 결합된 임의의 두 개의 컴포넌트는 아키텍처 또는 중간의 컴포넌트와는 관계없이 원하는 기능이 달성되도록 서로 "연관된" 것으로 간주될 수 있다. 유사하게, 그렇게 연관된 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작 가능하게 접속된" 또는 "동작 가능하게 연결된" 것으로 간주될 수 있으며, 그렇게 연관될 수 있는 임의의 두 개의 컴포넌트는 또한 서로 원하는 기능을 달성하기 위해 서로 "동작 가능하게 연결 가능한" 것으로 간주될 수 있다. 동작 가능하게 연결 가능한 특정 예는 물리적으로 짝을 이룰 수 있는 및/또는 물리적으로 상호 작용하는 컴포넌트, 및/또는 무선으로 상호 작용 가능한 및/또는 무선으로 상호 작용하는 컴포넌트, 및/또는 논리적으로 상호 작용 가능한 및/또는 논리적으로 상호 작용하는 컴포넌트를 포함하지만, 이에 제한되지는 않는다.
또한, 본원에서 거의 모든 복수 및/또는 단수 용어의 사용과 관련하여, 본 기술 분야의 기술자는 문맥 및/또는 적용례에 적절한 대로 복수에서 단수로 및/또는 단수에서 복수로 바꿀 수 있다. 다양한 단수/복수 치환은 명확성을 위해 본원에 명시적으로 기술될 수도 있다.
또한, 일반적으로, 본원 및 특히 첨부된 청구항, 예컨대, 첨부된 청구항의 본문에서 사용되는 용어는 일반적으로 "개방" 용어로서 간주되며, 예컨대, "포함하는" 용어는 "포함하지만 이에 제한되지는 않는"으로 해석되어야 하고, 용어 "갖는"은 "적어도 갖는"으로 해석되어야 하고, 용어 "포함한다"는 "포함하지만 이에 제한되지는 않는다" 등으로 해석되어야 한다는 것이 본 기술 분야의 기술자에게 이해될 것이다. 특정 수의 도입된 청구항 인용이 의도되는 경우, 그러한 의도가 청구항에서 명시적으로 인용될 것이며, 그러한 인용이 없는 경우 그러한 의도는 존재하지 않는다는 것이 본 기술 분야의 기술자에게는 추가로 이해될 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부된 청구항은 청구항 인용을 도입하기 위해 "적어도 하나" 및 "하나 이상"이라는 도입 문구의 사용을 포함할 수 있다. 그러나, 그러한 문구의 사용은 부정 관사 "a" 또는 "an"에 의한 청구항 인용의 도입이 그러한 도입된 청구항 인용을 포함하는 임의의 특정 청구항을 그러한 하나의 인용만을 포함하는 구현예로 제한한다는 것을 의미하는 것으로 해석되어서는 안되며, 심지어는 동일한 청구항이 "하나 이상" 또는 "적어도 하나"라는 도입 문구와 "a" 또는 "an"과 같은 부정 관사를 포함하는 경우에도, 예컨대, "a" 및/또는 "an"는 전형적으로 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 해석되어야 하며; 청구항 인용을 도입하는 데 사용되는 정관사의 사용의 경우에도 마찬가지이다. 또한, 특정 수의 도입된 청구항 인용이 명시적으로 인용되더라도, 본 기술 분야의 기술자는 그러한 인용이 적어도 인용된 수를 의미하는 것으로 해석되어야 하며, 예컨대, 다른 수식어가 없는 기본적인 "두 개의 인용"은 적어도 두 개의 인용 또는 두 개 이상의 인용을 의미하는 것으로 인식할 것이다. 또한, "A, B, 및 C 등 중 적어도 하나"와 유사한 관례가 사용되는 경우, 일반적으로 그러한 구성은 본 기술 분야의 기술자가 그 관례를 이해할 것이라는 의미로 의도되며, 예컨대, "A, B, 및 C 중 적어도 하나를 갖는 시스템"은 A 단독, B 단독, C 단독, A 및 B를 함께, A 및 C를 함께, B 및 C를 함께, 및/또는 A, B 및 C를 함께 갖는 시스템을 포함할 것이지만 이에 제한되지는 않을 것이다. “A, B, 또는 C 등 중 적어도 하나"와 유사한 관례가 사용되는 경우, 일반적으로 그러한 구성은 본 기술 분야의 기술자가 그 관례를 이해할 것이라는 의미로 의도되며, 예컨대, "A, B, 또는 C 중 적어도 하나를 갖는 시스템"은 A 단독, B 단독, C 단독, A 및 B를 함께, A 및 C를 함께, B 및 C를 함께, 및/또는 A, B 및 C를 함께 갖는 시스템을 포함할 것이지만 이에 제한되지는 않을 것이다. 상세한 설명, 청구항, 또는 도면에서, 두 개 이상의 대체 용어를 나타내는 거의 모든 택일적인 단어 및/또는 문구는 그 용어 중의 하나, 그 용어의 각각, 또는 그 용어 모두를 포함할 가능성을 고려하도록 이해되어야 한다는 것이 본 기술 분야의 기술자에게 추가로 이해될 것이다. 예를 들어, "A 또는 B"라는 문구는 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
전술한 내용으로부터, 본 개시 내용의 다양한 구현예가 예시의 목적으로 본원에 설명되었으며, 본 개시 내용의 범위 및 사상을 벗어나지 않고 다양한 수정이 행해질 수 있다는 것이 이해될 것이다. 따라서, 본원에 개시된 다양한 구현예는 제한적인 것으로 의도되지 않으며, 진정한 범위 및 정신은 다음의 청구항에 의해 표시된다.

Claims (12)

  1. 비디오 디코딩 방법으로서,
    비트스트림으로부터 복수의 비디오 픽처로서 디코딩될 데이터를 수신하는 단계;
    현재의 비디오 픽처 시퀀스에 대한 시퀀스 파라미터 세트(SPS) 내의 제1 신택스 요소를 위해 상기 비트스트림을 파싱하는 단계; 및
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우 그리고 상기 현재의 비디오 픽처 시퀀스 중 현재 픽처 내의 현재 블록에 대해 변환 스킵 모드가 사용되는 경우, 변환되지 않은 양자화된 잔차 신호를 사용함으로써 상기 현재 블록을 재구성하는 단계를 포함하는, 비디오 디코딩 방법.
  2. 제1항에 있어서,
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우, 상기 현재의 비디오 픽처 시퀀스에 대해 블록 델타 펄스 코드 변조(BDPCM; Block Delta Pulse Code Modulation)가 인에이블되는지의 여부를 나타내기 위한 상기 SPS 내의 제2 신택스 요소를 위해 상기 비트스트림을 파싱하는, 비디오 디코딩 방법.
  3. 제2항에 있어서,
    상기 현재의 비디오 픽처 시퀀스에 대해 BDPCM이 인에이블되는 경우, 상기 현재 블록이 BDPCM을 사용하여 코딩되는지의 여부를 나타내기 위해, 상기 비트스트림에서 상기 현재 픽처의 상기 현재 블록과 연관된 플래그가 코딩되는, 비디오 디코딩 방법.
  4. 제3항에 있어서,
    상기 현재 블록 내의 위치의 잔차 신호는 상기 잔차 신호와 이웃 위치의 이전에 코딩된 잔차 신호 간의 차이를 사용하여 코딩되는, 비디오 디코딩 방법.
  5. 제2항에 있어서,
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우, 상기 현재 블록의 잔차 신호를 엔트로피 코딩하기 위해 대안적인 잔차 코딩 프로세스가 인에이블되는지의 여부를 나타내기 위한 제3 신택스 요소를 위해 상기 비트스트림을 파싱하는, 비디오 디코딩 방법.
  6. 제1항에 있어서,
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우, 상기 현재 블록의 잔차 신호를 엔트로피 코딩하기 위해 대안적 잔차 코딩 프로세스가 인에이블되는지의 여부를 나타내기 위한 플래그를 위해 상기 비트스트림을 파싱하는, 비디오 디코딩 방법.
  7. 제1항에 있어서,
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우, 상기 현재 픽처의 상기 현재 블록이 변환 스킵 모드를 사용하여 코딩되는지의 여부를 나타내기 위한 제1 플래그가, 상기 비트스트림으로부터 파싱되는, 비디오 디코딩 방법.
  8. 제7항에 있어서,
    상기 현재 블록이 변환 스킵 모드를 사용하여 코딩되는 경우 그리고 대안적인 잔차 코딩 프로세스가 인에이블되는 경우, 상기 현재 블록의 잔차 신호는 변환 스킵 잔차 코딩을 사용하여 엔트로피 코딩되는, 비디오 디코딩 방법.
  9. 제1항에 있어서,
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용되지 않는다는 것을 상기 제1 신택스 요소가 나타내는 경우, 상기 현재의 비디오 픽처 시퀀스 내의 모든 블록은 양자화된 변환 계수를 사용하여 코딩되는, 비디오 디코딩 방법.
  10. 전자 장치로서,
    동작을 수행하도록 구성된 비디오 디코더 회로를 포함하고;
    상기 동작은:
    비트스트림으로부터 복수의 비디오 픽처로서 디코딩될 데이터를 수신하는 단계;
    현재의 비디오 픽처 시퀀스에 대한 시퀀스 파라미터 세트(SPS) 내의 제1 신택스 요소를 위해 상기 비트스트림을 파싱하는 단계; 및
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우 그리고 상기 현재의 비디오 픽처 시퀀스 중 현재 픽처 내의 현재 블록에 대해 변환 스킵 모드가 사용되는 경우, 변환되지 않은 양자화된 잔차 신호를 사용함으로써 상기 현재 블록을 재구성하는 단계를 포함하는, 전자 장치.
  11. 비디오 인코딩 방법으로서,
    비트스트림에서 복수의 비디오 픽처로서 인코딩될 데이터를 수신하는 단계;
    상기 비트스트림 내에, 현재의 비디오 픽처 시퀀스에 대한 시퀀스 파라미터 세트(SPS) 내의 제1 신택스 요소를 시그널링하는 단계; 및
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우 그리고 상기 현재의 비디오 픽처 시퀀스 중 현재 픽처 내의 현재 블록에 대해 변환 스킵 모드가 사용되는 경우, 변환되지 않은 잔차 신호를 양자화함으로써 상기 현재 블록을 인코딩하는 단계를 포함하는, 비디오 인코딩 방법.
  12. 비디오 코딩 방법으로서,
    복수의 비디오 픽처로서 인코딩 또는 디코딩될 데이터를 수신하는 단계;
    현재의 비디오 픽처 시퀀스에 대한 시퀀스 파라미터 세트(SPS) 내의 제1 신택스 요소를 시그널링하는 단계; 및
    상기 현재의 비디오 픽처 시퀀스에 대해 변환 스킵 모드가 허용된다는 것을 상기 제1 신택스 요소가 나타내는 경우 그리고 상기 현재의 비디오 픽처 시퀀스 중 현재 픽처 내의 현재 블록에 대해 변환 스킵 모드가 사용되는 경우, 변환되지 않은 잔차 신호를 양자화하거나 또는 변환되지 않은 양자화된 잔차 신호를 사용하여 상기 현재 블록을 인코딩하거나 디코딩하는 단계를 포함하는, 비디오 코딩 방법.
KR1020227002595A 2019-06-28 2020-06-24 변환 스킵된 블록의 코딩 시그널링 KR20220024966A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962868830P 2019-06-28 2019-06-28
US62/868,830 2019-06-28
US16/908,436 2020-06-22
US16/908,436 US11350131B2 (en) 2019-06-28 2020-06-22 Signaling coding of transform-skipped blocks
PCT/CN2020/098271 WO2020259631A1 (en) 2019-06-28 2020-06-24 Signaling coding of transform-skipped blocks

Publications (1)

Publication Number Publication Date
KR20220024966A true KR20220024966A (ko) 2022-03-03

Family

ID=74044883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227002595A KR20220024966A (ko) 2019-06-28 2020-06-24 변환 스킵된 블록의 코딩 시그널링

Country Status (6)

Country Link
US (2) US11350131B2 (ko)
KR (1) KR20220024966A (ko)
CN (1) CN114009015A (ko)
MX (1) MX2021016150A (ko)
TW (2) TWI799719B (ko)
WO (1) WO2020259631A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7148739B2 (ja) * 2019-03-04 2022-10-05 エルジー エレクトロニクス インコーポレイティド 映像コーディングシステムにおいて文脈コーディングされたサインフラグを使用する映像デコーディング方法及びその装置
KR20220021442A (ko) * 2019-06-18 2022-02-22 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
CN114375578A (zh) * 2019-07-10 2022-04-19 Lg电子株式会社 用于残差编码的图像解码方法及其设备
KR20220019258A (ko) * 2019-07-10 2022-02-16 엘지전자 주식회사 영상 코딩 시스템에서 영상 코딩 방법 및 장치
US11375196B2 (en) * 2019-09-19 2022-06-28 Tencent America LLC Method of context modeling for entropy coding of transform coefficient flags with transform skip, and coding method with the same
WO2021060940A1 (ko) * 2019-09-25 2021-04-01 엘지전자 주식회사 Bdpcm이 적용되는 부호화 블록에 이용되는 레지듀얼 코딩 방법을 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US20220400275A1 (en) * 2021-06-10 2022-12-15 Tencent America LLC Zero Residual Flag Coding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6137922A (en) 1994-03-02 2000-10-24 Raytheon Company Method and apparatus for compressing and expanding digital data
US8208545B2 (en) * 2006-06-01 2012-06-26 Electronics And Telecommunications Research Institute Method and apparatus for video coding on pixel-wise prediction
CN104380734B (zh) 2012-06-07 2017-09-15 寰发股份有限公司 编码以及解码视频数据的方法和装置
US9426466B2 (en) 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
US20150139303A1 (en) 2012-06-29 2015-05-21 Sony Corporation Encoding device, encoding method, decoding device, and decoding method
US20140146894A1 (en) 2012-11-28 2014-05-29 General Instrument Corporation Devices and methods for modifications of syntax related to transform skip for high efficiency video coding (hevc)
JP6285014B2 (ja) 2013-04-23 2018-02-28 クゥアルコム・インコーポレイテッドQualcomm Incorporated 映像コーディングにおける予測残差ブロックの位置再設定
US10511859B2 (en) 2016-02-04 2019-12-17 Mediatek Inc. Method and apparatus for image compression without residue signaling
WO2020018502A1 (en) * 2018-07-16 2020-01-23 Envision Solutions LLC Virtual forced fixation
US11206417B2 (en) * 2019-05-30 2021-12-21 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
US20200413100A1 (en) 2020-12-31
TW202110186A (zh) 2021-03-01
CN114009015A (zh) 2022-02-01
WO2020259631A1 (en) 2020-12-30
MX2021016150A (es) 2022-05-24
TWI830629B (zh) 2024-01-21
TWI799719B (zh) 2023-04-21
US20220239951A1 (en) 2022-07-28
TW202329690A (zh) 2023-07-16
US11350131B2 (en) 2022-05-31
US11778235B2 (en) 2023-10-03

Similar Documents

Publication Publication Date Title
CN112640448B (zh) 编码转换系数的熵编解码方法与装置
CN113812162B (zh) 视频中的简化二次变换的上下文建模
TWI753356B (zh) 用於編碼或解碼轉換塊的方法與裝置
KR20220024966A (ko) 변환 스킵된 블록의 코딩 시그널링
US10887594B2 (en) Entropy coding of coding units in image and video data
TW202101979A (zh) 具有適應性參數集之適應性迴路濾波器
JP7277616B2 (ja) ビデオ・データを処理する方法、装置及び記憶媒体
US11303898B2 (en) Coding transform coefficients with throughput constraints
WO2020211777A1 (en) Methods and apparatuses for coding video data with secondary transform
CN113853785B (zh) 用于残差编解码的上下文建模
CN114930817A (zh) 量化相关参数的传讯技术
KR20220080001A (ko) 다중 변환 선택 시그널링
CN112042194B (zh) 一种编码/解码的方法及电子装置
WO2020228693A1 (en) Coding of multiple intra prediction methods
KR20220024972A (ko) 양자화 행렬들의 시그널링
TWI832602B (zh) 轉換係數符號的熵編碼
TWI734178B (zh) 具有產出限制的編碼轉換係數
JP2024516358A (ja) 係数符号化・復号化方法、符号器、復号器及びコンピュータ記憶媒体
KR20240027581A (ko) 인코딩 및 디코딩 방법, 비트 스트림, 인코더, 디코더 및 컴퓨터 저장 매체
KR20220045231A (ko) 서브화상 구조의 시그널링

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal