VIDEO DECODER, VIDEO ENCODER, METHOD FOR DECODING VIDEO CONTENT, METHOD FOR ENCODING VIDEO CONTENT, COMPUTER PROGRAM, AND VIDEO BITSTREAM - Patent application

The video decoder and encoder improve coding efficiency by estimating binary probabilities and determining window sizes based on slice type and context models, enabling accurate interval subdivisions and reliable decoding.

JP7676612B2Active Publication Date: 2025-05-14FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024034116
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-03-29
Filing Date
2024-03-06
Publication Date
2025-05-14
Estimated Expiration
2039-03-29

AI Technical Summary

Technical Problem

Existing video decoding and encoding technologies face challenges in achieving optimal coding efficiency due to the need for accurate estimation of binary probabilities, which is crucial for interval subdivisions in arithmetic coding.

Method used

A video decoder and encoder are developed to estimate binary probabilities by using a method that determines first and second window sizes based on slice type information, initialization parameters, and context models, allowing for the calculation of combined source statistics and range values for interval subdivisions.

Benefits of technology

This approach enhances coding efficiency by providing an appropriate trade-off between computational efficiency and reliability, effectively mapping encoded representations to decoded binary sequences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007676612000205
    Figure 0007676612000205
  • Figure 0007676612000206
    Figure 0007676612000206
  • Figure 0007676612000207
    Figure 0007676612000207
Patent Text Reader

Abstract

To provide a video decoder for decoding a plurality of video frames fragmented into one or more slice sets.SOLUTION: A video decoder 100, used to evaluate slice type information showing if a slice is coded by using an independent coded mode, a single prediction mode or a bi-prediction mode, includes an arithmetic decoder 120 for providing a decoded binary sequence on the basis of coding expression of a binary sequence. The arithmetic decoder determines a first source statistic 132 using a first estimation parameter, determines a second source statistic 142 using a second estimation parameter, and determines a combined source statistic 152 on the basis of the first source statistic and the second source statistic, and on the basis of the combined source statistics, determines one or more range values 162 of a space subdivision used to map the coding expression of the binary sequence for the decoded binary sequence.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Embodiments according to the invention relate to a video decoder, a video encoder, a method for decoding video content, a method for encoding video content, a computer program, and a video bitstream.

[0002] An embodiment according to the invention relates to a probability estimation method for binary arithmetic coding, which may be used, for example, in video encoders, video decoders, and also in image encoders, image decoders, audio encoders, audio decoders, etc. [Background technology]

[0003] Arithmetic coding and decoding have proven to be a valuable tool in the encoding and decoding of audio and video content. For example, it is possible to exploit the known probability of occurrence of binary values ​​in a binary sequence representing video or audio content to increase coding efficiency. In particular, arithmetic coding can efficiently handle various probabilities of "0" and "1" and can accurately adapt to changes in probability.

[0004] However, to achieve arithmetic coding and decoding with optimal coding efficiency, it is important to have adequate information about the probabilities of "0" and "1" that closely reflect their actual occurrence probabilities. Knowledge about the probabilities of "0" and "1" (or generally about the probabilities of the symbols to be coded) is usually used to adjust the interval boundaries within the entire range of values ​​in order to obtain interval subdivisions (e.g., so that the entire range of values ​​is subdivided into intervals associated with different binary values ​​or groups of binary values). Summary of the Invention [Problem to be solved by the invention]

[0005] Therefore, there is a need for a concept for determining source statistics, or range values ​​for interval subdivisions, that provides a good tradeoff between computational efficiency and reliability. [Means for solving the problem]

[0006] One embodiment according to the present invention creates a video decoder, the video decoder being configured to decode a plurality of video frames (eg, a sequence of video frames).

[0007] The video decoder is configured to decode a video frame subdivided into a set of one or more slices (preferably multiple slices), and the video decoder is configured to evaluate slice type information (e.g., "SliceType") indicating whether the slice was coded using an independent coding mode (e.g., "Intra") where there is no prediction of video content of a current frame based on video content of a previous frame, or using a uni-prediction mode (e.g., "P") where there is prediction of blocks of pixels based on pixels of one block (e.g., only one block) of a previous frame (e.g., a previously decoded frame), or using a bi-directional prediction mode (e.g., "B") where there is prediction of blocks of pixels based on pixels of two or more blocks of one or more previous frames (e.g., previously decoded frames) to select an operation mode for decoding the slice. The video decoder includes an arithmetic decoder for providing a decoded binary sequence (e.g., describing transform coefficients of the image content) based on the coded representation of the binary sequence. The arithmetic decoder evaluates a first window size (e.g., which may be represented by a window size variable) (e.g., w a ) to (for example, the previously decoded binary value x t-1 ,x t-2 ,...) (and also designated as a "counter variable" or "counter") t), and based on, for example, a previously decoded binary sequence, a second window size (e.g., w b ) to get the previously decoded binary value x t-1 ,x t-2 ,...) second source statistics (e.g., b t The arithmetic decoder may be configured to determine, for example, a first source statistic (e.g., a t ), and based on a second source statistic (e.g. b t ), based on the join source statistics (for example

number

[0008] In a preferred embodiment of the video decoder, the arithmetic decoder is configured to determine the first and second window sizes (e.g., to take different values, e.g., the first and second window sizes may be in the range from 1 to 11, inclusive) depending on the slice type information.

[0009] In a preferred embodiment of the video decoder, the video decoder is configured to determine the first and second window sizes also in response to an initialization parameter or flag (e.g., a "cabac init flag") included in the bitstream (e.g., one initialization flag per slice), which may optionally also define initialization values ​​for the first source statistics and / or the second source statistics.

[0010] In a preferred embodiment of the video decoder, the video decoder is configured to determine the first and second window sizes also depending on the context model (e.g., depending on what type of information is decoded, e.g., whether one or more most significant bits of a transform coefficient or one or more least significant bits of a transform coefficient are decoded). For example, a pair of window size values ​​defining the first and second window sizes may be predefined for each combination of slice type, initialization flag, and context model.

[0011] In a preferred embodiment, the video decoder generates an updated version of the first source statistic (a t+1 ), we use the previously decoded binary value (say x t )) depending on a pre-computed instance of the first source statistic (e.g. a t ) to a given value (for example

number

number

number

number

[0012] In a preferred embodiment, the video decoder generates an updated version a of the first source statistic according to t+1 is configured to obtain

number

number

[0013] Alternatively, or in addition, the video decoder generates an updated version b of the second source statistics according to t+1 is configured to obtain

number

number

[0014] In a preferred embodiment, k a = 1 and / or k b =1.

[0015] In a preferred embodiment of the video decoder, the video decoder calculates a first source statistic a according to t+1

[0023] The method is configured to determine

number

number

number

[0023] The method is configured to determine

number

number

number

[0016] The update of the first and second source statistics is controlled by the parameter BITS a / b and n a / b Please note that only the difference is. t and b t In order to discuss both update procedures, a and a t is used. t To produce the update procedure for , we simply need to replace all occurrences of with b in the following formula:

[0017] The update procedure can be rewritten as follows:

number

number

number

number

[0018] In addition, ONE a Note that, denotes a probability value equal to 1. For efficient implementation, ONE a It may be reasonable to quantize or slightly modify (e.g., by adding or subtracting small amounts) x, y ...

number

[0019] In a preferred embodiment, the video decoder derives a first source statistic a according to t+1

[0023] The method is configured to determine

number

number

[0020] Alternatively, or in addition, the video decoder derives a second source statistic b according to t+1

[0023] The method is configured to determine

number

number

[0021] In a preferred embodiment of the video decoder, the video decoder calculates a first source statistic a according to t+1

[0023] The method is configured to determine

number

number

[0023] The method is configured to determine

number

number

[0022] In a preferred embodiment of the video decoder, the video decoder is configured to combine the first source statistic and the second source statistic to obtain a combined source statistic.

[0023] In a preferred embodiment of the video decoder, the video decoder calculates the combined source statistics according to

number

number

[0024] In a preferred embodiment of the video decoder, the video decoder is configured to combine the first source statistic and the second source statistic to obtain a combined source statistic, and different weights are associated with the first source statistic and the second source statistic (optionally, the video decoder is configured to vary the weights during the decoding process).

[0025] In a preferred embodiment of the video decoder, the video decoder comprises: t ) and a second source statistic (e.g., b t ) to represent different numbers of bits (e.g. BITS a , BITS b )

[0026] In a preferred embodiment of the video decoder, the video decoder comprises: t ) and a second source statistic (e.g., b t ), and the video decoder is configured to use a relatively large number of bits to represent the source statistics having a relatively large window size and a relatively small number of bits to represent the source statistics having a relatively small window size.

[0027] In a preferred embodiment of the video decoder, the video decoder calculates a first source statistic a according to t and / or second source statistics b t configured to modify the numerical representation of

number

number

number

[0028] In a preferred embodiment of the video decoder, the video decoder calculates the combined source statistics according to

number

[0023] The method is configured to determine

number

number

number

[0029] In a preferred embodiment of the video decoder, the video decoder calculates the combined source statistics according to

number

[0023] The method is configured to determine

number

number

[0030] In a preferred embodiment of the video decoder, the video decoder calculates a first source statistic (e.g., a) in response to a first window size and in response to a second window size. t ) and the number of bits in the representation of the second source statistic (e.g. BITS a , BITS b ) (for example,

number

number

number

number

[0031] In a preferred embodiment of the video decoder, the first source statistic (a t ) and the second source statistic (b t ) is constant across different context models (or independent in the case of variants in the number of bits used to represent the first source statistic).

[0032] In a preferred embodiment of the video decoder, the video decoder is configured to determine the first window size and the second window size also in response to a (e.g., dedicated) initialization flag (e.g., “ws_flag”) included in the bitstream, and the video decoder is configured to set initialization values ​​for the first source statistics and / or the second source statistics in response to another initialization flag (e.g., “cabac init flag”) included in the bitstream.

[0033] In a preferred embodiment of the video decoder, the video decoder or the arithmetic decoder is configured to determine the first and second window sizes also depending on the temporal level of the current slice. Alternatively or additionally, the video decoder or the arithmetic decoder is configured to determine the first and second window sizes also depending on the quantization parameter of the current slice.

[0034] In a preferred embodiment of the video decoder, the video decoder is configured to adjust the first window size and / or the second window size depending on the position (e.g. depending on how many binary values ​​have already been decoded in the current slice, or since context initialization, using a context model to which the first window size and / or the second window size are associated, or depending on the position of the pixel or block of pixels in the frame to which the binary value to be decoded is associated).

[0035] In a preferred embodiment of the video decoder, the video decoder is configured to set the first window size and / or the second window size to a start value (preferably smaller than the normal value) when decoding a binary value associated with a start position (e.g. the first row of a block of pixels, or the first column of a block of pixels), and to set the first window size and / or the second window size to a normal value (preferably larger than the start value) when decoding a binary value associated with a position at least a predetermined position (or distance) away from the start position.

[0036] In a preferred embodiment of the video decoder, the video decoder is configured to change the first window size and / or the second window size within a slice (e.g., when decoding the slice) in response to a signal flag (e.g., a “ctu_ws_flag” flag) indicating that the window size should be changed.

[0037] In a preferred embodiment of the video decoder, the video decoder is configured to evaluate a signal flag for a number of coding tree units (or even all coding tree units) indicating whether the window size should be changed, and to scale at least one of the window sizes in response to the signal flag (e.g., scale only one of the window sizes in response to the signal flag, while being careful not to exceed a maximum range of window sizes, scale all window sizes together even for different context models). Alternatively, it is also possible to scale only the window sizes for some context models.

[0038] In a preferred embodiment of the video decoder, the video decoder calculates the combined source statistics (e.g.,

number

[0039] In a preferred embodiment of the video decoder, the video decoder temporarily replaces the second source statistics with a constant replacement value (e.g., immediately after initialization, but also for decoding multiple binary values ​​of the binary sequence) and calculates a combined source statistic by using the first source statistics (e.g., a t ) with a fixed non-zero replacement value.

[0040] In a preferred embodiment of the video decoder, the video decoder comprises a first window size w a and the second window size w b The method is configured to select the following:

[0041] n a =n b or |n a -n b |≧3 Where:

number

number

[0042] In a preferred embodiment, the video decoder determines a first window size w a and the second window size w b The method is configured to select the following:

[0043] |n a -n b |≧3 Where:

number

number

[0044] Another embodiment according to the invention creates a video decoder, the video decoder configured to decode a plurality of video frames (e.g., a sequence of video frames), the video decoder configured to decode the video frames subdivided into a set of one or more slices (preferably a plurality of slices). To select an operation mode for decoding the slice, the video decoder is configured to evaluate slice type information (e.g., "SliceType") indicating whether the slice was coded using an independent coding mode (e.g., "Intra"), where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uni-prediction mode (e.g., "P"), where there is prediction of a block of pixels based on one block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously decoded frame), or using a bi-directional prediction mode ("B"), where there is prediction of a block of pixels based on two or more blocks of pixels of one or more previous frames (e.g., a previously decoded frame). The video decoder includes an arithmetic decoder for providing a decoded binary sequence (e.g., describing transform coefficients of the image content) based on a coded representation of the binary sequence. The arithmetic decoder may, for example, be represented by a window size variable, a first window size (e.g., w a ) to find the first source statistic (for example, a t )(previously decoded binary value x t-1 ,x t-2 The arithmetic decoder may be configured to determine a first source statistic (e.g., based on the frequency of the first source statistic, which may also be designated as a "counter variable" or "counter") based on a previously decoded binary sequence. The arithmetic decoder may determine a first source statistic (e.g., based on the frequency of the first source statistic, which may also be designated as a "counter variable" or "counter") based on a previously decoded binary sequence.

number

[0045] This embodiment may be supplemented by any of the features, functions and details mentioned in relation to the previously discussed embodiments, both individually and in combination.

[0046] One embodiment according to the invention provides a video encoder configured to encode a plurality of video frames (e.g., a sequence of video frames), the video encoder comprising: The video encoder is configured to encode a video frame subdivided into a set of one or more slices (preferably a plurality of slices). The video encoder is configured to provide slice type information (e.g., "SliceType") indicating whether the slice is encoded using an independent encoding mode (e.g., "Intra") where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uniprediction mode (e.g., "P") where there is prediction of a block of pixels based on a block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously encoded frame), or using a bidirectional prediction mode (e.g., "B") where there is prediction of a block of pixels based on pixels of two or more blocks of one or more previous frames (e.g., a previously encoded frame). The video encoder includes an arithmetic encoder for providing an encoded representation of a binary sequence (e.g., describing transform coefficients of image content) based on the binary sequence (the binary sequence may represent transform coefficients or spectral coefficients, or parameters, or any other information, e.g., information representative of the content of a frame of the video content to be encoded). The arithmetic encoder may select a first window size (e.g., w a ) to obtain the first source statistic (a t ), which may be, for example, a previously encoded binary value x t-1 ,x t-2 The first source statistic may be based on a frequency of, for example, w, ..., and may also be designated as a "counter variable" or a "counter." The video encoder may determine the first source statistic based on, for example, a previously encoded binary sequence. The arithmetic encoder or the video encoder may determine a second window size (e.g., w b ) to, for example, the previously encoded binary value x t-1 ,x t-2 A second source statistic (e.g., b tThe arithmetic encoder or the video encoder may be configured to determine the second source statistics, for example based on a previously encoded binary sequence. The arithmetic encoder may be configured to determine the first source statistics (e.g., a t ), and based on a second source statistic (e.g., b ) Based on the join source statistics (e.g.

number

[0047] In a preferred embodiment, the video encoder (or, equivalently, the arithmetic encoder) is configured to determine a first window size and a second window size depending on the slice type information (e.g., the first window size and the second window size may be two different values, e.g., in the range from 1 to 11, inclusive).

[0048] In a preferred embodiment of the video encoder, the video encoder is configured to provide an initialization parameter or flag (e.g., a "cabac init flag"), and the video encoder is configured to determine the first and second window sizes in response to an initialization parameter or flag (e.g., a "cabac init flag") included in a bitstream (e.g., a bitstream representing a video frame) by the video encoder. For example, the video encoder provides one initialization flag per slice, which may optionally also define initialization values ​​for the first source statistics and / or the second source statistics.

[0049] In a preferred embodiment of the video encoder, the video encoder is configured to determine the first and second window sizes also depending on the context model (e.g., depending on what type of information is coded, e.g., whether one or more most significant bits of the transform coefficients or one or more least significant bits of the transform coefficients are coded). For example, a pair of window size values ​​defining the first and second window sizes may be predefined for each combination of slice type, initialization flag, and context model.

[0050] In a preferred embodiment, the video encoder generates an updated version of the first source statistic (a t+1 ), we use the previously encoded binary value (say x t )) depending on a pre-computed instance of the first source statistic (e.g. a t ) to a given value (for example

number

number

number

number

[0051] In a preferred embodiment, the video encoder generates an updated version a of the first source statistic according to t+1 is configured to obtain

number

number

[0052] Alternatively, or in addition, the video encoder may generate an updated version b of the second source statistics according to t+1 is configured to obtain

number

number

[0053] In a preferred embodiment, k a = 1 and / or k b =1.

[0054] In a preferred embodiment of the video encoder, the video encoder performs t+1 (for encoding) the first source statistic a according to t+1

[0023] The method is configured to determine

number

number

number

[0055] Alternatively, or in addition, the video encoder may derive a second source statistic b according to t+1 may be configured to determine

number

number

number

[0056] In a preferred embodiment, the video encoder derives a first source statistic a according to t+1

[0023] The method is configured to determine

number

number

[0057] Alternatively, or in addition, the video encoder may derive a second source statistic b according to t+1

[0023] The method is configured to determine

number

number

[0058] In a preferred embodiment of the video encoder, the video encoder calculates a first source statistic a according to t+1

[0023] The method is configured to determine

number

number

[0059] Alternatively, or in addition, the video encoder may derive a second source statistic b according to t+1 may be configured to determine

number

number

[0060] In a preferred embodiment of the video encoder, the video encoder is configured to combine the first source statistic and the second source statistic to obtain a combined source statistic.

[0061] In a preferred embodiment of the video encoder, the video encoder calculates the combined source statistics according to

number

number

[0062] In a preferred embodiment of the video encoder, the video encoder is configured to combine the first source statistic and the second source statistic to obtain a combined source statistic, and different weights are associated with the first source statistic and the second source statistic. Optionally, the video encoder is configured to vary the weights during the encoding process.

[0063] In a preferred embodiment of the video encoder, the video encoder comprises: t ) and a second source statistic (e.g., b t ) to represent different numbers of bits (e.g. BITS a , BITS b )

[0064] In a preferred embodiment of the video encoder, the video encoder comprises: t ) and a second source statistic (e.g., b t ), and the video encoder is configured to use a relatively large number of bits to represent the source statistics having a relatively large window size and a relatively small number of bits to represent the source statistics having a relatively small window size.

[0065] In a preferred embodiment of the video encoder, the video encoder calculates a first source statistic a according to t and / or second source statistics b t configured to modify the numerical representation of

number

number

number

[0066] In a preferred embodiment of the video encoder, the video encoder calculates the combined source statistics according to

number

[0023] The method is configured to determine

number

number

number

[0067] In a preferred embodiment of the video encoder, the video encoder calculates the combined source statistics according to

number

[0023] The method is configured to determine

number

number

[0068] In a preferred embodiment of the video encoder, the video encoder is configured to: t ) and the number of bits in the representation of the second source statistic (e.g. BITS a , BITS b ) (for example,

number

number

number

number

[0069] In a preferred embodiment of the video encoder, the first source statistic (e.g., a t ) and second source statistics (e.g., b t ) is constant across different context models (or independent in the case of variants in the number of bits used to represent the first source statistic).

[0070] In a preferred embodiment of the video encoder, the video encoder is configured to include in the bitstream an initialization flag (e.g., "ws_flag" or window size flag) that determines the first and second window sizes (possibly in addition to other configuration information such as slice type), and the video encoder is configured to include other initialization parameters or flags (e.g., "cabac init flag") that determine the first source statistics and / or the second source statistics.

[0071] In a preferred embodiment of the video encoder, the video encoder is configured to determine the first and second window sizes also depending on the temporal level of the current slice. Alternatively or additionally, the video encoder is configured to determine the first and second window sizes also depending on a quantization parameter of the current slice.

[0072] In a preferred embodiment of the video encoder, the video encoder is configured to adjust the first window size and / or the second window size depending on the position (e.g. depending on how many binary values ​​have already been encoded in the current slice, or since context initialization, using a context model to which the first window size and / or the second window size are associated, or depending on the position of the pixel or block of pixels in the frame to which the binary value to be encoded is associated).

[0073] In a preferred embodiment of the video encoder, the video encoder is configured to set the first window size and / or the second window size to a start value (preferably smaller than the normal value) when decoding binary values ​​associated with a start position (e.g. the first row of a block of pixels or the first column of a block of pixels) and to set the first window size and / or the second window size to a normal value (preferably larger than the start value) when encoding binary values ​​associated with a position at least a predetermined position away from the start position.

[0074] In a preferred embodiment of the video encoder, the video encoder is configured to include a signal flag (e.g., "ctu_ws_flag" or window size change signal flag) in the bitstream that indicates that the window size should be changed within the slice.

[0075] In a preferred embodiment of the video encoder, the video encoder is configured to include in the bitstream a signal flag indicating whether to change the window size for a number of coding tree units (or even all coding tree units), the signal flag indicating whether to enlarge or reduce at least one of the window sizes (e.g., enlarge or reduce all window sizes together, even for different context models, just one depending on the signal flag, while being careful not to exceed a maximum range of window sizes). Alternatively, the video encoder may enlarge or reduce the window sizes for only some context models.

[0076] In a preferred embodiment of the video encoder, the video encoder calculates the combined source statistics (e.g.,

number

[0077] In a preferred embodiment of the video encoder, the video encoder temporarily replaces the second source statistics with a constant replacement value (e.g., immediately after initialization, but also for encoding multiple binary values ​​of the binary sequence) and calculates a combined source statistic by replacing the first source statistics (e.g., a t ) with a fixed non-zero replacement value.

[0078] In a preferred embodiment of the video encoder, the video encoder comprises a first window size w a and the second window size w b The method is configured to select the following:

[0079] n a =n b or |n a -n b |≧3 Where:

number

number

[0080] In a preferred embodiment, the video encoder comprises a first window size w a and the second window size w b The method is configured to select the following:

[0081] |n a -n b |≧3 Where:

number

number

[0082] One embodiment according to the invention provides a video encoder configured to encode a plurality of video frames (e.g., a sequence of video frames), the video encoder comprising: The video encoder is configured to encode a video frame subdivided into a set of one or more slices (preferably multiple slices). The video encoder is configured to provide slice type information (e.g., "SliceType") indicating whether the slice was encoded using an independent coding mode (e.g., "Intra") where there is no prediction of video content of a current frame based on video content of a previous frame, or using a uni-prediction mode (e.g., "P") where there is prediction of a block of pixels based on pixels of a block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously encoded frame), or using a bi-directional prediction mode (e.g., "B") where there is prediction of a block of pixels based on pixels of two or more blocks of one or more previous frames (e.g., a previously encoded frame). The video encoder includes an arithmetic encoder for providing an encoded representation of the binary sequence (e.g., describing transform coefficients of the image content) based on the binary sequence (the binary sequence represents transform coefficients of spectral coefficients, parameters, or any other information). The arithmetic encoder is configured to provide a first window size (e.g., w), which may be represented by, for example, a window size variable. a ) to, for example, the previously encoded binary value x t-1 ,x t-2 ,..., which may also be designated as a "counter variable" or counter. t The arithmetic encoder may be configured to determine a first source statistic, for example based on a previously encoded binary sequence. The arithmetic encoder may be configured to determine a combined source statistic (e.g.,

number

[0083] The embodiments may optionally be supplemented with any of the features, functions and details of the embodiments described above, both individually and in combination.

[0084] An embodiment according to the invention creates a method for decoding video content, the method comprising the step of decoding a plurality of video frames (e.g. a sequence of video frames), the method comprising decoding the video frames subdivided into a set of one or more slices (preferably a plurality of slices). To select an operation mode for decoding the slice, the method comprises evaluating slice type information (e.g. "SliceType") indicating whether the slice was coded using an independent coding mode (e.g. "Intra"), where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uniprediction mode (e.g. "P"), where there is a prediction of a block of pixels based on pixels of one block (or only one block) of a previous frame (e.g. a previously decoded frame), or using a bidirectional prediction mode (e.g. "B"), where there is a prediction of a block of pixels based on pixels of two blocks of one or more previous frames (e.g. a previously decoded frame). The method comprises providing a decoded binary sequence [e.g. describing transform coefficients of the image content] based on a coded representation of the binary sequence, the method comprising: determining a first window size (e.g. w a ) to, for example, the previously decoded binary value x t-1 ,x t-2,..., and may also be designated as a "counter variable" or "counter"; t ). The first source statistic may be determined, for example, based on a previously decoded binary sequence. The method also includes determining a second window size (e.g., w b ) to get, for example, the decoded binary value x t-1 ,x t-2 A second source statistic (e.g., b t The second source statistic may be determined, for example, based on the previously decoded binary sequence. The method also includes determining the first source statistic (e.g., a t ), and based on a second source statistic (e.g., b t ), based on the join source statistics (for example

number

[0085] An embodiment according to the invention creates a method for decoding video content, the method comprising a step of decoding a plurality of video frames (e.g., a sequence of video frames), the method comprising a step of decoding the video frames subdivided into a set of one or more slices (preferably a plurality of slices). The method comprises a step of evaluating slice type information (e.g., "SliceType"), indicating whether the slice was coded using an independent coding mode (e.g., "Intra"), where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uniprediction mode (e.g., "P"), where there is a prediction of a block of pixels based on pixels of one block (or only one block) of a previous frame (e.g., a previously decoded frame), or using a bidirectional prediction mode (e.g., "B"), where there is a prediction of a block of pixels based on pixels of two or more blocks of one or more previous frames (e.g., a previously decoded frame), in order to select an operation mode for decoding the slice. The method comprises a step of providing a decoded binary sequence (e.g., describing transform coefficients of the image content) based on the coded representation of the binary sequence. The method includes, for example, determining a first window size, which may be represented by a window size variable (e.g., w a ) to, for example, the previously decoded binary value x t-1 ,x t-2 A first source statistic (e.g., a ,...) may be based on the frequency of t For example, the first source statistic may be determined based on a previously decoded binary sequence. The method further includes determining a joint source statistic (e.g.,

number

[0086] One embodiment creates a method for encoding video content, the method including a step of encoding a plurality of video frames (e.g., a sequence of video frames), the method including a step of encoding the video frames subdivided into a set of one or more slices (preferably a plurality of slices). The method is configured to provide slice type information (e.g., "SliceType") indicating whether the slice was encoded using an independent encoding mode (e.g., "Intra"), where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uni-prediction mode (e.g., "P"), where there is a prediction of a block of pixels based on one block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously encoded frame), or using a bi-directional prediction mode (e.g., "B"), where there is a prediction of a block of pixels based on two blocks of pixels of one or more previous frames (e.g., a previously encoded frame). The method includes a step of providing an encoded representation of a binary sequence (e.g., describing transform coefficients of the image content) based on the binary sequence (the binary sequence may represent transform coefficients or spectral coefficients, parameters, or any other information).

[0087] The method includes, for example, determining a first window size, which may be represented by a window size variable (e.g., w a ) to, for example, the previously encoded binary value x t-1 ,x t-2 ,..., and may be designated, for example, as a "counter variable" or "counter"; t). The first source statistic may be determined, for example, based on a previously encoded binary sequence. The method also includes determining a second window size (e.g., w b ) to encode, for example, the binary value x t-1 ,x t-2 A second source statistic (e.g., b t The method also includes determining a second source statistic (e.g., a ). The second source statistic may be determined, for example, based on the previously encoded binary sequence. t ), and based on a second source statistic (e.g., b t ), based on the join source statistics (for example,

number

[0088] One embodiment creates a method for encoding video content, the method including a step of encoding a plurality of video frames (e.g., a sequence of video frames), the method including a step of encoding the video frames subdivided into a set of one or more slices (preferably a plurality of slices). The method is configured to provide slice type information (e.g., "SliceType") indicating whether the slice was encoded using an independent encoding mode (e.g., "Intra"), where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uni-prediction mode (e.g., "P"), where there is a prediction of a block of pixels based on a block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously encoded frame), or using a bi-directional prediction mode (e.g., "B"), where there is a prediction of a block of pixels based on two or more blocks of pixels of one or more previous frames (e.g., a previously encoded frame). The method includes a step of providing an encoded representation of a binary sequence (e.g., describing transform coefficients of the image content) based on the binary sequence (the binary sequence may represent transform coefficients or spectral coefficients, parameters, or any other information). The method includes determining a first window size, which may be represented by a window size variable (e.g., w a ) to, for example, the previously encoded binary value x t-1 ,x t-2 ,..., and may be designated, for example, as a "counter variable" or "counter"; t ) The first source statistic may be determined, for example, based on a previously encoded binary sequence. The method further comprises determining a joint source statistic (e.g.,

number

[0089] It should be noted that all methods described in this specification can be optionally supplemented by any of the features, functions and details described for the corresponding apparatus (e.g., video encoder and video decoder), both individually and in combination. Also, the apparatus can be applied in parallel with the method. In other words, the description of the apparatus or function box also corresponds to the description of the method or method steps.

[0090] Another embodiment according to the invention provides for creating a computer program for performing at least one of the methods described herein when the computer program is run on a computer.

[0091] One embodiment according to the invention creates a video bitstream that includes an encoded representation of a binary sequence representing video content and configuration information describing a configuration of a video decoder used to reconstruct the video content based on the encoded representation of the binary sequence. The configuration information is based on a frequency of previously decoded binary values ​​and includes a first source statistic (e.g., a frequency of a first source statistic) that is used to determine one or more range values ​​of an interval subdivision. t The configuration information includes a window size information (e.g., “ws_flag”) that describes a window size used by the video decoder to determine the one or more range values ​​used to map the coded representation of the binary sequence to a decoded binary sequence. The configuration information includes a second source statistic (e.g., b t), which describes the window size used by the video decoder to determine

[0092] In a preferred embodiment of the video bitstream, the video bitstream also includes initialization value information describing initialization values ​​for the first source statistic and / or the second source statistic.

[0093] In a preferred embodiment of the video stream, the video bitstream further includes a window resize flag (eg, ctu_ws_flag) that indicates whether the window size should be increased or decreased (eg, within a slice).

[0094] The video stream can be supplemented with any of the features or details described in this specification, both individually and in combination.

[0095] It should be noted that the terms "window size", "first window size" and "second window size" are used throughout this description. However, it should be noted that instead of the window size, in any of the embodiments, an estimated parameter may optionally be used. Instead of the first window size, in any of the embodiments, a first estimated parameter may optionally be used. Instead of the second window size, in any of the embodiments, a second estimated parameter may optionally be used.

[0096] In other words, the first estimation parameter may be a first window size and the second estimation parameter may be a second window size.

[0097] Alternatively, the first estimation parameter may be a first inertia parameter determining how quickly a first source statistic follows a change in the frequency of decoded binary symbols of the decoded binary sequence (or in the case of an encoder, previously coded binary values), and the second estimation parameter may instead be a second inertia parameter determining how quickly a second source statistic follows a change in the frequency of decoded binary symbols of the decoded binary sequence (or in the case of an encoder, previously coded binary values).

[0098] Also, in any of the embodiments, a different notion of source statistics may optionally be used.

[0099] For example, the video decoder may be configured to determine a first source statistic using a table lookup, where a table entry is selected in response to the previously determined source statistic, the previously decoded binary value, and the first estimation parameter. Alternatively, or in addition, the video decoder may be configured to determine a second source statistic using a table lookup, where a table entry is selected in response to the previously determined source statistic, the previously decoded binary value, and the second estimation parameter.

[0100] A similar concept may optionally be used in a video encoder, where previously encoded binary values ​​may take the role of previously decoded binary values.

[0101] Embodiments in accordance with the present invention will now be described with reference to the accompanying drawings, in which: [Brief description of the drawings]

[0102] [Figure 1] 2 is a block schematic diagram of a video decoder according to an embodiment of the present invention; [Figure 2 (1)] 4 is a block schematic diagram of a video decoder according to another embodiment of the present invention; [Figure 2 (2)] 4 is a block schematic diagram of a video decoder according to another embodiment of the present invention; [Diagram 3] 1 is a block schematic diagram of a video encoder according to an embodiment of the present invention. Table 1 shows a representation of a bit mask of the 8-bit variable wspair. Table 2 is a graphical representation of the allocation of wspair values. Table 3 is a graphical representation of the allocation of wspair values ​​depending on ws_flag. [Figure 4] 2 is a flowchart of a method for video decoding according to an embodiment of the present invention; [Diagram 5] 1 is a flowchart of a method for video encoding according to an embodiment of the present invention; [Figure 6] 1 is a graphical representation of a bitstream according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0103] 1) The embodiment according to FIG. FIG. 1 shows a block schematic diagram of a video decoder 100 according to one embodiment of the present invention.

[0104] The video decoder 100 is configured to receive encoded video information and, based thereon, provide decoded video information (or decoded video content).

[0105] The encoded video information 110 (which may be considered a video bitstream) may include, for example, slice type information and may also include an encoded representation of a binary sequence. Optionally, the encoded video information 110 may include additional information, although this is not required for the invention.

[0106] Generally speaking, a video decoder is configured to decode a plurality of video frames (e.g., a sequence of video frames), and in particular, the video decoder is configured to decode a video frame that has been subdivided into a set of one or more slices (preferably, a plurality of slices). The video decoder is also configured to evaluate slice type information, which may be included in the encoded video information 110 and indicates whether the slice was encoded using an independent coding mode, where there is no prediction of the video content of a current frame based on the video content of a previous frame, or using a uni-prediction mode, where there is prediction of a block of pixels based on one block of pixels of a previous frame, or using a bi-directional prediction mode, where there is prediction of a block of pixels based on two or more blocks of pixels of one or more previous frames, to select an operational mode for decoding the slice (which may be performed, for example, by a “video reconstruction” block 180).

[0107] The video decoder 100 includes an arithmetic decoder 120 configured to provide a decoded binary sequence 122 (for use in a "video reconstruction" block) based on a coded representation of a binary sequence, e.g., included in the coded video information 110. The arithmetic decoder preferably includes a first source statistics determination 130 and a second source statistics determination 140. The arithmetic decoder 120 is thus configured to determine the first source statistics 132 using a first window size and the second source statistics 142 using a second window size. The arithmetic decoder also preferably includes a combiner 150. The arithmetic decoder is thus configured to determine a combined source statistics 152 based on the first source fixed values ​​and the second source statistics. The arithmetic decoder 120 also preferably includes a range value determination 160. Thus, the arithmetic decoder may be configured to determine, based on the combined source statistics 152, one or more range values ​​of interval subdivisions used to map the coded representation of the binary sequence (contained in the coded video information 110) to the decoded binary sequence 122 (used in the video reconstruction block 180).

[0108] Preferably, the arithmetic decoder 120 also includes an arithmetic decoding core 170 (which may be, for example, a block or unit) that receives one or more range values ​​162 from the range value determination 160 and uses the range values ​​to derive a decoded binary sequence 122 from the encoded binary sequence included in the encoded video information 110.

[0109] The video decoder may also include, for example, a video reconstruction block (or unit) 180, which receives the decoded binary sequence 122 and provides the decoded video content 112 based on the decoded binary sequence 122 (possibly taking into account additional control information, such as slice type information).

[0110] In conclusion, the arithmetic decoder 100 receives the coded video information 110 and performs arithmetic decoding of the coded representation of the binary sequence in order to derive the decoded binary sequence 122. The arithmetic decoding utilizes knowledge about the probabilities of the binary values ​​of the decoded binary sequence 122. This knowledge about the probabilities (or estimated probabilities) of the binary values ​​in the decoded binary sequence 122 is taken into account by the arithmetic decoding core 170 by relying on the range values ​​162 that define the interval subdivisions. In brief, the arithmetic decoding core can use the range values ​​162 to define different intervals (e.g., between 0 and 1, or over a range of integer values). The arithmetic decoding core can, for example, interpret the coded representation of the binary sequence as a representation of a number that is in one of the intervals defined using the range values. By knowing which interval the number represented by the coded representation of the binary sequence is in, the arithmetic decoding core 170 can conclude which bits or which bit sequences were coded using the coded representation of the binary sequence.

[0111] However, it should be noted that the description of the arithmetic decoding core 170 is only to be considered as a very brief and general description. Details regarding the arithmetic decoding core can be found, for example, in the standards H.264 and H.265. However, different concepts (about the operation of the arithmetic decoding core) are also found in the literature, and the details of the arithmetic decoding core are not particularly relevant to the present invention.

[0112] However, in order to obtain a suitable range value (enabling high bitrate efficiency), the arithmetic decoder 120 (or, generally speaking, a video decoder) uses different window sizes to determine the two source statistics 132, 142 (the "window size" defines the degree of smoothing over the multiple decoded binary values ​​of the decoded binary sequence 122). Also, in order to increase the reliability of the range value provided to the arithmetic decoding core 170, the first source statistics 132 and the second source statistics 142 are combined into a combined source statistics 152.

[0113] Therefore, it can be said that the video decoder 100 provides high efficiency because the range values ​​used by the arithmetic decoding core 170 are well adapted to the actual probabilities of bit values ​​(e.g., bit values ​​“0” and “1” in the decoded binary sequence 122).

[0114] As an aside, it should be noted that the video decoder 100 can also be modified. In an alternative implementation, the second source statistics determination 140 can be replaced by the provision of a fixed value (which may be independent of the decoded binary sequence but may depend on one or more parameters). In this case, the arithmetic decoder is configured to combine the first source statistics 132 with a fixed non-zero value to obtain the combined source statistics 152. It has been found that such a simplification may in some cases provide good results and may, for example, avoid inappropriately large fluctuations in the combined source statistics. In other words, by introducing a fixed contribution to the determination of the combined source statistics, it may be achieved that the combined source statistics cannot deviate too much from this fixed value. Thus, some "hindsight" into the statistics of the decoded binary sequence may be used to avoid a significant decrease in coding efficiency in case there happens to be a longer sequence of identical bit values ​​in the decoded binary sequence 122.

[0115] As an additional remark, it should be noted that the functions of the arithmetic decoder (and individual blocks of the arithmetic decoder) may generally also be considered as functions of the video decoder in their entirety, i.e. functions described herein as functions of the arithmetic decoder may also be performed by other blocks of the video decoder.

[0116] It should also be noted that the video decoder 100 according to FIG. 1 may be supplemented by any of the features, functions and details described in this specification, both individually and in combination.

[0117] 2) Video decoder according to Fig. 2 FIG. 2 shows a block schematic diagram of a video decoder 200 according to one embodiment of the present invention.

[0118] The video decoder 200 is configured to receive encoded video information 210 (e.g., a video bitstream) and, based thereon, provide decoded video content 212 (e.g., a sequence of video frames). The encoded video information 210 may include, for example, slice type information, as described herein. The encoded video information 210 may further include configuration information, which may also be considered control information. The encoded video information 210 may also include encoded representations of binary sequences.

[0119] 2 shows two main blocks of the video decoder 200: an arithmetic decoder 220 and a video reconstruction 280. However, it should be noted that the distribution of the functions of the video decoder is not bound to a fixed block structure and can be modified over a wide range. It should also be noted that the actual implementation of the video decoder can have additional blocks and / or functions, which are well known to those skilled in the art.

[0120] The arithmetic decoder 220 receives the coded representation of the binary sequence 211. However, the arithmetic decoder (or a control block that may be external to the arithmetic decoder) also receives slice type information and configuration information (or control information). In particular, the arithmetic decoder 220 provides a decoded binary sequence 222 to the video reconstruction 280 based on the coded representation of the binary sequence 211 and taking into account some or all of the slice type information and the configuration information or the control information.

[0121] In the following, the function of the arithmetic decoder 220 is described in more detail. The arithmetic decoding comprises an arithmetic decoding core 270, which receives the coded representation of the binary sequence 211 and provides a decoded binary sequence 222. The arithmetic decoding core determines which bit values ​​of the decoded binary sequence 222 are represented by the coded representation of the binary sequence 211. For this purpose, the arithmetic decoding core 270 checks in which interval of the range of numbers the number represented by the coded representation of the binary sequence 211 lies. Depending on the determination in which of the intervals the number represented by the coded representation of the binary sequence 211 lies, a particular bit value or a group of bit values ​​of the decoded binary sequence 222 is recognized.

[0122] For the purpose of deriving the decoded binary sequence 222, the arithmetic decoding core receives information about the intervals, which usually correspond to some extent to the probabilities of the bit values. In this case, the arithmetic decoding core 270 receives the "range values" 262 used for the interval subdivision (i.e. the range values ​​162 that serve to define the intervals of the number ranges used by the arithmetic decoding core 270). In particular, it should be noted that the arithmetic decoding core 270 can be similar or identical to an arithmetic decoding core used, for example, in a video encoder / decoder according to the standard H.264 or a video encoder / decoder according to the standard H.265. However, it should be noted that different approaches for realizing the arithmetic decoding core 270 can also be used.

[0123] In view of the above discussion, it becomes clear that providing range values ​​262 defining the interval subdivisions for the arithmetic decoding core 270 is an important function of the arithmetic decoder 220. Generally speaking, the arithmetic decoder 220 derives these range values ​​262 from the binary values ​​decoded prior to the decoded binary sequence 222, taking into account some control information defining parameters such as, for example, initialization values, "window size", "window size adaptation", etc.

[0124] In the arithmetic decoder 200, two source statistics determination blocks (or units) 230, 240 are used. For example, a first source statistics determination block 230 determines one or more previously decoded binary values ​​(again x t The first source statistic determination block receives a first source statistic 232 based on the received first source statistic 232. The first source statistic determination block may, for example, receive a constant or variable BITS that defines the number of bits used to represent the source statistic 232. a , and a constant or variable n that defines the “window size” used by the source statistics determination block 230 a For example, the first source statistics determination block 230 can recursively determine the first source statistics 232, with a window size n a determines the weighting of the last decoded binary value of the decoded binary sequence 222 in determining the first source statistic 232.

[0125] The function of the first source statistics determination block 230 is similar to forming a sliding average with a particular window size, for example, except for the fact that a recursive algorithm is used that introduces some "infinite impulse response" properties. For this reason, the first source statistics 132 do not exactly represent the results of a sliding window summation or averaging operation, but should rather be considered as a "virtual sliding window" operation, since the results are very similar.

[0126] Also, the second source fixed value determination block 240 performs similar operations compared to the first source statistics determination block 230. However, the second source statistics determination block 240 usually performs different parameters (e.g., different window lengths n b and / or a different bitness parameter BITS b) to provide a second source statistic 242 that is typically different from the first source statistic 232. For example, one of the source statistics 232, 242 may be a short-term (or shorter-term) average source statistic and one of the source statistics 232, 242 may be a long-term (or longer-term) average source statistic.

[0127] It should be noted that the source statistics determination blocks 230, 240 may perform functions such as those defined by equations (3) and (4), which are discussed in detail below. Alternatively, the source statistics determination blocks 230, 240 may also perform functions such as those defined by equation (5), which is discussed below. It should also be noted that in some embodiments, different calculation rules may be used in the source statistics determination blocks 230, 240.

[0128] The arithmetic decoder 220 further includes a combined source statistics determination block (or unit) 250, which is configured to receive the first source statistics 232 and the second source statistics 242. The source statistics combination block 250 provides the combined source statistics 252 based thereon. For example, the source statistics combination block 250 may form a sum or an average of the first source statistics 232 and the second source statistics 242 to thereby obtain the combined source statistics 252.

[0129] However, the source statistics combination block 250 may also apply different weightings to the first source statistics 232 and the second source statistics 242 when deriving the combined source statistics 252, and the different weightings may vary within a slice or even between different slices.

[0130] For example, source statistics combination block 250 may perform the function as defined by equation (6) below, or as defined by equations (10) and (11) below, or as defined by equation (16) below, although variations on this function are also possible.

[0131] For example, in one (alternative) embodiment, the source statistics combination block 250 combines only one of the first statistics with a fixed value, thereby to obtain the combined source statistics 252. Such a concept may be advantageous to avoid the combined source statistics 252 deviating too much from the expected probabilities of the binary values ​​in the decoded binary sequence 222.

[0132] The arithmetic decoder 220 is configured to derive interval subdivision range values ​​262 (provided to the arithmetic decoding core 270) based on the combined source statistics 252. This processing step may be considered, for example, as "range value determination". For example, the range value determination may include an optional value process 266, which receives the combined source statistics 252 and provides a probability value or a state index value based thereon. The value process 266 may, for example, map the range of values ​​of the combined source statistics 252 to a range between 0 and 1, or to a range between 0 and 0.5, or to an integer index value. For example, the value process 266 may be performed according to equation (7) below, or according to equations (8), (9) below, or according to equations (12), (13) below, or according to equation (14) below.

[0133] Optionally, the value processing 266 may provide information 267, which may be binary information indicating whether the next decoded value (e.g., of the decoded binary sequence 222) is more likely to take a value of “1” or a value of “0”. Optionally, the arithmetic decoder (or range value determination) may include a mapping table 269. The mapping table 269 may, for example, receive an index value (e.g., pStateIdx) that specifies a table entry. Thus, the mapping table 269 may provide one or more range values ​​262 corresponding to said table entry specified by the index value (e.g., pStateIdx). Thus, by deriving a “state index value” (e.g., pStateIdx) and evaluating the mapping table based on the state index value, one or more range values ​​of the interval subdivision may be provided based on the combined source fixed value 252.

[0134] The mapping table 269 may have the same structure as the mapping tables described, for example, in the H.264 or H.265 standards. However, the contents of the mapping table may be adapted to the specific details of the video decoder. In particular, the entries of the mapping table may be adapted to the statistical properties expected in a particular video decoder.

[0135] The arithmetic decoder (or, generally speaking, a video decoder) also includes a control block 290 that may receive control or configuration information and, based thereon, may adjust the parameters used to provide the range values ​​(and possibly other parameters as well, e.g., additional parameters used by the arithmetic decoding core 270). For example, the control block 290 may receive one or more of slice type information, “cabac init flag”, “ws_flag”, and “ctu_ws_flag”, which may be included in the coded video information 210.

[0136] The control 290 may also, for example, adjust the window size parameter n a , n band bit size parameters BITSa, BITSb. In particular, the control block 290 may also take into account the current context model. In this regard, it should be noted that for each bit (or group of bits) of the decoded binary sequence 222 to be decoded, it may be determined which context model is used. For example, the decision of which context model is used may be based on the fact that what type of information (decoded parameters, transform coefficients, etc.) is represented by the respective bit (or group of bits). For example, the control block 290 may be configured to recognize the syntax of the decoded binary sequence 222 in order to thereby recognize which syntax element (or which part of the syntax element, e.g. the most significant bits, the least significant bits, etc.) is to be decoded next. Thus, a selection between different context models may be made. It should also be noted that the window size parameter and / or the bit size parameter and / or other parameters may be selected depending on the context model. It should further be noted that the source statistics 232, 242 or the combined source statistics 252 may be associated with a particular context model such that different source statistics or combined source statistics may be available for different context models. For example, the source statistics associated with a particular context model may be selectively provided based on the decoded binary values ​​of the decoded binary sequence 222 decoded using the respective context model. In other words, the parameter n a , n b , BITS a , BITS b Separate and independent processing, and separate (possibly independent) decisions regarding, etc., may be made for different context models.

[0137] Regarding the function of the control unit 290, the control unit determines the parameter n a , n b , BITS a , BITS bFor example, the window size parameter n a , n b may be selected in response to slice type information, and / or in response to cabac init flag, and / or in response to ws_flag, and / or in response to ctu_ws_flag. Also, the bit size parameters BITSa, BITSb are selected in response to some configuration information in some embodiments. However, in other embodiments, the bit size parameters may be fixed. See, for example, the discussion below regarding parameter adjustment.

[0138] Referring now to the video reconstruction block 280, the video reconstruction block 280 typically also receives the decoded binary sequence 222 and at least some elements of the configuration information. For example, the video reconstruction 280 may reconstruct integer parameters and / or floating point parameters and / or image data based on the decoded binary sequence 222. For example, there may be mapping rules that define how particular bits or portions of the decoded binary sequence should be mapped to integer parameters or floating point parameters or image data (e.g., transform coefficients, etc.). Thus, the video reconstruction block 280 reconstructs information used to reconstruct video frames from the decoded binary sequence 222. The video reconstruction block may then generate image information based on the reconstructed information (derived from the decoded binary sequence 222).

[0139] For example, the video reconstruction 280 may include the same functions as described in the standard H.264 or the standard H.265. However, other approaches adapted to provide a decoded video content based on a decoded binary sequence (and possibly additional configuration or control information) may also be used for the video reconstruction. Thus, the video reconstruction 280 provides a decoded video content 212, which may take the form of a sequence of video frames.

[0140] In conclusion, an overview of a video decoder according to an embodiment of the present invention has been provided. However, it should be noted that there are different implementations for the functional blocks (e.g., source statistics determination blocks 230, 240, source statistics combination block 250, value processing block 266, mapping table 269, and arithmetic decoding core 270). Also, different implementations are possible for the video reconstruction block 280 and the control block 290.

[0141] However, it should also be noted that the functional blocks described herein may be supplemented by any of the features, functions, and details disclosed in the present application in their entirety, and that the features, functions, and details disclosed in the present application may be implemented individually or in combination to thereby extend the functionality of the video decoder 200.

[0142] 3) Video Encoder according to Fig. 3 3 shows a block schematic diagram of a video encoder 300 according to an embodiment of the present invention. The video encoder 300 is configured to receive video content 310 and, based thereon, provide encoded video information (e.g., a video bitstream) 312.

[0143] The video encoder 300 includes a video binary sequence providing block 380, which is configured to receive the video content 310 in order to provide a binary sequence 322 representing the video content 310 based on the video content 310. For example, the video binary sequence providing 380 may be performed like a video encoder according to the standard H.264 or like a video encoder according to the standard H.265. However, different approaches for the provision of a video binary sequence may also be used. It should be noted that the video binary sequence providing 380 may also include, for example, a mapping of integer or floating-point parameters or image data (such as, for example, transform coefficients) to a sequence of binary values.

[0144] Additionally, the arithmetic encoder 320 may receive the binary sequence 322 and, based thereon, provide an encoded representation 311 of the binary sequence 322. Generally speaking, the arithmetic encoder 320 is configured to utilize knowledge (or information) about the probabilities of the binary values ​​in the binary sequence 322 to provide an efficiently compressed representation of the binary sequence 322 (i.e., the encoded representation 311 of the binary sequence).

[0145] The arithmetic encoder 320 may, for example, include an arithmetic coding core 370, which receives the binary sequence 322 and provides, based thereon, a coded representation 311 of the binary sequence. The arithmetic coding core 370 may need some information about the probabilities of bits (or groups of bits) in the binary sequence 322, for example, to be able to find a suitable codeword (contained in the coded representation 311) representing the bit or group of bits. Preferably, the arithmetic coding core 370 receives range values ​​362 describing subdivisions of intervals. The range values ​​362 may describe subdivisions of intervals used by the video decoder 200 (or by its arithmetic decoding core 270), and this information may of course also be useful to the arithmetic coding core 370, since the arithmetic coding core 370 provides a coded representation 311 of the binary sequence that is decodable by a corresponding video decoder.

[0146] For this purpose, the arithmetic encoder 320 calculates a window size n based on a binary sequence 322 representing the video content. a , n b or bit size information BITS a , BITS bIt should be noted that the derivation of the range value 362 is substantially identical to the derivation of the range values ​​162, 262, except for the fact that the binary sequence 322 is evaluated instead of the decoded binary sequence 222. In other words, when deriving the range value 362 based on the binary sequence 322, the previously encoded binary value is used instead of the previously decoded binary value.

[0147] As can be seen, the arithmetic encoder 320 of the video encoder includes source statistics determination blocks 330, 340 that are substantially similar to the source statistics determination blocks 130, 140, 230, 240, except for the fact that the source statistics determination blocks 330, 340 provide a first source statistic 332 and a second source statistic 342 based on previously encoded binary values ​​(rather than based on previously decoded binary values). a , n b , BITS a , and BITS b Also, the function of the source statistics determiner 330, 340 may be defined, for example, by the following equations (3) and (4) or by the following equation (5):

[0148] The arithmetic encoder 320 also includes a source statistics combination block 350, which may correspond to the source statistics combination block 150 or the source statistics combination block 250. Thus, a combined source statistics 352 is provided, the functionality of which may be according to, for example, equation (6) or equations (10) and (11) or equation (16).

[0149] The arithmetic encoder 320 also includes an optional value process 366, which may correspond to the value process 266 shown in Figure 2. The value process 366 may receive the combined source statistics 352 and may provide, for example, information 367 regarding the most probable binary value and / or probability information or state index information 368. The arithmetic encoder 320 also includes a mapping table 369, which may correspond to the mapping table 269 described with reference to Figure 2. Thus, one or more range values ​​362 of the interval subdivisions may be provided by evaluation of the mapping table 369 using the probability values ​​of the state index 368.

[0150] In conclusion, the arithmetic encoder 320 may select the range value 362 based on the binary sequence 322 in the same way that the arithmetic decoder 220 selects the range value 262 based on the decoded binary sequence 222. Thus, synchronism between the arithmetic encoder 320 of the video encoder 300 and the arithmetic decoder 220 of the video decoder 200 may be achieved, provided that there is no decoding error and the same parameters are used on the video encoder side and the video decoder side.

[0151] The arithmetic encoder 320, or generally speaking, the video encoder 300, also includes a control block 390, which controls the parameter n a , n b , BITS a , BITS b , and any other parameters that may be necessary. For example, the control block 390 may use some empirical mechanism to decide on the parameters. Alternatively (or additionally), the control block 390 may also analyze which combination of parameters results in the lowest possible bitrate (or meets any other optimal criteria).

[0152] It should also be noted that the video encoder 300 may provide some control information that controls the operation of the video decoder 200, for example in the encoded video information 312. For example, this control information (or configuration information) may include one or more of the following: slice type information, cabac init flag, ws_flag, and ctu_ws_flag. The functions of these configuration information items, as well as their possible encoding and decoding, are described below. The slice type information may be provided (e.g., by the video binary sequence provision 380) as well as a video encoder according to the standard H.264 or H.265, and may be used by the video reconstruction 180, 280 as well as a video decoder according to the standard H.264 or H.265. In addition, the slice type information may be used in the decision regarding the window size, as outlined herein.

[0153] It should also be noted that the distribution of the functional blocks may be modified. In the embodiment of Fig. 3, the arithmetic coding core 370, the source statistics determiner blocks 330, 340, the source statistics combination block 350, the value processing block 366 and the mapping table 369 and control 390 have been described as part of an arithmetic encoder. However, said blocks may also be blocks (or functions) of a video encoder in general.

[0154] It should also be noted that any of the functional blocks described with reference to FIG. 3 may be supplemented by any of the features, functions and details described in the present application in its entirety.

[0155] 4) Further embodiments and details In the following, further embodiments and details are described which may be incorporated individually or in combination into any of the embodiments disclosed herein. The details described herein may, for example, be incorporated individually and in combination into the embodiments described with reference to Figures 1, 2, and 3.

[0156] In particular, it should be noted that the use of one of the features, functions, or details disclosed in this section typically already results in an improvement, even though the use of two or more features, functions, or details may create an even better embodiment.

[0157] Generally speaking, aspects or embodiments of the present invention create a probability estimation method (or probability estimation concept) for binary arithmetic coding.

[0158] Introduction An introduction is provided below.

[0159] Context model updating is a key feature of efficient binary arithmetic entropy coders by providing the possibility to adapt the internal state of the coder to the underlying source statistics. For example, each context model is equipped with an independent probability estimation stage that provides the probability of decoding or encoding the next binary symbol (bin) assigned to this context model.

[0160] While the stochastic stage implementation of the conventional video codec H.265 / HEVC is based on a finite state machine (with 64 probability states in the range (0,0.5]), the estimator described in this paper is based on two counter variables that track source statistics of the bin-assigned sequence.

[0161] Each counter (which may, for example, implement a source statistic determiner 130, 140, 230, 240, 330, 340) determines how much a number of past binary symbols (e.g., previously encoded or previously decoded binary values ​​that were encoded or decoded using the context model for which the source statistic was determined) affects the count (or, generally speaking, the value of the source statistic).

number

number

number

number

number

number

number

[0162] Implementation details Below, some implementation details are described.

[0163] The implementation (e.g., of the source statistics determination block) must be able to

number

[0164] Furthermore, the set of possible window sizes is limited to allow for simplification of arithmetic operations.

number

[0165] in this case(

number

number

number

number

number

[0166] As an alternative, equations (3) and (4) may be replaced with an update calculation that distinguishes the values ​​of the binary symbols.

number

[0167] By using different update rules for different symbol values ​​(as shown in line 2 of equation (5)), we abolish the clipping operation in equation 4.

[0168] It should be noted that the two methods of implementing the virtual sliding window approach in equations (3) and (4) or (5) do not derive identical bitstreams due to the right-shift operation.

[0169] It should also be noted that the operations according to equations (3) and (4) or according to equation (5) may be performed by a source statistics determiner as described herein, however, in some embodiments the source statistics determiner may also perform a different function (e.g., according to equation (1)).

[0170] The output of the probability estimator (e.g., a joint source statistic) is calculated by weighting the counters (e.g., source statistics) resulting from the update method from either equation (4) or equation (5) (or other methods).

number

[0171] The weighted result from equation (6) (which can be considered as a combined source statistic)

number

number

number

[0172] A counter-based probability estimator is, for example, a method for estimating the values ​​of a binary sequence in the range (0,1).

number

number

number

[0173] However, the probability value p t It should be noted that the calculation of (or p(0) or P(1)) is not required in all embodiments.

[0174] Unlike counter-based probability estimators, the probability estimation of the H.265 / HEVC finite state machine is performed using a combination of two variables. The first variable

number

number

[0175] For this reason, for example, when a conventional mapping table or a mapping table with a conventional structure (such as an H.264 or H.265 video encoder or decoder) is used, it may be recommended to use the mapping when the (conventional) finite state machine is replaced with a counter-based probability estimator [3]. In other words, when the combined source statistics are determined as described herein (e.g., using equations (3) to (6) or similar equations extended below), it may be recommended (but not required) to map the combined source statistics to an index value (e.g., pStateIdx) of the mapping table (e.g., in optional value processing). This allows the use of a conventional mapping table. On the other hand, the mapping table (which provides range values ​​of interval subdivisions) may be appropriately adapted and such mapping may not be necessary.

[0176] State Index

number

number

number

number

number

number

[0177] (For example, using the combined source statistics or the probability value p t The table can be extended to include pre-computed range values ​​of the interval subdivisions to cover the entire probability interval (0,1) (so that a table entry in the mapping table can be directly selected using p(0) or p(1)), or the table can be omitted and the range values ​​calculated on the fly using arithmetic (e.g., based on the joint source statistics, or based on the probability values ​​pt or p(0) or p(1)).

[0178] In other words, there are many different ways to derive the range value of the interval subdivision of the arithmetic decoding core based on the combined source statistics. If a conventional mapping table is used, the calculation according to formulas (8) and (9) is recommended. Alternatively, if a modified mapping table is used, or if the range value is derived from the combined source statistics using some calculation rule, the calculation according to formulas (8) and (9) may be omitted.

[0179] Aspects of the invention - variable resolution of counter variables Below, one aspect of the invention is described that may optionally be used in any embodiment according to the invention.

[0180] Traditional integer implementations of counter-based probability estimators are limited by the precision of the counter.

number

[0181] To optimize the trade-off between memory consumption and coding efficiency,

number

[0182] Thus, the counter variable (eg, source statistic) may be modified, for example, before the weighting operation (eg, source statistic combination) from equation (6) is applied.

number

number

number

number

number

number

number

number

number

number

[0183] The counter variables in equations (1), (3), and (5)

number

number

number

number

[0184] In a previous publication [1], the window size was assumed to be the same for all context models, independent of any other parameters of the video codec, i.e.,

number

[0185] According to one aspect of the invention, the window size pair for each context model is set to a value in the range [1,11], inclusive, depending on the context model, the cabac init flag, and the slice type. A custom value for (for example, n a and / or n b )

[0186] The cabac init flag is part of H.265 / HEVC and is called "cabac_init_flag"[2].

[0187] Three slice types are defined, which are usually called B, P, or Intra prediction slices. For every combination of slice type and 'cabac_init_flag' for each context model (e.g., in a predefined table), a pair of 'initValue's are defined, which are used to derive the initial probability state, in the same way as 'initValue' in [2].

number

[0188] In implementations using integer arithmetic, the window size value for one context model (e.g., n a and n b ) may be stored in read-only memory, for example as an 8-bit variable,

number

number

number

[0189] [Table 1] In addition, as shown in Table 1

number

number

[0190] The exact nature of one context model (which can be implemented by a control block)

number

[0191] [Table 2] For example, ws pair0 , ws pair1 , and ws pair2 Three predefined values, ws pair It can be seen that there is.

[0192] Based on the "Slice Type" information and based on the so-called "cabac init flag", one of these predefined values ​​wspair is selected (e.g., by a control block) (which may optionally also determine the initialization values ​​of source statistics and / or other variables of the video encoder or video decoder). For example, if the slice type is bidirectionally predicted ("B"), the "cabac init flag" is set to na and n b (or w a and w b ) to determine the two predefined values ​​ws pair0 and ws pair1 Similarly, if the slice type is uni-predictive ("P"), the "cabac init flag" may determine which of n a and n b (or w a and w b ) to determine the two predefined values ​​ws pair0 and ws pair1 , which of the two values ​​is actually used (compared to the case of bidirectional prediction slice type, the value of the cabac init flag and the predefined value ws pair0 and ws pair1 If the slice is coded using the independent coding mode ("Intra"), the cabac init flag is active and has the predefined value ws pair2 can always be used.

[0193] It should be noted that Table 2 represents only the context model, and different tables may be used for different context models (eg, the entire process of range value determination may work independently for different context models).

[0194] The context models should be initialized with the intended window size before decoding or encoding the first bin. The initialization process is performed at the same time that the initial probability states / counts of each context model are set.

[0195] Embodiment In the following, embodiments and further aspects are described. The embodiments mentioned in this section can be used individually and, optionally, can be supplemented by any of the features, functions and details described herein.

[0196] It should also be noted that all video decoders and video encoders disclosed in this specification may be optionally supplemented, individually or in combination, with any of the features, functions and details described below. Also, the features of the video decoders and video encoders described in the specification may be optionally replaced with any of the features, functions and details described below.

[0197] (a) In a preferred embodiment of the present invention, each context model has two

number

number

number

[0198] (b) In another preferred embodiment of the present invention, the probability estimation method (or concept) is configured identically to embodiment (a), but the updating of the counter variable (or source statistic) is performed using equations (3) and (4).

[0199] (c) In another preferred embodiment of the present invention, the probability estimation method (or concept) is configured identically to embodiment (a), but equation (14) is used to derive a state index, which addresses a table (e.g., a mapping table to provide range values) with pre-computed range values ​​covering the entire probability interval (0,1).

[0200] (d) In another preferred embodiment of the present invention, the probability estimator (e.g., source statistics determination block) is configured as specified in embodiment (a), but the individual counters of the context model (or the two source statistics of each context model) are not weighted equally as in equation (11). Instead, the weighting operation is

number

number

number

[0201] (e) In another preferred embodiment of the present invention, the probability estimation method (e.g., source statistics determination block) is configured as in embodiment (d), but the weighting of the individual counters (e.g., of the two source statistics) is changed during the encoding or decoding process.

[0202] (f) In another preferred embodiment, the probability estimator (or source statistics determination block) is configured the same as in embodiment (a), but the set of available window sizes is:

number

number

number

[0203] (g) In another preferred embodiment, the probability estimator (or source statistics determination block) is configured as specified in embodiment (f), but the number of valid combinations is manually selected.

number

[0204] (h) In another preferred embodiment, the probability estimator (or source statistics determination block) is configured as specified in embodiment (f), but the number of valid combinations is:

number

number

number

[0205] (i) In another preferred embodiment, the probability estimator (or source statistics determination block) is configured as specified in embodiment (h), but the set of valid window size combinations is

number

number

[0206] (j) In another preferred embodiment of the present invention, the probability estimation method or concept (or source statistic determination block) is configured as in embodiment (a), but the resolution of the counters (or the resolution of the source statistics) is not equal. For example:

number

number

[0207] (k) In another preferred embodiment of the present invention, the probability estimation method or concept is configured as in embodiment (j), but with the resolution of the counter (or source statistic)

number

number

number

[0208] (l) In another preferred embodiment of the present invention, the probability estimation method or concept is configured as in embodiment (j), but for one context model

number

[0209] (m) In another preferred embodiment, the probability estimator (e.g., source statistics determination block) is configured as described in embodiment (l), but

number

number

[0210] (n) In another preferred embodiment, the probability estimator (e.g., source statistics determination block) is configured as described in embodiment (a), but the window size of one counter is set to infinity. Thus, the count is not updated, and the complexity can be reduced in terms of arithmetic operations and memory consumption. For example, one of the source statistics can be replaced with a fixed value. Thus, the combined source statistics can be obtained by combining one of the source statistics with the fixed value.

[0211] (o) In another preferred embodiment, the probability estimator (e.g., source statistics determination block) is configured as described in embodiment (a), but the context model is initialized according to a separate flag transmitted for each slice (e.g., provided by the video encoder and evaluated by the video decoder). Instead of initializing the window size according to the slice type and the cabac init flag, the window size is initialized according to the set used (e.g., n a and n b A separate flag "ws_flag" is introduced to specify the value of the scalar (value of scalar). As a result, the assignments in Table 2 are extended as shown in Table 3.

[0212] [Table 3] For example, for each slice, it is possible to choose between two sets of window sizes depending on a "ws_flag" or parameter included in the video bitstream (eg, as control or configuration information).

[0213] For this purpose, the control block (or in general, the video encoder or video decoder) evaluates, for example, the ws flag and adjusts the window size depending on the ws flag (usually also depending on the slice type, which is typically also included in the video bitstream as control or configuration information, either for each slice or for selected slices).

[0214] (p) In another preferred embodiment, the probability estimator (e.g., source statistics determination block) is configured as described in embodiment (a), but the initialization of the window size is further dependent on the time level of the current slice. As a result,

number

[0215] (q) In another preferred embodiment, the probability estimator (e.g., source statistics determination block) is configured as described in embodiment (a), but the initialization of the window size further depends on the quantization parameter of the current slice. Thus, the control block (or the video encoder or decoder) may be configured to take into account the quantization parameter of the current slice, for example, when determining the window size.

[0216] (r) In another preferred embodiment, the probability estimator (e.g., source statistics determination block) is configured as described in embodiment (p), but the initialization further depends on the quantization parameter. As a result,

number

[0217] (s) In another preferred embodiment of the present invention, the probability estimation method or concept (e.g., source statistics determination block) is configured identically to embodiment (a), but the window size variable is changed during the decoding or encoding process depending on the position (e.g., within a slice and / or between different slices and / or between different frames).

[0218] For example, if the current bin comes from a CTU (coding tree unit) that is part of the first column or first row of a slice, then the window size (e.g., n a and n b ) is set as follows:

number

[0219] When the encoding process of the first row of the CTU or the first column of the CTU is completed, the window size is set to its default value (e.g., according to one of Tables 2 and 3, for example as defined based on the slice type and any other parameters or flags that may be considered).

[0220] By varying the window size, the probability estimator can adapt faster or slower to the underlying statistics of the source bin sequence at the beginning of a slice or row of a CTU.

[0221] (t) In another preferred embodiment of the present invention, the probability estimation method or concept (e.g., source statistics determination block) is configured the same as in embodiment (a), but an additional flag is used (e.g., provided by the video encoder and evaluated by the video decoder) to change the window size during the decoding or encoding of the slice. In this embodiment, for example, the probability estimation method or concept (e.g., source statistics determination block) is configured the same as in embodiment (a), but an additional flag is used (e.g., provided by the video encoder and evaluated by the video decoder) to change the window size during the decoding or encoding of the slice.

number

number

[0222] (u) In another preferred embodiment of the present invention, the probability estimation method or concept (e.g., source statistics determination block) is configured identically to embodiment (t), but only the window size of a subset of all context models is changed depending on ctu_ws_flag.

[0223] 5) Method according to Figure 4 FIG. 4 illustrates a flow chart of a method 400 according to one embodiment of the present invention.

[0224] It should be noted that the method 400 may optionally be supplemented by any of the features, functions and details described herein with respect to the corresponding apparatus, both individually and in combination.

[0225] It should also be noted that if the combined source statistic is obtained by combining the first source statistic with a fixed non-zero value, there is no need to calculate the second source statistic.

[0226] 6) Method according to Figure 5 FIG. 5 shows a flow chart of a method 500 according to one embodiment of the present invention.

[0227] It should be noted that the method 500 may optionally be supplemented by any of the features, functions and details described herein with respect to the corresponding apparatus, both individually and in combination.

[0228] It should also be noted that if the combined source statistic is obtained by combining the first source statistic with a fixed non-zero value, there is no need to calculate the second source statistic.

[0229] 7) Video stream according to Fig. 6 FIG. 6 shows a schematic (simplified) representation of a video stream (bitstream) according to one embodiment of the present invention.

[0230] It should be noted that the video stream 600 may optionally be supplemented with any of the features and details described herein, both individually and in combination.

[0231] 8) Conclusion In conclusion, a probability estimation method and apparatus for binary arithmetic coding has been described, which may be used, for example, in video encoders, video decoders, as well as image encoders, image decoders, audio encoders, audio decoders, and the like.

[0232] These methods and apparatus are advantageous over conventional solutions.

[0233] For example, [4] describes custom window sizes defined for each context model. However, the window sizes are not derived depending on the slice type or the cabac init flag. Two pairs of window sizes are defined for each context model, and a quantization parameter is used to select one pair. Furthermore, different ranges of window sizes are provided.

[0234] [5] describes a comparable alternative to the claimed fast attack mode. It describes that an additional pair of window sizes are defined for the first 64 bins assigned to a context model. After the first 64 bins are decoded or encoded, the window size is set to its default value. This approach requires a separate counter variable to track the number of bins encoded per context model.

[0235] 9) Alternative implementation examples Although some aspects have been described in the context of an apparatus, it will be apparent that these aspects also represent a description of a corresponding method, with blocks or devices corresponding to method steps or features of method steps. Similarly, aspects described in the context of a method step 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 performed by (or using) a hardware apparatus, such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such an apparatus.

[0236] The encoded video signal (or data stream or video bitstream) of the present invention can be stored on a digital storage medium or transmitted over a transmission medium, such as a wireless or wired transmission medium, such as the Internet.

[0237] Depending on specific implementation requirements, the embodiments of the present invention can be implemented in hardware or software. The implementation can be carried out using a digital storage medium, such as a floppy disk, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory, on which electronically readable control signals are stored, which cooperate (or can cooperate) with a programmable computer system so that the respective method is executed. The digital storage medium can therefore be computer readable.

[0238] Some embodiments according to the invention comprise a data carrier having electronically readable control signals capable of cooperating with a programmable computer system such that one of the methods described herein is performed.

[0239] In general, embodiments of the present invention can be implemented as a computer program product having program code which operates to perform one of the methods when the computer program product is run on a computer. The program code may for example be stored on a machine readable carrier.

[0240] Another embodiment comprises the computer program for performing one of the methods described herein, stored on a machine readable carrier.

[0241] In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.

[0242] A further embodiment of the inventive method is therefore a data carrier (or a digital storage medium or a computer readable medium) comprising and having recorded thereon a computer program for performing one of the methods described herein. The data carrier, digital storage medium or recording medium is typically tangible and / or non-transitory.

[0243] A further embodiment of the inventive method is therefore a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or sequence of signals may for example be adapted to be transferred via a data communication connection, for example via the Internet.

[0244] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.

[0245] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

[0246] Further embodiments according to the invention comprise an apparatus or a 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, etc. The apparatus or system may comprise, for example, a file server for transferring the computer program to the receiver.

[0247] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware apparatus.

[0248] The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

[0249] The apparatus described herein, or any components of the apparatus described herein, may be implemented at least in part in hardware and / or software.

[0250] The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

[0251] Any of the methods described herein, or components of the apparatus described herein, may be implemented at least in part by hardware and / or software.

[0252] The above-described embodiments merely illustrate the principles of the present invention. It is understood that modifications and variations of the arrangements and details described herein will be apparent to those skilled in the art. It is therefore intended to be limited only by the scope of the pending claims, and not by the specific details presented by the description and explanation of the embodiments herein.

[0253] Reference text [1] A. Alshin, E. Alshina, “Multi-parameter probability update for CABAC”, JCTVC-F254, Torino, July, 2011, http: / / phenix.it-sudparis.eu / jct / doc_end_user / documents / 6_Torino / wg11 / JCTVC-F254-v5.zip [2] ITU-T, Recommondation H.265(12 / 16), https: / / www.itu.int / rec / dologin_pub.asp?lang=e&id=T-REC-H.265-201612-I!!PDF-E&type=items

[0254] [3] J.Stegemann, H.Kirchhoffer, D. Marpe, T. Wiegand, “Non-CE1: Counter-based probability model update with adapted arithmetic coding engine“ , http: / / phenix.it-sudparis.eu / jct / doc_end_user / documents / 7_Geneva / wg11 / JCTVC-G547-v4.zip

[0255] [4] A.Said, M. Karczewicz, V. Seregin, H. Egilmez, L. Zhang, X. Zhao, “EE2: Arithmetic coding with context-dependent double-window adaptation response”, JVET-H0061, http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 8_Macau / wg11 / JVET-H0061-v1.zip A.Said, M. Karczewicz, V. Seregin, H. Egilmez, L. Zhang, X. Zhao, “EE2 related: Arithmetic coding with progressive context-dependent double-window adaptation response”, http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 8_Macau / wg11 / JVET-H0067-v2.zip

Claims

1. 1. A video decoder comprising at least one processor, the at least one processor comprising: Decoding the video content based on arithmetically decoding the coded representation of the binary sequence; The first source statistic a according to the following: t+1 Let us obtain [0010] Here, x t is the decoded binary value, a t is a previous version of the first source statistic, n a is the first window size parameter, [0025] BITS a is the number of bits used to represent the first source statistic; The second source statistic b according to t+1 Let us obtain [0030] Here, x t is the decoded binary value, b t is a previous version of the second source statistic, n b is the second window size parameter, [0045] BIT.S. b is the number of bits used to represent the second source statistic, Here, n b ≧(n a +3) and BITS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining one or more range values ​​for an interval subdivision based on the combined source statistics; mapping a coded representation of the binary sequence to the binary sequence using the one or more range values; A video decoder configured to:

2. The at least one processor determining a state index based on the combined source statistics; determining a value representing a most probable binary value based on said state index; determining one or more range values ​​of an interval subdivision based on said condition index; The video decoder of claim 1 further configured to:

3. The at least one processor Based on the context model, a first window size parameter, n a , and a second window size parameter, n b To determine, The video decoder of claim 1 further configured to:

4. 1. A method for decoding a video, comprising: decoding the video content based on arithmetically decoding the coded representation of the binary sequence; The first source statistic a according to the following: t+1 and [0010] Here, x t is the decoded binary value, a t is a previous version of the first source statistic, n a is the first window size parameter, [0025] BITS a is the number of bits used to represent the first source statistic; The second source statistic b according to t+1 and [0030] Here, x t is the decoded binary value, b t is a previous version of the second source statistic, n b is the second window size parameter, [0045] BIT.S. b is the number of bits used to represent the second source statistic, Here, n b ≧(n a +3) and BITS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining one or more range values ​​of an interval subdivision based on the combined source statistic; mapping a coded representation of the binary sequence to the binary sequence using the one or more range values; A method comprising:

5. The method comprises: determining a state index based on the combined source statistics; determining a value representing a most probable binary value based on said state index; determining one or more range values ​​for an interval subdivision based on the state index; The method of claim 4 further comprising:

6. The method comprises: Based on the context model, a first window size parameter, n a and a second window size parameter, n b and determining The method of claim 4 further comprising:

7. 1. A non-transitory digital storage medium having a computer program stored thereon which performs a method for decoding video when the computer program is executed by a computer, the method comprising: Decoding the video content based on arithmetic decoding of the coded representation of the binary sequence; The first source statistic a according to the following: t+1 Let us obtain [0010] Here, x t is the decoded binary value, a t is a previous version of the first source statistic, n a is the first window size parameter, [0025] BITS a is the number of bits used to represent the first source statistic; The second source statistic b according to t+1 Get [0030] Here, x t is the decoded binary value, b t is a previous version of the second source statistic, n b is the second window size parameter, [0045] BIT.S. b is the number of bits used to represent the second source statistic, Here, n b ≧(n a +3) and BITS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining one or more range values ​​for an interval subdivision based on the combined source statistics; mapping a coded representation of the binary sequence to the binary sequence using the one or more range values; A non-transitory digital storage medium containing instructions.

8. The method for decoding the video is determining a state index based on the combined source statistics; determining a value representing a most probable binary value based on said state index; determining one or more range values ​​for an interval subdivision based on the state index; The non-transitory digital storage medium of claim 7 , further comprising:

9. The method for decoding the video is Based on the context model, a first window size parameter, n a , and a second window size parameter, n b and determining The non-transitory digital storage medium of claim 7 , further comprising:

10. 1. A video encoder comprising at least one processor, the at least one processor comprising: encoding the video content based on an arithmetic encoding of the coded representation of the binary sequence; The first source statistic a according to the following: t+1 Let us obtain [0010] Here, x t is the encoded binary value, a t is a previous version of the first source statistic, n a is the first window size parameter, [0025] BITS a is the number of bits used to represent the first source statistic; The second source statistic b according to t+1 Let us obtain [0030] Here, x t is the encoded binary value, b t is a previous version of the second source statistic, n b is the second window size parameter, [0045] BIT.S. b is the number of bits used to represent the second source statistic, Here, n b ≧(n a +3) and BITS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining one or more range values ​​for an interval subdivision based on the combined source statistics; mapping the binary sequence to a coded representation of the binary sequence using the one or more range values; A video encoder including instructions.

11. The at least one processor determining a state index based on the combined source statistics; determining a value representing a most probable binary value based on said state index; determining one or more range values ​​of an interval subdivision based on said condition index; The video encoder of claim 10 further configured to:

12. The at least one processor Based on a context model, the first window size parameter, n a , and the second window size parameter, n b To determine, The video encoder of claim 10 further configured to:

13. 1. A method for encoding video, comprising the steps of: encoding the video content based on an arithmetic encoding of the coded representation of the binary sequence; The first source statistic a according to the following: t+1 and [0010] Here, x t is the encoded binary value, a t is a previous version of the first source statistic, n a is the first window size parameter, [0025] BITS a is the number of bits used to represent the first source statistic; The second source statistic b according to t+1 and [0030] Here, x t is the encoded binary value, b t is a previous version of the second source statistic, n b is the second window size parameter, [0045] BIT.S. b is the number of bits used to represent the second source statistic, Here, n b ≧(n a +3) and BITS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining one or more range values ​​for an interval subdivision based on the combined source statistics; mapping the binary sequence to a coded representation of the binary sequence using the one or more range values; A method comprising:

14. The method comprises: determining a state index based on the combined source statistics; determining a value representing a most probable binary value based on said state index; determining one or more range values ​​for an interval subdivision based on the state index; The method of claim 13 further comprising:

15. The method comprises: Based on the context model, a first window size parameter, n a and a second window size parameter, n b and determining The method of claim 13 further comprising:

Citation Information

Patent Citations

  • Advanced arithmetic coder

    WO2016196307A1