KR102523750B1 - 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림 - Google Patents

비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림 Download PDF

Info

Publication number
KR102523750B1
KR102523750B1 KR1020207031124A KR20207031124A KR102523750B1 KR 102523750 B1 KR102523750 B1 KR 102523750B1 KR 1020207031124 A KR1020207031124 A KR 1020207031124A KR 20207031124 A KR20207031124 A KR 20207031124A KR 102523750 B1 KR102523750 B1 KR 102523750B1
Authority
KR
South Korea
Prior art keywords
value
source statistic
source
statistic value
video
Prior art date
Application number
KR1020207031124A
Other languages
English (en)
Other versions
KR20200128754A (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 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우
Priority to KR1020237012824A priority Critical patent/KR102617187B1/ko
Publication of KR20200128754A publication Critical patent/KR20200128754A/ko
Application granted granted Critical
Publication of KR102523750B1 publication Critical patent/KR102523750B1/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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

Abstract

비디오 디코더는 하나 이상의 슬라이스의 세트로 세분화된 복수의 비디오 프레임을 디코딩하도록 구성된다. 상기 디코더는 슬라이스의 디코딩 동작 모드를 선택하기 위해 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초하여 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드를 사용하여 인코딩되는지, 또는 이전 프레임의 하나의 픽셀 블록에 기초하여 픽셀 블록의 예측이 있는 단일 예측 모드를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임의 2개 이상의 픽셀 블록에 기초하여 픽셀 블록의 예측이 있는 이중 예측 모드를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보를 평가한다. 상기 비디오 디코더는 이진 시퀀스의 인코딩된 표현에 기초하여 디코딩된 이진 시퀀스를 제공하기 위한 산술 디코더를 포함한다. 상기 산술 디코더는 제1 추정 파라미터를 사용하여 제1 소스 통계 값을 결정하고, 제2 추정 파라미터를 사용하여 제2 소스 통계 값을 결정하도록 구성된다. 상기 산술 디코더는 상기 제1 소스 통계 값(at)에 기초하여 및 상기 제2 소스 통계 값에 기초하여 결합된 소스 통계 값을 결정하도록 구성되고, 상기 산술 디코더는 상기 결합된 소스 통계 값에 기초하여, 상기 이진 시퀀스의 인코딩된 표현을 상기 디코딩된 이진 시퀀스로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하도록 구성된다.

Description

비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
본 발명에 따른 실시예는 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림에 관한 것이다.
본 발명에 따른 실시예는 예를 들어 비디오 인코더, 비디오 디코더뿐만 아니라 이미지 인코더, 이미지 디코더, 오디오 인코더, 오디오 디코더 등에 사용될 수 있는 이진 산술 코딩을 위한 확률 추정 방법에 관한 것이다.
산술 인코딩 및 디코딩은 오디오 및 비디오 컨텐츠를 인코딩 및 디코딩하는 데 유용한 도구로 입증되었다. 예를 들어, 비디오 또는 오디오 컨텐츠를 나타내는 이진 시퀀스에서 이진 값의 알려진 발생 확률을 이용하여 인코딩 효율을 증가시킬 수 있다. 특히 산술 인코딩은 효율적인 방식으로 "0"과 "1"의 다양한 확률을 처리할 수 있으며, 미세 조정 방식으로 확률의 변화에 적응될 수 있다.
그러나 최적의 코딩 효율을 가져오는 산술 인코딩 및 디코딩을 위해, 실제 발생 빈도를 잘 반영하는 "0"과 "1"의 확률에 관한 우수한 정보를 갖는 것이 중요하다. "0"과 "1"의 확률에 관한 지식(또는 일반적으로 인코딩될 심볼의 확률에 관한 지식)은 일반적으로 전체 값 범위 내에서 간격의 경계를 조절하여 간격 세분화(interval sub-division)를 획득하는 데 사용된다(예를 들어, 전체 값 범위를 상이한 이진 값 또는 이진 값의 그룹과 연관된 간격으로 세분화하는 데 사용된다).
따라서, 연산의 효율성과 신뢰성 사이에 우수한 균형을 제공하는 소스 통계 값 또는 간격 세분화를 위한 범위 값을 결정하기 위한 개념이 필요하다.
본 발명에 따른 일 실시예는 비디오 디코더를 생성하고, 여기서 비디오 디코더는 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 디코딩하도록 구성된다.
비디오 디코더는 하나 이상의 슬라이스(slice)의 세트(바람직하게는 복수의 슬라이스)로 세분화된 비디오 프레임을 디코딩하도록 구성되고, 비디오 디코더는 슬라이스의 디코딩 동작 모드를 선택하기 위해 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하도록 구성된다. 비디오 디코더는 이진 시퀀스의 인코딩된 표현에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 디코딩된 이진 시퀀스를 제공하기 위한 산술 디코더를 포함한다. 산술 디코더는 예를 들어, 이전에 디코딩된 이진 시퀀스에 기초하여 (예를 들어, 윈도우 크기 변수에 의해 표현될 수 있는) 제1 윈도우 크기(예를 들어, wa)를 사용하여 (예를 들어, 이전에 디코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초하는)(그리고 "카운터 변수" 또는 "카운터"로도 지정된) 제1 소스 통계 값(예를 들어, at)을 결정하고, 예를 들어, 이전에 디코딩된 이진 시퀀스에 기초하여 제2 윈도우 크기(예를 들어, wb)를 사용하여 (이전에 디코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초하는) 제2 소스 통계 값(예를 들어, bt)을 결정하도록 구성된다. 산술 디코더는, 예를 들어, 제1 소스 통계 값(예를 들어, at)에 기초하여 및 제2 소스 통계 값(예를 들어, bt)에 기초하여 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00001
,
Figure 112020114622608-pct00002
, 또는 pt)을 결정하도록 구성된다. 산술 디코더는 결합된 소스 통계 값에 기초하여, 이진 시퀀스의 인코딩된 표현을 디코딩된 이진 시퀀스로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 산술 디코더는 슬라이스 유형 정보에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 (예를 들어, 상이한 값을 취하도록) 구성된다(여기서 제1 윈도우 크기 및 제2 윈도우 크기는, 예를 들어, 1과 11을 포함하여 1과 11 사이의 범위 내에 있을 수 있다).
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 또한 비트스트림에 포함된 초기화 파라미터 또는 플래그(예를 들어, "cabac init flag")(예를 들어, 슬라이스당 하나의 초기화 플래그)에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성되고, 여기서 초기화 플래그는 선택적으로 또한 제1 소스 통계 값 및/또는 제2 소스 통계 값에 대한 초기화 값을 규정할 수도 있다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 또한 컨텍스트 모델에 따라 (예를 들어, 디코딩될 정보의 유형에 따라, 예를 들어, 변환 계수의 하나 이상의 최상위 비트가 디코딩되는지 또는 변환 계수의 하나 이상의 최하위 비트가 디코딩되는지 여부에 따라) 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다. 예를 들어, 제1 윈도우 크기 및 제2 윈도우 크기를 규정하는 한 쌍의 윈도우 크기 값은 슬라이스 유형, 초기화 플래그 및 컨텍스트 모델의 각 조합에 대해 미리 정해질 수 있다.
바람직한 실시예에서, 비디오 디코더는 제1 소스 통계 값의 업데이트된 버전(at+1)을 획득하기 위해, 이전에 디코딩된 이진 값(예를 들어, xt)에 따라 제1 소스 통계 값의 이전에 연산된 인스턴스(예를 들어 at)에 미리 결정된 값(예를 들어,
Figure 112020114622608-pct00003
또는
Figure 112020114622608-pct00004
)을 선택적으로 가산하고, 제1 소스 통계 값의 이전에 연산된 인스턴스(예를 들어,
Figure 112020114622608-pct00005
)의 스케일링된 버전을 감산하도록 구성된다. 대안적으로 또는 추가적으로, 비디오 디코더는 제2 소스 통계 값의 업데이트된 버전(예를 들어, bt+1)을 획득하기 위해, 이전에 디코딩된 이진 값(예를 들어, xt)에 따라 제2 소스 통계 값의 이전에 연산된 인스턴스(예를 들어, bt)에 미리 결정된 값(예를 들어,
Figure 112020114622608-pct00006
또는
Figure 112020114622608-pct00007
)을 선택적으로 가산하고, 제2 소스 통계 값의 이전에 연산된 인스턴스(예를 들어,
Figure 112020114622608-pct00008
)의 스케일링된 버전을 감산하도록 구성된다.
바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00009
에 따라 제1 소스 통계 값의 업데이트된 버전(at+1)을 획득하도록 구성되고, 여기서 at은 제1 소스 통계 값의 이전에 연산된 버전이고, xt는 이전에 디코딩된 이진 값(예를 들어, 0 또는 1의 값을 갖는 이진 심볼)이고, na는 윈도우 크기 정보(예를 들어, 정수 값을 가짐)이고,
Figure 112020114622608-pct00010
이고,
여기서 BITSa는 제1 소스 통계 값을 나타내는 데 사용되는 비트 수이고,
ka는 미리 결정된 수(예를 들어, 정수, 예를 들어 0 또는 1)이다.
대안적으로 또는 추가적으로, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00011
에 따라 제2 소스 통계 값의 업데이트된 버전(bt+1)을 획득하도록 구성되고, 여기서 bt는 제2 소스 통계 값의 이전에 연산된 버전이고, xt는 이전에 디코딩된 심볼(예를 들어, 0 또는 1의 값을 갖는 이진 심볼)이고, nb는 윈도우 크기 정보(예를 들어, 정수 값을 가짐)이고,
Figure 112020114622608-pct00012
이고,
여기서 BITSb는 제2 소스 통계 값을 나타내는 데 사용되는 비트 수이고,
kb는 미리 결정된 수(예를 들어, 정수, 예를 들어 0 또는 1)이다.
바람직한 실시예에서, ka=1 및/또는 kb=1이다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00013
Figure 112020114622608-pct00014
에 따라 제1 소스 통계 값(at+1)을 결정하도록 구성되고,
여기서 at은 이전에 연산된 소스 통계 값이고, xt는 이전에 디코딩된 이진 값이고, BITSa는 제1 소스 통계 값에 할당된 비트 수이고, na는 제1 윈도우 크기(wa)를 나타내고, 여기서
Figure 112020114622608-pct00015
이고, ">>"는 우측 이동 연산자이고, 및/또는 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00016
Figure 112020114622608-pct00017
에 따라 제2 소스 통계 값(bt+1)을 결정하도록 구성되고, 여기서 bt는 이전에 연산된 소스 통계 값이고, xt는 이전에 디코딩된 이진 값이고, BITSb는 제1 소스 통계 값에 할당된 비트 수이고, nb는 제2 윈도우 크기(wb)를 나타내고, 여기서
Figure 112020114622608-pct00018
이다.
제1 및 제2 소스 통계 값의 업데이트는 파라미터(BITSa/b 및 na/b)에서만 다르다는 것이 주목된다. 이 바람직한 실시예의 끝까지, at 및 bt 모두에 대한 업데이트 절차를 논의하기 위해 a 및 at가 사용된다. bt에 대한 업데이트 절차를 생성하려면 아래 수식에서 a의 모든 발생을 간단히 b로 대체하면 된다.
업데이트 절차는 다음 수식, 즉
Figure 112020114622608-pct00019
Figure 112020114622608-pct00020
로 다시 쓸 수 있고, 이는 상기 원래 업데이트 수식과 정확히 동일한 결과를 생성한다. 상기 두 업데이트 수식 중 제1 수식은 다음 수식, 즉
Figure 112020114622608-pct00021
로 다시 쓸 수 있고, 여기서
Figure 112020114622608-pct00022
이다.
ONEa는 1과 같은 확률 값을 나타낸다는 것이 주목된다. 효율적인 구현을 위해 ONEa를 양자화하거나 또는 (예를 들어, 작은 양을 가산하거나 감산함으로써) 약간 변경하는 것이 합리적일 수 있다. 이것은 소스 통계 값의 거동에 거의 영향을 미치지 않는다. 예를 들어,
Figure 112020114622608-pct00023
을 사용하면, ONEa의 이진 표현은 원래 버전보다 1 비트 더 적을 것이 요구된다. 그러나 소스 통계 값의 업데이트의 거동은 사실상 변경되지 않는다.
바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00024
에 따라 제1 소스 통계 값(at+1)을 결정하도록 구성되고, 여기서 at은 이전에 연산된 소스 통계 값이고, xt는 이전에 디코딩된 이진 값이고, BITSa는 제1 소스 통계 값에 할당된 비트 수이고, na는 제1 윈도우 크기(wa)를 나타내고, 여기서
Figure 112020114622608-pct00025
이고, >>는 우측 이동 연산자이다.
대안적으로 또는 추가적으로, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00026
에 따라 제2 소스 통계 값(bt+1)을 결정하도록 구성되고, 여기서 bt는 이전에 연산된 소스 통계 값이고, xt는 이전에 디코딩된 이진 값이고, BITSb는 제1 소스 통계 값에 할당된 비트 수이고, nb는 제2 윈도우 크기(wb)를 나타내고, 여기서
Figure 112020114622608-pct00027
이다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00028
에 따라 제1 소스 통계 값(at+1)을 결정하도록 구성되고, 여기서 at은 이전에 연산된 소스 통계 값이고, xt는 이전에 디코딩된 이진 값이고, BITSa는 제1 소스 통계 값에 할당된 비트 수이고, na는 제1 윈도우 크기(wa)를 나타내고, 여기서
Figure 112020114622608-pct00029
이고, ">>"는 우측 이동 연산자이고, 및/또는 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00030
에 따라 제2 소스 통계 값(bt+1)을 결정하도록 구성되고, 여기서 bt는 이전에 연산된 소스 통계 값이고, xt는 이전에 디코딩된 이진 값이고, BITSb는 제1 소스 통계 값에 할당된 비트 수이고, nb는 제2 윈도우 크기(wb)를 나타내고, 여기서
Figure 112020114622608-pct00031
이고, ">>"는 우측 이동 연산자이다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값과 제2 소스 통계 값을 결합하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00032
에 따라 결합된 소스 통계 값(
Figure 112020114622608-pct00033
)을 획득하도록 구성되고, 여기서 at은 제1 소스 통계 값이고, bt는 제2 소스 통계 값이다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값과 제2 소스 통계 값을 결합하도록 구성되고, 여기서 제1 소스 통계 값과 제2 소스 통계 값은 상이한 가중치와 연관된다(선택적으로, 비디오 디코더는 디코딩 프로세스 동안 가중치를 변경하도록 구성된다).
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값(예를 들어, bt)을 표현하기 위해 다른 비트 수(예를 들어, BITSa, BITSb)를 사용하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값(예를 들어, bt)에 대해 상이한 윈도우 크기를 사용하도록 구성되고, 여기서 비디오 디코더는 상대적으로 더 큰 윈도우 크기를 갖는 소스 통계 값을 표현하기 위해 상대적으로 더 많은 수의 비트를 사용하고, 상대적으로 더 작은 윈도우 크기를 갖는 소스 통계 값을 표현하기 위해 상대적으로 더 적은 수의 비트를 사용하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는, 결합된 소스 통계 값을 결정하기 전에, 다음 수식, 즉
Figure 112020114622608-pct00034
에 따라 및/또는
Figure 112020114622608-pct00035
에 따라 제1 소스 통계 값(at) 및/또는 제2 소스 통계 값(bt)의 숫자 표현을 수정하도록 구성되고, 여기서
Figure 112020114622608-pct00036
이고,
여기서 BITSa는 제1 소스 통계 값을 표현하기 위해 할당된 비트 수이고, BITSb는 제2 소스 통계 값을 표현하기 위해 할당된 비트 수이다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00037
에 따라 결합된 소스 통계 값(
Figure 112020114622608-pct00038
)을 결정하도록 구성되고,
비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00039
에 따라 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하도록 구성되고,
여기서 가능성이 가장 높은 (예를 들어, 이진) 값의 값은 다음 수식, 즉
Figure 112020114622608-pct00040
에 따라 결정되고,
여기서 BITStabRes는 표의 엔트리의 수(또는 표의 엔트리들 사이의 이진 값의 빈도 측면에서 간격)를 나타낸다. 이 표는 예를 들어 0 내지 0.5 범위의 확률 값을 미리 계산된 범위 값으로 매핑하는 것을 나타낸다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00041
에 따라 결합된 소스 통계 값(
Figure 112020114622608-pct00042
)을 결정하도록 구성되고,
비디오 디코더는 다음 수식, 즉
Figure 112020114622608-pct00043
에 따라 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하도록 구성되고,
여기서 BITStabRes는 표의 엔트리의 수(또는 표의 엔트리들 사이의 이진 값의 빈도 측면에서 간격)를 나타낸다. 이 표는 예를 들어 0 내지 1 범위의 확률 값을 미리 계산된 범위 값으로 매핑하는 것을 나타낸다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 제1 윈도우 크기에 따라 및 제2 윈도우 크기에 따라 (예를 들어,
Figure 112020114622608-pct00044
(여기서
Figure 112020114622608-pct00045
또는 na = round(log2wa)이고, round()는 올림(rounding-up) 또는 내림(rounding-down) 연산자임)에 따라 및/또는
Figure 112020114622608-pct00046
(여기서
Figure 112020114622608-pct00047
또는 nb = round(log2wb)이고, ThrHd는 미리 결정되고 바람직하게 고정된 값임)에 따라) 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값을 표현하기 위해 비트 수(예를 들어, BITSa, BITSb)를 선택하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 제1 소스 통계 값(at) 및 제2 소스 통계 값(bt)을 표현하는 데 사용되는 총 비트 수의 합은 상이한 컨텍스트 모델에 걸쳐 일정하다(또는 제1 소스 통계 값을 표현하는 데 사용되는 비트 수가 변하는 경우와 독립적이다).
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 비트스트림에 포함된 (예를 들어, 전용) 초기화 플래그(예를 들어, "ws_flag")에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성되고, 비디오 디코더는 비트스트림에 포함된 다른 초기화 플래그(예를 들어, "cabac init flag")에 따라 제1 소스 통계 값 및/또는 제2 소스 통계 값에 대한 초기화 값을 설정하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더 또는 산술 디코더는 또한 현재 슬라이스의 시간적 레벨에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다. 대안적으로 또는 추가적으로, 비디오 디코더 또는 산술 디코더는 또한 현재 슬라이스의 양자화 파라미터에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 위치에 따라 (예를 들어, 현재 슬라이스 내에서 또는 컨텍스트 초기화 이후, 제1 윈도우 크기 및/또는 제2 윈도우 크기와 연관된 컨텍스트 모델을 사용하여 이미 디코딩된 이진 값의 개수에 따라, 또는 디코딩될 이진 값과 연관된 프레임 내의 픽셀 또는 픽셀 블록의 위치에 따라) 제1 윈도우 크기 및/또는 제2 윈도우 크기를 조절하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 시작 위치(예를 들어, 픽셀 블록의 제1 행 또는 픽셀 블록의 제1 열)와 연관된 이진 값을 디코딩 할 때 제1 윈도우 크기 및/또는 제2 윈도우 크기를 (바람직하게는 정상 값(normal value)보다 더 작은) 시작 값으로 설정하고, 시작 위치로부터 적어도 미리 결정된 위치(또는 거리)만큼 떨어진 위치와 연관된 이진 값을 디코딩할 때 제1 윈도우 크기 및/또는 제2 윈도우 크기를 (바람직하게는 시작 값보다 더 큰) 정상 값으로 설정하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 윈도우 크기가 변경되어야 하는 것을 나타내는 시그널링 플래그(예를 들어, "ctu_ws_flag" 플래그)에 응답하여 (예를 들어, 슬라이스를 디코딩할 때) 슬라이스 내에서 제1 윈도우 크기 및/또는 제2 윈도우 크기를 변경하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 복수의 코딩 트리 유닛에 대해 (또는 심지어 모든 코딩 트리 유닛에 대해), 윈도우 크기가 변경되어야 하는지 여부를 나타내는 시그널링 플래그를 평가하고, 시그널링 플래그에 따라 적어도 하나의 윈도우 크기를 증가시키거나 감소시키도록 구성된다(예를 들어, 윈도우 크기의 최대 범위를 초과하지 않도록 유의하면서, 심지어 상이한 컨텍스트 모델의 모든 윈도우 크기를 시그널링 플래그에 따라 1씩 공동으로 증가시키거나 감소시키도록 구성된다). 대안적인 예로서, 일부 컨텍스트 모델의 윈도우 크기만을 증가시키거나 감소시킬 수 있다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 예를 들어 수식(8)에 따라 또는 수식(12)에 따라 또는 수식(14)에 따라 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00048
, 또는
Figure 112020114622608-pct00049
, 또는 pt)으로부터 상태 인덱스(예를 들어, pStateIdx)를 도출하도록 구성된다. 대안적으로 또는 추가적으로, 비디오 디코더는 예를 들어 수식(9)에 따라 또는 수식(13)에 따라 가능성이 가장 높은 이진 값 또는 가능성이 가장 낮은 이진 값을 나타내는 값(예를 들어, valMPS)을 도출하도록 구성된다. 더욱이, 비디오 디코더는 상태 인덱스를 간격 세분화를 위한 하나 이상의 범위 값으로 매핑하는 표를 평가하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는 (예를 들어, 초기화 직후뿐만 아니라 이진 시퀀스의 다수의 이진 값을 디코딩하기 위해) 제2 소스 통계 값을 상수 대체 값으로 일시적으로 대체하고, 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값(예를 들어, at)을 고정된 0이 아닌 대체 값과 결합하도록 구성된다.
비디오 디코더의 바람직한 실시예에서, 비디오 디코더는,
na = nb 또는
|na-nb|≥3이도록
제1 윈도우 크기(wa) 및 제2 윈도우 크기(wb)를 선택하도록 구성되고, 여기서,
Figure 112020114622608-pct00050
또는 na = round(log2wa)이고, 그리고 round()는 올림 또는 내림 연산자이고,
Figure 112020114622608-pct00051
또는 nb=round(log2wb)이다.
바람직한 실시예에서, 비디오 디코더는,
|na-nb|≥3이도록
제1 윈도우 크기(wa) 및 제2 윈도우 크기(wb)를 선택하도록 구성되고, 여기서,
Figure 112020114622608-pct00052
또는 na = round(log2wa)이고, 그리고 round()는 올림 또는 내림 연산자이고,
Figure 112020114622608-pct00053
또는 nb=round(log2wb)이다.
본 발명에 따른 다른 실시예는 비디오 디코더를 생성하고, 여기서 비디오 디코더는 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 디코딩하도록 구성되고, 비디오 디코더는 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분화된 비디오 프레임을 디코딩하도록 구성된다. 비디오 디코더는 슬라이스의 디코딩 동작 모드를 선택하기 위해 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하도록 구성된다. 비디오 디코더는 이진 시퀀스의 인코딩된 표현에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 디코딩된 이진 시퀀스를 제공하기 위한 산술 디코더를 포함한다. 산술 디코더는 예를 들어 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여 (이전에 디코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있고, 또한 "카운터 변수" 또는 "카운터"로 지정될 수도 있는) 제1 소스 통계 값(예를 들어, at)을 결정하도록 구성된다. 산술 디코더는 예를 들어 이전에 디코딩된 이진 시퀀스에 기초하여 제1 소스 통계 값을 결정할 수 있다. 산술 디코더는 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00054
, 또는
Figure 112020114622608-pct00055
, 또는 pt)을 결정하도록 구성되고, 여기서 산술 디코더는 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값(예를 들어, at)을 고정된 0이 아닌 값과 결합하도록 구성되고, 산술 디코더는 결합된 소스 통계 값에 기초하여, 이진 시퀀스의 인코딩된 표현을 디코딩된 이진 시퀀스로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하도록 구성된다.
이 실시예는 이전에 논의된 실시예와 관련하여 언급된 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 그리고 조합으로 보충될 수 있다.
본 발명에 따른 일 실시예는 비디오 인코더를 생성하고, 여기서 비디오 인코더는 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 인코딩하도록 구성되고,
상기 비디오 인코더는 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분되는 비디오 프레임을 인코딩하도록 구성된다. 비디오 인코더는 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하도록 구성된다. 비디오 인코더는 이진 시퀀스(여기서 이진 시퀀스는 변환 계수 또는 스펙트럼 계수, 또는 파라미터, 또는 임의의 다른 정보, 예를 들어, 인코딩될 비디오 컨텐츠의 프레임의 컨텐츠를 나타내는 정보를 나타낼 수 있음)에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 이진 시퀀스의 인코딩된 표현을 제공하기 위한 산술 인코더를 포함한다. 산술 인코더는 예를 들어, 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여, 예를 들어, 이전에 인코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있고, 예를 들어 또한 "카운터 변수" 또는 "카운터"로 지정될 수도 있는 제1 소스 통계 값(at)을 결정하도록 구성된다. 비디오 인코더는 예를 들어 이전에 인코딩된 이진 시퀀스에 기초하여 제1 소스 통계 값을 결정할 수 있다. 산술 인코더 또는 비디오 인코더는 제2 윈도우 크기(예를 들어, wb)를 사용하여, 예를 들어, 이전에 인코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있는 제2 소스 통계 값(예를 들어, bt)을 결정하도록 구성될 수 있다. 산술 인코더 또는 비디오 인코더는 예를 들어 이전에 인코딩된 이진 시퀀스에 기초하여 제2 소스 통계 값을 결정하도록 구성될 수 있다. 산술 인코더는 제1 소스 통계 값(예를 들어, at)에 기초하여 및 제2 소스 통계 값(예를 들어, b)에 기초하여 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00056
또는
Figure 112020114622608-pct00057
또는 pt)을 결정하도록 구성되고, 산술 인코더는 결합된 소스 통계 값에 기초하여, 이진 시퀀스를 이진 시퀀스의 인코딩된 표현으로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하도록 구성된다.
바람직한 실시예에서, 비디오 인코더(또는 동등하게, 산술 인코더)는 슬라이스 유형 정보(예를 들어, 2개의 상이한 값)에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다(여기서 제1 윈도우 크기 및 제2 윈도우 크기는 예를 들어 1과 11을 포함하여 1과 11 사이의 범위 내에 있을 수 있다).
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 초기화 파라미터 또는 플래그(예를 들어, "cabac init flag" 플래그)를 제공하도록 구성되고, 비디오 인코더는 또한 비디오 인코더에 의해 비트스트림(예를 들어, 비디오 프레임을 나타내는 비트스트림)에 포함된 초기화 파라미터 또는 플래그(예를 들어, "cabac init flag")에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다. 예를 들어, 비디오 인코더는 슬라이스당 하나의 초기화 플래그를 제공하고, 초기화 플래그는 선택적으로 제1 소스 통계 값 및/또는 제2 소스 통계 값에 대한 초기화 값을 규정할 수도 있다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 또한 컨텍스트 모델에 따라 (예를 들어, 인코딩될 정보의 유형에 따라, 예를 들어, 변환 계수의 하나 이상의 최상위 비트가 인코딩되는지 또는 변환 계수의 하나 이상의 최하위 비트가 인코딩되는지 여부에 따라) 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다. 예를 들어, 제1 윈도우 크기 및 제2 윈도우 크기를 규정하는 한 쌍의 윈도우 크기 값은 슬라이스 유형, 초기화 플래그 및 컨텍스트 모델의 각 조합에 대해 미리 정해질 수 있다.
바람직한 실시예에서, 비디오 인코더는 제1 소스 통계 값의 업데이트된 버전(at+1)을 획득하기 위해, 이전에 인코딩된 이진 값(예를 들어, xt)에 따라 제1 소스 통계 값의 이전에 연산된 인스턴스(예를 들어 at)에 미리 결정된 값(예를 들어,
Figure 112020114622608-pct00058
또는
Figure 112020114622608-pct00059
)을 선택적으로 가산하고, 제1 소스 통계 값의 이전에 연산된 인스턴스(예를 들어,
Figure 112020114622608-pct00060
)의 스케일링된 버전을 감산하도록 구성된다. 대안적으로 또는 추가적으로, 비디오 인코더는 제2 소스 통계 값의 업데이트된 버전(bt+1)을 획득하기 위해, 이전에 인코딩된 이진 값(예를 들어, xt)에 따라 제2 소스 통계 값의 이전에 연산된 인스턴스(예를 들어, bt)에 미리 결정된 값(예를 들어,
Figure 112020114622608-pct00061
또는
Figure 112020114622608-pct00062
)을 선택적으로 가산하고, 제2 소스 통계 값의 이전에 연산된 인스턴스(예를 들어,
Figure 112020114622608-pct00063
)의 스케일링된 버전을 감산하도록 구성된다.
바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00064
에 따라 제1 소스 통계 값의 업데이트된 버전(at+1)을 획득하도록 구성되고, 여기서 at은 제1 소스 통계 값의 이전에 연산된 버전이고, xt는 이전에 인코딩된 이진 값(예를 들어, 0 또는 1의 값을 갖는 이진 심볼)이고, na는 윈도우 크기 정보(예를 들어, 정수 값을 가짐)이고,
Figure 112020114622608-pct00065
이고,
여기서 BITSa는 제1 소스 통계 값을 나타내는 데 사용되는 비트 수이며, 여기서 ka는 미리 결정된 수(예를 들어, 정수, 예를 들어, 0 또는 1)이다.
대안적으로 또는 추가적으로, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00066
에 따라 제2 소스 통계 값의 업데이트된 버전(bt+1)을 획득하도록 구성되고, 여기서 bt는 제2 소스 통계 값의 이전에 연산된 버전이고, xt는 이전에 인코딩된 심볼(예를 들어, 0 또는 1의 값을 갖는 이진 심볼)이고, nb는 윈도우 크기 정보(예를 들어, 정수 값을 가짐)이고,
Figure 112020114622608-pct00067
이고,
BITSb는 제2 소스 통계 값을 나타내는 데 사용되는 비트 수이며, kb는 미리 결정된 수(예를 들어, 정수, 예를 들어, 0 또는 1)이다.
바람직한 실시예에서, ka=1 및/또는 kb=1이다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00068
Figure 112020114622608-pct00069
에 따라 (예를 들어, 값(xt+1)을 인코딩하기 위해) 제1 소스 통계 값(at+1)을 결정하도록 구성되고, 여기서 at은 이전에 연산된 소스 통계 값이고, xt는 이전에 인코딩된 이진 값이고, BITSa는 제1 소스 통계 값에 할당된 비트 수이고, na는 제1 윈도우 크기(wa)를 나타내고,
Figure 112020114622608-pct00070
이고, ">>"는 우측 이동 연산자이다.
대안적으로 또는 추가적으로, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00071
Figure 112020114622608-pct00072
에 따라 제2 소스 통계 값(bt+1)을 결정하도록 구성될 수 있고, 여기서 bt는 이전에 연산된 소스 통계 값이고, xt는 이전에 인코딩된 이진 값이고, BITSb는 제1 소스 통계 값에 할당된 비트 수이고, nb는 제2 윈도우 크기(wb)를 나타내고,
Figure 112020114622608-pct00073
이다.
바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00074
에 따라 제1 소스 통계 값(at+1)을 결정하도록 구성되고, 여기서 at은 이전에 연산된 소스 통계 값이고, xt는 이전에 인코딩된 이진 값이고, BITSa는 제1 소스 통계 값에 할당된 비트 수이고, na는 제1 윈도우 크기(wa)를 나타내고, 여기서
Figure 112020114622608-pct00075
이고, >>는 우측 이동 연산자이다.
대안적으로 또는 추가적으로, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00076
에 따라 제2 소스 통계 값(bt+1)을 결정하도록 구성되고, 여기서 bt는 이전에 연산된 소스 통계 값이고, xt는 이전에 인코딩된 이진 값이고, BITSb는 제1 소스 통계 값에 할당된 비트 수이고, nb는 제2 윈도우 크기(wb)를 나타내고, 여기서
Figure 112020114622608-pct00077
이다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00078
에 따라 제1 소스 통계 값(at+1)을 결정하도록 구성되고, 여기서 at은 이전에 연산된 소스 통계 값이고, xt는 이전에 인코딩된 이진 값이고, BITSa는 제1 소스 통계 값에 할당된 비트 수이고, na는 제1 윈도우 크기(wa)를 나타내고, 여기서
Figure 112020114622608-pct00079
이고, ">>"는 우측 이동 연산자이다.
대안적으로 또는 추가적으로, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00080
에 따라 제2 소스 통계 값(bt+1)을 결정하도록 구성될 수 있고, 여기서 bt는 이전에 연산된 소스 통계 값이고, xt는 이전에 인코딩된 이진 값이고, BITSb는 제1 소스 통계 값에 할당된 비트 수이고, nb는 제2 윈도우 크기(wb)를 나타내고, 여기서
Figure 112020114622608-pct00081
이고, ">>"는 우측 이동 연산자이다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값과 제2 소스 통계 값을 결합하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00082
에 따라 결합된 소스 통계 값(
Figure 112020114622608-pct00083
)을 획득하도록 구성되고, 여기서 at은 제1 소스 통계 값이고, bt는 제2 소스 통계 값이다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값과 제2 소스 통계 값을 결합하도록 구성되고, 여기서 제1 소스 통계 값과 제2 소스 통계 값은 상이한 가중치와 연관된다. 선택적으로, 비디오 인코더는 인코딩 프로세스 동안 가중치를 변경하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값(예를 들어, bt)을 표현하기 위해 상이한 비트 수(예를 들어, BITSa, BITSb)를 사용하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값(예를 들어, bt)에 대해 상이한 윈도우 크기를 사용하도록 구성되고, 비디오 인코더는 상대적으로 더 큰 윈도우 크기를 갖는 소스 통계 값을 표현하기 위해 상대적으로 더 많은 수의 비트를 사용하고, 상대적으로 더 작은 윈도우 크기를 갖는 소스 통계 값을 표현하기 위해 상대적으로 더 적은 수의 비트를 사용하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 결합된 소스 통계 값을 결정하기 전에 다음 수식, 즉
Figure 112020114622608-pct00084
에 따라 및/또는
Figure 112020114622608-pct00085
에 따라 제1 소스 통계 값(at) 및/또는 제2 소스 통계 값(bt)의 숫자 표현을 수정하도록 구성되고, 여기서
Figure 112020114622608-pct00086
이고,
여기서 BITSa는 제1 소스 통계 값을 표현하기 위해 할당된 비트 수이고, BITSb는 제2 소스 통계 값을 표현하기 위해 할당된 비트 수이다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00087
에 따라 결합된 소스 통계 값(
Figure 112020114622608-pct00088
)을 결정하도록 구성되고,
비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00089
에 따라 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하도록 구성되고, 여기서 가능성이 가장 높은 (예를 들어, 이진) 값의 값은 다음 수식, 즉
Figure 112020114622608-pct00090
에 따라 결정되고, 여기서 BITStabRes는 표의 엔트리 수(또는 표의 엔트리들 사이의 이진 값의 빈도 측면에서 간격)를 나타낸다. 이 표는 예를 들어 0 내지 0.5 범위의 확률 값을 미리 계산된 범위 값으로 매핑하는 것을 나타낸다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00091
에 따라 결합된 소스 통계 값(
Figure 112020114622608-pct00092
)을 결정하도록 구성되고,
비디오 인코더는 다음 수식, 즉
Figure 112020114622608-pct00093
에 따라 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하도록 구성되고,
여기서 BITStabRes는 표의 엔트리 수(또는 표의 엔트리들 사이의 이진 값의 빈도 측면에서 간격)를 나타낸다. 이 표는 예를 들어 0 내지 1 범위의 확률 값을 미리 계산된 범위 값으로 매핑하는 것을 나타낸다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 제1 윈도우 크기에 따라 및 제2 윈도우 크기에 따라 (예를 들어,
Figure 112020114622608-pct00094
(여기서,
Figure 112020114622608-pct00095
또는 na = round(log2wa)이고, round()는 올림 또는 내림 연산자임)에 따라 또는
Figure 112020114622608-pct00096
(여기서,
Figure 112020114622608-pct00097
또는 nb = round(log2wb)이고, ThrHd는 미리 결정되고 바람직하게 고정된 값임)에 따라) 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값을 표현하기 위해 비트 수(예를 들어, BITSa, BITSb)를 선택하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 제1 소스 통계 값(예를 들어, at) 및 제2 소스 통계 값(예를 들어, bt)을 표현하는 데 사용되는 총 비트 수의 합은 상이한 컨텍스트 모델에 걸쳐 일정하다(또는 제1 소스 통계 값을 표현하는 데 사용되는 비트 수가 변하는 경우와 독립적이다).
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 (아마도 슬라이스 유형과 같은 다른 구성 정보 외에) 제1 윈도우 크기 및 제2 윈도우 크기를 결정하는 초기화 플래그(예를 들어, "ws_flag" 또는 윈도우 크기 플래그)를 비트스트림에 포함하도록 구성되고, 비디오 인코더는 제1 소스 통계 값 및/또는 제2 소스 통계 값에 대한 초기화 값을 결정하는 다른 초기화 파라미터 또는 플래그(예를 들어, "cabac init flag")를 비트스트림에 포함하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 또한 현재 슬라이스의 시간적 레벨에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다. 대안적으로 또는 추가적으로, 비디오 인코더는 또한 현재 슬라이스의 양자화 파라미터에 따라 제1 윈도우 크기 및 제2 윈도우 크기를 결정하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 위치에 따라 (예를 들어, 현재 슬라이스 내에서 또는 컨텍스트 초기화 이후, 제1 윈도우 크기 및/또는 제2 윈도우 크기와 연관된 컨텍스트 모델을 사용하여 이미 인코딩된 이진 값의 개수에 따라, 또는 인코딩될 이진 값과 연관된 프레임 내의 픽셀 또는 픽셀 블록의 위치에 따라) 제1 윈도우 크기 및/또는 제2 윈도우 크기를 조절하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 시작 위치(예를 들어, 픽셀 블록의 제1 행 또는 픽셀 블록의 제1 열)와 연관된 이진 값을 인코딩 할 때 제1 윈도우 크기 및/또는 제2 윈도우 크기를 (바람직하게는 정상 값보다 더 작은) 시작 값으로 설정하고, 시작 위치로부터 적어도 미리 결정된 위치만큼 떨어진 위치와 연관된 이진 값을 인코딩할 때 제1 윈도우 크기 및/또는 제2 윈도우 크기를 (바람직하게는 시작 값보다 더 큰) 정상 값으로 설정하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 윈도우 크기가 슬라이스 내에서 변경되어야 하는 것을 나타내는 시그널링 플래그(예를 들어 "ctu_ws_flag" 또는 윈도우 크기 변경 시그널링 플래그)를 비트스트림 내에 포함하도록 구성된다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 복수의 코딩 트리 유닛에 대해 (또는 심지어 모든 코딩 트리 유닛에 대해) 윈도우 크기가 변경되어야하는지 여부를 나타내는 시그널링 플래그를 비트스트림 내에 포함하도록 구성되고, 여기서 시그널링 플래그는 적어도 하나의 윈도우 크기를 증가시키거나 감소시킬지 여부를 나타낸다(예를 들어, 윈도우 크기의 최대 범위를 초과하지 않도록 유의하면서 심지어 상이한 컨텍스트 모델의 모든 윈도우 크기를 시그널링 플래그에 따라 1씩 공동으로 증가시키거나 감소시킬지 여부를 나타낸다). 대안적인 예로서, 비디오 인코더는 일부 컨텍스트 모델의 윈도우 크기만을 증가시키거나 감소시킬 수 있다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 예를 들어, 수식(8)에 따라 또는 수식(12)에 따라 또는 수식(14)에 따라 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00098
, 또는
Figure 112020114622608-pct00099
, 또는 pt)으로부터 상태 인덱스(예를 들어, pStateIdx)를 도출하도록 구성된다. 대안적으로 또는 추가적으로, 비디오 인코더는 예를 들어 수식(9)에 따라 또는 수식(13)에 따라 가능성 가장 높은 이진 값 또는 가능성이 가장 낮은 이진 값을 나타내는 값(예를 들어, valMPS)을 도출하도록 구성될 수 있다. 비디오 인코더는 또한 상태 인덱스를 간격 세분화를 위한 하나 이상의 범위 값으로 매핑하는 표를 평가하도록 구성될 수 있다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는 (예를 들어, 초기화 직후뿐만 아니라 이진 시퀀스의 다수의 이진 값을 인코딩하기 위해) 제2 소스 통계 값을 상수 대체 값으로 일시적으로 대체하고, 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값(예를 들어, at)을 고정된 0이 아닌 대체 값과 결합하도록 구성될 수 있다.
비디오 인코더의 바람직한 실시예에서, 비디오 인코더는,
na = nb 또는
|na-nb|≥3이도록,
제1 윈도우 크기(wa) 및 제2 윈도우 크기(wb)를 선택하도록 구성되고, 여기서,
Figure 112020114622608-pct00100
또는 na = round(log2wa), 그리고 round()는 올림 또는 내림 연산자이고,
Figure 112020114622608-pct00101
또는 nb = round(log2wb)이다.
바람직한 실시예에서, 비디오 인코더는,
|na-nb|≥3이도록,
제1 윈도우 크기(wa) 및 제2 윈도우 크기(wb)를 선택하도록 구성되고, 여기서
Figure 112020114622608-pct00102
또는 na = round(log2wa), 그리고 round()는 올림 또는 내림 연산자이고,
Figure 112020114622608-pct00103
또는 nb = round(log2wb)이다.
본 발명에 따른 일 실시예는 비디오 인코더를 생성하고, 여기서 비디오 인코더는 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 인코딩하도록 구성되고,
상기 비디오 인코더는 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분된 비디오 프레임을 인코딩하도록 구성된다. 비디오 인코더는 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하도록 구성된다. 비디오 인코더는 이진 시퀀스(여기서 이진 시퀀스는 변환 계수 또는 스펙트럼 계수, 파라미터 또는 임의의 다른 정보를 나타낼 수 있음)에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 이진 시퀀스의 인코딩된 표현을 제공하기 위한 산술 인코더를 포함한다. 산술 인코더는 예를 들어, 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여, 예를 들어, 이전에 인코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초하고 또한 "카운터 변수" 또는 카운터로 지정될 수도 있는 제1 소스 통계 값(예를 들어, at)을 결정하도록 구성된다. 산술 인코더는 예를 들어 이전에 인코딩된 이진 시퀀스에 기초하여 제1 소스 통계 값을 결정하도록 구성될 수 있다. 산술 인코더는 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00104
, 또는
Figure 112020114622608-pct00105
, 또는 pt)을 결정하도록 구성되고, 여기서 산술 인코더는 결합된 소스 통계 값을 획득하기 위해 제1 소스 통계 값(예를 들어, at)을 고정된 0이 아닌 값과 결합하도록 구성되고, 산술 인코더는 결합된 소스 통계 값에 기초하여, 이진 시퀀스를 이진 시퀀스의 인코딩된 표현으로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하도록 구성된다.
이 실시예는 이전에 설명된 실시예의 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 그리고 조합으로 선택적으로 보충될 수 있다.
본 발명에 따른 일 실시예는 비디오 컨텐츠를 디코딩하기 위한 방법을 생성하고, 방법은 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 디코딩하는 단계를 포함하고, 방법은 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분화된 비디오 프레임을 디코딩하는 단계를 포함한다. 방법은 슬라이스의 디코딩 동작 모드를 선택하기 위해 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 하나의 픽셀 블록(또는 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 2개의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하는 단계를 포함한다. 방법은 이진 시퀀스의 인코딩된 표현에 기초하여 [예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는] 디코딩된 이진 시퀀스를 제공하는 단계를 포함하고, 방법은 예를 들어, 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여, 예를 들어, 이전에 디코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있고, "카운터 변수" 또는 "카운터"로 지정될 수도 있는 제1 소스 통계 값(예를 들어, at)을 결정하는 단계를 포함한다. 제1 소스 통계 값은 예를 들어, 이전에 디코딩된 이진 시퀀스에 기초하여 결정될 수 있다. 방법은 또한 제2 윈도우 크기(예를 들어, wb)를 사용하여, 예를 들어, 이전에 디코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있는 제2 소스 통계 값(예를 들어, bt)을 결정하는 단계를 포함한다. 제2 소스 통계 값은 예를 들어, 이전에 디코딩된 이진 시퀀스에 기초하여 결정될 수 있다. 방법은 또한 제1 소스 통계 값(예를 들어, at)에 기초하여 및 제2 소스 통계 값(예를 들어, bt)에 기초하여 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00106
, 또는
Figure 112020114622608-pct00107
, 또는 pt)을 결정하는 단계를 포함한다. 방법은 또한 결합된 소스 통계 값에 기초하여, 이진 시퀀스의 인코딩된 표현을 디코딩된 이진 시퀀스로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 단계를 포함한다.
본 발명에 따른 일 실시예는 비디오 컨텐츠를 디코딩하기 위한 방법을 생성하고, 방법은 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 디코딩하는 단계를 포함하고, 방법은 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분화된 비디오 프레임을 디코딩하는 단계를 포함한다. 방법은 슬라이스의 디코딩 동작 모드를 선택하기 위해 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 디코딩된 프레임)의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하는 단계를 포함한다. 방법은 이진 시퀀스의 인코딩된 표현에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 디코딩된 이진 시퀀스를 제공하는 단계를 포함한다. 방법은 예를 들어 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여, 예를 들어, 이전에 디코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있고 "카운터 변수","카운터"로 지정될 수도 있는 제1 소스 통계 값(예를 들어, at)을 결정하는 단계를 포함한다. 예를 들어, 제1 소스 통계 값은 이전에 디코딩된 이진 시퀀스에 기초하여 결정될 수 있다. 방법은 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00108
, 또는
Figure 112020114622608-pct00109
, 또는 pt)을 결정하는 단계를 포함하고, 제1 소스 통계 값(예를 들어 at)은 결합된 소스 통계 값을 획득하기 위해 고정된 0이 아닌 값과 결합된다. 방법은 결합된 소스 통계 값에 기초하여, 이진 시퀀스의 인코딩된 표현을 디코딩된 이진 시퀀스로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 단계를 더 포함한다.
일 실시예는 비디오 컨텐츠를 인코딩하기 위한 방법을 생성하고, 방법은 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 인코딩하는 단계를 포함하고, 방법은 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분되는 비디오 프레임을 인코딩하는 단계를 포함한다. 방법은 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 2개의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 평가하는 단계를 포함한다. 방법은 이진 시퀀스(여기서, 이진 시퀀스는 변환 계수 또는 스펙트럼 계수, 파라미터 또는 임의의 다른 정보를 나타낼 수 있음)에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 이진 시퀀스의 인코딩된 표현을 제공하는 단계를 포함한다.
방법은, 예를 들어, 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여, 예를 들어, 이전에 인코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있고, 예를 들어, "카운터 변수" 또는 "카운터"로 지정될 수도 있는 제1 소스 통계 값(예를 들어, at)을 결정하는 단계를 포함한다. 제1 소스 통계 값은 예를 들어 이전에 인코딩된 이진 시퀀스에 기초하여 결정될 수 있다. 방법은 또한 제2 윈도우 크기(예를 들어, wb)를 사용하여, 예를 들어, 이전에 인코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있는 제2 소스 통계 값(예를 들어, bt)을 결정하는 단계를 포함한다. 제2 소스 통계 값은 예를 들어 이전에 인코딩된 이진 시퀀스에 기초하여 결정될 수 있다. 방법은 또한 제1 소스 통계 값(예를 들어, at)에 기초하여 및 제2 소스 통계 값(예를 들어, bt)에 기초하여 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00110
, 또는
Figure 112020114622608-pct00111
, 또는 pt)을 결정하는 단계를 포함한다. 방법은 결합된 소스 통계 값에 기초하여, 이진 시퀀스를 이진 시퀀스의 인코딩된 표현으로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 단계를 포함한다.
일 실시예는 비디오 컨텐츠를 인코딩하기 위한 방법을 생성하고, 방법은 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 인코딩하는 단계를 포함하고, 방법은 하나 이상의 슬라이스의 세트(바람직하게는 복수의 슬라이스)로 세분화된 비디오 프레임을 인코딩하는 단계를 포함한다. 방법은 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드(예를 들어, "인트라")를 사용하여 인코딩되는지, 또는 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 하나의 픽셀 블록(예를 들어, 단 하나의 픽셀 블록)에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드(예를 들어, "P")를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임(예를 들어, 이전에 인코딩된 프레임)의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드(예를 들어, "B")를 사용하여 인코딩되는지 여부를 나타내는 슬라이스 유형 정보(예를 들어, "슬라이스유형")를 제공하는 단계를 포함한다. 방법은 이진 시퀀스(여기서, 이진 시퀀스는 변환 계수, 또는 스펙트럼 계수, 파라미터 또는 임의의 다른 정보를 나타낼 수 있음)에 기초하여 (예를 들어, 이미지 컨텐츠의 변환 계수를 나타내는) 이진 시퀀스의 인코딩된 표현을 제공하는 단계를 포함한다. 방법은 예를 들어 윈도우 크기 변수에 의해 표현될 수 있는 제1 윈도우 크기(예를 들어, wa)를 사용하여, 예를 들어, 이전에 인코딩된 이진 값(xt-1, xt-2,...)의 빈도에 기초할 수 있고, "카운터 변수" 또는 "카운터"로 지정될 수도 있는 제1 소스 통계 값(예를 들어, at)을 결정하는 단계를 포함한다. 제1 소스 통계 값은 예를 들어 이전에 인코딩된 이진 시퀀스에 기초하여 결정될 수 있다. 방법은 결합된 소스 통계 값(예를 들어,
Figure 112020114622608-pct00112
, 또는
Figure 112020114622608-pct00113
, 또는 pt)을 결정하는 단계를 포함하고, 여기서 제1 소스 통계 값(예를 들어, at)은 결합된 소스 통계 값을 획득하기 위해 고정된 0이 아닌 값과 결합된다. 방법은 결합된 소스 통계 값에 기초하여, 이진 시퀀스를 이진 시퀀스의 인코딩된 표현으로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 단계를 포함한다.
본 명세서에 설명된 모든 방법은 대응하는 장치(예를 들어 비디오 인코더 및 비디오 디코더)와 관련하여 설명된 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 또는 조합으로 선택적으로 보충될 수 있다는 것이 주목된다. 또한, 장치는 방법과 함께 적응될 수 있다. 다시 말해, 장치 또는 기능 블록에 대한 설명은 또한 방법 또는 방법 단계의 설명에 대응한다.
본 발명에 따른 다른 실시예는 컴퓨터 프로그램으로서, 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 본 명세서에 설명된 방법 중 적어도 하나의 방법을 수행하기 위한 컴퓨터 프로그램을 생성한다.
본 발명에 따른 일 실시예는 비디오 컨텐츠를 나타내는 이진 시퀀스의 인코딩된 표현, 및 상기 이진 시퀀스의 인코딩된 표현에 기초하여 비디오 컨텐츠를 재구성하는 데 사용될 비디오 디코더의 구성을 나타내는 구성 정보를 포함하는 비디오 비트스트림을 생성한다. 구성 정보는, 이전에 디코딩된 이진 값의 빈도에 기초하고 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 데 사용되는 제1 소스 통계 값(예를 들어, at)을 결정하기 위해 비디오 디코더에서 사용될 윈도우 크기를 나타내는 윈도우 크기 정보(예를 들어, "ws_flag")를 포함하고, 하나 이상의 범위 값은 이진 시퀀스의 인코딩된 표현을 디코딩된 이진 시퀀스로 매핑하는 데 사용된다. 대안적으로 또는 추가적으로, 구성 정보는, 이전에 디코딩된 이진 값의 빈도에 기초하고 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 데 사용되는 제2 소스 통계 값(예를 들어, bt)을 결정하기 위해 비디오 디코더에 의해 사용될 윈도우 크기를 나타내는 윈도우 크기 정보(예를 들어, "ws_flag")를 포함한다.
비디오 스트림의 바람직한 실시예에서, 비디오 비트스트림은 또한 제1 소스 통계 값 및/또는 제2 소스 통계 값의 초기화 값을 나타내는 초기화 값 정보를 포함한다.
비디오 스트림의 바람직한 실시예에서, 비디오 비트스트림은 윈도우 크기가 (예를 들어, 슬라이스 내에서) 증가되거나 감소되어야 하는 것을 나타내는 윈도우 크기 변경 플래그(예를 들어, ctu_ws_flag)를 더 포함한다.
비디오 스트림은 본 명세서에 설명된 특징 및 상세 중 임의의 것에 의해 개별적으로 또는 조합으로 보충될 수 있다.
"윈도우 크기", "제1 윈도우 크기" 및 "제2 윈도우 크기"라는 용어는 본 설명 전반에 걸쳐 사용된다는 것이 주목된다. 그러나, 윈도우 크기 대신에 추정 파라미터가 임의의 실시예에서 선택적으로 사용될 수 있다는 것이 주목된다. 제1 윈도우 크기 대신에, 제1 추정 파라미터가 임의의 실시예에서 선택적으로 사용될 수 있다. 제2 윈도우 크기 대신에, 제2 추정 파라미터가 임의의 실시예에서 선택적으로 사용될 수 있다.
다시 말해, 제1 추정 파라미터는 제1 윈도우 크기일 수 있고, 제2 추정 파라미터는 제2 윈도우 크기일 수 있다.
제1 추정 파라미터는 대안적으로, 제1 소스 통계 값이 디코딩된 이진 시퀀스에서 디코딩된 이진 심볼(또는 인코더의 경우 이전에 인코딩된 이진 값)의 빈도 변화를 따르는 속도를 결정하는 제1 관성 파라미터일 수 있고, 제2 추정 파라미터는 대안적으로 제2 소스 통계 값이 디코딩된 이진 시퀀스에서 디코딩된 이진 심볼(또는 인코더의 경우 이전에 인코딩된 이진 값)의 빈도 변화를 따르는 속도를 결정하는 제2 관성 파라미터일 수 있다.
또한, 소스 통계 값을 결정하기 위한 다른 개념이 임의의 실시예에서 선택적으로 사용될 수 있다.
예를 들어, 비디오 디코더는 표 룩업(table lookup)을 사용하여 제1 소스 통계 값을 결정하도록 구성될 수 있으며, 표 엔트리는 이전에 결정된 소스 통계 값, 이전에 디코딩된 이진 값, 및 제1 추정 파라미터에 따라 선택된다. 대안적으로 또는 추가적으로, 비디오 디코더는 표 룩업을 사용하여 제2 소스 통계 값을 결정하도록 구성되고, 표 엔트리는 이전에 결정된 소스 통계 값, 이전에 디코딩된 이진 값, 및 제2 추정 파라미터에 따라 선택된다.
유사한 개념이 비디오 인코더에서 선택적으로 사용될 수 있고, 이전에 인코딩된 이진 값은 이전에 디코딩된 이진 값의 역할을 할 수 있다.
본 발명에 따른 실시예는 이후 첨부된 도면을 참조하여 설명된다.
도 1은 본 발명의 일 실시예에 따른 비디오 디코더의 개략적인 블록도를 도시하고;
도 2는 본 발명의 다른 실시예에 따른 비디오 디코더의 개략적인 블록도를 도시하고;
도 3은 본 발명의 일 실시예에 따른 비디오 인코더의 개략적인 블록도를 도시하고;
표 1은 8 비트 변수(wspair)의 비트마스크(bitmask)의 표현을 기재하고;
표 2는 wspair 값의 할당을 나타내는 그래픽 표현을 기재하고;
표 3은 ws_flag에 따라 wspair 값의 할당을 나타내는 그래픽 표현을 기재하고;
도 4는 본 발명의 일 실시예에 따른 비디오 디코딩 방법의 흐름도를 도시하고;
도 5는 본 발명의 일 실시예에 따른 비디오 인코딩 방법의 흐름도를 도시하고; 그리고
도 6은 본 발명의 일 실시예에 따른 비트스트림의 그래픽 표현을 도시한다.
1) 도 1에 따른 실시예
도 1은 본 발명의 일 실시예에 따른 비디오 디코더(100)의 개략적인 블록도를 도시한다.
비디오 디코더(100)는 인코딩된 비디오 정보를 수신하고 이에 기초하여 디코딩된 비디오 정보(또는 디코딩된 비디오 컨텐츠)를 제공하도록 구성된다.
(비디오 비트스트림으로 간주될 수 있는) 인코딩된 비디오 정보(110)는 예를 들어, 슬라이스 유형 정보를 포함할 수 있고, 또한 이진 시퀀스의 인코딩된 표현을 포함할 수 있다. 선택적으로, 인코딩된 비디오 정보(110)는 본 발명에 필수적이지 않은 추가 정보를 포함할 수 있다.
일반적으로 말하면, 비디오 디코더는 복수의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 디코딩하도록 구성되고, 비디오 디코더는 특히 하나 이상의 슬라이스의 세트로 (바람직하게는 복수의 슬라이스로) 세분화되는 비디오 프레임을 디코딩하도록 구성된다. 비디오 디코더는 또한 인코딩된 비디오 정보(110)에 포함된 슬라이스 유형 정보를 평가하도록 구성되고, 이 슬라이스 유형 정보는 (예를 들어 "비디오 재구성" 블록(180)에 의해 수행될 수 있는) 슬라이스의 디코딩 동작 모드를 선택하기 위해 슬라이스가 이전 프레임의 비디오 컨텐츠에 기초한 현재 프레임의 비디오 컨텐츠의 예측이 없는 독립 코딩 모드를 사용하여 인코딩되는지, 또는 이전 프레임의 하나의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 단일 예측 모드를 사용하여 인코딩되는지, 또는 하나 이상의 이전 프레임의 2개 이상의 픽셀 블록에 기초한 픽셀 블록의 예측이 있는 이중 예측 모드를 사용하여 인코딩되는지 여부를 나타낸다.
비디오 디코더(100)는 예를 들어, 인코딩된 비디오 정보(110)에 포함된 이진 시퀀스의 인코딩된 표현에 기초하여 ("비디오 재구성" 블록에 의해 사용되기 위한) 디코딩된 이진 시퀀스(122)를 제공하도록 구성된 산술 디코더(120)를 포함한다. 산술 디코더는 바람직하게는 제1 소스 통계 값 결정 블록(130) 및 제2 소스 통계 값 결정 블록(140)을 포함한다. 따라서, 산술 디코더(120)는 제1 윈도우 크기를 사용하여 제1 소스 통계 값(132)을 결정하고, 제2 윈도우 크기를 사용하여 제2 소스 통계 값(142)을 결정하도록 구성된다. 산술 디코더는 또한 바람직하게는 결합기(150)를 포함한다. 따라서, 산술 디코더는 제1 소스 통계 값에 기초하여 그리고 제2 소스 통계 값에 기초하여 결합된 소스 통계 값(152)을 결정하도록 구성된다. 더욱이, 산술 디코더(120)는 바람직하게 범위 값 결정 블록(160)을 포함한다. 따라서, 산술 디코더는 결합된 소스 통계 값(152)에 기초하여, (인코딩된 비디오 정보(110)에 포함된) 이진 시퀀스의 인코딩된 표현을 (비디오 재구성 블록(180)에 의해 사용되는) 디코딩된 이진 시퀀스(122)로 매핑하는 데 사용되는, 간격 세분화를 위한 하나 이상의 범위 값을 결정하도록 구성될 수 있다.
바람직하게는, 산술 디코더(120)는 또한, 범위 값 결정 블록(160)으로부터 하나 이상의 범위 값(162)을 수신하고, 이 범위 값을 사용하여 인코딩된 비디오 정보(110)에 포함된 인코딩된 이진 시퀀스로부터 디코딩된 이진 시퀀스(122)를 도출하는 산술 디코딩 코어(170)(예를 들어, 블록 또는 유닛일 수 있음)를 포함한다.
더욱이, 비디오 디코더는 예를 들어, 디코딩된 이진 시퀀스(122)를 수신하고 (가능하게는 슬라이스 유형 정보와 같은 추가 제어 정보를 고려하여) 디코딩된 이진 시퀀스(122)에 기초하여 디코딩된 비디오 컨텐츠(112)를 제공하는 비디오 재구성 블록(또는 유닛)(180)을 포함할 수 있다.
결론적으로, 산술 디코더(100)는 인코딩된 비디오 정보(110)를 수신하고 이진 시퀀스의 인코딩된 표현의 산술 디코딩을 수행하여 디코딩된 이진 시퀀스(122)를 도출한다. 산술 디코딩은 디코딩된 이진 시퀀스(122)에서 이진 값의 확률에 관한 지식을 이용한다. 디코딩된 이진 시퀀스(122) 내의 이진 값의 확률(또는 추정된 확률)에 관한 이러한 지식은 간격 세분화를 규정하는 범위 값(162)에 의존함으로써 산술 디코딩 코어(170)에 의해 고려된다. 간단히 말하면, 산술 디코딩 코어는 범위 값(162)을 사용하여 (예를 들어, 0과 1 사이 또는 정수 값 범위에 걸쳐) 상이한 간격을 규정할 수 있다. 산술 디코딩 코어는 예를 들어 이진 시퀀스의 인코딩된 표현을, 범위 값을 사용하여 규정된 간격 중 하나의 간격에 있는 숫자의 표현으로 해석할 수 있다. 간격들 중에서 이진 시퀀스의 인코딩된 표현에 의해 표현된 숫자가 놓여 있는 간격을 인식함으로써, 산술 디코딩 코어(170)는 이진 시퀀스의 인코딩된 표현을 사용하여 인코딩된 비트 또는 비트 시퀀스를 결정할 수 있다.
그러나, 산술 디코딩 코어(170)에 관한 이러한 설명은 단지 매우 간단하고 일반적인 설명인 것으로 고려되어야 한다는 것이 주목된다. 산술 디코딩 코어에 관한 상세는 예를 들어 표준 H.264 및 H.265에서 볼 수 있다. 그러나, (산술 디코딩 코어를 동작시키기 위한) 다른 개념도 또한 문헌에서 볼 수 있으며, 산술 디코딩 코어에 관한 상세는 본 발명과 특별히 관련이 없다.
그러나, (비트레이트 효율을 높일 수 있는) 적합한 범위 값을 획득하기 위해, 산술 디코더(120)(또는 일반적으로 말하면, 비디오 디코더)는 상이한 윈도우 크기를 사용하여 2개의 소스 통계 값(132, 142)을 결정한다(여기서 "윈도우 크기"는 디코딩된 이진 시퀀스(122)의 복수의 디코딩된 이진 값에 걸친 평활도를 규정한다). 또한, 산술 디코딩 코어(170)에 제공되는 범위 값의 신뢰성을 높이기 위해, 제1 소스 통계 값(132)과 제2 소스 통계 값(142)은 결합된 소스 통계 값(152)으로 결합된다.
따라서, 비디오 디코더(100)는 산술 디코딩 코어(170)에 의해 사용되는 범위 값은 비트 값(예를 들어, 디코딩된 이진 시퀀스(122) 내 비트 값 "0" 및 "1")의 실제 확률에 잘 적응되기 때문에 높은 효율을 제공한다고 말할 수 있다.
추가적인 언급으로, 비디오 디코더(100)도 수정될 수 있다는 것이 주목된다. 대안적인 구현에서, 제2 소스 통계 값 결정 블록(140)은 (디코딩된 이진 시퀀스와는 독립적일 수 있지만 하나 이상의 파라미터에 의존할 수 있는) 고정된 값을 제공하는 것으로 대체될 수 있다. 이 경우, 산술 디코더는 결합된 소스 통계 값(152)을 획득하기 위해 제1 소스 통계 값(132)을 고정된 0이 아닌 값과 결합하도록 구성된다. 이러한 단순화는 일부 경우에 우수한 결과를 가져오고, 예를 들어, 결합된 소스 통계 값이 부적절하게 크게 변동되는 것을 피할 수 있는 것으로 밝혀졌다. 다시 말해, 결합된 소스 통계 값을 결정하는 데 고정된 기여도를 도입함으로써 결합된 소스 통계 값이 더 이상 이 고정된 값으로부터 너무 크게 벗어나지 않는 것을 달성할 수 있다. 따라서, 공교롭게도, 디코딩된 이진 시퀀스(122) 내에 동일한 비트 값의 더 긴 시퀀스가 있는 경우, 디코딩된 이진 시퀀스의 통계에 대한 일부 "통찰력(hindsight)"을 사용하면 코딩 효율이 크게 저하되는 것을 방지할 수 있다.
추가적인 언급으로서, 산술 디코더(및 산술 디코더의 개별 블록)의 기능은 일반적으로 전체적으로 비디오 디코더의 기능으로도 고려될 수 있다는 것이 주목된다. 다시 말해, 산술 디코더의 기능으로서 본 명세서에 설명된 기능은 비디오 디코더의 다른 블록에 의해 수행될 수도 있다.
더욱이, 도 1에 따른 비디오 디코더(100)는 본 명세서에 설명된 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 그리고 조합으로 보충될 수 있다는 것이 주목된다.
2) 도 2에 따른 비디오 디코더
도 2는 본 발명의 일 실시예에 따른 비디오 디코더(200)의 개략적인 블록도를 도시한다.
비디오 디코더(200)는 인코딩된 비디오 정보(210)(예를 들어, 비디오 비트스트림)를 수신하고 이에 기초하여 디코딩된 비디오 컨텐츠(212)(예를 들어, 비디오 프레임의 시퀀스)를 제공하도록 구성된다. 인코딩된 비디오 정보(210)는 예를 들어 본 명세서에 설명된 슬라이스 유형 정보를 포함할 수 있다. 인코딩된 비디오 정보(210)는 또한 제어 정보로 간주될 수 있는 구성 정보를 더 포함할 수 있다. 더욱이, 인코딩된 비디오 정보(210)는 이진 시퀀스의 인코딩된 표현을 포함할 수 있다.
도 2에서, 비디오 디코더(200)의 2개의 주요 블록, 즉 산술 디코더(220) 및 비디오 재구성 블록(280)이 도시되어 있다. 그러나 비디오 디코더의 기능 분포는 고정된 블록 구조에 구속되지 않고, 넓은 범위에 걸쳐 수정될 수도 있다는 것이 주목된다. 또한, 비디오 디코더의 실제 구현은 이 기술 분야에 통상의 지식을 가진 자에게 잘 알려진 추가 블록 및/또는 기능을 가질 수 있다는 것이 주목된다.
산술 디코더(220)는 이진 시퀀스의 인코딩된 표현(211)을 수신한다. 그러나 산술 디코더(또는 산술 디코더 외부에 있을 수 있는 제어 블록)은 또한 슬라이스 유형 정보 및 구성 정보(또는 제어 정보)를 수신한다. 특히, 산술 디코더(220)는 이진 시퀀스의 인코딩된 표현(211)에 기초하고 그리고 슬라이스 유형 정보 및 구성 정보 또는 제어 정보의 일부 또는 전부를 고려하여 디코딩된 이진 시퀀스(222)를 비디오 재구성 블록(280)에 제공한다.
이하에서는, 산술 디코더(220)의 기능이 더 상세히 설명될 것이다. 산술 디코더는 산술 디코딩 코어(270)를 포함하고, 이 산술 디코딩 코어는 이진 시퀀스의 인코딩된 표현(211)을 수신하고 디코딩된 이진 시퀀스(222)를 제공한다. 산술 디코딩 코어는 이진 시퀀스의 인코딩된 표현(211)에 의해 표현되는 디코딩된 이진 시퀀스(222)의 비트 값을 결정한다. 이를 위해, 산술 디코딩 코어(270)는 이진 시퀀스의 인코딩된 표현(211)에 의해 표현된 숫자가 놓인 숫자 범위의 간격을 점검한다. 복수의 (적어도 2개의) 간격 중에서, 이진 시퀀스의 인코딩된 표현(211)에 의해 표현된 숫자가 놓인 간격을 결정한 바에 따라 디코딩된 이진 시퀀스(222)의 특정 비트 값 또는 비트 값의 그룹이 인식된다.
디코딩된 이진 시퀀스(222)를 도출하기 위해, 산술 디코딩 코어는 일반적으로 비트 값의 확률에 어느 정도 대응하는 간격에 관한 정보를 수신한다. 이 경우, 산술 디코딩 코어(270)는 간격 세분화를 위해 사용되는 "범위 값"(262)(즉, 산술 디코딩 코어(270)에 의해 사용될 숫자 범위의 간격을 규정하는 역할을 하는 범위 값(162))을 수신한다. 특히, 산술 디코딩 코어(270)는 예를 들어, 표준 H.264에 따른 비디오 인코더/디코더 또는 표준 H.265에 따른 비디오 인코더/디코더에서 사용되는 산술 디코딩 코어와 유사하거나 동일할 수 있다는 것이 주목된다. 그러나, 산술 디코딩 코어(270)를 실현하기 위한 상이한 접근법이 또한 사용될 수 있다는 것이 주목된다.
위의 논의를 고려하여, 산술 디코딩 코어(270)를 위한 간격 세분화를 규정하는 범위 값(262)을 제공하는 것이 산술 디코더(220)의 중요한 기능이라는 것이 명백해진다. 일반적으로 말하면, 산술 디코더(220)는 예를 들어, 초기화 값, "윈도우 크기", "윈도우 크기 적응" 등과 같은 파라미터를 규정하는 일부 제어 정보를 고려하여 디코딩된 이진 시퀀스(222)의 이전에 디코딩된 이진 값으로부터 이러한 범위 값(262)을 도출한다.
산술 디코더(200)에서, 2개의 소스 통계 값 결정 블록(또는 유닛)(230, 240)이 사용된다. 예를 들어, 제1 소스 통계 값 결정 블록(230)은 디코딩된 이진 시퀀스(222)(또한 xt로 지정됨)의 하나 이상의 이전에 디코딩된 이진 값을 수신하고, 이에 기초하여 제1 소스 통계 값(232)을 제공한다. 제1 소스 통계 값 결정 블록은 예를 들어 소스 통계 값(232)을 나타내는 데 사용되는 비트 수를 규정하는 상수 또는 변수(BITSa), 및 소스 통계 값 결정 블록(230)에 의해 사용될 "윈도우 크기"를 규정하는 상수 또는 변수(na)와 같은 일부 구성 정보를 수신할 수 있다. 예를 들어, 제1 소스 통계 값 결정 블록(230)은 제1 소스 통계 값(232)을 재귀적으로 결정할 수 있고, 여기서 윈도우 크기(na)는 제1 소스 통계 값(232)을 결정할 때 디코딩된 이진 시퀀스(222)의 가장 최근에 디코딩된 이진 값의 가중치를 결정한다.
제1 소스 통계 값 결정 블록(230)의 기능은 예를 들어, 일부 "무한 임펄스 응답" 특성을 도입하는 재귀 알고리즘이 사용되는 것을 제외하고는 특정 윈도우 크기를 갖는 슬라이딩 평균을 형성하는 것과 유사하다. 따라서, 제1 소스 통계 값(132)은 정확히 슬라이딩 윈도우 합산 연산 또는 슬라이딩 윈도우 평균 연산의 결과를 나타내는 것이 아니고 결과가 매우 유사하기 때문에 "가상 슬라이딩 윈도우" 연산으로 간주되어야 한다.
더욱이, 제2 소스 통계 값 결정 블록(240)은 제1 소스 통계 값 결정 블록(230)과 비교할 때 유사한 연산을 수행한다. 그러나, 제2 소스 통계 값 결정 블록(240)은 일반적으로 상이한 파라미터(예를 들어, 상이한 윈도우 길이(nb) 및/또는 상이한 비트 수 파라미터(BITSb))를 사용하고, 결과적으로 일반적으로 제1 소스 통계 값(232)과 다른 제2 소스 통계 값(242)을 제공한다. 예를 들어, 소스 통계 값(232, 242) 중 하나는 단기간(또는 더 단기간) 평균 소스 통계 값일 수 있고, 소스 통계 값(232, 242) 중 하나는 장기간(또는 더 장기간) 평균 소스 통계 값일 수 있다.
소스 통계 값 결정 블록(230, 240)은 예를 들어 아래에서 상세히 논의되는 수식(3) 및 수식(4)에 의해 규정된 기능을 수행할 수 있다는 것이 주목된다. 대안적으로, 소스 통계 값 결정 블록(230, 240)은 또한 아래에서 논의되는 수식(5)에 의해 규정된 기능을 수행할 수 있다. 더욱이, 일부 실시예에서 소스 통계 값 결정 블록(230, 240)에서 상이한 연산 규칙이 또한 사용될 수 있다는 것이 주목된다.
산술 디코더(220)는 제1 소스 통계 값(232) 및 제2 소스 통계 값(242)을 수신하도록 구성된 결합된 소스 통계 값 결정 블록(또는 유닛)(250)을 더 포함한다. 소스 통계 값 결합 블록(250)은 이에 기초하여 결합된 소스 통계 값(252)을 제공한다. 예를 들어, 소스 통계 값 결합 블록(250)은 제1 소스 통계 값(232)과 제2 소스 통계 값(242)의 합 또는 평균을 형성하여, 결합된 소스 통계 값(252)을 획득할 수 있다.
그러나, 소스 통계 값 결합 블록(250)은 또한 결합된 소스 통계 값(252)을 도출할 때 제1 소스 통계 값(232)과 제2 소스 통계 값(242)에 상이한 가중치를 적용할 수 있으며, 여기서 상이한 가중치는 심지어 슬라이스 내에서도 변할 수 있고 또는 다른 슬라이스 간에도 변할 수 있다.
예를 들어, 소스 통계 값 결합 블록(250)은 아래에 언급된 수식(6)에 의해 규정된 기능을 수행하거나 또는 아래에 언급된 수식(10) 및 수식(11)에 의해 규정된 기능을 수행하거나 또는 아래에 언급된 수식(16)에 의해 규정된 기능을 수행할 수 있다. 그러나 이 기능은 또한 변할 수 있다.
예를 들어, 하나의 (대안적인) 실시예에서, 소스 통계 값 결합 블록(250)은 제1 통계 값 중 하나만을 고정된 값과 결합하여 결합된 소스 통계 값(252)을 획득한다. 이러한 개념은 결합된 소스 통계 값(252)이 디코딩된 이진 시퀀스(222) 내에서 이진 값의 예상 확률로부터 너무 많이 벗어나는 것을 방지하는 데 유리할 수 있다.
산술 디코더(220)는 결합된 소스 통계 값(252)에 기초하여 (산술 디코딩 코어(270)에 제공될) 간격 세분화를 위한 범위 값(262)을 도출하도록 구성된다. 이 처리 단계는 예를 들어 "범위 값 결정"으로 고려될 수 있다. 예를 들어, 범위 값 결정은, 결합된 소스 통계 값(252)을 수신하고 이에 기초하여 확률 값 또는 상태 인덱스 값을 제공하는 선택 사항인 값 처리부(266)를 포함할 수 있다. 값 처리부(266)는 예를 들어, 결합된 소스 통계 값(252)의 값의 범위를 0과 1 사이의 범위, 또는 0과 0.5 사이의 범위로 또는 정수 인덱스 값으로 매핑할 수 있다. 예를 들어, 값 처리부(266)는 아래에 설명된 수식(7)에 따라, 또는 아래에 설명된 수식(8), 수식(9)에 따라, 또는 아래에 설명된 수식(12), 수식(13)에 따라, 또는 아래에 설명된 수식(14)에 따라 수행될 수 있다.
선택 사항으로, 값 처리부(266)는 (예를 들어, 디코딩된 이진 시퀀스(222)의) 그 다음 디코딩된 값이 "1"의 값을 취할 가능성이 더 높은지 또는 "0"의 값을 취할 가능성이 더 높은지 여부를 나타내는 이진 정보일 수 있는 정보(267)를 제공할 수 있다. 선택 사항으로, 산술 디코더(또는 범위 값 결정)는 매핑 표(269)를 포함할 수 있다. 매핑 표(269)는 예를 들어 표 엔트리를 지정하는 인덱스 값(예를 들어, pStateIdx)을 수신할 수 있다. 따라서, 매핑 표(269)는 인덱스 값(예를 들어 pStateIdx)에 의해 지정된 상기 표 엔트리에 대응하는 하나 이상의 범위 값(262)을 제공할 수 있다. 따라서, "상태 인덱스 값"(예를 들어, pStateIdx)을 도출하고 상태 인덱스 값에 기초하여 매핑 표를 평가함으로써 결합된 소스 통계 값(252)에 기초하여 간격 세분화를 위한 하나 이상의 범위 값이 제공될 수 있다.
매핑 표(269)는 예를 들어, 표준 H.264 또는 표준 H.265에서 설명된 매핑 표와 동일한 구조를 가질 수 있다. 그러나 선택 사항으로, 매핑 표의 내용은 비디오 디코더의 특정 상세에 맞게 적응될 수 있다. 특히, 매핑 표의 엔트리는 특정 비디오 디코더에서 예상되는 통계 속성에 맞게 적응될 수 있다.
산술 디코더(또는 일반적으로 말하면, 비디오 디코더)는 또한, 제어 정보 또는 구성 정보를 수신할 수 있고 이에 기초하여 범위 값을 제공하기 위해 사용되는 파라미터(및 가능하게는 또한 다른 파라미터, 예를 들어, 산술 디코딩 코어(270)에 의해 사용되는 추가 파라미터)를 조절할 수 있는 제어 블록(290)을 포함한다. 예를 들어, 제어 블록(290)은 인코딩된 비디오 정보(210)에 포함될 수 있는 슬라이스 유형 정보, "cabac init flag", "ws_flag" 및 "ctu_ws_flag" 중 하나 이상을 수신할 수 있다.
더욱이, 제어(290)는 예를 들어 제어 정보에 따라 윈도우 크기 파라미터(na, nb) 및 비트 크기 파라미터(BITSa, BITSb)를 조절할 수 있다. 특히, 제어 블록(290)은 또한 현재 컨텍스트 모델을 고려할 수 있다. 이 문제와 관련하여, 디코딩될 디코딩된 이진 시퀀스(222)의 각 비트(또는 비트 그룹)에 대해 사용될 컨텍스트 모델을 결정할 수 있다는 것이 주목된다. 예를 들어, 사용될 컨텍스트 모델을 결정하는 것은 각각의 비트(또는 비트 그룹)에 의해 표현되는 정보의 유형(디코딩 파라미터, 변환 계수 등)에 기초할 수 있다. 예를 들어, 제어 블록(290)은 디코딩된 이진 시퀀스(222)의 구문을 인식하여, 그 다음 디코딩될 구문 요소(또는 구문 요소 중 어느 부분, 예를 들어, 최상위 비트 또는 최하위 비트 등)를 인식하도록 구성될 수 있다. 따라서, 상이한 컨텍스트 모델 간에 선택이 이루어질 수 있다. 또한, 윈도우 크기 파라미터 및/또는 비트 크기 파라미터 및/또는 임의의 다른 파라미터가 컨텍스트 모델에 따라 선택될 수 있다는 것이 주목된다. 또한, 소스 통계 값(232, 242) 또는 결합된 소스 통계 값(252)은 특정 컨텍스트 모델과 연관될 수 있고, 이에 따라 상이한 소스 통계 값 또는 결합된 소스 통계 값이 상이한 컨텍스트 모델에 이용 가능할 수 있다는 것이 주목된다. 예를 들어, 각각의 컨텍스트 모델을 사용하여 디코딩된 디코딩된 이진 시퀀스(222)의 디코딩된 이진 값에 기초하여 특정 컨텍스트 모델과 연관된 소스 통계 값이 선택적으로 제공될 수 있다. 다시 말해, 상이한 컨텍스트 모델에서는 파라미터(na, nb, BITSa, BITSb) 등을 별도로 독립적으로 처리하고 별도로 (가능하면 독립적으로) 결정하는 것이 이루어질 수 있다.
제어 유닛(290)의 기능과 관련하여, 제어 유닛은 아래에 설명된 메커니즘에 따라 예를 들어 파라미터(na, nb, BITSa, BITSb)를 결정할 수 있다는 것이 주목된다. 예를 들어, 윈도우 크기 파라미터(na, nb)는 슬라이스 유형 정보에 따라 및/또는 cabac init flag에 따라 및/또는 ws_flag에 따라 및/또는 ctu_ws_flag에 따라 선택될 수 있다. 또한, 비트 크기 파라미터(BITSa, BITSb)는 일부 실시예에서 일부 구성 정보에 따라 선택될 수 있다. 그러나, 다른 실시예에서, 비트 크기 파라미터는 고정될 수 있다. 파라미터를 조절하기 위한 메커니즘과 관련하여, 예를 들어 아래 논의를 참조하면 된다.
이제 비디오 재구성 블록(280)을 설명하면, 비디오 재구성 블록(280)은 일반적으로 디코딩된 이진 시퀀스(222) 및 또한 구성 정보의 적어도 일부 요소를 수신한다는 것이 주목된다. 예를 들어, 비디오 재구성 블록(280)은 디코딩된 이진 시퀀스(222)에 기초하여 정수 파라미터 및/또는 부동 소수점 파라미터 및/또는 이미지 데이터를 재구성할 수 있다. 예를 들어, 디코딩된 이진 시퀀스의 특정 비트 또는 부분을 정수 파라미터로 또는 부동 소수점 파라미터로 또는 이미지 데이터(예를 들어, 변환 계수 등)로 매핑하는 것을 규정하는 매핑 규칙이 있을 수 있다. 따라서, 비디오 재구성 블록(280)은 디코딩된 이진 시퀀스(222)로부터 비디오 프레임을 재구성하는 데 사용되는 정보를 재구성한다. 그런 다음 비디오 재구성 블록은 (디코딩된 이진 시퀀스(222)로부터 도출된) 재구성된 정보에 기초하여 이미지 정보를 생성할 수 있다.
예를 들어, 비디오 재구성 블록(280)은 표준 H.264 또는 표준 H.265에서 설명된 것과 동일한 기능을 포함할 수 있다. 그러나, 디코딩된 이진 시퀀스(및 가능하게는 추가 구성 정보 또는 제어 정보)에 기초하여 디코딩된 비디오 컨텐츠를 제공하도록 적응되는 비디오 재구성을 위해 다른 접근법이 또한 사용될 수 있다. 따라서, 비디오 재구성 블록(280)은 비디오 프레임의 시퀀스로서의 형태를 취할 수 있는 디코딩된 비디오 컨텐츠(212)를 제공한다.
결론적으로, 본 발명의 일 실시예에 따른 비디오 디코더의 개요가 제공되었다. 그러나, 기능 블록에 대해 (예를 들어, 소스 통계 값 결정 블록(230, 240)에 대해, 소스 통계 값 결합 블록(250)에 대해, 값 처리 블록(266)에 대해, 매핑 표(269)에 대해 및 산술 디코딩 코어(270)에 대해) 상이한 구현이 존재한다는 것이 주목된다. 또한, 비디오 재구성 블록(280) 및 제어 블록(290)에 대해 상이한 구현이 가능하다.
그러나, 또한 본 명세서에 설명된 기능 블록은 본 명세서에 개시된 특징, 기능 및 상세 중 임의의 것에 의해 전체적으로 보충될 수 있다는 것이 주목된다. 또한, 본 명세서에 개시된 특징, 기능 및 상세는 개별적으로 또한 조합으로 도입될 수 있고, 이에 따라 비디오 디코더(200)의 기능을 확장할 수 있다는 것이 주목된다.
3) 도 3에 따른 비디오 인코더
도 3은 본 발명의 일 실시예에 따른 비디오 인코더(300)의 개략적인 블록도를 도시한다. 비디오 인코더(300)는 비디오 컨텐츠(310)를 수신하고 이에 기초하여 인코딩된 비디오 정보(예를 들어, 비디오 비트스트림)(312)를 제공하도록 구성된다.
비디오 인코더(300)는, 비디오 컨텐츠(310)를 수신하고 이에 기초하여 비디오 컨텐츠(310)를 나타내는 이진 시퀀스(322)를 제공하도록 구성된 비디오 이진 시퀀스 제공 블록(380)을 포함한다. 예를 들어, 비디오 이진 시퀀스 제공 블록(380)은 표준 H.264에 따른 비디오 인코더에서와 같이 또는 표준 H.265에 따른 비디오 인코더에서와 같이 수행될 수 있다. 그러나 비디오 이진 시퀀스를 제공하기 위한 다른 접근법도 사용될 수 있다. 또한, 비디오 이진 시퀀스 제공 블록(380)은 예를 들어 정수 값 또는 부동 소수점 파라미터 또는 이미지 데이터(예를 들어, 변환 계수와 같은 것)를 이진 값의 시퀀스로 매핑하는 것을 포함할 수 있다는 것이 주목된다.
더욱이, 산술 인코더(320)는 이진 시퀀스(322)를 수신하고 이에 기초하여 이진 시퀀스(322)의 인코딩된 표현(311)을 제공할 수 있다. 일반적으로 말하면, 산술 인코더(320)는 이진 시퀀스(322)의 효율적으로 압축된 표현(즉, 이진 시퀀스의 인코딩된 표현(311))을 제공하기 위해 이진 시퀀스(322) 내의 이진 값의 확률에 관한 지식(또는 정보)을 이용하도록 구성된다.
산술 인코더(320)는 예를 들어, 이진 시퀀스(322)를 수신하고 이에 기초하여 이진 시퀀스의 인코딩된 표현(311)을 제공하는 산술 인코딩 코어(370)를 포함할 수 있다. 산술 인코딩 코어(370)는 예를 들어, 비트 또는 비트 그룹을 나타내는 (인코딩된 표현(311)에 포함된) 적절한 코드워드를 찾을 수 있도록 하기 위해 이진 시퀀스(322)에서 비트(또는 비트 그룹)의 확률에 관한 일부 지식을 요구할 수 있다. 바람직하게는, 산술 인코딩 코어(370)는 간격의 세분화를 나타내는 범위 값(362)을 수신한다. 범위 값(362)은 비디오 디코더(200)에 의해(또는 이의 산술 디코딩 코어(270))에 의해 사용될 간격의 세분화를 나타낼 수 있지만, 산술 인코딩 코어(370)는 대응하는 비디오 디코더에 의해 디코딩 가능한 이진 시퀀스의 인코딩된 표현(311)을 제공해야 하기 때문에 이 정보는 자연히 또한 산술 인코딩 코어(370)에도 유용할 수 있다.
따라서, 산술 인코더(320)는, 비디오 컨텐츠를 나타내는 이진 시퀀스(322)에 기초하고 그리고 또한 윈도우 크기 정보(na, nb) 또는 비트 크기 정보(BITSa, BITSb)와 같은 일부 파라미터에 기초하여 간격 세분화를 위한 범위 값(362)을 도출하도록 구성될 수 있다. 범위 값(362)을 도출하는 것은 디코딩된 이진 시퀀스(222)가 아니라 이진 시퀀스(322)를 평가하는 것을 제외하고는 범위 값(162, 262)을 도출하는 것과 실질적으로 동일하다는 것이 주목된다. 다시 말해, 이진 시퀀스(322)에 기초하여 범위 값(362)을 도출할 때 이전에 디코딩된 이진 값이 아니라 이전에 인코딩된 이진 값이 사용된다.
알 수 있는 바와 같이, 비디오 인코더의 산술 인코더(320)는 (이전에 디코딩된 이진 값에 기초하는 것이 아니라) 이전에 인코딩된 이진 값에 기초하여 제1 소스 통계 값(332) 및 제2 소스 통계 값(342)을 제공하는 것을 제외하고는 소스 통계 값 결정 블록(130, 140, 230, 240)과 실질적으로 동일한 소스 통계 값 결정 블록(330, 340)을 포함한다. 소스 통계 값 결정기(330, 340)는 예를 들어 파라미터(na, nb, BITSa 및 BITSb)를 사용할 수 있다. 더욱이, 소스 통계 결정기(330, 340)의 기능은 예를 들어, 아래에 설명된 수식(3) 및 수식(4)에 의해 또는 아래에 설명된 수식(5)에 의해 규정될 수 있다.
더욱이, 산술 인코더(320)는 또한 소스 통계 값 결합 블록(150) 또는 소스 통계 값 결합 블록(250)에 대응할 수 있는 소스 통계 값 결합 블록(350)을 포함한다. 따라서, 결합된 소스 통계 값(352)이 제공되며, 여기서 소스 통계 값 결합 블록(350)의 기능은 예를 들어, 수식(6) 또는 수식(10) 및 수식(11) 또는 수식(16)을 따를 수 있다.
산술 인코더(320)는 또한 도 2에 도시된 값 처리부(266)에 대응할 수 있는 선택 사항인 값 처리부(366)를 포함한다. 값 처리부(366)는 결합된 소스 통계 값(352)을 수신할 수 있고, 예를 들어, 가능성이 가장 높은 이진 값에 관한 정보(367) 및/또는 확률 정보 또는 상태 인덱스 정보(368)를 제공할 수 있다. 산술 인코더(320)는 또한 도 2를 참조하여 설명된 매핑 표(269)에 대응할 수 있는 매핑 표(369)를 포함한다. 따라서, 간격 세분화를 위한 하나 이상의 범위 값(362)은 확률 값 또는 상태 인덱스(368)를 사용하여 매핑 표(369)를 평가하는 것에 의해 제공될 수 있다.
결론적으로, 산술 인코더(320)는 산술 디코더(220)가 디코딩된 이진 시퀀스(222)에 기초하여 범위 값(262)을 선택하는 것과 동일한 방식으로 이진 시퀀스(322)에 기초하여 범위 값(362)을 선택할 수 있다. 따라서, 비디오 인코더(300)의 산술 인코더(320)와 비디오 디코더(200)의 산술 디코더(220) 사이의 동기화는, 디코딩 에러가 존재하지 않고, 비디오 인코더 측과 비디오 디코더 측에서 동일한 파라미터가 사용된다면 달성될 수 있다.
더욱이, 산술 인코더(320) 또는 일반적으로 말하면 비디오 인코더(300)는 파라미터(na, nb, BITSa, BITSb) 및 필요할 수 있는 임의의 다른 파라미터를 결정할 수 있는 제어 블록(390)을 포함하는 것이 주목된다. 예를 들어, 제어 블록(390)은 파라미터에 관해 결정하기 위해 일부 경험적 메커니즘을 사용할 수 있다. 대안적으로(또는 추가적으로), 제어 블록(390)은 또한 가능한 가장 낮은 비트 레이트를 초래하는 (또는 임의의 다른 최적화 기준을 충족시키는) 파라미터의 결합을 분석 결정할 수 있다.
더욱이, 비디오 인코더(300)는 예를 들어 인코딩된 비디오 정보(312) 내에 비디오 디코더(200)의 동작을 제어하는 일부 제어 정보를 제공할 수 있다는 것이 주목된다. 예를 들어, 이 제어 정보(또는 구성 정보)는 슬라이스 유형 정보, cabac init flag, ws_flag 및 ctu_ws_flag 중 하나 이상을 포함할 수 있다. 이러한 구성 정보 항목의 기능, 및 가능한 인코딩 및 디코딩은 아래에서 설명된다. 슬라이스 유형 정보는 (예를 들어, 비디오 이진 시퀀스 제공 블록(380)에 의해) 표준 H.264 또는 H.265에 따라 비디오 인코더에서와 같이 제공될 수 있으며, 표준 H.264 또는 H.265에 따른 비디오 디코더에서와 같이 비디오 재구성 블록(180, 280)에 의해 사용될 수 있다. 또한, 슬라이스 유형 정보는 본 명세서에 약술된 바와 같이 윈도우 크기(들)를 결정하는 데 사용될 수 있다.
더욱이, 기능 블록의 분포가 수정될 수 있다는 것이 주목된다. 도 3의 실시예에서, 산술 인코딩 코어(370), 소스 통계 값 결정기 블록(330, 340), 소스 통계 값 결합 블록(350), 값 처리 블록(366) 및 매핑 표(369) 및 제어 블록(390)은 산술 인코더의 일부인 것으로 설명되었다. 그러나, 상기 블록들은 또한 일반적으로 비디오 인코더의 블록(또는 기능)일 수 있다.
더욱이, 도 3을 참조하여 설명된 기능 블록들 중 임의의 블록은 본 명세서 내에서 설명된 특징, 기능 및 상세 중 임의의 것에 의해 전체적으로 보충될 수 있다는 것이 주목된다.
4). 추가 실시예 및 상세
이하에서는, 본 명세서에 개시된 임의의 실시예에 개별적으로, 조합으로, 또는 개별적으로 및 조합으로 도입될 수 있는 추가 실시예 및 상세가 설명된다. 본 명세서에 설명된 상세는 예를 들어, 도 1, 도 2 및 도 3을 참조하여 설명된 실시예에 개별적으로 및 조합으로 도입될 수 있다.
특히, 이 절에 개시된 특징, 기능 또는 상세 중 하나만 사용해도 일반적으로 이미 개선을 가져오지만, 하나를 초과하는 특징, 기능 또는 상세를 사용하면 훨씬 더 나은 실시예를 생성할 수 있다는 것이 주목된다.
일반적으로 말하면, 본 발명의 양태 또는 실시예는 이진 산술 코딩을 위한 확률 추정 방법(또는 확률 추정 개념)을 생성한다.
도입
이하에서는 도입이 제공된다.
컨텍스트 모델 업데이트는 코더(coder)의 내부 상태를 기본 소스 통계에 맞게 적응시킬 수 있는 가능성을 제공함으로써 효율적인 이진 산술 엔트로피 코더의 핵심 기능이다. 예를 들어, 각 컨텍스트 모델은 이 컨텍스트 모델에 할당된 그 다음 이진 심볼(빈(bin))을 디코딩하거나 인코딩할 확률을 제공하는 독립적인 확률 추정 단계를 포함한다.
기존 비디오 코덱 H.265/HEVC의 확률 단계 구현은 유한 상태 기계(범위(0, 0.5]에서 64개의 확률 상태를 가짐)에 기초하지만, 본 명세서에 설명된 추정기는 할당된 빈 시퀀스의 소스 통계를 추적하는 2개의 카운터 변수에 기초한다.
(예를 들어, 소스 통계 값 결정기(130, 140, 230, 240, 330, 340)의 기능을 구현할 수 있는) 각각의 카운터는 카운트(또는 일반적으로 말하면, 소스 통계 값의 값)에 영향을 미치는 과거 이진 심볼(예를 들어, 소스 통계 값을 결정하는 컨텍스트 모델을 사용하여 인코딩되거나 디코딩된 이전에 인코딩되거나 이전에 디코딩된 이진 값)의 수를 결정하는 윈도우 크기(w)를 포함한다. 업데이트는 예를 들어, 소위 가상 슬라이딩 윈도우 접근법에 의해 도출된다. 값(xt)을 갖는 빈(또는 이진 값)이 디코딩되거나 인코딩된 후 (소스 통계 값으로 간주될 수 있는) 카운트(at 및 bt)의 업데이트는 이하에 설명된 바와 같이 구현될 수 있다. Q = A, B인 경우,
Figure 112020114622608-pct00114
(1)
수식(1)의 업데이트가 부동 소수점 산술을 사용하는 경우, 카운트는 모든 빈 시퀀스에 대해 항상 간격(0, w)에 있다. 확률 추정기의 출력(pt)은 다음 수식으로 규정된다:
Figure 112020114622608-pct00115
(2)
산술 코딩 엔진에 따라 확률 추정기의 출력은 (예를 들어, 산술 인코딩/디코딩 코어를 위한 범위 값을 결정하는 데) 직접 사용될 수 있고 또는 양자화된 확률 값 세트의 가장 가까운 확률로 (또는 산술 인코딩/디코딩 코어를 위한 하나 이상의 범위 값으로) 값을 매핑하는 것과 같은 추가 처리를 요구할 수 있다.
구현 상세
이하에서는 일부 구현 상세가 설명된다.
(예를 들어, 소스 통계 값 결정 블록의) 구현은 규정된 정밀도(BITSq)(여기서 인덱스(q)는 인덱스(a 및 b)에 대한 자리표시자(placeholder)임)를 갖는 정수 산술을 사용할 것을 요구할 수 있다(또는 선호할 수 있다). 따라서, 수식(1)의 구현이 아니라 예를 들어 수식(3) 및 수식(5)에 따라 또는 수식(5)에 따라 정수 값을 구현하는 것이 사용될 수 있다.
또한, 가능한 윈도우 크기 세트는 산술 연산을 단순화하기 위해
Figure 112020114622608-pct00116
에 의해 도출될 수 있는 값으로 제한될 필요가 있을 수 있다.
이 경우(그러나 또한 wq
Figure 112020114622608-pct00117
와 같지 않고 nq가 정수 값인 경우) 카운트 q = a, b의 업데이트는 다음 수식으로 (수식(1)과 동등하게) 계산될 수 있다:
Figure 112020114622608-pct00118
(3)
이 업데이트 규칙은 카운트가 유효 범위(
Figure 112020114622608-pct00119
)(경계 제외)에 남아 있는 것을 보장하는 클리핑(clipping) 연산을 수행할 것을 요구한다:
Figure 112020114622608-pct00120
(4)
wq
Figure 112020114622608-pct00121
와 같지 않고 nq가 정수 값인 경우, 값(nq)은 (예를 들어, 올림 또는 내림에 의해) 적절히 선택될 수 있다. 또한, xt는 이전에 인코딩된 이진 값(예를 들어, 값 0 또는 1을 가짐) 또는 이전에 디코딩된 이진 값을 나타낼 수 있다는 것이 주목된다.
대안적으로, 수식(3)과 수식(4)은 이진 심볼의 값들 간을 구별하는 업데이트 계산으로 대체될 수 있다:
Figure 112020114622608-pct00122
(5)
상이한 심볼 값에 대해 (수식(5)의 두 줄로 도시된) 상이한 업데이트 규칙을 사용하면 수식 4의 클리핑 연산이 쓸모 없게 된다.
수식(3) 및 수식(4) 또는 수식(5)에서 가상 슬라이딩 윈도우 접근법을 구현하는 두 가지 방식은 우측 이동 연산으로 인해 동일한 비트스트림을 전달하지 않는다는 것이 주목된다.
또한, 수식(3) 및 수식(4)에 따라 또는 수식(5)에 따라 연산하는 것은 본 명세서에 설명된 소스 통계 값 결정기에 의해 수행될 수 있다는 것이 주목된다. 그러나, 소스 통계 값 결정기는 또한 일부 실시예에서 (예를 들어, 수식(1)에 따라) 다른 기능을 수행할 수 있다.
확률 추정기의 출력(예를 들어, 결합된 소스 통계 값)은 수식(4) 또는 수식(5)의 업데이트 방법으로부터(또는 다른 방법으로부터) 발생하는 카운터(예를 들어, 소스 통계 값)를 가중하는 것에 의해 계산된다:
Figure 112020114622608-pct00123
(6)
(결합된 소스 통계 값으로 간주될 수 있는) 수식(6)의 가중된 결과(
Figure 112020114622608-pct00124
)는 (예를 들어, 값 처리부에 의해) 확률(pt), 즉
Figure 112020114622608-pct00125
(7)
을 도출하거나 또는
산술 코딩 엔진의 설계에 따른 어드레스 인덱스(예를 들어, pStateIdx)를 도출하는 데 (선택 사항으로) 사용될 수 있다.
카운터 기반 확률 추정기는 예를 들어, 범위(0,1)의 이진 시퀀스의 값 xt+1 = 1에서 그 다음 심볼에 대한 확률을 제공할 수 있다. 값이 xt+1 = 0에서 그 다음 심볼에 대한 확률 추정이 필요한 경우 출력은 p(0) = 1 - p(1)로 변환될 필요가 있다.
그러나, 확률 값(pt)(또는 p(0) 또는 p(1))을 연산하는 것이 모든 실시예에서 필요한 것은 아니라는 것이 주목된다.
카운터 기반 확률 추정기와 달리 H.265/HEVC의 유한 상태 기계의 확률 추정은 두 변수를 결합하여 사용하여 수행된다. 제1 변수(pStateIdx)는 범위(0, 0.5]에서 가능성이 가장 낮은 심볼(Least Probable Symbol: LPS)에 대한 확률을 나타내는 상태 인덱스를 저장한다. 제2 변수(
Figure 112020114622608-pct00126
)는 가능성이 가장 높은 심볼(Most Probable Symbol: MPS)의 값을 포함한다. 마찬가지로, 이진 산술 코더의 간격 세분화를 위해 미리 계산된 범위 값을 갖는 표는 범위(0, 0.5]만을 포함한다.
따라서, 예를 들어 (H.264 또는 H.265 비디오 인코더 또는 디코더와 같은) 기존 구조를 갖는 매핑 표 또는 기존의 매핑 표를 사용하는 경우 (기존의) 유한 상태 기계는 카운터 기반 확률 추정기로 대체되는 경우 매핑을 사용하는 것이 추천된다[3]. 다시 말해, 결합된 소스 통계 값이 (예를 들어, 수식(3) 내지 수식(6)을 사용하거나 또는 아래에서 언급된 유사한 수식을 사용하여) 본 명세서에 설명된 바와 같이 결정되는 경우, (예를 들어, 선택 사항인 값 처리부에서) 결합된 소스 통계 값을 매핑 표의 인덱스 값(예를 들어, pStateIdx)으로 매핑하는 것이 추천된다(그러나 반드시 필수적인 것은 아니다). 이에 의해 기존 매핑 표를 사용할 수 있다. 한편, (간격 세분화를 위한 범위 값을 제공하는) 매핑 표가 적절히 적응된 경우 이러한 매핑이 반드시 필요한 것은 아닐 수 있다.
수식(6)(예를 들어, 결합된 소스 통계 값)의 결과(
Figure 112020114622608-pct00127
)를 상태 인덱스(
Figure 112020114622608-pct00128
) 값으로 매핑하는 것은 예를 들어, (예를 들어 매핑 표의 해상도 아래로 양자화되는 것을 포함할 수 있는) 다음 수식, 즉
Figure 112020114622608-pct00129
(8)
에 의해 계산될 수 있고,
여기서
Figure 112020114622608-pct00130
는 미리 계산된 값을 포함하는 표의 LPS 확률 상태를 나타내는 데 사용되는 비트 수를 규정하고,
Figure 112020114622608-pct00131
는 다음 수식, 즉
Figure 112020114622608-pct00132
(9)
에 의해 도출된다.
카운터 기반 확률 추정기 결과를 수식(8) 및 수식(9)으로부터 (또는 수식(8) 및 수식(9)을 사용하여) LPS 상태 인덱스의 표현으로 (예를 들어, 가능성 낮은 상태 인덱스 또는 가능성이 가장 낮은 상태 인덱스, 예를 들어, pStateIdx)의 표현으로) 및 MPS 값으로 (예를 들어, 가능성이 높은 이진 값, 예를 들어, valMPS의 값으로) 매핑하는 것이 아니라, 산술 코딩 엔진은 두 가지 옵션에 의해 교대로 수정될 수 있다.
간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표는 (예를 들어, 매핑 표의 표 엔트리가 결합된 소스 통계 값을 사용하여 또는 확률 값(pt)(또는 p(0) 또는 p(1))을 사용하여 직접 선택될 수 있도록) 전체 확률 간격(probability interval)(0, 1)을 포함하도록 확장될 수 있고, 또는 표가 생략되고 (예를 들어, 결합된 소스 통계 값에 기초하여 또는 확률 값(pt) 또는 p(0) 또는 p(1))에 기초하여) 범위 값이 산술을 사용하여 즉석에서 계산된다.
다시 말해, 결합된 소스 통계 값에 기초하여 산술 디코딩 코어에서 간격 세분화를 위한 범위 값을 도출하는 다수의 다른 방법이 존재한다. 기존의 매핑 표가 사용되는 경우 수식(8) 및 수식(9)에 따라 연산하는 것이 추천된다. 대안적으로 수식(8) 및 수식(9)에 따라 연산하는 것은 수정된 매핑 표가 사용되는 경우 또는 일부 연산 규칙을 사용하여 결합된 소스 통계 값으로부터 범위 값이 도출되는 경우 생략될 수 있다.
발명의 양태 - 카운터 변수의 가변 해상도
이하에서는, 본 발명에 따른 임의의 실시예에서 선택 사항으로 사용될 수 있는 본 발명의 양태들이 설명될 것이다.
카운터 기반 확률 추정기의 기존 정수 구현은 카운터의 정밀도를 나타내기 위해 동일한 비트 수(
Figure 112020114622608-pct00133
)를 사용한다.
메모리 소비량과 코딩 효율 사이의 균형을 최적화하기 위해 BITSq 변수는 윈도우 크기에 따라 치수 정해질 수 있는 (또는 현재 사용되는 윈도우 크기에 따라 동적으로 적응될 수 있는) 것으로 밝혀졌다.
따라서 카운터 변수(예를 들어, 소스 통계 값)는 예를 들어 수식(6)으로부터 가중 연산(예를 들어, 소스 통계 값 결합)이 적용되기 전에 수정될 수 있다:
Figure 112020114622608-pct00134
(10)
여기서
Figure 112020114622608-pct00135
.
Figure 112020114622608-pct00136
를 사용하면, 가중 연산(예를 들어, 소스 통계 값 결합)이 다음 수식으로 수정된다:
Figure 112020114622608-pct00137
(11)
결과(
Figure 112020114622608-pct00138
)를 (선택 사항인 값 처리부에 의해 수행될 수 있는) 수식(8) 및 수식(9)의 상태 인덱스(
Figure 112020114622608-pct00139
) 값으로 매핑하는 것은 다음 수식으로 수정될 수 있다:
Figure 112020114622608-pct00140
(12)
여기서,
Figure 112020114622608-pct00141
는 다음 수식, 즉
Figure 112020114622608-pct00142
(13)
에 의해 도출될 수 있다.
간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표가 전체 확률 간격(0, 1)을 포함하도록 확장되는 경우, 상태 인덱스는 (예를 들어, 수식(12) 및 수식(13)을 연산하는 것이 아니라) 다음 수식과 같이 (예를 들어, 선택 사항인 값 처리부에 의해) 도출될 수 있다:
Figure 112020114622608-pct00143
(14)
발명의 양태: 슬라이스 유형, cabac init flag 및 컨텍스트 모델 의존 윈도우 크기
이하에서는, 본 발명의 임의의 실시예에서 선택 사항으로 사용될 수 있는 윈도우 크기를 조절하는 가능성이 설명될 것이다.
수식(1), 수식(3) 및 수식(5) 모두에서 카운터 변수(
Figure 112020114622608-pct00144
)의 업데이트는 윈도우 크기(w)(예를 들어, wa 또는 wb) 또는 지수(n)(예를 들어, na 또는 nb)를 포함하고, 여기서 지수(n)는 확률 추정기(예를 들어, 소스 통계 값 결정기)의 출력에 영향을 미치는 과거 빈의 수를 제어하기 위해 n = log2w로 규정된다.
이전 문헌 [1]에서 윈도우 크기는, 비디오 코덱의 임의의 다른 파라미터와 독립적으로 모든 컨텍스트 모델에 대해 동일한 두 값, 예를 들어, na = 4 및 nb = 8로 설정되었다.
본 발명의 일 양태에 따르면, 각 컨텍스트 모델에 대한 윈도우 크기 쌍은 컨텍스트 모델, cabac init flag 및 슬라이스 유형에 따라 범위 [1,11](경계 포함)에서 n(예를 들어, na 및/또는 nb)에 대해서만 사용자 지정 값으로 설정된다.
cabac init flag는 H.265/HEVC의 일부이며 "cabac_init_flag"[2]라고 지칭된다.
3가지 슬라이스 유형이 규정되어 있으며 일반적으로 B-, P- 또는 인트라-예측된(Intra-predicted) 슬라이스라고 지칭된다. 예를 들어, 초기 확률 상태를 도출하는 데 사용되는 [2]의 "초기값(initValue)"과 유사한 방식으로, (예를 들어, wa 및 wb 또는 na 및 nb를 규정하는) 윈도우 크기 쌍(wspair)은 (예를 들어, 미리 정해진 표에서) 각 컨텍스트 모델에서 슬라이스 유형 및 "cabac_init_flag"의 모든 조합에 대해 규정된다.
정수 산술을 사용하는 구현에서 하나의 컨텍스트 모델에 대한 윈도우 크기 값(예를 들어, na 및 nb)은 예를 들어 판독 전용 메모리에 8 비트 변수로서 저장될 수 있으며, 여기서 na는 최상위 니블(nibble)에 저장되고, nb는 최하위 니블에 저장된다:
Figure 112020114622608-pct00145
(15)
wspair의 결과 구조는 표 1에 제시된다.
표 1에 도시된 wspair 변수의 구조는 메모리 요구 사항이 중요하지 않은 소프트웨어 구현을 위한 대략적인 레이아웃의 일례이다. na 및 nb를 저장하는 데 사용되는 비트 수는 필요한 것보다 더 많은 조합을 저장할 수 있다.
(제어 블록에 의해 수행될 수 있는) 하나의 컨텍스트 모델의 올바른 wspair에 대한 도출 프로세스의 일례는 표 2에 제시된다.
예를 들어, wspair0, wspair1 및 wspair2로 지정된 3개의 미리 정해진 wspair 값이 존재하는 것을 알 수 있다.
이러한 미리 정해진 wspair 값 중 하나는 "슬라이스 유형" 정보에 기초하여 그리고 소위 "cabac init flag"(이는 선택적으로 소스 통계 값 및/또는 비디오 인코더 또는 비디오 디코더의 다른 변수에 대한 초기화 값을 결정할 수도 있음)에 기초하여 (예를 들어, 제어 블록에 의해) 선택된다. 예를 들어 슬라이스 유형이 이중 예측("B")인 경우 "cabac init flag"는 2개의 미리 정해진 값(wspair0 및 wspair1) 중에서 na와 nb(또는 wa 및 wb)를 결정하는 데 실제 사용된 값을 결정할 수 있다. 유사하게, 슬라이스 유형이 단일 예측("P")인 경우 "cabac init flag"는 2개의 미리 정해진 값(wspair0 및 wspair1) 중에서 na와 nb(또는 wa 및 wb)를 결정하는 데 실제 사용된 값을 결정할 수 있다(여기서 이중 예측 슬라이스 유형의 경우에 비해 cabac init flag의 값과 미리 정해진 값(wspair0 및 wspair1) 간에는 반대 할당이 사용될 수 있다). 슬라이스가 독립 코딩 모드("인트라")를 사용하여 인코딩된 경우, cabac init flag는 비활성화될 수 있으며, 미리 정해진 값(wspair2)이 항상 사용될 수 있다.
또한 표 2는 단 하나의 컨텍스트 모델만을 나타내고 상이한 컨텍스트 모델에 대해 상이한 표가 이용 가능할 수 있다(예를 들어, 범위 값을 결정하는 전체 프로세스는 상이한 컨텍스트 모델에 대해 독립적으로 작용할 수 있다)는 것이 주목된다.
컨텍스트 모델은 제1 빈을 디코딩하거나 인코딩하기 전에 의도된 윈도우 크기로 초기화되어야 한다. 초기화 프로세스는 각 컨텍스트 모델의 초기 확률 상태/카운트가 설정될 때와 동시에 수행되어야 한다.
실시예
이하에서는 실시예 및 추가 양태가 설명될 것이다. 이 절에서 언급된 실시예는 개별적으로 사용될 수 있으며, 본 명세서에 설명된 특징, 기능 및 상세 중 임의의 것에 의해 선택적으로 보충될 수 있다.
또한, 본 명세서에 개시된 모든 비디오 디코더 및 비디오 인코더는 이하에서 설명되는 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 또는 조합으로 선택적으로 보충될 수 있다는 것이 주목된다. 또한, 본 명세서에 설명된 비디오 디코더 및 비디오 인코더의 특징은 이하에서 설명되는 특징, 기능 및 상세 중 임의의 것에 의해 선택적으로 대체될 수 있다.
(a) 본 발명의 바람직한 실시예에서, 각 컨텍스트 모델은 2개의 카운터 변수(
Figure 112020114622608-pct00146
)를 포함한다. (예를 들어, 비디오 프레임의 일부의) 슬라이스를 초기화하는 동안 윈도우 크기 변수(nq)는 예를 들어 표 2에 약술된 바와 같이 예를 들어 현재 슬라이스 유형 및 cabac init flag의 값에 따라 특정 값으로 설정되고, 카운터의 해상도 변수(또는 소스 통계 값의 해상도 변수)는 예를 들어 동일한 값(
Figure 112020114622608-pct00147
)(선택 사항)으로 설정된다. 이 컨텍스트 모델에 할당된 빈(예를 들어, 이진 값)을 인코딩하거나 디코딩하는 경우, 카운트는 예를 들어 수식(11)에서와 같이 가중되고, 수식(12) 및 수식(13)에 의해 규정된 바와 같이 상태 인덱스를 도출하는 데 사용된다. 빈(예를 들어, 이진 값)이 인코딩되거나 디코딩된 후 카운터 변수(또는 소스 통계 값)는 각 카운터(또는 각 소스 통계 값)에 대해 (예를 들어, na 및 nb에 의해 규정된) 지정된 사용자 지정 윈도우 크기를 사용하여 예를 들어 수식(5)에 의해 지정된 바와 같이 업데이트된다.
(b) 본 발명의 다른 바람직한 실시예에서 확률 추정 방법(또는 개념)은 실시예(a)와 동일하게 구성되지만, 카운터 변수(또는 소스 통계 값)의 업데이트는 수식(3) 및 수식(4)을 사용하여 수행된다.
(c) 본 발명의 다른 바람직한 실시예에서 확률 추정 방법(또는 개념)은 실시예(a)와 동일하게 구성되지만, 수식(14)이 상태 인덱스를 도출하는 데 사용된다. 상태 인덱스는 전체 확률 간격(0,1)을 포함하는 미리 계산된 범위 값을 사용하여 표(예를 들어, 범위 값을 제공하기 위한 매핑 표)를 어드레싱한다.
(d) 본 발명의 또 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(a)에 지정된 바와 같이 구성되지만, 컨텍스트 모델의 개별 카운터(또는 각 컨텍스트 모델의 두 소스 통계 값)는 수식(11)에서와 같이 동일하게 가중되는 것은 아니다. 대신 가중 연산은 개별 카운터(
Figure 112020114622608-pct00148
)의 가중치를 포함한다:
예를 들어, βa + βb = 1인 경우,
Figure 112020114622608-pct00149
(16)
이 실시예에서 수식(11)의 연산은 수식(16)으로 구현되거나 또는 대안적인 정수 가중 구현으로 대체된다.
(e) 본 발명의 또 다른 바람직한 실시예에서 확률 추정 방법(예를 들어, 소스 통계 값 결정 블록)은 실시예(d)에서와 같이 구성되지만, (예를 들어, 두 소스 통계 값의) 개별 카운터의 가중치는 인코딩 또는 디코딩 프로세스 동안 변경된다.
(f) 다른 바람직한 실시예에서, 확률 추정기(또는 소스 통계 값 결정 블록)는 실시예(a)와 동일하게 구성되지만, 이용 가능한 윈도우 크기 세트는 (예를 들어, 제어 블록을 적응시키는 것에 의해) wspair 변수를 저장하는 데 사용되는 메모리 요구 사항을 줄이기 위해 더 작은 서브세트로 제한된다. 여기서, nb는 na보다 더 작아서는 안 되며, 이에 허용 범위 [1,11]에서 66개의 유효 조합이 생성된다. 그 결과 wspair 변수에 의해 사용되는 비트 수는 표 1(8 비트 변수(wspair)의 비트마스크)에 약술된 바와 같이 보다 간결한 레이아웃으로 줄어들 수 있다.
(g) 다른 바람직한 실시예에서, 확률 추정기(또는 소스 통계 값 결정 블록)는 실시예(f)에 의해 지정된 바와 같이 구성되지만, 유효한 조합의 수는 (예를 들어, 제어 블록을 적응시키는 것에 의해) 손으로 선택한 wspair 변수를 생략하는 것에 의해 줄어든다.
(h) 다른 바람직한 실시예에서, 확률 추정기(또는 소스 통계 값 결정 블록)는 실시예(f)에 의해 지정된 바와 같이 구성되지만, 유효한 조합의 수는 wspair 변수로 감소되고, 여기서 nb 및 na 간의 차이는 (예를 들어, 제어 블록을 적응시키는 것에 의해) 적어도 3(
Figure 112020114622608-pct00150
)이다.
(i) 다른 바람직한 실시예에서, 확률 추정기(또는 소스 통계 값 결정 블록)는 실시예(h)에 의해 지정된 바와 같이 구성되지만, 유효한 윈도우 크기 조합 세트는 wspair 변수로 확장되고, 여기서 nb 및 na는 (예를 들어, 제어 블록을 적응시키는 것에 의해) 동일하다(nb = na).
(j) 본 발명의 다른 바람직한 실시예에서 확률 추정 방법 또는 개념(또는 소스 통계 값 결정 블록)은 실시예(a)에서와 같이 구성되지만, 카운터의 해상도(또는 소스 통계 값의 해상도)는 (예를 들어, 제어 블록을 적응시키거나 또는 소스 통계 값 결정 블록을 적응시키는 것에 의해) 동일하지 않고, 예를 들어,
Figure 112020114622608-pct00151
이다. 특히 더 작은 윈도우 크기를 사용하는 카운터(또는 소스 통계 값)에서, 예를 들어, n = log2w ≤ 5에서, 개별 카운터(또는 소스 통계 값)의 해상도는 메모리 소비량을 줄이기 위해 줄어들 수 있다.
(k) 본 발명의 또 다른 바람직한 실시예에서 확률 추정 방법 또는 개념은 실시예(j)에서와 같이 구성되지만, 카운터(또는 소스 통계 값)(
Figure 112020114622608-pct00152
)의 해상도는 윈도우 크기에 의해 (예를 들어, 소스 통계 값을 연산하거나 업데이트하는 데 사용되는 윈도우 크기에 의해) 도출되고, 예를 들어,
Figure 112020114622608-pct00153
이고, 여기서
Figure 112020114622608-pct00154
는 임계 값(예를 들어, 고정된 값)이고, 예를 들어, 8과 같을 수 있다.
(l) 본 발명의 다른 바람직한 실시예에서 확률 추정 방법 또는 개념은 실시예(j)에서와 같이 구성되지만, 하나의 컨텍스트 모델의
Figure 112020114622608-pct00155
변수의 합은 모든 컨텍스트 모델에 걸쳐 동일하다(이는 예를 들어, 제어 블록을 적응시키는 것에 의해 달성될 수 있다). 따라서, 각 컨텍스트 모델은 동일한 수의 비트를 요구하며, 특정 컨텍스트 모델을 어드레싱하는 것은 (예를 들어, 상이한 컨텍스트 모델과 연관된 소스 통계 값이 어레이에 저장되거나 연속하는 메모리 영역에 저장된 경우) 간단한 오프셋 계산에 의해 수행될 수 있다.
(m) 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(l)에서 설명된 바와 같이 구성되지만,
Figure 112020114622608-pct00156
변수의 합이 모든 컨텍스트 모델에 걸쳐 동일하다는 제약 조건으로 인해 유효한 윈도우 크기 조합의 수가 (예를 들어, 제어 블록을 적응시키는 것에 의해) 감소된다. 이 실시예에서 nb 및 na가 동일한(nb = na) 경우는 감소되는 대상에서 제외된다(이 경우, 예를 들어, na 및 nb가 동일한 경우가 여전히 선택될 수 있다).
(n) 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(a)에서 설명된 바와 같이 구성되지만, 하나의 카운터의 윈도우 크기는 무한으로 설정된다. 따라서 카운트는 업데이트되지 않으며, 산술 연산 및 메모리 소비량 측면에서 복잡성이 줄어들 수 있다. 예를 들어 소스 통계 값 중 하나는 고정된 값으로 대체될 수 있다. 따라서, 결합된 소스 통계 값은 소스 통계 값 중 하나와 상기 고정된 값을 결합시키는 것에 의해 획득될 수 있다.
(o) 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(a)에서 설명된 바와 같이 구성되지만, 컨텍스트 모델은 (예를 들어, 비디오 인코더에 의해 제공되고 비디오 디코더에 의해 평가된) 각 슬라이스마다 전송되는 별도의 플래그에 따라 초기화된다. 슬라이스 유형 및 cabac init flag에 따라 윈도우 크기를 초기화하는 것이 아니라 사용된 세트(예를 들어, 사용된 na 및 nb 값)를 지정하는 별도의 플래그 "ws_flag"가 도입된다. 그 결과 표 2의 할당은 표 3에 도시된 바와 같이 확장된다.
예를 들어, 각 슬라이스 유형마다 (예를 들어, 제어 정보 또는 구성 정보로서) 비디오 비트스트림에 포함된 "ws_flag" 플래그 또는 파라미터에 따라 2개의 윈도우 크기 세트 간을 선택할 수 있다.
따라서, 제어 블록(또는 일반적으로 비디오 인코더 또는 비디오 디코더)은 예를 들어 ws flag를 평가하고 ws flag에 따라(그리고 일반적으로 또한 예를 들어, 각 슬라이스에 대해 또는 선택된 슬라이스에 대해 제어 정보 또는 구성 정보로서 비디오 비트스트림에 일반적으로 또한 포함된 슬라이스 유형 파라미터에 따라) 윈도우 크기를 조절할 수 있다.
(p) 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(a)에서 설명된 바와 같이 구성되지만, 윈도우 크기의 초기화는 추가적으로 현재 슬라이스의 시간적 레벨에 의존한다. 그 결과 wspair 변수의 총 수가 증가한다. 따라서, 제어 블록(또는 비디오 인코더 또는 디코더)은 예를 들어, 윈도우 크기를 결정할 때 현재 슬라이스의 시간적 레벨을 고려하도록 구성될 수 있다.
(q) 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(a)에서 설명된 바와 같이 구성되지만, 윈도우 크기의 초기화는 추가적으로 현재 슬라이스의 양자화 파라미터에 의존한다. 따라서, 제어 블록(또는 비디오 인코더 또는 디코더)은 예를 들어 윈도우 크기를 결정할 때 현재 슬라이스의 양자화 파라미터를 고려하도록 구성될 수 있다.
(r) 다른 바람직한 실시예에서 확률 추정기(예를 들어, 소스 통계 값 결정 블록)는 실시예(p)에서 설명된 바와 같이 구성되지만, 초기화는 추가적으로 양자화 파라미터에 의존한다. 그 결과 wspair 변수는 시간적 레벨, 양자화 파라미터, 슬라이스 유형 및 cabac init flag의 곱 공간(product space)의 각 항목마다 지정된다. 따라서, 제어 블록(또는 비디오 인코더 또는 디코더)은 예를 들어 윈도우 크기를 결정할 때 현재 슬라이스의 시간적 레벨 및 양자화 파라미터를 고려하도록 구성될 수 있다.
(s) 본 발명의 다른 바람직한 실시예에서, 확률 추정 방법 또는 개념(예를 들어, 소스 통계 값 결정 블록)은 실시예(a)와 동일하게 구성되지만, 윈도우 크기 변수는 위치에 따라 디코딩 또는 인코딩 프로세스 동안(예를 들어, 슬라이스 내에서 및/또는 상이한 슬라이스 간에 및/또는 상이한 프레임 간에) 변한다. 예를 들어, 현재 빈이 슬라이스의 제1 열 또는 제1 행의 일부인 코딩 트리 유닛(coding tree unit: CTU)으로부터 발생하는 경우 두 카운터(또는 소스 통계 값 결정기)의 윈도우 크기(예를 들어, na 및 nb)는 다음 수식으로 설정된다:
Figure 112020114622608-pct00157
(17)
예를 들어, 이것은 현재 빈이 슬라이스의 제1 행 또는 제1 열의 일부인 CTUI로부터 발생한 경우 윈도우 크기를 선택적으로 감소시키는 것을 의미할 수 있다.
CTU의 제1 행 또는 CTU의 제1 열의 코딩 프로세스가 완료되면 윈도우 크기가 (예를 들어, 슬라이스 유형에 기초하여 및 예를 들어, 표 2 및 표 3 중 하나에 따라 고려될 수 있는 임의의 다른 파라미터 또는 플래그에 기초하여 규정된) 디폴트 값으로 설정된다.
윈도우 크기를 변경함으로써 확률 추정기는 슬라이스 또는 CTU 행의 시작에서 소스 빈 시퀀스의 기본 통계에 더 빠르거나 더 느리게 적응될 수 있다.
(t) 본 발명의 다른 바람직한 실시예에서, 확률 추정 방법 또는 개념(예를 들어, 소스 통계 값 결정 블록)은 실시예(a)와 동일하게 구성되지만, (예를 들어, 비디오 인코더에 의해 제공되고 비디오 디코더에 의해 평가된) 추가 플래그가 슬라이스를 디코딩하거나 인코딩하는 동안 윈도우 크기를 변경하기 위해 사용된다. 이 실시예에서, 예를 들어 모든 CTU에 대해 "ctu_ws_flag" 플래그가 존재하고, 이 플래그는, 모든 컨텍스트 모델 또는 (예를 들어, 컨텍스트 모델의) 서브세트에 대해 na 및 nb 변수를 증가시키거나 감소시키는 데 사용된다. 인코딩하는 동안 "ctu_ws_flag"는 예를 들어 모든 CTU 전에 시그널링되고 그리고 디코딩 동안 "ctu_ws_flag"는 예를 들어 모든 CTU 전에 판독된다. "ctu_ws_flag"의 값에 따라 모든 컨텍스트 모델의 na 및 nb 변수는 결과가 여전히 유효한 범위 [1,11] 내에 있는 경우 1씩 증가되거나 감소된다.
(u) 본 발명의 다른 바람직한 실시예에서, 확률 추정 방법 또는 개념(예를 들어, 소스 통계 값 결정 블록)은 실시예(t)와 동일하게 구성되지만, 모든 컨텍스트 모델의 서브세트의 윈도우 크기만이 ctu_ws_flag에 따라 변경된다.
5). 도 4에 따른 방법
도 4는 본 발명의 일 실시예에 따른 방법(400)의 흐름도를 도시한다.
방법(400)은 대응하는 장치와 관련하여 본 명세서에 설명된 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 그리고 조합으로 선택적으로 보충될 수 있다는 것이 주목된다.
또한, 결합된 소스 통계 값이 제1 소스 통계 값과 고정된 0이 아닌 값을 결합하여 획득된 경우 제2 소스 통계 값을 연산할 필요가 없다는 것이 주목된다.
6). 도 5에 따른 방법
도 5는 본 발명의 일 실시예에 따른 방법(500)의 흐름도를 도시한다.
방법(500)은 대응하는 장치와 관련하여 본 명세서에 설명된 특징, 기능 및 상세 중 임의의 것에 의해 개별적으로 그리고 조합으로 선택적으로 보충될 수 있다는 것이 주목된다.
또한, 결합된 소스 통계 값이 제1 소스 통계 값과 고정된 0이 아닌 값을 결합하여 획득된 경우 제2 소스 통계 값을 연산할 필요가 없다는 것이 주목된다.
7). 도 6에 따른 비디오 스트림
도 6은 본 발명의 일 실시예에 따른 비디오 스트림(비트스트림)의 개략적(단순화된) 표현을 도시한다.
비디오 스트림(600)은 본 명세서에 설명된 특징 및 상세 중 임의의 것에 의해 개별적으로 그리고 조합으로 선택적으로 보충될 수 있다는 것이 주목된다.
8). 결론
결론적으로, 예를 들어 비디오 인코더, 비디오 디코더뿐만 아니라 이미지 인코더, 이미지 디코더, 오디오 인코더, 오디오 디코더 등에 사용될 수 있는 이진 산술 코딩을 위한 확률 추정 방법 및 장치의 실시예가 설명되었다.
이러한 방법과 장치는 기존 솔루션을 능가한다.
예를 들어, [4]의 문서는 각 컨텍스트 모델에 대해 규정된 사용자 지정 윈도우 크기를 설명한다. 그러나 윈도우 크기는 슬라이스 유형 또는 cabac init flag에 따라 도출되지 않는다. 각 컨텍스트 모델에 대해 두 쌍의 윈도우 크기가 규정되고, 양자화 파라미터는 한 쌍을 선택하는 데 사용된다. 더욱이 다양한 범위의 윈도우 크기가 제공된다.
[5]의 문서는 청구항(들)에 설명된 빠른 공격 모드의 대안으로서 비교될 수 있는 방법을 설명한다. 이 문서는 컨텍스트 모델이 할당된 처음 64개의 빈에 대해 추가 윈도우 크기 쌍이 규정된 것을 설명한다. 처음 64개의 빈이 디코딩되거나 인코딩된 후 윈도우 크기는 디폴트 값으로 설정된다. 이 접근법은 각 컨텍스트 모델에 대해 코딩된 빈 수를 추적하는 별도의 카운터 변수를 요구한다.
9). 구현 대안
일부 양태가 장치의 맥락에서 설명되었지만, 이들 양태는 또한 대응하는 방법의 설명을 나타내고, 여기서 블록 또는 디바이스는 방법 단계 또는 방법 단계의 특징에 대응한다는 것이 명백하다. 유사하게, 방법 단계의 맥락에서 설명된 양태는 또한 대응하는 장치의 대응하는 블록 또는 항목 또는 특징의 설명을 나타낸다. 방법 단계의 일부 또는 전부는 예를 들어 마이크로프로세서, 프로그래밍 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해 (또는 하드웨어 장치를 사용하여) 실행될 수 있다. 일부 실시예에서, 가장 중요한 방법 단계 중 하나 이상이 이러한 장치에 의해 실행될 수 있다.
본 발명의 인코딩된 비디오 신호(또는 비디오 스트림 또는 비디오 비트스트림)는 디지털 저장 매체에 저장될 수 있고 또는 무선 전송 매체 또는 인터넷과 같은 유선 전송 매체와 같은 전송 매체를 통해 전송될 수 있다.
특정 구현 요구 조건에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 각각의 방법이 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협력(또는 협력할 수 있는) 전자적으로 판독 가능한 제어 신호를 저장하는, 예를 들어, 플로피 디스크, DVD, 블루-레이(Blu-Ray), CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리와 같은 디지털 저장 매체를 사용하여 수행될 수 있다. 따라서, 디지털 저장 매체는 컴퓨터 판독 가능할 수 있다.
본 발명에 따른 일부 실시예는 본 명세서에 설명된 방법 중 하나가 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협력할 수 있는 전자적으로 판독 가능한 제어 신호를 갖는 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시예는 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때 방법들 중 하나의 방법을 수행하도록 동작 가능한 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 프로그램 코드는 예를 들어 기계 판독 가능 캐리어에 저장될 수 있다.
다른 실시예는 기계 판독 가능 캐리어에 저장된 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위한 컴퓨터 프로그램을 포함한다.
다시 말해, 본 발명의 방법의 일 실시예는 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법의 추가 실시예는 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위한 컴퓨터 프로그램을 포함하는, 즉 기록하는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터 판독 가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 일반적으로 유형적 및/또는 비-일시적이다.
따라서 본 발명의 방법의 추가 실시예는 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호 시퀀스이다. 데이터 스트림 또는 신호 시퀀스는 예를 들어 데이터 통신 연결을 통해, 예를 들어, 인터넷을 통해 전송되도록 구성될 수 있다.
추가 실시예는 본 명세서에 설명된 방법들 중 하나의 방법을 수행하도록 구성되거나 적응된 처리 수단, 예를 들어, 컴퓨터 또는 프로그램 가능한 논리 디바이스를 포함한다.
추가 실시예는 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 추가 실시예는 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위한 컴퓨터 프로그램을 수신기로 (예를 들어, 전자적으로 또는 광학적으로) 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어 컴퓨터, 모바일 디바이스, 메모리 디바이스 등일 수 있다. 장치 또는 시스템은 예를 들어 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예에서, 프로그래밍 가능한 논리 디바이스(예를 들어, 전계 프로그래밍 가능한 게이트 어레이)는 본 명세서에 설명된 방법의 일부 또는 모든 기능을 수행하는 데 사용될 수 있다. 일부 실시예에서, 전계 프로그래밍 가능한 게이트 어레이는 본 명세서에 설명된 방법들 중 하나의 방법을 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법은 바람직하게는 임의의 하드웨어 장치에 의해 수행된다.
본 명세서에 설명된 장치는 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 또는 하드웨어 장치와 컴퓨터의 조합을 사용하여 구현될 수 있다.
본 명세서에 설명된 장치 또는 본 명세서에 설명된 장치의 임의의 구성 요소는 적어도 부분적으로 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
본 명세서에 설명된 방법은 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 또는 하드웨어 장치와 컴퓨터의 조합을 사용하여 수행될 수 있다.
본 명세서에 설명된 방법 또는 본 명세서에 설명된 장치의 임의의 구성 요소는 하드웨어 및/또는 소프트웨어에 의해 적어도 부분적으로 수행될 수 있다.
전술한 실시예는 본 발명의 원리에 대한 예시일 뿐이다. 본 명세서에 설명된 배열 및 상세의 수정 및 변경은 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것으로 이해된다. 따라서, 본 발명은 본 명세서의 실시예의 설명 및 논의에서 제공된 특정 상세에 의해 제한되는 것이 아니라 이하 특허 청구 범위에 의해서만 제한되는 것으로 의도된다.
Figure 112020114622608-pct00158
Figure 112020114622608-pct00159
Figure 112020114622608-pct00160
참고 문헌
[1] A. Alshin, E. Alshina, "Multi-parameter probability update for CABAC", JCTVC-F254, Torino, July, 2011, http://phenix.it-sudparis.eu/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F254-v5.zip.
[2] ITU-T, Recommondation H.265(12/16), https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.265-201612-I!!PDF-E&type=items.
[3] J.Stegemann, H.Kirchhoffer, D. Marpe, T. Wiegand, "Non-CE1: Counter-based probability model update with adapted arithmetic coding engine", http://phenix.it-sudparis.eu/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G547-v4.zip.
[4] A.Said, M. Karczewicz, V. Seregin, H. Egilmez, L. Zhang, X. Zhao, "EE2: Arithmetic coding with context-dependent double-window adaptation response",JVET-H0061, http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/8_Macau/wg11/JVET-H0061-v1.zip
[5] A.Said, M. Karczewicz, V. Seregin, H. Egilmez, L. Zhang, X. Zhao, "EE2 related: Arithmetic coding with progressive context-dependent double-window adaptation response", http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/8_Macau/wg11/JVET-H0067-v2.zip

Claims (83)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 적어도 하나의 프로세서와 메모리를 포함하는 비디오 디코더로서, 상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금:
    이진 시퀀스의 인코딩된 표현을 산술 디코딩하는 것에 기초하여 비디오 컨텐츠를 디코딩하고;
    다음 수식,
    Figure 112022099174132-pct00163

    에 따라 제1 소스 통계 값(at+1)을 획득하고
    - 여기서, xt는 디코딩된 이진 값이고,
    at는 상기 제1 소스 통계 값의 이전 버전이고,
    na는 제1 윈도우 크기 파라미터이고,
    Figure 112022099174132-pct00256
    이고, 그리고
    BITSa는 상기 제1 소스 통계 값을 나타내는 데 사용되는 비트 수임 - ;
    다음 수식,
    Figure 112022099174132-pct00165

    에 따라 제2 소스 통계 값(bt+1)을 획득하고
    - 여기서, xt는 상기 디코딩된 이진 값이고,
    bt는 상기 제2 소스 통계 값의 이전 버전이고,
    nb는 제2 윈도우 크기 파라미터이고,
    Figure 112022099174132-pct00257
    이고, 그리고
    BITSb는 상기 제2 소스 통계 값을 나타내는 데 사용되는 비트 수임 - ;
    상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 기초하여 결합된 소스 통계 값을 결정하고;
    상기 결합된 소스 통계 값에 기초하여 간격 세분화를 위한 하나 이상의 범위 값을 결정하고; 그리고
    상기 하나 이상의 범위 값을 사용하여 상기 이진 시퀀스의 상기 인코딩된 표현을 상기 이진 시퀀스로 매핑하게 하는 명령들을 포함하는, 비디오 디코더.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 청구항 7에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    상기 결합된 소스 통계 값을 획득하기 위해 상기 제1 소스 통계 값과 상기 제2 소스 통계 값을 결합시키게 하는 명령들을 더 포함하며, 상기 결합된 소스 통계 값을 결정하는 경우, 상이한 가중치가 상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 적용되는, 비디오 디코더.
  16. 청구항 7에 있어서,
    BITSa는 BITSb와 상이한, 비디오 디코더.
  17. 삭제
  18. 청구항 7에 있어서,
    상기 제1 소스 통계 값과 상기 제2 소스 통계 값이 상이한 범위의 값을 포함하는, 비디오 디코더.
  19. 청구항 16에 있어서,
    상기 제1 윈도우 크기 파라미터는 상기 제2 윈도우 크기 파라미터와 상이하며, 상대적으로 더 큰 윈도우 크기 파라미터를 포함하는 소스 통계 값의 표현을 위해 상대적으로 더 많은 수의 비트가 사용되고, 상대적으로 더 작은 윈도우 크기 파라미터를 포함하는 소스 통계 값의 표현을 위해 상대적으로 더 적은 수의 비트가 사용되는, 비디오 디코더.
  20. 청구항 16에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    상기 결합된 소스 통계 값을 결정하기 전에,
    다음 수식,
    Figure 112022099174132-pct00183
    에 따라
    및/또는
    다음 수식,
    Figure 112022099174132-pct00184
    에 따라
    상기 제1 소스 통계 값(at) 및/또는 상기 제2 소스 통계 값(bt)의 숫자 표현을 수정하게 하는 명령들을 더 포함하며,
    여기서,
    Figure 112022099174132-pct00185
    인, 비디오 디코더.
  21. 청구항 18에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00186

    에 따라 상기 결합된 소스 통계 값(
    Figure 112022099174132-pct00187
    )을 결정하게 하고, 그리고
    상기 비디오 디코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00188

    에 따라 상기 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하게 하는 명령들을 더 포함하며,
    여기서, 가능성이 가장 높은 값(most-probable value)의 값은 다음 수식,
    Figure 112022099174132-pct00189

    에 따라 결정되고,
    BITStabRes는 상기 표의 엔트리의 수를 나타내는, 비디오 디코더.
  22. 청구항 18에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00190

    에 따라 상기 결합된 소스 통계 값(
    Figure 112022099174132-pct00191
    )을 결정하게 하고, 그리고
    상기 비디오 디코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00192

    에 따라 상기 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하게 하는 명령들을 더 포함하며,
    여기서, BITStabRes는 상기 표의 엔트리의 수를 나타내는, 비디오 디코더.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 청구항 7에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    상기 결합된 소스 통계 값으로부터 상태 인덱스(pStateIdx)를 결정하고;
    상기 상태 인덱스에 기초하여 가능성이 가장 높은 이진 값을 나타내는 값(valMPS)을 결정하고; 그리고
    상기 상태 인덱스에 기초하여 상기 간격 세분화를 위한 상기 하나 이상의 범위 값을 결정하게 하는 명령들을 더 포함하는, 비디오 디코더.
  32. 삭제
  33. 삭제
  34. 청구항 7에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    |na-nb|≥3이도록
    상기 제1 윈도우 크기 파라미터(na) 및 상기 제2 윈도우 크기 파라미터(nb)를 선택하게 하는 명령들을 더 포함하는, 비디오 디코더.
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 적어도 하나의 프로세서와 메모리를 포함하는 비디오 인코더로서, 상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금:
    이진 시퀀스를 산술 인코딩하여 상기 이진 시퀀스의 인코딩된 표현을 생성하는 것에 기초하여 비디오 컨텐츠를 인코딩하고;
    다음 수식,
    Figure 112023500803072-pct00203

    에 따라 제1 소스 통계 값, at+1을 획득하고
    - 여기서, xt는 디코딩된 이진 값이고,
    at은 상기 제1 소스 통계 값의 이전에 연산된 버전이고,
    na는 제1 윈도우 크기 파라미터이고,
    Figure 112023500803072-pct00258
    이고, 그리고
    BITSa는 상기 제1 소스 통계 값을 나타내는 데 사용되는 비트 수임 - ;
    다음 수식,
    Figure 112023500803072-pct00205

    에 따라 제2 소스 통계 값, bt+1을 획득하고
    - 여기서, xt는 상기 디코딩된 이진 값이고,
    bt는 상기 제2 소스 통계 값의 이전 버전이고,
    nb는 제2 윈도우 크기 파라미터이고,
    Figure 112023500803072-pct00259
    이고, 그리고
    BITSb는 상기 제2 소스 통계 값을 나타내는 데 사용되는 비트 수임 - ;
    상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 기초하여 결합된 소스 통계 값을 결정하고;
    상기 결합된 소스 통계 값에 기초하여 간격 세분화를 위한 하나 이상의 범위 값을 결정하고; 그리고
    상기 하나 이상의 범위 값을 사용하여 상기 이진 시퀀스를 상기 이진 시퀀스의 상기 인코딩된 표현으로 매핑하게 하는 명령들을 포함하는, 비디오 인코더.
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 청구항 42에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    상기 결합된 소스 통계 값을 획득하기 위해 상기 제1 소스 통계 값과 상기 제2 소스 통계 값을 결합하게 하는 명령들을 더 포함하며, 상기 결합된 소스 통계 값을 결정하는 경우, 상이한 가중치가 상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 적용되는, 비디오 인코더.
  51. 청구항 42에 있어서,
    BITSa는 BITSb와 상이한, 비디오 인코더.
  52. 삭제
  53. 청구항 42에 있어서,
    상기 제1 소스 통계 값과 상기 제2 소스 통계 값이 상이한 범위의 값을 포함하는, 비디오 인코더.
  54. 청구항 51에 있어서,
    상기 제1 윈도우 크기 파라미터는 상기 제2 윈도우 크기 파라미터와 상이하며, 상대적으로 더 큰 윈도우 크기 파라미터를 포함하는 소스 통계 값의 표현을 위해 상대적으로 더 많은 수의 비트가 사용되고, 상대적으로 더 작은 윈도우 크기 파라미터를 포함하는 소스 통계 값의 표현을 위해 상대적으로 더 적은 수의 비트가 사용되는, 비디오 인코더.
  55. 청구항 51에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    상기 결합된 소스 통계 값을 결정하기 전에,
    다음 수식,
    Figure 112022099174132-pct00223
    에 따라
    및/또는
    다음 수식,
    Figure 112022099174132-pct00224

    에 따라 상기 제1 소스 통계 값(at) 및/또는 상기 제2 소스 통계 값(bt)의 숫자 표현을 수정하게 하는 명령들을 더 포함하며,
    여기서,
    Figure 112022099174132-pct00225
    인, 비디오 인코더.
  56. 청구항 53에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00226

    에 따라 상기 결합된 소스 통계 값(
    Figure 112022099174132-pct00227
    )을 결정하게 하고, 그리고
    상기 비디오 인코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00228

    에 따라 상기 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하게 하는 명령들을 더 포함하며,
    가능성이 가장 높은 값의 값은 다음 수식,
    Figure 112022099174132-pct00229

    에 따라 결정되고,
    BITStabRes는 상기 표의 엔트리의 수를 나타내는, 비디오 인코더.
  57. 청구항 53에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00230

    에 따라 상기 결합된 소스 통계 값(
    Figure 112022099174132-pct00231
    )을 결정하게 하고, 그리고
    상기 비디오 인코더로 하여금,
    다음 수식,
    Figure 112022099174132-pct00232

    에 따라 상기 간격 세분화를 위해 미리 계산된 범위 값을 포함하는 표의 표 엔트리를 지정하는 인덱스 값(pStateIdx)을 도출하게 하는 명령들을 더 포함하며,
    여기서, BITStabRes는 상기 표의 엔트리의 수를 나타내는, 비디오 인코더.
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 청구항 42에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    상기 결합된 소스 통계 값으로부터 상태 인덱스(pStateIdx)를 결정하고;
    상기 상태 인덱스에 기초하여 가능성이 가장 높은 이진 값(valMPS)을 결정하고; 그리고
    상기 상태 인덱스에 기초하여 상기 간격 세분화를 위한 상기 하나 이상의 범위 값을 결정하게 하는 명령들을 더 포함하는, 비디오 인코더.
  67. 삭제
  68. 삭제
  69. 청구항 42에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    |na-nb|≥3이도록
    상기 제1 윈도우 크기 파라미터(na) 및 상기 제2 윈도우 크기 파라미터(nb)를 선택하게 하는 명령들을 더 포함하는, 비디오 인코더.
  70. 삭제
  71. 비디오 디코딩 방법으로서, 상기 방법은,
    이진 시퀀스의 인코딩된 표현을 산술 디코딩하는 것에 기초하여 비디오 컨텐츠를 디코딩하는 단계;
    다음 수식,
    Figure 112022099174132-pct00260

    에 따라 제1 소스 통계 값(at+1)을 획득하는 단계
    - 여기서, xt는 디코딩된 이진 값이고,
    at는 상기 제1 소스 통계 값의 이전 버전이고,
    na는 제1 윈도우 크기 파라미터이고,
    Figure 112022099174132-pct00261
    이고, 그리고
    BITSa는 상기 제1 소스 통계 값을 나타내는 데 사용되는 비트 수임 - ;
    다음 수식,
    Figure 112022099174132-pct00262

    에 따라 제2 소스 통계 값(bt+1)을 획득하는 단계
    - 여기서, xt는 상기 디코딩된 이진 값이고,
    bt는 상기 제2 소스 통계 값의 이전 버전이고,
    nb는 제2 윈도우 크기 파라미터이고,
    Figure 112022099174132-pct00263
    이고, 그리고
    BITSb는 상기 제2 소스 통계 값을 나타내는 데 사용되는 비트 수이며,
    Figure 112022099174132-pct00264
    >
    Figure 112022099174132-pct00265
    이며
    Figure 112022099174132-pct00266
    >
    Figure 112022099174132-pct00267
    임 - ;
    상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 기초하여 결합된 소스 통계 값을 결정하는 단계 - 상기 결합된 소스 통계 값을 결정하는 경우, 상이한 가중치가 상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 적용됨 - ;
    상기 결합된 소스 통계 값에 기초하여 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 단계; 및
    상기 하나 이상의 범위 값을 사용하여 상기 이진 시퀀스의 상기 인코딩된 표현을 상기 이진 시퀀스에 매핑하는 단계를 포함하는, 비디오 디코딩 방법.
  72. 삭제
  73. 비디오 인코딩 방법으로서, 상기 방법은,
    이진 시퀀스를 산술 인코딩하여 상기 이진 시퀀스의 인코딩된 표현을 생성하는 것에 기초하여 비디오 컨텐츠를 인코딩하는 단계;
    다음 수식,
    Figure 112023500803072-pct00268

    에 따라 제1 소스 통계 값(at+1)을 획득하는 단계
    - 여기서, xt는 디코딩된 이진 값이고,
    at은 상기 제1 소스 통계 값의 이전에 연산된 버전이고,
    na는 제1 윈도우 크기 파라미터이고,
    Figure 112023500803072-pct00269
    이고, 그리고
    BITSa는 상기 제1 소스 통계 값을 나타내는 데 사용되는 비트 수임 - ;
    다음 수식,
    Figure 112023500803072-pct00270

    에 따라 제2 소스 통계 값(bt+1)을 획득하는 단계
    - 여기서, xt는 상기 디코딩된 이진 값이고,
    bt는 상기 제2 소스 통계 값의 이전 버전이고,
    nb는 제2 윈도우 크기 파라미터이고,
    Figure 112023500803072-pct00271
    이고, 그리고
    BITSb는 상기 제2 소스 통계 값을 나타내는 데 사용되는 비트 수이며,
    Figure 112023500803072-pct00272
    >
    Figure 112023500803072-pct00273
    이며
    Figure 112023500803072-pct00274
    >
    Figure 112023500803072-pct00275
    임 - ;
    상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 기초하여 결합된 소스 통계 값을 결정하는 단계 - 상기 결합된 소스 통계 값을 결정하는 경우, 상이한 가중치가 상기 제1 소스 통계 값 및 상기 제2 소스 통계 값에 적용됨 - ;
    상기 결합된 소스 통계 값에 기초하여 간격 세분화를 위한 하나 이상의 범위 값을 결정하는 단계; 및
    상기 하나 이상의 범위 값을 사용하여 상기 이진 시퀀스를 상기 이진 시퀀스의 상기 인코딩된 표현에 매핑하는 단계를 포함하는, 비디오 인코딩 방법.
  74. 삭제
  75. 삭제
  76. 비일시적 디지털 저장 매체로서, 상기 비일시적 디지털 저장 매체 상에 저장된 컴퓨터 프로그램을 포함하며, 상기 컴퓨터 프로그램은, 컴퓨터에 의해 상기 컴퓨터 프로그램이 실행되는 경우 청구항 71 또는 청구항 73의 방법을 수행하는, 비일시적 디지털 저장 매체.
  77. 삭제
  78. 삭제
  79. 삭제
  80. 청구항 71에 있어서,
    상기 방법은, 컨텍스트 모델에 기초하여 상기 제1 윈도우 크기 파라미터(na) 및 상기 제2 윈도우 크기 파라미터(nb)를 결정하는 단계를 더 포함하는, 비디오 디코딩 방법.
  81. 청구항 73에 있어서,
    상기 방법은, 컨텍스트 모델에 기초하여 상기 제1 윈도우 크기 파라미터(na) 및 상기 제2 윈도우 크기 파라미터(nb)를 결정하는 단계를 더 포함하는, 비디오 인코딩 방법.
  82. 청구항 7에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 디코더로 하여금,
    컨텍스트 모델에 기초하여 상기 제1 윈도우 크기 파라미터(na) 및 상기 제2 윈도우 크기 파라미터(nb)를 결정하게 하는 명령들을 더 포함하는, 비디오 디코더.
  83. 청구항 42에 있어서,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 비디오 인코더로 하여금,
    컨텍스트 모델에 기초하여 상기 제1 윈도우 크기 파라미터(na) 및 상기 제2 윈도우 크기 파라미터(nb)를 결정하게 하는 명령들을 더 포함하는, 비디오 인코더.
KR1020207031124A 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림 KR102523750B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237012824A KR102617187B1 (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18165250 2018-03-29
EP18165250.4 2018-03-29
PCT/EP2019/058057 WO2019185893A1 (en) 2018-03-29 2019-03-29 Video decoder, video encoder, method for decoding a video content, method for encoding a video content, computer program and video bitstream

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237012824A Division KR102617187B1 (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림

Publications (2)

Publication Number Publication Date
KR20200128754A KR20200128754A (ko) 2020-11-16
KR102523750B1 true KR102523750B1 (ko) 2023-04-20

Family

ID=61868360

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237043745A KR20240005114A (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
KR1020237012824A KR102617187B1 (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
KR1020207031124A KR102523750B1 (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020237043745A KR20240005114A (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
KR1020237012824A KR102617187B1 (ko) 2018-03-29 2019-03-29 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림

Country Status (7)

Country Link
US (2) US11457230B2 (ko)
EP (1) EP3777197A1 (ko)
JP (2) JP7181941B2 (ko)
KR (3) KR20240005114A (ko)
CN (1) CN112313960B (ko)
TW (2) TWI799785B (ko)
WO (1) WO2019185893A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113846B2 (en) 2018-08-31 2021-09-07 Hulu, LLC Coefficient context modeling in video coding
EP4144090A4 (en) * 2020-05-22 2023-06-21 Beijing Bytedance Network Technology Co., Ltd. SUB-PICTURE SUB-BITSTREAM EXTRACTION ENHANCEMENTS
WO2023194108A2 (en) * 2022-04-08 2023-10-12 Interdigital Ce Patent Holdings, Sas Systems and methods associated with entropy coding
CN114640695B (zh) * 2022-04-24 2023-04-07 上海交通大学 一种智能工厂基于长序列双预测和informer的高频时序数据有效传输方法
WO2024050099A1 (en) * 2022-09-02 2024-03-07 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for intra block copy

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2721820A1 (en) * 2011-06-16 2014-04-23 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung E.V. Context initialization in entropy coding
US10148961B2 (en) * 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation

Also Published As

Publication number Publication date
JP7181941B2 (ja) 2022-12-01
KR102617187B1 (ko) 2023-12-27
KR20230057474A (ko) 2023-04-28
US20220417538A1 (en) 2022-12-29
TWI721396B (zh) 2021-03-11
US11457230B2 (en) 2022-09-27
TW202143728A (zh) 2021-11-16
TWI799785B (zh) 2023-04-21
US20210014512A1 (en) 2021-01-14
CN112313960B (zh) 2023-05-09
JP2021518716A (ja) 2021-08-02
CN112313960A (zh) 2021-02-02
KR20200128754A (ko) 2020-11-16
WO2019185893A1 (en) 2019-10-03
JP7451655B2 (ja) 2024-03-18
JP2023018041A (ja) 2023-02-07
EP3777197A1 (en) 2021-02-17
TW201943274A (zh) 2019-11-01
KR20240005114A (ko) 2024-01-11

Similar Documents

Publication Publication Date Title
KR102523750B1 (ko) 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
JP6560393B2 (ja) エントロピー符号化におけるコンテキスト初期化
US11039142B2 (en) Encoding and decoding of significant coefficients in dependence upon a parameter of the significant coefficients
US11290751B2 (en) Data encoding and decoding
CN113170132A (zh) 使用或适用于与依赖标量量化的组合的变换系数的有效编码
US11979584B2 (en) Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content
US20220239924A1 (en) Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content
JP2017168985A (ja) 符号化装置および符号化方法

Legal Events

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