Video decoder, video encoder, method for decoding video content, method for encoding video content, computer program, and video bitstream

JP7793839B2Active Publication Date: 2026-01-05FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV

Patent Information

Application Number
JP2025075709
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-03-29
Filing Date
2025-04-30
Publication Date
2026-01-05
Estimated Expiration
2039-03-29

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies face challenges in achieving optimal coding efficiency through arithmetic coding due to inadequate information about the probabilities of '0' and '1', which affects the accuracy of interval subdivisions.

Method used

A video decoder and encoder that utilize a video frame subdivided into slices, evaluating slice type information to determine first and second window sizes for arithmetic decoding and encoding, respectively, to refine source statistics and interval subdivisions based on previously decoded or encoded binary sequences, adjusting window sizes and statistics to improve coding efficiency.

Benefits of technology

Enhances coding efficiency by accurately adapting to changing probabilities, improving the reliability and computational efficiency of arithmetic coding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007793839000209
    Figure 0007793839000209
  • Figure 0007793839000210
    Figure 0007793839000210
  • Figure 0007793839000211
    Figure 0007793839000211
Patent Text Reader

Abstract

To provide 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 for implementing arithmetic encoding and decoding with optimal coding efficiency.SOLUTION: A video decoder comprises an arithmetic decoder for providing a decoded binary sequence on the basis of an encoded representation of a binary sequence. The arithmetic decoder is configured to determine a first source statistic value using a first estimation parameter and to determine a second source statistic value using a second estimation parameter. The arithmetic decoder is configured to determine a combined source statistic value on the basis of the first source statistic value (at) and on the basis of the second source statistic value. The arithmetic decoder is configured to determine one or more range values for an interval subdivision, which is used for mapping the encoded representation of the binary sequence onto the decoded binary sequence, on the basis of the combined source statistic value.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] SUMMARY OF THE INVENTION Embodiments according to the present 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, as well as image encoders, image decoders, audio encoders, audio decoders, etc. [Background technology]

[0003] Arithmetic coding and decoding have proven to be a valuable tool in encoding and decoding audio and video content. For example, it is possible to exploit the known probabilities 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 accurately adapt to changing probabilities.

[0004] However, to achieve optimal coding efficiency in arithmetic coding and decoding, it is important to have adequate information about the probabilities of "0" and "1" that closely reflect their actual occurrence. Knowledge about the probabilities of "0" and "1" (or generally about the probabilities of the symbols to be coded) is typically used to adjust interval boundaries within the total range of values ​​to obtain interval subdivisions (e.g., so that the total 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 uniprediction 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 bidirectional 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 a mode of operation 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 decode (for example, the previously decoded binary value x t-1 ,x t-2 ,...) (and also designated as "counter variables" or "counters") t), and based on, for example, a previously decoded binary sequence, determine a second window size (for example, w b ) to find the previously decoded binary value x t-1 ,x t-2 ,...) second source statistics (e.g., b t The arithmetic decoder is 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, and the first and second window sizes may be, for example, in the range of 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 window size and the second window size 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 being 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 being 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 statistics (a t+1 ) to obtain the previously decoded binary value (say x t )) according to 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 additionally, 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 configured to determine

number

number

number

number

number

number

[0016] The first and second source statistics are updated using the parameter BITS a / b and n a / b Note that only the difference is t and b t 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 represents 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 calculates the first source statistic a according to: t+1 configured to determine

number

number

[0020] Alternatively, or additionally, the video decoder may calculate a second source statistic b according to: t+1 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 configured to determine

number

number

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 change the weights during the decoding process).

[0025] In a preferred embodiment of the video decoder, the video decoder calculates a first source statistic (e.g., a t ) and second source statistics (e.g., b t ) to represent different numbers of bits (e.g., BITS a , BITS b ) is configured to use

[0026] In a preferred embodiment of the video decoder, the video decoder calculates a first source statistic (e.g., a t ) and second source statistics (e.g., b t ), and the video decoder is configured to use a relatively large number of bits to represent the source statistics with a relatively large window size and a relatively small number of bits to represent the source statistics with 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

number

number

number

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

number

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 variations 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 depending on 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 depending on another initialization flag (e.g., "cabac init flag") included in the bitstream.

[0033] In preferred embodiments 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 with 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 with 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 a normal value) when decoding a binary value associated with a start position (e.g., a first row of a block of pixels or a 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 increase or decrease at least one of the window sizes in response to the signal flag (e.g., increase or decrease only one of the window sizes in response to the signal flag, or all window sizes together, even for different context models, while being careful not to exceed a maximum range of window sizes). Alternatively, it is possible to increase or decrease the window sizes for only 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, as well as for decoding multiple binary values ​​of the binary sequence) and calculates the first source statistics (e.g., a) to obtain a combined source statistics. 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 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 is configured to select the following:

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

number

number

[0044] Another embodiment according to the present 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 multiple slices). To select a mode of operation 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 video content of a current frame based on video content of a previous frame, or using a uniprediction mode (e.g., "P"), where there is prediction of blocks 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 bidirectional prediction mode ("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). The video decoder includes an arithmetic decoder for providing a decoded binary sequence (e.g., describing transform coefficients of image content) based on the coded representation of the binary sequence. The arithmetic decoder may, for example, select 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 ,..., which may also be designated as a "counter variable" or "counter"). The arithmetic decoder may determine a first source statistic based on, for example, a previously decoded binary sequence. The arithmetic decoder may determine a combined source statistic (e.g.,

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 present invention provides a video encoder, the video encoder being 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 is 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 uniprediction mode (e.g., “P”), where there is prediction of blocks of pixels based on pixels of one block (e.g., pixels of only one block) of a previous frame (e.g., a previously coded frame), or using a bidirectional 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 coded frames). The video encoder includes an arithmetic encoder for providing a coded 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 describing the content of a frame of video content to be coded). 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 , ..., and may also be designated, for example, as a "counter variable" or a "counter." The video encoder may, for example, determine the first source statistic based on a previously encoded binary sequence. The arithmetic encoder or video encoder may determine a second window size (e.g., w b ) to find, for example, the previously encoded binary value x t-1 ,x t-2 ,..., a second source statistic (e.g., b tThe arithmetic encoder or 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 (e.g., the first window size and the second window size may be, for example, two different values ​​in the range of 1 to 11, inclusive) depending on the slice type information.

[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 also in response to the 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, and the initialization flag 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 a transform coefficient or one or more least significant bits of a transform coefficient 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 statistics (a t+1 ), we use the previously encoded binary value (say x t )) according to 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 statistics according to: t+1 is configured to obtain

number

number

[0052] Alternatively, or additionally, 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 a t+1 (for encoding) the first source statistic a according to t+1 configured to determine

number

number

number

[0055] Alternatively, or additionally, the video encoder may calculate 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 calculates the first source statistic a according to: t+1 configured to determine

number

number

[0057] Alternatively, or additionally, the video encoder may calculate a second source statistic b according to: t+1 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 configured to determine

number

number

[0059] Alternatively, or additionally, the video encoder may calculate 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 second source statistics (e.g., b t ) to represent different numbers of bits (e.g., BITS a , BITS b ) is configured to use

[0064] In a preferred embodiment of the video encoder, the video encoder comprises: t ) and second source statistics (e.g., b t ), and the video encoder is configured to use a relatively large number of bits to represent the source statistics with a relatively large window size and a relatively small number of bits to represent the source statistics with 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

number

number

number

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

number

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 statistics (e.g., a t ) and second source statistics (e.g., b t ) is constant across different context models (or independent in the case of variations 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 window size and the second window size (possibly in addition to other configuration information such as slice type), and the video encoder is configured to include in the bitstream 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 coded 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 coded 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 starting value (preferably smaller than a normal value) when decoding a binary value associated with a starting 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 starting value) when encoding a binary value associated with a position that is at least a predetermined position away from the starting 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 multiple coding tree units (or possibly all coding tree units), the signal flag indicating whether to increase or decrease at least one of the window sizes (e.g., increase or decrease all window sizes together, even for different context models, depending on the signal flag, while being careful not to exceed a maximum range of window sizes). Alternatively, the video encoder may increase or decrease 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, as well as for encoding multiple binary values ​​of the binary sequence) and calculates the first source statistics (e.g., a) to obtain a combined source statistics. t ) with a fixed non-zero substitution 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 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 determines a first window size w a and the second window size w b is configured to select the following:

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

number

number

[0082] One embodiment according to the present invention provides a video encoder, the video encoder being 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 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 uniprediction mode (e.g., "P"), where there is prediction of blocks of pixels based on pixels of one block (e.g., pixels of only one block) of a previous frame (e.g., a previously coded frame), or using a bidirectional 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 coded frames). The video encoder includes an arithmetic encoder for providing a coded representation of the binary sequence (e.g., describing transform coefficients of image content) based on the binary sequence (the binary sequence representing transform coefficients of spectral coefficients, parameters, or any other information). The arithmetic encoder determines a first window size (e.g., w ), which may be represented by, for example, a window size variable. a ) to find, 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 previously described embodiments, both individually and in combination.

[0084] One embodiment according to the present invention creates a method for decoding video content, the method comprising 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 operating 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 video content of a current frame based on video content of a previous frame, or using a uniprediction mode (e.g., "P"), where there is prediction of blocks 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 prediction of blocks of pixels based on pixels of two blocks of one or more previous frames (e.g., previously decoded frames). 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 statistics may be determined, for example, based on a previously decoded binary sequence. The method also includes determining the first source statistics (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] One embodiment according to the present invention provides a method for decoding video content, the method including decoding a plurality of video frames (e.g., a sequence of video frames), the method including decoding the video frames subdivided into a set of one or more slices (preferably a plurality of slices). To select an operating mode for decoding the slice, the method includes 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 video content of a current frame based on video content of a previous frame, or using a uniprediction mode (e.g., "P"), where there is prediction of blocks 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 prediction of blocks of pixels based on pixels of two or more blocks of one or more previous frames (e.g., previously decoded frames). The method includes 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 may, for example, determine a first window size (e.g., w a ) to, for example, the previously decoded binary value x t-1 ,x t-2 ,..., which may be based on the frequency of a "counter variable" or "counter"; t ) For example, the first source statistic may be determined based on a previously decoded binary sequence. The method may further include determining a joint source statistic (e.g.,

number

[0086] One embodiment creates a method for encoding video content, the method including encoding a plurality of video frames (e.g., a sequence of video frames), the method including 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 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 uniprediction mode (e.g., "P"), where there is prediction of blocks of pixels based on one block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously coded frame), or using a bidirectional prediction mode (e.g., "B"), where there is prediction of blocks of pixels based on pixels of two blocks of one or more previous frames (e.g., previously coded frames). The method includes providing a coded 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, parameters, or any other information).

[0087] The method may, for example, determine a first window size (e.g., w a ) to find, 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 second source statistics may be determined, for example, based on a previously encoded binary sequence. The method also includes determining the first source statistics (e.g., a 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 encoding a plurality of video frames (e.g., a sequence of video frames), the method including 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 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 uniprediction mode (e.g., “P”), where there is prediction of blocks of pixels based on one block of pixels (e.g., pixels of only one block) of a previous frame (e.g., a previously coded frame), or using a bidirectional 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 coded frames). The method includes providing a coded 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 (e.g., w a ) to find, 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 may further include determining a joint source statistic (e.g.,

number

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

[0090] Another embodiment according to the invention provides 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 present invention creates a video bitstream that includes a coded 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 coded representation of the binary sequence, the configuration information being based on a frequency of previously decoded binary values ​​and a first source statistic (e.g., a t ), and 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 stream, the video bitstream also includes initialization value information describing initialization values ​​for the first source statistics and / or the second source statistics.

[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 by any of the features or details described herein, 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 a window size, an estimated parameter may optionally be used in any of the embodiments. Instead of the first window size, a first estimated parameter may optionally be used in any of the embodiments. Instead of the second window size, a second estimated parameter may optionally be used in any of the embodiments.

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

[0097] Alternatively, the first estimation parameter may be a first inertia parameter determining the rate at which 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 the rate at which 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, different notions of source statistics can optionally be used.

[0099] For example, the video decoder may be configured to determine the first source statistical value using a table lookup, with a table entry selected depending on the previously determined source statistical value, the previously decoded binary value, and the first estimation parameter. Alternatively, or additionally, the video decoder may be configured to determine the second source statistical value using a table lookup, with a table entry selected depending on the previously determined source statistical value, the previously decoded binary value, and the second estimation parameter.

[0100] A similar concept can optionally be used in a video encoder, where previously coded binary values ​​can 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 explanation of the drawings]

[0102] [Figure 1] 2 is a block schematic diagram of a video decoder according to one embodiment of the present invention; [Figure 2(1)] FIG. 4 is a block schematic diagram of a video decoder according to another embodiment of the present invention. [Figure 2(2)] FIG. 4 is a block schematic diagram of a video decoder according to another embodiment of the present invention. [Figure 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 for 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] 3 is a flowchart of a method for video decoding according to an embodiment of the present invention. [Figure 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 INVENTION

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

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

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

[0106] Generally speaking, a video decoder is configured to decode multiple video frames (e.g., a sequence of video frames), and in particular, the video decoder is configured to decode video frames subdivided into a set of one or more slices (preferably multiple slices). The video decoder is also configured to evaluate slice type information, which may be included in coded video information 110 and indicates whether the slice was coded using an independent coding mode, 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, where there is prediction of blocks of pixels based on pixels of one block of a previous frame, or using a bi-prediction mode, where there is prediction of blocks of pixels based on pixels of two or more blocks of one or more previous frames, to select an operational mode for decoding the slice (which may be performed, for example, by “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 the 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. Thus, the arithmetic decoder 120 is 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. Thus, the arithmetic decoder is configured to determine a combined source statistics 152 based on the first source statistics 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 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 interval subdivisions. Briefly, the arithmetic decoding core can use the range values ​​162 to define different intervals (e.g., between 0 and 1, or spanning 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 lies in one of the intervals defined using the range values. By recognizing which interval the number represented by the coded representation of the binary sequence lies in, the arithmetic decoding core 170 can conclude which bit or which bit sequence was 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 to be considered only 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 (regarding 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, 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 across the decoded binary values ​​of the decoded binary sequence 122). Also, 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 providing 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 can sometimes yield good results, for example, avoiding 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 can 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 can be used to avoid a significant decrease in coding efficiency if, by chance, there is 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 its entirety. In other words, 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 herein, both individually and in combination.

[0117] 2) Video decoder according to Figure 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 coded representations of binary sequences.

[0119] 2 shows two major blocks of video decoder 200: arithmetic decoder 220 and video reconstruction 280. However, it should be noted that the distribution of 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 actual implementations of video decoders may have additional blocks and / or functions, as will be 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] The function of the arithmetic decoder 220 will be described in more detail below. The arithmetic decoding includes 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 which interval of a range of numbers the number represented by the coded representation of the binary sequence 211 lies in. Depending on the determination of which of the intervals (or two) the number represented by the coded representation of the binary sequence 211 lies in, a particular bit value or 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 bit values. In this case, the arithmetic decoding core 270 receives "range values" 262 used for interval subdivision (i.e., 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 may be similar to or identical to an arithmetic decoding core used, for example, in a video encoder / decoder according to the H.264 standard or a video encoder / decoder according to the H.265 standard. However, it should be noted that different approaches for realizing the arithmetic decoding core 270 may also be used.

[0123] In view of the above discussion, it becomes clear that providing range values ​​262 that define the interval subdivisions of 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 that defines 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, the first source statistics determination block 230 determines one or more previously decoded binary values ​​(again x t ) and based thereon provides the first source statistics 232. The first source statistics determination block may, for example, determine the number of bits used to represent the source statistics 232 by a constant or variable BITS 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, and can receive some control information such as: 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 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, first source statistics 132 do not exactly represent the results of a sliding window summation or sliding window averaging operation, but rather should be considered 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 typically performs different parameters (e.g., different window lengths n b and / or different bitness parameters BITS b), resulting in 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 defined by equation (6) below, or by equations (10) and (11) below, or 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 to thereby 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 optional value processing 266, which receives the combined source statistics 252 and provides a probability value or a state index value based thereon. The value processing 266 may, for example, map the value range of the combined source statistics 252 to a range between 0 and 1, or a range between 0 and 0.5, or to an integer index value. For example, the value processing 266 may be performed according to equation (7) below, or according to equations (8) and (9) below, or according to equations (12) and (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 likely to take on 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 that correspond 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 interval subdivisions 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 in, for example, 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, the 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, 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, a "cabac init flag," a "ws_flag," and a "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 to use. For example, the determination of which context model to use may be based on the fact that what type of information (decoding 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 bit, the least significant bit, 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 also 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 may, for example, determine the parameter n a , n b , BITS a , BITS bIt should be noted that, for example, the window size parameter n a , n b may be selected depending on slice type information, and / or depending on the cabac init flag, and / or depending on the ws_flag, and / or depending on the ctu_ws_flag. In addition, the bit size parameters BITSa and BITSb are selected depending on 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 those described in the H.264 or H.265 standards. However, other approaches adapted to provide decoded video content based on a decoded binary sequence (and possibly additional configuration or control information) may also be used for video reconstruction. Thus, the video reconstruction 280 provides the 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 one 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 control block 290.

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

[0142] 3) Video encoder according to Fig. 3 3 shows a block schematic diagram of a video encoder 300 according to one 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 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 H.264 standard or like a video encoder according to the H.265 standard. However, different approaches for providing the 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 (e.g., transform coefficients, etc.) to a sequence of binary values.

[0144] Additionally, the arithmetic encoder 320 may receive the binary sequence 322 and, based thereon, provide the coded 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 coded representation 311 of the binary sequence).

[0145] The arithmetic encoder 320 may include, for example, an arithmetic coding core 370, which receives the binary sequence 322 and, based thereon, provides 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 an appropriate codeword (included in the coded representation 311) that represents the bit or group of bits. Preferably, the arithmetic coding core 370 receives range values ​​362 that describe subdivisions of an interval. The range values ​​362 may describe the subdivisions of an interval used by the video decoder 200 (or by its arithmetic decoding core 270), and this information may naturally 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 generates a binary sequence 322 representing the video content and a window size information n a , n b or bit size information BITS a , BITS bThe range value 362 of the interval subdivision may be configured to be derived based on several parameters such as: It 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, which are substantially the same as 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 coded binary values ​​(rather than based on previously decoded binary values). The source statistics determiners 330, 340 may be, for example, based on a parameter n a , n b , BITS a , and BITS b Also, the function of the source statistics determiners 330, 340 may be defined, for example, by equations (3) and (4) below, or by equation (5) below.

[0148] Arithmetic encoder 320 also includes a source statistics combination block 350, which may correspond to source statistics combination block 150 or source statistics combination block 250. Thus, combined source statistics 352 are provided, and the functionality of source statistics combination block 350 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. Therefore, 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 are no decoding errors 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 bit rate (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 and their possible encoding and decoding are described below. The slice type information may be provided in a manner similar to a video encoder according to the H.264 or H.265 standard (e.g., by the video binary sequence providing 380) and may be used by the video reconstruction 180, 280 in a manner similar to a video decoder according to the H.264 or H.265 standard. Additionally, the slice type information may be used in decisions regarding window sizes, as outlined herein.

[0153] It should also be noted that the distribution of functional blocks may be modified. In the embodiment of Figure 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 in their entirety by any of the features, functions and details described in this application.

[0155] 4) Further embodiments and details Below are described further embodiments and details that may be incorporated individually or in combination into any of the embodiments disclosed herein, for example, the details described herein may 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 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 in the traditional 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 the 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 coded or previously decoded binary values ​​coded 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

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] Alternatively, equations (3) and (4) may be replaced with update calculations that distinguish between 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 eliminate the clipping operation in equation (4).

[0168] It should be noted that the two ways of implementing the virtual sliding window approach in equations (3) and (4) or equation (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 the source statistics determiner 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., the combined source statistic) is calculated by weighting the counters (e.g., the source statistic) resulting from the update method from either equation (4) or equation (5) (or other method).

number

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

number

number

number

[0172] Counter-based probability estimators are used to estimate, for example, 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 mapping when a (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 described below), it may be recommended (but not required) to map the combined source statistics to index values ​​(e.g., pStateIdx) in 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 ​​for 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 containing pre-calculated range values ​​of interval subdivisions can be extended 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 range values ​​calculated on the fly using arithmetic (e.g., based on joint source statistics or based on probability values ​​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 equations (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 equations (8) and (9) can be omitted.

[0179] Aspects of the Invention - Variable Resolution of Counter Variables Below, one aspect of the present invention is described that may optionally be used in any embodiment according to the present invention.

[0180] Traditional integer implementations of counter-based probability estimators rely on 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 before the weighting operation (eg, source statistic combination) from equation (6) is applied, for example.

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, e.g.,

number

[0185] According to one aspect of the present 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. n 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 example, a pair of `cabac_init_flag` is used for every combination of slice type and `cabac_init_flag` for each context model (e.g., in a predefined table) in the same way as `initValue` in [2], which is used to derive the initial probability state.

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 specified by 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 bi-directionally 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 bidirectionally predicted 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 can optionally be supplemented, individually or in combination, by any of the features, functions, and details described below. Also, the features of the video decoders and video encoders described in the specification can optionally be replaced by 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 statistic 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 performed by weighting the individual counters

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 identically to 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 statistic 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, which can reduce the complexity in terms of arithmetic operations and memory consumption. For example, one of the source statistics can be replaced with a fixed value. Therefore, 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 used). a and n b A separate flag "ws_flag" is introduced to specify the value of the suffix (value of suffix). 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 select 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 generally the video encoder or video decoder) evaluates, for example, the ws flag and adjusts the window size depending on the ws flag (typically also depending on the slice type, which is typically also included in the video bitstream as control or configuration information, 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 further depends 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 video encoder or decoder) may be configured to take the quantization parameter of the current slice into account, 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 additionally 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 the slice, the window size (e.g., n a and n b ) is set as follows:

number

[0219] When the encoding process for the first row or 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, as defined, for example, based on the slice type and any other parameters or flags that may be considered).

[0220] By changing 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 CTUs.

[0221] (t) 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 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 a slice. In this embodiment, for example ...

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 shows a flowchart 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 flowchart 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 Figure 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 method and apparatus for probability estimation 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 devices are superior to conventional solutions.

[0233] For example, [4] describes custom window sizes defined for each context model. However, the window sizes are not derived based 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. The document describes that an additional pair of window sizes is 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 While 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 electronic circuitry. 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, embodiments of the present invention can be implemented in hardware or software. The implementation can be performed 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 cooperates (or can cooperate) with a programmable computer system to execute the respective method. Thus, the digital storage medium can 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 so as to perform one of the methods described herein.

[0239] Generally, embodiments of the present invention can be implemented as a computer program product having program code that 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 digital storage medium or 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 transmitted 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, for example, comprise 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 devices described herein may be implemented using a hardware device, or using a computer, or using a combination of a hardware device and a computer.

[0249] The devices described herein, or any components of the devices 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] The methods described herein, or any 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 appended 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 arithmetic decoding of the coded representation of the binary sequence; [Equation 1] The first source statistic a expressed in BITSa bits so that t+1 and the first source statistic is equal to: [Equation 2] 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, ONEa is a representation of the probability value 1 according to the BITSa bits used to represent the first source statistic; [Equation 3] The second source statistic b is expressed in BITSb bits so that t+1 and the second source statistic is equal to: [Equation 4] 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, ONEb is a representation of the probability value 1 according to the BITSb bits used to represent the second source statistic; where n b ≧n a +3, BISTS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining at least one range value of an interval subdivision based on the combined source statistics; using said at least one range value to map a coded representation of said binary sequence to said binary sequence; A video decoder configured to:

2. The at least one processor Evaluating slice type information indicating whether the slice is of type I, P, or B; determining the first window size parameter and the second window size parameter based on the slice type information; 10. The video decoder of claim 1 further configured to:

3. The at least one processor determining a state index based on the combined source statistics; determining a value representing a most likely binary value based on said state index; determining the at least one range value of interval subdivisions based on the state index; 10. The video decoder of claim 1 further configured to:

4. The at least one processor: determining the combined source statistics by applying different weights to the first source statistics and the second source statistics; 10. The video decoder of claim 1 further configured to:

5. 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, 10. The video decoder of claim 1 further configured to:

6. 1. A video decoding method, comprising: Decoding the video content based on arithmetic decoding of the coded representation of the binary sequence; [Equation 1] The first source statistic a expressed in BITSa bits so that t+1 and the first source statistic is equal to: [Equation 2] 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, ONEa is a representation of the probability value 1 according to the BITSa bits used to represent the first source statistic; [Equation 3] The second source statistic b is expressed in BITSb bits so that t+1 and the second source statistic is equal to: [Equation 4] 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, ONEb is a representation of the probability value 1 according to the BITSb bits used to represent the second source statistic; where n b ≧n a +3, BISTS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining at least one range value for an interval subdivision based on the combined source statistics; using said at least one range value to map a coded representation of said binary sequence to said binary sequence; Video decoding methods.

7. Evaluating slice type information indicating whether the slice is of type I, P, or B; determining the first window size parameter and the second window size parameter based on the slice type information; The video decoding method of claim 6 , further comprising:

8. determining a state index based on the combined source statistics; determining a value representing a most likely binary value based on said state index; determining the at least one range value of interval subdivisions based on the state index; The video decoding method of claim 6 , further comprising:

9. determining the combined source statistics by applying different weights to the first source statistics and the second source statistics; The video decoding method of claim 6 , further comprising:

10. Based on the context model, a first window size parameter, n a , and a second window size parameter, n b to determine, The video decoding method of claim 6 , further comprising:

11. A non-transitory digital storage medium having a computer program stored thereon for performing a video decoding method when the computer program is executed by a computer, the video decoding method comprising: Decoding the video content based on arithmetic decoding of the coded representation of the binary sequence; [Equation 1] The first source statistic a expressed in BITSa bits so that t+1 and the first source statistic is equal to: [Equation 2] 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, ONEa is a representation of the probability value 1 according to the BITSa bits used to represent the first source statistic; [Equation 3] The second source statistic b is expressed in BITSb bits so that t+1 and the second source statistic is equal to: [Equation 4] 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, ONEb is a representation of the probability value 1 according to the BITSb bits used to represent the second source statistic; where n b ≧n a +3, BISTS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining at least one range value for an interval subdivision based on the combined source statistics; mapping a coded representation of the binary sequence to the binary sequence using the at least one range value; Non-transitory digital storage media, including

12. 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; [Equation 1] The first source statistic a expressed in BITSa bits so that t+1 and the first source statistic is equal to: [Equation 2] 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, ONEa is a representation of the probability value 1 according to the BITSa bits used to represent the first source statistic; [Equation 3] The second source statistic b is expressed in BITSb bits so that t+1 and the second source statistic is equal to: [Equation 4] 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, ONEb is a representation of the probability value 1 according to the BITSb bits used to represent the second source statistic; where n b ≧n a +3, BISTS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining at least one range value of an interval subdivision based on the combined source statistics; using said at least one range value to map a coded representation of said binary sequence to said binary sequence; A video encoder configured to:

13. The at least one processor encoding slice type information indicating whether the slice is of type I, P, or B; determining the first window size parameter and the second window size parameter based on the slice type information; The video encoder of claim 12 further configured to:

14. The at least one processor determining a state index based on the combined source statistics; determining a value representing a most likely binary value based on said state index; determining the at least one range value of interval subdivisions based on the state index; The video encoder of claim 12 further configured to:

15. The at least one processor: determining the combined source statistics by applying different weights to the first source statistics and the second source statistics; The video encoder of claim 12 further configured to:

16. 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 encoder of claim 12 further configured to:

17. 1. A video encoding method, comprising: encoding the video content based on arithmetic encoding of the coded representation of the binary sequence; [Equation 1] The first source statistic a expressed in BITSa bits so that t+1 and the first source statistic is equal to: [Equation 2] 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, ONEa is a representation of the probability value 1 according to the BITSa bits used to represent the first source statistic; [Equation 3] The second source statistic b is expressed in BITSb bits so that t+1 and the second source statistic is equal to: [Equation 4] 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, ONEb is a representation of the probability value 1 according to the BITSb bits used to represent the second source statistic; where n b ≧n a +3, BISTS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining at least one range value for an interval subdivision based on the combined source statistics; using said at least one range value to map a coded representation of said binary sequence to said binary sequence; Video encoding method.

18. encoding slice type information indicating whether the slice is of type I, P, or B; determining the first window size parameter and the second window size parameter based on the slice type information; The video encoding method of claim 17, further comprising:

19. determining a state index based on the combined source statistics; determining a value representing a most likely binary value based on said state index; determining the at least one range value of interval subdivisions based on the state index; The video encoding method of claim 17, further comprising:

20. determining the combined source statistics by applying different weights to the first source statistics and the second source statistics; The video encoding method of claim 17, further comprising:

21. Based on the context model, a first window size parameter, n a , and a second window size parameter, n b to determine, The video encoding method of claim 17, further comprising:

22. A non-transitory digital storage medium having a computer program stored thereon for performing a video encoding method when the computer program is executed by a computer, the video encoding method comprising: encoding the video content based on arithmetic encoding of the coded representation of the binary sequence; [Equation 1] The first source statistic a expressed in BITSa bits so that t+1 and the first source statistic is equal to: [Equation 2] 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, ONEa is a representation of the probability value 1 according to the BITSa bits used to represent the first source statistic; [Equation 3] The second source statistic b is expressed in BITSb bits so that t+1 and the second source statistic is equal to: [Equation 4] 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, ONEb is a representation of the probability value 1 according to the BITSb bits used to represent the second source statistic; where n b ≧n a +3, BISTS b >BITS a and determining a combined source statistic based on the first source statistic and the second source statistic; determining at least one range value for an interval subdivision based on the combined source statistics; mapping a coded representation of the binary sequence to the binary sequence using the at least one range value; Non-transitory digital storage media, including

Citation Information

Patent Citations

  • Advanced arithmetic coder

    WO2016196307A1

Cited By

  • Decoding device, method for decoding an encoded representation of a binary sequence, non-transitory computer-readable medium, encoding device, and method for encoding a binary sequence

    JP2026048881A