KR20240033178A - 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치 - Google Patents

비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20240033178A
KR20240033178A KR1020247007134A KR20247007134A KR20240033178A KR 20240033178 A KR20240033178 A KR 20240033178A KR 1020247007134 A KR1020247007134 A KR 1020247007134A KR 20247007134 A KR20247007134 A KR 20247007134A KR 20240033178 A KR20240033178 A KR 20240033178A
Authority
KR
South Korea
Prior art keywords
decoding
mpm
coding
coded
flag
Prior art date
Application number
KR1020247007134A
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 KR20240033178A publication Critical patent/KR20240033178A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 명세서에 설명된 기술은 비디오 데이터를 인코딩 및/또는 디코딩하도록 구성된 방법, 장치 및 컴퓨터 판독 가능 매체에 관한 것이다. 예측 모드는 현재 데이터 단위를 인트라 예측 코딩하기 위해 결정되고, 여기서 결정된 예측 모드는 현재 데이터 단위에 대해 결정된 복수의 최고 확률 모드(most probable modes) 중의 최고 확률 모드이다. 결정된 예측 모드의 MPM 정보는 코딩 빈(coding bin)을 사용하여 인코딩되고, 인코딩하는 것은 코딩 빈이 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 코딩 빈을 컨텍스트 인코딩하는 것을 포함한다.

Description

비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치{METHODS AND APPARATUS FOR ENTROPY CODING AND DECODING ASPECTS OF VIDEO DATA}
[관련 출원]
본 출원은, 2018년 7월 24일에 출원되고 발명의 명칭이 "간략화된 인트라 모드 코딩(SIMPLIFIED INTRA MODE CODING)"인 미국 특허 가출원 제62/702,435호와, 2018년 9월 19일에 출원되고 발명의 명칭이 "계수 코딩(COEFFICIENT CODING)"인 미국 특허 가출원 제62/733,099호와, 2019년 7월 19일에 출원된 미국 특허 출원 제16/516,957호에 대한 35 U.S.C. § 119(e) 하의 우선권을 주장하며, 이들 출원들은 참조에 의해 그 전체가 본 명세서에 통합된다.
[기술분야]
본 명세서에 설명된 기술은 일반적으로 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하는 것과 관련되고, 특히 변환 계수 및 인트라 모드 예측 모드를 코딩하는 것과 관련된다.
다양한 비디오 코딩 기술이 예를 들면, 저장 및/또는 전송용과 같이 비디오를 인코딩하는 데 사용될 수 있다. 비디오 코딩 기술은 또한 재생(playback)을 위해 인코딩된 비디오를 디코딩하는 것을 제공할 수 있다. 비디오 코덱은 디지털 비디오를 압축 및/또는 압축 해제하는 전자 회로 및/또는 소프트웨어를 포함할 수 있다. 다양한 비디오 코딩 표준이 존재하며 비디오 코덱은 일반적으로 하나 이상의 비디오 코딩 표준을 준수한다. 예를 들면, HEVC(High-Efficiency Video Coding)는 JCT-VC(Joint Collaborative Team on Video Coding)에 의해 개발된 국제 비디오 코딩 표준이다. 또 다른 예로 VVC(Versatile Video Coding) 비디오 코딩 표준은 JVET(Joint Video Experts Team)에 의해 개발 중인 또 다른 국제 비디오 코딩 표준이다. HEVC 및 VVC를 포함한 많은 비디오 코딩 표준은 공간 및 시간 압축을 사용한다. 압축 프로세스는, 결과 비트 스트림을 생성하기 위해 변환, 양자화 및 엔트로피 코딩될 수 있는 잔차 데이터(residual data)를 생성하여 비디오 데이터를 인코딩할 수 있으며, 마찬가지로 비트 스트림을 엔트로피 디코딩하고, 데이터를 역양자화 및 역변환하여 잔차 데이터 및 궁극적으로 화상을 재구성함으로써 디코딩할 수 있다.
개시된 주제에 따라, 몰입형 미디어 콘텐츠 오버레이를 위한 장치, 시스템 및 방법이 제공된다.
일부 실시예는 비디오 데이터를 인코딩하기 위한 인코딩 방법에 관한 것이다. 본 방법은, 현재 데이터 단위(current data unit)를 인트라 예측 인코딩하기 위한 예측 모드를 결정하는 단계 - 결정된 예측 모드는 현재 데이터 단위에 대해 결정된 복수의 최고 확률 모드(most probable mode; MPM) 중의 최고 확률 모드임 -; 및 코딩 빈(coding bin)을 사용하여 결정된 예측 모드의 MPM 정보를 인코딩하는 단계를 포함하고, 인코딩하는 단계는 코딩 빈이 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 코딩 빈을 컨텍스트 인코딩(context encoding)하는 단계를 포함한다.
일부 예시에서, 코딩 빈을 사용하여 MPM 정보를 인코딩하는 단계는 코딩 빈이 제1 빈인 경우 코딩 빈을 컨텍스트 인코딩하는 단계를 포함한다.
일부 예시에서, 코딩 빈을 사용하여 MPM 정보를 인코딩하는 단계는 코딩 빈이 제2 빈 또는 그 이후의 빈이면, 코딩 빈을 우회 인코딩(bypass encoding)하는 단계를 포함한다.
일부 예시에서, MPM 정보는 복수의 MPM과 연관된 MPM 리스트에서의 위치를 나타내는 인덱스를 포함하고, 인덱스는, 절단된 단항 이진화(truncated unary binarization)를 사용하여 인코딩된다.
일부 예시에서, 본 방법은, 제2 데이터 단위를 인트라 예측 코딩하기 위한 예측 모드를 결정하는 단계 - 결정된 예측 모드는 복수의 최고 확률 모드의 현재 리스트에서의 최고 확률 모드가 아님 -, 및 고정 길이 코드를 사용하여 결정된 예측 모드를 인코딩하는 단계를 포함한다.
일부 실시예는 비디오 데이터를 인코딩하기 위한 인코딩 방법에 관한 것이다. 본 방법은, 현재 계수 그룹의 변환 계수에 대해, 복수의 이웃 계수 그룹의 변환 계수에 기초하여 복수의 컨텍스트 모델 중에서 컨텍스트 모델을 결정하는 단계, 및 결정된 컨텍스트 모델을 사용하여 현재 계수 그룹의 변환 계수를 인코딩하는 단계를 포함한다.
일부 예시에서, 복수의 이웃 계수 그룹의 변환 계수에 기초하여 컨텍스트 모델을 결정하는 단계는, 현재 계수 그룹의 변환 계수가 변환 스킵 코딩되는지(transform skip coded) 여부에 기초하여 복수의 이웃 그룹의 변환 계수를 결정하는 단계를 포함한다.
일부 예시에서, 본 방법은, 현재 계수 그룹의 변환 계수가 변환 스킵 코딩되는지 여부에 기초하여, 복수의 이웃 그룹의 변환 계수의 수, 각각의 복수의 이웃 그룹의 변환 계수의 위치, 또는 이들 둘 다를 결정하는 단계를 포함한다.
일부 예시에서, 본 방법은 3개의 이웃 계수 그룹의 변환 계수에 기초하여 컨텍스트 모델을 결정하는 단계를 포함한다.
일부 실시예에서, 본 방법은 5개의 이웃 계수 그룹의 변환 계수에 기초하여 컨텍스트 모델을 결정하는 단계를 포함한다.
일부 예시에서, 본 방법은, 복수의 컨텍스트 모델로부터 컨텍스트 모델을 결정하는 단계를 포함하고, 이 결정하는 단계는 4개의 컨텍스트 모델 중에서 컨텍스트 모델을 결정하는 단계, 6개의 컨텍스트 모델 중에서 컨텍스트 모델을 결정하는 단계, 또는 이들의 일부 조합을 포함한다.
일부 예시에서, 결정된 컨텍스트 모델을 사용하여 현재 계수 그룹의 변환 계수를 인코딩하는 단계는, 적어도 현재 계수 그룹의 변환 계수 중의 변환 계수가, 0이 아닌(non-zero) 값을 갖는지 여부를 나타내는 제1 플래그; 현재 계수 그룹의 변환 계수 중의 변환 계수가 0 값을 갖는지 여부를 나타내는 제2 플래그; 현재 계수 그룹의 변환 계수 중의 변환 계수의 절댓값이 1보다 큰지 여부를 나타내는 제3 플래그; 현재 계수 그룹의 변환 계수 중의 변환 계수의 패리티를 나타내는 제4 플래그; 및 현재 계수 그룹의 변환 계수 중의 변환 계수의 절댓값이 3보다 큰지 여부를 나타내는 제5 플래그 중 하나 이상을 인코딩하는 단계를 포함한다.
일부 양상은 비디오 데이터를 디코딩하기 위한 디코딩 방법에 관한 것이다. 본 방법은, 코딩 빈을 디코딩함으로써 현재 데이터 단위의 예측 모드와 연관된 최고 확률 모드(MPM) 정보를 디코딩하는 단계 - 디코딩하는 단계는 코딩 빈이 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 코딩 빈을 컨텍스트 디코딩하는 단계를 포함함 -; 및 디코딩된 MPM 정보에 기초하여 현재 데이터 단위를 인트라 예측 디코딩하기 위한 예측 모드를 결정하는 단계를 포함한다.
일부 예시에서, 코딩 빈을 디코딩하여 MPM 정보를 디코딩하는 단계는 코딩 빈이 제1 빈인 경우 코딩 빈을 컨텍스트 디코딩하는 단계를 포함한다.
일부 예시에서, 코딩 빈을 디코딩하여 MPM 정보를 디코딩하는 단계는 코딩 빈이 제2 빈 또는 그 이후의 빈이면, 코딩 빈을 우회 디코딩하는 단계를 포함한다.
일부 예시에서, MPM 정보는 현재 데이터 단위에 대해 결정된 복수의 MPM과 연관된 MPM 리스트에서의 위치를 나타내는 인덱스를 포함하고, 인덱스는, 절단된 단항 역이진화(truncated unary de-binarization)를 사용하여 디코딩된다.
일부 실시예는 비디오 데이터를 디코딩하기 위한 디코딩 방법에 관한 것이다. 본 방법은, 컨텍스트 모델을 사용하여 코딩된 현재 계수 그룹의 변환 계수와 연관된 데이터를 디코딩하는 단계를 포함하고, 컨텍스트 모델은 복수의 이웃 계수 그룹의 변환 계수에 기초하여 복수의 컨텍스트 모델로부터 결정되었다.
일부 예시에서, 본 방법은, 현재 계수 그룹의 변환 계수가 변환 스킵 코딩되는지 여부에 기초하여 복수의 이웃 그룹의 변환 계수를 결정하는 단계를 포함한다.
일부 양상들은 비디오 데이터를 디코딩하도록 구성된 장치와 관련된다. 장치는 메모리와 통신하는 프로세서를 포함하고, 프로세서는 메모리에 저장된 명령어를 실행하도록 구성되고, 명령어는 프로세서로 하여금, 복수의 최고 확률 모드(MPM)의 리스트에서의 위치를 나타내는 인덱스를 디코딩하고 - 디코딩하는 것은 코딩 빈을 디코딩함으로써 현재 데이터 단위의 예측 모드와 연관된 최고 확률 모드(MPM)를 디코딩하는 것을 포함하고, 코딩 빈이 MPM 정보에 대해 제1 코딩 빈인지 여부에 기초해 컨텍스트 디코딩됨 -, 디코딩된 MPM 정보에 기초하여 현재 데이터 단위를 인트라 예측 디코딩하기 위한 예측 모드를 결정하게 한다.
일부 양상들은 비디오 데이터를 디코딩하도록 구성된 장치와 관련된다. 장치는 메모리와 통신하는 프로세서를 포함하고, 프로세서는 메모리에 저장된 명령어를 실행하도록 구성되고, 명령어는 프로세서로 하여금, 컨텍스트 모델을 사용하여 코딩된 현재 계수 그룹의 변환 계수와 연관된 데이터를 디코딩하게 하고, 컨텍스트 모델은 복수의 이웃 계수 그룹의 변환 계수에 기초하여 복수의 컨텍스트 모델 중에서 결정되었다.
따라서, 이어지는 상세한 설명이 더 잘 이해될 수 있도록 그리고 기술에 대한 현재의 기여가 더 잘 이해될 수 있도록 개시된 주제의 특징들이 다소 넓게 개괄되었다. 물론, 이후에 설명되고 여기에 첨부된 청구항들의 주제를 형성할 개시된 주제의 추가 특징이 있다. 본원에서 활용되는 어법(phraseology) 및 전문용어(terminology)는 설명의 목적을 위한 것이며 한정하는 것으로 간주되어서는 안된다는 것이 이해되어야 한다.
도면들에서, 다양한 도면들에 도시되는 각각의 동일하거나 거의 동일한 컴포넌트는 유사한 참조 문자로 표시된다. 명확성의 목적들을 위해, 모든 컴포넌트들이 모든 도면에서 라벨링되는 것은 아닐 수 있다. 도면은 반드시 일정한 비율로 그려지는 것은 아니며, 대신 여기에 설명된 기술 및 디바이스의 다양한 양상을 설명하는 데 중점을 둔다.
도 1은 일부 실시예에 따른 예시적인 비디오 코딩 구성을 도시한다.
도 2는 일부 실시예에 따른 예시적인 비디오 인코더의 양상을 도시한다.
도 3은 일부 실시예에 따른 예시적인 비디오 디코더의 양상을 도시한다.
도 4는 일부 예에 따라 코딩 트리 단위(coding tree units; CTU)로 분할된 화상을 도시한다.
도 5는 일부 예들에 따른 벤치마크 테스트 세트에 대한 인트라 예측 방향의 총수를 보여주는 다이어그램이다.
도 6은 일부 예들에 따른, 5개의 이웃 모드의 위치의 다이어그램을 도시한다.
도 7a 내지 7c는 일부 실시예에 따라 6개의 최고 확률 모드 인덱스에 대해 사용될 수 있는 이진화의 표를 도시한다.
도 7d는 일부 실시예에 따라 5개의 최고 확률 모드 인덱스에 대해 사용될 수 있는 이진화의 표를 도시한다.
도 8a는 일부 실시예에 따른 비디오 데이터를 인코딩하기 위한 예시적인 컴퓨터화된 방법을 도시한다.
도 8b는 일부 실시예에 따른 비디오 데이터를 디코딩하기 위한 예시적인 컴퓨터화된 방법을 도시한다.
도 9a는 일부 실시예에 따라 계수 그룹으로 분할된 변환된 양자화된 코딩 단위를 도시한다.
도 9b는 일부 실시예에 따라 특정 계수 그룹에 사용되는 컨텍스트 모델이 우측 계수 그룹 및 하부 계수 그룹에 어떻게 의존할 수 있는지를 보여주는 다이어그램이다.
도 9c는 일부 실시예에 따라 현재 서브블록의 플래그에 대한 컨텍스트 모델이 우측 서브블록, 하부 서브블록 및 우측 하부 서브블록에 어떻게 의존할 수 있는지를 보여주는 다이어그램이다.
도 10은 일부 실시예에 따라, 각 영역이 상이한 세트의 컨텍스트 모델을 갖는 3개의 영역으로 분할된 변환 유닛의 예를 도시한다.
도 11a는 일부 실시예에 따라 현재 계수 그룹에 대한 5개의 이웃이 컨텍스트 모델을 결정하는 데 사용될 수 있음을 보여주는 다이어그램이다.
도 11b는 일부 실시예에 따라 현재 계수 그룹에 대한 3개의 이웃이 컨텍스트 모델을 결정하는 데 사용될 수 있음을 보여주는 다이어그램이다.
도 12a는 일부 실시예에 따른 비디오 데이터를 인코딩하기 위한 예시적인 컴퓨터화된 방법을 도시한다.
도 12b는 일부 실시예에 따른 비디오 데이터를 디코딩하기 위한 예시적인 컴퓨터화된 방법을 도시한다.
다수의 인트라 예측 방향을 포함하여 인트라 예측에 다양한 기술이 사용될 수 있다. 일반적으로 비디오 인코더는 인트라 예측 모드를 시그널링한다. 예를 들어, 최고 확률 모드(MPM) 리스트에서의 MPM을 시그널링하기 위해, 비디오 인코더는 MPM 리스트 위치를 나타내는 인덱스를 포함하는 MPM 정보를 우회 인코딩해서 MPM 정보에 대한 빈들 중 어느 것도 컨텍스트 코딩되지 않도록 한다. 본 발명자들은 인트라 예측 모드를 코딩하기 위한 기존 기술의 다양한 결함을 발견하고 인식했다. 예를 들어, MPM 정보를 시그널링하기 위해 어떠한 컨텍스트 코딩도 사용하지 않으면 특히 대부분의 인덱스에서 일반적으로 사용되는 제1 인덱스에 대해 코딩 비효율성이 발생한다. 본 발명자들은 이러한 결함 및 다른 결함을 해결하는 인트라 예측 모드의 MPM 정보를 시그널링하는 기술을 개발했다. 여기에 설명된 기술은 MPM 인덱스에 대해 절단된 단항 이진화를 사용하는 것을 제공한다. MPM 정보의 제1 빈은 컨텍스트 코딩될 수 있는 반면, 나머지 빈은 우회 코딩될 수 있다. 이러한 컨텍스트 코딩 설계는 인트라 예측 모드 시그널링의 코딩 효율을 향상시킬 수 있다. 일부 실시예에서, 비MPM 모드(non-MPM modes)는 고정 길이 코드를 사용하여 시그널링될 수 있다.
잔차 변환/양자화된 데이터를 시그널링하기 위해 계수 코딩에 다양한 기술이 사용될 수 있다. 예를 들어, 인코더는 코딩 그룹당 기반(on a per-coding group(CG) basis)과 같이 계수에 대한 다양한 플래그를 시그널링할 수 있다. 그러나 본 발명자들은 일부 플래그를 코딩하는 데 종종 2개의 컨텍스트 모델만 사용되어 코딩 비효율성을 초래할 수 있음을 인식했다. 또한, 본 발명자들은 5개의 이웃 계수 그룹과 같은 설정된 수의 이웃 계수 그룹에 기초하여 일부 플래그가 코딩된다는 것을 인식했다. 본 발명자들은 이러한 결함과 다른 결함을 해결하는 잔차 변환/양자화된 데이터를 시그널링하기 위한 기술을 개발했다. 일부 실시예에서, 기술은 특정 계수 그룹을 코딩하기 위해 사용할 이웃 계수 그룹의 수 및/또는 위치를 결정하는 것을 포함할 수 있다. 일부 실시예에서, 기술은 연관된 코딩 단위가 변환 스킵 또는 변환을 사용하여 코딩되었는지 여부에 기초하여 사용할 이웃 계수 그룹을 결정한다. 예를 들어, 변환 코딩되는 CU에 대해 5개의 이웃 CG가 사용될 수 있는 한편, 변환 코딩되지 않은 CU에 대해 3개의 이웃 CG가 사용될 수 있다. 이 기술은 필요에 따라 이웃 코딩 그룹의 상이한 수 및/또는 위치를 사용하는 것을 허용할 수 있으며, 이는 코딩 유연성을 증가시키고 코딩 효율성을 향상시킬 수 있다.
다음의 설명에서, 개시된 주제의 철저한 이해를 제공하기 위해, 개시된 주제의 시스템 및 방법 및 그러한 시스템 및 방법이 동작할 수 있는 환경 등에 관한 수많은 특정 세부 사항이 설명된다. 또한, 아래에 제공된 예는 예시적인 것이며, 개시된 주제의 범위 내에 있는 다른 시스템 및 방법이 있는 것으로 고려된다는 것을 이해할 것이다.
도 1은 일부 실시예에 따른 예시적인 비디오 코딩 구성(100)을 도시한다. 비디오 코딩 구성(100)은 비디오 데이터(106)를 생성하는 하나 이상의 카메라(102A-102N)(총괄적으로 카메라(102)로 지칭됨)를 포함한다. 카메라(102)는 오디오 녹음 능력을 포함하는 카메라 및/또는 별도의 카메라 및 오디오 녹음 기능과 같은 임의의 유형의 카메라일 수 있다. 인코딩 디바이스(104)는 인코더(108)를 포함한다. 인코더(108)는 2차원 비디오 데이터를 인코딩 및/또는 압축한다. 디코딩 디바이스(110)는 인코딩된 데이터를 수신한다. 디코딩 디바이스(110)는 방송 네트워크를 통해, 모바일 네트워크(예를 들어, 셀룰러 네트워크)를 통해 그리고/또는 인터넷을 통해 비디오 제품(예를 들어, 디지털 비디오 디스크 또는 기타 컴퓨터 판독 가능 매체)으로서 비디오를 수신할 수 있다. 디코딩 디바이스(110)는 예를 들어, 컴퓨터, 머리 착용 디스플레이의 일부, 또는 디코딩 능력을 갖는 임의의 다른 장치일 수 있다. 디코딩 디바이스(110)는 인코딩된 비디오를 디코딩하여 비디오 데이터(114)를 생성하도록 구성되는 디코더(112)를 포함한다. 디스플레이(116)는 비디오 데이터(114)를 디스플레이한다.
도 2는 일부 실시예에 따른 예시적인 비디오 인코더(200)의 양상을 도시한다. 비디오 인코더(200)는 입력 비디오(202)를 수신하고 인트라 예측(204) 및 모션 추정 모션 보상(206)(인터 예측용), 변환 및 양자화 유닛(208), 엔트로피 코딩 유닛(210), 역양자화 및 변환 유닛(212), 인-루프 필터(in-loop filter)(214) 및 디코딩된 화상 버퍼(216)를 포함한다. 다른 실시예에서, 비디오 인코더(200)는 도 2에 예시된 것보다 더 많고, 더 적고, 그리고/또는 상이한 컴포넌트들을 포함할 수 있다.
블록 기반 모션 보상을 위해, 도 4에 도시된 바와 같이, 화상(400)은 CTU(402 및 404)에 의해 도시된 바와 같이 128 x 128 코딩 트리 단위(coding tree unit; CTU)로 분할될 수 있다. CTU는 2Nx2N 정사각형 블록이 될 수 있는 코딩 단위(coding unit; CU)로 더 분할되지만 CU의 크기와 형상은 이에 제한되지 않는다. 도 4는 예를 들어, CTU(404)가 CU(406)를 포함하는 여러 CU로 분할되는 것을 도시한다. 비디오 인코더(200)는 CU를 인코딩할 수 있다.
인코더는 모션 추정 및 보상 유닛(206)을 사용하여 인터 예측을 수행할 수 있다. 인터 예측 프로세싱은 각 CU에 대해 인터 예측을 수행하여 예측 데이터를 생성하는 것을 포함할 수 있다. 인터 예측의 유형에 따라, 모션 추정 및 보상 유닛(206)은 디코딩된 화상 버퍼(216)로부터 참조 샘플을 서치(search)할 수 있다. 모션 추정 및 보상 유닛(206)은 디코딩된 화상 버퍼(216) 내의 위치에 대한 참조 화상 인덱스를 생성할 수 있고, 참조 위치와 CU의 샘플 블록 사이의 변위를 나타내는 모션 벡터를 생성할 수 있다. 모션 추정 및 보상 유닛(206)은 CU의 모션 벡터에 의해 표시된 참조 영역에서의 실제 또는 보간된 샘플에 적어도 부분적으로 기초하여 CU의 예측 샘플 블록을 생성할 수 있다.
인코더(200)는 인트라 예측 유닛(204)을 사용하여 인트라 예측을 수행할 수 있다. 인트라 예측 프로세싱은 인트라 예측을 수행함으로써 CU에 대한 예측 데이터를 생성하는 것을 포함할 수 있다. CU에 대한 예측 데이터는 CU 및 다양한 신택스 요소에 대한 예측 블록을 포함할 수 있다. 인트라 예측 유닛(204)은 인트라 예측 프로세싱에 의해 생성된 예측 데이터와 인터 예측 프로세싱에 의해 생성된 예측 데이터 중에서 CU에 대한 예측 데이터를 선택할 수 있다.
변환 및 양자화 유닛(208)은 변환 모드(예를 들어, DCT, DST 또는 임의의 다른 유형의 변환)를 적용함으로써 CU의 각 변환 유닛(transform unit; TU)에 대한 변환 계수를 생성할 수 있고, 변환 계수를 양자화할 수 있다. 엔트로피 코딩 유닛(210)은 예를 들면, 양자화된 변환 계수 및/또는 비트 스트림을 생성하기 위한 임의의 다른 부가 정보에 대해 CABAC(Context-Adaptive Binary Arithmetic Coding)를 수행함으로써 양자화된 변환 계수를 엔트로피 코딩한다. 인코더(200)는 엔트로피 코딩된 변환 계수를 비트 스트림으로 출력할 수 있다.
역변환 및 양자화 유닛(212)은 계수 블록으로부터 잔차 블록을 재구성하기 위해 역양자화 및 역변환 모드 변환(예를 들어, 역 DCT, DST 또는 임의의 다른 유형의 역변환)을 적용할 수 있다. 인-루프 필터(214)는 인-루프 필터링 기술을 수행할 수 있다. 예를 들어, 인-루프 필터는, 재구성된(reconstructed) 샘플을 상이한 범주로 분류하고 각 범주에 대한 오프셋을 얻은 다음 범주의 각 샘플에 오프셋을 추가하는 샘플 적응 오프셋(sample adaptive offset; SAO) 프로세스를 포함할 수 있다. 각 범주의 오프셋은 샘플 왜곡을 줄이기 위해 디코더에 시그널링될 수 있다.
디코딩된 화상 버퍼(216)는 재구성된 SAO 프로세싱된 블록을 저장할 수 있다. 본 명세서에 설명된 바와 같이, 모션 추정 및 보상 유닛(206)은 재구성된 블록을 사용하여 인트라 예측을 수행할 수 있다.
도 3은 일부 실시예에 따른 예시적인 디코더(300)의 양상을 도시한다. 디코더(300)는 엔트로피 디코딩 유닛(302), 예측 유닛(304), 역양자화 및 역변환 유닛(306), 재구성 유닛(308), 인-루프 필터(310), 및 참조 화상 및 버퍼(312) 중 적어도 일부를 포함한다. 다른 실시예에서, 비디오 디코더(300)는 도 3에 예시된 것보다 더 많고, 더 적거나, 그리고/또는 상이한 컴포넌트를 포함할 수 있다.
엔트로피 디코딩 유닛(302)은 신택스 요소를 디코딩하기 위해 비트 스트림을 파싱한다. 예측 유닛(304)은 비트 스트림에서 시그널링된 신택스 요소를 사용하여 하나 이상의 참조 화상 리스트를 구성할 수 있다. 예측 유닛(304)은 모션 보상 및/또는 인트라 예측을 수행할 수 있다. 예를 들어, CU가 인터 예측을 사용하여 인코딩된 경우, 예측 유닛(304)은 CU에 대한 하나 이상의 참조 영역을 결정하는 데 사용될 수 있는 CU에 대한 모션 정보를 추출할 수 있다. 예측 유닛(304)은 하나 이상의 참조 블록에서의 샘플 블록에 기초하여 CU에 대한 예측 블록을 생성할 수 있다. 또 다른 예로서, CU가 인트라 예측을 사용하여 인코딩되는 경우, 예측 유닛(304)은 인트라 예측을 수행하여 이웃 CU에 기초하여 CU에 대한 예측 블록을 생성할 수 있다.
역양자화 및 역변환 유닛(306)은 계수 블록을 역양자화하고 역변환을 적용하여 잔차 블록을 생성할 수 있다. 재구성 유닛(308)은 코딩 블록을 재구성할 수 있다.
재구성 유닛(308)은 CU의 TU 및 예측 블록(예를 들어, 루마 및 크로마 예측 블록)과 연관된 변환 블록(예를 들어, 루마 및 크로마 변환 블록)을, 예컨대, 상황에 따라, 인트라 예측 데이터 및/또는 인터 예측 데이터를 사용하여 코딩 블록(예컨대, 루마, Cb 및 Cr 코딩 블록)을 재구성할 수 있다. 예를 들어, 재구성 유닛(308)은 CU를 재구성하기 위해 루마, Cb 및 Cr 변환 블록과 같은 변환 블록의 샘플(잔차 성분)을 예측 블록의 대응하는 샘플(예측자 성분)에 추가할 수 있다.
인-루프 필터(310)는 샘플 왜곡을 감소시키기 위해 (예를 들어, 디코더(300)로 시그널링될 수 있는) 각각의 SAO 범주의 오프셋을 사용할 수 있다. 참조 화상 및 버퍼(312)는 산출되는 디블록킹되고 SAO 프로세싱된 코딩 블록을 저장할 수 있다. 버퍼는 화상(314)을 통해 도시된 바와 같이 후속 모션 보상, 인트라 예측 및 화상의 프리젠테이션을 위한 참조 화상을 제공할 수 있다.
인트라 예측은 이미지의 이웃 픽셀들 사이의 공간 중복을 감소시키기 위한 중요한 코딩 기술일 수 있다. 공개될(up-coming) 비디오 코딩 표준 VVC는 두 가지 테스트 모델, 즉, 다용도 비디오 코딩 테스트 모델(Versatile Video Coding Test Model; VTM)과 벤치마크 테스트 세트(Bench-Mark Test Set; BMS)를 포함한다. 이러한 테스트 모델은 예를 들어, JVET-M1001-v7, "다용도 비디오 코딩(Versatile Video Coding)(초안 4), 제13차 회의: 매사추세츠주, 마라케시, 2019년 1월 9-18일에 설명되고, 이는 전체가 본 명세서에 참조로 포함된다. BMS 테스트 모델에 대해 총 67개의 인트라 예측 모드가 사용될 수 있는 반면 VTM 테스트 모델에 대해서는 총 35개의 인트라 예측 모드가 사용가능하다, 이러한 많은 수의 인트라 예측 모드로 인해 효율적인 인트라 모드 코딩 방법을 사용하는 것이 바람직하다.
도 5는 BMS에 대한 인트라 예측 방향의 총수를 도시하는 다이어그램(500)이다. VTM의 경우 모든 다른 모드 방향(502A, 502B, 502C 내지 502N)만 사용가능하다. 즉, 나머지 모드 방향은 VTM 테스트 모델에 유효하지 않다. BMS 테스트 모델의 경우 MPM 모드와 비MPM 모드가 코딩된다. MPM 모드는 이웃 모드로부터 6개의 최고 확률 모드(MPM)의 리스트를 생성하여 코딩될 수 있다. 예측 모드가 MPM 리스트의 모드 중 하나인 경우 절단된 단항 코딩이 사용될 수 있다. 비MPM 모드의 경우 최상의 예측 모드가 MPM 리스트에 없으면 고정 길이 코드 또는 절단된 이진화 방법이 모드를 코딩하는 데 사용된다.
일부 예에서 BMS 테스트 모델에 대한 MPM 리스트를 생성하기 위해 MPM 리스트에 포함된 모드는 세 그룹으로 분류된다: (1) 이웃 인트라 모드, (2) 유도된(derived) 인트라 모드 및 (3) 디폴트 인트라 모드. 5개의 이웃 인트라 예측 모드를 사용하여 MPM 리스트를 형성할 수 있다. 좌측(left; L), 상부(above; A), 하부 좌측(below-left; BL), 상부 우측(above-right; AR) 및 상부 좌측(above-left; AL)일 수 있는 5개의 이웃 모드의 위치는 도 6의 다이어그램(600)에 도시된 바와 같다. 초기 MPM 리스트는 5개의 이웃 인트라 모드와 평면 및 DC 모드를 MPM 리스트에 삽입하여 형성될 수 있다. 푸루닝 프로세스(pruning process)를 사용하여 중복된 모드를 제거하여 고유한 모드만이 MPM 리스트에 포함될 수 있다. 초기 모드가 포함되는 순서는 좌측, 상부, 평면, DC, 하부 좌측, 하부 우측, 그런 다음, 상부 좌측일 수 있다.
MPM 리스트가 가득 차지 않은 경우(예를 들어, 리스트에 6개보다 적은 MPM 후보가 있는 경우) 유도된 모드가 추가될 수 있다. 이러한 인트라 모드는 MPM 리스트에 이미 포함되는 각도 모드에 -1 또는 +1을 추가하여 얻어질 수 있다. 이러한 추가적인 유도 모드는 일반적으로 비각도 모드(예를 들어, DC 또는 평면)에서 생성되지 않는다.
마지막으로 MPM 리스트가 아직 완료되지 않은 경우 디폴트 모드가 수직, 수평, 모드 2 및 대각선 모드의 순서로 추가될 수 있다. 이 프로세스의 결과로 6개의 MPM 모드의 리스트가 생성된다.
나머지 61개의 비MPM을 선택하기 위한 코딩은 다음과 같이 수행된다. 먼저 61개의 비MPM은 선택된 모드 세트와 선택되지 않은 모드 세트의 두 세트로 분할된다. 선택한 모드 세트는 16개의 모드를 포함하고 나머지(나머지 45개 모드)는 선택되지 않은 모드 세트에 할당된다. 현재 모드가 속한 모드 세트는 플래그로 비트 스트림에 표시될 수 있다. 표시될 모드가 선택한 모드 세트 내에 있는 경우 선택된 모드는 4 비트 고정 길이 코드로 시그널링될 수 있고, 표시될 모드가 선택되지 않은 세트로부터 유래된 경우 선택된 모드는 절단된 이진 코드로 시그널링될 수 있다. 선택된 모드 세트는 다음과 같이 61개의 비MPM 모드를 서브샘플링하여 생성될 수 있다:
선택된 모드 세트 = {0, 4, 8, 12, 16, 20 ... 60}
선택되지 않은 모드 세트 = {1, 2, 3, 5, 6, 7, 9, 10 ... 59}
여기에 설명된 기술에 따르면, 모드는 예를 들어, MPM과 비MPM과 같은 두 가지 범주로 분류될 수 있다. 예를 들어, N은 인트라 모드의 총수를 나타내고 M은 MPM 리스트 내의 모드 수를 나타낸다. 따라서 N-M은 비MPM 리스트의 모드 수와 같다
일부 실시예에서, 모드의 총수(N)는 67이고, MPM의 수(M)는 6이다. 따라서 비MPM 모드의 수는 N-M, 즉, 61이다.
일부 실시예에서, 모드의 총수(N)는 67이고, MPM의 수(M)는 5이다. 따라서 비MPM 모드의 수는 N-M, 즉, 62이다.
일부 실시예에서, MPM 리스트를 생성하기 위해, 기술은 MPM 리스트를 생성하기 위해 5개의 이웃하는 인트라 예측 모드를 사용하는 것을 포함할 수 있다. MPM 리스트의 요소의 수는 M일 수 있다. 우선순위에 기초해 이웃 모드가 MPM 리스트에 삽입될 수 있다. 먼저, 예를 들면, 우선순위는 다음 순서로 초기 모드를 추가하는 것일 수 있다: 좌측 모드(L), 상부 모드(A), 평면 모드, DC 모드, 하부 좌측 모드(BL), 상부 우측(AR) 모드 및 상부 좌측 모드(AL). 다음으로, 모드의 총수가 67일 때 인접 모드에 -1/1을 추가함으로써 인접 모드가 추가될 수 있다. MPM 리스트가 가득 차지 않은 경우, 디폴트 모드가 평면, DC, 수직, 수평, 모드 2 및 대각선 모드의 우선순위 순서로 삽입될 수 있다.
MPM 리스트를 생성한 후, 기술은 가중치 인자에 기초해 전체 MPM 리스트를 재정렬할 수 있다. 최고 가중치를 갖는 모드는 MPM 리스트의 인덱스 0에 배치될 수 있다. 최저 가중치를 갖는 모드는 MPM 리스트의 인덱스 (M-1)에 배치될 수 있으며, 여기서 M은 MPM 리스트의 요소 수이다.
일부 실시예에서, 가중 인자가 특정될 수 있다. 예를 들어, 일부 실시예에 따르면, 좌측 모드(L)의 경우, (좌측 모드 ≤ 30)이면 가중치는 4이고 그렇지 않으면 가중치는 3이다. 상부 모드(A)의 경우, (상부 모드 ≤ 1 OR 상부 모드 ≥ 40)이면 가중치는 4이고 그렇지 않으면 가중치는 3이다. 평면 모드의 경우, 평면 모드가 이미 MPM 리스트에 있으면 가중치는 1이고 그렇지 않으면 가중치는 3이다. DC 모드의 경우, DC 모드가 이미 MPM 리스트에 있으면 가중치는 1이고 그렇지 않으면 가중치는 2이다. 하부 좌측 모드(BL)의 경우, 하부 좌측 모드 < HOR 모드이면 가중치가 2이고 그렇지 않으면 가중치가 1이다. 상부 우측(AR) 모드의 경우, 상부 우측 모드 ≤ 1 OR 상부 우측 모드 ≥ 60이면, 가중치는 3이고, 그렇지 않으면 가중치는 2이다. 상부 좌측 모드(AL)의 경우, 상부 좌측 모드 ≥ 30 AND 상부 좌측 모드 ≤ 38 OR 상부 좌측 모드 ≤ 1이면 가중치는 3이고 그렇지 않으면 가중치는 2이다. 인접 모드의 경우 가중치는 1이다.
또 다른 예로서, 일부 실시예에서, 가중 인자는 다음을 포함할 수 있다: 좌측 모드(L), 가중치=4; 상부 모드(A), 가중치=4; 평면 모드의 경우, 평면 모드가 이미 MPM 리스트에 있으면 가중치는 1이고 그렇지 않으면 가중치는 3이다; DC 모드의 경우 DC 모드가 이미 MPM 리스트에 있으면 가중치가 1이고 그렇지 않으면 가중치가 2이다; 하부 좌측 모드(BL), 가중치=2; 상부 우측(AR) 모드, 가중치=2, 상부 좌측 모드(AL), 가중치=2; 인접 모드, 가중치=1.
일부 실시예에서, 초기에 모든 모드의 가중치는 0으로 초기화될 수 있다. 각 이웃 및 인접 모드를 확인(check)한 후 해당 모드의 가중치가 누적될 수 있다. N개의 MPM 모드의 생성 후 누적된 가중치에 기초해 전체 MPM 리스트가 재정렬할 수 있다. 최고 가중치를 갖는 모드는 MPM 리스트의 최저 인덱스에 배치될 수 있다. 일부 실시예에서, MPM은 재정렬되지 않는다.
일부 실시예에서, 기술은 MPM 생성에서 상부, 상부 좌측, 및 상부 우측 모드에 액세스하기 위한 코딩 트리 단위(CTU) 제한을 포함할 수 있다. 본 명세서에 설명된 바와 같이, 기술은 이웃 모드를 얻기 위해 5개의 이웃(예를 들어, 좌측, 상부 하부 좌측, 상부 우측 및 상부 좌측) 블록에 액세스할 수 있다. 이는 전체 라인의 이웃 모드를 메모리 버퍼에 저장할 것을 요구할 수 있다. 라인 버퍼를 줄이기 위해, 일부 실시예에서, 블록이 코딩 트리 유닛(CTU)의 외부에 있는 경우 기술은 상부, 상부 우측 및 상부 좌측 블록에 대한 액세스로 제한될 수 있다. 예를 들어, 좌측 모드(L)의 경우 좌측 블록이 동일한 슬라이스에 속하면 이 블록에 대한 액세스가 허용되고 그렇지 않으면 이 블록이 스킵된다. 상부 모드(A)의 경우 상부 블록이 동일한 CTU에 속하면 이 블록에 대한 액세스가 허용되고 그렇지 않으면 이 블록이 스킵된다. 하부 좌측 모드(BL)의 경우 하부 좌측 블록이 동일한 슬라이스에 속하면 이 블록에 대한 액세스가 허용되고 그렇지 않으면 이 블록이 스킵된다. 상부 우측(AR) 모드의 경우 상부 우측 블록이 동일한 CTU에 속하면 이 블록에 대한 액세스가 허용되고 그렇지 않으면 이 블록이 스킵된다. 상부 좌측 모드(AL)의 경우 상부 좌측 블록이 동일한 CTU에 속하면 이 블록에 대한 액세스가 허용되고 그렇지 않으면 이 블록이 스킵된다.
일부 실시예에서, 기술은 MPM 및 비MPM 모드의 시그널링을 처리한다. 본 명세서에서 설명한 바와 같이, 비디오 인코더는 지원되는 인트라 예측 모드들(예를 들어, 도 5 및/또는 평면 또는 DC 모드와 같은 일부 비각도 인트라 모드와 함께 설명된 67개의 방향/각도 모드들) 중 하나와 같은, 현재 데이터 단위에 대한 인트라 예측 모드를 시그널링한다. 지원되는 인트라 예측 모드는 이웃 데이터 단위의 인트라 예측 모드 및 미리 결정된 MPM 확립 프로세스에 기초하여 MPM 또는 비MPM 모드로 그룹화될 수 있다. 현재 데이터 단위에 대해 선택된 인트라 예측 모드가 MPM 중 하나인 경우, 현재 데이터 단위의 MPM 정보를 시그널링하기 위해, 비디오 인코더가 MPM 인덱스를 우회 인코딩해서 MPM 정보와 연관된 빈이 컨텍스트 코딩되지 않게 된다. 본 발명자들은 MPM 정보를 시그널링하기 위해 어떠한 컨텍스트 코딩도 사용하지 않으면 특히 제1 빈에 대해 코딩 비효율성을 초래할 수 있다는 것을 발견하고 인식했다.
일부 실시예에서, 플래그는 현재 데이터 단위의 인트라 예측 모드가 MPM 또는 비MPM 모드임을 나타내는 데 사용될 수 있다. 일부 실시예에서, 비트는 컨텍스트 코딩될 수 있다. 일부 실시예에서, MPM 정보에 대한 제1 빈은 컨텍스트 코딩되고 나머지 빈은 우회 코딩된다. 일부 실시예에서, MPM 정보는 인덱스를 포함하고 절단된 단항 이진화 프로세스를 사용하여 이진화될 수 있다(예를 들어, MPM 모드의 수가 5, 6 및/또는 어떤 수인 경우). 도 7a 내지 7c는 일부 실시예에 따라 6개의 MPM 모드에 사용될 수 있는 이진화의 표(700, 720 및 740)를 각각 도시한다. 도 7d는 일부 실시예에 따라 5개의 MPM 모드에 사용될 수 있는 이진화의 표(760)를 도시한다. 일부 실시예에서, 본 명세서에 설명된 기술은 5개 또는 6개의 MPM 모드의 제1 빈 및/또는 다른 빈을 컨텍스트 코딩하도록 구성될 수 있다. 예를 들어, 일부 실시예에서, 6개의 MPM 모드에 대해, 제1 빈만이 컨텍스트 코딩된다(예를 들어, 표(700, 720 및/또는 740)의 제1 빈만이 컨텍스트 코딩되고 나머지 빈은 컨텍스트 코딩되지 않음).
비MPM 모드를 시그널링하기 위해 다른 시그널링이 사용될 수 있다. 일부 실시예에서, 비MPM 모드(예를 들어, 61개의 비MPM 모드)를 시그널링하기 위해 절단된 단항 코딩이 사용된다. 일부 실시예에서, 고정 길이 코딩이 비MPM 모드를 시그널링하기 위해 사용된다. 예를 들어, 6 빈 고정 길이 코드(six bin fixed length code)를 사용하여 비MPM 모드를 시그널링할 수 있다.
도 8a는 일부 실시예에 따라 비디오 데이터를 인코딩하기 위한 예시적인 컴퓨터화된 방법(800)을 도시한다. 예를 들어, 엔트로피 코딩 유닛(210)을 포함하는 도 2에 도시된 인코딩 디바이스(200)는 비디오 데이터를 인코딩하는데 사용되는 결정된 인트라 예측 모드를 엔트로피 코딩하기 위해 컴퓨터화된 방법(800)을 구현할 수 있다. 단계(802)에서, 인코딩 디바이스는 복수의 데이터 단위(예를 들어, CU)를 포함하는 비디오 데이터에 액세스(예를 들어, 수신, 액세스, 프로세싱)한다. 단계(804)에서, 인코딩 디바이스는 현재 데이터 단위에 대해 결정된 복수의 MPM 중의 MPM인 현재 데이터 단위를 인트라 예측 인코딩하기 위한 예측 모드를 결정한다. 본 명세서에 설명된 바와 같이, 현재 데이터 단위에 대한 복수의 MPM과 연관된 MPM 리스트가 확립되고, MPM 리스트의 각 예측 모드는 MPM 리스트에서의 예측 모드의 위치를 나타내는 연관된 MPM 인덱스를 갖는다. 단계(806)에서, 인코딩 디바이스는 코딩 빈이 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 코딩 빈을 컨텍스트 인코딩하는 것을 포함하여, 결정된 예측 모드의 MPM 정보를 코딩 빈을 사용하여 인코딩한다. 일부 실시예에서, MPM 정보는 추가 정보뿐만 아니라 본 명세서에 설명된 MPM 인덱스를 포함한다. 예를 들어, MPM 정보는 하나 이상의 플래그 및/또는 비트를 포함할 수 있다. 추가적인 하나 이상의 플래그/비트는 예를 들면, 컨텍스트 코딩을 사용하여 코딩될 수 있다.
단계(806)를 참조하면, 본 명세서에 기술된 바와 같이, 일부 실시예에서 코딩 빈이 MPM 정보의 제1 빈이면, 인코딩 디바이스 컨텍스트는 코딩 빈을 인코딩한다. 코딩 빈이 제1 빈이 아니어서 코딩 빈이 MPM 정보의 제2 빈 또는 그 이후의 빈인 경우, 인코딩 디바이스는 코딩 빈을 우회 인코딩한다. 결과적으로 MPM 정보는 컨텍스트 인코딩과 우회 인코딩을 사용하여 인코딩되고 코딩 효율이 향상될 수 있다. 일부 실시예에서, 인코딩 디바이스는 MPM 인덱스를 이진화하기 위해 절단된 단항 이진화를 사용하도록 구성될 수 있다.
일부 실시예에서, 여기에 설명된 바와 같이, 인코딩 디바이스는 고정 길이 코드를 사용하여 비MPM 모드를 인코딩하도록 구성될 수 있다. 예를 들어, 인코딩 디바이스는 6 비트 코드를 사용하도록 구성될 수 있으며, 따라서 인코딩 디바이스는 연관된 6 비트 고정 길이 코드를 사용하여 비MPM 모드를 인코딩한다.
일부 실시예에서, 본 명세서에 설명된 바와 같이, 기술은 비디오 데이터를 디코딩하는 데 사용될 수 있다. 도 8b는 일부 실시예에 따른 비디오 데이터를 디코딩하기 위한 예시적인 컴퓨터화된 방법(850)을 도시한다. 단계(852)에서, 디코딩 디바이스는 복수의 데이터 단위와 연관된 코딩된 비디오 데이터(예를 들어, 비트 스트림)에 액세스한다. 단계(854)에서 디코딩 디바이스(예를 들어, 도 3에 도시된 디코딩 디바이스(300))는 현재 데이터 단위의 예측 모드와 연관된 최고 확률 모드(MPM) 정보를 디코딩한다. MPM 정보를 디코딩하는 것은 빈이 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 컨텍스트 인코딩된 코딩 빈을 디코딩하는 것을 포함할 수 있다. 즉, 디코딩 디바이스는 코딩 빈이 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 코딩 빈을 컨텍스트 디코딩한다. 일부 실시예에서, 코딩 빈이 MPM 정보의 제1 빈이면, 디코딩 디바이스는 코딩 빈을 컨텍스트 디코딩할 수 있다. 일부 실시예에서, 코딩 빈이 MPM 정보의 제2 빈 또는 그 이후의 빈이면, 디코딩 디바이스는 코딩 빈을 우회 디코딩할 수 있다. 따라서 MPM 정보는 컨텍스트 디코딩과 우회 디코딩을 사용하여 디코딩된다. 일부 실시예에서, MPM 정보의 MPM 인덱스와 연관된 빈은 인코딩 디바이스에 의해 절단된 단항 이진화를 사용하여 프로세싱되었으며, 디코딩 디바이스는 MPM 인덱스를 디코딩하기 위해 절단된 단항 역이진화를 수행할 수 있다. 단계(856)에서, 디코딩 디바이스는 디코딩된 MPM 정보에 기초하여 현재 데이터 단위를 인트라 예측 디코딩하기 위한 예측 모드를 결정할 수 있다.
도 2와 관련하여 설명된 바와 같이, 각 CU에 대해 인코더는 변환/양자화를 수행한 다음 엔트로피 코딩을 수행한다. VVC(예를 들면, 참조로서 그 전체가 본 명세서에 통합되는, B. Bross, J. Chen, S. Liu, "다용도 비디오 코딩(Versatile Video Coding)(초안 2)", ITU-T VCEG(Q6/16) 및 ISO/IEC MPEG의 JVET(Joint Video Expert Team)(JTC 1/SC 29/WG 11), Doc. JVET-K1001, 11차 회의, 류블라냐, SI, 2018년 7월 10-18일에 설명됨)에서, 각각의 TU의 계수 엔트로피 코딩은 서브블록 단위로 프로세싱될 수 있다. 예를 들어, 도 9a에 도시된 바와 같이, 계수 코딩을 위해, 변환된 양자화된 CU(900)는 계수 그룹으로 분할될 수 있다. 도시된 대로 CU(900)는 CG(902 및 904)를 포함하여 8개의 4x4 계수 그룹으로 분할되는 16x8 CU이다. 각 CG에 대해 별도의 비트 스트림이 생성될 수 있다. 계수 그룹은 NxM 서브블록에 해당할 수 있으며, 여기서 N과 M은 예를 들어, {2, 4, 8, 16 또는 32}의 임의의 조합일 수 있다. 각각의 서브블록(예를 들어, 4x4 서브블록)에 대해 "coded_sub_block_flag"라는 플래그가 먼저 시그널링될 수 있다. coded_sub_block_flag에 대한 값 0은, 해당 서브블록의 모든 계수가 0이고 이 서브블록에 대해 나머지 프로세스가 스킵될 수 있음을 의미할 수 있다. coded_sub_block_flag에 대한 값 1은 서브블록 내의 계수 중 적어도 하나가, 0이 아님을 의미할 수 있다.
일부 예들에서, 플래그 "significant_coeffgroup_flag"가 1과 같으면, 특정 서브블록의 모든 계수가 코딩될 수 있다. 패스(pass) 1은 코딩 순서에서 유의성(sig_coeff_flag), 패리티(par_level_flag) 및 1 초과 플래그(greater 1 flag)(rem_abs_gt1_flag)의 코딩을 포함할 수 있다. 패리티 및 1 초과 플래그는 sig_coeff_flag가 1인 경우에만 존재한다. 1 초과 플래그의 컨텍스트는 바로 앞의 패리티 플래그에 의존하지 않으며 sig_coeff_flag의 컨텍스트는 바로 앞의 rem_abs_gt1_flag의 값에 의존하지 않는다(이전 sig_coeff_flag가 1과 같을 때). 패스 2는 rem_abs_gt1_flag가 1인 모든 스캔 위치에 대해 2 초과 플래그(rem_abs_gt2_flag)의 코딩을 포함할 수 있다. 컨텍스트 모델은 이런 패스 2에서 코딩된 임의의 데이터에 의존하지 않는다. 패스 3은 rem_abs_gt2_flag가 1인 모든 스캔 위치에 대한 구문 요소 abs_remainder의 코딩을 포함할 수 있다. 비이진(non-binary) 구문 요소는 이진화되고 결과 빈은 산술 코딩 엔진의 우회 모드에서 코딩된다. 패스 4는 sig_coeff_flag가 1인 모든 스캔 위치에 대한 부호(sign_flag)의 코딩을 포함할 수 있다.
본 명세서에 설명된 기술에 따르면, 각 TU의 계수 엔트로피 코딩은 상이한 기술을 사용하여 서브블록 단위로 서브블록에 대해 프로세싱된다. 각 서브블록에 대해 coded_sub_block_flag가 먼저 시그널링된다. coded_sub_block_flag에 대한 값 0은 해당 서브블록의 모든 계수가 0이고 나머지 프로세스는 이 서브블록에 대해 스킵될 수 있음을 의미할 수 있다. coded_sub_block_flag에 대한 값 1은 이 서브블록 내의 계수 중 적어도 하나가, 0이 아님을 의미할 수 있다.
일부 실시예에서, coded_sub_block_flag가 1과 같으면, 이 특정 서브블록의 모든 계수는 4개의 패스로 코딩된다. 패스 1의 경우 각 계수에 대해 코딩하기 위해 다음 순서가 수행될 수 있다. 먼저 sig_coeff_flag가 시그널링된다. 0과 같은 sig_coeff_flag 값은 계수 값이 0이고 더 이상 플래그가 시그널링되지 않음을 의미할 수 있다. sig_coeff_flag의 값이 1과 같으면 rem_abs_gt1_flag 플래그가 시그널링된다. 다음으로 rem_abs_gt1_flag가 0이면 계수의 절댓값이 1이고 추가 플래그가 시그널링되지 않음을 의미할 수 있다. rem_abs_gt1_flag가 1이면 계수 값이 1보다 크고 시그널링에 추가 par_level_flag가 사용됨을 의미할 수 있다. 마지막으로 1과 같은 par_level_flag 값은 계수의 절댓값이 홀수임을 의미할 수 있으며, 그렇지 않으면 절댓값은 짝수 값이다. 패스 2의 경우 rem_abs_gt1_flag가 1인 모든 스캔 위치에 대해 rem_abs_gt2_flag가 산술 코딩 엔진의 정규 모드를 사용하여 코딩된다. 패스 3의 경우 rem_abs_gt2_flag가 1인 모든 스캔 위치에 대해 비이진 구문 요소 abs_remainder가 산술 코딩 엔진의 우회 모드에서 코딩된다. 패스 4의 경우 sig_coeff_flag가 1인 모든 스캔 위치에 대해 sign_flag가 산술 코딩 엔진의 우회 모드로 코딩된다.
여기에 설명된 기술은 coded_sub_block_flag에 대한 컨텍스트 모델링을 포함할 수 있다. 일부 실시예에서, 2개의 컨텍스트 모델이 사용될 수 있다. 도 9b에 도시된 바와 같이, 특정 계수 그룹(950)에 사용되는 컨텍스트 모델은 일부 실시예에 따라 우측 계수 그룹(952) 및 하부 계수 그룹(954)의 coded_sub_block_flag에 의존할 수 있다. 예를 들어, 우측 및 하부 계수 그룹(952, 954)의 2개의 coded_sub_block_flag의 값의 비트 단위 논리합(or) 연산(예를 들어, coded_sub_block_flaglower | coded_sub_block_flagright)은 현재 컨텍스트 모델을 결정하는 데 사용할 수 있고, 여기서 값 0은 하나의 컨텍스트 모델을 사용하는 것을 초래하며, 값 1은 다른 컨텍스트 모델을 사용하는 것을 초래한다.
본 발명자들은 코딩 비효율을 초래할 수 있는 계수 그룹(예를 들어, 도 9b와 관련하여 설명된 바와 같음)에 대한 일부 플래그를 코딩하기 위해 단지 2개의 컨텍스트 모델만이 종종 사용된다는 것을 인식했다. 일부 실시예에서, 여기에 설명된 기술은 sub_block_flag를 코딩하는 것과 같이 정보를 코딩하기 위해 2개 이상의 컨텍스트 모델을 사용하는 것을 제공한다. 예를 들어, 4개의 컨텍스트 모델이 사용될 수 있다. 도 9c에 도시된 바와 같이, 현재 서브블록(950)의 coded_sub_block_flag에 대한 컨텍스트 모델은 우측 서브블록(952), 하부 서브블록(954) 및 우측 하부 서브블록(956)에 의존할 수 있다. 예를 들어, 우측, 하부 및 우측 하부 서브블록(952, 954 및 956)의 coded_sub_block_flag를 합산하여(예를 들어, coded_sub_block_flaglower + coded_sub_block_flagright + coded_sub_block_flagright-lower) 컨텍스트 모델이 결정될 수 있다. 또 다른 예로 6개의 컨텍스트 모델이 사용될 수 있다. 일부 실시예에서, 변환 유닛(TU)은 복수의 영역으로 분할될 수 있고 상이한 컨텍스트 모델 또는 컨텍스트 세트가 상이한 영역에 사용될 수 있다. 도 10은, TU(1000)의 예시가 3개의 영역(1002, 1004, 1006)으로 분할되고 각 영역이 상이한 세트의 컨텍스트 모델을 갖는 것을 도시한다. 이 예에 대해 도시된 바와 같이, 영역(1002)은 컨텍스트 모델 0 또는 1을 사용할 수 있고, 영역(1004)은 컨텍스트 모델 2 또는 3을 사용할 수 있으며, 영역(1006)은 컨텍스트 모델 4 또는 5를 사용할 수 있다. 영역에 대한 컨텍스트 모델은 비트 단위로 또는 하부 및 우측 CG의 coded_sub_block_flag 더하기(plus) 오프셋을 기반으로 결정될 수 있다. 예를 들어, 컨텍스트 모델은 다음과 같이 결정될 수 있다: 오프셋 + coded_sub_block_flaglower | coded_sub_block_flagright. 예를 들어, 컨텍스트 모델은 다음과 같이 결정될 수 있다: 오프셋 + coded_sub_block_flaglower + coded_sub_block_flagright. 일부 실시예에서, 오프셋은 0, 1 또는 2와 같은 정수이다.
일부 실시예에서, 기술은 컨텍스트 모델을 결정하기 위해 사용할 이웃 계수 그룹의 수 및/또는 위치를 결정하는 것을 수반하는, 플래그에 대한 컨텍스트 모델링을 포함할 수 있다. 이 기술은 예를 들어, sig_coeff_flag, rem_abs_gt1_flag, abs_level_gt1_flag, par_level_flag 및/또는 abs_level_gt3_flag를 컨텍스트 코딩하는 것과 같은 다양한 플래그를 코딩하는 데 사용될 수 있다. 일부 실시예에서, 컨텍스트 모델링 및 이진화는 로컬 이웃의 하나 이상의 측정치에 의존할 수 있다. 예를 들어, 로컬 이웃에 대해 다음 측정값 중 하나 이상이 사용될 수 있다: 로컬 이웃에서 0이 아닌 레벨의 수인 numSig; 로컬 이웃에서 제1 패스 후 부분적으로 재구성된 절대 레벨(absLevel1)의 합인 sumAbs1; 및 로컬 이웃에서 재구성된 절대 레벨의 합인 sumAbs.
주어진 위치(x, y)에 대해 absLevel1은 absLevel1[x][y] = sig_coeff_flag[x][y] + par_level_flag[x][y] + rem_abs_gt1_flag[x][y]로 지정될 수 있다. 컨텍스트 모델의 수와 제안된 방법의 유도는, Heiko Schwarz, Tung Nguyen, Detlev Marpe, Thomas Wiegand, "종속 양자화를 위한 대체 엔트로피 코딩(Alternative Entropy Coding for Dependent Quantization)" JVET-K0072, 11차 회의: 류블라냐, SI, 2018년 7월 10-18일에 설명된 바와 같으며, 참조에 의해 그 전체 내용이 본 명세서에 통합된다.
일부 실시예에서, 기술은 sig_coeff_flag, rem_abs_gt1_flag, abs_level_gt1_flag, par_level_flag 및/또는 abs_level_gt3_flag에 대한 것과 같은 하나 이상의 플래그의 컨텍스트 모델링을 위한 이웃의 선택을 제공할 수 있다. 일부 실시예에서, 도 11a에 도시된 바와 같이, 현재 계수 그룹(1100)에 대한 5개의 이웃(1102-1110)이 계수를 결정하는 데 사용될 수 있다(예를 들어, numSig, AbsLevel1 및 sumAbs를 사용함). 일부 실시예에서, 코딩을 위한 컨텍스트를 선택하기 위해 사용되는 이웃의 수는 CU 유형에 의존할 수 있다. 예를 들어, CU가 변환을 사용하는 경우 한 세트의 이웃이 사용될 수 있는(예를 들어, 도 11a에 도시된 바와 같이 5개의 이웃) 한편, CU가 변환 스킵을 사용하는 경우 다른 세트의 이웃이 사용될 수 있다(예를 들어, 3개의 이웃). 예를 들어, 도 11b는 현재 CU(1100)에 대해 3개의 이웃(1102, 1106 및 1108)을 사용하는 것을 도시한다.
일부 실시예에서, 도 11b는 도 11a에 도시된 5개의 CU 중에서 이웃 CU(1102, 1106 및 1108)의 특정 서브세트를 도시하지만, 이것은 단지 예시를 위한 것이다. 일부 실시예들에서, 도 11a에서 더 많거나 더 적은 이웃들(1102-1110)의 상이한 서브세트가 컨텍스트 모델링을 위해 사용될 수 있다. 이웃의 수 및/또는 사용할 이웃의 서브세트는 하나 이상의 제약에 기반하여 선택될 수 있다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 비디오의 컬러 성분에 의존한다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 비디오의 이미지 슬라이스에 의존한다. 예를 들어, 서로 다른 슬라이스는 서로 다른 수의 이웃과 이웃의 서브세트를 가질 수 있다. 일부 실시예에서, 인코더는 이웃의 어느 서브세트가 컨텍스트 선택에 사용되는지를 디코더에게 시그널링할 수 있다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 코딩 단위(CU)에 의존한다. 예를 들어, 서로 다른 CU는 서로 다른 수의 이웃을 가질 수 있다. 일부 예에서, CU 레벨 추가 신호는 복수의 서브세트로부터 특정 서브세트를 선택하기 위해 사용될 수 있다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 예측 모드에 의존할 수 있다. 예를 들어, 서로 다른 예측 모드는 서로 다른 이웃 세트를 가질 수 있다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 CU 크기에 의존한다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 변환 유형에 의존한다. 일부 실시예에서, 컨텍스트 선택을 위한 이웃의 수 및/또는 이웃의 서브세트는 CU가 변환 스킵을 사용하여 코딩되는지 여부에 의존한다.
도 12a는 일부 실시예에 따라 비디오 데이터를 인코딩하기 위한 예시적인 컴퓨터화된 방법(1200)을 도시한다. 예를 들어, 엔트로피 코딩 유닛(210)을 포함하는 도 2에 도시된 인코딩 디바이스(200)는 계수 그룹에 대한 하나 이상의 플래그를 엔트로피 코딩하기 위해 컴퓨터화된 방법(1200)을 구현할 수 있다. 단계(1202)에서, 인코딩 디바이스는 예를 들면, 복수의 변환 계수 그룹(예를 들어, CG)으로 분할된 변환된 양자화된 CU와 같은 복수의 계수 그룹을 포함하는 비디오 데이터에 액세스(예를 들어, 수신, 액세스, 프로세싱)한다. 단계(1204)에서, 인코딩 디바이스는, 현재 계수 그룹의 변환 계수에 대해, 복수의 이웃 계수 그룹의 변환 계수에 기초하여 복수의 컨텍스트 모델 중에서 컨텍스트 모델을 결정한다. 단계(1206)에서, 인코딩 디바이스는 예를 들어, 현재 계수 그룹과 연관된 하나 이상의 플래그를 인코딩함으로써 변환 계수의 현재 계수 그룹을 인코딩한다. 인코딩 디바이스는 비디오 데이터의 복수 그룹의 변환 계수에 대해 이 프로세스를 수행할 수 있다.
일부 실시예에서, 인코딩 디바이스는, 현재 계수 그룹의 변환 계수가 변환 스킵 코딩되는지 여부에 기초하여 복수의 이웃 그룹의 변환 계수를 결정한다. 일부 실시예에서, 인코딩 디바이스는 현재 계수 그룹의 변환 계수가 변환 스킵 코딩되는지 여부에 기초하여, 복수의 이웃 그룹의 변환 계수의 수, 각각의 복수의 이웃 그룹의 변환 계수의 위치, 또는 이들 둘 다를 결정할 수 있다. 예를 들어, 도 11b에 도시된 바와 같이, 인코딩 디바이스는 (예를 들어, 현재 계수 그룹의 변환 계수(1100)가 변환 스킵 코딩되는 경우) 3개의 이웃 그룹의 변환 계수(1102, 1106 및 1108)에 기초하여 현재 계수 그룹의 변환 계수(1100)에 대한 컨텍스트 모델을 결정할 수 있다. 또 다른 예로서, 도 11a에 도시된 바와 같이, 인코딩 디바이스는 (예를 들어, 현재 계수 그룹의 변환 계수(1100)가 변환 코딩되는 경우) 5개의 이웃 그룹의 변환 계수(1102, 1104, 1106, 1108 및 1110)에 기초하여 현재 계수 그룹의 변환 계수(1100)에 대한 컨텍스트 모델을 결정하도록 구성될 수 있다.
일부 실시예에서, 인코딩 디바이스는, (예를 들어, 도 9c와 함께 논의된 바와 같이) 4개의 컨텍스트 모델 중에서 컨텍스트 모델을 결정하거나, (예를 들어, 도 9d와 함께 논의된 바와 같이) 6개의 컨텍스트 모델 중에서 컨텍스트 모델을 결정하거나, 또는 이들의 일부 조합에 의해 결정할 수 있다.
단계(1206)를 참조하면, 결정된 컨텍스트 모델은 하나 이상의 플래그를 인코딩하는 데 사용될 수 있다. 예를 들면, 컨텍스트 모델은, 현재 계수 그룹의 변환 계수 중의 적어도 하나가, 0이 아닌 값을 갖는지 여부를 나타내는 제1 플래그(예를 들면, coded_sub_block_flag); 현재 계수 그룹의 변환 계수 중의 변환 계수가 0의 값을 갖는지 여부를 나타내는 제2 플래그(예를 들면, sig_coeff_flag); 현재 계수 그룹의 변환 계수 중의 변환 계수의 절댓값이 1보다 큰지 여부를 나타내는 제3 플래그(예를 들면, abs_level_gt1_flag); 현재 계수 그룹의 변환 계수 중의 변환 계수의 패리티를 나타내는 제4 플래그(예를 들면, par_level_flag); 및/또는 현재 계수 그룹의 변환 계수 중의 변환 계수의 절댓값이 3보다 큰지 여부를 나타내는 제5 플래그(abs_level_gt3_flag) 중 하나 이상을 인코딩하는데 사용될 수 있다.
일부 실시예에서, 본 명세서에 설명된 바와 같이, 기술은 비디오 데이터를 디코딩하는 것을 포함할 수 있다. 도 12b는 일부 실시예에 따른 비디오 데이터를 디코딩하기 위한 예시적인 컴퓨터화된 방법(1250)을 도시한다. 예를 들어, 엔트로피 디코딩 유닛(302)을 포함하는 도 3에 도시된 디코딩 디바이스(300)는 계수 그룹에 대한 하나 이상의 플래그를 엔트로피 디코딩하기 위해 컴퓨터화된 방법(1250)을 구현할 수 있다. 단계(1252)에서, 디코딩 디바이스는 비디오 데이터에 액세스한다. 단계(1254)에서, 디코딩 디바이스는 복수의 이웃 계수 그룹의 변환 계수에 기초하여 복수의 컨텍스트 모델 중에서 컨텍스트 모델을 결정한다. 일부 실시예에서, 디코딩 디바이스는, 현재 계수 그룹의 변환 계수가 변환 스킵 코딩되는지 여부에 기초하여 복수의 이웃 그룹의 변환 계수를 결정할 수 있다. 단계(1256)에서, 디코딩 디바이스는 결정된 컨텍스트 모델을 사용하여 코딩된 현재 계수 그룹의 변환 계수와 연관된 데이터를 디코딩할 수 있다.
여기에 설명된 원리에 따라 동작하는 기술은 임의의 적절한 방식으로 구현될 수 있다. 위의 흐름도의 프로세싱 및 결정 블록은 이러한 다양한 프로세스를 수행하는 알고리즘에 포함될 수 있는 단계 및 동작을 나타낸다. 이러한 프로세스로부터 파생된 알고리즘은 하나 이상의 단일 또는 다목적 프로세서와 통합되고 그 동작을 지시하는 소프트웨어로 구현될 수 있으며, DSP(디지털 신호 처리) 회로 또는 ASIC(Application-Specific Integrated Circuit)와 같은 기능적으로 동등한 회로로 구현될 수 있거나, 임의의 다른 적절한 방식으로 구현될 수 있다. 본 명세서에 포함된 흐름도는 임의의 특정 회로 또는 임의의 특정 프로그래밍 언어 또는 임의의 유형의 프로그래밍 언어의 구문 또는 동작을 묘사하지 않는다는 것을 이해해야 한다. 오히려, 흐름도는 본 명세서에 설명된 기술의 유형을 수행하는 특정 장치의 프로세싱을 수행하기 위해 회로를 제조하거나 컴퓨터 소프트웨어 알고리즘을 구현하기 위해 당업자가 사용할 수 있는 기능 정보를 예시한다. 또한, 본 명세서에서 달리 지시되지 않는 한, 각 흐름도에 설명된 단계 및/또는 동작의 특정 시퀀스는 구현될 수 있는 알고리즘의 예시일 뿐이며 본 명세서에 설명된 원리의 구현 및 실시예에서 변경될 수 있음을 이해해야 한다.
따라서, 일부 실시예에서, 여기에 설명된 기술은 애플리케이션 소프트웨어, 시스템 소프트웨어, 펌웨어, 미들웨어, 임베디드 코드, 또는 임의의 다른 적절한 유형의 컴퓨터 코드를 포함하여, 소프트웨어로 구현된 컴퓨터 실행 가능 명령어로 구현될 수 있다. 이러한 컴퓨터 실행 가능 명령어는 다수의 적절한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 도구 중 임의의 것을 사용하여 작성될 수 있으며, 실행 가능한 기계 언어 코드 또는 프레임워크 또는 가상 머신에서 실행되는 중간 코드로 컴파일될 수도 있다.
본 명세서에 설명된 기술이 컴퓨터 실행 가능 명령어로 구현될 때, 이러한 컴퓨터 실행 가능 명령어는 다수의 기능 도구를 포함하여 임의의 적절한 방식으로 구현될 수 있으며, 각각은 이러한 기술에 따라 동작하는 알고리즘의 실행을 완료하기 위해 하나 이상의 동작을 제공한다. 그러나 인스턴스화되는 "기능적 수단(functional facility)"은 하나 이상의 컴퓨터와 통합되고 이 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터가 특정 운영 역할을 수행하도록 하는 컴퓨터 시스템의 구조적 컴포넌트이다. 기능적 수단은 소프트웨어 요소의 일부 또는 전체일 수 있다. 예를 들어, 기능적 수단은 프로세스의 기능으로서, 또는 개별 프로세스로서, 또는 임의의 다른 적절한 프로세싱 유닛으로서 구현될 수 있다. 여기에 설명된 기술이 다중 기능 수단으로 구현되는 경우, 각 기능 도구는 자체 방식으로 구현될 수 있으며; 모두 같은 방식으로 구현할 필요는 없다. 추가로, 이러한 기능적 수단은 적절하게 병렬 및/또는 직렬로 실행될 수 있으며, 실행 중인 컴퓨터(들)의 공유 메모리를 사용하거나 메시지 전달 프로토콜을 사용하거나, 임의의 다른 적절한 방식으로 서로 간에 정보를 전달할 수 있다.
일반적으로, 기능적 수단은 특정한 작업을 수행하거나 특정한 추상 데이터 유형(abstract data types)을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 일반적으로 기능적 수단의 기능성은 이 기능적 수단이 동작하는 시스템에서 원하는 대로 결합되거나 분산될 수 있다. 일부 구현에서, 여기서 기술을 수행하는 하나 이상의 기능적 수단은 함께 완전한 소프트웨어 패키지를 형성할 수 있다. 이러한 기능적 수단은 대안적인 실시예에서 소프트웨어 프로그램 애플리케이션을 구현하기 위해 다른 관련되지 않은 기능적 수단 및/또는 프로세스와 상호 작용하도록 적응될 수 있다.
하나 이상의 작업을 수행하기 위한 일부 예시적인 기능적 수단이 여기에서 설명되었다. 하지만, 설명된 기능적 수단 및 작업의 분할은 본 명세서에 설명된 예시적인 기술을 구현할 수 있는 기능적 수단의 유형을 예시할 뿐이며, 실시예는 기능적 수단의 임의의 특정 수, 분할, 또는 유형으로 구현되는 것으로 제한되지 않는다는 것을 이해해야 한다. 일부 구현에서, 모든 기능은 단일 기능적 수단에서 구현될 수 있다. 또한, 일부 구현에서, 본 명세서에 설명된 기능적 수단 중 일부는 다른 것과 함께 또는 별도로(즉, 단일 유닛 또는 개별 유닛으로서) 구현될 수 있거나, 이들 기능적 수단 중 일부가 구현되지 않을 수 있음을 인식해야 한다.
본 명세서에 설명된 기술을 구현하는 컴퓨터 실행 가능 명령어는 (하나 이상의 기능 도구로서 또는 임의의 다른 방식으로 구현될 때) 일부 실시예에서 하나 이상의 컴퓨터 판독 가능 매체에 인코딩되어 기능을 매체에 제공할 수 있다. 컴퓨터 판독 가능 매체는, 예를 들면, 하드 디스크 드라이브와 같은 자기 매체, 예를 들면, 컴팩트 디스크(Compact Disk; CD) 또는 디지털 다목적 디스크(Digital Versatile Disk; DVD)와 같은 광학 매체, 영구 또는 비영구 솔리드 스테이트 메모리(예를 들어, 플래시 메모리, 자성 RAM 등), 또는 임의의 다른 적절한 저장 매체를 포함한다. 그러한 컴퓨터 판독 가능 매체는 임의의 적절한 방식으로 구현될 수 있다. 여기에서 사용된 "컴퓨터 판독 가능 매체"("컴퓨터 판독 가능 저장 매체"라고도 함)는 유형의 저장 매체를 의미한다. 유형의 저장 매체는 비일시적이며 적어도 하나의 물리적, 구조적 컴포넌트를 가진다. 여기서 사용되는 "컴퓨터 판독 가능한 매체"에서, 적어도 하나의 물리적, 구조적 컴포넌트는 임베디드 정보를 갖는 매체를 생성하는 프로세스, 매체 상에 정보를 기록하는 프로세스, 또는 정보로 매체를 인코딩하는 임의의 다른 프로세스 동안 어떤 방식으로든 변경될 수 있는 적어도 하나의 물리적 특성을 갖는다. 예를 들어, 기록 프로세스 동안 컴퓨터 판독 가능 매체의 물리적 구조의 일부의 자화 상태가 변경될 수 있다. 
또한, 위에서 설명된 일부 기술은 이러한 기술에 의해 사용하기 위해 특정 방식으로 정보(예를 들어, 데이터 및/또는 명령어)를 저장하는 동작을 포함한다. 이러한 기술의 일부 구현(예를 들어, 기술이 컴퓨터 실행 가능 명령어로 구현되는 구현)에서 정보는 컴퓨터 판독 가능 저장 매체에 인코딩될 수 있다. 특정 구조가 이 정보를 저장하는 유리한 형식으로 여기에서 설명되는 경우, 이러한 구조는 저장 매체에 인코딩될 때 정보의 물리적 구성을 전달하는 데 사용될 수 있다. 이러한 유리한 구조는 정보와 상호 작용하는 하나 이상의 프로세서의 동작에 영향을 줌으로써, 예를 들면, 프로세서(들)에 의해 수행되는 컴퓨터 동작의 효율성을 증가시킴으로써 저장 매체에 기능성을 제공할 수 있다.
기술이 컴퓨터 실행 가능 명령어로 구현될 수 있는 일부(전부는 아님) 구현에서, 이러한 명령어는 임의의 적절한 컴퓨터 시스템에서 동작하는 하나 이상의 적절한 컴퓨팅 디바이스(들)에서 실행될 수 있거나, 하나 이상의 컴퓨팅 디바이스(또는 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서)는 컴퓨터 실행 가능 명령어를 실행하도록 프로그래밍될 수 있다. 컴퓨팅 디바이스 또는 프로세서는 데이터 저장소(예를 들어, 온칩 캐시 또는 명령어 레지스터, 버스를 통해 액세스할 수 있는 컴퓨터 판독 가능 저장 매체, 하나 이상의 네트워크를 통해 액세스할 수 있고 디바이스/프로세서에 의해 액세스할 수 있는 컴퓨터 판독 가능 저장 매체 등) 내와 같이, 컴퓨팅 디바이스 또는 프로세서에 액세스할 수 있는 방식으로 명령어가 저장될 때 명령을 실행하도록 프로그래밍될 수 있다. 이러한 컴퓨터 실행가능 명령어들을 포함하는 기능적 수단들은, 단일한 다목적 프로그래밍가능 디지털 컴퓨팅 디바이스, 프로세싱 파워를 공유하고 본 명세서에서 설명된 기술을 공동으로 수행하는 2개 이상의 다목적 컴퓨팅 디바이스의 조정된 시스템, 본 명세서에서 설명된 기술을 실행하기 위해 전용된(dedicated) 단일 컴퓨팅 디바이스 또는 컴퓨팅 디바이스의 조정된 시스템(같이 위치되거나 지리적으로 분산됨), 본 명세서에 설명된 기술을 수행하기 위한 하나 이상의 FPGA(Field-Programmable Gate Arrays), 또는 임의의 다른 적절한 시스템과 통합되고 이들의 동작을 지시할 수 있다.
컴퓨팅 디바이스는 적어도 하나의 프로세서, 네트워크 어댑터 및 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨팅 디바이스는 예를 들어, 데스크톱 또는 랩톱 개인용 컴퓨터, PDA(personal digital assistant), 스마트 모바일 전화, 서버, 또는 임의의 다른 적절한 컴퓨팅 디바이스일 수 있다. 네트워크 어댑터는 컴퓨팅 디바이스가 임의의 적합한 컴퓨팅 네트워크를 통해 임의의 다른 적합한 컴퓨팅 디바이스와 유선 및/또는 무선으로 통신할 수 있도록 하는 임의의 적합한 하드웨어 및/또는 소프트웨어일 수 있다. 컴퓨팅 네트워크는 무선 액세스 포인트, 스위치, 라우터, 게이트웨이 및/또는 기타 네트워킹 장비뿐만 아니라 인터넷을 포함한, 2개 이상의 컴퓨터 사이에서 데이터를 교환하기 위한 임의의 적절한 유선 및/또는 무선 통신 매체 또는 매체들을 포함할 수 있다. 컴퓨터 판독 가능 매체는 프로세싱될 데이터 및/또는 프로세서에 의해 실행될 명령어를 저장하도록 적응될 수 있다. 프로세서는 데이터 프로세싱 및 명령어 실행을 가능하게 한다. 데이터 및 명령어는 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.
컴퓨팅 디바이스는 입력 디바이스 및 출력 디바이스를 포함한 하나 이상의 컴포넌트 및 주변 장치를 추가로 가질 수 있다. 이 디바이스들은 특히, 사용자 인터페이스를 제시하기 위하여 사용될 수 있다. 사용자 인터페이스를 제공하기 위하여 이용될 수 있는 출력 디바이스들의 예들은 출력의 시각적 표현을 위한 프린터들 또는 디스플레이 스크린들과, 출력의 청각적 표현을 위한 스피커 또는 다른 사운드 생성 디바이스들을 포함한다. 사용자 인터페이스를 위하여 이용될 수 있는 입력 디바이스의 예는 키보드와, 예를 들어, 마우스, 터치 패드, 및 디지타이징 태블릿과 같은 포인팅 디바이스를 포함한다. 또 다른 예로서, 컴퓨팅 디바이스는 음성 인식을 통해 또는 다른 가청 형식으로 입력 정보를 수신할 수 있다.
기술이 회로 및/또는 컴퓨터 실행 가능 명령어로 구현되는 실시예가 설명되었다. 일부 실시예는 적어도 하나의 예가 제공된 방법의 형태일 수 있음을 이해해야 한다. 방법의 일부로서 수행된 동작들(acts)은 임의의 적절한 방식으로 순서화될 수 있다. 따라서, 예시적인 실시예에서 순차적인 동작들로서 예시되더라도, 일부 동작들을 동시에 수행하는 것을 포함할 수 있는, 예시된 것과는 상이한 순서로 동작들이 수행되는 실시예가 구성될 수 있다.
앞에서 설명된 실시예의 다양한 양상은 단독으로, 조합으로 또는 전술된 실시예들에서 구체적으로 논의되지 않은 다양한 배열로 사용될 수 있으며, 따라서 그 적용 시에 전술된 설명에 기재되거나 도면에 도시된 컴포넌트들의 세부 사항 및 배열에 제한되지 않는다. 예를 들어, 일 실시예에서 설명된 양상은 다른 실시예에서 설명된 양상과 임의의 방식으로 결합될 수 있다.
청구항 요소를 한정하기(modify) 위해 청구항에서의 "제1", "제2", "제3" 등과 같은 서수 용어의 사용은 그 자체가 또 다른 청구항 요소보다 한 청구항 요소의 임의의 우선순위, 순위 또는 순서, 또는 방법의 동작이 수행되는 시간 순서를 함축하지 않고, 청구항 요소를 구별하기 위해 특정 이름을 가진 하나의 청구항 요소를 동일한 명칭을 가진 또 다른 요소와 구별하기 위한(하지만, 서수 용어가 사용되는 경우) 레이블로만 사용된다.
또한, 본원에서 이용된 어법 및 용어는 설명의 목적을 위한 것이고, 제한하는 것으로서 간주되지 않아야 한다. "포함하는(including)", "포함하는(comprising)", 또는 "가지는(having)", "포함하는(containing)", "수반하는(involving)", 및 본원에서의 그 변형들의 이용은 이후에 열거된 항목들 및 그 등가물들뿐만 아니라, 추가적인 항목들도 망라하는 것으로 의도된다.
본 명세서에서 "예시적인"이라는 단어는 예, 실례 또는 예시로서의 역할을 하는 것을 의미하기 위해 사용된다. 따라서 본 명세서에서 예시적으로 설명된 임의의 실시예, 구현, 프로세스, 특징 등은 예시적인 예인 것으로 이해되어야 하며 달리 지시되지 않는 한 바람직하거나 유리한 예로 이해되어서는 안 된다.
이와 같이 적어도 하나의 실시예의 여러 양상을 설명하였지만, 다양한 변경, 수정 및 개선이 당업자에게 쉽게 발생할 수 있음을 이해해야 한다. 이러한 변경, 수정 및 개선은 본 개시의 일부가 되도록 의도되고 여기에 설명된 원리의 정신 및 범위 내에 있는 것으로 의도된다. 따라서, 전술한 설명 및 도면은 단지 예일뿐이다.

Claims (5)

  1. 비디오 데이터를 디코딩하기 위한 디코딩 방법에 있어서,
    코딩 빈(coding bin)을 디코딩함으로써 현재 데이터 단위(data unit)의 예측 모드와 연관된 최고 확률 모드(most probable mode; MPM) 정보를 디코딩하는 단계 - 상기 MPM 정보를 디코딩하는 단계는, 상기 빈이 상기 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 상기 빈을 컨텍스트 디코딩(context decoding)하는 것을 포함함 -;
    상기 디코딩된 MPM 정보에 기초하여, 상기 현재 데이터 단위를 인트라 예측 디코딩하기 위한 상기 예측 모드를 결정하는 단계; 및
    상기 현재 데이터 단위에 속하는 현재 변환 블록 내의 복수의 서브블록과 연관된 잔차 데이터를 디코딩하는 단계를 포함하고,
    상기 현재 데이터 단위와 연관된 상기 변환 블록은 서브블록 바이 서브블록(sub-block by sub-block) 기반으로 프로세싱되고,
    상기 현재 데이터 단위와 연관된 상기 변환 블록의 각 서브블록에 대하여, coded_sub_block_flag는,
    상기 coded_sub_block_flag가 0과 동일한 값을 갖는 경우, 각 서브블록의 모든 계수는 0이고 각 서브블록은 각 서브블록에 대한 계수를 파싱하는(parsing) 것이 스킵되거나, 또는
    상기 coded_sub_block_flag가 1과 동일한 값을 갖는 경우, 각 서브블록의 계수 중 적어도 하나는 0이 아님을,
    나타내도록 사용되고,
    상기 coded_sub_block_flag은 컨텍스트 모델링을 사용하여 코딩되고,
    상기 컨텍스트 모델링을 위한 이웃 데이터 단위의 수 및/또는 이웃 데이터 단위의 서브세트의 선택은, 상기 현재 데이터 단위가 변환 스킵을 사용하여 코딩되는지 여부에 의존하는 것인, 비디오 데이터를 디코딩하기 위한 디코딩 방법.
  2. 제1항에 있어서,
    상기 코딩 빈을 디코딩함으로써 상기 MPM 정보를 디코딩하는 단계는, 상기 코딩 빈이 제1 코딩 빈인 경우 상기 코딩 빈을 컨텍스트 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하기 위한 디코딩 방법.
  3. 제1항에 있어서,
    상기 코딩 빈을 디코딩함으로써 상기 MPM 정보를 디코딩하는 단계는, 상기 코딩 빈이 제2 코딩 빈 또는 그 이후의 코딩 빈인 경우 상기 코딩 빈을 우회 디코딩(bypass decoding)하는 단계를 포함하는, 비디오 데이터를 디코딩하기 위한 디코딩 방법.
  4. 제1항에 있어서,
    상기 MPM 정보는 상기 현재 데이터 단위에 대해 결정된 복수의 MPM과 연관된 MPM 리스트에서의 위치를 나타내는 인덱스를 포함하고, 상기 인덱스는 절단된 단항 역이진화(truncated unary de-binarization)를 사용함으로써 디코딩되는, 비디오 데이터를 디코딩하기 위한 디코딩 방법.
  5. 비디오 데이터를 디코딩하도록 구성된 장치에 있어서, 상기 장치는 메모리와 통신하는 프로세서를 포함하고, 상기 프로세서는 상기 메모리에 저장된 명령어를 실행하도록 구성되고, 상기 명령어는 상기 프로세서로 하여금,
    코딩 빈을 디코딩함으로써 현재 데이터 단위의 예측 모드와 연관된 최고 확률 모드(MPM) 정보를 디코딩하게 하고 - 상기 MPM 정보를 디코딩하는 것은, 상기 빈이 상기 MPM 정보에 대한 제1 코딩 빈인지 여부에 기초하여 상기 빈을 컨텍스트 디코딩하는 것을 포함함 -;
    상기 디코딩된 MPM 정보에 기초하여, 상기 현재 데이터 단위를 인트라 예측 디코딩하기 위한 상기 예측 모드를 결정하게 하고; 그리고
    상기 현재 데이터 단위에 속하는 현재 변환 블록 내의 복수의 서브블록과 연관된 잔차 데이터를 디코딩하게 하며,
    상기 현재 데이터 단위와 연관된 상기 변환 블록은 서브블록 바이 서브블록 기반으로 프로세싱되고,
    상기 현재 데이터 단위와 연관된 상기 변환 블록의 각 서브블록에 대하여, coded_sub_block_flag는,
    상기 coded_sub_block_flag가 0과 동일한 값을 갖는 경우, 각 서브블록의 모든 계수는 0이고 각 서브블록은 각 서브블록에 대한 계수를 파싱하는 것이 스킵되거나, 또는
    상기 coded_sub_block_flag가 1과 동일한 값을 갖는 경우, 각 서브블록의 계수 중 적어도 하나는 0이 아님을,
    나타내도록 사용되고,
    상기 coded_sub_block_flag은 컨텍스트 모델링을 사용하여 코딩되고,
    상기 컨텍스트 모델링을 위한 이웃 데이터 단위의 수 및/또는 이웃 데이터 단위의 서브세트의 선택은, 상기 현재 데이터 단위가 변환 스킵을 사용하여 코딩되는지 여부에 의존하는 것인, 비디오 데이터를 디코딩하도록 구성된 장치.
KR1020247007134A 2018-07-24 2019-07-24 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치 KR20240033178A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862702435P 2018-07-24 2018-07-24
US62/702,435 2018-07-24
US201862733099P 2018-09-19 2018-09-19
US62/733,099 2018-09-19
US16/516,957 US11509890B2 (en) 2018-07-24 2019-07-19 Methods and apparatus for entropy coding and decoding aspects of video data
US16/516,957 2019-07-19
PCT/CN2019/097483 WO2020020221A1 (en) 2018-07-24 2019-07-24 Methods and apparatus for entropy coding and decoding aspects of video data
KR1020217005436A KR20210029276A (ko) 2018-07-24 2019-07-24 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005436A Division KR20210029276A (ko) 2018-07-24 2019-07-24 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240033178A true KR20240033178A (ko) 2024-03-12

Family

ID=69178992

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247007134A KR20240033178A (ko) 2018-07-24 2019-07-24 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치
KR1020217005436A KR20210029276A (ko) 2018-07-24 2019-07-24 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217005436A KR20210029276A (ko) 2018-07-24 2019-07-24 비디오 데이터의 양상을 엔트로피 코딩 및 디코딩하기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US11509890B2 (ko)
EP (1) EP3827587A4 (ko)
KR (2) KR20240033178A (ko)
CN (2) CN112385214A (ko)
TW (1) TWI722498B (ko)
WO (1) WO2020020221A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112425165B (zh) * 2018-09-21 2023-10-20 华为技术有限公司 基于邻块的帧内预测模式推导
CN112806017B (zh) * 2018-10-05 2024-03-15 Tcl王牌电器(惠州)有限公司 用于编码变换系数的方法和设备
US11516506B2 (en) * 2018-10-05 2022-11-29 Lg Electronics Inc. Method and apparatus for processing image service
CN116965020A (zh) * 2021-03-13 2023-10-27 Oppo广东移动通信有限公司 视频编解码方法与系统、及视频编解码器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10123053B2 (en) 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
KR101876173B1 (ko) 2011-06-17 2018-07-09 엘지전자 주식회사 인트라 예측 모드 부호화/복호화 방법 및 장치
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US20130182772A1 (en) 2012-01-13 2013-07-18 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
EP3691269A1 (en) 2012-01-20 2020-08-05 BlackBerry Limited Methods and devices for context modeling to enable modular processing
US20130195200A1 (en) 2012-01-28 2013-08-01 Research In Motion Limited Methods and devices for context modeling to enable modular processing
US20160373742A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US10142627B2 (en) 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US10368107B2 (en) * 2016-08-15 2019-07-30 Qualcomm Incorporated Intra video coding using a decoupled tree structure
EP3791586A1 (en) * 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
TWI731364B (zh) * 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
KR20210010631A (ko) * 2018-07-13 2021-01-27 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2020017786A1 (ko) * 2018-07-14 2020-01-23 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 정보를 포함한 영상 정보 기반 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
KR20210029276A (ko) 2021-03-15
CN112385214A (zh) 2021-02-19
WO2020020221A1 (en) 2020-01-30
EP3827587A4 (en) 2022-04-20
US11509890B2 (en) 2022-11-22
EP3827587A1 (en) 2021-06-02
US20200036969A1 (en) 2020-01-30
TW202021342A (zh) 2020-06-01
CN116800963A (zh) 2023-09-22
TWI722498B (zh) 2021-03-21

Similar Documents

Publication Publication Date Title
KR101937213B1 (ko) 인트라 예측 모드 부호화/복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR102006235B1 (ko) 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치
US11606567B2 (en) Method for scanning transform coefficient and device therefor
US20180109812A1 (en) Block partitioning using tree structures
US11509890B2 (en) Methods and apparatus for entropy coding and decoding aspects of video data
CN112534807A (zh) 用于多假设模式参考和约束的方法和设备
JP2016527789A (ja) イントラ動き補償の拡張
KR20190119175A (ko) 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
CN112425164B (zh) 多个可分离变换选择的变换变体
TWI789668B (zh) 脈絡適應性二進制算術寫碼用參數化體系決定技術
TW202044836A (zh) 用於視訊寫碼中的調色板語法的分組寫碼
JP2023093765A (ja) 大域的運動を伴うフレームにおける選択的運動ベクトル予測候補
TW202133619A (zh) 用於合併估計區域的基於歷史的運動向量預測約束
KR20200025171A (ko) 다중 변환 선택을 사용하는 비디오 신호 처리 방법 및 장치
KR20200023135A (ko) 다중 변환 선택을 사용하는 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent