Entropy coding of motion vector difference
By combining the shortening coding scheme and multi-motion vector predictor, the complexity and inefficiency caused by context provision in motion vector differential coding are solved, and more efficient coding efficiency is achieved.
Patent Information
- Application Number
- JP2024177994
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2011-07-15
- Filing Date
- 2024-10-10
- Publication Date
- 2025-02-04
- Estimated Expiration
- 2032-06-18
AI Technical Summary
In the encoding process of motion vector difference, existing video encoding technology, rich context provision leads to increased symbolization complexity, affects encoding efficiency, and inaccurate probability assessment, resulting in inaccurate encoding efficiency.
Using a shortened coding scheme, the binary position of the motion vector difference is reduced using 2 to cut-off values, avoiding context selection based on adjacent blocks, and combining with multi-motion vector predictors, reducing context classification refinement, and improving the accuracy of probability evaluation.
The encoding efficiency of motion vector difference is improved, the number of transmitted vector difference is reduced, the encoding complexity is reduced, and the encoding efficiency is enhanced.
Smart Images

Figure 2025016509000001_ABST
Abstract
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 are usually used to 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 in which motion compensated prediction is based on image content. The motion vectors are determined by the motion compensated prediction and the prediction residual. relies on lossless entropy coding. To further reduce the amount of data, the motion vectors itself follows the prediction, so that the motion vector difference, which simply represents the motion vector prediction residual, For example, in H.264, only The procedure outlined above is applied to transmit information about the motion vector differences. The motion vector difference is expressed as a truncated unary code and ,From a certain cutoff value, the bin string corresponding to the combination of exponent Golomb signs The exponential Golomb code bins are is easily encoded using an equal probability 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. Thus, 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 comes at the expense of increased coding complexity. In addition, it can have a negative impact on coding efficiency, as the context is 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 implemented and is therefore inappropriately applied. The probability estimates estimate the actual symbol statistics. If several contexts are provided, the choice between them is a matter of necessity for the decoding process. Requires checking of adjacent bin / syntax element values that would prevent execution of the If the number of bins is set too low, the bins for the actual symbol statistics will be very different. Grouped within a context and therefore related to that context. Therefore, 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. Reduce the cutoff value by 2 so that there are only two bin positions for the contracted unary code. By increasing the number of motion vectors, the coding efficiency of the entropy coding of the motion vector difference is further increased. The order of magnitude of the Golom exponent for the motion vector difference from the cutoff value is 1. b code, and furthermore, exactly one context is incomplete. When given in two positions of a unary code, respectively, the bins or sequences of adjacent image blocks are Selection of a context based on the value of a syntax element 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 the horizontal and vertical components, it creates too fine a context. Reduces the negative effects of store repartitioning.
[0008] Furthermore, the above setting for entropy coding of the motion vector difference is Combined with advanced methods of vector difference, this reduces the required total number of motion vector differences transmitted. For example, multiple motion vector predictors are To obtain an ordered list, an index to this list of motion vector predictors is provided. The index is the actual value represented by the motion vector difference whose prediction residual is in question. Used to determine the motion vector predictor. Although the information about the The overall prediction quality of the motion vectors is increased, and therefore the magnitude of the motion vector difference is updated. and overall, the coding efficiency is further increased, which is due to such improved motion vector prediction. Cutoff values and contexts for the horizontal and vertical components of the pointing motion vector difference On the one hand, it reduces the common use of motion vectors transmitted in the data stream. Combining can be used to reduce the number of toll differences, and for this purpose, the combined information is The data that is sent to the decoder block is classified into blocks of 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 single 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 the respective context for the bin position reduces the number of adjacent motion vector differences. This prevents the entropy coding scheme from classifying the context too finely. The concept of combination 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 description 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 schematic diagram showing an image-like subdivision into blocks. [Figure 2b] FIG. 2b is a schematic diagram showing different subdivisions of such an image into blocks. [Figure 2c] FIG. 2c is a schematic diagram showing different subdivisions of such an image into blocks. [Diagram 3] FIG. 3 shows a block diagram of a decoder according to an embodiment. [Figure 4] FIG. 4 is a block diagram showing an encoder according to an embodiment in further detail. [Diagram 5] FIG. 5 is a block diagram showing a decoder according to an embodiment in further 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 illustrates 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 a multiplexed partial bit stream 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 illustrates 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] FIG. 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 diagram showing binarization of a motion vector difference according to an embodiment of the present invention. [Figure 19]FIG. 19 is a diagram showing 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 PREFERRED EMBODIMENTS
[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, which are indicated by the same reference numbers and as far as their functionality is concerned, Note that this is avoided to avoid unnecessary repetition. Unless otherwise expressly indicated, features and descriptions provided with respect to one figure may be used interchangeably with other figures. This is also applied to the figure.
[0011] In the following, firstly, an embodiment of a general video coding concept is described with reference to Figs. Figures 1-6 show a video codec operating at the syntax level. The following figures 8 to 10 show the conversion of syntax elements to a data stream and vice versa. The present invention relates to examples of parts of the code. The examples are described in the form of possible implementations of the general concepts typically outlined with respect to FIGS. is.
[0012] FIG. 1 illustrates an example embodiment for an encoder 10 in which aspects of the present application can be implemented. .
[0013] The encoder encodes a sequence of information samples 20 into a data stream. The array of pulls may be, for example, information samples corresponding to luminance values, brightness values, luma values, saturation values, etc. However, if the sample array 20 is a time-dependent, e.g., optical sensor, In the case of a depth map generated by a depth map, 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 entirely 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 previously encoded A block retransformation can be used to set the coding parameters, i.e. Set how each sample array region corresponding to each block will be encoded For this purpose, block precision can be used.
[0015] Moreover, the encoder 10 is a transform encoder. That is, the encoder 10 encodes the spatial domain. A transformation is used to transfer the information samples in each block 40 from the frequency domain to the spectral domain. The block 40 is encoded using a two-dimensional transform such as the DCT of the FFT. Preferably, the block 40 is of quadratic or rectangular shape.
[0016] The subdivision of sample array 20 into blocks 40 shown in FIG. 1 is provided merely for convenience of illustration. Figure 1 shows two adjacent quadratic or rectangular blocks that do not overlap. 1 shows the sample array 20 as being subdivided into a regular two-dimensional array of blocks 40. The size of the block 40 may be predetermined. 3. In the data stream 30, information about the block size of the block 40 is transmitted. For example, the decoder can anticipate a given 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 current block along a given direction. Among adjacent blocks arranged side by side in a block, only one block overlaps. , overlap may be limited. The latter is the case when the left or right hand neighboring block is completely overlapped with the current Covering blocks can overlap the current block, but they will not 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 using bit-splitting. The subdivision information is transmitted to the decoder side via the stream 30 and used. The encoding is adapted to the contents of the sample array 20 by the encoder 10 .
[0019] 2a to 2c show different implementations for the subdivision of the sample array 20 into blocks 40. FIG. 2a shows an example of a quadtree-based partitioning of a sample array 20 into blocks 40 of different sizes. The subdivision of the blocks is shown with increasing size as indicated by 40a, 40b, 40c and 40d. According to the subdivision of FIG. 2a, the sample array 20 is divided into first, The block is divided into a uniform two-dimensional arrangement of blocks 40d, which is further divided into four blocks 40d. Each subdivision 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 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 an array 20 that has block subdivision units.
[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] FIG. 2b shows another embodiment for the subdivision. According to FIG. 2b, the sample array 20 is First, they are arranged so that they are adjacent to each other but in a uniform two-dimensional arrangement with no overlapping. Each macroblock 40b is divided into a plurality of macroblocks 40b. Not subdivided or, if subdivided, different subdivisions for different macroblocks The subdivision into equal-sized subblocks with uniform two-dimensional state to achieve accuracy. The results are 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, the 2D transformation of each of the blocks to be processed is performed. Figure 2c will be discussed later.
[0022] FIG. 3 shows a representation of the data stream generated by the encoder 10 as a sample array 20. 5 shows a decoder 50 capable of decoding the original image to recreate the original version 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 a block. Entropy is inserted so that this information can be extracted from the data stream. According to different embodiments, the encoding / decoding can be performed. The data stream 30 does not necessarily include 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-split block that For example, the encoder 10 may encode the bit stream 30. A block 40 in which a different coding parameter is inserted into stream 30 is changed for a specific block. Refrain from inserting conversion coefficient blocks and instead make the decoder 50 predictable. or otherwise reproduced version 60, making it possible to fill each block For example, the encoder 10 may determine that By expressing this by texture synthesis, the decoder will fill in the performing texture analysis to determine the location of blocks within the sample array 20; can be done.
[0024] As will be described with respect to the following figures, the transform coefficient blocks are not necessarily Each block 40 represents a spectral domain representation of the original information samples. Rather, such a transform coefficient block is a prediction residual of the respective block 40. We can represent the spectral domain representation of the eigenvalues in the following way. Figure 4 shows an implementation for this type of encoder. An example of the encoder of FIG. The subtractor 10 includes a conversion stage 104, a predictor 106, a subtractor 108 and an adder 110. 8, the transform stage 100 and the entropy coder 102 are connected to the input 1 of the encoder of FIG. 12 and output 114 in that order. 4, the adder 110 and the predictor 106 are connected to the output of the conversion stage 100 and the subtractor 108 and the output of the predictor 106 is further connected to the input of an adder 110. Connected.
[0025] The encoder in FIG. 4 is a predictive transform-based block coder. That is, the input 112 is A block of an input sample array 20 is encoded before the same sample array 20. The segment being reproduced may precede the current sample sequence 20 in presentation time. The prediction is made from a sequence 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 then the transform stage 100 performs a two-dimensional transform on the prediction residual. The two-dimensional transform itself or the next measurement within transform stage 100 is performed in the transform coefficient block. This leads to the quantization of the transform coefficients. The quantized transform coefficient block is then used to calculate the entropy The resulting signal is encoded in a lossless manner 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 102, and the predictor 106 then calculates the current coding prediction 103. 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 to The parameters are sent to an entropy encoder 102 for insertion into the data stream. For each inter-predicted prediction block, the motion data is predicted by the decoder. In order to make it possible to correct the The motion data for a predictive block of an image is inserted into the adjacent already coded predictive blocks. Compared with the motion vector predictor derived from the motion vector of the estimated block by the above method, , which indicates a motion vector difference that codes 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 divided into two blocks, one for each of its actual information samples. Rather, it represents a spectral representation of the remainder of the sample sequence. That is, 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. ,The motion vector difference syntax for inter prediction blocks, the location of the important transform coefficient levels, It includes syntax for the importance map to indicate the importance of the transform coefficients and syntax for specifying the important transform coefficient levels themselves. nothing.
[0027] Several variations exist on the embodiment of FIG. 4, some of which are described in the introductory portion of the specification. 4, which description is incorporated herein by reference.
[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 The entropy decoder 150 includes an inverse transform decoder 152, an adder 154, and a predictor 156. The stage 152 and adder 154 are connected between the input 158 and the output 160 of the decoder of FIG. The further output of the entropy decoder 150 is connected to an adder 1 54 and a further input of a predictor 156 connected therebetween. The tropy decoder 150 receives the digital signal from the data stream input to the decoder of FIG. A transform coefficient block is extracted from the transform coefficients 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 shown by the solid line and the point The subdivision for the prediction block with the residual accuracy shown by the line is shown. As can be seen, the subdivision can be selected by the encoder independently of each other. The data stream syntax allows the definition of residual subpartitioning independent of prediction subpartitioning. Alternatively, each residual block can be considered to be equal or different from the predicted block. The residual subdivision may be an extension of the prediction subdivision, such that the residuals are a reasonable subset of the ,This is shown in Fig. 2a and Fig. 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 number in Figs. Every block with The solid blocks larger than the dotted 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 input signal is converted to a block of transform coefficients, which is then converted to a reconstructed block of samples at the decoder side. This is shown in Figure 6. In the case of FIG. 6, this block 200 is representative of a quadratic The sample 202 is a 4×4 sample 202. The sample 202 is arranged in 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 block 204 is transformed into a block 204 of transform coefficients 206. That is, the transformation block 200 is 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 spatial frequency increases monotonically, while the vertical axis corresponds to the axis along which spatial frequency increases monotonically. corresponding to the axis along which the DC component transform coefficients are located at the corners of block 204 - where is located in the upper left corner as a sample, so that the horizontal and The transform coefficients 206 corresponding to the highest frequencies in both the spatial and vertical directions are located. By ignoring the direction, the spatial frequency to which a particular transform coefficient 206 belongs is generally It increases from the corner to the lower right corner. -1 Thus, the conversion block 204 Transforming from the spectral domain to the spatial domain and obtaining again a copy 208 of block 200 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 one hand, quantization noise tends to spread out the entire block 208, so that Sudden and very localized objects within the range of block 200 are overshadowed by 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 the non-zero (quantized) transform coefficients, i.e. levels, on the other hand, is of importance. The number of missing transform coefficients is reduced in large blocks compared to small blocks, which 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 locations of the transform coefficient levels are indicated in the data stream by means of a validity 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 translation blocks, motion data for inter prediction blocks Syntax elements are assumed to be arranged consecutively in a predetermined manner in the data stream. This kind of predetermined method is, for example, the same as that for the H.264 standard or other video codecs. It is expressed in pseudocode form, just as is done with .
[0033] In other words, the above description refers to media data, here specific syntax elements, their meanings, A system of syntactic elements according to a given syntactic structure that specifies the taste and order between them. The first step was to convert 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. Its role is to perform conversions between symbol or bit streams.
[0034] An entropy encoder according to an embodiment is illustrated in FIG. In compression, the 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, i.e. For example, a category can be a type of 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 relate to a level, for example audio, spoken, text, written or In other application domains, 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-valued 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 syntax element categories, 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 into a sequence of bins 303 (or The sequence of bins 303 is ordered. Each bin 303 or binary decision can have two values: , 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 particular category. The syntax for the metric may depend on other characteristics of the syntax elements.
[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 inefficiencies that arise are negligible. For a small finite set of syntax element values, 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 can be coded with no redundancy (and Potentially rearranging the sequence of bins) to represent some 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 as a general-purpose unary binarization scheme. The bin sequence for syntax element 7 of the The 0th order incomplete and rearranged Exp-Golomb thresholding in Table 2 is 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 input in the order of one or more A set of parameters is assigned to each bin 303 to produce 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 assigner 304 may be configured to You can select one of the available context indexes for the The available set of contexts for the current bin 303 is then calculated using the syntax element Depending on the type of bin defined by the type / category of 301, the current bin 303 is part of that binarization and is the position of the current bin 303 in the subsequent binarization. The selection of a context among a set of contexts is determined by the previous bin and Each of these contexts has a probability associated with it. The model, i.e., the estimate of the probability for one of the two possible bin values for the current bin. The probability model has a measure for the value. The probability model is then scaled to estimate the probability for a more likely or less likely bin value. 2, which represents the less likely or more likely bin value for the current bin 303. It is specified by an identifier that specifies the estimate for one possible bin value. In the case where there is only one context available for an application, the context selection is kept separate. As will be outlined in more detail below, the parameter assigner 304 assigns various We apply a probabilistic model associated with the context to each of the binars 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 high efficiency (HE) or low complexity (LC) mode is being used. In both modes, the probability model is a bin coder3, as outlined below. 10, the current bin 303 is associated with one of the bins 10, depending on the operating mode of the parameter assigner 304. The codes tend to be less complex in LC mode, whereas the bin statistics The parameters are then more precisely adapted to the association of each bin 303 with each individual encoder 310. The coding efficiency is increased in the high efficiency mode by the allocator 304, thereby Optimize the entropy associated with the code.
[0045] The output of the parameter allocator 304 is a set of associated parameters 305. Each bin is fed into a bin buffer selector 306. 306 potentially determines the input bin 30 based on the input bin value and associated parameters 305 Modify the value of 5 to move output bin 307 - potentially with the modified value - to two or more bins The output bin 307 is sent to one of the bin buffers 308. , 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. That is, the output bin 307 always has the same value as the input bin 305. In a preferred embodiment, the bin buffer selector 306 selects the input bin values 305 and The associated probability for one of 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 above a particular threshold If it is less than (or less than or equal to) the output bin value 307 is equal to the input bin value 30 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 a measure for the probability of a 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 smaller), 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 sigma-value.
[0047] In a further 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 the output bin value 307 based on the associated identifier that identifies the evaluation that represents the likely bin value. 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., (That is, 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 set of variables 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 probability for one of 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 the measurements is divided into a number of 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 is set to exactly 1. 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 two bins (which are the same in the present invention) are fed into the same bin buffer 308. In the example, the partial bit streams created have similar bit rates For the current bin with a particular bin buffer, The association of the measurements for the evaluation of the probability for one of the possible bin values of Furthermore, in the following, the interval index is also called the pipe index. However, the piped index is used with flags indicating refinement indices and more likely bin values. The index indexes the actual probability model (i.e., the probability estimates).
[0049] In a further 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 bin buffer 308 to be sent is determined based on the relevant measurements for evaluation of the present invention. In a preferred embodiment of The set of possible values for the measurements 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 that associates each possible value with an assessment of the probability for the event, and Different values for the measurements for the evaluation of the probability for a likely bin value are In a further preferred embodiment of the present invention, A measure of probability for the evaluation of unlikely or more likely bin values. The range of possible values is partitioned into many intervals, and the bin buffer selector 306 is unlikely to , or the interval interval for the current measurement for the evaluation of the probability for a more likely bin value. Different values for the interval index are associated with the same bin buffer 308. In a further preferred embodiment of the present invention, for example, To ensure that the partial bit streams 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 probability 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 The bin encoder is connected to only one bin buffer 308. Each bin encoder 310 Reads a bin from the associated bin buffer 308 and converts the sequence of bins 309 into a bit sequence. 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 A particular bin is not coded before a bin that comes before it (in the order in which it occurs). The output of the codeword 311 is written to a particular 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 312, the bin buffer and the bin code In the preferred embodiment of the present invention, the bin encoders 310 are of various lengths. The learned bins 309 are converted into code words 311 of various bit lengths. One advantage, 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 the processing time for some embodiments. Reduces.
[0051] Another advantage of the embodiment of the present invention is that the bin coding performed by the bin coder 310 is The advantage of this is that the sensors 305 can be specifically designed for different sets of sensors. Bin coding and coding have the following advantages (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, and on the other hand, it allows for an improvement in coding efficiency. In the currently preferred embodiment, the bin encoder 310 selects two possible bins for the current bin. Different groups of measurements for the evaluation of the probability for one of the 305 ANOVA values The coding algorithm (i.e., mapping of bin sequences onto codewords) is implemented. In a further preferred embodiment of the present invention, the bin encoder 310 Different measures of probability assessment 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 vector maps a sequence of direct input bins 309 to a codeword 310. Such a mapping can be done efficiently and does not require complex arithmetic coding. No engine is required. On a sequence of bins (as is done in a decoder) 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 all the same, i.e., a partial sequence of bins does not match one or more of the codewords. It is possible that the sequence can be mapped onto the 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 map the variable length sequence of the 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 accordance with a further preferred embodiment of the present invention, In the present specification, 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 is The bin encoder 310 (or one or more of the bin encoders) directly encodes the input bins on 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 FIG. 327. A decoded signal is decoded from a set of two or more partial bit streams 324. The reader contains two different procedural flows: a data request that replicates the data flow of the encoder The data flow in Fig. 8 shows the flow of the request and the reverse of the data flow of the encoder. In the illustrative 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 310 includes generating a new decoded syntax element 311 which is sent to a binarizer 314. In the preferred embodiment of the present invention, a novel decoding syntax Each claim in element 313 is associated with a category in a set of one or more categories. The category associated with a syntax element requirement is associated with the corresponding syntax element during encoding. This is the same category as the one used in the previous article.
[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 of the 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 bin sequence of the particular binarization scheme of the requested syntax element. If the decoded received sequence of bin 26 matches the binarization of the syntax element, , the binarizer empties its bin buffers and responds with a final response to a request for a new decoded symbol. The decoded syntax elements are output as a response to the already received sequence of the decoded bin. The match condition matches 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 the other bins to the parameter assigner until it matches one of the sequence. For each syntax element request, the decoder sends The binarization scheme used is the same as that used for the different syntax element categories. The binarization scheme for a particular syntax element category can vary depending on the possible syntax elements. It may depend on the set of element values and / or other characteristics 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 a bin. Then, it sends a request for a 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. The parameter may consist of one or more of the parameters mentioned in the description of the encoder of 7.
[0061] In a preferred embodiment of the present invention, the parameter allocator 316 assigns each request to a bin as follows: 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; and which of the two possible bin values is least likely for the current requested bin , or an identifier that identifies a rating that represents a more likely bin value. For the evaluation of the probability for one of the two possible bin values for the requested bin of Link it to context and its associated measurements.
[0062] The parameter assigner 316 determines the number of previously decoded symbols based on one or more sets of 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, and A measure for estimating the probability for a more likely bin value, where the identifier is a function of two possible bins. Which of the values is least likely or more likely for the currently requested bin The bin value can be determined by one or more of the following: The determination of the probability measure for a particular request in the bin is then processed 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 of the Le categories, adjacent spaces and and / or the temporal position (with respect to the current request for a syntax element and the associated data set) 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 include symbols that have been
[0063] The binomial has an associated set of parameters 317 which are the output of the parameter allocator 316. 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 then potentially modified to obtain the -latent The decoded output bins 326 have values that are essentially decoded according to the parameters 317. The bit set is sent to the binarizer 314 as the final response to the request for the bit that has been set.
[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 required bins 319. An estimate of the probability that the request is for one of two possible bin values for the current requested bin. The preferred embodiment of the present invention determines the bin buffer 320 to be sent based on the relevant measurements for In a preferred embodiment, a measure for evaluating 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 an estimate of the probability 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 evaluating 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 the probability for one of the possible bin values The bin buffer selector 318 selects one bin buffer 320 for the interval. It contains a table that precisely associates each possible value for the index with the different Different values can be associated with the same bin buffer 320. In, the inverse measure (inverse The measurements represent probabilities 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 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 A request for 9 is an unlikely 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 measurements for the evaluation of the probability for is limited, and the bin buffer The selector 318 selects one bin buffer 320 as either unlikely or more likely. Includes a table correlating each possible value with a probability rating for each possible bin value, and Different values for the measure for the evaluation of probability for a more likely bin value are In a further preferred embodiment of the present invention, A measure 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 the current measurement, to evaluate the probability for the unlikely or more likely bin value The bin buffer selector 318 selects one bin buffer. Includes a table that accurately associates each possible value for the interval index with the 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 relevance of the measure for the evaluation of the probability for a bin value that is not in the range or is more likely is time. Both can be adapted.
[0067] After receiving the decoded bins 325 from the selected bin buffer 320, the bin buffer The buffer selector 318 potentially modifies the input bin 325 to -potentially modifies The bin buffer selector 31 sends the output bin 326 having the value The 8 input / output bin mappings are assigned to the input / output bin buffer selectors on the encoder side. This is the inverse of the force bin mapping.
[0068] In a preferred embodiment of the present invention, the bin buffer selector 318 modifies the bin values. That is, output bin 326 always has the same value as input bin 325. In the currently preferred embodiment, the bin buffer selector 318 receives the input bin value 325 and and two possible bin values for the current requested bin relative to 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 A measure of the probability for one of two possible bin values is greater than a certain threshold. If it is equal (or greater), the output bin value 326 is modified (i.e., it is 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), then the output bin value 326 is equal to the input bin value 325. is set equal to the 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 less 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 one embodiment, the threshold value is set to a value of 0.5 for the evaluation 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 value 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 represents an unlikely or more likely bin 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 represents the input bin value 32 5, and the identifier is the second of the two possible bin values for the current bin request. If it indicates 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 described above, the bin buffer selector routes the bin 319 request to two or more bin buffers. The bin buffer 20 transmits the bins to one of the connected bin decoders 322. represents a first-in-first-out buffer fed by the sequence of bins 321 decoded from A request for bins 319 is sent from the bin buffer selector 318 to the bin buffer 320. In response to the The bin buffer selector 318 then selects the bin of the bin buffer 32. Bins that are 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 a different Gon buffer. Partially read codeword 323 representing a sequence of bits from bit stream 324 The bin decoder 320 outputs the bin 3 to the connected bin buffer 320. 21 sequence. The entire decoding algorithm requires 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 the decoding of a syntax element is done by In a preferred embodiment of the present invention, the bin decoder 322 Converting a codeword 323 of a variable number of bits into a sequence of a variable number of bins 321 One advantage of embodiments of the present invention is that it is possible to extract bins from two or more partial bit streams. can be done in parallel (e.g., for different groups of probability measurements). , which 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 The advantage is that the meter 317 can be specifically designed for a different set of meters. In addition, bin encoding and decoding improves the coding efficiency for different groups of estimated probabilities. 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 process. Coding efficiency is improved for state-of-the-art entropy coding algorithms with decoding complexity. In a preferred embodiment of the present invention, the bin decoder 322 includes: For the evaluation of the probability for one of the two possible bin values 317 for the current bin request, Different decoding algorithms (i.e., multiple iterations on the codeword) for different groups of measurements In a further preferred embodiment of the present invention, the bin sequence is The decoder 322 selects the unlikely or more likely bins 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, the 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 In a further preferred embodiment of the present invention, the bin code The bin encoder 310 - or one or more of the bin encoders - can directly encode a variable length sequence of bins 321. It represents an entropy decoder for mapping variable length codewords 323. A preferred embodiment of the present invention In the above, the input codeword is, for example, a general Huffman code or a standard Huffman code. We represent such a redundancy-free code. 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 of the above maps a fixed-length codeword 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 - directly apply the variable length codes to the fixed length sequence 321 of the bins. 3 represents an entropy decoder that maps code words 323.
[0076] Thus, FIGS. 7 and 8 show an encoder for encoding a sequence of symbols 3 The encoder is a decoder that can process a number of parameters. an allocator 305 configured to allocate a data set 305 to each symbol of the sequence of symbols; 04. An assignment is a syntactic element to the representation - such as a binarization - to which the current symbol belongs. Based on the information contained in the previous symbols of the sequence of symbols like 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 for converting each symbol 3 into a plurality of A selector 306 configured to route the signal to a selected one of the entropy encoders 10. , with the selection depending on the number of parameters 305 assigned to each symbol 3. The allocator 304 accumulates 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 a separate bit stream. a plurality of entropy decoders 322 configured to convert the beam 323 into symbols 321; ; A sequence of symbols is reproduced based on information contained in previously reproduced 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 depending on the number of parameters defined for each symbol) The method is configured to search for each symbol in a sequence of symbols reproduced from one selected The selector 318 is a scalar that is connected to the input of the input signal, and the selection is based on a number of parameters defined for each symbol. Depends on the number of parameters assigned to each symbol, or The symbol is a measure for evaluating the probability of the distribution between the possible symbol values. The allocator 316 is configured to include the selector 318. This block can be considered to be incorporated in the selector 402. The sequence of bits may be a binary alphabet, and the assigner 316 may The least likely or most likely of the two possible bin values of the alphabet It includes a measure for the assessment of probability, and the classifier determines which of two possible bin values is more likely. The assigner 316 determines whether the bin value is less than or more likely than the bin value. of the 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 context is assigned based on the previously recalled symbol. Adapt the probability distribution estimate for each of the sequence of 315 symbols to the actual sibol statistics. The context can be, for example, a video or in image coding, or even in tables in financial applications , we can take into account the spatial relationship or neighborhood of the location to which the syntax element belongs. The measurement for the evaluation of the probability distribution for each symbol is, for example, The context associated with the symbol or index into the respective table The probability distribution estimate can be determined based on a probability distribution estimate used as a probability distribution. 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 The context is allocated by the pipe index (with The selector is a bijective association between multiple entropy coders and multiple probability classifiers. The selector 18 can be used to determine the sequence of symbols over time. A predetermined deterministic probability distribution is calculated from the range of probability distribution evaluations 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 according to the method. That is, the selector 318 can select the quantization step size, i.e., the individual entropy values. A probability distribution that is 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 methods 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 in the quantization interval of the probability distribution estimate. That is, it is possible to have an optimal compression ratio, and the latter change is related 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 a quantization mapper 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. Depending on the above, the presence of buffer 320 is not necessary. 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. are encoded. For a finite set of syntax elements, In general, the partial bitstream created by the encoder must be terminated. i.e., all syntax elements are transmitted or stored partial bit streams are not It must be ensured that the last bin can be decoded from the stream. After being input to the corresponding bin buffer 308, the bin encoder 310 ensures that the complete codeword must be written to the partial bit stream 312. The 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 bin sequence is associated with the bin buffer's bin sequence as a prefix. One of the consecutive codewords must be written in the partial bit stream (The bin buffer must be flushed.) Until the 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 length of finite 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 the request; if no further syntax elements are required due to the amount of data, decoding will end.
[0080] Transmission and multiplexing of partial bit streams
[0081] The partial bit stream 312 produced 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 a single bit stream. It can be done.
[0082] In an embodiment of the present invention, each partial bit stream for an amount of data is 1 The amount of data written is 1 data packet. A field or frame of a still photograph, a slice of a still photograph, a field or frame of a video sequence It is an arbitrary set of syntax elements, such as slices of a stream 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 2 or more of all partial bit streams of one data The data packets that contain the multiplexed partial bit streams are The structure of this 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 of the data packet. The data packet (remainder) is then sent to the data feeder 400 as a segment of the bit stream data 402. In addition to the division into subsections, the header may contain additional information. In a preferred embodiment of the present invention, a table for splitting data packets may be included. The display is a data set in units of bits or bytes or multiples of bits or multiples of bytes. In the preferred embodiment of the present invention, the start 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 start 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, based on already known or transmitted information, 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 beginning 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 beginning of the data segment. The data segments are then used as partial bit streams. The data contained in the data segments are fed 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 that can be implemented is illustrated in FIG. 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. relates to a first portion of a stream or partial bit stream 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 the 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-mentioned multiplexing of bit streams may have the following disadvantages: For small data packets, the side information required to signal the division The number of bits for becomes important in relation to the actual data in the partial bit stream. On the other hand, multiplexing can reduce the number of frames (e.g. For applications that require low latency (e.g., for video conferencing applications), Not suitable. For the multiplexing described, the partition start position is Since the partial bit stream is not known to the Moreover, in general, the data packet cannot be transmitted by the It receives the beginning of the last data segment before it can begin decoding the next bit. The decoder must wait until the signal is received. For this reason, (especially for bit rates close to the transmission bit rate, and for Encoders / decoders that require close time intervals between two images This results in additional overall delay of 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 When ignoring buffer delay, see below, it can be sent directly to the decoder. At the decoder side, two or more bin decoders extract the encoded bits directly from the bit stream in decoding order. Upon reading a word, decoding can begin with the first received bit. , multiplexing (or interleaving) 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 the 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 fixed-length 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. Thus, the variable length codeword The parsing of can be parallelized, and only the access of the fixed-length sequence of bits is synchronous. However, such access to 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 by 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, it is a variable length codeword This is an important difference from reading a fixed length sequence of bits. triggered by a specific event in the bin buffer, bin decoder or local bit buffer As an example, the number of bits present in the connected bit buffer is set to a value 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. Thus, different thresholds can be used for different bit buffers. It must be guaranteed that a fixed-length sequence of bins is input to the bit stream in the same order. They must be read from the bit stream at the decoder side. It is also possible to combine this interleaving of the senses with a low latency control similar to that described above. In the following, a preferred embodiment for interleaving fixed length sequences of bits is described. For further details regarding the latter interleaving scheme, see WO2011 / 128268 Referred to in A1.
[0088] Previously described coding methods have been used to compress video data. After describing the examples, further examples for carrying out the embodiments of the present invention are given below. On the one hand, on the other ... A particularly effective implementation is shown. In particular, the following example shows how to encrypt the bitstreams individually. The data is then encoded into a variable length binary representation, which is computationally inexpensive to effectively cover the probability estimates. In the embodiment described below, the symbols are binary. The VLC code published below is for example a R LPS By This effectively covers the probability assessment expressed as
[0089] In particular, the embodiments outlined below each incorporate the individual entries shown in FIGS. 3 shows a block diagram of a video encoder 310 and a decoder 322. They are used for image or video compression. As they arise in applications, they are coded into bins, i.e. binary symbols. Thus, these embodiments may be applied to image or video coding. Such binary symbols can be encoded into bins 307 and decoded into Each such bin stream is separated into one or more bit streams 324 that are , can be considered as a realization of the Bernoulli process. To encode the stream, one or more so-called variable-to-value v2v-code uses ariable-code (v2v-code) The first and second prefix codes can be thought of as two 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 include: To encode a particular sequence of bins 307, a first prefix code Whenever a codeword of is read from the buffer 308, the corresponding The codeword is 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 look-up tables. The code is implemented as a finite state machine. The v2v-code presented here stores a large table for the codewords. Instead, they can be generated by simple construction rules that do not require Simple algorithms can be used to perform the encoding or decoding. The construction rules are described below, two of which can be parameterized. They cover different or disjoint parts of the aforementioned probability interval and are therefore parallel (each For different encoders / decoders 11 and 22) or These two are particularly advantageous when used together, as are all three symbols. Regarding the structural rules, for a Bernoulli process with any probability p, the sign One is to design a set of v2v-codes that perform well with respect to excess code length. It is possible.
[0091] As described above, the encoding and decoding of the streams 312 and 324 is performed by the respective It may 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 refer to a specific code. Only the encoding and decoding of words is described for each of the three construction rules below. However, it is emphasized that all of the above embodiments relating to interleaved solutions The currently described codes or encoders and decoders 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 "bin pipe" code, i.e. A special version of the code that is suitable for encoding either stream 12 or 24. Each binary symbol belongs to a certain probability subinterval of the probability range [0;0.5]. Transferring data for bol statistics. The structure of the bin pipe code is described first. A bin-pipe code is constructed from any prefix code that has at least three codewords. To form a v2v-code, we can use a prefix as the first and second code. The code is replaced by two code words of the second prefix code. means that the bins are written without being turned into a bitstream. 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 fact that they are interchangeable. It makes sense to do this, otherwise the bit stream would 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, It is created as follows. First, a prefix code consisting of n code words is created as follows: 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 codeword "0"). Then , n-1 unary code words start with "10", "110", "1110", ..., and 1 codeword is created. The longest of these codewords is then split into a sequence of 0s. is removed. 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 the abbreviated unary code as the first code, i.e. The unary code words are "1", "01", "001", ... and so on. n +1 code word occurs Then, from the longest codeword, a run of 1s is removed. n is the unary to ric e is the 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 codewords are assigned n-bits starting with 0s corresponding to the first prefix code. The codeword having a binary representation 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 three-bin 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 number of 1s.
[0102] An efficient implementation of the three-bin code is described below. The encoder and decoder for this can be done without storage tables as follows: do.
[0103] At the encoder (any of 10), the three bins are divided into a bin stream (i.e., 7). If these three bins contain exactly one 1, then the codeword "1" is is written into the bit stream, followed by one (starting from the right with 00) at position If all three bins contain exactly one zero, then The code word "111" is written into the bit stream, followed by 0's on the right The remaining codewords "000" and "1000" are followed by two bins consisting of the binary representation of the positions of the and "111" are mapped to "0" and "11111", respectively.
[0104] At the decoder (any of 22), one bin or bit is - 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 and a 1 position 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 1's and one 0 are decoded, and the number determines the position of the 0. 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 implement.
[0106] In an encoder (any of 10), if the first bin of a codeword is equal to "0", then The code word is read until a "1" occurs or n zeros are read (including the first "0" in the code word). ), the bin is processed. If a "1" occurs, the read bin is left unchanged. is written to the stream, otherwise (i.e., n zeros are read), - One 1 is written into the bit stream. The first bin of the codeword is equal to '1'. In this case, 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 in the bit stream, n zeros are written to the bit stream.
[0107] At 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 implemented using counters as described below. This can be done efficiently.
[0109] In the encoder (any 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 one is read. The number of 0s is The number counted is 2. n If the bit is equal to Otherwise, a "0" is written and the n-bit buffer of the counted number is written. Inari's expression continues.
[0110] At the decoder (one of 322), a single bit is read. If necessary, 2 nn 0s are decoded into the bin string. If it is equal to '0', then More bits are read and interpreted as the binary representation of a number. This is decoded into a downstream "1" followed by a "1".
[0111] TIFF2025016509000006.tif113169
[0112] TIFF2025016509000007.tif108169
[0113] TIFF2025016509000008.tif67169
[0114] TIFF2025016509000009.tif51169
[0115] TIFF2025016509000010.tif92169
[0116] Also, a given one of the entropies of the encoder is sent to a given entropy coder. When converting the symbols into their respective bit streams, For a tropy coder, (1) if the triplet is composed 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 a prefix and (d) as a suffix are (3) a triplet is constructed to write a 2-bit representation of the position of b in the triplet, If the term indeed consists of exactly one a, then for each bit stream, The entropy coder of the first embodiment produces a codeword having (d) as a prefix and the first suffix The first 2-bit word sequence and triplet that is not an element of the (4) if the triplet is constructed to write a 2-bit representation , 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 the first 2-bit words that are not elements of the second set The method is configured to check whether the device is configured to write
[0117] TIFF2025016509000011.tif108169
[0118] Each of the first subset of entropy coders synthesizes a respective bit stream. When converting to a symbol, (1) if the first bit is equal to 0{0,1}, The entropy coder is such that (1.1)b ≠ a, b0{0,1}, and b is the first bit following Each entropy decoder decodes each bit if it occurs within the next n-1 bits. A 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 among the 1 bits, each entropy decoder )n-1, Each bit stream is configured to examine the next bit to determine whether , or (2) if the first bit is equal to b, then each entropy decoder .1) For each entry a occurs in the next n-2 bits following the first bit. The loop decoder equates the first bit in each bit stream to the next bit. 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 is then determined as to whether Each bit determines whether the It is configured to examine the first bit of the stream.
[0119] TIFF2025016509000012.tif72169
[0120] TIFF2025016509000013.tif57169
[0121] TIFF2025016509000014.tif92169
[0122] TIFF2025016509000015.tif124169
[0123] Now, after describing the general concept of video coding schemes, embodiments of the present invention will be described in detail. In other words, the embodiments outlined below are carried out using the above method. and vice versa, the above encoding scheme can be implemented using the example outlined below. This can be done by using it effectively.
[0124] In the embodiment described with reference to Figs. 7-9, the entropy encoder of Figs. The decoder is implemented according to the PIPE concept. One particular embodiment is arithmetically We used encoders / decoders 310 and 322 with probability states of 1000 and 1000. As will be described later, an alternative implementation is By way of example, components 306-310 and corresponding components 318-322 are general entities. 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, allowing parallel processing. It gives up the advantageous aspects of the current PIPE concept, but allows 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 processed. Similar to quantizing the probability interval width value before it is assigned, the probability state index is quantized. For a possible embodiment for one encoder / decoder 310 and 322, The above description of the context-adaptive binary arithmetic encoding / decoding engine is thus , the embodiment of the realization of the entropy encoder / decoder 318-322 / 306-310 is extended. 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 eigenvalue (which acts as a filter) works as follows: It is possible.
[0126] TIFF2025016509000016.tif134170
[0127] Similarly, the output of the parameter allocator (here acting as a context allocator) The force-attached entropy decoder can work as follows.
[0128] TIFF2025016509000017.tif167169
[0129] As described above, the allocator 4 allocates pState_current[bin] to each bin. The association is based on the context selection. A context index with its associated pState_current You can select the context using the ctxIdx. Probability Update is executed each time, and the state pState_current[bin] is the current bin The update of the probability state pState_current[bin] is This is done depending on the value of the coding bits.
[0130] TIFF2025016509000018.tif26162
[0131] If one or more contexts are provided, matching 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 embodiments, The coder and decoder can operate in different modes, namely, low complexity (LC) and high efficiency (HE). ) mode, which is relevant for the following PIPE encoding: The main examples are illustrated in the LC and HE PIPE modes, but the complexity is The detailed description of the extension of the scalability is presented in the paper, which is based on the implementation 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 not specified for CABAC) (i.e., the digitizer can operate regardless of the mode in which it is operated. (Can) Use of the same PIPE code (i.e., the bin encoder / decoder must be in the same mode depending on which mode is activated) can be operated without any change) Use of an 8-bit probability model initialization value (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, the LC-PIPE differs from the HE-PIPE in processing complexity.
[0135] For example, the LC mode can operate under the following constraints: For each dx, there is indeed 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-linear. i.e., all models (slice type and slice QP) The model probability is initialized at the beginning of each slice (depending on the selection) with the appropriate model probability, and the entire processing of the slice is For example, context modeling can be used to model the For both coding 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] HE-PIPE is conceptually similar to CABAC in H.264 with the following differences: Binary arithmetic coding (BAC) can be configured to (as in the C-PIPE case). ctxIdx can be represented by pipeIdx and refineIdx. The pipeIdx, which has a value in the range from 0...7, is one of eight different PIPE codes. This change represents the model probability, not the behavior of the state machine (i.e. the probability evaluation) itself. As outlined in more detail below, probabilistic models affect only the internal representation of the state of The initialization of can use an 8-bit initialization value as described above. oeff_abs_level_greaterX(X=1,2), coeff_abs _level_minus3 and coeff_sign_flag (their behavior is described below) (as will become clear from the discussion of the previous section) is a backward scan of the The scan can be performed along the same scan path as the forward scan (used for the Context for encoding ff_abs_level_greaterX(X=1,2) The derivation of the model can 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 may be used in different ways, e.g. Instantaneous rendering of text adaptive binary encoding / decoding engine It is 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 FIG. The interleaved bit stream into which media data such as video data is encoded. The decoder is intended to decode a data stream 401 such as a 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 case of low complexity mode, which is the active one; In the high efficiency mode, the binary syntax element Obviously, the association between binary values and encoding modes is switchable. can be used, and non-binary syntax elements with more than two possible values can be used as well. The actual selection between both modes is not yet determined prior to the acceptance of each syntax element. Since it is not obvious, this syntax element may be used to, for example, estimate a fixed probability or a probability Data stream 4 encoded in rate model or as is using bypass mode 01 and is included within several key headers of the data stream 401. It is possible.
[0139] 11 further comprises a decoder 402 for decoding the codewords of the data stream 401 into a sequence of symbols, A plurality of entropy decoders 322 configured to convert the partial sequence 321 As mentioned above, the deinterleaver 404 includes, on the one hand, the entropy decoder 322 11 to which the data stream 401 is applied. Further, as already mentioned above, each of the entropy decoders 322 is connected to an input of the Each is associated with a probability interval and takes the MPS and LPS rather than the absolute symbolic values. In the case of the entropy decoder 322 to be used, the probability intervals of the various entropy decoders are 0 to These together cover the entire probability interval from 0 to 1 - or from 0 to 0.5. The details of the PIPE index assigned to each decoder are described above. 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 The decoder simply divides the bins into 1 and 0. Each encoder 310 works in the same way. The selectors 402 and 502 select the most likely bin value, valMPS, Even any bin operations can be kept separate. The entropy of these partial streams is already optimal.
[0140] 11 also divides each symbol in the sequence of symbols 326 into multiple entries. a selector 402 configured to search from a selected one of the trope 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 for decoding the sequence of symbols 326. The method further comprises: reproducing media data based on a sequence of sentence elements; The selector 402 selects between a low complexity mode and a low complexity mode, as indicated by arrow 406. The device is configured to select in response to one of the high efficiency modes of operation.
[0141] As already mentioned above, the reproducer 404 operates on certain syntax and behavior of syntax elements. That is, the mode switch 400 is used to select a mode and to provide a fixed precondition. 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. Instead, the remaining data is at least functional and predictive, which is Regardless of the mode selected by switch 400, the same applies to the The same is true for the tropy decoder 322. All these decoders 322 use both modes. The decoder in Fig. 11 is reused in both modes, so that the decoder in Fig. 11 can be used in both modes, with low complexity and high efficiency. It is compatible with rate mode but without the additional implementation overhead.
[0142] As an associated 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 act on a single data stream. Rather, the decoding should depend on external or environmental conditions, such as the battery status. To control the coding complexity in the ensemble, and thus the fixed-loop control of model selection. Then, 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 FIG. 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. In order to produce a valid binarization for the syntax elements required by the reproducer 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 reproducer. This is reduced to just passing each bin / symbol 326 through 404.
[0144] However, the selector 402 is not necessarily connected to the mode switch 400. The mode of operation of the selector 402 is in the high efficiency mode. In the low complexity mode, the number of steps is more complex, and in the high complexity mode, the number of steps is less complex. The following description also describes the mode of operation of the selector 402 in a less complicated mode. The entropy of the decoder 402 as it retrieves successive symbols from the entropy decoder 322. This indicates that the rate at which the selection changes in the decoder 322 tends to decrease. In the high complexity mode, immediately consecutive symbols are encoded in the same entropy decoder 322. There is an increased probability that the entropy decoder will retrieve the In the high efficiency mode, the following 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 being searched by the selector 402, the This tends to result in a selection among the entropy decoders 322 that matches the actual symbol statistics. This allows the code to be generated according to the high efficiency mode. This provides 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 searched sequence of symbols is used. 3. Configured to select among multiple 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 probability 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. The symbols can be organized into continuous parts such as groups, frames, sequences, etc. Each symbol in the sequence is associated with one of several symbol types. In this case, the selector 402 selects the In addition, when high efficiency mode is activated, the symbols of the given symbol type are displayed in the current section. The selection is configured to vary depending on a previously searched symbol of the sequence of symbols. ,If the 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 given sequence. These changes are related to the transition between successive parts. This measure limits the coding complexity to occur most of the time. As the symbol statistics are reduced, the evaluation of actual symbol statistics is performed at time instances that occur rarely. is limited to
[0147] In addition, each symbol in the sequence of symbols 326 may represent one of several symbol types. For a given symbol of a given symbol type, the selector 402 selects , multiple contexts depending on previously searched symbols in the sequence of symbols 326 Select one of the following and, depending on the given symbol, display the following when the high efficiency mode is activated: Depending on the context and the associated probability model selected, the entropy decoder 322 When configured to perform selection on the symbol, and low complexity mode is activated, Select one of several contexts depending on the previously retrieved symbol in sequence 326 At the same time, the selected context constant and the associated probability model are departed from and selected 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 In other words, the mode can be described 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 probability or the probability of processing only the slice The entire surface can be kept fixed, thus allowing 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 the 1st bit is encoded using the same entropy decoder, It is possible to decode some of those bins in one step, and for each decoded bin The probability update after is omitted. Omitting the probability update reduces the coding and The operation is saved during the decode and read processes, reducing the complexity and simplifying the hardware design significantly. This leads to abbreviation.
[0150] Probability updates are allowed after a certain number of bins have been encoded / decoded using this model. Non-adaptive constraints are used for all or some selected probability models in such a way that A suitable update interval allows probability adaptation and can be easily implemented. Gain the ability to decode some bins.
[0151] Below, we present possible general and complexity-scalable models for LC-pipe and HE-pipe. A more detailed description of the embodiment is given below. In particular, in the same manner or in the complexity measure Possible embodiments for use in LC-pipe and HE-pipe modes The complexity-measurable method is whether LC-case removes a specific part. , derived from the HE-case by replacing them with something less complicated. However, before proceeding with it, the embodiment of FIG. It is noted that the above-mentioned embodiment of the context-adaptive binary arithmetic encoding / decoding can be easily transferred to the above-mentioned embodiment. The selector 402 and the entropy decoder 322 should be condensed to directly decode the Receives data stream 401 and the bins for the bins currently being pulled from the data stream. This is 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 functions / adaptations 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 any v2v type that is supported. 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 obtain 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, can be used. Can be used to look up the PIPEids or the probability index of the Rtab The mapping to is as illustrated in Table 5.
[0153] [Table 5]
[0154] This modified coding scheme is the basis for a scalable complexity 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 the probability index is pulled into Rtab, using the mapping shown in Table 5 - e.g. For example, through context - in relation to the currently decoded symbol - we see here Based on the probability state index - ranging from 0 to 62 as in this example, For example, the transition value indicated by the next probability state index to be visited in the case of MPS and LPS is Using a certain 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 has been rather generally concerned with syntax elements and syntax element types. In the following, variable complexity coding of transform coefficient levels is described.
[0157] For example, the replicator 404 may be configured to operate independently of the high efficiency or low complexity mode in which it is operating. The method further comprises the steps of: reproducing the transform coefficient levels 202 based on a partial sequence of the syntax elements included in the The parts of the sequence of syntax elements 327 are arranged in a non-interleaved manner to correspond to the significance map A significance map in which the syntax elements indicate the locations of non-zero transform coefficient levels within the transform block 200. The level syntax element specifies a non-zero level of the conversion coefficient. The following elements may be included: 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 importance map and A transform block (200) is used to transform the DC position to the position of the last non-zero transform coefficient level. For each position along the dimensional path (274), the transform coefficient level at each position 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 transform 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 in which the larger transform coefficient levels are 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 end position syntax elements, the first, second and third syntax elements are in the high efficiency mode and Common to the low complexity modes, the selector 402 determines whether the low complexity mode or the high efficiency mode is active. Depending on the mode, the desymbolizer 314 may select an end position syntax element, a first syntax element, Entropy decoding for the symbols to obtain the second syntax element and / or the third syntax element The device 322 may be configured to perform the selection.
[0159] In particular, when the low complexity mode is activated, through successive consecutive sub-portions of the subsequence To ensure that the selection is constant, the selector 402 determines whether the desymbolizer 314 selects the first syntax element and the and the number of symbols of a given symbol type in a subsequence of symbols to obtain a second syntax element. To do this, for each symbol of a given symbol type, Selects one of several contexts depending on the previously searched symbol of the symbol type. ,When the high efficiency mode is activated, the probabilistic model associated with the selected context is The device is configured to perform a selection in response, and to perform the selection in a partially constant manner. The sub-portions are each measured along a one-dimensional path 274 to determine the position to which each sub-portion extends. in the number of positions, or in each tag already encoded by the current context It can be measured in terms of the number of types of syntax elements. Statement 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 used as well. In LC mode, the binary structure Statement elements coeff_significant_flag, coeff_abs_grea Different values are used for each of ter1 and coeff_abs_greater2. However, for each of these syntax elements, the context is , simply changing the context in the transition to the next, immediately succeeding part along path 274. The first portion of the path 274 along the For example, each part is a block, independent of whether or not it has the same syntax for each position. The length is set to 4, 8, or 16 positions in the block 200. For example, greater1 and coeff_abs_greater2 are important positions, i.e. Only exists for positions where coeff_significant_flag=1 Or, for each part resulting in this way, Furthermore, the length can be set to 4, 8, or 16 syntax elements, independently of whether the extension is beyond the number of elements. 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 a symbol from which the desymbolizer obtains the first syntax element and the second syntax element. For a symbol of a given symbol type between a subsequence of bols, 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 The sequence of symbols belonging to the The first modification is for 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 on which the levels lie, The amount by which a transform coefficient level exceeds an integer-valued syntax element, i.e., coeff_abs_m inus3, and the desymbolizer 314 assigns a symbol sequence to the range of integer-valued syntax elements. Mapping controlled by control parameters that map the domain of the sense word function and the previous third syntax element is used when high efficiency mode is activated. A low-complexity model is implemented by setting control parameters for each integer-valued syntax element according to the primitive integer-valued syntax elements. The setting remains constant over successive subportions of the subsequence when the mode is active. The selector 402 is configured to perform the setting in a piecewise uniform manner such that In both the low 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 operation according to the mode selected by switch 400 is indicated by dotted line 407. Instead of piecewise constant settings of the control parameters, the desymbolizer 314 may, 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 the HE case is the general method. However, this estimation requires more buffer storage and is 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 Every context modeling stage evaluating a syntactic element is 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 according to the context is revised compared to the current design for CABAC. In another preferred embodiment, a fixed context model for syntax elements is provided. In addition to adopting the neighbor evaluation, the context model for different bin indexes is The description is of the motion vector difference and syntax elements related to the coding of the 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 permitted. This reduces the length of the processing chain since the coding unit lines no longer need to be stored. In another preferred embodiment, only neighbors that are in the same encoding device are , 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 For a given symbol, select one of several contexts and The selection in the entropy decoder 322 is performed according to a probability model associated with the text. When the high efficiency mode is activated, the number of different adjacent blocks of media data is To use previously searched symbols in a sequence of symbols for higher numbers That is, the neighboring blocks can be arranged in the time and / or spatial domain. Spatially adjacent blocks can be, for example, 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 adaptor 400 may respond to a mode selection by a mode switch 400 to perform a contact adaptation. 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, the motion associated with macroblocks The vector is the difference between the motion vector of the current macroblock and the intermediate motion vector predictor. The CABAC encoder transmits the motion vector difference (mvd) to the encoder. When used as a trope coder, 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: terger - Given a value of n, the resulting bin string will contain n occurrences of "1" and As an example, if n=4, the bin string would be "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 mvd >= 1, the result is 9 "1"s, and the bin string is Ex It consists of a prefix and a suffix with p-Golomb binarization. Due to the omitted unary part 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, 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, In addition, the context model is selected based on the first context model. 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 encoded 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 In HEVC, the block size is The shape specified by the motion vector is called a prediction unit (PU). The PU sizes at the top and next 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 always taken to be consistent with the current PU For the purposes of the encoding itself, we refer to the first bin as the top and left neighbor of Only the derivation method for can vary depending on the embodiment. Instead of evaluating the neighbors as a single MV, each neighbor can be evaluated separately. If it is greater than 16, the context model index is incremented, resulting in the first The remaining absolute MVD levels, on the other hand, will be the same number 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 the mvd, the bins below 9 are the context The remaining values of the mvd must be coded in the model, while the remaining values of the mvd are reduced with the coding information. The current embodiment can be coded in a complexity bypass mode. We describe a technique for reducing the number of bins that are coded in the metric model, resulting in a reduction in the number of bypasses. This increases the number of context models required for encoding the MVD. Therefore, the cutoff value is reduced from 9 to 1 or 2. That is, the absolute mvd is greater than zero. Only the first bin that is identified as being large is coded using the context model. , or the first and second bins and The remaining values are coded using the bypass model. unary or shortened unary code All bins obtained by binarizing using VLC code without using low-complexity bypass In the case of PIPE, the bitstream is encoded using the and direct insertion from the bit stream is possible. Different definitions of 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 For this purpose, the order of the Exp-Golomb code is variable. The sequence 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 the 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 is used for the HE case. It can be done.
[0173] The technique outlined above uses five contexts twice for the encoding of absolute MVD. In a variant, 14 contexts are used to code the 9 unary code binarization bins. The models (7 for each component) can be used as well. For example, 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 can be used for the seventh context. Thus, in this case, 14 contexts are needed. Only the remaining values can be coded in the low-complexity bypass mode. This leads to an increased number of queries, 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 or 2, etc., to decrease the cutoff value, which is the absolute MVD greater than zero. Only the first bin that identifies whether , the first and second bins are identified if the absolute MVD is greater than zero, and Each value is coded using its own context model, while the remaining values are coded using the VLC context model. This indicates that all the images obtained from binarization using the VLC code are encoded using the The bins are coded using the low-complexity bypass mode. Direct insertion into and out of the bit stream 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 And the number of context models required for the second bin is reduced, leading to further memory reduction. The context modeling is modified somewhat 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 changed to It is possible to encode prefix bins in both components (i.e., bins encoded in the context model). The data can be divided in a manner that makes it possible to
[0174] In a preferred embodiment, the Exp-Golomb code is To do this, the order of the Exp-Golomb code is The sequence of the Exp-Golomb code can be derived as follows: The context model for the first bin, therefore, After the index is derived, the index is used to search for Exp-Golomb thresholding. In the 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 six. In order to reduce the number of pixels and thereby save memory, the horizontal and vertical components are preferably In this case, the three contexts can share the same context model of the embodiment. Furthermore, only the left neighbor is required in accordance with further preferred embodiments of the present invention. This can be taken into consideration for evaluation of the implementation. In this preferred embodiment, the threshold is changed. does not need to be set (for example, only one threshold 16 is set to Exp-Golomb parameter 0). or 1, and one threshold 32 yields Exp-Golomb parameters 0 or 2. This preferred embodiment saves on the line buffer needed to store mvd. In another preferred embodiment, the thresholds are modified to be equal to 2 and 16. For the sake of example, a total of three context models are needed for the encoding of mvd: 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. is.
[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 may 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 needed (context models for the Note that the components 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 parameters are The described embodiment of the present invention is based on the context model index of the , can be used for HE cases.
[0176] In a further preferred embodiment of the present invention, the context models for both bins are fixed. is specified and is not derived by evaluating its 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. is.
[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 The absolute sum of the context model is used to derive the command for the Exp-Golomb part. This preferred embodiment can be used for the HE case.
[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 to 3. In one example, the order of the Exp-Golomb code is determined by the current PU shape and size. The preferred embodiment shown is 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 considered.
[0179] In the preferred embodiment, the neighbors are defined as follows: For the above PU, All PUs covering the 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 first and left boundaries are is used to extract
[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) In the first stage, the bins are coded in the context model for both components. It is possible to encode bins that were encoded in bypass mode in the second stage. Note that this is just a sorting.
[0181] Bins resulting from unary or shortened unary thresholding have values greater than the current bin index. A fixed length binary equivalent of one flag per bin index specifying whether Note that the mvd expression can also be expressed by the abbreviated unary 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 quantization, one flag for bin index 0 (i.e., the first bin) is Determine 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 representation of the internal state of a probabilistic model that allows the scalability of its complexity is described. do.
[0183] In the HE-PIPE setup, the internal state of the probabilistic model is The updated state is the same as the old state and the The state transition is derived by a table lookup using the bin value that was selected. The probability model is based on 63 different states, which correspond 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 1 minus 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. We can model such a probability model with the PIPE coding concept as Each of the 126 states is mapped to one of the available PIPE coders for use. 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 presented in Table 5.
[0184] Below is how the internal state of a probabilistic model is transformed into a PIPE index. How can it be shown to avoid using look-up tables to convert An example is 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. For applications where the behavior is mandatory, only the first level is used. The pipe index and the frame used to encode or decode the associated bin Only the lag valMps is listed. For the PIPE entropy coding method listed, In this case, the first level can be used to distinguish between eight different model probabilities. The first level allocates 3 bits for pipeIdx and 1 bit for valMps flag. At the second level, we need one more bit to get the coarse probability range of the first level. 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 the use of PIPEs 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 is 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 encoding or decoding process of a bin, 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 the use of 4 bits in the second level to To do this, we use the same transitions as in the original table, but with two levels of scalable 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 does not exceed 2 × 128 components, which is the number of bits required to represent the refinement index. and to accurately emulate the response of the CABAC probability estimator. Depending on what is used for the pipe index, 4 bits are needed. A reduced set of CABAC states is now allowed, so that only eight states are allowed per So that it can work, different probability estimators can be used. Therefore, The memory consumption can be reduced by adapting the number of bits used to represent the refinement index. A given level of complexity of the encoding process can be met by: Compare the state index with the internal state of the model probability with 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, the probability state index is one or more The HE-PIP can be updated based on the previously coded bins above. In the E setup, this update is done after each bin is encoded or decoded. Conversely, in an LC-PIPE setup, this update will never be performed. It will never happen.
[0191] However, updating the context model in a way that is scalable in complexity It is possible. That is, the decision whether to update the context model is , based on various aspects. For example, the coding setup may be, for example, 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 current model.
[0192] In other words, the number of given symbol types increases in the low complexity mode compared to the high efficiency mode. The selector 402 selects each of the symbols of a given symbol type so that the number of the symbol is lower. 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 can be, e.g. For example, the size of the bit stream packet, the number of bins decoded so far, etc. or the update is a specific fixed or This is done only after encoding the variable number.
[0194] This scheme for deciding whether to update a context model is A complexity-scalable context model can be implemented. Allows increasing or decreasing the portion of the bin in the bitstream where model updates occur. The more the context model updates, the better the coding efficiency. The computational complexity is higher. Thus, the up-gradation of the context model with scalable complexity is The updates can be provided in the manner described.
[0195] In a preferred embodiment, the context model is updated using the syntax element coeff _significant_flag, coeff_abs_greater1 and c This is done for all bins of syntax elements except oeff_abs_greater2. .
[0196] In another preferred embodiment, the update of the context model is _significant_flag, coeff_abs_greater1 and c This is done for oeff_abs_greater2 bins only.
[0197] In another preferred embodiment, the context is changed when the encoding or decoding of a slice begins. The update of the context model is done for all the context models. After a certain number of transformation blocks, the context is Updates to the context model are disabled for all context models.
[0198] For example, the selector 402 may select a given symbol type for a given symbol type. Learning of the sequence of symbols in which the selection for the next symbol 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, for a given symmetry The selection is performed in the entropy decoder 322 according to the probability model associated with the Bollard type. The device is configured to:
[0199] A further preferred embodiment is the same as the above 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 this end, it uses some complexity-scalable representation of the internal state of the context model. In this case, the updating context model is (as described in the previous preferred embodiment) and is therefore unusable due to the "second part" is no longer needed and can be discarded.
[0200] Next, updating the context model for a sequence of bins according to an embodiment 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 then used to encode that bin. In this case, the context model The update is done after the coding of a fixed number of bins of this sequence. However, this update is not possible in 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 for each encoded bin. is executed.
[0202] Below, an example is given for encoding a typical subset of 8 bins. The letter "b" stands for bin decoding, and the letter "u" stands for context model update. In the case of LC-PIPE, only the decoding of the bins is done 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. The transfer is carried out.
[0205] bubububububububu
[0206] To reduce some of the complexity, the context model is updated based on the bin sequence. This can be done after every four bins (in this example, after each of these four bins). bin update).
[0207] bbbbuuuubbbbuuuu
[0208] That is, the selector 402 selects a given sequence for a symbol of 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. The associated 322 according to a probability model that is determined by the entropy decoder 322. .
[0209] In this case, after decoding four bins, four update steps are performed, exactly 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. For each possible combination of the four bins and each possible internal state of the context model, This lookup table is the result of the four conventional update steps. Stores the new state.
[0210] In certain modes, multi-bin updates are handled by the syntax element coeff_sign Used for bins of all other syntax elements. No context model update is 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 is no subset, bins 1 to n-1 are For each of these bins, the traditional one-bin update is This is done after encoding all of these bins. The number n can be any positive number greater than 1. Multibin update is coeff_significant_fla g, coeff_abs_greater1 and coeff_abs_greater Any combination of 2 (instead of only coeff_significant_flag) The other 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 For one of the subsets, a single 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 coded immediately. 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 modulus 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 for every n-th symbol based on the nearest symbol m of the Along with the update of the symbol type, the entry is updated according to the probability model associated with the given symbol type. The hoppy decoder 322 is configured to perform the selection.
[0214] In another preferred embodiment, the syntax element coeff_significant_flag is 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. In order to be low in the reliability mode, many previously searched symbols in the sequence of symbols are The application is configured to select one of many contexts depending on the object, and the selected context The selection among the entropy decoders 322 is performed according to a probability model associated with the test. It is composed of.
[0216] Probabilistic model initialization using 8-bit initialization value
[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 a high degree of complexity. It consists of two parts, which are equivalent to the pair of initialization values used for the CABAC probabilistic model. The two parts indicate 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. The method 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. It 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 shows the dependent initialization, and also changes the PIPE index to the refinement index. Use the slope of the first part of the initialization value to determine the slope of the first part of the initialization value. The portion is exemplified as follows:
[0220] [Table 8]
[0221] It consists of two 4-bit parts. The first part is a set of 16 different Contains an index that indicates 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 eight 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 during the probability intervals p=0 and p=1. In other words, PIPE coder n is the PIPE code It works 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] QP and the 8-bit initialization value are of the form y=m*(QP - QPref)+256*b By calculating a simple linear equation, the initialization of the internal state of the probabilistic model is 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 by "PIPE probability index" we mean 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 sum of pi Equal to the number of CABAC states in peIdx.
[0226] The above scheme can be used in combination with the PIPE coder, as well as the CA It is also used in conjunction with the BAC method. Without PIPE, the CABAC state, i.e. During this time, the state transition of the probability update is PIPE Idx (i.e., pState_c The most significant bit of each current[bin] is e_current[bin]) probability state) is in fact the number of CABAC states depending on the QP. In addition, the parameter num If States use the same value for all PIPE Idx, this category A linear interpolation method 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 obtain 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. To map the original CABAC representation of H.264 / AVC, , it is very simple. CABAC state is (PIPE Idx<<3)+refinem ent Idx. This embodiment 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 the QP of the encoding or decoding process It is necessary to calculate the internal state by using the QP of the current encoding. 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, or as a 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. The method can further be used to determine an improvement index for a multiplication application. In the preferred embodiment, linear interpolation is simply a modification available in the current PIPE coder. 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, PIPE symbols using the equal chance mode can be changed. 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, The input of the process is, for example, the bit An 8-bit initialization value as shown in Table 11 that is 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 having value 0, Respectively, probIdx 14 indicates the highest probability for a symbol having a value of 1. , for each probIdx we denote 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 described 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 refineIdx and pipeIdx transfers are 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 refi values, the internal state of the probabilistic model (valMps, pipeIdx and refi neIdx) is processed as described in the following pseudocode:
[0239] TIFF2025016509000030.tif123146
[0240] As shown in the pseudocode, refineIdx is linearly spaced over the interval of pipeIdx. It is calculated by inserting the refinementIdx and quantizing the result to the corresponding refinementIdx. 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 It is mapped to peIdx=0 and valMps=1. Figure 16 shows the internal state. pStateCtx to fullCtxState / 256 mapping Display the tag.
[0241] Note that the slope shows 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, and therefore 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 determined by using this syntax element as a data 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 for each symbol. 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 follows: 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, only high precision, e.g. fractional parts, can be used. The residual is the sum of the respective pipe indexes, as indicated by the lower precision or integer part. The refinement index is used to select one of the available refinement indexes for the query. The improved index may be implemented, for example, by performing a probability match using the table walk described above. Typically used in HE mode (and potentially more rarely in LC mode). When you leave an available index for the current pipe index at a higher boundary Then, the higher pipe index is selected next with minimizing the refinement index. Leave an available index for the current pipe index at the lower bound. When the next lower pipe index is used, the new pipe index is fully utilized. The next step is to maximize the improvement index that can be achieved. The pipe index defines the probability state, but for selection within a partial stream, The selector simply uses the pipe index. The improved index simply uses It is only useful to follow the probabilities more closely or with finer precision.
[0243] However, the above explanation also differs from the PIPE coding concept in Figs. Separately, this has been shown to be accomplished 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 region of the symbol sequence word. A map controllable by a control parameter 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 data is adapted to render the media data 606 based on the integer-valued syntax element. The booster 602 is configured to boost the control parameter at a first rate when the high efficiency mode is active. The desymbolizer 602 performs the desymbolization as it changes along the data stream. When the low complexity mode is activated, as indicated by arrow 607, The control parameter is the data rate, except that the second rate is lower than the first rate. It remains constant regardless of changes in the data stream or the The control parameters can be changed according to the previously decoded symbols.
[0244] Some of the above examples utilize the embodiment of FIG. 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 12 may also be combined with other coding environments.
[0245] For example, see the motion vector difference coding shown above. A shorthand method that performs a 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 A set of suffixes of VLC codeword shapes within the second interval of the domain of integer-valued syntax elements that is equal to or greater than The desymbolizer 602 is configured to try to match the symbol, and the decoder uses the varying probabilities Using unary entropy decoding with evaluation, shortened unary terms are extracted from the data stream 601. of VLC codewords using multiple first bins of the code and a fixed equal probability bypass mode. The HE mode includes an entropy decoder 608 configured to extract 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. That is, context adaptation and / or probability adaptation are not applied in HE mode. or suppressed in LC mode, or reduced in complexity as described above with respect to various embodiments. will be scaled.
[0246] The decoder shown in Figure 11 encodes the media data into a data stream. The encoder is shown in FIG. 13. It is used to encode low-complexity code in the data stream 501. an inserter 500 configured to signal activation of a low-power or high-efficiency mode; A construct configured to pre-encode media data 505 into a sequence 506 of A character 504, a sequence of symbols 508, and a sequence of syntax elements 506. each of which converts a partial sequence of symbols into a data a plurality of entropy encoders 310 configured to convert the stream of codewords into and each of the sequence of symbols 508 is input to a selected one of the plurality of entropy encoders 310. A selector 502 configured to send a symbol, the selector 502 including an arrow 511 As shown in Figure 1, the low-complexity and high-efficiency modes are selected depending on which one is active. The interleaver 510 is configured to interleave the codewords of the encoder 310. may be provided voluntarily for the purpose of
[0247] Fits the decoder of Figure 12 for encoding media data into a data stream The encoder is shown in FIG. 14 and performs low complexity mode in the data stream 701. or high efficiency mode of operation, 7, configured to pre-encode media data 705 into a sequence 706 of syntax elements A constructor 704, and a domain of syntax elements having integer values is represented by a symbol sequence - Controllable mapping by control parameters to map to the joint area of words A constructor configured to symbolically represent syntax elements having integer values using a mapping function. 707, and when the high efficiency mode is operating, the control parameters are data-accumulated at a first rate. and to change according to the data stream or data The control parameters remain constant regardless of the changes in the stream, but are indicated 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 result is stored in the data store. The data is encoded in stream 701.
[0248] In addition, the embodiment of FIG. 14 is easily applicable to the implementation of the context-adaptive binary arithmetic encoding / decoding described above. 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. condense it to da and pull the context for the current bin from the data stream This is especially true for context adaptation 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 implemented in other embodiments. Therefore, the separation was briefly indicated above. To make this clear, 16. Where only the elimination of the ability to switch modes distinguishes the embodiment of FIG. 16 from the above embodiment. An example summarizing the description is shown in FIG. 16. Furthermore, the following description will be given in comparison with, for example, H.264. The probability of the context is estimated using less accurate parameters of tilt and offset compared to the This paper will clarify the benefits of initializing the value of
[0250] FIG. 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 area of the horizontal and vertical components below the cutoff value and the form of the shortened unary sign are shown. Within the first interval of the prefix combination, the binarization is performed by abbreviating the horizontal and vertical components of 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 or above the cutoff value, respectively. in the second interval, the cutoff value is 2, and the exponential Golomb code is of the order of 1. 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 Equal Probability Bypass Modes to Obtain Difference Binarization. For each bin position of the common contraction unary code, Using context-adaptive binarization entropy decoding, i.e., 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 that 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 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 vectors represent the prediction residuals between the reconstructed motion vectors and the horizontal and vertical Components 802x and 802y are illustrated. They represent pixel positions, i.e. A position 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 8 02x,y are integers to be evaluated. Their range extends from zero to infinity. The tag values are treated separately and are not considered further here. In other words, the explanations outlined here The light is centered on the magnitude of the motion vector difference 802 x,y. To the right of the domain axis 804, FIG. 19 shows the possible coordinates of components 802x,y arranged perpendicular to each other. An example of thresholding is where 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 only thing that is generated is a reminder of the integer value above the cutoff value minus 1, as a suffix. For the -, the exponent of order 808 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: The first bin position of the horizontal and vertical components 802 x,y binarization is shown. The other is the second bin position of the contracted unary code 806 of both horizontal and vertical components 802x,y. For the bin position of the exponential Golomb code 808, 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 related to the two just mentioned contexts of the bin of the contracted unary code 806 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 description is given in the non-binary Desymbolizer 314 by debinarizing 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 performs the above-mentioned operations to reconstruct at least some of the currently reconstructed images. The data stream contains information about the subdivision into blocks, some of which depend on motion-compensated prediction. 401. FIG. 19 shows an example of an image typically reproduced at 820 and a 22, in which motion compensated prediction is used to predict the image content in 2A-2C, the subdivision and block The size of the blocks 122 may 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 or A combination concept can be used to further transmit the combination information without the subdivision information. The combined information signals the replicator 404 as to which blocks 822 form a group. This measurement allows the reconstructor 404 to determine the specific motion vector difference 800 for the block. It is possible to apply this to the entire combination 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, 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. It decreases with increasing loop size. On the other hand, it decreases with increasing number of blocks per join group. The addition is based on the actual needs of the individual blocks of each combined group versus the overall needs of these combined groups. Reduce the adaptation of the motion vector difference for the loop, thereby reducing the motion vector difference for 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. In any case, however, the combination concept , resulting in motion vector differences for the combined groups that exhibit less internal 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 coding However, other combinations were decided based on the fact that The correlation between the image content of the group and the motion is low. Therefore, the bins of the shortened unary code 806 The restriction of using only one context per image is that it is sufficiently consistent with the motion of adjacent image content. The concept of combining already accommodates the spatial entropy coding efficiency between It does not negatively impact entropy coding efficiency. The context is simply the bins that are assigned to 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 context selected. Does not affect the selection.
[0253] Similarly, the decoder 404 first selects a list of motion vector predictors that predicts the motion vector difference. In the data stream information on the index of the predictor that is actually used to make the prediction A byte is generated for each block or group of bonds that is transmitted explicitly or implicitly in By using a multi-hypothesis prediction concept, 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 may spatially compute 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 combination are calculated in time. By predicting the motion vector of this block, a different predictor is provided for the motion vector of this block. These predictors can be used to predict the reconstructor 40 in a predictable manner that is predictable on the coding side. 4. Some information is conveyed for this purpose in the data stream. That is, some hints are added to the data stream and used by the reproducer. , for which a predictor from this ordered list of predictors is actually This index is used as a predictor for the motion vector of this block. However, the index can be transmitted in the data stream for the It is possible that the tex is predicted first and that we can simply convey the prediction of it. Other possibilities are possible as well. In any case, the just mentioned prediction schemes use the current block's motion vector 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,y are accessed less frequently. Therefore, the choice of the order of the exponent Golomb code, which is 1, is always simply the order of the contracted unary code. The content above the two bins and the reduction of the cutoff value to 2 as described in Figure 18. The constraints on the text-adaptive entropy coding do not negatively affect the coding efficiency. High horizontal and vertical components, since predictions tend to work equally well in both directions. Even omitting any features between is compatible with effective prediction.
[0254] In the above description, the desymbolizer 314, the reconstructor 404 and the entropy decoder 404 are As far as the function of 09 is concerned, the full details of the components shown in Figs. 1 to 15 are shown, for example, in Fig. 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, see FIG. As described above, the composer 404 selects the current block 822 or the current block 823. We can obtain different predictors for the joint groups of the blocks, and these predictors are The predictor is represented by a matrix 824. The predictor is obtained by spatial and / or temporal prediction. Further, 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. A vector 826 is obtained. In addition to the above method, the decoder 404 may sequence or sort these predictors 126 in 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 it is possible to determine Then the just mentioned index is the current block or join group. For this purpose, the reproducer 404 explicitly or implicitly obtains the 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 for each block of the combined group. To further refine the motion vector 128, a reconstructor 404 is provided for the block. It is possible to include further motion vector differences that are added.
[0256] Thus, continuing with a description of the implementation of the components shown in FIG. A pipe decoder 409 uses binary arithmetic decoding or binary pipe encoding to The method is configured to extract the abbreviated unary code 806 from the data stream 401. Both concepts are explained above. 9 is the code for the contraction unary 806 or two bins of the same context for both bins It can be configured to use different contexts for position. The decoder 409 may be configured to perform an update of the probability states. The entropy decoder 409 uses the truncated singleton code 806 to determine the bins currently being derived. 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 following steps: The above tables Next_State_LPS and Next_State_M are table searches that are executed. In the above description, the current probability state is pState_current. nt, which are 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, the probability interval index, and the probability state The index, i.e. the currently drawn probability interval, for subdividing the current probability interval into two subintervals. p_s depends on the current probability state associated with the context that is selected for the bin to be Perform interval subdivision by indexing table entries between them using tate. The bins currently drawn from the shortened singleton code 806 are calculated by quantizing the R that is executed. 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 significant 8-bit representations of the interval. 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 interior of the current probability interval, V and updating the probability interval width value R and the offset state value. estimating and updating the value of the currently drawn bin using the selected sub-interval 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 a renormalization of the offset value R, which includes the current A method for dividing a current probability interval width value into two subintervals is described below. By using the exponential Golomb code, the bins are decoded into binary arithmetic. The halving corresponds to a fixed equal probability estimate of 0.5. This can be done by bit shifting. The entropy decoder performs To do this, we preface the exponential Golomb codes of the horizontal and vertical components of each motion vector difference. , shortening the horizontal and vertical components of the respective motion vector differences from the data stream 401 This measurement allows the entropy decoder 409 to extract the unary code. The higher the number of bins, the higher the probability estimates are fixed, i.e., the higher the probability estimates are fixed at 0.5. This can be used to speed up the entropy decoding procedure. On the one 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 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 read the motion vector difference without waiting for further scanning. Since the debinarization of the motion vector difference can be continued in the decoding component, i.e., FIG. The memory requirements for the 16 decoders are reduced because of the context selection. Only 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, for example, simply The motion vectors are then calculated by improving the predictor 826 by adding the motion vector difference to the The horizontal and vertical components of the motion vector are spatially transformed to reproduce the horizontal and vertical components of the pixel difference. The method may be predictable in time and / or objectively.
[0258] Additionally, the reconstructor 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 according to the list index movement. The motion vector can be estimated by improving the list predictor using the horizontal and vertical components of the vector. The input signal can be configured to reproduce the horizontal and vertical components of the vector.
[0259] Furthermore, as mentioned above, the reconstructor 404 performs the reconstruction by subdividing the video image into blocks. Applying the horizontal and vertical components 802x,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 combination group, and in each combination group unit, a binarizer 31 4. Horizontal and vertical components 802 of the motion vector difference obtained by applying integer values of x, y. To achieve this, the combined syntax elements in the data stream 401 are used.
[0260] The reproducer 404 extracts blocks from the portion of the data stream 401 that excludes the join syntax elements. The reconstructor 404 can derive a subdivision of the video image into the associated join group. Adapt or combine the horizontal and vertical components of a given motion vector of 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] Just for completeness, 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 compensation prediction to generate a picture. The motion vectors are predictively coded by coding the image data 505 and predicting the motion vectors. The horizontal and vertical components of the motion vector difference, which indicate the prediction error of the predicted motion vector A constructor 504 configured to set an integer value 506 of the motion vector difference Integer values are binarized to obtain horizontal and vertical component binarization 508, and the binarization is performed 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 of the region that includes or is greater than the cutoff value. Prefix for cutoff value and Exp-Go for horizontal and vertical components in the interval of 2 The cutoff value is 2 and the Exp-G olomb code is 1 symbolizer 507; and horizontal and vertical motion vector difference For the direct component, the horizontal and vertical components of the motion vector difference, and a constant equal probability bypass motion vector The bin position of the shortened unary code is determined by the probability distribution, which is common to the Exp-Golomb code using the Indeed, we shorten the image 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 seen from the decoder description of FIG. The information 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 method steps or method Similarly, aspects described in the context of method steps Each represents a description of a corresponding block or component or feature of a corresponding device. All method steps may be implemented using hardware devices, such as a microprocessor, a program It can be implemented by (using) a computer or electronic circuitry or the like. In some embodiments, one or more of the most important method steps may be implemented in such an apparatus. This can be carried out.
[0263] The inventive coded signal can be stored on a digital storage medium or can be transmitted, for example wirelessly. Transmission over a line 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 cooperates (or is capable of cooperating) with a computer system. The storage medium may be computer readable.
[0265] Some embodiments according to the invention include a data carrier having electronically readable control signals. and adapted to carry out one of the methods described herein. It can cooperate with a programmable computer system.
[0266] Typically, embodiments of the present invention are implemented as a computer program product 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 includes a computer program for carrying out one of the methods described above.
[0268] In other words, an embodiment of the method of the invention thus comprises 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 described herein, as set forth herein. A data set consisting of a computer program for carrying out one of the methods described in A data carrier (or digital storage medium or computer readable medium). The carrier, digital storage media or recorded matter is 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 executing one of A data stream or sequence of signals is a data communication connection. It may 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 The adapted processing means includes, for example, a computer or a programmable logic device.
[0272] Further embodiments further include performing one of the methods described herein. This includes a computer having installed thereon a computer program for carrying out the above-mentioned operations.
[0273] A further embodiment according to the invention provides a receiver comprising one of the methods described herein. 2. Transfer (e.g. electronically or The receiver includes a device or system configured to receive, transmit, receive, or transmit a signal (optically). The device or system may be, for example, a computer, a mobile device, a memory device, etc. The computer program may be a file server for transmitting computer programs to a receiver.
[0274] In some embodiments, a programmable logic device (e.g., a field programmable logic device) is provided. A gate array (such as a microcontroller) may be used to implement some of the functionality of the methods described herein. In some embodiments, the field The programmable gate array may be one of the methods described herein. The method may cooperate with a microprocessor to execute one of the following: The present invention is preferably implemented by a hardware apparatus 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 claims of the at-hand patent. The present invention is limited only by the specific details set forth in the description and explanation of the embodiments. 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, the 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 of the horizontal and vertical components, and the code of the horizontal and vertical components equal to or higher than the cutoff value. and a prefix in the form of a contracted unary code for the cutoff value in the second interval of the domain of the vertical component Combinations of suffixes in the form of Exp-Golomb codes of horizontal and vertical components 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 with 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 Data extraction using context-adaptive binary entropy decoding with context text an entropy decoder configured to derive abbreviated unary codes 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 difference a decoder including a decoder for decoding the encoded data.
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, adapted to use different contexts. -da.
4. The entropy decoder (409) currently derives from the shortened unary code (806). For bins, the current associated with the context selected for the currently drawn bin The probability is calculated by moving from the probability state to a new probability state according to the currently drawn bin.
4. The method according to claim 1, further comprising: 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. Depending on the state, 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 To perform the division, the current probability interval width value is quantized to indicate the current probability interval. The bins currently extracted from the shortened singleton code (806) are decoded by binary arithmetic.
5. A decoder according to claim 1, 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-out 2 or 3.
6. A decoder as claimed in claim 5, arranged so as to
7. The entropy decoder (409) calculates the probability distribution 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 , using the selected sub-interval, from the data stream (401) The updated probability interval width value and offset state including the continuation of reading the bits of 5. A method according to claim 4, further comprising the steps of: performing a renormalization of values to estimate the value of the currently drawn bin; A decoder according to claim 1.
8. The entropy decoder (409) performs a constant equal probability bypass mode to detect the difference between the two partial By halving the current probability interval width value to obtain a subdivision of the current probability interval into , configured to perform binary arithmetic decoding of bins from the Exp-Golomb code, 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, 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 improve the predictor 826. The horizontal and vertical components of the motion vector are spatially and / or spatially transformed to reproduce the vertical and horizontal components.
10. The data acquisition system according to claim 1, further comprising a data acquisition unit configured to predict the time of the first or second input. 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 list index is obtained from the frame, and the list index is the horizontal and vertical The horizontal and vertical components of the motion vectors are then refined by improving the predictor of the list shown.
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. A decoder according to claim 10 or 11, adapted to reproduce the video using 。
13. The reconstructor computes motion vectors with a spatial accuracy defined by the subdivision of the video image into blocks. The video is reconstructed using motion compensated prediction by applying the horizontal and vertical components of the The decoder is configured to group blocks into joint groups and debinarize them using the debinarizer. The unit of the combined group is set to apply the horizontal and vertical components of the motion vector difference obtained by 13. The method according to claim 12, further comprising the step of: Decoder.
14. The reproducer extracts the blocks of video from the portion of the data stream that excludes the join syntax elements.
14. A decoder as claimed in claim 13, arranged 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, adapted to improve it by the horizontal and vertical components of the difference. The decoder of claim 14.
16. 1. An encoder for encoding video into a data stream, comprising: The video is predictively encoded by motion compensated prediction using the motion vectors, A 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 pixel. Instructor; To obtain the binarization of the horizontal and vertical components of the motion vector difference, we binarize the integer values. The binarization is performed by dividing the first region of the horizontal and vertical components below the cutoff value, respectively. The codes of the contracted unary terms of 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 The chord form prefixes and the Exp-Golomb chord form suffixes of the horizontal and vertical components and 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 equal probability bypass mode. A context-adaptive binomial with exactly one context per bin position of a unary code. Encode the shortened unary code into the data stream using linear 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 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 17, configured to use
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 computed is and perform a probability state update to a new probability state according to the currently drawn bin. An encoder according to any one of claims 16 to 18, configured to:
20. The entropy coder calculates the 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, Then, the probability interval index and the probability state index are used to find the table entry among the multiple table entries. Obtain the probability interval index by indexing and perform interval subdivision The current probability interval width value is quantized to indicate the current probability interval. configured to binary arithmetically encode 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-out 2 or 3.
21. The encoder of claim 20 configured as follows:
22. The entropy coder determines the interval of the two subintervals based on the integer value of the bin currently being coded. and determining a probability interval width value and a probability interval using the selected sub-interval. Updates the interval offset to include continuing to write bits to the data stream.
20. The method of claim 19, further comprising: performing a renormalization of the probability interval width value and the probability interval offset.
22. An encoder as described in 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 coder calculates the Exp-G of the horizontal and vertical components of each motion vector difference. Before the olomb code, each motion vector difference is added to the data stream. 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 is configured 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 spatially and / or spatially determined to determine the horizontal and vertical components of the motion vector.
25. The method according to claim 16, further comprising the steps of: Encoder.
26. The constructor defines 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 the motion vectors. Improved predictor of 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 image of the video into blocks. The video is then reconstructed using motion compensated prediction by applying the horizontal and vertical components of the vector. The constructor groups blocks into combination 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 for each join group unit 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, adapted 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 joint group. The horizontal and vertical components of the loop are adopted, or the movement associated with the block of the combined group is 28. The method of claim 27, further comprising: modifying the vector difference by horizontal and vertical components thereof. 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 binarized data stream, the binarization comprises: The horizontal and vertical components in the first interval of the region below the cutoff value are respectively The code for the shortened singleton of the vertical component, and the horizontal and vertical components equal to or higher than the cutoff value. A prefix in the form of a shortened unary code for a cutoff value in the second interval of the domain of direct components; Equivalent to the combination of the suffixes of the horizontal and vertical components of the Exp-Golomb code , 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 with 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 Data extraction using context-adaptive binary entropy decoding with context text deriving contracted unary codes 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. Includes, a method.
31. 1. An encoder for encoding video into a data stream, comprising: The video is predictively encoded by motion compensated prediction using the motion vectors, A 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 that represent the whiter; 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 regions of the horizontal and vertical components below the cutoff value, respectively. The contracted unary codes for the 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 of the term code form and suffixes of the Exp-Golomb code form of the horizontal and vertical components The cutoff value is 2, and the Exp-Golomb code is 1. The method according to claim 1, For the horizontal and vertical components of the motion vector difference, and the Exp-Golomb code with a constant equal probability bypass mode. A context-adaptive binomial with exactly one context per bin position of a unary code. Encode the shortened unary code into the data stream using linear entropy coding. Step,encoder.
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