KR20190058609A - 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스 - Google Patents

픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20190058609A
KR20190058609A KR1020197012587A KR20197012587A KR20190058609A KR 20190058609 A KR20190058609 A KR 20190058609A KR 1020197012587 A KR1020197012587 A KR 1020197012587A KR 20197012587 A KR20197012587 A KR 20197012587A KR 20190058609 A KR20190058609 A KR 20190058609A
Authority
KR
South Korea
Prior art keywords
context
size
block
picture
picture block
Prior art date
Application number
KR1020197012587A
Other languages
English (en)
Other versions
KR102416958B1 (ko
Inventor
파브리스 레레아넥
가간 라쓰
파브리스 어반
Original Assignee
인터디지털 브이씨 홀딩스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20190058609A publication Critical patent/KR20190058609A/ko
Application granted granted Critical
Publication of KR102416958B1 publication Critical patent/KR102416958B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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/172Methods 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 picture, frame or field
    • 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/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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 원리들은 픽처 블록에 속하는 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩/디코딩하기 위한 방법 및 디바이스에 관한 것이다. 상기 방법은, 이진 심볼들의 시퀀스의 각각의 이진 심볼에 대해: - 상기 픽처 블록의 사이즈 및 코딩될 상기 이진 심볼에 따라 컨텍스트를 결정하는 단계(110); 및 - 상기 결정된 컨텍스트를 고려하여 상기 이진 심볼을 산술 코딩/디코딩하는 단계(120)를 포함하고; 상기 컨텍스트를 결정하는 단계(110)는: - 상기 픽처 블록의 사이즈가 2의 거듭 제곱일 때, 상기 픽처 블록의 사이즈에 따라 컨텍스트를 결정하는 단계(910); 및 - 상기 픽처 블록의 사이즈가 2의 거듭 제곱이 아닐 때, 상기 픽처 블록의 사이즈보다 바로 더 높거나 더 낮은 블록 사이즈 - 상기 블록 사이즈는 2의 거듭 제곱과 동일함 - 에 따라 컨텍스트를 결정하는 단계(920)를 포함하는 것을 특징으로 한다.

Description

픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스
본 원리들은 일반적으로 픽처/비디오 인코딩에 관한 것이다. 특히, 본 원리들의 기술 분야는 상기 픽처 데이터를 디코딩하는데 필요한 신택스 요소들을 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩(context-adaptive binary arithmetic coding)하는 것에 관련된다.
본 단원은 아래에서 설명 및/또는 청구되는 본 원리들의 다양한 양태들과 관련될 수 있는 기술의 다양한 양태를 독자에게 소개하고자 한다. 본 토론은 본 원리들의 다양한 양태의 보다 나은 이해를 촉진하도록 독자에게 배경 정보를 제공하는데 도움이 될 것으로 생각된다. 따라서, 이러한 설명들은 이러한 관점에서 읽혀져야 하지 선행 기술을 참작하는 것이 아니라는 것을 이해하여야 한다.
이하에서, 예를 들어 픽처 데이터는 픽처의 픽셀 값들에 관한 모든 정보 및 디스플레이 및/또는 임의의 다른 디바이스에 의해 픽처를 시각화 및/또는 디코딩하는데 사용될 수 있는 모든 정보를 명시하는 특정 비디오 포맷의 샘플들(픽셀 값들)의 하나 또는 여러 어레이를 포함한다. 스틸 픽처(또는 비디오의 픽처)는 제1 샘플 어레이의 형태의 적어도 하나의 성분, 보통은 루마(luma)(또는 루미넌스(luminance)) 성분, 및 가능하게는 적어도 하나의 다른 샘플 어레이의 형태의 적어도 하나의 다른 성분, 보통은 색 성분을 포함한다. 또는, 동등하게는, 동일한 정보가 전통적인 3색 RGB 표현과 같은 색 샘플 어레이들의 집합에 의해서도 표현될 수 있다.
픽셀 값은 C 값들의 벡터로 표현될 수 있는 픽처 데이터이며, 여기서 C는 성분들의 수이다. 벡터의 각 값은 픽셀 값의 최대 동적 범위를 정의하는 비트들의 수로 표시된다.
일반적으로 말해서, 픽처 블록은 픽처 데이터 요소들의 집합 또는 픽처 데이터에 관련한 신택스 요소들의 집합을 나타낸다. 예를 들어, 픽처 블록은 픽처에 속하는 픽셀들의 집합이다.
비디오 코딩 디바이스는 공간 및 시간 중복성을 이용함으로써 픽처 데이터를 압축하려 시도할 수 있다. 예를 들어, 비디오 인코더는 이웃하는 (이전에 코딩된 블록들)에 대해 픽처 블록을 코딩함으로써 공간 중복성을 이용할 수 있다. 마찬가지로, 비디오 인코더는 이전에 코딩된 픽처의 데이터에 관련한 픽처 블록을 코딩함으로써 시간 중복성을 이용할 수 있다. 특히, 비디오 인코더는 공간 이웃의 데이터로부터 또는 이전에 코딩된 픽처의 데이터로부터 현재 픽처 블록을 예측할 수 있다. 그런 다음 비디오 인코더는 픽처 블록의 실제 픽셀 값들과 픽처 블록의 예측된 픽셀 값들 간의 차이로서 픽처 블록의 잔차(residual)를 계산할 수 있다. 따라서, 픽처 블록의 잔차는 픽셀 (또는 공간) 도메인에서 픽셀 별 차이 값(pixel-by-pixel difference value)들을 포함할 수 있다.
그 다음에 비디오 인코더는 잔차의 값들에 변환을 적용하여 픽셀 값들의 에너지를 주파수 도메인에서 비교적 적은 수의 변환된 계수들로 압축할 수 있다. 다음으로 비디오 인코더는 변환된 계수들을 양자화하고 양자화된 변환된 계수들을 스캔하여 양자화된 변환된 계수들의 2차원 매트릭스를 양자화된 변환된 계수들을 포함하는 1차원 벡터로 변환할 수 있다. 그 다음에 비디오 인코더는 엔트로피 코딩 프로세스를 적용하여 스캔된 계수들을 엔트로피 인코딩할 수 있다. 예시적인 엔트로피 코딩 프로세스들은 예를 들어, 컨텍스트 적응 가변 길이 코딩(context-adaptive variable length coding)(CAVLC), 컨텍스트 적응 이진 산술 코딩(context-adaptive binary arithmetic coding)(CABAC), 신택스 기반 컨텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding)(SBAC), 확률 간격 분할 엔트로피(probability interval partitioning entropy)(PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론들을 포함할 수 있다.
일반적으로 비디오 디코더는 비디오 인코더에 의해 수행되는 인코딩 기술들과의 상호적인 기술들을 수행할 수 있다. 일반적으로 상호적이지만, 경우에 따라, 비디오 디코더는 비디오 인코더에 의해 수행되는 것과 유사한 기술들을 수행할 수 있다.
비디오 인코더는 비디오 디코더에 의해 픽처 데이터를 디코딩할 때 사용하기 위한 인코딩된 픽처 데이터와 연관된 신택스 요소들을 또한 엔트로피 인코딩할 수도 있다. 그러면, 비디오 디코더는 비디오 인코더와 관련하여 서술된 데이터를 포함하는 수신된 비트스트림에 포함된 신택스 요소들 또는 다른 데이터를 필요로 할 수 있다.
신택스 요소들의 몇몇 예들에 따르면, "마지막 유효 계수 좌표(last significant coefficient coordinate)"는 픽처 블록과 연관된 스캐닝 순서에 따라 픽처 블록 내의 0이 아닌 마지막 계수의 공간 위치를 디코더에 제공하는 신택스 요소이다. 그 다음에, "마지막 유효 계수 x-좌표" 신택스 요소는 픽처 블록 내의 마지막 유효 계수의 x-좌표를 디코더에 제공하기 위해 인코딩될 수 있고, "마지막 유효 계수 y-좌표" 신택스 요소는 픽처 블록 내의 마지막 유효 계수의 y-좌표를 디코더에 제공하기 위해 인코딩될 수 있다. "유효 계수 플래그"는 픽처 블록 내의 양자화된 변환된 계수가 0인지 또는 0이 아닌지를 표시하는 다른 신택스 요소이다.
양자화된 변환된 계수들의 레벨을 엔트로피 코딩하기 위해, 비디오 코더는 각각의 양자화된 변환된 계수의 레벨을 엔트로피 코딩할 수 있다. 예를 들어, 비디오 코더는 각각의 0이 아닌 양자화된 변환 계수의 절대 값을 이진 형태로 변환할 수 있다. 이러한 방식으로, 각각의 0이 아닌 변환된 계수는 예를 들어, 하나 이상의 비트 또는 "빈(bin)"을 포함하는 단항 코드(unary code)를 사용하여 "이진화"될 수 있다. 양자화된 변환된 계수의 부호 비트가 또한 인코딩 될 수 있다.
또한, 비디오 디코더가 픽처 데이터를 디코딩할 수 있게 하기 위해 다수의 다른 신택스 요소가 포함될 수 있다. 예를 들어, H.264/MPEG-4 AVC ("Advanced video coding for generic audiovisual Services", SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Recommendation ITU-T H.264, Telecommunication Standardization Sector of ITU, February 2014) and High Efficiency Video Coding (HEVC) standards (ITU-T H.265 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (10/2014), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, Recommendation ITU-T H.265)에 기재된 바와 같이, 신택스 요소는 움직임 벡터 잔차들, 변환 단위 코딩 플래그(Transform Unit coding flag)들, 코딩 그룹 코딩 플래그(Coding Group coding flag)들, (1을 초과 및 2를 초과하는) 양자화된 변환 계수 크기 플래그들, SAO 데이터 등을 나타낼 수 있다.
비디오 코더는 픽처 블록에 대한 양자화된 변환 계수들 또는 신택스 요소(정보)에 대응하는지에 상관없이, 각 이진 심볼의 확률 추정치들을 사용하여, 픽처 데이터의 블록에 대한 각각의 이진 심볼 (또는 빈)을 엔트로피 코딩할 수 있다. 확률 추정치들은 주어진 이진 값(예를 들어, "0" 또는 "1")을 갖는 이진 심볼의 우도(likelihood)를 표시할 수 있다. 확률 추정치들은 "컨텍스트"라고도 지칭되는 확률 모델 내에 포함될 수 있다. 그런 다음, 비디오 코더는 코딩될 이진 심볼에 대한 (확률 모델을 비롯한) 컨텍스트를 결정할 수 있다.
신택스 요소를 나타내는 이진 심볼들의 시퀀스의 이진 심볼에 대한 컨텍스트는 이전에 코딩된 이웃 신택스 요소들의 관련된 이진 심볼들의 값들을 포함할 수 있다. 컨텍스트는 컨텍스트들의 집합에 속할 수 있고 그러면 컨텍스트는 컨텍스트 집합 내의 컨텍스트를 식별하는 컨텍스트 인덱스로부터 획득된다.
하나의 예로서, 픽처 블록에 속하는 양자화된 변환된 계수에 관련한 유효 계수 플래그에 대한 컨텍스트는 상기 픽처 블록의 유형(예를 들어, 픽처 블록 사이즈, 룸(lum) 또는 크로마(chroma) 요소들의 블록) 및 픽처 블록과 연관된 스캐닝 순서에 따른 픽처 블록 내의 상기 양자화된 변환된 계수의 공간 위치를 포함한다.
다른 예로서, 픽처 블록에 대한 이진화된 잔차 변환 계수 절대 값의 이진 심볼에 대한 컨텍스트는 절대 값을 나타내는 단항 코드워드 내 이진 심볼의 공간 위치 및 픽처 블록의 이전에 코딩된 계수들의 값들을 포함한다.
다른 예들에서, 코딩된 블록 패턴(coded block pattern)("CBP")을 나타내는 이진 심볼들의 시퀀스의 이진 심볼에 대한 컨텍스트는 예를 들어, 현재 신택스 요소의 상단 및 좌측에 있는 이전에 코딩된 이웃 신택스 요소들의 관련된 이진 심볼들의 값들을 포함한다.
본 원리들은 위의 예들로 제한되지 않고 예를 들어 H.264/MPEG-4 AVC 및 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC) 표준들에서 정의된 것과 같은 신택스 요소 및 컨텍스트까지 확장된다.
어떤 경우든, 각각의 컨텍스트마다 상이한 확률 모델이 정의된다.
이진 심볼을 엔트로피 코딩한 후에, 확률 모델은 코딩된 이진 심볼의 값에 따라 업데이트되어 가장 최근의 확률 추정치들을 반영할 수 있다.
픽처 블록과 연관된 이진 심볼들은 하나 이상의 코딩 "패스(pass)들"에서 코딩 될 수 있다. 예를 들어, 제1 패스 동안, 비디오 코더는 유효 계수 플래그들 및 마지막 유효 계수 좌표들을 엔트로피 코딩할 수 있다. 제2 패스 동안, 비디오 코더는 양자화된 변환된 계수 레벨들의 제1 빈을 엔트로피 코딩할 수 있다. 비디오 코더는 픽처 블록의 양자화된 변환된 계수들과 연관된 모든 정보가 코딩될 때까지 코딩 패스들을 계속 수행할 수 있다.
일부 예들에서, 비디오 코더는 컨텍스트 적응 및 비컨텍스트 적응 코딩(non-context adaptive coding)의 조합을 사용하여 픽처 블록의 빈을 코딩할 수 있다. 예를 들어, 하나 이상의 패스 동안, 비디오 코더는 바이패스 모드를 사용하여 정규의 산술 코딩 프로세스를 바이패스하거나 생략할 수 있다. 그러한 경우에, 고정 등가 확률 모델(fixed equal probability model)이 바이패스 코딩된 빈을 코딩하는데 사용될 수 있다. 바이패스 코딩된 빈들은 컨텍스트 또는 확률 업데이트들을 포함하지 않는다.
컨텍스트 적응 코딩을 수행할 때, 일부 예들에서, 다수의 피드백 루프들로 인해 비교적 높은 직렬 종속성들(serial dependencies)이 있을 수 있다.
예를 들어, 이진 심볼을 코딩하기 위한 특정 확률 모델을 표시하는 컨텍스트는 이전에 코딩된 이진 심볼들, 예를 들어, 이전에 코딩된 신택스 요소들의 관련된 이진 심볼들의 값들에 의해 영향을 받을 수 있다.
또한, 이진 심볼을 코딩하는데 사용된 확률 모델들은 또한 이전에 코딩된 이진 심볼들의 값들에 의해 영향을 받을 수 있다. 즉, 확률 모델들은 유한 상태 머신의 한 상태로서 유지 될 수 있다. 각각의 특정 상태는 특정 확률 값에 대응할 수 있다. 확률 모델의 업데이트에 대응하는 다음 상태는 현재 이진 심볼들(예를 들어, 현재 코딩되는 빈)의 값에 따라 달라질 수 있다.
또한, 위에서 언급한 바와 같이, 특정 확률 모델은 유한 상태 머신의 한 상태로서 유지될 수 있고, 이때 각각의 특정 상태는 특정 확률 값에 대응한다. 확률 모델의 업데이트에 대응하는 다음 상태는 현재의 이진 심볼의 값에 따라 달라질 수 있다. 상태 업데이트들이라고 지칭될 수 있는 이러한 피드백 루프들은 계산상의 병목 현상을 나타낼 수 있다. 예를 들면, 피드백 루프들의 종속성들로 인해 처리량을 늘리는 것이 어려울 수 있다. 즉, 하나의 이진 심볼은 이전 이진 심볼로부터의 확률 모델이 업데이트될 때까지 처리되지 않을 수 있다. 일부 예들에서, 동일한 컨텍스트가 높은 빈도로 연속적으로 (이진 심볼 별로) 호출될 수 있다.
컨텍스트 적응 이진 산술 코딩(CABAC)은 H.264/MPEG-4 및 HEVC에서 사용되는 엔트로피 인코딩의 한 형태이다.
CABAC은 무손실 압축 기술(lossless compression technique)이지만, 전형적으로 손실 압축 애플리케이션들에 사용되는 비디오 코딩 표준이다.
도 1은 CABAC에서 신택스 요소를 인코딩하기 위한 일반적인 블록도를 도시한다.
기본적으로, CABAC은 세 개의 기본 단계를 포함한다.
단계(100)에서, 이진화기(binarizer)는 주어진 비-이진(non-binary) 값의 신택스 요소를 이진 심볼 시퀀스(빈 스트링(bin string))로 맵핑한다. 이진 값의 신택스 요소가 주어질 때는 도 1에 도시된 바와 같이, 이러한 초기 단계가 바이패스된다.
빈 스트링의 각각의 현재 빈에 대해 또는 각각의 이진 값의 신택스 요소에 대해, 코딩 모드에 따라 하나 이상의 후속 단계가 뒤이어질 수 있다.
소위 정규 코딩 모드에서, 컨텍스트 모델링 단계(110) 다음에는 정규 코딩 단계(120)가 뒤이어진다.
컨텍스트 모델링 단계(110)에서, 컨텍스트 모델러(context modeler)는 코딩될 빈에 따라 컨텍스트 모델(통상적으로는 여러 컨텍스트 모델들의 집합 중에서 컨텍스트 모델을 식별하는 컨텍스트 인덱스)을 선택하고, 현재 빈이 코딩되는 시점에서 동기 방식으로 인코더 및 디코더 양측에서 이용 가능한 컨텍스트 정보, 예컨대 이전에 인코딩된 신택스 요소들 또는 코딩된 이진 심볼들을 고려하여 상기 선택된 컨텍스트 모델로부터 컨텍스트를 결정한다. 그 다음에, 결정된 컨텍스트는 현재 빈이 특정 값, 예를 들어 '0'을 갖는 조건부 확률을 획득하는데 사용된다.
그런 다음, 정규 코딩 단계(120)에서, 결정된 컨텍스트(조건부 확률) 및 현재 빈의 값(s)(도 1의 빈 값)은 상기 결정된 컨텍스트를 고려하여 현재 빈을 산술 코딩하는 엔진으로 전달된다. 따라서 현재의 빈의 코딩된 값이 획득되고 컨텍스트 정보를 업데이트하는데 사용된다. 이것은 도 1에서 컨텍스트 모델 업데이트 피드백 루프이다. 컨텍스트 정보를 업데이트하는 것은 빈이 코딩되는 한 각 빈에 대해 컨텍스트를 업데이트하는 것을 포함하며, 따라서 빈 스트링의 각 빈에 대해 컨텍스트 모델링을 점진적으로 개선할 수 있다. 따라서 CABAC 인코더는 각각의 정규 인코딩된 빈의 통계적 거동을 점진적으로 학습한다.
정규 코딩 단계(120)의 출력인 정규 코딩된 비트는 출력 비트스트림에 부가된다.
대안적으로, 소위 바이패스 코딩 모드(bypass coding mode)는 도 1에서 스위치의 우측 하부 브랜치로 도시된 바와 같이, 명시적으로 할당된 확률 모델을 사용하지 않고 단순화된 코딩 엔진에 의한 전체 인코딩(및 디코딩) 프로세스의 속도 향상을 가능하게 하기 위해 빈을 코딩하기 위해 선택된다. 바이패스 모드는 단순히 출력 비트스트림에 비트를 기입하고 이렇게 획득된 비트 값을 현재의 빈에 할당하는 것으로 구성된다. 이러한 코딩 모드는 간단하고 따라서 빠르다는 이점이 있다. 따라서 전형적으로 이것은 균일한 통계 분포, 즉 '1' 또는 '0'과 동일한 등가 확률을 갖는 빈들에 대해 사용되는 것이 효과적이다.
도 2는 이진 심볼들의 시퀀스가 픽처 블록에 관련한 유효 계수 플래그들을 나타낼 때의 CABAC 코딩의 예를 도시한다.
이것은 본 원리들이 신택스 요소를 나타내는 모든 이진 심볼 시퀀스에 적용되기 때문에 비 제한적인 예이다.
도 2의 예에서는 유효 계수 플래그들의 블록을 나타내는 픽처 블록(여기서는 이진 심볼들)으로 표현된다(플래그는 픽처 블록의 각각의 양자화된 변환된 계수와 연관될 수 있다). 이러한 플래그는 양자화된 변환된 계수가 0과 같으면 0이고 그렇지 않으면 1이다. 이러한 픽처 블록은 특정 스캔 순서에 따라 스캔된다. 예를 들어, 점선들로 예시된 스캐닝 순서는 픽처 블록의 우측 하단 코너에서부터 좌측 상단 코너로 시작한다. 이진 심볼(s)이 코딩된다고 가정하면, 몇몇 후보 컨텍스트(Ci)는 상기 스캐닝 순서에 따라 이진 심볼(s)에 대해 이전에 정의되며 각 컨텍스트(Ci)는 후보 컨텍스트들의 집합 내의 컨텍스트(Ci)를 식별하는 컨텍스트 인덱스(ContVali)와 연관된다.
예를 들어, 네 개의 후보 컨텍스트(Ci)(i = 1, ..., 4)는 이진 심볼(s)에 대해 이전에 코딩된 두 개의 신택스 요소(x1 및 x2)(유효 계수 플래그들)로부터 정의된다. 각 컨텍스트(Ci)는 x1 및 x2의 이진 값들에 따라 정의되며 특정 컨텍스트 인덱스(ContVali)는 컨텍스트 각각에 할당된다.
도 3에 도시된 예로서, 컨텍스트 인덱스는 이진 심볼(s)의 특정 이진 값인 소위 최다 발생 확률 심볼(Most Probable Symbol)(MPS)들을 나타내는 비트(valMPS) 및 확률(p)이 추론되는 확률(p')(또는 상태)을 나타내는 비트들(예를 들면, 7 비트들)(pStateIdx)을 포함한다.
예에 따르면, 컨텍스트 모델링 단계(110)에서, x1 및 x2의 값에 따라, 컨텍스트(Cs)가 네 개의 후보 컨텍스트 중에서 선택되고, 연관된 컨텍스트 인덱스(ContVals)가 이진 심볼(s)에 할당된다.
정규 코딩 단계(120)에서, 인덱스(ContVals)를 갖는 선택된 컨텍스트의 컨텍스트 모델의 업데이트는 이진 심볼(s)이 MPS와 동일한지 아닌지에 따라 도 4에 도시된 프로세스에 뒤이어 이루어진다.
두 개의 테이블 (이진 심볼(s)이 MPS인 경우)(transIdxMPS) 및 (이진 심볼(s)이 MPS가 아닌 경우, 즉 이진 심볼(s)이 최소 발생 확률 심볼(Least Probable Symbol)(LPS)인 경우)(transIdxLP)을 통해 진화가 이루어진다. 이러한 테이블들은 도 5에서 엔트리(pStateIdx)에 제공된다.
이러한 예에 따르면, 이진 심볼(s)이 MPS일 확률(pMPS)은 8 비트로 0에서 127까지 선형적으로 양자화된다. 이것은 선택된 컨텍스트 인덱스로부터
Figure pct00001
에 의해 추론되며 심볼(s)이 1이 될 확률(p)은 MPS의 값에 따라 명백하게 pMPS로부터 추론된다.
Figure pct00002
컨텍스트 적응 코딩은 인코딩된 픽처 데이터와 관련된 상이한 신택스 요소들의 통계들을 동적으로 따르게 할 수 있는 강력한 도구이다.
따라서, 픽처 데이터와 관련된 픽처 데이터 및/또는 신택스 요소들을 엔트로피 코딩하기 위해 CABAC를 사용하는 것은 통계들을 모델링하기 위해 HEVC/H265에서 광범위하게 많은 컨텍스트(최대 수백 개까지)를 사용하게 만들었다.
컨텍스트 인덱스를 선택하는 것은 많은 것들에 따라 달려 있고, 그래서 신택스 요소들의 통계들을 포착하고 이에 따라 CABAC의 성능을 최적화하기 위해 엄청난 수의 컨텍스트를 사용하는 것이 일반적이다. 그러나, 컨텍스트들은 하나 이상의 이진 심볼 시퀀스들의 모든 이진 심볼들을 인코딩하기 위해 메모리에 저장되어야하기 때문에, 컨텍스트들의 수의 증가는 메모리 및 프로세싱 복잡성의 측면에서의 요건을 증가시킨다. 그렇기 때문에 컨텍스트들의 수를 제한하는 것이 신택스 요소들을 인코딩하기 위해 CABAC를 구현하는 비디오 디코더의 효율적인 하드웨어 구현 가능성을 보장하는데 중요하다.
따라서 과제 중의 하나는 컨텍스트들의 수를 너무 많이 증가시키지 않고 CABAC에 의해 제공되는 증가된 압축 능력으로부터 이득을 얻는 것이다.
도 6은 입력 비트스트림이 도 1의 방법에 따라 코딩된 비트들을 포함한다고 가정하여 신택스 요소의 CABAC 디코딩을 도시하는 일반적인 블록도를 도시한다. 입력 비트스트림은 HEVC 사양을 따를 수 있다.
임의의 디코딩 시점에서, 디코더는 다음에 디코딩될 신택스 요소를 알고 있다고 가정한다. 이것은 표준화된 비트스트림 신택스 및 디코딩 프로세스에서 완전히 명시되어 있다. 또한, 디코딩될 현재의 신택스 요소가 어떻게 이진화되는지(즉, 빈 스트링으로 표현되는지, 각 빈은 '1' 또는 '0'과 같음), 그리고 각 빈을 인코딩하는데 사용되는 코딩 모드(정규 코딩 모드 또는 바이패스 모드)가 무엇인지를 또한 가정한다.
이러한 정보는 고려된 비디오 압축 표준인 H.264 또는 HEVC에서 완전히 명시되어 있다.
그러므로, 단계(600)에서, 파서(parser)는 입력 비트스트림으로부터 코딩된 비트를 디코딩(파싱)함으로써 일련의 비트를 획득한다.
디코딩되는 각각의 현재 코딩된 빈에 대해, 상기 현재 코딩된 빈을 코딩하기 위해 사용된 코딩 모드에 따라 하나 이상의 후속 단계가 뒤따를 수 있다.
바이패스 코딩 모드가 현재 코딩된 빈을 코딩하는데 사용되었을 때, 바이패스 디코딩 단계(610)에서, 현재 코딩된 빈의 값은 현재 코딩된 빈의 디코딩된 값이다.
정규 코딩 모드가 현재의 코딩된 빈을 코딩하는데 사용되었을 때, 컨텍스트 모델링 단계(110) 다음에 정규 디코딩 단계(620)가 뒤따른다.
도 1 및 도 6의 컨텍스트 모델링 단계들은 엄격하게 동일하며, 도 6의 정규 디코딩 단계(620)는 도 1의 정규 코딩 단계(110)와 아주 유사하다.
정규 디코딩 단계(620)에서, 현재 코딩된 빈의 디코딩된 값은 컨텍스트 모델링 단계(110)에 의해 주어진 컨텍스트로부터 획득된다: 상기 컨텍스트(조건부 확률) 및 현재 비트들의 값은 상기 컨텍스트를 고려하여 현재 빈을 산술 디코딩하는 엔진으로 전달된다. 따라서, 현재 빈의 코딩된 값이 획득되고 컨텍스트 정보를 업데이트하는데 사용된다. 이것은 도 6에서 컨텍스트 모델 업데이트 피드백 루프이다. 컨텍스트 정보를 업데이트하는 것은 빈이 디코딩되는 한 각 빈에 대해 컨텍스트를 업데이트하는 것을 포함하며, 따라서 각각의 빈에 대해 컨텍스트 모델링을 점진적으로 개선할 수 있다. 따라서 CABAC 디코더는 현재 빈의 원래 값과 동일한 현재 코딩된 빈의 디코딩된 값을 점진적으로 획득한다(무손실 압축).
현재 빈의 디코딩된 값(바이패스 디코딩 단계(610) 또는 정규 디코딩 단계(620)의 출력)이 획득될 때, 현재 빈의 디코딩된 값은 이진 값의 신택스 요소 또는 비-이진 값의 신택스 요소와 관련된다. 이것은 고려되는 비디오 압축 표준 H.264 또는 HEVC에 의해 명시될 수 있다. 다음으로, 현재 빈의 디코딩된 값이 이진 값의 신택스 요소와 관련이 있으면, CABAC 디코딩은 종료되며, 현재 빈의 디코딩된 값이 비-이진 값의 신택스 요소와 관련이 있을 때, 디코더는 빈(단계(620) 또는(610)의 출력 빈 스트링)의 디코딩된 값으로부터 신택스 요소를 어떻게 구축하는지를 알고 있다.
단계(630)에서, 그 다음에 변환기는 이진화(단계(100))의 역 프로세스를 적용함으로써 상기 출력 빈 스트링을 비-이진 값의 신택스 요소로 변환한다.
비디오 압축에서, 전체 픽처를 단일 픽처 블록으로 인코딩하는 것이 최적이 아니고 코딩 트리(coding tree)의 각 리프(leaf)를 인코딩하기 전에 전체 픽처를 서브블록으로 재귀적으로 분할하는 것이 코딩 효율을 증가시키는 것으로 잘 알려져 있다.
예를 들어, HEVC 표준에서, 인코딩될 픽처는 전형적으로 정사각형 모양(64x64, 128x128, 또는 256x256 픽셀)을 갖는 코딩 트리 유닛(Coding Tree Unit)(CTU)들로 분할된다. 각 CTU는 압축 도메인에서 코딩 트리로 표현된다. 코딩 트리는 CTU의 재귀적 분할을 서술한다. 쿼드트리 분할이 사용되면 코딩 트리(코딩 유닛)의 각 리프는 정사각형 모양을 갖지만 쿼드트리 플러스 바이너리 트리(Quad-tree Plus Binary Tree)(QTBT) 분해가 사용될 때는 일부 리프가 또한 직사각형 모양을 가질 수도 있다. 보다 정확하게는, CTU의 QTBT 분해는 두 단계로 구성된다: 먼저 CTU가 쿼드 트리 방식으로 분할되고, 그런 다음 각 쿼드 트리 리프가 이진 방식으로 더 분할될 수 있다. 이것은 도 7의 우측에 도시되는데, 도 7에서 실선은 쿼드 트리 분해 단계를 나타내며 쇄선은 쿼드 트리의 리프들에 공간적으로 묻힌 이진 분해를 나타낸다. 코딩 유닛의 분할은 인코더 측에서 최소 레이트 왜곡 비용으로 CTU의 QTBT 표현을 결정하는 것으로 이루어진 레이트 왜곡 최적화 절차를 통해 결정된다.
HEVC 표준에서, 코딩 유닛의 사이즈, 즉 너비 및 높이는 항상 2의 거듭 제곱이고, 전형적으로 4에서부터 128로 거듭제곱된다.
본 발명자들은 QTBT 분해에서 비대칭 분할 모드(asymmetric splitting mode)를 가능하게 하면 코딩 트리가 픽처 내의 공간 구조와 더 잘 매칭되어 코딩 유닛들에 보다 균일한 콘텐츠를 제공하기 때문에 코딩 효율을 증가시킨다는 것을 발견하였다.
비대칭 분할 모드는 사이즈(너비 및/또는 높이)가 정수 값(m)의 배수와 동일한 코딩 유닛을 사이즈(너비 및/또는 높이)가
Figure pct00003
과 동일한 두 개의 서브코딩 유닛으로 분할하는 것으로 구성되며, 여기서 n은 정수 값이고 m은
Figure pct00004
이 2의 거듭 제곱과 동일하지 않도록 선택된 정수 값이다.
도 8은 m이 3과 동일할 때 네 개의 비대칭 분할 모드의 예들을 도시한다. 이러한 예들은 단지 예시적인 목적을 위해 제공되며, 5, 7, … 등과 같은 다른 m 값들로 확장될 수 있다. m의 배수와 같은 사이즈(너비(w) 및/또는 높이(h))를 갖는 코딩 유닛의 인코딩 시 비대칭 분할 모드를 도입하면 상기 비대칭 분할 모드들 중 하나를 통해 상기 코딩 유닛의 분할이 가능해진다. 예를 들어, 도 8에서 비대칭 분할 모드(HOR_UP(수평-위(horizontal-up))에 따라 너비(w) 및 높이(h)가 3의 배수와 동일하게 코딩 유닛을 분할하면 각각 직사각형 사이즈
Figure pct00005
Figure pct00006
를 갖는 2 개의 서브코딩 유닛이 만들어진다.
비대칭 분할 모드가 사용될 때, 일부 코딩 유닛은 그 너비 및/또는 그 높이가
Figure pct00007
과 동일하다. 그런 다음, 사이즈가 2의 거듭 제곱과 동일한 코딩 유닛들을 인코딩하기 위해 초기에 설계된 통상적인 HEVC 도구들은 2의 거듭 제곱과 동일하지 않은 새로운 사이즈의 코딩 유닛에 적응되어야 한다.
본 원리들에 의해 해결된 문제들 중 하나는 코딩 설계의 최소한의 복잡성 증가와 함께 양호한 압축 효율(레이트 왜곡 성능)을 제공하는 방식으로, 비대칭 코딩 유닛들에 포함된 양자화된 변환된 계수들을 효율적으로 엔트로피 인코딩/디코딩하는 방법이다. 다시 말해서, 과제들 중 하나는 HEVC 엔트로피 인코딩(CABAC)에 의해 사용되는 컨텍스트들의 수를 증가시키지 않고 비대칭 분할 모드들을 사용함으로써 제공되는 증가된 압축 능력으로부터 이득을 얻는 것이다.
다음은 본 원리들의 일부 양태들의 기본적인 이해를 제공하기 위해 본 원리들의 단순화된 요약을 제공한다. 이 요약은 본 원리들의 포괄적인 개요는 아니다. 이것은 본 원리들의 핵심 또는 중요한 요소들을 식별하려는 의도는 아니다.
다음의 요약은 본 원리들의 일부 양태를 단지 아래에 제공되는 보다 상세한 설명의 서막으로서 단순화된 형태로 제공한다.
본 원리들은 픽처 블록에 속하는 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩/디코딩하기 위한 방법으로 종래 기술의 결점들 중 적어도 하나를 개선하기 위해 착수된다. 상기 방법은, 이진 심볼들의 시퀀스의 각각의 이진 심볼에 대해,
- 픽처 블록의 사이즈 및 코딩될 이진 심볼에 따라 컨텍스트를 결정하는 단계; 및
- 상기 결정된 컨텍스트를 고려하여 상기 이진 심볼을 산술 코딩/디코딩하는 단계를 포함하고;
상기 컨텍스트를 결정하는 단계는:
- 상기 픽처 블록의 사이즈가 2의 거듭 제곱일 때, 상기 픽처 블록의 사이즈에 따라 컨텍스트를 결정하는 단계; 및
- 상기 픽처 블록의 사이즈가 2의 거듭 제곱이 아닐 때, 상기 픽처 블록의 사이즈보다 바로 더 높거나 더 낮은 블록 사이즈 - 상기 블록 사이즈는 2의 거듭 제곱과 동일함 - 에 따라 컨텍스트를 결정하는 단계를 포함하는 것을 특징으로 한다.
본 원리들의 다른 양태에 따르면, 본 원리들은 프로그램이 컴퓨터상에서 실행될 때 위의 방법의 단계들을 실행하는 프로그램 코드 명령어들을 포함하는 디바이스 및 컴퓨터 프로그램 제품 및 상기 프로그램이 컴퓨팅 디바이스에서 실행될 때 위의 방법의 단계들을 실행하기 위한 프로그램 코드의 명령어들을 반송하는 비일시적 저장 매체에 관련된다.
본 원리들의 특정한 본질뿐만 아니라 본 원리들의 다른 목적들, 이점들, 특징들 및 용도들은 첨부 도면들과 함께 취해진 다음의 설명으로부터 명백해질 것이다.
도면들에는 본 원리들의 예들이 도시된다.
- 도 1은 CABAC를 사용하여 신택스 요소를 인코딩하기 위한 일반적인 블록도를 도시한다.
- 도 2는 이진 심볼들의 시퀀스가 비디오 데이터의 블록에 대한 유효 맵을 나타낼 때의 컨텍스트 선택 단계의 예를 도시한다.
- 도 3은 컨텍스트 인덱스의 예를 도시한다.
- 도 4은 컨텍스트 인덱스를 업데이트하기 위한 일반적인 블록도를 도시한다.
- 도 5는 컨텍스트 인덱스를 업데이트하는데 보통 사용되는 잘 알려진 테이블들을 도시한다.
- 도 6은 본 원리들의 예에 따라서 이진 심볼들의 시퀀스의 이진 심볼(s)를 컨텍스트 적응 이진 산술 디코딩하기 위한 방법을 도시한다.
- 도 7은 이진 심볼(s)이, 예를 들어, 비디오 데이터의 블록에 관련된 유효 맵의 유효 플래그를 나타낼 때 도 6의 방법의 실시예의 예를 도시한다.
- 도 8은 m이 3과 동일할 때 네 개의 비대칭 분할 모드의 예를 도시한다.
- 도 9는 본 원리들의 예에 따라서 픽처 블록 사이즈에 따라 이진 심볼에 대한 여러 컨텍스트들의 집합 중에서 컨텍스트의 선택(단계(110))을 예시하는 블록도를 도시한다.
- 도 10은 8x8 TB에서 스캔 순서들의 예들을 도시한다.
- 도 11은 "마지막 유효 계수 좌표" 신택스 요소의 이진화에 사용되는 테이블을 도시한다.
- 도 12 및 도 13은 상이한 TB 사이즈들에 따라서 컨텍스트 인덱스들의 집합들을 제공하는 테이블의 예들을 도시한다.
- 도 14는 본 원리들의 실시예에 따라서 컨텍스트 증분(ctxIncrement)을 계산하는 예를 도시한다.
- 도 15는 본 원리들의 예에 따라서 디바이스의 아키텍처의 예를 도시한다.
동일하거나 유사한 요소들은 동일한 참조 번호들로 참조된다.
이하 본 원리들은 본 원리들의 예들이 도시된 첨부 도면들을 참조하여 보다 상세히 설명될 것이다. 그러나, 본 원리들은 많은 대안적인 형태로 구현될 수 있으며 본 명세서에서 설명된 예들로 제한되는 것으로 해석되지 않아야 한다. 따라서, 본 원리들이 다양한 변경들 및 대안적인 형태들에 영향을 받을 수 있겠지만, 그 특정 예들은 도면들에서 예로서 도시되고 본 명세서에서 상세히 설명될 것이다. 그러나, 본 원리들을 개시된 특정 형태들로 제한하려는 의도는 없고, 그 반대로, 본 개시내용은 청구범위에 의해 정의된 바와 같이 본 원리들의 사상 및 범위 내에 속하는 모든 변형들, 등가물들 및 대안들을 포함하는 것으로 이해되어야 한다.
본 명세서에 사용되는 용어는 특정 예들을 설명하려는 것일 뿐이지 본 원리들을 제한하려는 것은 아니다. 본 명세서에서 사용된 바와 같은, "하나", "하나의" 및 "그"라는 단수 형태들은 맥락상 분명하게 그렇지 않다고 지시하지 않는 한, 복수 형태들을 포함하는 것으로 의도된다. 본 명세서에서 사용되는 바와 같이, "포함한다", "포함하는", "구비한다" 및/또는 "구비하는"이라는 용어들은 언급된 특징들, 정수들, 단계들, 동작들, 요소들 및/또는 구성요소들의 존재를 명시하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 구성요소들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것을 또한 이해할 것이다. 더욱이, 요소가 다른 요소에 "응답하는" 또는 "연결된" 것으로 언급될 때, 이것은 다른 요소에 직접 응답하거나 연결될 수 있고, 또는 개재하는 요소들이 존재할 수 있다. 이와 대조적으로, 요소가 다른 요소에 "직접 응답하는" 또는 "직접 연결된"것으로 언급될 때는 개재하는 요소들이 존재하지 않는다. 본 명세서에 사용되는 바와 같이, "및/또는"이라는 용어는 연관되어 열거된 항목들 중 하나 이상의 임의의 조합 및 모든 조합을 포함하며, "/"로 약칭될 수 있다.
제1, 제2 등의 용어들이 본 명세서에서 다양한 요소들을 설명하기 위해 사용될 수 있지만, 이들 요소들은 이러한 용어들에 의해 제한되지 않아야 한다는 것을 이해할 것이다. 이들 용어들은 하나의 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 제1 요소는 제2 요소로 명명될 수 있으며, 마찬가지로, 제2 요소는 본 원리들의 교시로부터 벗어남이 없이 제1 요소로 명명될 수도 있다.
일부 다이어그램들이 통신의 주요 방향을 보여주기 위해 통신 경로들 상에서 화살표들을 포함할지라도, 통신은 도시된 화살표들과 반대 방향으로 발생할 수 있음을 이해하여야 한다.
일부 예들은 블록도들 및 동작 흐름도들과 관련하여 설명되며, 여기서 각 블록은 회로 요소, 모듈 또는 명시된 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 코드의 부분을 나타낸다. 또한, 다른 구현예들에서, 블록들에 대해 언급된 기능(들)은 언급된 순서를 벗어나 일어날 수 있음을 또한 주목하여야 한다. 예를 들어, 연속적으로 도시된 두 개의 블록은 사실상 실질적으로 동시에 실행될 수 있거나 또는 관련된 기능성에 따라 때로는 블록들이 역순으로 실행될 수 있다.
본 명세서에서 "예에 따라서" 또는 "예에서"라고 언급하는 것은 예와 관련하여 설명된 특정한 특징, 구조 또는 특성이 본 원리들의 적어도 하나의 구현예에 포함될 수 있음을 의미한다. 본 명세서의 여러 곳에서 "예에 따라서" 또는 "예에서"라는 문구가 출현한다 하여 반드시 모두 동일한 예를 언급하는 것도 아니고, 반드시 다른 예들과 상호 배타적인 별도의 또는 대안적인 예들인 것도 아니다.
특허청구범위에 나오는 참조 부호들은 설명만을 위한 것이지 청구범위의 범위를 제한하지 않을 것이다.
명시적으로 설명되지는 않지만, 본 예들 및 변형예들은 임의의 조합 또는 하위 조합에서 사용될 수 있다.
본 원리들은 컨텍스트들의 집합 중에서 컨텍스트를 선택하기 위한 전략이 인코딩될 픽처 블록의 사이즈에 따라 달라지는 CABAC의 수정된 버전을 개시한다.
도 9는 본 원리들의 예에 따라서 픽처 블록의 사이즈에 따라서 이진 심볼에 대한 여러 컨텍스트들의 집합 중에서 컨텍스트의 선택(단계(110))을 예시하는 블록도를 도시한다.
단계(900)에서, 모듈은 픽처 블록의 사이즈(너비 및 높이)가 2의 거듭 제곱인지 아닌지를 체크한다.
'예'이면, 단계(910)에서, 선택기(SL1)는 상기 픽처 블록 사이즈가 2의 거듭 제곱일 때 상기 픽처 블록의 사이즈에 따라 컨텍스트를 결정한다.
그렇지 않으면, 단계(920)에서, 선택기(SL2)는 상기 픽처 블록의 사이즈 - 상기 블록 사이즈는 2의 거듭 제곱임 - 보다 바로 더 높거나 또는 대안적으로 그보다 낮은 블록 사이즈에 따라 컨텍스트를 결정한다.
이러한 본 원리들은 불균일한 통계적 거동을 갖는 픽처 데이터와 관련한 임의의 종류의 픽처 요소 또는 신택스 요소를 코딩하는데 적용될 수 있다.
아래에서, 본 원리들의 실시예들은 HEVC 표준(ITU-T H.265 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(10/2014), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, Recommendation ITU-T H.265)과 관련하여 설명되지만, 픽처 데이터 또는 신택스 요소들을 인코딩하기 위해 엔트로피 코딩을 필요로 하는 임의의 다른 비디오 인코딩/디코딩 방식으로 확장될 수 있다.
HEVC 표준 및("Algorithm Description of Joint Exploration Test Model 3", Document JVET-C1001_v3, Joint Video Exploration Team of ISO/IEC JTC1/SC29/WG11, 3rd meeting, 26 May - 1 June 2015, Geneva, Ch)와 연관된 조인 탐사 모델(join Exploration model)에서, 변환 블록(Transform Block)(TB)이라고 부르는 픽처 블록에 속하는 양자화된 변환된 계수들은 통상적으로 CABAC를 사용하여 엔트로피 코딩된다. TB는 예를 들면, 위에서 설명한 바와 같이 획득된 코딩 트리의 코딩 유닛(리프)일 수 있는 픽처 블록이다.
먼저, 변환 블록(TB)은 코딩 그룹(Coding Group)(CG)이라 불리는 양자화된 변환된 계수의 서브블록들로 분할된다. 엔트로피 코딩/디코딩은 수 개의 가능한 스캔 패턴 중에서 선택된 스캔 패턴에 따라 TB를 스캔하는 여러 스캔 패스들로 구성된다.
도 10에 도시된 예로서, 8x8 TB는 네 개의 4x4 코딩 그룹(CG)으로 분할된다. 인터 예측된 코딩 유닛들의 경우, 항상 대각선 스캔 패턴이 사용되는 반면에, 4x4 및 8x8 인트라 예측된 코딩 유닛의 경우, 선택된 스캔 패턴은 해당 CU에 대해 활성화된 인트라 예측 모드에 따라 달라진다.
그 다음에 TB에 대해 이루어지는 스캔 패스는 세 개의 스캔 순서(대각선, 수평, 수직) 중 하나에 따라 각 CG를 순차적으로 처리하는 것이며, 각 CG 내부의 16 개의 양자화된 변환된 계수 역시 고려된 스캐닝순서에 따라 스캔된다. 스캐닝 패스는 TB에서 마지막 유효(0이 아닌) 계수에서 시작하여(통상 CG의 에너지 중 대부분을 지니고 있는) CG의 상단 좌측 코너에 위치한 양자화된 변환된 계수까지 모든 양자화된 변환된 계수를 처리한다.
따라서, "마지막 유효 계수 x- 좌표" 및 "마지막 유효 계수 y- 좌표"라고 부르는 두 개의 신택스 요소들이 각 TB마다 HEVC 순응 인코더의 출력 비트스트림에 추가되어, 상기 TB와 연관된 스캐닝 순서에 따라 TB 내의 마지막 0이 아닌 양자화된 변환된 계수의 공간 위치(x-좌표 및 y-좌표)를 디코더에게 제공한다.
양자화된 변환된 계수들의 엔트로피 코딩은 최대 다섯 개의 스캔 패스를 포함할 수 있고, 각각의 스캔 패스는 다음과 같은 신택스 요소들 각각의 코딩에 전용된다:
* significant-coeff-flag: 이것은 양자화된 변환된 계수가 0인지 아닌지를 표시하는 2 진 플래그이다.
* coeff-abs-level-greater1-flag: 이것은 양자화된 변환된 계수 레벨의 절대 값이 1을 초과하는지 아닌지를 표시하는 이진 플래그이다.
* coeff-abs-level-greater2-flag: 이것은 계수 레벨의 절대 값이 2를 초과하는지 아닌지를 표시하는 나타내는 이진 양자화된 변환된 계수이다.
* coeff-sign-flag: 이것은 유효(0이 아닌) 양자화된 변환된 계수의 부호를 표시하는 이진 플래그이다.
* coeff-abs-level-remaining:(양자화된 변환된 계수 값이 이전 패스들에서 코딩된 계수 값보다 크면) 이 신택스 요소는 양자화된 변환된 계수 레벨의 절대 값에 대한 나머지 값을 나타낸다.
위의 네 개의 제1 패스의 하위집합을 디코딩함으로써 계수의 절대 값이 알려지면, 또 다른 신택스 요소들은 해당 계수의 절대 값과 관련하여, 해당 계수에 대해 나머지 패스들에서 코딩되지 않는다. 부호 코딩에 대해서도 마찬가지이다: coeff-sign-flag는 0이 아닌 계수들에 대해서만 전송된다.
모든 스캔 패스는 다음 CG로 진행하기 전에, 주어진 CG 내의 모든 양자화된 변환된 계수가 재구성될 수 있을 때까지 해당 CG에 대해 코딩된다.
비트스트림으로부터의 TB의 전체적인 디코딩은 상기 비트스트림의 파싱을 포함하여 디코더에 다음과 같은 신택스 요소들을 제공한다:
1. "마지막 유효 좌표" 신택스 요소.
2. TB의 마지막 유효 계수를 포함하는 CG로부터 TB의 좌측 상단 CG까지의 각각의 연속적인 CG에 대해:
a. HEVC 표준에서 coded_sub_block_flag 라고 부르는 CG 유효 플래그;
b. 고려된 CG 내 각각의 양자화된 변환된 계수에 대한 유효 계수 플래그. 이것은 HEVC 표준의 신택스 요소(sig_coeff_flag)에 대응한다.
c. 고려된 CG 내 0이 아닌 양자화된 변환 계수에 대해:
i. coeff_abs_level_greater1_flag: 이 플래그는 현재 계수의 절대 값이 1을 초과하는지 아닌지를 표시한다. 그렇지 않으면, 1과 같으면 절대 값이다.
ii. coeff_abs_level_greater2_flag: 이 플래그는 현재 계수의 절대 값이 1을 초과하는지 아닌지를 표시한다. 그렇지 않으면, 1과 같으면 절대 값이다.
iii. coeff_sign_flag: 이것은 0이 아닌 계수들의 부호를 표시한다.
iv. coeff_bas_level_remaining: 이것은 절대 값이 2보다 큰 계수의 절대 값을 인코딩한다.
본 원리들의 다음과 같은 실시예들은 "마지막 유효 계수 좌표" 신택스 요소들의 코딩/디코딩 및 "유효 계수 플래그" 신택스 요소의 코딩/디코딩에만 초점을 맞추는데, 왜냐하면 이들을 코딩/디코딩하는데 사용되는 컨텍스트들이("Algorithm Description of Joint Exploration Test Model 3", Document JVET-C1001_v3, Joint Video Exploration Team of ISO/IEC JTC1/SC29/WG11, 3rd meeting, 26 May - 1 June 2015, Geneva, Ch)과 연관된 조인 탐사 모델에서, TB의 사이즈에 따라 달라질 수 있기 때문이다.
본 원리들의 제1 실시예에 따르면, 도 9의 방법은 코딩 그룹(CG)에 관련한 "마지막 유효 계수 좌표" 신택스 요소들을 컨텍스트 기반 산술 코딩/디코딩하는데 적용된다.
"마지막 유효 계수 x-좌표" 신택스 요소는 TB에 속하는 CG와 관련이 있으며 다음에 의해 무손실 표현된다:
- (N+1) 간격들의 집합 중에서, 코드에 대한 x-좌표가 포함되는 정수 값들의 간격을 식별하는 간격 인덱스(프리픽스(prefix)), 여기서
Figure pct00008
, 여기서
Figure pct00009
는 CG 내의 변환된 계수를 획득하는데 사용되는 변환의 사이즈, 즉 정사각형 블록의 경우 너비 또는 높이임;
- 상기 간격 인덱스에 의해 시그널링된 간격 내의 마지막 유효 계수의 x-좌표를 결정하는 오프셋(서픽스(suffix)).
방법은 x-좌표 값이 상기 간격 인덱스에 의해 식별된 값들의 간격에 속하도록 하기 위해 상기 간격 인덱스를 획득하고, "마지막 유효 계수 x-좌표" 값이 상기 프리픽스 및 서픽스에 의해 무손실로 표현되도록 하기 위해 식별된 간격 내에서 상기 오프셋을 획득한다.
서픽스는 예를 들어 b 비트들 - 도 11에 의해 도시된 바와 같이
Figure pct00010
- 에 대해 고정 길이 코드를 사용함으로써, 통상적으로 바이패스 모드에서 코딩되는 이진 값 신택스 요소이다. 코딩된 서픽스는 출력 비트스트림에 추가된다.
간격 인덱스를 나타내는 프리픽스는 본 원리들의 예(단계(110, 120))에 따른 컨텍스트 기반 산술 코딩된 비이진 값 신택스 요소이다. 그 다음에 프리픽스는 비트스트림 외부(out-bit-stream)에 추가된다.
"마지막 유효 계수 x-좌표"(마지막 유효 계수 y-좌표") 신택스 요소를 인코딩하기 위해, 먼저, 단계(100)(도 1)에서, 도 11에 도시된 바와 같이, T=32일 때 이진화기는 간격 인덱스를 절단된 단항 코드(truncated unary code)에 매핑한다. 하나의 좌표에 대한(컨텍스트 기반 코딩된 빈들의 수이기도 한) 절단된 단항 코드(truncated unary code)의 최대 길이는 각각 T = 4, 8, 16 및 32 인 경우 3, 5, 7 및 9이다. 실제로, 예를 들어, T가 4와 같으면, 마지막 유효 계수 x- 좌표는 0, 1, 2 또는 3과 동일할 수 있다. 이들 값들은 각각 절단된 단항 코드들 '0', '10', '110' 및 '1110'에 의해 식별된다. 따라서 T가 4와 같은 경우 최대 3 개의 빈이 필요하다. 또한, T가 8과 같은 경우, 최대 절단 코드워드는 '111110'이다. 마지막 유효 계수 x-좌표는 많아봐야 7이기 때문에, 일단 디코더가 '1'과 동일한 5 개의 연속 빈을 디코딩하였다면, 디코더는 프리픽스 코드가 '111110'이라고 추론할 수 있다. 이런 이유로 변환 사이즈가 8 인 경우에 기껏 5 개의 빈이 프리픽스에 필요하다.
다음에, 단계(900)(도 9)에서, TB 사이즈가 2의 거듭 제곱인지를 체크한다. 컨텍스트의 적어도 하나의 집합은 2의 거듭 제곱과 동일한 상이한 TB 사이즈들에 따라서 획득되며, 각각의 컨텍스트 집합은 TB의 사이즈가 2의 제곱과 동일한 경우에 획득된다.
"예"이면, 단계(910)에서, 선택기(SL1)는 TB 사이즈에 따라, 절단된 단항 코드의 각각의 빈에 대해, 상기 적어도 하나의 획득된 컨텍스트 집합 중에서 컨텍스트 집합을 선택한다.
"아니오"이면, 단계(920)에서, 선택기들(SL2, SL1)은 절단된 단항 코드의 각각의 빈에 대해, TB 사이즈보다 바로 더 높거나, 대안적으로, 더 낮은 블록 사이즈에 따라, 상기 적어도 하나의 획득된 컨텍스트 집합 중 컨텍스트 세트를 선택하며, 상기 블록 사이즈는 2의 거듭 제곱과 동일하다.
마지막으로, "마지막 유효 계수 x-좌표" 신택스 요소를 나타내는 절단된 단항 코드의 각 빈은 절단된 단항 코드에서 빈의 인덱스에 따라 상기 선택된 컨텍스트 집합 중에서 결정된 컨텍스트를 고려하여 산술 코딩된다(단계(120)).
도 12는 상이한 TB 사이즈들에 따라서 컨텍스트 인덱스들의 집합을 제공하는 테이블의 예를 도시한다. 참고로, 도 12의 테이블의 "빈 인덱스"는 절단된 단항 코드에서 코딩될 빈의 인덱스를 식별한다.
이 예에 따르면, TB 사이즈가 2의 거듭 제곱, 즉 T = 2, 4, 8, 16 또는 32 일 때, T에 따라 컨텍스트들의 집합이 획득된다. 예를 들어, T = 8 일 때, 컨텍스트 인덱스들의 집합(3,3,3,4,4,5)이 선택된다. 최종 결정된 컨텍스트 인덱스는 절단된 단항 코드 내 현재 빈의 인덱스에 따라 달라진다. 예를 들어, 절단된 단항 코드 내 순위 2의 빈이 현재 빈이라면, 컨텍스트 인덱스 4가 고려된다.
TB 사이즈가 2의 거듭 제곱이 아닐 때, 즉 T = 3, 6, 12 또는 24일 때, 컨텍스트 집합은 TB 사이즈보다 바로 낮은 블록 사이즈에 따라 선택된다.
예를 들어, TB 사이즈가 12 일 때, TB 사이즈에 상대적인 컨텍스트 인덱스 집합은 8로 선택된다. 결정된 컨텍스트 인덱스는 절단된 단항 코드 내 현재 빈의 인덱스에 따라 달라진다. 예를 들어, 절단된 단항 코드 내 순위 2의 빈이 현재 빈이라면, 컨텍스트 인덱스 4가 고려된다.
도 13은 상이한 TB 사이즈들에 따라서 컨텍스트 인덱스들의 집합을 제공하는 테이블의 예를 도시한다. 참고로, 도 13의 테이블의 "빈 인덱스"는 절단된 단항 코드에서 코딩 될 빈의 인덱스를 식별한다.
이 예에 따르면, TB 사이즈가 2의 거듭 제곱, 즉 T = 2, 4, 8, 16 또는 32 일 때, TB 사이즈에 따라 컨텍스트들의 집합이 획득된다. 예를 들어, T = 8 일 때, 컨텍스트 인덱스들의 집합(3,3,3,4,4,5)가 선택된다. 결정된 컨텍스트 인덱스는 절단된 단항 코드 내 현재 빈의 인덱스에 따라 달라진다. 예를 들어, 절단된 단항 코드 내 순위 2의 빈이 현재 빈이라면, 컨텍스트 인덱스 4가 고려된다.
TB 사이즈가 2의 거듭 제곱이 아닐 때, 즉 T = 3, 6, 12 또는 24일 때, 컨텍스트 집합은 TB 사이즈보다 바로 낮은 블록 사이즈에 따라 선택된다.
예를 들어, TB 사이즈가 12 일 때, TB 사이즈에 상대적인 컨텍스트 인덱스 집합은 16로 선택된다. 결정된 컨텍스트 인덱스는 절단된 단항 코드 내 현재 빈의 인덱스에 따라 달라진다. 예를 들어, 절단된 단항 코드 내 순위 2의 빈이 현재 빈이라면, 컨텍스트 인덱스 7가 고려된다.
"마지막 유효 계수 x-좌표"에 대한 상대적인 프리픽스를 코딩하기 위해, 본 원리들은
Figure pct00011
(2의 거듭제곱과 상이)과 동일한 현재 TB 사이즈보다 바로 더 높은 또는 더 낮은, 2의 거듭 제곱인 TB 사이즈와 연관된 컨텍스트를 재사용한다.
수학적으로 말하자면, TB 사이즈(너비 또는 높이)가
Figure pct00012
(m = 3)인 경우, TB 사이즈(
Figure pct00013
(도 12) 또는
Figure pct00014
(도 13))에 상대적인 컨텍스트 집합이 사용된다.
따라서, 본 원리들은 사이즈가 2의 거듭 제곱과 동일하지 않은 픽처 블록들에 대해 새로운 컨텍스트들을 정의하는 것보다(HEVC 표준에서 또는 HEVC 표준과 연관된 조인 탐색 모델에서 정의된 바와 같이) 사이즈가 2의 거듭 제곱과 동일한 픽처 블록에 대해 이미 사용된 컨텍스트를 재사용한다. 이는 저장 및 취급 할 컨텍스트들의 수가 증가하는 것을 방지하고 이에 따라 사이즈가 2의 거듭 제곱이 아닌 변환 블록(TB)의 인코딩/디코딩의 복잡성이 현저하게 증가하는 것을 방지한다.
실시예에 따르면, "마지막 유효 계수 x-좌표" 신택스 요소에 관련된 프리픽스를 인코딩하는 절단된 단항 코드의 빈에 대한 컨텍스트가 다음과 같이 TB 사이즈에 따라 결정될 수 있다(단계(910) 또는(920). 상기 컨텍스트는 이전에 결정된 적어도 하나의 컨텍스트 집합 중에서 식별된 컨텍스트 집합 자체 중에서 컨텍스트 인덱스(currCtxIdx)에 의해 식별된다
먼저 기본 컨텍스트 인덱스(baseCtxIdx)가 TB의 너비으로부터 프리픽스를 코딩하기 위해 "마지막 유효 계수 x-좌표"에 대해 계산된다.
이러한 기본 컨텍스트 인덱스는 상기 적어도 하나의 이전에 결정된 컨텍스트 집합 중에서의 컨텍스트 집합을 식별한다.
기본 인덱스는 픽처의 크로마 성분들에 대해 체계적으로 제로로 설정될 수 있고, 루마 성분들에 대해서는 TB의 너비(W)의 함수(g_uiLastPrefixCtx)로서 계산될 수 있다:
Figure pct00015
다음에, 컨텍스트 시프트 값(ctxIdx_shiftX)이 다음과 같이 계산될 수 있다:
Figure pct00016
대안적으로,
Figure pct00017
Figure pct00018
다음으로, 콘텐츠 인덱스(currCtxIdx)가 기본 컨텍스트 인덱스(baseCtxIdx)의 함수로서 프리픽스의 빈에 대해 결정되고 컨텍스트 시프트 값(ctxIdx_shiftX)이 절단된 단항 코드에서 코딩될 현재 빈의 인덱스(prefixBinIdx) 지수에 따라 결정된다.
Figure pct00019
프리픽스의 첫 번째 빈에 대한 컨텍스트 인덱스는 기본 컨텍스트 인덱스(baseCtxIdx)와 동일할 수 있다.
도 6의 실시예에 따르면, "마지막 유효 계수 x-좌표"(마지막 유효 계수 y-좌표") 신택스 요소는 다음과 같이 입력 비트스트림으로부터 디코딩된다.
컨텍스트 인덱스(currCtxIdx)는 수학식(1)에 의해 다음과 같이 계산된다. 일단 기본 컨텍스트 인덱스(baseCtxIdx)가 단계(110)에서 획득되면, 디코더는 입력 비트스트림으로부터 일련의 디코딩된 빈을 생성한다. 디코딩할 일련의 빈들의 각각의 빈에 대해, 컨텍스트 인덱스(currCtxIdx)가 기본 컨텍스트 인덱스와 인코더 측에서와 절대적으로 동일한 방식(수학식 1)으로 획득된 컨텍스트 증분 값(prefixBinIdx >> ctxIdxshiftX)의 합으로 계산된다. 이렇게 획득된 컨텍스트 인덱스(currCtdxIdx)는 컨텍스트 모델링 단계(110)에 의해 제공된 컨텍스트 모델의 인덱스에 대응한다. 그 다음, 디코딩할 일련의 빈들 중 현재 빈 값(1 또는 0)이 결정된 식별자를 갖는 컨텍스트에 의해 산술적으로 디코딩된다(도 6의 단계(620)).
그런 다음 일단 디코딩할 일련의 빈들 중의 '0' 빈값이 디코딩되거나 또는 고려된 TB 사이즈에 대해 '1' 빈이 최대 개수에 도달하면, 이것은 일련의 디코딩된 빈들이 도 11의 절단된 단항 이진화된 프리픽스에 대응한다는 것을 의미한다. 그 다음에 디코더는 상기 디코딩된 프리픽스에 의해 시그널링된 간격 내의 마지막 유효 계수의 x- 좌표를 결정하는 suffix를 제공하는, 바이패스 디코딩할 서픽스 빈들의 개수(b)를 알게된다.
마지막으로, 다음의 수학식에서 last라고 표시되는 마지막 유효 계수 x-좌표는 디코딩된 prefix 및 suffix에 기초하여 다음과 같이 재구성된다:
Figure pct00020
"마지막 유효 계수 y-좌표" 신택스 요소에 대한 컨텍스트 인덱스는 유사한 방식으로 TB 사이즈에 따라 컨텍스트 집합 중에서 선택될 수 있다.
본 원리들의 제2 실시예에 따르면, 도 9의 방법은 TB에 속하는 코딩 그룹(CG)에 관련한 "유효 계수 플래그" 신택스 요소를 컨텍스트 기반 산술 코딩/디코딩하는데 적용된다.
"유효 계수 플래그"는 CG의 양자화된 변환된 계수에 관련한 이진 값의 신택스 요소이다.
첫 번째로, 기본 컨텍스트 오프셋(ctxOffset)이 단계(110)에서 다음과 같이 계산된다:
Figure pct00021
여기서 indexOnTbSize는 다음과 같이 계산된 간격 인덱스이다:
Figure pct00022
여기서 uiLog2BlockSize는 TB의 사이즈(면적)에 따라 계산된 값이다.
두 번째로, CG 내의 각각의 양자화된 변환된 계수는 마지막 계수로부터 최저 주파수 계수를 향하는 것으로 간주된다. 각각의 양자화된 변환 계수에 대해, 유효성을 코딩하기 위한 컨텍스트 인덱스(currCtxIdx)는 상기 간격 인덱스(indexOnTbsize)에 의해 시그널링된 정수 값들의 간격 내에서 마지막 유효 계수의 x-좌표를 결정하는 기본 컨텍스트 오프셋(ctxOffset)에 컨텍스트 증분(ctxIncrement)을 가산함으로써 계산된다
마지막으로, "유효 계수 플래그"는 컨텍스트 인덱스와 연관된 컨텍스트를 고려하여 산술 코딩된다(단계(120)).
Figure pct00023
실시예에 따르면, 컨텍스트 증분(ctxIncrement)은 도 14에 도시된 바와 같이 다음과 같이 계산된다.
컨텍스트 증분(ctxIncrement)은 로컬 템플릿이 담당하는 이웃의 이전에 코딩된 양자화된 변환 계수들의 "유효 계수 플래그" 값들의 값에 종속한다. 보다 구체적으로는, 컨텍스트 증분(ctxIncrement)은 이웃 계수들의 유효 플래그들의 합에 기초하여 계산된다. 도 14는 그러한 템플릿의 예를 도시한다. 이 예에 따르면, 현재 양자화된 변환 계수(흰색 원으로 표시됨)와 연관된 컨텍스트 증분은 다음과 같이 계산된다.
Figure pct00024
여기서 x 및 y는 고려된 TB 내 현재 계수의 좌표들이고, sigCoeffFlag(x,y)는 위치(x,y)의 양자화된 변환된 계수가 0이 아니면 1이고, 그렇지 않으면 0이다. x0, 각각의 x3, x1, x4 및 x2는 각각 좌표들(x+1, y), (x+2, y), (x, y+1), (x, y+2) 및 (x+1, y+1)을 갖는 이웃 계수들이다.
상이한 주파수들에서 양자화된 변환된 계수들의 특성들을 포착하기 위해, TB는 최대 세 개의 영역으로 분할될 수 있으며 분할 방법들은 도 14에 도시된 바와 같이, TB 사이즈에 관계없이 고정된다. 컨텍스트 인덱스들은 각 영역에 할당된다.
본 원리들의 제2 실시예에 따르면, 단계(900)(도 9)에서, TB의 너비(w) 및/또는 높이(h)가 2의 거듭 제곱인지가 체크된다.
"예"이면, 단계(910)에서, 선택기(SL1)는 TB 사이즈에 따라 결정된 기본 컨텍스트 인덱스(indexOnTbSize) 자체에 따라 컨텍스트를 결정한다.
아니오이면, 단계(920)에서, 선택기(SL2)는 TB 사이즈보다 바로 더 높거나, 대안적으로, 더 낮은 블록 사이즈에 따라 결정된 기본 컨텍스트 인덱스(indexOnTbSize) 자체에 따라 컨텍스트를 결정하며, 상기 블록 사이즈는 2의 거듭 제곱과 동일하다.
실시예에 따르면, 기본 컨텍스트 인덱스(indexOnTbSize)는 다음과 같이 주어진다:
Figure pct00025
여기서 w h는 각각 TB의 너비 및 높이이고 f(.)는 수학적 함수이다.
변형예에 따르면,
Figure pct00026
기본 콘텐츠 인덱스(indexOnTbSize)는 특정 TB 면적과 관련된 특정 컨텍스트 집합을 식별한다. 이것은 분리된 컨텍스트 집합들이 상이한 면적을 갖는 TB의 "유효 계수 플래그"를 코딩하는 데 사용될 수 있음을 의미한다.
컨텍스트 오프셋(ctxOffset)은 루마 성분에 대한 상기 기본 컨텍스트 인덱스와 동일할 수 있고 크로마 성분들에 대해서는 0과 동일하다.
도 6의 실시예에 따르면, "마지막 유효 플래그" 신택스 요소는 다음과 같이 입력 비트스트림으로부터 디코딩된다.
첫 번째로, 적어도 '유효 계수 플래그'와 연관된 컨텍스트 인덱스는 상기 인코더의 컨텍스트 모델링 단계와 동일한 컨텍스트 모델링 단계(110)로부터 획득된다.
따라서, 컨텍스트 인덱스는 기본 컨텍스트 오프셋(ctxOffset)과 컨텍스트 증분(ctxIndexIncrement)의 합으로서 계산되고, 각각은 수학식들(4) 및(5)에 따라 인코더 측에서와 정확히 동일한 방식으로 계산된다.
다음으로, 상기 계산된 컨텍스트 인덱스 및 입력 비트스트림의 비트들을 갖는 컨텍스트 모델을 고려하여, 산술 디코딩 단계(620)는 현재 디코딩되는 CG의 현재 계수와 연관된 '유효 계수 플래그'를 나타내는 빈 값을 디코딩할 수 있다.
도 1 내지 도 14에서, 모듈들은 구별 가능한 물리적 유닛들과 관련이 있거나 관련이 없을 수도 있는 기능 유닛들이다. 예를 들어, 이러한 모듈들 또는 모듈들 중 일부는 함께 고유한 구성요소 또는 회로에 통합되거나, 소프트웨어의 기능성들에 기여할 수 있다. 반대로, 일부 모듈들은 잠재적으로 별도의 물리적 개체들로 구성될 수 있다. 본 원리들과 호환 가능한 장치는 순전히 하드웨어를 사용하여, 예를 들어, 각각 ≪주문형 집적 회로(Application Specific Integrated Circuit)≫, ≪필드 프로그램 가능 게이트 어레이(Field-Programmable Gate Array)≫, ≪초고밀도 집적회로(Very Large Scale Integration)≫인 ASIC 또는 FPGA 또는 VLSI와 같은 전용 하드웨어를 사용하여 구현되거나,또는 디바이스에 내장된 여러 통합된 전자 구성요소들로부터 또는 하드웨어와 소프트웨어 구성요소들의 혼합으로부터 구현된다.
도 15는 도 1 내지 도 14와 관련하여 설명된 방법을 구현하도록 구성될 수 있는 디바이스(1500)의 예시적인 아키텍처를 도시한다.
디바이스(1500)는 데이터 및 어드레스 버스(1501)에 의해 함께 링크되는 다음의 요소들을 포함한다:
- 예를 들어, DSP(또는 디지털 신호 프로세서(Digital Signal Processor))인 마이크로프로세서(1502)(또는 CPU);
- ROM(또는 판독 전용 메모리(Read Only Memory))(1503);
- RAM(또는 랜덤 액세스 메모리(Random Access Memory))(1504);
- 애플리케이션으로부터 전송할 데이터의 수신을 위한 I/O 인터페이스(1505); 및
- 배터리(1506)
일 예에 따르면, 배터리(1506)는 디바이스의 외부에 있다. 언급된 각각의 메모리에서, 본 명세서에서 사용된 ≪레지스터≫라는 단어는 작은 용량(몇 비트)의 영역에 대응하거나 또는 매우 큰 영역(예를 들어, 전체 프로그램 또는 대량의 수신되거나 디코딩된 데이터)에 대응할 수 있다. ROM(1503)은 적어도 프로그램 및 파라미터들을 포함한다. ROM(1503)은 본 원리에 따라 기술을 수행하기 위한 알고리즘 및 명령어를 저장할 수 있다. 전원이 켜지면, CPU(1502)는 RAM에다 프로그램을 업로드하고 대응하는 명령어들을 실행한다.
RAM(1504)은 CPU(1502)에 의해 실행되고 디바이스(1500)의 전원이 켜진 후에 업로드되는 레지스터 내의 프로그램, 레지스터 내의 입력 데이터, 레지스터 내의 방법의 상이한 상태들의 중간 데이터, 및 레지스터 내의 방법을 실행하는데 사용된 다른 변수들을 포함한다.
본 명세서에서 설명된 구현예들은 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현예의 맥락에서만 논의될지라도(예를 들어, 방법 또는 디바이스로서만 논의될지라도), 논의된 특징들의 구현예는 다른 형태들(예를 들어, 프로그램)로도 또한 구현될 수 있다. 장치는 예를 들어, 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그램 가능 로직 디바이스를 비롯한, 예를 들어, 일반적으로 프로세싱 디바이스들을 지칭하는 프로세서와 같은 장치에서 구현될 수 있다. 프로세서는 예를 들어, 컴퓨터들, 셀 폰들, 휴대용/개인 휴대 정보 단말기(personal digital assistant)("PDA")들 및 최종 사용자들 사이의 정보의 전달을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스를 또한 포함한다.
인코딩 또는 인코더의 예에 따르면, 비디오 데이터 또는 신택스 요소 또는 이진 심볼들의 시퀀스의 블록(Bc)은 소스로부터 획득된다. 예를 들어, 소스는 다음과 같은 것을 포함하는 집합에 속한다:
- 로컬 메모리(1503 또는 1504), 예를 들어, 비디오 메모리 또는 RAM(또는 랜덤 액세스 메모리), 플래시 메모리, ROM(또는 판독 전용 메모리), 하드 디스크;
- 저장 인터페이스(1505), 예를 들어, 대량 저장소, RAM, 플래시 메모리, ROM, 광학 디스크 또는 자기 지원(magnetic support)과의 인터페이스;
- 통신 인터페이스(1505), 예를 들어, 유선 인터페이스(예를 들어, 버스 인터페이스, 광역 네트워크 인터페이스, 로컬 영역 네트워크 인터페이스) 또는 무선 인터페이스(예컨대, IEEE 802.11 인터페이스 또는 Bluetooth®인터페이스); 및
- 픽처 캡처링 회로(예를 들면, CCD(또는 전하 결합 디바이스(Charge-Coupled Device)) 또는 CMOS(또는 상보형 금속 산화물 반도체(Complementary Metal-Oxide-Semiconductor)와 같은 센서).
디코딩 또는 디코더의 예에 따르면, 디코딩된 데이터는 목적지로 전송된다; 구체적으로는, 목적지는 다음과 같은 것을 포함하는 집합에 속한다:
- 로컬 메모리(1503 또는 1504), 예를 들어, 비디오 메모리 또는 RAM, 플래시 메모리, 하드 디스크;
- 저장 인터페이스(1505), 예를 들어, 대량 저장소, RAM, 플래시 메모리, ROM, 광학 디스크 또는 자기 지원(magnetic support)과의 인터페이스;
- 통신 인터페이스(1505), 예를 들어, 유선 인터페이스(예를 들어, 버스 인터페이스(예를 들어, USB(또는 범용 직렬 버스(Universal Serial Bus)), 광역 네트워크 인터페이스, 로컬 영역 네트워크 인터페이스, HDMI(고화질 멀티미디어 인터페이스(High Definition Multimedia Interface) 인터페이스) 또는 무선 인터페이스(예컨대, IEEE 802.11 인터페이스, WiFi® 또는 Bluetooth®인터페이스); 및
- 디스플레이.
인코딩 또는 인코더의 예들에 따르면, 비트스트림은 목적지로 전송된다. 예로서, 비트스트림은 로컬 또는 원격 메모리, 예를 들어, 비디오 메모리(1504) 또는 RAM(1504), 하드 디스크(1503)에 저장된다. 변형예에서, 비트스트림은 저장소 인터페이스(1505), 예를 들어, 대용량 저장소, 플래시 메모리, ROM, 광학 디스크 또는 자기 지원과의 인터페이스에 전달되고 및/또는 통신 인터페이스(1505), 예를 들어, 포인트 투 포인트 링크, 통신 버스, 포인트 투 멀티포인트 링크 또는 브로드캐스트 네트워크와의 인터페이스를 통해 전송된다.
디코딩 또는 디코더의 예들에 따르면, 비트스트림은 소스로부터 획득된다. 예시적으로, 비트스트림은 로컬 메모리, 예를 들어, 비디오 메모리(1504), RAM(1504), ROM(1503), 플래시 메모리(1503) 또는 하드 디스크(1503)로부터 판독된다. 변형 예에서, 비트스트림은 저장소 인터페이스(1505), 예를 들어, 대용량 저장소, RAM, ROM, 플래시 메모리, 광학 디스크 또는 자기 지원과의 인터페이스로부터 수신되고 및/또는 통신 인터페이스(1505), 예를 들어, 포인트 투 포인트 링크, 버스, 포인트 투 멀티포인트 링크 또는 브로드캐스트 네트워크와의 인터페이스로부터 수신된다.
예들에 따르면, 도 1 내지 도 14와 관련하여 설명된 방법을 구현하도록 구성되는 디바이스(1500)는 다음과 같은 것을 포함하는 집합에 속한다:
- 모바일 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 태블릿(또는 태블릿 컴퓨터);
- 랩톱;
- 스틸 픽처 카메라;
- 비디오 카메라;
- 인코딩 칩;
- 스틸 픽처 서버;
- 비디오 서버(예를 들어, 브로드캐스트 서버, 주문형 비디오 서버(video-on-demand server) 또는 웹 서버);
- 셋톱 박스;
- TV 세트;
- 디스플레이 및
- 디코딩 칩.
본 명세서에 설명된 다양한 프로세스들 및 특징들의 구현예들은 다양한 상이한 장비 또는 애플리케이션들에서 구현될 수 있다. 이러한 장비의 예들은 인코더, 디코더, 디코더로부터의 출력을 처리하는 후처리 프로세서, 인코더에 입력을 제공하는 전처리 프로세서, 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋톱 박스, 랩톱, 퍼스널 컴퓨터, 셀 폰, PDA 및 픽처 또는 비디오를 처리하기 위한 임의의 다른 디바이스 또는 다른 통신 디바이스들을 포함한다. 분명히 해야 하는 것으로서, 장비는 이동식일 수도 있고 심지어 이동 차량에 설치될 수도 있다.
또한, 방법들은 프로세서에 의해 수행되는 명령어들에 의해 구현될 수 있으며, 그러한 명령어들(및/또는 구현에 의해 생성된 데이터 값들)은 컴퓨터 판독 가능한 저장 매체 상에 저장될 수 있다. 컴퓨터 판독 가능한 저장 매체는 하나 이상의 컴퓨터 판독 가능한 매체(들)에서 구현되고 컴퓨터에 의해 실행 가능한 컴퓨터 판독 가능한 프로그램 코드를 갖는 컴퓨터 판독 가능한 프로그램 제품의 형태를 취할 수 있다. 본 명세서에서 사용된 바와 같은 컴퓨터 판독 가능한 저장 매체는 그 내부에 정보를 저장하는 본래의 능력뿐 아니라 그로부터 정보의 검색을 제공하는 본래의 능력을 고려할 때 비일시적 저장 매체인 것으로 간주된다. 컴퓨터 판독 가능한 저장 매체는 예를 들어, 이것으로 제한되는 것은 아니지만, 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 전술한 것의 임의의 적합한 조합일 수 있다. 다음은 본 원리들이 적용될 수 있는 컴퓨터 판독 가능한 저장 매체들의 보다 구체적인 예들을 제공하지만, 관련 기술분야에서 통상의 기술자가 용이하게 인식하는 것처럼 단지 예시적일 뿐이지 하나도 남김 없이 열거하는 것이 아님을 인식하여야 한다: 휴대용 컴퓨터 디스켓; 하드 디스크; 판독 전용 메모리(ROM); 소거 가능한 프로그램 가능 판독 전용 메모리(erasable programmable read-only memory)(EPROM 또는 플래시 메모리); 휴대용 콤팩트 디스크 판독 전용 메모리(portable compact disc read-only memory)(CD-ROM); 광학 저장 디바이스; 자기 저장 디바이스; 또는 전술한 것의 임의의 적합한 조합.
명령어들은 프로세서에 의해 판독 가능한 매체(processor-readable medium) 상에 유형으로 구현된 애플리케이션 프로그램을 형성할 수 있다.
명령어들은 예를 들어, 하드웨어, 펌웨어, 소프트웨어 또는 조합일 수 있다. 명령어들은 예를 들어, 운영 체제, 별개의 애플리케이션 또는 이 둘의 조합에서 발견될 수 있다. 그러므로 프로세서는 예를 들어, 프로세스를 수행하도록 구성된 디바이스 및 프로세스를 수행하기 위한 명령어들을 갖는(저장 디바이스와 같은) 프로세서에 의해 판독 가능한 매체를 포함하는 디바이스 둘 모두로서 특징 지어질 수 있다. 또한, 프로세서에 의해 판독 가능한 매체는 명령어들에 추가하여 또는 명령어들 대신에, 구현에 의해 생성된 데이터 값들을 저장할 수 있다.
관련 기술분야에서 통상의 기술자에게 명백해지는 바와 같이, 구현예들은 예를 들어, 저장되거나 전송될 수 있는 정보를 반송하도록 포맷된 다양한 신호를 생성할 수 있다. 정보는 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 본 원리들의 설명된 예의 신택스를 기입하거나 판독하기 위한 규칙들을 데이터로서 반송하거나, 또는 본 원리들의 설명된 예에 의해 기입된 실제 신택스 값들을 데이터로서 반송하도록 포맷될 수 있다. 이러한 신호는, 예를 들어,(예를 들어, 스펙트럼의 무선 주파수 부분을 사용하는) 전자기파 또는 기저대역 신호로서 포맷될 수 있다. 포맷한다는 것은 예를 들어, 데이터 스트림을 인코딩하는 것 및 캐리어를 인코딩된 데이터 스트림으로 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 알려진 바와 같이 다양한 상이한 유선 또는 무선 링크들을 통해 전송될 수 있다. 신호는 프로세서에 의해 판독 가능한 매체에 저장될 수 있다.
다수의 구현이 설명되었다. 그럼에도 불구하고, 다양한 변형예들이 만들어질 수 있다는 것이 이해될 것이다. 예를 들어, 상이한 구현예들의 요소들이 조합되거나, 보충되거나, 변형되거나 또는 제거되어 다른 구현예들을 만들어 낼 수 있다. 또한, 관련 기술분야에서 통상의 기술자라면 다른 구조들 및 프로세스들이 개시된 것들에 대체될 수 있고 결과적인 구현예들이 적어도 실질적으로 동일한 기능(들)을, 적어도 실질적으로 동일한 방식(들)으로 수행하여, 개시된 구현예들과 적어도 실질적으로 동일한 결과(들)을 수행할 것이라는 것을 이해할 것이다. 따라서, 이러한 구현예들 및 다른 구현예들이 본 출원에 의해 예상된다.

Claims (10)

  1. 픽처 블록에 속하는 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩/디코딩(context-adaptive binary arithmetic coding/decoding)하기 위한 방법으로서,
    상기 이진 심볼들의 시퀀스의 각각의 이진 심볼에 대해,
    - 상기 픽처 블록의 사이즈 및 코딩될 상기 이진 심볼에 따라 컨텍스트를 결정하는 단계(110); 및
    - 상기 결정된 컨텍스트를 고려하여 상기 이진 심볼을 산술 코딩/디코딩하는 단계(120)
    를 포함하고;
    상기 컨텍스트를 결정하는 단계(110)는:
    - 상기 픽처 블록의 사이즈가 2의 거듭 제곱일 때, 상기 픽처 블록의 사이즈에 따라 컨텍스트를 결정하는 단계(910); 및
    - 상기 픽처 블록의 사이즈가 2의 거듭 제곱이 아닐 때, 상기 픽처 블록의 사이즈보다 바로 더 높거나 더 낮은 블록 사이즈 - 상기 블록 사이즈는 2의 거듭 제곱과 동일함 - 에 따라 컨텍스트를 결정하는 단계(920)
    를 포함하는 것을 특징으로 하는, 방법.
  2. 픽처 블록에 속하는 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩/디코딩하기 위한 디바이스로서,
    상기 이진 심볼들의 시퀀스의 각각의 이진 심볼에 대해,
    - 상기 픽처 블록의 사이즈 및 코딩될 상기 이진 심볼에 따라 컨텍스트를 결정하기 위한 수단; 및
    - 상기 결정된 컨텍스트를 고려하여 상기 이진 심볼을 산술 코딩/디코딩하기 위한 수단
    을 포함하고;
    상기 컨텍스트를 결정하는 수단은:
    - 상기 픽처 블록의 사이즈가 2의 거듭 제곱일 때, 상기 픽처 블록 사이즈에 따라 컨텍스트를 결정하는 수단; 및
    - 상기 픽처 블록의 사이즈가 2의 거듭 제곱이 아닐 때, 상기 픽처 블록의 사이즈보다 바로 더 높거나 더 낮은 블록 사이즈 - 상기 블록 사이즈는 2의 거듭 제곱과 동일함 - 에 따라 컨텍스트를 결정하는 수단
    을 포함하는 것을 특징으로 하는, 디바이스.
  3. 제1항의 방법 또는 제2항의 디바이스에 있어서,
    블록 사이즈 또는 상기 픽처 블록의 사이즈는 상기 블록의 너비 또는 높이 중 어느 하나인, 방법 또는 디바이스.
  4. 제1항 또는 제3항의 방법 또는 제2항 또는 제3항의 디바이스에 있어서,
    상기 픽처 블록의 사이즈에 따라 컨텍스트를 결정하는 단계(110) 또는 수단은:
    - 2의 거듭 제곱들과 동일한 상이한 픽처 블록 사이즈들에 따라 적어도 하나의 컨텍스트 집합을 획득하는 단계 또는 수단 - 각각의 컨텍스트 집합은 픽처 블록 사이즈가 2의 특정 거듭 제곱과 동일한 경우에 획득됨 -;
    - 이미지 블록의 사이즈가 2의 거듭 제곱인지를 체크하는 단계 또는 수단;
    - 상기 픽처 블록의 사이즈가 2의 거듭 제곱이면, 상기 픽처 블록의 사이즈에 따라, 상기 적어도 하나의 획득된 컨텍스트 집합 중에서 컨텍스트 집합을 선택하는 단계 또는 수단;
    - 그렇지 않으면, 상기 이미지 블록의 사이즈보다 바로 더 높거나 더 낮은 블록 사이즈 - 상기 블록 사이즈는 2의 거듭 제곱과 동일함 - 에 따라 상기 적어도 하나의 획득된 컨텍스트 집합 중에서 컨텍스트 집합을 선택하는 단계 또는 수단; 및
    - 상기 이진 심볼들의 시퀀스 내의 상기 이진 심볼의 인덱스에 따라 상기 선택된 컨텍스트 집합 중에서 컨텍스트를 결정하는 단계 또는 수단
    을 포함하는, 방법 또는 디바이스.
  5. 제4항의 방법 또는 디바이스에 있어서,
    픽처 데이터와 관련된 상기 신택스 요소는 상기 픽처 블록이 스캐닝 순서에 따라 스캔될 때 상기 픽처 블록에 속하는 마지막 유효 계수의 공간 좌표들 중 하나의 공간 좌표를 나타내고, 상기 방법 또는 디바이스는:
    - 마지막 유효 계수의 상기 공간 좌표들 중 상기 하나의 공간 좌표가 속하는, 적어도 하나의 간격 인덱스 집합 중에서의, 정수 값들의 간격을 식별하는 간격 인덱스를 선택하는 단계 또는 수단;
    - 상기 선택된 간격 인덱스를 이진화함으로써 상기 이진 심볼들의 시퀀스를 획득하는 단계(100) 또는 수단
    을 더 포함하고,
    - 상기 이진 심볼들의 시퀀스의 각각의 빈이 코딩(110, 910, 920)되는, 방법 또는 디바이스.
  6. 제5항의 방법 또는 디바이스에 있어서,
    상기 방법은 상기 마지막 유효 계수의 상기 공간 좌표들 중 상기 하나의 공간 좌표가 상기 간격 인덱스 및 상기 오프셋 값에 의해 무손실 표현되도록 하기 위해 상기 선택된 간격 내의 오프셋 값을 획득하는 단계를 더 포함하는, 방법 또는 디바이스.
  7. 제1항 또는 제3항의 방법 또는 제2항 또는 제3항의 디바이스에 있어서,
    상기 픽처 블록은 적어도 두 개의 픽처 서브블록으로 분할되고, 픽처 데이터와 관련된 상기 신택스 요소는 상기 적어도 두 개의 픽처 서브블록 중 하나의 픽처 서브블록의 계수에 관련된 유효 계수 플래그를 나타내고, 상기 컨텍스트를 결정하는 단계(110) 또는 수단은:
    - 이미지 블록의 사이즈가 2의 거듭 제곱인지를 체크하는 단계 또는 수단;
    - 상기 픽처 블록의 사이즈가 2의 거듭 제곱이면, 상기 픽처 블록의 사이즈에 따라 기본 컨텍스트 인덱스를 결정하는 단계 또는 수단; 및
    - 그렇지 않으면, 상기 픽처 블록의 사이즈보다 바로 더 높거나 더 낮은 블록 영역의 사이즈에 따라 기본 컨텍스트 인덱스를 결정하는 단계 또는 수단 - 상기 블록 영역의 사이즈는 2의 거듭 제곱과 동일함 - ;
    을 포함하고,
    - 상기 컨텍스트 인덱스는 상기 기본 컨텍스트 인덱스를 이웃 계수들의 유효 변환 계수 플래그들로부터 획득된 컨텍스트 증분에 가산함으로써 결정되는, 방법 또는 디바이스.
  8. 제1항, 제3항 내지 제7항 중 어느 한 항의 방법 또는 제2항 내지 제7항 중의 어느 한 항의 디바이스에 있어서,
    상기 픽처 블록 또는 서브블록의 사이즈는 상기 픽처 블록 또는 서브블록의 너비 및/또는 높이이고, 상기 방법은 정수 값과 2의 거듭 제곱의 곱이 2의 거듭 제곱이 아니도록 하기 위한 상기 곱과 동일한 높이 및/또는 너비를 갖는 픽처 블록 또는 서브블록을 획득하는 단계를 더 포함하는, 방법 또는 디바이스.
  9. 제7항의 방법 또는 디바이스에 있어서,
    상기 이미지 블록을 획득하는 것은 부모 블록을 상기 정수 값과 2의 거듭 제곱의 곱과 동일한 높이 및/또는 너비를 갖는 두 개의 서브 블록으로 분할하는 것을 포함하는, 방법 또는 디바이스.
  10. 비일시적 저장 매체로서,
    제1항, 제2항 내지 제9항 중 어느 한 항의 방법의 명령어들에 따라 인코딩된 픽처 데이터에 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 갖는, 비일시적 저장 매체.
KR1020197012587A 2016-10-05 2017-08-31 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스 KR102416958B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16306307.6A EP3306924A1 (en) 2016-10-05 2016-10-05 Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data
EP16306307.6 2016-10-05
PCT/EP2017/071847 WO2018065154A1 (en) 2016-10-05 2017-08-31 Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data

Publications (2)

Publication Number Publication Date
KR20190058609A true KR20190058609A (ko) 2019-05-29
KR102416958B1 KR102416958B1 (ko) 2022-07-05

Family

ID=57153426

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197012587A KR102416958B1 (ko) 2016-10-05 2017-08-31 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스

Country Status (6)

Country Link
US (1) US11006116B2 (ko)
EP (2) EP3306924A1 (ko)
JP (1) JP7195251B2 (ko)
KR (1) KR102416958B1 (ko)
CN (1) CN109923861B (ko)
WO (1) WO2018065154A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210115041A (ko) * 2019-03-04 2021-09-24 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102149023B1 (ko) * 2017-04-13 2020-08-28 엘지전자 주식회사 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
US10798382B2 (en) * 2018-04-26 2020-10-06 Tencent America LLC Sub-block transform
CN113039803B (zh) 2018-09-23 2023-10-03 Lg 电子株式会社 编码/解码视频信号的方法及其装置
KR102595372B1 (ko) * 2018-12-17 2023-10-27 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수 스캔 순서를 결정하는 방법 및 장치
US11477486B2 (en) * 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
WO2021040410A1 (ko) * 2019-08-31 2021-03-04 엘지전자 주식회사 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치
CN114071140B (zh) * 2019-12-03 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
WO2022179404A1 (en) * 2021-02-23 2022-09-01 Beijing Bytedance Network Technology Co., Ltd. Residual coding on non-dyadic blocks
CN113382265B (zh) * 2021-05-19 2023-03-24 北京大学深圳研究生院 视频数据熵编码硬件实现方法、设备、介质及程序产品
WO2023082484A1 (en) * 2021-11-10 2023-05-19 Beijing Bytedance Network Technology Co., Ltd. Array based residual coding on non-dyadic blocks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140033499A (ko) * 2011-07-01 2014-03-18 퀄컴 인코포레이티드 비디오 데이터에 비-정방형 변환들을 적용

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7161507B2 (en) 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
US20070071090A1 (en) 2005-06-21 2007-03-29 National Chiao Tung University Method for performing context adaptive binary arithmetic coding with stochastic bit reshuffling for fine granularity scalability
US7545293B2 (en) * 2006-11-14 2009-06-09 Qualcomm Incorporated Memory efficient coding of variable length codes
US8265144B2 (en) * 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
KR20090004658A (ko) * 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
AU2015202670B2 (en) 2009-08-17 2016-09-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
KR101452713B1 (ko) 2009-10-30 2014-10-21 삼성전자주식회사 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치
US20110176743A1 (en) 2010-01-21 2011-07-21 Sankar Pathamadi V Data compression methods
US8934540B2 (en) * 2010-07-20 2015-01-13 Cisco Technology, Inc. Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks
US8913666B2 (en) * 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
EP2533537A1 (en) 2011-06-10 2012-12-12 Panasonic Corporation Transmission of picture size for image or video coding
ES2853673T3 (es) 2011-06-14 2021-09-17 Lg Electronics Inc Método para codificar y descodificar la información de imágenes
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
US9143802B2 (en) * 2011-10-31 2015-09-22 Qualcomm Incorporated Fragmented parameter set for video coding
US9462275B2 (en) * 2012-01-30 2016-10-04 Qualcomm Incorporated Residual quad tree (RQT) coding for video coding
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
US9264706B2 (en) * 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
CN102769744B (zh) * 2012-06-19 2014-07-16 南京信息工程大学 一种卫星图像的编码方法
WO2014047885A1 (en) * 2012-09-28 2014-04-03 Intel Corporation Enhanced reference region utilization for scalable video coding
US10979705B2 (en) 2014-08-08 2021-04-13 Qualcomm Incorporated Method for video coding with spatial prediction mode for multi-mode video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140033499A (ko) * 2011-07-01 2014-03-18 퀄컴 인코포레이티드 비디오 데이터에 비-정방형 변환들을 적용

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Joel Sole, et al. Transform Coefficient Coding in HEVC, IEEE Transactions on Circuits and Systems for Video Technology, 2012-10-05, pp. 1765-1777* *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210115041A (ko) * 2019-03-04 2021-09-24 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
KR20220043238A (ko) * 2019-03-04 2022-04-05 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
US11451783B2 (en) 2019-03-04 2022-09-20 Lg Electronics Inc. Image decoding method using context-coded sign flag in image coding system and apparatus therefor
US11849120B2 (en) 2019-03-04 2023-12-19 Lg Electronics Inc. Image decoding method using context-coded sign flag in image coding system and apparatus therefor

Also Published As

Publication number Publication date
EP3306924A1 (en) 2018-04-11
US11006116B2 (en) 2021-05-11
JP7195251B2 (ja) 2022-12-23
EP3523965A1 (en) 2019-08-14
US20200045316A1 (en) 2020-02-06
EP3523965B1 (en) 2023-12-13
CN109923861A (zh) 2019-06-21
KR102416958B1 (ko) 2022-07-05
WO2018065154A1 (en) 2018-04-12
CN109923861B (zh) 2021-10-08
JP2019531026A (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
KR102416958B1 (ko) 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스
CA2992850C (en) Coefficient level coding in video coding
US9866829B2 (en) Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
EP2839645B1 (en) Coefficient groups and coefficient coding for coefficient scans
KR101641439B1 (ko) 비디오 코딩에서의 비-정사각형 블록들에 대한 컨텍스트 적응적 엔트로피 코딩
US11539982B2 (en) Merge estimation region for multi-type-tree block structure
US20130195199A1 (en) Residual quad tree (rqt) coding for video coding
US11695962B2 (en) Encoding and decoding methods and corresponding devices
US11483562B2 (en) Method and apparatus for video encoding and decoding based on context switching
KR20150064116A (ko) 컨텍스트 적응 멀티-레벨 유의도 코딩을 위한 컨텍스트 도출
WO2013003798A1 (en) Contexts for coefficient level coding in video compression
KR102380579B1 (ko) 비디오 데이터에 관련된 신택스 엘리먼트를 나타내는 이진 심볼들의 시퀀스의 컨텍스트-적응적 이진 산술 코딩을 위한 방법 및 디바이스
CN116458156A (zh) 视频译码中的基于上下文的变换索引信令
CN114982240A (zh) 用于视频译码的多重变换集信令
US20230291922A1 (en) Encoding and decoding methods and corresponding devices

Legal Events

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