KR102721249B1 - Arithmetic encoder, arithmetic decoder, video encoder, video decoder, encoding method, decoding method and computer program - Google Patents
Arithmetic encoder, arithmetic decoder, video encoder, video decoder, encoding method, decoding method and computer program Download PDFInfo
- Publication number
- KR102721249B1 KR102721249B1 KR1020217003652A KR20217003652A KR102721249B1 KR 102721249 B1 KR102721249 B1 KR 102721249B1 KR 1020217003652 A KR1020217003652 A KR 1020217003652A KR 20217003652 A KR20217003652 A KR 20217003652A KR 102721249 B1 KR102721249 B1 KR 102721249B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- state variable
- values
- probability
- arithmetic
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 159
- 238000004590 computer program Methods 0.000 title claims abstract description 27
- 230000006978 adaptation Effects 0.000 claims abstract description 54
- 238000013507 mapping Methods 0.000 claims description 120
- 238000013139 quantization Methods 0.000 claims description 76
- 230000007423 decrease Effects 0.000 claims description 36
- 230000007704 transition Effects 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000003247 decreasing effect Effects 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 10
- 101100510695 Arabidopsis thaliana LUT2 gene Proteins 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 8
- 238000005549 size reduction Methods 0.000 claims 6
- 230000006870 function Effects 0.000 description 61
- 238000013459 approach Methods 0.000 description 47
- 238000012545 processing Methods 0.000 description 40
- 230000008859 change Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 15
- 230000002829 reductive effect Effects 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 11
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000036515 potency Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
심볼 값을 가지는 복수 개의 심볼을 인코딩하기 위한 산술 인코더는, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보를 유도하도록 구성된다. 산술 인코더는, 인코딩될 하나 이상의 심볼의 산술적 인코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여, 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 룩업-테이블을 사용하여 매핑하고, 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 상기 룩업-테이블을 사용하여 매핑하도록 구성된다. 동일한 개념과 그 외의 개념에 기반하는, 추가적인 산술 인코더, 산술 디코더, 비디오 인코더, 비디오 디코더, 인코딩 방법, 디코딩 방법 및 컴퓨터 프로그램도 개시된다.An arithmetic encoder for encoding a plurality of symbols having symbol values is configured to derive interval size information for arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values representing statistics of a plurality of previously encoded symbol values having different adaptation time constants. The arithmetic encoder is configured to map a first state variable value, or a scaled version and/or a rounded version of the first state variable value, using a look-up table, and to map a second state variable value, or a scaled version and/or a rounded version of the second state variable value, using the look-up table, to obtain interval size information describing an interval size for arithmetic encoding of one or more symbols to be encoded. Additional arithmetic encoders, arithmetic decoders, video encoders, video decoders, encoding methods, decoding methods and computer programs based on the same and other concepts are also disclosed.
Description
본 발명에 따른 실시형태들은 산술 인코더를 생성한다.Embodiments according to the present invention create an arithmetic encoder.
본 발명에 따른 추가적인 실시형태들은 산술 디코더를 생성한다.Additional embodiments according to the present invention create an arithmetic decoder.
본 발명에 따른 추가적인 실시형태들은 비디오 인코더를 생성한다.Additional embodiments according to the present invention create a video encoder.
본 발명에 따른 추가적인 실시형태들은 비디오 디코더를 생성한다.Additional embodiments according to the present invention create a video decoder.
본 발명에 따른 추가적인 실시형태들은 복수 개의 심볼을 인코딩하기 위한 방법 및 복수 개의 심볼을 디코딩하기 위한 방법을 생성한다.Additional embodiments according to the present invention create a method for encoding a plurality of symbols and a method for decoding a plurality of symbols.
본 발명에 따른 추가적인 실시형태들은 대응하는 컴퓨터 프로그램을 생성한다.Additional embodiments according to the present invention generate a corresponding computer program.
일반적으로, 본 발명에 따른 실시형태들은 유한 상태 머신을 사용한 콘텍스트 모델 업데이트 방법을 생성한다.In general, embodiments according to the present invention generate a method for updating a context model using a finite state machine.
오디오 및 비디오 콘텐츠의 인코딩 및 디코딩에 있어서, 그리고 다른 타입의 정보, 예컨대 픽쳐, 신경망 계수 및 기타 등등의 인코딩에 있어서, 산술적 인코딩 및 디코딩은 가치가 높은 툴이라는 것이 밝혀졌다. 본 발명의 실시형태들은 이러한 애플리케이션들 모두를 위해서 사용될 수 있다. 예를 들어, 비디오 또는 오디오 콘텐츠(또는 다른 타입의 콘텐츠)를 나타내는 이진 시퀀스 내의 이진 값(예를 들어, 심볼)의 알려진 발생 확률을 활용하여 인코딩 효율을 높이는 것이 가능하다. 특히, 산술적 인코딩은 "0" 및 "1"의 변하는 확률을 효율적인 방식으로 다룰 수 있고, 확률의 변화에 미세-조절된 방식으로 적응할 수 있다.Arithmetic encoding and decoding has proven to be a valuable tool in encoding and decoding audio and video content, as well as in encoding other types of information, such as pictures, neural network coefficients, and so on. Embodiments of the present invention can be used for all of these applications. For example, it is possible to improve encoding efficiency by exploiting the known occurrence probabilities of binary values (e.g., symbols) within a binary sequence representing video or audio content (or other types of content). In particular, arithmetic encoding can handle the varying probabilities of "0" and "1" in an efficient manner, and can adapt to changes in probabilities in a fine-tuned manner.
그러나, 산술적 인코딩 및 디코딩이 최적의 코딩 효율을 가져올 수 있으려면, 실제 발생 빈도를 양호하게 반영하는, "0" 및 "1" 의 확률에 대한 양호한 정보를 가지는 것이 중요하다.However, for arithmetic encoding and decoding to achieve optimal coding efficiency, it is important to have good information about the probabilities of "0" and "1", which reflect their actual occurrence frequencies well.
"0" 및 "1"의 확률에 적응하기 위하여(또는 일반적으로, 인코딩될 심볼의 확률에 적응하기 위하여), 인터벌들의 경계를 값들의 총 (현재의) 범위 내에서 조절하여, 인터벌 하위-분할을 얻기 위한(예를 들어, 값들의 전체 범위가 상이한 이진 값 또는 이진 값들의 그룹과 연관된 인터벌들로 하위-분할되도록 하기 위한)개념이 통상적으로 사용된다.In order to adapt to the probabilities of "0" and "1" (or, more generally, to adapt to the probabilities of the symbols to be encoded), the concept of adjusting the boundaries of the intervals within the (current) total range of values, to obtain interval sub-partitions (e.g., so that the total range of values is sub-partitioned into intervals associated with different binary values or groups of binary values) is commonly used.
다르게 말하면, 상이한 심볼(예컨대 "0" 및 "1")의 확률에 대한 정보가 인터벌 크기 정보(또는, 등가적으로, 인터벌 크기 값)를 유도하기 위하여 사용되는데, 이것은 어떤 심볼과 연관된 인터벌의 폭을 기술한다(여기에서, 총 인터벌 폭은, 예를 들어 인터벌 재-정규화(re-normalization)에 기인하여, 예를 들어 인코딩 또는 디코딩 프로세스에 의존해서 시간에 따라 변할 수 있음).In other words, information about the probabilities of different symbols (e.g. "0" and "1") is used to derive interval size information (or, equivalently, interval size values), which describe the width of the interval associated with a certain symbol (wherein the total interval width may vary over time, e.g. due to interval re-normalization, or depending on the encoding or decoding process).
이에 따라서, 계산 효율과 신뢰도 사이에서의 양호한 절충을 제공하는, 소스 인터벌 하위-분할을 위한(예를 들어, 총 코딩 인터벌의 하위-분할을 위한) 통계 값(예를 들어 상태 변수 값) 및/또는 범위 값(예컨대, 인터벌 크기 값)을 결정하기 위한 개념에 대한 필요성이 존재한다.Accordingly, there is a need for a concept for determining statistical values (e.g., state variable values) and/or range values (e.g., interval size values) for source interval sub-partitions (e.g., for sub-partitions of the total coding interval) that provides a good compromise between computational efficiency and reliability.
본 발명에 따른 실시형태들은, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 인코더로서, 상기 산술 인코더는, 하나 이상의 인코딩될 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 0 및 1의 이진 값의 시퀀스)의 통계를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하도록 구성되고, 상기 산술 디코더는, 인코딩될 하나 이상의 심볼의 산술적 인코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 제 1 상태 변수 값(sk 1), 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 1* ak 1┘)을, 룩업-테이블(LUT1)을 사용하여 매핑하고, 제 2 상태 변수 값(sk 2), 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하도록 구성되는, 산술 디코더를 생성한다.Embodiments according to the present invention comprise an arithmetic encoder for decoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic encoder is configured to derive interval size information (p k , R*p k ) for arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g., a sequence of binary values of 0 and 1) with different adaptation time constants (which are associated with a given context mode, indicated by an index k , for example), and wherein the arithmetic decoder obtains interval size information (e.g., p k or R*p k ) describing an interval size for arithmetic encoding of one or more symbols to be encoded, by deriving a first state variable value (s k 1 ), or a scaled version and/or a rounded version of the first state variable value ( s k 1 * a k 1 ┘) is mapped using a lookup table (LUT1), and the second state variable value (s k 2 ), or a scaled version and/or a rounded version of the second state variable value ( s k 2 * a k 2 ) is configured to map using a lookup table (LUT1).
본 발명에 따른 이러한 실시형태는, 룩업-테이블-기반 매핑이 상이한 적응 시상수와 연관된 상태 변수 값에 적용된다면, 인터벌 크기 정보가 양호한 신뢰도로 획득될 수 있다는 사상에 기반한다. 다르게 말하면, 동일한 룩업 테이블을, 상이한 시간 스케일에서 통계(예를 들어 심볼 확률)를 기술하는 두 개의 상태 변수 값에 적용함으로써, 인터벌 크기 정보는 효율적인 방식이지만(오직 하나의 룩업 테이블만 필요하기 때문임) 양호한 신뢰도로(상이한 시간 스케일에서의 통계가 인터벌 크기 정보를 결정하는 데에 사용될 수 있기 때문임) 획득될 수 있다. 룩업 테이블을 사용하여 상태 변수 값을 매핑하는 것은, 상태 변수 값에 기반하여 인터벌 크기 정보를 유도하는 데에 있어서 중요한 중간 단계이라고 간주될 수 있다. 선택적으로, 하나 이상의 추가적인 매핑 및/또는 매핑 결과들의 조합이, 인터벌 크기 정보를 유도하는 데에 있어서 제 1 및 제 2 상태 변수 값의 룩업-테이블-기반 매핑 이후에 나올 수 있다. 선택적으로, 확률 값은 제 1 상태 변수 값 및 제 2 상태 변수 값의 룩업-테이블-기반 매핑을 사용하여, 중간 양으로서 획득될 수 있다. 더욱이, 제 1 상태 변수 값의 룩업-테이블-기반 매핑의 결과로부터 그리고 제 2 상태 변수 값의 룩업-테이블-기반 매핑의 결과로부터 인터벌 크기 정보를 유도하기 위한 다른 개념들도 가능하다.This embodiment according to the present invention is based on the idea that interval size information can be obtained with good reliability if a lookup-table-based mapping is applied to state variable values associated with different adaptation time constants. In other words, by applying the same lookup table to two state variable values describing statistics (e.g. symbol probabilities) at different time scales, the interval size information can be obtained in an efficient manner (since only one lookup table is needed) but also with good reliability (since statistics at different time scales can be used to determine the interval size information). Mapping the state variable values using the lookup table can be considered as an important intermediate step in deriving the interval size information based on the state variable values. Optionally, one or more additional mappings and/or combinations of mapping results may follow the lookup-table-based mapping of the first and second state variable values in deriving the interval size information. Optionally, the probability values can be obtained as intermediate quantities using a lookup-table-based mapping of the first state variable values and the second state variable values. Furthermore, other concepts are possible for deriving the interval size information from the result of the lookup-table-based mapping of the first state variable values and from the result of the lookup-table-based mapping of the second state variable values.
결론적으로, 본 발명에 따른 이러한 실시형태는 (적어도) 두 개의 룩업-테이블-기반 매핑을 사용하여, 제 1 상태 변수 값 및 제 2 상태 변수 값에 기반하여 인터벌 크기 정보를 유도하는 기술을 제공한다. 이에 따라서, 상이한 적응 시상수와 연관되는 상태 변수 값은 개별적으로, 하지만 동일한 매핑 규칙(룩업 테이블에 의하여 규정됨)을 사용하여 매핑될 수 있는데, 그러면 인터벌 크기 정보를 결정하기 위한 리소스 요구량이 합리적으로 작게 유지되지만, 상이한 적응 시상수 또는 통계 계산에 있어서 시상수로 획득된 복수 개의 이전에 처리된(예를 들어, 인코딩된 또는 디코딩된) 심볼의 통계(또는 그에 대한 통계 정보)를 여전히 고려할 수 있게 된다(예를 들어, 가중치가 부여된 고려를 할 수 있게 됨).In conclusion, this embodiment according to the present invention provides a technique for deriving interval size information based on a first state variable value and a second state variable value, using (at least) two lookup-table-based mappings. Accordingly, state variable values associated with different adaptation time constants can be mapped individually, but using the same mapping rule (defined by the lookup table), so that the resource requirement for determining the interval size information is kept reasonably small, but still allows taking into account (e.g. allowing for a weighted consideration) statistics of (or statistical information about) a plurality of previously processed (e.g. encoded or decoded) symbols obtained with the different adaptation time constants or the statistics calculations.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된(rounded) 버전(sk 1* ak 1 )을 상기 룩업 테이블을 사용하여 제 1 확률 값(pk 1)으로 매핑하도록 구성되고, 상기 산술 인코더는, 상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을 상기 룩업 테이블을 사용하여 제 2 확률 값(pk 2)으로 매핑하도록 구성되며, 상기 산술 인코더는 상기 제 1 확률 값 및 상기 제 2 확률 값을 사용하여 결합된 확률 값(pk]을 획득하도록 구성된다(예를 들어, 가중 합산을 사용하거나 가중 평균화를 사용함).In a preferred embodiment, the arithmetic encoder comprises: a scaled version and/or a rounded version of the first state variable value, or s k 1 * a k 1 ) is configured to map the first probability value (p k 1 ) using the lookup table, and the arithmetic encoder is configured to map the second state variable value, or a scaled version and/or a rounded version of the second state variable value ( s k 2 * a k 2 ) is configured to map the first probability value (p k 2 ) to a second probability value (p k 2 ) using the lookup table, and the arithmetic encoder is configured to obtain a combined probability value (pk] using the first probability value and the second probability value (e.g., using weighted summation or weighted averaging).
이러한 개념을 사용하면, 심볼 확률(예를 들어, "1" 심볼의 확률 또는 "0" 심볼의 확률)을 기술하는 결합된 확률 값이, 제 1 상태 변수 값에 기반하여 그리고 제 2 상태 변수 값에 기반하여 용이하게 유도될 수 있다. 예를 들어, 이전에 처리된(예를 들어, 인코딩된 또는 디코딩된) 심볼을 제 1 민첩도(agility)로 추종하는 제 1 상태 변수 값은 제 1 확률 값으로 매핑될 수 있고, 이전에 처리된(예를 들어, 인코딩된 또는 디코딩된) 심볼을 제 2 민첩도로 추종하는 제 2 상태 변수 값은 제 2 확률 값으로 효율적으로 매핑될 수 있다. 그러므로, 상이한 시간 스케일에서 발생되는 이전에 처리된 심볼의 경향성이 고려될 수 있고, 결합된 확률 값을 매우 효율적인 방식으로 유도하는 것도 여전히 가능하다. 제 1 및 제 2 상태 변수 값은 상이한 적응 시상수를 가지는 이전에 처리된 심볼들의 경향성을 추종할 수 있게 하고, 결합된 확률 값에 기여하는 "부분" 확률 값(제 1 확률 값 및 제 2 확률 값)으로 상태 변수 값을 매핑하는 것은, 앞에서 언급된 개념을 사용하여 매우 리소스-효율적인 방식으로 이루어질 수 있다.Using this concept, a combined probability value describing a symbol probability (e.g., the probability of a "1" symbol or the probability of a "0" symbol) can be easily derived based on the first state variable value and based on the second state variable value. For example, a first state variable value that follows a previously processed (e.g., encoded or decoded) symbol with a first agility can be mapped to the first probability value, and a second state variable value that follows a previously processed (e.g., encoded or decoded) symbol with a second agility can be efficiently mapped to the second probability value. Therefore, the tendency of previously processed symbols to occur at different time scales can be taken into account, and it is still possible to derive a combined probability value in a very efficient manner. The first and second state variable values can follow the tendencies of previously processed symbols with different adaptation time constants, and mapping the state variable values to "partial" probability values (the first probability value and the second probability value) contributing to the combined probability value can be done in a very resource-efficient manner using the concepts mentioned above.
바람직한 실시형태에서, 산술 인코더는, 인코딩될 심볼이 제 1 값(예를 들어 "1")을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고(예를 들어 더 큰 양수가 되도록), 그리고 인코딩될 심볼이 제 1 값과 다른 제 2 값(예를 들어 "0")을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록(예를 들어 더 큰 음수가 되도록) 구성되고(예를 들어, 상태 변수 값이 양수 및 음수 값을 가질 수 있게 함), 상기 산술 인코더는, 평가될 룩업-테이블의 엔트리를 개별적인 상태 변수 값의 절대 값(sk i>0이면 sk i이고, 그 외의 경우에는 -sk i임)에 의존하여(예를 들어 상태 변수 값의 절대 값의 스케일링되고 반올림된 버전에 의존하여) 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to change the state variable value in a first direction (e.g., to become a larger positive number) if the symbol to be encoded has a first value (e.g., "1"), and to change the state variable value in a second direction (e.g., to become a larger negative number) if the symbol to be encoded has a second value different from the first value (e.g., "0") (e.g., so that the state variable value can have both positive and negative values), and the arithmetic encoder is configured to determine which lookup-table entry to evaluate depends on the absolute value of the individual state variable value ( e.g. , depends on a scaled and rounded version of the absolute value of the state variable value ) (e.g., depends on a scaled and rounded version of the absolute value of the state variable value).
예를 들어 양수 및 음수 값을 가질 수 있는(예를 들어, 이전에 처리된 심볼의 이력에 의존하여, 그리고, 예를 들어 이전에 처리된 반대의 심볼들에 대해서 대칭적인 방식으로 가질 수 있음) 상태 변수 값을 사용함으로써, 그리고 개별적인 상태 변수 값의 절대 값에 의존하여 룩업 테이블의 엔트리를 선택함으로써, 이러한 개념의 효율성이 더 향상될 수 있다. 상태 변수 값의 각각의 가능한 값(또는 양자화된 값)에 대해서 더 이상 룩업 테이블의 전용 엔트리를 가질 필요가 없다. 오히려, 룩업 테이블의 어떤 엔트리를 양수인 상태 변수 값 및 대응하는 음수인 상태 변수 값(즉, 동일한 절대 값을 가지지만 반대인 부호를 가지는 "반전(inverse)" 상태 변수 값) 양자 모두에 대해서 중복하여 사용하는 것이 가능하다. 결과적으로, 룩업 테이블의 엔트리의 개수가 적게 유지될 수 있고, 반대인 이전에 처리된 심볼에 대한 인터벌 크기 정보의 결정의 "대칭성(symmetry)"이 활용될 수 있다.The efficiency of this concept can be further improved by using state variable values that can have positive and negative values (e.g., depending on the history of previously processed symbols, and, e.g., in a symmetrical manner with respect to previously processed opposite symbols), and by selecting entries in the lookup table based on the absolute value of the individual state variable values. There is no longer a need to have a dedicated entry in the lookup table for each possible value (or quantized value) of the state variable value. Rather, it is possible to use an entry in the lookup table redundantly for both a positive state variable value and a corresponding negative state variable value (i.e., an "inverse" state variable value with the same absolute value but opposite sign). As a result, the number of entries in the lookup table can be kept small, and the "symmetry" of the determination of interval size information for opposite previously processed symbols can be exploited.
바람직한 실시형태에서, 상기 산술 인코더는, 제 1 상태 변수 값이 제 1 부호(예를 들어, 양의 부호)를 가지면, 상기 제 1 확률 값(pk 1)을, 상기 룩업 테이블에 의하여 제공되는 값으로(예를 들어, 로) 설정하도록 구성되고, 상기 산술 인코더는, 상기 제 1 상태 변수 값이 제 2 부호(예를 들어, 음의 부호)를 가지면, 상기 제 1 확률 값(pk 1)을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값(예를 들어, 1)으로부터 감산함으로써 얻어지는 값으로(예를 들어, 로) 설정하도록 구성된다.In a preferred embodiment, the arithmetic encoder, if the first state variable value has a first sign (e.g., a positive sign), sets the first probability value (p k 1 ) to a value provided by the lookup table (e.g., is configured to set the first probability value (p k 1 ) to a value obtained by subtracting a value provided by the lookup table from a predetermined value (e.g., 1), if the first state variable value has a second sign (e.g., a negative sign), (e.g., It is configured to set (as shown).
이러한 메커니즘을 사용하면, 룩업-테이블의 엔트리의 개수가 작게 유지될 수 있고((예를 들어, 룩업 테이블의 엔트리가 개별적인 상태 변수 값의 절대 값에 기반하여 선택되기 때문임), 하지만 개별적인 상태 변수 값의 반대인 부호에 대해 "보완적인(complimentary)" 확률 값을 획득하는 것이 여전히 가능하다. 그러므로, 확률 값을 결정하기 위해서, 높은 수준의 리소스-효율 및 낮은 계산에 있어서 복잡도가 얻어진다.Using this mechanism, the number of entries in the lookup table can be kept small (e.g., because the entries in the lookup table are selected based on the absolute value of the individual state variable values), but it is still possible to obtain "complimentary" probability values for the opposite sign of the individual state variable values. Therefore, a high level of resource-efficiency and low computational complexity is obtained for determining the probability values.
바람직한 실시형태에서, 산술 인코더는 두 개 이상의 확률 값 pk i를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to determine two or more probability values p k i according to:
여기에서 LUT1은 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk i는 i-번째 상태 변수 값이고; ak i는 i-번째 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT1 is a lookup table containing probability values; . is the floor operator; s k i is the i-th state variable value; a k i is a weight associated with the i-th state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
이러한 계산이 계산에 있어서 효율적이고 리소스-요구량을 합리적으로 적게 유지시킨다는 것이 발견되었다.It was found that these calculations are computationally efficient and keep resource requirements reasonably low.
바람직한 실시형태에서, 산술 인코더는 두 개 이상의 확률 값 pk i를 다음에 따라서 결정하도록 구성되고In a preferred embodiment, the arithmetic encoder is configured to determine two or more probability values p k i according to
여기에서 LUT1은 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk i는 i-번째 상태 변수 값이고; ak i는 i-번째 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT1 is a lookup table containing probability values; . is the floor operator; s k i is the i-th state variable value; a k i is a weight associated with the i-th state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
이러한 계산이, 실제 수치 표현에 의존하여, 일부 상황에서 유리하다는 것이 발견되었다. 특히, 바닥 연산자는 상태 변수 값의 부호와 무관하게 동일한 피연산자에 적용된다. 특히, 바닥 연산자의 피연산자의 부호를 제거할 필요가 없고, 따라서 일부 계산에 있어서 복잡도가 절약된다. 오히려, 음수화(negation)는 바닥 연산자의 결과에만 적용되고, 이것은 통상적으로 정수 값이다. 이에 따라서, 음수화 연산자를 적용하기 위한 복잡도가 특히 작다. 다르게 말하면, 본 명세서에서 설명되는 바와 같은 개념은 특히 낮은 복잡도도 동반한다.It has been found that such computations, depending on the actual numerical representation, are advantageous in some situations. In particular, the floor operator is applied to the same operands regardless of the sign of the state variable values. In particular, there is no need to remove the sign of the operands of the floor operator, thus saving complexity in some computations. Rather, negation is applied only to the result of the floor operator, which is typically an integer value. Accordingly, the complexity for applying the negation operator is particularly small. In other words, the concept as described herein also entails particularly low complexity.
바람직한 실시형태에서, 산술 인코더는 결합된 확률 값 pk를 복수 개의 확률 값 pk i에 의존하여 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is configured to obtain a combined probability value p k depending on a plurality of probability values p k i according to:
여기에서 N은 고려되는 확률 값의 개수이고(그리고, 고려되는 상태 변수 값의 개수와 같을 수 있음); bk i는 가중치(예를 들어, 결합된 확률 값에 대한 개별적인 상태 변수 값의 영향을 제어하는 가중치 인자)이며(여기에서 bk i는 2의 정수-값인 포텐시(potencies)인 것이 바람직하고, 두 개의 상이한 bk i 사이의 비율은 2의 정수-값인 포텐시인 것이 바람직하다.Here, N is the number of probability values considered (and can be equal to the number of state variable values considered); b k i are weights (e.g., weighting factors controlling the influence of individual state variable values on the combined probability value) (wherein b k i are preferably integer-valued potencies of 2, and the ratio between two different b k i is preferably an integer-valued potency of 2).
획득된 확률 값에 상이한 상태 변수 값에 기반하여 상이한 가중치를 적용함으로써, 결합된 확률 값에 대한 단기 통계 및 장기 통계의 상이한 영향이 고려될 수 있고, 특히 의미 있는 결합된 확률 값이 획득될 수 있다.By applying different weights to the obtained probability values based on different state variable values, different influences of short-term statistics and long-term statistics on the combined probability values can be considered, and a particularly meaningful combined probability value can be obtained.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 1* ak 1 )을, 그 엔트리가 상기 제 1 상태 변수 값에 의존하고(예를 들어, 확률 인덱스 i를 사용하여, 예를 들어 제 1 룩업 테이블 엔트리 좌표를 결정하기 위하여), 심볼의 인코딩 이전의 산술적 인코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R 또는 R로부터 유도된 인덱스 j)에 의존하여(예를 들어, 제 2 룩업 테이블 좌표를 결정하기 위하여) 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 1 하위인터벌 폭 값(subinterval width value)(R*pk 1)으로 매핑하도록 구성되고, 상기 산술 인코더는, 상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 1* ak 1 )을, 그 엔트리가 상기 제 2 상태 변수 값에 의존하고(예를 들어, 제 1 룩업 테이블 엔트리 좌표를 결정하기 위하여), 심볼의 인코딩 이전의 산술적 인코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)에 의존하여(예를 들어, 제 2 룩업 테이블 좌표를 결정하기 위하여) 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 2 하위인터벌 폭 값(subinterval width value)(R*pk 2)으로 매핑하도록 구성되며, 상기 산술 인코더는, 조합된 하위인터벌 폭 값을, 상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여(예를 들어, 가중 합산 또는 가중 평균화를 사용하여) 획득하도록 구성된다.In a preferred embodiment, the arithmetic encoder comprises: a scaled version and/or a rounded version of the first state variable value, or s k 1 * a k 1 ) is configured to map a first subinterval width value (R*p k 1 ) using a two-dimensional lookup table, the entry of which depends on the first state variable value (e.g., using a probability index i, for example, to determine the first lookup table entry coordinate) and on coding interval size information (e.g., an index j derived from R or R) describing the size of a coding interval of an arithmetic encoding prior to encoding of a symbol (e.g. , to determine the second lookup table coordinate), wherein the arithmetic encoder is configured to map the second state variable value, or a scaled version and / or a rounded version of the second state variable value ( s k 1 * a k 1 ) is configured to map a second subinterval width value (R*p k 2 ) using a two-dimensional lookup table, the entry of which depends on the second state variable value (e.g., to determine the first lookup table entry coordinate) and is addressed depending on coding interval size information (e.g., R ) describing the size of a coding interval of an arithmetic encoding prior to encoding of a symbol (e.g., to determine the second lookup table coordinate), wherein the arithmetic encoder is configured to obtain a combined subinterval width value using the first subinterval width value and the second subinterval width value (e.g., using weighted summation or weighted averaging).
복수 개의 상이한 확률 값과 복수 개의 상이한 인터벌 크기 값의 승산(multiplication)을 반영하는 이러한 2-차원 룩업 테이블을 사용함으로써, 계산에 있어서 복잡도가 감소될 수 있는데, 그 이유는 승산 연산이 절약될 수 있기 때문이다. 예를 들어, 2-차원 룩업 테이블의 엔트리를 지정하는 두 개의 인덱스들(행 인덱스 및 열 인덱스) 중 하나는 개별적인 상태 변수 값(또는 그것의 스케일링된 버전 및/또는 반올림된 버전)에 의해 규정되고, 제 2 인덱스는 현재의 (총) 코딩 인터벌 크기에 의해 결정된다. 그러므로, 제 1 인덱스 및 제 2 인덱스에 기반하여, 이차원 룩업 테이블의 원소(엔트리)가 고유하게 식별될 수 있고, 식별된 원소는 개별적인 상태 변수 값과 연관된 확률 값 및 제 2 테이블 인덱스와 연관된 코딩 인터벌 크기의 곱을 통상적으로 반영한다. 결과적으로, 일부 경우에서는 판독-전용 메모리일 수 있는 일부 메모리를 2-차원 룩업 테이블을 위해 소모함으로써, 승산 연산의 실행이 절약될 수 있고, 이것은 계산에 있어서 리소스의 관점에서 그리고 또한 에너지 소모량의 관점에서 유익할 수 있다.By using such a two-dimensional lookup table reflecting the multiplication of a plurality of different probability values and a plurality of different interval size values, the computational complexity can be reduced, because the multiplication operations can be saved. For example, one of the two indices (the row index and the column index) designating an entry of the two-dimensional lookup table is determined by the individual state variable value (or a scaled and/or rounded version thereof), and the second index is determined by the current (total) coding interval size. Therefore, based on the first index and the second index, an element (entry) of the two-dimensional lookup table can be uniquely identified, and the identified element typically reflects the product of the probability value associated with the individual state variable value and the coding interval size associated with the second table index. As a result, in some cases, the execution of the multiplication operation can be saved by consuming some memory, which may be read-only memory, for the two-dimensional lookup table, which can be computationally beneficial from a resource perspective and also from an energy consumption perspective.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업 테이블은, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리(일차원 룩업 테이블을 형성함), 및 상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터() 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있다.In a preferred embodiment of the arithmetic encoder, the two-dimensional lookup table comprises: a scaled version and/or a rounded version of the first state variable value and the second state variable value, or a scaled version and/or a rounded version of the first state variable value and the second state variable value ( s k * a k ; ) comprising a first 1-dimensional vector entry (forming a one-dimensional lookup table) containing probability values for different value intervals of the value domain, and a second 1-dimensional vector ( comprising a quantization level for the coding interval size information) ) can be expressed as a dyadic product between entries.
이러한 삼차원 룩업 테이블을 사용함으로써, 확률 값 및 코딩 인터벌 크기의 상이한 쌍들 사이의 승산 연산이 테이블에 의해 반영될 수 있다. 이에 따라서, 이차원 룩업 테이블의 적절한 원소를 선택함으로써, 승산 연산의 실행이 절약될 수 있다. 더 나아가, 2-차원 룩업 테이블의 엔트리가 이러한 접근법을 사용하여 매우 간단한 방식으로 획득될 수 있다.By using this three-dimensional lookup table, the multiplication operation between different pairs of probability values and coding interval sizes can be reflected by the table. Accordingly, by selecting appropriate elements of the two-dimensional lookup table, the execution of the multiplication operation can be saved. Furthermore, the entries of the two-dimensional lookup table can be obtained in a very simple manner using this approach.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고, 상기 2-차원 룩업-테이블의 원소들의 제 1 그룹(또는 블록; 예를 들어, "상부 절반")은 상기 베이스 룩업-테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며, 상기 2-차원 룩업-테이블의 원소들의 제 2 그룹(또는 블록; 예를 들어, "하부 절반")은 상기 베이스 룩업-테이블의 원소의 스케일링된 버전 및 반올림된 버전이다.In a preferred embodiment of the arithmetic encoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a base lookup table (Base TabLPS), a first group (or block; e.g., "upper half") of the elements of the two-dimensional lookup-table are identical to the elements of the base lookup-table or are rounded versions of the elements of the base lookup-table, and a second group (or block; e.g., "lower half") of the elements of the two-dimensional lookup-table are scaled versions and rounded versions of the elements of the base lookup-table.
이러한 접근법을 사용함으로써, 이차원 룩업 테이블의 원소의 근사적으로 지수적인 증가 또는 감쇠가 얻어질 수 있다. 예를 들어, 이차원 룩업 테이블의 원소를, 이차원 룩업 테이블의 원소들의 제 2 그룹이 실질적으로(예를 들어, 반올림에 의해 생긴 편차를 제외하고는) 이차원 룩업 테이블의 원소들의 제 1 그룹의 원소의 스케일링된 버전이 되도록 규정함으로써, 고도로 균일한 이차원 룩업 테이블이 얻어질 수 있다. 또한, 이러한 접근법을 사용하여 이차원 룩업 테이블의 원소를 얻는 것이 쉽게 가능하다는 것에 주의해야 한다.By using this approach, an approximately exponential growth or decay of elements of a two-dimensional lookup table can be obtained. For example, by defining the elements of the two-dimensional lookup table such that the second group of elements of the two-dimensional lookup table are substantially (for example, except for deviations caused by rounding) scaled versions of the elements of the first group of elements of the two-dimensional lookup table, a highly uniform two-dimensional lookup table can be obtained. It should also be noted that it is easy to obtain elements of a two-dimensional lookup table by using this approach.
산술 인코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소들의 제 2 그룹은 상기 베이스-룩업 테이블의 원소의 우측-천이된 버전이다.In a preferred embodiment of the arithmetic encoder, the second group of elements of the two-dimensional lookup-table are right-shifted versions of the elements of the base lookup table.
이러한 접근법을 사용함으로써, 이차원 룩업 테이블의 원소는 특히 효율적인 방식으로 획득될 수 있는데, 그 이유는 우측-천이 연산이 매우 쉽게 수행될 수 있기 때문이다. 또한, 우측-천이 연산은 적절한 스케일링이 일어나게 하고, 또한 반올림 연산을 매우 효율적인 방식으로 수행할 수 있다.By using this approach, elements of a two-dimensional lookup table can be obtained in a particularly efficient manner, because the right-shift operation can be performed very easily. In addition, the right-shift operation allows for proper scaling and also allows rounding operations to be performed in a very efficient manner.
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(Qp2(pLPS) 또는 i))는 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고, 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를 양자화함으로써 얻어짐)의 제 1 범위(예를 들어, 0 및 -1 사이)는 원소들의 제 1 그룹의 원소와 연관되고, 및 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를, 예를 들어 양자화 함수 Qp2(.)를 사용하여 양자화함으로써 얻어짐)의 제 2 범위(예를 들어, μ 이상임)는 원소들의 제 2 그룹의 원소와 연관된다.In a preferred embodiment of the arithmetic encoder, the probability indices (Qp 2 (p LPS ) or i)) determine whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated, and a first range (e.g. between 0 and -1) of the probability indices (which are obtained, for example, by quantizing the probability values, for example p LPS ) is associated with elements of the first group of elements, and a second range (e.g. greater than or equal to μ) of the probability indices (which are obtained, for example, by quantizing the probability values, for example p LPS , for example using a quantization function Qp2(.) ) is associated with elements of the second group of elements.
이러한 개념을 사용함으로써, 원소들의 제 1 그룹의 원소 또는 원소들의 제 2 그룹의 원소가 사용되어야 하는지의 구별이, 예를 들어 개별적인 상태 변수 값에 기반할 수 있는 확률 인덱스에 의존하여 이루어질 수 있다. 예를 들어, 확률 인덱스(이것은, 예를 들어 가능성이 가장 낮은(least probable) 심볼의 확률에 의하여, 또는 정수 인덱스 값에 의하여 규정될 수 있음)는, 예를 들어 개별적인 상태 변수 값에 기반하여 매핑을 사용하여 유도될 수 있다. 예를 들어, 제 1 상태 변수 값의 매핑을 사용하여 획득된 제 1 확률 값, 또는 제 2 상태 변수 값의 매핑을 사용하여 획득된 제 2 확률 값은, 이차원 룩업 테이블의 어떤 원소가 평가되어야 하는지를 결정하기 위하여 사용될 수 있다(그리고, 특히, 이차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 이차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지를 결정한다).By using this concept, the distinction whether an element of a first group of elements or an element of a second group of elements should be used can be made, for example, based on a probability index which can be based on individual state variable values. For example, a probability index (which can be defined, for example, by the probability of the least probable symbol, or by an integer index value) can be derived, for example, using a mapping based on individual state variable values. For example, a first probability value obtained using a mapping of the first state variable value, or a second probability value obtained using a mapping of the second state variable value, can be used to determine which element of the two-dimensional lookup table should be evaluated (and, in particular, whether an element of the first group of elements of the two-dimensional lookup table or an element of the second group of elements of the two-dimensional lookup table should be evaluated).
또한, 이러한 개념을 사용하면, 이차원 룩업 테이블의 개별적인 원소를, 그 원소의 개수가 확률 인덱스 및 코딩 인터벌 크기 인덱스에 의해 어드레싱될 수 있는 테이블 원소들의 개수보다 작은 베이스 룩업 테이블에 기반하여 "신속하게(on the fly)" 결정하는 것이 가능하다.Furthermore, using this concept, it is possible to determine individual elements of a two-dimensional lookup table "on the fly" based on a base lookup table whose number of elements is smaller than the number of table elements that can be addressed by the probability index and the coding interval size index.
산술 인코더의 바람직한 실시형태에서, 상기 확률 인덱스(i) 및 상기 제 1 크기 값(예를 들어 μ; 여기에서, 예를 들어 크기 값은 베이스 룩업 테이블의 제 1 방향으로의 확장(extension)을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ) 및 인터벌 크기 인덱스(예를 들어 인터벌 크기 정보(R)에 기반하여, 예를 들어 양자화 연산 Qr2(.)를 사용하여 획득될 수 있음; 예를 들어, j)는, 베이스 룩업 테이블의 어떤 원소가 2-차원 룩업 테이블의 원소를 획득하기 위하여 사용되는지를 결정한다.In a preferred embodiment of the arithmetic encoder, the division remainder (i%μ) of the division between the probability index (i) and the first magnitude value (e.g. μ; where, for example, the magnitude value describes the extension of the base lookup table in the first direction) and the interval magnitude index (e.g., based on the interval magnitude information (R), which can be obtained, for example, using a quantization operation Qr2(.); for example, j) determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
이러한 개념을 사용함으로써, 베이스 룩업 테이블의 제 1 방향으로의 확장이 가능한 확률 인덱스 값의 개수보다 작더라도, 베이스 룩업 테이블의 적절한 원소가 선택될 수 있다. 확률 인덱스 및, 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술할 수 있는 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지를 평가함으로써, 베이스 룩업 테이블의 원소가 두 개 이상의 상이한 확률 인덱스 값(이들은, 예를 들어 제 1 크기 값만큼 다를 수 있음)에 대해서 재사용될 수 있다. 결과적으로, 베이스 룩업 테이블의 엔트리는, 제 1 크기 값만큼 다른 두 개의 확률 인덱스 값들에 대하여, 예를 들어 상이한 스케일링을 사용하여 두 번 사용될 수 있다. 이에 따라서, 2-차원 룩업 테이블이 확률 인덱스 값들에 걸친 순환(evolution)을 통상적으로 기술한다는 것이 활용될 수 있는데, 여기에서 확률 인덱스 값의 제 2 범위 내에서의 순환은 확률 인덱스 값의 제 1 범위 내에서의 순환에 비교할 때 스케일링된 버전(예를 들어, 반올림 효과를 제외함)이다.By using this concept, an appropriate element of the base lookup table can be selected even if the number of probability index values for which the base lookup table can be extended in the first direction is smaller than the number of possible probability index values. By evaluating the remainder of the division between the probability index and the first magnitude value that can describe the extension of the base lookup table in the first direction, an element of the base lookup table can be reused for two or more different probability index values (which can differ, for example, by the first magnitude value). As a result, an entry of the base lookup table can be used twice, for example, using different scaling, for two probability index values that differ by the first magnitude value. Accordingly, it can be exploited that a two-dimensional lookup table typically describes an evolution over the probability index values, where the evolution within the second range of probability index values is a scaled version (for example, excluding rounding effects) of the evolution within the first range of probability index values.
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블(RangTabLPS)의 원소를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is configured to obtain elements of a two-dimensional lookup table (RangTabLPS) according to:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j), i/μ);RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j), i/μ );
여기에서 BaseTabLPS는 차원 μ x λ인 베이스 룩업 테이블이고; i는 확률 정보와 연관된 테이블 인덱스이며; j는 인터벌 크기 정보(예를 들어 현재의 코딩 인터벌 크기를 기술함)와 연관된 테이블 인덱스이고; %는 나눗셈 나머지 연산이며; /는 나눗셈 연산이고; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, BaseTabLPS is a base lookup table of dimension μ x λ; i is a table index associated with probability information; j is a table index associated with interval size information (e.g., describing the current coding interval size); % is a division remainder operation; / is a division operation; and Scal(x, y) is a scaling function (e.g., Scal(x, y) = x*a -by As defined, . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
이러한 접근법을 사용함으로써, 스케일링 함수 또는 스케일링 연산의 결과에 의해 규정될 수 있는 인터벌 크기 정보가, 특히 메모리-효율적인 방식으로 획득될 수 있다. 예를 들어, "BaseTabLPS" 룩업 테이블은 작을 수 있는데, 그 이유는 그 제 1 차원 μ가 확률 정보와 연관된 테이블 인덱스 t의 값들의 범위보다 통상적으로 더 작기 때문이고, 그리고 그 제 2 차원 λ가 인터벌 크기 정보에 의해 기술되는 가능한 상이한 인터벌 크기의 개수와 같을 수 있기 때문이다. 더 나아가, 스케일링 함수는 특히 효율적인 방식으로 구현될 수 있는데, 그 이유는 t 및 μ의 몫의 바닥-연산에 의해 규정되는 상이한 스케일링 인자의 개수가 상대적으로 적기 때문이다. 예를 들어, t 및 μ 사이의 나눗셈의 범위가 0 및 2 미만인 최대 값 사이라면, 오직 두 개의 상이한 스케일링 연산들만이 수행될 수 있다. 예를 들어, 오직 두 개, 세 개 또는 네 개의 상이한 스케일링 옵션만이 존재할 수 있고(t 및 μ 사이의 몫에 의존함), 이러한 스케일링 옵션들은 오직 수 개의 미리 결정된 값들만이 있는 승산을 사용하거나 심지어 천이 연산만을 사용하여 효율적으로 구현될 수 있다.By using this approach, interval size information, which can be specified by the result of a scaling function or a scaling operation, can be obtained in a particularly memory-efficient manner. For example, the "BaseTabLPS" lookup table can be small, because its first dimension μ is typically smaller than the range of values of the table index t associated with the probability information, and its second dimension λ can be equal to the number of possible different interval sizes described by the interval size information. Furthermore, the scaling function can be implemented in a particularly efficient manner, because the number of different scaling factors specified by the floor-operation of the quotient of t and μ is relatively small. For example, if the range of the division between t and μ is between 0 and a maximum value less than 2, only two different scaling operations can be performed. For example, there may be only two, three or four different scaling options (depending on the quotient between t and μ), and these scaling options can be efficiently implemented using only a few predetermined values of multiplication, or even only transition operations.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고, 상기 확률 테이블은, 복수 개의 확률 값들의 세트(예를 들어, 인덱스 i에 의해 표현됨)에 대한 그리고 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며, 상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 및/또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업-테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도된다.In a preferred embodiment of the arithmetic encoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a probability table (probTabLPS), the probability table describing interval sizes for a set of a plurality of probability values (e.g. represented by an index i) and for a given (reference) coding interval size, and the elements of the two-dimensional lookup-table for probability values not included in the set of the plurality of probability values and/or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
이러한 접근법을 사용함으로써, 상이한 인터벌 크기가, 연관된 확률 값들 사이의 차이 및/또는 연관된 코딩 인터벌 크기들 사이의 차이에 의존하는 스케일링에 의해서, 흔히 서로 연관된다는 것이 활용될 수 있다. 다르게 말하자면, 이차원 룩업 테이블이 현재 고려되는 확률 값 및/또는 현재 고려되는 코딩 인터벌 크기에 맞춤되는 원소를 포함하지 않는다면, 적절한 인터벌 크기가 여전히 획득될 수 있고, 이차원 룩업 테이블의 다른 원소는 이에 따라서 스케일링된다(예를 들어, 현재 고려되는 확률 값에 의존하여 및/또는 현재 고려되는 코딩 인터벌 크기에 의존하여 스케일링됨).By using this approach, it can be exploited that different interval sizes are often related to each other by scaling that depends on the difference between the associated probability values and/or the difference between the associated coding interval sizes. In other words, if the two-dimensional lookup table does not contain an element that is tailored to the currently considered probability value and/or the currently considered coding interval size, an appropriate interval size can still be obtained and the other elements of the two-dimensional lookup table are scaled accordingly (e.g., scaled depending on the currently considered probability value and/or depending on the currently considered coding interval size).
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블의 원소는, 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용하여, 그리고 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한(예를 들어 현재의 확률이 상기 확률 테이블에 의해 커버되는 확률 값들의 범위 내에 속하는지 여부에 의존한), 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득된다.In a preferred embodiment of the arithmetic encoder, the elements of said two-dimensional lookup-table are obtained using a first scaling (multiplication) of a selected element (probTabLPS[i%μ]) of said probability table depending on the coding interval size R, and a second scaling of the result of said first scaling depending on whether the element associated with the current probability value (indicated by the index i) is included in the set of probability values (e.g. depending on whether the current probability falls within the range of probability values covered by the probability table).
이에 따라서, 이차원 룩업 테이블의 원소는 확률 테이블의 적절한 엔트리를 사용하여 그리고 적절한 스케일링을 사용하여 "신속하게" 획득될 수 있는데, 여기에서 평가되는 "확률 테이블"은 상기 이차원 룩업 테이블보다 통상적으로 실질적으로 더 작다. 다르게 말하면, 이차원 룩업 테이블의 원소에 어드레싱하는 두 개의 인덱스들에 기반하여, 확률 테이블의 적절한 원소가 선택되고 스케일링된다. 그러나, 많은 경우에, 이러한 개념은 메모리 요구량 및 계산에 있어서 복잡도 사이에 개선된 절충을 제공한다.Accordingly, elements of the two-dimensional lookup table can be "quickly" obtained using appropriate entries of the probability table and using appropriate scaling, where the "probability table" being evaluated is typically substantially smaller than the two-dimensional lookup table. In other words, appropriate elements of the probability table are selected and scaled based on two indices addressing the elements of the two-dimensional lookup table. However, in many cases this concept provides an improved compromise between memory requirements and computational complexity.
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic encoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an expansion of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
이러한 개념을 사용함으로써, 확률 인덱스들 및 코딩 인터벌 크기 인덱스들의 이차원 그리드의 (상대적으로 작은) 부분 내에 인터벌 크기를 나타내는 작은 확률 테이블이 사용될 수 있고, 그러면 메모리 공간이 절약된다. 그러면, 확률 테이블의 원소의 앞에서 언급된 선택에 의하여 및 또한 확률 테이블의 선택된 원소의 앞에서 언급된 두 배의 스케일링에 의하여, 적절한 인터벌 크기 정보가 획득될 수 있다.By using this concept, a small probability table can be used, which represents the interval sizes within a (relatively small) part of the two-dimensional grid of probability indices and coding interval size indices, thereby saving memory space. Then, by the aforementioned selection of elements of the probability table and also by the aforementioned doubling scaling of the selected elements of the probability table, appropriate interval size information can be obtained.
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(또는 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (or the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
인터벌 크기 정보를 표현할 수 있거나 인터벌 크기 정보와 동일할 수 있는, 이차원 룩업 테이블의 적절한 원소를 획득하기 위하여 이러한 개념을 사용함으로써, 메모리 요구 및 계산에 있어서 복잡도 사이의 매우 양호한 절충이 얻어질 수 있다. 테이블 "probTabLPS"는, 예를 들어 1-차원 테이블일 수 있는데, 여기에서 상기 테이블의 원소들의 개수는 테이블 인덱스 t의 상이한 가능한 값의 개수보다 적을 수 있다. 그러나, 확률 테이블(probTabLPS)의 선택된 원소 및 인터벌 크기 R에 의존하는 스케일링 인자 Qr2(R)의 곱을 스케일링함으로써, 양호한 정확도에 도달할 수 있고, 생길 수 있는 반올림 오차가 합리적으로 작게 유지될 수 있다. 더 나아가, 스케일링이 "바닥(floor)" 연산자에 의해 얻어진 정수 값에 작용하기 때문에, 예를 들어 정수 승산 또는 정수 나눗셈 또는 비트 천이 연산에 의해 규정될 수 있다는 효율적인 스케일링 개념이 사용될 수 있다. 그러므로, 계산에 있어서 부하가 실제로 작아진다.By using this concept to obtain suitable elements of a two-dimensional lookup table, which can represent or be identical to the interval size information, a very good compromise between memory requirements and computational complexity can be obtained. The table "probTabLPS" can be, for example, a one-dimensional table, where the number of elements of said table can be smaller than the number of different possible values of the table index t . However, by scaling the product of the selected elements of the probability table (probTabLPS) and a scaling factor Qr 2 (R) which depends on the interval size R, a good accuracy can be reached, and any possible round-off errors can be kept reasonably small. Furthermore, since the scaling operates on integer values obtained by the "floor" operator, an efficient scaling concept can be used, which can be specified for example by integer multiplication or integer division or bit shift operations. Therefore, the computational load is actually reduced.
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(또는 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (or the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
인터벌 크기 정보를 획득하기 위한 이러한 접근법은 특히 효율적이고, 인터벌 크기 정보(이것은 제 1 스케일링 및 제 2 스케일링의 결과로서 획득됨)에 대하여 고품질 결과를 동반한다는 것이 밝혀졌다.This approach to obtaining interval size information turns out to be particularly efficient and provides high-quality results for the interval size information (which is obtained as a result of the first and second scaling).
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic encoder, the remainder of the division between a probability index (e.g. i; e.g. representing the current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes the extension of the probability table) is i%μ ) determines which element of said probability table is scaled in said first scaling; and/or an integer division result () of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
확률 테이블(1-차원 확률 테이블일 수 있음)의 원소를 앞에서 언급된 나눗셈 나머지에 의존하여 선택함으로써, 인터벌 크기가 스케일링을 제외하고는, 확률 인덱스의 상이한 범위 내에서 실질적으로 유사하다는 사실이 활용될 수 있다. 이에 따라서, 확률 테이블은 확률 인덱스들의 단일 범위 내의 값들만을 반영하고, 확률 인덱스의 다른 범위에 대한 인터벌 크기 값은 제 1 스케일링을 사용하여 획득된다. 적절한 인터벌 크기 정보를 얻기 위하여, 제 2 스케일링은 확률 테이블에 의해 표현되는 값, 또는 그에 기반하여 제 1 스케일링을 사용하여 획득된 값을, 코딩 인터벌 크기에 적응시킨다.By selecting elements of the probability table (which may be a one-dimensional probability table) based on the division remainder mentioned above, the fact that the interval sizes are substantially similar within different ranges of the probability indices, except for the scaling, can be exploited. Accordingly, the probability table reflects only values within a single range of the probability indices, and the interval size values for the other ranges of the probability indices are obtained using the first scaling. In order to obtain appropriate interval size information, the second scaling adapts the values represented by the probability table, or the values obtained using the first scaling based thereon, to the coding interval sizes.
결과적으로, 메모리 소모량, 계산에 있어서 복잡도 및 정확도 사이의 양호한 절충이 얻어질 수 있고, 여기에서, 예를 들어 나눗셈 나머지 및 정수 나눗셈 결과는, 제 1 크기 값이 적절하게(예를 들어, 2의 포텐시(potency)가 되도록) 선택된다면, 계산에 있어서 매우 간단한 방식으로 획득될 수 있다.As a result, a good compromise between memory consumption, computational complexity and accuracy can be obtained, whereby, for example, division remainders and integer division results can be obtained in a computationally very simple manner, provided that the first magnitude value is chosen appropriately (e.g., to have a potency of 2).
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며(예를 들어, 정수 결과를 제공함); probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고; Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation (e.g., giving an integer result); probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size; Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
이러한 계산 규칙은 앞서 언급된 개념을 매우 효율적인 방식으로 구현한다.These computational rules implement the aforementioned concepts in a very efficient way.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업 테이블은, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리(일차원 룩업 테이블을 형성함), 및 상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터() 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있다.In a preferred embodiment of the arithmetic encoder, the two-dimensional lookup table comprises: a scaled version and/or a rounded version of the first state variable value and the second state variable value, or a scaled version and/or a rounded version of the first state variable value and the second state variable value ( s k * a k ; ) comprising a first 1-dimensional vector entry (forming a one-dimensional lookup table) containing probability values for different value intervals of the value domain, and a second 1-dimensional vector ( comprising a quantization level for the coding interval size information) ) can be expressed as a dyadic product between entries.
이러한 2-차원 룩업 테이블은, 상태 변수 값에 의존한 그리고 코딩 인터벌 크기 정보에 의존한 인터벌 크기 정보의 효율적인 유도를 위하여 양호하게 사용될 수 있다. 이차원 룩업 테이블 내에서의 룩업 동작은 상태 변수 값을 확률 값으로 그리고 또한 획득된 확률 값과 코딩 인터벌 크기의 승산으로 매핑하는 것에 대응한다. 그러므로, 이차원 룩업 테이블의 선택된 엔트리와 동일할 수 있는 인터벌 크기 정보를 획득하는 것이 매우 쉽게 가능해지는데, 여기에서 이차원 룩업 테이블의 개별적인 원소는 개별적인 상태 변수 값에 의존하여 그리고 코딩 인터벌 크기 정보에 의존하여 선택될 수 있다(여기에서, 개별적인 상태 변수 값은 이차원 룩업 테이블의 원소의 제 1 인덱스를 결정할 수 있고, 코딩 인터벌 크기 정보는 제 2 인덱스를 결정할 수 있음).Such a two-dimensional lookup table can be advantageously used for efficient derivation of interval size information depending on state variable values and depending on coding interval size information. A lookup operation within the two-dimensional lookup table corresponds to mapping a state variable value to a probability value and also to a multiplication of the obtained probability value and the coding interval size. Therefore, it becomes very easy to obtain interval size information which can be identical to a selected entry of the two-dimensional lookup table, wherein individual elements of the two-dimensional lookup table can be selected depending on individual state variable values and depending on coding interval size information (wherein the individual state variable value can determine the first index of an element of the two-dimensional lookup table and the coding interval size information can determine the second index).
바람직한 실시형태에서, 상기 산술 인코더는, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )으로부터, 제 1 및 제 2 하위인터벌 폭 값(subinterval width value)(R*pk)을, 상기 제 1 및 제 2 상태 변수 값(sk) 또는 상기 제 1 및 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 제 1 및 제 2 확률 값으로 매핑하고, 심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(R)를 양자화 레벨로 양자화하며, 일 면에 있어서, 상기 제 1 및 제 2 확률 값 및 상기 양자화 레벨의 곱(product)을 결정하고(미리 계산된 곱들을 룩업하거나, 승산함으로써), 상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여, 조합된 하위인터벌 폭 값을 획득함으로써(예를 들어, 가중 합산을 사용하거나 가중 평균을 사용함으로써), 각각 계산하도록 구성된다.In a preferred embodiment, the arithmetic encoder comprises: a scaled version and/or a rounded version of the first state variable value and the second state variable value, or a scaled version and/or a rounded version of the first state variable value and the second state variable value ( s k * a k ), the first and second subinterval width values (R*p k ) are obtained from the first and second state variable values (s k ) or the scaled versions and/or rounded versions of the first and second state variable values ( s k 2 * a k 2 ), the first state variable value and the second state variable value, or the scaled version and/or rounded version of the first state variable value and the second state variable value ( s k * a k ) is mapped to first and second probability values using a one-dimensional lookup table (LUT4) entry including probability values for different value intervals of the value domain for the symbol, and quantizes coding interval size information (R) describing a size of a coding interval of the arithmetic encoding prior to encoding of a symbol into a quantization level, and in one aspect, determines a product of the first and second probability values and the quantization level (by looking up or multiplying pre-computed products), and obtains a combined subinterval width value by using the first subinterval width value and the second subinterval width value (for example, by using a weighted summation or a weighted average), thereby calculating the combined subinterval width value.
이러한 접근법을 사용하는 것은, 특정 상황에서도 매우 효율적이라는 것이 발견되었다. 제 1 하위인터벌 폭 값을, 제 1 상태 값에만 기반하여 유도함으로써(제 2 상태 값을 고려하지 않음), 그리고 제 2 하위인터벌 폭 값을 제 2 상태 변수 값에만 기반하여 계산함으로써(제 1 상태 변수 값을 고려하지 않음), 상이한 적응 시상수를 사용하여 획득되는 상태 변수 값의 실질적으로 별개인 처리가 거의 모든 처리를 통해서 유지된다. 마지막 스테이지에서만, 제 1 하위인터벌 폭 값 및 제 2 하위인터벌 폭 값이 조합되어 조합된 하위인터벌 폭 값이 얻어지는데, 이것은 높은 정밀도를 동반하고, 제 1 상태 변수 값 및 제 2 상태 변수 값이 너무 이른 스테이지에서 조합될 경우에 일부 상황에서 발생될 열화를 피하게 한다.It has been found that using this approach is very efficient even in certain situations. By deriving the first sub-interval width value based only on the first state value (without considering the second state value), and by computing the second sub-interval width value based only on the second state variable value (without considering the first state variable value), the substantially separate processing of the state variable values obtained using different adaptation time constants is maintained almost throughout the entire processing. Only in the last stage are the first and second sub-interval width values combined to obtain the combined sub-interval width value, which entails high precision and avoids degradations that would occur in some situations if the first and second state variable values were combined at too early a stage.
바람직한 실시형태에서, 상기 산술 인코더는, 논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
이러한 개념은 구현하기가 특히 용이한데, 그 이유는 논리적 우측 천이는 최소의 계산 리소스만을 요구하기 때문이다.This concept is particularly easy to implement, because logical right transitions require minimal computational resources.
바람직한 실시형태에서, 산술 인코더 상기 산술 인코더는, 코딩 인터벌 크기 정보 을 양자화하는 것을 에 의하여 수행하도록 구성되고, 여기에서 , 및 는 파라미터이다.In a preferred embodiment, the arithmetic encoder comprises: coding interval size information Quantizing it is configured to perform by, and hereby , and is a parameter.
이러한 양자화도 역시 매우 용이하게 구현될 수 있다는 것이 발견되었다. 특히, 파라미터 , 및 가 정수 값(또는 1보다 큰 정수 값)이 되도록 선택된다면 계산 노력은 매우 낮아진다.It was also discovered that this quantization can be implemented very easily. In particular, the parameter , and If is chosen to be an integer value (or an integer value greater than 1), the computational effort is greatly reduced.
산술 인코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic encoder, an entry of the one-dimensional lookup table comprises a scaled version and/or a rounded version of the first state variable value and the second state variable value, or a scaled version and/or a rounded version of the first state variable value and the second state variable value. s k * a k ) monotonically decreases as the value of increases.
일차원 룩업 테이블의 단조 감소하는 엔트리를 사용하면 인터벌 크기 정보에 대한 양호한 결과를 동반한다는 것이 밝혀졌다.It has been shown that using monotonically decreasing entries in a one-dimensional lookup table gives good results for interval size information.
산술 인코더의 바람직한 실시형태에서, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic encoder, the first state variable value and the second state variable value, or scaled versions and/or rounded versions of the first state variable value and the second state variable value ( s k * a k ) for different value intervals in the value domain are sized identically.
값 인터벌의 이러한 동일한 크기결정을 사용하면, 간단한 양자화가 가능해진다. 더 나아가, 값 인터벌의 동일한 크기결정은, 룩업 테이블의 원소를 적당한 노력으로 신속하게(on-the-fly) 결정할 수 있게 한다.This equal sizing of the value intervals allows for simple quantization. Furthermore, the equal sizing of the value intervals allows for the elements of the lookup table to be determined on-the-fly with reasonable effort.
산술 인코더의 바람직한 실시형태에서, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic encoder, the first state variable value and the second state variable value, or scaled versions and/or rounded versions of the first state variable value and the second state variable value ( s k * a k ) for different value intervals in the value domain are sized identically.
일차원 룩업 테이블의 엔트리의 이러한 단조 감소를 사용하면, 지수적 감쇠를 양호한 정확도로 표현하는 것이 가능해진다.This monotonic decrease in the entries of a one-dimensional lookup table allows us to represent exponential decay with good accuracy.
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 산술 인코더로서, 상기 산술 인코더는, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(pk, R*pk)를 유도하도록 구성되고, 상기 산술 인코더는, 상기 복수 개의 (개별적인) 상태 변수 값(si k)에 기반하여, 결합된 상태 변수 값(sk)(이들은, 예를 들어 상태 변수 값들의 가중 합산일 수 있음)을 유도하도록 구성되며, 상기 산술 인코더는, 인코딩될 하나 이상의 심볼의 상기 산술적 인코딩에 대한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 결합된 상태 변수 값(sk), 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을 룩업 테이블을 사용하여 매핑하도록 구성되는, 산술 인코더를 생성한다.An embodiment according to the present invention comprises an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values), wherein the arithmetic encoder is configured to derive interval size information (p k , R*p k ) for arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g. sequences of binary values 0 and 1) with different adaptation time constants (which are associated with a given context mode, indicated for example by an index k ), wherein the arithmetic encoder is configured to derive a combined state variable value (s k ) ( which may be for example a weighted sum of the state variable values), based on the plurality of (individual) state variable values (s i k ), wherein the arithmetic encoder comprises interval size information (e.g. p k or R*p ) describing an interval size for the arithmetic encoding of one or more symbols to be encoded. To obtain the combined state variable values (s k ), or scaled versions and/or rounded versions of the combined state variable values ( s k 2 * a k 2 ) is configured to map using a lookup table.
본 발명에 따른 이러한 실시형태는, 결합된 상태 변수 값이 룩업 테이블을 사용하여 매핑이 수행되기 전에 결정된다면, 인터벌 크기 정보를 결정하는 데에 있어서 높은 효율이 얻어진다는 사상에 기반한 것이다. 이에 따라서, 두 개의(또는 그 이상의) 상태 변수 값을 사용하여 별개의 룩업-테이블 룩업을 수행할 필요가 더 이상 없다. 오히려, 인터벌 크기 정보를 결정하기 위하여, 단일 테이블 룩업이면 충분할 수 있다. 특히, 제 1 상태 변수 값 및 제 2 상태 변수 값을 룩업-테이블 룩업을 수행하기 전에 조합하는 것이, 많은 상황에서 인터벌 크기 정보를 심각하게 열화시키지 않는다는 것이 발견되었다.This embodiment according to the present invention is based on the idea that high efficiency is obtained in determining interval size information if the combined state variable values are determined before the mapping is performed using the lookup table. Accordingly, there is no longer a need to perform separate lookup-table lookups using two (or more) state variable values. Rather, a single table lookup may suffice for determining the interval size information. In particular, it has been found that combining the first state variable value and the second state variable value before performing the lookup-table lookup does not seriously degrade the interval size information in many situations.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to determine a weighted sum of the state variable values to obtain the combined state variable values.
상태 변수 값들의 가중 합의 계산이 결합된 상태 변수 값을 결정하기 위한 효율적인 방식이고, 또한 두 개의 상태 변수 값들의, 상태 변수 값을 유도할 때 사용되는 상이한 적응 시상수에 의하여 초래되는 상이한 관련도(relevance)를 고려하기에도 매우 적합하다는 것이 발견되었다.It was found that computing the weighted sum of state variable values is an efficient way to determine the combined state variable value, and is also well suited to taking into account the different relevance of two state variable values caused by different adaptation time constants used in deriving the state variable values.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 결합된 상태 변수 값(sk)을 획득하기 위하여, 상태 변수 값() 및 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값()의 합을 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder comprises a state variable value (s k ) to obtain the combined state variable value (s k ). ) and associated weight values ( ) is the rounded value obtained by rounding the product of ) is configured to determine the sum of the two.
합산을 수행하기 전에, 스케일링된 값들의 반올림을 수행하면 특히 의미 있는 결과가 동반된다는 것이 발견되었다. 상태 변수 값들 중 하나의 무시될 수 있는 기여도(contribution)는 반올림에 의해서 제거되고, 결합된 상태 변수 값에 영향을 주지 않는다. 이에 따라서, 고도로 신뢰가능한 결과가 획득될 수 있고, 결합된 상태 변수 값은 통상적으로 정수 값을 취하는데, 이것은 룩업 테이블의 원소를 선택하기 위한 인덱스의 역할을 하기에 매우 적합하다.It has been found that rounding the scaled values before performing the summation leads to particularly meaningful results. Negligible contributions of one of the state variable values are removed by the rounding and do not affect the combined state variable value. Thus, highly reliable results can be obtained, and the combined state variable value typically takes integer values, which are well suited to serve as indices for selecting elements of a lookup table.
바람직한 실시형태에서, 산술 인코더는 결합된 상태 변수 값 sk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to determine the combined state variable values s k according to:
여기에서 sk 2는 상태 변수 값이고, N은 고려되는 상태 변수 값의 개수이며,Here, s k 2 is the state variable value, N is the number of state variable values considered,
여기에서 . 는 바닥 연산자이고, dk i는 상기 상태 변수 값과 연관된 가중치이다(예를 들어, 결합된 상태 변수 값에 대한 개별적인 상태 변수 값의 영향을 제어하는 가중치 인자임)(여기에서 dk i는 2의 바람직하게는 정수-값인 포텐시이며, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 2의 정수-값인 포텐시임)(여기에서, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 8 이상임).Here . is a floor operator, and d k i is a weight associated with the state variable values (e.g., a weighting factor controlling the influence of an individual state variable value on the combined state variable value) (wherein d k i is a potential, preferably integer-valued, of 2, and the ratio between two different d k i is preferably an integer-valued potential of 2) (wherein the ratio between two different d k i is preferably greater than or equal to 8).
결합된 상태 변수 값을 유도하기 위한 이러한 개념은, 앞서 설명된 바와 같이 매우 의미 있는 결합된 상태 변수 값을 동반한다.This concept of deriving combined state variable values entails very meaningful combined state variable values, as explained earlier.
바람직한 실시형태에서, 산술 인코더는, 인코딩될 심볼이 제 1 값(예를 들어 "1")을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고(예를 들어 더 큰 양수가 되도록), 그리고 인코딩될 심볼이 제 1 값과 다른 제 2 값(예를 들어 "0")을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록(예를 들어 더 큰 음수가 되도록) 구성되고(예를 들어, 상태 변수 값이 양수 및 음수 값을 가질 수 있게 함), 상기 산술 인코더는, 평가될 룩업-테이블의 엔트리를 결합된 상태 변수 값의 절대 값(sk i>0이면 sk i이고, 그 외의 경우에는 -sk i임)에 의존하여(예를 들어 결합된 상태 변수 값의 절대 값의 스케일링되고 반올림된 버전에 의존하여) 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to change the state variable value in a first direction (e.g., to become a larger positive number) if the symbol to be encoded has a first value (e.g., "1"), and to change the state variable value in a second direction (e.g., to become a larger negative number) if the symbol to be encoded has a second value different from the first value (e.g., "0") (e.g., so that the state variable value can have both positive and negative values), and the arithmetic encoder is configured to determine which entry of the lookup-table to be evaluated depends on the absolute value of the combined state variable value (e.g., depends on a scaled and rounded version of the absolute value of the combined state variable value) (e.g., depends on a scaled and rounded version of the absolute value of the combined state variable value) depending on the absolute value of the combined state variable value (s k i if s k i > 0, otherwise -s k i ).
상태 변수 값을 결정하기 위한(예를 들어, 제 1 상태 변수 값 및 제 2 상태 변수 값을 결정하기 위한) 이러한 개념은, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑이 사용되는 경우에서와 같은 장점을 동반한다.This concept of determining state variable values (e.g., determining a first state variable value and a second state variable value) entails the same advantages as when separate mappings of the first state variable value and the second state variable value are used.
바람직한 실시형태에서, 상기 산술 인코더는, 결합된 상태 변수 값이 제 1 부호(예를 들어, 양의 부호)를 가지면, 상기 확률 값(pk)을, 상기 룩업 테이블에 의하여 제공되는 값으로(예를 들어, 예를 들어, 로) 설정하도록 구성되고, 상기 산술 인코더는, 상기 결합된 상태 변수 값이 제 2 부호(예를 들어, 음의 부호)를 가지면, 상기 확률 값(pk)을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값(예를 들어, 1)으로부터 감산함으로써 얻어지는 값으로(예를 들어, 로) 설정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to, if the associated state variable value has a first sign (e.g., a positive sign), assign the probability value (p k ) to a value provided by the lookup table (e.g., ), and the arithmetic encoder is configured to set the probability value (p k ) to a value obtained by subtracting a value provided by the lookup table from a predetermined value (e.g., 1), if the combined state variable value has a second sign (e.g., a negative sign), (e.g., It is configured to set (as shown).
결합된 상태 변수 값을 확률 값에 매핑하기 위한 이러한 개념은 효율적인데, 그 이유는 룩업 테이블의 크기가 감소될 수 있기 때문이다. 특히, 룩업 테이블의 원소들의 개수가 감소될 수 있는데, 그 이유는 룩업 테이블의 동일한 원소가 주어진 양수인 결합된 상태 변수 값 및 주어진 (양수인) 결합된 상태 변수 값의 음수 버전과 연관되기 때문이다. 다르게 말하면, 주어진 개념에서는, 결합된 상태 변수 값의 절대 값이 룩업 테이블의 어느 원소가 확률 값을 제공하기 위하여 평가되는지를 결정한다.This notion of mapping a combined state variable value to a probability value is efficient, because the size of the lookup table can be reduced. In particular, the number of elements in the lookup table can be reduced, because the same element in the lookup table is associated with a given positive combined state variable value and with a negative version of the given (positive) combined state variable value. In other words, in the given notion, the absolute value of the combined state variable value determines which element of the lookup table is evaluated to provide a probability value.
그러나, 결합된 상태 변수 값의 부호는, 부호에 의존하여, 확률 값을 룩업 테이블에 의해 제공된 값으로 또는 룩업 테이블에 의해 제공된 값을 미리 결정된 값으로부터 감산함으로써 얻어진 값으로 설정함으로써, 적절하고 효율적인 방식으로 여전히 고려된다. 이에 따라서, 의미 있는 확률 값이 결합된 상태 값에 기반하여 낮은 계산 복잡도로 획득될 수 있다.However, the sign of the combined state variable value is still considered in a proper and efficient manner by setting the probability value to a value provided by the lookup table or to a value obtained by subtracting the value provided by the lookup table from a predetermined value, depending on the sign. Accordingly, meaningful probability values can be obtained with low computational complexity based on the combined state value.
바람직한 실시형태에서, 산술 인코더는 결합된 확률 값 pk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to determine the combined probability value p k according to:
여기에서 LUT2는 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk는 결합된 상태 변수 값이고; ak는 결합된 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT2 is a lookup table containing probability values; . is a floor operator; s k is a combined state variable value; a k is a weight associated with the combined state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
결합된 상태 변수 값 s k 에 기반하여 결합된 확률 값을 결정하기 위한 이러한 개념은, 앞서 개략적으로 설명된 사상을 계산에 있어서 고도로 효율적인 방식으로 구현한다.This concept of determining a combined probability value based on the combined state variable values s k implements the idea outlined above in a computationally highly efficient manner.
바람직한 실시형태에서, 산술 인코더는 결합된 확률 값 pk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to determine the combined probability value p k according to:
여기에서 LUT2는 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk는 결합된 상태 변수 값이고; ak는 결합된 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT2 is a lookup table containing probability values; . is a floor operator; s k is a combined state variable value; a k is a weight associated with the combined state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
이러한 개념에서, 스케일링된 결합된 상태 변수 값 s k 의 절대 값 계산이 존재하지 않는다. 오히려, "바닥(floor)" 연산만이 존재하는데, 이것은, 일부 상황에서 절대 값 형성보다 더 낮은 노력으로 구현될 수 있는 스케일링된("가중된") 결합된 상태 변수 값에 적용된다. 음수화(negation)는 가중된 결합된 상태 변수 값의 하향-반올림(downward-rounding)(바닥 연산자)에 의해 획득되는 정수 값에만 적용된다. 그러나, 정수 값을 음수화하는 것은 분수 값 또는 부동 소수점 표현의 값을 음수화하는 것보다 통상적으로 덜 복잡하다. 이에 따라서, 본 명세서에서 논의되는 개념은 일부 상황에서 복잡도를 감소시키는 데에 도움이 될 수 있다.In this concept, there is no absolute value computation of the scaled combined state variable values s k . Rather, there is only a "floor" operation, which is applied to the scaled ("weighted") combined state variable values, which in some circumstances can be implemented with less effort than the absolute value formation. Negation applies only to integer values, which are obtained by downward-rounding (the floor operator) of the weighted combined state variable values. However, negating an integer value is typically less complex than negating a fractional value or a value in a floating point representation. Accordingly, the concepts discussed herein may help reduce the complexity in some circumstances.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )을, 그 엔트리가 상기 결합된 상태 변수 값에 의존하고(예를 들어, 제 1 룩업 테이블 엔트리 좌표를 결정하기 위하여), 심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)에 의존하여(예를 들어, 제 2 룩업 테이블 엔트리 좌표를 결정하기 위하여) 어드레싱되는 2-차원 룩업 테이블을 사용하여, 하위인터벌 폭 값(subinterval width value)(R*pk)으로 매핑하도록 구성된다.In a preferred embodiment, the arithmetic encoder comprises: a scaled version and/or a rounded version of the combined state variable value, or s k * a k ) is configured to map subinterval width values (R*p k ) using a two-dimensional lookup table, the entries of which depend on the combined state variable values (e.g., to determine the first lookup table entry coordinates) and on coding interval size information (e.g., R) describing the size of a coding interval of the arithmetic encoding prior to encoding of the symbol (e.g., to determine the second lookup table entry coordinates).
이러한 개념을 사용함으로써, 결합된 상태 변수 값을 결합된 확률 값으로 매핑하는 것과 결합된 확률 값을 코딩 인터벌 크기와 승산하는 것이 단일 룩업 테이블 룩업 연산으로 통합될 수 있다. 이에 따라서, 이차원 룩업 테이블이 필요하지만, 승산 연산은 절약된다. 이차원 룩업 테이블의 엔트리는 미리 계산될 수 있고, 그러면 실행 시에 통합하는 부하가 매우 낮게 유지된다. 오히려, 제 1 테이블 인덱스는 결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 기반하여 결정될 수 있고, 제 2 테이블 인덱스는 코딩 인터벌 크기 정보에 기반하여 결정될 수 있다(예를 들어, 반올림 또는 양자화를 사용함). 제 1 단계 인덱스 및 제 2 상태 인덱스는 이차원 룩업 테이블의 원소를 고유하게 지정할 수 있고, 이차원 룩업 테이블의 지정된 원소는 하위 인터벌 폭 값으로서(또는 인터벌 크기 정보로서) 사용될 수 있다. 이에 따라서, 룩업 테이블을 위한 충분한 메모리가 사용가능한 경우에 계산 복잡도를 절약하는 매우 효율적인 개념이 얻어진다.By using this concept, the mapping of the combined state variable values to the combined probability values and the multiplication of the combined probability values by the coding interval size can be integrated into a single lookup table lookup operation. Thus, a two-dimensional lookup table is required, but the multiplication operation is saved. The entries of the two-dimensional lookup table can be precomputed, so that the integration overhead at runtime is kept very low. Rather, the first table index can be determined based on the combined state variable values, or scaled and/or rounded versions of the combined state variable values, and the second table index can be determined based on the coding interval size information (e.g., using rounding or quantization). The first stage index and the second state index can uniquely designate elements of the two-dimensional lookup table, and the designated elements of the two-dimensional lookup table can be used as subinterval width values (or as interval size information). Thus, a very efficient concept is obtained that saves computational complexity when sufficient memory for the lookup table is available.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업 테이블은, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리(; 일차원 룩업 테이블을 형성함), 및 상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터() 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있다.In a preferred embodiment of the arithmetic encoder, the two-dimensional lookup table comprises: the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values; s k * a k ; ) contains probability values for different value intervals in the value domain, the first 1-dimensional vector entry ( ; forming a one-dimensional lookup table), and a second one-dimensional vector ( comprising a quantization level for the coding interval size information ) can be expressed as a dyadic product between entries.
이러한 이차원 룩업 테이블은 매우 양호한 결과를 동반한다. 특히, 이러한 이차원 룩업 테이블의 모든 원소는 결합된 상태 변수 값과 연관된 개별적인 확률 값 및 코딩 인터벌 크기의 승산을 나타낸다. 그러므로, 본 명세서에서 설명되는 이차원 룩업 테이블은 승산의 필요를 없애고, 이것은 리소스 효율성이 매우 높다고 여겨질 수 있다.These two-dimensional lookup tables provide very good results. In particular, each element of these two-dimensional lookup tables represents an individual probability value associated with a combined state variable value and a multiplication of the coding interval size. Therefore, the two-dimensional lookup table described herein eliminates the need for multiplication, which can be considered very resource-efficient.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고, 상기 2-차원 룩업-테이블의 원소들의 제 1 그룹(또는 블록; 예를 들어, "상부 절반")은 상기 베이스 룩업-테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며, 상기 2-차원 룩업-테이블의 원소들의 제 2 그룹(또는 블록; 예를 들어, "하부 절반")은 상기 베이스 룩업-테이블의 원소의 스케일링된 버전 및 반올림된 버전이다.In a preferred embodiment of the arithmetic encoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a base lookup table (Base TabLPS), a first group (or block; e.g., "upper half") of the elements of the two-dimensional lookup-table are identical to the elements of the base lookup-table or are rounded versions of the elements of the base lookup-table, and a second group (or block; e.g., "lower half") of the elements of the two-dimensional lookup-table are scaled versions and rounded versions of the elements of the base lookup-table.
이차원 룩업 테이블의 원소를 베이스 룩업 테이블에 기반하여 규정함으로써, 이차원 룩업 테이블은 매우 간단한 방식으로 생성될 수 있다. 더 나아가, 이차원 룩업 테이블의 원소들의 제 2 그룹이 상기 베이스 룩업 테이블의 원소의 스케일링된 버전 및 반올림된 버전이기 때문에(반면에, 이차원 룩업 테이블의 원소들의 제 1 그룹의 원소들은 베이스 룩업 테이블의 원소와 동일하거나 베이스 룩업 테이블의 원소의 반올림된 버전임), 이차원 룩업 테이블의 행 또는 열 내의 원소들의 지수적 순환(exponential evolution)이 양호하게 반영된다. 이차원 룩업 테이블의 원소들의 제 2 블록이 실질적으로(반올림 효과를 제외하고) 이차원 룩업 테이블의 원소들의 제 1 블록의 스케일링된 버전이라는 개념을 사용함으로써, 결합된 상태 변수 값을 인터벌 크기 정보로 매핑하기 위한 적절한 특성을 반영하는 것이 가능해진다.By defining the elements of the two-dimensional lookup table based on the base lookup table, the two-dimensional lookup table can be generated in a very simple manner. Furthermore, since the second group of elements of the two-dimensional lookup table are scaled versions and rounded versions of the elements of the base lookup table (whereas the elements of the first group of elements of the two-dimensional lookup table are either identical to the elements of the base lookup table or are rounded versions of the elements of the base lookup table), the exponential evolution of the elements within the rows or columns of the two-dimensional lookup table is well reflected. By using the concept that the second block of elements of the two-dimensional lookup table is effectively (excluding the rounding effect) a scaled version of the first block of elements of the two-dimensional lookup table, it becomes possible to reflect appropriate properties for mapping the combined state variable values to the interval size information.
산술 인코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소들의 제 2 그룹은 상기 베이스-룩업 테이블의 원소의 우측-천이된 버전이다.In a preferred embodiment of the arithmetic encoder, the second group of elements of the two-dimensional lookup-table are right-shifted versions of the elements of the base lookup table.
그러면, 2-차원 룩업-테이블의 엔트리(원소)가 간단하게 생성될 수 있다.Then, entries (elements) of a two-dimensional lookup table can be created simply.
베이스-룩업 테이블의 원소를 우측-천이하는 것이 스케일링 및 반올림 연산을 조합하는 매우 효율적인 개념이라는 것이 발견되었다.It was discovered that right-shifting elements of the base lookup table is a very efficient concept for combining scaling and rounding operations.
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(Qp2(pLPS) 또는 i))는 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고, 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를 양자화함으로써 얻어짐)의 제 1 범위(예를 들어, 0 및 μ-1 사이)는 원소들의 제 1 그룹의 원소와 연관되고, 및 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를, 예를 들어 양자화 함수 Qp2(.)를 사용하여 양자화함으로써 얻어짐)의 제 2 범위(예를 들어, μ 이상임)는 원소들의 제 2 그룹의 원소와 연관된다.In a preferred embodiment of the arithmetic encoder, the probability indices (Qp 2 (p LPS ) or i)) determine whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated, and a first range (e.g. between 0 and μ-1) of the probability indices (which are obtained, for example, by quantizing the probability values, e.g. p LPS ) is associated with elements of the first group of elements, and a second range (e.g. greater than or equal to μ) of the probability indices (which are obtained, for example, by quantizing the probability values, e.g. p LPS , using, for example, a quantization function Qp2(.) ) is associated with elements of the second group of elements.
결합된 상태 변수 값으로부터 직접적으로 유도될 수 있거나(확률 값을 중간 양으로 사용하지 않고서 유도됨), 결합된 상태 변수 값에 기반하는 결합된 확률 값을 사용하여 유도될 수 있는 확률 인덱스를 사용함으로써, 이차원 룩업 테이블의 원소를 선택하는 것이 매우 효율적으로 이루어질 수 있다. 또한, 확률 인덱스는 원소들의 제 1 그룹의 원소 및 원소들의 제 2 그룹의 원소를 사용하는 것 사이에서 스위칭하기 위하여 사용되고, 그러면 이차원 룩업 테이블의 원소의 효율적인 신속한 결정이 가능해진다.By using a probability index which can be derived directly from the combined state variable values (without using probability values as intermediate quantities) or derived using the combined probability values based on the combined state variable values, the selection of elements of the two-dimensional lookup table can be made very efficiently. Furthermore, the probability index is used to switch between using elements of the first group of elements and elements of the second group of elements, which allows for efficient and fast determination of elements of the two-dimensional lookup table.
산술 인코더의 바람직한 실시형태에서, 상기 확률 인덱스(i) 및 상기 제 1 크기 값(예를 들어 μ; 여기에서, 예를 들어 크기 값은 베이스 룩업 테이블의 제 1 방향으로의 확장(extension)을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ) 및 인터벌 크기 인덱스(예를 들어 인터벌 크기 정보(R)에 기반하여, 예를 들어 양자화 연산 Qr2(.)를 사용하여 획득될 수 있음; 예를 들어, j)는, 베이스 룩업 테이블의 어떤 원소가 2-차원 룩업 테이블의 원소를 획득하기 위하여 사용되는지를 결정한다.In a preferred embodiment of the arithmetic encoder, the division remainder (i%μ) of the division between the probability index (i) and the first magnitude value (e.g. μ; where, for example, the magnitude value describes the extension of the base lookup table in the first direction) and the interval magnitude index (e.g., based on the interval magnitude information (R), which can be obtained, for example, using a quantization operation Qr2(.); for example, j) determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블(RangTabLPS)의 원소를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is configured to obtain elements of a two-dimensional lookup table (RangTabLPS) according to:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ)RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ )
여기에서 BaseTabLPS는 차원 μ x λ인 베이스 룩업 테이블이고; i는 확률 정보와 연관된 테이블 인덱스이며; j는 인터벌 크기 정보(예를 들어 현재의 코딩 인터벌 크기를 기술함)와 연관된 테이블 인덱스이고; %는 나눗셈 나머지 연산이며; /는 나눗셈 연산이고; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, BaseTabLPS is a base lookup table of dimension μ x λ; i is a table index associated with probability information; j is a table index associated with interval size information (e.g., describing the current coding interval size); % is a division remainder operation; / is a division operation; and Scal(x, y) is a scaling function (e.g., Scal(x, y) = x*a -by As defined, . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
상기 베이스 룩업 테이블의 어떤 원소가 이차원 룩업 테이블의 원소를 획득하기 위하여 사용되는지를 결정하기 위하여 상기 나눗셈 나머지를 평가함으로써, 이차원 룩업 테이블의 원소의 신속한 결정이 매우 높은 효율로 수행될 수 있다. 특히, 이차원 룩업 테이블이 동일한 베이스 룩업 테이블의 원소에 기반한 원소들의 두 개 이상의 그룹을 포함한다는 사실은, 상기 베이스 룩업 테이블의 어떤 원소가 이차원 룩업 테이블의 원소를 획득하기 위하여 사용되는지 결정하기 위해서 나눗셈 나머지를 사용하는 것에 의하여 반영될 수 있다. 다르게 말하면, 이차원 룩업 테이블의 원소 및 베이스 룩업 테이블의 원소 사이의 주기적 관련성은 상기 나눗셈 나머지를 고려함으로써 양호하게 반영되는데, 그 이유는 나눗셈 나머지도 역시 확률 인덱스가 증가함에 따라 주기적이기 때문이다.By evaluating the division remainder to determine which element of the base lookup table is used to obtain an element of the two-dimensional lookup table, rapid determination of an element of the two-dimensional lookup table can be performed with very high efficiency. In particular, the fact that the two-dimensional lookup table includes two or more groups of elements based on elements of the same base lookup table can be reflected by using the division remainder to determine which element of the base lookup table is used to obtain an element of the two-dimensional lookup table. In other words, the periodic relationship between the elements of the two-dimensional lookup table and the elements of the base lookup table is well reflected by considering the division remainder, because the division remainder also becomes periodic as the probability index increases.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고, 상기 확률 테이블은, 복수 개의 확률 값들의 세트(예를 들어, 인덱스 i에 의해 표현됨)에 대한 그리고 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며, 상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 및/또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업-테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도된다.In a preferred embodiment of the arithmetic encoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a probability table (probTabLPS), the probability table describing interval sizes for a set of a plurality of probability values (e.g. represented by an index i) and for a given (reference) coding interval size, and the elements of the two-dimensional lookup-table for probability values not included in the set of the plurality of probability values and/or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
이러한 개념은 상태 변수 값의 별개의 매핑의 경우에 설명된 대응하는 개념과 같은 동일한 고려에 기반하고 있다.These concepts are based on the same considerations as the corresponding concepts described in the case of discrete mappings of state variable values.
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고, 상기 확률 테이블은, 복수 개의 확률 값들의 세트(예를 들어, 인덱스 i에 의해 표현됨)에 대한 그리고 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며, 상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 및/또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업-테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도된다.In a preferred embodiment of the arithmetic encoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a probability table (probTabLPS), the probability table describing interval sizes for a set of a plurality of probability values (e.g. represented by an index i) and for a given (reference) coding interval size, and the elements of the two-dimensional lookup-table for probability values not included in the set of the plurality of probability values and/or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
이차원 룩업 테이블의 원소의 이러한 신속한 결정이 특히 높은 리소스 효율을 포함한다는 것이 발견되었다. 더 나아가, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트 내에서 사용된 대응하는 알고리즘에 대해서 언급된 것들이 마찬가지로 적용된다는 것에 주의해야 한다. 이차원 룩업 테이블보다 통상적으로 더 작은(예를 들어, 더 적은 원소를 포함함) 확률 테이블을 이차원 룩업 테이블의 원소의 결정의 기반으로 사용함으로써, 매우 높은 효율이 얻어질 수 있다. 예를 들어, 확률 테이블은 상이한 확률 값 및 상이한 (양자화된) 코딩 인터벌 크기의 매핑을 큰 범위에 걸쳐서 나타낼 수 있고, 그러므로 간단한 스케일링의 범주를 벗어나는 승산을 피하는 것을 도울 수 있다(여기에서, "간단한" 스케일링은, 예를 들어 천이 연산을 사용하여 구현될 수 있음).It has been found that such a fast determination of the elements of the two-dimensional lookup table involves particularly high resource efficiency. Furthermore, it should be noted that what has been said for the corresponding algorithms used in the context of separate mappings of the first and second state variable values also applies. By using a probability table that is typically smaller (e.g. contains fewer elements) than the two-dimensional lookup table as a basis for the determination of the elements of the two-dimensional lookup table, very high efficiency can be achieved. For example, the probability table can represent the mapping of different probability values and different (quantized) coding interval sizes over a large range, and thus can help to avoid multiplications that fall outside the scope of simple scaling (wherein the "simple" scaling can be implemented, for example, using transition operations).
복수 개의 확률 값들의 세트에 포함되지 않는 하나 이상의 확률 값에 대한 그리고 주어진 코딩 인터벌 크기와 다른 하나 이상의 코딩 인터벌 크기에 대한 이차원 룩업 테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도된다. 이에 따라서, 예를 들어 하나의 행 또는 하나의 열만을 포함할 수 있는 매우 작은 확률 테이블을 가지면 충분하게 된다. 그러므로, 확률 테이블의 원소들의 개수는 상이한 가능한 확률 값의 개수보다 훨씬 더 적어질 수 있다(즉, 이차원 룩업 테이블의 상이한 가능한 확률 인덱스의 개수보다 적어짐). 더 나아가, 스케일링이 확률 값에 의존하고 및/또는 코딩 인터벌 크기에 의존한다는 것에 주의해야 한다. 스케일링은, 예를 들어 매우 간단한 메커니즘, 예컨대 확률 테이블의 크기가 적절하게 선택된다면 비트-천이 연산을 사용하여 수행될 수 있다. 비트-천이 연산에 기반하고 있는 이러한 "간단한" 스케일링 연산은, 임의의 가변 피연산자(이들은, 예를 들어 2의 포텐시와 다름)와의 "보통의(normal)" 승산과 비교할 때, 훨씬 적은 계산 리소스를 요구한다.The elements of the two-dimensional lookup table for one or more probability values that are not included in the set of multiple probability values and for one or more coding interval sizes different from the given coding interval size are derived from the probability table using scaling. Accordingly, it is sufficient to have a very small probability table, which may for example only contain one row or one column. Therefore, the number of elements of the probability table can be much smaller than the number of different possible probability values (i.e. smaller than the number of different possible probability indices of the two-dimensional lookup table). Furthermore, it should be noted that the scaling depends on the probability values and/or on the coding interval size. The scaling can be performed using, for example, very simple mechanisms, for example, bit-shift operations, if the size of the probability table is appropriately chosen. Such "simple" scaling operations based on bit-shift operations require much less computational resources compared to "normal" multiplication with arbitrary variable operands (which are for example different in potency of 2).
산술 인코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블의 원소는, 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용하여, 그리고 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한(예를 들어 현재의 확률이 상기 확률 테이블에 의해 커버되는 확률 값들의 범위 내에 속하는지 여부에 의존한), 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득된다.In a preferred embodiment of the arithmetic encoder, the elements of said two-dimensional lookup-table are obtained using a first scaling (multiplication) of a selected element (probTabLPS[i%μ]) of said probability table depending on the coding interval size R, and a second scaling of the result of said first scaling depending on whether the element associated with the current probability value (indicated by the index i) is included in the set of probability values (e.g. depending on whether the current probability falls within the range of probability values covered by the probability table).
이차원 룩업 테이블의 원소의 이러한 계산이 특히 효율적이라는 것이 발견되었다. 더 나아가, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.It has been found that such computations of elements of a two-dimensional lookup table are particularly efficient. Furthermore, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of the first and second state variable values.
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 여기에서 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 여기에서 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic encoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an extension of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or wherein the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(또는 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (or the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
산술 인코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소는, 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 확률 값들의 세트에 포함되는지 여부에 의존하여(예를 들어 현재의 확률 값이 확률 테이블에 의해 커버되는 확률 값의 범위 내에 있는지 여부에 의존하여), 그리고 코딩 인터벌 크기(R)에 의존한 제 1 스케일링의 결과의 제 2 스케일링을 사용하여, 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용함으로써 획득된다.In a preferred embodiment of the arithmetic encoder, an element of the two-dimensional lookup-table is obtained by using a first scaling of a selected element of the probability table (probTabLPS[i%μ]) depending on whether the element associated with the current probability value (indicated by index i) is included in the set of probability values (e.g. depending on whether the current probability value is within the range of probability values covered by the probability table), and using a second scaling of the result of the first scaling depending on the coding interval size (R).
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic encoder, the remainder of the division between a probability index (e.g. i; e.g. representing the current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes the extension of the probability table) is i%μ ) determines which element of said probability table is scaled in said first scaling; and/or an integer division result () of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
이러한 기능성과 관련하여, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고하고, 여기에서 결합된 상태 변수 값 또는 결합된 확률 값이 개별적인 개별적인 상태 변수 값 또는 개별적인 확률 값 대신에 사용된다.In connection with this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of the first state variable values and the second state variable values, wherein combined state variable values or combined probability values are used instead of the individual individual state variable values or individual probability values.
바람직한 실시형태에서, 산술 인코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic encoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며(예를 들어, 정수 결과를 제공함); probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고; Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation (e.g., giving an integer result); probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size; Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
이러한 기능성과 관련하여, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고하고, 여기에서 결합된 상태 변수 값은 개별적인 상태 변수 값을 대체하고, 결합된 확률 값은 개별적인 확률 값을 대체한다.In connection with this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of the first state variable value and the second state variable value, wherein the combined state variable value replaces the individual state variable values, and the combined probability value replaces the individual probability values.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )으로부터, 하위인터벌 폭 값(subinterval width value)(R*pk)을, 상기 결합된 상태 변수 값(sk) 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 결합된 확률 값으로 매핑하고, 심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)를 양자화 레벨로 양자화하며, 상기 결합된 확률 값 및 상기 양자화 레벨의 곱(product)을 구함으로써(미리 계산된 곱들을 룩업함으로써, 또는 승산에 의하여), 계산하도록 구성된다.In a preferred embodiment, the arithmetic encoder comprises: a scaled version and/or a rounded version of the combined state variable value, or s k * a k ), the subinterval width value (R*p k ), the combined state variable value (s k ) or the scaled version and/or rounded version of the combined state variable value ( s k * a k ; ), the combined state variable values, or a scaled version and/or rounded version of the combined state variable values ( s k * a k ; ) is configured to map a combined probability value using a one-dimensional lookup table (LUT4) entry including probability values for different value intervals of the value domain, and to quantize coding interval size information (e.g., R) describing a size of a coding interval of the arithmetic encoding prior to encoding of a symbol into a quantization level, and to compute the product of the combined probability value and the quantization level (by looking up pre-computed products or by multiplication).
이러한 기능성과 관련하여, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고하고, 여기에서 결합된 상태 변수 값은 개별적인 상태 변수 값을 대체하고, 결합된 확률 값은 개별적인 확률 값을 대체한다.In connection with this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of the first state variable value and the second state variable value, wherein the combined state variable value replaces the individual state variable values, and the combined probability value replaces the individual probability values.
바람직한 실시형태에서, 상기 산술 인코더는, 논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
바람직한 실시형태에서, 상기 산술 인코더는, 코딩 인터벌 크기 정보 를 양자화하는 것을 에 의하여 수행하도록 구성되고, 여기에서 , 및 는 파라미터이다.In a preferred embodiment, the arithmetic encoder comprises: coding interval size information Quantizing it is configured to perform by, and hereby , and is a parameter.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
산술 인코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic encoder, an entry of the one-dimensional lookup table contains: a combined state variable value, or a scaled version and/or a rounded version of the combined state variable value; s k * a k ) monotonically decreases as the value of increases.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
산술 인코더의 바람직한 실시형태에서, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic encoder, the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values ( s k * a k ) for different value intervals in the value domain are sized identically.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
산술 인코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 감소율을 가지고 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic encoder, an entry of the one-dimensional lookup table contains: a combined state variable value, or a scaled version and/or a rounded version of the combined state variable value; s k * a k ) monotonically decreases with an increasing rate.
이러한 기능성에 관련해서, 제 1 상태 변수 값 및 제 2 상태 변수 값의 별개의 매핑의 콘텍스트에서 제공된 대응하는 기능성에 대한 앞선 논의도 역시 참고한다.In relation to this functionality, reference is also made to the preceding discussion of the corresponding functionality provided in the context of separate mappings of first state variable values and second state variable values.
산술 인코더의 바람직한 실시형태에서, 룩업-테이블은 지수적 감쇠(예를 들어 0.5로부터 감소됨)를 규정한다(예를 들어, +/-10% 또는 +/-20%의 허용 오차 내에서 규정함).In a preferred embodiment of the arithmetic encoder, the lookup-table specifies an exponential decay (e.g., decreasing from 0.5) (e.g., within a tolerance of +/-10% or +/-20%).
지수적 감쇠가 인터벌 크기 정보를 상태 변수 값에 기반하여 유도하기 위한 적절한 관련성을 양호하게 반영한다는 것이 발견되었다. 또한, 지수적 감쇠는 룩업 테이블을 사용하여 매우 효율적으로 표현될 수 있는데, 이러한 경우 심지어 룩업 테이블의 원소의 신속한 결정도 적은 노력으로 가능해진다.It was found that exponential decay provides a good fit for deriving interval size information based on state variable values. In addition, exponential decay can be expressed very efficiently using lookup tables, in which case even rapid determination of elements of the lookup table becomes possible with little effort.
바람직한 실시형태에서, 산술 인코더는 복수 개의 변수 상태 값 을 다음에 따라서 업데이트하도록 구성되는데,In a preferred embodiment, the arithmetic encoder has multiple variable state values It is configured to update as follows:
여기에서 z는 미리 결정된 (상수) 오프셋 값이고; 는 하나 이상의 가중치이며; 는 하나 이상의 가중치이고, A는 이거나, 업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위해서, 제로 설정 또는 크기 감소에 의해 그 인수의 하나 이상의 극단 값에 대해서만 그로부터 벗어나며, 예를 들어 가 보다 큰 값 도메인을 가진다는 것을 고려한다; 즉, 는 로 의사 양자화된다; 의 극단 값에 대하여, 는 전술된 수학식에 따라서 수정되지 않은 A에 의해서 수정되어 그 값 도메인을 벗어나게 된다; 이것을 피하기 위하여, 이러한 극단 값에 대응하는 엔트리는 감소되거나 제로로 처리될 수 있다), 여기에서 , , , 및 는 미리 결정된 파라미터이다(예들이 앞에서 진술됨).Here, z is a predetermined (constant) offset value; is one or more weights; is one or more weights, and A is This or updated To avoid going beyond a predetermined range of values, it deviates from it only for one or more extreme values of its argument, either by setting it to zero or by reducing its size, for example: go Consider that it has a larger value domain; that is, Is is quantized into ; For extreme values of , is modified by A, which is not modified according to the mathematical formula described above, and thus goes out of its value domain; to avoid this, the entries corresponding to these extreme values can be reduced or treated as zero), here , , , and are predetermined parameters (examples are stated above).
상태 변수의 이러한 업데이트는 높은 계산 효율로 수행될 수 있다는 것이 발견되었다, 여기에서 매핑 테이블이 미리 계산될 수 있다. 예를 들어, 상태 변수 값 가 미리 결정된 범위 내에 남아 있는 결과가 얻어질 수 있다(예를 들어, 미리 결정된 최소 값 및 미리 결정된 최대 값 사이에 있음). 더욱이, 매핑 테이블 A의 적절한 선택을 사용하면, 상태 변수 값이 이전에 처리된(예를 들어, 인코딩된 또는 디코딩된) 심볼의 통계의 기술(description)에 대해서 양호하게 적응되는 결과가 얻어질 수 있다. 또한, 개별적인 상태 변수 값의 적응 시상수는 가중치 m 및 n을 적절하게 선택함으로써 적응될 수 있다는 것에 주의해야 한다. 그러므로, 본 명세서에서 설명되는 알고리즘은 상태 변수 값 의 업데이트를 위해서 효율적으로 사용될 수 있다.It has been found that such updates of state variables can be performed with high computational efficiency, where the mapping table can be precomputed. For example, the state variable values A result can be obtained in which the state variable values remain within a predetermined range (e.g., between a predetermined minimum value and a predetermined maximum value). Moreover, by using an appropriate choice of the mapping table A , a result can be obtained in which the state variable values are well adapted to the description of the statistics of previously processed (e.g., encoded or decoded) symbols. It should also be noted that the adaptation time constants of individual state variable values can be adapted by appropriately choosing the weights m and n. Therefore, the algorithm described herein is adapted to the state variable values It can be used efficiently for updates.
바람직한 실시형태에서, 산술 인코더는 를 테이블 룩업 동작에 의하여 또는 계산에 의하여 유도하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to derive by table lookup operation or by calculation.
그러므로, 업데이트된 상태 변수 값을 유도하기 위한 상이한 개념들이 가능해진다.Therefore, different concepts become possible for deriving updated state variable values.
본 발명에 따른 실시형태들은, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 산술 인코더로서, 상기 산술 인코더는, 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 상태 변수 값이 복수 개 존재하는 경우에는, 상이한 적응 시상수를 가지는 통계)를 나타내는 하나 이상의 상태 변수 값(s1 k, s2 k)을 결정하도록 구성되고, 상기 산술 인코더는, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 사이즈 정보(pk, R*pk))를, 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 상태 변수 값이 복수 개 존재하는 경우에는, 상이한 적응 시상수를 가지는 통계)를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하도록 구성되며, 상기 산술 인코더는, 제 1 상태 변수 값(sk 1)을 인코딩될 심볼에 의존하여 그리고 룩업 테이블(A)을 사용하여 업데이트하도록 구성되는(예를 들어, 인코딩될 심볼을 인코딩한 후에), 산술 인코더를 생성한다.Embodiments according to the present invention are an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic encoder is configured to determine one or more state variable values (s 1 k , s 2 k ) representing statistics (e.g., statistics having different adaptation time constants when there are multiple state variable values) of a plurality of previously encoded symbol values (e.g., sequences of binary values 0 and 1), and wherein the arithmetic encoder is configured to derive interval size information ( p k , R*p k ) for arithmetic encoding of the one or more symbol values to be encoded based on one or more state variable values (s i k ) representing statistics (e.g., statistics having different adaptation time constants when there are multiple state variable values) of a plurality of previously encoded symbol values (e.g., sequences of binary values 0 and 1) (which are associated with a given context mode denoted by k , for example), wherein the arithmetic encoder is configured to: Create an arithmetic encoder configured to update the state variable value (s k 1 ) depending on the symbol to be encoded and using a lookup table (A) (e.g., after encoding the symbol to be encoded).
본 발명에 따른 이러한 실시형태는, 산술 코딩(예를 들어, 인코딩 또는 디코딩)을 위한 인터벌 크기 정보를 유도하기 위하여 사용되는 상태 변수 값의 업데이트가, 룩업 테이블을 사용하여 특히 양호한 결과와 함께 수행될 수 있다는 발견에 기반하는데, 그 이유는 룩업 테이블을 사용하면 인코딩될 신호 또는 디코딩될 신호의 특성에 특히 양호하게 적응되는 상태 변수 값의 업데이트가 가능해지기 때문이다. 예를 들어, "과거의(old)" 상태 변수 값 및 업데이트된 상태 변수 값 사이의 미세-조절된 관련성을 룩업 테이블을 사용하여 표현하는 것이 쉽게 가능해지지만, 광범위한 계산(예컨대, 예를 들어 삼각 함수 또는 지수 함수 또는 로그 함수 등의 평가)을 수행할 필요가 없다. 그러므로, 상태 변수 값의 업데이트를 룩업 테이블을 사용하여 구현하면 계산 복잡도를 합리적으로 작게 유지하는 데에 도움이 된다. 이상적으로는, "과거의" 상태 변수 값에 기반하여 업데이트된 상태 변수 값을 획득하기 위하여, 승산(또는 간단한 승산, 예를 들어 비트 천이 연산), 반올림 연산 및 가산만이 룩업 테이블 룩업 이외에 사용된다. 예를 들어, 현재의 처리된 심볼(예를 들어, 인코딩될 심볼 또는 디코딩된 심볼)은, 예를 들어 룩업-테이블 기반 매핑 규칙의 어느 부분이 업데이트된 상태 변수 값을 획득하기 위하여 평가되는지를 결정한다.This embodiment according to the invention is based on the discovery that the updating of state variable values, which is used to derive interval size information for arithmetic coding (e.g. encoding or decoding), can be performed with particularly good results using lookup tables, since the use of lookup tables allows updating of state variable values which are particularly well adapted to the characteristics of the signal to be encoded or decoded. For example, it is easy to express a fine-tuned relationship between "old" state variable values and updated state variable values using lookup tables, without the need to perform extensive calculations (e.g. evaluating trigonometric or exponential or logarithmic functions, etc.). Therefore, implementing the updating of state variable values using lookup tables helps to keep the computational complexity reasonably small. Ideally, only multiplications (or simple multiplications, e.g. bit shift operations), rounding operations and additions are used in addition to lookup table lookups to obtain updated state variable values based on "old" state variable values. For example, the currently processed symbol (e.g., the symbol to be encoded or the symbol to be decoded) determines which part of a lookup-table-based mapping rule is evaluated to obtain updated state variable values, for example.
결론적으로, 업데이트된 상태 변수 값을 룩업 테이블을 사용하여 제공하면 높은 유연성과 낮은 계산 복잡도 양자 모두를 제공하는 것이 발견되었다.In conclusion, it was found that providing updated state variable values using a lookup table provides both high flexibility and low computational complexity.
바람직한 실시형태에서, 상기 산술 인코더는, 인코딩될 심볼에 의존하고 룩업 테이블(A)을 사용하여(예를 들어, 인코딩될 심볼을 인코딩한 이후에), 제 2 상태 변수 값(sk 2)을 업데이트하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to update a second state variable value (s k 2 ) depending on the symbol to be encoded and using a lookup table (A) (e.g., after encoding the symbol to be encoded).
제 2 상태 변수 값을, 제 1 상태 변수 값을 업데이트하기 위하여 사용된 것과 동일한 룩업 테이블을 사용하여 업데이트하는 것이 유리하다는 것이 발견되었다. 예를 들어 제 1 상태 변수 값 및 제 2 상태 변수 값의 적응 시상수에 대해서 존재할 수 있는 차이들이, 예를 들어 하나 이상의 스케일링 인자를 사용하여 고려될 수 있고, 이것은, 예를 들어 룩업 테이블의 원소를 선택하는 데에 및/또는 룩업 테이블의 선택된 원소를 스케일링하기 위하여 적용될 수 있다. 결론적으로, 오직 하나의 룩업 테이블만이 두 개 이상의 상태 변수 값을 유도하기 위해서 사용되더라도, 두 개 이상의 상태 변수 값은 처리된 심볼 값의(즉, 이전에 인코딩된 심볼 값 또는 디코딩된 심볼 값의) 상이한 통계 특성을 표현하도록 적응될 수 있다.It has been found that it is advantageous to update the second state variable values using the same lookup table as was used to update the first state variable values. For example, differences that may exist in the adaptation time constants of the first and second state variable values can be taken into account, for example by using one or more scaling factors, which can be applied, for example, to select elements of the lookup table and/or to scale selected elements of the lookup table. Consequently, even if only one lookup table is used to derive two or more state variable values, the two or more state variable values can be adapted to represent different statistical properties of the processed symbol values (i.e. of the previously encoded symbol values or of the decoded symbol values).
바람직한 실시형태에서, 상기 산술 인코더는, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값을 상이한 적응 시상수를 사용하여 업데이트하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to update the first state variable value and the second state variable value using different adaptation time constants.
제 1 상태 변수 값 및 제 2 상태 변수 값을 상이한 적응 시상수를 사용하여 업데이트함으로써, 이전에 처리된 심볼의 상이한 통계 특성이 상태 변수 값에 의해서 반영될 수 있다. 상이한 적응 시상수가 있는 처리된 심볼의 통계를 나타내는 상태 변수 값의 이용가능하면, 심볼의 산술 코딩(인코딩/디코딩)을 위한 인터벌 크기를 정확하게 조절하기 위해서 매우 큰 도움이 된다. 또한, 상태 변수 값의 룩업-테이블-기반 업데이트는 매우 높은 신뢰도 및 낮은 계산 복잡도를 제공한다는 것이 발견되었다.By updating the first and second state variable values using different adaptation time constants, different statistical properties of previously processed symbols can be reflected by the state variable values. The availability of state variable values representing statistics of processed symbols with different adaptation time constants is of great help in accurately adjusting the interval size for arithmetic coding (encoding/decoding) of symbols. In addition, it has been found that lookup-table-based updating of state variable values provides very high reliability and low computational complexity.
바람직한 실시형태에서, 상기 산술 인코더는, 이전의 상태 변수 값을, 인코딩될 심볼이 제 1 값 또는 상기 제 1 값과 상이한 제 2 값을 가지는지 여부에 의존하여, 상기 룩업 테이블을 사용하여 결정된 값만큼 선택적으로 증가 또는 감소시키도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to selectively increment or decrement a previous state variable value by a value determined using the lookup table, depending on whether the symbol to be encoded has a first value or a second value different from the first value.
이러한 접근법을 사용함으로써, 상태 변수 값은 재귀적으로 적응될 수 있고, 여기에서 처리된 심볼(예를 들어, 인코딩될 심볼, 또는 이전에 인코딩된 심볼, 또는 이전에 디코딩된 심볼)은 상태 변수 값의 변화 방향(증가 또는 감소)을 결정한다. 반면에, 적응(즉, 증가 또는 감소)의 크기는 선택된 룩업 테이블 엔트리에 의해 결정되는데, 여기에 스케일링이 적용될 수 있다. 상태 변수 값의 업데이트를 위한 효율적인 메커니즘이 존재하는데, 이것은 높은 수준의 유연성을 제공하고 여전히 리소스-효율성이 매우 높다.By using this approach, the state variable values can be recursively adapted, where the symbol processed (e.g. the symbol to be encoded, or a previously encoded symbol, or a previously decoded symbol) determines the direction of change (increase or decrease) of the state variable values. On the other hand, the magnitude of the adaptation (i.e. increase or decrease) is determined by the selected lookup table entry, to which scaling can be applied. An efficient mechanism exists for updating the state variable values, which provides a high level of flexibility and is still very resource-efficient.
바람직한 실시형태에서, 상기 산술 인코더는, 인코딩될 심볼이 제 1 값을 가지면, 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 양수인 경우와 비교할 때 상기 이전의 상태 변수 값이 음수인 경우에 비교적 더 큰 값만큼 증가시키도록 구성되고, 상기 산술 인코더는, 인코딩될 심볼이 상기 제 1 값(이것은, 예를 들어 룩업 테이블을 적절히 선택함으로써 얻어짐)과 상이한 제 2 값을 가지면, 상기 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 음수인 경우와 비교할 때 상기 이전의 상태 변수 값이 양수인 경우에 비교적 더 큰 값만큼 감소시키도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to, if the symbol to be encoded has a first value, increase a previous state variable value by a relatively larger value if the previous state variable value is negative compared to the case where the previous state variable value is positive, and the arithmetic encoder is configured to, if the symbol to be encoded has a second value different from the first value (which is obtained, for example, by appropriately selecting a look-up table), decrease the previous state variable value by a relatively larger value if the previous state variable value is positive compared to the case where the previous state variable value is negative.
이러한 접근법을 사용함으로써, 상태 변수 값이 지수적으로 최대 양수 값을 향해 변하고, 지수적으로 최소 값을 향해 변하는 것이 얻어질 수 있다. (양수인) 최대 값을 향한 그리고 (음수인) 최소 값을 향한 이러한 근사화는 거의 점근 방식으로(asymptotic manner) 이루어질 수 있다. 다르게 말하면, 현재의 상태 변수 값이 (양수인) 최대 값으로부터 멀어질수록, (양수인) 최대 값을 향한 (증가하는) 스텝이 더 커지고, 현재의 상태 변수 값이 (음수인) 최소 값으로부터 멀어질수록, (음인) 최소 값을 향한 (감소하는) 스텝이 더 커진다. 그러므로, 지수적 점근 거동이 이러한 개념을 사용하여 근사화될 수 있다. 그러나, 이러한 개념이 상태 변수 값의 업데이트를 위해서 매우 양호하게 맞는다는 것이 발견되었다. 특히, 이러한 접근법이 상태 변수 값의 결정을 위한 "무한 임펄스 응답(infinite impulse response)" 접근법을 위해 잘 맞는다는 것이 발견되었다.By using this approach, it can be obtained that the state variable values change exponentially towards the maximum positive value and exponentially towards the minimum value. This approximation towards the (positive) maximum and towards the (negative) minimum can be done in a nearly asymptotic manner. In other words, the further the current state variable value is from the (positive) maximum, the larger the (increasing) step towards the (positive) maximum, and the further the current state variable value is from the (negative) minimum, the larger the (decreasing) step towards the (negative) minimum. Therefore, the exponential asymptotic behavior can be approximated using this notion. However, it has been found that this notion works very well for updating the state variable values. In particular, it has been found that this approach works well for the "infinite impulse response" approach for determining the state variable values.
바람직한 실시형태에서, 상기 산술 인코더는, 인코딩될 심볼이 제 1 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 제 1 상태 변수 값(), 또는 상기 이전에 계산된 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고, 상기 산술 인코더는, 인코딩될 심볼이 제 2 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 상기 제 1 상태 변수 값의 반전된(-1이 곱해진) 버전(), 또는 그것의(상기 이전에 계산된 상기 제 1 상태 변수 값의 반전된 버전) 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to, if a symbol to be encoded has a first value, output a predetermined (e.g., fixed) offset value (z) and a previously computed first state variable value ( ), or a scaled version and/or rounded version of the previously computed first state variable value ( ) is configured to determine an index of an entry of the lookup table to be evaluated when updating the first state variable value, depending on the sum of the first and second values of the lookup table, and the arithmetic encoder is configured to determine, if the symbol to be encoded has a second value, an inverted (multiplied by -1) version of the first state variable value and a predetermined (e.g., fixed) offset value (z). ), or a scaled version and/or a rounded version thereof (an inverted version of the previously computed first state variable value). ) is configured to determine the index of an entry of the lookup table to be evaluated when updating the value of the first state variable.
이러한 접근법을 사용함으로써, 룩업 테이블의 적절한 엔트리가, 현재 처리되는 심볼을 고려하면서 적당한 노력으로 선택될 수 있다. 이전에 계산된 상태 변수 값 및 처리된(인코딩된 또는 디코딩된) 심볼 양자 모두는 룩업 테이블의 엔트리의 선택을 결정하고, 결과적으로, 업데이트된 상태 변수 값이 이전에 계산된 상태 변수 값에 비교할 때 얼마나 많이 증가 또는 감소되는지를 결정할 수 있다. 오프셋 값은, 예를 들어 오프셋 값 및 스케일링된(및 처리된 심볼에 의존하여 반전될 수 있는) 이전에 계산된 상태 변수 값을 합산하면, 결과적으로 유효한 룩업 테이블 인덱스가 얻어진다는 것을 보장할 수 있는데, 그 이유는 유효한 룩업 테이블 인덱스들이 통상적으로는 음수가 아니기 때문이다. 이러한 개념을 사용함으로써, 적절한 룩업 테이블 인덱스를 선택하고 업데이트된 상태 변수 값을 효율적으로 제공하는 것이 쉽게 가능해진다.By using this approach, an appropriate entry in the lookup table can be selected with reasonable effort, taking into account the symbol currently being processed. Both the previously computed state variable value and the processed (encoded or decoded) symbol determine the selection of the entry in the lookup table, and consequently, how much the updated state variable value is increased or decreased compared to the previously computed state variable value. An offset value can ensure that, for example, summing the offset value and the scaled (and possibly inverted, depending on the processed symbol) previously computed state variable value results in a valid lookup table index, since valid lookup table indices are typically non-negative. By using this concept, it becomes easy to select an appropriate lookup table index and to provide an updated state variable value efficiently.
바람직한 실시형태에서, 상기 산술 인코더는, 인코딩될 심볼이 제 1 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 제 2 상태 변수 값(), 또는 상기 이전에 계산된 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고, 상기 산술 디코더는, 인코딩될 심볼이 제 2 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 상기 제 2 상태 변수 값의 반전된(-1이 곱해진) 버전(), 또는 그것의(상기 이전에 계산된 상기 제 2 상태 변수 값의 반전된 버전) 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to, when a symbol to be encoded has a first value, output a predetermined (e.g., fixed) offset value (z) and a previously computed second state variable value ( ), or a scaled version and/or rounded version of the previously computed second state variable value ( ) is configured to determine an index of an entry of the lookup table to be evaluated when updating the second state variable value, depending on the sum of the values of the lookup table, and the arithmetic decoder is configured to determine, if the symbol to be encoded has a second value, an offset value (z) that is predetermined (e.g., fixed) and an inverted (multiplied by -1) version of the previously computed second state variable value ( ), or a scaled version and/or rounded version thereof (an inverted version of the previously computed second state variable value). ) is configured to determine the index of an entry of the lookup table to be evaluated when updating the value of the second state variable.
제 2 상태 변수 값의 업데이트를 위한 이러한 개념은, 제 1 상태 변수 값의 업데이트를 위한 개념과 실질적으로 동일하고, 여기에서, 예를 들어 동일한 룩업 테이블이 평가되어 메모리 리소스를 절약할 수 있으며, 예를 들어 제 1 상태 변수 값의 업데이트와 비교할 때 상이한 스케일링 값이 사용됨으로써, 변경된 상태 변수 값 업데이트 특성을 얻을 수 있다. 예를 들어, 제 1 상태 변수 값 및 상태 변수 값에 대한 상이한 적응 시상수가, 업데이트된 제 1 상태 변수 값 및 업데이트된 제 2 상태 변수 값의 결정을 위해서 상이한 스케일링 값을 사용함으로써 획득될 수 있다.This concept for updating the second state variable value is substantially identical to the concept for updating the first state variable value, whereby, for example, the same lookup table can be evaluated to save memory resources, and, for example, different scaling values can be used compared to the update of the first state variable value, thereby obtaining changed state variable value update characteristics. For example, different adaptation time constants for the first state variable value and the state variable value can be obtained by using different scaling values for the determination of the updated first state variable value and the updated second state variable value.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 1 상태 변수 값(sk 1)을 스케일링하기 위하여 제 1 스케일링 값(mk 1)을 적용하도록 구성되고, 상기 산술 인코더는, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 2 상태 변수 값(sk 2)을 스케일링하기 위하여 제 2 스케일링 값(mk 2)을 적용하도록 구성되며, 제 1 스케일링 값은 제 2 스케일링 값과 다르다(그리고, 여기에서 제 1 및 제 2 스케일링 값은 2의 정수 포텐시인 것이 바람직하고, 제 1 스케일링 값 및 제 2 스케일링 값 사이의 비율은 2의 정수 포텐시인 것이 바람직하며, 및 제 1 스케일링 값 및 제 2 스케일링 값은 적어도 8의 인자에 의해서 서로 다른 것이 바람직하다).In a preferred embodiment, the arithmetic encoder is configured to apply a first scaling value (m k 1 ) to scale a previously computed first state variable value (s k 1 ) when determining an index of an entry of the lookup table to be evaluated when updating the first state variable value, and the arithmetic encoder is configured to apply a second scaling value (m k 2 ) to scale a previously computed second state variable value (s k 2 ) when determining an index of an entry of the lookup table to be evaluated when updating the second state variable value, wherein the first scaling value is different from the second scaling value ( and , preferably, the first and second scaling values are of
제 1 상태 변수 값을 업데이트할 때에, 평가될 룩업 테이블의 엔트리의 인덱스를 결정할 때 상이한 스케일링 값을 사용하고, 제 2 상태 변수 값을 업데이트할 때에, 평가될 룩업 테이블의 엔트리의 인덱스를 결정할 때 상이한 스케일링 값을 사용함으로써, 상이한 적응 시상수가 효율적으로 구현될 수 있고, 여기에서 기본적인 상태 변수 값 업데이트 알고리즘 및 사용된 룩업 테이블은 동일할 수 있고, 큰 차이는 오직 스케일링 값의 선택 뿐일 수 있다. 그러면 리소스를 많이 절약하면서 구현할 수 있다.When updating the first state variable value, by using different scaling values when determining the index of the entry of the lookup table to be evaluated, and when updating the second state variable value, by using different scaling values when determining the index of the entry of the lookup table to be evaluated, different adaptation time constants can be efficiently implemented, where the basic state variable value update algorithm and the used lookup table can be the same, and the only big difference can be the choice of the scaling value. Then, the implementation can be implemented with much saving of resources.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 제 1 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 1 스케일링 값(예를 들어 nk 1)을 사용하여 스케일링하도록 구성되고, 상기 산술 인코더는, 상기 제 2 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 2 스케일링 값(예를 들어 nk 2)을 사용하여 스케일링하도록 구성되며, 여기에서 상기 제 1 스케일링 값은 상기 제 2 스케일링 값과 다르다.In a preferred embodiment, the arithmetic encoder is configured to scale a value returned by evaluation of the lookup table when updating the first state variable value using a first scaling value (e.g., n k 1 ), and the arithmetic encoder is configured to scale a value returned by evaluation of the lookup table when updating the second state variable value using a second scaling value (e.g., n k 2 ), wherein the first scaling value is different from the second scaling value.
룩업 테이블의 평가에 의해 반환된 값(예를 들어 선택된 룩업 테이블 엔트리)을 설명된 것처럼 상이하게 스케일링하면, 제 1 상태 변수 값 및 제 2 상태 변수 값을 업데이트할 때 상이한 적응 시상수를 효과적으로 구현할 수 있게 된다. 더 나아가, 이러한 스케일링은 동일한 룩업 테이블을 제 1 상태 변수 값에 대한 업데이트 및 제 2 상태 변수 값에 대한 업데이트를 위해서 사용할 수 있게 하는데, 그러면 메모리 리소스를 절약하는데 도움이 된다.Scaling the values returned by evaluating the lookup table (e.g. the selected lookup table entry) differently as described allows to efficiently implement different adaptation time constants when updating the first state variable value and the second state variable value. Furthermore, this scaling allows to use the same lookup table for updates to the first state variable value and for updates to the second state variable value, which helps to save memory resources.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
상태 변수 값에 대한 이러한 업데이트 메커니즘은 높은 계산 효율로 구현될 수 있고 신뢰가능한 결과를 제공한다는 것이 발견되었다.It was found that this update mechanism for state variable values can be implemented with high computational efficiency and provides reliable results.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
상태 변수 값의 업데이트를 위한 이러한 메커니즘은 일부 상황에서도 매우 유리할 수 있다는 것이 발견되었다. 특히, 이러한 접근법을 사용하면, 일부 구현 형태에서 계산에 있어서 비효율적일 수 있는 부동 소수점 값을 반전할 필요가 없다. 그러므로, 이러한 개념은 일부 상황에서 매우 양호한 리소스 효율을 동반한다.It has been found that this mechanism for updating state variable values can be very advantageous in some situations. In particular, this approach eliminates the need to invert floating point values, which can be computationally inefficient in some implementations. Therefore, this concept is accompanied by very good resource efficiency in some situations.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
이러한 개념이 일부 구현 환경에서도 특히 높은 계산 효율 및 양호한 정확도를 동반한다는 것이 발견되었다.It has been found that this concept provides particularly high computational efficiency and good accuracy even in some implementation environments.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
이러한 개념이 일부 상황에서도 계산 효율 및 신뢰도의 관점에서 역시 장점을 동반한다는 것이 발견되었다.It has been found that this concept also brings advantages in terms of computational efficiency and reliability in some situations.
산술 인코더의 바람직한 실시형태에서, A의 엔트리는 룩업 테이블 인덱스가 증가함에 따라 단조 감소한다.In a preferred embodiment of the arithmetic encoder, the entries of A monotonically decrease as the lookup table index increases.
이러한 접근법을 사용함으로써, 상태 변수 값을 최대 값을 향해 또는 최소 값을 향해 근사화하는 것이 단조롭고 및/또는 연속적이며 및/또는 점근적이 될 수 있다. 예를 들어, 개별적인 최대 값 또는 최소 값으로부터 멀리 떨어진 상태 변수가 최대 값을 향해 또는 최소 값을 향해 비교적으로 빠르게 변경되는 반면에, 개별적인 최대 값 또는 최소 값에 가까운 상태 변수 값은 상기 최대 값 또는 최소 값을 향해 비교적으로 느리게 변하게 될 수 있다. 그러므로, 룩업 테이블의 엔트리의 앞에서 언급된 선택은, 최대 값 또는 최소 값의 부드러운 근사화를 허용하고, 이것은 하나 이상의 상태 변수 값에 기반하여 인터벌 크기 정보를 유도하기 위해서 매우 유용하다는 것이 밝혀졌다.By using this approach, the approximation of the state variable values towards their maximum or minimum can be monotonous and/or continuous and/or asymptotic. For example, state variables far from their respective maximum or minimum values may change relatively quickly towards their maximum or minimum values, whereas state variable values close to their respective maximum or minimum values may change relatively slowly towards said maximum or minimum values. Therefore, the aforementioned choice of entries in the lookup table allows for a smooth approximation of the maximum or minimum values, which turns out to be very useful for deriving interval size information based on one or more state variable values.
산술 인코더의 바람직한 실시형태에서, A는 이거나, 업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위해서, 제로 설정 또는 크기 감소에 의해 그 인수의 하나 이상의 극단 값에 대해서만 그로부터 벗어나며, (예를 들어 가 보다 큰 값 도메인을 가진다는 것을 고려한다; 즉, 는 로 의사 양자화된다; 의 극단 값에 대하여, 는 전술된 수학식에 따라서 수정되지 않은 A에 의해서 수정되어 그 값 도메인을 벗어나게 된다; 이것을 피하기 위하여, 이러한 극단 값에 대응하는 엔트리는 감소되거나 제로로 처리될 수 있다), 여기에서 , , , 및 는 미리 결정된 파라미터이다(예들이 앞에서 진술됨).In a preferred embodiment of the arithmetic encoder, A is This or updated To avoid going beyond a predetermined range of values, it deviates from it only for one or more extreme values of its argument, either by setting it to zero or by reducing its size (e.g. go Consider that it has a larger value domain; that is, Is is quantized into ; For extreme values of , is modified by A, which is not modified according to the mathematical formula described above, and thus goes out of its value domain; to avoid this, the entries corresponding to these extreme values can be reduced or treated as zero), here , , , and are predetermined parameters (examples are stated above).
룩업 테이블 Α를 이렇게 선택하면 상기 룩업 테이블 A를 사용하여 업데이트되는 상태 변수 값의 특히 유리한 거동이 동반된다는 것이 발견되었다.It was found that this choice of lookup table A is accompanied by particularly advantageous behavior of the state variable values that are updated using said lookup table A.
산술 인코더의 바람직한 실시형태에서, 상기 룩업 테이블의 마지막 엔트리(제 1 상태 변수 값이 최대 허용 값까지 연장되는 값들의 미리 결정된 범위에 도달할 때에, 또는 제 1 상태 변수 값이 미리 결정된 문턱 값을 초과할 때에 어드레싱됨)는 제로와 같게 된다.In a preferred embodiment of the arithmetic encoder, the last entry of the lookup table (addressed when the first state variable value reaches a predetermined range of values extending to a maximum allowed value, or when the first state variable value exceeds a predetermined threshold value) is equal to zero.
0과 같은 상기 룩업 테이블의 마지막 엔트리를 사용함으로써, 업데이트된 상태 변수 값이 최대 값 및/또는 최소 값을 벗어나는 것을 쉽게 피할 수 있게 된다.By using the last entry of the above lookup table as 0, it is easy to avoid the updated state variable values going beyond the maximum and/or minimum values.
바람직한 실시형태에서, 상기 산술 인코더는, 업데이트된 상태 변수 값 및 클리핑된 상태 변수 값을 값들의 미리 결정된 범위 내에 유지하도록, 클리핑 연산을 업데이트된 상태 변수 값에 적용하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to apply a clipping operation to the updated state variable values so as to keep the updated state variable values and the clipped state variable values within a predetermined range of values.
이러한 메커니즘을 사용함으로써, 상태 변수 값이 최소 값 및 최대 값 사이의 미리 결정된 범위를 벗어나는 것을 쉽게 방지할 수 있게 된다. 이에 따라서, 상태 변수 값이 "합리적인(reasonable)" 값을 가지는 것이 보장될 수 있다.By using this mechanism, it is easy to prevent the state variable values from going outside a predetermined range between the minimum and maximum values. Accordingly, it can be guaranteed that the state variable values have "reasonable" values.
바람직한 실시형태에서, 산술 인코더는 다음에 따라서 클리핑 연산을In a preferred embodiment, the arithmetic encoder performs the clipping operation according to
업데이트된 상태 변수 값에 적용하도록 구성되는데, 여기에서 는 에 대한 최대 허용 값이고 는 에 대한 최소 허용 값이다.It is configured to apply to the updated state variable values, where Is is the maximum allowable value for Is is the minimum allowable value for .
이러한 클리핑 연산이 효율적인 방식으로 구현될 수 있고 무효한 상태 변수 값이 회피된다는 것이 발견되었다.It was discovered that these clipping operations can be implemented in an efficient manner and that invalid state variable values are avoided.
바람직한 실시형태에서, 산술 인코더는 상이한 콘텍스트 모델에 대하여 상이한 스케일링 값을 적용하도록(예를 들어, 스케일링 값들 중 적어도 하나가 두 개의 상이한 콘텍스트 모델들 사이에서 변하게 하도록) 구성된다.In a preferred embodiment, the arithmetic encoder is configured to apply different scaling values for different context models (e.g., to cause at least one of the scaling values to vary between two different context models).
상이한 콘텍스트 모델에 대하여 상이한 스케일링 값을 사용함으로써, 상이한 콘텍스트 모델의 상이한 통계 특성(이것은 상이한 타입의 정보 및/또는 비트 스트림 신택스 원소의 타입과 연관될 수 있음)이 고려될 수 있다. 상이한 콘텍스트 모델에 대하여 상이한 스케일링 값을 사용함으로써, 내재하는 알고리즘을 기초부터 변경하지 않고서, 상태 변수 값에 대한 업데이트 공정이 상이한 콘텍스트 모델에 쉽게 적응될 수 있다. 그러므로, 적절한 스케일링 값이 매우 효율적인 방식으로 획득될 수 있다.By using different scaling values for different context models, different statistical properties of different context models (which may be associated with different types of information and/or types of bit stream syntax elements) can be taken into account. By using different scaling values for different context models, the update process for state variable values can be easily adapted to different context models without fundamentally changing the underlying algorithm. Therefore, appropriate scaling values can be obtained in a very efficient manner.
바람직한 실시형태에서, 산술 인코더는 전술된 실시형태 중 하나에서 규정된 바와 같은 인터벌 크기 정보를 획득하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to obtain interval size information as specified in one of the embodiments described above.
상태 변수 값의 업데이트를 위한 개념이 인터벌 크기 정보의 유도를 위한 앞에서 언급된 개념과 양호하게 조합되어 사용될 수 있다는 것이 발견되었다.It was found that the concept of updating state variable values can be used in good combination with the previously mentioned concept of deriving interval size information.
본 발명에 따른 실시형태는 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 산술 인코더로서, 상기 산술 인코더는, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 0 및 1의 이진 값의 시퀀스)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)에 기반하여 유도하도록 구성되고, 상기 산술 인코더는, 인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하도록 구성되며, 상기 산술 인코더는, 상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i)(예를 들어, i=Qp(pLPS)와 같음)가 제 1 범위 내에 있다면(예를 들어, μ보다 작으면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면(예를 들어, μ 이상이면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하도록 구성되고, 상기 산술 인코더는, 하나 이상의 심볼의 산술적 인코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 인코더를 생성한다.An embodiment according to the present invention is an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic encoder is configured to derive an interval size value (R LPS ) for arithmetic encoding of one or more symbol values to be encoded based on one or more state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g., a sequence of binary values of 0 and 1), wherein the arithmetic encoder is configured to determine the interval size value (R LPS ) using a base lookup table (Base TabLPS), wherein the arithmetic encoder determines that if a probability index (i) (e.g., equal to i=Qp(p LPS )) obtained based on the one or more state variable values is within a first range (e.g., less than μ), the determined interval size value is equal to an element of the base lookup table or a rounded version of an element of the base lookup table, and the probability If the index is within the second range (e.g., greater than or equal to μ), the determined interval size value is obtained by using scaling and rounding of elements of the base lookup table, thereby generating an arithmetic encoder, wherein the arithmetic encoder is configured to perform arithmetic encoding of one or more symbols using the interval size value (R LPS ) .
본 발명에 따른 이러한 실시형태는, 산술 인코더 내에서 인터벌 크기 값을 결정하는 것이, 그 차원이 주어진 현재의 코딩 인터벌 크기와 연관된 상이한 인터벌 크기 값의 개수보다 작은 "베이스 룩업 테이블"을 사용하여, 상기 베이스 룩업 테이블의 원소를 한 번은 스케일링하지 않고, 그리고 한 번은 스케일링과 함께 재사용함으로써 수행될 수 있다는 사실에 기반하고 있다. 이에 따라서, 상태 변수 값의 상이한 범위와 연관된, 산술 코딩(인코딩/디코딩)을 위한 인터벌 크기 값이 스케일링에 의해서 실질적으로 다르다는 것(예를 들어, 일부 반올림 효과를 제외하고)이 활용될 수 있다. 이에 따라서, 비교적으로 작은 "베이스 룩업 테이블"이 사용될 수 있고, 그 엔트리는 상이한 확률 인덱스들에 대해서 여러 번 사용된다(여기에서, 확률 인덱스들은 유도된 개별적인 상태 변수 값에 기반하여 유도될 수 있음).This embodiment according to the present invention is based on the fact that determining interval size values within an arithmetic encoder can be performed by using a "base lookup table" whose dimension is smaller than the number of different interval size values associated with a given current coding interval size, by reusing elements of the base lookup table, once without scaling and once with scaling. Accordingly, the fact that interval size values for arithmetic coding (encoding/decoding) associated with different ranges of state variable values are substantially different by scaling (e.g. except for some rounding effects) can be exploited. Accordingly, a relatively small "base lookup table" can be used, the entries of which are reused multiple times for different probability indices (wherein the probability indices can be derived based on the derived individual state variable values).
결론적으로, 본 명세서에서 설명되는 개념은 하나 이상의 상태 변수 값에 기반한 인터벌 크기 값의 고도로 효율적인 결정이 가능해지게 한다.In conclusion, the concepts described herein enable highly efficient determination of interval size values based on the values of one or more state variables.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값(RLPS)이 상기 베이스-룩업 테이블의 원소의 우측-천이된 버전이 되게끔 상기 인터벌 크기 값을 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to determine the interval size value (R LPS ) such that the determined interval size value becomes a right-shifted version of an element of the base lookup table if the probability index is within the second range.
이러한 개념은, 우측-천이 연산이 계산에 있어서 매우 효율적이라는 사상에 기반하고 있으며, 확률 인덱스가 제 2 범위 내에 존재한다면 신뢰가능한 인터벌 크기 값을 역시 제공한다(비록, 확률 인덱스가 제 1 범위 내에 있다면 베이스 룩업 테이블의 원소에 천이 연산이 적용되지 않는 것이 바람직하지만). 결과적으로, 제 1 범위 내의 그리고 제 2 범위 내의 "대응하는" 확률 인덱스들에 대해서 제공된 인터벌 크기 값들은 비트-천이에 의해서 주로 달라진다(수행될 수 있는 반올림은 제외함). 이것은 통상적으로, 확률 인덱스 값들의 범위에 걸쳐서, 또는 심지어는 "제 1 범위"(통상적으로 세 개 이상의 상이한 값을 포함함) 전체에 걸쳐서 참이 된다. 더 나아가, 우측-천이 연산이 통상적으로 2의 포텐시에 의한 나눗셈에 대응한다는 것에 주의해야 한다.This concept is based on the idea that the right-transition operation is computationally very efficient, and still provides reliable interval size values if the probability index is within the second range (although it is desirable that the transition operation not be applied to an element of the base lookup table if the probability index is within the first range). Consequently, the interval size values provided for "corresponding" probability indices within the first range and within the second range differ primarily by bit-transition (excluding any rounding that may be performed). This is typically true across the range of probability index values, or even across the entire "first range" (which typically includes three or more different values). Furthermore, it should be noted that the right-transition operation typically corresponds to division by a potential of 2.
바람직한 실시형태에서, 상기 확률 인덱스(Qp2(pLPS))는, 상기 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)으로서 제공되는지, 또는 상기 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)을 획득하도록 스케일링되고 반올림되는지를 결정한다.In a preferred embodiment, the probability index (Qp2(p LPS )) determines whether an element of the lookup table is provided as the interval size value (R LPS ), or whether an element of the lookup table is scaled and rounded to obtain the interval size value (R LPS ).
확률 인덱스(또는, 특히, 확률 인덱스가 제 1 범위 내에 또는 제 2 범위 내에 속하는지 여부의 문제)는, 스케일링(및 선택적으로 반올림)이 룩업 테이블(베이스 룩업 테이블)의 원소에 기반하여 인터벌 크기 값을 획득하기 위하여 적용되는지 여부를 판정하는데, 이러한 알고리즘은 매우 간단하게 유지될 수 있다. 예를 들어, 확률 인덱스가 제 1 범위 내에 또는 제 2 범위 내에 있는지 여부의 점검이, 확률 인덱스를 미리 결정된 값으로 나눔으로써, 또는 확률 인덱스를 하나 이상의 문턱 값과 비교함으로써 쉽게 수행될 수 있다. 이에 따라서, 확률 인덱스에 기반하여, 스케일링(및 선택적인 반올림)이 수행되는지 여부가 쉽게 판정될 수 있다. 그러므로, 인터벌 크기 값의 유도를 위한 이러한 개념은 매우 효율적이다.The algorithm for determining whether scaling (and optionally rounding) is applied to obtain interval size values based on the elements of a lookup table (the base lookup table) for a probability index (or, in particular, the question of whether the probability index falls within the first range or within the second range) can be kept very simple. For example, the check whether the probability index falls within the first range or within the second range can be easily performed by dividing the probability index by a predetermined value, or by comparing the probability index to one or more threshold values. Accordingly, it can be easily determined whether scaling (and optionally rounding) is performed based on the probability index. Therefore, this concept for deriving interval size values is very efficient.
산술 인코더의 바람직한 실시형태에서, 상기 확률 인덱스(i) 및 상기 제 1 크기 값(예를 들어 μ; 여기에서, 예를 들어 크기 값은 베이스 룩업 테이블의 제 1 방향으로의 확장(extension)을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ) 및 인터벌 크기 인덱스(예를 들어 인터벌 크기 정보 또는 전체 인터벌 크기 정보(R)에 기반하여, 예를 들어 양자화 연산 Qr2(.)를 사용하여 획득될 수 있음)는, 베이스 룩업 테이블의 어떤 원소가 인터벌 크기 정보를 획득하기 위하여 사용되는지를 결정한다.In a preferred embodiment of the arithmetic encoder, the division remainder (i%μ) of the division between the probability index (i) and the first magnitude value (e.g. μ; where, for example, the magnitude value describes an extension of the base lookup table in the first direction) and the interval magnitude index (e.g., obtained using a quantization operation Qr2(.), based on the interval magnitude information or the overall interval magnitude information (R)) determines which element of the base lookup table is used to obtain the interval magnitude information.
베이스 룩업 테이블의 엔트리를 나눗셈 나머지에 의존하고 또한 인터벌 크기 인덱스에 의존하여 선택함으로써, 이차원 베이스 룩업 테이블이 용이하게 평가될 수 있고, 여기에서 이차원 베이스 룩업 테이블의 원소는 인터벌 크기 값(인터벌 크기 인덱스에 의해 표현될 수 있음)과의 승산을 포함할 수 있다. 그러므로, 이차원 베이스 룩업 테이블을 가짐으로써 인터벌 크기 값과의 승산을 절약하는 것이 가능하다(여기에서, 나눗셈 나머지는 제 1 테이블 인덱스로서 사용될 수 있고, 인터벌 크기 인덱스는 제 2 테이블 인덱스로서의 역할을 할 수 있음). 더 나아가, 제 1 테이블 인덱스로서 나눗셈 나머지를 사용하는 것은, 베이스 룩업 테이블의 원소가 확률 인덱스가 증가함에 따라 순환식으로(cyclically) 선택된다는 사실에 양호하게 적응된다(그 이유는 확률 인덱스의 후속하는 범위가 베이스 룩업 테이블의 공통 범위를 선택하기 때문임). 결론적으로, 앞에서 언급된 구현형태는, 베이스 룩업 테이블의 원소에 매우 간단하게 액세스할 수 있게 하고, 베이스 룩업 테이블의 2-차원 속성에 기인하여 인터벌 크기 값과의 승산을 피하는 것을 돕는다.By selecting entries of the base lookup table depending on the division remainder and also depending on the interval size index, a two-dimensional base lookup table can be easily evaluated, where elements of the two-dimensional base lookup table can include multiplications with interval size values (which can be expressed by the interval size indexes). Therefore, by having a two-dimensional base lookup table it is possible to save multiplications with interval size values (wherein the division remainder can be used as the first table index, and the interval size index can serve as the second table index). Furthermore, using the division remainder as the first table index adapts well to the fact that elements of the base lookup table are selected cyclically as the probability index increases (since subsequent ranges of the probability indexes select a common range of the base lookup table). In conclusion, the implementation mentioned above allows very simple access to the elements of the base lookup table and helps to avoid multiplication with interval size values due to the two-dimensional nature of the base lookup table.
바람직한 실시형태에서, 산술 인코더는 인터벌 크기 값 RXPS(예를 들어 RLPS)를 다음에 따라서 획득하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to obtain interval size values R XPS (e.g. R LPS ) according to:
RXPS=Scal(BaseTabLPS[i%μ][j], i/μ)R XPS =Scal(BaseTabLPS[i%μ][j], i/μ )
여기에서 BaseTabLPS는 차원 μ x λ인 베이스 룩업 테이블이고; i는 확률 정보와 연관된 테이블 인덱스이며; j는 인터벌 크기 정보(예를 들어 총 인터벌 크기 정보(R))와 연관된 테이블 인덱스이고; %는 나눗셈 나머지 연산이며; /는 나눗셈 연산이고; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, BaseTabLPS is a base lookup table of dimension μ x λ; i is a table index associated with probability information; j is a table index associated with interval size information (e.g., total interval size information (R)); % is a division remainder operation; / is a division operation; and Scal(x, y) is a scaling function (e.g., Scal(x, y) = x*a -by As defined, . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
인터벌 크기 정보를 구성하는 인터벌 크기 값을 결정하기 위한 이러한 개념이 계산에 있어서 고도로 효율적이고, 비교적으로 작은 베이스 룩업 테이블을 사용할 수 있게 한다는 것이 발견되었다. 특히, 승산 연산이 회피될 수 있다. 더 나아가, 예를 들어 차원 μ가 2의 포텐시라면, 나눗셈 나머지 연산 및 나눗셈 연산도 역시 계산에 있어서 매우 효율적인 방식으로 구현될 수 있다. 그러므로, 인터벌 크기 값을 유도하기 위한 설명된 개념은 계산에 있어서 매우 효율적인 구현형태가 가능해지게 한다.It has been found that this concept for determining the interval size values that constitute the interval size information is computationally highly efficient and allows the use of a relatively small base lookup table. In particular, the multiplication operation can be avoided. Furthermore, for example, if the dimension μ has a potential of 2, the division remainder operation and the division operation can also be implemented in a computationally very efficient manner. Therefore, the described concept for deriving the interval size values allows for a computationally very efficient implementation.
바람직한 실시형태에서, 산술 인코더는, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 인코딩된 심볼 값(예를 들어 이진 값 0 및 1의 시퀀스)(예를 들어 상이한 적응 시상수를 가짐)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하도록 구성되고; 산술 인코더는, 인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 (현재의) 확률 값에 기반하여, 그리고 (현재의) 코딩 인터벌 크기(R)에 기반하여, 확률 테이블(ProbTabLPS), (그 차원은 확률 인덱스들의 관점에서 가능한 확률 인덱스들 i의 개수 보다 작음)을 사용하여 결정하도록 구성되며, 여기에서 확률 테이블은 복수 개의 확률 값들의 세트에 대한(예를 들어, 0 및 μ-1 사이의 확률 인덱스들에 대한) 그리고 (하나의) 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기(인터벌 크기 값)를 기술하고, 상기 산술 인코더는, 현재의 확률 값이 복수 개의 확률 값들의 세트 내에 있지 않으면(예를 들어, 현재의 확률 값과 연관된 확률 인덱스가 μ 이상이면) 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 (레퍼런스) 코딩 인터벌 크기와 다르면, 확률 테이블(Prob_TabLPS)의 원소(예를 들어, 현재의 확률 값에 의존하여 선택된 원소)를 스케일링하여 인터벌 크기 값[RLPS)을 획득하도록 구성되고; 상기 산술 인코더는 하나 이상의 심볼의 산술적 인코딩을 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to derive an interval size value (R LPS ) for an arithmetic encoding of one or more symbol values to be encoded, based on one or more state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g. sequences of binary values 0 and 1) (e.g. having different adaptation time constants), which are associated with a given context mode, e.g. indicated by an index k; The arithmetic encoder is configured to determine an interval size value (R LPS ) based on a (current) probability value derived from one or more state variable values and based on a (current) coding interval size (R), using a probability table (ProbTabLPS) (the dimension of which is smaller than the number of possible probability indices i in terms of probability indices), wherein the probability table describes interval sizes (interval size values) for a set of a plurality of probability values (e.g. for probability indices between 0 and μ-1) and for (a) given (reference) coding interval size, and the arithmetic encoder scales an element of the probability table (Prob_TabLPS) (e.g. an element selected depending on the current probability value) to determine the interval size if the current probability value is not within the set of the plurality of probability values (e.g. if the probability index associated with the current probability value is greater than or equal to μ) and/or if the current coding interval size (R) is different from the given (reference) coding interval size. is configured to obtain a value [R LPS ); and the arithmetic encoder is configured to perform arithmetic encoding of one or more symbols using the interval size value (R LPS ).
이러한 개념은, 확률 값(또는 확률 인덱스)의 상이한(중첩하지 않는) 범위들과 연관된 인터벌 크기 값들이 스케일링 연산에 의해서 실질적으로 관련된다(생길 수 있는 반올림 효과를 제외하고)는 사상에 기반한 것이다. 스케일링 연산이, 예를 들어, 룩업 테이블(확률 테이블)의 크기가 적절하게 선택된다면, 예를 들어 비트-천이 연산을 사용하여 계산에 있어서 효율적인 방식으로 구현될 수 있다는 점에도 역시 주의해야 한다. 결과적으로, 산술 코딩(인코딩 또는 디코딩)을 위해 사용되는 인터벌 크기 값을 작은 계산 노력으로 그리고 또한 작은 크기의 룩업 테이블만을 사용하여 유도하는 것이 가능해지고, 그러면 메모리가 절약된다.This concept is based on the idea that interval size values associated with different (non-overlapping) ranges of probability values (or probability indices) are substantially related (except for possible rounding effects) by a scaling operation. It should also be noted that the scaling operation can be implemented in a computationally efficient manner, for example using bit-shift operations, if the size of the lookup table (probability table) is suitably chosen. As a result, it becomes possible to derive interval size values used for arithmetic coding (encoding or decoding) with little computational effort and also using only small-sized lookup tables, which saves memory.
바람직한 실시형태에서, 산술 인코더는, 인터벌 크기 값을, 상기 (현재의) 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용하여, 그리고 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한(예를 들어 현재의 확률이 상기 확률 테이블에 의해 커버되는 복수 개의 확률 값들의 범위 내에 속하는지 여부에 의존한), 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to obtain the interval size value using a first scaling of a selected element (probTabLPS[i%μ]) of the probability table depending on the (current) coding interval size R, and a second scaling of the result of the first scaling depending on whether an element associated with a current probability value (indicated by index i) is included in the set of probability values (e.g. depending on whether the current probability falls within a range of a plurality of probability values covered by the probability table).
인터벌 크기 정보를 얻기 위해서 2단계 승산 또는 스케일링을 사용함으로써, 작은 확률 테이블을 사용할 수 있게 된다. 예를 들어, 확률 테이블은 단일 코딩 인터벌 크기 및 주어진, 비교적으로 작은 범위의 확률 값들(이것은 "복수 개의 확률 값의 세트"에 의해서 표현될 수 있음)만을 "직접적으로" 커버할 수 있다. 이에 따라서, 임의의 다른 코딩 인터벌 크기의 경우, 및 확률 테이블에 의해 "직접적으로" 커버되는 복수 개의 확률 값들의 세트 내에 포함되지 않는 임의의 확률 값의 경우, 스케일링은, 의미있고 신뢰가능한 인터벌 크기 값이 획득되도록 수행된다.By using two-step multiplication or scaling to obtain interval size information, a small probability table can be used. For example, the probability table can "directly" cover only a single coding interval size and a given, relatively small range of probability values (which can be expressed by a "set of multiple probability values"). Accordingly, for any other coding interval size, and for any probability value that is not included in the set of multiple probability values "directly" covered by the probability table, scaling is performed so that meaningful and reliable interval size values are obtained.
산술 인코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 상기 코딩 인터벌 크기(R)는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic encoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an expansion of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) determines the coding interval size (R), and/or determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
확률의 어떤 원소가 스케일링되는지를 결정하기 위하여 나눗셈 나머지를 사용하면, 확률 테이블의 엔트리가 확률 인덱스가 증가함에 따라 주기적으로 재사용된다(예를 들어, 순환 방식으로)는 사실을 활용하는 데에 도움이 된다. 나눗셈 나머지를 사용하면 이러한 사실이 표현된다. 또한, 나눗셈 나머지는 일부 상황에서, 특히 나눗셈이 2의 포텐시에 의해 이루어지는 경우에는, 매우 높은 계산 효율로 계산될 수 있다.Using division remainders to determine which elements of a probability are scaled helps to exploit the fact that entries in a probability table are reused cyclically (i.e., in a circular fashion) as the probability index increases. Using division remainders expresses this fact. Furthermore, division remainders can be computed with very high computational efficiency in some situations, especially when the division is done by a power of 2.
더욱이, 스케일링 인자를 정수 나눗셈 결과에 기반하여 결정함으로써, 스케일링 인자를 확률 인덱스 값의 상이한 (인접) 범위에 쉽게 할당할 수 있게 된다. 더 나아가, 정수 나눗셈 결과는, 일부 상황에서는, 특히 나눗셈이 2의 포텐시에 의해 이루어진다면, 계산에 있어서 고도로 효율적인 방식으로 계산될 수 있다.Moreover, by determining the scaling factor based on the result of integer division, it is easy to assign the scaling factor to different (adjacent) ranges of probability index values. Furthermore, the result of integer division can be computed in a computationally highly efficient manner in some situations, especially if the division is done with a potentiometer of 2.
더욱이, 승산 스케일링 인자를 코딩 인터벌 크기에 기반하여 결정하면, 인터벌 크기 값이 코딩 인터벌 크기에 따라 스케일링된다는 사실이 반영된다. 이에 따라서, 인터벌 크기 값은 높은 효율 및 정확도로 얻어질 수 있다.Moreover, if the odds scaling factor is determined based on the coding interval size, the fact that the interval size value is scaled according to the coding interval size is reflected. Accordingly, the interval size value can be obtained with high efficiency and accuracy.
바람직한 실시형태에서, 산술 인코더는 인터벌 크기 값 RXPS(예를 들어 RLPS)를 다음에 따라서 획득하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to obtain interval size values R XPS (e.g. R LPS ) according to:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(예를 들어, 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (e.g., the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
인터벌 크기 값을 결정하기 위한 이러한 알고리즘은 계산에 있어서 효율적이고 양호한 품질 결과를 제공한다는 것이 밝혀졌다. 확률 테이블은 비교적으로 작을 수 있고, 스케일링 함수는 계산에 있어서 효율적인 방식으로, 예를 들어 하나 이상의 비트 천이 연산을 사용하여 구현될 수 있다.It has been shown that such an algorithm for determining the interval size value is computationally efficient and provides good quality results. The probability table can be relatively small and the scaling function can be implemented in a computationally efficient manner, for example using one or more bit-shift operations.
바람직한 실시형태에서, 산술 인코더는, 인터벌 크기 값을, 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 확률 값에 포함되는지 여부에 의존하여(예를 들어 현재의 확률 값이 확률 테이블에 의해 커버되는 확률 값의 범위 내에 있는지 여부에 의존하여), 그리고 코딩 인터벌 크기(R)에 의존한 제 1 스케일링의 결과의 제 2 스케일링을 사용하여, 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용함으로써 획득하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to obtain an interval size value by using a first scaling of a selected element (probTabLPS[i%μ]) of the probability table, depending on whether an element associated with a current probability value (specified by index i) is included in the probability values (e.g. depending on whether the current probability value is within the range of probability values covered by the probability table), and using a second scaling of the result of the first scaling depending on the coding interval size (R).
이러한 개념에서, 제 1 스케일링 및 제 2 스케일링의 처리 순서는 앞에서 언급된 개념과 비교할 때 반전된다. 그러나, 기본적인 고려 사항들은 동일하게 유지된다.In this concept, the processing order of the first scaling and the second scaling is reversed compared to the previously mentioned concepts. However, the basic considerations remain the same.
바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 여기에서 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ 또는 a-b i/μ )를 결정하며, 및/또는 여기에서 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an extension of the probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value. i/μ ) is the scaling factor (2-) used in the second scaling. i/μ or a -b i/μ ) and/or wherein the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
이러한 개념에서, 제 1 스케일링 및 제 2 스케일링의 순서는 앞에서 언급된 개념과 비교할 때 반전된다. 그러나, 기본적인 고려 사항들은 변하지 않고 유지된다.In this concept, the order of the first scaling and the second scaling is reversed compared to the previously mentioned concepts. However, the basic considerations remain unchanged.
바람직한 실시형태에서, 산술 인코더는 인터벌 크기 값 RXPS(예를 들어 RLPS)를 다음에 따라서 획득하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to obtain interval size values R XPS (e.g. R LPS ) according to:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 (현재의) 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며(예를 들어, 정수 결과를 제공함); probTabLPS[]는 확률 테이블이고; μμ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μμ보다 큼); R은 인터벌 크기이고(예를 들어, 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here i is a table index associated with probability information; j is a table index associated with (current) interval size information; % is a division remainder operation; / is a division operation (e.g., giving an integer result); probTabLPS[] is a probability table; μμ is the number of elements in the probability table (where the range of values of i is typically larger than μμ); R is an interval size (e.g., the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
이러한 개념에서, 제 1 스케일링 및 제 2 스케일링의 스케일링 순서는 앞에서 언급된 구현형태와 비교할 때 반전된다. 그러나, 기본적으로 내재된 사상은 변하지 않고 유지된다.In this concept, the scaling order of the first scaling and the second scaling is reversed compared to the previously mentioned implementation. However, the underlying idea remains unchanged.
지금부터는, 산술적 디코딩에 관련된 여러 실시형태들이 설명될 것이다. 그러나, 이러한 사상에 내재되고 산술적 디코딩에 관련된 사상, 고려 사항 및 세부 내용은 산술적 인코딩에 대한 내재된 사상, 고려 사항 및 세부 내용과 실질적으로 동일하다. 이에 따라서, 전술된 설명들이 역시 유사한 방식으로 적용된다. 그러나, 인코딩될 심볼 값은 디코딩될 심볼 값 또는 이전에 디코딩된 심볼에 대응하고, 이전에 인코딩된 심볼 값은 이전에 디코딩된 심볼 값에 대응한다. 더욱이, 인코딩 피쳐 및 디코딩 피쳐 사이의 대응 관계가 당업자에게는 명백할 것이고, 또한 청구항 용어들을 비교함으로써 명백하게 드러날 것이다.Hereinafter, various embodiments related to arithmetic decoding will be described. However, the ideas, considerations and details inherent in these ideas and related to arithmetic decoding are substantially the same as the ideas, considerations and details inherent in arithmetic encoding. Accordingly, the above-described descriptions also apply in a similar manner. However, the symbol value to be encoded corresponds to the symbol value to be decoded or to a previously decoded symbol, and the previously encoded symbol value corresponds to a previously decoded symbol value. Moreover, the correspondence between the encoding feature and the decoding feature will be apparent to those skilled in the art, and will also be clearly revealed by comparing the claim terms.
본 발명에 따른 실시형태는 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 디코더로서, 상기 산술 디코더는, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 디코딩된 심볼 값(예를 들어, 0 및 1의 이진 값의 시퀀스)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)에 기반하여 유도하도록 구성되고, 상기 산술 디코더는, 인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하도록 구성되며, 상기 산술 인코더는, 상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i)(예를 들어, i=Qp(pLPS)와 같음)가 제 1 범위 내에 있다면(예를 들어, μ보다 작으면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면(예를 들어, μ 이상이면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하도록 구성되고, 상기 산술 디코더는, 하나 이상의 심볼의 산술적 디코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 디코더를 생성한다.An embodiment according to the present invention is an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic decoder is configured to derive an interval size value (R LPS ) for arithmetic decoding of one or more symbol values to be decoded based on one or more state variable values (s i k ) representing statistics of a plurality of previously decoded symbol values (e.g., a sequence of binary values of 0 and 1), wherein the arithmetic decoder is configured to determine the interval size value (R LPS ) using a base lookup table (Base TabLPS), and the arithmetic encoder determines that if a probability index (i) (e.g., equal to i=Qp(p LPS )) obtained based on the one or more state variable values is within a first range (e.g., less than μ), the determined interval size value is equal to an element of the base lookup table or a rounded value of an element of the base lookup table. An arithmetic decoder is configured to determine an interval size value (R LPS ) such that the determined interval size value is obtained by using scaling and rounding of elements of the base lookup table, if the probability index is within a second range (e.g., greater than or equal to μ ), and the arithmetic decoder is configured to perform arithmetic decoding of one or more symbols using the interval size value (R LPS ) .
바람직한 실시형태에서, 상기 산술 디코더는, 상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값(RLPS)이 상기 베이스-룩업 테이블의 원소의 우측-천이된 버전이 되게끔 상기 인터벌 크기 값을 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to determine the interval size value (R LPS ) such that the determined interval size value becomes a right-shifted version of an element of the base lookup table if the probability index is within the second range.
산술 디코더의 바람직한 실시형태에서, 상기 확률 인덱스(Qp2(pLPS))는, 상기 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)으로서 제공되는지, 또는 상기 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)을 획득하도록 스케일링되고 반올림되는지를 결정한다.In a preferred embodiment of the arithmetic decoder, the probability index (Qp2(p LPS )) determines whether an element of the lookup table is provided as the interval size value (R LPS ), or whether an element of the lookup table is scaled and rounded to obtain the interval size value (R LPS ).
산술 디코더의 바람직한 실시형태에서, 상기 확률 인덱스(i) 및 상기 제 1 크기 값(예를 들어 μ; 여기에서, 예를 들어 크기 값은 베이스 룩업 테이블의 제 1 방향으로의 확장(extension)을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ) 및 인터벌 크기 인덱스(예를 들어 인터벌 크기 정보 또는 전체 인터벌 크기 정보(R)에 기반하여, 예를 들어 양자화 연산 Qr2(.)를 사용하여 획득될 수 있음)는, 베이스 룩업 테이블의 어떤 원소가 인터벌 크기 정보를 획득하기 위하여 사용되는지를 결정한다.In a preferred embodiment of the arithmetic decoder, the division remainder (i%μ) of the division between the probability index (i) and the first magnitude value (e.g. μ; where, for example, the magnitude value describes an extension of the base lookup table in the first direction) and the interval magnitude index (e.g., obtained using a quantization operation Qr2(.), based on the interval magnitude information or the overall interval magnitude information (R)) determines which element of the base lookup table is used to obtain the interval magnitude information.
바람직한 실시형태에서, 산술 디코더는 인터벌 크기 값 RXPS(예를 들어 RLPS)를 다음에 따라서 획득하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to obtain an interval size value R XPS (e.g. R LPS ) according to:
RXPS=Scal(BaseTabLPS[i%μ][j), i/μ) R i/μ )
여기에서 BaseTabLPS는 차원 μ x λ인 베이스 룩업 테이블이고; i는 확률 정보와 연관된 테이블 인덱스이며; j는 인터벌 크기 정보(예를 들어 총 인터벌 크기 정보(R))와 연관된 테이블 인덱스이고; %는 나눗셈 나머지 연산이며; /는 나눗셈 연산이고; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, BaseTabLPS is a base lookup table of dimension μ x λ; i is a table index associated with probability information; j is a table index associated with interval size information (e.g., total interval size information (R)); % is a division remainder operation; / is a division operation; and Scal(x, y) is a scaling function (e.g., Scal(x, y) = x*a -by As defined, . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
본 발명에 따른 실시형태는, 심볼 값(예를 들어 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 디코더로서, 산술 디코더는, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 디코딩된 심볼 값(예를 들어 이진 값 0 및 1의 시퀀스)(예를 들어 상이한 적응 시상수를 가짐)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하도록 구성되고; 상기 산술 디코더는, 인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 (현재의) 확률 값에 기반하여, 그리고 (현재의) 코딩 인터벌 크기(R)에 기반하여, 확률 테이블(ProbTabLPS), (그 차원은 확률 인덱스들의 관점에서 가능한 확률 인덱스들 i의 개수 보다 작음)을 사용하여 결정하도록 구성되며, 여기에서 확률 테이블은 복수 개의 확률 값들의 세트에 대한(예를 들어, 0 및 μ-1 사이의 확률 인덱스들에 대한) 그리고 (하나의) 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기(인터벌 크기 값)를 기술하고, 상기 산술 디코더는, 현재의 확률 값이 복수 개의 확률 값들의 세트 내에 있지 않으면(예를 들어, 현재의 확률 값과 연관된 확률 인덱스가 μ 이상이면) 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 (레퍼런스) 코딩 인터벌 크기와 다르면, 확률 테이블(Prob_TabLPS)의 원소(예를 들어, 현재의 확률 값에 의존하여 선택된 원소)를 스케일링하여 인터벌 크기 값[RLPS)을 획득하도록 구성되고; 상기 산술 디코더는 하나 이상의 심볼의 산술적 인코딩을 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 디코더를 생성한다.An embodiment according to the present invention is an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values), wherein the arithmetic decoder is configured to derive an interval size value (R LPS ) for arithmetic decoding of one or more symbol values to be decoded, based on one or more state variable values (s i k ) representing statistics of a plurality of previously decoded symbol values (e.g. sequences of binary values 0 and 1) (e.g. having different adaptation time constants), which are associated with a given context mode, indicated for example by an index k; The arithmetic decoder is configured to determine an interval size value (R LPS ) based on a (current) probability value derived from one or more state variable values and based on a (current) coding interval size (R), using a probability table (ProbTabLPS) (the dimension of which is smaller than the number of possible probability indices i in terms of probability indices), wherein the probability table describes interval sizes (interval size values) for a set of a plurality of probability values (e.g. for probability indices between 0 and μ-1) and for (a) given (reference) coding interval size, and the arithmetic decoder scales an element of the probability table (Prob_TabLPS) (e.g. an element selected depending on the current probability value) to determine the interval size if the current probability value is not within the set of the plurality of probability values (e.g. if the probability index associated with the current probability value is greater than or equal to μ) and/or if the current coding interval size (R) is different from the given (reference) coding interval size. An arithmetic decoder is generated, wherein the arithmetic decoder is configured to obtain a value [R LPS ); and the arithmetic decoder is configured to perform an arithmetic encoding of one or more symbols using the interval size value (R LPS ).
바람직한 실시형태에서, 산술 디코더는, 인터벌 크기 값을, 상기 (현재의) 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용하여, 그리고 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한(예를 들어 현재의 확률이 상기 확률 테이블에 의해 커버되는 복수 개의 확률 값들의 범위 내에 속하는지 여부에 의존한), 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to obtain an interval size value using a first scaling of a selected element (probTabLPS[i%μ]) of the probability table depending on the (current) coding interval size R, and a second scaling of a result of the first scaling depending on whether an element associated with a current probability value (indicated by index i) is included in the set of probability values (e.g. depending on whether the current probability falls within a range of a plurality of probability values covered by the probability table).
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 여기에서 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 여기에서 상기 코딩 인터벌 크기(R)는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic decoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an extension of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or wherein the coding interval size (R) determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
바람직한 실시형태에서, 산술 디코더는 인터벌 크기 값 RXPS(예를 들어 RLPS)를 다음에 따라서 획득하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to obtain an interval size value R XPS (e.g. R LPS ) according to:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(예를 들어, 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (e.g., the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
바람직한 실시형태에서, 산술 디코더는, 인터벌 크기 값을, 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 확률 값에 포함되는지 여부에 의존하여(예를 들어 현재의 확률 값이 확률 테이블에 의해 커버되는 확률 값의 범위 내에 있는지 여부에 의존하여), 그리고 코딩 인터벌 크기(R)에 의존한 제 1 스케일링의 결과의 제 2 스케일링을 사용하여, 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용함으로써 획득하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to obtain an interval size value by using a first scaling of a selected element (probTabLPS[i%μ]) of the probability table, depending on whether an element associated with a current probability value (specified by index i) is included in the probability values (e.g. depending on whether the current probability value is within the range of probability values covered by the probability table), and using a second scaling of the result of the first scaling depending on the coding interval size (R).
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 여기에서 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ 또는 a-b i/μ )를 결정하며, 및/또는 여기에서 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic decoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an extension of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ or a -b i/μ ) and/or wherein the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
바람직한 실시형태에서, 산술 디코더는 인터벌 크기 값 RXPS(예를 들어 RLPS)를 다음에 따라서 획득하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to obtain an interval size value R XPS (e.g. R LPS ) according to:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 (현재의) 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고;Here, i is the table index associated with the probability information; j is the table index associated with the (current) interval size information; % is the division remainder operation;
/는 나눗셈 연산이며(예를 들어, 정수 결과를 제공함); probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(예를 들어, 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함)./ is a division operation (e.g., giving an integer result); probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (e.g., the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
지금부터는, 산술적 인코딩에 관련된 일부 추가적인 실시형태들이 설명될 것이다.From now on, some additional embodiments related to arithmetic encoding will be described.
본 발명에 따른 실시형태는, 심볼 값(예를 들어 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 산술 인코더로서, 상기 산술 인코더는, 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나의 상태 변수 값(sk)을 결정하도록 구성되고, 상기 산술 인코더는, 결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )으로부터, 인코딩될 심볼 값의 산술적 인코딩을 위한 하위인터벌 폭 값()을, 상기 하나의 상태 변수 값(sk) 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블() 엔트리를 사용하여 확률 값으로 매핑하고, 인코딩될 심볼 값의 산술적 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)를 양자화 레벨()로 양자화하며, 상기 확률 값 및 상기 양자화 레벨 사이의 곱을 결정함으로써(예를 들어, 미리 계산된 곱들의 룩업 동작에 의하여, 또는 승산에 의하여) 결정하도록 구성되며, 상기 산술 인코더는, 인코딩될 심볼 값에 의존하여 상태 변수 값 업데이트를 수행하도록 구성되는, 산술 인코더를 생성한다.An embodiment according to the present invention is an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values), wherein the arithmetic encoder is configured to determine one state variable value (s k ) representing statistics of a plurality of previously encoded symbol values, and wherein the arithmetic encoder is configured to determine a combined state variable value, or a scaled version and/or a rounded version of the combined state variable value ( s k * a k ), the subinterval width value for arithmetic encoding of the symbol value to be encoded ( ), one state variable value (s k ) or a scaled version and/or rounded version of one state variable value ( s k * a k ; ), the combined state variable values, or a scaled version and/or rounded version of the combined state variable values ( s k * a k ; ) is a one-dimensional lookup table containing probability values for different value intervals in the value domain. ) entry is used to map to a probability value, and the coding interval size information (e.g., R) describing the size of the coding interval of the arithmetic encoding prior to the arithmetic encoding of the symbol value to be encoded is used as the quantization level ( ) and is configured to determine a product between the probability value and the quantization level (e.g., by a lookup operation of precomputed products, or by a multiplication), and the arithmetic encoder generates an arithmetic encoder configured to perform a state variable value update depending on the symbol value to be encoded.
이러한 실시형태는 매우 간단한, 일차원 룩업 테이블이 하위인터벌 폭 값을 결합된 상태 변수 값에 기반하여 결정하기 위해 사용될 수 있다는 발견에 기반한 것이다. 코딩 인터벌 크는 코딩 인터벌 크기 정보의 양자화에 의하여, 그리고 확률 값 및 양자화 값(또는 양자화 레벨) 사이의 곱의 결정에 의하여 고려된다. 이에 따라서, 신뢰가능한 결과가 적당한 노력으로 획득된다.This embodiment is based on the discovery that a very simple, one-dimensional lookup table can be used to determine subinterval width values based on the associated state variable values. The coding interval size is taken into account by quantizing the coding interval size information and by determining the product between the probability value and the quantization value (or quantization level). Thus, reliable results are obtained with reasonable effort.
바람직한 실시형태에서, 산술 인코더는, 하나의 상태 변수 값(sk)으로서, 결합된 상태 변수 값(이것은, 예를 들어 상태 변수 값들의 가중 합일 수 있음)을, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값(예를 들어 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 복수 개의 상태 변수 값이 존재하는 경우, 상이한 적응 시상수가 있는 통계)를 나타내는 복수 개의 상태 변수 값(si k)(예를 들어 이진 값 0 및 1의 시퀀스)에 기반하여 유도하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to derive a combined state variable value (which may be, for example, a weighted sum of the state variable values), as a single state variable value (s k ), based on a plurality of state variable values (s i k ) (e.g. a sequence of binary values 0 and 1 ) representing statistics of a plurality of previously encoded symbol values (e.g. a sequence of binary values 0 and 1 ) with different adaptation time constants (e.g. the statistics with different adaptation time constants, if there are multiple state variable values).
결합된 상태 변수 값을 하나의 상태 변수 값으로 사용하면 특히 양호한 결과가 동반된다는 것이 발견되었다. 상이한 적응 시상수들을 고려하면, 단기 통계 및 장기 통계 양자 모두를 고려할 수 있게 되고, 그러면 하위인터벌 폭 값이 특히 신뢰가능하게 된다.It was found that using combined state variable values as a single state variable value leads to particularly good results. Considering different adaptation time constants allows considering both short-term and long-term statistics, which makes the subinterval width values particularly reliable.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to determine a weighted sum of the state variable values to obtain the combined state variable values.
결합된 상태 변수 값의 이러한 계산은, 단기 통계 및 장기 통계의 결합된 상태 변수 값에 대한 상이한 영향을 계산 노력을 합리적으로 작게 유지하면서 고려할 수 있게 된다.This computation of the combined state variable values allows taking into account the different influences of short-term and long-term statistics on the combined state variable values while keeping the computational effort reasonably small.
바람직한 실시형태에서, 상기 산술 인코더는, 상기 결합된 상태 변수 값(sk)을 획득하기 위하여, 상태 변수 값() 및 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값()의 합을 결정하도록 구성된다.In a preferred embodiment, the arithmetic encoder comprises a state variable value (s k ) to obtain the combined state variable value (s k ). ) and associated weight values ( ) is the rounded value obtained by rounding the product of ) is configured to determine the sum of the two.
합산하기 전에 반올림 연산을 적용하면, 계산 노력이 감소되고, 또한 상태 변수 값 및 연관된 가중치 값의 매우 작은 곱의 영향이 제거된다. 그러므로, 신뢰도가 증가된다.Applying rounding operations before summing reduces computational effort and also eliminates the effect of very small product of state variable values and associated weight values. Therefore, reliability is increased.
바람직한 실시형태에서, 산술 인코더는 결합된 상태 변수 값 sk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder is configured to determine the combined state variable values s k according to:
여기에서 sk 2는 상태 변수 값이고, N은 고려되는 상태 변수 값의 개수이며, . 는 바닥 연산자이고, dk i는 상기 상태 변수 값과 연관된 가중치이다(예를 들어, 결합된 상태 변수 값에 대한 개별적인 상태 변수 값의 영향을 제어하는 가중치 인자임)(여기에서 dk i는 2의 바람직하게는 정수-값인 포텐시이며, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 2의 정수-값인 포텐시임)(여기에서, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 8 이상임).Here, s k 2 is the state variable value, N is the number of state variable values considered, . is a floor operator, and d k i is a weight associated with the state variable values (e.g., a weighting factor controlling the influence of an individual state variable value on the combined state variable value) (wherein d k i is a potential, preferably integer-valued, of 2, and the ratio between two different d k i is preferably an integer-valued potential of 2) (wherein the ratio between two different d k i is preferably greater than or equal to 8).
결합된 상태 변수 값을 이렇게 유도하면 특히 유리하다는 것이 발견되었다. 또한 결합된 상태 변수 값을 결정하기 위한 대응하는 개념의 전술된 설명도 참조한다.It has been found that deriving the values of the coupled state variables in this way is particularly advantageous. See also the aforementioned description of the corresponding concept for determining the values of the coupled state variables.
바람직한 실시형태에서, 산술 인코더는 상태 변수 값 업데이트를 수행할 때, 복수 개의 상태 변수 값 을 다음에 따라서 업데이트하도록 구성되는데,In a preferred embodiment, the arithmetic encoder performs a state variable value update when a plurality of state variable values It is configured to update as follows:
여기에서 z는 미리 결정된 (상수) 오프셋 값이고; 는 하나 이상의 가중치이며; 는 하나 이상의 가중치이고, A는 이거나, 업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위해서, 제로 설정 또는 크기 감소에 의해 그 인수의 하나 이상의 극단 값에 대해서만 그로부터 벗어나며, (예를 들어 가 보다 큰 값 도메인을 가진다는 것을 고려한다; 즉, 는 로 의사 양자화된다; 의 극단 값에 대하여, 는 전술된 수학식에 따라서 수정되지 않은 A에 의해서 수정되어 그 값 도메인을 벗어나게 된다; 이것을 피하기 위하여, 이러한 극단 값에 대응하는 엔트리는 감소되거나 제로로 처리될 수 있다), 여기에서 , , , 및 는 미리 결정된 파라미터이다(예들이 앞에서 진술됨).Here, z is a predetermined (constant) offset value; is one or more weights; is one or more weights, and A is This or updated To avoid going beyond a predetermined range of values, it deviates from it only for one or more extreme values of its argument, either by setting it to zero or by reducing its size (e.g. go Consider that it has a larger value domain; that is, Is is quantized into ; For extreme values of , is modified by A, which is not modified according to the mathematical formula described above, and thus goes out of its value domain; to avoid this, the entries corresponding to these extreme values can be reduced or treated as zero), here , , , and are predetermined parameters (examples are stated above).
결합된 상태 변수 값을 이렇게 업데이트하면 특히 유리하다는 것이 발견되었다. 또한, 상태 변수의 업데이트를 위한 이러한 개념에 대한 전술된 설명도 참조한다.It has been found that updating the combined state variable values in this way is particularly advantageous. Also see the above discussion of this concept for updating state variables.
바람직한 실시형태에서, 산술 인코더는 를 테이블 룩업 동작에 의하여 또는 계산에 의하여 유도하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to derive by table lookup operation or by calculation.
이러한 개념과 관련하여, 전술된 설명을 참조한다.In connection with this concept, see the explanation given above.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here A is a lookup table (e.g. containing integer values) and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
하나 이상의 상태 변수 값의 업데이트를 위한 이러한 개념의 장점에 관련하여, 전술된 설명을 참조한다.Regarding the advantages of this concept for updating the values of one or more state variables, see the description given above.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
하나 이상의 상태 변수 값의 업데이트를 위한 이러한 개념의 장점에 관련하여, 전술된 설명을 참조한다.Regarding the advantages of this concept for updating the values of one or more state variables, see the description given above.
바람직한 실시형태에서, 산술 인코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic encoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
하나 이상의 상태 변수 값의 업데이트를 위한 이러한 개념의 장점에 관련하여, 전술된 설명을 참조한다.Regarding the advantages of this concept for updating the values of one or more state variables, see the description given above.
바람직한 실시형태에서, 상기 산술 인코더는, 논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성된다.In a preferred embodiment, the arithmetic encoder is configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
코딩 인터벌 크기 정보의 논리적 우측 천이는 계산에 있어서 고도로 효율적이다.The logical right transition of coding interval size information is highly computationally efficient.
바람직한 실시형태에서, 상기 산술 인코더는, 코딩 인터벌 크기 정보 를 양자화하는 것을 에 의하여 수행하도록 구성되고, 여기에서 , 및 는 파라미터이다.In a preferred embodiment, the arithmetic encoder comprises: coding interval size information Quantizing it is configured to perform by, and hereby , and is a parameter.
코딩 인터벌 크기 정보의 이러한 양자화의 장점에 관하여, 전술된 설명을 참조한다.Regarding the advantages of this quantization of the coding interval size information, see the explanation given above.
산술 인코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 하나의 상태 변수 값, 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic encoder, an entry of the one-dimensional lookup table contains: a value of said one state variable, or a scaled version and/or a rounded version of said one state variable value; s k * a k ) monotonically decreases as the value of increases.
1-차원 룩업 테이블의 이러한 구조의 장점에 관하여, 전술된 설명을 참조한다.Regarding the advantages of this structure of a one-dimensional lookup table, see the explanation given above.
산술 인코더의 바람직한 실시형태에서, 상기 하나의 상태 변수 값, 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic encoder, the one state variable value, or a scaled version and/or a rounded version of the one state variable value ( s k * a k ) for different value intervals in the value domain are sized identically.
이러한 개념의 장점과 관련하여, 전술된 설명을 참조한다.Regarding the advantages of this concept, see the explanation given above.
산술 인코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 하나의 상태 변수 값, 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 감소율을 가지고 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic encoder, an entry of the one-dimensional lookup table contains: a value of said one state variable, or a scaled version and/or a rounded version of said one state variable value; s k * a k ) monotonically decreases with an increasing rate.
이러한 개념의 장점과 관련하여, 전술된 설명을 참조한다.Regarding the advantages of this concept, see the explanation given above.
지금부터는, 산술적 인코딩을 위한 전술된 개념에 대응하는, 산술적 디코딩을 위한 개념이 설명될 것이다. 이에 따라서, 동일한 설명이 역시 적용되고, 전술된 동일한 세부 내용은 선택적으로 사용될 수 있다. 그러나, 산술 인코더가 산술 디코더에 대응한다는 것에 주의해야 한다. 더욱이, 이전에 인코딩된 심볼 값은 통상적으로 이전에 디코딩된 심볼 값에 대응하고, 인코딩될 심볼 값은 통상적으로 이전에 디코딩된 심볼 값(또는 디코딩될 심볼 값)에 대응할 수 있다. 그러나, 피쳐들의 대응 관계에 관련하여, 관련된(또는 대응하는) 개념을 규정하는 대응하는 청구항들을 비교하는 것도 역시 참조된다.Hereinafter, the concept for arithmetic decoding will be described, corresponding to the above-described concept for arithmetic encoding. Accordingly, the same explanation also applies, and the same details described above can be optionally used. However, it should be noted that the arithmetic encoder corresponds to the arithmetic decoder. Furthermore, the previously encoded symbol value typically corresponds to the previously decoded symbol value, and the symbol value to be encoded may typically correspond to the previously decoded symbol value (or the symbol value to be decoded). However, with respect to the correspondence of features, it is also referred to compare the corresponding claims defining the related (or corresponding) concept.
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 디코더로서, 상기 산술 디코더는, 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 디코딩될 하나 이상의 심볼이 특정 심볼 값을 포함할 확률의 추정치)를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모델과 연관됨)에 기반하여 유도하도록 구성되고, 상기 산술 디코더는, 디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 제 1 상태 변수 값(sk1), 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk1* ak1)을, 룩업-테이블(LUT1)을 사용하여 매핑하고, 제 2 상태 변수 값(sk 2), 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하도록 구성되는, 산술 디코더를 생성한다.An embodiment according to the present invention comprises an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic decoder is configured to derive interval size information (p k , R*p k ) for arithmetic decoding of one or more symbol values to be decoded based on a plurality of state variable values ( si k ) representing statistics (e.g., an estimate of the probability that one or more symbols to be decoded include a particular symbol value) of a plurality of previously decoded symbol values (e.g., a sequence of binary values 0 and 1) with different adaptation time constants, wherein the arithmetic decoder obtains interval size information (e.g., p k or R*p k ) describing an interval size for arithmetic decoding of one or more symbols to be decoded by using a first state variable value (sk1), or a scaled value of the first state variable value. Version and/or rounded version ( sk1* ak1 ), using a lookup table (LUT1), and mapping the second state variable value (s k 2 ), or a scaled version and/or rounded version of the second state variable value ( s k 2 * a k 2 ) is configured to map using a lookup table (LUT1).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된(rounded) 버전(sk1* ak1)을 상기 룩업 테이블을 사용하여 제 1 확률 값(pk 1)으로 매핑하도록 구성되고, 상기 산술 디코더는, 상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을 상기 룩업 테이블을 사용하여 제 2 확률 값(pk 2)으로 매핑하도록 구성되며, 상기 산술 디코더는 상기 제 1 확률 값 및 상기 제 2 확률 값을 사용하여 결합된 확률 값(pk]을 획득하도록 구성된다(예를 들어, 가중 합산을 사용하거나 가중 평균화를 사용함).In a preferred embodiment, the arithmetic decoder comprises: a scaled version and/or a rounded version of the first state variable value, or sk1* ak1 ) is configured to map the first probability value (p k 1 ) using the lookup table, and the arithmetic decoder is configured to map the second state variable value, or a scaled version and/or a rounded version of the second state variable value ( s k 2 * a k 2 ) is configured to map the first probability value (p k 2 ) to a second probability value (p k 2 ) using the lookup table, and the arithmetic decoder is configured to obtain a combined probability value (pk) using the first probability value and the second probability value (e.g., using weighted summation or weighted averaging).
바람직한 실시형태에서, 산술 디코더는, 디코딩된 심볼이 제 1 값(예를 들어 "1")을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고(예를 들어 더 큰 양수가 되도록), 그리고 디코딩된 심볼이 제 1 값과 다른 제 2 값(예를 들어 "0")을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록(예를 들어 더 큰 음수가 되도록) 구성되고(예를 들어, 상태 변수 값이 양수 및 음수 값을 가질 수 있게 함), 상기 산술 디코더는, 평가될 룩업-테이블의 엔트리를 개별적인 상태 변수 값의 절대 값(sk i>0이면 sk i이고, 그 외의 경우에는 -sk i임)에 의존하여(예를 들어 상태 변수 값의 절대 값의 스케일링되고 반올림된 버전에 의존하여) 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to change the state variable value in a first direction (e.g., to become a larger positive number) if the decoded symbol has a first value (e.g., "1"), and to change the state variable value in a second direction (e.g., to become a larger negative number) if the decoded symbol has a second value different from the first value (e.g., "0") (e.g., so that the state variable value can have both positive and negative values), and the arithmetic decoder is configured to determine which lookup-table entry to evaluate depends on the absolute value of the individual state variable value ( e.g. , depends on a scaled and rounded version of the absolute value of the state variable value ) (e.g., depends on a scaled and rounded version of the absolute value of the state variable value).
바람직한 실시형태에서, 상기 산술 디코더는, 제 1 상태 변수 값이 제 1 부호(예를 들어, 양의 부호)를 가지면, 상기 제 1 확률 값(pk 1)을, 상기 룩업 테이블에 의하여 제공되는 값으로(예를 들어, 로) 설정하도록 구성되고, 상기 산술 디코더는, 상기 제 1 상태 변수 값이 제 2 부호(예를 들어, 음의 부호)를 가지면, 상기 제 1 확률 값(pk 1)을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값(예를 들어, 1)으로부터 감산함으로써 얻어지는 값으로(예를 들어, 로) 설정하도록 구성된다.In a preferred embodiment, the arithmetic decoder, if the first state variable value has a first sign (e.g., a positive sign), sets the first probability value (p k 1 ) to a value provided by the lookup table (e.g., ), and the arithmetic decoder is configured to set the first probability value (p k 1 ) to a value obtained by subtracting a value provided by the lookup table from a predetermined value (e.g., 1), if the first state variable value has a second sign (e.g., a negative sign), (e.g., It is configured to set (as shown).
바람직한 실시형태에서, 산술 디코더는 두 개 이상의 확률 값 pk i를 다음에 따라서 결정하도록 구성되고In a preferred embodiment, the arithmetic decoder is configured to determine two or more probability values p k i according to
여기에서 LUT1은 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk i는 i-번째 상태 변수 값이고; ak i는 i-번째 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT1 is a lookup table containing probability values; . is the floor operator; s k i is the i-th state variable value; a k i is a weight associated with the i-th state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
바람직한 실시형태에서, 산술 디코더는 두 개 이상의 확률 값 pk i를 다음에 따라서 결정하도록 구성되고In a preferred embodiment, the arithmetic decoder is configured to determine two or more probability values p k i according to
여기에서 LUT1은 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk i는 i-번째 상태 변수 값이고; ak i는 i-번째 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT1 is a lookup table containing probability values; . is the floor operator; s k i is the i-th state variable value; a k i is a weight associated with the i-th state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
바람직한 실시형태에서, 산술 디코더는 결합된 확률 값 pk를 복수 개의 확률 값 pk i에 의존하여 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is configured to obtain a combined probability value p k depending on a plurality of probability values p k i according to:
여기에서 N은 고려되는 확률 값의 개수이고(그리고, 고려되는 상태 변수 값의 개수와 같을 수 있음); bk i는 가중치(예를 들어, 결합된 확률 값에 대한 개별적인 상태 변수 값의 영향을 제어하는 가중치 인자)이며(여기에서 bk i는 2의 정수-값인 포텐시(potencies)인 것이 바람직하고, 두 개의 상이한 bk i 사이의 비율은 2의 정수-값인 포텐시인 것이 바람직하다.Here, N is the number of probability values considered (and can be equal to the number of state variable values considered); b k i are weights (e.g., weighting factors controlling the influence of individual state variable values on the combined probability value) (wherein b k i are preferably integer-valued potencies of 2, and the ratio between two different b k i is preferably an integer-valued potency of 2).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk1* ak1)을, 그 엔트리가 상기 제 1 상태 변수 값에 의존하고(예를 들어, 제 1 룩업 테이블 엔트리 좌표를 결정하기 위하여), 심볼의 디코딩 이전의 상기 산술적 디코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)에 의존하여(예를 들어, 제 2 룩업 테이블 엔트리 좌표를 결정하기 위하여) 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 1 하위인터벌 폭 값(subinterval width value)(R*pk 1)으로 매핑하도록 구성되고,In a preferred embodiment, the arithmetic decoder outputs a value of the first state variable, or a scaled version and/or a rounded version of the value of the first state variable ( sk1* ak1 ) is configured to map a first subinterval width value (R*p k 1 ) using a two-dimensional lookup table, the entry of which is addressed depending on the first state variable value (e.g., to determine the first lookup table entry coordinate) and depending on coding interval size information (e.g., R) describing the size of a coding interval of the arithmetic decoding prior to decoding of the symbol (e.g., to determine the second lookup table entry coordinate),
여기에서, 상기 산술 디코더는, 상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk1* ak1)을, 그 엔트리가 상기 제 2 상태 변수 값에 의존하고(예를 들어, 제 1 룩업 테이블 엔트리 좌표를 결정하기 위하여), 심볼의 디코딩 이전의 상기 산술적 디코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)에 의존하여(예를 들어, 제 2 룩업 테이블 엔트리 좌표를 결정하기 위하여) 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 2 하위인터벌 폭 값(subinterval width value)(R*pk 2)으로 매핑하도록 구성된다.Here, the arithmetic decoder outputs a scaled version and/or rounded version of the second state variable value, or a scaled version and/or rounded version of the second state variable value ( sk1* ak1 ) is configured to map a second subinterval width value (R*p k 2 ) using a two-dimensional lookup table, the entry of which depends on the second state variable value (e.g., to determine the first lookup table entry coordinate) and is addressed depending on coding interval size information (e.g., R) describing the size of a coding interval of the arithmetic decoding prior to decoding of the symbol (e.g., to determine the second lookup table entry coordinate).
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업 테이블은, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리(일차원 룩업 테이블을 형성함), 및 상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터() 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있다.In a preferred embodiment of the arithmetic decoder, the two-dimensional lookup table comprises: a scaled version and/or a rounded version of the first state variable value and the second state variable value, or a scaled version and/or a rounded version of the first state variable value and the second state variable value ( s k * a k ; ) comprising a first 1-dimensional vector entry (forming a one-dimensional lookup table) containing probability values for different value intervals of the value domain, and a second 1-dimensional vector ( comprising a quantization level for the coding interval size information) ) can be expressed as a dyadic product between entries.
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고, 상기 2-차원 룩업-테이블의 원소들의 제 1 그룹(또는 블록; 예를 들어, "상부 절반")은 상기 베이스 룩업-테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며, 상기 2-차원 룩업-테이블의 원소들의 제 2 그룹(또는 블록; 예를 들어, "하부 절반")은 상기 베이스 룩업-테이블의 원소의 스케일링된 버전 및 반올림된 버전이다.In a preferred embodiment of the arithmetic decoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a base lookup table (Base TabLPS), a first group (or block; e.g., "upper half") of the elements of the two-dimensional lookup-table are identical to the elements of the base lookup-table or are rounded versions of the elements of the base lookup-table, and a second group (or block; e.g., "lower half") of the elements of the two-dimensional lookup-table are scaled versions and rounded versions of the elements of the base lookup-table.
산술 디코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소들의 제 2 그룹은 상기 베이스-룩업 테이블의 원소의 우측-천이된 버전이다.In a preferred embodiment of the arithmetic decoder, the second group of elements of the two-dimensional lookup-table are right-shifted versions of the elements of the base lookup table.
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(Qp2(pLPS) 또는 i))는 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고, 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를 양자화함으로써 얻어짐)의 제 1 범위(예를 들어, 0 및 μ-1 사이)는 원소들의 제 1 그룹의 원소와 연관되고, 및 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를, 예를 들어 양자화 함수 Qp2(.)를 사용하여 양자화함으로써 얻어짐)의 제 2 범위(예를 들어, μ 이상임)는 원소들의 제 2 그룹의 원소와 연관된다.In a preferred embodiment of the arithmetic decoder, the probability indices (Qp 2 (p LPS ) or i)) determine whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated, and a first range (e.g. between 0 and μ-1) of the probability indices (which are obtained, for example, by quantizing the probability values, e.g. p LPS ) is associated with elements of the first group of elements, and a second range (e.g. greater than or equal to μ) of the probability indices (which are obtained, for example, by quantizing the probability values, e.g. p LPS , using, for example, a quantization function Qp2(.) ) is associated with elements of the second group of elements.
산술 디코더의 바람직한 실시형태에서, 상기 확률 인덱스(i) 및 상기 제 1 크기 값(예를 들어 μ; 여기에서, 예를 들어 크기 값은 베이스 룩업 테이블의 제 1 방향으로의 확장(extension)을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ) 및 인터벌 크기 인덱스(예를 들어 인터벌 크기 정보(R)에 기반하여, 예를 들어 양자화 연산 Qr2(.)를 사용하여 획득될 수 있음; 예를 들어, j)는, 베이스 룩업 테이블의 어떤 원소가 2-차원 룩업 테이블의 원소를 획득하기 위하여 사용되는지를 결정한다.In a preferred embodiment of the arithmetic decoder, the division remainder (i%μ) of the division between the probability index (i) and the first magnitude value (e.g. μ; where, for example, the magnitude value describes an extension of the base lookup table in the first direction) and an interval magnitude index (e.g., based on the interval magnitude information (R), which can be obtained, for example, using a quantization operation Qr2(.); for example, j) determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
바람직한 실시형태에서, 산술 디코더는 2-차원 룩업-테이블(RangTabLPS)의 원소를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is configured to obtain elements of a two-dimensional lookup table (RangTabLPS) according to:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j), i/μ)RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j), i/μ )
여기에서 BaseTabLPS는 차원 μ x λ인 베이스 룩업 테이블이고; i는 확률 정보와 연관된 테이블 인덱스이며; j는 인터벌 크기 정보(예를 들어 현재의 코딩 인터벌 크기를 기술함)와 연관된 테이블 인덱스이고; %는 나눗셈 나머지 연산이며; /는 나눗셈 연산이고; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, BaseTabLPS is a base lookup table of dimension μ x λ; i is a table index associated with probability information; j is a table index associated with interval size information (e.g., describing the current coding interval size); % is a division remainder operation; / is a division operation; and Scal(x, y) is a scaling function (e.g., Scal(x, y) = x*a -by As defined, . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고, 상기 확률 테이블은, 복수 개의 확률 값들의 세트(예를 들어, 인덱스 i에 의해 표현됨)에 대한 그리고 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며, 상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 및/또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업-테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도된다.In a preferred embodiment of the arithmetic decoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a probability table (probTabLPS), the probability table describing interval sizes for a set of a plurality of probability values (e.g. represented by an index i) and for a given (reference) coding interval size, and the elements of the two-dimensional lookup-table for probability values not included in the set of the plurality of probability values and/or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블의 원소는, 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용하여, 그리고 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한(예를 들어 현재의 확률이 상기 확률 테이블에 의해 커버되는 확률 값들의 범위 내에 속하는지 여부에 의존한), 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득된다.In a preferred embodiment of the arithmetic decoder, the elements of the two-dimensional lookup-table are obtained using a first scaling (multiplication) of a selected element (probTabLPS[i%μ]) of the probability table depending on the coding interval size R, and a second scaling of the result of the first scaling depending on whether the element associated with the current probability value (indicated by the index i) is included in the set of probability values (e.g. depending on whether the current probability falls within the range of probability values covered by the probability table).
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 여기에서 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 여기에서 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic decoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an extension of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or wherein the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
바람직한 실시형태에서, 산술 디코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(또는 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (or the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
산술 디코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소는, 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 확률 값들의 세트에 포함되는지 여부에 의존하여(예를 들어 현재의 확률 값이 확률 테이블에 의해 커버되는 확률 값의 범위 내에 있는지 여부에 의존하여), 그리고 코딩 인터벌 크기(R)에 의존한 제 1 스케일링의 결과의 제 2 스케일링을 사용하여, 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용함으로써 획득된다.In a preferred embodiment of the arithmetic decoder, an element of the two-dimensional lookup-table is obtained by using a first scaling of a selected element of the probability table (probTabLPS[i%μ]) depending on whether the element associated with the current probability value (indicated by index i) is included in the set of probability values (e.g. depending on whether the current probability value is within the range of probability values covered by the probability table), and using a second scaling of the result of the first scaling depending on the coding interval size (R).
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic decoder, the division remainder of the division between a probability index (e.g. i; e.g. representing the current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes the extension of the probability table) i%μ ) determines which element of said probability table is scaled in said first scaling; and/or an integer division result () of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
바람직한 실시형태에서, 산술 디코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며(예를 들어, 정수 결과를 제공함); probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고; Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation (e.g., giving an integer result); probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size; Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
바람직한 실시형태에서, 상기 산술 디코더는, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )으로부터, 제 1 및 제 2 하위인터벌 폭 값(subinterval width value)(R*pk)을, 상기 제 1 및 제 2 상태 변수 값(sk) 또는 상기 제 1 및 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 제 1 및 제 2 확률 값으로 매핑하고, 심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(R)를 양자화 레벨로 양자화하며, 일 면에 있어서, 상기 제 1 및 제 2 확률 값 및 상기 양자화 레벨의 곱(product)을 결정하고(미리 계산된 곱들을 룩업하거나, 승산함으로써), 상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여, 조합된 하위인터벌 폭 값을 획득함으로써(예를 들어, 가중 합산을 사용하거나 가중 평균을 사용함으로써), 각각 계산하도록 구성된다.In a preferred embodiment, the arithmetic decoder outputs a scaled version and/or rounded version of the first state variable value and the second state variable value, or the first state variable value and the second state variable value ( s k * a k ), the first and second subinterval width values (R*p k ) are obtained from the first and second state variable values (s k ) or the scaled versions and/or rounded versions of the first and second state variable values ( s k 2 * a k 2 ), the first state variable value and the second state variable value, or the scaled version and/or rounded version of the first state variable value and the second state variable value ( s k * a k ) is mapped to first and second probability values using a one-dimensional lookup table (LUT4) entry including probability values for different value intervals of the value domain for the symbol, and quantizes coding interval size information (R) describing a size of a coding interval of the arithmetic encoding prior to encoding of a symbol into a quantization level, and in one aspect, determines a product of the first and second probability values and the quantization level (by looking up or multiplying pre-computed products), and obtains a combined subinterval width value by using the first subinterval width value and the second subinterval width value (for example, by using a weighted summation or a weighted average), thereby calculating the combined subinterval width value.
바람직한 실시형태에서, 상기 산술 디코더는, 논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
바람직한 실시형태에서, 상기 산술 디코더는, 코딩 인터벌 크기 정보 를 양자화하는 것을 에 의하여 수행하도록 구성되고, 여기에서 , 및 는 파라미터이다.In a preferred embodiment, the arithmetic decoder comprises: coding interval size information Quantizing it is configured to perform by, and hereby , and is a parameter.
산술 디코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic decoder, an entry of the one-dimensional lookup table comprises a scaled version and/or a rounded version of the first state variable value and the second state variable value, or a scaled version and/or a rounded version of the first state variable value and the second state variable value. s k * a k ) monotonically decreases as the value of increases.
산술 디코더의 바람직한 실시형태에서, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic decoder, the first state variable value and the second state variable value, or scaled versions and/or rounded versions of the first state variable value and the second state variable value ( s k * a k ) for different value intervals in the value domain are sized identically.
산술 디코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 제 1 및 제 2 상태 변수 값, 또는 상기 제 1 및 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 감소율을 가지고 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic decoder, an entry of the one-dimensional lookup table comprises: a value of the first and second state variables, or a scaled version and/or a rounded version of the first and second state variables; s k * a k ) monotonically decreases with an increasing rate.
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 디코더로서, 상기 산술 디코더는, 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 디코딩될 하나 이상의 심볼이 특정 심볼 값을 포함할 확률의 추정치)를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하도록 구성되고, 상기 산술 디코더는, 결합된 확률 변수 값(sk)(이것은, 예를 들어 상태 변수 값들의 가중 합일 수 있음)을, 복수 개의 (개별적인) 상태 변수 값(si k)에 기반하여 유도하도록 구성되며, 상기 산술 디코더는, 디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 결합된 상태 변수 값(sk), 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하도록 구성되는, 산술 디코더를 생성한다.An embodiment according to the present invention comprises an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values), wherein the arithmetic decoder is configured to derive interval size information (p k , R*p k ) for arithmetic decoding of one or more symbol values to be decoded based on a plurality of state variable values (s i k ) representing statistics (e.g. an estimate of the probability that one or more symbols to be decoded will include a particular symbol value) of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) with different adaptation time constants (these are associated with a given context mode, indicated for example by an index k ), wherein the arithmetic decoder is configured to derive a combined probability variable value (s k ) (which may for example be a weighted sum of the state variable values) based on the plurality of (individual) state variable values (s i k ), wherein the arithmetic decoder is configured to derive an associated probability variable value ( s k ) (which may for example be a weighted sum of the state variable values) of one or more to be decoded symbol values. To obtain the interval size information (e.g., p k or R*p k ) describing the interval size for arithmetic decoding of the symbol, the combined state variable value (sk), or a scaled version and/or a rounded version of the combined state variable value ( s k 2 * a k 2 ) is configured to map using a lookup table (LUT1).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to determine a weighted sum of the state variable values to obtain the combined state variable values.
바람직한 실시형태에서, 상기 산술 디코더는, 상기 결합된 상태 변수 값(sk)을 획득하기 위하여, 상태 변수 값() 및 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값()의 합을 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder comprises a state variable value (s k ) to obtain the combined state variable value (s k ). ) and associated weight values ( ) is the rounded value obtained by rounding the product of ) is configured to determine the sum of the two.
바람직한 실시형태에서, 산술 디코더는 결합된 상태 변수 값 sk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to determine the combined state variable values s k according to:
여기에서 sk 2는 상태 변수 값이고, N은 고려되는 상태 변수 값의 개수이며, . 는 바닥 연산자이고, dk i는 상기 상태 변수 값과 연관된 가중치이다(예를 들어, 결합된 상태 변수 값에 대한 개별적인 상태 변수 값의 영향을 제어하는 가중치 인자임)(여기에서 dk i는 2의 바람직하게는 정수-값인 포텐시이며, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 2의 정수-값인 포텐시임)(여기에서, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 8 이상임).Here, s k 2 is the state variable value, N is the number of state variable values considered, . is a floor operator, and d k i is a weight associated with the state variable values (e.g., a weighting factor controlling the influence of an individual state variable value on the combined state variable value) (wherein d k i is a potential, preferably integer-valued, of 2, and the ratio between two different d k i is preferably an integer-valued potential of 2) (wherein the ratio between two different d k i is preferably greater than or equal to 8).
바람직한 실시형태에서, 상기 산술 디코더는, 디코딩된 심볼이 제 1 값(예를 들어 "1")을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고(예를 들어 더 큰 양수가 되도록), 그리고 디코딩된 심볼이 제 1 값과 다른 제 2 값(예를 들어 "0")을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록(예를 들어 더 큰 음수가 되도록) 구성되고(예를 들어, 상태 변수 값이 양수 및 음수 값을 가질 수 있게 함), 상기 산술 디코더는, 평가될 룩업-테이블의 엔트리를 결합된 상태 변수 값의 절대 값(sk i>0이면 ski이고, 그 외의 경우에는 -ski임)에 의존하여(예를 들어 결합된 상태 변수 값의 절대 값의 스케일링되고 반올림된 버전에 의존하여) 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to change the state variable value in a first direction (e.g., to become a larger positive number) if the decoded symbol has a first value (e.g., "1"), and to change the state variable value in a second direction (e.g., to become a larger negative number) if the decoded symbol has a second value different from the first value (e.g., "0") (e.g., so that the state variable value can have both positive and negative values), and the arithmetic decoder is configured to determine which entry of the lookup-table to be evaluated depends on the absolute value of the combined state variable value (e.g., depends on a scaled and rounded version of the absolute value of the combined state variable value) (e.g., depends on a scaled and rounded version of the absolute value of the combined state variable value) depending on the absolute value of the combined state variable value (s k i if s k i >0, otherwise -s k i).
바람직한 실시형태에서, 상기 산술 디코더는, 결합된 상태 변수 값이 제 1 부호(예를 들어, 양의 부호)를 가지면, 상기 확률 값(pk)을, 상기 룩업 테이블에 의하여 제공되는 값으로(예를 들어, 로) 설정하도록 구성되고, 상기 산술 디코더는, 상기 결합된 상태 변수 값이 제 2 부호(예를 들어, 음의 부호)를 가지면, 상기 확률 값(pk)을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값(예를 들어, 1)으로부터 감산함으로써 얻어지는 값으로(예를 들어, 로) 설정하도록 구성된다.In a preferred embodiment, the arithmetic decoder, if the associated state variable value has a first sign (e.g., a positive sign), sets the probability value (p k ) to a value provided by the lookup table (e.g., ), and the arithmetic decoder is configured to set the probability value (p k ) to a value obtained by subtracting a value provided by the lookup table from a predetermined value (e.g., 1), if the combined state variable value has a second sign (e.g., a negative sign), (e.g., It is configured to set (as shown).
바람직한 실시형태에서, 산술 디코더는 결합된 확률 값 pk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to determine the combined probability value p k according to:
여기에서 LUT2는 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk는 결합된 상태 변수 값이고; ak는 결합된 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT2 is a lookup table containing probability values; . is a floor operator; s k is a combined state variable value; a k is a weight associated with the combined state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
바람직한 실시형태에서, 산술 디코더는 결합된 확률 값 pk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to determine the combined probability value p k according to:
여기에서 LUT2는 확률 값을 포함하는 룩업-테이블이고; . 는 바닥 연산자이며; sk는 결합된 상태 변수 값이고; ak는 결합된 상태 변수 값과 연관된 가중치이다(예를 들어, i-번째 상태 변수 값의 개수 범위(number range)를 룩업-테이블의 엔트리의 개수에 적응시키는 가중치임).Here, LUT2 is a lookup table containing probability values; . is a floor operator; s k is a combined state variable value; a k is a weight associated with the combined state variable value (e.g., a weight that adapts the number range of the i-th state variable value to the number of entries in the lookup table).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )을, 그 엔트리가 상기 결합된 상태 변수 값에 의존하고(예를 들어, 제 1 룩업 테이블 엔트리 좌표를 결정하기 위하여), 심볼의 디코딩 이전의 상기 산술적 디코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)에 의존하여(예를 들어, 제 2 룩업 테이블 엔트리 좌표를 결정하기 위하여) 어드레싱되는 2-차원 룩업 테이블을 사용하여, 하위인터벌 폭 값(subinterval width value)(R*pk)으로 매핑하도록 구성된다.In a preferred embodiment, the arithmetic decoder comprises: a scaled version and/or a rounded version of the combined state variable values, or s k * a k ) is configured to map subinterval width values (R*p k ) using a two-dimensional lookup table, the entries of which depend on the combined state variable values (e.g., to determine the first lookup table entry coordinates) and on coding interval size information (e.g., R) describing the size of a coding interval of the arithmetic decoding prior to decoding of the symbol (e.g., to determine the second lookup table entry coordinates).
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업 테이블은, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리(; 일차원 룩업 테이블을 형성함), 및 상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터() 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있다.In a preferred embodiment of the arithmetic decoder, the two-dimensional lookup table comprises: the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values; s k * a k ; ) contains probability values for different value intervals in the value domain, the first 1-dimensional vector entry ( ; forming a one-dimensional lookup table), and a second one-dimensional vector ( comprising a quantization level for the coding interval size information ) can be expressed as a dyadic product between entries.
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고, 상기 2-차원 룩업-테이블의 원소들의 제 1 그룹(또는 블록; 예를 들어, "상부 절반")은 상기 베이스 룩업-테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며, 상기 2-차원 룩업-테이블의 원소들의 제 2 그룹(또는 블록; 예를 들어, "하부 절반")은 상기 베이스 룩업-테이블의 원소의 스케일링된 버전 및 반올림된 버전이다.In a preferred embodiment of the arithmetic decoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a base lookup table (Base TabLPS), a first group (or block; e.g., "upper half") of the elements of the two-dimensional lookup-table are identical to the elements of the base lookup-table or are rounded versions of the elements of the base lookup-table, and a second group (or block; e.g., "lower half") of the elements of the two-dimensional lookup-table are scaled versions and rounded versions of the elements of the base lookup-table.
산술 디코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소들의 제 2 그룹은 상기 베이스-룩업 테이블의 원소의 우측-천이된 버전이다.In a preferred embodiment of the arithmetic decoder, the second group of elements of the two-dimensional lookup-table are right-shifted versions of the elements of the base lookup table.
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(Qp2(pLPS) 또는 i))는 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고, 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를 양자화함으로써 얻어짐)의 제 1 범위(예를 들어, 0 및 μ-1 사이)는 원소들의 제 1 그룹의 원소와 연관되고, 및 확률 인덱스들(이들은, 예를 들어 확률 값, 예를 들어 pLPS를, 예를 들어 양자화 함수 Qp2(.)를 사용하여 양자화함으로써 얻어짐)의 제 2 범위(예를 들어, μ 이상임)는 원소들의 제 2 그룹의 원소와 연관된다.In a preferred embodiment of the arithmetic decoder, the probability indices (Qp 2 (p LPS ) or i)) determine whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated, and a first range (e.g. between 0 and μ-1) of the probability indices (which are obtained, for example, by quantizing the probability values, e.g. p LPS ) is associated with elements of the first group of elements, and a second range (e.g. greater than or equal to μ) of the probability indices (which are obtained, for example, by quantizing the probability values, e.g. p LPS , using, for example, a quantization function Qp2(.) ) is associated with elements of the second group of elements.
산술 디코더의 바람직한 실시형태에서, 상기 확률 인덱스(i) 및 상기 제 1 크기 값(예를 들어 μ; 여기에서, 예를 들어 크기 값은 베이스 룩업 테이블의 제 1 방향으로의 확장(extension)을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ) 및 인터벌 크기 인덱스(예를 들어 인터벌 크기 정보(R)에 기반하여, 예를 들어 양자화 연산 Qr2(.)를 사용하여 획득될 수 있음; 예를 들어, j)는, 베이스 룩업 테이블의 어떤 원소가 2-차원 룩업 테이블의 원소를 획득하기 위하여 사용되는지를 결정한다.In a preferred embodiment of the arithmetic decoder, the division remainder (i%μ) of the division between the probability index (i) and the first magnitude value (e.g. μ; where, for example, the magnitude value describes an extension of the base lookup table in the first direction) and an interval magnitude index (e.g., based on the interval magnitude information (R), which can be obtained, for example, using a quantization operation Qr2(.); for example, j) determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
바람직한 실시형태에서, 산술 디코더는 2-차원 룩업-테이블(RangTabLPS)의 원소를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is configured to obtain elements of a two-dimensional lookup table (RangTabLPS) according to:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j), i/μ)RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j), i/μ )
여기에서 BaseTabLPS는 차원 μ x λ인 베이스 룩업 테이블이고; i는 확률 정보와 연관된 테이블 인덱스이며; j는 인터벌 크기 정보(예를 들어 현재의 코딩 인터벌 크기를 기술함)와 연관된 테이블 인덱스이고; %는 나눗셈 나머지 연산이며; /는 나눗셈 연산이고; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, BaseTabLPS is a base lookup table of dimension μ x λ; i is a table index associated with probability information; j is a table index associated with interval size information (e.g., describing the current coding interval size); % is a division remainder operation; / is a division operation; and Scal(x, y) is a scaling function (e.g., Scal(x, y) = x*a -by As defined, . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블(RangTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고, 상기 확률 테이블은, 복수 개의 확률 값들의 세트(예를 들어, 인덱스 i에 의해 표현됨)에 대한 그리고 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며, 상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 및/또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업-테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도된다.In a preferred embodiment of the arithmetic decoder, the elements of the two-dimensional lookup-table (RangTabLPS) are defined based on a probability table (probTabLPS), the probability table describing interval sizes for a set of a plurality of probability values (e.g. represented by an index i) and for a given (reference) coding interval size, and the elements of the two-dimensional lookup-table for probability values not included in the set of the plurality of probability values and/or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
산술 디코더의 바람직한 실시형태에서, 상기 2-차원 룩업-테이블의 원소는, 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용하여, 그리고 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한(예를 들어 현재의 확률이 상기 확률 테이블에 의해 커버되는 확률 값들의 범위 내에 속하는지 여부에 의존한), 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득된다.In a preferred embodiment of the arithmetic decoder, the elements of the two-dimensional lookup-table are obtained using a first scaling (multiplication) of a selected element (probTabLPS[i%μ]) of the probability table depending on the coding interval size R, and a second scaling of the result of the first scaling depending on whether the element associated with the current probability value (indicated by the index i) is included in the set of probability values (e.g. depending on whether the current probability falls within the range of probability values covered by the probability table).
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 여기에서 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 여기에서 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic decoder, a division remainder (i%μ) of a division between a probability index (e.g. i; e.g. representing a current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes an extension of a probability table) determines which elements of said probability table are scaled in said first scaling; and/or an integer division result (i%μ) of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or wherein the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
바람직한 실시형태에서, 산술 디코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is configured to obtain elements of a two-dimensional lookup-table according to:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며; probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고(또는 현재의 코딩 인터벌 크기임); Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation; probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size (or the current coding interval size); Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
산술 디코더의 바람직한 실시형태에서, 2-차원 룩업-테이블의 원소는, 현재의 확률 값과 연관된 원소(인덱스 i에 의해 지정됨)가 확률 값들의 세트에 포함되는지 여부에 의존하여(예를 들어 현재의 확률 값이 확률 테이블에 의해 커버되는 확률 값의 범위 내에 있는지 여부에 의존하여), 그리고 코딩 인터벌 크기(R)에 의존한 제 1 스케일링의 결과의 제 2 스케일링을 사용하여, 확률 테이블의 선택된 원소(probTabLPS[i%μ])의 (승산) 제 1 스케일링을 사용함으로써 획득된다.In a preferred embodiment of the arithmetic decoder, an element of the two-dimensional lookup-table is obtained by using a first scaling of a selected element of the probability table (probTabLPS[i%μ]) depending on whether the element associated with the current probability value (indicated by index i) is included in the set of probability values (e.g. depending on whether the current probability value is within the range of probability values covered by the probability table), and using a second scaling of the result of the first scaling depending on the coding interval size (R).
산술 디코더의 바람직한 실시형태에서, 확률 인덱스(예를 들어 i임; 예를 들어 현재의 확률 값을 표현함) 및 제 1 크기 값(예를 들어 μ임; 여기에서, 예를 들어 크기 값은 확률 테이블의 확장을 기술함) 사이의 나눗셈의 나눗셈 나머지(i%μ)는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고; 및/또는 상기 확률 인덱스(i) 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)(i/μ)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자(2- i/μ )를 결정하며, 및/또는 상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정한다.In a preferred embodiment of the arithmetic decoder, the division remainder of the division between a probability index (e.g. i; e.g. representing the current probability value) and a first magnitude value (e.g. μ; where, e.g. the magnitude value describes the extension of the probability table) i%μ ) determines which element of said probability table is scaled in said first scaling; and/or an integer division result () of the division between said probability index (i) and said first magnitude value ( i/μ ) is the scaling factor (2-) used in the second scaling. i/μ ) and/or the coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
바람직한 실시형태에서, 산술 디코더는 2-차원 룩업-테이블의 원소 를 다음에 따라서 획득하도록 구성되는데,In a preferred embodiment, the arithmetic decoder is an element of a two-dimensional lookup table. It is configured to obtain as follows:
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고; j는 인터벌 크기 정보와 연관된 테이블 인덱스이며; %는 나눗셈 나머지 연산이고; /는 나눗셈 연산이며(예를 들어, 정수 결과를 제공함); probTabLPS[]는 확률 테이블이고; μ는 확률 테이블의 원소들의 개수이며(여기에서 i의 값들의 범위는 통상적으로 μ보다 큼); R은 인터벌 크기이고; Qr2(R)은 R에 의존하는 스케일링 인자이며; Scal(x, y)는 스케일링 함수이다(예를 들어, Scal(x, y)= x*a-by 로서 규정되고, 여기에서 . 는 바닥 연산이며, a는 2 이상인 상수인 것이 바람직하고, b는 1 이상인 상수인 것이 바람직하며, 스케일링 함수는 우측-천이 비트 천이 연산을 사용하여 구현되는 것이 바람직하고, y는 x의 우측-천이가 수행되는지 그리고 얼마나 많은 비트가 천이되는지를 결정함).Here, i is a table index associated with probability information; j is a table index associated with interval size information; % is a division remainder operation; / is a division operation (e.g., giving an integer result); probTabLPS[] is a probability table; μ is the number of elements in the probability table (where the range of values of i is typically larger than μ); R is an interval size; Qr 2 (R) is a scaling factor that depends on R; Scal(x, y) is a scaling function (e.g., Scal(x, y)= x*a -by is defined as, and here . is a floor operation, a is preferably a constant greater than or equal to 2, b is preferably a constant greater than or equal to 1, the scaling function is preferably implemented using a right-shift bitwise transition operation, and y determines whether a right-shift of x is performed and how many bits are shifted.
바람직한 실시형태에서, 상기 산술 디코더는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )으로부터, 하위인터벌 폭 값(subinterval width value)(R*pk)을, 상기 결합된 상태 변수 값(sk) 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 결합된 확률 값으로 매핑하고, 심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)를 양자화 레벨로 양자화하며, 상기 결합된 확률 값 및 상기 양자화 레벨의 곱(product)을 결정함으로써(미리 계산된 곱들을 룩업함으로써, 또는 승산에 의하여), 계산하도록 구성된다.In a preferred embodiment, the arithmetic decoder comprises: a scaled version and/or a rounded version of the combined state variable values, or s k * a k ), the subinterval width value (R*p k ), the combined state variable value (s k ) or the scaled version and/or rounded version of the combined state variable value ( s k * a k ; ), the combined state variable values, or a scaled version and/or rounded version of the combined state variable values ( s k * a k ; ) is configured to map a combined probability value using a one-dimensional lookup table (LUT4) entry including probability values for different value intervals of the value domain, quantize coding interval size information (e.g., R) describing a size of a coding interval of the arithmetic encoding prior to encoding of a symbol into a quantization level, and calculate a product of the combined probability value and the quantization level (by looking up pre-computed products or by multiplication).
바람직한 실시형태에서, 상기 산술 디코더는, 논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
바람직한 실시형태에서, 상기 산술 디코더는, 코딩 인터벌 크기 정보 를 양자화하는 것을 에 의하여 수행하도록 구성되고, 여기에서 , 및 는 파라미터이다.In a preferred embodiment, the arithmetic decoder comprises: coding interval size information Quantizing it is configured to perform by, and hereby , and is a parameter.
산술 디코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic decoder, an entry of the one-dimensional lookup table contains: the combined state variable value, or a scaled version and/or a rounded version of the combined state variable value ( s k * a k ) monotonically decreases as the value of increases.
산술 디코더의 바람직한 실시형태에서, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic decoder, the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values ( s k * a k ) for different value intervals in the value domain are sized identically.
산술 디코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 감소율을 가지고 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic decoder, an entry of the one-dimensional lookup table contains: the combined state variable value, or a scaled version and/or a rounded version of the combined state variable value ( s k * a k ) monotonically decreases with an increasing rate.
산술 디코더의 바람직한 실시형태에서, 룩업-테이블은 지수적 감쇠(예를 들어 0.5로부터 감소됨)를 규정한다(예를 들어, +/-10% 또는 +/-20%의 허용 오차 내에서 규정함).In a preferred embodiment of the arithmetic decoder, the lookup-table specifies an exponential decay (e.g., decreasing from 0.5) (e.g., within a tolerance of +/-10% or +/-20%).
바람직한 실시형태에서, 산술 디코더는 복수 개의 변수 상태 값 을 다음에 따라서 업데이트하도록 구성되는데,In a preferred embodiment, the arithmetic decoder has multiple variable state values. It is configured to update as follows:
여기에서 z는 미리 결정된 (상수) 오프셋 값이고; 는 하나 이상의 가중치이며; 는 하나 이상의 가중치이고, A는 이거나, 업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위해서, 제로 설정 또는 크기 감소에 의해 그 인수의 하나 이상의 극단 값에 대해서만 그로부터 벗어나며, (예를 들어 가 보다 큰 값 도메인을 가진다는 것을 고려한다; 즉, 는 로 의사 양자화된다; 의 극단 값에 대하여, 는 전술된 수학식에 따라서 수정되지 않은 A에 의해서 수정되어 그 값 도메인을 벗어나게 된다; 이것을 피하기 위하여, 이러한 극단 값에 대응하는 엔트리는 감소되거나 제로로 처리될 수 있다), 여기에서 , , , 및 는 미리 결정된 파라미터이다(예들이 앞에서 진술됨).Here, z is a predetermined (constant) offset value; is one or more weights; is one or more weights, and A is This or updated To avoid going beyond a predetermined range of values, it deviates from it only for one or more extreme values of its argument, either by setting it to zero or by reducing its size (e.g. go Consider that it has a larger value domain; that is, Is is quantized into ; For extreme values of , is modified by A, which is not modified according to the mathematical formula described above, and thus goes out of its value domain; to avoid this, the entries corresponding to these extreme values can be reduced or treated as zero), here , , , and are predetermined parameters (examples are stated above).
바람직한 실시형태에서, 산술 디코더는 를 테이블 룩업 동작에 의하여 또는 계산에 의하여 유도하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to derive by table lookup operation or by calculation.
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 디코더로서, 상기 산술 디코더는, 복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)(예를 들어, 디코딩될 하나 이상의 심볼이 특정 심볼 값을 가질 확률의 추정치)의 통계(예를 들어, 복수 개의 상태 변수 값이 결정되는 경우에는, 상이한 적응 시상수를 가지는 통계)를 나타내는 하나 이상의 상태 변수 값(s1 k, s2 k)을 결정하도록 구성되고, 상기 산술 디코더는, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 사이즈 정보(pk, R*pk))를, 복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 복수 개의 상태 변수 값이 결정되는 경우에는, 상이한 적응 시상수를 가지는 통계)를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하도록 구성되며, 상기 산술 인코더는, 제 1 상태 변수 값(sk 1)을 디코딩된 심볼에 의존하여 그리고 룩업 테이블(A)을 사용하여 업데이트하도록 구성되는(예를 들어, 디코딩될 심볼을 디코딩한 후에), 산술 디코더를 생성한다.An embodiment according to the present invention is an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic decoder is configured to determine one or more state variable values (s 1 k , s 2 k ) representing statistics (e.g., statistics having different adaptive time constants when multiple state variable values are determined) of a plurality of previously decoded symbol values (e.g., sequences of binary values 0 and 1 ) (e.g., estimates of the probability that one or more symbols to be decoded have a specific symbol value), and the arithmetic decoder is configured to determine interval size information (p k , R*p k ) for arithmetic decoding of one or more symbol values to be decoded, and one or more state variable values (s i k ) representing statistics (e.g., statistics having different adaptive time constants when multiple state variable values are determined) of a plurality of previously decoded symbol values (e.g., sequences of binary values 0 and 1) . ) (which are associated with a given context mode denoted by k for example), and the arithmetic encoder generates an arithmetic decoder configured to update a first state variable value (s k 1 ) depending on the decoded symbol and using a lookup table (A) (for example, after decoding the symbol to be decoded).
바람직한 실시형태에서, 상기 산술 디코더는, 디코딩된 심볼에 의존하고 룩업 테이블(A)을 사용하여(예를 들어, 디코딩될 심볼을 디코딩 한 이후에), 제 2 상태 변수 값(sk 2)을 업데이트하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to update the second state variable value (s k 2 ) depending on the decoded symbol and using the lookup table (A) (e.g., after decoding the symbol to be decoded).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값을 상이한 적응 시상수를 사용하여 업데이트하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to update the first state variable value and the second state variable value using different adaptation time constants.
바람직한 실시형태에서, 상기 산술 디코더는, 이전의 상태 변수 값을, 디코딩된 심볼이 제 1 값 또는 상기 제 1 값과 상이한 제 2 값을 가지는지 여부에 의존하여, 상기 룩업 테이블을 사용하여 결정된 값만큼 선택적으로 증가 또는 감소시키도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to selectively increment or decrement a previous state variable value by a value determined using the lookup table, depending on whether the decoded symbol has a first value or a second value different from the first value.
바람직한 실시형태에서, 상기 산술 디코더는, 디코딩된 심볼이 제 1 값을 가지면, 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 양수인 경우와 비교할 때 상기 이전의 상태 변수 값이 음수인 경우에 비교적 더 큰 값만큼 증가시키도록 구성되고, 상기 산술 디코더는, 디코딩된 심볼이 상기 제 1 값(이것은, 예를 들어 룩업 테이블을 적절히 선택함으로써 얻어짐)과 상이한 제 2 값을 가지면, 상기 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 음수인 경우와 비교할 때 상기 이전의 상태 변수 값이 양수인 경우에 비교적 더 큰 값만큼 감소시키도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to, if the decoded symbol has a first value, increment a previous state variable value by a relatively larger value if the previous state variable value is negative compared to the case where the previous state variable value is positive, and the arithmetic decoder is configured to, if the decoded symbol has a second value different from the first value (which is obtained, for example, by appropriately selecting a look-up table), decrement the previous state variable value by a relatively larger value if the previous state variable value is positive compared to the case where the previous state variable value is negative.
바람직한 실시형태에서, 상기 산술 디코더는, 디코딩된 심볼이 제 1 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 제 1 상태 변수 값(), 또는 상기 이전에 계산된 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고, 상기 산술 디코더는, 디코딩된 심볼이 제 2 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 상기 제 1 상태 변수 값의 반전된(-1이 곱해진) 버전(), 또는 그것의(상기 이전에 계산된 상기 제 1 상태 변수 값의 반전된 버전) 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder, if the decoded symbol has a first value, outputs a predetermined (e.g., fixed) offset value (z) and a previously computed first state variable value ( ), or a scaled version and/or rounded version of the previously computed first state variable value ( ) is configured to determine an index of an entry of the lookup table to be evaluated when updating the first state variable value, depending on the sum of the first and second values, and the arithmetic decoder is configured to, if the decoded symbol has a second value, compute a predetermined (e.g., fixed) offset value (z) and an inverted (multiplied by -1) version of the previously computed first state variable value ( ), or a scaled version and/or a rounded version thereof (an inverted version of the previously computed first state variable value). ) is configured to determine the index of an entry of the lookup table to be evaluated when updating the value of the first state variable.
바람직한 실시형태에서, 상기 산술 디코더는, 디코딩된 심볼이 제 2 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 제 2 상태 변수 값(), 또는 상기 이전에 계산된 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고, 상기 산술 디코더는, 인코딩될 심볼이 제 2 값을 가지면, 미리 결정된(예를 들어, 고정된) 오프셋 값(z) 및 이전에 계산된 상기 제 2 상태 변수 값의 반전된(-1이 곱해진) 버전(), 또는 그것의(상기 이전에 계산된 상기 제 2 상태 변수 값의 반전된 버전) 스케일링된 버전 및/또는 반올림된 버전()의 합에 의존하여, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder, if the decoded symbol has a second value, calculates a predetermined (e.g., fixed) offset value (z) and a previously computed second state variable value ( ), or a scaled version and/or rounded version of the previously computed second state variable value ( ) is configured to determine an index of an entry of the lookup table to be evaluated when updating the second state variable value, depending on the sum of the values of the lookup table, and the arithmetic decoder is configured to determine, if the symbol to be encoded has a second value, an offset value (z) that is predetermined (e.g., fixed) and an inverted (multiplied by -1) version of the previously computed second state variable value ( ), or a scaled version and/or rounded version thereof (an inverted version of the previously computed second state variable value). ) is configured to determine the index of an entry of the lookup table to be evaluated when updating the value of the second state variable.
바람직한 실시형태에서, 상기 산술 디코더는, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 1 상태 변수 값(sk 1)을 스케일링하기 위하여 제 1 스케일링 값(mk 1)을 적용하도록 구성되고, 상기 산술 디코더는, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 2 상태 변수 값(sk 2)을 스케일링하기 위하여 제 2 스케일링 값(mk 2)을 적용하도록 구성되며, 제 1 스케일링 값은 제 2 스케일링 값과 다르다(그리고, 여기에서 제 1 및 제 2 스케일링 값은 2의 정수 포텐시인 것이 바람직하고, 제 1 스케일링 값 및 제 2 스케일링 값 사이의 비율은 2의 정수 포텐시인 것이 바람직하며, 및 제 1 스케일링 값 및 제 2 스케일링 값은 적어도 8의 인자에 의해서 서로 다른 것이 바람직하다).In a preferred embodiment, the arithmetic decoder is configured to apply a first scaling value (m k 1 ) to scale a previously computed first state variable value (s k 1 ) when determining an index of an entry of the lookup table to be evaluated when updating the first state variable value, and the arithmetic decoder is configured to apply a second scaling value (m k 2 ) to scale a previously computed second state variable value (s k 2 ) when determining an index of an entry of the lookup table to be evaluated when updating the second state variable value, wherein the first scaling value is different from the second scaling value (and, wherein the first and second scaling values are preferably integer potentials of 2 , and a ratio between the first scaling value and the second scaling value is preferably integer potentials of 2, and the first scaling value and the second scaling value are different from each other by at least a factor of 8). (preferable).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 제 1 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 1 스케일링 값(예를 들어 nk 1)을 사용하여 스케일링하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to scale the value returned by the evaluation of the lookup table when updating the value of the first state variable using a first scaling value (e.g., n k 1 ).
상기 산술 디코더는, 상기 제 2 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 2 스케일링 값(예를 들어 nk 2)을 사용하여 스케일링하도록 구성되며, 여기에서 상기 제 1 스케일링 값은 상기 제 2 스케일링 값과 다르다.The arithmetic decoder is configured to scale a value returned by evaluating the lookup table when updating the second state variable value, using a second scaling value (e.g., n k 2 ), wherein the first scaling value is different from the second scaling value.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 @결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to @determine one or more updated state variable values according to:
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
산술 디코더의 바람직한 실시형태에서, A의 엔트리는 룩업 테이블 인덱스가 증가함에 따라 단조 감소한다.In a preferred embodiment of the arithmetic decoder, the entries of A monotonically decrease as the lookup table index increases.
산술 디코더의 바람직한 실시형태에서, A는 이거나, 업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위해서, 제로 설정 또는 크기 감소에 의해 그 인수의 하나 이상의 극단 값에 대해서만 그로부터 벗어나며, (예를 들어 가 보다 큰 값 도메인을 가진다는 것을 고려한다; 즉, 는 로 의사 양자화된다; 의 극단 값에 대하여, 는 전술된 수학식에 따라서 수정되지 않은 A에 의해서 수정되어 그 값 도메인을 벗어나게 된다; 이것을 피하기 위하여, 이러한 극단 값에 대응하는 엔트리는 감소되거나 제로로 처리될 수 있다). 여기에서 , , , 및 는 미리 결정된 파라미터이다(예들이 앞에서 진술됨).In a preferred embodiment of the arithmetic decoder, A is This or updated To avoid going beyond a predetermined range of values, it deviates from it only for one or more extreme values of its argument, either by setting it to zero or by reducing its size (e.g. go Consider that it has a larger value domain; that is, Is is quantized into ; For extreme values of , is modified by A, which is not modified according to the mathematical expression described above, and thus goes out of its value domain; to avoid this, the entries corresponding to these extreme values can be reduced or treated as zero). Here , , , and are predetermined parameters (examples are stated above).
산술 디코더의 바람직한 실시형태에서, 상기 룩업 테이블의 마지막 엔트리(제 1 상태 변수 값이 최대 허용 값까지 연장되는 값들의 미리 결정된 범위에 도달할 때에, 또는 제 1 상태 변수 값이 미리 결정된 문턱 값을 초과할 때에 어드레싱됨)는 제로와 같게 된다.In a preferred embodiment of the arithmetic decoder, the last entry of the lookup table (addressed when the first state variable value reaches a predetermined range of values extending to a maximum allowable value, or when the first state variable value exceeds a predetermined threshold value) is equal to zero.
바람직한 실시형태에서, 상기 산술 디코더는, 업데이트된 상태 변수 값 및 클리핑된 상태 변수 값을 값들의 미리 결정된 범위 내에 유지하도록, 클리핑 연산을 업데이트된 상태 변수 값에 적용하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to apply a clipping operation to the updated state variable values so as to keep the updated state variable values and the clipped state variable values within a predetermined range of values.
바람직한 실시형태에서, 산술 디코더는 다음에 따라서 클리핑 연산을In a preferred embodiment, the arithmetic decoder performs the clipping operation according to
업데이트된 상태 변수 값에 적용하도록 구성되는데, 여기에서 는 에 대한 최대 허용 값이고 는 에 대한 최소 허용 값이다.It is configured to apply to the updated state variable values, where Is is the maximum allowable value for Is is the minimum allowable value for .
바람직한 실시형태에서, 산술 디코더는 상이한 콘텍스트 모델에 대하여 상이한 스케일링 값을 적용하도록(예를 들어, 스케일링 값들 중 적어도 하나가 두 개의 상이한 콘텍스트 모델들 사이에서 변하게 하도록) 구성된다.In a preferred embodiment, the arithmetic decoder is configured to apply different scaling values for different context models (e.g., to cause at least one of the scaling values to vary between two different context models).
바람직한 실시형태에서, 산술 디코더는 전술된 실시형태 중 하나에서 규정된 바와 같은 인터벌 크기 정보를 획득하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to obtain interval size information as specified in one of the embodiments described above.
본 발명에 따른 실시형태는, 심볼 값(예를 들어 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 산술 디코더로서, 상기 산술 디코더는, 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나의 상태 변수 값(sk)을 결정하도록 구성되고, 상기 산술 디코더는, 결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )으로부터, 디코딩될 심볼 값의 산술적 디코딩을 위한 하위인터벌 폭 값()을, 상기 하나의 상태 변수 값(sk) 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak ; )에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블() 엔트리를 사용하여 결합된 확률 값으로 매핑하고, 디코딩될 심볼 값의 산술적 디코딩 이전의 상기 산술적 디코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(예를 들어, R)를 양자화 레벨()로 양자화하며, 상기 확률 값 및 상기 양자화 레벨 사이의 곱을 결정함으로써(예를 들어, 미리 계산된 곱들의 룩업 동작에 의하여, 또는 승산에 의하여) 결정하도록 구성되며, 상기 산술 디코더는, 디코딩될(실제로 디코딩된) 심볼 값에 의존하여 상태 변수 값 업데이트를 수행하도록 구성되는, 산술 디코더를 생성한다.An embodiment according to the present invention is an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values), wherein the arithmetic decoder is configured to determine one state variable value (s k ) representing statistics of a plurality of previously decoded symbol values, and wherein the arithmetic decoder is configured to determine a combined state variable value, or a scaled version and/or a rounded version of the combined state variable value ( s k * a k ), the subinterval width value for arithmetic decoding of the symbol value to be decoded ( ), one state variable value (s k ) or a scaled version and/or rounded version of one state variable value ( s k * a k ; ), the combined state variable values, or a scaled version and/or rounded version of the combined state variable values ( s k * a k ; ) is a one-dimensional lookup table containing probability values for different value intervals in the value domain. ) entry is mapped to a combined probability value, and coding interval size information (e.g., R) describing the size of the coding interval of the arithmetic decoding prior to the arithmetic decoding of the symbol value to be decoded is provided at the quantization level ( ) and is configured to determine a product between said probability value and said quantization level (e.g., by a lookup operation of precomputed products, or by a multiplication), and wherein said arithmetic decoder generates an arithmetic decoder configured to perform a state variable value update depending on a symbol value to be decoded (actually decoded).
바람직한 실시형태에서, 산술 디코더는 하나의 상태 변수 값(sk)으로서, 결합된 상태 변수 값(이것은, 예를 들어 상태 변수 값들의 가중 합일 수 있음)을, 상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값(예를 들어 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 복수 개의 상태 변수 값이 있는 경우에는, 상이한 적응 시상수가 있는 통계)를 나타내는 복수 개의 상태 변수 값(si k)(예를 들어 이진 값 0 및 1의 시퀀스)에 의존하여 유도하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to derive a combined state variable value (which may be, for example, a weighted sum of the state variable values) as a single state variable value (s k ), depending on a plurality of state variable values (s i k ) (e.g. a sequence of binary values 0 and 1 ) representing statistics of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1 ) with different adaptation time constants (e.g. the statistics having different adaptation time constants in the case of multiple state variable values).
바람직한 실시형태에서, 상기 산술 디코더는, 상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to determine a weighted sum of the state variable values to obtain the combined state variable values.
바람직한 실시형태에서, 상기 산술 디코더는, 상기 결합된 상태 변수 값(sk)을 획득하기 위하여, 상태 변수 값() 및 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값()의 합을 결정하도록 구성된다.In a preferred embodiment, the arithmetic decoder comprises a state variable value (s k ) to obtain the combined state variable value (s k ). ) and associated weight values ( ) is the rounded value obtained by rounding the product of ) is configured to determine the sum of the two.
바람직한 실시형태에서, 산술 디코더는 결합된 상태 변수 값 sk를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder is configured to determine the combined state variable values s k according to:
여기에서 sk 2는 상태 변수 값이고, N은 고려되는 상태 변수 값의 개수이며, . 는 바닥 연산자이고, dk i는 상기 상태 변수 값과 연관된 가중치이다(예를 들어, 결합된 상태 변수 값에 대한 개별적인 상태 변수 값의 영향을 제어하는 가중치 인자임)(여기에서 dk i는 2의 바람직하게는 정수-값인 포텐시이며, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 2의 정수-값인 포텐시임)(여기에서, 두 개의 상이한 dk i 사이의 비율은 바람직하게는 8 이상임).Here, s k 2 is the state variable value, N is the number of state variable values considered, . is a floor operator, and d k i is a weight associated with the state variable values (e.g., a weighting factor controlling the influence of an individual state variable value on the combined state variable value) (wherein d k i is a potential, preferably integer-valued, of 2, and the ratio between two different d k i is preferably an integer-valued potential of 2) (wherein the ratio between two different d k i is preferably greater than or equal to 8).
바람직한 실시형태에서, 산술 디코더는 상태 변수 값 업데이트를 수행할 때, 복수 개의 상태 변수 값 을 다음에 따라서 업데이트하도록 구성되는데,In a preferred embodiment, the arithmetic decoder performs a state variable value update when a plurality of state variable values It is configured to update as follows:
여기에서 z는 미리 결정된 (상수) 오프셋 값이고; 는 하나 이상의 가중치이며; 는 하나 이상의 가중치이고, A는 이거나, 업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위해서, 제로 설정 또는 크기 감소에 의해 그 인수의 하나 이상의 극단 값에 대해서만 그로부터 벗어나며, (예를 들어 가 보다 큰 값 도메인을 가진다는 것을 고려한다; 즉, 는 로 의사 양자화된다; 의 극단 값에 대하여, 는 전술된 수학식에 따라서 수정되지 않은 A에 의해서 수정되어 그 값 도메인을 벗어나게 된다; 이것을 피하기 위하여, 이러한 극단 값에 대응하는 엔트리는 감소되거나 제로로 처리될 수 있다), 여기에서 , , , 및 는 미리 결정된 파라미터이다(예들이 앞에서 진술됨).Here, z is a predetermined (constant) offset value; is one or more weights; is one or more weights, and A is This or updated To avoid going beyond a predetermined range of values, it deviates from it only for one or more extreme values of its argument, either by setting it to zero or by reducing its size (e.g. go Consider that it has a larger value domain; that is, Is is quantized into ; For extreme values of , is modified by A, which is not modified according to the mathematical formula described above, and thus goes out of its value domain; to avoid this, the entries corresponding to these extreme values can be reduced or treated as zero), here , , , and are predetermined parameters (examples are stated above).
바람직한 실시형태에서, 산술 디코더는 를 테이블 룩업 동작에 의하여 의하여 또는 계산에 의하여 유도하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to derive by a table lookup operation or by calculation.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
바람직한 실시형태에서, 산술 디코더는 하나 이상의 업데이트된 상태 변수 값 를 다음에 따라서 결정하도록 구성되고,In a preferred embodiment, the arithmetic decoder updates one or more state variable values is configured to determine according to the following,
여기에서 A는 룩업 테이블(예를 들어, 정수 값을 포함함)이고, z는 미리 결정된 (상수) 오프셋 값이다; 여기에서 는 하나 이상의 가중치이고; 는 하나 이상의 가중치이다.Here, A is a lookup table (e.g., containing integer values), and z is a predetermined (constant) offset value; here is one or more weights; is one or more weights.
바람직한 실시형태에서, 상기 산술 디코더는, 논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성된다.In a preferred embodiment, the arithmetic decoder is configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
바람직한 실시형태에서, 상기 산술 디코더는, 코딩 인터벌 크기 정보 을 양자화하는 것을 에 의하여 수행하도록 구성되고, 여기에서, , 및 는 파라미터이다.In a preferred embodiment, the arithmetic decoder comprises: coding interval size information Quantizing it is configured to perform by, wherein, , and is a parameter.
산술 디코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 하나의 상태 변수 값, 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic decoder, an entry of the one-dimensional lookup table contains: a value of said one state variable, or a scaled version and/or a rounded version of said one state variable value; s k * a k ) monotonically decreases as the value of increases.
산술 디코더의 바람직한 실시형태에서, 상기 하나의 상태 변수 값, 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )에 대한 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정된다.In a preferred embodiment of the arithmetic decoder, the one state variable value, or a scaled version and/or a rounded version of the one state variable value ( s k * a k ) for different value intervals in the value domain are sized identically.
산술 디코더의 바람직한 실시형태에서, 상기 1-차원 룩업 테이블의 엔트리는, 상기 하나의 상태 변수 값, 또는 상기 하나의 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk* ak )의 증가 시에 감소율을 가지고 단조 감소(monotonically decrease)한다.In a preferred embodiment of the arithmetic decoder, an entry of the one-dimensional lookup table contains: a value of said one state variable, or a scaled version and/or a rounded version of said one state variable value; s k * a k ) monotonically decreases with an increasing rate.
본 발명의 실시형태는, 비디오 인코더로서, 상기 비디오 인코더는 복수 개의 비디오 프레임을 인코딩하도록 구성되고, 상기 비디오 인코더는, 전술된 실시형태 중 하나에 따라서, 비디오 콘텐츠를 나타내는 이진 값의 시퀀스에 기반하여, 인코딩된 이진 시퀀스를 제공하기 위한 산술 인코더를 포함하는, 비디오 인코더를 생성한다.An embodiment of the present invention produces a video encoder, wherein the video encoder is configured to encode a plurality of video frames, the video encoder including an arithmetic encoder for providing an encoded binary sequence based on a sequence of binary values representing video content, according to one of the embodiments described above.
본 명세서에서 설명되는 산술 인코더가 비디오 인코더 내에서 사용하기에 매우 적합하다는 것에 주의해야 한다. 이러한 경우에, 인코딩될 심볼 및/또는 이전에 인코딩된 심볼은 비디오 비트 스트림의 심볼일 수 있다. 예를 들어, 인코딩될 심볼 및/또는 이전에 인코딩된 심볼은 부가 정보(side information) 또는 제어 정보의 비트 및/또는 비디오 콘텐츠를 나타내는 인코딩된 변환 계수의 비트를 나타낼 수 있다. 다르게 말하면, 인코딩될 심볼 및/또는 이전에 인코딩된 심볼은 비디오 콘텐츠를 표현하기 위하여 비트 스트림 내에 포함된 정보 중 임의의 정보를 나타낼 수 있다. 그러나, 상태 변수 값이 상이한 "콘텍스트(context)"에 대하여, 즉, 상이한 타입의 정보에 대하여 개별적으로 결정될 수 있다는 것에 주의해야 한다. 예를 들어, 주어진 타입의 정보(예를 들어, 특정 타입의 부가 정보)와 연관된 비트들 만이, 주어진 결합된 상태 변수 값을 획득하기 위하여 사용되는, 주어진 상태 변수 값 또는 상태 변수 값의 주어진 세트에 기여할 수 있다. 그러므로, 인터벌 크기 정보는 상이한 콘텍스트에 대해서, 즉, 상이한 타입의 정보(예를 들어, 부가 정보)와 연관되는 심볼 값의 인코딩을 위하여, 개별적으로 유도될 수도 있다.It should be noted that the arithmetic encoder described herein is well suited for use within a video encoder. In such a case, the symbols to be encoded and/or previously encoded symbols may be symbols of a video bit stream. For example, the symbols to be encoded and/or previously encoded symbols may represent bits of side information or control information and/or bits of encoded transform coefficients representing video content. In other words, the symbols to be encoded and/or previously encoded symbols may represent any of the information contained in the bit stream to represent video content. However, it should be noted that the state variable values may be determined individually for different "contexts", i.e., for different types of information. For example, only bits associated with a given type of information (e.g., a particular type of side information) may contribute to a given state variable value or a given set of state variable values, which are used to obtain a given combined state variable value. Therefore, interval size information may be derived individually for different contexts, i.e., for encoding symbol values associated with different types of information (e.g., side information).
본 발명에 따른 실시형태는, 비디오 디코더로서, 상기 비디오 디코더는 복수 개의 비디오 프레임을 디코딩하도록 구성되고, 상기 비디오 디코더는, 전술된 실시형태 중 하나에 따라서, 이진 시퀀스의 인코딩된 표현(211)에 기반하여, 디코딩된 이진 시퀀스를 제공하기 위한(예를 들어, 디코딩된 심볼 값에 기반하여) 산술 디코더(120; 220)를 포함하는, 비디오 디코더를 생성한다.An embodiment according to the present invention generates a video decoder, wherein the video decoder is configured to decode a plurality of video frames, the video decoder comprising an arithmetic decoder (120; 220) for providing a decoded binary sequence (e.g., based on decoded symbol values), based on an encoded representation (211) of the binary sequence, according to one of the embodiments described above.
비디오 디코더는 비디오 인코더와 동일한 고려 사항에 기반하고 있다. 이에 따라서, 전술된 설명이 마찬가지로 적용되고, 여기에서 인코딩된 심볼 또는 인코딩될 심볼은 코딩된 심볼에 대응한다.The video decoder is based on the same considerations as the video encoder. Accordingly, the above description applies as well, where the encoded symbol or the symbol to be encoded corresponds to the coded symbol.
더욱이, 본 발명에 따른 추가적인 실시형태들은 개별적인 방법 및 컴퓨터 프로그램을 생성한다는 것에 주의해야 한다.Furthermore, it should be noted that additional embodiments according to the present invention create individual methods and computer programs.
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 방법으로서, 상기 방법은, 하나 이상의 인코딩될 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는복수 개의 이전에 인코딩된 심볼 값(예를 들어, 0 및 1의 이진 값의 시퀀스)의 통계를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하는 단계를 포함하고, 상기 방법은, 인코딩될 하나 이상의 심볼의 산술적 인코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 제 1 상태 변수 값(sk 1), 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 1* ak 1 )을, 룩업-테이블(LUT1)을 사용하여 매핑하고, 제 2 상태 변수 값(sk 2), 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하는 단계를 포함하는, 인코딩 방법을 생성한다.An embodiment of the present invention is a method for encoding a plurality of symbols having symbol values (e.g. binary values), the method comprising the step of deriving interval size information (p k , R*p k ) for arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g. sequences of binary values of 0 and 1) with different adaptation time constants (which are associated with a given context mode, indicated for example by an index k ), the method comprising: obtaining interval size information (e.g. p k or R*p k ) describing an interval size for arithmetic encoding of one or more symbols to be encoded, the first state variable value (s k 1 ), or a scaled version and/or a rounded version of the first state variable value ( s k 1 * a k 1 ), using a lookup table (LUT1), and mapping the second state variable value (s k 2 ), or a scaled version and/or rounded version of the second state variable value ( s k 2 * a k 2 ) is generated, which includes a step of mapping using a lookup table (LUT1).
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 방법으로서, 상기 방법은, 상이한 적응 시상수가 있는복수 개의 이전에 인코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(pk, R*pk)를 유도하는 단계를 포함하고, 상기 방법은, 상기 복수 개의 (개별적인) 상태 변수 값(si k)에 기반하여, 결합된 상태 변수 값(sk)(이들은, 예를 들어 상태 변수 값들의 가중 합산일 수 있음)을 유도하는 단계를 포함하며, 상기 방법은, 인코딩될 하나 이상의 심볼의 상기 산술적 인코딩에 대한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 결합된 상태 변수 값(sk), 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을 룩업 테이블을 사용하여 매핑하는 단계를 포함하는, 인코딩 방법을 생성한다.An embodiment according to the present invention is a method for encoding a plurality of symbols having symbol values (e.g. binary values), the method comprising the step of deriving interval size information (p k , R*p k ) for an arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g. sequences of binary values 0 and 1) with different adaptation time constants (which are associated with a given context mode, indicated for example by an index k ), the method comprising the step of deriving a combined state variable value ( s k ) (which may for example be a weighted sum of the state variable values), the method comprising obtaining interval size information (e.g. p k or R*p k ) describing an interval size for the arithmetic encoding of one or more symbols to be encoded, based on the plurality of (individual) state variable values (s i k ). or a scaled version and/or rounded version of the combined state variable values ( s k 2 * a k 2 ) is generated, comprising a step of mapping using a lookup table.
본 발명에 따른 실시형태들은, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 방법으로서, 상기 방법은, 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 상태 변수 값이 복수 개 존재하는 경우에는, 상이한 적응 시상수를 가지는 통계)를 나타내는 하나 이상의 상태 변수 값(s1 k, s2 k)을 결정하는 단계를 포함하고, 상기 방법은, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 사이즈 정보(pk, R*pk))를, 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 상태 변수 값이 복수 개 존재하는 경우에는, 상이한 적응 시상수를 가지는 통계)를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하는 단계를 포함하며, 상기 방법은, 제 1 상태 변수 값(sk 1)을 인코딩될 심볼에 의존하여 그리고 룩업 테이블(A)을 사용하여 업데이트하는 단계(예를 들어, 인코딩될 심볼을 인코딩한 후에)를 포함하는, 인코딩 방법을 생성한다.Embodiments according to the present invention are methods for encoding a plurality of symbols having symbol values (e.g., binary values), the method comprising the step of determining one or more state variable values (s 1 k , s 2 k ) representing statistics (e.g., statistics having different adaptation time constants, if there are multiple state variable values) of a plurality of previously encoded symbol values (e.g., sequences of binary values 0 and 1), the method comprising the step of deriving interval size information ( p k , R*p k ) for arithmetic encoding of the one or more symbol values to be encoded, based on one or more state variable values (s i k ) representing statistics (e.g., statistics having different adaptation time constants, if there are multiple state variable values) of the plurality of previously encoded symbol values (e.g., sequences of binary values 0 and 1), the method comprising the step of deriving a first state variable value (s k 1 ) depending on the symbol to be encoded. And generate an encoding method, which includes a step of updating using a lookup table (A) (e.g., after encoding a symbol to be encoded).
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 방법으로서, 상기 방법은, 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 디코딩될 하나 이상의 심볼이 특정 심볼 값을 포함할 확률의 추정치)를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모델과 연관됨)에 기반하여 유도하는 단계를 포함하고, 상기 방법은, 디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 제 1 상태 변수 값(sk1), 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk1* ak1)을, 룩업-테이블(LUT1)을 사용하여 매핑하고, 제 2 상태 변수 값(sk 2), 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하는 단계를 포함하는, 디코딩 방법을 생성한다.An embodiment of the present invention is a method for decoding a plurality of symbols having symbol values (e.g., binary values), the method comprising the step of deriving interval size information (p k , R*p k ) for arithmetic decoding of one or more symbol values to be decoded based on a plurality of state variable values (s i k ) (which are associated with a given context model, indicated for example by an index k ) representing statistics (e.g., an estimate of the probability that one or more symbols to be decoded will include a particular symbol value) of a plurality of previously decoded symbol values (e.g., a sequence of binary values 0 and 1 ) with different adaptation time constants, the method comprising: obtaining interval size information (e.g., p k or R*p k ) describing an interval size for arithmetic decoding of one or more symbols to be decoded, the method comprising: deriving a first state variable value (sk1 ), or a scaled version and/or a rounded version of the first state variable value ( sk1* ak1 ), using a lookup table (LUT1), and mapping the second state variable value (s k 2 ), or a scaled version and/or rounded version of the second state variable value ( s k 2 * a k 2 ) is generated, which includes a step of mapping using a lookup table (LUT1).
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 방법으로서, 상기 방법은, 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 디코딩될 하나 이상의 심볼이 특정 심볼 값을 포함할 확률의 추정치)를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하는 단계를 포함하고, 상기 방법은, 결합된 확률 변수 값(sk)(이것은, 예를 들어 상태 변수 값들의 가중 합일 수 있음)을, 복수 개의 (개별적인) 상태 변수 값(si k)에 기반하여 유도하는 단계를 포함하며, 상기 방법은, 디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 결합된 상태 변수 값(sk), 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하는 단계를 포함하는, 디코딩 방법을 생성한다.An embodiment according to the present invention is a method for decoding a plurality of symbols having symbol values (e.g. binary values), the method comprising the step of deriving interval size information (p k , R*p k ) for arithmetic decoding of one or more symbol values to be decoded based on a plurality of state variable values (s i k ) representing statistics (e.g. an estimate of the probability that one or more symbols to be decoded will contain a particular symbol value) of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) with different adaptation time constants, the method comprising the step of deriving a combined probability variable value (s k ) (which may be a weighted sum of the state variable values, for example) based on the plurality of (individual) state variable values (s i k ), the method comprising the step of deriving an interval size describing an interval size for arithmetic decoding of one or more symbols to be decoded. To obtain the size information (e.g., p k or R*p k ), the combined state variable values (sk), or scaled versions and/or rounded versions of the combined state variable values ( s k 2 * a k 2 ) is generated, which includes a step of mapping using a lookup table (LUT1).
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 방법으로서, 상기 방법은, 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보(pk, R*pk)를, 상이한 적응 시상수가 있는복수 개의 이전에 디코딩된 심볼 값(예를 들어, 이진 값 0 및 1의 시퀀스)의 통계(예를 들어, 디코딩될 하나 이상의 심볼이 특정 심볼 값을 포함할 확률의 추정치)를 나타내는 복수 개의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하는 단계를 포함하고, 상기 방법은, 결합된 확률 변수 값(sk)(이것은, 예를 들어 상태 변수 값들의 가중 합일 수 있음)을, 복수 개의 (개별적인) 상태 변수 값(si k)에 기반하여 유도하는 단계를 포함하며, 상기 방법은, 디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보(예를 들어, pk 또는 R*pk)를 획득하기 위하여, 결합된 상태 변수 값(sk), 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(sk 2* ak 2 )을, 룩업-테이블(LUT1)을 사용하여 매핑하는 단계를 포함하는, 디코딩 방법을 생성한다.An embodiment according to the present invention is a method for decoding a plurality of symbols having symbol values (e.g. binary values), the method comprising the step of deriving interval size information (p k , R*p k ) for arithmetic decoding of one or more symbol values to be decoded based on a plurality of state variable values (s i k ) representing statistics (e.g. an estimate of the probability that one or more symbols to be decoded will contain a particular symbol value) of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) with different adaptation time constants, the method comprising the step of deriving a combined probability variable value (s k ) (which may be a weighted sum of the state variable values, for example) based on the plurality of (individual) state variable values (s i k ), the method comprising the step of deriving an interval size describing an interval size for arithmetic decoding of one or more symbols to be decoded. To obtain the size information (e.g., p k or R*p k ), the combined state variable values (sk), or scaled versions and/or rounded versions of the combined state variable values ( s k 2 * a k 2 ) is generated, which includes a step of mapping using a lookup table (LUT1).
본 발명에 따른 실시형태들은, 전술된 실시형태 중 하나에 따르는 인코더 및 디코더에 의해 수행되는 방법들을 생성한다.Embodiments according to the present invention generate methods performed by an encoder and a decoder according to one of the embodiments described above.
본 발명에 따른 실시형태들은, 컴퓨터 프로그램이 컴퓨터에서 실행될 때 전술된 실시형태들 중 하나에 따르는 방법을 수행하기 위한 컴퓨터 프로그램을 생성한다.Embodiments according to the present invention create a computer program for performing a method according to one of the embodiments described above when the computer program is executed on a computer.
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 방법으로서, 상기 방법은, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 인코딩된 심볼 값(예를 들어, 0 및 1의 이진 값의 시퀀스)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)에 기반하여 유도하는 단계를 포함하고, 상기 방법은, 인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하는 단계를 포함하고, 상기 방법은, 상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i)(예를 들어, i=Qp(pLPS)와 같음)가 제 1 범위 내에 있다면(예를 들어, μ보다 작으면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면(예를 들어, μ 이상이면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하는 단계를 포함하며, 상기 방법은, 하나 이상의 심볼의 산술적 인코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 인코딩 방법을 생성한다.An embodiment of the present invention is a method for encoding a plurality of symbols having symbol values (e.g., binary values), the method comprising the step of deriving an interval size value (R LPS ) for an arithmetic encoding of one or more symbol values to be encoded based on one or more state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g., a sequence of binary values of 0 and 1), the method comprising the step of determining the interval size value (R LPS ) using a base lookup table (Base TabLPS), the method comprising: if a probability index (i) (e.g., equal to i=Qp(p LPS )) obtained based on the one or more state variable values is within a first range (e.g., less than μ), then the determined interval size value is equal to an element of the base lookup table or is a rounded version of an element of the base lookup table, and if the probability index is within a second range (e.g., greater than or equal to μ), then the determined The method comprises a step of determining an interval size value (R LPS ) such that the interval size value is obtained by using scaling and rounding of elements of the base lookup table, and produces an encoding method comprising a step of performing an arithmetic encoding of one or more symbols using the interval size value (R LPS ).
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 인코딩하기 위한 방법으로서, 상기 방법은, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 인코딩된 심볼 값(예를 들어 이진 값 0 및 1의 시퀀스)(예를 들어 상이한 적응 시상수를 가짐)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하는 단계를 포함하고; 상기 방법은, 인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 (현재의) 확률 값에 기반하여, 그리고 (현재의) 코딩 인터벌 크기(R)에 기반하여, 확률 테이블(ProbTabLPS), (그 차원은 확률 인덱스들의 관점에서 가능한 확률 인덱스들 i의 개수 보다 작음)을 사용하여 결정하는 단계를 포함하며, 여기에서 확률 테이블은 복수 개의 확률 값들의 세트에 대한(예를 들어, 0 및 μ-1 사이의 확률 인덱스들에 대한) 그리고 (하나의) 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기(인터벌 크기 값)를 기술하고, 상기 방법은, 현재의 확률 값이 복수 개의 확률 값들의 세트 내에 있지 않으면(예를 들어, 현재의 확률 값과 연관된 확률 인덱스가 μ 이상이면) 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 (레퍼런스) 코딩 인터벌 크기와 다르면, 확률 테이블(Prob_TabLPS)의 원소(예를 들어, 현재의 확률 값에 의존하여 선택된 원소)를 스케일링하여 인터벌 크기 값[RLPS)을 획득하는 단계를 포함하고; 상기 방법은, 하나 이상의 심볼의 산술적 인코딩을 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 인코딩 방법을 생성한다.An embodiment according to the present invention is a method for encoding a plurality of symbols having symbol values (e.g. binary values), the method comprising the step of deriving an interval size value (R LPS ) for an arithmetic encoding of one or more symbol values to be encoded, based on one or more state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values (e.g. sequences of binary values 0 and 1) (e.g. having different adaptation time constants), which are associated with a given context mode, indicated for example by an index k; The method comprises the step of determining an interval size value (R LPS ) based on a (current) probability value derived from one or more state variable values and based on a (current) coding interval size (R), using a probability table (ProbTabLPS) (whose dimension is smaller than the number of possible probability indices i in terms of probability indices), wherein the probability table describes interval sizes (interval size values) for a set of a plurality of probability values (e.g. for probability indices between 0 and μ-1) and for (a) given (reference) coding interval size, and the method comprises the step of scaling an element of the probability table (Prob_TabLPS) (e.g. an element selected depending on the current probability value) to obtain the interval size value [R LPS ) if the current probability value is not in the set of the plurality of probability values (e.g. if the probability index associated with the current probability value is greater than or equal to μ) and/or if the current coding interval size (R) is different from the given ( reference ) coding interval size; The method produces an encoding method comprising the step of performing an arithmetic encoding of one or more symbols using interval size values (R LPS ).
본 발명에 따른 실시형태는, 심볼 값(예를 들어, 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 방법으로서, 상기 방법은, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 디코딩된 심볼 값(예를 들어, 0 및 1의 이진 값의 시퀀스)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)에 기반하여 유도하는 단계를 포함하고, 상기 방법은, 인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하는 단계를 포함하며, 상기 방법은, 상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i)(예를 들어, i=Qp(pLPS)와 같음)가 제 1 범위 내에 있다면(예를 들어, μ보다 작으면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면(예를 들어, μ 이상이면), 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하는 단계를 포함하고, 상기 방법은, 하나 이상의 심볼의 산술적 디코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 디코딩 방법을 생성한다.An embodiment of the present invention is a method for decoding a plurality of symbols having symbol values (e.g., binary values), the method comprising the step of deriving an interval size value (R LPS ) for arithmetic decoding of one or more symbol values to be decoded based on one or more state variable values (s i k ) representing statistics of a plurality of previously decoded symbol values (e.g., a sequence of binary values of 0 and 1), the method comprising the step of determining the interval size value (R LPS ) using a base lookup table (Base TabLPS), the method comprising: if a probability index (i) (e.g., equal to i=Qp(p LPS )) obtained based on the one or more state variable values is within a first range (e.g., less than μ), then the determined interval size value is equal to an element of the base lookup table or is a rounded version of an element of the base lookup table, and if the probability index is within a second range (e.g., less than μ), The method comprises a step of determining an interval size value (R LPS ) such that the determined interval size value is obtained by using scaling and rounding of elements of the base lookup table, wherein the method produces a decoding method including a step of performing arithmetic decoding of one or more symbols using the interval size value (R LPS ).
본 발명에 따른 실시형태는, 심볼 값(예를 들어 이진 값)을 가지는 복수 개의 심볼을 디코딩하기 위한 방법으로서, 상기 방법은, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 디코딩된 심볼 값(예를 들어 이진 값 0 및 1의 시퀀스)(예를 들어 상이한 적응 시상수를 가짐)의 통계를 나타내는 하나 이상의 상태 변수 값(si k)(이들은, 예를 들어 인덱스 k에 의해 표시되는 주어진 콘텍스트 모드와 연관됨)에 기반하여 유도하는 단계를 포함하고; 상기 방법은, 인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 (현재의) 확률 값에 기반하여, 그리고 (현재의) 코딩 인터벌 크기(R)에 기반하여, 확률 테이블(ProbTabLPS), (그 차원은 확률 인덱스들의 관점에서 가능한 확률 인덱스들 i의 개수 보다 작음)을 사용하여 결정하는 단계를 포함하며, 여기에서 확률 테이블은 복수 개의 확률 값들의 세트에 대한(예를 들어, 0 및 μ-1 사이의 확률 인덱스들에 대한) 그리고 (하나의) 주어진 (레퍼런스) 코딩 인터벌 크기에 대한 인터벌 크기(인터벌 크기 값)를 기술하고, 상기 방법은, 현재의 확률 값이 복수 개의 확률 값들의 세트 내에 있지 않으면(예를 들어, 현재의 확률 값과 연관된 확률 인덱스가 μ 이상이면) 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 (레퍼런스) 코딩 인터벌 크기와 다르면, 확률 테이블(Prob_TabLPS)의 원소(예를 들어, 현재의 확률 값에 의존하여 선택된 원소)를 스케일링하여 인터벌 크기 값[RLPS)을 획득하는 단계를 포함하고; 상기 방법은 하나 이상의 심볼의 산술적 인코딩을 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 디코딩 방법을 생성한다.An embodiment according to the present invention is a method for decoding a plurality of symbols having symbol values (e.g. binary values), the method comprising the step of deriving an interval size value (R LPS ) for arithmetic decoding of one or more symbol values to be decoded, based on one or more state variable values (s i k ) representing statistics of a plurality of previously decoded symbol values (e.g. sequences of binary values 0 and 1) (e.g. having different adaptation time constants), which are associated with a given context mode, indicated for example by an index k; The method comprises the step of determining an interval size value (R LPS ) based on a (current) probability value derived from one or more state variable values and based on a (current) coding interval size (R), using a probability table (ProbTabLPS) (whose dimension is smaller than the number of possible probability indices i in terms of probability indices), wherein the probability table describes interval sizes (interval size values) for a set of a plurality of probability values (e.g. for probability indices between 0 and μ-1) and for (a) given (reference) coding interval size, and the method comprises the step of scaling an element of the probability table (Prob_TabLPS) (e.g. an element selected depending on the current probability value) to obtain the interval size value [R LPS ) if the current probability value is not in the set of the plurality of probability values (e.g. if the probability index associated with the current probability value is greater than or equal to μ) and/or if the current coding interval size (R) is different from the given ( reference ) coding interval size; The method produces a decoding method comprising the step of performing an arithmetic encoding of one or more symbols using interval size values (R LPS ).
본 발명에 따른 실시형태들은, 컴퓨터 프로그램이 컴퓨터에서 실행될 때 전술된 실시형태들 중 하나에 따르는 방법을 수행하기 위한 컴퓨터 프로그램을 생성한다.Embodiments according to the present invention create a computer program for performing a method according to one of the embodiments described above when the computer program is executed on a computer.
앞에서 언급된 방법들은 앞에서 설명된 장치들과 동일한 고려 사항에 기반하고 있다. 그러나, 이러한 방법들이 본 명세서에서 장치에 관하여 역시 설명된 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다. 이러한 방법들은 상기 피쳐, 기능성 및 세부 내용에 의하여, 개별적으로 그리고 이들의 조합에 의한 양자 모두에 의하여 선택적으로 보완될 수 있다. 동일한 내용이 컴퓨터 프로그램에 대해서도 역시 성립한다.The methods mentioned above are based on the same considerations as the devices described above. However, it should be noted that these methods may optionally be supplemented by any of the features, functionality and details also described with respect to the devices herein. These methods may optionally be supplemented by the features, functionality and details, both individually and in combination. The same holds true for the computer program.
본 발명에 따른 실시형태들은 첨부된 도면들을 참조하여 지금부터 설명될 것이다:
도 1은 본 발명의 일 실시형태에 따르는, 데이터 스트림내의 픽쳐를 예측성 코딩(predictively coding)하기 위한 장치의 개략적인 블록도를 도시한다;
도 2는 본 발명의 일 실시예에 따르는 디코더의 개략적인 블록도를 도시한다;
도 3은 복원된 신호 및 예측 잔차 및 예측 신호의 결합 사이의 관련성의 개략적인 표현을 보여준다;
도 4는 본 발명의 일 실시형태에 따르는, 산술 인코더의 개략적인 블록도를 도시한다;
도 5는 본 발명의 일 실시형태에 따르는, 산술 디코더의 개략적인 블록도를 도시한다;
도 6은 본 발명의 실시예에 따르는, 인터벌 크기 정보를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 7은 본 발명의 일 실시형태에 따르는, 인터벌 크기 정보를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 8은 본 발명의 일 실시형태에 따르는, 인터벌 크기 정보를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 9는 본 발명의 실시예에 따르는, 인터벌 크기 정보를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 10a 및 도 10b는 본 발명의 실시형태들에 따르는, 인터벌 크기 정보를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 11은 본 발명의 일 실시형태에 따르는, 인터벌 크기 정보를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 12는 본 발명의 일 실시형태에 따르는, 하나 이상의 업데이트된 상태 변수를 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 13은 본 발명의 일 실시형태에 따르는, 인터벌 크기 값을 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 14는 본 발명의 일 실시형태에 따르는, 인터벌 크기 값을 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 14는 본 발명의 일 실시형태에 따르는, 인터벌 크기 값을 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 15는 본 발명의 일 실시형태에 따르는, 인터벌 크기 값을 결정하기 위한 개념의 개략적인 표현을 보여준다;
도 16은 본 발명의 일 실시형태에 따르는 비디오 디코더의 개략적인 표현을 도시한다; 그리고
도 17은 본 발명의 일 실시형태에 따르는 비디오 디코더의 개략적인 표현을 도시한다.Embodiments according to the present invention will now be described with reference to the attached drawings:
FIG. 1 illustrates a schematic block diagram of an apparatus for predictively coding pictures in a data stream according to one embodiment of the present invention;
FIG. 2 illustrates a schematic block diagram of a decoder according to one embodiment of the present invention;
Figure 3 shows a schematic representation of the relationship between the reconstructed signal and the combination of the prediction residual and the prediction signal;
FIG. 4 illustrates a schematic block diagram of an arithmetic encoder according to one embodiment of the present invention;
FIG. 5 illustrates a schematic block diagram of an arithmetic decoder according to one embodiment of the present invention;
FIG. 6 shows a schematic representation of a concept for determining interval size information according to an embodiment of the present invention;
FIG. 7 shows a schematic representation of a concept for determining interval size information according to one embodiment of the present invention;
FIG. 8 shows a schematic representation of a concept for determining interval size information according to one embodiment of the present invention;
FIG. 9 shows a schematic representation of a concept for determining interval size information according to an embodiment of the present invention;
FIGS. 10A and 10B show schematic representations of concepts for determining interval size information according to embodiments of the present invention;
FIG. 11 shows a schematic representation of a concept for determining interval size information according to one embodiment of the present invention;
FIG. 12 shows a schematic representation of a concept for determining one or more updated state variables, according to one embodiment of the present invention;
FIG. 13 shows a schematic representation of a concept for determining interval size values according to one embodiment of the present invention;
FIG. 14 shows a schematic representation of a concept for determining an interval size value according to one embodiment of the present invention;
FIG. 14 shows a schematic representation of a concept for determining an interval size value according to one embodiment of the present invention;
FIG. 15 shows a schematic representation of a concept for determining interval size values according to one embodiment of the present invention;
FIG. 16 illustrates a schematic representation of a video decoder according to one embodiment of the present invention; and
FIG. 17 illustrates a schematic representation of a video decoder according to one embodiment of the present invention.
1. 도 1에 따른 인코더1. Encoder according to Fig. 1
도면들의 후속하는 설명은, 본 발명의 실시형태들이 그 안에 구축될 수 있는 코딩 프레임워크에 대한 예를 형성하기 위하여 비디오의 픽쳐를 코딩하기 위한 블록-기반 예측 코덱의 인코더(도 1) 및 디코더(도 2)에 대한 설명을 제시하는 것과 함께 시작한다. 개별적인 인코더 및 디코더는 도 1 내지 도 3에 관련하여 설명된다. 지금부터, 본 발명의 개념의 실시형태의 설명은 이러한 개념이 어떻게 도 1 및 도 2의 인코더 및 디코더 각각 내에 구축될 수 있는지에 대한 설명과 함께 제시되지만, 후속하는 도 4 및 그 이후의 도면과 함께 설명된 실시형태들은 도 1 및 도 2의 인코더 및 디코더에 내재된 코딩 프레임워크에 따라서 동작하지 않는 인코더 및 디코더를 형성하기 위해서 사용될 수도 있다.The subsequent description of the drawings begins with a description of an encoder (FIG. 1) and a decoder (FIG. 2) of a block-based prediction codec for coding pictures of video to form an example of a coding framework within which embodiments of the present invention may be built. Individual encoders and decoders are described with respect to FIGS. 1 through 3. Now, a description of embodiments of the inventive concepts is presented together with an explanation of how such concepts may be built into the encoder and decoder of FIGS. 1 and 2, respectively, although the embodiments described with reference to the subsequent FIG. 4 and subsequent drawings may also be used to form encoders and decoders that do not operate according to the coding framework inherent in the encoder and decoder of FIGS. 1 and 2.
본 발명에 따른 실시형태들은 도 1 및 2에 대해서 설명된 바와 같은 비디오 인코더 및 비디오 디코더를 포함할 수 있다. 또한, 본 명세서에 개시되는 개념들 중 임의의 것은, 예를 들어 도 1 및 2에 대해서 설명되는 바와 같은 엔트로피 코더(34) 또는 엔트로피 디코더(50) 내에서 사용될 수도 있다.Embodiments according to the present invention may include a video encoder and a video decoder as described with respect to FIGS. 1 and 2. Additionally, any of the concepts disclosed herein may be used within an entropy coder (34) or an entropy decoder (50), for example, as described with respect to FIGS. 1 and 2.
도 1은 예시적으로 변환-기반 잔차 코딩(transform-based residual coding)을 사용하여 픽쳐(12)를 데이터 스트림(14)으로 예측성 코딩(predictively coding)하기 위한 장치를 도시한다. 이러한 장치, 또는 인코더는 레퍼런스 부호 10을 사용하여 표시된다. 도 2는 대응하는 디코더(20), 즉, 역시 변환-기반 잔차 디코딩을 사용하여 데이터 스트림(14)으로부터 픽쳐(12')를 예측성 디코딩하도록 구성되는 장치(20)를 도시하는데, 어퍼스트로피는 디코더(20)에 의해 복원된 픽쳐(12')가 장치(10)에 의해 원래 인코딩된 픽쳐(12)로부터, 예측 잔차 신호의 양자화에 의해 도입된 코딩 손실의 관점에서 편차를 가진다는 것을 표시하기 위하여 사용되었다. 도 1 및 도 2는 변환에 기반한 예측 잔차 코딩을 예시적으로 사용하지만, 본 출원의 실시형태들은 이러한 종류의 예측 잔차 코딩으로 한정되지 않는다. 이것은 도 1 및 도 2에 관하여 설명되는, 지금부터 개략적으로 설명되는 바와 같은 다른 세부 내용에 대해서도 역시 사실이다.FIG. 1 illustrates an apparatus for predictively coding a picture (12) into a data stream (14) using, for example, transform-based residual coding. This apparatus, or encoder, is indicated using the
인코더(10)는 예측 잔차 신호를 공간-투-스펙트럼 변환에 노출시키고, 그렇게 획득된 예측 잔차 신호를 데이터 스트림(14)으로 인코딩하도록 구성된다. 이와 유사하게, 디코더(20)는 데이터 스트림(14)으로부터 예측 잔차 신호를 디코딩하고, 그렇게 획득된 예측 잔차 신호를 스펙트럼-투-공간 변환에 노출시키도록 구성된다.The encoder (10) is configured to expose the prediction residual signal to a spatial-to-spectral transformation and encode the prediction residual signal thus obtained into a data stream (14). Similarly, the decoder (20) is configured to decode the prediction residual signal from the data stream (14) and expose the prediction residual signal thus obtained to a spectral-to-spatial transformation.
내부적으로, 인코더(10)는, 원본 신호로부터의, 즉, 픽쳐(12)로부터의 예측 신호(26)의 편차를 측정하기 위하여 예측 잔차(24)를 생성하는 예측 잔차 신호 형성기(22)를 포함할 수 있다. 예측 잔차 신호 형성기(22)는, 예를 들어 예측 신호를 원본 신호로부터, 즉, 픽쳐(12)로부터 감사하는 감산기일 수 있다. 그러면, 인코더(10)는, 예측 잔차 신호(24)를 공간-투-스펙트럼 변환에 노출시켜서 스펙트럼-도메인 예측 잔차 신호(24')를 획득하는 변환기(28)를 더 포함하고, 이러한 신호가 이제 역시 인코더(10)에 의해 포함된 양자화기(32)에 의한 양자화에 노출된다. 그러므로 양자화된 예측 잔차 신호(24'')가 비트스트림(14)으로 코딩된다. 이러한 목적을 위해서, 인코더(10)는, 변환되고 양자화된 바와 같은 예측 잔차 신호를 데이터 스트림(14)으로 엔트로피 코딩 하는 엔트로피 코더(34)를 선택적으로 포함한다. 예측 신호(26)는 데이터 스트림(14)으로 인코딩되고, 그로부터 디코딩될 수 있는 예측 잔차 신호(24'')에 기반하여, 인코더(10)의 예측 스테이지(36)에 의해 생성된다. 이러한 목적을 위해서, 예측 스테이지(36)는 내부적으로, 도 1에 도시된 바와 같이, 양자화 손실을 제외하고는 신호(24')에 대응하는 스펙트럼-도메인 예측 잔차 신호(24''')를 얻기 위해서 예측 잔차 신호(24'')를 양자화해제하는 양자화해제기(38), 및 후자의 예측 잔차 신호(24''')를 반전 변환, 즉, 스펙트럼-투-공간 변환에 노출시켜서 양자화 손실을 제외하고는 원본 예측 잔차 신호(24)에 대응하는 예측 잔차 신호(24'''')를 획득하는, 그 뒤에 오는 역변환기(40)를 포함할 수 있다. 그러면, 예측 스테이지(36)의 결합기(42)는, 복원된 신호(46), 즉, 원본 신호(12)의 복원본을 획득하기 위하여, 예측 신호(26) 및 예측 잔차 신호(24'''')를 재결합한다. 복원된 신호(46)는 신호(12')에 대응할 수 있다. 그러면, 예측 스테이지(36)의 예측 모듈(44)은, 예를 들어 공간 예측, 즉, 인트라-픽쳐 예측, 및/또는 시간적 예측, 즉, 인터-픽쳐 예측을 사용함으로써 신호(46)에 기반하여 예측 신호(26)를 생성한다.Internally, the encoder (10) may include a prediction residual signal generator (22) which generates a prediction residual (24) in order to measure the deviation of the prediction signal (26) from the original signal, i.e. from the picture (12). The prediction residual signal generator (22) may be, for example, a subtractor which subtracts the prediction signal from the original signal, i.e. from the picture (12). The encoder (10) then further includes a transformer (28) which exposes the prediction residual signal (24) to a spatial-to-spectral transform to obtain a spectral-domain prediction residual signal (24'), which signal is then exposed to quantization by a quantizer (32) which is also included by the encoder (10). The quantized prediction residual signal (24'') is thus coded into the bitstream (14). For this purpose, the encoder (10) optionally includes an entropy coder (34) that entropy codes the prediction residual signal, as transformed and quantized, into the data stream (14). The prediction signal (26) is generated by the prediction stage (36) of the encoder (10) based on the prediction residual signal (24''), which is encoded into the data stream (14) and decoded therefrom. For this purpose, the prediction stage (36) may internally include a dequantizer (38) for dequantizing the prediction residual signal (24'') to obtain a spectral-domain prediction residual signal (24''') corresponding to the signal (24') except for the quantization loss, as illustrated in FIG. 1, and a subsequent inverse transformer (40) for exposing the latter prediction residual signal (24''') to an inverse transform, i.e., a spectral-to-spatial transform, to obtain a prediction residual signal (24'''') corresponding to the original prediction residual signal (24) except for the quantization loss. Then, a combiner (42) of the prediction stage (36) recombines the prediction signal (26) and the prediction residual signal (24'''') to obtain a reconstructed signal (46), i.e., a restored copy of the original signal (12). The reconstructed signal (46) may correspond to the signal (12'). Then, the prediction module (44) of the prediction stage (36) generates a prediction signal (26) based on the signal (46), for example, by using spatial prediction, i.e., intra-picture prediction, and/or temporal prediction, i.e., inter-picture prediction.
2. 도 2에 따른 디코더2. Decoder according to Fig. 2
이와 유사하게, 도 2에 도시된 바와 같은 디코더(20)는 내부적으로 예측 스테이지(36)에 대응하고 이에 대응하는 방식으로 상호연결된 컴포넌트들로 이루어질 수 있다. 특히, 디코더(20)의 엔트로피 디코더(50)는 데이터 스트림으로부터 양자화된 스펙트럼-도메인 예측 잔차 신호(24'')를 엔트로피 디코딩하고, 여기에서, 예측 스테이지(36)의 모듈에 대해서 전술된 바와 같은 방식으로 상호연결되고 협력하는 양자화해제기(dequantizer; 52), 역변환기(inverse transformer; 54), 결합기(combiner; 56) 및 예측 모듈(58)이 예측 잔차 신호(24'')에 기반하여 복원된 신호를 복원함으로써, 도 2에 도시된 바와 같이, 결합기(56)의 출력이 복원된 신호, 즉 픽쳐(12')가 되게 한다.Similarly, the decoder (20) as illustrated in FIG. 2 may be internally composed of components that correspond to the prediction stage (36) and are interconnected in a corresponding manner. In particular, the entropy decoder (50) of the decoder (20) entropy decodes a quantized spectral-domain prediction residual signal (24'') from a data stream, wherein a dequantizer (52), an inverse transformer (54), a combiner (56) and a prediction module (58) interconnected and cooperative in the same manner as described above for the modules of the prediction stage (36) restore a restored signal based on the prediction residual signal (24''), so that the output of the combiner (56) becomes a restored signal, i.e., a picture (12'), as illustrated in FIG. 2.
비록 앞선 부분에서 특정되어 설명되지는 않았지만, 인코더(10)가, 예를 들어 예측 모드, 모션 파라미터 및 기타 등등을 포함하는 일부 코딩 파라미터를, 예를 들어 일부 레이트 및 편차와 관련된 기준, 즉, 코딩 비용을 최적화하는 방식과 같은 일부 최적화 스킴에 따라서 설정할 수 있다는 것이 용이하게 분명해질 것이다. 예를 들어, 인코더(10) 및 디코더(20) 및 대응하는 모듈들(44, 58) 각각은 인트라-코딩 모드 및 인터-코딩 모드와 같은 상이한 예측 모드들을 지원할 수 있다. 인코더 및 디코더가 이러한 예측 모드 타입들 사이에서 스위칭하는 그래뉼래리티(granularity)는, 픽쳐(12 및 12') 각각을 코딩 세그멘트 또는 코딩 블록으로 하위분할하는 것에 대응할 수 있다. 이러한 코딩 세그멘트의 유닛들에서, 예를 들어 픽쳐는 인트라-코딩되고 있는 블록들과 인터-코딩되고 있는 블록들로 하위분할될 수 있다. 인트라-코딩된 블록은 더 상세하게 아래에서 후술되는 바와 같이 개별적인 블록의 공간적으로 이미 코딩된/디코딩된 이웃에 기반하여 예측된다. 방향성 또는 각도(angular) 인트라-코딩 모드를 포함하는 수 개의 인트라-코딩 모드들이 존재하고 개별적인 인트라-코딩된 세그멘트에 대해서 선택될 수 있는데, 이러한 코딩 모드에 따라서 개별적인 방향성 인트라-코딩 모드에 대해 특유한 특정 방향에 따른 이웃의 샘플 값을 외삽함으로써 채워져서 개별적인 인트라-코딩된 세그멘트가 되게 된다. 인트라-코딩 모드는, 예를 들어 DC 코딩 모드 및/또는 평면(planar) 인트라-코딩 모드와 같은 하나 이상의 추가적인 모드를 더 포함할 수 있는데, DC 코딩 모드에 따라서 개별적인 인트라-코딩된 블록의 예측은 개별적인 인트라-코딩된 세그멘트 내의 모든 샘플에 DC 값을 지정하고, 평면 인트라-코딩 모드에 따라서 개별적인 블록의 예측은 이웃하는 샘플에 기반하여 2-차원 선형 함수에 의해 규정되는 틸트 및 오프셋을 구동하면서, 개별적인 인트라-코딩된 블록의 샘플 포지션에 걸친 2-차원 선형 함수에 의해 기술되는 샘플 값의 공간 분포가 되도록 근사화되거나 결정된다. 이것들에 비교하여, 인터-코딩된 블록은, 예를 들어 시간적으로 예측될 수 있다. 인터-코딩된 블록의 경우, 모션 벡터가 데이터 스트림 내에 시그널링될 수 있고, 모션 벡터는 개별적인 인터-코딩된 블록에 대한 예측 신호를 획득하기 위하여, 이전에 코딩된/디코딩된 픽쳐가 샘플링되는, 픽쳐(12)가 속하는 비디오의 이전에 코딩된 픽쳐의 부분의 공간적 변위를 표시한다. 이것은, 양자화된 스펙트럼-도메인 예측 잔차 신호(24'')를 나타내는 엔트로피-코딩된 변환 계수 레벨과 같이, 데이터 스트림(14)에 포함되는 잔차 신호 코딩에 추가하여, 데이터 스트림(14)이, 다양한 블록에 코딩 모드를 지정하기 위한 코딩 모드 파라미터, 블록들 중 일부에 대한 예측 파라미터, 예컨대 인터-코딩된 세그멘트에 대한 모션 파라미터, 및 픽쳐(12 및 12') 각각을 세그멘트로 하위분할하는 것을 제어하고 시그널링하기 위한 파라미터와 같은 선택적인 추가적인 파라미터를 그 안에 인코딩했을 수 있다. 디코더(20)는 이러한 파라미터를 사용하여 인코더가 수행한 것과 동일한 방식으로 픽쳐를 하위분할하여, 동일한 예측 모드를 세그멘트들에 지정하고, 동일한 예측을 수행하여 동일한 예측 신호를 얻는다.Although not specifically described in the preceding section, it will be readily apparent that the encoder (10) may set some coding parameters, including for example prediction modes, motion parameters and the like, according to some optimization scheme, for example in terms of some rate and variance-related criteria, i.e. in a way that optimizes the coding cost. For example, the encoder (10) and the decoder (20) and the corresponding modules (44, 58) may each support different prediction modes, such as intra-coding mode and inter-coding mode. The granularity with which the encoder and the decoder switch between these types of prediction modes may correspond to subdividing each of the pictures (12 and 12') into coding segments or coding blocks. In the units of these coding segments, for example, the picture may be subdivided into blocks that are intra-coded and blocks that are inter-coded. Intra-coded blocks are predicted based on spatially already coded/decoded neighbors of individual blocks, as described in more detail below. There are several intra-coding modes, including directional or angular intra-coding modes, that can be selected for individual intra-coded segments, and according to these coding modes, sample values of neighbors along a specific direction specific to each directional intra-coding mode are extrapolated to result in individual intra-coded segments. The intra-coding mode may further comprise one or more additional modes, for example a DC coding mode and/or a planar intra-coding mode, according to which the prediction of an individual intra-coded block assigns a DC value to all samples within the individual intra-coded segment, and according to the planar intra-coding mode the prediction of an individual block is approximated or determined such that the spatial distribution of sample values is described by a two-dimensional linear function over sample positions of the individual intra-coded block, while driving a tilt and offset defined by the two-dimensional linear function based on neighboring samples. In comparison to these, an inter-coded block can be predicted, for example, temporally. For inter-coded blocks, motion vectors may be signaled in the data stream, the motion vectors indicating the spatial displacement of a portion of a previously coded picture of the video to which the picture (12) belongs, from which a previously coded/decoded picture is sampled, in order to obtain a prediction signal for the individual inter-coded blocks. In addition to the residual signal coding included in the data stream (14), such as entropy-coded transform coefficient levels representing a quantized spectral-domain prediction residual signal (24''), the data stream (14) may have encoded therein optional additional parameters, such as coding mode parameters for specifying a coding mode for the various blocks, prediction parameters for some of the blocks, e.g. motion parameters for the inter-coded segments, and parameters for controlling and signaling the subdivision of each of the pictures (12 and 12') into segments. The decoder (20) uses these parameters to subdivide the picture in the same way as the encoder did, assigning the same prediction mode to the segments and performing the same prediction to obtain the same prediction signal.
3. 도 3에 따른 기능성3. Functionality according to Fig. 3
도 3은 일 면에 있어서의 복원된 신호, 즉, 복원된 픽쳐(12'), 및 다른 면에 있어서의, 데이터 스트림(14) 내에서 시그널링된 바와 같은 예측 잔차 신호(24'''')와 예측 신호(26)의 결합 사이의 관련성을 예시한다. 앞에서 이미 표시된 바와 같이, 결합은 합산일 수 있다. 예측 신호(26)는 도 3에서, 픽쳐 영역을 빗금을 사용하여 예시적으로 표시된 인트라-코딩된 블록, 및 예시적으로 빗금이 없이 표시된 인터-코딩된 블록으로 하위분할하는 것으로서 예시된다. 하위분할은 임의의 하위분할, 예컨대 픽쳐 영역을 정방형 블록 또는 비-정방형 블록의 행 및 열로 분할하는 정규 하위분할(regular subdivision), 또는 트리 루트 블록(root block)으로부터 변하는 크기의 복수 개의 리프 블록(leaf block)으로 분할하는 픽쳐(20)로부터의 멀티-트리 하위분할, 예컨대 쿼드트리 하위분할(quadtree subdivision) 또는 기타 등등일 수 있는데, 여기에서 이들의 혼합이 도 3에 예시되며, 이러한 경우 픽쳐 영역은 트리 루트 블록의 행 및 열로 우선적으로 하위분할되고, 이것이 이제 재귀적 멀티-트리 하위분할에 따라서 하나 이상의 리프 블록으로 추가적으로 하위분할된다.Figure 3 illustrates the relationship between the restored signal on one side, i.e. the restored picture (12'), and the combination of the prediction residual signal (24'''') and the prediction signal (26) as signaled in the data stream (14) on the other side. As already indicated above, the combination may be a summation. The prediction signal (26) is illustrated in Figure 3 as subdividing the picture region into intra-coded blocks, which are exemplarily indicated using hatching, and inter-coded blocks, which are exemplarily indicated without hatching. The subdivision may be any subdivision, for example a regular subdivision that divides the picture area into rows and columns of square or non-square blocks, or a multi-tree subdivision from the picture (20) that divides the picture area into a plurality of leaf blocks of varying sizes from a tree root block, for example a quadtree subdivision, or the like, a mixture of these is exemplified in FIG. 3 , in which case the picture area is first subdivided into rows and columns of a tree root block, which is then further subdivided into one or more leaf blocks according to a recursive multi-tree subdivision.
다시 말하건대, 데이터 스트림(14)은 인트라-코딩된 블록(80)에 대한 인트라-코딩 모드를 그 안에 코딩하여 가지고 있을 수 있고, 이것이 수 개의 지원되는 인트라-코딩 모드 중 하나를 개별적인 인트라-코딩된 블록(80)에 지정한다. 인터-코딩된 블록(82)의 경우, 데이터 스트림(14)은 그 안에 코딩된 하나 이상의 모션 파라미터를 가질 수 있다. 일반적으로 말하자면, 인터-코딩된 블록(82)은 시간적으로 코딩되는 것으로 한정되지 않는다. 대안적으로, 인터-코딩된 블록(82)은 현재의 픽쳐(12) 자체를 넘어 이전에 코딩된 부분, 예컨대 픽쳐(12)가 속하는 비디오의 이전에 코딩된 픽쳐, 또는 인코더 및 디코더가 각각 스케일링될 수 있는 인코더 및 디코더인 경우에는 다른 장면 또는 계층적으로 더 낮은 층의 픽쳐로부터 예측된 임의의 블록일 수 있다.In other words, the data stream (14) may have an intra-coding mode coded therein for the intra-coded block (80), which specifies one of several supported intra-coding modes to an individual intra-coded block (80). For an inter-coded block (82), the data stream (14) may have one or more motion parameters coded therein. Generally speaking, the inter-coded block (82) is not limited to being temporally coded. Alternatively, the inter-coded block (82) may be any block predicted from a previously coded portion beyond the current picture (12) itself, such as a previously coded picture of the video to which the picture (12) belongs, or from another scene or a hierarchically lower layer picture if the encoder and decoder are capable of scaling, respectively.
도 3에서 예측 잔차 신호(24'''')는 픽쳐 영역을 블록(84)으로 하위분할하는 것으로 역시 예시된다. 이러한 블록은 코딩 블록(80 및 82)과 구별하기 위하여 변환 블록이라고 불릴 수 있다. 결과적으로, 도 3은, 인코더(10) 및 디코더(20)가 블록들로 분할하는 픽쳐(12) 및 픽쳐(12')의 두 개의 상이한 하위분할, 즉 하나의 하위분할은 코딩 블록(80 및 82) 각각으로 분할하고, 다른 하위분할은 변환 블록(84)으로 분할하는 하위분할을 사용할 수 있다는 것을 예시한다. 양자 모두의 하위분할은 동일할 수 있고, 즉, 각각의 코딩 블록(80 및 82)은 변환 블록(84)을 동시에 형성할 수 있지만, 도 3은, 예를 들어 변환 블록(84)으로의 하위분할이 코딩 블록(80, 82)으로의 하위분할의 확장을 형성함으로써, 블록(80 및 82) 중 두 개의 블록들 사이의 임의의 경계가 두 개의 블록들(84) 사이의 경계에 오버레이하도록 하는 경우, 또는 다르게 말하자면 각각의 블록(80, 82)이 변환 블록(84) 중 하나와 일치하거나 변환 블록들(84)의 클러스터와 일치하는 경우를 예시한다. 그러나, 하위분할은, 변환 블록(84)이 대안적으로 블록들(80, 82) 사이의 블록 경계와 교차할 수 있도록, 서로로부터 독립적으로 결정되거나 선택될 수도 있다. 변환 블록(84)으로의 하위분할에 관하여, 따라서 블록(80, 82)으로의 하위분할에 대하여 성립되는 것들과 같은 유사한 진술이 성립하는데, 즉, 블록(84)은 픽쳐 영역을 블록으로 정규 하위분할한 결과일 수 있고(행 및 열로 정렬될 수도 있고 그렇지 않을 수도 있음), 픽쳐 영역의 재귀적 멀티-트리 하위분할의 결과일 수도 있으며, 또는 이들의 조합이거나 임의의 다른 종류의 블록화(blockation)일 수도 있다. 덧붙여 말하자면, 블록들(80, 82 및 84)은 정방형, 사각형 또는 임의의 다른 형상인 것으로 한정되지 않는다.In Fig. 3, the prediction residual signal (24'''') is also illustrated by subdividing the picture area into blocks (84). These blocks may be referred to as transform blocks in order to distinguish them from the coding blocks (80 and 82). Consequently, Fig. 3 illustrates that the encoder (10) and the decoder (20) may use two different subdivisions of the picture (12) and the picture (12') into blocks, namely, one subdivision into each of the coding blocks (80 and 82), and the other subdivision into each of the transform blocks (84). The subdivisions of both may be identical, i.e. each of the coding blocks (80 and 82) may form a transform block (84) simultaneously, but FIG. 3 illustrates, for example, the case where the subdivision into the transform block (84) forms an extension of the subdivision into the coding blocks (80, 82), such that any boundary between any two of the blocks (80 and 82) overlays the boundary between the two blocks (84), or in other words, each of the blocks (80, 82) coincides with one of the transform blocks (84) or coincides with a cluster of transform blocks (84). However, the subdivisions may also be determined or selected independently of one another, such that the transform block (84) may alternatively intersect the block boundary between the blocks (80, 82). With respect to the subdivision into transform blocks (84), similar statements hold for the subdivision into blocks (80, 82), namely, that the blocks (84) may be the result of a regular subdivision of the picture region into blocks (which may or may not be arranged in rows and columns), may be the result of a recursive multi-tree subdivision of the picture region, or a combination of these or any other kind of blockation. Additionally, the blocks (80, 82 and 84) are not limited to being square, rectangular or any other shape.
도 3은 예측 신호(26) 및 예측 잔차 신호(24'''')를 결합하면 복원된 신호(12')가 직접적으로 얻어진다는 것을 추가적으로 예시한다. 그러나, 두 개 이상의 예측 신호들(26)이 예측 잔차 신호(24'''')와 결합되어 대안적인 실시형태에 따른 픽쳐(12')가 될 수 있다는 것에 주의해야 한다.Figure 3 further illustrates that a reconstructed signal (12') is directly obtained by combining a prediction signal (26) and a prediction residual signal (24''''). However, it should be noted that two or more prediction signals (26) may be combined with a prediction residual signal (24'''') to form a picture (12') according to an alternative embodiment.
도 3에서, 변환 블록(84)은 다음의 중요도를 가질 것이다. 변환기(28) 및 역변환기(54)는 그들의 변환을 이러한 변환 블록(84)의 유닛에서 수행한다. 예를 들어, 많은 코덱은 모든 변환 블록(84)에 대하여 일부 종류의 DST 또는 DCT를 사용한다. 일부 코덱은 변환을 스킵함으로써, 변환 블록(84) 중 일부에 대하여 예측 잔차 신호가 공간 도메인에서 직접적으로 코딩되게 할 수 있다. 그러나, 아래에 설명되는 실시형태에 따르면, 인코더(10) 및 디코더(20)는 그들이 수 개의 변환을 지원하는 방식으로 구성된다. 예를 들어, 인코더(10) 및 디코더(20)에 의해 지원되는 변환은 다음을 포함할 수 있다:In Fig. 3, the transform block (84) will have the following importance. The transformer (28) and the inverse transformer (54) perform their transforms in units of these transform blocks (84). For example, many codecs use some kind of DST or DCT for all the transform blocks (84). Some codecs may skip the transform, thereby allowing the prediction residual signal to be coded directly in the spatial domain for some of the transform blocks (84). However, according to the embodiments described below, the encoder (10) and the decoder (20) are configured in such a way that they support several transforms. For example, the transforms supported by the encoder (10) and the decoder (20) may include:
- DCT-II(또는 DCT-III), 여기에서 DCT는 이산 코사인 변환(Discrete Cosine Transform)을 나타냄- DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform.
- DST-IV, 여기에서 DST는 이산 사인 변환(Discrete Sine Transform)을 나타냄- DST-IV, where DST stands for Discrete Sine Transform
- DCT-IV- DCT-IV
- DST-VII- DST-VII
- 아이덴티티 변환(Identity Transformation; IT)- Identity Transformation (IT)
자연적으로, 변환기(28)는 이러한 변환들의 순방향 변환 버전들 모두를 지원할 것이지만, 디코더(20) 또는 역변환기(54)는 이것의 대응하는 역방향 또는 반전 버전을 지원할 것이다:Naturally, the transformer (28) will support all forward versions of these transformations, but the decoder (20) or inverse transformer (54) will support the corresponding backward or inverted versions of these:
- 역 DCT-II(또는 역 DCT-III)- Inverse DCT-II (or inverse DCT-III)
- 역 DST-IV- Reverse DST-IV
- 역 DCT-IV- Reverse DCT-IV
- 역 DST-VII- Station DST-VII
- 아이덴티티 변환(Identity Transformation; IT)- Identity Transformation (IT)
후속하는 설명은 변환이 인코더(10) 및 디코더(20)에 의해 지원될 수 있는 것에 대한 추가적인 세부 내용을 제공한다. 임의의 경우에, 지원되는 변환들의 세트는 스펙트럼-투-공간 변환 또는 공간-투-스펙트럼 변환과 같은 오직 하나의 변환만을 포함할 수도 있다.The following description provides additional details on what transforms may be supported by the encoder (10) and decoder (20). In any case, the set of supported transforms may include only one transform, such as a spectral-to-spatial transform or a spatial-to-spectral transform.
위에서 이미 개략적으로 설명된 바와 같이, 도 1 내지 도 3은 추가적인 후술되는 본 발명의 개념이 본 출원에 따른 인코더 및 디코더에 대한 특정한 예를 형성하기 위해서 구현될 수 있는 하나의 예로서 제시되었다. 도 1 및 도 2의 인코더 및 디코더에 관해서는, 이들 각각은 본 명세서에서 아래에 설명되는 인코더 및 디코더의 가능한 구현형태를 나타낼 수 있다. 그러나, 도 1 및 도 2는 오직 예들일 뿐이다. 그러나, 본 출원의 실시형태에 따르는 인코더는 아래에서 더 상세하게 설명되는 개념을 사용하여 픽쳐(12)의 블록-기반 인코딩을 수행할 수 있고, 도 1의 인코더와 다른데, 예컨대, 예를 들어 이것이 비디오 인코더가 아니지만 여전히 픽쳐 인코더라는 점에서, 이것이 인터-예측을 지원하지 않는다는 점에서, 또는 블록(80)으로의 하위-분할이 도 3에 예시된 것과 다른 방식으로 수행된다는 점에서 다를 수 있다. 이와 유사하게, 본 출원의 실시형태에 따른 디코더는 아래에서 더 상세하게 설명되는 코딩 개념을 사용하여 데이터 스트림(14)으로부터 픽쳐(12')의 블록-기반 디코딩을 수행할 수 있지만, 도 2의 디코더(20)와는 다를 수 있는데, 예를 들어 이것이 비디오 디코더가 아니지만 여전히 픽쳐 디코더라는 점에서, 이것이 인트라-예측을 지원하지 않는다는 점에서, 또는 이것이 픽쳐(12')를 도 3에 관하여 설명되는 것과 다른 방식으로 블록으로 하위-분할한다는 점에서, 및/또는 이것이 데이터 스트림(14)으로부터의 예측 잔차를 변환 도메인에서가 아니라, 예를 들어 공간 도메인에서 유도하지 않는다는 점에서 다를 수 있다.As already outlined above, FIGS. 1 to 3 are presented as examples of how the further hereinafter described concepts of the present invention may be implemented to form specific examples of encoders and decoders according to the present application. As for the encoder and decoder of FIGS. 1 and 2, each of them may represent a possible implementation form of the encoder and decoder described herein below. However, FIGS. 1 and 2 are only examples. However, an encoder according to an embodiment of the present application may perform block-based encoding of a picture (12) using the concepts described in more detail below, and may differ from the encoder of FIG. 1, for example in that it is not a video encoder but still a picture encoder, in that it does not support inter-prediction, or in that the sub-division into blocks (80) is performed in a different way than illustrated in FIG. 3. Similarly, a decoder according to an embodiment of the present application may perform block-based decoding of a picture (12') from a data stream (14) using the coding concepts described in more detail below, but may differ from the decoder (20) of FIG. 2, for example in that it is not a video decoder but still a picture decoder, in that it does not support intra-prediction, or in that it sub-divides the picture (12') into blocks in a different way than described with respect to FIG. 3, and/or in that it does not derive the prediction residual from the data stream (14) in the spatial domain, for example, rather than in the transform domain.
4. 도 4에 따른 산술 인코더4. Arithmetic encoder according to Fig. 4
도 4는 본 발명의 일 실시형태에 따르는, 산술 인코더의 개략적인 블록도를 도시한다.FIG. 4 illustrates a schematic block diagram of an arithmetic encoder according to one embodiment of the present invention.
도 4에 따른 산술 인코더(400)는, 예를 들어 비디오 인코더에서 사용될 수 있다. 그러나, 선택적으로, 산술 인코더(400)는 오디오 인코더, 이미지 인코더, 신경망의 계수를 인코딩하기 위한 인코더, 및 기타 등등에서도 역시 사용될 수 있다.The arithmetic encoder (400) according to FIG. 4 can be used, for example, in a video encoder. However, optionally, the arithmetic encoder (400) can also be used in an audio encoder, an image encoder, an encoder for encoding coefficients of a neural network, and the like.
산술 인코더(400)는 인코딩될 심볼(410)을 수신하도록 구성되는데, 여기에서 인코딩될 심볼(410)은 심볼 값으로 표현될 수 있다. 더욱이, 인코더(400)는 통상적으로, 콘텍스트 정보(412)를 역시 수신하는데, 이것은, 예를 들어 어떤 타입의 정보가 인코딩될 심볼(410)에 의해 표현되는지를 기술할 수 있다. 예를 들어, 콘텍스트 정보(412)는, 예를 들어 어떤 타입의 부가 정보를 인코딩될 심볼(410)이 기술하는지 또는 어떤 타입의 변환 계수를 심볼(410)이 인코딩하는지를 기술하는 콘텍스트 인덱스 k에 의해 표현될 수 있다.The arithmetic encoder (400) is configured to receive a symbol to be encoded (410), where the symbol to be encoded (410) can be represented by a symbol value. Furthermore, the encoder (400) typically also receives context information (412), which can describe, for example, what type of information is represented by the symbol to be encoded (410). For example, the context information (412) can be represented by a context index k, which describes, for example, what type of side information is described by the symbol to be encoded (410) or what type of transform coefficient is encoded by the symbol (410).
더욱이, 산술 인코더(400)는 비트 스트림(420)을 제공하도록 구성되는데, 이것은 인코딩될 심볼(410)을 나타내거나, 인코딩될 심볼(410)의 시퀀스를 나타낸다.Furthermore, the arithmetic encoder (400) is configured to provide a bit stream (420), which represents a symbol (410) to be encoded or a sequence of symbols (410) to be encoded.
산술 인코더(400)는 산술적 인코딩 코어 또는 산술 인코더 코어(430)를 포함하는데, 이것은 인코딩될 심볼(410)을 수신하고 이에 기반하여 비트 스트림(420)을 제공한다. 산술적 인코딩 코어 또는 산술 인코더 코어(430)는 통상적으로 인터벌 크기 정보를 수신하는데, 이것은, 예를 들어 심볼(예를 들어, 가능성이 가장 낮은 심볼)이 그 안에 매핑되는 하위인터벌(총 코딩 인터벌의 일부임)의 크기를 나타낸다. 더욱이, 산술적 인코딩 코어 또는 산술 인코더 코어는 코딩 인터벌 크기 정보(434)를 더 제공하는데, 이것은 현재의 코딩 인터벌 크기(예를 들어, 코딩 인터벌의 전체 크기)를 기술한다. 코딩 인터벌 크기(434)가 인코딩되는 심볼(410)에 의존하여(또는, 더 정확히 말하자면, 인코딩되는 심볼(410)의 시퀀스에 의존하여) 시간이 변함에 따라서 변동할 수 있다는 것에 주의해야 한다.The arithmetic encoder (400) comprises an arithmetic encoding core or arithmetic encoder core (430), which receives a symbol (410) to be encoded and provides a bit stream (420) based thereon. The arithmetic encoding core or arithmetic encoder core (430) typically receives interval size information, which indicates, for example, the size of a subinterval (a portion of a total coding interval) into which a symbol (e.g., the least likely symbol) is mapped. Furthermore, the arithmetic encoding core or arithmetic encoder core further provides coding interval size information (434), which describes the current coding interval size (e.g., the total size of the coding interval). It should be noted that the coding interval size (434) may vary over time depending on the symbol (410) being encoded (or, more precisely, depending on the sequence of symbols (410) being encoded).
코딩 인터벌 크기는, 예를 들어 산술적 인코딩의 과정에서 수행되는 리-스케일링(re-scaling) 연산에 기인하여 변할 수 있다. 예를 들어, 산술적 인코딩 코어는, 예를 들어 고효율 비디오 코딩(High Efficiency Video Coding; HEVC) 표준(H.265)에 기술된 기능성을 수행할 수 있다.The coding interval size may vary, for example, due to a re-scaling operation performed during the arithmetic encoding process. For example, the arithmetic encoding core may perform functionality described in the High Efficiency Video Coding (HEVC) standard (H.265), for example.
산술 인코더(400)는 코딩 인터벌 크기 결정부(determination) 또는 코딩 인터벌 크기 결정기(determinator)(440)를 더 포함한다. 코딩 인터벌 크기 결정부(440)는 인코딩될 심볼(410) 또는, 적어도 하나 이상의 이전에 인코딩된 심볼을 수신하고, 바람직하게는(하지만 필수적인 것은 아님) 콘텍스트 정보(412)를 더 수신한다. 더 나아가, 인터벌 크기 결정부(440)는 코딩 인터벌 크기 정보(434)를 수신한다. 인터벌 크기 결정부(440)는, 코딩 인터벌 크기 정보, 인코딩될 심볼(410)(또는 적어도 하나 이상의 이전에 인코딩된 심볼) 및 선택적으로 콘텍스트 정보(412)에 기반하여, 산술적 인코딩 코어(430)에 의해 사용되는 인터벌 크기 정보(432)를 제공한다.The arithmetic encoder (400) further comprises a coding interval size determination unit or coding interval size determiner (440). The coding interval size determination unit (440) receives a symbol to be encoded (410) or at least one previously encoded symbol, and preferably (but not necessarily) further receives context information (412). Furthermore, the interval size determination unit (440) receives coding interval size information (434). The interval size determination unit (440) provides interval size information (432) to be used by the arithmetic encoding core (430) based on the coding interval size information, the symbol to be encoded (410) (or at least one previously encoded symbol), and optionally the context information (412).
도 4에 따른 개념의 기능성과 관련하여, 인터벌 크기 결정부(440)가 인터벌 크기 정보(432)를 업데이트하는 역할을 한다(연속적으로, 예를 들어 각각의 새로운 인코딩될 심볼에 대하여)는 것에 주의해야 한다. 이러한 업데이트 시에, 이전에 인코딩된 심볼의 통계가 고려된다. 더 나아가, 산술적 인코딩(430)에 의해 제공되는 코딩 인터벌 크기 정보(434)도 역시 고려되는데, 그 이유는 인터벌 크기 정보(432)가 바람직하게는 코딩 인터벌 크기 정보(434)에 대한 적절한 관련성을 가지고 제공되기 때문이다. 이러한 콘텍스트에서, 코딩 인터벌 크기 정보(434)는, 예를 들어 (총) 코딩 인터벌의 현재의 크기(이것은 가끔씩 생기는 코딩 인터벌의 재-정규화에 의해 초래될 수 있음)를 나타낼 수 있는 반면에, 인터벌 크기 정보(432)는, 예를 들어 특정 심볼(예를 들어, 가능성이 가장 낮은 심볼)에 연관된, 전체(총) 코딩 인터벌 내의 부분의 크기를 기술할 수 있다. 그러므로, 인터벌 크기 정보는 통상적으로 코딩 인터벌 크기 정보(434)보다 작은데, 그 이유는 코딩 인터벌 크기 정보(434)는 총 코딩 인터벌의 크기를 나타내는 반면에 인터벌 크기 정보(434)는 특정 심볼과 연관된 코딩 인터벌의 부분의 크기를 나타내기 때문이다. 결과적으로, 인터벌 크기 정보(432)는 통상적으로 코딩 인터벌 크기 정보(434)에 따라 스케일링되는데, 여기에서 스케일링은 코딩이 매우 비효율적이 될 상황을 회피하기 위하여 다소 비선형적인 거동을 선택적으로 포함할 수 있다.In relation to the functionality of the concept according to Fig. 4, it should be noted that the interval size determination unit (440) is responsible for updating the interval size information (432) (continuously, for example for each new symbol to be encoded). During this update, statistics of previously encoded symbols are taken into account. Furthermore, the coding interval size information (434) provided by the arithmetic encoding (430) is also taken into account, since the interval size information (432) is preferably provided with an appropriate relevance to the coding interval size information (434). In this context, the coding interval size information (434) can for example represent the current size of the (total) coding interval (which can be caused by occasional re-normalizations of the coding intervals), whereas the interval size information (432) can for example describe the size of a portion within the (total) coding interval that is associated with a particular symbol (e.g. the least probable symbol). Therefore, the interval size information is typically smaller than the coding interval size information (434), because the coding interval size information (434) represents the size of the total coding interval, whereas the interval size information (434) represents the size of a portion of the coding interval associated with a particular symbol. As a result, the interval size information (432) is typically scaled according to the coding interval size information (434), where the scaling may optionally include somewhat non-linear behavior to avoid situations where the coding becomes very inefficient.
추가적으로 결론짓자면, 코딩 인터벌의 총 크기(코딩 인터벌 크기 정보(434)에 의해 표현됨) 및 이전에 인코딩된 심볼의 통계(및 콘텍스트)를 고려하면서 적절한 인터벌 크기 정보(432)를 결정함으로써, 산술적 인코딩이 효율적인 방식으로 수행될 수 있고, 여기에서 이전에 인코딩된 심볼의 통계를 고려하면 코딩 효율을 개선하는 데에 도움이 된다.In addition, to conclude, by determining an appropriate interval size information (432) while considering the total size of the coding interval (represented by the coding interval size information (434)) and the statistics (and context) of previously encoded symbols, the arithmetic encoding can be performed in an efficient manner, and here, considering the statistics of previously encoded symbols helps to improve the coding efficiency.
그러나, 도 4에 따른 산술 인코더(400)는 본 명세서에 개시되는 바와 같은 신호 인코더들 중 임의의 것(예를 들어, 비디오 인코더)에서 사용될 수 있다는 것에 주의해야 한다. 더욱이, 도 4에 따른 산술 인코더(400)는 본 명세서에서 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다. 특히, 인터벌 크기 결정부(440)는 개별적으로 취해지기도 하고 조합되어 취해지기도 하는 본 명세서에 개시되는 개념들 중 임의의 것을 사용할 수 있다.However, it should be noted that the arithmetic encoder (400) according to FIG. 4 may be used in any of the signal encoders disclosed herein (e.g., a video encoder). Furthermore, it should be noted that the arithmetic encoder (400) according to FIG. 4 may be optionally supplemented by any of the features, functionality and details described herein. In particular, the interval size determination unit (440) may use any of the concepts disclosed herein, either taken individually or in combination.
결론적으로, 도 4에 따르는 산술 인코더(400)는, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의하여 선택적으로 보완될 수 있다.In conclusion, the arithmetic encoder (400) according to FIG. 4 may be optionally supplemented by any of the features, functionality and details disclosed herein, taken individually or in combination.
5. 도 5에 따르는 산술 디코더5. Arithmetic decoder according to Fig. 5
도 5는 본 발명의 일 실시형태에 따르는, 산술 디코더(500)의 개략적인 블록도를 도시한다. 산술 디코더(500)는 비트 스트림(510)(비트 스트림(420)에 대응함)을 수신하고, 이에 기반하여 디코딩된 심볼(520)(또는 디코딩된 심볼(520)의 시퀀스)를 제공하도록 구성된다. 통상적으로, 디코딩된 심볼(520)은 인코딩될 심볼(410)에 대응할 수 있다. 통상적으로, 산술 인코더(400) 및 산술 디코더(500)는 함께 고려하자면, 무손실 인코딩 및 디코딩을 수행함으로써, 산술 인코더(400)에 의해 인코딩된 심볼(410)이 비트 스트림(420)을 제공하고, 이것이 산술 디코더(500)에 의해 디코딩되면, 디코딩된 심볼(520) 대응이 심볼(410)에 대응하도록 "완벽한(perfect)" 복원을 가능하게 하도록 할 수 있다.FIG. 5 illustrates a schematic block diagram of an arithmetic decoder (500) according to one embodiment of the present invention. The arithmetic decoder (500) is configured to receive a bit stream (510) (corresponding to the bit stream (420)) and provide a decoded symbol (520) (or a sequence of decoded symbols (520)) based thereon. Typically, the decoded symbol (520) may correspond to a symbol to be encoded (410). Typically, the arithmetic encoder (400) and the arithmetic decoder (500), when considered together, perform lossless encoding and decoding such that a symbol (410) encoded by the arithmetic encoder (400) provides a bit stream (420), which, when decoded by the arithmetic decoder (500), enables a “perfect” restoration of the decoded symbol (520) correspondence to the symbol (410).
산술 디코더(500)는 비트 스트림을 수신하고, 이에 기반하여 디코딩된 심볼(520)을 제공하는 산술적 디코딩 코어 또는 산술 디코더 코어(530)를 포함한다. 산술적 디코딩 코어(530)는, 코딩 인터벌 크기 정보(434)에 실질적으로 대응할 수 있는 코딩 인터벌 크기 정보(532)를 통상적으로 제공하고, 인터벌 크기 정보(432)에 대응할 수 있는 인터벌 크기 정보(534)를 수신한다. 산술 디코더(500)는 코딩 인터벌 크기 결정부 또는 코딩 인터벌 크기 결정부(540)를 더 포함하는데, 이것은, 코딩 인터벌 크기 정보(532)에 기반하고 또한 하나 이상의 디코딩된 심볼(520)에 기반하여 산술적 디코딩 코어(530)에 의해 사용되는 인터벌 크기 정보(534)를 제공하도록 구성된다. 더 나아가, 코딩 인터벌 크기 결정부(540)는, 어떤 타입의 정보가 현재 고려되는 디코딩된 심볼(520)에 의해 표현되는지를 기술할 수 있는 콘텍스트 정보(550)를 선택적으로 사용할 수 있다. 이에 따라서, 코딩 인터벌 크기 결정부(540)는 복수 개의 상이한 "콘텍스트", 즉, 복수 개의 상이한 타입의 디코딩된 정보(또는 디코딩될 상이한 타입의 정보)에 대하여 인터벌 크기 정보(534)를 결정할 수 있다.The arithmetic decoder (500) includes an arithmetic decoding core or arithmetic decoder core (530) that receives a bit stream and provides decoded symbols (520) based thereon. The arithmetic decoding core (530) typically provides coding interval size information (532) that can substantially correspond to coding interval size information (434) and receives interval size information (534) that can correspond to the interval size information (432). The arithmetic decoder (500) further includes a coding interval size determination unit or a coding interval size determination unit (540), which is configured to provide interval size information (534) used by the arithmetic decoding core (530) based on the coding interval size information (532) and also based on one or more decoded symbols (520). Furthermore, the coding interval size determination unit (540) may optionally use context information (550) that can describe what type of information is represented by the currently considered decoded symbol (520). Accordingly, the coding interval size determination unit (540) may determine interval size information (534) for a plurality of different “contexts,” i.e., a plurality of different types of decoded information (or different types of information to be decoded).
산술적 디코딩 코어(530)는, 예를 들어 총 코딩 인터벌(그 크기가 코딩 인터벌 크기 정보에 의해 기술됨) 중 어떤 하위-인터벌에 해당 비트 스트림(510)에 의해 표현되는 값이 속하는지를 결정하고, 결과적으로 어떤 심볼이 해당 비트 스트림에 의해 표현되는지를 판정할 수 있다. 총 코딩 인터벌의 하위-인터벌의 크기는, 예를 들어 인터벌 크기 정보(534)에 의해서 기술된다. 예를 들어, 인터벌 크기 정보(534)는 특정 심볼(예를 들어, 가능성이 가장 낮은 심볼)과 연관된 총 코딩 인터벌의 하위-인터벌의 크기를 기술할 수 있다. 더욱이, 코딩 인터벌 크기(예를 들어, 총 코딩 인터벌의 크기)가 재-정규화에 기인하여 가끔씩(또는 디코딩된 모든 심볼에 대해서도) 변할 수 있다는 것에 주의해야 한다.The arithmetic decoding core (530) can determine, for example, which sub-interval of the total coding interval (the size of which is described by the coding interval size information) the value represented by the corresponding bit stream (510) belongs to, and consequently, which symbol is represented by the corresponding bit stream. The size of the sub-interval of the total coding interval is described, for example, by the interval size information (534). For example, the interval size information (534) can describe the size of the sub-interval of the total coding interval associated with a particular symbol (e.g., the least probable symbol). Furthermore, it should be noted that the coding interval size (e.g., the size of the total coding interval) may occasionally change (or even for all decoded symbols) due to re-normalization.
결론적으로, 디코딩된 심볼(520)을 비트 스트림(510)에 기반하여 제공하기 위하여 산술적 디코딩(500)이 사용되는데, 여기에서 이전에 디코딩된 심볼의 이력(또는, 더 정확하게는, 이전에 디코딩된 심볼의 통계)이, 코딩될 심볼에 연관된 인터벌 크기를 (동적으로) 조절하기 위해서 사용된다(여기에서 조절된 인터벌 크기는 인터벌 크기 정보(534)에 의해 기술됨). 더욱이, 인터벌 크기 결정부(540)는, 예를 들어 인터벌 크기 결정부(440)와 실질적으로 동일할 수 있다는 것에 주의해야 한다. 또한, 인터벌 크기 결정부(540)가 본 명세서에 개시되는 기능성 중 임의의 것을 포함할 수 있다는 것에 주의해야 한다. 그러므로, 인터벌 크기의 결정을 위한 개념들 중 임의의 것이 인터벌 크기 결정부(540)에서 사용될 수 있다.In conclusion, an arithmetic decoding (500) is used to provide a decoded symbol (520) based on the bit stream (510), wherein the history of previously decoded symbols (or, more precisely, statistics of previously decoded symbols) is used to (dynamically) adjust an interval size associated with a symbol to be coded (wherein the adjusted interval size is described by the interval size information (534)). Furthermore, it should be noted that the interval size determining unit (540) can be substantially identical to, for example, the interval size determining unit (440). It should also be noted that the interval size determining unit (540) can include any of the functionalities disclosed herein. Therefore, any of the concepts for determining an interval size can be used in the interval size determining unit (540).
본 명세서에서 설명되는 산술 디코더(500)가 본 명세서에서 설명되는 디코더(예를 들어, 오디오 디코더 또는 비디오 디코더) 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다. 그러나, 산술 디코더(500)는 이미지 또는 신경망의 계수의 디코딩을 위해서도 사용될 수 있다.It should be noted that the arithmetic decoder (500) described herein may be used in any of the decoders described herein (e.g., an audio decoder or a video decoder). However, the arithmetic decoder (500) may also be used for decoding coefficients of an image or a neural network.
일반적으로 말하자면, 본 명세서에서 설명되는 산술 디코더(500)는, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다.Generally speaking, the arithmetic decoder (500) described herein may be optionally supplemented by any of the features, functionality and details disclosed herein, taken individually or in combination.
6. 도 6에 따라서 인터벌 크기 정보를 결정하기 위한 개념6. Concept for determining interval size information according to Fig. 6
도 6은 인터벌 크기 정보의 결정을 위한 개념의 개략도를 도시하는데, 이것은, 예를 들어 도 4에 따르는 산술 인코더(400) 또는 도 5에 따르는 산술 디코더(500)에서 사용될 수 있다. 인터벌 크기 결정부의 형태 또는 인터벌 크기 결정부의 형태로 구현될 수 있는 이러한 개념(600)은, 예를 들어 인터벌 크기 결정부 또는 인터벌 크기 결정부(440)를 실현하기 위해서 사용될 수 있고, 및/또는 인터벌 크기 결정부 또는 인터벌 크기 결정부(540)를 실현하기 위해서 사용될 수 있다.FIG. 6 illustrates a schematic diagram of a concept for determining interval size information, which may be used, for example, in an arithmetic encoder (400) according to FIG. 4 or an arithmetic decoder (500) according to FIG. 5. This concept (600), which may be implemented in the form of an interval size determination unit or in the form of an interval size determination unit, may be used, for example, to realize an interval size determination unit or an interval size determination unit (440), and/or may be used to realize an interval size determination unit or an interval size determination unit (540).
인터벌 크기 결정부(600)는, 예를 들어 하나 이상의 심볼 값(610)을 수신할 수 있는데, 이것은 인코딩될 심볼(410)에 대응할 수 있거나 이전에 인코딩된 심볼에 대응할 수 있거나, 하나 이상의 이전에 디코딩된 심볼(520)에 대응할 수 있다. 더욱이, 인터벌 크기 결정부(600)는, 선택적으로, 콘텍스트 정보(612)를 수신할 수 있는데, 이것은, 예를 들어 콘텍스트 모델 인덱스 k의 형태를 가질 수 있다. 더욱이, 인터벌 크기 결정부(600)는 예를 들어 인터벌 크기 정보(432)에 대응할 수 있거나 인터벌 크기 정보(534)에 대응할 수 있는 인터벌 크기 정보(620)를 제공할 수 있다.The interval size determination unit (600) may receive, for example, one or more symbol values (610), which may correspond to a symbol to be encoded (410), which may correspond to a previously encoded symbol, or which may correspond to one or more previously decoded symbols (520). Furthermore, the interval size determination unit (600) may optionally receive context information (612), which may have the form of a context model index k, for example. Furthermore, the interval size determination unit (600) may provide interval size information (620), which may correspond to the interval size information (432) or may correspond to the interval size information (534).
인터벌 크기 결정부는 상태 변수 업데이트부(640)를 포함하는데, 이것은 심볼 값(610)을 고려하고 선택적으로 콘텍스트 정보(612)를 고려하면서 하나 이상의 이전에 결정된 상태 변수(644)에 기반하여, 하나 이상의 업데이트된 상태 변수(642)를 제공한다. 상태 변수 업데이트부(640), 예를 들어 정적일 수 있고 또는, 예를 들어 콘텍스트 정보에 의존하여 개별적인 콘텍스트에 적응될 수 있는 하나 이상의 다른 파라미터를 더 고려할 수 있다. 예를 들어, 상태 변수 업데이트부(640)는 하나 이상의 가중치 인자, 즉, 및/또는 를 고려할 수 있다. 상태 변수 업데이트부(640)는 선택적으로 "오프셋", 예를 들어 z, 및 룩업 테이블 예를 들어, A를 더 고려할 수 있다. 더욱이, 상태 변수 업데이트부(640)는, 선택적으로, 상태 변수 초기화가 수행돼야 한다고 시그널링하는 정보에 응답하여 시작 값으로 초기화될 수 있다. 상태 변수 초기화의 경우, 이전에 결정된 상태 변수 값(644)은 무시될 수 있고, "업데이트된" 상태 변수(642)가, 예를 들어 미리 결정될 수 있는 초기 값으로 설정될 수 있다.The interval size determination unit includes a state variable update unit (640), which provides one or more updated state variables (642) based on one or more previously determined state variables (644) while taking into account the symbol values (610) and optionally context information (612). The state variable update unit (640) may further take into account one or more other parameters, which may be static, for example, or may be adapted to an individual context, for example, depending on the context information. For example, the state variable update unit (640) may include one or more weighting factors, i.e., and/or may be considered. The state variable update unit (640) may optionally further consider an "offset", for example z, and a lookup table, for example A. Furthermore, the state variable update unit (640) may optionally be initialized to a starting value in response to information signaling that state variable initialization is to be performed. In the case of state variable initialization, the previously determined state variable values (644) may be ignored and the "updated" state variables (642) may be set to an initial value, which may be determined in advance, for example.
더욱이, 인터벌 크기 결정부(600)는 인터벌 크기 결정 코어를 포함하는데, 이것은 인터벌 크기 정보(620)를 업데이트된 상태 변수(또는 상태 변수 값)(620)에 기반하여 결정한다. 더욱이, 인터벌 크기 결정 코어(650)는, 예를 들어 코딩 인터벌 크기 정보(652)를 고려할 수 있는데, 이것은, 예를 들어 코딩 인터벌 크기 정보(432) 또는 코딩 인터벌 크기 정보(532)에 대응할 수 있다.Moreover, the interval size determination unit (600) includes an interval size determination core, which determines interval size information (620) based on the updated state variable (or state variable value) (620). Furthermore, the interval size determination core (650) may consider, for example, coding interval size information (652), which may correspond to, for example, coding interval size information (432) or coding interval size information (532).
이에 따라서, 인터벌 크기 결정 코어(650)는 특정 심볼과 연관된 하위인터벌의 크기를 기술하는 인터벌 크기 정보를, 코딩 인터벌의 전체 크기를 기술하는 인터벌 크기 정보(652)에 기반하여, 그리고 하나 이상의 업데이트된 상태 변수(642)에 의해 표현되는 이전에 인코딩된 또는 이전에 디코딩된 심볼의 통계에 대한 정보에 기반하여 제공할 수 있다.Accordingly, the interval size determination core (650) can provide interval size information describing the size of a subinterval associated with a particular symbol, based on interval size information (652) describing the overall size of a coding interval, and based on information about statistics of previously encoded or previously decoded symbols represented by one or more updated state variables (642).
그러나, 인터벌 크기 결정부(600)가 본 명세서에서 설명되는 산술 인코더 및 산술 디코더에서 사용될 수도 있다는 것에 주의해야 한다. 더 나아가, 인터벌 크기 결정부(600)는 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 보완될 수 있다. 특히, 상태 변수 업데이트는 본 명세서에 개시되는 개념들 중 임의의 개념을 사용할 수 있다. 더 나아가, 인터벌 크기 결정 코어도 본 명세서에 개시되는 개념들 중 임의의 개념을 사용할 수 있다.However, it should be noted that the interval size determination unit (600) may also be used in the arithmetic encoder and arithmetic decoder described herein. Furthermore, the interval size determination unit (600) may be supplemented by any of the features, functionality and details disclosed herein. In particular, the state variable update may use any of the concepts disclosed herein. Furthermore, the interval size determination core may also use any of the concepts disclosed herein.
상태 변수 업데이트를 위한 본 명세서에 개시되는 개념들 중 임의의 개념이 본 명세서에 개시되는 인터벌 크기 결정 코어에 대한 개념들 중 임의의 개념과 선택적으로 결합될 수 있다는 것에 주의해야 한다. 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것은, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는 개념(600)에 선택적으로 도입될 수 있다. 인터벌 크기 정보(620)를 하나 이상의 업데이트된 상태 변수(642)에 기반하여 결정하는 것에 대해서 개시된 피쳐, 기능성 및 세부 내용 중 임의의 것이, 상태 변수 업데이트에 관하여 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것으로부터 독립적으로 사용될 수도 있다는 것에 주의해야 한다.It should be noted that any of the concepts disclosed herein for state variable updating may be optionally combined with any of the concepts for interval size determination core disclosed herein. Any of the features, functionality and details disclosed herein may be optionally introduced into the concepts (600), either individually or in combination. It should be noted that any of the features, functionality and details disclosed with respect to determining interval size information (620) based on one or more updated state variables (642) may be used independently from any of the features, functionality and details described with respect to state variable updating.
7. 도 7에 따르는 인터벌 크기 결정 개념7. Concept of determining interval size according to Fig. 7
도 7은 인터벌 크기 결정 개념(700)의 개략적인 표현이다. 특히, 도 7은 "인터벌 크기 결정 코어"의 기능성을 취할 수 있는 개념을 표시한다. 다르게 말하면, 도 7에 따르는 개념(700)은 업데이트된 상태 변수에 기반하여, 그리고 또한 코딩 인터벌 크기 정보에 기반하여 인터벌 크기 정보를 제공하는 것에 적합하다. 그러나, 도 7에 따르는 개념(700)은 인터벌 크기 결정부에서 또는 인터벌 크기 결정기에서 구현될 수 있다.Fig. 7 is a schematic representation of an interval size determination concept (700). In particular, Fig. 7 shows a concept that can take on the functionality of an "interval size determination core". In other words, the concept (700) according to Fig. 7 is suitable for providing interval size information based on updated state variables and also based on coding interval size information. However, the concept (700) according to Fig. 7 can be implemented in an interval size determination unit or in an interval size determination unit.
"인터벌 크기 결정 코어"라고 간주될 수 있는 인터벌 크기 결정부(700)는, 예를 들어 업데이트된 상태 변수(642)에 대응할 수 있는 업데이트된 상태 변수(710)를 수신한다. 더욱이, 인터벌 크기 결정부(700)는, 예를 들어 코딩 인터벌 크기 정보(652)에 대응할 수 있는 코딩 인터벌 크기 정보(712)를 수신한다. 선택적으로, 인터벌 크기 결정부(700)는 콘텍스트 정보도 사용하는데, 그 이유는 인터벌 크기 결정부(700)의 기능성이 콘텍스트에 의존하여 조절될 수 있기 때문이다. 예를 들어, 콘텍스트 정보는 콘텍스트 모델 인덱스 k의 형태를 취할 수 있다. 그러므로, 인터벌 크기 결정부(700)에서 사용되는 특이한 기능성 또는 파라미터는 콘텍스트 모델 인덱스 k에 의해 표현되는 실제 콘텍스트에 의존하여 적응될 수 있다.An interval size determination unit (700), which may be considered an "interval size determination core", receives, for example, updated state variables (710) that may correspond to updated state variables (642). Furthermore, the interval size determination unit (700) receives, for example, coding interval size information (712) that may correspond to coding interval size information (652). Optionally, the interval size determination unit (700) also uses context information, since the functionality of the interval size determination unit (700) can be adjusted depending on the context. For example, the context information can take the form of a context model index k. Therefore, specific functionality or parameters used in the interval size determination unit (700) can be adapted depending on the actual context represented by the context model index k.
인터벌 크기 결정부(700)는 인터벌 크기 정보(620)에 대응할 수 있는 인터벌 크기 정보(720)를 제공한다.The interval size determination unit (700) provides interval size information (720) that can correspond to the interval size information (620).
그러므로, 인터벌 크기 결정부(700)는, 예를 들어 도 6에서 설명된 인터벌 크기 결정 코어(650)를 대체할 수 있다.Therefore, the interval size determination unit (700) can replace, for example, the interval size determination core (650) described in FIG. 6.
지금부터는, 인터벌 크기 결정 코어(700)의 일부 세부 내용들이 설명될 것이다.From now on, some details of the interval size determination core (700) will be described.
인터벌 크기 결정 코어(700)가 제 1 처리 경로(730) 및 대안적인 것으로 여겨질 수 있는 제 2 처리 경로(750)를 포함한다는 것에 주의해야 한다. 제 1 처리 경로(730)는 (선택적인) 스케일링/반올림부(732)를 포함하는데, 여기에서 제 1 업데이트된 상태 변수(예를 들어, )가 스케일링 및/또는 반올림된다. 예를 들어, 스케일링 인자 는 제 1 업데이트된 상태 변수 (값)의 스케일링을 위해서 사용될 수 있다. 예를 들어, 스케일링은 스케일링 인자와의 승산일 수 있다. 예를 들어, 반올림은 스케일링의 결과와 같거나 그보다 작은 다음 정수 값으로 반올림 내림(rounding down)하는 것일 수 있다. 이와 유사하게, 제 1 처리 경로(730)는 제 2의 (선택적인) 스케일링/반올림(734)을 포함할 수 있는데, 이것은, 예를 들어 제 2 업데이트된 상태 변수(예를 들어, )를 개별적인 스케일링 인자(예를 들어, )로 스케일링하는 것을 포함할 수 있고, 또한 스케일링의 결과와 같거나 그보다 작은 다음 정수 값으로 반올림 내림(rounding down)하는 것을 포함할 수 있다. 이에 따라서, 제 1 스케일링되고 반올림된 상태 변수(733) 및 제 2 스케일링되고 반올림된 상태 변수(735)가 얻어질 수 있다. 더욱이, 제 1 처리 경로(730)는 제 1 룩업 테이블 기반 매핑(736)을 포함할 수 있는데, 이것은 제 1 스케일링된 및/또는 반올림된 업데이트된 상태 변수(733)를 수신하고, 더 나아가 양자화된 코딩 인터벌 크기 정보(762)를 수신한다. 예를 들어, 제 1 룩업-테이블-기반 매핑(736)은 이차원 룩업 테이블을 사용하여 제 1 인터벌 크기 기여도(737)를 얻을 수 있다. 이와 유사하게, 제 1 신호 처리 경로(730)는 제 2 룩업-테이블-기반 매핑(738)을 포함할 수 있는데, 이것은 제 2 스케일링된 및/또는 반올림된 업데이트된 상태 변수(735) 및 양자화된 코딩 인터벌 크기 정보(762)를 수신하고, 이들에 기반하여 제 2 인터벌 크기 기여도(739)를 제공한다.It should be noted that the interval size determination core (700) includes a first processing path (730) and, alternatively, a second processing path (750). The first processing path (730) includes an (optional) scaling/rounding unit (732), which determines a first updated state variable (e.g., ) is scaled and/or rounded. For example, the scaling factor may be used for scaling the first updated state variable (value). For example, the scaling may be a multiplication by a scaling factor. For example, the rounding may be rounding down to the next integer value that is equal to or less than the result of the scaling. Similarly, the first processing path (730) may include a second (optional) scaling/rounding (734), which may be used for scaling the second updated state variable (e.g., ) with individual scaling factors (e.g., ) may include scaling the state variables to a next integer value that is equal to or smaller than the result of the scaling, and may also include rounding down to a next integer value that is equal to or smaller than the result of the scaling. Accordingly, a first scaled and rounded state variable (733) and a second scaled and rounded state variable (735) may be obtained. Furthermore, the first processing path (730) may include a first lookup table-based mapping (736), which receives the first scaled and/or rounded updated state variable (733) and further receives quantized coding interval size information (762). For example, the first lookup-table-based mapping (736) may use a two-dimensional lookup table to obtain the first interval size contribution (737). Similarly, the first signal processing path (730) may include a second lookup-table-based mapping (738) that receives the second scaled and/or rounded updated state variables (735) and the quantized coding interval size information (762), and provides the second interval size contribution (739) based thereon.
예를 들어, 제 1 룩업-테이블-기반 매핑(736)은 이차원 룩업 테이블을 사용할 수 있는데, 여기에서 제 1 룩업 테이블 인덱스는 스케일링된 및/또는 반올림된 제 1 업데이트된 상태 변수(733)에 의해 결정될 수 있고, 제 2 룩업 테이블 인덱스는 양자화된 코딩 인터벌 크기 정보(762)에 의해 결정될 수 있다. 예를 들어, 제 1 스케일링된 및/또는 반올림된 업데이트된 상태 변수(733)는 특정 범위에 속하는(예를 들어, 0부터 최대 값까지, 또는 1부터 최대 값까지, 또는 제 1 테이블 인덱스라고 수락될 수 있는 범위에 속하는) 정수 값을 취할 수 있다. 이와 유사하게, 양자화된 인터벌 크기 정보(762)는 제 2 테이블 인덱스로서의 역할을 할 수 있는 정수 값의 형태를 취할 수 있다. 예를 들어, 양자화된 코딩 인터벌 크기 정보(762)는 0 및 최대 값 사이 또는 1 및 최대 값 사이의 범위에 속하는(또는 제 2 테이블 인덱스로서의 역할을 할 수 있는 값들의 임의의 범위에 속하는) 정수 값의 형태를 취할 수 있다. 다르게 말하면, 제 1 스케일링된 및/또는 반올림된 업데이트된 상태 변수(733) 및 양자화된 코딩 인터벌 크기 정보(762) 양자 모두가 룩업-테이블-기반 매핑(736)에서 사용된 룩업 테이블의 원소를 선택하기 위한 테이블 인덱스들로서 사용된다. 이에 따라서, 사용된 룩업 테이블의 엔트리가 제 1 인터벌 크기 기여도(737)로서 제공된다.For example, the first lookup-table-based mapping (736) may use a two-dimensional lookup table, where the first lookup table index may be determined by a scaled and/or rounded first updated state variable (733), and the second lookup table index may be determined by quantized coding interval size information (762). For example, the first scaled and/or rounded updated state variable (733) may take an integer value falling within a particular range (e.g., from 0 to a maximum value, or from 1 to a maximum value, or within a range acceptable as a first table index). Similarly, the quantized interval size information (762) may take the form of an integer value that may serve as the second table index. For example, the quantized coding interval size information (762) can take the form of an integer value ranging between 0 and a maximum value, or between 1 and a maximum value (or any range of values that can serve as a second table index). In other words, both the first scaled and/or rounded updated state variable (733) and the quantized coding interval size information (762) are used as table indices for selecting elements of a lookup table used in the lookup-table-based mapping (736). Accordingly, an entry of the used lookup table is provided as a first interval size contribution (737).
그러나, 제 2 룩업-테이블-기반 매핑(738)은 동일한 방식으로 수행될 수 있고, 여기에서 스케일링된 및/또는 반올림된 제 2 업데이트된 상태 변수(735) 및 양자화된 코딩 인터벌 크기 정보(762)는 제 2 룩업-테이블-기반 매핑(738)에서 사용된 룩업 테이블의 엔트리를 선택하기 위한 두 개의 인덱스들(예를 들어, i 및 j)로서 사용된다. 그러므로, 제 2 인터벌 크기 기여도(739)가 얻어진다.However, the second lookup-table-based mapping (738) can be performed in the same manner, where the scaled and/or rounded second updated state variable (735) and the quantized coding interval size information (762) are used as two indices (e.g., i and j) to select an entry of the lookup table used in the second lookup-table-based mapping (738). Hence, the second interval size contribution (739) is obtained.
제 1 인터벌 크기 기여도(737) 및 제 2 인터벌 크기 기여도(739)는 결합기(740)에서 결합됨으로써 결합된 인터벌 크기 기여도(742)가 얻어질 수 있다. 결합된 인터벌 크기 기여도(742)는 직접적으로 인터벌 크기 정보(720)로서의 역할을 할 수 있고, 또는 인터벌 크기 정보(720)는 후처리(예를 들어, 고정된 스케일링, 또는 반올림, 또는 기타 등등)를 사용하여 결합된 인터벌 크기 기여도(742)로부터 유도될 수도 있다.The first interval size contribution (737) and the second interval size contribution (739) can be combined in a combiner (740) to obtain a combined interval size contribution (742). The combined interval size contribution (742) can directly serve as the interval size information (720), or the interval size information (720) can be derived from the combined interval size contribution (742) using postprocessing (e.g., fixed scaling, or rounding, or the like).
결론적으로, 제 1 처리 경로(730)를 사용할 경우, 인터벌 크기 정보(720)는 두 개 이상의 룩업-테이블-기반 매핑(736, 738)의 결과들을 결합함으로써 얻어질 수 있는데, 여기에서 사용될 룩업 테이블의 개별적인 엔트리는 개별적인 업데이트된 상태 변수에 기반하여 그리고 코딩 인터벌 크기 정보에 기반하여 결정된다. 그러므로, 인터벌 크기 정보(720)는 매우 효율적인 방식으로 얻어질 수 있다.In conclusion, when using the first processing path (730), the interval size information (720) can be obtained by combining the results of two or more lookup-table-based mappings (736, 738), where individual entries of the lookup tables to be used are determined based on individual updated state variables and based on the coding interval size information. Therefore, the interval size information (720) can be obtained in a very efficient manner.
그러나, 대안적으로, 제 2 신호 처리 경로(750)에 도시된 바와 같은 처리가 수행될 수도 있다. 제 2 신호 처리 경로에 의해 수행되는 처리는 계산에 있어서 더 효율적이지만, 정확도가 약간 감소된다. 예를 들어, 제 2 신호 처리 경로(750)는, 제 1 업데이트된 상태 변수 및 제 2 업데이트된 상태 변수(및 선택적으로 추가적인 업데이트된 상태 변수)가 결합되는 결합기(751)를 포함함으로써, 결합된 업데이트된 상태 변수(751a)를 획득한다. 제 2 처리 경로(750)는 선택적인 스케일링/반올림부(752)를 더 포함하는데, 이것은, 예를 들어 스케일링/반올림부(732, 734)에 대응한다. 이에 따라서, 스케일링/반올림부(750)는 스케일링된 및/또는 반올림된 결합된 업데이트된 상태 변수(733)를 제공하는데, 이것은 룩업-테이블-기반 매핑(756) 중에 원소를 선택하기 위하여 사용된다. 룩업-테이블-기반 매핑(756)은 이차원 매핑인 것이 바람직한데, 이러한 경우 룩업 테이블의 제 1 인덱스는 결합된 업데이트된 상태 변수(751a) 또는 그것의 스케일링된 버전 및/또는 반올림된 버전(753)에 의해 결정되고, 이차원 룩업 테이블의 제 2 인덱스는 양자화된 코딩 인터벌 크기 정보(762)에 의해 결정된다. 이에 따라서, 룩업-테이블-기반 매핑(756)은 인터벌 크기 기여도(757)를 제공하고, 이것은 인터벌 크기 정보(752)로서 사용될 수 있고, 또는 그로부터 선택적인 후처리(예를 들어, 스케일링)에 의해서 인터벌 크기 정보(720)가 유도될 수 있다.Alternatively, however, processing as illustrated in the second signal processing path (750) may be performed. The processing performed by the second signal processing path is computationally more efficient, but with slightly reduced accuracy. For example, the second signal processing path (750) includes a combiner (751) in which the first updated state variables and the second updated state variables (and optionally additional updated state variables) are combined to obtain a combined updated state variable (751a). The second processing path (750) further includes an optional scaling/rounding unit (752), which corresponds, for example, to the scaling/rounding units (732, 734). Accordingly, the scaling/rounding unit (750) provides a scaled and/or rounded combined updated state variable (733), which is used to select elements during the lookup-table-based mapping (756). The lookup-table-based mapping (756) is preferably a two-dimensional mapping, in which case the first index of the lookup table is determined by the combined updated state variable (751a) or a scaled version and/or a rounded version thereof (753), and the second index of the two-dimensional lookup table is determined by the quantized coding interval size information (762). Accordingly, the lookup-table-based mapping (756) provides an interval size contribution (757), which can be used as the interval size information (752), or from which the interval size information (720) can be derived by optional postprocessing (e.g., scaling).
결론적으로, 인터벌 크기 결정 코어(700)는 업데이트된 상태 변수(710)에 기반하여, 그리고 코딩 인터벌 크기 정보(712)를 고려하면서 인터벌 크기 정보(720)를 획득하도록 구성된다. 룩업-테이블-기반 매핑은 제 1 신호 처리 경로(720)에서 사용되어, 인터벌 크기 정보(720)를 유도하기 위하여 사용되는 두 개 이상의 인터벌 크기 기여도 737, 739를 결정한다. 룩업-테이블-기반 매핑(756)은 인터벌 크기 기여도(757) 또는 인터벌 크기 정보(720)를 결정하기 위한 대안적인 제 2 신호 처리 경로(750)에서 사용된다. 룩업 테이블의 인덱스들을 결정하기 위해서 업데이트된 상태 변수 및 코딩 인터벌 크기 정보(712) 양자 모두를 고려하는 룩업-테이블-기반 매핑을 사용함으로써, 특히 효율적인 계산이 얻어질 수 있고, 이러한 경우에 승산 연산을 절약하는 것이 가능하다.In conclusion, the interval size determination core (700) is configured to obtain interval size information (720) based on the updated state variables (710) and while considering the coding interval size information (712). The lookup-table-based mapping is used in the first signal processing path (720) to determine two or more
도 7에 따르는 인터벌 크기 결정 코어(700)가 본 명세서에서 설명되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다. 더욱이, 인터벌 크기 결정 코어(700)는, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다.It should be noted that the interval size determination core (700) according to FIG. 7 may be used in any of the arithmetic encoders and arithmetic decoders described herein. Furthermore, the interval size determination core (700) may be optionally supplemented by any of the features, functionality and details disclosed herein, taken individually or in combination.
8. 도 8에 따르는 인터벌 크기 결정 코어8. Interval size determination core according to Fig. 8
도 8은 본 발명의 일 실시형태에 따르는 인터벌 크기 결정 코어(800)의 개략적인 블록도를 도시한다. 도 8에 따르는 인터벌 크기 결정 코어(800)는 본 명세서에 개시되는 오디오 인코더 및 오디오 디코더 중 임의의 것에서 사용될 수 있다.FIG. 8 illustrates a schematic block diagram of an interval size determination core (800) according to one embodiment of the present invention. The interval size determination core (800) according to FIG. 8 can be used in any of the audio encoders and audio decoders disclosed herein.
인터벌 크기 결정 코어(800)는 업데이트된 상태 변수(810) 및 또한 코딩 인터벌 크기 정보(812)를 수신한다. 업데이트된 상태 변수(810)는, 예를 들어 업데이트된 상태 변수(710) 또는 업데이트된 상태 변수(642)에 대응할 수 있다. 코딩 인터벌 크기 정보(812)는, 예를 들어 코딩 인터벌 크기 정보(712) 또는 코딩 인터벌 크기 정보(652) 또는 코딩 인터벌 크기 정보(532) 또는 인터벌 크기 정보(434)에 대응할 수 있다. 더욱이, 인터벌 크기 결정 코어(800)는 인터벌 크기 정보(820)를 제공하는데, 이것은 인터벌 크기 정보(720) 또는 인터벌 크기 정보(620) 또는 인터벌 크기 정보(534) 또는 인터벌 크기 정보(432)에 대응할 수 있다.The interval size determination core (800) receives updated state variables (810) and also coding interval size information (812). The updated state variables (810) may correspond to, for example, the updated state variables (710) or the updated state variables (642). The coding interval size information (812) may correspond to, for example, the coding interval size information (712) or the coding interval size information (652) or the coding interval size information (532) or the interval size information (434). Furthermore, the interval size determination core (800) provides interval size information (820), which may correspond to the interval size information (720) or the interval size information (620) or the interval size information (534) or the interval size information (432).
인터벌 크기 결정 코어(800)는, 예를 들어 확률 값(832)의 결정부(830)를 포함할 수 있다. 확률 값(832)은, 예를 들어 하나 이상의 업데이트된 상태 변수(810)에 기반하여 획득될 수 있고, 예를 들어 인코딩될 심볼(예를 들어, "0" 또는 "1")의 확률을 기술할 수 있다. 인터벌 크기 결정 코어(830)는 가능성이 적은(less-probable) 심볼(또는 가능성이 가장 낮은 심볼)의 확률의 결정부(840)를 더 포함하는데, 이것은 가능성이 적은 심볼 또는 가능성이 가장 낮은 심볼의 확률을 기술하는 확률 값(842)을 제공할 수 있다. 인터벌 크기 결정 코어(800)는 양자화부(850)를 더 포함하는데, 이것은 확률 값(842)을 양자화하여 양자화된 확률 값(852)을 획득한다. 더욱이, 인터벌 크기 결정 코어(800)는 또한 양자화부(860)를 더 포함하는데, 이것은 코딩 인터벌 크기 정보를 양자화하여 양자화된 코딩 인터벌 크기 정보(862)를 획득한다. 인터벌 크기 결정 코어(800)는 매핑부(870)를 더 포함하고, 이것은 양자화된 확률 값(852) 및 양자화된 코딩 인터벌 크기 정보(862)를 수신하며, 양자화된 확률 값(852) 및 양자화된 코딩 인터벌 크기 정보(862) 양자 모두를 인터벌 크기 정보(820)에 매핑한다.The interval size determination core (800) may include, for example, a determination unit (830) of a probability value (832). The probability value (832) may be obtained, for example, based on one or more updated state variables (810) and may describe, for example, a probability of a symbol to be encoded (e.g., “0” or “1”). The interval size determination core (830) further includes a determination unit (840) of a probability of a less-probable symbol (or a least-probable symbol), which may provide a probability value (842) describing the probability of the less-probable symbol or the least-probable symbol. The interval size determination core (800) further includes a quantization unit (850), which quantizes the probability value (842) to obtain a quantized probability value (852). Furthermore, the interval size determination core (800) further includes a quantization unit (860), which quantizes the coding interval size information to obtain quantized coding interval size information (862). The interval size determination core (800) further includes a mapping unit (870), which receives the quantized probability value (852) and the quantized coding interval size information (862), and maps both the quantized probability value (852) and the quantized coding interval size information (862) to the interval size information (820).
지금부터는, 인터벌 크기 결정 코어(800)의 기능성에 관련된 일부 세부 내용들이 설명될 것이다.From now on, some details related to the functionality of the interval size determination core (800) will be described.
확률 값(832)의 결정부(830)는, 예를 들어 제 1 신호 처리 경로(880) 또는 제 2 신호 처리 경로(890)를 포함할 수 있다. 신호 처리 경로들(880, 890)이 대안적인 것으로 고려될 수 있다는 것에 주의해야 한다. 제 1 신호 처리 경로(880)는 제 1 매핑부(882)를 포함하는데, 이것은 제 1 업데이트된 상태 변수(810)를, 예를 들어 룩업 테이블을 사용하여 제 1 확률 값(883)로 매핑한다. 제 1 신호 처리 경로(880)는 제 2 매핑부(884)를 더 포함하는데, 이것은 제 2 업데이트된 상태 변수(810)를, 예를 들어 룩업 테이블을 사용하여 제 2 확률 값(885)으로 매핑한다. 제 1 신호 처리 경로(880)는 결합부(combination; 886)를 더 포함하는데, 이것은, 예를 들어 제 1 확률 값(883) 및 제 2 확률 값(885)을, 예를 들어 상이한 스케일링이 제 1 확률 값(883) 및 제 2 확률 값(885)에 적용될 수 있는 선형 결합을 사용하여(및 여기에서, 선택적으로 양자화가 사용될 수도 있음), 결합하도록 구성된다. 이에 따라서, 결합부(886)는 확률 값(832)을 제공한다.The determination unit (830) of the probability value (832) may include, for example, a first signal processing path (880) or a second signal processing path (890). It should be noted that the signal processing paths (880, 890) may be considered alternatives. The first signal processing path (880) includes a first mapping unit (882), which maps the first updated state variable (810) to a first probability value (883), for example, using a lookup table. The first signal processing path (880) further includes a second mapping unit (884), which maps the second updated state variable (810) to a second probability value (885), for example, using a lookup table. The first signal processing path (880) further comprises a combination (886) which is configured to combine the first probability value (883) and the second probability value (885), for example, using a linear combination (and optionally wherein quantization may be used) in which different scalings may be applied to the first probability value (883) and the second probability value (885). Accordingly, the combination (886) provides the probability value (832).
대안적으로, 제 2 신호 처리 경로(890)가 사용될 수도 있다. 제 2 신호 처리 경로(890)는 결합부(892)를 포함하는데, 이것은 두 개 이상의 업데이트된 상태 변수(810)를 수신하고, 이에 기반하여 결합된 업데이트된 상태 변수(893)를 제공한다(예를 들어, 선형 결합을 사용함). 더욱이, 제 2 신호 처리 경로(890)는 매핑부(894)를 포함하는데, 이것은 결합된 업데이트된 상태 변수(893)를, 예를 들어 룩업 테이블을 사용하여 확률 값(832)으로 매핑한다.Alternatively, a second signal processing path (890) may be used. The second signal processing path (890) includes a combiner (892), which receives two or more updated state variables (810) and provides a combined updated state variable (893) based thereon (e.g., using linear combination). Furthermore, the second signal processing path (890) includes a mapper (894), which maps the combined updated state variable (893) to a probability value (832), for example, using a lookup table.
그러므로, 두 개의 상이한 대안이라고 여겨질 수 있는 제 1 신호 처리 경로(880)를 사용하거나 제 2 신호 처리 경로(890)를 사용하여 확률 값(832)을 얻는 것이 가능해진다. 제 1 신호 처리 경로는 두 개의 매핑부(882, 884)가 있기 때문에, 약간 증가된 복잡도 및 이와 함께 약간 증가된 정확도를 동반한다. 반대로, 제 2 신호 처리 경로(890)는 단일 매핑부만을 포함하고 있고, 그러므로 정확도가 약간 감소되면서 복잡도가 약간 줄어든다.Therefore, it becomes possible to obtain the probability value (832) by using either the first signal processing path (880) or the second signal processing path (890), which may be considered as two different alternatives. The first signal processing path has slightly increased complexity and, therefore, slightly increased accuracy, since it has two mapping sections (882, 884). In contrast, the second signal processing path (890) has only a single mapping section and, therefore, slightly reduces complexity at the expense of slightly decreasing accuracy.
가능성이 적은 심볼의 확률의 결정부(850)에서, 가능성이 적은 심볼의 확률이, 예를 들어 확률 값(832) 및 해당 확률 값의 보수(1에서 그 확률 값을 뺀 값) 중에서 작은 값을 선택함으로써, 결정될 수 있다. 이에 따라서, 가능성이 적은 심볼이 획득될 확률을 기술하는 확률 값(842)이 획득된다. 이러한 확률 값(842)은 양자화부(850)에서, 예를 들어 함수 (.) 또는 (.)를 사용하여 양자화된다. 이에 따라서, 양자화된 확률 값 또는 확률 인덱스 i(852)가 획득되고, 매핑부(870)에서 사용된다.In the probability determination unit (850) of a less probable symbol, the probability of a less probable symbol can be determined by, for example, selecting a smaller value among the probability value (832) and the complement of the probability value (a value obtained by subtracting the probability value from 1). Accordingly, a probability value (842) describing the probability that a less probable symbol is obtained is obtained. This probability value (842) is obtained in the quantization unit (850), for example, by a function (.) or (.) is used to quantize. Accordingly, a quantized probability value or probability index i (852) is obtained and used in the mapping unit (870).
코딩 인터벌 크기 정보(812)의 양자화부(860)는, 예를 들어 양자화된 코딩 인터벌 크기 값(862) 또는 양자화된 코딩 인터벌 크기 인덱스 j를 제공할 수 있다. 그러나, 일부 경우에서는, 양자화된 코딩 인터벌 크기 값 Qr(R) 및 코딩 인터벌 크기 인덱스 j 양자 모두가 획득될 수 있고, 이들은, 예를 들어 매핑부(860)에서 모두 사용될 수 있다. 매핑부(860)는, 예를 들어 매핑 메커니즘을 사용할 수 있는데, 이것은 본 명세서에서 설명되는 룩업 테이블(RangeTabLPS)에 기반하고, 및/또는 본 명세서에서 설명되는 룩업 테이블(BaseTabLPS)에 기반할 수 있고, 및/또는 본 명세서에서 설명되는 룩업 테이블(ProbTabLPS)을 사용할 수 있다. 선택적으로, 본 명세서에서 설명되는 스케일링 함수 Scal(.)도 매핑부(870)에서 사용될 수 있다.The quantization unit (860) of the coding interval size information (812) may provide, for example, a quantized coding interval size value (862) or a quantized coding interval size index j. However, in some cases, both the quantized coding interval size value Q r (R) and the coding interval size index j may be obtained, and they may both be used, for example, in the mapping unit (860). The mapping unit (860) may use, for example, a mapping mechanism, which may be based on the lookup table (RangeTabLPS) described herein, and/or may be based on the lookup table (BaseTabLPS) described herein, and/or may use the lookup table (ProbTabLPS) described herein. Optionally, a scaling function Scal(.) described herein may also be used in the mapping unit (870).
다르게 말하면, 양자화된 확률 값 또는 확률 인덱스(852)에 기반하여, 그리고 양자화된 코딩 인터벌 크기(862) 및/또는 코딩 인터벌 크기 인덱스 j에 기반하여 인터벌 크기 정보(820)를 유도하기 위하여 사용될 수 있는 여러 매핑부가 존재할 수 있다.In other words, there may be multiple mapping units that can be used to derive interval size information (820) based on the quantized probability value or probability index (852) and/or the quantized coding interval size (862) and/or the coding interval size index j.
추가적으로 언급하자면, 양자화부(850)가, 예를 들어 확률 값(842)(또는, 대안적으로, 결정부(840)가 생략된다면 확률 값(832))을 정수 값으로 매핑할 수 있다는 것에 주의해야 한다. 대안적으로, 양자화부(850)는 매핑 값(842)(또는, 대안적으로 결정부(840)가 선택적으로 생략된다면 값(832))을, 확률 값(832) 또는 확률 값(842)보다 낮은 수치 분해능(numeric resolution)을 가지는 값으로 매핑할 수 있다. 그러나, 양자화된 확률 값(852)이 확률 인덱스(예를 들어 i)의 형태, 즉, 정수 숫자 표현의 형태를 취하는 것이 바람직하고, 이것은 룩업 테이블(예를 들어 RangeTabLPS)의 엔트리를 지정하기 위해 사용될 수 있다.Additionally, it should be noted that the quantization unit (850) may map, for example, the probability value (842) (or, alternatively, the probability value (832) if the decision unit (840) is omitted) to an integer value. Alternatively, the quantization unit (850) may map the mapped value (842) (or, alternatively, the value (832) if the decision unit (840) is optionally omitted) to the probability value (832) or to a value having a lower numeric resolution than the probability value (842). However, it is preferred that the quantized probability value (852) take the form of a probability index (e.g., i), i.e., an integer numeric representation, which may be used to designate an entry in a lookup table (e.g., RangeTabLPS).
양자화부(860)는 상이한 결과를 동반할 수 있다. 코딩 인터벌 크기 정보(812)는, 예를 들어 양자화된 코딩 인터벌 크기 정보(862)로 양자화될 수 있는데, 이것은 코딩 인터벌 크기 정보(812)보다 낮은 분해능을 포함한다. 다르게 말하면, 코딩 인터벌 크기 정보(812)의 값의 인터벌은 양자화된 코딩 인터벌 크기 정보(862)의 개별적인 양자화된 값으로 매핑될 수 있고, 여기에서 양자화는, 예를 들어 선형적이거나 비-선형적일 수 있다. 대안적으로 또는 추가적으로, 코딩 인터벌 크기 정보는 코딩 인터벌 크기 인덱스들 j로, 즉, 정수 값의 연속적인 범위로 매핑될 수 있는데, 이것은 룩업 테이블의 엔트리를 선택하기 위한 테이블 인덱스로서 직접적으로 사용될 수 있다. 그러나, 일부 경우에서는, 상이한 값으로 양자화된, 양자화된 코딩 인터벌 크기 정보 및 상이한 인덱스들 j로(즉, 후속하는 정수 값으로) 양자화된, 양자화된 코딩 인터벌 크기 정보 양자 모두가 사용될 수 있다는 것에 주의해야 한다.The quantization unit (860) may have different results. The coding interval size information (812) may be quantized, for example, into quantized coding interval size information (862), which has a lower resolution than the coding interval size information (812). In other words, intervals of values of the coding interval size information (812) may be mapped to individual quantized values of the quantized coding interval size information (862), where the quantization may be linear or non-linear, for example. Alternatively or additionally, the coding interval size information may be mapped to coding interval size indices j, i.e., a continuous range of integer values, which may be used directly as table indices for selecting entries in the lookup table. However, it should be noted that in some cases, both quantized coding interval size information quantized to different values and quantized coding interval size information quantized to different indices j (i.e., to subsequent integer values) may be used.
앞에서 언급된 바와 같이, 매핑부(870)는 본 명세서에서 설명되는 상이한 개념들을 사용하여 구현될 수 있다.As mentioned above, the mapping unit (870) can be implemented using different concepts described herein.
결론적으로, 인터벌 크기 결정 코어(800)는 본 명세서에서 설명되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다. 더욱이, 인터벌 크기 결정 코어(800)는, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다.In conclusion, the interval size determination core (800) may be used in any of the arithmetic encoders and arithmetic decoders described herein. Furthermore, the interval size determination core (800) may be optionally supplemented by any of the features, functionality and details disclosed herein, taken individually or in combination.
9. 도 9에 따른 인터벌 크기 결정 코어9. Interval size determination core according to Fig. 9
도 9는 본 명세서에 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있는 인터벌 크기 결정 코어(900)의 개략적인 블록도를 도시한다.FIG. 9 illustrates a schematic block diagram of an interval size determination core (900) that may be used in any of the arithmetic encoders and arithmetic decoders disclosed herein.
인터벌 크기 결정 코어(900)는 상태 변수 값(910)을 수신하고 인터벌 크기 정보(920)를 제공하도록 구성된다. 일반적으로 말하자면, 인터벌 크기 결정 코어(900)는 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한(또는 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한) 인터벌 크기 정보(920)를, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값(910)에 기반하여 유도하도록 구성된다. 인터벌 크기 결정 코어(900)는, 제 1 상태 변수(업데이트된 상태 변수일 수 있음)가 그 안에서 스케일링 및/또는 반올림되는 선택적인 제 1 스케일링 및/또는 반올림부(930)를 포함한다. 인터벌 크기 결정 코어(900)는, 제 2 상태 변수가 그 안에서 스케일링 및/또는 반올림되는 선택적인 제 2 스케일링 및/또는 반올림부(934)를 더 포함한다. 이에 따라서, 선택적인 제 1 스케일링 및/또는 반올림부는 제 1 스케일링된 및/또는 반올림된 상태 변수(932)를 제공하고, 선택적인 제 2 스케일링 및/또는 반올림부(934)는 제 2 스케일링된 및/또는 반올림된 상태 변수(934)를 제공한다.The interval size determination core (900) is configured to receive state variable values (910) and provide interval size information (920). Generally speaking, the interval size determination core (900) is configured to derive interval size information (920) for arithmetic encoding of one or more symbol values to be encoded (or for arithmetic decoding of one or more symbol values to be decoded) based on a plurality of state variable values (910) representing statistics of a plurality of previously encoded symbol values having different adaptation time constants. The interval size determination core (900) includes an optional first scaling and/or rounding unit (930) in which a first state variable (which may be an updated state variable) is scaled and/or rounded. The interval size determination core (900) further includes an optional second scaling and/or rounding unit (934) in which a second state variable is scaled and/or rounded. Accordingly, the optional first scaling and/or rounding unit provides a first scaled and/or rounded state variable (932), and the optional second scaling and/or rounding unit (934) provides a second scaled and/or rounded state variable (934).
인터벌 크기 결정 코어(900)는 룩업 테이블을 사용하는 제 1 매핑부(940)를 더 포함한다. 제 1 매핑부(940)는 제 1 상태 변수, 또는 제 1 상태 변수의 스케일링된 버전 및/또는 반올림된 버전(932)을, 룩업 테이블(예를 들어, 룩업 테이블 LUT1 또는 R의 복수 개의 상이한 값에 대한 R LUT1을 규정하는 2-차원 룩업 테이블)을 사용하여 매핑한다. 이에 따라서, 제 1 확률 값(942)이 제 1 매핑부(940)에 의해 획득된다. 인터벌 크기 결정 코어(900)는 제 2 매핑부(950)를 더 포함하는데, 이것은 제 2 상태 변수, 또는 그것의 스케일링된 버전 및/또는 반올림된 버전(934)을, 룩업 테이블(예를 들어, 룩업 테이블 LUT1 또는 R의 복수 개의 상이한 값에 대한 R LUT1을 규정하는 2-차원 룩업 테이블)을 사용하여 매핑한다. 이에 따라서, 제 2 확률 값(952)이, 제 2 상태 변수 값에 기반하여, 또는 스케일링된 버전 및/또는 그것의 반올림된 버전(934)에 기반하여 제 2 매핑부(950)에 의해 획득된다.The interval size determination core (900) further includes a first mapping unit (940) using a lookup table. The first mapping unit (940) maps the first state variable, or a scaled version and/or a rounded version (932) of the first state variable, using a lookup table (e.g., a two-dimensional lookup table defining R LUT1 for a plurality of different values of the lookup table LUT1 or R). Accordingly, a first probability value (942) is obtained by the first mapping unit (940). The interval size determination core (900) further includes a second mapping unit (950) which maps the second state variable, or a scaled version and/or a rounded version (934) thereof, to a lookup table (e.g., a two-dimensional lookup table defining R LUT1 for a plurality of different values of the lookup table LUT1 or R). A two-dimensional lookup table (LUT1) is used to map the second probability value (952). Accordingly, the second probability value (952) is obtained by the second mapping unit (950) based on the second state variable value, or based on a scaled version and/or a rounded version thereof (934).
마지막으로, 인터벌 크기 정보(920)가 제 1 확률 값(942)에 기반하여 그리고 제 2 확률 값(952)에 기반하여 획득된다.Finally, interval size information (920) is obtained based on the first probability value (942) and the second probability value (952).
그러나, 제 1 확률 값(942) 및 제 2 확률 값(952)의 결정이, 제 1 매핑부(940) 및 제 2 매핑부(950)를 사용할 때 어떤 양들이 얻어질 수 있는지의 예로서만 여겨져야 한다는 것에 주의해야 한다. 반대로, 제 1 매핑부(940) 및 제 2 매핑부(950)를 사용하여 다른 양, 예를 들어 인터벌 크기 정보(920)에 대한 기여도와 같은 것을 더 유도하는 것이 가능할 것이다.However, it should be noted that the determination of the first probability value (942) and the second probability value (952) should only be considered as examples of what quantities can be obtained when using the first mapping unit (940) and the second mapping unit (950). Conversely, it may be possible to further derive other quantities, such as contributions to the interval size information (920), by using the first mapping unit (940) and the second mapping unit (950).
그러나, 도 9에서 설명되는 인터벌 크기 결정 코어(900)가 본 명세서에서 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다. 더욱이, 인터벌 크기 결정 코어(900)가, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다.However, it should be noted that the interval size determination core (900) described in FIG. 9 may be used in any of the arithmetic encoders and arithmetic decoders disclosed herein. Furthermore, it should be noted that the interval size determination core (900) may be optionally supplemented by any of the features, functionality and details described herein, either individually or in combination.
10. 도 10a 및 도 10b에 따르는 인터벌 크기 결정10. Determining the interval size according to Fig. 10a and Fig. 10b
도 10a는, 예를 들어 인터벌 크기 결정 코어에서 사용될 수 있는, 인터벌 크기 정보의 결정을 위한 개념의 개략적인 표현을 보여준다.Figure 10a shows a schematic representation of a concept for determining interval size information, which may be used, for example, in an interval size determination core.
도시된 바와 같이, 도 10a의 개념은 복수 개의 상태 변수 값(1010a, 1010b)을 수신하는데, 이것은 상태 변수 값(910)에 대응할 수 있고 업데이트된 상태 변수 값일 수도 있다. 더 나아가, 이러한 개념(1000)은 인터벌 크기 정보(920)에 대응할 수 있는 인터벌 크기 정보(1020)를 제공한다. 이러한 개념(1000)은 제 1 매핑부(1040)를 포함하는데, 이것은 제 1 상태 변수 값(1010a)(또는 그것의 스케일링된 버전 및/또는 반올림된 버전)을, 제 1 확률 값(942)에 대응할 수 있는 제 1 확률 값(1042)으로 매핑한다. 더 나아가, 이러한 개념(1000)은 제 2 매핑부(1050)를 포함하는데, 이것은 매핑 제 2 상태 변수 값(1010b)(또는 그것의 스케일링된 버전 및/또는 반올림된 버전)을 제 2 확률 값(1052)으로 매핑한다. 더 나아가, 이러한 개념(1000)은 제 1 확률 값(1042) 및 제 2 확률 값(1052)의 결합을 포함하는데, 여기에서 이러한 결합은, 예를 들어 수학식 7을 사용하여 수행될 수 있다. 이에 따라서, 결합부(1060)는 결합된 확률 값(1062)을 제공한다. 더욱이, 이러한 개념(1000)은 결합된 확률 값(1062)의 승산부(1070)를 포함하는데, 여기에서 승산은 코딩 인터벌 크기 값 R을 사용하여 이루어질 수 있다. 이에 따라서, 인터벌 크기 정보(1020)는 결합된 확률 값(1062a) 및 코딩 인터벌 크기 값 R의 승산(1070)에 의해서 얻어진다. 인터벌 크기 정보(1020)는, 예를 들어 가능성이 적은 심볼 또는 가능성이 가장 낮은 심볼과 연관된 코딩 인터벌의 크기(또는, 대안적으로, 가능성이 높은 심볼 또는 가능성이 가장 높은 심볼과 연관된 코딩 인터벌의 크기)를 기술할 수 있다. 선택적으로, 이러한 개념(1000)은 가능성이 적은 심볼 또는 가능성이 가장 낮은 심볼의 확률을 유도하기 위한 메커니즘을 포함할 수 있고(예를 들어, 결합부(1060) 및 승산부(1070) 사이에서), 또는 가능성이 적은 심볼 또는 가능성이 가장 낮은 심볼과 연관된 인터벌 크기 정보를 승산부(1070)의 결과에 기반하여 유도하기 위한 메커니즘을 포함할 수 있다.As illustrated, the concept of FIG. 10a receives a plurality of state variable values (1010a, 1010b), which may correspond to the state variable value (910) or may be updated state variable values. Furthermore, the concept (1000) provides interval size information (1020), which may correspond to the interval size information (920). The concept (1000) includes a first mapping unit (1040), which maps the first state variable value (1010a) (or a scaled version and/or a rounded version thereof) to a first probability value (1042), which may correspond to the first probability value (942). Furthermore, the concept (1000) includes a second mapping unit (1050) that maps the second state variable value (1010b) (or a scaled and/or rounded version thereof) to a second probability value (1052). Furthermore, the concept (1000) includes a combination of the first probability value (1042) and the second probability value (1052), wherein the combination can be performed using, for example, Equation 7. Accordingly, the combination unit (1060) provides a combined probability value (1062). Furthermore, the concept (1000) includes a multiplication unit (1070) of the combined probability value (1062), wherein the multiplication can be performed using a coding interval size value R. Accordingly, the interval size information (1020) is obtained by the multiplication (1070) of the combined probability value (1062a) and the coding interval size value R. The interval size information (1020) can describe, for example, the size of the coding interval associated with a less probable symbol or a least probable symbol (or, alternatively, the size of the coding interval associated with a more probable symbol or a most probable symbol). Optionally, this concept (1000) can include a mechanism for deriving the probability of the less probable symbol or the least probable symbol (e.g., between the combiner (1060) and the multiplier (1070)), or can include a mechanism for deriving the interval size information associated with the less probable symbol or the least probable symbol based on the result of the multiplier (1070).
그러므로, 도 10a에 따른 개념(1000)은 도 9에 대해서 설명된 바와 같은 기능성을 구현할 수 있다.Therefore, the concept (1000) according to Fig. 10a can implement the functionality as described for Fig. 9.
그러나, 이러한 개념(1000)이 본 명세서에서 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다.However, it should be noted that this concept (1000) can be used in any of the arithmetic encoders and arithmetic decoders disclosed herein.
또한, 이러한 개념(1000)은, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다.Additionally, these concepts (1000) may be optionally supplemented by any of the features, functionality and details disclosed herein, taken individually or in combination.
도 10b는 인터벌 크기 정보(1084)를 제 1 상태 변수 값(1082a) 및 제 2 상태 변수 값(1082b)에 기반하여 제공하기 위한 개념(1080)의 개략적인 블록도를 도시한다. 이러한 개념(1080)은 제 1 상태 변수 값(1082a), 또는 그것의 스케일링된 및/또는 양자화된 버전을 제 1 인터벌 크기 기여도(1086a)에 매핑(1085a)하는 것을 포함한다. 더욱이, 이러한 개념(1080)은 제 2 매핑(1085b)을 포함하는데, 이것은 제 2 상태 변수 값(1082b), 또는 그것의 스케일링된 및/또는 양자화된 버전을 제 2 인터벌 크기 기여도(1086b)에 매핑한다.FIG. 10b illustrates a schematic block diagram of a concept (1080) for providing interval size information (1084) based on a first state variable value (1082a) and a second state variable value (1082b). The concept (1080) includes mapping (1085a) the first state variable value (1082a), or a scaled and/or quantized version thereof, to a first interval size contribution (1086a). Furthermore, the concept (1080) includes a second mapping (1085b), which maps the second state variable value (1082b), or a scaled and/or quantized version thereof, to a second interval size contribution (1086b).
제 1 매핑(1085a) 및 제 2 매핑(1085b)은, 예를 들어 2-차원 룩업 테이블을 사용하여 상기 매핑을 수행할 수 있다. 2-차원 룩업 테이블은, 예를 들어 코딩 인터벌 크기 정보 R 및 R의 복수 개의 상이한 값에 대한 1-차원 룩업 테이블(예를 들어 LUT1) 사이의 곱을 규정할 수 있다. 다르게 말하면, 매핑(1085a)에서 사용되는, 2-차원 룩업 테이블의 각각의 행 또는 각각의 열은, 본 명세서에서 설명되는 바와 같은 룩업 테이블(LUT1), 및 상기 행 또는 열과 연관된 개별적인 코딩 인터벌 크기 값 사이의 곱을 규정할 수 있다. 동일한 내용이 제 2 매핑(1085b)에서 사용되는 2-차원 룩업 테이블에 대해서도 성립하는데, 여기에서 상기 룩업 테이블은 제 1 매핑(1085a)에서 사용된 룩업 테이블과 동일할 수 있거나 상기 룩업 테이블과 다를 수 있다. 더욱이, 코딩 인터벌 크기 정보가 제 1 매핑(1085a) 및 제 2 매핑(1085b) 내에서, 적절한 2-차원 룩업 테이블의 원소를 선택하기 위해서 사용될 수 있다는 것에 주의해야 한다(여기에서, 예를 들어 제 1 룩업 테이블 인덱스는 개별적인 상태 변수 값에 기반할 수 있고, 제 2 룩업 테이블 인덱스는 코딩 인터벌 크기 값(또는 그것의 양자화된 버전 Qr(R))에 기반할 수 있음).The first mapping (1085a) and the second mapping (1085b) may perform the mapping using, for example, a two-dimensional lookup table. The two-dimensional lookup table may, for example, define a product between a one-dimensional lookup table (e.g., LUT1) for a plurality of different values of the coding interval size information R and R. In other words, each row or each column of the two-dimensional lookup table used in the mapping (1085a) may define a product between a lookup table (LUT1), as described herein, and a respective coding interval size value associated with the row or column. The same holds true for the two-dimensional lookup table used in the second mapping (1085b), wherein the lookup table may be the same as the lookup table used in the first mapping (1085a) or may be different from the lookup table. Furthermore, it should be noted that the coding interval size information can be used to select elements of appropriate two-dimensional lookup tables within the first mapping (1085a) and the second mapping (1085b) (wherein, for example, the first lookup table index can be based on individual state variable values and the second lookup table index can be based on coding interval size values (or their quantized version Qr(R)).
이에 따라서, 인터벌 크기 정보(1084)는 매우 낮은 계산 복잡도로 획득될 수 있다. 더욱이, 매핑(1085a, 1085b) 및 그 안에서 인터벌 크기 기여도(1086a, 1086b)가 결합되는 결합부(1088) 사이에, 가능성이 적은 심볼 또는 가능성이 가장 낮은 심볼과 연관된 인터벌의 인터벌 크기에 대한 기여도를 결정하기 위해서 적절한 처리가 삽입될 수 있다는 것에 주의해야 한다. 그러나, 대안적으로는, 가능성이 가장 낮은 심볼 또는 가능성이 적은 심볼에 대한 인터벌 크기를 인터벌 크기 기여도(1086a, 1086b)의 결합(1088)의 결과에 기반하여 결정하기 위한 후처리는 결합부(1088) 이후에 삽입될 수도 있다.Accordingly, the interval size information (1084) can be obtained with very low computational complexity. Furthermore, it should be noted that between the mappings (1085a, 1085b) and the combining portion (1088) where the interval size contributions (1086a, 1086b) are combined, appropriate processing may be inserted to determine the contribution of the interval associated with the least probable symbol or the least probable symbol to the interval size. However, alternatively, postprocessing to determine the interval size for the least probable symbol or the least probable symbol based on the result of the combining (1088) of the interval size contributions (1086a, 1086b) may be inserted after the combining portion (1088).
결론적으로, 도 10b에 따른 개념(1080)은, 상태 변수 값(1082a, 1082b)에 기반하여 그리고 또한 코딩 인터벌 크기 정보 또는 코딩 인터벌 크기 값에 의존하여 인터벌 크기 정보(1086)를 유도하기 위하여 사용될 수 있다.In conclusion, the concept (1080) according to Fig. 10b can be used to derive interval size information (1086) based on state variable values (1082a, 1082b) and also depending on coding interval size information or coding interval size values.
더욱이, 이러한 개념(1080)이 본 명세서에서 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다.Moreover, it should be noted that this concept (1080) can be used in any of the arithmetic encoders and arithmetic decoders disclosed herein.
더욱이, 도 10b의 개념(1080)이, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다.Furthermore, it should be noted that the concept (1080) of FIG. 10b may be optionally supplemented by any of the features, functionality and details described herein, taken individually or in combination.
11. 도 11에 따른 인터벌 크기 결정 코어11. Interval size determination core according to Fig. 11
도 11은 본 발명의 일 실시형태에 따르는 인터벌 크기 결정 코어(1100)의 개략적인 블록도를 도시한다.FIG. 11 illustrates a schematic block diagram of an interval size determination core (1100) according to one embodiment of the present invention.
인터벌 크기 결정 코어는 복수 개의 (통상적으로 업데이트된) 상태 변수 값(1110)을 수신하고, 그것에 기반하여 인터벌 크기 정보(1120)를 제공한다. 일반적으로 말하자면, 인터벌 크기 결정 코어(1100)는 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한(또는 하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한) 인터벌 크기 정보를, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된(또는 이전에 디코딩된) 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값(1110)에 기반하여 유도하도록 구성된다. 인터벌 크기 결정 코어(1100)는 복수 개의 상태 변수 값(1110)에 기반하여 결합된 상태 변수 값(1132)을 유도하도록 구성되는 결합부(combination)/결합기(combiner)(1130)를 포함한다. 선택적으로, 인터벌 크기 결정 코어(1100)는 스케일링 및/또는 반올림부(1140)를 포함하고, 이것은 결합된 상태 변수 값(1132)을 스케일링 및/또는 반올림하여 스케일링된 및/또는 반올림된 결합된 상태 변수 값(1142)을 획득한다. 더욱이, 인터벌 크기 결정 코어(1100)는 룩업 테이블 기반 매핑부(1150)를 포함하는데, 이것은, 산술적 인코딩/디코딩을 위한 인터벌 크기(예를 들어, 예를 들어 중요도가 낮은(less-significant) 심볼 또는 중요도가 높은(more-significant) 심볼과 같은 특정한 심볼과 연관되는 인터벌의 예를 들어)를 기술하는 인터벌 크기 정보를 얻기 위하여, 결합된 상태 변수 값(1132), 또는 그것의 스케일링된 버전 및/또는 반올림된 버전(1142)을, 룩업 테이블을 사용하여 매핑하도록 구성된다. 그러나, 선택적으로, 룩업-테이블-기반 매핑부(1150)의 결과(1152)에 기반하여 인터벌 크기 정보(1120)를 유도하기 위하여 후처리(1160)가 사용될 수도 있다.An interval size determination core receives a plurality of (typically updated) state variable values (1110) and provides interval size information (1120) based thereon. Generally speaking, the interval size determination core (1100) is configured to derive interval size information for arithmetic encoding of one or more symbol values to be encoded (or for arithmetic decoding of one or more symbol values to be decoded) based on a plurality of state variable values (1110) representing statistics of a plurality of previously encoded (or previously decoded) symbol values having different adaptation time constants. The interval size determination core (1100) includes a combination/combiner (1130) configured to derive a combined state variable value (1132) based on the plurality of state variable values (1110). Optionally, the interval size determination core (1100) includes a scaling and/or rounding unit (1140) that scales and/or rounds the combined state variable value (1132) to obtain a scaled and/or rounded combined state variable value (1142). Furthermore, the interval size determination core (1100) includes a lookup table-based mapping unit (1150) that is configured to map the combined state variable value (1132), or a scaled version and/or a rounded version thereof (1142), using a lookup table to obtain interval size information describing interval sizes for arithmetic encoding/decoding (e.g., for example, intervals associated with particular symbols, such as less-significant symbols or more-significant symbols). However, optionally, post-processing (1160) may be used to derive interval size information (1120) based on the results (1152) of the lookup-table-based mapping unit (1150).
인터벌 크기 결정 코어(1100)가 본 명세서에서 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다. 더욱이, 인터벌 크기 결정 코어(11)가, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다.It should be noted that the interval size determination core (1100) may be used in any of the arithmetic encoders and arithmetic decoders disclosed herein. Furthermore, it should be noted that the interval size determination core (11) may be optionally supplemented by any of the features, functionality and details described herein.
12. 도 12에 따른 상태 변수 업데이트12. Update state variables according to Fig. 12
도 12는 본 발명의 일 실시형태에 따르는 상태 변수 업데이트의 개략적인 블록도를 도시한다. 상태 변수 업데이트부(state variable update; 1200)(이것은 상태 변수 업데이트기(updater)라고도 간주될 수 있음)는 심볼 값(1210)을 수신하도록 구성되는데, 이것은 인코딩될 심볼의 심볼 값 또는 이전에 디코딩된 심볼의 심볼 값(또는 이전에 인코딩된 심볼의 심볼 값)일 수 있다. 더욱이, 상태 변수 업데이트부(1200)는 하나 이상의 이전에 결정된 상태 변수 값(1212)을 수신하고 하나 이상의 업데이트된 상태 변수 값(1220)을 제공하도록 구성될 수 있다. 특히, 상태 변수 업데이트부(1200)는 제 1 상태 변수 값을, 심볼 값(예를 들어, 인코딩될 심볼 또는 이전에 인코딩된 심볼 또는 이전에 디코딩된 심볼을 나타냄)에 의존하고 룩업 테이블을 사용하여 업데이트하도록 구성될 수 있다. 다르게 말하면, 상태 변수 업데이트부(1210)는 룩업-테이블-기반 상태 변수 업데이트부 또는 룩업-테이블-기반 상태 변수 업데이트부(1230)를 포함할 수 있다. 그러므로, 업데이트된 상태 변수 값은, 대응하는 이전에 결정된 상태 변수 값에 기반하여, 그리고 인코딩될 심볼 또는 이전에 인코딩된 심볼 또는 이전에 디코딩된 심볼에 기반하는 심볼 값을 고려하여 제공될 수 있다.FIG. 12 illustrates a schematic block diagram of a state variable update according to one embodiment of the present invention. A state variable update unit (1200) (which may also be considered a state variable updater) is configured to receive a symbol value (1210), which may be a symbol value of a symbol to be encoded or a symbol value of a previously decoded symbol (or a symbol value of a previously encoded symbol). Furthermore, the state variable update unit (1200) may be configured to receive one or more previously determined state variable values (1212) and provide one or more updated state variable values (1220). In particular, the state variable update unit (1200) may be configured to update a first state variable value depending on a symbol value (e.g., representing a symbol to be encoded or a previously encoded symbol or a previously decoded symbol) and using a lookup table. In other words, the state variable update unit (1210) may include a lookup-table-based state variable update unit or a lookup-table-based state variable update unit (1230). Therefore, the updated state variable value may be provided based on a corresponding previously determined state variable value and by considering a symbol value based on a symbol to be encoded or a previously encoded symbol or a previously decoded symbol.
이에 따라서, 상태 변수 업데이트부(1200)는 하나 이상의 업데이트된 상태 변수 값을 제공할 수 있다. 복수 개의 업데이트된 상태 변수 값이 결정되어야 한다면, 룩업-테이블-기반 상태 변수 업데이트가 각각의 상태 변수 값에 대하여 개별적으로 수행될 수 있다(그러나, 여기에서, 상이한 스케일링 파라미터 및/또는 양자화 기능성을 가질 수 있는 동일한 메커니즘 및/또는 동일한 룩업 테이블이 사용될 수도 있음).Accordingly, the state variable update unit (1200) may provide one or more updated state variable values. If multiple updated state variable values are to be determined, the lookup-table-based state variable update may be performed individually for each state variable value (however, here, the same mechanism and/or the same lookup table may be used, which may have different scaling parameters and/or quantization functionality).
그러나, 본 명세서에서 설명되는 상태 변수 업데이트부(1200)는 본 명세서에 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다. 더욱이, 그러나, 상태 변수 업데이트부(1200)가, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다.However, the state variable update unit (1200) described herein may be used in any of the arithmetic encoders and arithmetic decoders disclosed herein. Furthermore, however, it should be noted that the state variable update unit (1200) may be optionally supplemented by any of the features, functionality and details described herein, either individually or in combination.
13. 도 13에 따른 인터벌 크기 결정 코어13. Interval size determination core according to Fig. 13
도 13은 본 발명의 일 실시형태에 따르는 인터벌 크기 결정 코어(1300)의 개략적인 블록도를 도시한다.FIG. 13 illustrates a schematic block diagram of an interval size determination core (1300) according to one embodiment of the present invention.
인터벌 크기 결정 코어는 하나 이상의 상태 변수 값(1310)을 수신하는데, 이것은, 예를 들어 업데이트된 상태 변수 값일 수 있다. 더 나아가, 인터벌 크기 결정 코어는, 하나 이상의 상태 변수 값(1310)에 기반하여, 인터벌 크기 값(1320)을 제공한다.The interval size determination core receives one or more state variable values (1310), which may be, for example, updated state variable values. Furthermore, the interval size determination core provides an interval size value (1320) based on the one or more state variable values (1310).
인터벌 크기 결정 코어는 룩업 테이블 평가 메커니즘(1330)을 포함하는데, 이것은 하나 이상의 상태 변수 값(1310)에 기반할 수 있는 확률 인덱스(1332)를 수신하고, 인터벌 크기 값(1320)을 제공한다.The interval size determination core includes a lookup table evaluation mechanism (1330), which receives a probability index (1332), which may be based on one or more state variable values (1310), and provides an interval size value (1320).
예를 들어, 확률 인덱스(1332)는 하나 이상의 (업데이트된) 상태 변수 값으로부터, 확률 인덱스 유도부(1340)(이것은 스케일링부 및/또는 반올림부 및/또는 양자화부를 포함할 수 있음)를 사용하여 유도될 수 있다.For example, a probability index (1332) can be derived from one or more (updated) state variable values using a probability index derivation unit (1340) (which may include a scaling unit and/or a rounding unit and/or a quantization unit).
예를 들어, 하나 이상의 업데이트된 상태 변수 값(1310)은 본 명세서에 개시되는 산술 인코더 또는 산술 디코더에서 결정될 수 있고, 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타낼 수 있다.For example, one or more updated state variable values (1310) may be determined in an arithmetic encoder or arithmetic decoder disclosed herein and may represent statistics of a plurality of previously encoded symbol values.
일반적으로 말하자면, 인터벌 크기 결정 코어(1300)는 베이스 룩업 테이블(1350)을 사용하여 인터벌 크기 값(1320)을 결정하도록 구성된다. 룩업 테이블 평가 메커니즘은, 하나 이상의 상태 변수 값에 기반하여 선택된 확률 인덱스(1332)가 제 1 범위 내에 있다면, 결정된 인터벌 크기 값이 베이스 룩업 테이블의 원소(1350) 또는 베이스 룩업 테이블의 원소의 반올림된 버전(1350)과 같아지도록, 그리고 확률 인덱스(1332)가 제 2 범위 내에 있다면, 결정된 인터벌 크기 값이 베이스 룩업 테이블의 원소(1350)의 스케일링(1360)(및 선택적으로 반올림)을 사용하여 획득되도록, 인터벌 크기 값(1320)을 결정하도록 구성될 수 있다. 이에 따라서, 인터벌 크기 값(1320)은 하나 이상의 심볼의 산술적 인코딩 또는 산술적 디코딩을 수행하기 위해 사용될 수 있다.Generally speaking, the interval size determination core (1300) is configured to determine an interval size value (1320) using a base lookup table (1350). The lookup table evaluation mechanism can be configured to determine the interval size value (1320) such that if a selected probability index (1332) based on one or more state variable values is within a first range, the determined interval size value is equal to an element (1350) of the base lookup table or a rounded version (1350) of the element of the base lookup table, and if the probability index (1332) is within a second range, the determined interval size value is obtained using scaling (1360) (and optionally rounding) of the element (1350) of the base lookup table. Accordingly, the interval size value (1320) can be used to perform arithmetic encoding or arithmetic decoding of one or more symbols.
다르게 말하면, 예를 들어 도 8에 도시된 바와 같이(선택적인 결정부(840) 및 양자화부(850)와 결합된 제 1 신호 처리 경로(880) 또는 제 2 신호 처리 경로(890)), 하나 이상의 (업데이트된) 상태 변수 값으로부터 유도될 수 있는 확률 인덱스(1332)는, 베이스 룩업 테이블의 엔트리가 "그대로(as is)" 사용되는지 또는 스케일링(1360)되어 사용되는지 여부를 판정하기 위해서 사용될 수 있다(이것은 확률 인덱스(1332)에 의해 결정될 수 있음).In other words, for example, as illustrated in FIG. 8 (the first signal processing path (880) or the second signal processing path (890) in combination with the optional decision unit (840) and the quantization unit (850)), a probability index (1332) that can be derived from one or more (updated) state variable values can be used to determine whether an entry in the base lookup table is used "as is" or scaled (1360) (which can be determined by the probability index (1332)).
다르게 말하면, 확률 인덱스(1332)는, 개략적인 방식으로 참조 번호 1370에 의해 표시되는 것처럼 베이스 룩업 테이블의 어떤 원소(1350)가 선택되는지, 및 참조 번호 1380에 개략적으로 표시되는 것처럼 베이스 룩업 테이블(1350)의 이러한 선택된 엔트리의 스케일링이 수행되는지 여부 양자 모두를 판정할 수 있다. 예를 들어, 베이스 룩업 테이블(1370)의 엔트리를 선택하는 것은 확률 인덱스(1332)의 하나 이상의 최하위 비트에 의해 결정될 수 있고, 스케일링(1360)이 수행되는지 여부의 판정은 확률 인덱스(1332)의 하나 이상 최상위 비트에 기반하여 이루어질 수 있다. 그러나, 비트들의 그룹을 평가하는 것이 아니라, 베이스 룩업 테이블(1350)의 엔트리의 선택은 확률 인덱스(1332)를 미리 결정된 값으로 나눈 나눗셈의 나눗셈 나머지에 의해 결정될 수 있고, 및 스케일링(1360)이 수행되는지 여부의 결정은 복수 개의 범위들 중 어떤 범위 내에 현재 고려되는 확률 인덱스 값이 속하는지의 결정에 의존하여 이루어질 수 있다.In other words, the probability index (1332) may determine both which element (1350) of the base lookup table is selected, as schematically indicated by
더욱이, 선택적으로, 예를 들어 베이스 룩업 테이블이 2-차원 테이블이라면, 코딩 인터벌 크기 정보(예를 들어, R)가 베이스 룩업 테이블(1350)의 엔트리를 선택하는 데에 고려될 수 있다는 것에 주의해야 한다. 다른 선택적인 대체예에서, 코딩 인터벌 크기 정보(예를 들어, R)는, 인터벌 크기 값(1320)을 얻기 위해서, 코딩 인터벌 크기 정보에 의존하는 추가적인 스케일링이 수행되어야 하는지(예를 들어 베이스 룩업 테이블의 선택된 엔트리에 적용되어야 하는지) 여부를 결정하기 위하여 사용될 수 있다.Furthermore, it should be noted that optionally, for example if the base lookup table is a two-dimensional table, the coding interval size information (e.g., R) may be considered in selecting an entry of the base lookup table (1350). In another optional alternative, the coding interval size information (e.g., R) may be used to determine whether additional scaling depending on the coding interval size information should be performed (e.g., applied to a selected entry of the base lookup table) to obtain the interval size value (1320).
그러나, 본 명세서에서 설명되는 인터벌 크기 결정 코어(1300)가 인터벌 크기 값을 유도하기 위해서, 본 명세서에 개시되는 산술 인코더 및 산술 디코더 중 임의의 것에서 사용될 수 있다는 것에 주의해야 한다.However, it should be noted that the interval size determination core (1300) described herein may be used in any of the arithmetic encoders and arithmetic decoders disclosed herein to derive interval size values.
더욱이, 인터벌 크기 결정 코어(1300)가, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다.Furthermore, it should be noted that the interval size determination core (1300) may optionally be supplemented by any of the features, functionality and details described herein.
14. 인터벌 크기 결정 코어14. Interval size determination core
도 14는 본 발명의 일 실시형태에 따르는 인터벌 크기 결정 코어(1400)의 개략적인 블록도를 도시한다.FIG. 14 illustrates a schematic block diagram of an interval size determination core (1400) according to one embodiment of the present invention.
인터벌 크기 결정 코어(1400)는 하나 이상의 상태 변수 값(1410)을 수신하는데, 이것은, 예를 들어 업데이트된 상태 변수 값일 수 있다. 더 나아가, 인터벌 크기 결정 코어(1400)는, 하나 이상의 상태 변수 값(1410)에 기반하여, 인터벌 크기 값(1420)을 제공한다.The interval size determination core (1400) receives one or more state variable values (1410), which may be, for example, updated state variable values. Furthermore, the interval size determination core (1400) provides an interval size value (1420) based on the one or more state variable values (1410).
인터벌 크기 결정 코어(1400)는 룩업 테이블 평가 메커니즘(1430)을 포함하는데, 이것은 하나 이상의 상태 변수 값(1410)에 기반할 수 있는 확률 인덱스(1432)를 수신하고, 인터벌 크기 정보 또는 인터벌 크기 값(1420)을 제공한다.The interval size determination core (1400) includes a lookup table evaluation mechanism (1430), which receives a probability index (1432) that may be based on one or more state variable values (1410), and provides interval size information or an interval size value (1420).
예를 들어, 확률 인덱스(1432)는 하나 이상의 (업데이트된) 상태 변수 값으로부터, 확률 인덱스 유도부(1440)를 사용하여 유도될 수 있다.For example, a probability index (1432) can be derived from one or more (updated) state variable values using a probability index derivation unit (1440).
예를 들어, 하나 이상의 업데이트된 상태 변수 값(1410)은 본 명세서에 개시되는 산술 인코더 또는 산술 디코더에서 결정될 수 있고, 복수 개의 이전에 인코딩된 심볼 값 및/또는 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타낼 수 있다.For example, one or more updated state variable values (1410) may be determined in an arithmetic encoder or an arithmetic decoder disclosed herein and may represent statistics of a plurality of previously encoded symbol values and/or a plurality of previously decoded symbol values.
일반적으로 말하자면, 인터벌 크기 결정 코어(1400)는 인터벌 크기 값(1420)을 확률 테이블(예를 들어, ProbTabLPS)을 사용하여, 하나 이상의 상태 변수 값(1410)으로부터 유도된 확률 값(예를 들어, 확률 인덱스(1432))에 기반하여, 그리고 코딩 인터벌 크기(예를 들어, 코딩 인터벌 크기 정보(1412)에 의해 설명됨)에 기반하여 결정하도록 구성된다. 예를 들어, 확률 테이블(1450)은, 복수 개의 상이한 확률 값(또는 확률 인덱스들(1432))의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한(예를 들어, 하나의 주어진 레퍼런스 코딩 인터벌 크기에 대한) 인터벌 크기를 기술한다. 도 14에 도시된 바와 같이, 확률 인덱스(1432)는, 예를 들어 확률 테이블의 어느 원소가 인터벌 크기 값(1420)을 제공하기 위한 기반으로서 사용되어야 하는지를 선택하기 위하여 사용될 수 있다. 다르게 말하자면, 확률 인덱스(1432)는 추가적인 처리를 위한 확률 테이블의 원소의 선택을 결정한다. 더욱이, 그 값에 의해서 확률 테이블의 선택된 엔트리가 스케일링부(1460)에서 스케일링되는 확률 인덱스(1432)가 결정된다. 일반적으로 말하자면, 현재의 확률 값이 복수 개의 확률 값들의 세트가 아니거나 및/또는 현재의 코딩 인터벌 크기가 주어진 (레퍼런스) 코딩 인터벌 크기와 다르다면, 인터벌 크기 결정 코어는 확률 테이블의 원소 또는 엔트리(예를 들어, 현재의 확률 값 또는 확률 인덱스(1432)에 의존하여 선택된 원소)를 스케일링하도록 구성될 수 있다. 다르게 말하면, 인터벌 크기 값(1420)은 확률 테이블(1450)의 선택된 엔트리로부터 스케일링부(1460)를 사용하여 유도될 수 있는데, 여기에서 스케일링부는 확률 값 또는 확률 인덱스(1432) 및 코딩 인터벌 크기 정보(1412) 양자 모두에 의존할 수 있다.Generally speaking, the interval size determination core (1400) is configured to determine an interval size value (1420) based on probability values (e.g., probability indices (1432)) derived from one or more state variable values (1410) using a probability table (e.g., ProbTabLPS) and based on a coding interval size (e.g., described by the coding interval size information (1412)). For example, the probability table (1450) describes an interval size for a set of a plurality of different probability values (or probability indices (1432)) and for a given coding interval size (e.g., for a given reference coding interval size). As illustrated in FIG. 14, the probability indices (1432) can be used, for example, to select which element of the probability table should be used as a basis for providing the interval size value (1420). In other words, the probability index (1432) determines the selection of an element of the probability table for further processing. Furthermore, the probability index (1432) by which the selected entry of the probability table is scaled in the scaling unit (1460) is determined by its value. Generally speaking, if the current probability value is not a set of multiple probability values and/or the current coding interval size is different from a given (reference) coding interval size, the interval size determination core may be configured to scale an element or entry of the probability table (e.g., an element selected depending on the current probability value or the probability index (1432)). In other words, the interval size value (1420) may be derived from the selected entry of the probability table (1450) using the scaling unit (1460), where the scaling unit may depend on both the probability value or the probability index (1432) and the coding interval size information (1412).
예를 들어, 확률 테이블(1450)의 엔트리는 하나의 코딩 인터벌 크기 및 확률 값 또는 확률 인덱스들의 주어진 범위와 연관될 수 있다(여기에서, 이러한 범위는 통상적으로 세 개 또는 그 이상의 상이한 확률 값 또는 확률 인덱스를 커버할 수 있고, 확률 테이블의 엔트리의 개수는 바람직하게는 2의 포텐시여서 계산 동작을 용이하게 만들 수 있음). 코딩 인터벌 크기(1412)가 확률 테이블(1450)의 엔트리가 연관되는 레퍼런스 코딩 인터벌 크기와 다르다면, 스케일링부(1460)는, 예를 들어 확률 테이블(1460)의 선택된 엔트리를 스케일링할 수 있다. 다르게 말하면, 실제 코딩 인터벌 크기(1412)가 레퍼런스 코딩 인터벌 크기(예를 들어, 확률 테이블(1450)의 엔트리가 연관되는 코딩 인터벌 크기)와 다르다면, 스케일링부(1460)는 이러한 편차를 고려할 수 있다(적어도, 레퍼런스 코딩 인터벌 크기 및 실제 코딩 인터벌 크기(1410) 사이의 편차가 코딩 인터벌 크기를 양자화하기 위해서 사용되는 양자화 인터벌의 크기를 초과하는 경우). 더욱이, 스케일링부(1460)는 확률 값 또는 확률 인덱스(1432)가 확률 테이블(1450)의 엔트리가 연관되는 확률 값 또는 확률 인덱스들의 범위 밖에 있는지 여부를 역시 고려할 수 있다. 예를 들어, 확률 테이블(1450)의 엔트리가 확률 인덱스들의 제 1 범위와 연관되지만 실제 확률 인덱스(1432)가 확률 인덱스들의 제 1 범위와 중첩되지 않는 인덱스들의 제 2 범위 내에 속한다면, 스케일링부(1460)는 이러한 발견 내용을 고려하고 추가적인 스케일링을 고려할 수 있다(레퍼런스 코딩 인터벌 크기로부터의 실제 코딩 인터벌 크기의 편차에 기반하는 스케일링에 추가하여).For example, an entry in the probability table (1450) may be associated with a given coding interval size and a given range of probability values or probability indices (wherein this range may typically cover three or more different probability values or probability indices, and the number of entries in the probability table is preferably a potentiometer of 2 to facilitate computational operations). If the coding interval size (1412) is different from the reference coding interval size to which the entry in the probability table (1450) is associated, the scaling unit (1460) may, for example, scale the selected entry in the probability table (1460). In other words, if the actual coding interval size (1412) is different from the reference coding interval size (e.g., the coding interval size to which an entry of the probability table (1450) is associated), the scaling unit (1460) may take this deviation into account (at least if the deviation between the reference coding interval size and the actual coding interval size (1410) exceeds the size of the quantization interval used to quantize the coding interval size). Furthermore, the scaling unit (1460) may also take into account whether the probability value or probability index (1432) is outside the range of probability values or probability indices to which an entry of the probability table (1450) is associated. For example, if an entry in the probability table (1450) is associated with a first range of probability indices, but the actual probability index (1432) falls within a second range of indices that does not overlap with the first range of probability indices, the scaling unit (1460) may take this finding into account and consider additional scaling (in addition to scaling based on the deviation of the actual coding interval size from the reference coding interval size).
결론적으로, 확률 값 또는 확률 인덱스(1432)가 확률 테이블 엔트리가 제공되지 않는 복수 개의 확률 값들의 세트 내에 속하고, 실제 코딩 인터벌 크기(1412)가 레퍼런스 코딩 인터벌 크기와 동일하다면(또는 레퍼런스 코딩 인터벌 크기와 동일한 값으로 양자화된다면), 인터벌 크기 결정 코어(1400)는 확률 테이블(1450)의 선택된 엔트리를 인터벌 크기 값(1420)으로 제공할 수 있다. 반면에, 확률 값 또는 확률 인덱스(1432)가 확률 테이블 엔트리가 제공되는 "복수 개의 확률 값의 세트" 의 밖에 있고 및/또는 실제 코딩 인터벌 크기(1412)가 레퍼런스 코딩 인터벌 크기로부터 벗어난다면(예를 들어, 실제 코딩 인터벌 크기가 상이한 값으로 양자화되는 만큼 벗어난다면), 스케일링부(1460)는 인터벌 크기 값(1420)을 얻기 위해서 확률 테이블(1450)의 선택된 엔트리를 스케일링한다.In conclusion, if the probability value or probability index (1432) belongs to a set of multiple probability values for which no probability table entry is provided, and the actual coding interval size (1412) is equal to the reference coding interval size (or is quantized to a value equal to the reference coding interval size), the interval size determination core (1400) can provide the selected entry of the probability table (1450) as the interval size value (1420). On the other hand, if the probability value or probability index (1432) belongs to a set of multiple probability values for which a probability table entry is provided and/or the actual coding interval size (1412) deviates from the reference coding interval size (e.g., deviates by a value equal to the actual coding interval size being quantized to a different value), the scaling unit (1460) scales the selected entry of the probability table (1450) to obtain the interval size value (1420).
이에 따라서, 인터벌 크기 값(1420)은, 예를 들어 1-차원 확률 테이블일 수 있는 비교적 작은 룩업 테이블(1450)을 사용하여 획득될 수 있고, 그 엔트리의 개수는 상이한 가능한 확률 값들 또는 확률 인덱스 값들의 개수보다 작다(예를 들어, 적어도 2의 인수만큼).Accordingly, the interval size value (1420) can be obtained using a relatively small lookup table (1450), which may be, for example, a one-dimensional probability table, the number of entries of which is smaller than the number of different possible probability values or probability index values (e.g., at least by a factor of 2).
그러나, 인터벌 크기 결정 코어(1400)가, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다. 더욱이, 인터벌 크기 결정 코어(1400)가 본 명세서에 개시되는 산술 인코더 또는 산술 디코더 중 임의의 것 내에서, 그리고 본 명세서에 개시되는 비디오 인코더 또는 비디오 디코더 중 임의의 것 내에서도 선택적으로 사용될 수 있다는 것에 주의해야 한다.However, it should be noted that the interval size determination core (1400) may optionally be supplemented by any of the features, functionality and details described herein. Furthermore, it should be noted that the interval size determination core (1400) may optionally be used within any of the arithmetic encoders or arithmetic decoders disclosed herein, and within any of the video encoders or video decoders disclosed herein.
15. 도 15에 따르는 인터벌 크기 결정 코어15. Interval size determination core according to Fig. 15
도 15는 본 발명의 일 실시형태에 따르는 인터벌 크기 결정 코어(1500)의 개략적인 블록도를 도시한다.FIG. 15 illustrates a schematic block diagram of an interval size determination core (1500) according to one embodiment of the present invention.
인터벌 크기 결정 코어(1500)는 하나 이상의 상태 변수 값을 수신하도록 구성되는데, 이것은, 예를 들어 업데이트된 상태 변수 값일 수 있다. 예를 들어, 하나 이상의 상태 변수 값(1510)은 결합된 상태 변수 값을 포함할 수 있다. 더욱이, 인터벌 크기 결정 코어(1500)는 인터벌 크기 값(1520)을 제공하도록 구성되는데, 이것은, 예를 들어 하위인터벌 폭 값, 예를 들어 RLPS일 수 있다.The interval size determination core (1500) is configured to receive one or more state variable values, which may be, for example, updated state variable values. For example, the one or more state variable values (1510) may include combined state variable values. Furthermore, the interval size determination core (1500) is configured to provide an interval size value (1520), which may be, for example, a subinterval width value, for example, R LPS .
인터벌 크기 결정 코어(1500)는 선택적인 매핑부 및/또는 반올림부를 포함하는데, 이것은, 복수 개의 이전에 처리된(예를 들어, 이전에 인코딩된 또는 이전에 디코딩된) 심볼 값의 통계를 나타내는 하나의 상태 변수 값을 결정하기 위하여 사용된다. 일반적으로 말하자면, 산술 인코더는 결합된 상태 변수 값으로부터(예를 들어, 하나 업데이트된 결합된 상태 변수 값(1510)으로부터), 또는 그것의 스케일링된 버전 및/또는 반올림된 버전으로부터, 인코딩될 심볼 값 또는 디코딩될 심볼 값의 산술적 인코딩 또는 산술적 디코딩을 위한 하위인터벌 폭 값(예를 들어, 인터벌 크기 값(1520))을 계산하도록 구성된다. 인터벌 크기 결정 코어(1500)는, 예를 들어 하나의 상태 변수 값(예를 들어, 결합된 상태 변수 값), 또는 그것의 스케일링된 버전 및/또는 반올림된 버전을 확률 값에 매핑하기 위하여 사용되는 1-차원 룩업 테이블(1550)을 포함한다. 예를 들어, 일차원 룩업 테이블(1550)의 엔트리는 결합된 상태 변수 값에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함한다. 더욱이, 인터벌 크기 결정 코어는 양자화부(1560)를 포함하는데, 이것은 산술적 인코딩 또는 산술적 디코딩의 코딩 인터벌의 크기(예를 들어, 인코딩될 심볼 값의 산술적 인코딩 이전의, 또는 디코딩될 심볼 값의 산술적 디코딩 이전의 크기)를 기술하는 코딩 인터벌 크기 정보(1512)를 양자화 레벨로 양자화하도록 구성된다. 이에 따라서, 양자화된 코딩 인터벌 크기 정보(1562)가 제공된다. 더 나아가, 스케일링부/승산부(1570)가 존재하는데, 이것은 확률 값 및 양자화 레벨(또는, 더 정확하게는, 양자화된 코딩 인터벌 크기 정보(1562)) 사이의 곱을 결정한다(예를 들어, 미리 계산된 곱의 룩업을 사용하거나, 승산을 사용함). 예를 들어, 확률 값은 일차원 룩업 테이블(1550)의 엔트리를 상태 변수 값 또는 그것의 스케일링된 버전 및/또는 반올림된 버전에 의존하여 선택함으로써 제공된다. 그러면, 이러한 확률 값(1552)이 (양자화된) 코딩 인터벌 크기 정보(1562)에 의존하여(즉, "양자화 레벨(quantization level)"에 의존하여) 스케일링될 수 있는데, 여기에서 스케일링은 확률 값 및 양자화 레벨 사이의 곱을 결정하는 것에 대응할 수 있다. 이에 따라서, 인터벌 크기 값(1520)이 효율적인 방식으로 제공되고, 일차원 룩업 테이블을 사용하면 충분하다.The interval size determination core (1500) comprises an optional mapping unit and/or rounding unit, which is used to determine a single state variable value representing statistics of a plurality of previously processed (e.g., previously encoded or previously decoded) symbol values. Generally speaking, the arithmetic encoder is configured to compute a subinterval width value (e.g., an interval size value (1520)) for arithmetic encoding or arithmetic decoding of a symbol value to be encoded or a symbol value to be decoded, from a combined state variable value (e.g., from an updated combined state variable value (1510)), or from a scaled version and/or a rounded version thereof. The interval size determination core (1500) comprises a one-dimensional lookup table (1550), which is used to map, for example, a single state variable value (e.g., a combined state variable value), or a scaled version and/or a rounded version thereof, to a probability value. For example, an entry of the one-dimensional lookup table (1550) includes a probability value for a different value interval of the value domain for the associated state variable value. Furthermore, the interval size determination core includes a quantization unit (1560), which is configured to quantize the coding interval size information (1512) describing the size of a coding interval of an arithmetic encoding or an arithmetic decoding (e.g., the size prior to the arithmetic encoding of the symbol value to be encoded, or prior to the arithmetic decoding of the symbol value to be decoded) into a quantization level. Accordingly, the quantized coding interval size information (1562) is provided. Furthermore, a scaling unit/multiplication unit (1570) is present, which determines a product between the probability value and the quantization level (or, more precisely, the quantized coding interval size information (1562)) (e.g., using a lookup of a precomputed product, or using a multiplication). For example, the probability values are provided by selecting entries of a one-dimensional lookup table (1550) depending on the state variable values or their scaled and/or rounded versions. These probability values (1552) can then be scaled depending on (quantized) coding interval size information (1562) (i.e. depending on the "quantization level"), where the scaling can correspond to determining the product between the probability values and the quantization level. Accordingly, the interval size values (1520) are provided in an efficient manner, and the use of a one-dimensional lookup table is sufficient.
더욱이, 본 명세서에서 설명되는 인터벌 크기 결정 코어(1500)가, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다. 더욱이, 인터벌 크기 결정 코어(1500)가 이제 본 명세서에서 설명되는 산술 인코더 또는 산술 디코더 중 임의의 것 내에서, 그리고 본 명세서에서 설명되는 비디오 인코더 또는 비디오 디코더 중 임의의 것 내에서도 선택적으로 사용될 수 있다는 것에 주의해야 한다.Furthermore, it should be noted that the interval size determination core (1500) described herein may be optionally supplemented by any of the features, functionality and details described herein, either individually or in combination. Furthermore, it should be noted that the interval size determination core (1500) may now be optionally used within any of the arithmetic encoders or arithmetic decoders described herein, and within any of the video encoders or video decoders described herein.
16. 도 16에 따르는 비디오 디코더16. Video decoder according to Fig. 16
도 16은 본 발명의 일 실시형태에 따르는, 비디오 디코더(1600)의 개략적인 블록도를 도시한다.FIG. 16 illustrates a schematic block diagram of a video decoder (1600) according to one embodiment of the present invention.
비디오 디코더(1600)는 인코딩된 비디오 정보를 수신하고, 이에 기반하여 디코딩된 비디오 정보(또는 디코딩된 비디오 콘텐츠)를 제공하도록 구성된다.A video decoder (1600) is configured to receive encoded video information and provide decoded video information (or decoded video content) based thereon.
인코딩된 비디오 정보(1610)(비디오 비트스트림이라고 여겨질 수 있음)는, 예를 들어 슬라이스-타입 정보를 포함할 수 있고 이진 시퀀스의 인코딩된 표현을 더 포함할 수 있다. 선택적으로, 인코딩된 비디오 정보(1610)는 추가적인 정보를 포함할 수 있지만, 이것은 본 발명에서 필수적인 것은 아니다.The encoded video information (1610) (which may be considered a video bitstream) may include, for example, slice-type information and may further include an encoded representation of a binary sequence. Optionally, the encoded video information (1610) may include additional information, although this is not essential to the present invention.
일반적으로 말하자면, 비디오 디코더는 복수 개의 비디오 프레임(예를 들어, 비디오 프레임의 시퀀스)을 디코딩하도록 구성되고, 비디오 디코더는, 예를 들어 하나 이상의 슬라이스(바람직하게는, 복수 개의 슬라이스)의 세트로 하위분할되는 비디오 프레임을 디코딩하도록 구성될 수 있다. 비디오 디코더는, 예를 들어, 인코딩된 비디오 정보(1610)에 포함되고 슬라이스가 이전의 프레임에 기반한 현재의 프레임의 비디오 콘텐츠의 예측이 존재하지 않는 독립적인 코딩 모드를 사용하거나, 또는 이전의 프레임의 픽셀의 하나의 블록에 기반한 픽셀들의 블록이 예측이 존재하는 단일-예측 모드를 사용하거나, 또는 하나 이상의 이전의 프레임의 두 개 이상의 블록에 기반한 픽셀들의 예측이 존재하는 양방향-예측(bi-predictive) 모드를 사용하여 인코딩되는지를 표시하는 슬라이스 타입 정보를 평가하여, 슬라이스의 디코딩의 연산의 모드를 선택하도록 구성될 수 있다(이것은, 예를 들어 "비디오 복원" 블록(1680)에 의해서 수행될 수 있음).Generally speaking, a video decoder is configured to decode a plurality of video frames (e.g., a sequence of video frames), and the video decoder can be configured to decode a video frame, for example, subdivided into a set of one or more slices (preferably, the plurality of slices). The video decoder can be configured to select a mode of operation for decoding a slice by evaluating slice type information, for example, which is included in the encoded video information (1610) and indicates whether the slice is encoded using an independent coding mode in which there is no prediction of the video content of the current frame based on a previous frame, or using a single-predictive mode in which there is prediction of a block of pixels based on a single block of pixels of a previous frame, or using a bi-predictive mode in which there is prediction of pixels based on two or more blocks of pixels of one or more previous frames (this can be performed, for example, by a "video restoration" block (1680)).
비디오 디코더(1600)는, 예를 들어 인코딩된 비디오 정보(1610) 내에 포함된 이진 시퀀스의 인코딩된 표현에 기반하여, 디코딩된 이진 시퀀스(1622)를 제공하도록("비디오 복원" 블록에서 사용되도록) 구성되는 산술 디코더(1620)를 포함한다. 산술 디코더는 제 1 소스 통계 값 결정부(1630) 및 제 2 소스 통계 값 결정부(1640)를 포함하는 것이 바람직하다. 이에 따라서, 산술 디코더(1620)는, 제 1 윈도우 크기를 사용하여(또는 제 1 시상수를 사용하여) 제 1 소스 통계 값(1632)(예를 들어 제 1 상태 변수 값)을 결정하고(여기에서, 예를 들어 본 명세서에서 설명되는 바와 같은 상태 변수 업데이트가 사용될 수 있음) 및 제 2 윈도우 크기를 사용하여(또는 제 2 시상수를 사용하여) 제 2 소스 통계 값(1642)(예를 들어 제 2 상태 변수 값)을 결정(여기에서, 예를 들어 본 명세서에서 설명되는 바와 같은 상태 변수 업데이트가 사용될 수 있음)하도록 구성된다. 또한, 산술 디코더는 결합부(1650)를 선택적으로 포함한다. 이에 따라서, 산술 디코더는 결합된 소스 통계 값(1652)(예를 들어 결합된 상태 변수 값)을 제 1 소스 통계값에 기반하여 그리고 제 2 소스 통계 값에 기반하여 결정하도록 구성될 수 있다.The video decoder (1600) includes an arithmetic decoder (1620) configured to provide a decoded binary sequence (1622) (to be used in a "video restoration" block), for example, based on an encoded representation of a binary sequence included in encoded video information (1610). The arithmetic decoder preferably includes a first source statistics value determination unit (1630) and a second source statistics value determination unit (1640). Accordingly, the arithmetic decoder (1620) is configured to determine a first source statistic value (1632) (e.g., a first state variable value) using a first window size (or using a first time constant) (wherein, for example, a state variable update as described herein may be used) and to determine a second source statistic value (1642) (e.g., a second state variable value) using a second window size (or using a second time constant) (wherein, for example, a state variable update as described herein may be used). Additionally, the arithmetic decoder optionally includes a combining unit (1650). Accordingly, the arithmetic decoder can be configured to determine a combined source statistic value (1652) (e.g., a combined state variable value) based on the first source statistic value and based on the second source statistic value.
더욱이, 산술 디코더(1620)는 범위 값 결정부(1660)를 포함하는 것이 바람직하다(이것은, 예를 들어 본 명세서에서 설명되는 인터벌 크기 결정 코어, 또는 본 명세서에서 설명되는 인터벌 크기 결정부 중 임의의 것을 포함할 수 있음). 이에 따라서, 산술 디코더는 인터벌 하위분할을 위한 하나 이상의 범위 값(또는 본 명세서에서 설명되는 바와 같은 인터벌 크기 정보)을 결정하도록 구성될 수 있는데, 이것은 결합된 소스 통계 값(1652)에 기반하여(또는 제 1 및 제 2 소스 통계 값에 기반하여), 이진 시퀀스(인코딩된 비디오 정보(1610) 내에 포함됨)의 인코딩된 표현을 디코딩된 이진 시퀀스(1622)(이것은 비디오 복원 블록(1680)에 의해 사용됨)로 매핑하기 위해서 사용된다.Moreover, the arithmetic decoder (1620) preferably includes a range value determination unit (1660) (which may include, for example, any of the interval size determination cores described herein, or the interval size determination units described herein). Accordingly, the arithmetic decoder may be configured to determine one or more range values (or interval size information as described herein) for the interval sub-segmentation, which are used to map an encoded representation of a binary sequence (included in the encoded video information (1610)) to a decoded binary sequence (1622) (which is used by the video restoration block (1680)) based on the combined source statistics values (1652) (or based on the first and second source statistics values).
바람직하게는, 산술 디코더(1620)는 산술적 디코딩 코어(1670)(이것은, 예를 들어 블록 또는 유닛일 수 있음)를 더 포함하는데, 이것은 하나 이상의 범위 값(1662)을 범위 값 결정부(1660)으로부터 수신하고, 이러한 범위 값을 사용하여 인코딩된 비디오 정보(1610)에 포함된 인코딩된 이진 시퀀스로부터 디코딩된 이진 시퀀스(1622)를 유도한다.Preferably, the arithmetic decoder (1620) further comprises an arithmetic decoding core (1670) (which may be, for example, a block or a unit), which receives one or more range values (1662) from the range value determination unit (1660) and derives a decoded binary sequence (1622) from the encoded binary sequence included in the encoded video information (1610) using these range values.
더욱이, 비디오 디코더는, 예를 들어 비디오 복원 블록(또는 유닛)(1680)을 포함하는데, 이것은 디코딩된 이진 시퀀스(1622)를 수신하고 디코딩된 이진 시퀀스(1622)에 기반하여(바람직하게는, 추가적인 제어 정보, 예컨대 슬라이스-타입 정보를 고려함) 디코딩된 비디오 콘텐츠(1612)를 제공한다.Furthermore, the video decoder comprises, for example, a video restoration block (or unit) (1680), which receives a decoded binary sequence (1622) and provides decoded video content (1612) based on the decoded binary sequence (1622) (preferably taking into account additional control information, e.g. slice-type information).
결론적으로, 산술 디코더(1600)는 인코딩된 비디오 정보(1610)를 수신하고, 이진 시퀀스의 인코딩된 표현의 디코딩을 수행함으로써, 디코딩된 이진 시퀀스(1622)를 유도한다. 산술적 디코딩은 디코딩된 이진 시퀀스(1622) 내의 이진 값의 확률에 대한 지식을 활용한다. 디코딩된 이진 시퀀스(1622) 내의 이진 값의 확률(또는 추정된 확률)에 대한 이러한 지식은 인터벌 하위분할을 규정하는 범위 값(1662)에 의존함으로써 산술적 디코딩 코어(1670)에 의해 고려된다. 간략하게 말하자면, 산술적 디코딩 코어는 범위 값(1662)을 사용하여 상이한 인터벌을 규정할 수 있다(예를 들어, 제로 및 1 사이로, 또는 정수 값들의 범위에 걸쳐서 규정함). 산술적 디코딩 코어는, 예를 들어 이진 시퀀스의 인코딩된 표현을 이러한 범위 값을 사용하여 규정된 인터벌 중 하나에 속하는 숫자의 표현으로서 해석할 수 있다. 인터벌 중 어느 것 내에 이진 시퀀스의 인코딩된 표현에 의해 표현되는 숫자가 속하는지를 인식함으로써, 산술적 디코딩 코어(1670)는 어떤 비트 또는 어떤 비트 시퀀스가 이러한 이진 시퀀스의 인코딩된 표현을 사용하여 인코딩되었는지를 결정할 수 있다.In conclusion, the arithmetic decoder (1600) receives encoded video information (1610) and performs decoding of an encoded representation of a binary sequence to derive a decoded binary sequence (1622). Arithmetic decoding utilizes knowledge of the probabilities of binary values within the decoded binary sequence (1622). This knowledge of the probabilities (or estimated probabilities) of binary values within the decoded binary sequence (1622) is taken into account by the arithmetic decoding core (1670) by relying on a range value (1662) that defines interval subdivisions. In brief, the arithmetic decoding core can use the range value (1662) to define different intervals (e.g., between zero and 1, or over a range of integer values). An arithmetic decoding core may, for example, interpret an encoded representation of a binary sequence as a representation of a number falling within one of the intervals defined using these range values. By recognizing which of the intervals a number represented by the encoded representation of the binary sequence falls within, the arithmetic decoding core (1670) may determine which bits or which bit sequences were encoded using the encoded representation of the binary sequence.
그러나, 산술적 디코딩 코어(1670)의 이러한 설명은 매우 간략하고 개괄적인 설명에 불과한 것으로 간주되어야 한다는 것에 주의해야 한다. 산술적 디코딩 코어에 대한 세부 내용은, 예를 들어 H.264 및 H.265 표준에서 볼 수 있다. 그러나, 상이한 개념(산술적 디코딩 코어의 연산을 위한 개념)도 이러한 문서에서 발견될 수 있고, 산술적 디코딩 코어의 세부 내용은 본 발명에 대해 특정한 관련성이 없다.However, it should be noted that this description of the arithmetic decoding core (1670) should be considered as a very brief and general description only. Details of the arithmetic decoding core can be found, for example, in the H.264 and H.265 standards. However, different concepts (concepts for the operations of the arithmetic decoding core) can also be found in these documents, and the details of the arithmetic decoding core have no specific relevance to the present invention.
그러나, 양호하게 맞춤된 범위 값(이것은 높은 비트 효율을 허용함)을 얻기 위하여, 산술 디코더(1620)(또는, 일반적으로 말하자면, 비디오 디코더)는 상이한 윈도우 크기를 사용하여 두 개의 소스 통계 값(1632, 1642)을 결정한다(여기에서 "윈도우 크기(window size)"는 디코딩된 이진 시퀀스(1622)의 복수 개의 디코딩된 이진 값에 걸친 평활화의 정도를 규정한다). 더욱이, 산술적 디코딩 코어(1670)에 제공되는 범위 값의 신뢰도를 높이기 위하여, 제 1 소스 통계 값(1632) 및 제 2 소스 통계 값(1642)은 일부 실시형태들에서 결합된 소스 통계 값(1652)으로 결합된다.However, in order to obtain well-fitted range values (which allows for high bit efficiency), the arithmetic decoder (1620) (or, more generally, the video decoder) determines the two source statistics values (1632, 1642) using different window sizes (wherein the "window size" defines the degree of smoothing across the multiple decoded binary values of the decoded binary sequence (1622)). Furthermore, in order to increase the reliability of the range values provided to the arithmetic decoding core (1670), the first source statistics value (1632) and the second source statistics value (1642) are combined in some embodiments into a combined source statistics value (1652).
이에 따라서, 비디오 디코더(1600)가 높은 효율을 제공한다고 말할 수 있는데, 그 이유는 산술적 디코딩 코어(1670)에 의해 사용되는 범위 값이 비트 값의 실제 확률(예를 들어, 디코딩된 이진 시퀀스(1622) 내의 비트 값 "0" 및 "1"의 실제 확률)에 양호하게 적응되기 때문이다.Accordingly, it can be said that the video decoder (1600) provides high efficiency because the range values used by the arithmetic decoding core (1670) are well adapted to the actual probabilities of the bit values (e.g., the actual probabilities of the bit values "0" and "1" within the decoded binary sequence (1622).
추가적으로 언급하자면, 비디오 디코더(1600)도 변경될 수 있다는 것에 주의해야 한다. 대안적인 구현형태에서, 제 2 소스 통계 값 결정부(1640)는 고정된 값(이것은 디코딩된 이진 시퀀스로부터는 독립적일 수 있지만 하나 이상의 파라미터에는 의존할 수 있음)을 제공함으로써 대체될 수 있다. 이러한 경우에, 산술 디코더는 결합된 소스 통계 값(1652)을 얻기 위해서, 제 1 소스 통계 값(1632)을 고정된 비-제로 값과 결합시키도록 선택적으로 구성된다. 이러한 단순화를 통해서 일부 경우에 양호한 결과가 얻어지고, 예를 들어 결합된 소스 통계 값의 부적절하게 강한 변동이 생기는 것을 피할 수 있다는 것이 발견되었다. 다르게 말하면, 결합된 소스 통계 값을 결정하는 데에 고정된 기여도를 도입함으로써, 결합된 소스 통계 값이 이러한 고정된 값으로부터 더 이상 너무 많이 편차가 나지 않을 수 있게 된다. 이에 따라서, 우연히, 디코딩된 이진 시퀀스(1622) 내에 동일한 비트 값의 더 긴 시퀀스가 존재한다면, 디코딩된 이진 시퀀스의 통계에 들어가는 일부의 "지득 사항(hindsight)"이 코딩 효율이 너무 열화되는 것을 피하기 위해서 사용될 수 있다.Additionally, it should be noted that the video decoder (1600) may also be modified. In an alternative implementation, the second source statistics value determination unit (1640) may be replaced by providing a fixed value (which may be independent of the decoded binary sequence but may depend on one or more parameters). In such a case, the arithmetic decoder is optionally configured to combine the first source statistics value (1632) with a fixed non-zero value in order to obtain the combined source statistics value (1652). It has been found that this simplification allows for good results in some cases, and for example avoids unduly strong fluctuations in the combined source statistics value. In other words, by introducing a fixed contribution to the determination of the combined source statistics value, the combined source statistics value may no longer deviate too much from this fixed value. Accordingly, if by chance a longer sequence of the same bit values exists within the decoded binary sequence (1622), some "hindsight" that goes into the statistics of the decoded binary sequence can be used to avoid too much degradation in coding efficiency.
추가적으로 언급하자면, 산술 디코더(및 산술 디코더의 개별적인 블록)의 기능성이, 일반적으로, 그 전체에 있어서 비디오 디코더의 기능성인 것으로 간주될 수도 있다는 것에 주의해야 한다. 다르게 말하면, 본 명세서에서 설명되는 산술 디코더의 기능성으로서 설명되는 기능성은 비디오 디코더의 다른 블록에 의해서도 수행될 수 있다.Additionally, it should be noted that the functionality of the arithmetic decoder (and individual blocks of the arithmetic decoder) may generally be considered as the functionality of the video decoder as a whole. In other words, functionality described as the functionality of the arithmetic decoder described herein may also be performed by other blocks of the video decoder.
더욱이, 도 1의 비디오 디코더(1600)가, 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 명세서에 설명되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다는 것에 주의해야 한다.Furthermore, it should be noted that the video decoder (1600) of FIG. 1 may be optionally supplemented by any of the features, functionality and details described herein, taken individually or in combination.
17. 도 17에 따르는 비디오 디코더17. Video decoder according to Fig. 17
도 17은 본 발명의 일 실시형태에 따르는, 비디오 디코더(1700)의 개략적인 블록도를 도시한다.FIG. 17 illustrates a schematic block diagram of a video decoder (1700) according to one embodiment of the present invention.
비디오 디코더(1700)는 인코딩된 비디오 정보(1710)(예를 들어, 비디오 비트스트림)을 수신하고, 이에 기반하여 디코딩된 비디오 콘텐츠(1712)(예를 들어, 비디오 프레임의 시퀀스)를 제공하도록 구성된다. 인코딩된 비디오 정보(1710)는, 예를 들어 본 명세서에서 설명되는 바와 같은 슬라이스 타입 정보를 포함할 수 있다. 인코딩된 비디오 정보(1710)는 구성 정보를 더 포함할 수 있는데, 이것도 역시 제어 정보라고 간주될 수 있다. 더욱이, 인코딩된 비디오 정보(1710)는 이진 시퀀스의 인코딩된 표현을 포함할 수 있다.A video decoder (1700) is configured to receive encoded video information (1710) (e.g., a video bitstream) and provide decoded video content (1712) (e.g., a sequence of video frames) based thereon. The encoded video information (1710) may include, for example, slice type information as described herein. The encoded video information (1710) may further include configuration information, which may also be considered control information. Furthermore, the encoded video information (1710) may include an encoded representation of a binary sequence.
도 17에서, 비디오 디코더(1700)의 두 개의 메인 블록, 즉 산술 디코더(1720) 및 비디오 복원부(1780)가 도시된다. 그러나, 비디오 디코더의 기능성의 분포가 고정된 블록 구조로 한정되지 않으며, 광범위하게 변경될 수도 있다는 것에 주의해야 한다. 또한, 비디오 디코더의 실제 구현형태는 당업자에게 주지되어 있는 추가적인 블록 및/또는 기능성을 가질 수 있다는 것에 주의해야 한다.In FIG. 17, two main blocks of the video decoder (1700) are illustrated, namely, the arithmetic decoder (1720) and the video restoration unit (1780). However, it should be noted that the distribution of the functionality of the video decoder is not limited to a fixed block structure and may vary widely. It should also be noted that the actual implementation of the video decoder may have additional blocks and/or functionality known to those skilled in the art.
산술 디코더(1720)는 이진 시퀀스의 인코딩된 표현(1711)을 수신한다. 그러나, 산술 디코더(또는 산술 디코더 외부에 있을 수 있는 제어 블록)는 슬라이스 타입 정보 및 구성 정보(또는 제어 정보)를 선택적으로 수신할 수 있다. 특히, 산술 디코더(1720)는 디코딩된 이진 시퀀스(1722)를, 슬라이스 타입 정보 및 구성 정보 또는 제어 정보 중 일부 또는 전부를 선택적으로 고려하면서, 이진 시퀀스의 인코딩된 표현(1711)에 기반하여 비디오 복원부(1780)로 제공한다.The arithmetic decoder (1720) receives an encoded representation (1711) of the binary sequence. However, the arithmetic decoder (or a control block that may be external to the arithmetic decoder) may optionally receive slice type information and configuration information (or control information). In particular, the arithmetic decoder (1720) provides the decoded binary sequence (1722) to the video restoration unit (1780) based on the encoded representation (1711) of the binary sequence, while optionally considering some or all of the slice type information and the configuration information or the control information.
지금부터는, 산술 디코더(1720)의 기능성이 더 자세히 설명될 것이다. 산술 디코더는 산술적 디코딩 코어(1770)를 포함하는데, 이것은 이진 시퀀스의 인코딩된 표현(1711)을 수신하고 디코딩된 이진 시퀀스(1722)를 제공한다. 산술적 디코딩 코어는 디코딩된 이진 시퀀스(1722)의 어떤 비트 값이 이진 시퀀스의 인코딩된 표현(1711)에 의해 표현되는지를 결정한다. 이러한 목적을 위하여, 산술적 디코딩 코어(1770)는 숫자들의 범위의 어떤 인터벌 내에 이진 시퀀스의 인코딩된 표현(1711)에 의해 표현되는 숫자가 포함되는지를 점검한다. 복수 개의(적어도 두 개의) 인터벌 중에서 어떤 인터벌 내에 이진 시퀀스의 인코딩된 표현(1711)에 의해 표현되는 숫자가 포함되는지에 대한 결정에 의존하여, 디코딩된 이진 시퀀스(1722)의 특정 비트 값, 또는 비트 값들의 그룹, 또는 심볼이 인식된다.Hereinafter, the functionality of the arithmetic decoder (1720) will be described in more detail. The arithmetic decoder includes an arithmetic decoding core (1770), which receives an encoded representation (1711) of a binary sequence and provides a decoded binary sequence (1722). The arithmetic decoding core determines which bit values of the decoded binary sequence (1722) are represented by the encoded representation (1711) of the binary sequence. For this purpose, the arithmetic decoding core (1770) checks whether a number represented by the encoded representation (1711) of the binary sequence is included within a certain interval of a range of numbers. A particular bit value, or group of bit values, or symbol of the decoded binary sequence (1722) is recognized based on a determination as to which of the multiple (at least two) intervals contains a number represented by the encoded representation (1711) of the binary sequence.
디코딩된 이진 시퀀스(1722)를 유도하기 위하여, 산술적 디코딩 코어는 인터벌에 대한 정보를 수신하는데, 이것은 통상적으로 비트 값들의 확률에 어느 정도 대응한다. 이러한 경우에, 산술적 디코딩 코어(1770)는 인터벌 하위분할을 위해 사용되는 "범위 값" 또는 "인터벌 크기 정보(1762)"(즉, 산술적 디코딩 코어(1770)에 의해 사용될 숫자 범위의 인터벌을 규정하는 역할을 하는 범위 값(1762))를 수신한다. 특히, 산술적 디코딩 코어(1770)가, 예를 들어 표준 H.264에 따른 비디오 인코더/디코더 내에서 또는 표준 H.265에 따른 비디오 인코더/디코더에서 사용되는 산술적 디코딩 코어와 유사하거나 동일할 수 있다는 것에 주의해야 한다. 그러나, 산술적 디코딩 코어(1770)를 실현하기 위한 상이한 접근법들이 사용될 수도 있다는 것에 주의해야 한다.In order to derive the decoded binary sequence (1722), the arithmetic decoding core receives information about the intervals, which typically correspond to some degree to the probabilities of the bit values. In this case, the arithmetic decoding core (1770) receives "range values" or "interval size information (1762)" used for interval subdivision (i.e., range values (1762) that serve to define the intervals of the number range to be used by the arithmetic decoding core (1770). In particular, it should be noted that the arithmetic decoding core (1770) may be similar or identical to an arithmetic decoding core used, for example, in a video encoder/decoder according to the standard H.264 or in a video encoder/decoder according to the standard H.265. However, it should be noted that different approaches may be used to realize the arithmetic decoding core (1770).
전술된 설명을 살펴보면, 산술적 디코딩 코어(1770)를 위한 인터벌 하위분할을 규정하는 범위 값 또는 인터벌 크기 정보(1762)를 제공하는 것이 산술 디코더(1720)의 중요한 기능이라는 것이 명백하게 드러난다. 일반적으로 말하자면, 산술 디코더(1720)는 이러한 범위 값(1762)을, 예를 들어 초기화 값, "윈도우 크기", "윈도우 크기 적응", 및 기타 등등과 같은 파라미터를 규정하는 일부 제어-정보를 선택적으로 고려하면서, 디코딩된 이진 시퀀스(1722)의 이전에 디코딩된 이진 값으로부터 유도한다.From the foregoing description, it becomes apparent that an important function of the arithmetic decoder (1720) is to provide range values or interval size information (1762) that define interval subdivisions for the arithmetic decoding core (1770). Generally speaking, the arithmetic decoder (1720) derives these range values (1762) from previously decoded binary values of the decoded binary sequence (1722), optionally taking into account some control-information that defines parameters such as, for example, initialization values, "window size", "window size adaptation", and the like.
산술 디코더(1700)에서, 두 개의 소스 통계 값 결정 블록(또는 유닛)(1730, 1740)이 사용된다(이것은, 예를 들어 본 명세서에서 설명되는 상태 변수 업데이트부에 대응할 수 있다). 예를 들어, 제 1 소스 통계 값 결정 블록(1730)은 디코딩된 이진 시퀀스(1722)(또한, xt라고 지정됨)의 하나 이상의 이전에 디코딩된 이진 값(또는 심볼 값)을 수신하고, 이에 기반하여, 제 1 소스 통계 값(1732)(이것은 본 명세서에서 설명되는 제 1 상태 변수 값에 대응할 수 있음)을 제공한다. 제 1 소스 통계 값 결정 블록은, 예를 들어 일부 구성 정보, 예컨대 소스 통계 값(1732)을 나타내기 위해서 사용되는 비트의 개수를 규정하는 상수 또는 변수 BITSa, 및 소스 통계 값 결정 블록(1730)에 의해 사용될 "윈도우 크기"를 규정하는 상수 또는 변수 na, 및/또는 본 명세서에서 설명되는 임의의 다른 파라미터를 수신할 수 있다. 예를 들어, 제 1 소스 통계 값 결정 블록(1730)은 제 1 소스 통계 값(1732)을 재귀적으로 결정할 수 있는데, 여기에서 윈도우 크기 na, 또는 파라미터 ni k는 제 1 소스 통계 값 또는 제 1 상태 변수 값(1732)을 결정함에 있어서 디코딩된 이진 시퀀스(1722)의 가장 최근에 디코딩된 이진 값의 가중치를 결정한다.In the arithmetic decoder (1700), two source statistics value determination blocks (or units) (1730, 1740) are used (which may correspond to, for example, the state variable update unit described herein). For example, the first source statistics value determination block (1730) receives one or more previously decoded binary values (or symbol values) of the decoded binary sequence (1722) (also designated as x t ) and, based thereon, provides a first source statistics value (1732) (which may correspond to the first state variable value described herein). The first source statistics value determination block may receive, for example, a constant or variable BITS a that specifies the number of bits used to represent some configuration information, such as the source statistics value (1732), and a constant or variable n a that specifies a "window size" to be used by the source statistics value determination block (1730), and/or any other parameter described herein. For example, the first source statistics value determination block (1730) may recursively determine the first source statistics value (1732), wherein the window size n a , or the parameter n i k , determines a weight of a most recently decoded binary value of the decoded binary sequence (1722) in determining the first source statistics value or the first state variable value (1732).
제 1 소스 통계 값 결정 블록(1730)의 기능성은, 예를 들어, 일부의 "무한 임펄스 응답" 특성을 도입하는 재귀적 알고리즘이 사용된다는 것을 제외하고는, 특정 윈도우 크기를 가지는 이동 평균(sliding average)을 형성하는 것과 유사하다. 그러므로, 제 1 소스 통계 값(1732)은 이동 윈도우 합산 연산 또는 이동 윈도우 평균화 연산의 결과를 정확하게 나타내지 않고, 오히려 "가상 이동 윈도우(virtual sliding window)" 연산이라고 간주되어야 하는데, 그 이유는 결과가 매우 유사하기 때문이다.The functionality of the first source statistics value determination block (1730) is similar to forming a sliding average with a certain window size, except that a recursive algorithm is used, which introduces some "infinite impulse response" properties, for example. Therefore, the first source statistics value (1732) does not exactly represent the result of a moving window summation operation or a moving window averaging operation, but rather should be considered a "virtual sliding window" operation, since the results are very similar.
더욱이, 제 2 소스 정적 값 결정 블록(1740)은 제 1 소스 통계 값 결정 블록(1730)과 비교할 때 유사한 연산을 수행한다. 그러나, 제 2 소스 통계 값 결정 블록(1740)은 통상적으로 상이한 파라미터(예를 들어, 상이한 윈도우 길이 nb 및/또는 상이한 비트수 파라미터 BITSb 또는 상이한 파라미터 ni k)를 사용하고, 결과적으로, 통상적으로 제 1 소스 통계 값 또는 제 1 상태 변수 값(1732)과 다른 제 2 소스 통계 값 또는 제 2 상태 변수 값(1742)을 제공한다. 예를 들어, 소스 통계 값(1732, 1742) 중 하나는 단기(또는 더 짧은 기간의) 평균 소스 통계 값일 수 있고, 소스 통계 값(1732, 1742) 중 하나는 장기(또는 더 긴 기간의) 평균 소스 통계 값일 수 있다. Moreover, the second source static value determination block (1740) performs similar operations as compared to the first source statistical value determination block (1730). However, the second source statistical value determination block (1740) typically uses different parameters (e.g., different window length n b and/or different bit count parameter BITS b or different parameters n i k ), and consequently, provides a second source statistical value or a second state variable value (1742) that is typically different from the first source statistical value or the first state variable value (1732). For example, one of the source statistical values (1732 , 1742 ) can be a short-term (or shorter-term) average source statistical value, and one of the source statistical values (1732 , 1742 ) can be a long-term (or longer-term) average source statistical value.
소스 통계 값 결정 블록(1730, 1740)이, 예를 들어 본 명세서에서 상태 변수 업데이트부에 대해서 설명된 것과 같은 기능성을 수행할 수 있다는 것에 주의해야 한다. 더욱이, 일부 실시형태에서는, 상이한 계산 규칙이 소스 통계 값 결정 블록(1730, 1740)에서 사용될 수도 있다는 것에 주의해야 한다.It should be noted that the source statistics value determination block (1730, 1740) may perform the same functionality as described for the state variable update portion herein, for example. Furthermore, it should be noted that in some embodiments, different calculation rules may be used in the source statistics value determination block (1730, 1740).
산술 디코더(1720)는 선택적으로, 결합된 소스 통계 값 결정 블록(또는 유닛)(250)을 더 포함하는데, 이것은 제 1 소스 통계 값(1732) 및 제 2 소스 통계 값(1742)을 수신하도록 구성된다. 소스 통계 값 결합 블록(1750)은 이에 기반하여 결합된 소스 통계 값(1752)을 제공한다. 예를 들어, 소스 통계 값 결합 블록(1750)은 제 1 소스 통계 값(1732) 및 제 2 소스 통계 값(1742)의 합 또는 평균을 형성함으로싸, 결합된 소스 통계 값(1752)을 획득할 수 있다.The arithmetic decoder (1720) optionally further includes a combined source statistics value determination block (or unit) (250), which is configured to receive the first source statistics value (1732) and the second source statistics value (1742). The source statistics value combination block (1750) provides the combined source statistics value (1752) based thereon. For example, the source statistics value combination block (1750) can obtain the combined source statistics value (1752) by forming a sum or an average of the first source statistics value (1732) and the second source statistics value (1742).
그러나, 소스 통계 값 결합 블록(1750)은 결합된 소스 통계 값(1752)을 유도할 때 제 1 소스 통계 값(1732) 및 제 2 소스 통계 값(1742)에 상이한 가중치를 적용할 수도 있고, 여기에서 상이한 가중치는 하나의 슬라이스 내에서도 또는 상이한 슬라이스들 사이에서도 변할 수 있다.However, the source statistics value combination block (1750) may apply different weights to the first source statistics value (1732) and the second source statistics value (1742) when deriving the combined source statistics value (1752), wherein the different weights may vary within a slice or between different slices.
예를 들어, 소스 통계 값 결합 블록(1750)은 결합기(751) 또는 결합부(892)의 기능성을 수행할 수 있다. 그러나, 이러한 기능성이 변경되는 것도 역시 가능하다.For example, the source statistics value combination block (1750) may perform the functionality of the combiner (751) or the combination unit (892). However, it is also possible for this functionality to be changed.
예를 들어, 하나의 (대안적인) 실시형태에서는, 소스 통계 값 결합 블록(1750)이 제 1 통계 값 중 하나만을 고정된 값과 결합시켜서, 결합된 소스 통계 값 또는 결합된 상태 변수 값(1752)을 획득한다. 이러한 개념은, 결합된 소스 통계 값(1752)이 디코딩된 이진 시퀀스(1722) 내의 이진 값들의 기대된 확률로부터 너무 많이 벗어나는 것을 피하기 위해서 유익할 수 있다.For example, in one (alternative) embodiment, the source statistics value combining block (1750) combines only one of the first statistics values with a fixed value to obtain a combined source statistics value or combined state variable value (1752). This concept can be beneficial to avoid the combined source statistics value (1752) from deviating too much from the expected probability of the binary values within the decoded binary sequence (1722).
산술 디코더(1720)는 결합된 소스 통계 값 또는 결합된 상태 변수 값(1752)에 기반하여, 또는 대안적으로 두 개 이상의 상태 변수 값에 기반하여, 인터벌 하위분할을 위한 범위 값(1762)(이들은 산술적 디코딩 코어(1770)로 제공될 것임)을 유도하도록 구성된다. .The arithmetic decoder (1720) is configured to derive range values (1762) for interval sub-segmentation (which will be provided to the arithmetic decoding core (1770)) based on the combined source statistics or the combined state variable values (1752), or alternatively based on two or more state variable values.
이러한 프로세스 단계는, 예를 들어 "범위 값 결정(range value determination)"이라고 간주될 수 있다. 예를 들어, 범위 값 결정부는 선택적인 값 처리부(1766)를 포함할 수 있는데, 이것은 결합된 소스 통계 값(1752)을 수신하고, 이에 기반하여 확률 값 또는 상태 인덱스 값을 제공한다. 값 처리부(1766)는, 예를 들어 결합된 소스 통계 값(1752)의 값의 범위를 0 및 1 사이의 범위로, 또는 0 및 0.5 사이의 범위로, 또는 정수 인덱스 값으로 매핑할 수 있다.This process step may be considered, for example, "range value determination." For example, the range value determination unit may include an optional value processing unit (1766) that receives the combined source statistics values (1752) and provides a probability value or a state index value based thereon. The value processing unit (1766) may, for example, map the range of values of the combined source statistics values (1752) to a range between 0 and 1, or to a range between 0 and 0.5, or to integer index values.
선택적으로, 값 처리부(1766)는 정보(1767)를 제공할 수 있는데, 이것은 다음의 디코딩된 값(예를 들어, 디코딩된 이진 시퀀스(1722)의 디코딩된 값)이 "1"의 값을 취하거나 값 "0"을 취할 가능성이 더 높은지 여부를 표시하는 이진 정보일 수 있다. 선택적으로, 산술 디코더(또는 범위 값 결정부)는 매핑 테이블(1769)을 포함할 수 있다. 매핑 테이블(1769)은, 예를 들어 테이블 엔트리를 지정하는 인덱스 값(예를 들어, pStateIdx)을 수신한다. 이에 따라서, 매핑 테이블(1769)은 인덱스 값(예를 들어 pStateIdx)에 의해 지정된 상기 테이블 엔트리에 대응하는 하나 이상의 범위 값(1762)을 제공할 수 있다. 이에 따라서, "상태 인덱스 값"(예를 들어, pStateIdx)을 유도함으로써, 그리고 매핑 테이블을 이러한 상태 인덱스 값에 기반하여 평가함으로써, 인터벌 하위분할에 대한 하나 이상의 범위 값이 결합된 소스 통계 값(1752)에 기반하여 제공될 수 있다.Optionally, the value processing unit (1766) can provide information (1767), which can be binary information indicating whether the next decoded value (e.g., a decoded value of the decoded binary sequence (1722)) is more likely to take the value "1" or the value "0". Optionally, the arithmetic decoder (or range value determination unit) can include a mapping table (1769). The mapping table (1769) receives, for example, an index value (e.g., pStateIdx) that designates a table entry. Accordingly, the mapping table (1769) can provide one or more range values (1762) corresponding to the table entry designated by the index value (e.g., pStateIdx). Accordingly, by deriving a "state index value" (e.g., pStateIdx) and evaluating a mapping table based on this state index value, one or more range values for an interval subdivision can be provided based on the combined source statistics value (1752).
매핑 테이블(1769)은, 예를 들어 표준 H.264 또는 표준 H.265에서 설명된 매핑 테이블과 같은 구조를 가질 수 있다. 그러나, 선택적으로, 매핑 테이블의 콘텐츠는 비디오 디코더의 특정한 세부 내용에 적응될 수 있다. 특히, 매핑 테이블의 엔트리는 특정한 비디오 디코더 내에서 기대되는 통계 속성에 적응될 수 있다.The mapping table (1769) may have a structure similar to a mapping table described in, for example, Standard H.264 or Standard H.265. Optionally, however, the content of the mapping table may be adapted to specific details of a video decoder. In particular, entries in the mapping table may be adapted to statistical properties expected within a specific video decoder.
그러나, 인터벌 크기 정보를 하나 이상의 상태 변수 값에 기반하여, 또는 결합된 상태 변수 값에 기반하여 유도하는 것이, 본 명세서에 개시되는 개념들 중 임의의 개념에 따라서, 예를 들어 도 4 내지 도 15 중 임의의 도면을 참조하여 설명된 인터벌 크기 결정부를 사용하거나 인터벌 크기 결정 코어를 사용하거나 상태 변수 업데이트부를 사용하여 수행될 수 있다는 것에 주의해야 한다.However, it should be noted that deriving the interval size information based on one or more state variable values, or based on combined state variable values, may be performed using any of the concepts disclosed herein, for example, using an interval size determination unit as described with reference to any of FIGS. 4 to 15, or using an interval size determination core, or using a state variable update unit.
또한, 본 명세서에서 언급되는 산술적 디코딩 코어가 본 명세서에 개시되는 산술적 디코딩 코어에 대응할 수 있다는 것에 주의해야 한다.Additionally, it should be noted that the arithmetic decoding core referred to in this specification may correspond to the arithmetic decoding core disclosed in this specification.
산술 디코더(또는, 일반적으로 말하자면, 비디오 디코더)는 선택적으로, 제어 정보 또는 구성 정보를 수신할 수 있고, 그에 기반하여 범위 값을 제공하기 위하여 사용되는 파라미터(및 가능하게는 또한 다른 파라미터, 예를 들어 산술적 디코딩 코어(1770)에 의하여 사용되는 추가적인 파라미터)를 조절할 수 있는 제어 블록(1790)을 더 포함한다. 예를 들어, 제어 블록(1790)은 인코딩된 비디오 정보(1710) 내에 포함될 수 있는 슬라이스 타입 정보인 "cabac init flag", "ws_flag" 및 "ctu_ws_flag" 중 하나 이상을 수신할 수 있다.The arithmetic decoder (or, more generally, the video decoder) optionally further comprises a control block (1790) that can receive control information or configuration information and based thereon adjust parameters used to provide range values (and possibly also other parameters, e.g. additional parameters used by the arithmetic decoding core (1770)). For example, the control block (1790) can receive one or more of "cabac init flag", "ws_flag" and "ctu_ws_flag", which are slice type information that can be included in the encoded video information (1710).
더욱이, 제어부(1790)는, 예를 들어 윈도우 크기 파라미터 na, nb 또는 ni k 및/또는 비트 크기 파라미터 BITSa, BITSb를 제어 정보에 의존하여 조절할 수 있다. 특히, 제어 블록(1790)은 현재의 콘텍스트 모델도 고려할 수 있다. 이러한 이슈에 관련하여, 디코딩된 이진 시퀀스(1722)의 각각의 비트(또는 비트들의 그룹)가 디코딩되기 위해서는, 어떤 콘텍스트 모델이 사용되어야 하는지가 판정될 수 있다는 것에 주의해야 한다. 예를 들어, 어떤 콘텍스트 모델이 사용될지에 대한 판정은, 어떤 타입의 정보(디코딩 파라미터, 변환 계수, 등.)이 개별적인 비트(또는 비트들의 그룹)에 의하여 표현되는지의 사실에 기반할 수 있다. 예를 들어, 제어 블록(1790)은 디코딩된 이진 시퀀스(1722)의 신택스(syntax)를 인식함으로써, 어떤 신택스 원소(또는 신택스 원소의 어느 부분, 예를 들어 최상위 또는 최하위 비트, 또는 기타 등등)가 다음에 디코딩되어야 하는지를 인식하도록 구성될 수 있다. 이에 따라서, 상이한 콘텍스트 모델들 사이에서의 선택이 이루어질 수 있다. 또한, 윈도우 크기 파라미터 및/또는 비트 크기 파라미터 및/또는 임의의 다른 파라미터가 콘텍스트 모델에 의존하여 선택될 수 있다는 것에 주의해야 한다. 더 나아가, 소스 통계 값(1732, 1742) 또는 결합된 소스 통계 값(1752)이 특정한 콘텍스트 모델과 연관될 수 있어서, 상이한 소스 통계 값 또는 결합된 소스 통계(또는 상태 변수 값, 또는 결합된 상태 변수 값) 값이 상이한 콘텍스트 모델에 대해서 이용가능해질 수 있게 할 수 있다는 것에도 주의하여야 한다. 예를 들어, 특정 콘텍스트 모델과 연관된 소스 통계 값은, 개별적인 콘텍스트 모델을 사용하여 디코딩된 바 있는 디코딩된 이진 시퀀스(1722)의 디코딩된 이진 값에 기반하여 선택적으로 제공될 수 있다. 다르게 말하면, 파라미터 na, nb, ni k, BITSa, BITSb, 등에 관련된 별개의 독립적인 처리, 및 별개의 (독립적일 수 있음) 판정이 상이한 콘텍스트 모델에 대해서 이루어질 수 있다.Moreover, the control unit (1790) can adjust, for example, the window size parameters n a , n b or n i k and/or the bit size parameters BITSa, BITSb depending on the control information. In particular, the control block (1790) can also take into account the current context model. In relation to this issue, it should be noted that it can be determined which context model should be used in order for each bit (or group of bits) of the decoded binary sequence (1722) to be decoded. For example, the determination of which context model to use can be based on the fact that which type of information (decoding parameters, transform coefficients, etc.) is represented by an individual bit (or group of bits). For example, the control block (1790) can be configured to recognize the syntax of the decoded binary sequence (1722) to recognize which syntax element (or which part of the syntax element, e.g., the most significant or least significant bit, or other) should be decoded next. Accordingly, a selection can be made between different context models. It should also be noted that the window size parameter and/or the bit size parameter and/or any other parameter can be selected depending on the context model. Furthermore, it should be noted that the source statistics (1732, 1742) or the combined source statistics (1752) can be associated with a particular context model, such that different source statistics or combined source statistics (or state variable values, or combined state variable values) values can be made available for different context models. For example, source statistics values associated with a particular context model may be optionally provided based on decoded binary values of a decoded binary sequence (1722) that have been decoded using the respective context model. In other words, separate independent processing, and separate (possibly independent) judgments relating to parameters n a , n b , n i k , BITS a , BITS b , etc. may be performed for different context models.
제어 유닛(1790)의 기능성에 관련하여, 제어 유닛이 파라미터 na, nb, ni k, BITSa, BITSb를, 예를 들어 아래에 설명되는 메커니즘에 따라서 결정할 수 있다는 것에 주의해야 한다. 예를 들어, 윈도우 크기 파라미터 na, nb, ni k는 슬라이스 타입 정보에 의존하여, 및/또는 cabac init flag에 의존하여, 및/또는 ws_flag에 의존하여 및/또는 ctu_ws_flag에 의존하여 선택될 수 있다. 또한, 일부 실시형태에서는, 비트 크기 파라미터 BITSa, BITSb는 일부 구성 정보에 의존하여 선택될 수 있다. 그러나, 다른 실시형태에서는, 비트 크기 파라미터가 고정될 수도 있다. 파라미터의 조절을 위한 메커니즘과 관련하여, 예를 들어 다음과 같은 논의를 참조한다.With respect to the functionality of the control unit (1790), it should be noted that the control unit may determine the parameters n a , n b , n i k , BITS a , BITS b , for example, according to the mechanisms described below. For example, the window size parameters n a , n b , n i k may be selected depending on the slice type information, and/or depending on the cabac init flag, and/or depending on the ws_flag, and/or depending on the ctu_ws_flag. Also, in some embodiments, the bit size parameters BITSa, BITSb may be selected depending on some configuration information. However, in other embodiments, the bit size parameters may be fixed. With respect to mechanisms for adjusting the parameters, see, for example, the discussion below.
이제 비디오 복원 블록(1780)을 참조하면, 비디오 복원 블록(1780)이 디코딩된 이진 시퀀스(1722) 및 또한 구성 정보의 적어도 일부 요소를 통상적으로 수신한다는 것에 주의해야 한다. 예를 들어, 비디오 복원부(1780)는 정수 파라미터 및/또는 부동소수점 파라미터 및/또는 이미지 데이터를 디코딩된 이진 시퀀스(1722)에 기반하여 복원할 수 있다. 예를 들어, 디코딩된 이진 시퀀스의 특정 비트 또는 부분이 어떻게 정수 파라미터로 또는 부동소수점 파라미터로 또는 이미지 데이터로 매핑되어야 하는지를 규정하는 매핑 규칙이 존재할 수 있다(예를 들어, 변환 계수 또는 기타 등등). 이에 따라서, 비디오 복원 블록(1780)은 디코딩된 이진 시퀀스(1722)로부터의 비디오 프레임의 복원을 위해 사용되는 정보를 복원한다. 그러면, 비디오 복원 블록이 이미지 정보를 복원된 정보(디코딩된 이진 시퀀스(1722)로부터 유도됨)에 기반하여 생성할 수 있다.Referring now to the video reconstruction block (1780), it should be noted that the video reconstruction block (1780) typically receives the decoded binary sequence (1722) and also at least some elements of the configuration information. For example, the video reconstruction unit (1780) can reconstruct integer parameters and/or floating point parameters and/or image data based on the decoded binary sequence (1722). For example, there may be mapping rules that specify how certain bits or portions of the decoded binary sequence should be mapped to integer parameters or floating point parameters or to image data (e.g., transform coefficients or the like). Accordingly, the video reconstruction block (1780) reconstructs information that is used for reconstructing video frames from the decoded binary sequence (1722). The video reconstruction block can then generate image information based on the reconstructed information (derived from the decoded binary sequence (1722)).
예를 들어, 비디오 복원부(1780)는 표준 H.264 또는 표준 H.265에서 설명된 것과 같은 기능성을 포함할 수 있다. 그러나, 디코딩된 이진 시퀀스(및, 추가적인 구성 정보 또는 제어 정보도 가능함)에 기반하여 디코딩된 비디오 콘텐츠를 제공하도록 적응되는 비디오 복원을 위해서, 다른 접근법들이 사용될 수도 있다. 이에 따라서, 비디오 복원부(1780)는 디코딩된 비디오 콘텐츠(1712)를 제공하는데, 이것은 비디오 프레임의 시퀀스로서의 형태를 취할 수 있다.For example, the video restoration unit (1780) may include functionality as described in standard H.264 or standard H.265. However, other approaches may be used for video restoration adapted to provide decoded video content based on the decoded binary sequence (and possibly additional configuration information or control information). Accordingly, the video restoration unit (1780) provides decoded video content (1712), which may take the form of a sequence of video frames.
결론적으로, 본 발명의 일 실시형태에 따르는 비디오 디코더에 대한 개관이 제공되었다. 그러나, 기능성 블록에 대한 상이한 구현형태들이 존재한다는 것에 주의해야 한다(예를 들어, 소스 통계 값 결정 블록(1730, 1740)에 대한, 소스 통계 값 결합 블록(1750)에 대한, 값 프로세스 블록(1766)에 대한, 매핑 테이블(1769)에 대한, 그리고 산술적 디코딩 코어(1770)에 대한 구현형태들이 존재함). 또한, 비디오 복원 블록(1780) 및 제어 블록(1790)에 대해서도 상이한 구현형태들이 가능하다.In conclusion, an overview of a video decoder according to one embodiment of the present invention has been provided. However, it should be noted that different implementations exist for the functional blocks (e.g., implementations exist for the source statistics value determination block (1730, 1740), for the source statistics value combination block (1750), for the value process block (1766), for the mapping table (1769), and for the arithmetic decoding core (1770). Also, different implementations are possible for the video reconstruction block (1780) and the control block (1790).
그러나, 본 명세서에서 설명되는 기능 블록들이 본 출원에 그 전체로서 개시되는 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 보완될 수 있다는 것에도 역시 주의해야 한다. 또한, 본 출원에서 개시된 피쳐, 기능성 및 세부 내용들이 개별적으로 또는 조합을 이루어서 도입됨으로써, 비디오 디코더(1700)의 기능성을 확장시킬 수도 있다는 것에 주의해야 한다.However, it should also be noted that the functional blocks described in this specification may be supplemented by any of the features, functionality and details disclosed in this application as a whole. It should also be noted that the features, functionality and details disclosed in this application may be introduced individually or in combination to expand the functionality of the video decoder (1700).
18. 추가적인 실시형태18. Additional embodiments
지금부터는, 본 발명에 따른 추가적인 실시형태들이 설명될 것이다.Hereinafter, additional embodiments according to the present invention will be described.
다른 피쳐, 기능성 및 세부 내용들 중에서, 유한 상태 머신을 사용하는 콘텍스트 모델 업데이트 방법이 설명될 것이고, 이것은 개별적으로, 또는 본 명세서에 개시되는 피쳐, 기능성 및 세부 내용 모두와 조합되어 사용될 수 있다.Among other features, functionality and details, a method for updating a context model using a finite state machine will be described, which may be used individually or in combination with any of the features, functionality and details disclosed herein.
서문introduction
지금부터는, 상이하고 진보적인 실시형태 및 양태들이, 예를 들어 "상태 변수로부터 확률 추정치를 유도" 및 "상태 변수의 업데이트 " 및 "바람직한 실시형태"의 장에서 설명될 것이다.From now on, different and progressive embodiments and aspects will be described, for example, in the chapters “Deriving probability estimates from state variables” and “Updating state variables” and “Preferred embodiments”.
그러나, 임의의 다른 장에서 설명되는 피쳐, 기능성 및 세부 내용들도, 선택적으로, 본 발명에 따른 실시형태들에 도입될 수 있다.However, features, functionality and details described in any other chapter may also be optionally introduced into embodiments according to the present invention.
또한, 위에서 언급된 장들에서 설명된 실시형태들이 개별적으로 사용될 수 있고, 다른 장의 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 보완될 수도 있다.Additionally, the embodiments described in the chapters mentioned above may be used individually and may be supplemented by any of the features, functionality and details of other chapters.
또한, 본 명세서에서 설명되는 개별적인 양태들이 개별적으로 또는 조합을 이뤄서 사용될 수 있다는 것에 주의해야 한다. 그러므로, 세부 내용을 상기 양태들 중 다른 것에 추가하지 않고서도, 세부 내용들이 상기 각각의 양태들 각각에 추가될 수 있다.It should also be noted that the individual aspects described herein may be used individually or in combination. Thus, details may be added to each of the above aspects without adding details to other of the above aspects.
특히, 실시형태들은 청구항에서도 기술된다. 청구항에서 설명되는 실시형태는 개별적으로 취해지기도 하고 조합되어 취해지기도 하는, 본 발명에 설명된 바와 같은 피쳐, 기능성 및 세부 내용 중 임의의 것에 의해서 선택적으로 보완될 수 있다.In particular, the embodiments are also set forth in the claims. The embodiments set forth in the claims may optionally be supplemented by any of the features, functionalities and details described herein, taken individually or in any combination.
본 명세서가, 명시적 또는 묵시적으로, 비디오 인코더(입력 비디오 신호의 인코딩된 표현을 제공하기 위한 장치) 및 비디오 디코더(비디오 신호의 인코딩된 표현에 기반하여 비디오 신호의 디코딩된 표현을 제공하기 위한 장치)에서 사용될 수 있는 피쳐들을 설명한다는 것에도 역시 주의해야 한다. 그러므로, 피쳐 본 명세서에서 설명되는 피쳐들 중 임의의 것은 비디오 인코더의 콘텍스트 및 비디오 디코더의 콘텍스트에서 사용될 수 있다.It should also be noted that this specification explicitly or implicitly describes features that can be used in a video encoder (a device for providing an encoded representation of an input video signal) and a video decoder (a device for providing a decoded representation of a video signal based on the encoded representation of the video signal). Therefore, any of the features described in this specification can be used in the context of a video encoder and in the context of a video decoder.
더욱이, 본 명세서에 어떤 방법과 관련하여 개시되는 피쳐 및 기능성은 장치(이러한 기능성을 수행하도록 구성되는 장치)에서도 사용될 수 있다. 더 나아가, 본 명세서에 어떤 장치에 대해서 개시되는 임의의 피쳐 및 기능성은 대응하는 방법에서도 사용될 수 있다. 다르게 말하면, 본 명세서에 개시되는 방법은 장치에 관하여 설명되는 피쳐 및 기능성 중 임의의 것에 의해서 보완될 수 있다.Moreover, the features and functionality disclosed in connection with any method in this specification can also be used in a device (a device configured to perform such functionality). Furthermore, any feature and functionality disclosed in connection with any device in this specification can also be used in a corresponding method. In other words, the method disclosed in this specification can be supplemented by any of the features and functionality described with respect to the device.
또한, 본 명세서에서 설명되는 피쳐 및 기능성 중 임의의 것은, "구현 대안들"이라는 섹션에서 설명되는 것과 같이, 하드웨어로 또는 소프트웨어로, 또는 하드웨어 및 소프트웨어의 조합을 사용하여 구현될 수 있다.Additionally, any of the features and functionality described in this specification can be implemented in hardware, in software, or using a combination of hardware and software, as described in the section entitled “Implementation Alternatives.”
도입문Introduction
콘텍스트 모델 업데이트는 코딩 엔진을 내재된 소스 통계에 맞게 적응시키는 가능성을 제공함으로써, 효율적인 이진 산술 엔트로피 코더의 중요한 특징이 된다.Context model updating is an important feature of efficient binary arithmetic entropy coders, as it provides the possibility to adapt the coding engine to the underlying source statistics.
본 발명에서, 각각의 콘텍스트 모델에는, 예를 들어 심볼들의 각각의 심볼의 각각의 심볼에 대하여, 엔트로피 인코딩 또는 디코딩에 대한 확률 추정치의 시퀀스를 제공하는 독립적인 확률 추정 스테이지가 장착된다. 이러한 콘텍스트 모델 업데이트 방법의 기본적인 개념은, 현재의 확률 추정치를 함께 나타내는 하나 이상의 상태 변수를 콘텍스트 모델마다 유지하는 것이다. 심볼 시퀀스의 통계에 적응하기 위해서, 콘텍스트 모델의 상태 변수가 자주 업데이트된다(예를 들어 상태 변수 업데이트부에서). 예를 들어, 각각의 심볼의 인코딩 이후이다.In the present invention, each context model is equipped with an independent probability estimation stage which provides a sequence of probability estimates for entropy encoding or decoding, for example, for each symbol of each symbol of the symbols. The basic idea of this context model updating method is to maintain for each context model at least one state variable which together represents the current probability estimate. In order to adapt to the statistics of the symbol sequence, the state variables of the context model are frequently updated (e.g., in a state variable update unit). For example, after encoding of each symbol.
본 발명은, 여러 양태들 중에서, 두 개의 중요한 양태를 포함한다. 제 1 양태는 상태 변수로부터 확률 추정치(또는 인터벌 크기 정보)를 유도하는 방식을 다룬다. 제 2 양태는 어떤 심볼의 출현 이후에 상태 변수를 업데이트하는 방법을 다룬다. 이러한 양태들은 선택적으로, 조합되어 사용될 수 있다.The present invention comprises two important aspects, among several aspects. The first aspect deals with a method for deriving probability estimates (or interval size information) from state variables. The second aspect deals with a method for updating state variables after the appearance of a symbol. These aspects may optionally be used in combination.
본 발명은, 선택적으로 이진 산술 코딩 엔진과 조합될 수 있고, 또한 인코딩되거나 디코딩될 이진 심볼에 대한 개별적인 확률 추정치를 요구하는 임의의 다른 엔트로피 코딩 엔진과도 조합될 수 있다. 예를 들어, 본 발명은 PIPE 코딩 개념과도 조합될 수 있다.The present invention may optionally be combined with a binary arithmetic coding engine, and may also be combined with any other entropy coding engine that requires individual probability estimates for binary symbols to be encoded or decoded. For example, the present invention may also be combined with PIPE coding concepts.
구현형태 세부 내용Implementation form details
예를 들어, 하나 이상의 콘텍스트 모델 을 채용하는 비디오 압축 알고리즘과 같은 엔트로피 인코딩 또는 디코딩 애플리케이션을 고려하는데, 여기에서 이다. 인코딩되거나 디코딩될 이진 심볼 거의 모두는 콘텍스트 모델 중 하나와 분명하게 연관된다. 이러한 이진 심볼을 인코딩 또는 디코딩하기 위하여, 연관된 콘텍스트 모델 는 엔트로피 코딩 스테이지를 제공하는데, 여기에서 이진 심볼의 확률 추정치 는 "1"이다. 양호한 압축 효율을 제공하기 위하여, 이진 심볼을 엔트로피 인코딩함으로써 생성되는 비트 스트림의 부분은 "1"의 경우 에 가까워야 하고 "0"의 경우 이어야 한다.For example, one or more context models Consider an entropy encoding or decoding application, such as a video compression algorithm employing Almost every binary symbol to be encoded or decoded is clearly associated with one of the context models. In order to encode or decode such a binary symbol, the associated context model provides an entropy coding stage, where probability estimates of binary symbols are is "1". In order to provide good compression efficiency, the portion of the bit stream generated by entropy encoding the binary symbol is "1". It should be close to and in the case of "0" It should be continued.
각각의 콘텍스트 모델 의 경우, 하나 이상의 상태 변수(또는 상태 변수 값) 이 유도되고 이다. 각각의 상태 변수 는, 예를 들어 유부호 정수 값으로서 구현되고, 확률 값 를 나타낸다. 콘텍스트 모델 의 확률 추정치 는, 예를 들어 콘텍스트 모델의 모든 상태 변수의 확률 값 의 가중 합으로서 규정될 것이다.Each context model In the case of one or more state variables (or state variable values) This is induced is. Each state variable is implemented as a signed integer value, for example, and is a probability value represents the context model Probability estimate of is, for example, the probability value of all state variables in the context model. will be defined as the weighted sum of .
상태 변수는 후속하는 속성을 가지는 것이 바람직하지만 반드시 가져야 하는 것은 아니다:State variables are encouraged to have the following properties, but are not required to:
1. 이라면, 이다.1. If so, am.
2. 에 대해 더 큰 값이 더 큰 에 대응한다.2. The larger the value, the larger the Corresponds to.
3. 이다.3. am.
결과적으로, 음수 상태 변수는 에 대응할 수 있다. 일반적으로, 각각의 콘텍스트 모델의 각각의 상태 변수에 대하여 상이한 함수 를 규정하는 것이 가능하다.As a result, the negative state variable is can correspond to. In general, a different function is provided for each state variable of each context model. It is possible to define .
일반적인 진술 1General statement 1
본 발명은 비트-천이 연산을 많은 경우에 매우 효율적으로 사용할 수 있게 한다. 수학식 는 가 정수이고 가 2의 제곱인 간단한 비트-천이 연산에 의해 구현될 수 있다. 두 개의 보완적인 표현이 에 대해서 채용되면, 이것은 가 음수인 경우에도 성립한다.The present invention enables bit-transition operations to be used very efficiently in many cases. Mathematical expression Is is an integer can be implemented by simple bit-shift operations where the power of 2 is . The two complementary representations are When hired, this is It also holds true if is negative.
일반적인 진술 2
예를 들어, 확률 값, 가중치 인자, 룩업 테이블 원소, 등과 같은 비-정수 숫자를 저장하는 임의의 변수는, 특별한 주의가 없어도 고정 소수점 또는 부동 소수점 표현으로 구현될 수 있다. 그러면 본 발명의 각각의 특정한 구현형태에 대해서 달라질 수 있는 반올림 연산이 도입된다.For example, any variables storing non-integer numbers, such as probability values, weighting factors, lookup table elements, etc., can be implemented in fixed-point or floating-point representations without special care. This introduces rounding operations that may vary for each particular implementation of the present invention.
상태 변수를 확률 값과 연관시키기 위한 예시적인 구성An example configuration for associating state variables with probability values.
상태 변수를 확률 값과 연관시키는, 즉, 를 구현하는 많은 유용한 방법들이 존재한다. 예를 들어, HEVC의 확률 추정기에 비견되는 상태 표현이 다음 수학식으로 얻어질 수 있다:Associating state variables with probability values, i.e., There are many useful ways to implement it. For example, a state representation comparable to the probability estimator of HEVC can be obtained mathematically as follows:
는 가중치 인자이다. is a weighting factor.
는 인 파라미터이다. Is is a parameter.
HEVC에 비견될 수 있는 구성을 얻기 위해서, 모든 및 모든 에 대해서 및 를 설정한다.To obtain a structure comparable to HEVC, all and all About and Set up.
이러한 예시적인 구성은 상태 변수가 어떻게 정의될 수 있는지에 대한 어느 정도의 통찰력을 제공할 것이다. 일반적으로, 를 정의하는 것이 불필요한데, 그 이유는 이것이 다음 내용에서 볼 수 있는 것처럼 직접적으로 사용되지 않기 때문이다. 그 대신에, 이것은 본 발명의 개별적인 부분들의 실제 구현형태로부터 흔히 얻어진다.These exemplary configurations will give you some insight into how state variables can be defined. In general, It is unnecessary to define it, since it is not used directly, as can be seen in the following. Instead, it is often obtained from the actual implementation of the individual parts of the invention.
상태 변수의 초기화Initializing state variables
제 1 심볼을 콘텍스트 모델로 인코딩 또는 디코딩하기 전에, 모든 상태 변수들이 압축 애플리케이션에 맞춰 최적화될 수 있는 동일한 값들로 선택적으로 초기화된다.Before encoding or decoding the first symbol into a context model, all state variables are optionally initialized to identical values that can be optimized for the compression application.
상태 변수로부터 확률 추정치를 유도함Deriving probability estimates from state variables
심볼의 인코딩 또는 디코딩을 위하여, 확률 추정치가 콘텍스트 모델의 상태 변수로부터 유도된다. 두 가지 대안적인 접근법들이 다음에 제공된다. 접근법 1은 접근법 2보다 더 정확한 결과를 제공하지만, 더 높은 계산 복잡도를 가진다.For encoding or decoding symbols, probability estimates are derived from the state variables of the context model. Two alternative approaches are presented below. Approach 1 provides more accurate results than
접근법 1Approach 1
이러한 접근법은 두 개의 단계들로 이루어진다. 첫째로, 콘텍스트 모델의 각각의 상태 변수 가 확률 값 로 변환된다. 둘째로, 확률 추정치 가 확률 값 의 가중 합으로서 유도된다.This approach consists of two steps: first, each state variable of the context model is the probability value is converted to . Second, the probability estimate is the probability value is derived as a weighted sum of .
단계 1:Step 1:
상태 변수 를, 예를 들어 수학식 1에 따라서 대응하는 확률 값 으로 변환하기 위하여 룩업 테이블 LUT1이 채용된다.State variables , for example, the corresponding probability value according to mathematical expression 1 Lookup table LUT1 is employed to convert to .
은 확률 값을 포함하는 룩업 테이블이다. is a lookup table containing probability values.
는 를 의 크기에 적응시키는 가중치 인자이다. Is cast is a weighting factor that adapts to the size of the image.
이러한 단계는, 예를 들어 블록(882 및 884)에 의해서 수행될 수 있다.These steps may be performed, for example, by blocks (882 and 884).
단계 2:Step 2:
확률 추정치 가, 예를 들어 다음에 따라서 확률 값 로부터 유도된다:Probability Estimate A, for example, the probability value according to the following is derived from:
[수학식 7][Mathematical formula 7]
는 개별적인 상태 변수의 영향을 제어하는 가중치 인자이다. is a weighting factor that controls the influence of individual state variables.
이러한 단계는, 예를 들어 블록(886)에 의해서 수행될 수 있다.This step may be performed, for example, by block (886).
접근법 2
상태 변수로부터 확률 추정치를 유도하기 위한 대안적인 접근법이 다음에 제시된다. 이것은 정확성이 떨어지는 결과를 제공하고, 더 낮은 계산 복잡도를 가진다. 첫째로, 상태 변수의 가중 합 가 예를 들어 다음에 따라서 유도된다:An alternative approach to deriving probability estimates from state variables is presented below. It provides less accurate results and has lower computational complexity. First, the weighted sum of state variables is derived, for example, as follows:
는 각각의 상태 변수의 영향을 제어하는 가중치 인자이다. is a weighting factor that controls the influence of each state variable.
이러한 단계는, 예를 들어 블록(892)에 의해서 수행될 수 있다.This step may be performed, for example, by block (892).
둘째로, 확률 추정치 가 상태 변수 의 가중 합으로부터, 예를 들어 다음에 따라서 유도된다:Second, the probability estimate is a state variable From the weighted sum of , it is derived, for example, as follows:
는 확률 추정치를 포함하는 룩업 테이블이다. is a lookup table containing probability estimates.
는 를 의 크기에 적응시키는 가중치 인자이다. Is cast is a weighting factor that adapts to the size of the image.
이러한 단계는, 예를 들어 블록(894)에 의해서 수행될 수 있다.This step may be performed, for example, by block (894).
접근법 1 및 2에 대한 선택적인 변경 사항Optional changes to
소프트웨어 구현을 위하여, 가능한 많은 연산이 룩업 테이블 내로 천이될 수 있다면 쓰루풋이 증가될 수 있다. 수학식 1 이 다음으로 대체된다면 이것은 접근법 1에 대해서 더 쉬워진다:For software implementation, throughput can be increased if as many operations as possible can be transitioned into the lookup table. This becomes easier for Approach 1 if Equation 1 is replaced by:
접근법 2의 경우, 수학식 2가 다음으로 대체된다:For
양자 모두의 수학식에서, 이러한 변경은 케이스 구별(case differentiation)을 룩업 테이블에 통합시키는 것이 가능해지게 하고, 이것은 이전의 원소 개수보다 오직 두 배 많은 개수를 요구한다. 그러나, 높은 쓰루풋을 달성하기 위해서는, 연산의 개수를 줄이는 것이 도움이 될 수 있지만, 룩업 테이블 크기가 증가되는 것은 관련성이 적을 수 있다.In both mathematical expressions, this change allows the case differentiation to be incorporated into the lookup table, which requires only twice as many elements as before. However, for achieving high throughput, reducing the number of operations may be helpful, but the increase in the lookup table size may be less relevant.
추가적인 주의 사항이 없이, 접근법 1 및 2는 본 발명의 접근법 1 및 2의 모든 애플리케이션에 선택적으로 적용될 수 있다.Without further caveats, approaches 1 and 2 can be selectively applied to all applications of
CABAC(M 코더)의 이진 산술 코딩 엔진과의 결합(선택적임)Combination with the binary arithmetic coding engine of CABAC (M coder) (optional)
CABAC의 M 코더는 2D 룩업 테이블을 채용하여 코딩 인터벌의 인터벌 하위분할을 위해 요구되는 승산을 대체한다. 을 이진 심볼의 산술적 인코딩 이전의 코딩 인터벌이라고 한다. 은, 예를 들어 인터벌 안에 있을 수 있다. 인코딩될 심볼은 이진 산술적 인코딩 또는 디코딩을 위한 확률 추정치 를 유도하기 위하여 사용되는 콘텍스트 모델 와 연관된다. 두 개의 하위인터벌 및 의 폭은 각각 유도될 필요가 있다. 예를 들어, CABAC의 M 코더(일 예의 역할을 함)는 2D 룩업 테이블을 채용함으로써 이러한 승산을 피한다. 확률 추정치 가 심볼이 1일 추정된 확률이라는 것을 상기한다. 그러나, M 코더는 심볼 0 또는 1 양자 모두 중에서 가능성이 적은 것의 확률을 사용하여 그 하위인터벌 폭 를 유도한다. 그러면, 가능성이 높은 심볼 의 하위인터벌 폭이 로부터 를 감산함으로써 쉽게 유도될 수 있다.CABAC's M-coder employs a 2D lookup table to replace the odds required to subdivide coding intervals. is called the coding interval prior to the arithmetic encoding of binary symbols. Silver, for example, interval can be in. The symbol to be encoded is a probability estimate for binary arithmetic encoding or decoding. Context model used to derive is associated with two subintervals and The width of each needs to be derived. For example, CABAC's M coder (which serves as an example) avoids this odds by employing a 2D lookup table. Probability estimates Recall that the symbol is the estimated probability of 1 day. However, the M coder uses the probability of the less likely of both symbols 0 and 1 to determine the width of the subinterval. Then, the most likely symbol is The subinterval width of From can be easily derived by subtracting .
가, M 코더 구현형태에 의존하는, 미리 규정된 가장 작은 허용 값 미만으로 떨어지지 않을 수 있다는 것에 주의한다. 예를 들어, 이러한 가장 작은 허용 값은 2, 3 또는 4일 수 있다. 본 명세서의 나머지에서, 를 M 코더에게 전달하기 전에, 이것이 적어도 미리 규정된 가장 작은 허용 값만큼 커질 때까지 1만큼(증가될 경우) 반복적으로 증가된다는 것이 가정된다. 이것은 클리핑 연산에 대응하고, 별개의 연산 단계로서 구현될 수 있다. 이것을 후속하는 내용에서 제시되는 접근법 중 일부에 직접적으로 포함시키는 것(예컨대, 룩업 테이블 값을 조절하는 것)이 가능할 수 있다. Note that, depending on the implementation of the M coder, it may not fall below a predefined minimum allowable value. For example, this minimum allowable value may be 2, 3, or 4. In the remainder of this specification, Before passing it to the M-coder, it is assumed that it is repeatedly increased by 1 (if it is increased) until it is at least as large as a predefined smallest allowed value. This corresponds to a clipping operation and can be implemented as a separate computational step. It may be possible to directly incorporate this into some of the approaches presented in the following (e.g., by adjusting a lookup table value).
가능성이 적은 심볼 의 확률은 다음으로 주어진다Less likely symbol The probability of is given by
. .
예를 들어, 룩업 테이블 은 8x32 개 또는 8x16 개의 원소를 가질 수 있고, 에 대한 허용 값은 8 개의 셀로 양자화되며, 는 32 개 또는 16 개의 셀로 양자화된다. 그러면 다음이 된다,For example, a lookup table can have 8x32 or 8x16 elements, The allowable values for are quantized into 8 cells, is quantized into 32 or 16 cells. Then,
. .
및 는 및 각각에 대한 양자화 함수이다. and Is and Here is a quantization function for each.
대안 1:Alternative 1:
대안적으로, 룩업 테이블(probTabLPS)은 32 개 또는 16 개의 원소를 가지고, R에 대한 허용 값이 8 개 또는 16 개의 셀로 양자화되며, 는 32 개 또는 16 개의 셀로 양자화된다. 그러면 다음이 된다,Alternatively, the lookup table (probTabLPS) has 32 or 16 elements, with the allowed values for R quantized into 8 or 16 cells. is quantized into 32 or 16 cells. Then,
및 는 및 각각에 대한 양자화 함수이다. and Is and Here is a quantization function for each.
일반적으로, 양자 모두의 양자화 함수가 용이하게 구현될 수 있는 것이 바람직하다. 의 원소가 적절하게 선택되는 한 임의의 양자화 함수가 사용될 수 있다.In general, it is desirable that both quantization functions be easily implemented. Any quantization function can be used as long as its elements are appropriately chosen.
이것이 본 발명을 위하여 활용될 수 있다.This can be utilized for the present invention.
콘텍스트 모델에 대한 확률 추정치를 유도하기 위하여 룩업 테이블 또는 를 채용하는 것이 필요했다는 것을 상기한다. 이러한 룩업 테이블은 내에 통합될 수 있다(또는, 일반적으로 말하자면, M 코더의 룩업-테이블과 다른 2-차원 룩업-테이블 내에 통합될 수 있음).Lookup table to derive probability estimates for context models or Recall that it was necessary to employ these lookup tables. can be integrated into (or, more generally, integrated into the lookup-table of the M-coder and into another two-dimensional lookup-table).
접근법 1 및 2에서 확률 추정치를 계산하는 대신에, 하위인터벌 폭들이 의 주어진 값들에 대해서 직접적으로, 예를 들어 다음과 같이 계산된다:Instead of computing probability estimates in
접근법 1의 경우, 은 수학식 1 및 수학식 7의 양측에서 승산되어 다음이 된다For approach 1, is multiplied on both sides of Equation 1 and Equation 7 to obtain the following
다음으로, 이 상이한 양자화된 값 의 바람직한 개수에 대해서 미리 계산된 곱 을 포함하는 2D 룩업 테이블로 대체된다. (실시형태의 실제 구현형태의 예)Next, These different quantized values Pre-calculated product for the desired number of is replaced by a 2D lookup table containing (an example of an actual implementation of the implementation form).
결과적으로 얻어지는 2D 룩업-테이블은, 예를 들어 블록(736 및 738)에서 사용될 수 있다.The resulting 2D lookup-table can be used, for example, in blocks (736 and 738).
접근법 2의 경우, 은 수학식 2의 양측 모두에서 승산되어, 다음이 된다For
다음으로, 가 상이한 양자화된 값 의 바람직한 개수에 대해서 미리 계산된 곱 을 포함하는 2D 룩업 테이블로 대체된다(실시형태의 실제 구현형태의 예). 가 이러한 2D 룩업 테이블이 되면, 수학식 8은 다음이 된다Next, Different quantized values Pre-calculated product for the desired number of is replaced by a 2D lookup table containing (an example of an actual implementation form of the embodiment). If this becomes a 2D lookup table, then Equation 8 becomes
수학식 9로부터 알 수 있는 바와 같이, 는, 하나의 단일 룩업 테이블 내에, 예를 들어 및 를 포함한다.As can be seen from mathematical expression 9, , within a single lookup table, for example: and Includes.
LUT3 또는 수학식 9는 예를 들어 블록(756)에서 사용될 수 있다.LUT3 or equation 9 can be used, for example, in block (756).
대안적으로, 대안 1로서 제시된 기법에 따라서 LUT3는 LUT4(1D) 및 승산 연산으로 대체될 수 있다.Alternatively, LUT3 can be replaced with LUT4 (1D) and a multiplication operation according to the technique presented as Alternative 1.
함수 은 예를 들어 다음과 같이 정의될 수 있다Function can be defined, for example, as follows:
여기에서 , 및 는 압축 애플리케이션에 따라 달라진다.Here , and Depends on the compression application.
예를 들어, ,, 및 이다.for example, , , and am.
그러면, 콘텍스트 모델 와 연관된 이진 심볼의 산술적 인코딩을 위하여, 하위인터벌 폭 를 유도하기 위해서, 단지 상태 변수 의 가중 합을 수학식 10에 따라서 유도하고 수학식 9를 실행하기만 하면 된다.Then, the context model For the arithmetic encoding of binary symbols associated with , the subinterval width To derive, only the state variables Simply derive the weighted sum according to
동일한 논증이 접근법 1에 대해서도 성립한다.The same argument holds for Approach 1.
지금부터는, 를 효율적으로 구현하는(또는 인터벌 크기 정보를 유도하는) 추가적인(선택적인, 대안적인) 방식이 제공된다. 전체 룩업 테이블을 저장하는 대신에, 원소들은 필요에 따라 신속하게 계산된다. 이러한 목적을 위하여, 새로운 룩업 테이블 가 정의될 것이다. 이것은 간단한 연산을 채용함으로써 의 각각의 원소를 유도하기 위하여 사용될 수 있는 값들을 포함한다.From now on, An additional (optional, alternative) way to efficiently implement (or derive interval size information) is provided. Instead of storing the entire lookup table, elements are computed on the fly as needed. For this purpose, a new lookup table will be defined. This is done by employing simple operations. Contains values that can be used to derive each element of .
일반적으로 말하자면, 예를 들어 RangeTabLPS[i][j]는 블록(870)에서 평가될 수 있는데, 여기에서 RangeTabLPS의 엔트리는, 예를 들어 BaseTabLPS 및 대응하는 스케일링 함수 Scal(x, y)를 사용하여(BaseTabLPS를 사용하는 실시형태), 또는 ProbTabLPS 및 대응하는 스케일링 함수 Scal(x, y)를 사용하여(ProbTabLPS를 사용하는 실시형태) 획득될 수 있다(이전에 또는 즉시).In general, for example, RangeTabLPS[i][j] can be evaluated in block (870), where an entry of RangeTabLPS can be obtained (either before or immediately) using, for example, BaseTabLPS and a corresponding scaling function Scal(x, y) (an embodiment using BaseTabLPS), or using ProbTabLPS and a corresponding scaling function Scal(x, y) (an embodiment using ProbTabLPS).
바람직한 실시형태에서(예를 들어 BaseTabLPS를 사용하는 실시형태), 는 크기가 일 것이고, 크기가 인 가 다음과 같이 로부터 생성될 것이다:In a preferred embodiment (e.g. one using BaseTabLPS), is the size It will be, and the size person As follows will be generated from:
는 스케일링 함수이다. 예를 들어, , , , 이고, is a scaling function. For example, , , , And,
{ {
{ 125, 140, 156, 171, 187, 203, 218, 234, },{ 125, 140, 156, 171, 187, 203, 218, 234, },
{ 108, 121, 135, 148, 162, 175, 189, 202, },{ 108, 121, 135, 148, 162, 175, 189, 202, },
{ 94, 105, 117, 129, 141, 152, 164, 176, },{ 94, 105, 117, 129, 141, 152, 164, 176, },
{ 81, 91, 101, 111, 121, 131, 141, 151, },{ 81, 91, 101, 111, 121, 131, 141, 151, },
{ 71, 79, 88, 97, 106, 115, 124, 133, },{ 71, 79, 88, 97, 106, 115, 124, 133, },
{ 61, 68, 76, 83, 91, 99, 106, 114, },{ 61, 68, 76, 83, 91, 99, 106, 114, },
{ 53, 59, 66, 72, 79, 86, 92, 99, },{ 53, 59, 66, 72, 79, 86, 92, 99, },
{ 46, 51, 57, 63, 69, 74, 80, 86, },{ 46, 51, 57, 63, 69, 74, 80, 86, },
{ 40, 45, 50, 55, 60, 65, 70, 75, },{ 40, 45, 50, 55, 60, 65, 70, 75, },
{ 35, 39, 43, 48, 52, 56, 61, 65, },{ 35, 39, 43, 48, 52, 56, 61, 65, },
{ 31, 34, 38, 42, 46, 50, 54, 58, },{ 31, 34, 38, 42, 46, 50, 54, 58, },
{ 27, 30, 33, 37, 40, 43, 47, 50, },{ 27, 30, 33, 37, 40, 43, 47, 50, },
{ 24, 27, 30, 33, 36, 39, 42, 45, },{ 24, 27, 30, 33, 36, 39, 42, 45, },
{ 21, 23, 26, 28, 31, 34, 36, 39, },{ 21, 23, 26, 28, 31, 34, 36, 39, },
{ 18, 20, 22, 24, 27, 29, 31, 33, },{ 18, 20, 22, 24, 27, 29, 31, 33, },
{ 16, 18, 20, 22, 24, 26, 28, 30, },{ 16, 18, 20, 22, 24, 26, 28, 30, },
}이다. (예)} is. (Example)
다르게 말하면, 예를 들어 의 상부 절반은 바닥 연산이 각각의 원소에 적용된 의 값으로 이루어진다(또는 포함한다). 예를 들어, 의 하부 절반은 각각의 원소가 8로(또는 다른 숫자로) 나누어지고, (선택적으로) 바닥 연산이 수행된 의 값들로 이루어지는데(또는 포함하는데), 이것은, 예를 들어 3 만큼의 우측-천이에 대응한다.In other words, for example, The upper half of the floor operation is applied to each element. consists of (or includes) the values of . For example, The lower half of the array is divided by 8 (or some other number) for each element, and (optionally) a floor operation is performed. consists of (or contains) values of , which correspond to a right-transition of, for example, 3.
이러한 접근법은 보다 작은 만을 저장하면 되고, 의 행에 있는 값들이, 예를 들어 행이 증가함에 따라 지수적으로 감쇠된다는 사실을 활용한다. 지수적 감쇠는 파라미터 에 따라 달라진다.This approach lesser You just need to save it, It exploits the fact that the values in a row of a function decay exponentially as the row increases, for example. Exponential decay is a parameter It depends.
다른 예(예를 들어, BaseTabLPS를 사용하는 다른 실시형태)에서는, , , , 이고,In another example (e.g. another embodiment using BaseTabLPS), , , , And,
{ {
{ 121, 136, 151, 166, 181, 196, 211, 226, },{ 121, 136, 151, 166, 181, 196, 211, 226, },
{ 100, 112, 125, 137, 150, 162, 175, 187, },{ 100, 112, 125, 137, 150, 162, 175, 187, },
{ 83, 93, 103, 114, 124, 134, 145, 155, },{ 83, 93, 103, 114, 124, 134, 145, 155, },
{ 70, 78, 87, 96, 105, 113, 122, 131, }{ 70, 78, 87, 96, 105, 113, 122, 131, }
}이다. (예)} is. (Example)
이러한 구성은, 의 행의 값들이 각각의 네 개 행을 이등분하도록 가 선택되는 경우에 사용될 수 있다. 의 값은, 예를 들어 연관된 로부터 추출될 수 있다는 것에 주의한다.This configuration is, The values in the rows of each of the four rows are divided into two equal parts. Can be used when selected. The value of is, for example, associated Note that it can be extracted from .
를 수반하는 접근법은 수학식 11에 규정된 바와 같은 대안 1 및 연관된 바람직한 실시형태와 (선택적으로) 조합될 수 있다. 대안 1은 의 행을 하나의 상수 및 계산 동작(각각의 행에 대한)으로부터 유도하기 위한 접근법 이라고 간주될 수 있다. 가, 예를 들어 의 스케일링된 행을 포함하기 때문에(반올림은 무시함), 대안 1은 를 유도하기 위하여 적용될 수 있다. The approach involving may be (optionally) combined with Alternative 1 and the associated preferred embodiment as defined in Equation 11. Alternative 1 is can be considered as an approach to derive a row from a single constant and a computational operation (for each row). A, for example Since it includes scaled rows (ignoring rounding), Alternative 1 is can be applied to induce.
바람직한 실시형태에서(예를 들어, ProbTabLPS를 사용하는 실시형태와 같은 다른 실시형태에서), 크기가 인 가 정의된다. 크기가 인 는, 예를 들어 다음과 같이 로부터 생성될 수 있다:In a preferred embodiment (e.g., in another embodiment using ProbTabLPS), the size person is defined. The size is person For example, as follows: can be generated from:
예를 들어, , , , , , 이고,for example, , , , , , And,
{ {
125,125,
108,108,
94,94,
81,81,
71,71,
61,61,
53,53,
46,46,
40,40,
35,35,
31,31,
27,27,
24,24,
21,21,
18,18,
16,16,
} 이다. (예)} is. (Example)
그러면 가 앞서 설명된 접근법에 따라서 로부터 계산될 수 있다. 의 각각의 값이, 예를 들어 의 연관된 값을 계산한 후 스케일링 함수 를 적용함으로써 신속하게 계산될 수 있다는 것에 주의한다:then According to the approach described above can be calculated from . Each value of, for example, After calculating the associated values, the scaling function Note that this can be quickly computed by applying:
이러한 접근법은 오직 보다, 그리고 따라서 보다 작은 만을 저장하면 된다.This approach only See, and therefore lesser You just need to save it.
동일한 논증에 따르면, 의 하나의 열은, 예를 들어 단순하게 및 의 모든 다른 열을 무시함으로써 의 하나의 열만을 유도하기 위해서 사용될 수 있다. 의 유도된 열은 이제, 예를 들어 수학식 11에 따른 대안 1을 채용함으로써 의 남은 열을 유도하기 위해서 사용될 수 있다.According to the same argument, One column of, for example, simply and By ignoring all other columns can be used to derive only one column. The induced heat is now, for example, by adopting Alternative 1 according to Equation 11. can be used to derive the remaining heat.
바람직한 실시형태에서, 크기가 인 가 정의된다. 크기가 인 는, 다음과 같이 로부터 생성될 수 있다:In a preferred embodiment, the size is person is defined. The size is person is as follows can be generated from:
라는 것에 주의한다(예) Note that (eg)
상태 변수의 of state variables 업데이트Update (본 발명의 양태)(Aspect of the present invention)
심볼의 인코딩 또는 디코딩 이후에, 심볼 시퀀스의 통계적 거동을 추적하기 위해서 콘텍스트 모델의 하나 이상의 상태 변수가 업데이트될 수 있다. 이것은, 예를 들어 블록(640)에서 이루어질 수 있다.After encoding or decoding a symbol, one or more state variables of the context model may be updated to track the statistical behavior of the symbol sequence. This may be done, for example, at block (640).
업데이트는, 예를 들어 다음과 같이 수행된다:Updates are performed, for example, as follows:
는 정수 값을 저장하는 룩업 테이블이다. is a lookup table that stores integer values.
및 는 업데이트 '민첩도(agility)'를 제어하는 가중치 인자이다. and is a weighting factor that controls the 'agility' of the update.
는 룩업 테이블 가 비-음수 값으로만 액세스되는 것을 보장하는 오프셋이다. is a lookup table An offset that ensures that it is accessed only with non-negative values.
후술되는 바와 같이, 룩업 테이블 내의 값은 가 주어진 특정 인터벌 내에 머물도록 선택될 수 있다.As described below, the lookup table The value of my underwear can be chosen to stay within a given specific interval.
대안적으로, 수학식 3을 각각 실행한 후에 수행되는, 예를 들어 다음과 같은 클리핑 연산을 도입하는 것이 가능하다:Alternatively, it is possible to introduce a clipping operation, for example the following, which is performed after each execution of equation (3):
는 에 대한 최대 허용 값이다 Is is the maximum allowable value for
는 에 대한 최소 허용 값이다 Is is the minimum allowable value for
압축 애플리케이션에 관하여 최적화 룩업 테이블 A를 최적화하기 위하여, 룩업 테이블 A의 값에 의해서 근사화되는 추정된 함수(assumed function)도 하나의 계산 연산으로 대체될 수 있다. 예를 들어, 다음이 성립된다.In order to optimize the lookup table A for compression applications, the assumed function approximated by the values of the lookup table A can also be replaced by a single computational operation. For example, the following holds true.
여기에서 , , 및 는 확률 업데이트 거동을 제어하는 파라미터이다.Here , , and is a parameter that controls the probability update behavior.
룩업 테이블 A를 생성하는 이러한 방식이 위에서 설명된 바와 같은 클리핑 연산을 포함하지 않는다는 것에 주의한다. 이제는, 수학식 7의 의 상이한 조합에 대한 압축 효율을 평가하고, 후속하여 원하는 값 에서 를 후속 샘플링함으로써 룩업 테이블 A가 최적화될 수 있다Note that this way of generating the lookup table A does not involve clipping operations as described above. Now, in Equation 7, Evaluate the compression efficiency for different combinations of and subsequently obtain the desired value. at Lookup table A can be optimized by subsequent sampling.
특정한 인코더 또는 디코더 애플리케이션은, 계산 동작을 사용할지 또는 등가 테이블(계산 동작을 통해서 유도된 값을 포함하는 테이블)을 사용할지 여부를 선택한다.A particular encoder or decoder application chooses whether to use a computational operation or an equivalence table (a table containing values derived via a computational operation).
비디오 압축 콘텍스트에 대해서 룩업 테이블 A를 최적화하기 위하여, 후속하는 범위의 가능한 구성들이 사용된다:To optimize the lookup table A for the video compression context, the following range of possible configurations are used:
수학식 3에 대한 선택적인 변경예Optional changes to equation 3
최적화된 소프트웨어 구현형태에서 더 높은 쓰루풋을 얻기 위해서, 두 가지 선택적인 변경이 수학식 3에 적용될 수 있다.To achieve higher throughput in an optimized software implementation, two optional modifications can be made to Equation 3.
제 1의 선택적인 변경예의 경우, 수학식 3이 다음으로 대체된다:For the first optional change example, Equation 3 is replaced by:
[수학식 3a][Mathematical expression 3a]
제 2의 선택적인 변경예의 경우, 수학식 3이 다음으로 대체된다:For the second optional change example, Equation 3 is replaced by:
[수학식 3b][Mathematical expression 3b]
제 1 및 제 2의 선택적인 변경예들의 조합의 경우, 수학식 3이 다음으로 대체된다:For a combination of the first and second optional modifications, Equation 3 is replaced by:
[수학식 3c][Mathematical expression 3c]
제 1 및 제 2의 선택적인 변경예들의 조합을 채용함으로써, 케이스 구별(case differentiation)을 룩업 테이블 A에 통합시키는 것이 가능해지는데, 이것은 이전의 원소의 개수보다 단지 두 배의 원소만을 요구한다. 그러나, 높은 쓰루풋을 달성하기 위해서는, 연산의 개수를 줄이는 것이 도움이 될 수 있지만, 룩업 테이블 크기가 증가되는 것은 관련성이 적을 수 있다.By employing a combination of the first and second optional modifications, it is possible to integrate case differentiation into the lookup table A , which requires only twice as many elements as before. However, for achieving high throughput, reducing the number of operations may be helpful, but increasing the lookup table size may be less relevant.
추가적으로 주의하지 않고서도, 두 개의 선택적인 변경예는 본 발명의 수학식 3의 모든 애플리케이션에 적용될 수 있다(개별적으로 또는 조합되어).Without further ado, the two optional modifications can be applied (either individually or in combination) to all applications of Equation 3 of the present invention.
바람직한 실시형태(세부 내용들은 선택적임)Preferred embodiment (details are optional)
바람직한 실시형태에서, 후속하는 구성이 사용된다:In a preferred embodiment, the following configuration is used:
콘텍스트 모델 M의 개수는 압축 애플리케이션에 따라 달라진다.The number of context models M depends on the compression application.
접근법 2는 상태 변수로부터 확률 추정치를 유도하기 위하여 사용된다.
수학식 3은 상태 변수를 업데이트하기 위하여 사용된다.Mathematical expression 3 is used to update the state variables.
수학식 6에 따른 선택적인 클리핑은 사용되지 않는다.Optional clipping according to Equation 6 is not used.
심볼을 인코딩하기 전에, 가 인터벌 로부터의 값으로 초기화될 것이고, 는 인터벌 로부터의 값으로 초기화될 것이다.Before encoding the symbol, Go interval will be initialized with values from , is the interval will be initialized with values from .
이러한 구성의 경우, 수학식 3은 다음과 같이 기록될 수 있다:For this configuration, mathematical expression 3 can be written as:
가 인터벌 내에 있으면, 수학식 4는 인코딩될 심볼의 값과 무관하게 동일한 인터벌 내에 머물러 있는, 에 대한 업데이트된 값을 산출한다. Go interval If it is within, Equation 4 remains within the same interval regardless of the value of the symbol to be encoded. Produces updated values for .
가 인터벌 내에 있으면, 수학식 5는 인코딩될 심볼의 값과 무관하게 동일한 인터벌 내에 머물러 있는, 에 대한 업데이트된 값을 산출한다. Go interval If it is within, Equation 5 remains within the same interval regardless of the value of the symbol to be encoded. Produces updated values for .
결과적으로, 는, 예를 들어 8 비트 유부호 정수 값으로 구현될 수 있고, 는 12 비트 유부호 정수로 구현될 수 있다.As a result, can be implemented as an 8-bit signed integer value, for example, can be implemented as a 12-bit signed integer.
양자 모두의 수학식은 1을 인코딩한 후에는 상태 변수를 증가시키고(일부 최대 값까지) 및 0을 인코딩한 후에는 상태 변수를 감소시킨다(일부 최소 값까지). 그러나, 수학식 4는, 수학식 5가 를 증가 또는 감소시키는 양보다 큰 값만큼 를 증가 또는 감소시키는 경향이 있다. 다르게 말하면, 는 이전에 인코딩된 심볼에 더 빨리 적응하는 반면에, 는 더 느리게 적응한다.Both equations increase the state variable (up to some maximum value) after encoding 1 and decrease the state variable (up to some minimum value) after encoding 0. However, equation 4 is By a value greater than the amount that increases or decreases tends to increase or decrease. In other words, While it adapts more quickly to previously encoded symbols, adapts more slowly.
다른 바람직한 실시형태에서, 이전의 바람직한 실시형태에 대한 것과 같은 구성이 사용되지만, 제 1 및 제 2의 선택적인 변경예가 수학식 3에 적용되어 다음을 산출한@:In another preferred embodiment, the same configuration as for the previous preferred embodiment is used, but the first and second optional modifications are applied to Equation 3 to yield:
룩업 테이블 LUT2 및 A가 일반적으로 특정한 압축 애플리케이션에 맞게 최적화된다는 것에 주의한다.Note that lookup tables LUT2 and A are typically optimized for specific compression applications.
룩업 테이블 A가 최적화되면, 다음 구성이 수학식 7과 함께 사용된다:When lookup table A is optimized, the following configuration is used with Equation 7:
그러면 then
이 된다. This is it.
A가 이미 클리핑되었다는 것에 주의하는데, 그 이유는 마지막 값이 4 대신에 0과 같기 때문이다.Note that A is already clipped, because its last value is 0 instead of 4.
다른 바람직한 실시형태에서, 구성은 다음의 양태를 제외하고는 이전의 바람직한 실시형태와 동일하다:In another preferred embodiment, the configuration is identical to the previous preferred embodiment except that:
수학식 6에 따른 클리핑이 수학식 3을 다음 파라미터로 각각 실행한 이후에 사용된다:Clipping according to Equation 6 is used after executing Equation 3 with the following parameters:
룩업 테이블 는 다음 값들을 포함한다:The lookup table contains the following values:
상기 룩업 테이블의 마지막 원소 A만이 변경되었고, 이제 A의 제 2 절반에 있는 모든 값이, 효율적으로 구현될 수 있는 값 4을 가진다는 것에 주의한다.Note that only the last element A in the above lookup table has changed, and now all values in the second half of A have the value 4, which can be implemented efficiently.
룩업 테이블이 처음 4 개 이후에 자릿수줄임되었고(truncated) 테이블에 대한 액세스 인덱스가 마지막 테이블 원소로 클리핑된다고 상상한다(실시형태의 선택적인 변경).Imagine that the lookup table is truncated after the first four digits and the access index for the table is clipped to the last table element (optional change in implementation).
테이블의 끝에서의 원소의 개수가 동일한 값을 가지는 한, 이러한 트릭은 룩업 테이블 A의 상이한 버전에 대해서 선택적으로 채용될 수 있다.This trick can be selectively employed for different versions of lookup table A , as long as the number of elements at the end of the table has the same value.
다른 바람직한 실시형태에서, 구성은 다음의 양태를 제외하고는 이전의 바람직한 실시형태와 동일하다:In another preferred embodiment, the configuration is identical to the previous preferred embodiment except that:
크기가 32인 대안 1이 사용된다.Alternative 1 with
다른 바람직한 실시형태에서는, 구성은 이전의 바람직한 실시형태와 동일하다.In another preferred embodiment, the configuration is identical to the previous preferred embodiment.
다른 바람직한 실시형태에서는, 구성은 다음의 양태를 제외하고는 이전의 바람직한 실시형태와 동일하다:In another preferred embodiment, the configuration is identical to the previous preferred embodiment except that:
크기가 16인 대안 1이 사용된다.Alternative 1 with size 16 is used.
다른 바람직한 실시형태에서는, 구성은 이전의 바람직한 실시형태와 동일하다.In another preferred embodiment, the configuration is identical to the previous preferred embodiment.
다른 바람직한 실시형태에서는, 다음 구성이 사용된다:In another preferred embodiment, the following configuration is used:
콘텍스트 모델 M의 개수는 압축 애플리케이션에 따라 달라진다.The number of context models M depends on the compression application.
접근법 2는 상태 변수로부터 확률 추정치를 유도하기 위하여 사용된다.
수학식 3은 상태 변수를 업데이트하기 위하여 사용된다.Mathematical expression 3 is used to update the state variables.
수학식 6에 따른 선택적인 클리핑은 사용되지 않는다.Optional clipping according to Equation 6 is not used.
심볼을 인코딩 하기 전에, 가 인터벌 로부터의 값으로 선택적으로 초기화될 것이다.Before encoding the symbol, Go interval will be optionally initialized with values from .
다른 바람직한 실시형태에서는, 접근법 2가 사용되고, 상이한 콘텍스트 모델에 대해서 상이한 확률 업데이트 거동을 얻기 위해서, 파라미터 , , 및 가 상이한 콘텍스트 모델에 대해서 다르게 설정된다.In another preferred embodiment,
다른 바람직한 실시형태에서, 접근법 1 이 사용되고, 상이한 콘텍스트 모델에 대해서 상이한 확률 업데이트 거동을 얻기 위해서, 파라미터 , , 및 가 상이한 콘텍스트 모델에 대해서 다르게 설정된다. 다른 바람직한 실시형태에서, 접근법 1 또는 접근법 2가 사용되는 경우, N =1 이고, 상이한 콘텍스트 모델에 대해서 상이한 확률 업데이트 거동을 얻기 위해서, 파라미터 , , 및 가 상이한 콘텍스트 모델에 대해서 다르게 설정된다.In another preferred embodiment, approach 1 is used and parameter , , and is set differently for different context models. In another preferred embodiment, when approach 1 or
룩업 테이블 A가 최적화되면, 다음 구성이 수학식 7과 함께 사용된다:When lookup table A is optimized, the following configuration is used with Equation 7:
그러면 then
이 된다. This is it.
A가 이미 클리핑되었다는 것에 주의하는데, 그 이유는 마지막 값이 4 대신에 0과 같기 때문이다.Note that A is already clipped, because its last value is 0 instead of 4.
다른 바람직한 실시형태에서, 접근법 1 또는 접근법 2가 사용되는 경우, N =2 이고, 상이한 콘텍스트 모델에 대해서 상이한 확률 업데이트 거동을 얻기 위해서, 파라미터 , , 및 가 상이한 콘텍스트 모델에 대해서 다르게 설정된다.In another preferred embodiment, when approach 1 or
룩업 테이블 A가 최적화되면, 다음 구성이 수학식 7과 함께 사용된다:When lookup table A is optimized, the following configuration is used with Equation 7:
그러면 then
이 된다. This is it.
대안적으로, 도 이러한 실시형태에서의 바람직한 구성이고, 이것은 다음을 초래한다 .Alternatively, This is also a desirable configuration in this embodiment, which results in the following:
A가 이미 클리핑되었다는 것에 주의하는데, 그 이유는 마지막 값이 4 대신에 0과 같기 때문이다.Note that A is already clipped, because its last value is 0 instead of 4.
19. 구현 대안:19. Implementation alternatives:
비록 몇 가지 양태들이 장치의 콘텍스트에서 설명되었지만, 이러한 양태들이 대응하는 방법의 설명을 역시 나타낸다는 것이 명백한데, 여기에서 블록 또는 디바이스는 방법 단계 또는 방법 단계의 특징에 대응한다. 이와 유사하게, 방법의 콘텍스트에서 설명된 양태들도 역시 대응하는 장치의 대응하는 블록 또는 아이템 또는 특징의 설명을 역시 나타낸다. 방법 단계 중 일부 또는 전부는, 예를 들어, 마이크로프로세서, 프로그램가능 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해서(또는 이것을 사용하여) 실행될 수 있다. 일부 실시형태에서, 가장 중요한 방법 단계들 중 하나 이상은 이러한 장치에 의해 실행될 수 있다.Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of a corresponding method, wherein a block or device corresponds to a method step or feature of a method step. Similarly, aspects described in the context of a method also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be implemented by (or using) a hardware device, such as, for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most significant method steps may be implemented by such a device.
특정한 구현형태의 요구 사항에 의존하여, 본 발명의 실시예들은 하드웨어로 또는 소프트웨어로 구현될 수 있다. 구현형태는 저장된 전자적으로 판독가능한 제어 신호를 가지는 디지털 저장 매체, 예를 들어 플로피 디스크, DVD, 블루-레이, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리를 사용하여 수행될 수 있는데, 이것은 각각의 방법이 수행되도록 프로그래밍가능한 컴퓨터 시스템과 상호동작한다(또는 상호 동작할 수 있다). 그러므로, 디지털 저장 매체는 컴퓨터에 의해 판독될 수 있다.Depending on the requirements of a particular implementation, embodiments of the present invention may be implemented in hardware or software. The implementation may be performed using a digital storage medium having stored thereon electronically readable control signals, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM or FLASH memory, which interacts (or can interact) with a computer system programmable to perform each method. Thus, the digital storage medium is computer-readable.
본 발명에 따르는 몇 가지 실시예는 전자적으로 판독가능한 제어 신호를 가지는 데이터 캐리어를 포함하는데, 이것은 프로그래밍가능한 컴퓨터 시스템과 함께 상호 동작하여 본 명세서에서 설명되는 방법들 중 하나가 수행되게 할 수 있다.Some embodiments according to the present invention include a data carrier having electronically readable control signals that can interact with a programmable computer system to cause one of the methods described herein to be performed.
일반적으로, 본 발명의 실시예들은 프로그램 코드가 있는 컴퓨터 프로그램 제품으로서 구현될 수 있는데, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때에 방법들 중 하나를 수행하기 위하여 동작가능하다. 프로그램 코드는, 예를 들어 머신 판독가능 캐리어에 저장될 수도 있다.In general, embodiments of the present invention may be implemented as a computer program product having program code, the program code being operable to perform one of the methods when the computer program product is executed on a computer. The program code may be stored, for example, on a machine-readable carrier.
다른 실시예들은 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위하여 머신 판독가능 캐리어에 저장되는 컴퓨터 프로그램을 포함한다.Other embodiments include a computer program stored on a machine-readable carrier to perform one of the methods described herein.
다르게 말하면, 그러므로, 본 발명의 방법의 일 실시예는 컴퓨터 프로그램이 컴퓨터에서 실행될 때에 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 프로그램 코드를 가지는 컴퓨터 프로그램이다.In other words, therefore, one embodiment of the method of the present invention is a computer program having program code for performing one of the methods described herein when the computer program is executed on a computer.
그러므로, 본 발명의 방법의 다른 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 그 위에 기록되는 데이터 캐리어(또는 디지털 저장 매체, 또는 컴퓨터-판독가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 통상적으로 유형적이고 및/또는 일시적이지 않다.Therefore, another embodiment of the method of the present invention is a data carrier (or digital storage medium, or computer-readable medium) having recorded thereon a computer program for performing one of the methods described herein. A data carrier, digital storage medium or recording medium is typically not tangible and/or transitory.
그러므로, 본 발명의 방법의 다른 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호의 시퀀스이다. 데이터 스트림 또는 신호의 시퀀스는, 예를 들어 데이터 통신 접속을 통하여, 예를 들어 인터넷을 통하여 전송되도록 구성될 수도 있다.Therefore, another embodiment of the method of the present invention is a data stream or sequence of signals representing a computer program for performing one of the methods described herein. The data stream or sequence of signals may be configured to be transmitted, for example, over a data communications connection, for example, over the Internet.
다른 실시예는, 본 명세서에서 설명되는 중 방법들 중 하나를 수행하도록 구성되거나 적응되는, 처리 수단, 예를 들어 컴퓨터, 또는 프로그래밍가능한 로직 디바이스를 포함한다.Another embodiment comprises a processing means, for example a computer or a programmable logic device, configured or adapted to perform one of the methods described herein.
다른 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 그 위에 설치한 컴퓨터를 포함한다.Another embodiment comprises a computer having installed thereon a computer program for performing one of the methods described herein.
본 발명에 따른 추가적인 실시형태들은, 본 명세서에서 설명되는 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기로 전송하도록 구성되는(예를 들어, 전자적으로 또는 광학적으로) 장치 또는 시스템을 포함한다. 수신기는, 예를 들어 컴퓨터, 모바일 디바이스, 메모리 디바이스 또는 기타 등등일 수 있다. 이러한 장치 또는 시스템은, 예를 들어 컴퓨터 프로그램을 수신기에 전달하기 위한 파일 서버를 포함할 수 있다.Additional embodiments according to the present invention include a device or system configured to transmit (e.g., electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may be, for example, a computer, a mobile device, a memory device, or the like. Such a device or system may include, for example, a file server for transmitting the computer program to the receiver.
몇 가지 실시예들에서, 프로그래밍가능한 로직 디바이스(예를 들어 필드 프로그램가능 게이트 어레이)가 본 명세서에서 설명되는 방법의 기능성 중 일부 또는 전부를 수행하도록 사용될 수도 있다. 몇 가지 실시예들에서, 필드 프로그램가능 게이트 어레이는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위하여 마이크로프로세서와 함께 상호동작할 수도 있다. 일반적으로, 이러한 방법은 임의의 하드웨어 장치에 의하여 수행되는 것이 바람직하다.In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, the field programmable gate array may interact with a microprocessor to perform one of the methods described herein. In general, such methods are preferably performed by any hardware device.
본 명세서에서 설명되는 장치는 하드웨어 장치를 사용하여, 또는 컴퓨터를 사용하여, 또는 하드웨어 장치 및 컴퓨터의 조합을 사용하여 구현될 수 있다.The devices described in this specification can be implemented using hardware devices, using a computer, or using a combination of hardware devices and a computer.
본 명세서에서 설명되는 장치, 또는 본 명세서에서 설명되는 장치의 임의의 컴포넌트들은 적어도 부분적으로 하드웨어 및/또는 소프트웨어로 구현될 수 있다.The devices described herein, or any components of the devices described herein, may be implemented at least partially in hardware and/or software.
본 명세서에서 설명되는 방법은 하드웨어 장치를 사용하여, 또는 컴퓨터를 사용하여, 또는 하드웨어 장치 및 컴퓨터의 조합을 사용하여 수행될 수 있다.The method described herein can be performed using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
본 명세서에서 설명되는 방법, 또는 본 명세서에서 설명되는 장치의 임의의 컴포넌트들은 적어도 부분적으로 하드웨어에 의하여 및/또는 소프트웨어에 의하여 수행될 수 있다.Any of the methods described herein, or any of the components of the devices described herein, may be performed at least in part by hardware and/or by software.
본 명세서에서 설명된 실시예는 본 발명의 원리에 대한 예시일 뿐이다. 본 명세서에서 설명되는 배치구성 및 세부 사항의 변경 및 변형이 당업자에게는 명백하게 이해될 것이라는 것이 이해된다. 그러므로, 출원 중인 청구항의 범위에 의해서만 제한되고 본 명세서의 실시예를 기술하고 설명하는 것에 의하여 제시되는 구체적인 세부사항에 의해서 제한되는 것은 의도되지 않는다.The embodiments described herein are merely illustrative of the principles of the present invention. It is to be understood that modifications and variations of the arrangements and details described herein will be apparent to those skilled in the art. Therefore, it is not intended to be limited by the scope of the pending claims and by the specific details presented by describing and explaining the embodiments herein.
Claims (235)
상기 산술 인코더는,
상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(interval size information)(432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)를 유도하도록 구성되고,
상기 산술 인코더는, 인코딩될 하나 이상의 심볼의 산술적 인코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 룩업 테이블(LUT1)을 사용하여 매핑하고,
제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 상기 룩업 테이블(LUT1)을 사용하여 매핑하도록 구성되는, 산술 인코더.An arithmetic encoder (34; 400) for encoding a plurality of symbols (24'', 410) having symbol values,
The above arithmetic encoder is,
Based on a plurality of state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously encoded symbol values having different adaptation time constants, it is configured to derive interval size information (432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic encoding of one or more symbol values to be encoded,
The above arithmetic encoder obtains interval size information describing an interval size for arithmetic encoding of one or more symbols to be encoded.
Mapping the first state variable value, or a scaled version and/or a rounded version of the first state variable value, using a lookup table (LUT1),
An arithmetic encoder configured to map a second state variable value, or a scaled version and/or a rounded version of said second state variable value, using said lookup table (LUT1).
상기 산술 인코더는,
상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된(rounded) 버전을 상기 룩업 테이블을 사용하여 제 1 확률 값으로 매핑하도록 구성되고,
상기 산술 인코더는,
상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 상기 룩업 테이블을 사용하여 제 2 확률 값으로 매핑하도록 구성되며,
상기 산술 인코더는 상기 제 1 확률 값 및 상기 제 2 확률 값을 사용하여 결합된 확률 값을 획득하도록 구성되는, 산술 인코더.In paragraph 1,
The above arithmetic encoder is,
configured to map the first state variable value, or a scaled version and/or a rounded version of the first state variable value, to a first probability value using the lookup table,
The above arithmetic encoder is,
configured to map the second state variable value, or a scaled version and/or a rounded version of the second state variable value, to a second probability value using the lookup table,
An arithmetic encoder, wherein the arithmetic encoder is configured to obtain a combined probability value using the first probability value and the second probability value.
상기 산술 인코더는,
인코딩될 심볼이 제 1 값을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고, 인코딩될 심볼이 상기 제 1 값과 상이한 제 2 값을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록 구성되고,
상기 산술 인코더는 개별적인 상태 변수 값의 절대 값에 의존하여 평가될 룩업 테이블의 엔트리를 결정하도록 구성되는, 산술 인코더.In the second paragraph,
The above arithmetic encoder is,
If the symbol to be encoded has a first value, the state variable value is changed in the first direction, and if the symbol to be encoded has a second value different from the first value, the state variable value is changed in the second direction.
An arithmetic encoder, wherein the arithmetic encoder is configured to determine which entry of a lookup table is to be evaluated based on the absolute value of an individual state variable value.
상기 산술 인코더는,
제 1 상태 변수 값이 제 1 부호를 가지면, 상기 제 1 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값으로 설정하도록 구성되고,
상기 산술 인코더는,
상기 제 1 상태 변수 값이 제 2 부호를 가지면, 상기 제 1 확률 값(pk 1)을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값으로부터 감산함으로써 얻어지는 값으로 설정하도록 구성되는, 산술 인코더.In the third paragraph,
The above arithmetic encoder is,
If the first state variable value has the first sign, the first probability value is configured to be set to a value provided by the lookup table,
The above arithmetic encoder is,
An arithmetic encoder configured to set the first probability value (p k 1 ) to a value obtained by subtracting a value provided by the lookup table from a predetermined value if the first state variable value has a second sign.
상기 산술 인코더는,
두 개 이상의 확률 값 pk i를
에 따라서 결정하도록 구성되고,
LUT1은 확률 값을 포함하는 룩업 테이블이며,
. 는 바닥 연산자(floor operator)이고,
sk i는 i-번째 상태 변수 값이며,
ak i는 상기 i-번째 상태 변수 값과 연관된 가중치(weighting value)인, 산술 인코더.In the second paragraph,
The above arithmetic encoder is,
Two or more probability values p k i
It is configured to decide accordingly,
LUT1 is a lookup table containing probability values,
. is the floor operator,
s k i is the i-th state variable value,
An arithmetic encoder, where a k i is a weighting value associated with the i-th state variable value.
상기 산술 인코더는,
두 개 이상의 확률 값 pk i를
에 따라서 결정하도록 구성되고,
LUT1은 확률 값을 포함하는 룩업 테이블이며;
. 는 바닥 연산자(floor operator)이고,
sk i는 i-번째 상태 변수 값이며,
ak i는 상기 i-번째 상태 변수 값과 연관된 가중치(weighting value)인, 산술 인코더.In the second paragraph,
The above arithmetic encoder is,
Two or more probability values p k i
It is configured to decide accordingly,
LUT1 is a lookup table containing probability values;
. is the floor operator,
s k i is the i-th state variable value,
An arithmetic encoder, where a k i is a weighting value associated with the i-th state variable value.
상기 산술 인코더는,
에 따라서, 복수 개의 확률 값 pk i에 기반하여 상기 결합된 확률 값 pk를 획득하도록 구성되고,
N은 고려되는 확률 값의 개수이며,
bk i는 가중치인, 산술 인코더.In the second paragraph,
The above arithmetic encoder is,
Accordingly, it is configured to obtain the combined probability value p k based on a plurality of probability values p k i ,
N is the number of probability values considered,
arithmetic encoder, where b k i are weights.
상기 산술 인코더는,
상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 그 엔트리가 상기 제 1 상태 변수 값에 의존하고 심볼의 인코딩 이전의 산술적 인코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보에 의존하여 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 1 하위인터벌 폭 값(subinterval width value)으로 매핑하도록 구성되고,
상기 산술 인코더는,
상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 그 엔트리가 상기 제 2 상태 변수 값에 의존하고 심볼의 인코딩 이전의 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보에 의존하여 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 2 하위인터벌 폭 값으로 매핑하도록 구성되며,
상기 산술 인코더는,
조합된 하위인터벌 폭 값을 상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여 획득하도록 구성되는, 산술 인코더.In paragraph 1,
The above arithmetic encoder is,
configured to map the first state variable value, or a scaled version and/or a rounded version of the first state variable value, to a first subinterval width value using a two-dimensional lookup table whose entries are addressed depending on the first state variable value and depending on coding interval size information describing the size of a coding interval of an arithmetic encoding prior to encoding of a symbol;
The above arithmetic encoder is,
configured to map said second state variable value, or a scaled version and/or a rounded version of said second state variable value, to a second subinterval width value using a two-dimensional lookup table whose entries are addressed depending on said second state variable value and depending on coding interval size information describing the size of a coding interval of an arithmetic encoding prior to encoding of a symbol;
The above arithmetic encoder is,
An arithmetic encoder configured to obtain a combined sub-interval width value using the first sub-interval width value and the second sub-interval width value.
상기 2-차원 룩업 테이블은,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리, 및
상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있는, 산술 인코더.In Article 8,
The above two-dimensional lookup table is,
a first 1-dimensional vector entry comprising probability values for different value intervals of the value domain for the first state variable value and the second state variable value, or for scaled versions and/or rounded versions of the first state variable value and the second state variable value, and
An arithmetic encoder which can be expressed as a dyadic product between second 1-dimensional vector entries including quantization levels for the above coding interval size information.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고,
상기 2-차원 룩업 테이블의 원소들의 제 1 그룹은 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며,
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 스케일링된 버전 및 반올림된 버전인, 산술 인코더.In Article 8,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the base lookup table (Base TabLPS).
A first group of elements of the above two-dimensional lookup table are identical to elements of the above base lookup table or are rounded versions of elements of the above base lookup table,
An arithmetic encoder, wherein the second group of elements of the two-dimensional lookup table are scaled and rounded versions of the elements of the base lookup table.
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 우측-천이된 버전인, 산술 인코더.In Article 10,
An arithmetic encoder, wherein the second group of elements of the two-dimensional lookup table are right-shifted versions of the elements of the base lookup table.
상기 상태 변수 값 중 하나에 기초하는, 확률 인덱스는, 상기 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 상기 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고,
확률 인덱스들의 제 1 범위는 원소들의 제 1 그룹의 원소와 연관되며,
상기 확률 인덱스들의 제 2 범위는 원소들의 제 2 그룹의 원소와 연관되는, 산술 인코더.In Article 10,
A probability index based on one of the above state variable values determines whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated,
The first range of probability indices is associated with the elements of the first group of elements,
An arithmetic encoder, wherein the second range of the above probability indices is associated with elements of a second group of elements.
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지(division residual), 및 코딩 인터벌 크기 정보에 기초하여 획득되는, 인터벌 크기 인덱스는, 상기 베이스 룩업 테이블의 어떤 원소가 상기 2-차원 룩업 테이블의 원소를 얻기 위해 사용되는지를 결정하는, 산술 인코더.In Article 12,
An arithmetic encoder, wherein a division residual of a division between a first size value and a probability index, which describes an extension of a base lookup table in a first direction, and an interval size index, which is obtained based on coding interval size information, determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
상기 산술 인코더는,
상기 2-차원 룩업 테이블의 원소를 다음에 따라 획득하도록 구성되고
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ)
여기에서 BaseTabLPS는 차원 μ x λ의 베이스 룩업 테이블이고,
μ는 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하며,
λ는 베이스 룩업 테이블의 제 2 차원을 기술하고,
i는 확률 정보와 연관된 테이블 인덱스이며,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이며,
/는 나눗셈 연산이고,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In Article 9,
The above arithmetic encoder is,
It is configured to obtain elements of the above two-dimensional lookup table as follows:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ )
Here, BaseTabLPS is a base lookup table of dimension μ x λ,
μ describes the extension of the base lookup table in the first direction,
λ describes the second dimension of the base lookup table,
i is the table index associated with the probability information,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is a division operation,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고,
상기 확률 테이블은, 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며,
상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업 테이블의 원소는 스케일링을 사용하여 상기 확률 테이블로부터 유도되는, 산술 인코더.In Article 8,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the probability table (probTabLPS),
The above probability table describes the interval size for a set of multiple probability values associated with table indices and for a given coding interval size,
An arithmetic encoder, wherein elements of a two-dimensional lookup table for probability values not included in the set of the plurality of probability values or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
상기 2-차원 룩업 테이블의 원소는,
- 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하여, 그리고
- 현재의 확률 값과 연관된 원소가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여,
획득되는, 산술 인코더.In Article 15,
The elements of the above two-dimensional lookup table are:
- Using a first scaling of the selected elements of the probability table depending on the coding interval size (R), and
- Using a second scaling of the result of the first scaling, depending on whether the element associated with the current probability value is included in the set of said probability values,
Obtained, arithmetic encoder.
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
현재의 확률 값을 나타내는, 상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 인코더.In Article 16,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
An integer division result of the division between said probability index and said first magnitude value, which represents a current probability value, determines a scaling factor used in said second scaling, and/or
An arithmetic encoder, wherein the above coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
상기 산술 인코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In Article 15,
The above arithmetic encoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 2-차원 룩업 테이블의 원소는,
현재의 확률 값과 연관된 원소가 확률 값들의 세트에 포함되는지 여부에 의존한, 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하고, 상기 코딩 인터벌 크기(R)에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득되는, 산술 인코더.In Article 15,
The elements of the above two-dimensional lookup table are:
An arithmetic encoder obtained by using a first scaling of a selected element of the probability table, depending on whether the element associated with the current probability value is included in the set of probability values, and a second scaling of the result of the first scaling, depending on the coding interval size (R).
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
현재의 확률 값을 나타내는, 상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과는, 상기 제 1 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 2 스케일링의 승산 스케일링 인자(Qr2(R))를 결정하는, 산술 인코더.In Article 19,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between said probability index and said first magnitude value, which represents the current probability value, determines the scaling factor used in said first scaling, and/or
An arithmetic encoder in which the above coding interval size (R) determines the multiplication scaling factor (Qr 2 (R)) of the second scaling.
상기 산술 인코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In Article 15,
The above arithmetic encoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 2-차원 룩업 테이블은,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리, 및
상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있는, 산술 인코더.In Article 8,
The above two-dimensional lookup table is,
a first 1-dimensional vector entry comprising probability values for different value intervals of the value domain for the first state variable value and the second state variable value, or for scaled versions and/or rounded versions of the first state variable value and the second state variable value, and
An arithmetic encoder which can be expressed as a dyadic product between second 1-dimensional vector entries including quantization levels for the above coding interval size information.
상기 산술 인코더는,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전으로부터, 제 1 및 제 2 하위인터벌 폭 값(subinterval width value)(R*pk)을,
상기 제 1 및 제 2 상태 변수 값 또는 상기 제 1 및 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 제 1 및 제 2 확률 값으로 매핑하고,
심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보를 양자화 레벨로 양자화하며,
일 면에 있어서, 상기 제 1 및 제 2 확률 값 및 상기 양자화 레벨의 곱(product)을 결정하고,
상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여, 조합된 하위인터벌 폭 값을 획득함으로써, 각각 계산하도록 구성되는, 산술 인코더.In paragraph 1,
The above arithmetic encoder is,
From the first state variable value and the second state variable value, or the scaled version and/or the rounded version of the first state variable value and the second state variable value, first and second subinterval width values (R*p k ),
Mapping the first and second state variable values, or the scaled and/or rounded versions of the first and second state variable values, to the first and second probability values using a one-dimensional lookup table (LUT4) entry containing probability values for different value intervals of the value domain for the first state variable value and the second state variable value, or the scaled and/or rounded versions of the first state variable value and the second state variable value,
The coding interval size information describing the size of the coding interval of the above arithmetic encoding prior to encoding of the symbol is quantized into a quantization level.
In one aspect, the product of the first and second probability values and the quantization level is determined,
An arithmetic encoder configured to calculate, respectively, a combined sub-interval width value by using the first sub-interval width value and the second sub-interval width value.
상기 산술 인코더는,
논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성되는, 산술 인코더.In paragraph 23,
The above arithmetic encoder is,
An arithmetic encoder configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
상기 산술 인코더는,
코딩 인터벌 크기 정보 R을 양자화하는 것을 에 의하여 수행하도록 구성되고,
여기에서 , 및 는 정수-값 파라미터인, 산술 인코더.In paragraph 23,
The above arithmetic encoder is,
Quantizing the coding interval size information R is configured to perform by,
Here , and is an arithmetic encoder with integer-valued parameters.
상기 1-차원 룩업 테이블의 엔트리는,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 단조 감소(monotonically decrease)하는, 산술 인코더.In Article 24,
The entries in the above one-dimensional lookup table are,
An arithmetic encoder that monotonically decreases as the first state variable value and the second state variable value, or scaled versions and/or rounded versions of the first state variable value and the second state variable value increase.
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 상기 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정되는, 산술 인코더.In paragraph 23,
An arithmetic encoder wherein different value intervals of the value domain for the first state variable value and the second state variable value, or for scaled versions and/or rounded versions of the first state variable value and the second state variable value, are sized identically.
상기 1-차원 룩업 테이블의 엔트리는,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 감소율(decreasing rate)을 가지고 단조 감소하는, 산술 인코더.In Article 27,
The entries in the above one-dimensional lookup table are,
An arithmetic encoder that monotonically decreases at a decreasing rate as the first state variable value and the second state variable value, or the scaled version and/or rounded version of the first state variable value and the second state variable value, increases.
상기 산술 인코더는,
상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값(si k; 642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)를 유도하도록 구성되고,
상기 산술 인코더는,
상기 복수 개의 상태 변수 값에 기반하여, 결합된 상태 변수 값(751a; 893; 1132)을 유도하도록 구성되며,
상기 산술 인코더는, 인코딩될 하나 이상의 심볼의 상기 산술적 인코딩에 대한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전(753;)을 룩업 테이블을 사용하여 매핑하도록 구성되는, 산술 인코더.An arithmetic encoder (34; 400) for encoding a plurality of symbols (24'', 410) having symbol values,
The above arithmetic encoder is,
Based on a plurality of state variable values (s i k ; 642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously encoded symbol values having different adaptation time constants, it is configured to derive interval size information (432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic encoding of one or more symbol values to be encoded,
The above arithmetic encoder is,
Based on the above multiple state variable values, it is configured to derive a combined state variable value (751a; 893; 1132),
The above arithmetic encoder obtains interval size information describing an interval size for the arithmetic encoding of one or more symbols to be encoded.
An arithmetic encoder configured to map combined state variable values, or scaled versions and/or rounded versions (753;) of said combined state variable values, using a lookup table.
상기 산술 인코더는,
상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성되는, 산술 인코더.In Article 29,
The above arithmetic encoder is,
An arithmetic encoder configured to determine a weighted sum of state variable values to obtain the combined state variable values.
상기 산술 인코더는,
상기 결합된 상태 변수 값을 획득하기 위하여,
상태 변수 값 및 상태 변수 값과 연관된 가중치 값의 곱을 반올림함으로써 획득되는 반올림된 값의 합을 결정하도록 구성되는, 산술 인코더.In Article 29,
The above arithmetic encoder is,
In order to obtain the above combined state variable values,
An arithmetic encoder configured to determine a sum of rounded values obtained by rounding a product of state variable values and weight values associated with the state variable values.
상기 산술 인코더는,
상기 결합된 상태 변수 값 sk를
에 따라서 결정하도록 구성되고,
여기에서 sk i는 상태 변수 값이며,
N은 고려되는 상태 변수 값의 개수이고,
. 는 바닥 연산자이며,
dk i는 상기 상태 변수 값과 연관된 가중치 값인, 산술 인코더.In Article 29,
The above arithmetic encoder is,
The above combined state variable values s k
It is configured to decide accordingly,
Here, s k i is the state variable value,
N is the number of state variable values considered,
. is the floor operator,
d k i is an arithmetic encoder, which is a weight value associated with the state variable value.
상기 산술 인코더는,
인코딩될 심볼이 제 1 값을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고, 인코딩될 심볼이 상기 제 1 값과 상이한 제 2 값을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록 구성되고,
상기 산술 인코더는 상기 결합된 상태 변수 값의 절대 값에 의존하여 평가될 룩업 테이블의 엔트리를 결정하도록 구성되는, 산술 인코더.In Article 29,
The above arithmetic encoder is,
If the symbol to be encoded has a first value, the state variable value is changed in the first direction, and if the symbol to be encoded has a second value different from the first value, the state variable value is changed in the second direction.
An arithmetic encoder, wherein the arithmetic encoder is configured to determine an entry of a lookup table to be evaluated based on the absolute value of the combined state variable values.
상기 산술 인코더는,
상기 결합된 상태 변수 값이 제 1 부호를 가지면, 심볼 확률을 기술하는, 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값으로 설정하도록 구성되고,
상기 산술 인코더는,
상기 결합된 상태 변수 값이 제 2 부호를 가지면, 상기 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값으로부터 감산함으로써 얻어지는 값으로 설정하도록 구성되는, 산술 인코더.In paragraph 33,
The above arithmetic encoder is,
If the above combined state variable value has a first sign, the probability value describing the symbol probability is set to a value provided by the lookup table,
The above arithmetic encoder is,
An arithmetic encoder configured to set the probability value to a value obtained by subtracting a value provided by the lookup table from a predetermined value if the combined state variable value has a second sign.
상기 산술 인코더는,
심볼 확률을 기술하는, 결합된 확률 값 pk를
에 따라서 결정하도록 구성되고,
여기에서 LUT2는 확률 값을 포함하는 룩업 테이블이며,
. 는 바닥 연산자이고,
sk는 결합된 상태 변수 값이며,
ak는 상기 결합된 상태 변수 값과 연관된 가중치인, 산술 인코더.In Article 29,
The above arithmetic encoder is,
The combined probability value p k , which describes the symbol probability,
It is configured to decide accordingly,
Here, LUT2 is a lookup table containing probability values,
. is the floor operator,
s k is the combined state variable value,
a k is an arithmetic encoder, which is a weight associated with the combined state variable values.
상기 산술 인코더는,
심볼 확률을 기술하는, 결합된 확률 값 pk를
에 따라서 결정하도록 구성되고,
여기에서 LUT2는 확률 값을 포함하는 룩업 테이블이며,
. 는 바닥 연산자이고,
sk는 결합된 상태 변수 값이며,
ak는 상기 결합된 상태 변수 값과 연관된 가중치인, 산술 인코더.In Article 29,
The above arithmetic encoder is,
A combined probability value p k that describes the symbol probability
It is configured to decide accordingly,
Here, LUT2 is a lookup table containing probability values,
. is the floor operator,
s k is the combined state variable value,
a k is an arithmetic encoder, which is a weight associated with the combined state variable values.
상기 산술 인코더는,
하위인터벌 너비 를
에 따라서 결정하도록 구성되고,
여기에서 LUT3는 2D 룩업 테이블이며,
. 는 바닥 연산자이고,
sk는 결합된 상태 변수 값이며,
ak는 상기 결합된 상태 변수 값과 연관된 가중치이고,
R은 인터벌 크기이고,
은 인터벌 크기의 양자화된 값인, 산술 인코더.In Article 29,
The above arithmetic encoder is,
Subinterval width cast
It is configured to decide accordingly,
Here LUT3 is a 2D lookup table,
. is the floor operator,
s k is the combined state variable value,
a k is the weight associated with the above combined state variable values,
R is the interval size,
An arithmetic encoder, which is a quantized value of interval size.
상기 산술 인코더는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 그 엔트리가 상기 결합된 상태 변수 값에 의존하고 심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보에 의존하여 어드레싱되는 2-차원 룩업 테이블을 사용하여, 하위인터벌 폭 값(subinterval width value)으로 매핑하도록 구성되는, 산술 인코더.In Article 29,
The above arithmetic encoder is,
An arithmetic encoder configured to map the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, to subinterval width values using a two-dimensional lookup table, the entries of which depend on the combined state variable values and are addressed depending on coding interval size information describing the size of a coding interval of the arithmetic encoding prior to encoding of a symbol.
상기 2-차원 룩업 테이블은,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리, 및
상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있는, 산술 인코더.In paragraph 38,
The above two-dimensional lookup table is,
a first 1-dimensional vector entry comprising probability values for different value intervals of the value domain for the combined state variable values, or for scaled and/or rounded versions of the combined state variable values, and
An arithmetic encoder which can be expressed as a dyadic product between second 1-dimensional vector entries including quantization levels for the above coding interval size information.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고,
상기 2-차원 룩업 테이블의 원소들의 제 1 그룹은 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며,
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 스케일링된 버전 및 반올림된 버전인, 산술 인코더.In paragraph 38,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the base lookup table (Base TabLPS),
A first group of elements of the above two-dimensional lookup table are identical to elements of the above base lookup table or are rounded versions of elements of the above base lookup table,
An arithmetic encoder, wherein the second group of elements of the two-dimensional lookup table are scaled and rounded versions of the elements of the base lookup table.
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 우측-천이된 버전인, 산술 인코더.In Article 40,
An arithmetic encoder, wherein the second group of elements of the two-dimensional lookup table are right-shifted versions of the elements of the base lookup table.
상기 결합된 상태 변수 값으로부터 직접 유도되거나 상기 결합된 상태 변수 값에 기초하는 결합된 확률 값을 이용하여 유도되는, 확률 인덱스는, 상기 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 상기 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고,
확률 인덱스들의 제 1 범위는 원소들의 제 1 그룹의 원소와 연관되며,
상기 확률 인덱스들의 제 2 범위는 원소들의 제 2 그룹의 원소와 연관되는, 산술 인코더.In Article 40,
A probability index, derived directly from the combined state variable values or using a combined probability value based on the combined state variable values, determines whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated,
The first range of probability indices is associated with the elements of the first group of elements,
An arithmetic encoder, wherein the second range of the above probability indices is associated with elements of a second group of elements.
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지(division residual), 및 코딩 인터벌 크기 정보에 기초하여 획득되는, 인터벌 크기 인덱스는, 상기 베이스 룩업 테이블의 어떤 원소가 상기 2-차원 룩업 테이블의 원소를 얻기 위해 사용되는지를 결정하는, 산술 인코더.In paragraph 42,
An arithmetic encoder, wherein a division residual of a division between a first size value and a probability index, which describes an extension of a base lookup table in a first direction, and an interval size index, which is obtained based on coding interval size information, determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
상기 산술 인코더는,
2-차원 룩업 테이블(RangeTabLPS)의 원소를 다음에 따라 획득하도록 구성되고
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ),
여기에서 BaseTabLPS는 차원 μ x λ의 베이스 룩업 테이블이고,
μ는 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하며,
λ는 베이스 룩업 테이블의 제 2 차원을 기술하고,
i는 확률 정보와 연관된 테이블 인덱스이며,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이며,
/는 나눗셈 연산이고,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In paragraph 39,
The above arithmetic encoder is,
It is configured to obtain elements of a two-dimensional lookup table (RangeTabLPS) as follows:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ ),
Here, BaseTabLPS is a base lookup table of dimension μ x λ,
μ describes the extension of the base lookup table in the first direction,
λ describes the second dimension of the base lookup table,
i is the table index associated with the probability information,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is a division operation,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고,
상기 확률 테이블은, 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며,
상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업 테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도되는, 산술 인코더.In paragraph 38,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the probability table (probTabLPS),
The above probability table describes the interval size for a set of multiple probability values associated with table indices and for a given coding interval size,
An arithmetic encoder, wherein elements of a two-dimensional lookup table for probability values not included in the set of the plurality of probability values or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
상기 2-차원 룩업 테이블의 원소는,
상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하여, 그리고
현재의 확률 값과 연관된 원소가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득되는, 산술 인코더.In paragraph 45,
The elements of the above two-dimensional lookup table are:
Using a first scaling of the selected elements of the probability table depending on the coding interval size (R), and
An arithmetic encoder obtained by using a second scaling of the result of said first scaling, depending on whether the element associated with the current probability value is included in the set of said probability values.
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
현재의 확률 값을 나타내는, 상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 인코더.In paragraph 46,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
An integer division result of the division between said probability index and said first magnitude value, which represents a current probability value, determines a scaling factor used in said second scaling, and/or
An arithmetic encoder, wherein the above coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
상기 산술 인코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In paragraph 45,
The above arithmetic encoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 2-차원 룩업 테이블의 원소는,
현재의 확률 값과 연관된 원소가 확률 값들의 세트에 포함되는지 여부에 의존한, 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하고, 상기 코딩 인터벌 크기(R)에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득되는, 산술 인코더.In paragraph 45,
The elements of the above two-dimensional lookup table are:
An arithmetic encoder obtained by using a first scaling of a selected element of the probability table, depending on whether the element associated with the current probability value is included in the set of probability values, and a second scaling of the result of the first scaling, depending on the coding interval size (R).
현재의 확률 값을 나타내는, 확률 인덱스 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과는, 상기 제 1 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 2 스케일링의 승산 스케일링 인자(Qr2(R))를 결정하는, 산술 인코더.In paragraph 49,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table, determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between the above probability index and the first size value determines the scaling factor used in the first scaling, and/or
An arithmetic encoder in which the above coding interval size (R) determines the multiplication scaling factor (Qr 2 (R)) of the second scaling.
상기 산술 인코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In paragraph 45,
The above arithmetic encoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 산술 인코더는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전으로부터, 하위인터벌 폭 값(subinterval width value)을,
상기 결합된 상태 변수 값 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 결합된 확률 값으로 매핑하고,
심볼의 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보를 양자화 레벨로 양자화하며,
상기 결합된 확률 값 및 상기 양자화 레벨의 곱(product)을 결정함으로써, 계산하도록 구성되는, 산술 인코더.In Article 29,
The above arithmetic encoder is,
From the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, a subinterval width value,
Mapping the combined state variable value, or a scaled version and/or a rounded version of the combined state variable value, to a combined probability value using a one-dimensional lookup table (LUT4) entry containing probability values for different value intervals of the value domain for the combined state variable value, or the scaled version and/or the rounded version of the combined state variable value,
The coding interval size information describing the size of the coding interval of the above arithmetic encoding prior to encoding of the symbol is quantized into a quantization level.
An arithmetic encoder configured to compute by determining a product of the combined probability value and the quantization level.
상기 산술 인코더는,
논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성되는, 산술 인코더.In paragraph 52,
The above arithmetic encoder is,
An arithmetic encoder configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
상기 산술 인코더는,
코딩 인터벌 크기 정보 R을 양자화하는 것을 에 의하여 수행하도록 구성되고,
여기에서 , 및 는 정수-값 파라미터인, 산술 인코더.In paragraph 52,
The above arithmetic encoder is,
Quantizing the coding interval size information R is configured to perform by,
Here , and is an arithmetic encoder with integer-valued parameters.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 단조 감소(monotonically decrease)하는, 산술 인코더.In paragraph 52,
The entries in the above one-dimensional lookup table are,
An arithmetic encoder that monotonically decreases as the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, increase.
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 상기 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정되는, 산술 인코더.In paragraph 52,
An arithmetic encoder wherein different value intervals of the value domain for the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, are sized identically.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 감소율(decreasing rate)을 가지고 단조 감소하는, 산술 인코더.In paragraph 56,
The entries in the above one-dimensional lookup table are,
An arithmetic encoder that monotonically decreases at a decreasing rate as the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, increase.
상기 룩업 테이블은 지수적 감쇠를 규정하는, 산술 인코더.In Article 29,
The above lookup table is an arithmetic encoder that specifies exponential decay.
상기 산술 인코더는,
복수 개의 변수 상태 값 를
에 따라서 업데이트하도록 구성되고,
여기에서 z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치이며,
A는
업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위하여, 이거나, 그 인수의 오직 하나 이상의 극단 값에 대해서만 제로 설정(zero setting) 또는 크기 감소에 의하여 편차를 가지고,
여기에서 , , , 및 는 미리 결정된 파라미터이며,
인코딩되는 심볼이 1이면 이고,
인코딩되는 심볼이 0이면 인, 산술 인코더.In Article 29,
The above arithmetic encoder is,
Multiple variable state values cast
It is configured to update accordingly,
Here, z is a predetermined offset value,
is one or more weights,
is one or more weights,
A is
Updated To avoid going beyond the predetermined value range, or, having a deviation by zero setting or size reduction only for one or more extreme values of the argument,
Here , , , and is a predetermined parameter,
If the symbol being encoded is 1 And,
If the symbol being encoded is 0 In, arithmetic encoder.
상기 산술 인코더는,
테이블 룩업 또는 계산에 의하여 를 유도하도록 구성되는, 산술 인코더.In paragraph 59,
The above arithmetic encoder is,
By table lookup or calculation An arithmetic encoder configured to induce .
상기 산술 인코더는,
복수 개의 변수 상태 값 를
에 따라서 업데이트하도록 구성되고,
여기에서 z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치이며,
A는
인, 산술 인코더.In Article 29,
The above arithmetic encoder is,
Multiple variable state values cast
It is configured to update accordingly,
Here, z is a predetermined offset value,
is one or more weights,
is one or more weights,
A is
In, arithmetic encoder.
상기 산술 인코더는,
복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)을 결정하도록 구성되고,
상기 산술 인코더는,
복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보(432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)를 유도하도록 구성되며,
상기 산술 인코더는,
인코딩될 심볼에 의존하고 룩업 테이블을 사용하여, 제 1 상태 변수 값을 업데이트하도록 구성되는, 산술 인코더.An arithmetic encoder (34; 400) for encoding a plurality of symbols (24'', 410) having symbol values,
The above arithmetic encoder is,
configured to determine one or more state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously encoded symbol values,
The above arithmetic encoder is,
It is configured to derive interval size information (432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic encoding of one or more symbol values to be encoded, based on one or more state variable values representing statistics of a plurality of previously encoded symbol values,
The above arithmetic encoder is,
An arithmetic encoder configured to update the value of a first state variable depending on the symbol to be encoded and using a lookup table.
상기 산술 인코더는,
인코딩될 심볼에 의존하고 룩업 테이블(A)을 사용하여, 제 2 상태 변수 값(sk 2)을 업데이트하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
An arithmetic encoder configured to update a second state variable value (s k 2 ) depending on the symbol to be encoded and using a lookup table (A).
상기 산술 인코더는,
상기 제 1 상태 변수 값 및 제 2 상태 변수 값을 상이한 적응 시상수를 사용하여 업데이트하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
An arithmetic encoder configured to update the first state variable value and the second state variable value using different adaptation time constants.
상기 산술 인코더는,
이전의 상태 변수 값을, 인코딩될 심볼이 제 1 값 또는 상기 제 1 값과 상이한 제 2 값을 가지는지 여부에 의존하여, 상기 룩업 테이블을 사용하여 결정된 값만큼 선택적으로 증가 또는 감소시키도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
An arithmetic encoder configured to selectively increment or decrement a previous state variable value by a value determined using the lookup table, depending on whether a symbol to be encoded has a first value or a second value different from the first value.
상기 산술 인코더는,
인코딩될 심볼이 제 1 값을 가지면, 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 양수인 경우와 비교할 때 상기 이전의 상태 변수 값이 음수인 경우에 비교적 더 큰 값만큼 증가시키도록 구성되고,
상기 산술 인코더는,
인코딩될 심볼이 상기 제 1 값과 상이한 제 2 값을 가지면, 상기 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 음수인 경우와 비교할 때 상기 이전의 상태 변수 값이 양수인 경우에 비교적 더 큰 값만큼 감소시키도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
If the symbol to be encoded has a first value, the previous state variable value is configured to be increased by a relatively larger value when the previous state variable value is negative compared to when the previous state variable value is positive,
The above arithmetic encoder is,
An arithmetic encoder configured to decrease the previous state variable value by a relatively larger value when the previous state variable value is positive compared to when the previous state variable value is negative, if the symbol to be encoded has a second value different from the first value.
상기 산술 인코더는,
인코딩될 심볼이 제 1 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 제 1 상태 변수 값, 또는 상기 이전에 계산된 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고,
상기 산술 인코더는,
인코딩될 심볼이 제 2 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 상기 제 1 상태 변수 값의 반전된 버전, 또는 상기 이전에 계산된 상기 제 1 상태 변수 값의 반전된 버전의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
If the symbol to be encoded has a first value, the index of an entry of the lookup table to be evaluated when updating the first state variable value is determined based on a sum of a predetermined offset value (z) and a previously computed first state variable value, or a scaled version and/or a rounded version of the previously computed first state variable value,
The above arithmetic encoder is,
An arithmetic encoder configured to determine an index of an entry of the lookup table to be evaluated when updating the first state variable value, depending on a sum of a predetermined offset value (z) and an inverted version of the previously computed first state variable value, or a scaled version and/or a rounded version of the inverted version of the previously computed first state variable value, if the symbol to be encoded has a second value.
상기 산술 인코더는,
인코딩될 심볼이 제 1 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 제 2 상태 변수 값, 또는 이전에 계산된 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고,
상기 산술 인코더는,
인코딩될 심볼이 제 2 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 상기 제 2 상태 변수 값의 반전된 버전, 또는 이전에 계산된 상기 제 2 상태 변수 값의 반전된 버전의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
If the symbol to be encoded has a first value, the index of an entry of the lookup table to be evaluated when updating the second state variable value is determined based on a sum of a predetermined offset value (z) and a previously computed second state variable value, or a scaled version and/or a rounded version of the previously computed second state variable value,
The above arithmetic encoder is,
An arithmetic encoder configured to determine an index of an entry of the lookup table to be evaluated when updating the second state variable value, depending on a sum of a predetermined offset value (z) and an inverted version of the previously computed second state variable value, or a scaled version and/or a rounded version of the inverted version of the previously computed second state variable value, if the symbol to be encoded has a second value.
상기 산술 인코더는,
상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 1 상태 변수 값을 스케일링하기 위하여 제 1 스케일링 값을 적용하도록 구성되고,
상기 산술 인코더는, 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 2 상태 변수 값을 스케일링하기 위하여 제 2 스케일링 값을 적용하도록 구성되며,
상기 제 1 스케일링 값은 상기 제 2 스케일링 값과 다른, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
When determining an index of an entry of the lookup table to be evaluated when updating the first state variable value, a first scaling value is configured to be applied to scale the previously calculated first state variable value,
The arithmetic encoder is configured to apply a second scaling value to scale a previously computed second state variable value when determining an index of an entry of the lookup table to be evaluated when updating a second state variable value,
An arithmetic encoder wherein the first scaling value is different from the second scaling value.
상기 산술 인코더는,
상기 제 1 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 1 스케일링 값을 사용하여 스케일링하도록 구성되고,
상기 산술 인코더는,
제 2 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 2 스케일링 값을 사용하여 스케일링하도록 구성되며,
상기 제 1 스케일링 값은 상기 제 2 스케일링 값과 다른, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
When updating the first state variable value, the value returned by the evaluation of the lookup table is configured to be scaled using the first scaling value,
The above arithmetic encoder is,
When updating the value of the second state variable, the value returned by the evaluation of the lookup table is configured to be scaled using the second scaling value,
An arithmetic encoder wherein the first scaling value is different from the second scaling value.
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
A의 엔트리는, 룩업 테이블 인덱스가 증가함에 따라 단조 감소하는, 산술 인코더.In paragraph 71,
An arithmetic encoder in which the entries of A monotonically decrease as the lookup table index increases.
A는
업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위하여,
이거나, 그 인수의 오직 하나 이상의 극단 값에 대해서만 제로 설정(zero setting) 또는 크기 감소에 의하여 편차를 가지고,
여기에서 , , , 및 는 미리 결정된 파라미터이며,
인코딩되는 심볼이 1이면 이고,
인코딩되는 심볼이 0이면 인, 산술 인코더.In paragraph 71,
A is
Updated To avoid going beyond the predetermined value range,
or, having a deviation by zero setting or size reduction only for one or more extreme values of the argument,
Here , , , and is a predetermined parameter,
If the symbol being encoded is 1 And,
If the symbol being encoded is 0 In, arithmetic encoder.
상기 룩업 테이블의 마지막 엔트리는 제로와 같은, 산술 인코더.In paragraph 62,
The last entry in the above lookup table is an arithmetic encoder, which is equal to zero.
A는
인, 산술 인코더.In paragraph 71,
A is
In, arithmetic encoder.
상기 산술 인코더는,
업데이트된 상태 변수 값 및 클리핑된 상태 변수 값을 값들의 미리 결정된 범위 내에 유지하도록, 클리핑 연산을 업데이트된 상태 변수 값에 적용하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
An arithmetic encoder configured to apply a clipping operation to the updated state variable values so as to keep the updated state variable values and the clipped state variable values within a predetermined range of values.
상기 산술 인코더는,
클리핑 연산을
에 따라 상기 업데이트된 상태 변수 값에 적용하도록 구성되고,
여기에서 는 에 대한 최대 허용 값이며,
는 에 대한 최소 허용 값인, 산술 인코더.In paragraph 79,
The above arithmetic encoder is,
Clipping operation
is configured to apply to the updated state variable values according to
Here Is is the maximum allowable value for ,
Is The minimum allowable value for an arithmetic encoder.
상기 산술 인코더는,
상이한 콘텍스트 모델에 대하여 상이한 스케일링 값을 적용하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
An arithmetic encoder configured to apply different scaling values for different context models.
상기 산술 인코더는,
제 1 항에 규정된 것과 같은 인터벌 크기 정보를 획득하도록 구성되는, 산술 인코더.In paragraph 62,
The above arithmetic encoder is,
An arithmetic encoder configured to obtain interval size information as specified in paragraph 1.
상기 산술 인코더는,
인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)을, 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(si k; 642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여 유도하도록 구성되고,
상기 산술 인코더는,
인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하도록 구성되며,
상기 산술 인코더는,
상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i; 852; 1332; 1432; 1532)가 제 1 범위 내에 있다면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하도록 구성되고,
상기 산술 인코더는,
하나 이상의 심볼의 산술적 인코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 인코더.An arithmetic encoder (34; 400) for encoding a plurality of symbols (24'', 410) having symbol values,
The above arithmetic encoder is,
It is configured to derive interval size values (R LPS ; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic encoding of one or more symbol values to be encoded, based on one or more state variable values (s i k ; 642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously encoded symbol values,
The above arithmetic encoder is,
It is configured to determine the interval size value (R LPS ) using the base lookup table (Base TabLPS).
The above arithmetic encoder is,
The interval size value (R LPS) is determined such that if the probability index (i; 852; 1332; 1432; 1532) obtained based on the one or more state variable values is within a first range, the determined interval size value is equal to an element of the base lookup table or a rounded version of an element of the base lookup table, and if the probability index is within a second range, the determined interval size value is obtained using scaling and rounding of the elements of the base lookup table.
The above arithmetic encoder is,
An arithmetic encoder configured to perform arithmetic encoding of one or more symbols using said interval size values (R LPS ).
상기 산술 인코더는,
상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값(RLPS)이 상기 베이스 룩업 테이블의 원소의 우측-천이된 버전이 되게끔 상기 인터벌 크기 값을 결정하도록 구성되는, 산술 인코더.In paragraph 83,
The above arithmetic encoder is,
An arithmetic encoder configured to determine the interval size value (R LPS ) such that the determined interval size value becomes a right-shifted version of an element of the base lookup table if the above probability index is within the second range.
상기 확률 인덱스는,
상기 베이스 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)으로서 제공되는지, 또는 상기 베이스 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)을 획득하도록 스케일링되고 반올림되는지를 결정하는, 산술 인코더.In paragraph 83,
The above probability index is,
An arithmetic encoder that determines whether an element of the base lookup table is provided as the interval size value (R LPS ), or whether an element of the base lookup table is scaled and rounded to obtain the interval size value (R LPS ).
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지(division residual), 및 코딩 인터벌 크기 정보에 기초하여 획득되는, 인터벌 크기 인덱스는, 상기 베이스 룩업 테이블의 어떤 원소가 상기 인터벌 크기 값을 얻기 위해 사용되는지를 결정하는, 산술 인코더.In paragraph 83,
An arithmetic encoder, wherein a division residual of a division between a first size value and a probability index, which describes an extension of a base lookup table in a first direction, and an interval size index, which is obtained based on coding interval size information, determines which element of the base lookup table is used to obtain the interval size value.
상기 산술 인코더는, 인터벌 크기 값(RXPS)을
RXPS=Scal(BaseTabLPS[i%μ][j], i/μ)에 따라서 획득하도록 구성되고,
여기에서 BaseTabLPS는 차원 μ x λ의 베이스 룩업 테이블이고,
μ는 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하며,
λ는 베이스 룩업 테이블의 제 2 차원을 기술하고,
i는 확률 정보와 연관된 테이블 인덱스이며,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이며,
/는 나눗셈 연산이고,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In paragraph 83,
The above arithmetic encoder is used to store interval size values (R XPS ).
R XPS =Scal(BaseTabLPS[i%μ][j], i/μ ) is configured to be obtained accordingly,
Here, BaseTabLPS is a base lookup table of dimension μ x λ,
μ describes the extension of the base lookup table in the first direction,
λ describes the second dimension of the base lookup table,
i is the table index associated with the probability information,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is a division operation,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 산술 인코더는,
인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)을, 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여 유도하도록 구성되고,
상기 산술 인코더는,
인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 확률 값(733, 735; 832, 842, 852; 932, 934)에 기반하여 그리고 코딩 인터벌 크기(R; 434; 532; 712; 812; 1362; 1460; 1512)에 기반하여, 확률 테이블(ProbTabLPS)을 사용하여 결정하도록 구성되며,
상기 확률 테이블은 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하고,
상기 산술 인코더는,
현재의 확률이 복수 개의 확률 값들의 세트에 속하지 않는다면 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 코딩 인터벌 크기와 다르다면, 상기 인터벌 크기 값(RLPS)을 얻기 위하여, 상기 확률 테이블(ProbTabLPS)의 원소를 스케일링하도록 구성되며,
상기 산술 인코더는,
하나 이상의 심볼의 산술적 인코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 인코더.An arithmetic encoder (34; 400) for encoding a plurality of symbols (24'', 410) having symbol values,
The above arithmetic encoder is,
It is configured to derive interval size values (R LPS ; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic encoding of one or more symbol values to be encoded, based on one or more state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously encoded symbol values,
The above arithmetic encoder is,
It is configured to determine interval size values (R LPS ) using a probability table (ProbTabLPS) based on probability values (733, 735; 832, 842, 852; 932, 934) derived from one or more state variable values and based on coding interval sizes (R; 434; 532; 712; 812; 1362; 1460; 1512).
The above probability table describes a set of multiple probability values associated with table indices and an interval size for a given coding interval size,
The above arithmetic encoder is,
If the current probability does not belong to a set of multiple probability values and/or if the current coding interval size (R) is different from the given coding interval size, the element of the probability table (ProbTabLPS) is configured to be scaled to obtain the interval size value (R LPS ).
The above arithmetic encoder is,
An arithmetic encoder configured to perform arithmetic encoding of one or more symbols using said interval size values (R LPS ).
상기 산술 인코더는, 인터벌 크기 값을,
- 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하여, 그리고
- 현재의 확률 값과 연관된 원소가 테이블 인덱스들과 연관된 상기 복수 개의 확률 값들의 세트 내에 포함되는지 여부에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여,
획득하도록 구성되는, 산술 인코더.In paragraph 88,
The above arithmetic encoder, the interval size value,
- Using a first scaling of the selected elements of the probability table depending on the coding interval size (R), and
- using a second scaling of the result of said first scaling, depending on whether the element associated with the current probability value is included in the set of said plurality of probability values associated with the table indices,
An arithmetic encoder configured to obtain.
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 인코더.In paragraph 89,
The remainder of the division between the first size value and the probability index, which describes the expansion of the base lookup table in the first direction, determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between the above probability index and the first size value determines the scaling factor used in the second scaling, and/or
An arithmetic encoder in which the above coding interval size (R) determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
상기 산술 인코더는,
인터벌 크기 값(RXPS)를,
에 따라서 획득하도록 구성되고,
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In paragraph 89,
The above arithmetic encoder is,
Interval size value (R XPS ),
It is configured to be obtained accordingly,
Here, i is the table index associated with the probability information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 산술 인코더는, 인터벌 크기 값을,
- 현재의 확률 값과 연관된 원소가 상기 확률 값에 포함되는지 여부에 의존한, 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하고,
- 상기 코딩 인터벌 크기(R)에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여,
획득하도록 구성되는, 산술 인코더.In paragraph 88,
The above arithmetic encoder, the interval size value,
- using a first scaling of a selected element of the probability table, depending on whether the element associated with the current probability value is included in said probability value,
- Using a second scaling of the result of the first scaling, depending on the coding interval size (R),
An arithmetic encoder configured to obtain.
확률 테이블의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 1 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 2 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 인코더.In paragraph 92,
The remainder of the division between the first size value and the probability index, which describes the expansion of the probability table, determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between the above probability index and the first size value determines the scaling factor used in the first scaling, and/or
An arithmetic encoder in which the above coding interval size (R) determines a multiplicative scaling factor (Qr 2 (R)) of the second scaling.
상기 산술 인코더는,
인터벌 크기 값(RXPS)를,
에 따라서 획득하도록 구성되고,
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 인코더.In paragraph 92,
The above arithmetic encoder is,
Interval size value (R XPS ),
It is configured to be obtained accordingly,
Here, i is the table index associated with the probability information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic encoder, which is a scaling function.
상기 산술 디코더는,
디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)을, 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여 유도하도록 구성되고,
상기 산술 디코더는,
인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하도록 구성되며,
상기 산술 디코더는,
상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i; 852; 1332; 1432; 1532)가 제 1 범위 내에 있다면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하도록 구성되고,
상기 산술 디코더는,
하나 이상의 심볼의 산술적 디코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 디코더.An arithmetic decoder (50; 500; 1620; 1720) for decoding a plurality of symbols (24'', 520; 1622; 1722) having symbol values,
The above arithmetic decoder is,
It is configured to derive interval size values (R LPS ; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic decoding of one or more symbol values to be decoded, based on one or more state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously decoded symbol values,
The above arithmetic decoder is,
It is configured to determine the interval size value (R LPS ) using the base lookup table (Base TabLPS).
The above arithmetic decoder is,
The interval size value (R LPS) is determined such that if the probability index (i; 852; 1332; 1432; 1532) obtained based on the one or more state variable values is within a first range, the determined interval size value is equal to an element of the base lookup table or a rounded version of an element of the base lookup table, and if the probability index is within a second range, the determined interval size value is obtained using scaling and rounding of the elements of the base lookup table.
The above arithmetic decoder is,
An arithmetic decoder configured to perform arithmetic decoding of one or more symbols using the interval size value (R LPS ).
상기 산술 디코더는,
상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값(RLPS)이 상기 베이스 룩업 테이블의 원소의 우측-천이된 버전이 되게끔 상기 인터벌 크기 값을 결정하도록 구성되는, 산술 디코더.In paragraph 95,
The above arithmetic decoder is,
An arithmetic decoder configured to determine the interval size value (R LPS ) such that the determined interval size value becomes a right-shifted version of an element of the base lookup table if the probability index is within the second range.
상기 확률 인덱스는,
상기 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)으로서 제공되는지, 또는 상기 룩업 테이블의 원소가 상기 인터벌 크기 값(RLPS)을 획득하도록 스케일링되고 반올림되는지를 결정하는, 산술 디코더.In paragraph 95,
The above probability index is,
An arithmetic decoder that determines whether an element of the lookup table is provided as the interval size value (R LPS ), or whether an element of the lookup table is scaled and rounded to obtain the interval size value (R LPS ).
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지(division residual), 및 코딩 인터벌 크기 정보에 기초하여 획득되는, 인터벌 크기 인덱스는, 상기 베이스 룩업 테이블의 어떤 원소가 상기 인터벌 크기 값을 얻기 위해 사용되는지를 결정하는, 산술 디코더.In paragraph 95,
An arithmetic decoder, wherein a division residual of a division between a first magnitude value and a probability index, which describes an extension of a base lookup table in a first direction, and an interval magnitude index, which is obtained based on coding interval magnitude information, determines which element of the base lookup table is used to obtain the interval magnitude value.
상기 산술 디코더는, 인터벌 크기 값(RXPS)을
RXPS=Scal(BaseTabLPS[i%μ][j], i/μ)에 따라서 획득하도록 구성되고,
여기에서 BaseTabLPS는 차원 μ x λ의 베이스 룩업 테이블이고,
μ는 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하며,
λ는 베이스 룩업 테이블의 제 2 차원을 기술하고,
i는 확률 정보와 연관된 테이블 인덱스이며,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이며,
/는 나눗셈 연산이고,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In paragraph 95,
The above arithmetic decoder, the interval size value (R XPS )
R XPS =Scal(BaseTabLPS[i%μ][j], i/μ ) is configured to be obtained accordingly,
Here, BaseTabLPS is a base lookup table of dimension μ x λ,
μ describes the extension of the base lookup table in the first direction,
λ describes the second dimension of the base lookup table,
i is the table index associated with the probability information,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is a division operation,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 산술 디코더는,
디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)을, 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여 유도하도록 구성되고,
상기 산술 디코더는,
인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 확률 값에 기반하여 그리고 코딩 인터벌 크기(R; 434; 532; 712; 812; 1362; 1460; 1512)에 기반하여, 확률 테이블(ProbTabLPS)을 사용하여 결정하도록 구성되며,
상기 확률 테이블은 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하고,
상기 산술 디코더는,
현재의 확률이 복수 개의 확률 값들의 세트에 속하지 않는다면 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 코딩 인터벌 크기와 다르다면, 상기 인터벌 크기 값(RLPS)을 얻기 위하여, 상기 확률 테이블(ProbTabLPS)의 원소를 스케일링하도록 구성되며,
상기 산술 디코더는,
하나 이상의 심볼의 산술적 디코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하도록 구성되는, 산술 디코더.An arithmetic decoder (50; 500; 1620; 1720) for decoding a plurality of symbols (24'', 520; 1622; 1722) having symbol values,
The above arithmetic decoder is,
It is configured to derive interval size values (R LPS ; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic decoding of one or more symbol values to be decoded, based on one or more state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously decoded symbol values,
The above arithmetic decoder is,
It is configured to determine the interval size value (R LPS ) using a probability table (ProbTabLPS) based on the probability value derived from one or more state variable values and based on the coding interval size (R; 434; 532; 712; 812; 1362; 1460; 1512).
The above probability table describes a set of multiple probability values associated with table indices and an interval size for a given coding interval size,
The above arithmetic decoder is,
If the current probability does not belong to a set of multiple probability values and/or if the current coding interval size (R) is different from the given coding interval size, the element of the probability table (ProbTabLPS) is configured to be scaled to obtain the interval size value (R LPS ).
The above arithmetic decoder is,
An arithmetic decoder configured to perform arithmetic decoding of one or more symbols using the interval size value (R LPS ).
상기 산술 디코더는, 인터벌 크기 값을,
- 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하여, 그리고
- 현재의 확률 값과 연관된 원소가 테이블 인덱스들과 연관된 상기 복수 개의 확률 값들의 세트 내에 포함되는지 여부에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여,
획득하도록 구성되는, 산술 디코더.In Article 100,
The above arithmetic decoder, the interval size value,
- Using a first scaling of the selected elements of the probability table depending on the coding interval size (R), and
- using a second scaling of the result of said first scaling, depending on whether the element associated with the current probability value is included in the set of said plurality of probability values associated with the table indices,
An arithmetic decoder configured to obtain.
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 디코더.In Article 101,
The remainder of the division between the first size value and the probability index, which describes the expansion of the base lookup table in the first direction, determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between the above probability index and the first size value determines the scaling factor used in the second scaling, and/or
An arithmetic decoder in which the above coding interval size (R) determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
상기 산술 디코더는,
인터벌 크기 값(RXPS)를,
에 따라서 획득하도록 구성되고,
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 101,
The above arithmetic decoder is,
Interval size value (R XPS ),
It is configured to be obtained accordingly,
Here, i is the table index associated with the probability information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 산술 디코더는, 인터벌 크기 값을,
- 현재의 확률 값과 연관된 원소가 상기 확률 값에 포함되는지 여부에 의존한, 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하고,
- 상기 코딩 인터벌 크기(R)에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여,
획득하도록 구성되는, 산술 디코더.In Article 100,
The above arithmetic decoder, the interval size value,
- using a first scaling of a selected element of the probability table, depending on whether the element associated with the current probability value is included in said probability value,
- Using a second scaling of the result of the first scaling, depending on the coding interval size (R),
An arithmetic decoder configured to obtain.
확률 테이블의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 1 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 2 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 디코더.In Article 104,
The remainder of the division between the first size value and the probability index, which describes the expansion of the probability table, determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between the above probability index and the first size value determines the scaling factor used in the first scaling, and/or
An arithmetic decoder in which the above coding interval size (R) determines a multiplicative scaling factor (Qr 2 (R)) of the second scaling.
상기 산술 디코더는,
인터벌 크기 값(RXPS)를,
에 따라서 획득하도록 구성되고,
여기에서 i는 확률 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 104,
The above arithmetic decoder is,
Interval size value (R XPS ),
It is configured to be obtained accordingly,
Here, i is the table index associated with the probability information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 산술 인코더는,
복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 결합된 상태 변수 값을 결정하도록 구성되고,
상기 산술 인코더는,
결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전으로부터, 인코딩될 심볼 값의 산술적 인코딩을 위한 하위인터벌 폭 값(; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)을,
상기 결합된 상태 변수 값 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블() 엔트리를 사용하여 확률 값(pi k; pk; pLPS; Qp(pLPS))으로 매핑하고,
인코딩될 심볼 값의 산술적 인코딩 이전의 상기 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보(R; 434; 532; 712; 812; 1362; 1460; 1512)를 양자화 레벨((; ; 762; 862)로 양자화하며,
상기 확률 값 및 상기 양자화 레벨 사이의 곱을 결정함으로써 결정하도록 구성되며,
상기 산술 인코더는, 인코딩될 심볼 값에 의존하여 상태 변수 값 업데이트를 수행하도록 구성되는, 산술 인코더.An arithmetic encoder (34; 400) for encoding a plurality of symbols (24'', 410) having symbol values,
The above arithmetic encoder is,
configured to determine a combined state variable value representing statistics of a plurality of previously encoded symbol values,
The above arithmetic encoder is,
A subinterval width value for arithmetic encoding of a symbol value to be encoded from the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values. ; 432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762),
A one-dimensional lookup table containing probability values for different value intervals of a value domain for the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, ) entries are mapped to probability values (p i k ; p k ; p LPS ; Q p (p LPS )),
Coding interval size information (R; 434; 532; 712; 812; 1362; 1460; 1512) describing the size of the coding interval of the arithmetic encoding prior to the arithmetic encoding of the symbol value to be encoded, and the quantization level (( ; ; 762; 862) and quantized.
configured to determine by determining the product between the above probability value and the above quantization level,
The above arithmetic encoder is an arithmetic encoder configured to perform state variable value update depending on the symbol value to be encoded.
상기 산술 인코더는,
상이한 적응 시상수를 가지는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여, 결합된 상태 변수 값을 유도하도록 구성되는, 산술 인코더.In Article 107,
The above arithmetic encoder is,
An arithmetic encoder configured to derive a combined state variable value based on a plurality of state variable values representing statistics of a plurality of previously encoded symbol values having different adaptation time constants.
상기 산술 인코더는,
상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성되는, 산술 인코더.In Article 108,
The above arithmetic encoder is,
An arithmetic encoder configured to determine a weighted sum of state variable values to obtain the combined state variable values.
상기 산술 인코더는,
상기 결합된 상태 변수 값을 획득하기 위하여,
상태 변수 값 및 상태 변수 값과 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값의 합을 결정하도록 구성되는, 산술 인코더.In Article 108,
The above arithmetic encoder is,
In order to obtain the above combined state variable values,
The state variable values and the weight values associated with the state variable values ( ) is configured to determine the sum of the rounded values obtained by rounding the product of the two.
상기 산술 인코더는,
상기 결합된 상태 변수 값 sk를
에 따라서 결정하도록 구성되고,
여기에서 sk i는 상태 변수 값이며,
N은 고려되는 상태 변수 값의 개수이고,
. 는 바닥 연산자이며,
dk i는 상기 상태 변수 값과 연관된 가중치 값인, 산술 인코더.In Article 108,
The above arithmetic encoder is,
The above combined state variable values s k
It is configured to decide accordingly,
Here, s k i is the state variable value,
N is the number of state variable values considered,
. is the floor operator,
d k i is an arithmetic encoder, which is a weight value associated with the state variable value.
상기 산술 인코더는,
상기 상태 변수 값 업데이트를 수행할 때, 상기 복수 개의 변수 상태 값 를
에 따라서 업데이트하도록 구성되고,
여기에서 z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치이며,
A는
업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위하여,
이거나, 그 인수의 오직 하나 이상의 극단 값에 대해서만 제로 설정(zero setting) 또는 크기 감소에 의하여 편차를 가지고,
여기에서 , , , 및 는 미리 결정된 파라미터이고,
인코딩되는 심볼이 1이면 이고,
인코딩되는 심볼이 0이면 인, 산술 인코더.In Article 108,
The above arithmetic encoder is,
When performing the above state variable value update, the multiple variable state values cast
It is configured to update accordingly,
Here, z is a predetermined offset value,
is one or more weights,
is one or more weights,
A is
Updated To avoid going beyond the predetermined value range,
or, having a deviation by zero setting or size reduction only for one or more extreme values of the argument,
Here , , , and is a predetermined parameter,
If the symbol being encoded is 1 And,
If the symbol being encoded is 0 In, arithmetic encoder.
상기 산술 인코더는,
테이블 룩업 또는 계산에 의하여 를 유도하도록 구성되는, 산술 인코더.In Article 112,
The above arithmetic encoder is,
By table lookup or calculation An arithmetic encoder configured to induce .
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In Article 107,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In Article 107,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
상기 산술 인코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 인코더.In Article 107,
The above arithmetic encoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic encoder, which has one or more weights.
상기 산술 인코더는,
논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성되는, 산술 인코더.In Article 107,
The above arithmetic encoder is,
An arithmetic encoder configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
상기 산술 인코더는,
코딩 인터벌 크기 정보 R을 양자화하는 것을 에 의하여 수행하도록 구성되고,
여기에서 , 및 는 정수-값 파라미터인, 산술 인코더.In Article 107,
The above arithmetic encoder is,
Quantizing the coding interval size information R is configured to perform by,
Here , and is an arithmetic encoder with integer-valued parameters.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 단조 감소(monotonically decrease)하는, 산술 인코더.In Article 107,
The entries in the above one-dimensional lookup table are,
An arithmetic encoder that monotonically decreases as the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, increase.
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 상기 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정되는, 산술 인코더.In Article 107,
An arithmetic encoder wherein different value intervals of the value domain for the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, are sized identically.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 감소율(decreasing rate)을 가지고 단조 감소하는, 산술 인코더.In Article 120,
The entries in the above one-dimensional lookup table are,
An arithmetic encoder that monotonically decreases at a decreasing rate as the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, increase.
상기 산술 디코더는,
하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보를, 상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여 유도하도록 구성되고,
상기 산술 디코더는,
디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 룩업 테이블(LUT1)을 사용하여 매핑하고,
제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 룩업 테이블(LUT1)을 사용하여 매핑하도록 구성되는, 산술 디코더.An arithmetic decoder for decoding multiple symbols having symbol values,
The above arithmetic decoder is,
It is configured to derive interval size information for arithmetic decoding of one or more to-be-decoded symbol values based on a plurality of state variable values representing statistics of a plurality of previously decoded symbol values having different adaptation time constants,
The above arithmetic decoder is,
To obtain interval size information describing the interval size for arithmetic decoding of one or more symbols to be decoded,
Mapping the first state variable value, or a scaled version and/or a rounded version of the first state variable value, using a lookup table (LUT1),
An arithmetic decoder configured to map a second state variable value, or a scaled version and/or a rounded version of the second state variable value, using a lookup table (LUT1).
상기 산술 디코더는,
상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된(rounded) 버전을 상기 룩업 테이블을 사용하여 제 1 확률 값으로 매핑하도록 구성되고,
상기 산술 디코더는,
상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 상기 룩업 테이블을 사용하여 제 2 확률 값으로 매핑하도록 구성되며,
상기 산술 디코더는 상기 제 1 확률 값 및 상기 제 2 확률 값을 사용하여 결합된 확률 값을 획득하도록 구성되는, 산술 디코더.In paragraph 122,
The above arithmetic decoder is,
configured to map the first state variable value, or a scaled version and/or a rounded version of the first state variable value, to a first probability value using the lookup table,
The above arithmetic decoder is,
configured to map the second state variable value, or a scaled version and/or a rounded version of the second state variable value, to a second probability value using the lookup table,
An arithmetic decoder, wherein the arithmetic decoder is configured to obtain a combined probability value using the first probability value and the second probability value.
상기 산술 디코더는,
디코딩된 심볼이 제 1 값을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고, 디코딩된 심볼이 상기 제 1 값과 상이한 제 2 값을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록 구성되고,
상기 산술 디코더는 개별적인 상태 변수 값의 절대 값에 의존하여 평가될 룩업 테이블의 엔트리를 결정하도록 구성되는, 산술 디코더.In Article 123,
The above arithmetic decoder is,
If the decoded symbol has a first value, the state variable value is changed in the first direction, and if the decoded symbol has a second value different from the first value, the state variable value is changed in the second direction.
An arithmetic decoder, wherein the arithmetic decoder is configured to determine which entry of a lookup table is to be evaluated based on the absolute value of an individual state variable value.
상기 산술 디코더는,
제 1 상태 변수 값이 제 1 부호를 가지면, 상기 제 1 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값으로 설정하도록 구성되고,
상기 산술 디코더는,
상기 제 1 상태 변수 값이 제 2 부호를 가지면, 상기 제 1 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값으로부터 감산함으로써 얻어지는 값으로 설정하도록 구성되는, 산술 디코더.In Article 124,
The above arithmetic decoder is,
If the first state variable value has the first sign, the first probability value is configured to be set to a value provided by the lookup table,
The above arithmetic decoder is,
An arithmetic decoder configured to set the first probability value to a value obtained by subtracting a value provided by the lookup table from a predetermined value if the first state variable value has a second sign.
상기 산술 디코더는,
두 개 이상의 확률 값 pk i를
에 따라서 결정하도록 구성되고,
LUT1은 확률 값을 포함하는 룩업 테이블이며;
. 는 바닥 연산자(floor operator)이고,
sk i는 i-번째 상태 변수 값이며,
ak i는 상기 i-번째 상태 변수 값과 연관된 가중치(weighting value)인, 산술 디코더.In paragraph 122,
The above arithmetic decoder is,
Two or more probability values p k i
It is configured to decide accordingly,
LUT1 is a lookup table containing probability values;
. is the floor operator,
s k i is the i-th state variable value,
An arithmetic decoder, where a k i is a weighting value associated with the i-th state variable value.
상기 산술 디코더는,
두 개 이상의 확률 값 pk i를
에 따라서 결정하도록 구성되고,
LUT1은 확률 값을 포함하는 룩업 테이블이며;
. 는 바닥 연산자(floor operator)이고,
sk i는 i-번째 상태 변수 값이며,
ak i는 상기 i-번째 상태 변수 값과 연관된 가중치(weighting value)인, 산술 디코더.In paragraph 122,
The above arithmetic decoder is,
Two or more probability values p k i
It is configured to decide accordingly,
LUT1 is a lookup table containing probability values;
. is the floor operator,
s k i is the i-th state variable value,
An arithmetic decoder, where a k i is a weighting value associated with the i-th state variable value.
상기 산술 디코더는,
에 따라서, 복수 개의 확률 값 pk i에 기반하여 결합된 확률 값 pk를 획득하도록 구성되고,
N은 고려되는 확률 값의 개수이며,
bk i는 가중치인, 산술 디코더.In Article 123,
The above arithmetic decoder is,
Accordingly, it is configured to obtain a combined probability value p k based on a plurality of probability values p k i ,
N is the number of probability values considered,
arithmetic decoder, where b k i are weights.
상기 산술 디코더는,
상기 제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 그 엔트리가 상기 제 1 상태 변수 값에 의존하고 심볼의 디코딩 이전의 산술적 디코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보에 의존하여 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 1 하위인터벌 폭 값(subinterval width value)(R*pk 1)으로 매핑하도록 구성되고,
상기 산술 디코더는,
상기 제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 그 엔트리가 상기 제 2 상태 변수 값에 의존하고 심볼의 디코딩 이전의 산술적 디코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보에 의존하여 어드레싱되는 2-차원 룩업 테이블을 사용하여, 제 2 하위인터벌 폭 값(R*pk 2)으로 매핑하도록 구성되며,
상기 산술 디코더는,
조합된 하위인터벌 폭 값을 상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여 획득하도록 구성되는, 산술 디코더.In paragraph 122,
The above arithmetic decoder is,
configured to map the first state variable value, or a scaled version and/or a rounded version of the first state variable value, to a first subinterval width value (R*p k 1 ) using a two-dimensional lookup table, the entries of which depend on the first state variable value and are addressed depending on coding interval size information describing the size of a coding interval of arithmetic decoding prior to decoding of a symbol ;
The above arithmetic decoder is,
configured to map the second state variable value, or a scaled version and/or a rounded version of the second state variable value, to a second subinterval width value (R*p k 2 ) using a two-dimensional lookup table whose entries are addressed depending on the second state variable value and depending on coding interval size information describing the size of a coding interval of arithmetic decoding prior to decoding of a symbol ;
The above arithmetic decoder is,
An arithmetic decoder configured to obtain a combined sub-interval width value using the first sub-interval width value and the second sub-interval width value.
상기 2-차원 룩업 테이블은,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리, 및
상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있는, 산술 디코더.In Article 129,
The above two-dimensional lookup table is,
a first 1-dimensional vector entry comprising probability values for different value intervals of the value domain for the first state variable value and the second state variable value, or for scaled versions and/or rounded versions of the first state variable value and the second state variable value, and
An arithmetic decoder, which can be expressed as a dyadic product between second 1-dimensional vector entries including quantization levels for the above coding interval size information.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고,
상기 2-차원 룩업 테이블의 원소들의 제 1 그룹은 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며,
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 스케일링된 버전 및 반올림된 버전인, 산술 디코더.In Article 129,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the base lookup table (Base TabLPS),
A first group of elements of the above two-dimensional lookup table are identical to elements of the above base lookup table or are rounded versions of elements of the above base lookup table,
An arithmetic decoder, wherein the second group of elements of the two-dimensional lookup table are scaled and rounded versions of the elements of the base lookup table.
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 우측-천이된 버전인, 산술 디코더.In Article 131,
An arithmetic decoder, wherein the second group of elements of the two-dimensional lookup table are right-shifted versions of the elements of the base lookup table.
상기 상태 변수 값 중 하나에 기초하는, 확률 인덱스는, 상기 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 상기 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고,
확률 인덱스들의 제 1 범위는 원소들의 제 1 그룹의 원소와 연관되며,
상기 확률 인덱스들의 제 2 범위는 원소들의 제 2 그룹의 원소와 연관되는, 산술 디코더.In Article 131,
A probability index based on one of the above state variable values determines whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated,
The first range of probability indices is associated with the elements of the first group of elements,
An arithmetic decoder, wherein the second range of the above probability indices is associated with elements of a second group of elements.
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지(division residual), 및 코딩 인터벌 크기 정보에 기초하여 획득되는, 인터벌 크기 인덱스는, 상기 베이스 룩업 테이블의 어떤 원소가 상기 2-차원 룩업 테이블의 원소를 얻기 위해 사용되는지를 결정하는, 산술 디코더.In Article 133,
An arithmetic decoder, wherein a division residual of a division between a first size value and a probability index, which describes an extension of the base lookup table in the first direction, and an interval size index, which is obtained based on coding interval size information, determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
상기 산술 디코더는,
상기 2-차원 룩업 테이블의 원소를 다음에 따라 획득하도록 구성되고
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ),
여기에서 BaseTabLPS는 차원 μ x λ의 베이스 룩업 테이블이고,
μ는 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하며,
λ는 베이스 룩업 테이블의 제 2 차원을 기술하고,
i는 확률 정보와 연관된 테이블 인덱스이며,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이며,
/는 나눗셈 연산이고,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 129,
The above arithmetic decoder is,
It is configured to obtain elements of the above two-dimensional lookup table as follows:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ ),
Here, BaseTabLPS is a base lookup table of dimension μ x λ,
μ describes the extension of the base lookup table in the first direction,
λ describes the second dimension of the base lookup table,
i is the table index associated with the probability information,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is a division operation,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고,
상기 확률 테이블은, 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며,
상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업 테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도되는, 산술 디코더.In Article 129,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the probability table (probTabLPS),
The above probability table describes the interval size for a set of multiple probability values associated with table indices and for a given coding interval size,
An arithmetic decoder, wherein elements of a two-dimensional lookup table for probability values not included in the set of the plurality of probability values or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
상기 2-차원 룩업 테이블의 원소는,
- 상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하여, 그리고
- 현재의 확률 값과 연관된 원소가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여,
획득되는, 산술 디코더.In Article 136,
The elements of the above two-dimensional lookup table are:
- Using a first scaling of the selected elements of the probability table depending on the coding interval size (R), and
- Using a second scaling of the result of the first scaling, depending on whether the element associated with the current probability value is included in the set of said probability values,
Obtained, arithmetic decoder.
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
현재의 확률 값을 나타내는, 상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 디코더.In Article 137,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
An integer division result of the division between said probability index and said first magnitude value, which represents a current probability value, determines a scaling factor used in said second scaling, and/or
An arithmetic decoder, wherein the above coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
상기 산술 디코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 136,
The above arithmetic decoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 2-차원 룩업 테이블의 원소는,
현재의 확률 값과 연관된 원소가 확률 값들의 세트에 포함되는지 여부에 의존한, 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하고, 상기 코딩 인터벌 크기(R)에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득되는, 산술 디코더.In Article 136,
The elements of the above two-dimensional lookup table are:
An arithmetic decoder obtained by using a first scaling of a selected element of the probability table depending on whether the element associated with the current probability value is included in the set of probability values, and a second scaling of a result of the first scaling depending on the coding interval size (R).
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
현재의 확률 값을 나타내는, 상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과는, 상기 제 1 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 2 스케일링의 승산 스케일링 인자(Qr2(R))를 결정하는, 산술 디코더.In Article 140,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between said probability index and said first magnitude value, which represents the current probability value, determines the scaling factor used in said first scaling, and/or
An arithmetic decoder in which the above coding interval size (R) determines the multiplication scaling factor (Qr 2 (R)) of the second scaling.
상기 산술 디코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 136,
The above arithmetic decoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 산술 디코더는,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전으로부터, 제 1 및 제 2 하위인터벌 폭 값(subinterval width value)(R*pk)을,
상기 제 1 및 제 2 상태 변수 값 또는 상기 제 1 및 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 제 1 및 제 2 확률 값으로 매핑하고,
심볼의 인코딩 이전의 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보를 양자화 레벨로 양자화하며,
일 면에 있어서, 상기 제 1 및 제 2 확률 값 및 상기 양자화 레벨의 곱(product)을 결정하고,
상기 제 1 하위인터벌 폭 값 및 상기 제 2 하위인터벌 폭 값을 사용하여, 조합된 하위인터벌 폭 값을 획득함으로써, 각각 계산하도록 구성되는, 산술 디코더.In paragraph 122,
The above arithmetic decoder is,
From the first state variable value and the second state variable value, or the scaled version and/or the rounded version of the first state variable value and the second state variable value, first and second subinterval width values (R*p k ),
Mapping the first and second state variable values, or the scaled and/or rounded versions of the first and second state variable values, to the first and second probability values using a one-dimensional lookup table (LUT4) entry containing probability values for different value intervals of the value domain for the first state variable value and the second state variable value, or the scaled and/or rounded versions of the first state variable value and the second state variable value,
The coding interval size information, which describes the size of the coding interval of the arithmetic encoding prior to encoding of the symbol, is quantized into a quantization level.
In one aspect, the product of the first and second probability values and the quantization level is determined,
An arithmetic decoder configured to calculate, respectively, a combined sub-interval width value by using the first sub-interval width value and the second sub-interval width value.
상기 산술 디코더는,
논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성되는, 산술 디코더.In Article 143,
The above arithmetic decoder is,
An arithmetic decoder configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
상기 산술 디코더는,
코딩 인터벌 크기 정보 을 양자화하는 것을 에 의하여 수행하도록 구성되고,
여기에서 , 및 는 파라미터인, 산술 디코더.In Article 143,
The above arithmetic decoder is,
Coding interval size information Quantizing it is configured to perform by,
Here , and is a parameterized arithmetic decoder.
상기 1-차원 룩업 테이블의 엔트리는,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 단조 감소(monotonically decrease)하는, 산술 디코더.In Article 143,
The entries in the above one-dimensional lookup table are,
An arithmetic decoder that monotonically decreases as the first state variable value and the second state variable value, or the scaled version and/or rounded version of the first state variable value and the second state variable value, increases.
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 상기 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정되는, 산술 디코더.In Article 143,
An arithmetic decoder wherein different value intervals of the value domain for the first state variable value and the second state variable value, or for scaled versions and/or rounded versions of the first state variable value and the second state variable value, are sized identically.
상기 1-차원 룩업 테이블의 엔트리는,
상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값, 또는 상기 제 1 상태 변수 값 및 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 감소율(decreasing rate)을 가지고 단조 감소하는, 산술 디코더.In Article 147,
The entries in the above one-dimensional lookup table are,
An arithmetic decoder that monotonically decreases at a decreasing rate as the first state variable value and the second state variable value, or the scaled version and/or rounded version of the first state variable value and the second state variable value, increases.
상기 산술 디코더는,
상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)에 기반하여, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보(432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762)를 유도하도록 구성되고,
상기 산술 디코더는,
상기 복수 개의 상태 변수 값에 기반하여, 결합된 상태 변수 값을 유도하도록 구성되며,
상기 산술 디코더는, 디코딩될 하나 이상의 심볼의 상기 산술적 디코딩에 대한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 룩업 테이블을 사용하여 매핑하도록 구성되는, 산술 디코더.An arithmetic decoder (50; 500: 1620; 1720) for decoding a plurality of symbols (24'', 520; 1622; 1722) having symbol values,
The above arithmetic decoder is,
Based on a plurality of state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously decoded symbol values having different adaptation time constants, interval size information (432; 534; 620; 720; 820; 820; 1020; 1084; 1120; 1320; 1420; 1520; 1662; 1762) for arithmetic decoding of one or more symbol values to be decoded is derived,
The above arithmetic decoder is,
Based on the above multiple state variable values, it is configured to derive a combined state variable value,
The above arithmetic decoder obtains interval size information describing an interval size for the arithmetic decoding of one or more symbols to be decoded.
An arithmetic decoder configured to map combined state variable values, or scaled versions and/or rounded versions of said combined state variable values, using a lookup table.
상기 산술 디코더는,
상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성되는, 산술 디코더.In Article 149,
The above arithmetic decoder is,
An arithmetic decoder configured to determine a weighted sum of state variable values to obtain the combined state variable values.
상기 산술 디코더는,
상기 결합된 상태 변수 값을 획득하기 위하여,
상태 변수 값 및 상태 변수 값과 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값의 합을 결정하도록 구성되는, 산술 디코더.In Article 149,
The above arithmetic decoder is,
In order to obtain the above combined state variable values,
The state variable values and the weight values associated with the state variable values ( ) is configured to determine the sum of the rounded values obtained by rounding the product of the two.
상기 산술 디코더는,
상기 결합된 상태 변수 값 sk를
에 따라서 결정하도록 구성되고,
여기에서 sk i는 상태 변수 값이며,
N은 고려되는 상태 변수 값의 개수이고,
. 는 바닥 연산자이며,
dk i는 상기 상태 변수 값과 연관된 가중치 값인, 산술 디코더.In Article 149,
The above arithmetic decoder is,
The above combined state variable values s k
It is configured to decide accordingly,
Here, s k i is the state variable value,
N is the number of state variable values considered,
. is the floor operator,
d k i is an arithmetic decoder, which is a weight value associated with the state variable value.
상기 산술 디코더는,
디코딩된 심볼이 제 1 값을 가지면 상기 상태 변수 값을 제 1 방향으로 변경하고, 디코딩된 심볼이 상기 제 1 값과 상이한 제 2 값을 가지면 상기 상태 변수 값을 제 2 방향으로 변경하도록 구성되고,
상기 산술 디코더는 결합된 상태 변수 값의 절대 값에 의존하여 평가될 룩업 테이블의 엔트리를 결정하도록 구성되는, 산술 디코더.In Article 149,
The above arithmetic decoder is,
If the decoded symbol has a first value, the state variable value is changed in the first direction, and if the decoded symbol has a second value different from the first value, the state variable value is changed in the second direction.
An arithmetic decoder, wherein the arithmetic decoder is configured to determine which entry of the lookup table is to be evaluated based on the absolute value of the associated state variable values.
상기 산술 디코더는,
상기 결합된 상태 변수 값이 제 1 부호를 가지면, 심볼 확률을 기술하는, 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값으로 설정하도록 구성되고,
상기 산술 디코더는,
상기 결합된 상태 변수 값이 제 2 부호를 가지면, 상기 확률 값을, 상기 룩업 테이블에 의하여 제공되는 값을 미리 결정된 값으로부터 감산함으로써 얻어지는 값으로 설정하도록 구성되는, 산술 디코더.In Article 153,
The above arithmetic decoder is,
If the above combined state variable value has a first sign, the probability value describing the symbol probability is set to a value provided by the lookup table,
The above arithmetic decoder is,
An arithmetic decoder configured to set the probability value to a value obtained by subtracting a value provided by the lookup table from a predetermined value if the combined state variable value has a second sign.
상기 산술 디코더는,
심볼 확률을 기술하는, 결합된 확률 값 pk를
에 따라서 결정하도록 구성되고,
여기에서 LUT2는 확률 값을 포함하는 룩업 테이블이며,
. 는 바닥 연산자이고;
sk는 결합된 변수 값이며;
ak는 상기 결합된 상태 변수 값과 연관된 가중치인, 산술 디코더.In Article 149,
The above arithmetic decoder is,
A combined probability value p k that describes the symbol probability
It is configured to decide accordingly,
Here, LUT2 is a lookup table containing probability values,
. is the floor operator;
s k is the combined variable value;
a k is an arithmetic decoder, which is a weight associated with the combined state variable values.
상기 산술 디코더는,
심볼 확률을 기술하는, 결합된 확률 값 pk를
에 따라서 결정하도록 구성되고,
여기에서 LUT2는 확률 값을 포함하는 룩업 테이블이며,
. 는 바닥 연산자이고,
sk는 결합된 상태 변수 값이며,
ak는 상기 결합된 상태 변수 값과 연관된 가중치인, 산술 디코더.In Article 149,
The above arithmetic decoder is,
The combined probability value p k , which describes the symbol probability,
It is configured to decide accordingly,
Here, LUT2 is a lookup table containing probability values,
. is the floor operator,
s k is the combined state variable value,
a k is an arithmetic decoder, which is a weight associated with the combined state variable values.
상기 산술 디코더는,
하위인터벌 너비 를
에 따라서 결정하도록 구성되고,
여기에서 LUT3는 2D 룩업 테이블이며,
. 는 바닥 연산자이고,
sk는 결합된 상태 변수 값이며,
ak는 상기 결합된 상태 변수 값과 연관된 가중치이고,
R은 인터벌 크기이고,
은 인터벌 크기의 양자화된 값인, 산술 디코더.In Article 149,
The above arithmetic decoder is,
Subinterval width cast
It is configured to decide accordingly,
Here LUT3 is a 2D lookup table,
. is the floor operator,
s k is the combined state variable value,
a k is the weight associated with the above combined state variable values,
R is the interval size,
Arithmetic decoder, where the quantized values are interval sizes.
상기 산술 디코더는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 그 엔트리가 상기 결합된 상태 변수 값에 의존하고 심볼의 디코딩 이전의 상기 산술적 디코딩의 코딩 인터벌(coding interval)의 크기를 기술하는 코딩 인터벌 크기 정보에 의존하여 어드레싱되는 2-차원 룩업 테이블을 사용하여, 하위인터벌 폭 값(subinterval width value)으로 매핑하도록 구성되는, 산술 디코더.In Article 149,
The above arithmetic decoder is,
An arithmetic decoder configured to map the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, to subinterval width values using a two-dimensional lookup table, the entries of which depend on the combined state variable values and are addressed depending on coding interval size information describing the size of a coding interval of the arithmetic decoding prior to decoding of a symbol.
상기 2-차원 룩업 테이블은,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 제 1 1-차원 벡터 엔트리, 및
상기 코딩 인터벌 크기 정보에 대한 양자화 레벨(quantization level)을 포함하는 제 2 1-차원 벡터 엔트리 사이의 이원 곱(dyadic product)으로서 표현될 수 있는, 산술 디코더.In Article 158,
The above two-dimensional lookup table is,
a first 1-dimensional vector entry comprising probability values for different value intervals of the value domain for the combined state variable values, or for scaled and/or rounded versions of the combined state variable values, and
An arithmetic decoder, which can be expressed as a dyadic product between second 1-dimensional vector entries including quantization levels for the above coding interval size information.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 베이스 룩업 테이블(Base TabLPS)에 기반하여 규정되고,
상기 2-차원 룩업 테이블의 원소들의 제 1 그룹은 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이며,
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 스케일링된 버전 및 반올림된 버전인, 산술 디코더.In Article 158,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the base lookup table (Base TabLPS),
A first group of elements of the above two-dimensional lookup table are identical to elements of the above base lookup table or are rounded versions of elements of the above base lookup table,
An arithmetic decoder, wherein the second group of elements of the two-dimensional lookup table are scaled and rounded versions of the elements of the base lookup table.
상기 2-차원 룩업 테이블의 원소들의 제 2 그룹은 상기 베이스 룩업 테이블의 원소의 우측-천이된 버전인, 산술 디코더.In Article 160,
An arithmetic decoder, wherein the second group of elements of the two-dimensional lookup table are right-shifted versions of the elements of the base lookup table.
상기 결합된 상태 변수 값으로부터 직접 유도되거나 상기 결합된 상태 변수 값에 기초하는 결합된 확률 값을 이용하여 유도되는, 확률 인덱스는, 상기 2-차원 룩업 테이블의 원소들의 제 1 그룹의 원소 또는 상기 2-차원 룩업 테이블의 원소들의 제 2 그룹의 원소가 평가되는지 여부를 결정하고,
확률 인덱스들의 제 1 범위는 원소들의 제 1 그룹의 원소와 연관되며,
상기 확률 인덱스들의 제 2 범위는 원소들의 제 2 그룹의 원소와 연관되는, 산술 디코더.In Article 160,
A probability index, derived directly from the combined state variable values or using a combined probability value based on the combined state variable values, determines whether an element of a first group of elements of the two-dimensional lookup table or an element of a second group of elements of the two-dimensional lookup table is evaluated,
The first range of probability indices is associated with the elements of the first group of elements,
An arithmetic decoder, wherein the second range of the above probability indices is associated with elements of a second group of elements.
베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하는, 제 1 크기 값 및 확률 인덱스 사이의 나눗셈의 나눗셈 나머지(division residual), 및 코딩 인터벌 크기 정보에 기초하여 획득되는, 인터벌 크기 인덱스는, 상기 베이스 룩업 테이블의 어떤 원소가 상기 2-차원 룩업 테이블의 원소를 얻기 위해 사용되는지를 결정하는, 산술 디코더.In paragraph 162,
An arithmetic decoder, wherein a division residual of a division between a first size value and a probability index, which describes an extension of the base lookup table in the first direction, and an interval size index, which is obtained based on coding interval size information, determines which element of the base lookup table is used to obtain an element of the two-dimensional lookup table.
상기 산술 디코더는,
2-차원 룩업 테이블(RangeTabLPS)의 원소를 다음에 따라 획득하도록 구성되고
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ),
여기에서 BaseTabLPS는 차원 μ x λ의 베이스 룩업 테이블이고,
μ는 베이스 룩업 테이블의 제 1 방향으로의 확장을 기술하며,
λ는 베이스 룩업 테이블의 제 2 차원을 기술하고,
i는 확률 정보와 연관된 테이블 인덱스이며,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이고,
%는 나눗셈 나머지 연산이며,
/는 나눗셈 연산이고,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 158,
The above arithmetic decoder is,
It is configured to obtain elements of a two-dimensional lookup table (RangeTabLPS) as follows:
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j], i/μ ),
Here, BaseTabLPS is a base lookup table of dimension μ x λ,
μ describes the extension of the base lookup table in the first direction,
λ describes the second dimension of the base lookup table,
i is the table index associated with the probability information,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is a division operation,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 2-차원 룩업 테이블(RangeTabLPS)의 원소는 확률 테이블(probTabLPS)에 기반하여 규정되고,
상기 확률 테이블은, 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하며,
상기 복수 개의 확률 값들의 세트에 포함되지 않는 확률 값에 대한 또는 주어진 코딩 인터벌 크기와 다른 코딩 인터벌 크기에 대한 2-차원 룩업 테이블의 원소는, 스케일링을 사용하여 상기 확률 테이블로부터 유도되는, 산술 디코더.In Article 158,
The elements of the above two-dimensional lookup table (RangeTabLPS) are defined based on the probability table (probTabLPS),
The above probability table describes the interval size for a set of multiple probability values associated with table indices and for a given coding interval size,
An arithmetic decoder, wherein elements of a two-dimensional lookup table for probability values not included in the set of the plurality of probability values or for coding interval sizes different from the given coding interval size are derived from the probability table using scaling.
상기 2-차원 룩업 테이블의 원소는,
상기 코딩 인터벌 크기(R)에 의존한 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하여, 그리고
현재의 확률 값과 연관된 원소가 상기 확률 값들의 세트 내에 포함되는지 여부에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득되는, 산술 디코더.In Article 165,
The elements of the above two-dimensional lookup table are:
Using a first scaling of the selected elements of the probability table depending on the coding interval size (R), and
An arithmetic decoder obtained by using a second scaling of the result of said first scaling, depending on whether the element associated with the current probability value is included in the set of said probability values.
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
현재의 확률 값을 나타내는, 상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과(integer division result)는, 상기 제 2 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기는, 상기 제 1 스케일링의 승산 스케일링 인자(multiplicative scaling factor)(Qr2(R))를 결정하는, 산술 디코더.In Article 166,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
An integer division result of the division between said probability index and said first magnitude value, which represents a current probability value, determines a scaling factor used in said second scaling, and/or
An arithmetic decoder, wherein the above coding interval size determines a multiplicative scaling factor (Qr 2 (R)) of the first scaling.
상기 산술 디코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 165,
The above arithmetic decoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 2-차원 룩업 테이블의 원소는,
현재의 확률 값과 연관된 원소가 확률 값들의 세트에 포함되는지 여부에 의존한, 상기 확률 테이블의 선택된 원소의 제 1 스케일링을 사용하고, 상기 코딩 인터벌 크기(R)에 의존한, 상기 제 1 스케일링의 결과의 제 2 스케일링을 사용하여 획득되는, 산술 디코더.In Article 165,
The elements of the above two-dimensional lookup table are:
An arithmetic decoder obtained by using a first scaling of a selected element of the probability table depending on whether the element associated with the current probability value is included in the set of probability values, and a second scaling of a result of the first scaling depending on the coding interval size (R).
현재의 확률 값을 나타내는, 확률 인덱스, 및 확률 테이블의 확장을 기술하는, 제 1 크기 값 사이의 나눗셈의 나눗셈 나머지는, 상기 확률 테이블의 어느 원소가 상기 제 1 스케일링에서 스케일링되는지를 결정하고, 및/또는
상기 확률 인덱스 및 상기 제 1 크기 값 사이의 나눗셈의 정수 나눗셈 결과는, 상기 제 1 스케일링에서 사용되는 스케일링 인자를 결정하며, 및/또는
상기 코딩 인터벌 크기(R)는, 상기 제 2 스케일링의 승산 스케일링 인자(Qr2(R))를 결정하는, 산술 디코더.In Article 169,
A division remainder between a probability index representing a current probability value and a first magnitude value describing an extension of a probability table determines which element of said probability table is scaled in said first scaling, and/or
The integer division result of the division between the above probability index and the first size value determines the scaling factor used in the first scaling, and/or
An arithmetic decoder in which the above coding interval size (R) determines the multiplication scaling factor (Qr 2 (R)) of the second scaling.
상기 산술 디코더는,
상기 2-차원 룩업 테이블의 원소 를,
에 따라서 획득하도록 구성되고,
여기에서 i는 개별적인 확률 값과 연관된 테이블 인덱스이고,
j는 인터벌 크기 정보와 연관된 테이블 인덱스이며,
%는 나눗셈 나머지 연산이고,
/는 나눗셈 연산이며,
probTabLPS[]는 확률 테이블이고,
μ는 상기 확률 테이블의 원소들의 개수이며,
R은 인터벌 크기이고,
Qr2(R)은 R에 의존하는 스케일링 인자이며,
Scal(x, y)는 스케일링 함수인, 산술 디코더.In Article 165,
The above arithmetic decoder is,
Elements of the above two-dimensional lookup table cast,
It is configured to be obtained accordingly,
Here, i is the table index associated with an individual probability value,
j is the table index associated with the interval size information,
% is the remainder operation of division,
/ is the division operation,
probTabLPS[] is a probability table,
μ is the number of elements in the above probability table,
R is the interval size,
Qr 2 (R) is a scaling factor that depends on R,
Scal(x, y) is an arithmetic decoder that is a scaling function.
상기 산술 디코더는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전으로부터, 하위인터벌 폭 값(subinterval width value)을,
상기 결합된 상태 변수 값 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블(LUT4) 엔트리를 사용하여 결합된 확률 값으로 매핑하고,
심볼의 인코딩 이전의 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보를 양자화 레벨로 양자화하며,
상기 결합된 확률 값 및 상기 양자화 레벨의 곱(product)을 결정함으로써, 계산하도록 구성되는, 산술 디코더.In Article 149,
The above arithmetic decoder is,
From the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, a subinterval width value,
Mapping the combined state variable value, or a scaled version and/or a rounded version of the combined state variable value, to a combined probability value using a one-dimensional lookup table (LUT4) entry containing probability values for different value intervals of the value domain for the combined state variable value, or the scaled version and/or the rounded version of the combined state variable value,
The coding interval size information, which describes the size of the coding interval of the arithmetic encoding prior to encoding of the symbol, is quantized into a quantization level.
An arithmetic decoder configured to calculate by determining a product of the combined probability value and the quantization level.
상기 산술 디코더는,
논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성되는, 산술 디코더.In Article 168,
The above arithmetic decoder is,
An arithmetic decoder configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
상기 산술 디코더는,
코딩 인터벌 크기 정보 을 양자화하는 것을 에 의하여 수행하도록 구성되고,
여기에서 , 및 는 정수-값 파라미터인, 산술 디코더.In paragraph 172,
The above arithmetic decoder is,
Coding interval size information Quantizing it is configured to perform by,
Here , and An arithmetic decoder with integer-valued parameters.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 단조 감소(monotonically decrease)하는, 산술 디코더.In paragraph 172,
The entries in the above one-dimensional lookup table are,
An arithmetic decoder that monotonically decreases as the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, increase.
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 상기 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정되는, 산술 디코더.In paragraph 172,
An arithmetic decoder wherein different value intervals of the value domain for the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, are sized identically.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 감소율(decreasing rate)을 가지고 단조 감소하는, 산술 디코더.In paragraph 176,
The entries in the above one-dimensional lookup table are,
An arithmetic decoder that monotonically decreases at a decreasing rate as the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, increase.
상기 룩업 테이블은 지수적 감쇠를 규정하는, 산술 디코더.In Article 149,
The above lookup table is an arithmetic decoder that specifies exponential decay.
상기 산술 디코더는,
복수 개의 변수 상태 값 를
에 따라서 업데이트하도록 구성되고,
여기에서 z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치이며,
A는
업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위하여,
이거나, 그 인수의 오직 하나 이상의 극단 값에 대해서만 제로 설정(zero setting) 또는 크기 감소에 의하여 편차를 가지고,
여기에서 , , , 및 는 미리 결정된 파라미터이며,
인코딩되는 심볼이 1이면 이고,
인코딩되는 심볼이 0이면 인, 산술 디코더.In Article 149,
The above arithmetic decoder is,
Multiple variable state values cast
It is configured to update accordingly,
Here, z is a predetermined offset value,
is one or more weights,
is one or more weights,
A is
Updated To avoid going beyond the predetermined value range,
or, having a deviation by zero setting or size reduction only for one or more extreme values of the argument,
Here , , , and is a predetermined parameter,
If the symbol being encoded is 1 And,
If the symbol being encoded is 0 In, arithmetic decoder.
상기 산술 디코더는,
테이블 룩업 또는 계산에 의하여 를 유도하도록 구성되는, 산술 디코더.In Article 179,
The above arithmetic decoder is,
By table lookup or calculation An arithmetic decoder configured to derive .
상기 산술 디코더는,
복수 개의 변수 상태 값 를
에 따라서 업데이트하도록 구성되고,
여기에서 z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치이며,
A는
인, 산술 디코더.In Article 149,
The above arithmetic decoder is,
Multiple variable state values cast
It is configured to update accordingly,
Here, z is a predetermined offset value,
is one or more weights,
is one or more weights,
A is
In, arithmetic decoder.
상기 산술 디코더는,
복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742)을 결정하도록 구성되고,
상기 산술 디코더는,
복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보를 유도하도록 구성되며,
상기 산술 디코더는,
디코딩된 심볼에 의존하고 룩업 테이블을 사용하여, 제 1 상태 변수 값을 업데이트하도록 구성되는, 산술 디코더.An arithmetic decoder (50; 500; 1620; 1720) for decoding a plurality of symbols (24'', 520; 1622; 1722) having symbol values,
The above arithmetic decoder is,
configured to determine one or more state variable values (642, 644; 710; 810; 910; 1010a, 1010b; 1082a, 1082b; 1110; 1210; 1310; 1410; 1510; 1632, 1642; 1732, 1742) representing statistics of a plurality of previously decoded symbol values,
The above arithmetic decoder is,
It is configured to derive interval size information for arithmetic decoding of one or more symbol values to be decoded based on one or more state variable values representing statistics of a plurality of previously decoded symbol values,
The above arithmetic decoder is,
An arithmetic decoder configured to update the value of a first state variable based on a decoded symbol and using a lookup table.
상기 산술 디코더는,
디코딩된 심볼에 의존하고 룩업 테이블(A)을 사용하여, 제 2 상태 변수 값을 업데이트하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
An arithmetic decoder configured to update the value of a second state variable based on the decoded symbol and using a lookup table (A).
상기 산술 디코더는,
상기 제 1 상태 변수 값 및 제 2 상태 변수 값을 상이한 적응 시상수를 사용하여 업데이트하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
An arithmetic decoder configured to update the first state variable value and the second state variable value using different adaptation time constants.
상기 산술 디코더는,
이전의 상태 변수 값을, 디코딩된 심볼이 제 1 값 또는 상기 제 1 값과 상이한 제 2 값을 가지는지 여부에 의존하여, 상기 룩업 테이블을 사용하여 결정된 값만큼 선택적으로 증가 또는 감소시키도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
An arithmetic decoder configured to selectively increment or decrement a previous state variable value by a value determined using the lookup table, depending on whether a decoded symbol has a first value or a second value different from the first value.
상기 산술 디코더는,
디코딩된 심볼이 제 1 값을 가지면, 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 양수인 경우와 비교할 때 상기 이전의 상태 변수 값이 음수인 경우에 비교적 더 큰 값만큼 증가시키도록 구성되고,
상기 산술 디코더는,
디코딩된 심볼이 상기 제 1 값과 상이한 제 2 값을 가지면, 상기 이전의 상태 변수 값을, 상기 이전의 상태 변수 값이 음수인 경우와 비교할 때 상기 이전의 상태 변수 값이 양수인 경우에 비교적 더 큰 값만큼 감소시키도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
If the decoded symbol has a first value, the previous state variable value is configured to be increased by a relatively larger value when the previous state variable value is negative compared to when the previous state variable value is positive,
The above arithmetic decoder is,
An arithmetic decoder configured to decrease the previous state variable value by a relatively larger value when the previous state variable value is positive compared to when the previous state variable value is negative, if the decoded symbol has a second value different from the first value.
상기 산술 디코더는,
디코딩된 심볼이 제 1 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 제 1 상태 변수 값, 또는 상기 이전에 계산된 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고,
상기 산술 디코더는,
디코딩된 심볼이 제 2 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 상기 제 1 상태 변수 값의 반전된 버전, 또는 상기 이전에 계산된 상기 제 1 상태 변수 값의 반전된 버전의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
If the decoded symbol has a first value, the index of an entry of the lookup table to be evaluated when updating the first state variable value is determined based on a sum of a predetermined offset value (z) and a previously computed first state variable value, or a scaled version and/or a rounded version of the previously computed first state variable value,
The above arithmetic decoder is,
An arithmetic decoder configured to determine an index of an entry of the lookup table to be evaluated when updating the first state variable value, depending on a sum of a predetermined offset value (z) and an inverted version of the previously computed first state variable value, or a scaled version and/or a rounded version of the inverted version of the previously computed first state variable value, if the decoded symbol has a second value.
상기 산술 디코더는,
디코딩된 심볼이 제 1 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 제 2 상태 변수 값, 또는 이전에 계산된 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되고,
상기 산술 디코더는,
디코딩된 심볼이 제 2 값을 가지면, 미리 결정된 오프셋 값(z) 및 이전에 계산된 상기 제 2 상태 변수 값의 반전된 버전, 또는 이전에 계산된 상기 제 2 상태 변수 값의 반전된 버전의 스케일링된 버전 및/또는 반올림된 버전의 합에 의존하여, 상기 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
If the decoded symbol has a first value, the index of an entry of the lookup table to be evaluated when updating the second state variable value is determined based on a sum of a predetermined offset value (z) and a previously computed second state variable value, or a scaled version and/or a rounded version of the previously computed second state variable value,
The above arithmetic decoder is,
An arithmetic decoder configured to determine an index of an entry of the lookup table to be evaluated when updating the second state variable value, depending on a sum of a predetermined offset value (z) and an inverted version of the previously computed second state variable value, or a scaled version and/or a rounded version of the inverted version of the previously computed second state variable value, if the decoded symbol has a second value.
상기 산술 디코더는,
상기 제 1 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 1 상태 변수 값을 스케일링하기 위하여 제 1 스케일링 값을 적용하도록 구성되고,
상기 산술 디코더는, 제 2 상태 변수 값을 업데이트할 때 평가될 상기 룩업 테이블의 엔트리의 인덱스를 결정할 때, 이전에 계산된 제 2 상태 변수 값을 스케일링하기 위하여 제 2 스케일링 값을 적용하도록 구성되며,
상기 제 1 스케일링 값은 상기 제 2 스케일링 값과 다른, 산술 디코더.In Article 182,
The above arithmetic decoder is,
When determining an index of an entry of the lookup table to be evaluated when updating the first state variable value, a first scaling value is configured to be applied to scale the previously calculated first state variable value,
The arithmetic decoder is configured to apply a second scaling value to scale a previously computed second state variable value when determining an index of an entry of the lookup table to be evaluated when updating the second state variable value,
An arithmetic decoder wherein the first scaling value is different from the second scaling value.
상기 산술 디코더는,
상기 제 1 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 1 스케일링 값을 사용하여 스케일링하도록 구성되고,
상기 산술 디코더는,
제 2 상태 변수 값을 업데이트할 때, 상기 룩업 테이블의 평가에 의하여 반환되는 값을, 제 2 스케일링 값을 사용하여 스케일링하도록 구성되며,
상기 제 1 스케일링 값은 상기 제 2 스케일링 값과 다른, 산술 디코더.In Article 182,
The above arithmetic decoder is,
When updating the first state variable value, the value returned by the evaluation of the lookup table is configured to be scaled using the first scaling value,
The above arithmetic decoder is,
When updating the value of the second state variable, the value returned by the evaluation of the lookup table is configured to be scaled using the second scaling value,
An arithmetic decoder wherein the first scaling value is different from the second scaling value.
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 182,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 182,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 182,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 182,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
A의 엔트리는, 룩업 테이블 인덱스가 증가함에 따라 단조 감소하는, 산술 디코더.In Article 191,
An arithmetic decoder in which the entries of A monotonically decrease as the lookup table index increases.
A는
업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위하여,
이거나, 그 인수의 오직 하나 이상의 극단 값에 대해서만 제로 설정(zero setting) 또는 크기 감소에 의하여 편차를 가지고,
여기에서 , , , 및 는 미리 결정된 파라미터이며,
디코딩되는 심볼이 1이면 이고,
디코딩되는 심볼이 0이면 인, 산술 디코더.In Article 191,
A is
Updated To avoid going beyond the predetermined value range,
or, having a deviation by zero setting or size reduction only for one or more extreme values of the argument,
Here , , , and is a predetermined parameter,
If the symbol being decoded is 1 And,
If the symbol being decoded is 0 In, arithmetic decoder.
상기 룩업 테이블의 마지막 엔트리는 제로와 같은, 산술 디코더.In Article 182,
The last entry in the above lookup table is an arithmetic decoder equal to zero.
A는
인, 산술 디코더.In Article 191,
A is
In, arithmetic decoder.
상기 산술 디코더는,
업데이트된 상태 변수 값 및 클리핑된 상태 변수 값을 값들의 미리 결정된 범위 내에 유지하도록, 클리핑 연산을 업데이트된 상태 변수 값에 적용하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
An arithmetic decoder configured to apply a clipping operation to the updated state variable values so as to keep the updated state variable values and the clipped state variable values within a predetermined range of values.
상기 산술 디코더는,
클리핑 연산을
에 따라 상기 업데이트된 상태 변수 값에 적용하도록 구성되고,
여기에서 는 에 대한 최대 허용 값이며,
는 에 대한 최소 허용 값인, 산술 디코더.In Article 199,
The above arithmetic decoder is,
Clipping operation
is configured to apply to the updated state variable values according to
Here Is is the maximum allowable value for ,
Is The minimum allowable value for an arithmetic decoder.
상기 산술 디코더는,
상이한 콘텍스트에 대하여 상이한 스케일링 값을 적용하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
An arithmetic decoder configured to apply different scaling values for different contexts.
상기 산술 디코더는,
제 122 항에 규정된 것과 같은 인터벌 크기 정보를 획득하도록 구성되는, 산술 디코더.In Article 182,
The above arithmetic decoder is,
An arithmetic decoder configured to obtain interval size information as specified in Article 122.
상기 산술 디코더는,
복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 결합된 상태 변수 값을 결정하도록 구성되고,
상기 산술 디코더는,
결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전으로부터, 디코딩될 심볼 값의 산술적 디코딩을 위한 하위인터벌 폭 값()을,
상기 결합된 상태 변수 값 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 값 도메인의 상이한 값 인터벌에 대한 확률 값을 포함하는 1-차원 룩업 테이블() 엔트리를 사용하여 결합된 확률 값으로 매핑하고,
인코딩될 심볼 값의 산술적 디코딩 이전의 산술적 인코딩의 코딩 인터벌의 크기를 기술하는 코딩 인터벌 크기 정보를 양자화 레벨()로 양자화하며,
상기 확률 값 및 상기 양자화 레벨 사이의 곱을 결정함으로써 결정하도록 구성되며,
상기 산술 디코더는, 디코딩될 심볼 값에 의존하여 상태 변수 값 업데이트를 수행하도록 구성되는, 산술 디코더.An arithmetic decoder (50; 500; 1622; 1722) for decoding a plurality of symbols (24'', 520; 1620; 1720) having symbol values,
The above arithmetic decoder is,
configured to determine a combined state variable value representing statistics of a plurality of previously decoded symbol values,
The above arithmetic decoder is,
A subinterval width value for arithmetic decoding of a symbol value to be decoded from the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values. )second,
A one-dimensional lookup table containing probability values for different value intervals of a value domain for the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, ) entries are mapped to combined probability values,
The coding interval size information describing the size of the coding interval of the arithmetic encoding prior to the arithmetic decoding of the symbol value to be encoded is the quantization level ( ) and quantized into
configured to determine by determining the product between the above probability value and the above quantization level,
The above arithmetic decoder is an arithmetic decoder configured to perform state variable value updates depending on the symbol value to be decoded.
상기 산술 디코더는,
상이한 적응 시상수를 가지는 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여, 결합된 상태 변수 값을 유도하도록 구성되는, 산술 디코더.In Article 203,
The above arithmetic decoder is,
An arithmetic decoder configured to derive a combined state variable value based on a plurality of state variable values representing statistics of a plurality of previously decoded symbol values having different adaptation time constants.
상기 산술 디코더는,
상기 결합된 상태 변수 값을 획득하기 위하여, 상태 변수 값의 가중 합(weighted sum)을 결정하도록 구성되는, 산술 디코더.In paragraph 204,
The above arithmetic decoder is,
An arithmetic decoder configured to determine a weighted sum of state variable values to obtain the combined state variable values.
상기 산술 디코더는,
상기 결합된 상태 변수 값을 획득하기 위하여,
상태 변수 값 및 상태 변수 값과 연관된 가중치 값()의 곱을 반올림함으로써 획득되는 반올림된 값의 합을 결정하도록 구성되는, 산술 디코더.In paragraph 204,
The above arithmetic decoder is,
In order to obtain the above combined state variable values,
The state variable values and the weight values associated with the state variable values ( ) is configured to determine the sum of the rounded values obtained by rounding the product of the two.
상기 산술 디코더는,
상기 결합된 상태 변수 값 sk를
에 따라서 결정하도록 구성되고,
여기에서 sk i는 상태 변수 값이며,
N은 고려되는 상태 변수 값의 개수이고,
. 는 바닥 연산자이며,
dk i는 상기 상태 변수 값과 연관된 가중치 값인, 산술 디코더.In paragraph 204,
The above arithmetic decoder is,
The above combined state variable values s k
It is configured to decide accordingly,
Here, s k i is the state variable value,
N is the number of state variable values considered,
. is the floor operator,
d k i is an arithmetic decoder, which is a weight value associated with the state variable value.
상기 산술 디코더는,
상기 상태 변수 값 업데이트를 수행할 때, 상기 복수 개의 변수 상태 값 를,
에 따라서 업데이트하도록 구성되고,
여기에서 z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치이며,
A는
업데이트된 가 미리 결정된 값 범위를 벗어나는 것을 피하기 위하여,
이거나, 그 인수의 오직 하나 이상의 극단 값에 대해서만 제로 설정(zero setting) 또는 크기 감소에 의하여 편차를 가지고,
여기에서 , , , 및 는 미리 결정된 파라미터이며,
인코딩되는 심볼이 1이면 이고,
인코딩되는 심볼이 0이면 인, 산술 디코더.In paragraph 204,
The above arithmetic decoder is,
When performing the above state variable value update, the above multiple variable state values cast,
It is configured to update accordingly,
Here, z is a predetermined offset value,
is one or more weights,
is one or more weights,
A is
Updated To avoid going beyond the predetermined value range,
or, having a deviation by zero setting or size reduction only for one or more extreme values of the argument,
Here , , , and is a predetermined parameter,
If the symbol being encoded is 1 And,
If the symbol being encoded is 0 In, arithmetic decoder.
상기 산술 디코더는,
테이블 룩업 또는 계산에 의하여 를 유도하도록 구성되는, 산술 디코더.In Article 208,
The above arithmetic decoder is,
By table lookup or calculation An arithmetic decoder configured to derive .
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 203,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 203,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
상기 산술 디코더는,
하나 이상의 업데이트된 상태 변수 값 를
에 따라서 결정하도록 구성되고,
여기에서 A는 룩업 테이블이고,
z는 미리 결정된 오프셋 값이며,
는 하나 이상의 가중치이고,
는 하나 이상의 가중치인, 산술 디코더.In Article 203,
The above arithmetic decoder is,
One or more updated state variable values cast
It is configured to decide accordingly,
Here, A is a lookup table,
z is a predetermined offset value,
is one or more weights,
An arithmetic decoder, which has one or more weights.
상기 산술 디코더는,
논리적 우측 천이를 상기 코딩 인터벌 크기 정보에 적용함으로써, 상기 코딩 인터벌 크기 정보를 양자화하는 것을 수행하도록 구성되는, 산술 디코더.In Article 203,
The above arithmetic decoder is,
An arithmetic decoder configured to quantize the coding interval size information by applying a logical right transition to the coding interval size information.
상기 산술 디코더는,
코딩 인터벌 크기 정보 R을 양자화하는 것을
에 의하여 수행하도록 구성되고,
여기에서 , 및 는 정수-값 파라미터인, 산술 디코더.In Article 203,
The above arithmetic decoder is,
Quantizing the coding interval size information R
is configured to perform by,
Here , and An arithmetic decoder with integer-valued parameters.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 단조 감소(monotonically decrease)하는, 산술 디코더.In Article 203,
The entries in the above one-dimensional lookup table are,
An arithmetic decoder that monotonically decreases as the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, increase.
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전에 대한 상기 값 도메인의 상이한 값 인터벌은, 동일하게 크기결정되는, 산술 디코더.In Article 203,
An arithmetic decoder wherein different value intervals of the value domain for the combined state variable values, or scaled versions and/or rounded versions of the combined state variable values, are sized identically.
상기 1-차원 룩업 테이블의 엔트리는,
상기 결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전의 증가 시에 감소율(decreasing rate)을 가지고 단조 감소하는, 산술 디코더.In Article 216,
The entries in the above one-dimensional lookup table are,
An arithmetic decoder that monotonically decreases at a decreasing rate as the combined state variable values, or a scaled version and/or a rounded version of the combined state variable values, increase.
상기 비디오 인코더는 복수 개의 비디오 프레임(12)을 인코딩하도록 구성되고,
상기 비디오 인코더는,
제 1 항 또는 제 107 항 또는 제 83 항 중 어느 한 항에 따라서, 비디오 콘텐츠를 나타내는 이진 값의 시퀀스(410)에 기반하여, 인코딩된 이진 시퀀스(420)를 제공하기 위한 산술 인코더(34; 400)를 포함하는, 비디오 인코더(10).As a video encoder (10),
The above video encoder is configured to encode a plurality of video frames (12),
The above video encoder,
A video encoder (10) comprising an arithmetic encoder (34; 400) for providing an encoded binary sequence (420) based on a sequence (410) of binary values representing video content, according to any one of claims 1 to 83.
상기 비디오 디코더는 복수 개의 비디오 프레임(12')을 디코딩하도록 구성되고,
상기 비디오 디코더는,
제 122 항 또는 제 203 항 또는 제 95 항 중 어느 한 항에 따라서, 이진 시퀀스의 인코딩된 표현(14; 510; 1610; 1710)에 기반하여, 디코딩된 이진 시퀀스(24'', 520; 1622; 1722)를 제공하기 위한 산술 디코더(50; 500; 1620; 1720)를 포함하는, 비디오 디코더(20; 1600; 1700).As a video decoder (20; 1600; 1700),
The above video decoder is configured to decode a plurality of video frames (12'),
The above video decoder,
A video decoder (20; 1600; 1700) comprising an arithmetic decoder (50; 500; 1620; 1720) for providing a decoded binary sequence (24'', 520; 1622; 1722) based on an encoded representation (14; 510; 1610; 1710) of the binary sequence according to any one of claims 122, 203 or 95.
상기 방법은,
하나 이상의 인코딩될 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보를, 상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여 유도하는 단계를 포함하고,
상기 방법은,
인코딩될 하나 이상의 심볼의 산술적 인코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 룩업 테이블(LUT1)을 사용하여 매핑하고,
제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 룩업 테이블(LUT1)을 사용하여 매핑하는 단계를 포함하는, 인코딩 방법.A method for encoding multiple symbols having symbol values,
The above method,
A step of deriving interval size information for arithmetic encoding of one or more symbol values to be encoded, based on a plurality of state variable values representing statistics of a plurality of previously encoded symbol values having different adaptation time constants,
The above method,
To obtain interval size information describing the interval size for arithmetic encoding of one or more symbols to be encoded,
Mapping the first state variable value, or a scaled version and/or a rounded version of the first state variable value, using a lookup table (LUT1),
An encoding method comprising the step of mapping a second state variable value, or a scaled version and/or a rounded version of the second state variable value, using a lookup table (LUT1).
상기 방법은,
상이한 적응 시상수가 있는 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보를 유도하는 단계를 포함하고,
상기 방법은,
상기 복수 개의 상태 변수 값에 기반하여, 결합된 상태 변수 값을 유도하는 단계를 포함하며,
상기 방법은,
인코딩될 하나 이상의 심볼의 상기 산술적 인코딩에 대한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 룩업 테이블을 사용하여 매핑하는 단계를 포함하는, 인코딩 방법.A method for encoding multiple symbols having symbol values,
The above method,
A step of deriving interval size information for arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values representing statistics of a plurality of previously encoded symbol values having different adaptation time constants,
The above method,
A step of deriving a combined state variable value based on the above plurality of state variable values,
The above method,
To obtain interval size information describing the interval size for the arithmetic encoding of one or more symbols to be encoded,
An encoding method comprising the step of mapping combined state variable values, or scaled versions and/or rounded versions of said combined state variable values, using a lookup table.
상기 방법은,
복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값을 결정하는 단계를 포함하고,
상기 방법은,
복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여, 인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 정보를 유도하는 단계를 포함하며,
상기 방법은,
인코딩될 심볼에 의존하고 룩업 테이블을 사용하여, 제 1 상태 변수 값을 업데이트하는 단계를 포함하는, 인코딩 방법.A method for encoding multiple symbols having symbol values,
The above method,
Comprising the step of determining one or more state variable values representing statistics of a plurality of previously encoded symbol values,
The above method,
A step of deriving interval size information for arithmetic encoding of one or more symbol values to be encoded based on one or more state variable values representing statistics of a plurality of previously encoded symbol values,
The above method,
An encoding method, comprising the step of updating a first state variable value using a lookup table and depending on a symbol to be encoded.
상기 방법은,
하나 이상의 디코딩될 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보를, 상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여 유도하는 단계를 포함하고,
상기 방법은,
디코딩될 하나 이상의 심볼의 산술적 디코딩을 위한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
제 1 상태 변수 값, 또는 상기 제 1 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 룩업 테이블(LUT1)을 사용하여 매핑하고,
제 2 상태 변수 값, 또는 상기 제 2 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을, 룩업 테이블(LUT1)을 사용하여 매핑하는 단계를 포함하는, 디코딩 방법.A method for decoding multiple symbols having symbol values,
The above method,
A step of deriving interval size information for arithmetic decoding of one or more to-be-decoded symbol values based on a plurality of state variable values representing statistics of a plurality of previously decoded symbol values having different adaptation time constants,
The above method,
To obtain interval size information describing the interval size for arithmetic decoding of one or more symbols to be decoded,
Mapping the first state variable value, or a scaled version and/or a rounded version of the first state variable value, using a lookup table (LUT1),
A decoding method comprising the step of mapping a second state variable value, or a scaled version and/or a rounded version of the second state variable value, using a lookup table (LUT1).
상기 방법은,
상이한 적응 시상수가 있는 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 복수 개의 상태 변수 값에 기반하여, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보를 유도하는 단계를 포함하고,
상기 방법은,
상기 복수 개의 상태 변수 값에 기반하여, 결합된 상태 변수 값을 유도하는 단계를 포함하며,
상기 방법은,
디코딩될 하나 이상의 심볼의 상기 산술적 디코딩에 대한 인터벌 크기를 기술하는 인터벌 크기 정보를 획득하기 위하여,
결합된 상태 변수 값, 또는 상기 결합된 상태 변수 값의 스케일링된 버전 및/또는 반올림된 버전을 룩업 테이블을 사용하여 매핑하는 단계를 포함하는, 디코딩 방법.A method for decoding multiple symbols having symbol values,
The above method,
A step of deriving interval size information for arithmetic decoding of one or more symbol values to be decoded based on a plurality of state variable values representing statistics of a plurality of previously decoded symbol values having different adaptation time constants,
The above method,
A step of deriving a combined state variable value based on the above plurality of state variable values,
The above method,
To obtain interval size information describing the interval size for the arithmetic decoding of one or more symbols to be decoded,
A decoding method, comprising the step of mapping combined state variable values, or scaled versions and/or rounded versions of said combined state variable values, using a lookup table.
상기 방법은,
복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값을 결정하는 단계를 포함하고,
상기 방법은,
복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여, 디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 정보를 유도하는 단계를 포함하며,
상기 방법은,
디코딩된 심볼에 의존하고 룩업 테이블을 사용하여, 제 1 상태 변수 값을 업데이트하는 단계를 포함하는, 디코딩 방법.A method for decoding multiple symbols having symbol values,
The above method,
Comprising the step of determining one or more state variable values representing statistics of a plurality of previously decoded symbol values,
The above method,
A step of deriving interval size information for arithmetic decoding of one or more symbol values to be decoded based on one or more state variable values representing statistics of a plurality of previously decoded symbol values,
The above method,
A decoding method, comprising the step of updating a first state variable value based on a decoded symbol and using a lookup table.
상기 방법은,
인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값(si k)에 기반하여 유도하는 단계를 포함하고,
상기 방법은,
인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하는 단계를 포함하며,
상기 방법은,
상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i)가 제 1 범위 내에 있다면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하는 단계를 포함하고,
상기 방법은,
하나 이상의 심볼의 산술적 인코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 인코딩 방법.A method for encoding multiple symbols having symbol values,
The above method,
A step of deriving an interval size value (R LPS ) for arithmetic encoding of one or more symbol values to be encoded based on one or more state variable values (s i k ) representing statistics of a plurality of previously encoded symbol values,
The above method,
A step of determining the interval size value (R LPS ) using a base lookup table (Base TabLPS),
The above method,
A step of determining an interval size value (R LPS) such that if the probability index (i) obtained based on the one or more state variable values is within a first range, the determined interval size value is equal to an element of the base lookup table or a rounded version of an element of the base lookup table, and if the probability index is within a second range, the determined interval size value is obtained using scaling and rounding of the elements of the base lookup table,
The above method,
An encoding method comprising the step of performing an arithmetic encoding of one or more symbols using the interval size value (R LPS ).
상기 방법은,
인코딩될 하나 이상의 심볼 값의 산술적 인코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 인코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여 유도하는 단계를 포함하고,
상기 방법은,
인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 확률 값에 기반하여 그리고 코딩 인터벌 크기(R)에 기반하여, 확률 테이블(ProbTabLPS)을 사용하여 결정하는 단계를 포함하며,
상기 확률 테이블은 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하고,
상기 방법은,
현재의 확률이 복수 개의 확률 값들의 세트에 속하지 않는다면 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 코딩 인터벌 크기와 다르다면, 상기 인터벌 크기 값(RLPS)을 얻기 위하여, 상기 확률 테이블(ProbTabLPS)의 원소를 스케일링하는 단계를 포함하며,
상기 방법은,
하나 이상의 심볼의 산술적 인코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 인코딩 방법.A method for encoding multiple symbols having symbol values,
The above method,
A step of deriving an interval size value (R LPS ) for arithmetic encoding of one or more symbol values to be encoded, based on one or more state variable values representing statistics of a plurality of previously encoded symbol values,
The above method,
A step of determining an interval size value (R LPS ) using a probability table (ProbTabLPS) based on a probability value derived from one or more state variable values and based on the coding interval size (R),
The above probability table describes a set of multiple probability values associated with table indices and an interval size for a given coding interval size,
The above method,
If the current probability does not belong to a set of multiple probability values and/or if the current coding interval size (R) is different from the given coding interval size, a step of scaling an element of the probability table (ProbTabLPS) to obtain the interval size value (R LPS ) is included.
The above method,
An encoding method comprising the step of performing an arithmetic encoding of one or more symbols using the interval size value (R LPS ).
상기 방법은,
디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여 유도하는 단계를 포함하고,
상기 방법은,
인터벌 크기 값(RLPS)을 베이스 룩업 테이블(Base TabLPS)을 사용하여 결정하는 단계를 포함하며,
상기 방법은,
상기 하나 이상의 상태 변수 값에 기반하여 획득된 확률 인덱스(i)가 제 1 범위 내에 있다면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소와 동일하거나 상기 베이스 룩업 테이블의 원소의 반올림된 버전이 되게끔, 그리고 상기 확률 인덱스가 제 2 범위 내에 있으면, 결정된 인터벌 크기 값이 상기 베이스 룩업 테이블의 원소의 스케일링 및 반올림을 사용하여 획득되게끔, 인터벌 크기 값(RLPS)을 결정하는 단계를 포함하고,
상기 방법은,
하나 이상의 심볼의 산술적 디코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 디코딩 방법.A method for decoding multiple symbols having symbol values,
The above method,
A step of deriving an interval size value (R LPS ) for arithmetic decoding of one or more symbol values to be decoded, based on one or more state variable values representing statistics of a plurality of previously decoded symbol values,
The above method,
A step of determining the interval size value (R LPS ) using a base lookup table (Base TabLPS),
The above method,
A step of determining an interval size value (R LPS) such that if the probability index (i) obtained based on the one or more state variable values is within a first range, the determined interval size value is equal to an element of the base lookup table or a rounded version of an element of the base lookup table, and if the probability index is within a second range, the determined interval size value is obtained using scaling and rounding of the elements of the base lookup table,
The above method,
A decoding method, comprising the step of performing arithmetic decoding of one or more symbols using the interval size value (R LPS ).
상기 방법은,
디코딩될 하나 이상의 심볼 값의 산술적 디코딩을 위한 인터벌 크기 값(RLPS)을, 복수 개의 이전에 디코딩된 심볼 값의 통계를 나타내는 하나 이상의 상태 변수 값에 기반하여 유도하는 단계를 포함하고,
상기 방법은,
인터벌 크기 값(RLPS)을, 하나 이상의 상태 변수 값으로부터 유도된 확률 값에 기반하여 그리고 코딩 인터벌 크기(R)에 기반하여, 확률 테이블(ProbTabLPS)을 사용하여 결정하는 단계를 포함하며,
상기 확률 테이블은 테이블 인덱스들과 연관된 복수 개의 확률 값들의 세트에 대한 그리고 주어진 코딩 인터벌 크기에 대한 인터벌 크기를 기술하고,
상기 방법은,
현재의 확률이 복수 개의 확률 값들의 세트에 속하지 않는다면 및/또는 현재의 코딩 인터벌 크기(R)가 주어진 코딩 인터벌 크기와 다르다면, 상기 인터벌 크기 값(RLPS)을 얻기 위하여, 상기 확률 테이블(ProbTabLPS)의 원소를 스케일링하는 단계를 포함하며,
상기 방법은,
하나 이상의 심볼의 산술적 디코딩을 상기 인터벌 크기 값(RLPS)을 사용하여 수행하는 단계를 포함하는, 디코딩 방법.A method for decoding multiple symbols having symbol values,
The above method,
A step of deriving an interval size value (R LPS ) for arithmetic decoding of one or more symbol values to be decoded, based on one or more state variable values representing statistics of a plurality of previously decoded symbol values,
The above method,
A step of determining an interval size value (R LPS ) using a probability table (ProbTabLPS) based on a probability value derived from one or more state variable values and based on the coding interval size (R),
The above probability table describes a set of multiple probability values associated with table indices and an interval size for a given coding interval size,
The above method,
If the current probability does not belong to a set of multiple probability values and/or if the current coding interval size (R) is different from the given coding interval size, a step of scaling an element of the probability table (ProbTabLPS) to obtain the interval size value (R LPS ) is included.
The above method,
A decoding method, comprising the step of performing arithmetic decoding of one or more symbols using the interval size value (R LPS ).
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18182308.9 | 2018-07-06 | ||
EP18182308 | 2018-07-06 | ||
EP18196400 | 2018-09-24 | ||
EP18196400.8 | 2018-09-24 | ||
EP18248294 | 2018-12-28 | ||
EP18248294.3 | 2018-12-28 | ||
PCT/EP2019/068188 WO2020008075A1 (en) | 2018-07-06 | 2019-07-05 | Arithmetic encoders, arithmetic decoders, video encoder, video decoder, methods for encoding, methods for decoding and computer program |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210032413A KR20210032413A (en) | 2021-03-24 |
KR102721249B1 true KR102721249B1 (en) | 2024-10-24 |
Family
ID=67253872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217003652A KR102721249B1 (en) | 2018-07-06 | 2019-07-05 | Arithmetic encoder, arithmetic decoder, video encoder, video decoder, encoding method, decoding method and computer program |
Country Status (7)
Country | Link |
---|---|
US (2) | US11431352B2 (en) |
EP (1) | EP3818637A1 (en) |
JP (2) | JP2021532698A (en) |
KR (1) | KR102721249B1 (en) |
CN (1) | CN112689960A (en) |
TW (2) | TWI827010B (en) |
WO (1) | WO2020008075A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230007260A1 (en) * | 2019-11-08 | 2023-01-05 | Google Llc | Probability Estimation for Video Coding |
KR20230005868A (en) * | 2020-04-14 | 2023-01-10 | 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 | Decoder, encoder, methods for decoding weight parameters of neural network and encoded representation using probability estimation parameters |
CN113489979A (en) * | 2021-05-28 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | Entropy coding method, entropy coding device, electronic equipment and storage medium |
EP4406223A1 (en) * | 2021-09-22 | 2024-07-31 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices for decoder-side intra mode derivation |
CN113938273B (en) * | 2021-09-30 | 2024-02-13 | 湖南遥昇通信技术有限公司 | Symmetric encryption method and system capable of resisting quantitative parallel computing attack |
WO2023129680A1 (en) * | 2021-12-29 | 2023-07-06 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices on probability calculation for context-based adaptive binary arithmetic coding |
WO2023137540A1 (en) * | 2022-01-19 | 2023-07-27 | The Governing Council Of The University Of Toronto | System and method for off-chip data compression and decompression for machine learning networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101336051B1 (en) | 2010-01-12 | 2013-12-04 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a modification of a number representation of a numeric previous context value |
KR101656968B1 (en) | 2011-10-27 | 2016-09-12 | 퀄컴 인코포레이티드 | Mapping states in binary arithmetic coder for video coding |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3184670B2 (en) * | 1992-07-31 | 2001-07-09 | キヤノン株式会社 | Image coding device |
EP0581571B1 (en) * | 1992-07-31 | 1998-07-08 | Canon Kabushiki Kaisha | Imaging coding device and method |
US5587710A (en) * | 1995-03-24 | 1996-12-24 | National Semiconductor Corporation | Syntax based arithmetic coder and decoder |
US6894628B2 (en) * | 2003-07-17 | 2005-05-17 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
JP4115947B2 (en) | 2004-01-27 | 2008-07-09 | シャープ株式会社 | Encoding method, encoding device, program, and recording medium |
CN101167368B (en) * | 2005-12-05 | 2012-03-28 | 华为技术有限公司 | Method and device for realizing arithmetic coding/decoding |
JP6121172B2 (en) | 2012-01-24 | 2017-04-26 | 西川ゴム工業株式会社 | Joint seal structure |
-
2019
- 2019-07-05 KR KR1020217003652A patent/KR102721249B1/en active IP Right Grant
- 2019-07-05 WO PCT/EP2019/068188 patent/WO2020008075A1/en unknown
- 2019-07-05 TW TW111114680A patent/TWI827010B/en active
- 2019-07-05 EP EP19739237.6A patent/EP3818637A1/en active Pending
- 2019-07-05 TW TW108123827A patent/TWI765164B/en active
- 2019-07-05 CN CN201980058433.3A patent/CN112689960A/en active Pending
- 2019-07-05 JP JP2021522144A patent/JP2021532698A/en active Pending
-
2021
- 2021-01-05 US US17/142,071 patent/US11431352B2/en active Active
-
2022
- 2022-07-26 US US17/874,092 patent/US12095486B2/en active Active
- 2022-11-25 JP JP2022187949A patent/JP2023021214A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101336051B1 (en) | 2010-01-12 | 2013-12-04 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a modification of a number representation of a numeric previous context value |
KR101656968B1 (en) | 2011-10-27 | 2016-09-12 | 퀄컴 인코포레이티드 | Mapping states in binary arithmetic coder for video coding |
Also Published As
Publication number | Publication date |
---|---|
JP2023021214A (en) | 2023-02-10 |
US11431352B2 (en) | 2022-08-30 |
KR20210032413A (en) | 2021-03-24 |
EP3818637A1 (en) | 2021-05-12 |
CN112689960A (en) | 2021-04-20 |
US12095486B2 (en) | 2024-09-17 |
JP2021532698A (en) | 2021-11-25 |
TWI827010B (en) | 2023-12-21 |
WO2020008075A1 (en) | 2020-01-09 |
TWI765164B (en) | 2022-05-21 |
US20210126650A1 (en) | 2021-04-29 |
US20230134365A1 (en) | 2023-05-04 |
TW202306384A (en) | 2023-02-01 |
TW202017373A (en) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102721249B1 (en) | Arithmetic encoder, arithmetic decoder, video encoder, video decoder, encoding method, decoding method and computer program | |
RU2745248C1 (en) | Conversion ratio encoding | |
CN109997361B (en) | Low complexity symbol prediction for video coding | |
KR102314801B1 (en) | Selective Blending for Entropy Coding in Video Compression | |
DK2984837T3 (en) | Inter-component prediction | |
JP7181941B2 (en) | video decoder, video encoder, method of decoding video content, method of encoding video content, computer program, and video bitstream | |
KR20230010854A (en) | An improved concept for the representation of neural network parameters | |
JP2016134860A (en) | Dynamic image encoding device, dynamic image encoding method and dynamic image encoding computer program | |
Yu et al. | An efficient adaptive binary arithmetic coder based on logarithmic domain | |
US11979584B2 (en) | Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content | |
TW202435611A (en) | Arithmetic encoders, arithmetic decoders, video encoder, video decoder, methods for encoding, methods for decoding and computer program | |
JP7479471B2 (en) | Mode - Matrix-based intra prediction with global settings | |
KR102725663B1 (en) | Video decoder, video encoder, method for decoding a video content, method for encoding a video content, computer program and video bitstream | |
JP6495834B2 (en) | Video encoding method, video encoding apparatus, and video encoding program | |
JP2024124559A (en) | Encoding device and decoding device | |
KR20240044497A (en) | Sign prediction for block-based video coding | |
JP3884410B2 (en) | Quantization step size determination method and digital signal encoding apparatus for digital signal encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
E902 | Notification of reason for refusal | ||
X701 | Decision to grant (after re-examination) |