Entropy coding of motion vector differences

By employing a shortened unary code and clustering motion vector differences with a single context, the entropy coding method addresses inefficiencies in existing video codecs, enhancing coding efficiency and reducing complexity.

JP2025170279AActive Publication Date: 2025-11-18DOLBY VIDEO COMPRESSION LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2025132268
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2011-07-15
Filing Date
2025-08-07
Publication Date
2025-11-18
Estimated Expiration
2032-06-18

AI Technical Summary

Technical Problem

Existing entropy coding methods for motion vector differences in video codecs face increased coding complexity and reduced efficiency due to inappropriate probability assessments and fine context classification, leading to inefficiencies in data representation.

Method used

Implement a shortened unary code with reduced cutoff values and combine motion vector differences into clusters, using a single context for horizontal and vertical components, reducing the need for fine context selection and enhancing probability matching.

Benefits of technology

This approach improves coding efficiency by minimizing the number of motion vector differences transmitted and leveraging block clustering to reduce correlation, resulting in more effective entropy coding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025170279000001_ABST
    Figure 2025170279000001_ABST
Patent Text Reader

Abstract

To provide a decoding device that improves the entropy coding efficiency of motion vectors.SOLUTION: A decoding device comprises: a context-adaptive binary entropy decoder configured to derive a truncated unary code from a data stream using context-adaptive binary entropy decoding with exactly one context per bin position of the truncated unary code, which is common for horizontal and vertical components of motion vector differences, and an Exp-Golomb code using a constant equi-probability bypass mode to obtain binarizations of the motion vector differences; a desymbolizer configured to debinarize the binarizations of the motion vector difference syntax elements to obtain integer values of the horizontal and vertical components of the motion vector differences; and a reconstructor configured to reconstruct a video based on the integer values of the horizontal and vertical components of the motion vector differences.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an entropy coding concept for coding video data. [Background technology]

[0002] Many video codecs are well known in the art. These codecs typically They reduce the amount of data needed to represent the content, i.e., they compress the data. In the context of video coding, the compression of video data is given successively by different coding It is known that this can be conveniently accomplished by techniques where motion compensated prediction is used to predict the image content. Used to predict motion vectors determined by motion compensated prediction and prediction residuals relies on lossless entropy coding. To further reduce the amount of data, the motion vectors itself follows the prediction, thereby simply representing the motion vector prediction residual. For example, in H.264, only The procedure outlined above is applied to transmit information about motion vector differences. The motion vector difference is expressed as a truncated unary code and , from a certain cutoff value, the binstrins corresponding to the combination of exponent-Golomb signs The exponential Golomb code bins are binarized into bin strings. is easily coded using equiprobable bypass mode with a fixed probability of 0.5 , some context is provided for the first bin. The off value is chosen to be 9. Therefore, a rich context is used to encode the motion vector difference. is provided to Summary of the Invention [Problem to be solved by the invention]

[0003] However, providing rich context increases the coding complexity. Moreover, it can have a negative impact on coding efficiency, making the context less accessible. If this is not possible, the probability matching, i.e., the entropy coding causes the respective contexts to be The adaptation of probability assessments associated with the risk assessment is not effectively performed and is therefore inappropriately applied. The probability estimates estimate the actual symbol statistics. If several contexts are provided, the choice between them is determined by the need for the decoding process. Requires checking of adjacent bin / syntax element values, which prevents the execution of If the number of bins is set too low, the actual symbol statistics will vary greatly. Grouped within a context and therefore related to that context. The probability estimate fails to effectively encode the associated bin with it.

[0004] There is a continuing need to further increase the coding efficiency of entropy coding of motion vector differences. There is a need for this.

[0005] It is therefore an object of the present invention to provide such a coding concept. [Means for solving the problem]

[0006] This object is achieved by the subject matter of the independent claims attached hereto.

[0007] The basic discovery of the present invention is that a shortened unary code is used to binarize the motion vector difference. Decrease the cutoff value by 2 so that there are only two bin positions for the contracted unary code. By reducing the number of motion vectors, the coding efficiency of the entropy coding of the motion vector difference is further increased. The order of magnitude is the exponent Golom for the motion vector difference from the cutoff value. b code, and furthermore, ensure that one context is incomplete. When given in two positions of the unary code respectively, the bins or sequences of adjacent image blocks are Selection of a context based on syntax element values ​​is not required, and these Too fine a classification in bin positions is avoided and probability matching works well, and the same context If the string is used for horizontal and vertical components, it may result in too fine a context. Reduce the negative effects of store subdivision.

[0008] Furthermore, the above setting for entropy coding of the motion vector difference is Combined with advanced methods of motion vector difference, this reduces the required total number of motion vector differences transmitted. For example, multiple motion vector predictors are used to predict the motion vectors. An index to this list of motion vector predictors is provided to obtain an ordered list. The index is the actual value represented by the motion vector difference whose prediction residual is in question. The list index used to determine the motion vector predictor. Although information about the However, the overall prediction quality of the motion vectors increases, and therefore the magnitude of the motion vector differences increases. and overall, the coding efficiency is further increased due to such improved motion vector prediction. Cutoff values ​​and context for horizontal and vertical components of pointing motion vector difference On the other hand, it reduces the common use of motion vectors transmitted in the data stream. Combining can be used to reduce the number of traces, and for this purpose, the combined information is The data is sent to the decoder block for further division of the blocks into blocks. The motion vector differences are then transmitted in the data stream instead of the individual blocks. These merged groups can then be transmitted in a data stream. This reduces the number of motion vector differences that must be transmitted. Since the clustering of blocks reduces the correlation between adjacent motion vector differences, The omission of providing each context for a bin position results in a significant improvement over the adjacent motion vector differences. This prevents the entropy coding scheme from categorizing the context too finely. The concept of combining already utilizes the correlation between the motion vector differences of adjacent blocks. So, one context for one bin location - for the horizontal and vertical components - is That's enough. Preferred embodiments of the present application are described below with reference to the drawings. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 shows a block diagram of an encoder according to an embodiment. [Figure 2a] FIG. 2a is a diagrammatic illustration showing an image-like subdivision into blocks. [Figure 2b] FIG. 2b is a diagram showing different subdivisions of such an image into blocks. [Figure 2c] FIG. 2c is a diagram showing different subdivisions of such an image into blocks. [Figure 3] FIG. 3 shows a block diagram of a decoder according to an embodiment. [Figure 4] FIG. 4 is a block diagram showing a more detailed example of an encoder according to an embodiment. [Figure 5] FIG. 5 is a block diagram showing a decoder according to an embodiment in more detail. [Figure 6] FIG. 6 is a diagram illustrating the transformation of a block from the spatial domain to the spectral domain, the resulting transformed block, and its retransformation. [Figure 7] FIG. 7 shows a block diagram of an encoder according to an embodiment. [Figure 8] FIG. 8 illustrates a block diagram of a decoder suitable for decoding the bit stream generated by the encoder of FIG. 8 according to an embodiment. [Figure 9] FIG. 9 is a block diagram illustrating a data packet having multiplexed partial bit streams according to an embodiment. [Figure 10] FIG. 10 is a block diagram illustrating a data packet having another division using fixed-size segments according to a further embodiment. [Figure 11] FIG. 11 shows a decoder supporting mode switching according to an embodiment. [Figure 12] FIG. 12 shows a decoder supporting mode switching according to a further embodiment. [Figure 13] FIG. 13 shows an encoder compatible with the decoder of FIG. 11 according to an embodiment. [Figure 14] FIG. 14 shows an encoder compatible with the decoder of FIG. 12 according to an embodiment. [Figure 15] Figure 15 shows the mapping of pStateCtx and fullCtxState / 256**E**. [Figure 16] FIG. 16 shows a decoder according to one embodiment of the present invention. [Figure 17] FIG. 17 shows an encoder according to one embodiment of the present invention. [Figure 18] FIG. 18 is an illustrative view showing binarization of a motion vector difference according to an embodiment of the present invention. [Figure 19]FIG. 19 is a diagram illustrating the coupling concept according to this embodiment. [Figure 20] FIG. 20 is an illustrative view showing a motion vector prediction scheme according to this embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0010] It should be noted that during the description of the figures, elements occurring in some of these figures are The repeated description of these elements, designated by the same reference numerals and as far as functionality is concerned, Note that this is avoided to avoid unnecessary repetition. Unless otherwise expressly indicated, the features and descriptions provided with respect to one figure may be used interchangeably with other figures. This also applies to the diagram.

[0011] In the following, firstly, an example of a general video coding concept is described with reference to FIGS. 1 to 10. Figures 1-6 show a video codec operating at the syntax level. Figures 8-10 below show the conversion of syntax elements to a data stream and vice versa. and specific aspects and implementations of the present invention. The examples are set forth in the form of possible implementations of the general concepts typically outlined with respect to FIGS. 1-10. are.

[0012] FIG. 1 shows an example embodiment for an encoder 10 in which aspects of the present application can be implemented. .

[0013] The encoder encodes the sequence of information samples 20 into a data stream. The array of pulls may be, for example, information samples corresponding to brightness values, lightness values, luma values, saturation values, etc. However, if the sample array 20 is a time-dependent sensor, such as an optical sensor, In the case of a depth map generated by a pixel, the information samples may be depth values.

[0014] The encoder 10 is a block-based encoder. encodes the sample array 20 into a data stream 30 in units of blocks 40 The encoding in units of blocks 40 allows the encoders 10 to be totally independent of each other. This does not necessarily mean that these blocks 40 are coded. , to predict or intra-predict the remaining blocks, the encoder 10 uses the previously encoded Block retransformation can be used to set the coding parameters, i.e. , which sets how each sample array region corresponding to each block will be coded Block precision can be used for

[0015] Furthermore, the encoder 10 is a transform encoder, i.e., the encoder 10 encodes the spatial domain A transformation is used to transfer the information samples in each block 40 from the spectral domain to the spectral domain. A two-dimensional transform such as the DCT of an FFT may be used to encode the block 40. Preferably, the block 40 is quadratic or rectangular in shape.

[0016] The subdivision of sample array 20 into blocks 40 shown in FIG. 1 is provided solely for convenience of illustration. Figure 1 shows a quadratic or rectangular block that is adjacent to each other but does not overlap. The sample array 20 is shown as being subdivided into a regular two-dimensional array of blocks 40. The size of the block 40 may be predetermined. In the data stream 30, information about the block size of the block 40 is transmitted. For example, the decoder can anticipate a certain block size.

[0017] However, some variations are possible. For example, the blocks may overlap each other. However, each block does not overlap any adjacent blocks. or each sample of the block has at most the same length as the current block along a given direction. Adjacent blocks are arranged side by side in a block, with only one block overlapping. , the overlap may be limited. The latter is the case when the left or right adjacent block is completely overlapped with the current Covering blocks can overlap the current block, but they cannot cover each other. It cannot be applied to neighbors in vertical and diagonal directions. do.

[0018] As a further alternative, the subdivision of the sample array 20 into blocks 40 may be performed by bit streams. The subdivision information is transmitted to the decoder side via the stream 30 and used. The encoder 10 adapts the content of the sample array 20 .

[0019] 2a to 2c show different implementations for subdividing the sample array 20 into blocks 40. An example is shown in Figure 2a, which shows a quadtree-based representation of a sample array 20 into blocks 40 of different sizes. The blocks shown are 40a, 40b, 40c and 40d with increasing size. According to the subdivision of FIG. 2a, the sample array 20 is first divided into tree blocks. The block is divided into a uniform two-dimensional arrangement of blocks 40d, which is further divided into four blocks. The individual subdivision information associated with it, whether by subtree or otherwise, The tree block 40d to the left of the block has fewer entries according to the quadtree structure. The encoder 10 divides the data into blocks shown in solid and dotted lines in FIG. In other words, the encoder can perform one two-dimensional transformation for each block. 10 can transform the array 20 in units of block subdivision.

[0020] Instead of quadtree-based subdivision, a more general multitree-based subdivision is used. and the number of child nodes per hierarchy level can differ between different hierarchy levels. do.

[0021] Figure 2b shows another embodiment for the subdivision. According to Figure 2b, the sample array 20 is First, they are arranged so that they are adjacent to each other but do not overlap, creating a uniform two-dimensional arrangement. Each macroblock 40b is divided into No subdivision or, if subdivision, different subdivisions for different macroblocks Subdivision into equal-sized sub-blocks with uniform two-dimensionality to achieve accuracy The results are related to the subdivision information shown in 40a, 40b and 40a. Reordering the sample array 20 into blocks 40 of different sizes, such as As in FIG. 2a, the encoder 10 is shown in FIG. 2b with solid and dotted lines. Then, a two-dimensional transformation is performed on each of the blocks to be processed. Figure 2c will be discussed later.

[0022] Figure 3 shows the data stream generated by the encoder 10, reproduced as a sample sequence 20. 5 shows a decoder 50 capable of decoding the audio signal to reproduce the original audio signal 60. The decoder 50 generates a transform coefficient block for each of the blocks 40 from the data stream 30. and performing an inverse transform on each of the transform coefficient blocks. Reproduce version 60.

[0023] The encoder 10 and the decoder 50 each store information about the transform coefficients in the block. Entropy is inserted so that this information can be extracted from the data stream. According to different embodiments, this can be configured to perform encoding / decoding. The data stream 30 does not necessarily contain all of the sample array 20. Note that we do not have information about the transform coefficient blocks for all blocks 40. Rather, as a subset of the block, 40 is a bit stream that For example, the encoder 10 may encode the bit stream 30. The block 40 in which the different coding parameters are inserted into the stream 30 is changed for a specific block. Refrain from inserting conversion coefficient blocks and instead make the decoder 50 predictable. Or else you can fill each block of the reproduced version 60 For example, the encoder 10 may decide to By synthesizing the texture and showing this, the decoder will fill in the Performing texture analysis to determine block locations within the sample array 20 can be done.

[0024] As will be discussed with respect to the following figures, the transform coefficient blocks are not necessarily part of the sample array 20. Each block 40 represents a spectral domain representation of the original information sample. Rather, such transform coefficient blocks are the prediction residuals of the respective blocks 40. The spectral domain representation of the signal can be expressed as: For example, the encoder of FIG. 4 includes a transform stage 100, an entropy encoder 102, an inverse transform The subtractor 10 includes a conversion stage 104, a predictor 106, a subtractor 108, and an adder 110. 8, the transform stage 100 and entropy encoder 102 are connected to input 1 of the encoder of FIG. 12 and output 114 in that order. 4, adder 110 and predictor 106 are connected to the output of conversion stage 100 and subtractor 108 and the output of the predictor 106 is further connected to the input of the adder 110. Connected.

[0025] The encoder in Figure 4 is a predictive transform-based block coder. The block of the input sample array 20 is the same as the block of the sample array 20 previously encoded. The reproduced portion or presentation time may precede the current sample sequence 20 The prediction is made from other sequences of samples that have been previously coded and reproduced. This is performed by a prediction means 106. A subtractor 108 subtracts the prediction from such an original block. The prediction residual is subtracted from the input signal, and a transform stage 100 performs a two-dimensional transform on the prediction residual. The two-dimensional transform itself or the next measurement within the transform stage 100 is performed in the transform coefficient block. This leads to the quantization of the transform coefficients. The quantized transform coefficient block has e.g. The resulting signal is encoded using lossless compression by entropy coding in the encoder 102. The data stream is output at output 114. The inverse transform stage 104 converts the quantized residual The adder 110 then reconstructs the remaining variance, and the predictor 106 then calculates the current coding prediction. To obtain a reconstructed information sample based on which the block can be predicted, the reconstructed residual The predictor 106 uses intra prediction models to predict blocks. Different prediction modes such as inter- and inter-prediction modes can be used, and the prediction performance The parameters are sent to an entropy coder 102 for insertion into the data stream. For each inter-predicted prediction block, the respective motion data is predicted by the decoding side. To enable the decoding, the entropy encoder 114 encodes the bit stream. The motion data for a predicted block of an image is inserted from adjacent already coded predictors. Compared with the motion vector predictor derived from the motion vector of the estimated block by the above method, and indicates a motion vector difference that encodes the motion vector differently for the current prediction block. It contains a syntax part that contains syntax elements that

[0026] That is, according to the embodiment of FIG. 4, a transform coefficient block is Rather, it represents a spectral representation of the remainder of the sample sequence, i.e., according to the embodiment of FIG. The sequence of syntax elements is entropy coded into a data stream 114. The sequence of syntax elements is input to the entropy encoder 102. In the motion vector difference syntax for inter-predicted blocks, the location of the significant transform coefficient levels is It includes syntax for the importance map to indicate the importance of the transform coefficients and syntax for specifying the importance of the transform coefficient levels themselves. nothing.

[0027] Several variations exist in the embodiment of FIG. 4, some of which are described in the introductory section of the specification. 4 herein.

[0028] Figure 5 shows how to decode the data stream produced by the encoder in Figure 4. The decoder of FIG. 5 includes an entropy decoder 150, an inverse transform stage 152, adder 154 and predictor 156. The stage 152 and adder 154 are connected between the input 158 ​​and output 160 of the decoder of FIG. The further output of the entropy decoder 150 is connected to the adder 1 54 is connected to a predictor 156 connected between its output and a further input. The tropy decoder 150 receives the data from the data stream input to the decoder of FIG. A transform coefficient block is extracted from the transform coefficients in stage 152 and an inverse transform is performed to obtain the residual signal. block. The residual signal is a reconstructed version of the sample sequence at output 160. is combined with the prediction from predictor 156 in adder 154 to obtain a reconstructed block of Based on the reconstructed version, the predictor 156 generates a prediction, which The prediction performed by the predictor 106 on the reader side is restored. To obtain these same predictions, the predictor 156 also uses the entropy decoder 150 as input 158 Use the prediction parameters obtained from the data stream in

[0029] It should be noted that in the above embodiment, the prediction and transformation of the residual do not have to be the same as each other. This is shown in Figure 2C, which shows the prediction accuracy and point The line shows the subdivision for the prediction block with the residual accuracy. can be selected by the encoder independently of each other. The data stream syntax defines a residual subdivision that is independent of the prediction subdivision. Alternatively, each residual block can be considered to be equivalent or suitable to the predicted block. The residual subdivision may be an extension of the prediction subdivision, e.g., ,This is shown in Figure 2a and Figure 2b, where the prediction accuracy is also shown as a solid line, The residual accuracy is shown by the dotted line, i.e., the associated reference symbol in Figures 2a-2c. Every block with The solid line blocks larger than the dotted line block 40a are, for example, blocks where the prediction parameter settings are different. These are prediction blocks that are executed individually.

[0030] The embodiment is such that a block of samples (residual or original) is The signal is converted into a block of transform coefficients, which is then converted into a reconstructed block of samples at the decoder side. This is shown in Figure 6. Figure 6 shows the sample 200 In the case of FIG. 6, this block 200 is representative of a quadratic The sample 202 is a 4x4 sample 202. The sample 202 is arranged along the horizontal direction x and the vertical direction y. The two-dimensional transformation T described above transforms the block 200 into a spectral region The transform is then converted into a block 204 of transform coefficients 206, That is, the transformation block 200 has the same size as the horizontal and vertical In the direction, the block 200 has as many transform coefficients 206 as it has samples. However, since the transform T is a spectral transform, the transform in the transform block 204 The location of coefficients 206 does not correspond to a spatial location, but rather to the spectral content of block 200. In particular, the horizontal axis of the transform block 204 corresponds to the spectral frequency components on the horizontal axis. The vertical axis corresponds to the axis along which the spatial frequency increases monotonically, and the vertical axis corresponds to the axis along which the spatial frequency increases monotonically. The DC component transform coefficients correspond to the axes along the increasing axis, and are located at the corners of block 204 - where is located in the upper left corner as a sample, and therefore in the lower right corner, The transform coefficients 206 corresponding to the highest frequencies in both the vertical and spatial directions are located. By ignoring the direction, the spatial frequency to which a particular transform coefficient 206 belongs is generally the upper left. It increases from the corner to the bottom right corner. -1 The conversion block 204 is Transforming from the spectral domain to the spatial domain and obtaining a copy 208 of the block 200 again. If no quantization / loss was introduced during the transformation, the reconstruction is perfect.

[0031] As already mentioned above, the larger block size of block 200 from Figure 6 results in It can be seen that this increases the spectral resolution of the resulting spectral representation 204 as On the other hand, quantization noise tends to spread out the entire block 208, so that the block Sudden and very localized objects within the block 200 are over-sampled due to quantization noise. This tends to lead to deviations in the retransformed blocks compared to the original blocks 200. While the main advantage of using larger blocks is, on the one hand, the effective number, i.e. The ratio between non-zero (quantized) transform coefficients, i.e. levels, on the other hand, is important. The number of missing transform coefficients is reduced in large blocks compared to small blocks, thereby In other words, it often allows for better coding efficiency. The transform coefficient levels, i.e., the transform coefficients that are not quantized to zero, are sparsely distributed in the transform block 20 4. This results in an effective The location of the transform coefficient levels is indicated in the data stream by means of a valid map. Separately from there, the values ​​of the valid transform coefficients, i.e., the transform coefficients in the case of quantized transform coefficients, The coefficient levels are transmitted in the data stream.

[0032] All the encoders and decoders mentioned above thus use the specific syntax of the syntax elements. That is, the aforementioned syntax elements such as transform coefficient levels, Syntax elements for validity maps of inter-predicted blocks, motion data for inter-predicted blocks Syntax elements are assumed to be arranged consecutively in the data stream in a predetermined manner. This kind of predetermined method is, for example, the H.264 standard or other video codecs. It is expressed in pseudocode form, as is done in a .

[0033] In other words, the above description is based on media data, here on specific syntax elements, their meanings, The syntax of syntactic elements is determined according to a given syntactic structure that defines their taste and the order between them. The first step was to convert the video data into a sequence. The entropy encoder and decoder operate as outlined below. It is composed and constructed as a sequence of syntax elements and a data stream, i.e. It is responsible for performing conversions between symbol or bit streams.

[0034] An entropy encoder according to an embodiment is illustrated in Figure 7. The encoder is a lossless encoder. In compression, a stream of syntax elements 301 is split into two or more partial bit streams 312. Convert to .

[0035] In a preferred embodiment of the present invention, each syntax element 301 is classified into one or more categories: For example, a category is a type of a syntax element. In the context of hybrid video coding, another category is , macroblock coding mode, block coding mode, reference image index , motion vector difference, subdivision flag, coding block flag, quantization parameter, transform coefficient It may be related to a level, e.g. audio, spoken, text, written or In other application areas, such as general data coding, different classifications of syntax elements are possible.

[0036] In general, each syntax element can take on a finite or countable set of possible values. The set of syntax element values ​​can be different for different syntax element categories, for example , there are binary syntax elements as well as integer value elements.

[0037] To reduce the complexity of encoding and decoding algorithms and to allow for different syntax elements and To allow the design of general encoding and decoding schemes for a given category of syntax elements, 301 is converted into an ordered set of binary decisions, and these binary The decisions are then processed by a simple binary encoding algorithm. The binarizer 302 bijectively maps the value of each syntax element 301 to a sequence of bins 303 (or The sequence of bins 303 is ordered. Each bin 303 or binary decision has two values: can take one value from a set of , for example one of the values ​​0 and 1. The encoding scheme can be different for different syntax element categories. A category binarization scheme defines a set of possible syntax element values ​​and / or a specific category The syntax for the .seq.

[0038] Table 1 illustrates three examples of binarization schemes for countably infinite sets. The binarization scheme for the set of Λ can also be applied for a finite set of syntax element values. In particular, for a large finite set of syntax element values, The generality of this kind of binarization scheme is due to the complexity and memory overhead, while the resulting inefficiencies are negligible. For a small finite set of syntax element values, the binarization scheme It is often preferable (in terms of coding efficiency) to adapt the scheme to the number of possible symbol values. I wish.

[0039] Table 2 illustrates three example binarization schemes for a finite set of eight values. The binarization scheme of is such that a finite set of sequences of bins is a code without redundancy (and (potentially reordering the sequence of bins) By modifying the sequence, we can obtain a generalized binarization scheme for countably infinite sets. As an example, the shortened unary binarization scheme in Table 2 can be derived from a general-purpose unary binarization The bin sequence for syntax element 7 of the binset (see Table 1) is constructed by modifying the bin sequence for syntax element 7 of the binset (see Table 1). The 0th-order incomplete and rearranged Exp-Golomb binarizations in Table 2 are Bin for syntax element 7 of Universal Exp-Golomb order 0 binarization (see Table 1) By modifying the sequence of , and the sequence of bins (for symbol 7 The sequence of shortened bins is created by rearranging the symbols assigned to symbol 1. For a finite set of syntax elements, as illustrated in the last column of Table 2, It is also possible to use non-systematic / non-universal binarization schemes.

[0040] [Table 1]

[0041] [Table 2]

[0042] Each bin 303 of the sequence of bins created by the binarizer 302 is a sequence The parameter allocator 304 is configured to allocate one or more A set of parameters is assigned to each bin 303 to form a bin with a set of parameters 305. The set of parameters is determined in exactly the same way at the encoder and decoder. The set of parameters can consist of one or more of the following parameters:

[0043] In particular, the parameter assigner 304 assigns a context model to the current bin 303. For example, the parameter allocator 304 may be configured to allocate a You can select one of the available context indexes for The available set of contexts for the current bin 303 can then be calculated using the syntax element The current bin 303 depends on the type of bin specified by the type / category of 301. is part of that binarization and is the position of the current bin 303 in the subsequent binarization. The choice of context between the set of contexts is determined by the previous bin and Each of these contexts has a probability associated with it. model, i.e., estimate of the probability for one of the two possible bin values ​​for the current bin The probability model is particularly important for the current bin. The probability model is further instrumented to estimate the probability for a more likely or less likely bin value. , 2, which represent the less likely or more likely bin values ​​for the current bin 303. It is specified by an identifier that specifies the estimate for one possible bin value. If there is only one context available for an application, the context selection is kept separate. As outlined in more detail below, the parameter assigner 304 assigns various parameters. The probabilistic model associated with the context is then applied to each of the binarizations belonging to each context. A probabilistic model fitting can also be performed to adapt to the actual bin statistics of the data.

[0044] As described in more detail below, the parameter assigner 304 operates to It operates differently depending on whether it is in high-efficiency (HE) or low-complexity (LC) mode. In both modes, the probability model is coded by a bin encoder3, as outlined below. 10, the current bin 303 is associated with the parameter assigner 304. The bin statistics tend to be less complex in LC mode, whereas the The parameters are then adjusted by associating each bin 303 with each encoder 310 to achieve a more accurate fit. The coding efficiency is increased in the high efficiency mode by the allocator 304, thereby Optimize entropy in relation to the code.

[0045] The output of the parameter allocator 304 is a set of associated parameters 305. Each bin is fed into the bin buffer selector 306. 306 potentially determines the input bin 30 based on the input bin values ​​and associated parameters 305. Modify the value of 5 to split the output bin 307—potentially with the modified value—into two or more bins The bin buffer 308 to which the output bin 307 is sent is , determined based on the values ​​of the input bins 305 and / or the values ​​of the associated parameters 305 do.

[0046] In a preferred embodiment of the present invention, the bin buffer selector 306 modifies the bin values. No, i.e., output bin 307 always has the same value as input bin 305. In the preferred embodiment, the bin buffer selector 306 selects the input bin values ​​305 and The associated probability for one of the two possible bin values ​​for the current bin is In a preferred embodiment of the present invention, the output bin value 307 is determined based on the measurements made. A measure of the probability for one of two possible bin values ​​for a bin is given by a particular threshold. If it is less than (or less than or equal to), the output bin value 307 is Set equal to 5; probability for one of the two possible bin values ​​for the current bin If the measurement for is greater than or equal to (or greater than) a certain threshold, the output bin value 307 is modified (i.e., it is set to the inverse of the input bin value). In the currently preferred embodiment, the bin is set to one of two possible bin values ​​for the current bin. If the measure for the probability of The output bin value 307 is set equal to the input bin value 305; A measure of the probability for one of the possible bin values ​​is less than or equal to a certain threshold (or is small), the output bin value 307 is modified (i.e., it is the inverse of the input bin value). In the preferred embodiment of the present invention, the threshold value is set to This corresponds to a value of 0.5 for the estimated probability for the .

[0047] Further, in a preferred embodiment of the present invention, the bin buffer selector 306 selects the input bin The value 305, and the two possible bins are less likely or more likely for the current bin. Determine output bin values ​​307 based on associated identifiers that identify ratings representing likely bin values. In a preferred embodiment of the present invention, the identifier is the first of two possible bin values. Indicates that the least likely (or more likely) bin value for the current bin is being represented. If so, the output bin value 307 is set equal to the input bin value 305, and the identifier is The second of the two possible bin values ​​is the least likely (or more likely) for the current bin. If the output bin value 307 is modified (i.e., (i.e., it is set to the inverse of the input bin value).

[0048] In a preferred embodiment of the present invention, the bin buffer selector 306 selects the output bin 307 is the relevant parameter for the evaluation of the probability for one of the two possible bins for the current bin. The bin buffer 308 to be filled is determined based on the measurements made. for the evaluation of the probability for one of two possible bin values. The set of values ​​is limited, and the bin buffer selector 306 selects exactly one bin buffer. Buffer 308 is used to estimate the probability for one of the two possible bin values. and a table associating the values ​​of the two possible bins for the evaluation of the probability for one of the two possible bin values. Different values ​​for the measurements can be associated with the same bin buffer 308. In a further preferred embodiment of the present invention, the probability for one of two possible bin values ​​is The range of possible values ​​for a measurement is divided into many intervals and binned into buffers. The selector 306 selects the current measurement for the evaluation of the probability for one of two possible bin values. , and the bin buffer selector 306 determines the interval index for a table associating one bin buffer 308 with each possible value for the interval index; Different values ​​for the interval index may be associated with the same bin buffer 308. In a preferred embodiment of the present invention, the probability for one of two possible bin values ​​is estimated. Input bin 305 with inverse measures for the value (the inverse measures represent probability estimates P and 1-P) The bins (which are the same as the bin buffers 308) are fed into the same bin buffer 308. In an example, for example, the partial bit streams created are Two for the current bin with a specific bin buffer to ensure that The association of the measure for the evaluation of the probability for one of the possible bin values ​​is adaptive over time. Furthermore, in the following, the interval index is also called the pipe index. but piped in with flags indicating refinement indexes and more likely bin values. The index indexes the actual probability model (i.e., probability estimates).

[0049] Further, in a preferred embodiment of the present invention, the bin buffer selector 306 selects the output bin 307 is the probability for the unlikely or more likely bin value for the current bin The present invention determines the bin buffer 308 to be sent based on the relevant measurements for evaluation. In the preferred embodiment of The set of possible values ​​for the measurement for evaluation is limited and the bin buffer selector 30 6 fills exactly one bin buffer 308 with unlikely or more likely bin values Includes a table associated with each possible value of probability assessment for unlikely or unlikely events. Different values ​​for the measure for the evaluation of probability for likely bin values ​​are In a further preferred embodiment of the present invention, Probability for measures for evaluation of probability for unlikely or more likely bin values The range of possible values ​​is partitioned into many intervals, and the bin buffer selector 306 is unlikely , or the interval interval for the current measurement for the evaluation of the probability for a more likely bin value. The different values ​​for the interval index are related to the same bin buffer 308. In a further preferred embodiment of the present invention, for example, To ensure that the resulting partial bitstreams have similar bit rates , the unlikely or more likely for the current bin with a particular bin buffer. The association of the measurements for the evaluation of the probabilities for such bin values ​​is adapted over time.

[0050] Each of the two or more bin buffers 308 is connected to exactly one bin encoder 310, and each A bin encoder is only connected to one bin buffer 308. Each bin encoder 310 Reads bins from the associated bin buffer 308 and stores the sequence of bins 309 in bits. The bin buffer 308 converts the bins into code words 311 that represent the sequence. Bins that are entered later (in the order they occur) into the bin buffer 308 are added to the bin buffer. A particular bin is not coded before a bin that comes before it (in the order of occurrence). The output codeword 311 is written into a specific partial bit stream 312. The overall encoding algorithm divides the syntax element 301 into two or more partial bit streams. The number of partial bit streams is converted to bin buffer and bin code. In the preferred embodiment of the present invention, the bin encoder 310 is a variable length encoder. The various bins 309 are converted into code words 311 of varying bit length. One effect, discussed above and below, is that the encoding of bins can be done in parallel (e.g., for groups with different probability measures). loop), which reduces processing time for some implementations. Reduces.

[0051] Another advantage of embodiments of the present invention is that the bin encoding performed by the bin encoder 310 is The advantage is that the sensors 305 can be specifically designed for different sets of sensors. Bin coding and coding are performed for different groups of estimated probabilities (coding efficiency and On the one hand, this can be optimized (in terms of speed and / or complexity). This allows for a reduction in the coding complexity, which in turn allows for an improvement in coding efficiency. In the presently preferred embodiment, the bin encoder 310 selects two possible bins for the current bin. Different values ​​for different groups of measurements for the evaluation of the probability for one of the 305 The coding algorithm (i.e., mapping of bin sequences onto codewords) In a further preferred embodiment of the present invention, the bin encoder 310 Different measures for assessing the probability for unlikely or more likely bin values Implement different encoding algorithms for the groups.

[0052] In a preferred embodiment of the present invention, a bin encoder 310 - or one or more bin encoders The entropy generator maps a sequence of direct input bins 309 to a codeword 310. Such a mapping can be done efficiently and without complex arithmetic coding. No engine is required. The inverse mapping of the codewords is good for guaranteeing perfect decoding of the input sequence. However, the mapping of the bin sequence 309 to the codeword 310 is not necessarily optimal. It is not necessary that the bins are completely separated, i.e., a partial sequence of bins is It is possible that the sequence can be mapped onto a sequence. In the example, the mapping of the sequence of input bins 309 onto the codewords 310 is bijective: In a further preferred embodiment of the present invention, the bin coder 310 - or the bin coder One or more of the decoders maps the variable length sequence of input bins 309 directly onto the variable length codeword 310. In the preferred embodiment of the present invention, the output codeword represents a code without redundancy, such as a Huffman code or a standard Huffman code.

[0053] Two examples for bijective mapping of bin sequences to redundancy-free codes are presented. , as illustrated in Table 3. In a further preferred embodiment of the present invention, the output codeword is In a further preferred embodiment of the present invention, In the above, the output codeword represents an encryption code suitable for encrypting a syntax element.

[0054] [Table 3]

[0055] [Table 4]

[0056] In a further preferred embodiment of the present invention, the bin encoder 310 - or One or more - maps a variable length sequence of input bins 309 directly onto a fixed length codeword 310 In a further preferred embodiment of the present invention, the bin code The bin encoder 310—or one or more of the bin encoders—generates the input bins directly onto the variable length codeword 310. represents an entropy coder that maps a fixed length sequence of H.309.

[0057] A decoder according to an embodiment of the present invention is illustrated in Figure 8. The decoder is basically performs the reverse operation of the coder, resulting in the (previously coded) sequence of syntax elements 327 A decoded signal is decoded from a set of two or more partial bitstreams 324. The encoder contains two different procedural flows: a data element that replicates the encoder's data flow; The data flow shown in Figure 8 is the request flow and the reverse of the encoder data flow. In the example, dotted arrows represent data request flow and solid arrows represent data flow. The decoder components essentially replicate the encoder components, but perform the reverse operations. do.

[0058] Decoding the syntax element generates a new decoded syntax element 31 which is sent to a binarizer 314. In a preferred embodiment of the present invention, a novel decoding syntax Each claim in element 313 is associated with a category from a set of one or more categories. The category associated with a syntax element request is associated with the corresponding syntax element during encoding. This is the same category as the one used.

[0059] The binarizer 314 converts the request of the syntax element 313 into a binarized signal that is sent to the parameter allocator 316. The binarizer 314 maps the parameter to one or more requirements of the parameter allocator 31. As a final response to the bin requests sent to 6, the binarizer 314 The binarizer 314 receives the decoded bins 326 from the selector 318. The received sequence of 326 is converted into a binary sequence of the particular binarization scheme of the requested syntax element. If the received sequence of decoded bins 26 matches the binarization of the syntax element, , the binarizer empties its bin buffers and responds finally to requests for new decoded symbols. The decoded syntax elements are output as a response to the already received sequence of the decoded bins. The match must match any of the bin sequences for the binarization scheme of the requested syntax element. If not, the decoded bin sequence is the bin of the binarization scheme of the requested syntax element. The binarizer assigns other bins to the parameter assigner until it matches one of the bin sequences. For each syntax element request, the decoder sends The same binarization scheme is used for different syntax element categories. The binarization scheme for a particular syntactic element category can vary depending on the possible syntactic It may depend on the set of element values ​​and / or other properties of the syntactic element for a particular category. This can be done.

[0060] The parameter assigner 316 assigns a set of one or more parameters to each request in the bin. Then, it sends a request for the bin with the associated set of parameters to the bin buffer selector. The set of parameters assigned to the requested bin by the parameter allocator is The set of parameters is the same as that assigned to the corresponding bin during encoding. It can consist of one or more of the parameters mentioned in the encoder description of 7.

[0061] In a preferred embodiment of the present invention, parameter allocator 316 allocates each request for a bin. The same parameters as those used by the matcher 304, i.e., the current requested bin a measure for assessing the probability for unlikely or more likely bin values ​​for and which of the two possible bin values ​​is least likely for the current requested bin , or an identifier specifying a rating that represents a more likely bin value, such as for the evaluation of the probability for one of the two possible bin values ​​for the requested bin of Relate it to the context and its associated measurements.

[0062] The parameter assigner 316 assigns a parameter based on a set of one or more previously decoded symbols. The probability measure described above (one of two possible bin values ​​for the current requested bin) Measures for evaluating the probability for one, the likelihood for the current requested bin, or A measure for assessing the probability for a more likely or less likely bin value, where the identifier is the difference between two possible bins. Which of the values ​​is least likely or more likely for the currently requested bin The bins can be used to determine one or more of the following: The determination of the probability measure for a particular request in the encoder is performed by the processing in the encoder for the corresponding bin. The decoded symbols used to determine the probability measures are the same symbols. one or more of the already decoded symbols of one or more categories, adjacent spaces and and / or (with respect to the current request for syntax elements and the associated data set) of the temporal position (e.g. The same symbol corresponds to a data set (e.g., a block or group of samples). One or more already decoded symbols of the same category, or the same and / or adjacent the spatial and / or temporal (with respect to the dataset associated with the current request for the syntax element) One or more already decoded symbols of different symbol categories corresponding to the data set of the specific position The symbol may contain symbols.

[0063] The output of the parameter allocator 316 is a bidirectional vector having an associated set of parameters 317. Each request for a bin is input to the bin buffer selector 318. Based on the set, the bin buffer selector 318 routes the request for bins 319 to two or more Send to one of the bin buffers 320 and decode from the selected bin buffer 320 The decoded input bins 325 are potentially modified to The decoded output bins 326 have implicitly decoded values ​​according to the parameters 317. The bit set is sent to the binarizer 314 as the final response to the request for the bit.

[0064] The bin buffer 320 to which the bin requests are sent is similar to the bin buffer on the encoder side. The output bin of the selector is selected as the sent bin buffer.

[0065] In a preferred embodiment of the present invention, the bin buffer selector 318 selects the elements of the bin 319. Estimates the probability that the request is for one of two possible bin values ​​for the current requested bin. The bin buffer 320 to be sent is determined based on the relevant measurements for the In a preferred embodiment, a measure for assessing the probability for one of two possible bin values ​​is provided. The set of possible values ​​for is limited, and the bin buffer selector 318 selects one bin buffer. Associate each possible value with a probability estimate for one of the two possible bin values. It includes a table for calculating the probability for one of two possible bin values. Different values ​​for the bin buffer 320 may be associated with the same bin buffer 320. In a preferred embodiment, a measure for assessing the probability for one of two possible bin values ​​is provided. The range of possible values ​​for is partitioned into many intervals, and the bin buffer selector 318 selects two Interval index for the current measurement for evaluation of probability for one of the possible bin values The bin buffer selector 318 selects one bin buffer 320 for the interval interval. It contains a table that precisely associates each possible value for the index, and Different values ​​can be associated with the same bin buffer 320. In this case, the inverse measure (inverse The measurement is one where the probabilities represent P and 1-P. In a further preferred embodiment of the present invention, a particular bin buffer is of the probability evaluation for one of the two possible bin values ​​for the current bin request The measurement relationships for this purpose are adapted over time.

[0066] In a further preferred embodiment of the present invention, the bin buffer selector 318 selects the bin 31 9 requests the least likely or more likely bin value for the current requested bin Determine the bin buffer 320 to be sent based on the relevant measurements for the evaluation of the probability for In a preferred embodiment of the present invention, the unlikely or more likely bin values ​​are The set of possible values ​​for the measurement is limited and the bin buffer is used for the evaluation of the probability for The selector 318 selects one bin buffer 320 as either unlikely or more likely. It includes a table that accurately associates each possible value with a probability rating for the most likely bin value, Different values ​​for the measure for the evaluation of probability for a more likely bin value are The same bin buffer 320 can be associated with the bin buffer 320. Measures for assessing the probability for unlikely or more likely bin values ​​in The range of possible values ​​for is partitioned into many intervals, and the bin buffer selector 318 is For current measurements for probability assessment for unlikely or more likely bin values The bin buffer selector 318 determines the interval index of one bin buffer. Contains a table that associates each possible value for the interval index with exactly Different values ​​for the bin buffer 320 can be associated with the same bin buffer 320. In a preferred embodiment, the likelihood for a current bin request with a particular bin buffer is The relationship of the measure to assess the probability for a different or more likely bin value is time. Both can be adapted.

[0067] After receiving the decoded bins 325 from the selected bin buffer 320, The buffer selector 318 potentially modifies the input bin 325 and The bin buffer selector 31 sends the output bin 326 with the value to the binarizer 314. The 8 input / output bin mappings are assigned to the input / output bin buffer selectors on the encoder side. This is the inverse of force bin mapping.

[0068] In a preferred embodiment of the present invention, the bin buffer selector 318 modifies the bin values. That is, the output bin 326 always has the same value as the input bin 325. In the presently preferred embodiment, the bin buffer selector 318 receives the input bin values ​​325 and and two possible bin values ​​for the current requested bin associated with the request for bin 317 The output bin value 326 is determined based on the measurement for the evaluation of the probability for one of the In a preferred embodiment of the present invention, one of the two possible bin values ​​for the current bin request is A measure of the probability for one is less than (or equal to) a certain threshold ), the output bin value 326 is set equal to the input bin value 325; for the current bin request Is the probability measure for one of the two possible bin values ​​of greater than a certain threshold? If it is equal to (or greater than), the output bin value 326 is modified (i.e., it is greater than or equal to) the input In a further preferred embodiment of the present invention, the current bin value is set to the inverse of the input bin value. A measure of the probability for one of two possible bin values ​​for a search is below a certain threshold. If it is greater than (or greater than or equal to), the output bin value 326 is equal to the input bin value 325. Set equal; probability for one of the two possible bin values ​​for the current bin request If the measurement for is less than or equal to (or smaller than) a certain threshold, output bin value 32 6 is modified (i.e., it is set to the inverse of the input bin value). In a preferred embodiment, the threshold value is set to a value of 0.5 for the estimated probability for both possible bin values. Respond.

[0069] Further, in a preferred embodiment of the present invention, the bin buffer selector 318 selects the input bin values. 325, and which of the two possible bin values ​​corresponds to the current bin request associated with the request for bin 317. Identification that defines the assessment of whether a bin value represents an unlikely or more likely value for a given condition. In a preferred embodiment of the present invention, the identifier is The first of the two possible bin values ​​is unlikely (or more likely) for the current bin request. If the output bin value 326 is a bin value that represents the most likely bin value, then the output bin value 326 is a bin value that represents the most likely bin value. 5, the identifier is the second of the two possible bin values ​​for the current bin request. If you indicate that it represents an unlikely (or more likely) bin value of The bin value 326 is modified (ie, it is set to the inverse of the input bin value).

[0070] As mentioned above, the bin buffer selector can route bin 319 requests to two or more bin buffers. The bin buffer 20 transmits the data to one of the connected bin decoders 322. represents a first-in-first-out buffer fed by the sequence of bins 321 decoded from Bin 319 requests sent from the bin buffer selector 318 to the bin buffer 320 In response to the The bin buffer selector 318 selects the bins of the data and sends them to the bin buffer selector 318. Bins sent to 0 early are moved early and sent to the bin buffer selector 318. can be.

[0071] Each of the two or more bin buffers 320 is connected to exactly one bin decoder 322, and each A Gon decoder is only connected to one Gon buffer. Each bin decoder 322 is connected to another Partially read codeword 323 representing a sequence of bits from bit stream 324 The bin decoder 320 receives the codeword 323 from the bin 320. 21 sequence. The whole decoding algorithm is done by splitting two or more partial bits Convert the stream 324 into a number of decoded syntax elements and the number of partial bit streams is equal to the number of bin buffers and bin decoders, and decoding a syntax element is performed by In a preferred embodiment of the present invention, the bin decoder 322 Converting a variable number of bit codewords 323 into a sequence of variable number of bins 321 One advantage of embodiments of the present invention is that it allows for the extraction of bins from two or more partial bit streams. The decoding of can be done in parallel (e.g., for different groups of probability measurements). This reduces processing time for some implementations.

[0072] Another advantage of embodiments of the present invention is that the bin decoding performed by the bin decoder 322 is parallel. The advantage is that the meter 317 can be specifically designed for different sets of meters. In other words, bin encoding and decoding are performed for different groups of estimated probabilities (encoding efficiency). On the one hand, this can be optimized (in terms of speed and / or complexity). Compared to state-of-the-art entropy coding algorithms with comparable coding efficiency, On the other hand, it can reduce the complexity of the encoding / decoding. Coding efficiency is improved relative to state-of-the-art entropy coding algorithms with decoding complexity. In a preferred embodiment of the present invention, the bin decoder 322 For the evaluation of the probability for one of two possible bin values ​​317 for the current bin request, Different decoding algorithms (i.e., the number of steps on the codeword) for different groups of measurements are used. In a further preferred embodiment of the present invention, The decoder 322 generates the least likely or more likely values ​​for the current requested bin. Different decoding algorithms for different groups of measurements for the evaluation of probabilities for different bin values. Perform the rhythm.

[0073] The bin decoder 322 performs the inverse mapping of the corresponding bin encoder on the encoder side. do.

[0074] In a preferred embodiment of the present invention, bin encoder 322 - or one or more bin encoders - entropy decoding, which maps the codeword 323 directly onto the sequence of bins 321 Such a mapping can be done efficiently and does not require complex arithmetic coding engines. The mapping of a codeword onto a sequence of bins must be unique. In the preferred embodiment of the present invention, the codewords on the sequence of bins 321 are The mapping of 323 is bijective. In a further preferred embodiment of the present invention, the bin code The encoder 310—or one or more of the bin encoders—can directly encode a variable length sequence of bins 321. 3 shows an entropy decoder for mapping variable length codewords 323. In this case, the input codeword is a general or standard Huffman code. represents a redundancy-free code like this. Two examples for coding are illustrated in Table 3.

[0075] In a further preferred embodiment of the present invention, the bin decoder 322 - or one of the bin decoders One or more - mapping fixed length codewords 323 directly onto a variable length sequence of bins 321. In a further preferred embodiment of the present invention, the bin decoder 32 2—or one or more of the bin decoders—applies variable length coding directly to the fixed length sequence 321 of the bins. 323 represents an entropy decoder that maps code words 323.

[0076] Thus, Figures 7 and 8 show an encoder for encoding a sequence of symbols 3 The encoder is a decoder that can process a large number of parameters. an allocator 305 configured to allocate a data 305 to each symbol of the sequence of symbols; 04. Assignment is the assignment of a syntax element to a representation - such as a binarization - to which the current symbol belongs. Based on the information contained in the previous symbols of a sequence of symbols such as category 1 According to the syntactic structure of syntactic element 1, which prediction is currently based on the previous syntactic element 1 and syntactic element 2? It is predicted that each of the three can be inferred from the history of the first three. The symbols 3 sent to each entropy encoder 10 are converted into the respective bit streams 312, and a plurality of entropy encoders 10 converting each symbol 3 into a plurality of a selector 306 configured to route the data to a selected one of the entropy encoders 10; The selection depends on the number of parameters 305 assigned to each symbol 3. The allocator 304 aggregates the selectors 206 to obtain the respective selectors 502. It is believed that this will be the case.

[0077] A decoder is required to recreate the sequence of symbols, each of which is encoded in its own bit stream. a plurality of entropy decoders 322 configured to convert the image 323 into symbols 321; ;reproduced based on information contained in previously reproduced symbols in a sequence of symbols A plurality of parameters 317 are assigned to each symbol 315 of a sequence of symbols to be an allocator 316 (see 326 and 327 in FIG. 8) configured to The selection of the tropy decoder 322 (selection by the number of parameters defined for each symbol) It is configured to search for each symbol in a sequence of symbols reproduced from one selected The selection is based on a number of parameters specified for each symbol. It depends on the number of parameters assigned to each symbol, or The symbol is assumed to be a measure for assessing the probability of distribution between possible symbol values. The allocator 316 is configured as follows. The allocator 316 and the selector 318 are also configured as one This block can be considered to be incorporated into the selector 402. The sequence of bits may be a binary alphabet, and the assigner 316 may The least likely or more likely of the two possible bin values ​​of the alphabet It includes a measure for assessing probability, and the discriminator determines which of two possible bin values ​​is more likely. The assigner 316 determines whether the bin value is better or more likely. of symbols reproduced in each context with their respective probability distribution estimates associated with them. are reproduced based on information contained in previously reproduced symbols of the sequence, and each Each context is assigned based on the previously recalled symbol. Adapting the probability distribution estimate for each of the 315 sequences of symbols to the actual symbol statistics The context can be, for example, a video or in image coding, or even in tables in the case of financial applications , we can consider the spatial relationship or neighborhood of the locations to which the syntax elements belong. The measurement for the estimation of the probability distribution for each symbol is calculated by, for example, quantization. The context associated with the symbol or index into the respective table The probability distribution estimate can be determined based on the probability distribution estimate used as a probability Distribution (pipe index that indexes the partial bit stream 312) ) to obtain a measure for the evaluation of multiple probability distribution evaluation expressions (apart from the improved index Each symbol (in the following example, the improved index) is The context is allocated by the pipe index (along with the The selector is a bijective association between multiple entropy coders and multiple probability coders. The selector 18 determines the symbol sequence over time. A predetermined deterministic probability distribution is calculated from the range of probability distributions corresponding to the symbols reproduced before the sequence. The method is configured to convert the quantization mapping into a plurality of probability distribution evaluation representations. That is, the selector 318 can select the quantization step size, i.e., the individual entropy values. The probability distributions are mapped to individual probability indices that are projectively related to the peak decoder. The spacing can vary. The multiple entropy decoders 322 sequentially quantize the symbols. Adapt their conversion method to the bit stream in response to changes in the encoding mapping For example, each entropy decoder 322 may be configured to Each probability distribution estimate is optimized for a certain probability distribution estimate within the quantization interval. That is, it is possible to have an optimal compression ratio, and the latter changes with respect to the respective probability distribution evaluations. The position of a particular probability distribution evaluation is adapted to be optimal within the quantization interval. The codeword / symbol sequence mapping can be changed. The selector is used to select the quantization map so that the rates retrieved from the entropy decoder are less dispersed. It should be noted that the binarizer 314 can be configured to change the syntax element If is already binary, it is set aside. In addition, the buffer 320 may be used to store the data of the decoder. It can be accumulated within a range.

[0078] End of finite syntax element array

[0079] In a preferred embodiment of the present invention, encoding and decoding is performed for a finite set of syntax elements. Often, data such as still images, frames or fields of a video sequence are A specific amount of data, a slice of an image, a slice of a frame or a field of a video sequence or a set of consecutive speech samples, etc. For a finite set of syntax elements, In general, partial bitstreams created at the encoder side must be terminated. Not all syntax elements are transmitted or stored partial bit streams. It must be ensured that the last bin can be decoded from the stream. After being input into the corresponding bin buffer 308, the bin encoder 310 ensures that the complete codeword must be written to the partial bit stream 312. Entropy coder 310 performs a direct mapping of the bin sequence onto the codeword. When representing a bin, the bins stored in the bin buffer after the last bin is written to the bin buffer are The bin sequence may not represent the bin sequence associated with the codeword (i.e., (This may represent a prefix of two or more bin sequences associated with the codeword.) In such cases, the associated bin sequence includes the bin sequence of the bin buffer as a prefix. One of the concatenated codewords must be written in the partial bit stream (The bin buffer must be flushed.) Until a codeword is written, this This can be done by inputting bins with specific or arbitrary values ​​into the bin buffer. In a preferred embodiment of the present invention, the bin encoder is In addition to the property that it must contain the bin sequence of the bin buffer as a prefix, At the decoder side, the bin decoder 322 selects one of the codewords having a minimum length. Decode more bins than are needed for the last codeword of the partial bit stream These bins are not claimed by the bin buffer selector 318, are discarded and ignored. Decoding a finite set of symbols is Controlled by demand; if no further syntax elements are required due to the amount of data, decoding will end.

[0080] Partial bitstream transmission and multiplexing

[0081] The partial bitstream 312 created by the encoder is transmitted separately. or they can be multiplexed into a single bit stream, The codewords of the partial bit streams are interleaved in the single bit stream. It can be done.

[0082] In an embodiment of the present invention, each partial bit stream for the amount of data is 1 The amount of data written is divided into two data packets. a field or frame of a still photograph, a field or frame of a video sequence It is an arbitrary set of syntax elements such as slices of audio or frames of audio samples. can.

[0083] In another preferred embodiment of the present invention, the amount of data is a partial bit stream or The amount of data is two or more of all partial bit streams of one data The data packets containing the multiplexed partial bit streams are multiplexed into packets. The structure of the compound is illustrated in FIG.

[0084] The data packet 400 includes a header and each partial bit (for a given amount of data). Contains one partition for the data stream and the header of the data packet. The data packet (remaining part) is then sent to the data buffer 400 as a segment of the bit stream data 402. In addition to the division indicator, the header may contain additional information. In a preferred embodiment of the present invention, a table for dividing data packets may be included. The display is a data set in units of bits or bytes or various bits or various bytes. In the preferred embodiment of the present invention, the start position of the data segment The start position may be relative to the start of the data packet or relative to the end of the header. , or the absolute value of the data packet title relative to the beginning of the previous data packet In a further preferred embodiment of the present invention, the beginning of the data segment is encoded as The position of the data segment is coded differently, i.e., the actual start of the data segment and the Only the difference from the prediction for the beginning of the segment is coded. the total size of the packet, the size of the header, the number of data segments in the data packet, the based on information already known or transmitted, such as the location of the beginning of a data segment. In a preferred embodiment of the present invention, the first data packet The location of the start of the packet is not coded but is estimated based on the size of the data packet header. At the decoder side, the transmitted partition indication derives the start of the data segment. The data segments are then used as partial bit streams. The data contained in the data segments are input to the corresponding bin decoders in the order of the segments. It can be done.

[0085] There are several options for multiplexing partial bit streams into data packets: This reduces the required side information, especially when the partial bit stream is very small. One option is illustrated in Figure 10. The load, i.e., the data packet 410 without its header 411, is segmented in a predetermined manner. As an example, the data packet payload is partitioned into equal-sized cells 412. Each segment can then be divided into partial bit streams. Partial bitstream 413 If the data stream is larger than the associated data segment, the remainder 414 is used for other data This is placed in the unused space at the end of the data segment. The remaining part is entered in reverse order (starting from the end of the data segment). It can be used to reduce the side information. The relationship to the data segment and, if one or more remainders are attached to the data segment, the remainders One or more of these are signaled within the bit stream, for example in a data packet header. It must be done.

[0086] Interleaving variable-length codewords

[0087] For some applications, a partial (for the amount of syntax elements) of one data packet The above-described multiplexing of bit streams may have the following disadvantages: on the one hand, small For small data packets, the side information needed to signal the segmentation The number of bits for the partial bit stream becomes important in relation to the actual data On the other hand, multiplexing can reduce the number of frames (e.g., For applications requiring low latency (e.g., for video conferencing applications), Not suitable. For the multiplexing described, the start position of the partition is Because it is not known to the encoding team, the partial bit stream is not encoded before it is fully created. Furthermore, in general, it is not possible for a data packet to be transmitted by a It receives the beginning of the last data segment before it can begin decoding the bit. The decoder must wait until the (especially for bit rates close to the transmission bit rate, and Encoders / decoders that require close time intervals between two images This results in additional overall delay in the system for some video images (due to the decoder). This has a decisive impact on this type of application. To overcome this disadvantage, the encoder of the preferred embodiment of the present invention uses two or more bins. The codewords generated by the encoder are interleaved into a single bit stream. A bit stream with interleaved codewords can be can be transmitted directly to the decoder (when ignoring buffer delay, see below). At the decoder side, two or more bin decoders extract the codes directly from the bit stream in decoding order. Upon reading a word, decoding can begin with the first received bit. , multiplexing (or interleaving) of partial bit streams to signal side information No information is required. The bin decoder 322 reads the variable length codewords from the global bit buffer. A further method of reducing decoder complexity can be achieved when not reading Instead, they always take a fixed length sequence of bits from a global bit buffer. It reads sequences of bits and adds these fixed-length sequences of bits to a local bit buffer. Thus, each bin decoder 322 is connected to a separate local bit buffer. The word is then read from the local bit buffer. The parsing of can be parallelized, and only the access of fixed-length sequences of bits is synchronous. However, such access of a fixed length sequence of bits is usually It is very fast, and as a result the overall decoding complexity is reduced for some architectures. The fixed number of bins sent to a particular local bit buffer can be reduced. The bin decoder, bin buffer or Depending on certain parameters as the bit buffer events, it changes over time However, the number of bits read by a particular access is It does not depend on the actual bits read during a particular access, but on the variable length codeword This is an important difference from reading a fixed length sequence of bits. triggered by a specific event in the bin decoder or local bit buffer As an example, when the number of bits present in the connected bit buffer is less than a predetermined threshold, When the number of bits decreases to 1, it is possible to request the reading of a new fixed-length sequence of bits. This allows different thresholds to be used for different bit buffers. It must be guaranteed that the fixed-length sequence of bins is input to the bit stream in the same order. They must be read from the bitstream at the decoder side. It is also possible to combine this interleaving of operations with low latency control similar to that described above. Below, a preferred embodiment for interleaving fixed length sequences of bits is described. For more details regarding the latter interleaving scheme, see WO2011 / 128268 Referenced by A1.

[0088] Previously described coding techniques have been used to compress video data. After describing the examples, further examples for carrying out the embodiments of the present invention are given on the one hand. On the other hand, for a good trade-off between compression ratio and look-up table and computational overhead. A particularly effective implementation is shown. In particular, the following example demonstrates how to individually encode the bitstreams. The data is then coded to a variable length, computationally inexpensive way to effectively cover the probability estimation part. In the embodiment described below, the symbols are binary. The VLC code published below uses R that extends between [0;0.5], for example. LPS By This effectively covers probability evaluations expressed as

[0089] In particular, the examples outlined below each incorporate the individual entries shown in FIGS. 3 shows an image or video compression encoder 310 and decoder 322. As they occur in applications, they are coded into bins, i.e. binary symbols. Therefore, these embodiments may be applied to image or video coding. Such binary symbols are encoded into bins 307 and decoded into Each such bin stream is separated into one or more bit streams 324. , can be considered as a realization of the Bernoulli process. To encode the stream, one or more so-called variable-to-v v2v-code uses variable-code (v2v-code). The first and second prefix codes can be thought of as two prefix codes with the same number. Each codeword of a prefix code is associated with one codeword of a second prefix code. According to one embodiment, at least some of the encoders 310 and decoders 322 are To encode a particular sequence of bins 307, a first prefix code Whenever a codeword of is read from buffer 308, the corresponding codeword of the second prefix The codewords are written into a bit stream 312. A similar procedure is used to encode the digits, but with the first and second prefix codes substituted. That is, to decode the bit stream 324, the codeword of the second prefix is Whenever the first prefix is ​​read from each bit stream 324, The corresponding codewords of are written to buffer 320.

[0090] Advantageously, the code described below does not require a look-up table. The code is a finite state machine. The v2v-code presented here stores a large table for the codewords. Instead, it can be generated by simple structural rules such that Simple algorithms can be used to perform the encoding or decoding. The construction rules are listed below, two of which can be parameterized. They cover different or disjoint parts of the aforementioned probability interval and are therefore parallel (each Encoder / Decoder 11 and 22 are different) or These two are particularly advantageous when used together, as are all three codes. Regarding the structural rules, for a Bernoulli process with any probability p, One is to design a set of v2v-codes that perform well with respect to excess code length. It is possible.

[0091] As mentioned above, the encoding and decoding of streams 312 and 324 is performed by the respective It can also be performed stream by stream or in an interleaved manner. However, this is not specific to the indicated type of v2v-code and therefore does not apply to a particular code Only the encoding and decoding of words is described for each of the three structural rules below. However, it is emphasized that all of the above embodiments relating to interleaved solutions The presently described codes or encoder and decoder 310 and 322, respectively, and can be combined.

[0092] Structure Rule 1: "unary bin pipe" code or encoding Coder / Decoder 310 and 322

[0093] Single bin pipe code (PIPE = probability interval partition entropy) al partitioning entropy) is a so-called "binpipe" code, i.e., A special version of the code suitable for encoding either 12 or 24 streams, Binary symbols each belonging to a specific probability subinterval of the probability range [0;0.5] mentioned above. Transferring data for BOL statistics. The structure of the BOL pipe code is described first. A bin-pipe code consists of any prefix code with at least three codewords. To form a v2v-code, prefixes can be used as the first and second codes. code, but swapped with two code words of the second prefix code. This means that the two code words means that the bins are written without being turned into a bitstream, except For this technique, only one prefix code is used, and two code words are exchanged to reduce memory consumption. The cost of storing code words is reduced by the number of bits required to be stored together with the information. It makes sense to do this, otherwise the bit stream will be a bin stream. (ignoring effects that may occur at the end of the bin stream) Note that this is because

[0094] Because of this construction rule, the distinguishing feature of the binpipe code is the first and second prefixes If the codes are swapped (the codeword mapping is preserved), the resulting v2v-code The code is identical to the original v2v-code. The encoding and decoding algorithms are identical in the Bin Pipe code.

[0095] The unary bin pipe code is constructed from a special prefix code. This special prefix code is It is created as follows: First, a prefix code consisting of n code words is "01", Starting with "001", "0001", ..., n is generated until a codeword is created. , are parameters of the unary bin pipe code. From the longest codeword, a sequence of 1s is taken. This corresponds to the shortened unary code (but without the code word "0"). , n-1 unary code words start with "10", "110", "1110", ..., and The longest of these code words is then generated until a single code word is created. The combined set of these two prefix codes is the unary bin-pipe code The two code words to be exchanged are composed of 0s. and those consisting only of 1s.

[0096] Example for n=4: Nr 1st 2nd 1 0000 111 2 0001 0001 3 001 001 4 01 01 5 10 10 6 110 110 7 111 0000

[0097] Structural Rule 2: "Unary to rice" Code and Unary to rice Encoder / Decoder 1 0 and 22:

[0098] Unary to rice codes use abbreviated unary codes as the first code, i.e. The unary code words are "1", "01", "001", and so on. n +1 codeword occurs The longest codeword is generated until n is reached, and then consecutive ones are removed from the longest codeword. e is a parameter of the code. The second prefix code is the code of the first prefix code as follows: For the first codeword, which consists only of 0s, the codeword "1" is assigned. All other code words are assigned n-bit prefixes with the number 0s corresponding to the first prefix code. The codeword has a binary representation and is composed of a concatenation of "0"s.

[0099] Example for n=3: Nr 1st 2nd 1 1 0000 2 01 0001 3 001 0010 4 0001 0011 5 00001 0100 6 000001 0101 7 0000001 0110 8 00000001 0111 9 000000001 1 This is equivalent to mapping an infinite unary code to a rice code with rice parameters. Note that there is.

[0100] Structural Rule 3: Three-bin code The sleeve code is given as follows: Nr 1st 2nd 1 000 0 2 001 100 3 010 101 4 100 110 5 110 11100 6 101 11101 7 011 11110 8 111 11111

[0101] The first code (symbol sequence) is of fixed length (always 3 bins) and the codeword are sorted by ascending order of 1s.

[0102] An efficient implementation of the sleeve-bin code is described below. The encoder and decoder for this can be done without a storage table as follows: do.

[0103] In the encoder (any of the 10), the three bins are divided into a bin stream (i.e., 7). If these three bins contain exactly one 1, the codeword "1" is is written to the bit stream, followed by one (starting from the right with 00) position followed by two bins consisting of the binary representation of . If the three bins contain exactly one zero, then The code word "111" is written into the bit stream, followed by 0 (00) from the right The remaining codewords "000" and "000" are followed by two bins consisting of the binary representation of the position of the "0" and "111" are mapped to "0" and "11111", respectively.

[0104] In the decoder (one of 22), one bin or bit is assigned to each bit - Read from stream 24. If it is equal to "0", the codeword "000" is If it is equal to "1", two more bins are decoded into bit stream 21. Read from stream 24. If these two bits are not equal to "11" , they are interpreted as a binary representation of the number, with two 0s, so that the position of the 1 is determined by the number. and one 1 are decoded into the bit stream. Two bits equal "11" If the number is 3, two more bits are read and interpreted as the binary representation of the number. If it is smaller, two ones and one zero are decoded, and the number determines the position of the zero. If is equal to 3, then "111" is decoded into the bin stream.

[0105] An efficient implementation of the unary bin pipe code is given below: Unary Bin Pipe The encoder and decoder for the code can be efficiently implemented using counters. Due to the structure of the bin pipe code, encoding and decoding of the bin pipe code is It is easy to perform.

[0106] In the encoder (any of 10), if the first bin of the codeword is equal to "0", The code is read until a "1" occurs or n zeros are read (including the first "0" in the codeword). ), the bin is processed. If a "1" occurs, the read bin is left unchanged. otherwise (i.e., n zeros are read), n - One 1 is written into the bit stream. The first bin of the codeword is equal to '1'. If so, n-1 ones are read until a "0" occurs or until the first " Bins are processed until a '0' occurs (including '1'). If a '0' occurs, the read bin remains unchanged. otherwise (i.e., n-1 1s are read) If n is included, n zeros are written into the bit stream.

[0107] In the decoder (either 322), this is the same bin pipe code as above. So the same algorithm is used as for the encoder.

[0108] An efficient implementation of the unary to rice code is given below: The encoder and decoder for the code can be done using counters as described below. This can be done efficiently.

[0109] In the encoder (one of 310), the signal is read until a 1 occurs or until a 2 occurs. n 0's The bins are read from the bin stream (i.e. 7) until the number of 0s is reached. The number counted is 2 n If the bitstream is equal to , the codeword "1" is written to the bitstream. Otherwise, a "0" is written and the n-bit count is written. Inari's expression continues.

[0110] At the decoder (one of 322), a 1 bit is read. If necessary, 2 nn 0s are decoded into the bin string. If it is equal to '0', More bits are read and interpreted as the binary representation of the number. The byte is decoded downstream and is followed by a "1".

[0111] TIFF2025170279000006.tif113169

[0112] TIFF2025170279000007.tif108169

[0113] TIFF2025170279000008.tif67169

[0114] TIFF2025170279000009.tif51169

[0115] TIFF2025170279000010.tif92169

[0116] Also, a given one of the encoder's entropies is sent to a given entropy coder. When converting the symbols into their respective bit streams, a given encoding in the triplet is used. For a tropy coder, (1) if the triplet consists of a, then the given entropy The encoder is configured to write a codeword (c) into each bit stream, (2) If the triplet is indeed composed of one b, then each bit stream For a given entropy coder, the codewords with (d) as prefix and (d) as suffix are (3) a triplet is constructed to write a 2-bit representation of the position of b in the triplet. If a term consists of exactly one a, then for each bit stream, The entropy coder generates codewords with (d) as a prefix and the first suffix of position a in the sequence and triplet of the first 2-bit word that is not an element of the bit is constructed to write a 2-bit representation, or (4) if the triplet is constructed with b , a given entropy coder uses a prefix (d ) and a second 2-bit suffix that is not an element of the first set A sequence of words and a sequence of first 2-bit words that are not elements of the second set The method is configured to check whether the program is configured to write

[0117] TIFF2025170279000011.tif108169

[0118] Each of the first subset of entropy coders synthesizes the respective bit stream. When converting to a symbol, (1) if the first bit is equal to 0 {0,1}, The entropy coder is (1.1) b ≠ a and b 0 {0,1}, where b is the first bit following Each entropy decoder decodes each bit if it occurs in the next n-1 bits. A bit sequence of symbols equal to the first bit in the bit stream followed by the next bit b, or (1.2) the next n-th bit following the first bit. If b does not occur in one bit, each entropy decoder will )n-1, whether the is configured to examine the next bit of each bit stream to determine , or (2) if the first bit is equal to b, each entropy decoder .1) If a occurs in the next n-2 bits following the first bit, then The tropy decoder equates the first bit to the next bit in each bit stream. is configured to reproduce a sequence of symbols up to symbol a, or (2 .1) If a does not occur in the next n-2 bits following the first bit, then The entropy decoder is (a, ,a) n to reproduce a sequence of symbols equal to The next bit of each bit stream determines whether to determine whether the device is configured to check the It is configured to examine the first bit of the stream.

[0119] TIFF2025170279000012.tif72169

[0120] TIFF2025170279000013.tif57169

[0121] TIFF2025170279000014.tif92169

[0122] TIFF2025170279000015.tif124169

[0123] Now, after describing the general concept of video coding schemes, embodiments of the present invention will be described. In other words, the examples outlined below are carried out using the above method. The above encoding schemes can be implemented using the example outlined below, and vice versa. It can be used effectively.

[0124] In the embodiment described with respect to FIGS. 7-9, the entropy encoder of FIGS. The decoder is implemented according to the PIPE concept. One particular implementation is arithmetically We used encoders / decoders 310 and 322 with probability states of 0.01 and 0.02. As will be described later, an alternative implementation By way of example, components 306-310 and corresponding components 318-322 are general elements. It can be replaced with an entropy encoding engine, for example, as further described below. Considering an arithmetic coding engine, it simply manages one general state R and L. , all symbols are encoded into one common bit stream, thereby enabling parallel processing. It abandons the advantageous aspects of the current PIPE concept, but allows for partial bitstreams. This avoids the need for interleaving, where context probabilities are updated (e.g., The number of probability states estimated by the The number of probability states can be higher than the number of states to be calculated. Similar to quantizing the probability interval width value before it is assigned, the probability state index is quantized. For a possible implementation for one encoder / decoder 310 and 322, The above description of the context-adaptive binary arithmetic encoding / decoding engine is as follows: , extending to an embodiment of the realization of the entropy encoder / decoder 318-322 / 306-310. It is possible.

[0125] More precisely, according to an embodiment, a parameter allocator (here, a context allocator) The entropy coder attached to the output of the It is possible.

[0126] TIFF2025170279000016.tif134170

[0127] Similarly, the output of the parameter allocator (which acts here as a context allocator) The force-attached entropy decoder can operate as follows.

[0128] TIFF2025170279000017.tif167169

[0129] As described above, the allocator 4 allocates pState_current[bin] to each bin. The association is based on the context selection. Context index with its associated pState_current You can select the context using the ctxIdx. Probability Update is executed at each time, and the state pState_current[bin] is the current bin. The update of the probability state pState_current[bin] is It is performed depending on the value of the coded bits.

[0130] TIFF2025170279000018.tif26162

[0131] If one or more contexts are provided, the match is contextual, i.e. That is, pState_current[ctxIdx] is used for encoding, and and updated with the current bin value (encoded or decoded, respectively). can

[0132] As outlined in more detail below, according to the presently described embodiment, The coder and decoder can operate in different modes: low complexity (LC) and high efficiency (HE) ) mode, which is relevant for the following PIPE encoding: Although primarily exemplified by (and referring to LC and HE PIPE modes), The detailed description of the extension of the scalability is given in the following section, which is implemented using a common context-adaptive arithmetic coder / decoder. The example entropy encoding / decoding engine is easily transferable to other embodiments.

[0133] According to the embodiment outlined below, both entropy coding modes share can be done. Same syntax and behavior (for syntax element sequences 301 and 327, respectively) The same binarization scheme for all syntax elements (currently specified for CABAC) (i.e., the binarizer can operate regardless of the mode in which it is operated. cut) Use of the same PIPE code (i.e., the bin encoder / decoder must be in the same mode). can be operated without any change) Use of 8-bit probability model initialization values ​​(as currently specified for CABAC) instead of the 16-bit initialization value)

[0134] Generally speaking, the complexity of selecting a PIPE path 312 for each bin (e.g., Thus, LC-PIPE differs from HE-PIPE in processing complexity.

[0135] For example, the LC mode can operate under the following constraints: dx), there is exactly one probability model (i.e., one ctxIdx). That is, context selection / adaptation cannot be provided in the LC PIPE. As further outlined below, particular features such as those used for residual coding are Certain syntax elements are coded using context. Furthermore, all probability models are non-compliant. All models are adaptive (with respect to slice type and slice QP). The model probability is initialized at the beginning of each slice with the appropriate model probability (depending on the selection) and is used throughout the processing of the slice. It can be kept fixed across the body. For example, context modeling For both logging and encoding, eight different PIPE codes 310 / 322 are used. Only different model probabilities can be supported. The elements, namely, significance_coeff_flag and coeff_ abs_level_greaterX(X=1,2) is a function whose behavior is outlined below. For example, a group of (at least) four syntax elements is encoded / decoded with equal probability. In comparison with CAVLC, The LC-PIPE mode achieves roughly the same RD performance and the same throughput. Accomplish.

[0136] H.264 CABAC is conceptually similar to H.264 CABAC with the following differences: It can be configured to: Binary Arithmetic Coding (BAC) (as in the C-PIPE case). ctxIdx can be represented by pipeIdx and refineIdx. The pipeIdx has a value in the range from 0 to 7, and is one of eight different PIPE codes. This change represents the behavior of the state machine (i.e., probability evaluation) itself, but not the behavior of the state machine itself. As outlined in more detail below, probabilistic models affect only the internal representation of the state. As mentioned above, the initialization of the syntax element c can use an 8-bit initialization value. oeff_abs_level_greaterX(X=1,2), coeff_abs _level_minus3 and coeff_sign_flag (their behavior is explained below) Backward scanning of the This can be done along the same scanning path as the forward scan (used with the coe Context for encoding ff_abs_level_greaterX(X=1,2) The derivation of the test can also be simplified. Compared to CABAC, the proposed HE-PI The PE achieves roughly the same RD performance with better throughput.

[0137] The just mentioned modes operate in different modes, e.g. Generated immediately by rendering the text adaptive binary arithmetic encoding / decoding engine It's easy to know that it will.

[0138] Thus, according to an embodiment of the first aspect of the present invention, the data stream is decoded. A decoder for this purpose can be made as shown in Figure 11. Interleaved bit streams in which media data such as video data is encoded The decoder is intended to decode a data stream 401 such as the stream 340. Depending on the data stream 401, a low complexity mode or a high efficiency mode may be activated. For this purpose, the data stream 401 is , has a binary value of 1 in the low complexity mode, which is the one that is activated, In the high efficiency mode, the binary syntax element Obviously, the association between binary values ​​and encoding modes is non-binary syntax elements with more than two possible values ​​may be used as well. The actual choice between both modes is yet to be made prior to the acceptance of each syntax element. Since it is not obvious, this syntax element may be used to evaluate, for example, a fixed probability or probability Data stream 4 encoded in rate model or as is using bypass mode 01 and contained within several key headers of the data stream 401 It is possible.

[0139] Furthermore, the decoder of FIG. 11 converts each codeword of the data stream 401 into a sequence of symbols. a plurality of entropy decoders 322 configured to convert the partial sequences 321 into As mentioned above, the deinterleaver 404 includes, on the one hand, the entropy decoder 322 11. On the other hand, the decoder 401 is connected between the inputs of the decoder 401 and the decoder 402. Furthermore, as already mentioned above, each of the entropy decoders 322 Each is associated with a probability interval and takes the MPS and LPS rather than the absolute symbolic values. For the entropy decoder 322 we deal with, the probability intervals of the various entropy decoders are 0 to to 1 - or 0 to 0.5 together covering the entire probability interval. The details of this are explained above. Later, we will explain how to use the PIPE index assigned to each decoder. It is assumed that the number of decoders 322 is eight, but any other number is possible. In the following, one of these coders with pipe_id 0 as an example is The probability of occurrence is optimized for bins with certain statistical values, i.e., those bin values ​​are high. 1 and 0 are considered to be equally likely. Each encoder 310 operates in the same way. Selectors 402 and 502 select the most likely bin value, valMPS, by the value of Even any bin operations can be kept separate. The entropy of each partial stream is already optimal.

[0140] Additionally, the decoder of FIG. 11 converts each symbol in the sequence of symbols 326 into multiple encoded a selector 402 configured to search from a selected one of the tropy decoders 322; As described above, the selector 402 includes the parameter assigner 316 and the selector 317. The desymbolizer 314 may be used to obtain a sequence of syntax elements 327. The decoder 404 is configured to decode the sequence of symbols 326 to configured to reproduce media data 405 based on a sequence of sentence elements 327 The selector 402 is in low complexity mode and low complexity mode, as indicated by arrow 406. The device is configured to perform the selection in response to one of the high efficiency modes of operation.

[0141] As already mentioned above, the reconstructor 404 operates on certain syntax and behavior of syntax elements. That is, the mode switch 400 is used to select a mode and provide a fixed indication. The decoder 404 may be part of a block-based video decoder. For more accuracy, the reconstructor 404 does not suffer from mode switchability. The mode switchability exhibited by the mode switch 400 increases implementation overhead. The remaining data is at least functional and predictive, which Regardless of the mode selected by switch 400, the same applies to The same is true for the tropy decoder 322. All these decoders 322 are The decoder in Figure 11 is reused in both modes, thus allowing for low complexity and high efficiency. Compatible with rate mode but without the additional implementation overhead.

[0142] As an accompanying aspect, the decoder of FIG. 11 may be self-contained in one mode or the other. It should be noted that it is not only possible to operate on a single data stream. Rather, the decoding depends on external or environmental conditions, such as battery status. To control the coding complexity in the model, and consequently to provide fixed-loop control of model selection. A feedback channel from the decoder to the encoder is used to obtain the video or some between one element of media data, such as between audio elements of 11 is configured similarly to the data stream 401 so that switching is possible. It is done.

[0143] Thus, when LC mode or HE mode is selected, The decoder of Figure 11 operates in the same way in either case. Performing reconstruction using sentence elements and processing or following some syntactic structure rules Thus, the desymbolizer 314 requests the current syntax element of a given syntax element type. To produce a valid binarization for the syntax elements required by the reconstructor 404, multiple Obviously, in the case of a binary alphabet, the desymbolizer 3 The binarization performed by 14 is now required as a binary syntax element of the This reduces to just passing each bin / symbol 326 through 404.

[0144] However, the selector 402 is not necessarily configured to select the mode selected by the mode switch 400. The mode of operation of the selector 402 is in the high efficiency mode. The low complexity mode tends to be more complex and the low complexity mode tends to be less complex. The following description also explains the mode of operation of the selector 402 in a less complicated mode. The entropy of the symbol retrieved by the entropy decoder 322 is This indicates that the rate at which the selection changes in the decoder 322 tends to decrease. In the complexity mode, immediately consecutive symbols are decoded by the same entropy decoder 322. There is an increased probability that the entropy will be retrieved from the entropy decoder. In high efficiency mode, the following is possible: The mode of operation of the selector 402 is determined by the respective selected entropy decoder 322. The closer the probability interval associated with the symbol currently searched by selector 402, the This tends to lead to a selection among the entropy decoders 322 that matches the actual symbol statistics, This allows the high-efficiency mode to be followed when generating each data stream. This results in a better compression ratio on the encryption side.

[0145] For example, the different reactions of the selector 402 in both modes can be understood as follows: For example, the selector 402 may select a high efficiency mode for a given symbol. If the mode is active, the sequence of symbols 326 is displayed according to the symbol retrieved before it. Therefore, if the low complexity mode is activated, the previously retrieved symbols of the sequence of symbols are used. 322. The entropy decoder 322 is configured to select among a plurality of entropy decoders 322 independently of the symbol. The dependence of the sequence of symbols 326 on previously retrieved symbols can result from context adaptation and / or stochastic adaptation. Both adaptations are During the low complexity mode the selector 402 can be switched off.

[0146] According to a further embodiment, the data stream 401 may include slices, frames, groups of images, etc. Symbols can be constructed into continuous parts such as groups, frame sequences, etc. Each symbol in the sequence is associated with one of several symbol types. In this case, the selector 402 selects the symbol for a given symbol type in the current part. Additionally, when high efficiency mode is activated, the symbol The selection is configured to vary depending on a previously retrieved symbol of the sequence of symbols. ,If low complexity mode is activated, the selection remains constant within the current part. That is, the selector 402 can select among the entropy decoders 322 in a predetermined sequence. These changes are related to the transition between successive parts. This measure limits the coding complexity to what happens most of the time. As the symbol statistics are reduced, the actual symbol statistics are evaluated at time instances that occur rarely. is limited to

[0147] Furthermore, each symbol in the sequence of symbols 326 may represent one of several symbol types. Associated with one of these, the selector 402 selects a symbol for a given symbol of a given symbol type. , multiple contexts depending on previously retrieved symbols in the sequence of symbols 326 and indicates if high efficiency mode is active according to a given symbol. between the entropy decoder 322 according to the selected context and the associated probability model. When configured to perform selection in low complexity mode, the symbology Select one of several contexts depending on the previously retrieved symbol in sequence 326 and away from the selected context constant and the associated probability model. The entropy decoder 322 selects between the two depending on the context and the associated probability model. It is configured to run.

[0148] Alternatively, instead of suppressing probability matching entirely, the selector 402 may simply select the HE mode and Relatedly, it can only reduce the update rate of the probability adaptation in the LC mode.

[0149] Furthermore, possible LC-pipe-specific aspects, i.e., LC models The mode of operation can be described in other words as follows: In particular, the non-adaptive probability The model can be used in LC mode. Non-adaptive probability models are hard-coded. That is, either the overall constant probability or the probability of processing only the slice It can be kept fixed throughout, thus allowing for slice-type and and QP, i.e., for each slice, It can be set according to the quality parameters sent. By assuming that consecutive bins follow a fixed probability model, they are Since it is encoded using the same entropy decoder, It is possible to decode some of those bins in one step, and each decoded bin The probability update after is omitted. This saves operations during the decoding and recoding process, reducing complexity and simplifying hardware design significantly. This leads to abbreviation.

[0150] Probability updates are allowed after a certain number of bins have been coded / decoded using this model. Non-adaptive constraints are used for all or some selected probabilistic models in such a way that they are accepted. A suitable update interval allows probability adaptation and Gain the ability to decode some bins.

[0151] Below are possible general and complexity-measurable models for LC-pipe and HE-pipe. A more detailed description of the embodiments is given below, in particular in the same way or in the complexity measure Possible embodiments used for LC-pipe mode and HE-pipe mode The complexity measurable method is whether LC-case removes a specific part. , derived from the HE-case by replacing them with something less complex. However, before proceeding with this, it is important to note that the embodiment of FIG. It is stated that the above implementation of context-adaptive binary arithmetic encoding / decoding can be easily transferred to the above implementation. The selector 402 and the entropy decoder 322 should be collectively Receives data stream 401 and sets the number of bins for the bin currently being pulled from the data stream. This results in a context-adaptive binary arithmetic decoder that selects the context of the This is true for text adaptation and / or probability adaptation. During low complexity mode, both The function / adaptation can be switched off or designed to be more relaxed.

[0152] For example, in implementing the embodiment of FIG. 11, a pipe line including the entropy decoder 322 The entropy coding stage consists of eight systematic variable-to-variable le-codes can be used, i.e., the entropy decoder 322 is It can be of the v2v type that is used. The PIPE coding concept is simplified by limiting the number of v2v-codes. In the case of a context-adaptive binary arithmetic decoder, it is necessary to have the same probability for different contexts. You can manage the rate state and use it - or a decrypted version of it - CABAC or probabilistic model states, i.e., the state used for probability updates. State - PIPEids or lookup for probability index in Rtab The mapping to is as illustrated in Table 5.

[0153] [Table 5]

[0154] This modified coding scheme is the basis for a complexity-scalable video coding approach. When performing probabilistic mode adaptation, the selector 402 or The context adaptive binary arithmetic decoder selects the PIPE decoder 322. That is, the pipe index used based on the probability state index, respectively. and probability index into Rtab, using the mapping shown in Table 5 - e.g. For example, through context - in relation to the currently decoded symbol - we see The probability is based on the state index, ranging from 0 to 62. For example, in the case of MPS and LPS, the transition value indicated by the next probability state index to be visited is Using a given table, this probability state index is assigned according to the currently decoded symbol. Update.

[0155] However, any entropy coding setup can be used, and this Calligraphy techniques can also be used with minor adaptations.

[0156] The above description of FIG. 11 relates rather generally to syntax elements and syntax element types. In the following, variable complexity coding of transform coefficient levels is described.

[0157] For example, the reconstructor 404 may be configured to operate independently of the high efficiency or low complexity mode in which it is operating. The transform coefficient levels 202 are constructed to be reconstructed based on a partial sequence of syntax elements included in the The portions of the sequence of syntax elements 327 are arranged in a non-interleaved manner in accordance with the significance map A significance map whose syntax elements indicate the locations of non-zero transform coefficient levels within the transform block 200 The level syntax element specifies a non-zero conversion coefficient level. The following elements may be included in the transform block: the last non-zero transform coefficient in the transform block The terminal position syntax element (last_significant_pos_ x, last_significant_pos_y); together they define the significance map and Within the transformation block (200), the DC position is taken to be the position of the last non-zero transform coefficient level. For each location along the dimensional path (274), the transform coefficient level at each location is zero. The first syntax element (coeff_significant_flag) indicates whether According to the first binary syntax element, the one-dimensional path on which the non-zero transform coefficient levels are located For each position of (274), check whether the conversion coefficient level at each position is greater than or equal to The second syntax element (coeff_abs_greater1) indicates whether the first According to the syntax elements of Inari, each position of the one-dimensional path where a larger transform coefficient level is located For each position, the value that each transform coefficient level at each position exceeds The third syntax element (coeff_abs_greater2, coeff_ abs_minus3).

[0158] The order between the edge position syntax elements, the first, second and third syntax elements are in high efficiency mode and Common to the low complexity mode, the selector 402 determines whether the low complexity mode or the high efficiency mode is active. Depending on the mode, the desymbolizer 314 decodes the end position syntax element, the first syntax element, Entropy decoding for the symbols to obtain the second syntax element and / or the third syntax element The selection unit 322 may be configured to perform the selection.

[0159] In particular, through successive consecutive sub-portions of the subsequence when the low complexity mode is activated To ensure that the selection is constant, the selector 402 determines whether the desymbolizer 314 selects the first syntax element and the second syntax element. and the number of symbols of a given symbol type in a subsequence of symbols to obtain the second syntax element. To do this, for each symbol of a given symbol type, Selects one of several contexts depending on the symbol type and the previously searched symbol. , when the high-efficiency mode is activated, the probabilistic model associated with the selected context is The device is configured to perform the selection in response to the input signal and to perform the selection in a partially consistent manner. The sub-portions are defined by the positions to which each sub-portion extends as measured along a one-dimensional path 274. in the number of positions, or for each tag already encoded by the current context It can be measured in terms of the number of types of syntax elements, i.e., binary syntax elements. Sentence elements coeff_significant_flag, coeff_abs_grea ter1 and coeff_abs_greater2 are the components selected in HE mode. Adaptive coding with respect to selecting a decoder 322 based on a probability model of the text Context. Probability matching is also used. In LC mode, binary structures Sentence elements coeff_significant_flag, coeff_abs_grea Different values ​​are used for each of coeff_abs_greater1 and coeff_abs_greater2. However, for each of these syntax elements, the context is , simply changing context in the transition to the next, immediately following part along path 274 is kept unchanged for the first portion along path 274. For example, each part is a block, independent of whether it has its own syntax for each position. The length is set to 4, 8, or 16 positions in the block 200. For example, coeff_abs_ greater1 and coeff_abs_greater2 are important positions, i.e. Only exists for positions where coeff_significant_flag=1 Or, for each resulting part, Furthermore, there are extensions beyond the number of syntax elements that can be set to lengths of 4, 8, or 16. For example, coeff_abs_greater1 and coeff_ab s_greater2 is only there for the important position, thus Each part of the syntax element is a zero level at this position, so this kind of The syntax elements coeff_abs_greater1 and coeff_abs_grea ter2, and the positions along the path 274 where such syntax is not sent. Therefore, the location can be extended by more than four blocks.

[0160] The selector 402 selects the symbol from which the desymbolizer obtains the first syntax element and the second syntax element. For symbols of a given symbol type between subsequences of BOLs, the given symbol For each symbol of a type, the previous symbol of the given symbol type in the subsequence of symbols It is configured to select one of several contexts depending on several symbols searched for at once. It has a given symbol value and belongs to the same subpart, or Multiple previously found symbols of a given symbol type within a sequence of symbols belonging to The first variation is coeff_abs_greater1. The second variant is coeff_abs_greater2 according to the specific embodiment above. This is what can be said.

[0161] Furthermore, the third syntax element to be checked is a larger conversion coefficient according to the first syntax element. For each position on the one-dimensional path where several levels are located, The amount by which the transform coefficient level exceeds the integer-valued syntax element, i.e., coeff_abs_m inus3, and desymbolizer 314 assigns a symbol sequence to the range of integer-valued syntax elements. The mapping is controlled by the control parameters that map the domain of the ence word. function and the previous third syntax element when high efficiency mode is activated. The control parameters are set for each integer syntax element according to the primitive integer syntax element, and a low complexity model is implemented. The setting remains constant over successive subportions of the subsequence when the code is active. The selector 402 is configured to perform the setting in a piecewise uniform manner so as to achieve high efficiency. In both the low-complexity and high-complexity modes, the integer-valued syntax elements associated with the same probability distributions are Entropy decoder for symbols of a symbol sequence word that is mapped to (322). That is, even the desymbolizer The dotted line 407 indicates that the switch 400 is operating in accordance with the selected mode. Instead of piecewise constant settings of the control parameters, the desymbolizer 314 may use, for example, Keeps a control parameter constant for the current slice or globally constant in time. keep.

[0162] Next, complexity-scalable context modeling is described.

[0163] For example, for the motion vector difference syntax element, the derivation of the context model index The evaluation of the same syntax element above and to the left for However, this evaluation requires more buffer storage and is more time-consuming to construct. Direct encoding of sentence elements is not possible. Also, it is difficult to achieve higher encoding performance. To accomplish this, more available neighbors can be evaluated.

[0164] In a preferred embodiment, adjacent square or rectangular blocks or prediction units All context modeling stages evaluating syntactic elements are This disables the adaptation of the context model selection stage. For the preferred embodiment, the bin index of the bin string after binarization is The context model selection depending on the context is revised compared to the current design for CABAC. In another preferred embodiment, a fixed context model for syntax elements is used. In addition to adopting neighboring evaluations, the context model for different bin indices is The description is based on the motion vector difference and syntax elements related to the coding of transform coefficient levels. Note that this does not include binarization and context model selection for the

[0165] In the preferred embodiment, only evaluation of the left neighbor is allowed. This reduces the processing chain, as the coding unit lines no longer need to be stored. In another preferred embodiment, only neighbors that reside in the same encoding device are connected to the buffer. , and is evaluated.

[0166] In the preferred embodiment, all available neighbors are evaluated. In addition to the first and second left neighbors, the top-left, top-right, and bottom-left neighbors are evaluated for validity.

[0167] That is, the selector 402 of FIG. 11 selects the media data associated with a given block. For a given symbol, select one of several contexts and Selection within the entropy decoder 322 is performed according to the probability model associated with the text. When high efficiency mode is activated, the number of adjacent blocks of media data is Use previously searched symbols in a sequence of symbols for higher numbers. That is, neighboring blocks can be arranged in the time and / or spatial domain. Spatially adjacent blocks can be, for example, blocks shown in FIGS. Then, as just described, the selector 402 Compared to the LC mode, which reduces the storage overhead by is based on previously searched symbols or syntax elements for a higher number of adjacent blocks. The contact may be responsive to a mode selection by a mode switch 400 to perform contact matching. stomach.

[0168] Next, reduced complexity coding of motion vector differences according to an embodiment is described.

[0169] In the H.264 / AVC video codec standard, motion related to macroblocks The vector is the difference between the motion vector of the current macroblock and the intermediate motion vector predictor. It is transmitted by signaling the motion vector difference (mvd). When used as a tropy encoder, mvd is encoded as follows: vd is divided into an absolute part and a sign part. The absolute part is called the prefix and the suffix. The binarization is performed using a combination of the truncated single-term 3rd order Exp-Golomb. The bins associated with p-Golomb are in bypass mode, i.e., 0.5 in CABAC. The bins associated with the binarization of the contracted unary terms are coded by fixed probabilities. The unary binarization works as follows: mvd absolute in terger - Given a value of n, the resulting bin string is n "1"s and 1 For example, if n=4, the bin string is "11110" In the omitted unary case, there is a limit, and if the value exceeds this limit, the bin string consists of n+1 "1"s. For mvd, the limit is equal to 9. That is, it is equal to 9 For absolute mvds greater than or equal to 9 "1"s, the bin string is Ex It consists of prefixes and suffixes with p-Golomb binarization. The context modeling of is done as follows: for the first bin of the bin string, Top and left adjacent macros, if available (if not available, the value is inferred to be 0) The absolute mvd value from the block is required. The sum of a particular component (horizontal or vertical) If is greater than 2, the second context model is selected and the absolute sum is greater than 32. If not, the third context model is selected, otherwise (if the absolute sum is greater than 3) If the context model is smaller than the first one, the first context model is selected. For the second bin of the bin string, a fourth context model is used. The fifth context model is used for the remaining bins of the unary part. If vd is equal to or greater than 9, for example, all bins of the omitted unary part are 1" and the difference between the absolute mvd value and 9 is the binarization with third-order Exp-Golomb binarization. In the final step, the mvd code is coded in bypass mode. It is encoded.

[0170] The latest coding techniques when using CABAC as the entropy coder are Current status of the Efficiency Video Coding (HEVC) project The block size is defined in the Test Model (HM). The shape specified by the motion vector is called a prediction unit (PU). The PU sizes above and to the left may have a different shape and size than the current PU. Therefore, whenever relevant, the definitions of the top and left neighbors are For the encoding itself, we refer to the first bin as the top and immediately to the left of the top left corner of Only the derivation method for can vary depending on the embodiment. Instead of evaluating the absolute MV of a neighbor, each neighbor can be evaluated separately. If it is greater than 16, the context model index is increased, resulting in the first The remaining absolute MVD levels are the same as the context model for the bins. And the encoding of the code will be exactly the same as H.264 / AVC.

[0171] In the technique outlined above for encoding mvd, bins below 9 are context The remaining values ​​of the mvd must be coded in the model, while the remaining values ​​of the mvd are coded with the coded information. This current implementation uses the context We describe a technique for reducing the number of bins coded in the model, resulting in a reduction in the number of bypasses. This increases the number of context models required for MVD coding. Therefore, the cutoff value is reduced from 9 to 1 or 2, i.e., the absolute mvd is greater than zero. Only the first bin that specifies whether it is large or small is coded using the context model. , or the first and second bins and and it is coded using the context model, while the remaining values ​​are coded using the bypass model. Coded in binary and / or using VLC codes. Unary or shortened unary codes All bins obtained by binarizing using VLC code without using low-complexity bypass In the case of PIPE, the data is encoded using the bitstream. and direct insertion from the bitstream is possible. Different definitions of the top or left neighbors lead to better context model selection for the bin. Righteousness can be used.

[0172] In a preferred embodiment, the Exp-Golomb code is used to decode the remaining absolute MVD components. It is used to binarize the data. For this purpose, the order of Exp-Golomb codes is variable. The order of the Exp-Golomb code is derived as follows: The context model for the After the data is extracted and encoded, the index is used to find the Exp-Golomb binarized part. In this preferred embodiment, the context for the first bin is The model is in the range 1-3 and is used as the instruction for the Exp-Golomb code. This preferred embodiment results in the index 0 to 2 being used for the HE case. It can be done.

[0173] The technique outlined above uses five contexts for two times the absolute MVD encoding. In a variant, 14 contexts are used to encode 9 unary code binarization bins. The model (7 for each component) can be used as well. For example, the unary part The first and second bins can be coded in four different contexts: Together, the fifth context can be used for the third bin, and the sixth context The context can be used for the fourth bin, and the fifth through ninth bins are used for the seventh context. Thus, in this case, 14 contexts are required. and only the remaining values ​​can be coded in low-complexity bypass mode. This results in an increased number of context models, reducing the number of context models required for MVD encoding. Techniques to reduce the number of bins encoded in the resulting context model, e.g., from 9 to 1 Decrease the cutoff value, such as 2, which is the absolute MVD greater than zero. Only the first bin that identifies whether , the first and second bins identifying if the absolute MVD is greater than zero, and Each value is coded using its context model, while the remaining values ​​are coded using the VLC context model. This indicates that all the images obtained from binarization using VLC code are encoded using the VLC code. The bins are coded using a low-complexity bypass mode. Direct insertion into and from the bitstream is possible. ,The ,illustrated ,embodiment ,leads ,to ,a ,better ,context ,model ,selection ,for ,the ,first ,bin. In addition to this, the first or first and The number of context models required for the first and second bins is reduced, leading to further memory reduction. The context modeling is somewhat modified so that Evaluation can be disabled and the line buffer / memory required for accumulation of adjacent mvd values ​​can be used. Finally, the coding order of the components is followed by the coding of the bypass bins. Both components (i.e., the bins coded in the context model) can be coded as prefix bins. The data can be divided in a way that makes it possible to

[0174] In a preferred embodiment, the Exp-Golomb code is the remainder of the absolute mvd component. It is used to binarize the Exp-Golomb code. The sequence of Exp-Golomb codes can be derived as follows: The context model for the first bin, therefore, After the index is extracted, the index is used to search for Exp-Golomb binarization. In this preferred embodiment, the context for the first bin is The model ranges from 1 to 3 and is used as the instruction for the Exp-Golomb code. This preferred embodiment is used for the HE case. This reduces the number of context models to 6. To reduce the number of pixels and thereby save memory, the horizontal and vertical components are further preferred. In this case, three contexts can share the same context model. Furthermore, only the left neighbor is required in a further preferred embodiment of the present invention. In this preferred embodiment, the threshold is variable. (e.g., only one threshold 16 is used for the Exp-Golomb parameter 0. or 1, and one threshold 32 yields the Exp-Golomb parameter 0 or 2. This preferred embodiment saves the line buffer needed for storing mvd. In another preferred embodiment, the thresholds are modified to be equal to 2 and 16. For the example, a total of three context models are required for the encoding of mvd: The possible Exp-Golomb parameters are in the range 0 to 2. In another preferred embodiment , the thresholds are equal to 16 and 32. Also, the described embodiment is suitable for the HE case. are.

[0175] In a further preferred embodiment of the present invention, the cutoff value is reduced from 9 to 2. In a preferred embodiment, the first bin and the second bin are determined using a context model. The context model selection for the first bin is as described in the preferred embodiment above. It can be carried out in the state-of-the-art or modified manner as described. For bin 2, another context model is selected, such as the state of the art. In the preferred embodiment, the context model for the second bin evaluates the mvd of the left neighbor. For that case, the context model index is The same for the first bin, while the available context model is In total, six context models are required (context models for the (Note the components that share the same context model). Also, the Exp-Golomb parameters can depend on the selected context model index of the first bin In another preferred embodiment of the present invention, the Exp-Golomb parameter is The described embodiment of the present invention is based on the context model index. , can be used for HE cases.

[0176] Further, in a preferred embodiment of the present invention, the context model for both bins is fixed. is specified and is not derived by evaluating the left or top neighbors. For the preferred embodiment, the total number of context models is equal to 2. In a preferred embodiment, the first bin and the second bin share the same context model. As a result, only one context model is needed for the encoding of the MVD. In both preferred embodiments of the present invention, the Exp-Golomb parameters are fixed. , equal to 1. The described preferred embodiment of the present invention is suitable for both HE and LC configurations. are.

[0177] In another preferred embodiment, the order of the Exp-Golomb parts is The context model index is derived from the normal H.264 / AVC context model. The absolute sum of the context model is used to derive the instructions for the Exp-Golomb part. This preferred embodiment can be used for HE cases.

[0178] In another preferred embodiment, the order of the Exp-Golomb codes is fixed and set to 0. In another preferred embodiment, the order of the Exp-Golomb code is fixed and set to 1. In the preferred embodiment, the order of the Exp-Golomb code is fixed at 2. In a further embodiment, the order of the Exp-Golomb code is fixed at 3. In a practical example, the order of the Exp-Golomb code depends on the shape and size of the current PU. The preferred embodiment shown can be used for the LC case. The fixed order of the Exp-Golomb parts is encoded in the context model. Note that this allows for a reduced number of bins to be used.

[0179] In the preferred embodiment, the neighbors are defined as follows: For the above PU, the current All PUs covering this PU are considered and the PU with the largest MV is used. is also done for the left neighbor. All PUs that cover the current PU are evaluated, and In other preferred examples, the PU with the largest MV is used. The average absolute motion vector values ​​from all PUs covering the left and right boundaries are is used to extract the

[0180] For the preferred embodiment shown, it is possible to change the encoding order as follows: The mvd must be specified for the horizontal and vertical directions one after the other (or vice versa). Thus, the two bin strings must be encoded. Mode switching for the encoding engine (i.e., switching between bypass and normal modes) Following the bin encoding in the context model for both components in the first stage, In the second stage, it is possible to encode the bins that were encoded in bypass mode. Note that this is just a sort.

[0181] The bins resulting from unary or shortened unary binarization are those whose values ​​are greater than the current bin index. A fixed length binary equivalent of one flag per bin index specifying whether Note that the omitted unary of mvd can also be expressed by The cutoff values ​​for binarization are 0, 1, 2, resulting in codewords 0, 10, 11. The corresponding fixed length binary with one flag per bin index is set to 2. In the binning, one flag for bin index 0 (i.e., the first bin) is Identify if the absolute mvd value is greater than 0 and the second bin with bin index 1 One flag for specifies whether the absolute mvd value is greater than 1. This is the same codeword 0, when the second flag is only coded when the first flag is equal to 1. The results are 10 and 11.

[0182] Next, according to an embodiment, a complexity-scalable representation of the internal state of a probabilistic model is described. do.

[0183] In the HE-PIPE setup, the internal state of the probabilistic model is defined as the bin that has it. The updated state is the same as the old state and the encoded state. The state transition is derived by a table lookup using the bin value. The probability model is based on 63 different states, corresponding to model probabilities in the interval (0.0, 0.5). Each of these states can be used to realize two model probabilities. In addition to the probabilities assigned to the states, a minus 1 probability is also used, called valMps. The flag stores information on whether probability or 1 minus probability is used. This leads to a total of 126 states. Such a probability model with the PIPE coding concept is For use, each of the 126 states is mapped to one of the available PIPE coders. In the current implementation of the PIPE encoder, this is done by This is done using a table. An example of such a mapping is shown in Table 5.

[0184] Below we will explain how the internal state of a probabilistic model is transformed into a PIPE index. It can be shown to avoid using lookup tables to convert Examples are given. Simply some simple bit masking operations can be used to model the probability It is necessary to obtain the PIPE index from the internal state variables of the probabilistic model. This novel complexity-scalable representation of behavior is designed in a two-level approach: low complexity For applications where the behavior is essential, only the first level is used. The pipe index and frame used to encode or decode the associated bin Only the delay valMps is recorded. For the PIPE entropy coding method described In this case, the first level can be used to distinguish between eight different model probabilities. The first level uses 3 bits for pipeIdx and 1 for valMps flags. At the second level, we need one more bit to Each of these is refined into several smaller intervals that support the presentation of probabilities at higher resolution. This more detailed presentation allows for a more accurate operation of the probability estimator. It is suitable for coding applications aiming towards high RD-performance. For example, this complexity criterion for the internal state of a probabilistic model with PIPE usage is The expression is exemplified as follows:

[0185] [Table 6]

[0186] The first and second levels are stored in a single 8-bit memory. 4 bits are the first Level - An index that defines a PIPE index that has the value of MPS on its most significant bit. The other 4 bits are used to store the second level. To satisfy the response of the CABAC probability estimator, each PIPE index A specific number depending on how many CABAC states are mapped to the PIPE index For example, for the mapping in Table 5, PIP The number of CABAC states per E index is presented in Table 7.

[0187] [Table 7]

[0188] During the bin encoding or decoding process, the PIPE index and valMps are Direct access by using simple bit masks or bit shift operations The low-complexity encoding process requires 4 bits at the first level only. In addition, the high-efficiency coding process performs a probability model update for the CABAC probability estimator. This update allows for the use of 4 bits in the second level to To do this, we use the same transitions as the original table, but with two levels of measurable state complexity. A state transition lookup table can be designed using the expression: The original state transition table is , 2 × 63 components. For each input state, it contains two output states. When using a predictable representation, the size of the state transition table is limited by an acceptable increase in the size of the table. This increase is due to the number of bits representing the refinement index. and to accurately emulate the response of the CABAC probability estimator. However, the pipe index requires 4 bits. A reduced set of CABAC states is used, allowing only eight states per Different probability estimators can be used to work. The memory consumption can be reduced by adapting the number of bits used to represent the refinement index. This allows us to match a given complexity level of the encoding process. Compared with the internal state of the model probability with the state index present, CABAC The use of table lookups to map rule probabilities to specific PIPE codes is avoided, and further transformations are is not required.

[0189] Next, the complexity-scalable context model updated according to the embodiment is It is written.

[0190] To update the context model, its probability state index is The HE-PIP can be updated based on the previously coded bins above. In the E setup, this update occurs after encoding or decoding each bin. Conversely, in an LC-PIPE setup, this update never occurs. It will never happen.

[0191] However, updating the context model in a way that is scalable in complexity is possible, i.e., the decision whether to update the context model is , based on various aspects. For example, the coding setup may be implemented using, for example, the syntax element coef Specific contexts such as the context model of f_significant_flag You cannot make updates just for the context model, but always for all other contexts. Updates can be made for the model.

[0192] In other words, the number of given symbol types in the low complexity mode compared to the high efficiency mode The selector 402 selects each symbol of a given symbol type so that the number of symbols is lower in the for each symbol, depending on the respective probability model associated with each given symbol. The decoding is configured to be performed within the entropy decoder 322 .

[0193] Furthermore, the criteria for controlling whether the context model should be updated or not are e.g. For example, the size of the bitstream packet, the number of bins decoded so far, etc. Or, the update is done by fixing the specific bin for the context model or This is done only after encoding the variable number.

[0194] This scheme for deciding whether to update the context model is A complexity-scalable context model can be implemented. Allows increasing or decreasing the portion of the bin in the bitstream where the model updates take place. The more context model updates, the better the coding efficiency. The computational complexity is higher. Updates can be provided in the manner described.

[0195] In a preferred embodiment, the context model update is performed using the syntax element coeff _significant_flag, coeff_abs_greater1 and c This is done for all syntax element bins except oeff_abs_greater2. .

[0196] In another preferred embodiment, the context model update is performed by the syntax element coeff _significant_flag, coeff_abs_greater1 and c oeff_abs_greater2 is done for only the bin.

[0197] In another preferred embodiment, when encoding or decoding of a slice begins, the context The update of the context model is done for all context models. After a certain predetermined number of transformation blocks, the context Updates to the context model are disabled for all context models.

[0198] For example, the selector 402 may select a predetermined symbol type. The learning of the sequence of symbols in which the selection for the group's symbols is performed along with the update The length of the learning phase is shorter in the low complexity mode compared to the high efficiency mode. , with or without updating the associated probabilistic model, Execute the selection in the entropy decoder 322 according to the probability model associated with the Boll type. It is configured to:

[0199] A further preferred embodiment is the same as the previously described preferred embodiment, but one table contains all Stores the "first part" of the context model (valMps and pipeIdx) and store the "second part" (refineIdx) of all context models. To do this, it uses some complexity-scalable representation of the internal state of the context model. where the updating context model is the same as all context models (as described in the previous preferred embodiment) The table storing the is no longer needed and can be discarded.

[0200] Next, the context model updating for the sequence of bins according to the embodiment is The rules are listed.

[0201] In LC-PIPE configuration, type coeff_significant_flag , coeff_abs_greater1 and coeff_abs_greater2 The bins of syntax elements in are divided into subsets. Each subset contains a single context. The model is used to encode that bin. In this case, the context model The update is done after encoding a fixed number of bins of this sequence. However, this update is not possible with the last This is different from updating using only the coding bins and the internal state of the context model. For example, one context model update step per encoded bin is executed.

[0202] Below, an example is given for encoding a typical subset of 8 bins. The letter "b" means bin decoding, and the letter "u" means context model update. In the case of LC-PIPE, only the decoding of the bins is performed by the context model. Done without Dell updates.

[0203] bbbbbbbb

[0204] In the case of HE-PIPE, after decoding each bin, the context model is updated. A vote will be held.

[0205] bubububububububu

[0206] To reduce the complexity somewhat, the context model update is This can be done after each of the four bins (in this example, after each of the four bins, bin update).

[0207] bbbbuuuubbbbuuuu

[0208] That is, the selector 402 selects a given symbol for a given symbol type. Symbol type symbology selection is updated with frequency for efficient The associated probability model is lower in the low complexity mode compared to the rate mode. associated with a given symbol type, with or without an update. and configured to perform a selection among the entropy decoders 322 depending on the probability model selected. .

[0209] In this case, after decoding four bins, four update steps are performed. These four update steps are based on the four decoded bins. Note that this can be done in one step using a simple lookup table lookup. For each possible combination of the four bins and each possible internal state of the context model, This lookup table is then used to create the new table that results after the four conventional update steps. Stores the new state.

[0210] In certain modes, multi-bin updates are performed using the syntax element coeff_sign Used for bins of all other syntax elements. Context model updates are not used. The number of bins to be coded before is set to n. If the number of bins in the set is divisible by n, When there are no bins, 1 to n-1 bins are subsets after the last multi-bin update. For each of these bins, a traditional one-bin update is performed. This is done after encoding all of these bins. The number n can be any positive number greater than 1. Multi-bin update is coeff_significant_fla g, coeff_abs_greater1 and coeff_abs_greater Any combination of 2 (instead of coeff_significant_flag only) Another mode may be the same as the previous mode, except that it is done for the purpose of As such, this mode is more complex than the others. All other syntax elements (multi-bin arrays) where updates are not used) is split into two separate subsets, where subset For one of the subsets, one bin update is used, and for the other subset, No text model updates are used. Every possible alternative subset is valid. (including the empty subset).

[0211] In another embodiment, the multi-bin update is performed before the multi-bin update. The bins can be based on only the last m bins that are immediately coded. m can be any number less than n. Therefore, the decoding can be done as follows:

[0212] bbbbuubbbbuubbbbuubbbb where n=4 and m=2.

[0213] That is, the selector 402 selects a high efficiency model for symbols of a given symbol type. A given symbol is chosen so that the n / m ratio is higher in the low complexity mode than in the low complexity mode. The probability model associated with every nth symbol based on the nearest m symbols of the type The entry is updated according to the probability model associated with a given symbol type. The tropy decoder 322 is configured to perform the selection.

[0214] In another preferred embodiment, the syntax element coeff_significant_flag To do this, we use the local template as described above for the HE-PIPE configuration. The text modeling scheme uses the context model to assign bins of syntactic elements. However, for these bins, the context model update is not used.

[0215] Additionally, the selector 402 may select a context for a symbol of a given symbol type. The number of targets and / or the number of previously searched symbols is lower than in the high-efficiency mode. The more previously searched symbols in a sequence of symbols, the lower the likelihood of It is configured to select one of many contexts depending on the context, and the selected context The selection among the entropy decoders 322 is performed according to the probability model associated with the test. It is composed of:

[0216] Probabilistic model initialization using 8-bit initialization values

[0217] This section focuses on the most common video coding standards, such as the H.265 / AVC standard. A complex probabilistic model using a so-called 8-bit initialization value instead of two 8-bit values. It shows the initialization process of the internal state that can be measured with high accuracy. It consists of two parts, which are equivalent to the pair of initialization values ​​used for the CABAC probabilistic model. The two parts represent the two parameters of the linear equation that calculates the initial state of the stochastic model. , QP to represent a particular probability (e.g., in the form of a PIPE index).

[0218] The first part indicates the slope, which is the quantization parameter used during encoding or decoding. It exploits the dependency of the internal state on the data (QP). The second part defines the PIPE index at a given QP, similar to valMps.

[0219] Two different modes are available for initializing the probabilistic model with given initialization values. The first mode indicates QP-independent initialization, which is The PIPE index and valMps defined in the second part of the initialization value of This is the same as when the slope is equal to 0. The second mode is QP It indicates a dependent initialization, and also changes the PIPE index and refines the index. Use the slope of the first part of the initialization value to determine the slope. The minutes are exemplified as follows:

[0220] [Table 8]

[0221] It consists of two 4-bit parts. The first part is a string containing 16 different Contains an index indicating one of the predefined slopes. The predefined slopes are the seven negative slopes (slope index 0-6), a slope equal to zero (slope index 7) and 8 positive slopes It consists of one slope among (slope index 8-15). The slopes are shown in Table 9.

[0222] [Table 9]

[0223] All values ​​are scaled by a factor of 256 to avoid the use of floating point arithmetic. The second part is the probability of an upswing of valMps=1 between the probability interval p=0 and p=1. In other words, PIPE coder n is the PIPE code It operates with model probabilities higher than n-1. For any probability model, one PIP E probability index is available, which is the probability interval p for QP=26. valMPs=1 Probability of Check the PIPE encoder including

[0224] [Table 10]

[0225] The QP and 8-bit initialization values ​​are in the form y=m*(QP - QPref)+256*b By calculating a simple linear equation, the initialization of the internal state of the probabilistic model can be calculated. m is expressed using the gradient index (the first part of the 8-bit initialization value). 9, and b is QPref=26 (the second part of the 8-bit initialization value: Note that "PIPE probability index" refers to the PIPE coder, and If y is greater than 2047, valMPS is 1 and pipeIdx is (y-20 48)>>8. Otherwise, valMPS is 0 and pipeIdx is (2 047-y)>>8. If valMPS is equal to 1, the refinement index is (( (y - 2048) & 255) * numStates) >> 8. Otherwise, A good index is equal to (((2047-y)&255)*numStates)>>8 In either case, numStates is the number of states that are Equal to the number of CABAC states in peIdx.

[0226] The above scheme can be used in combination with the PIPE encoder as well as the CA It is also used in conjunction with the BAC method. Without PIPE, it is a CABAC state, i.e. During this time, the state transition of the probability update is PIPE Idx (i.e., pState_c (pStat e_current[bin]) probability state) is in fact a CABAC state depending on the QP. In addition, the parameter num If States use the same value for all PIPE Idx, this category A linear interpolation may be practically ineffective. For example, The setting numStates is a total of 16*8 states and the index is valMPS is equal to 1, ((y-2048)&255)>>5 or valMPS is equal to 0, We get the improved index calculation, which simplifies to ((2047-y)&255)>>5. In this case, the representation using valMPS, PIPE idx and improved idx is converted to the original H. Mapping to the representation used by the original CABAC in H.264 / AVC is , it is very simple. The CABAC state is (PIPE Idx<<3)+refinem ent Idx. This aspect is described further below with respect to FIG. .

[0227] Unless the slope of the 8-bit initialization value is equal to zero or QP is not equal to 26 As long as it is by using a linear equation with QP of the encoding or decoding process It is necessary to calculate the internal state by using the QP of the current encoding method. For a slope equal to 26, the second part of the 8-bit initialization value is It can be used directly to initialize internal state, otherwise the result The resulting fractional part of the internal state is linearly interpolated between the limits of the specific PIPE coder to produce a highly efficient code. This can be further utilized to determine an improvement index for the application. In this preferred embodiment, linear interpolation is simply a modification available in the current PIPE encoder. Multiply the fractional part with the total number of good indexes and round the result to the nearest integer refinement index. This is done by mapping.

[0228] The process of initializing the internal state of the probabilistic model is related to the number of PIPE probability index states. In particular, the PIPE symbol using the equal chance mode Two different PIPs that distinguish between E1, i.e., MPS, and are either 1 or 0 The double occurrence of the use of the E index can be avoided as follows. The process can be triggered during the beginning of parsing slice data, and this process The input of the process is, for example, the bit An 8-bit initialization value as shown in Table 11 sent within the stream. It is possible.

[0229] [Table 11]

[0230] The first 4 bits define the slope index, masking bits b4-b7. Searched by. For every slope index, the slope (m) is specified and shown in Table 12. do.

[0231] [Table 12]

[0232] Bits b0-b3, the last 4 bits of the 8-bit initialization value, check probIdx , the given QP.probIdx0 indicates the highest probability for a symbol with value 0, Respectively, probIdx 14 indicates the highest probability for a symbol having a value of 1. Table 13 shows , for each probIdx we indicate the corresponding pipe encoder and its valMps.

[0233] [Table 13]

[0234] For both values, the internal state is calculated using a linear equation such as y=m*x+256*b. where m denotes the gradient, x denotes the QP of the current slice, and b is derived from probIdx as explained below. All values ​​in this process are floating To avoid the use of floating-point arithmetic, it is scaled by a factor of 256. The output (y) of the process represents the internal state of the probability model at the current QP and is stored in an 8-bit memory. As shown in G, the internal state is stored in valMPs, pipeIdx, and Consists of refineIdx.

[0235] [Table 14]

[0236] The assignment of refineIdx and pipeIdx is based on the CABAC probability model (pSta The internal state of the teCtx is similar to that of the teCtx and is shown in H.

[0237] [Table 15]

[0238] In the preferred embodiment, probIdx is defined as QP26. Based on the reconciliation values, the internal state of the probabilistic model (valMps, pipeIdx and refi neIdx) is processed as described in the pseudocode below:

[0239] TIFF2025170279000030.tif123146

[0240] As shown in the pseudocode, refineIdx is linearly spaced between the intervals of pipeIdx. It is calculated by interpolating the refinement result and quantizing the result to the corresponding refineIdx. The offset specifies the total number of refineIdx for each pipeIdx. The interval [7, 8) of xState / 256 is divided in half. The interval [7, 7.5) is p ipeIdx=0 and valMps=0, and the interval [7.5, 8) is mapped to pi It is mapped to peIdx=0 and valMps=1. Figure 16 shows the internal state. It represents how to output the fullCtxState / 256 mapping to pStateCtx. Display the message.

[0241] Note that the slope indicates the dependence of probIdx and QP. 8-bit initialization value If slopeIdx is equal to 7, then all resulting internal states of the probabilistic model are This is common to all slice QPs - hence the initialization process of the internal state is It is independent of the current QP of the chair.

[0242] That is, the selector 402 indexes into a table common to both modes LC and HC. The data of this part, such as the transform coefficient levels contained therein, can be using a syntax element indicating the quantization step size QP used to quantize the data. Decode the next part of the data stream, such as the entire stream or the next slice. A table like Table 10 is used to initialize the pipe index used to type, pipe index for each reference QPref, or each symbol type Depending on the actual QP of the current part, the selector Using the QP of and each table entry a indexed by the QP itself, The pipe index value can be calculated as a multiplication of a and (QP-QPref). The only difference between LC and HE modes is that the selector is In this case, the selector simply computes the result with lower precision. For example, the selector simply computes the integer part of the result. In HE mode, high precision, e.g. fractional parts, can only be used. The precision residual is the sum of the respective pipe indexes, as indicated by the lower precision or integer part. It is used to select one of the available refinement indexes for the query. The refined index may be used to perform, for example, a probability match by using the table walk described above. Typically used in HE mode (and potentially more rarely in LC mode). When leaving an available index for the current pipe index at a higher boundary , the higher pipe index is selected next with minimizing the refinement index. Leaves an available index for the current pipe index at the lower bound. When the next lower pipe index is available, the new pipe index is maximized. The next step is to maximize the improvement index. The pipe index defines the probability state, but for selection among partial streams, The selector simply uses the pipe index. The improved index simply uses It is only useful for following probabilities more closely or with finer precision.

[0243] However, the above explanation also differs from the PIPE coding concept shown in Figs. Separately, this has been shown to be achieved using the decoder shown in Figure 12. 601 is a data stream in which media data is encoded. and activates a low complexity mode or a high efficiency mode depending on the data stream 601. and a mode switch 600 configured to adjust the area of ​​the symbol sequence word. A map controllable by control parameters is used to map to the joint domain of numeric syntax elements. To obtain an integer value syntax element 604 using the mapping function, the data stream 6 The sequence of symbols obtained from 01 - either directly or, for example, by entropy decoding - The reconstructor 605 includes a desymbolizer configured to symbolize the sequence 603. The media data 606 is configured to be rendered based on the integer-valued syntax elements. The vaporizer 602 is configured to adjust the control parameter at a first rate when the high efficiency mode is active. The desymbolizer 602 performs desymbolization as it varies along the data stream. When the low complexity mode is activated, the The control parameter is the data stream, except that the second rate is lower than the first rate. It remains constant regardless of changes in the data stream or data stream. For example, The control parameters can be varied according to the previously decoded symbols.

[0244] Some of the above examples utilize the embodiment of Figure 12. Syntax elements in sequence 327 coeff_abs_minus3 and MVD are selected as shown in 407, for example. The desymbolizer 314 binarizes the signal according to the selected mode, and the reconstructor 605 reproduces the signal. Clearly, both the embodiments of FIGS. 11 and 19 are immediately Although the embodiment of FIG. 12 can be integrated into other coding environments, the embodiment of FIG.

[0245] See, for example, the motion vector difference coding shown above. A shorthand method that performs mapping within the first interval of the domain of integer-valued syntax elements less than the value Includes prefixes and cutoff values ​​in the form of contracted unary signs for term signs and cutoff values Sets of suffixes of VLC codeword shapes within the second interval of the domain of integer-valued syntax elements that is greater than or equal to The desymbolizer 602 is configured to try to match the symbols, and the decoder uses the varying probabilities A shortened unary term is extracted from the data stream 601 using unary entropy decoding with evaluation of VLC codewords using multiple first bins of the code and a constant equiprobability bypass mode. The HE model includes an entropy decoder 608 configured to derive a plurality of second bins. In this code, as shown by arrow 609, entropy coding is more efficient than LC coding. The complexity is also high, i.e., context adaptation and / or probability adaptation are not applied in HE mode. and suppressed in LC mode, or as described above with respect to various embodiments, is scaled.

[0246] Encoding media data into a data stream, an encoder suitable for the decoder in Figure 11 The encoder is shown in Figure 13. It is used to encode low complexity data into the data stream 501. an inserter 500 configured to signal activation of a low-power or high-efficiency mode, A control configured to pre-encode media data 505 into a sequence 506 of symbolically representing the sequence of syntax elements 506 in a character 504, a sequence of symbols 508 a symbolizer 507 configured to convert a partial sequence of symbols into a data a plurality of entropy encoders 310 configured to convert the stream into codewords; and each of the sequence of symbols 508 to a selected one of the plurality of entropy encoders 310. a selector 502 configured to send a symbol, the selector 502 being connected to an arrow 511 As shown in Figure 1, the low complexity mode and the high efficiency mode are selected depending on which one is active. The interleaver 510 is configured to interleave the codewords of the encoder 310. It may be provided voluntarily for this purpose.

[0247] Fits the decoder in Figure 12 for encoding media data into a data stream The encoder is shown in FIG. 14 and operates in low complexity mode or low complexity mode in the data stream 701. an inserter 700 configured to signal a high efficiency mode of operation, configured to pre-encode media data 705 into a sequence 706 of syntax elements A constructor 704, and a symbol sequence -Mapping controllable by control parameters to map to the joint area of ​​the word A constructor configured to symbolically represent syntax elements having integer values ​​using a mapping function. 707, and when the high efficiency mode is activated, the control parameters are data-accumulated at a first rate. and the data stream or data storage The control parameters remain constant regardless of the changes in the stream, but are shown by arrow 708. When the low complexity mode is activated, the recording is performed at a second rate that is lower than the first rate. The encryptor 707 is configured to perform the encryption. The encryption results are stored in the data stream. The data is encoded in stream 701.

[0248] Also, the embodiment of FIG. 14 is easily adapted to the implementation of the above-mentioned context-adaptive binary arithmetic encoding / decoding. It should be stated that the selector 509 and the entropy coder 310 is a context adaptive binary arithmetic encoder that outputs a direct data stream 401. Condenses the data into a single bin and pulls context for the current bin from the data stream. This is especially true for contextual and / or probability adaptation. During low complexity mode, both functions / adaptations are switched off or The design can be more relaxed.

[0249] The mode switching capabilities described with respect to some of the above embodiments may be applied to other embodiments. Therefore, the separation was briefly indicated above. To make this clear, 16. The embodiment of FIG. 16 is distinguished from the above embodiment only by the elimination of the ability to switch modes. An example summarizing the explanation is shown in Figure 16. Furthermore, the following explanation will be made in comparison with, for example, H.264. The probability of a context is estimated using less accurate parameters of tilt and offset compared to the This paper will clarify the benefits that arise from initializing the value.

[0250] Figure 16 shows that the horizontal and vertical components of the motion vector difference are binarized using the horizontal and vertical components. 4. A decoder for decoding video 405 from a data stream 401 encoded using In particular, the region of horizontal and vertical components below the cutoff value and the form of the shortened unary sign are shown. Within the first interval of a prefix combination, binarization is performed by using the contracted monomials of the horizontal and vertical components, respectively. The cutoff value and the exponent of the horizontal and vertical components are equal to the tangent of the Golomb code. The suffixes are the regions of the horizontal and vertical components that are included in or above the cutoff value, respectively. The second interval is in the order of 1, with a cutoff value of 2. The decoder has an entropy decoder 409 configured to obtain the motion vector difference For the horizontal and vertical components, the horizontal and vertical components of the motion vector difference and the motion vector Exponential Golomb Codes Using Constant Equiprobability Bypass Modes to Obtain Difference Binarization. have exactly one context per bin position of the common contraction unary code for Using context-adaptive binarization entropy decoding, i.e., The binarization of the motion vector difference syntax element is de-binarized to obtain integer values ​​for the horizontal and vertical components of the motion vector difference. A selector / allocator A performs several parallel operations along with the desymbolizer 314. A shortened unary code is extracted from the data stream using a decoding entropy decoder 322. The reconstructor 404 includes an entropy decoder 409 configured to derive the motion vectors. The video is reconstructed based on the integer values ​​of the horizontal and vertical components of the toll difference.

[0251] To explain this in more detail, an example is briefly given in FIG. ,Representatively, one motion vector difference, i.e., the predicted motion vector and the actual / The horizontal and vertical vectors represent the prediction residuals between the reconstructed motion vectors. Components 802x and 802y are shown. They represent pixel locations, i.e., pixel Positions more precise than the cell pitch or one pixel unit (e.g., half the pixel pitch) The horizontal and vertical components may be transmitted in units of minutes or quarters thereof. 02x,y are integers to be evaluated, their range extending from zero to infinity. The tag values ​​are treated separately and are not further considered here. The brightness is centered on the magnitude of the motion vector difference 802 x,y. The region is illustrated at 804. To the right of the domain axis 804, FIG. 19 shows the possible coordinates of components 802 x, y arranged perpendicular to each other. An example of a threshold is when each possible value is mapped (binarized) to a As can be seen, below the cutoff value of 2, the contracted unary code 806 is simply generated. The suffix is ​​a reminder of the integer value above the cutoff value minus 1. For this, the index of order 808 is chosen from the possible values ​​equal to or greater than the cutoff value of 2. It also has Golomb code. For every bin, there are simply two contexts. One is the first bin position of the binarization of the horizontal and vertical components 802 x,y, The other is the second bin position of the contracted unary code 806 of both horizontal and vertical components 802x,y. For the 808 bin positions of the exponential Golomb code, the equiprobability bypass mode is used by the entropy decoder 409. That is, both bin values ​​are equal. The probability estimates for these bins are determined. and the contracted unary code 806 bin in relation to the two contexts just mentioned. The probability estimates are continuously adapted during decoding.

[0252] Before going into further detail, it should be noted that the entropy decoder 409, according to the above description, Regarding how the mentioned operations can be performed, the explanation is given in the non-binary Desymbolizer 314 debinarizes the bins of codes 106 and 108 using A possible implementation of the reconstructor 404 using the motion vector difference and its integer value as obtained by In particular, the reconstructor 404, as described above, The data stream contains information about the subdivision into blocks, some of which depend on motion compensated prediction. 401. FIG. 19 shows an image typically reproduced at 820 and 22, where motion compensated prediction is used to predict the image content in 2A-2C, the subdivision and block The size of the blocks 122 can vary. To avoid transmission for the vector difference 800, the reconstructor 404 reconstructs the data accordingly. The data stream contains the subdivision information in addition to the fact that the subdivision was fixed. A combination concept can be used to further transmit the combination information without the subdivision information. The combined information signals the reproducer 404 about which blocks 822 form a group. This measurement allows the reconstructor 404 to determine the specific motion vector difference 800 in the block. It is possible to apply this to the entire combined group of 822. Naturally, on the encoding side, The transmission of the combined information is performed by subtracting the re-division transmission overhead (if any), the combined information transmission overhead, and the It depends on the trade-off between the overhead of transmission of the combined group and the overhead of transmission of the motion vector difference. On the other hand, it decreases with increasing loop size. The addition of these join groups against the actual needs of the individual blocks of each join group. Reduce the adaptation of the motion vector difference for the loop, thereby reducing the motion vector of these blocks. This results in a less accurate motion compensated prediction of vector differences, e.g., in the form of transmission coefficient levels. It requires a high transmission overhead for the transmission of the residual. Therefore, the tradeoff is The appropriate method can be found on the coding side. However, in any case, the combination concept , resulting in motion vector differences for the combined groups that exhibit less inter-correlation. For example, Figure 19 shows membership to certain join groups by shading. Obviously, the actual motion of the image content of these blocks is determined by the encoder. However, other combinations were decided. The correlation between the image content of the group and the motion is low. The limitation of using only one context per image is that it is difficult to accurately match the motion of adjacent image content. The concept of combining already accommodates spatial entropy coding efficiency. The context does not negatively impact the entropy coding efficiency. The context is simply the bins that are used to determine the motion vector difference. The fact that it is part of the binarization of component 802x,y and that there are two cutoff values can only be selected based on the bin position, which is either 1 or 2. , other already decoded bins / syntax elements / MVD components 802x,y are Does not affect the choice.

[0253] Similarly, the decoder 404 first selects a list of motion vector predictors that predict the motion vector difference. In the data stream information on the index of the predictor actually used to make the prediction Generated for each block or group of bonds transmitted explicitly or implicitly in Further (space of motion vectors and / or (or beyond temporal prediction) to reduce the information content transmitted via motion vector differences. See, for example, unshaded block 122 in FIG. The reconstructor 404 can spatially generate motion vectors, for example from the left, from the top, or a combination of both. and by predicting the previously decoded video image and the aforementioned prediction means The motion vectors of the co-located parts of the further combinations are calculated in time. By predicting the motion vector of this block, it is possible to provide a different predictor for the motion vector of this block. These predictors are used to predict the reconstructor 40 in a predictable manner that is predictable on the coding side. 4. Some information is transmitted for this purpose in the data stream. and used by the reproducer. That is, some hints are added to the data stream. , for which a predictor from this ordered list of predictors is actually This index is used as a predictor for the motion vector. However, the index can be transmitted in the data stream for the It is possible that the tex is predicted first and simply communicates its prediction. Other possibilities exist as well. In any case, the just mentioned prediction schemes are based on the motion vector of the current block. This allows for a very accurate prediction of the vector and therefore the information content imposed on the motion vector difference. Therefore, the motion vector difference is reduced to the motion vector The difference component 802 indicates a frequency histogram in which higher values ​​of x and y are accessed less frequently. Therefore, the choice of the order of the exponent Golomb codes is always 1, and the order of the codes of the contracted unary terms is The content of the two bins and the decrease of the cutoff value to 2 as described in Figure 18. The constraints of text adaptive entropy coding do not negatively affect coding efficiency. High horizontal and vertical components, since predictions tend to work equally well in both directions. Even omitting any feature between is compatible with effective prediction.

[0254] In the above description, the desymbolizer 314, the reconstructor 404 and the entropy decoder 4 As far as the function of the 09 is concerned, the full details of the 09 with reference to Figures 1 to 15 are shown, for example, in Figure 16. It is important to note that the above is transferable to other components. For completeness, these details are outlined again below.

[0255] For a better understanding of the prediction scheme just outlined, please refer to FIG. As described above, the composer 404 selects the current block 822 or the current block We can obtain different predictors for the combined groups of blocks, and these predictors are The predictor is represented by a vector 824. The predictor is obtained by spatial and / or temporal prediction. Furthermore, arithmetic mean operations or the like can be used so that they are correlated with each other. The individual predictors are obtained by the reconstructor 404 to some extent. Apart from the above method, the reconstructor 404 may sequence or organize these predictors 126 into an ordered list. This is illustrated by numbers 1 to 4 in Figure 21. The sorting process is unique. Preferably, the encoder and decoder operate synchronously if the Then the just mentioned index is the current block or join group , which is obtained explicitly or implicitly from the data stream by the reconstructor 404. For example, the second predictor "2" may be selected, and the decoder 404 may generate the motion vector The difference 800 is applied to this selected predictor 126, thereby obtaining, by motion compensated prediction, The last recalled move used to predict the content of the current block / join group In the case of a combined group, we obtain a vector 128. To further refine the motion vector 128, a reconstructor 404 is provided for the block. It is possible to include additional motion vector differences that are added.

[0256] Thus, further continuing with the description of the implementation of the components shown in FIG. 16, PIPE decoder 409 uses binary arithmetic decoding or binary PIPE encoding, The method is configured to extract the abbreviated unary code 806 from the data stream 401. Both concepts are explained above. Furthermore, the entropy decoder 40 9 is the code for the contracted unary 806 or two bins in the same context for both bins It can be configured to use different contexts for location. The decoder 409 can be configured to perform an update of the probability states. The entropy decoder 409 uses the truncated unary code 806 for the currently derived bin. Then, the current probability state associated with the context selected for the bin to be drawn is calculated. This can be done by transitioning to a new probability state depending on the bin currently being drawn. In addition to the other steps 0 to 5 above, the entropy decoder performs the The table lookup is performed on the tables Next_State_LPS and Next_State_M. See PS. In the above description, the current probability state is pState_current. It is defined for each context of interest. The entropy decoder 409 receives the current probability interval width value, i.e., the probability interval index q _index indicates the current probability interval, and the probability interval index and probability state The index, i.e., the currently drawn probability interval, is used to subdivide the current probability interval into two subintervals. p_s depends on the current probability state associated with the context selected for the bin to be Interval subdivision is performed by indexing table entries between table entries using tate. By quantizing the R that is executed, the bins currently drawn from the shortened singleton code 806 are In the embodiment outlined above, these The partial intervals were associated with the most and least likely symbols. As mentioned above, the entropy decoder 409 selects the two or three most important 8-bit representations of the interval width. It is configured to extract the necessary bits to create an 8-bit representation of the current probability interval width value R. The entropy decoder 409 is configured to quantize the current probability interval width value. Two subintervals based on offset state values ​​from the current probability interval, i.e., the interior of V and updating the probability interval width value R and the offset state value. and estimates and updates the value of the currently drawn bin using the selected subinterval. The probability interval width value R and the sequence of bits read from the data stream 401 are For example, the entropy decoder 409 performs renormalization of the offset value R, which includes the current A subdivision of the current probability interval width value into two subintervals is obtained by dividing the current probability interval width value by the By using the exponential Golomb code, the bins are decoded into binary arithmetic. The halving corresponds to an equal probability estimate fixed at 0.5. This can be done by bit shifting. The entropy decoder uses To do this, we add the exponential Golomb codes for the horizontal and vertical components of each motion vector difference. , shortening of the horizontal and vertical components of the respective motion vector differences from the data stream 401 By this measure, the entropy decoder 409 is configured to derive a unary code. The higher the number of bins, the more likely the probability estimates are fixed, i.e., the more likely the bins are fixed at 0.5. This can be used to speed up the entropy decoding procedure. On the other hand, the entropy decoder 409 first generates a motion vector. The horizontal and vertical components of the motion vector difference are extracted, followed by the horizontal and vertical components of the next motion vector difference. By extracting the components, we prefer to preserve the order in the motion vector differences. This allows the desymbolizer 314 to immediately scan for further motion vector differences. Since the de-binarization of the motion vector difference can be continued in the decoding component, i.e., The memory requirements imposed on the 16 decoders are reduced by the context selection. Only exactly one context is allowed per bin position of code 806. It can be used.

[0257] The reconstructor 404, as described above, uses predictors 1 for the horizontal and vertical components of the motion vectors. 26 and using the horizontal and vertical components of the motion vector difference, e.g., simply The motion vector is then calculated by improving the predictor 826 by adding the motion vector difference to the predictor. The horizontal and vertical components of the motion vector are spatially transformed to reproduce the horizontal and vertical components of the pixel difference. The time and / or duration of the event can be predicted.

[0258] Additionally, the decoder 404 may include predictor ordering for the horizontal and vertical components of the motion vectors. The horizontal and vertical components of the motion vectors are predicted in different ways to obtain a list of possible motion vectors. Get the list index from the data stream and run the predictor as the list index moves. The motion vector is then estimated by improving the list predictor using the horizontal and vertical components of the vector. The image can be configured to reproduce the horizontal and vertical components of the vector.

[0259] Furthermore, as mentioned above, the reconstructor 404 reconstructs the video image by subdividing it into blocks. Applying the horizontal and vertical components 802 x, y of the motion vector with a specified spatial precision and the reconstructor 404 is configured to reconstruct the video using motion compensated prediction by The blocks are grouped into a combined group, and in each combined group unit, a binarizer 31 4. Horizontal and vertical components 802 of the motion vector difference obtained by applying the integer values ​​of x and y. To do this, the combined syntax elements in the data stream 401 are used.

[0260] The reconstructor 404 extracts blocks from the data stream 401, excluding the join syntax elements. The reconstructor 404 can derive a subdivision of the video image into the associated join groups. Adapting or combining the horizontal and vertical components of a given motion vector for all blocks in the group It is refined by the horizontal and vertical components of the motion vector difference associated with the blocks of the group. do.

[0261] For completeness only, FIG. 17 shows an encoder that is compatible with the decoder of FIG. The encoder of FIG. 17 includes a constructor 504, a symbolizer 507, and an entry The encoder uses the motion vectors to perform motion compensated prediction to generate a video signal. The motion vectors are predictively coded by coding the video 505 and predicting the motion vectors. the horizontal and vertical components of the motion vector difference, which indicates the prediction error of the predicted motion vector. a constructor 504 configured to set an integer value 506 of the motion vector difference; The integer values ​​are binarized to obtain the horizontal and vertical component binarization 508, and the binarization is performed by using a cutoff The horizontal and vertical components in the first interval of the region whose horizontal and vertical components are smaller than the value are shortened. The code of the term, and the number of the horizontal and vertical components in the region that includes or is greater than the cutoff value. Exp-Go of the prefix and horizontal and vertical components for cutoff values ​​in the interval of 2 The cutoff value is 2 and the Exp-G The olomb code is 1 in symbolizer 507; and the horizontal and vertical motion vector differences For the direct component, the horizontal and vertical components of the motion vector difference and a constant equiprobability bypass motion vector are used. The Exp-Golomb code with the shortened unary code has a probability of being generated at each bin position. Shortening using context-adaptive binary entropy coding in one context an entropy encoder 513 configured to encode the unary code into a data stream; Further possible implementation details can be found in the decoder description of FIG. 16 and the encoder description of FIG. can be transferred directly to the datacenter.

[0262] Although some aspects have been described in the context of an apparatus, these aspects may also be used in the context of a corresponding method. It is clear that the blocks or devices may be applied to the description and may be used as method steps or method Corresponding to the features of the steps. Similarly, aspects described in the context of method steps represents a description of a corresponding block or component or feature of a corresponding device. All method steps may be implemented by hardware devices, such as a microprocessor, a program, or the like. It can be performed by (using) a computer or electronic circuit or the like. In some embodiments, one or more of the most important method steps may be performed in such an apparatus. This can be performed.

[0263] The coded signal of the invention can be stored on a digital storage medium or transmitted, for example, wirelessly. Transmission over a wired or wired transmission medium, such as the Internet. This can be done.

[0264] Depending on the particular implementation requirements, embodiments of the invention may be implemented in hardware or in software. The implementation may be implemented in electronically readable control stored thereon. Digital storage media with control signals, such as floppy disks, DVDs, Blu-rays, Using CD, ROM, PROM, EPROM, EEPROM or Flash memory It is a programmable controller that can be executed and each method can be executed. It works (or can work) with a computer system. The storage medium may be computer readable.

[0265] Some embodiments according to the present invention include a data carrier having electronically readable control signals. and configured to perform one of the methods described herein. It can work in conjunction with a programmable computer system.

[0266] Typically, embodiments of the present invention are presented as computer program products having program code. When the computer program product runs on a computer, The program code is implemented to perform one of the methods. The code may for example be stored on a machine-readable carrier.

[0267] Other embodiments include any of the methods described herein and stored on a machine readable carrier. The present invention also includes a computer program for carrying out one of the methods described herein.

[0268] In other words, an embodiment of the method of the invention is therefore a computer program When run on a processor, the processor executes one of the methods described herein. It is a computer program having program code.

[0269] Further embodiments of the inventive method are therefore recorded thereon and described herein. A device consisting of a computer program for carrying out one of the methods described A data carrier (or digital storage medium or computer-readable medium). carriers, digital storage media or recorded matter are typically tangible and / or non-transferable. It is something like that.

[0270] A further embodiment of the inventive method is therefore the method described herein A data stream representing a computer program for execution of one of the following: A data stream or sequence of signals is a data communication connection. It can be configured to be transferred via a connection, for example, over the Internet.

[0271] Further embodiments are configured to perform one of the methods described herein, or Adapted processing means include, for example, a computer or programmable logic device.

[0272] Further embodiments further comprise performing one of the methods described herein. This includes a computer on which a computer program for carrying out the process is installed.

[0273] A further embodiment according to the invention is a receiver comprising one of the methods described herein. transferring (e.g. electronically or The receiver includes a device or system configured to transmit (or receive) a signal (optically). The device or system may be, for example, a computer, a mobile device, a memory device, etc. It may also be a file server for transmitting computer programs to receivers.

[0274] In some embodiments, a programmable logic device (e.g., a field programmable logic device) A gate array (possibly a gate array) may perform some of the functions of the methods described herein. In some embodiments, the field The programmable gate array may be configured to The method may cooperate with a microprocessor to perform one of the following: The method is preferably also implemented by a hardware device comprising:

[0275] The above described embodiments are merely illustrative for the principles of the present invention. and that the details described herein will be apparent to others skilled in the art. It is understood that the scope of the present application is limited only by the scope of the patent claims at hand. Limited only by the specific details set forth in the description and illustration of the embodiments herein. is not intended.

Claims

1. The horizontal and vertical components of the motion vector difference are coded using binarization of the horizontal and vertical components. In a decoder for decoding video from a coded data stream, binarization is , respectively, in the first interval of the region of the horizontal and vertical components lower than the cutoff value. The code of the contracted single term for the horizontal and vertical components, and the code of the horizontal and vertical components equal to or higher than the cutoff value. and prefix in the form of a shortened unary code for the cutoff value in the second interval of the domain of the vertical component. The combination of a prefix and a suffix in the form of an Exp-Golomb code of the horizontal and vertical components is equivalent to The cutoff value is 2, and the Exp-Golomb code has the order 1. And, For the horizontal and vertical components of the motion vector difference, and Ex using a constant equal probability bypass mode to obtain binarization of the motion vector difference. Exactly one code per bin position of the shortened unary code, common to p-Golomb codes. Context-adaptive binary entropy decoding with context an entropy decoder configured to derive a shortened unary code from the stream; of the motion vector difference syntax element to obtain integer values ​​for the horizontal and vertical components of the motion vector difference. a desymbolizer configured to debinarize the binarization; Configured to reconstruct video based on integer values ​​of horizontal and vertical components of motion vector differences a decoder including a reconstructor to be used.

2. The entropy decoder (409) performs binary arithmetic decoding or binary PIPE decoding. to extract the abbreviated unary code (806) from the data stream (401).

2. A decoder according to claim 1, comprising:

3. The entropy decoder (409) generates the following for the two bin positions of the shortened unary code 806: The deco according to claim 1 or 2, configured to use different contexts. -da.

4. The entropy decoder (409) is currently derived from the shortened unary code (806). For the bin, the current context associated with the selected bin for the currently drawn bin The probability is calculated by transitioning from a probability state to a new probability state according to the currently drawn bin.

4. The method of claim 1, further comprising:

2. A decoder according to claim 1 .

5. The entropy decoder (409) obtains a subdivision of the current probability interval into two subintervals. To do this, we use the current probability associated with the context selected for the currently drawn bin. The probability interval index and the probability state index are used to calculate the probability of multiple table entries. By indexing the table entries in the The division is performed by quantizing the current probability interval width value that indicates the current probability interval. The bins currently extracted from the abbreviated singleton code (806) are then binary-operated decoded.

5. A decoder according to claim 1, wherein the decoder is configured as follows:

6. The quantization of the current probability interval width value uses an 8-bit representation for the current probability interval width value. and use the most significant bit of the 8-bit representation for grab-out2 or 3.

6. A decoder according to claim 5, configured to:

7. The entropy decoder (409) calculates the probability of a probability error based on an offset value from within the current probability interval. configured to select between two sub-intervals, and a probability interval width value and an offset state value and updates the data stream (401) using the selected sub-interval. The updated probability interval width value and offset state, including the continuation of reading bits of 5. A method according to claim 4, wherein a renormalization of values ​​is performed to estimate the value of the currently drawn bin.

2. A decoder according to claim 1 .

8. The entropy decoder (409) performs a constant equiprobability bypass mode to decode the two partial by halving the current probability interval width value to obtain a subdivision of the current probability interval into , configured to binary arithmetically decode bins from Exp-Golomb codes, A decoder according to any one of claims 5 to 7.

9. The entropy decoder (409) calculates the horizontal and vertical components of each motion vector difference. Before the Exp-Golomb code, for each motion vector difference, and derive the shortened unary codes of the horizontal and vertical components of each motion vector difference.

9. A decoder according to claim 1, wherein

10. The decoder derives predictors for the horizontal and vertical components of the motion vector and calculates the motion vector difference. The horizontal and vertical components of the motion vector are used to refine the predictor 826. The horizontal and vertical components of the motion vectors are spatially and / or 10. The device according to claim 1, wherein the device is configured to predict the time or the time of the event. Coda.

11. The predictor is an ordered list of predictors for the horizontal and vertical components of the motion vector. The horizontal and vertical components of the motion vector are predicted in different ways to obtain the The list index is obtained from the frame, and the list index is the horizontal and vertical coordinates of the motion vector difference. The horizontal and vertical components of the motion vectors are then used to improve the predictor of the list.

11. The method according to claim 1, wherein the method is configured to reproduce a vertical component. decoder.

12. The decoder uses motion compensated prediction by using the horizontal and vertical components of the motion vectors.

12. A decoder according to claim 10 or 11, adapted to reproduce video using 。

13. The reconstructor computes motion vectors with a spatial precision defined by the subdivision of the video image into blocks. Reconstruct the video using motion compensated prediction by applying the horizontal and vertical components of the The reconstructor is configured to group blocks into joint groups and debinarize them using the debinarizer. The horizontal and vertical components of the motion vector difference obtained by the 13. The method of claim 12, wherein the method uses a combined syntax element present in the data stream in the bit. decoder.

14. The reconstructor extracts the video of the block from the part of the data stream excluding the join syntax element.

14. A decoder according to claim 13, configured to derive a subdivision of the image.

15. The decoder calculates the horizontal coordinates of a given motion vector for all blocks of the associated combined group. and adopting the vertical component or the motion vector associated with the block of the combined group 13 or 14, wherein the horizontal and vertical components of the difference are adapted to be improved. The decoder of claim 14.

16. 1. An encoder for encoding video into a data stream, comprising: Predictively encode the video using motion compensated prediction using the motion vectors, The motion vector is predictively encoded by predicting the motion vector, and the predicted motion vector is a controller configured to set integer values ​​of horizontal and vertical components of a motion vector difference representing a Instructor; To obtain binarization of the horizontal and vertical components of the motion vector difference, we binarize the integer values. The binarization is performed by first dividing the horizontal and vertical components of the region below the cutoff value. The codes of the contracted unary terms for the horizontal and vertical components in the interval, and the values ​​that are equal to or less than the cutoff values. A contraction unit for the cutoff value in the second interval of the region of the horizontal and vertical components higher than prefixes in the form of the chords and suffixes in the form of the Exp-Golomb chords for the horizontal and vertical components The cutoff value is 2, and the Exp-Golomb code is a symbolizer having a value of 1; and For the horizontal and vertical components of the motion vector difference, and the Exp-Golomb code with a constant equiprobability bypass mode, Context-adaptive binning with exactly one context per bin position of a unary code. Encode the shortened unary code into the data stream using binary entropy coding. An encoder, including an entropy coder.

17. The entropy coder uses binary arithmetic coding or binary PIPE coding to generate short 17. The method of claim 16, configured to encode a code of a contracted unit term into a data stream. Encoder.

18. The entropy coder uses different contexts for the two bin positions of the shortened unary code.

18. An encoder according to claim 16 or claim 17, configured to use a

19. The entropy coder calculates the current code for the currently coded bin from the shortened unary code. The transition from the current probability state associated with the context selected for the bin being generated. and perform a probability state update to a new probability state according to the currently drawn bin.

19. An encoder according to any one of claims 16 to 18, configured to:

20. The entropy coder obtains a subdivision of the current probability interval into two subintervals by: Depending on the context and the current probability state associated with the bin currently being drawn, The probability interval index and the probability state index are used to find a table entry among the multiple table entries. By indexing the interval, we obtain the probability interval index and perform interval subdivision. The current probability interval width value is quantized to indicate the current probability interval. configured to perform binary arithmetic encoding of the currently encoded bin from the code of An encoder according to any one of claims 16 to 19.

21. The quantization of the current probability interval width value uses an 8-bit representation for the current probability interval width value. and use the most significant bit of the 8-bit representation for grab-out2 or 3.

21. The encoder of claim 20, configured to:

22. The entropy coder determines the interval between two subintervals based on the integer value of the bin currently being coded. and using the selected sub-interval to determine the probability interval width value and the probability interval Updates the interval offset and includes continuing to write bits to the data stream.

20. Performing a renormalization of the probability interval width value and the probability interval offset.

22. The encoder according to claim 21.

23. The entropy coder calculates the current probability interval to obtain a subdivision of the current probability interval into two subintervals. By halving the probability interval width value of 22. The method according to claim 20, wherein the method is configured for binary arithmetic encoding. Encoder.

24. The entropy encoder calculates the Exp-G of the horizontal and vertical components of each motion vector difference. Before the Omnibus code, for each motion vector difference, configured to encode a contracted unary code of the horizontal and vertical components of the vector difference, An encoder according to any one of claims 16 to 23.

25. The constructor allows you to refine the predictor for the horizontal and vertical components of the motion vector. Then, a predictor for the horizontal and vertical components of the motion vector is obtained, and the horizontal and vertical components of the motion vector difference are calculated. The horizontal and vertical components of the motion vector are calculated spatially and / or 25. The method according to claim 16, wherein the method is configured to predict the time in a time-dependent manner. Encoder.

26. The constructor is an ordered set of predictors for the horizontal and vertical components of the motion vector. The horizontal and vertical components of the motion vectors are predicted in different ways to obtain a list of Improved predictor for lists whose indexes refer to the horizontal and vertical components of the motion vector. The list index is determined so that the information that reveals it is included in the data stream. and determining horizontal and vertical components of the motion vector difference. An encoder according to any one of claims 6 to 25.

27. The constructor operates with a spatial precision dictated by the subdivision of the video image into blocks. The video is then extracted using motion compensated prediction by applying the horizontal and vertical components of the vector. The constructor groups blocks into join groups. to apply the horizontal and vertical components of the motion vector difference depending on the binarization by the non-binarizer. In this way, the join syntax elements are determined in the join group units and inserted into the data stream.

27. An encoder according to any one of claims 16 to 26, wherein the encoder inputs

28. The constructor blocks the portion of the data stream that excludes join syntax elements.

28. An encoder according to claim 27, configured to encode a subdivision of the images of a video of 。

29. The constructor creates a given motion vector for all blocks in the associated link group. The horizontal and vertical components of the loop are employed, or the motion associated with the block of the combined group is 28. Configured to refine it by horizontal and vertical components of the vector difference. Or an encoder according to claim 28.

30. The horizontal and vertical components of the motion vector difference are coded using binarization of the horizontal and vertical components. In a method for decoding video from a coded data stream, the binarization The horizontal and vertical components are respectively below the cutoff value in the first interval of the region. The code for the shortened singleton of the vertical component, and the horizontal and vertical values ​​equal to or higher than the cutoff value. prefix in the form of a shortened unary code for the cutoff value in the second interval of the domain of direct components; Equivalent to the combination of horizontal and vertical components with suffixes in the form of Exp-Golomb codes , the cutoff value is 2, and the Exp-Golomb code has order 1. 、 For the horizontal and vertical components of the motion vector difference, and Ex using a constant equal probability bypass mode to obtain binarization of the motion vector difference. Exactly one code per bin position of the shortened unary code, common to p-Golomb codes. Context-adaptive binary entropy decoding with context extracting the code of the contracted unary from the stream; of the motion vector difference syntax element to obtain integer values ​​for the horizontal and vertical components of the motion vector difference. A step of de-binarizing the binarized data; reconstructing the video based on integer values ​​of horizontal and vertical components of the motion vector difference. Including, a method.

31. 1. An encoder for encoding video into a data stream, comprising: Predictively encode the video using motion compensated prediction using the motion vectors, The motion vector is predictively encoded by predicting the motion vector, and the predicted motion vector is setting integer values ​​for horizontal and vertical components of the motion vector difference representing the error; A step of binarizing integer values ​​to obtain binarized horizontal and vertical components of the motion vector difference. The binarization is performed by dividing the horizontal and vertical components of the image area by a threshold value, respectively. The codes of the contracted unary horizontal and vertical components in the interval of 1, and whether they are equal to the cutoff value The shortening unit for the cutoff value in the second interval of the region of the higher horizontal and vertical components Prefixes for the term code form and suffixes for the Exp-Golomb code form of the horizontal and vertical components The cutoff value is 2, and the Exp-Golomb code is a step having the steps of: For the horizontal and vertical components of the motion vector difference, and the Exp-Golomb code with a constant equiprobability bypass mode, Context-adaptive binning with exactly one context per bin position of a unary code. Encode the shortened unary code into the data stream using binary entropy coding. Encoder, including steps.

32. When the method of claim 30 or claim 31 is executed on a computer, the execution A computer program having a program code for:

Citation Information

Patent Citations

  • Encoder and decoder

    JP2008211697A

  • Method and apparatus for binarization and arithmetic coding of a data value

    US20050038837A1

  • Adaptive motion informaiton cost estimation with dynamic look-up table updating

    US20100316118A1