Entropy coding of motion vector difference
By using simplified unsigned codes and block combination techniques, the problems of context selection complexity and low coding efficiency in existing video coding are solved, thereby improving motion vector prediction quality and coding efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- DOLBY VIDEO COMPRESSION LLC
- Filing Date
- 2025-08-07
- Publication Date
- 2026-06-02
AI Technical Summary
In existing video coding technologies, the provision of rich context increases coding complexity and affects coding efficiency. Furthermore, the context may not be accessed frequently, leading to inaccurate probability assessment and thus affecting the effectiveness of entropy coding.
A simplified unsigned code is used to binary the motion vector difference and the truncation value is reduced to 2 to avoid overly fine context selection. An ordered list is generated by combining multiple motion vector predictors and block combination is used to reduce the transmission of motion vector difference.
It improves the overall quality and coding efficiency of motion vector prediction, reduces the number of transmitted motion vector differences, and enhances the efficiency of entropy coding.
Smart Images

Figure 0007869386000030 
Figure 0007869386000031 
Figure 0007869386000032
Abstract
Description
Technical Field
[0001] The present invention relates to entropy coding concepts for encoded video data.
Background Art
[0002] Many video coders are well-known in the art. Usually, these coders reduce the amount of data necessary to represent video content, i.e., they compress the data. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference. In the context of video coding, it is known that compression of video data is conveniently achieved by different coding techniques that are applied successively, and motion compensated prediction is used to predict the image content. The motion vectors determined by motion compensated prediction and prediction residuals depend on reversible entropy coding. To further reduce the amount of data, the motion vectors themselves are predicted, so that only the motion vector difference, which simply represents the motion vector prediction residual, has to be entropy coded. For example, in H.264, the procedure outlined above is applied to transmit information about the motion vector difference. In particular, the motion vector difference is binary-coded into bin strings corresponding to a combination of truncated unary code and exponential Golomb code starting from a specific cut-off value. The bin of the exponential Golomb code is easily coded using an equiprobable bypass mode with a fixed probability of 0.5, while several contexts are provided for the first bin. The cut-off value is chosen to be 9. Thus, rich contexts are provided to code the motion vector difference.
Summary of the Invention
[0003] However, providing rich context increases the complexity of coding. Furthermore, it can negatively impact coding efficiency, and the context may not be accessed often. If not, probabilistic fitting, i.e., the context between the causes of entropy coding The fitting of probability evaluations related to the tot is not performed effectively. Therefore, it is inappropriately applied. The probability evaluation estimates the actual symbol statistics. Furthermore, for a specific bin of the binarization, If several contexts are provided, the choice between them depends on the needs of the decryption process. This requires checking adjacent bin / syntax element values to prevent execution. On the other hand, context If the number of strikes is set too low, the bins of various actual symbol statistics are Grouped within the scope of one context, and therefore related to that context. The probabilistic evaluation fails to effectively encode the associated bins along with it.
[0004] Further efforts are needed to increase the coding efficiency of entropy coding of motion vector differences. It is necessary.
[0005] Therefore, the object of the present invention is to provide this type of coding concept. [Means for solving the problem]
[0006] This objective is achieved by the subject matter of the separate claims attached herein.
[0007] The fundamental discovery of this invention is that a shortened unary code is used to binarize the difference in motion vectors. Reduce the cutoff value to 2 so that there are only two bin positions for the shortened unary sign. This further increases the coding efficiency of entropy coding of motion vector differences. This means that the order of 1 is the exponent for the vector difference from the cutoff value. When used for b coding, and furthermore, when one context is definitely incomplete If given at two positions in the unary code, the bin or s of adjacent image blocks Context selection based on the intax element value is unnecessary, and these to the context Overly detailed classifications in bottle positions are avoided, allowing established fit to function properly, and the same context When stripes are used in horizontal and vertical components, this can result in overly fine context Reduce the negative effects of splitting the strike.
[0008] Furthermore, the above setting regarding the entropy coding of the motion vector difference makes it a motion vector Combined with advanced methods of torque difference, it reduces the required sum of the motion vector differences that are sent. It is particularly useful in this case. For example, multiple motion vector predictors are motion vector predictors Provided to obtain an ordered list, this list of motion vector predictors The index is the actual motion vector difference in which the predicted residual is the problem. Used to determine the motion vector predictor. The list index used is Even though the information related to this must be derived from the data stream on the decoding side, Therefore, the overall prediction quality of the motion vector increases, and consequently, the magnitude of the motion vector difference is further This reduces the overall coding efficiency, and further increases the overall efficiency of such improved motion vector prediction. Cutoff values and context for the horizontal and vertical components of the direction motion vector difference Reduce the common usage of the to. On the other hand, the motion vectors transmitted in the data stream Combination can be used to reduce the number of vector differences, and for this purpose, the combination information is a group The data stream that sends signals to the decoder block for the re - division of the blocks classified into blocks is transmitted. The motion vector difference is then transmitted in the data stream that uses these combined groups as units instead of individual blocks, Thereby reducing the number of motion vector differences that have to be transmitted. The clustering of these blocks reduces the correlation between adjacent motion vector differences, so The omission of providing each context for the above - mentioned bin positions suppresses the entropy coding scheme from being too fine - grained classification into the context caused by adjacent motion vector differences. Rather The combination concept already utilizes the correlation between the motion vector differences of adjacent blocks, and thus One context for one bin position - for the horizontal and vertical components - is sufficient. Preferred embodiments of the present application are described below with reference to the drawings.
Brief Description of the Drawings
[0009] [Figure 1] Figure 1 shows a block diagram of an encoder according to an embodiment. [Figure 2a] Figure 2a is an illustrative diagram showing the re - division of an image into blocks. [Figure 2b] Figure 2b is an illustrative diagram showing a different re - division of an image into blocks. [Figure 2c] Figure 2c is an illustrative diagram showing a different re - division of an image into blocks. [Figure 3] Figure 3 shows a block diagram of a decoder according to an embodiment. [Figure 4] Figure 4 is a block diagram showing the encoder according to the embodiment in more detail. [Figure 5] Figure 5 is a block diagram showing the decoder according to the embodiment in more detail. [Figure 6] Figure 6 is an illustrative diagram showing the transformation of blocks from the spatial domain to the spectral domain, and the resulting transformed blocks and their re-transformation. [Figure 7] Figure 7 shows a block diagram of the encoder according to the embodiment. [Figure 8] Figure 8 shows a block diagram of a decoder suitable for decoding the bit stream generated by the encoder in Figure 8, according to an embodiment. [Figure 9] Figure 9 is a block diagram showing a data packet having a multiplexed partial bitstream according to an embodiment. [Figure 10] Figure 10 is a block diagram showing a data packet with other divisions using fixed-size segments according to a further embodiment. [Figure 11] Figure 11 shows a decoder that supports mode switching according to the embodiment. [Figure 12] Figure 12 shows a decoder that supports mode switching according to a further embodiment. [Figure 13] Figure 13 shows an encoder that is compatible with the decoder in Figure 11 according to the embodiment. [Figure 14] Figure 14 shows an encoder that is compatible with the decoder in Figure 12 according to the embodiment. [Figure 15] Figure 15 shows the mapping between pStateCtx and fullCtxState / 256**E**. [Figure 16] Figure 16 shows a decoder according to one embodiment of the present invention. [Figure 17] Figure 17 shows an encoder according to one embodiment of the present invention. [Figure 18] Figure 18 is an illustrative diagram showing the binarization of the motion vector difference according to an embodiment of the present invention. [Figure 19]Figure 19 is an illustrative diagram showing the coupling concept according to this embodiment. [Figure 20] Figure 20 is an illustrative diagram showing the motion vector prediction kakeem according to this embodiment. [Modes for carrying out the invention]
[0010] Note that during the explanation of the figures, the elements occurring in some of these figures are described in each of the figures. Indicated by the same reference numeral, and as far as functionality is concerned, the repeated descriptions of these elements are It should be noted that this is avoided in order to avoid unnecessary repetition. Nevertheless, the opposite Unless otherwise clearly indicated, the functions and descriptions provided for one figure are not related to those of other figures. This is also applied to the diagram.
[0011] In the following, firstly, an example of a general video encoding concept is described with reference to Figures 1 to 10. Figures 1-6 show one of the video codecs that affect the syntax level. Regarding the section. Figures 8-10 below illustrate the conversion of syntactic elements to data streams and vice versa. This relates to examples for a portion of the code relating to the present invention and specific aspects and embodiments of the present invention. The examples are described in the form of possible realizations of general concepts typically outlined in Figures 1-10. It is.
[0012] Figure 1 shows an embodiment for an encoder 10 in which an embodiment of the present application can be carried out. .
[0013] The encoder encodes an array of information samples 20 into the data stream. The pull array contains information samples corresponding to, for example, brightness values, lightness values, luma values, saturation values, etc. This can represent the time of the sample array 20, for example, a light sensor. In the case of a depth diagram that is generated in this way, the information sample may be a depth value.
[0014] Encoder 10 is a block-based encoder. That is, encoder 10 This encodes the sample sequence 20 into a data stream 30, which is divided into blocks 40. The encoding is performed using blocks 40 as units, and the encoders 10 are independent of each other as a whole. This does not necessarily mean that these blocks 40 are to be encoded. Rather In order to guess or predict the remaining blocks, encoder 10 uses the previously encoded blocks. Block retransformation can be used to set encoding parameters, i.e. This sets how each sample array region corresponding to each block is encoded. The precision of the block can be used for this purpose.
[0015] Furthermore, the encoder 10 is a conversion encoder. That is, the encoder 10 is a spatial domain A transformation is used to transfer information samples from each block 40 from the region to the spectral region. Then, block 40 is encoded. Two-dimensional transformations such as DCT in FFT are used. This is possible. Preferably, the block 40 is a quadratic or rectangular shape.
[0016] The subdivision of the sample array 20 into block 40 shown in Figure 1 is given simply for illustrative purposes. That is all. Figure 1 shows adjacent quadratic or rectangular blocks that do not overlap. Sample sequence 20 is shown as being subdivided into a regular two-dimensional sequence of lock 40. The size of block 40 may be predetermined. That is, encoder 10 is the decoding side The data stream 30 transmits information about the block size of block 40. No. For example, a decoder can predict a given block size.
[0017] However, some variations are possible. For example, the blocks can overlap each other. They can fit together. However, each block does not overlap with any adjacent block. To the extent that it has, or each sample in the block is, at most, along a predetermined direction, the current block Among adjacent blocks arranged to be placed side by side, only one block overlaps. The overlap may be restricted. The latter means that the adjacent blocks to the left or right are completely current Blocks can overlap the current block to cover it, but they will not cover each other. This means that it cannot be done, and it applies to adjacent areas in the vertical and diagonal directions. ru.
[0018] Another option is to subdivide the sample sequence 20 into block 40, which is a bit-s The trim 30 transmits subdivision information to the decoder side for use. The encoder 10 then applies the contents of the sample sequence 20.
[0019] Figures 2a to 2c show different implementations for the repartition of sample sequence 20 into block 40. An example is shown. Figure 2a is a quadtree-based representation of sample arrays 20 into 40 blocks of different sizes. This shows the subdivision, and the increasing size is shown in 40a, 40b, 40c and 40d. A lock is shown. According to the subdivision in Figure 2a, sample sequence 20 is first a tree block. It is divided into a uniform two-dimensional arrangement of 40d blocks, and it is further divided into four specific tree blocks 40d. The individual subdivisions associated with further subdivision by a subtree or otherwise The report states that the tree block 40d relative to the left of the block is less than the quad tree structure. It is subdivided into blocks. Encoder 10 is divided into blocks shown by solid and dotted lines in Figure 2a. One two-dimensional transformation can be performed for each of the values. In other words, an encoder 10 can convert an array 20 that uses block subdivision as its unit.
[0020] Instead of quadtree-based partitioning, a more general multitree-based partitioning method is used. This is possible, and the number of child nodes per hierarchy level can differ between different hierarchy levels. ru.
[0021] Figure 2b shows another example for repartition. According to Figure 2b, sample sequence 20 is Firstly, arrange them so that they form a uniform two-dimensional arrangement without overlapping while being adjacent to each other. It is divided into macroblocks 40b, and each macroblock 40b is a macroblock Either it is not subdivided, or if it is subdivided, it subdivides differently for different macroblocks. The process involves subdividing the object into uniform, two-dimensional subblocks of the same size to achieve accuracy. This relates to the subdivision information concerning. The results are different as shown in 40a, 40b and 40a. As exemplified by the size, the sample sequence 20 is re-arranged into blocks 40 of different sizes. It is divided. As shown in Figure 2a, the encoder 10 has solid and dotted lines as shown in Figure 2b. Perform a two-dimensional transformation on each of the blocks. Figure 2c will be discussed later.
[0022] Figure 3 shows the data stream generated by encoder 10 reproduced in sample array 20. This shows a decoder 50 that can be decoded to reproduce version 60. -da 50 is a conversion factor block for each of the data streams 30 to block 40. The reconstructed result was obtained by extracting the transform coefficients and performing an inverse transform on each of the transform coefficient blocks. Recreate version 60.
[0023] The encoder 10 and decoder 50 each provide information about the conversion coefficient to a block. Entropy It can be configured to perform encoding / decoding. This can be done according to different embodiments. Further details regarding this will be discussed later. Data stream 30 does not necessarily represent all of sample sequence 20. It should be noted that we do not have information regarding the conversion coefficient block for block 40. It is necessary to be mindful of this. Rather, as a subset of the block, 40 is bit by bit It can be encoded into stream 30. For example, encoder 10 can encode bit stream Changed for a specific block of block 40 by inserting a different encoding parameter into ream 30. Instead of inserting a conversion coefficient block, we will make the decoder 50 predictable. Or, it would be possible to fill each block of the recreated version 60. It can be decided to do so. For example, encoder 10 in the bit stream By combining textures and demonstrating this, the decoder fills the decoder side. To determine the block positions within the 20 sample sequences, perform texture analysis. It is possible.
[0024] As described in the following figure, the conversion coefficient block is not necessarily the same as the sample array 20. This represents the spectral domain representation of the original information sample for each of the 40 blocks. That's not the case. Rather, this type of conversion coefficient block is the predicted remaining for each block 40. It can represent the remaining spectral region. Figure 4 shows an implementation for this type of encoder. An example is shown. The encoder in Figure 4 consists of a conversion stage 100, an entropy encoder 102, and an inverse converter. Includes exchange stage 104, predictor 106, subtractor 108 and adder 110. Subtractor 10 8. The conversion stage 100 and the entropy encoder 102 are connected to the input 1 of the encoder in Figure 4. 12 and output 114 are connected sequentially in that order. Also, the inverse transform stage 10 4. Adder 110 and predictor 106 are connected to the output of conversion stage 100 and subtractor 108 The inverting inputs are connected in that order, and the output of predictor 106 is further connected to the input of adder 110. Connected.
[0025] The encoder in Figure 4 is a predictive transformation-based block coder. That is, input 112 is The input sample sequence 20 block is encoded before the same sample sequence 20. The reproduced portion or the current sample sequence 20 preceding the presentation time or is predicted from other previously encoded and reproduced sample sequences that follow. The prediction is, This is performed by the prediction means 106. The subtractor 108 makes the prediction of this type of original block. Subtracting from the value, the transformation stage 100 then performs a two-dimensional transformation on the predicted residual. The next measurement within the two-dimensional transformation itself or within the transformation stage 100 is within the transformation coefficient block. This leads to the quantization of the transformation coefficients. The quantized transformation coefficient blocks are, for example, entropy. Entropy coding is performed within the encoder 102, thereby encoding in lossless compression, and the result The data stream is output at output 114. The inverse transformation stage 104 outputs the quantized residual The remainder is reconstructed, and then the adder 110 then predicts the current coding prediction of the predictor 106. To obtain a reproduced information sample based on the ability to predict the blocks, reproduced residual The remainder is combined with the corresponding prediction. Predictor 106 uses an intraprediction module to predict the block. Different prediction modes can be used, such as the prediction mode and the prediction mode. The lamellar is sent to the entropy encoder 102 for insertion into the data stream. For each predicted block, the decoding side performs the prediction on the predicted motion data. To enable correction, the bit stream is sent via the entropy encoder 114. It is inserted. Motion data for the image prediction block is inserted into the adjacent already encoded prediction block. Compared to the motion vector predictor extracted from the motion vector of the measurement block using the method described above Therefore, the motion vector difference is shown to encode the motion vector differently for the current prediction block. Includes the syntax part containing the `su` syntactic element.
[0026] In other words, according to the embodiment in Figure 4, the conversion coefficient block is obtained from its actual information sample. Rather, it represents the spectral representation of the remainder of the sample sequence. That is, according to the example in Figure 4, The sequence of syntactic elements is entropically encoded into data stream 114. The sequence of syntactic elements is input to the entropy encoder 102. For the interpretation block, the motion vector difference syntax, the position of the important transformation coefficient levels This includes syntax for the importance map shown and syntax for defining the important transformation coefficient levels themselves. nothing.
[0027] Several variations are present in the embodiment shown in Figure 4, some of which are described in the introductory section of the specification. It is stated there, and that statement is incorporated into the description in Figure 4 here.
[0028] Figure 5 shows the decoding of the data stream generated by the encoder in Figure 4. The decoder shown in Figure 5 consists of an entropy decoder 150 and an inverse transform stage. Includes 152, adder 154 and predictor 156. Entropy decoder 150, inverse transform Stage 152 and adder 154 are located between input 158 and output 160 of the decoder in Figure 5. They are connected in that order in succession. The further output of the entropy decoder 150 is added to adder 1 It is connected to predictor 156, which is connected between the output of 54 and its further input. The ropy decoder 150 receives the data stream input to the decoder in Figure 5 at input 158. Then, the conversion coefficient block is extracted, and the inverse conversion is performed in stage 152 to obtain the residual signal. Applied to the block. The residual signal is a reproduced version of the sample sequence at output 160. To obtain the reproduced block, the prediction from the predictor 156 is combined in the adder 154. Based on the reproduced version, predictor 156 generates a prediction, thereby encoding The encoder side restores the prediction performed by the predictor 106. To obtain the same predictions, the predictor 156 also inputs the entropy decoder 150 to the input 158. Then, use the prediction parameters obtained from the data stream.
[0029] In the above-described embodiment, the prediction and transformation of the residuals do not need to be the same as each other. This should be noted. This is shown in Figure 2C. This figure shows the prediction accuracy and points, indicated by the solid line. The line shows the subdivision for the accuracy prediction block of the residuals. As can be seen, the subdivision Each can be selected independently by the encoder. The data stream syntax defines residual repartitioning independent of predictive repartitioning. This can be taken into consideration. Alternatively, each residual block may be equivalent to or suitable to the predicted block. The repartition of residuals may be an extension of the predictive repartition, as long as it is a suitable subset. This is shown in Figures 2a and 2b, where the prediction accuracy is shown by the solid line. The residual accuracy is shown by the dotted line. That is, in Figures 2a-2c, it is shown along with the associated reference code. All blocks having are residual blocks on which one two-dimensional transformation is performed, while Solid line blocks larger than dotted line block 40a indicate, for example, individual prediction parameter settings. This is a prediction block that is executed sequentially.
[0030] In the above embodiment, the sample block (whether residual or original) is on the encoder side. It is converted into a conversion coefficient block, which is then used on the decoder side to reproduce the sample block. They are common in that they are inversely transformed into 'ku'. This is shown in Figure 6. Figure 6 is sample 200. This shows the block. In the case of Figure 6, this block 200 is a secondary sample in terms of size. This is a 4x4 sample 202. Sample 202 is aligned horizontally x and vertically y. They are uniformly arranged. Due to the two-dimensional transformation T described above, block 200 is the spectral region. The region is converted to a block 204 with a conversion coefficient of 206, and the converted block 204 is a block It is the same size as the Ku200. That is, the conversion block 200 is horizontal and vertical In this direction, block 200 has the same number of conversion coefficients 206 as the number of samples. However, since the transformation T is a spectral transformation, the transformation in transformation block 204 The position of coefficient 206 does not correspond to a spatial position, but rather to the spectrum of the content of block 200. It corresponds to the 'L' component. In particular, the horizontal axis of the conversion block 204 corresponds to the spectral frequency on the horizontal axis. The axis corresponds to the axis along which the number increases monotonically, and the vertical axis corresponds to the axis along which the spatial frequency is monotonically increasing. Corresponding to the axis along the increasing axis, the DC component conversion coefficient is at the corner of block 204 - here It is located in the upper left corner as an example, and therefore, in the lower right corner, horizontally The conversion coefficient 206, corresponding to the highest frequency in both the horizontal and vertical directions, is located in space. By ignoring direction, the spatial frequency to which a particular transformation coefficient 206 belongs is generally the upper left. It increases from the corner to the bottom right corner. Inverse transformation T -1 Therefore, the conversion block 204 The spectral domain is transformed into the spatial domain, and a copy 208 of block 200 is obtained again. This is possible. If quantization / losses are not introduced during the transformation, the reconstruction is perfect.
[0031] As already mentioned above, Figure 6 shows that the larger block size of block 200 is the result. It can be seen that this increases the spectral resolution of the resulting spectral representation 204. On the other hand, quantization noise tends to spread out all 208 blocks, and therefore, Sudden and very localized objects within the range of 200 are affected by quantization noise. It tends to lead to deviations in the re-transformed blocks compared to the original block 200. On the other hand, the main advantage of using larger blocks is, on the one hand, the number of effective blocks, i.e. Non-zero (quantized) transformation coefficients, i.e., the ratios between levels, are important on the other hand. The number of conversion coefficients decreases in larger blocks compared to smaller blocks, and therefore This means that it enables superior encoding efficiency. In other words, it often enables effective The conversion coefficient levels, i.e., conversion coefficients that are not quantized to zero, are sparsely distributed in conversion block 20. It is distributed to 4. This means that, according to the embodiment described in more detail below, it is effective The location of the transformation coefficient levels is indicated in the data stream by means of a valid map. From there, the value of the effective transformation coefficient, i.e., the transformation in the case of quantized transformation coefficients, The coefficient level is transmitted within the data stream.
[0032] All of the above encoders and decoders, in this way, perform specific syntax analysis of syntactic elements. It is configured to handle ks. That is, the aforementioned syntactic elements such as the conversion coefficient level, transformation Syntactic elements related to the effectiveness map of replacement blocks, motion data related to interpretation blocks. Syntactic elements, etc., are presumed to be arranged sequentially within the data stream in a predetermined manner. This type of prescribed method can, for example, use the H.264 standard or other video continuum. It is represented in the form of pseudocode, as is done in CODE.
[0033] To put it another way, the above description refers to media data, in this case a specific syntactic element, and its meaning The syntactic elements are arranged according to a predetermined syntactic structure that defines the flavors and the order between them. It was the first to address the conversion of video data as a result of the scan. (Figures 4 and 5) Entropy encoders and decoders operate as outlined below. It is composed and constructed. It is a sequence of syntactic elements and a data stream, that is It plays the role of performing conversions between symbols or bitstreams.
[0034] An entropy encoder according to the embodiment is illustrated in Figure 7. The encoder is reversible pressure In a condensed form, the stream of syntactic element 301 is divided into two or more partial bitstreams 312. Convert to a .
[0035] In a preferred embodiment of the present invention, each syntactic element 301 is one or more categories, that is, This relates to the categories of syntactic element types. For example, a category is a syntactic element type It can be defined that, in relation to 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, transformation coefficient It may be related to levels, etc. For example, audio, spoken language, text, document or Different classifications of syntactic elements are possible in other application areas such as general data coding.
[0036] In general, each syntactic element can take values from a finite or countable set of values, and The set of syntactic element values can differ for different syntactic element categories. For example In addition to integer elements, there are also binary syntax elements.
[0037] To reduce the complexity of encoding and decoding algorithms, and different syntactic elements To allow for general coding and decoding designs for syntactic element categories, syntactic elements 301 is converted into an ordered set of binary decisions, and these binaries The decision is then processed by a simple binary coding algorithm. The binarizer 302 then bijectively converts the value of each syntactic element 301 into a sequence of bins 303 ( It maps to a string or word. The sequence in bin 303 is ordered This represents a binary decision. Each bin 303 or binary decision has two values. It can take one value from the set, for example, one of the values 0 and 1. The syntax scheme may differ for different syntactic element categories. The category binarization scheme is a set of possible syntactic element values and / or a specific category. It can depend on other properties of the syntactic elements for this purpose.
[0038] Table 1 illustrates three examples of binarization schemes for countable infinite sets. The binarization scheme for a set can also be applied to a finite set of syntactic element values. In particular, for a large finite set of syntactic element values, (from unused sequences of bins) The resulting inefficiencies can be ignored, but the generality of this type of binarization scheme is complex and noteworthy. It provides an effect regarding the necessary conditions. For a small finite set of syntactic element values, binarization is effective. Adapting the key to the number of possible symbol values is often beneficial (in terms of coding efficiency). It seems so.
[0039] Table 2 illustrates the binarization plans for three examples of a finite set of eight values. The binarization scheme is such that a finite set of bin sequences results in a code without redundancy (and, (potentially rearranging the sequence of bins) to represent some of the bins By modifying the kens, we can obtain a general binarization scheme for countable infinite sets from It can be extracted. For example, the abbreviated unary binarization scheme in Table 2 is a general-purpose unary binarization. Constructed by modifying the sequence of bins for syntactic element 7 of the transformation (see Table 1) The zero-order incomplete and reorganized Exp-Golomb binarizations in Table 2 are as follows: Bin for syntactic element 7 of universal Exp-Golomb order 0 binarization (see Table 1) By correcting the sequence of, and the sequence of bins (for symbol 7) The sequence of abbreviated bins is created by rearranging the (assigned to symbol 1) It was accomplished. For a finite set of syntactic elements, as exemplified 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 in the sequence of bins created by the binarizer 302 is in the sequence... The parameters are entered into the parameter assigner 304 in order. The parameter assigner has one or more Assign a set of parameters to each bin 303, and have a set of parameters 305 It outputs a signal. The set of parameters is determined in exactly the same way by the encoder and decoder. The parameter set can consist of one or more of the following parameters:
[0043] In particular, the parameter assigner 304 assigns the context model to the current bin 303. It can be configured in such a way. For example, the parameter assigner 304 can be configured to handle the current behavior. You can select one of the available context indices for n303. Yes, it is possible. The available set of contexts for the current bin 303 is, next, syntactic elements The type of bin is determined by the type / category of 301, and the current bin 303 This is the binarization part, and it is the current position of bin 303 in the subsequent binarization. The selection of contexts among the set of contexts is based on the previous bin and associated with the latter. Syntactic elements can be relied upon. Each of these contexts has an associated probability. The model, i.e., the assessment of the probability for one of the two possible bin values for the current bin. It has a measurement for value. The established model is particularly unlikely to occur for the current bin. Alternatively, the probability is measured to estimate the probability of a more likely bin value, and the probability model is further... 2 represents bin values that are unlikely or more likely to occur for the current bin 303. It is defined by an identifier that specifies an estimate for one possible bin value. If only one context is available for the context, the context selection is left separate. As will be outlined in more detail below, the parameter assigner 304 has various components. The probability models related to the text are assigned to each context. It is also possible to perform probabilistic model fitting to adapt the model to the actual bin statistics.
[0044] As described in more detail below, the parameter assigner 304 operates as follows: It operates differently depending on whether it is in high efficiency (HE) mode or low complexity (LC) mode. This is possible. As outlined below, in both modes, the probability model uses a bin encoder 3 Associate the current bin 303 with one of the 10, but the operation mode of the parameter assigner 304 The code tends to be less complex in LC mode, whereas bin statistics Parameters based on the association of individual bins 303 to individual encoders 310 that adapt more precisely In the high-efficiency mode provided by the assignor 304, the coding efficiency is increased, thereby enabling LC mode Optimize entropy in relation to the code.
[0045] The parameter assigner 304 has an associated set of parameters 305 which are outputs. Each bin is then fed into the bin buffer selector 306. 306 is the input bin 30 based on the input bin value and associated parameter 305. Correct the value of 5 and output bin 307 - which has the potentially corrected value - to two or more bins It is placed into one of the buffers 308. The bin buffer 308 to which output bin 307 is sent is , determined based on the value of input bin 305 and / or the value of related parameter 305 ru.
[0046] In a preferred embodiment of the present invention, the bin buffer selector 306 corrects the bin values. No, that is, output bin 307 always has the same value as input bin 305. Further invention In a preferred embodiment, the bin buffer selector 306 has input bin values 305 and Relevant for evaluating the probability of one of the two possible bin values for the current bin. Based on the measurement, the output bin value 307 is determined. In a preferred embodiment of the present invention, A measurement for the probability of one of two possible bin values for a bin is a certain threshold. If smaller (or equal to) the input bin value 307, the output bin value 307 is equal to the input bin value 30. Set to equal to 5; the probability of 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 It is corrected (i.e., it is set to the inverse of the input bin value). Further development In a preferred embodiment of the present invention, one of two possible bin values for the current bin is If the measurement for the probability is greater than (or equal to) a certain threshold, The output bin value 307 is set to be equal to the input bin value 305; there are two possible values for the current bin. A measurement for the probability of one of the bin values is less than or equal to a certain threshold (and If it is small, the output bin value 307 is corrected (i.e., it is the inverse of the input bin value). (It is set to the object). In a preferred embodiment of the present invention, the threshold value is set to both possible values. This corresponds to a value of 0.5 for the estimated probability of the n value.
[0047] In a further preferred embodiment of the present invention, the bin buffer selector 306 is an input bin The value is 305, and two possible bins are unlikely to be for the current bin, or more The output bin value 307 is determined based on the relevant identifier that identifies the evaluation representing a likely bin value. Determined. In a preferred embodiment of the present invention, the identifier is the first of two possible bin values. This indicates that it represents an unlikely (or more likely) bin value for the current bin. If so, output bin value 307 is set to be equal to input bin value 305, and identifier is The second of the two possible bin values is unlikely (or more likely) for the current bin. If it indicates that it represents a bin value that is likely to be corrected, the output bin value 307 will be corrected (that is, (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 is connected to the output bin 307 This is relevant for evaluating the probability of one of the two possible bins for the current bin. Based on the measurement, the bin buffer 308 to be sent is determined. In a preferred embodiment of the present invention, And, for the measurement of the probability of one of the two possible bin values The set of values is limited, and the bin buffer selector 306 is exactly one bin buffer. For each possible value, evaluate the probability of one of the two possible bin values in ff308. Includes a table to associate with and evaluate the probability for one of two possible bin values. Different values for measurement 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 The range of possible values for measurement for evaluation is divided into many intervals, bin buffer sec The Recta 306 is a current measurement for evaluating the probability of one of two possible bin values. Determine the interval index for and the bin buffer selector 306 is exactly 1 Includes a table that associates each possible value for the interval index with one bin buffer 308, Different values for the interval index can be associated with the same bin buffer 308. Yes, it is possible. In a preferred embodiment of the present invention, the probability assessment for one of two possible bin values Input bin 305 has an inverse measure for the value (the inverse measure represents the probability evaluations P and 1-P). (This is supplied to the same bin buffer 308.) Further preferred embodiment of the present invention In the example, for instance, if the created partial bitstream has a similar bitrate To ensure that it has two bin buffers for the current bin The relevance of the measurement for evaluating the probability of one of the possible bin values is appropriate over time. It can be made to respond. Furthermore, in the following, the interval index is also called the pipe index. However, the improved index and a flag indicating a more likely bin value are used along with the pipe. The index assigns an index to the actual probability model (i.e., the probability evaluation).
[0049] In a further preferred embodiment of the present invention, the bin buffer selector 306 is an output bin 307 is the probability of a less likely or more likely bin value for the current bin. The bin buffer 308 to be sent is determined based on relevant measurements for evaluation. In a preferred embodiment, the probability for an unlikely or more likely bin value. The set of possible values for measurement for evaluation is limited, and the bin buffer selector 30 6 is exactly one bin buffer 308, which is unlikely or more likely bin value Includes a table associated with each possible value for probability evaluation, indicating unlikely or unlikely outcomes. Different values for measuring the probability of a likely bin value are the same bin value. It can be associated with Fa 308. In a further preferred embodiment of the present invention, For measuring the probability of less likely or more likely bin values The range of possible values is divided into many intervals, and a bin buffer selector 306 seems unlikely. , or interval in current measurement for evaluating the probability of a more likely bin value Determining the dex and different values for the interval index are related to the same bin buffer 308. They can be connected. In a further preferred embodiment of the present invention, for example, they are made To ensure that the partial bitstream has a similar bit rate For the current bin which has a specific bin buffer, this is unlikely, or more likely. The relationship between measurements for evaluating the probability of the Unabin value is adapted over time.
[0050] Each of the two or more bin buffers 308 is connected to exactly one bin encoder 310, and each Each bin encoder is connected to only one bin buffer 308. Each bin encoder 310 Read the bins from the associated bin buffer 308 and the sequence of bins 309 in bits Convert to a codeword 311 representing the sequence. The bin buffer 308 is a first-in, first-out buffer. Represented; bins entered later into bin buffer 308 (in the order they occurred) are in the bin buffer Not encoded before the bins that are entered first (in the order in which they occurred). Specific bin encoder 310 The codeword 311, which is the output of the process, is written to a specific partial bitstream 312. The overall encoding algorithm uses two or more partial bit strings to represent the syntactic element 301. Convert to 312, the number of partial bitstreams, bin buffer and bin code Equal to the number of containers. In a preferred embodiment of the present invention, the bin coder 310 has varying lengths. Convert the manabin 309 into codewords 311 of varying bit lengths. One of the effects mentioned above and below is that bin coding can be performed in parallel (for example, different probabilistic measures). (For loops) can be implemented, and it is the processing time for some embodiments. Reduce.
[0051] Another effect of the embodiments of the present invention is that bin coding performed by the bin coder 310 is parameterized This means that it can be specifically designed for different sets of the Ta305. In particular, Bin coding and coding are used for different groups of estimated probabilities (coding efficiency). It can be optimized (in terms of and / or complexity). On the one hand, this can be coded / decoded. This enables a reduction in the complexity of coding, and on the other hand, it enables an improvement in coding efficiency. In a preferred embodiment of the present invention, the bin coder 310 has two possible bins for the current bin. Different measurements for different groups for evaluating the probability of one of the 305 values The coding algorithm (i.e., the mapping of bin sequences on codewords) is implemented. In a further preferred embodiment of the present invention, the bin coder 310 is for the current bin. Different measures for evaluating the probability of less likely or more likely bin values Implement different coding algorithms for the group.
[0052] In a preferred embodiment of the present invention, the bin coder 310- or one or more bin codes The container maps the sequence of direct input bins 309 to the codeword 310, which is entropy. Represents an encoder. Such mappings can be done efficiently and avoid complex arithmetic coding. No engine is required. (Like in a decoder) The reverse mapping of codewords is excellent for ensuring complete decoding of the input sequence. However, the mapping of bin sequence 309 to codeword 310 is not necessarily superior. It does not need to be a complete sequence; that is, a partial sequence of bins is one or more codewords. It is possible to map it onto a sequence. Preferred embodiment of the present invention In the example, the mapping of the sequence of input bins 309 onto codeword 310 is bijective. Yes. In a further preferred embodiment of the present invention, the bin coder 310- or the bin code One or more containers directly input a variable-length sequence of input bins 309 onto the variable-length codeword 310. Represents the entropy encoder to be used for coding. In a preferred embodiment of the present invention, the output codeword This 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 non-redundant codes are , as illustrated in Table 3. In further preferred embodiments of the present invention, the output codeword is incorrect. This represents a redundant code suitable for detection and error recovery. Further preferred embodiments of the present invention include In this case, the output codeword represents an encryption code suitable for encrypting syntactic elements.
[0054] [Table 3]
[0055] [Table 4]
[0056] In further preferred embodiments of the present invention, the bin coder 310- or the bin coder One or more - directly maps the variable-length sequence of input bin 309 onto the fixed-length codeword 310. Represents an entropy encoder that performs bin coding. In a further preferred embodiment of the present invention, bin coding The device 310—or one or more of the bin encoders—directly inputs bins onto the variable-length codeword 310. This represents an entropy encoder that maps a fixed-length sequence of 309.
[0057] A decoder according to an embodiment of the present invention is illustrated in Figure 8. The decoder is basically an E Perform the reverse operation of the coda, and as a result, the (previously encoded) sequence of syntactic element 327 The bitstream is decoded from two or more sets of partial bitstreams 324. The code includes two different procedural flows: data requirements to reproduce the encoder's data flow. This is a data flow representing the inverse of the data flow of the request and the encoder. Figure 8 shows the data flow. In the example, dotted arrows represent data request flows, and solid arrows represent data flows. The decoder's components essentially replicate those of the encoder, but perform the reverse operation. do.
[0058] Decoding a syntactic element involves sending a novel decoded syntactic element 31 to the binarizer 314. This is caused by the request of 3. In a preferred embodiment of the present invention, a novel decoding syntax Each requirement of element 313 is associated with a category from a set of one or more categories. The categories associated with the request for syntactic elements are related to the corresponding syntactic elements during encoding. It's the same category as before.
[0059] The binarizer 314 sends the request for the syntactic element 313 to the parameter assignor 316. Maps to one or more requests of . Parameter assigner 31 by binarizer 314 As the final response to the bin request sent to 6, the binarizer 314 performs a bin buffer The rectifier 318 receives the decoded bin 326. The binarizer 314 receives the decoded bin The received sequence of n326 is a specific binarization scheme of the requested syntactic elements. Compared to the received sequence of the decoded bin 26, if the received sequence of the decoded bin 26 matches the binarization of the syntactic elements The binarizer then empties its bin buffer, and the final response to the request for a new decoded symbol is... Outputs the decoded syntactic elements in response. The already received sequence of the decoded bin The `-n` matches any of the bin sequences for the binarization scheme of the requested syntactic elements. If not, the decoded bin sequence will be the bin of the binarization scheme of the requested syntactic elements. The binarizer bins the other sequences of the parameter assignor until it matches one of the sequences. A request is sent. For each request for a syntactic element, the decoder encodes the corresponding syntactic element. The same binarization scheme used is employed. The binarization scheme is a different syntactic element category. It can be different for this purpose. The binarization scheme for a particular syntactic element category is a possible syntactic It depends on the set of element values and / or other properties of syntactic elements for a particular category. It is possible.
[0060] The parameter assigner 316 assigns one or more sets of parameters to each request in the bin. Then, a request for a bin with the relevant set of parameters is sent to the bin buffer selector. The set of parameters assigned to the bin requested by the parameter assigner is, During the numbering process, it remains the same as that assigned to the corresponding bin. The set of parameters is shown in the figure. It may consist of one or more of the parameters mentioned in the description of encoder 7.
[0061] In a preferred embodiment of the present invention, the parameter assigner 316 assigns each request in the bin. The same parameters that the locator 304 performed, namely, for example, the current requested bin Measurements for evaluating the probability of unlikely or more likely bin values. and which of the two possible bin values is unlikely for the currently requested bin , or an identifier that identifies an evaluation of whether it represents a more likely bin value, currently For evaluating the probability of one of the two possible bin values for the requested bin. In relation to the context and its associated measurements.
[0062] The parameter assigner 316 is based on one or more sets of already decoded symbols. And, as mentioned above, probability measurement (one of two possible bin values for the currently requested bin) Measurements for evaluating the probability for one, unlikely for the currently requested bin, Alternatively, a measurement for evaluating the probability of a more likely bin value, with two possible bin identifiers. Which of the values is less likely or more likely for the bin currently being requested? It is possible to determine one or more identifiers that define the evaluation of whether a bin value is represented. The determination of a probability measurement for a specific request is performed in the encoder for the corresponding bin. To reproduce the principle. The decoded symbols used to determine the probability measurement are the same symbols. One or more already decoded symbols of the category, adjacent space and / or the temporal position (with respect to the dataset associated with the current request for the syntactic element) (e.g.) For example, the same symbol corresponding to the dataset (such as a block or group of samples) One or more already decoded symbols of the category, or the same and / or adjacent symbols. Space and / or time (with respect to the dataset associated with the current request for the syntactic element) One or more already decoded symbols from different symbol categories corresponding to a dataset at a specific location. It can include symbols.
[0063] A B with the associated set of parameters 317 which are the output of the parameter assigner 316 Each request is input to the bin buffer selector 318. The related parameters 317 Based on the set, the bin buffer selector 318 receives requests from two or more bins 319. Send to one of the bin buffers 320 and decode from the selected bin buffer 320. Receive the decoded bin 325. The decoded input bin 325 is potentially modified, - The decoded output bin 326, which has a currently decoded value, is related to parameter 317. The set of bits is sent to the binarizer 314 as the final response to the request.
[0064] The bin buffer 320, to which bin requests are sent, is similarly the bin buffer on the encoder side. The selector's output bin is selected as the bin buffer to which it was sent.
[0065] In a preferred embodiment of the present invention, the bin buffer selector 318 is a key bin 319 The request evaluates the probability of one of two possible bin values for the currently requested bin. The bin buffer 320 to be sent is determined based on the relevant measurements for the present invention. In a specific embodiment, measurement for evaluating the probability of one of two possible bin values The set of possible values for is limited, and the bin buffer selector 318 is one bin buffer P320 is associated with each possible value in the evaluation of the probability for one of the two possible bin values. Includes a table for measuring the probability of one of two possible bin values. Different values can be associated with the same bin buffer 320. Further preferred values of the present invention In a specific embodiment, measurement for evaluating the probability of one of two possible bin values The range of possible values for is divided into many intervals, and the bin buffer selector 318 has two Interval index for current measurement for evaluating the probability of one of the possible bin values The bin buffer selector 318 determines the interval between bin buffers 320. Includes a table that precisely relates each possible value for the dex, and different values for the interval index. The value can be associated with the same bin buffer 320. Preferred embodiment of the present invention In this case, an inverse measurement (inverse) is used to evaluate the probability of one of the two possible bin values. The measurement is required for bin 317, which has probabilities P and 1-P, the same bin It is sent to the bin buffer. In a further preferred embodiment of the present invention, a specific bin buffer is An evaluation of the probability for one of two possible bin values for the current bin request. The relationship between the measurements for this purpose is adapted over time.
[0066] In a further preferred embodiment of the present invention, the bin buffer selector 318 is located in bin 31 Request 9 is an unlikely or more likely bin value for the currently requested bin. The bin buffer 320 to be sent is determined based on relevant measurements for evaluating the probability. In preferred embodiments of the present invention, unlikely or more likely bin values are used. The set of possible values for the measurement of probability evaluation is limited, and the bin buffer... Selector 318 selects one bin buffer 320, which is unlikely or more likely. Includes a table that precisely correlates each possible value with the probability evaluation for the bin value, and unlikely , or different values for measuring the probability of a more likely bin value, It can be associated with the bin buffer 320. Further preferred embodiments of the present invention Measurements for evaluating the probability of less likely or more likely bin values. The range of possible values for is divided into many intervals, and the bin buffer selector 318 is For current measurements to assess the probability of less likely or more likely bin values The interval index is determined, and the bin buffer selector 318 selects one bin buffer. Includes a table that precisely associates each possible value for the interval index, and the interval index Different values for this can be associated with the same bin buffer 320. Further advantages of the present invention In a typical example, a likely scenario for the current bin requirements having a specific bin buffer. The relevance of the measurement to the evaluation of the probability of a bin value that is not present or is more likely is time. They can both adapt.
[0067] After receiving the decoded bin 325 from the selected bin buffer 320, the bin buffer The fa selector 318 potentially modifies input bin 325, - potentially modified Send the output bin 326, which has a value, to the binarizer 314. Bin buffer selector 31 The input / output bin mapping for 8 is the input / output of the bin buffer selector on the encoder side. This is the reverse of capsule mapping.
[0068] In a preferred embodiment of the present invention, the bin buffer selector 318 corrects the bin values. No, that is, output bin 326 always has the same value as input bin 325. Further development In a preferred embodiment of the present invention, the bin buffer selector 318 has an input bin value of 325, Two possible bin values for the currently requested bin, associated with the request for bin 317. The output bin value 326 is determined based on measurements for evaluating the probability of one of them. In a preferred embodiment of the present invention, of the two possible bin values for the current bin requirement A measurement for the probability of one is less than (or less than or equal to) a certain threshold. ) In this case, output bin value 326 is set to be equal to input bin value 325; for the current bin request Is the measurement for the probability of one of the two possible bin values greater than a certain threshold? If equal to (or greater than), the output bin value 326 is corrected (i.e., it is input (The value of the bottle is set in reverse.) In a further preferred embodiment of the present invention, the current bottle value A measurement for the probability of finding one of two possible bin values is greater than a certain threshold. If greater than (or equal to) the input bin value 325, the output bin value 326 becomes equal to the input bin value 325. Set equally; probability for one of 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, the output bin value 32 6 is modified (i.e., it is set to the reverse 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. I will comply.
[0069] In a further preferred embodiment of the present invention, the bin buffer selector 318 is input bin value 325, and which of the two possible bin values is the current bin requirement related to the request for bin 317 Identification that defines the evaluation of whether a bin value is unlikely or more likely for the calculation. The output bin value 326 is determined based on the child. In a preferred embodiment of the present invention, the identifier is The first of the two possible bin values is unlikely for the current bin request (or, If it indicates that the output bin value 326 represents the input bin value 32 Set to equal to 5, 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, then output The bin value 326 is modified (i.e., it is set to the inverse of the input bin value).
[0070] As mentioned above, the bin buffer selector receives requests for bin 319 from two or more bin buffers. It is sent to one of the 320s. The bin buffer 20 is connected to the bin decoder 322 or This represents the first-in, first-out buffer given by the sequence of decoded bin 321. Request for bin 319 sent from bin buffer selector 318 to bin buffer 320. In response to that, the bin buffer 320 is the first to put into the bin buffer 320 Move the bin containing the contents and send it to the bin buffer selector 318. Bin buffer 32 Bins that are sent early to 0 are moved early and sent to the bin buffer selector 318. It can be done.
[0071] Each of the two or more bin buffers 320 is connected to exactly one bin decoder 322, and each Each Gon decoder is connected to only one Gon buffer. Each bin decoder 322 is connected to another Partially read the codeword 323 representing the sequence of bits from the bitstream 324. The bin decoder sends codeword 323 to the connected bin buffer 320. Convert to a sequence of 21. The overall decoding algorithm uses two or more partial bits. • Converts Stream 324 into many decoded syntax elements, and the number of partial bitstreams This is equal to the number of bin buffers and bin decoders, and decoding of syntactic elements is essential for novel syntactic elements. This is caused by the demand. In a preferred embodiment of the present invention, the bin decoder 322 is capable Convert a codeword 323 of a variable number of bits into a sequence of a variable number of bins 321. One effect of the embodiment of the present invention is the binning of two or more partial bitstreams. If the decoding can be done in parallel (for example, for different groups of probability measurements) This means that it reduces processing time for some implementations.
[0072] Another effect of the embodiments of the present invention is that bin decoding performed by bin decoder 322 is para This means that it can be specifically designed for different sets of meters 317. Bin coding and decoding are performed for different groups of the evaluated probabilities (coding effect It can be optimized (in terms of rate and / or complexity). On the one hand, this is For the highest level of entropy coding algorithms with comparable coding efficiency, This can reduce the complexity of encoding / decoding. On the other hand, it can reduce the complexity of similar encoding / For the highest level of entropy coding algorithms with decoding complexity, coding effect The rate can be improved. In a preferred embodiment of the present invention, the bin decoder 322 is To evaluate the probability of one of the two possible bin values (317) for the current bin request. Different decoding algorithms for different groups of measurements (i.e., on the codeword) Perform bin sequence mapping. In a further preferred embodiment of the present invention, Decoder 322 is unlikely or more likely for the currently requested bin. Different decoding algorithms for different groups of measurements for evaluating the probability of bin values Execute the rhythm.
[0073] The bin decoder 322 performs the inverse mapping of the corresponding bin encoder on the encoder side. ru.
[0074] In a preferred embodiment of the present invention, bin coder 322- or one or more bin coders - is entropy decoding that directly maps codeword 323 onto bin sequence 321. It represents a container. Such mapping can be done efficiently and avoids complex arithmetic coding. No gin is needed. The mapping of codewords to the sequence of bins is not unique. In a preferred embodiment of the present invention, the codeword on the sequence 321 of the bin The mapping of 323 is bijective. In a further preferred embodiment of the present invention, bin codes The device 310—or one or more of the bin encoders—can directly input the variable-length sequence 321 of the bins. This represents an entropy decoder that maps the variable-length codeword 323. Preferred embodiment of the present invention In this case, the input codeword is, for example, a general Huffman code or a standard Huffman code. Represents a code without redundancy. A bijective mapping of a code without redundancy for a bin sequence. Two examples for the process are illustrated in Table 3.
[0075] In further preferred embodiments of the present invention, bin decoder 322- or bin decoder 1 If there are more than one, the fixed-length codeword 323 is directly mapped onto the variable-length sequence 321 of the bin. This represents an entropy decoder. In a further preferred embodiment of the present invention, the bin decoder 32 2 - or one or more of the bin decoders - represent an entropy decoder that maps the variable - length symbol word 323 directly to the fixed - length sequence 321 of the bin. The entropy decoder represents the variable - length symbol word 323 directly to the fixed - length sequence 321 of the bin.
[0076] Thus, FIGS. 7 and 8 show an encoder for encoding a sequence of symbol 3 and an example of a decoder for reproducing it. The encoder includes an allocator 3 04 configured to allocate a plurality of parameters 305 to each symbol of the symbol sequence. The allocation is based on information included in previous symbols of the symbol sequence, such as the category of a syntax element to the representation, such as binarization, to which the current symbol belongs. Based on the information included in previous symbols of the symbol sequence, such as the category of a syntax element 1, According to the syntax structure of syntax element 1, it is predicted which predictions can be inferred in order from the previous syntax element 1 and the history of symbol 3 currently. Furthermore, the encoder includes a plurality of entropy coders 10 that convert the symbol 3 sent to each respective entropy coder 10 into a respective bit stream 312, and a selector 306 configured to send each symbol 3 to one of the selected plurality of entropy coders 10, and the selection depends on the number of parameters 305 assigned to each symbol 3. The allocator 304 is considered to be integrated into the selector 206 to obtain each selector 502. The allocator 304 is considered to be integrated into the selector 206 to obtain each selector 502. The allocator 304 is considered to be integrated into the selector 206 to obtain each selector 502. The decoder for reproducing the symbol sequence includes a plurality of entropy decoders 322 configured to convert each respective bit stream
[0077] 323 into a symbol 321; reproduced based on information included in previously reproduced symbols of the symbol sequence. The decoder for reproducing the symbol sequence includes a plurality of entropy decoders 322 configured to convert each respective bit stream 323 into a symbol 321; reproduced based on information included in previously reproduced symbols of the symbol sequence. to assign a plurality of parameters 317 to each symbol 315 of the symbol sequence configured assignment device 316 (see 326 and 327 in FIG. 8); and a plurality of entries selector 318 configured to search for each symbol of the symbol sequence reproduced from one of the selected plurality of copy decoders 322 (selected according to the number of parameters defined for each symbol) The selection depends on a plurality of parameters defined for each symbol. The assignment device 316 is configured such that the number of parameters assigned to each symbol is included or is a measurement for evaluating the establishment of a distribution between possible symbol values assumed by each symbol The assignment device 316 and the selector 318 can be considered to be incorporated into one block, the selector 402. The sequence of reproduced symbols may be in a binary alphabet, and the assignment device 316 includes measurements for evaluating the probability of less likely or more likely bin values of the two possible bin values of the binary alphabet, and the identifier determines an evaluation of which of the two possible bin values is less likely or more likely to be the bin value The assignment device 316 is reproduced based on information included in the previously reproduced symbols of the symbol sequence of the symbols reproduced in each context having its associated established distribution evaluation, and the established distribution evaluation for each context is adapted to the actual symbol statistics based on the previously reproduced symbols to which each context is assigned configured to internally assign to each symbol of the symbol sequence 315 The context may be, for example, in video or image coding, or even in a table in the case of a financial application less likely or more likely bin values The probability evaluation of the bin value is included, and the identifier determines an evaluation of which of the two possible bin values is less likely or more likely to be the bin value The assignment device 316 is reproduced based on information included in the previously reproduced symbols of the symbol sequence of the symbols reproduced in each context having its associated established distribution evaluation, and the established distribution evaluation for each context is adapted to the actual symbol statistics based on the previously reproduced symbols to which each context is assigned The assignment device 316 is reproduced based on information included in the previously reproduced symbols of the symbol sequence of the symbols reproduced in each context having its associated established distribution evaluation, and the established distribution evaluation for each context is adapted to the actual symbol statistics based on the previously reproduced symbols to which each context is assigned The assignment device 316 is reproduced based on information included in the previously reproduced symbols of the symbol sequence of the symbols reproduced in each context having its associated established distribution evaluation, and the established distribution evaluation for each context is adapted to the actual symbol statistics based on the previously reproduced symbols to which each context is assigned The established distribution evaluation for each context is adapted to the actual symbol statistics based on the previously reproduced symbols to which each context is assigned configured to internally assign to each symbol of the symbol sequence 315 so as to adapt the established distribution evaluation for each context to the actual symbol statistics based on the previously reproduced symbols to which each context is assigned The context may be, for example, in video or image coding, or even in a table in the case of a financial application The context may be, for example, in video or image coding, or even in a table in the case of a financial application The spatial relationships or neighborhoods of the locations to which syntactic elements belong can be considered. Then, Measurements for evaluating the probability distribution for each symbol are performed, for example, by quantization. Related to the context assigned to the column, or indexed to each table It can be determined based on the probability distribution evaluation used as the probability, and the probability distribution evaluation is probability Distribution (pipe index that indexes a partial bitstream 312) To obtain measurements for the evaluation of ), multiple probability distribution evaluation representations (moving away from the improved index) One of the clippings is the respective symbol (in the following examples, the improved index) The context assigned by adding an index with a pipe index Related to the strike. The selector is a bijective association of multiple entropy encoders and multiple probability components. It can be defined in relation to the fabric representation. Selector 18, over time, the symbol's In relation to the symbols reproduced before Kens, from the range of probability distribution evaluation, a predetermined deterministic The method is configured to change the quantization mapping for multiple probability distribution evaluation representations. Yes, it is possible. In other words, selector 318 is the quantization step size, i.e., the individual entropy The probability distributions mapped to the individual probability indices that are globally associated with the P-decoder The interval can be changed. Multiple entropy decoders 322 sequentially convert symbols into quantum symbols. Adapt those methods of converting to bitstreams that respond to changes in mapping. It can be configured in such a way. For example, each entropy decoder 322 is, for example, It is optimized for the reliable probability distribution evaluation within the quantization interval of each probability distribution evaluation. In other words, it is possible to have an optimal compression ratio, and with respect to the change in the latter, the evaluation of each probability distribution The position of a specific probability distribution evaluation is adapted to be optimal within the range of the quantization interval. The sequence mapping of codewords / symbols can be changed. To prevent the rate of searches from the quantization decoder from becoming more dispersed, the selector is quantized map It can be configured to change the ng. Furthermore, regarding the binarizer 314, the syntactic elements If it is already binary, it will be set aside. Furthermore, the type of decoder 322 Accordingly, the presence of buffer 320 is not necessary. Furthermore, buffer 320 is the decoder's It can be aggregated within a certain range.
[0078] End of finite syntax element array
[0079] In a preferred embodiment of the present invention, encoding and decoding are performed for a finite set of syntactic elements. This is often done in fields such as still images, frames, or video sequences. A specific amount of data, an image slice, a frame slice, or a section of a video sequence. A set of consecutive audio samples, etc., is encoded. Due to the finite set of syntactic elements, Generally, the partial bitstream created on the encoder side must be terminated. No, that is, all syntactic elements are sent or stored partial bits It must be ensured that it can be decrypted from the stream. (Last bin) After the input is placed in the corresponding bin buffer 308, the bin encoder 310 reliably outputs the complete codeword. This must be written to a partial bitstream 312. Unit 310 is an entropy code that performs a direct mapping of Hebin sequences onto codewords. When representing a device, the bin sequence stored in the bin buffer after writing the last bin into the bin buffer may not represent a bin sequence associated with the codeword (i.e., it may represent a prefix of two or more bin sequences associated with the codeword). In such a case, any of the codewords associated with a bin sequence that includes the bin sequence of the bin buffer as a prefix must be written into the partial bit stream (the bin buffer must be flushed). Until the codeword is written, this can be done by entering bins having a specific or arbitrary value into the bin buffer. In a preferred embodiment of the present invention, the bin coder selects one of the codewords having a minimum length (in addition to the characteristic that the associated bin sequence must include the bin sequence of the bin buffer as a prefix). On the decoder side, the bin decoder 322 can decode more bins than are necessary for the last codeword of the partial bit stream; these bins are not requested by the bin buffer selector 318 and are discarded and ignored. The decoding of a finite set of symbols is controlled by the requirements of the decoded syntax elements; if no further syntax elements are required for the amount of data, the decoding ends. れは、符号語と関連している2つ以上のビンシーケンスの接頭辞を表すかもしれない)。 このような場合、接頭辞としてビンバッファのビンシーケンスを含むビンシーケンスと関 連した符号語のいずれかは、部分的なビット·ストリームに書き込まれなければならない (ビンバッファは、フラッシュされなければならない)。符号語が書かれるまで、これは 特定であるか任意の値を有するビンをビンバッファに入力することによってされることが できる。本発明の好ましい実施例において、ビン符号器は、(関連するビンシーケンスが 接頭辞としてビンバッファのビンシーケンスを含まなければならない特性に加えて)最小 限の長さを有する符号語のうちの1つを選択する。デコーダ側で、ビン復号器322は、 部分的なビット·ストリームの最後の符号語のために必要であるより多くのビンを復号化 することができ;これらのビンは、ビンバッファ·セレクタ318によって要求されず、 廃棄されて、無視される。シンボルの有限のセットの復号化は、復号化された構文要素の 要求によって制御され;更なる構文要素がデータの量のために要求されない場合、復号化 は終了する。
[0080] Transmission and multiplexing of the partial bit stream
[0081] The partial bit stream 312 created by the encoder can be transmitted separately, or they can be multiplexed into a single bit stream, or とができ、または、それらは単一のビット·ストリームに多重化されることができ、また The codewords of a partial bitstream are arranged alternately within a single bitstream. It can be done.
[0082] In an embodiment of the present invention, each partial bitstream for the amount of data is 1 It is written to one data packet. The amount of data is still photographs, video sequences. Field or frame, still photograph slice, video sequence field or frame Any set of syntactic elements, such as a slice of a frame or a frame of an audio sample. El.
[0083] In other preferred embodiments of the present invention, a partial bitstream of the amount of data or If two or more of the total bitstreams of the data are part of one data The data is multiplexed into packets. The data packets contain the multiplexed partial bitstreams. The structure of the T is illustrated in Figure 9.
[0084] Data packet 400 consists of a header and (for the amount of data considered) each partial bit Includes one partition for the data stream. Data packet headers Data 400 segments the data packets (the rest of which are bitstream data 402). Includes indications for splitting into sections. In addition to indications for splitting, the header contains additional information. It may include. In a preferred embodiment of the present invention, a table for partitioning data packets. The display is a data set consisting of bits or bytes or a variety of bits or a variety of bytes. This is the starting position of the segment. In a preferred embodiment of the present invention, the data segment The starting position is relative to the beginning of the data packet, or to the end of the header. , or, in relation to the beginning of the previous data packet, the absolute value of the data packet title and And it is encoded. In a further preferred embodiment of the present invention, the beginning of the data segment The positions are coded differently, i.e., the actual start of the data segment and the data segment Only the difference from the prediction for the start of the program is encoded. The prediction is, for example, the data package. The total size of the packet, the size of the header, the number of data segments in the data packet, the previous data Based on information that is already known or has been transmitted, such as the starting position of the data segment. It can be extracted. In a preferred embodiment of the present invention, the first data packet The starting position of the packet is not encoded and is estimated based on the size of the data packet header. The decoder then uses the transmitted partition display to determine the start of the data segment. It is used for this purpose. The data segment is then used as a partial bitstream. The data contained in each data segment is then entered into the corresponding bin decoder in the order of the segments. It can be done.
[0085] There are several options for multiplexing a partial bitstream into a data packet. Yes, especially when a portion of the bitstream is very small, it reduces the amount of necessary side information. One possible option is illustrated in Figure 10. Paying data packets Loading, i.e., the data packet 410 without its header 411, is segmented in a predetermined manner. It is divided into 412 segments. For example, data packets and payloads are divided into segments of the same size. It can be divided into segments. Then, each segment can be divided into partial bits. Related to the first part of the stream or partial bitstream 413. If the stream is larger than the associated data segment, the remaining 414 is other data It is placed in the unused space at the end of the segment. This is the bitstream. The remaining portion is entered in reverse order (starting from the end of the data segment). This can be done, and it reduces the side information. Partial bitstream data The relationship to the data segment, and if one or more remainders are added to the data segment, the remainder One or more of these are present in the bitstream, for example in the data packet header, when sending a signal. It must be done.
[0086] Interleaving of variable-length codewords
[0087] Regarding some applications, a partial (for the amount of syntactic elements) of one data packet The bitstream multiplexing described above may have the following disadvantages: on the one hand, small Side information required to send signals for splitting data packets The number of bits for this becomes important in relation to the actual data of the partial bitstream. This can be done, which ultimately reduces encoding efficiency. On the other hand, multiplexing is (for example For applications that require low latency (for video conferencing applications) Not suitable. Regarding the multiplexing described, the start position of the partition is before Because it is unknown to them, the encoding is done before the partial bitstream is fully created. Da cannot initiate the transmission of data packets. Furthermore, generally speaking, it is a data packet. Before it can begin decrypting the data, it must receive the beginning of the last data segment. The decoder must wait until then. Therefore, (especially for bit rates close to the transmission bit rate, and picture Encoders require a close time interval between two images for encoding / decoding the image. (For the decoder) This results in further overall delay in some video image systems. This has a critical impact on this type of application. For specific applications To overcome the disadvantages of the present invention, the encoder of a preferred embodiment of the present invention has two or more bins The codewords generated by the encoder are configured to be arranged alternately within a single bit stream. It can be done. A bit stream with alternating codewords is (small bit When ignoring buffer delay, the signal can be sent directly to the decoder (see below). On the decoder side, two or more bin decoders directly encode the bit stream in the decoding order. Once a word is read, decoding can begin with the first bit received. To send signals for partial bitstream multiplexing (or alternating arrangement), side information No report is required. The bin decoder 322 retrieves a variable-length codeword from the global bit buffer. When not reading the data, further methods can be achieved to reduce the complexity of the decoder. However, instead, they always take a fixed length of bits from the global bit buffer. Read the Kens and add these fixed-length sequences of bits to the local bit buffer. Each bin decoder 322 is connected to a separate local bit buffer. Variable-length code The word is then read from the local bit buffer. Thus, a variable-length codeword. The parsing of this can be done in parallel, but access to fixed-length bit sequences is synchronous. It must be done in a specific way, but such access to a fixed-length sequence of bits is usually It is extremely fast, and as a result, the overall complexity of the decoding is reduced due to some architecture. It can be reduced. The fixed number of bins sent to a specific local bit buffer can vary. The local bit buffer may be different, and the bin decoder, bin buffer or Depending on a specific parameter as an event in the bit buffer, it changes over time. It is also possible. 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 in reading. Reading a fixed-length sequence of bits is different from reading a bit. Triggered by specific events in the buffer, bin decoder, or local bit buffer. For example, if the number of bits present in the connected bit buffer is less than or equal to a predetermined threshold, When it decreases, it is possible to request the reading of a new fixed-length sequence of bits. Different thresholds can be used for different bit buffers. In an encoder, Unless it is guaranteed that the fixed-length sequences of bins are input into the bitstream in the same order, Moreover, these are read from the bitstream on the decoder side. Fixed-length sequence This alternating arrangement of lances can also be coupled with low-latency control similar to that described above. A preferred embodiment for the alternating arrangement of fixed-length bit sequences is described below. For further details regarding the latter alternating arrangement scheme, see WO2011 / 128268. This is referenced in A1.
[0088] It has been stated that previously encoded data is used for video data compression. After describing the embodiments, as further embodiments for carrying out the embodiments of the present invention, on the one hand, Regarding a good trade-off between compression ratio and, on the other hand, reference tables and computational overhead. This demonstrates particularly effective implementation. In particular, the following examples individually entree the bitstream. P-encoded to effectively cover the probabilistic evaluation portion, and variable length that is not computationally complex. This enables the use of symbols. In the embodiments described later, the symbols are binary. Yes, the VLC code published below is, for example, R that extends between [0;0.5] LPS by This effectively covers probability evaluations expressed in this way.
[0089] In particular, the embodiments outlined below each represent the individual entropy shown in Figures 7-17. The P-encoder 310 and decoder 322 are shown. They are used for image or video compression. Because it happens in the application, they are in the bin, i.e., the encoding of symbols in the binary. Suitable. Therefore, these embodiments can be applied to image or video encoding. And so, the symbols of this binary are encoded in bin 307 and decoded respectively. The bitstream is separated into one or more 324 binstreams, and each such binstream is This can be considered the realization of the Bernoulli process. The following examples are by Binst To encode Reem, one or more different so-called variable-to-v Use ariable-code (v2v-code). v2v-code is a codeword that is identical to It can be thought of as two prefix codes having a number. The first and second prefix codes. The first Each codeword in the prefix code is associated with one codeword in the second prefix code. This is outlined below. According to the embodiment, at least some of the encoder 310 and decoder 322 are as follows It works like this: To encode a specific sequence in bin 307, the first prefix code Whenever the codeword is read from buffer 308, the corresponding second prefix code The codeword is written to bitstream 312. This bitstream is then restored. A similar procedure is used to create the number, but it is replaced with the first and second prefix codes. That is, in order to decode bitstream 324, the codeword of the second prefix code is Whenever it is read from each bitstream 324, the first prefix code The corresponding codeword is written to buffer 320.
[0090] Conveniently, the symbols described later do not require a reference table. The symbols are finite state machines It is executable in the form of v2v-code which stores a large table for codewords. It can be generated by simple structural rules that do not require it. Instead, Simple algorithms can be used to perform encoding or decoding. Three components The construction rules are described below, and two of them can be parameterized. These cover the different or scattered parts of the aforementioned probability intervals, and therefore, in parallel (each is (For different encoders / decoders 11 and 22) or, like them Like the two signs of all three, it is particularly advantageous when used together. (See below for details.) Regarding the structural rules, for the Bernoulli process with any probability p, of the signs One approach is to design a set of v2v codes that work well with excessive code lengths. It is possible.
[0091] As mentioned above, the encoding and decoding of streams 312 and 324 are as follows: They can also be executed one stream at a time, or in an alternating pattern. However, this is not specific to the type of v2v code shown, and therefore, a particular code Word coding and decoding are described for each of the following three structural rules. However, all of the aforementioned embodiments concerning the alternating solutions that are emphasized are, The codes or encoders and decoders 310 and 322 currently listed, respectively They can be combined.
[0092] Structural Rule 1: "Unary bin pipe" code or eng Coder / Decoder 310 and 322
[0093] Unnominal pipe code (PIPE = probability interval partitioning entropy) Al partitioning entropy is the so-called "bin-pipe" code, i.e., individual bits • A special version of the code suitable for encoding either Stream 12 or Stream 24, each The binary syntactic sums that each belongs to a specific probability subinterval of the aforementioned probability range [0;0.5] Transfer the volt statistics data. The structure of the bin pipe code is described first. A binpipe code is also composed of any prefix code that has at least three codewords. It can be done. To form a v2v code, prefixes are used as first and second codes. Codes are used, but they are exchanged with two codewords of a second prefix code. Except for this, it means that the bin is written without being converted into a bitstream. With this technology, only one prefix code is used, and two codewords are exchanged to erase memory. It is necessary to store it together with information that reduces costs. It is necessary to exchange codewords of different lengths. It is reasonable to do so, otherwise the bitstream is a binstream. Having the same length (a negligible effect that can occur at the end of the binstream) Please note that this is because it will happen.
[0094] Due to this structural rule, the distinguishing feature of the bin pipe code is the first and second prefixes. When codes are exchanged (the codeword mapping is preserved), the resulting v2v-code The code is identical to the original v2v code. Therefore, the code The conversion algorithm and decoding algorithm are identical in the binpipe code.
[0095] A single-line bin pipe code consists of special prefixes. These special prefixes are: It is created as follows: Firstly, the prefix code consisting of n codewords is "01", Starting with "001", "0001", ..., it is generated until a codeword is created. n is These are parameters of a single-line binpipe code. From the longest codeword, a sequence of 1s is taken. It is removed. This corresponds to a shortened unary code (but without the codeword "0"). Then n-1 unary codewords start with "10", "110", "1110", ..., and n- A codeword is generated until one codeword is created. Starting with the longest of these codewords, a sequence of 0s It is removed. The combination of these two prefix codes is the unary bin pipe code. It is used as input for generation. The two codewords exchanged consist of 0s. It consists of only one thing and only one thing.
[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] The unary-to-rice code uses a shortened unary code as the first code. That is, The unary codewords are "1", "01", "001", ... and 2 n +1 codeword is generated. The codeword is generated until a certain number of ones are removed from the longest codeword. n is unary to ric The e-code is a parameter. The second prefix code is the same as the first prefix code, as follows: It is composed of words. For the first codeword, which is composed only of 0s, the codeword "1" is assigned It is assigned. All other codewords are n-bit numbers of 0s corresponding to the first prefix code. It consists of a concatenation of the codeword "0", which has a binary representation.
[0099] Examples 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 one thing.
[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 The cards are selected by the ascending order of the 1s field number.
[0102] An efficient embodiment of the three-bin cord is described below. The encoder and decoder can be implemented without a storage table as follows: ru.
[0103] In an encoder (one of 10), the three bins are in the bin stream (i.e., 7) is read from. If these three bins contain exactly one 1, the codeword is "1". This is written to the bitstream, followed by one position (starting from the right with 00) Two bins are followed, each consisting of a binary representation of the same value. If all three bins contain exactly one zero, The codeword "111" is written to the bitstream, followed by 0 (00) from the right. Two bins consisting of a binary representation of the starting position are followed. The remaining codeword is "000". The numbers "111" and "11111" are mapped to "0" and "11111", respectively.
[0104] In a decoder (any of the 22), one bin or bit corresponds to each bit. • Read from stream 24. If it is equal to "0", the codeword "000" is read. It is decoded into stream21. If it is equal to "1", two more bins are bit • Read from stream 24. If these two bits are not equal to "11" These are interpreted as binary representations of numbers, and the position of 1 is determined by the number, with two 0s. And one 1 is decoded into a bitstream. Two bits equal "11". In this case, two more bits are read and interpreted as a binary representation of the number. If it is smaller, the two 1s and one 0 are decoded, and the number determines the position of the 0. If it is equal to 3, "111" is decoded into the binstream.
[0105] The efficient implementation of the single-unit bin pipe code is described below. Encoders and decoders for the code can be efficiently created using counters. Due to the structure of the binpipe code, the encoding and decoding of the binpipe code are practical. It is easy to do.
[0106] In any of the 10 encoders, if the first bin of the codeword is equal to "0", Until a "1" occurs, or until n zeros are read (including the first "0" of the codeword). The bin is processed until ). If "1" occurs, the read bin has an immutable bit. It is written to the stream. Otherwise (i.e., when n zeros are read), n -1 1 is written to the bitstream. The first bin of the codeword is equal to "1". In this case, until a "0" occurs, or until n-1 "1s" are read (the first " Bins are processed up to "1" (including "1"). If "0" occurs, the read bin remains unchanged. It is written to the bitstream. Otherwise (i.e., n-1 ones are read) When this happens, n zeros are written to the bitstream.
[0107] In the decoder (one of the 322s), this is the same bin pipe code as described above. Therefore, the same algorithm is used, just as it is used for encoders.
[0108] An efficient implementation from unary to rice code is described below. Encoders and decoders for the code can use counters as described below. It can be done efficiently.
[0109] In the encoder (one of 310), until 1 occurs, or 2 n The number of 0s Until loaded, bins are read from the bin stream (i.e., 7). The number of zeros is It is counted. The number that was counted is 2 n If equal to, the codeword "1" is written to the bitstream. It is written. Otherwise, "0" is written and the n bits of the counted number are written. The description of Inari continues.
[0110] In the decoder (one of the 322), one bit is read. If that is equivalent to "1" If so, 2 nThe number of zeros is decoded into a binstring. If it is equal to "0", then n More bits are read and interpreted as a binary representation of the number. This number of zeros is It is decoded into a stream, followed by "1".
[0111] TIFF0007869386000005.tif113169
[0112] TIFF0007869386000006.tif108169
[0113] TIFF0007869386000007.tif67169
[0114] TIFF0007869386000008.tif51169
[0115] TIFF0007869386000009.tif92169
[0116] Furthermore, one predetermined entropy of the encoder is sent to a predetermined entropy encoder. When converting the symbols into their respective bit streams, a predetermined envelope in the triplet For a tropy encoder, (1) if the triplet is composed of a, a predetermined entropy Is the encoder configured to write a codeword (c) to each bit stream? (2) If the triplet is indeed composed of one b, then each bit stream In contrast, a predetermined entropy encoder has codewords and suffixes with (d) as prefixes. (3) Triple If the term is indeed composed of one a, then for each bit stream, The entropy encoder has a codeword with (d) as a prefix and a first suffix The first 2-bit word sequence and the position a in the triplet which are not elements of the set (4) If the triplet is configured to write a 2-bit representation , a predetermined entropy encoder uses (d ) a codeword and suffix that is not an element of the first set of 2-bit • A sequence of words and a sequence of 2-bit words that are not elements of the second set. It is configured to check whether it is configured to write.
[0117] TIFF0007869386000010.tif108169
[0118] Each of the first subsets of the entropy encoders processes its respective bit stream. When converting to a volume, (1) if the first bit is equal to 0{0,1}, each volume The tropy encoder is such that (1.1) b≠ a and b0{0,1} follows the first bit. If it occurs in the next n-1 bits, each entropy decoder will determine each bit The next bit of the stream is equal to the first bit followed by a sequence of symbols. It is configured to reproduce up to b, or (1.2) the next n- following the first bit If no b occurs within a single bit, then each entropy decoder will be (b,...,b Regarding whether it is configured to reproduce a sequence of symbols equal to n-1 Is it configured to look at the next bit of each bitstream to make a decision? , or (2) If the first bit is equal to b, then each etropy decoder is (2 1) If a occurs in the next n-2 bits following the first bit, each ent The roopy decoder equals the next bit of each bit stream to the following first bit. It is configured to reproduce the sequence of symbols up to symbol a, or (2 1) If 'a' does not occur in the next n-2 bits following the first bit, The entropy decoder is (a,···,a) n This will reproduce the sequence of symbols that are equal to [the specified value]. The next bit of each bitstream determines whether it is configured as follows To determine whether it is configured to examine each bit, It is configured to examine the first bit of the stream.
[0119] TIFF0007869386000011.tif72169
[0120] TIFF0007869386000012.tif57169
[0121] TIFF0007869386000013.tif92169
[0122] TIFF0007869386000014.tif124169
[0123] Now, after describing the general concept of the video encoding scheme, the embodiments of the present invention will be described as follows: This will be described in relation to the above. In other words, the examples outlined below will be carried out using the above method. It is possible to do this, and vice versa, and the above encoding scheme can be used with the examples outlined below. It can be done by and using it effectively.
[0124] In the embodiments described with respect to Figures 7-9, the entropy encoders of Figures 1-6 And the decoder was done according to the PIPE concept. One special embodiment is arithmetically one The stochastic state encoders / complexers 310 and 322 were used. As will be described later, another implementation For example, components 306-310 and corresponding components 318-322 are general It can be replaced with an anthropy coding engine. For example, as will be discussed later. Given an arithmetic encoding engine, it simply manages one general state R and L. All symbols are encoded into a single common bit stream, thereby enabling parallel processing. Regarding this, we abandon the advantageous aspects of the current PIPE concept, but for partial bitstreams Avoid the need for alternating placement. In this case, the probability of the context is updated (for example, The number of probability states estimated by (filling in the checkup table) is calculated by performing the probability interval subdivision. It may be higher than the number of probability states. That is, an index is added to the table Rtab. Similar to quantizing the probability interval width value before rendering, the probability state index is quantized. Possible embodiments for one encoder / decoder 310 and 322 The above explanation is as follows, in context-adaptive binary coding / decoding, This extends to an example of the implementation of entropy encoder / decoder 318~322 / 306~310. It is possible.
[0125] More precisely, according to the example, the parameter assigner (here, context assigner) The entropy encoder attached to the output of the (which acts as an instrument) operates as follows: It is possible.
[0126] TIFF0007869386000015.tif134170
[0127] Similarly, the output of the parameter assigner (which acts as a context assigner in this case) An entropy decoder attached to a force can be operated as follows:
[0128] TIFF0007869386000016.tif167169
[0129] As described above, the assignor 4 assigns pState_current[bin] to each bin. Assign. The association is made based on context selection. That is, assignor 4 assigns Context index with its respective pState_current You can select the context using ctxIdx. Probability update This is executed at each time, and the established pState_current[bin] is the current bin Applied to . The update of the probability state pState_current[bin] is, It is executed according to the value of the encoded bit.
[0130] TIFF0007869386000017.tif26162
[0131] If one or more contexts are provided, the adaptation is done contextually, that is, Then, pState_current[ctxIdx] is used for encoding, and Then, update using the current bin values (which are either encoded or decoded). be
[0132] As will be outlined in more detail below, according to the currently described embodiment, Coders and decoders operate in different modes, namely, low complexity (LC) and high efficiency (HE). It can be optionally configured to operate in ) mode. This applies to the following PIPE coding. It is mainly illustrated (and mentions LC and HE PIPE modes), but it is complex. A detailed explanation of gender extension is provided in the implementation using a single common context-adaptive arithmetic encoder / decoder. This can be easily transferred to other embodiments of the entropy encoding / decoding engine, such as the example.
[0133] According to the examples outlined below, both entropy coding modes share the responsibility. It is possible. • Same syntax and behavior (for syntax element sequences 301 and 327, respectively) • The same binarization scheme for all syntactic elements (currently specified for CABAC) (In other words, the binarizer can operate regardless of the mode in which it is activated.) (to kill) • Use of the same PIPE code (i.e., the bin encoder / decoder is in the mode to be activated) (It can operate without any changes.) • Use of 8-bit probability model initialization values (as currently specified for CABAC) (Instead of a 16-bit initialization value)
[0134] Generally speaking, (for example, the complexity of selecting PIPE route 312 for each bin) In other words, LC-PIPE differs from HE-PIPE in terms of processing complexity.
[0135] For example, LC mode can operate under the following constraints: Each bin (binI For dx, there is indeed one probability model (i.e., one ctxIdx). Therefore, context selection / fitting cannot be provided in the LC PIPE. As will be further outlined below, such special features used for the encoding of the residual Fixed syntactic elements are coded using context. Furthermore, all probabilistic models are incompatible. It may be possible to accommodate, that is, all models (slice type and slice QP) (Depending on the selection) Initialized at the beginning of each slice with appropriate model probabilities, and throughout the processing of the slice It can be kept fixed in place across the body. For example, contextual modeling For both coding and encoding, 8 different PIPE codes corresponding to 310 / 322 Only different model probabilities can be supported. A specific syntax for encoding the residuals. The elements, namely significance_coeff_flag and coeff_ The operation of abs_level_greaterX(X=1,2) is outlined below. However, for example, if (at least) groups of four syntactic elements are encoded / reconstructed with the same probability, It can be assigned to a probabilistic model so that it can be numbered. Compared to CAVLC, LC-PIPE mode achieves substantially the same RD performance and throughput. To accomplish.
[0136] HE-PIPE is conceptually similar to H.264's CABAC, but with the following differences: It can be configured as follows: Binary arithmetic coding (BAC) is PIPE coding (L This can be replaced with (similar to the case in the C-PIPE). Each probability model, i.e., each ctxIdx can be represented by pipeIdx and refineIdx PipeIdx, having a value in the range of 0 to 7, has 8 different PIPE codes. This represents the model probability. This change is not the movement of the state machine (i.e., the probability evaluation) itself, but the state It only affects the internal representation of the state. As will be outlined in more detail below, the probabilistic model As mentioned above, the initialization can use an 8-bit initialization value. Syntax element c oeff_abs_level_greaterX(X=1,2), coeff_abs _level_minus3 and coeff_sign_flag (their operation is as follows): (This becomes clear from the considerations) Backward scanning (for example, importance map coding) (Used in this way) It can be performed along the same scanning path as a forward scan. Context for encoding ff_abs_level_greaterX (X=1,2) The Stroke derivatives can also be simplified. Compared to CABAC, the proposed HE-PI PE achieves substantially the same RD performance with better throughput.
[0137] The mode just mentioned, for example, operates in a different mode, as described above. This occurs immediately by rendering the KIST adaptive binary coding / decoding engine. It is easy to know that this is the case.
[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 manufactured as shown in Figure 11. The decoder is Inside are alternating bit strings that encode media data such as video data. It is for decoding data stream 401 such as stream 340. The decoder is Depending on data stream 401, activate either low complexity mode or high efficiency mode. This includes a mode switch 400 configured as follows. For this purpose, the data stream 401 is In the case of the low complexity mode, which is the one operating, it has a binary value of 1, and in the case of the one operating In the high-efficiency mode, the binary has a value of 0, for example, the binary syntax element It includes syntactic elements such as the following. Clearly, the relationship between binary values and encoding modes is switched. Non-binary syntactic elements that have two or more possible values can be used similarly. It is possible. The actual selection between the two modes is still before the acceptance of each syntactic element. Since it is not obvious, this syntactic element is, for example, a fixed probability evaluation or a certain Data Stream 4 is encoded using a rate model, or used directly in bypass mode. It is written to 01 and included in some of the main headers of data stream 401. It is possible.
[0139] Furthermore, each decoder in Figure 11 symbolizes the codeword of data stream 401. Multiple entropy decoders 322 configured to convert into partial sequence 321 This includes the above. As mentioned above, the deinterleaver 404 is, on the one hand, the entropy decoder 322 The Decode in Figure 11 is connected between the inputs, and on the other hand, data stream 401 is applied. It is connected to the input of the D. Furthermore, as already mentioned above, each of the entropy decoder 322 These are related to their respective probability intervals, and rather than absolute symbol values, they take MPS and LPS. In the case of the entropy decoder 322, the probability intervals of various entropy decoders are 0 or The numbers from 0 to 0.5 cover all probability intervals together. The details are as described above. Later, the PIPE index assigned to each decoder will be used. It is assumed that the number of decoders 322 is 8, but any other number is possible. In the following example, one of these encoders with pipe_id 0 is equivalent. It is optimized for bins that have a certain probability of having a certain statistical value, i.e., those bin values are high It is assumed that 1 and 0 exist with equal probability. To this extent, the decoder simply bin It can only pass the signal. Each encoder 310 operates in the same way. Based on the most likely bin values, valMPS, as determined by selectors 402 and 502. Any bin operation can be performed separately. In other words, each The entropy of this partial stream is already optimal.
[0140] Furthermore, the decoder in Figure 11 processes each symbol in the symbol sequence 326 into multiple envelopes. Selector 402 is configured to search from one of the selected tropy decoders 322 Includes. As mentioned above, selector 402 is parameter assigner 316 and selector 3 It may be separated into 18. The desymbolizer 314 obtains a sequence of syntactic elements 327. The symbol sequence 326 is configured to be desymbolized. The regenerator 404 is configured It is configured to reproduce media data 405 based on the sequence of sentence elements 327. Selector 402 is for low complexity mode and as indicated by arrow 406. Configured to perform a selection depending on which of the high-efficiency modes is in operation.
[0141] As already mentioned above, the reproducer 404 acts on certain syntax and behavior of syntactic elements. In other words, the mode switch 400 becomes a fixed indicator associated with mode selection. It may also be part of a block-based video decoder. That is, the structure of the reproducer 404 is Therefore, you won't have to worry about the possibility of switching modes. For greater accuracy, the reproducible unit 404 is The mode switching capability indicated by the code switch 400 increases overhead. It does not do that, and at least functional and predictive data remains regarding the remaining data, Regardless of the mode selected by switch 400. However, the same applies to the environment. This applies to the tropy decoder 322. All of these decoders 322 are both mo The decoder is reused in the code, and therefore the decoder in Figure 11 is suitable for both modes, low complexity and high efficiency. Despite being compatible with rate mode, it has no additional implementation overhead.
[0142] As an additional aspect, the decoder in Figure 11 is self-sufficient in one mode or other modes. It should be noted that it is not only possible to act on data streams, but also... Rather, the decoding side should respond to external or environmental conditions, such as the battery status. To control the coding complexity, and consequently to implement fixed-loop control of model selection. Using a feedback channel from the decoder to the encoder, video or some Between audio elements, between one element of media data, between both modes To enable switching, the decoder in Figure 11 is configured similarly to the data stream 401. It will be accomplished.
[0143] Thus, in the case of the selected LC mode or the selected HE mode, The decoder in Figure 11 operates similarly in all cases. The reproducer 404 is constructed Perform a reproduction using sentence elements to process or follow some syntactic structure rules. Therefore, it requests the current syntactic element of a given syntactic element type. The desymbolizer 314, In order to produce valid binarization for the syntactic elements required by the regenerator 404, multiple Requests a bin. Obviously, in the case of a binary alphabet, desymbolizer 3 The binarization performed by 14 reproduces the currently requested binary as syntactic elements. It is reduced to simply passing each bin / symbol 326 through 404.
[0144] However, each selector 402 is selected by the mode switch 400. It acts according to the mode in which it is selected. The operating mode of selector 402 is high efficiency mode. In the case of more complex modes, and in the case of lower complexity modes, the complexity tends to be less. Furthermore, The following description also describes the modes of operation of selector 402 in less complex modes, The entropy when Ta402 searches for a continuous symbol from the entropy decoder 322 This indicates a tendency to reduce the rate at which the selection in decoder 322 is changed. In other words, low In complexity mode, the same continuous symbols immediately appear in multiple entropy decoders 322. There is an increased probability of being searched from the entropy decoder. This then leads to the entropy This enables faster symbol retrieval from the P-decoder 322. In high-efficiency mode, the following The operating mode of selector 402 is determined by the selected entropy decoder 322. The probability interval associated with this is more closely related to the actual symbol currently being searched by selector 402. There is a tendency to select an entropy decoder 322 that fits the symbolic statistics at the time. This results in the generation of each data stream that follows the high-efficiency mode, A better compression ratio is obtained on the production side.
[0145] For example, the different responses of selector 402 in both modes can be understood as follows: For example, selector 402 can be set to a high-efficiency mode for a given symbol. If the D function is active, it will respond to the symbols searched before symbol sequence 326. And, when low complexity mode is activated, the previously searched sequence of symbols It is configured to perform selection among multiple entropy decoders 322 independently of the amper. This can be done. Dependence of symbol sequence 326 on previously searched symbols. This can be due to contextual adaptation and / or probabilistic adaptation. Both adaptations are The selector 402 can be switched off while in low complexity mode.
[0146] According to further embodiments, data stream 401 is a group of slices, frames, and images. It can be constructed in continuous parts such as loops, frames, and sequences, and symbols Each symbol in the sequence is associated with one of several symbol types. In this case, selector 402 is for a symbol of a given symbol type within the current section. Furthermore, when high-efficiency mode is activated, a predetermined symbol type is used within the current section. The selection is configured to change depending on the previously searched symbols in the sequence of Boll. When low complexity mode is activated, the selection remains constant within the current part. This is possible. In other words, the selector 402 makes a selection within the entropy decoder 322. It can be changed to a volt type, but these changes are a transition between continuous parts. It is limited to occurring in between. This measurement shows that coding complexity is limited to the majority of time. As it is reduced, the actual evaluation of symbolic statistics rarely occurs in time instants. It is restricted to S.
[0147] Furthermore, each symbol in the symbol sequence 326 is of multiple symbol types. In relation to one of these, selector 402 for a given symbol of a given symbol type Depending on the previously searched symbols in the symbol sequence 326, multiple contexts Select one of the options, and if high-efficiency mode is activated, according to the specified symbol Depending on the selected context and associated probabilistic model, the entropy decoder 322 When configured to perform selection and low complexity mode is activated, the symbol Select one of several cotexts based on previously searched symbols in -kens 326. Along with the selection of the context constants, the selected probability model moves away from the associated probabilistic model. Depending on the context and associated probabilistic model, a selection is made among the entropy decoders 322. It is configured to run.
[0148] Alternatively, instead of completely suppressing stochastic matching, selector 402 simply enables HE mode and Related to this, it can only reduce the update rate of the probability matching in LC mode.
[0149] Furthermore, possible LC-pipe-specific aspects, i.e., LC- The characteristics of the code can be described in other words as follows. In particular, the probability of non-adaptation The model can be used in LC mode. The non-adaptive probability model is hardcoded. That is, a certain probability overall, or either of those probabilities, of processing only slices. It can be kept fixed throughout, and in this way slice type QP, that is, for example, the signal in the data stream 401 for each slice. It can be set according to the quality parameters sent. Assigned to the same context. By assuming that a series of bins follow a fixed probability model, they are the same pi Since it is encoded using the same entropy decoder, 1 It is possible to decrypt some of those bins in one step, and each decrypted bin The probability update after this is omitted. Omitting the probability update means that the encoding and During the decoding process, the operation is saved, reducing complexity and simplifying the hardware design. This led to simplification.
[0150] A probabilistic update is allowed after a certain number of bins have been encoded / decoded using this model. In a manner that allows for the non-adaptive constraints to be accepted, all or some selected constraints apply to the probabilistic model. This can be easily done. An appropriate update interval allows for probabilistic fitting, and immediately Gain the ability to decrypt several bins.
[0151] Below are the possible general and complex measurable aspects of LC-pipe and HE-pipe. A more detailed description of the embodiments is given. In particular, in the following, the same method or complexity measurement Aspects used for LC-pipe mode and HE-pipe mode in any possible way It is stated that a method for measuring complexity is whether LC-case removes specific parts. , derived from HE-case by replacing them with something less complex This indicates that, however, before processing with it, the embodiment in Figure 11 is above It is stated that this can be easily transferred to the context-adaptive binary encoding / decoding examples described above. It should be: Selector 402 and entropy decoder 322 condense and directly Received data stream 401 and currently extracting bins from the data stream. It becomes a context-adaptive binary arithmetic decoder that selects the context. This is especially relevant for context This is true for textual and / or stochastic adaptation. Both are true during low complexity modes. The functionality / adaptability can be switched off or designed to be more mitigated.
[0152] For example, when carrying out the embodiment shown in Figure 11, a pipe including the entropy decoder 322... The entropy coding stage consists of eight systematic variable-to-variable steps. Le-codes can be used, that is, the entropy decoder 322 can use the above It can be a v2v type. Using organized v2v-code 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 possible to obtain the same result for different contexts. The rate state can be managed, and it - or its decoded version - can be used This can be done. It can be used for CABAC or stochastic model states, i.e., for stochastic updates. Rtab for probability index of PIPEids or lookups that can be used The mapping to is as shown in Table 5.
[0153] [Table 5]
[0154] This modified coding scheme provides the basis for a complexity-measurable video coding approach. It can be used as follows: When performing stochastic mode fitting, selector 402 or Each context-adaptive binary arithmetic decoder selects the PIPE decoder 322. In other words, the pipe index used is based on the probability state index. And retrieve the probability index into Rtab, using the mapping shown in Table 5 - Example For example, through context—in relation to the currently decoded symbol—here, see The book is based on a probability state index ranging from 0 to 62, for example For MPS and LPS, the transition values shown in the next probability state index are walked. Using a fixed table, this probability state index is assigned according to the symbol currently being decoded. Update.
[0155] However, any entropy coding setup can be used, and this sentence Calligraphy techniques can also be used with minor modifications.
[0156] The above explanation in Figure 11 is more typically related to syntactic elements and syntactic element types. The following describes variable complexity coding at the conversion coefficient level.
[0157] For example, the reproducible unit 404 operates independently of the high-efficiency mode or low-complexity mode in which it is operating. Based on a sequence of some of the syntactic elements, it is configured to reproduce conversion coefficient level 202. The sequence of 327 syntactic elements is arranged in a way that does not alternate, creating an importance map. Importance map showing the location of non-zero conversion coefficient levels for syntactic elements within conversion block 200. It defines the return coefficient level, and (followed by) the level syntactic element being non-zero. The following elements may be included: the last non-zero conversion coefficient within the conversion block. Terminal position syntax element indicating the level position (last_significant_pos_ x and last_significant_pos_y both define importance maps, and change Within the conversion block (200), one leads from the DC position to the position of the last non-zero conversion coefficient level. For each position along the dimensional path (274), the transformation coefficient level of each position is zero. The first syntactic element (coeff_significant_flag) indicates whether something is present or not. ; According to the syntactic element of the first binary, a one-dimensional path where a non-zero transformation coefficient level is located. For each position in (274), check whether the transformation coefficient level for that position is greater than or equal to that level. The second syntactic element (coeff_abs_greater1) indicates that, and the first b According to the syntactic elements of Inari, each part of the one-dimensional path where a higher transformation coefficient level is located For each position, the number of conversion coefficient levels that exceeds that value. The third syntactic element that reveals this (coeff_abs_greater2, coeff_ abs_minus3).
[0158] The order between end-position syntactic elements, the first, second and third syntactic elements are in high-efficiency mode and Common to low complexity modes, selector 402 indicates the low complexity mode or high efficiency mode that is currently in operation. Depending on the mode, the desymbolizer 314 is an end-position syntactic element, a first syntactic element, Entropy decoding for symbols to obtain the second and / or third syntactic element. It can be configured to perform a selection within the container 322.
[0159] In particular, when the low complexity mode is activated, through the continuous sub-parts of the sub-sequence To ensure that the selection is constant, selector 402 is determined by the desymbolizer 314 as the first syntactic element. and a symbol of a given symbol type in a subsequence of symbols that obtains a second syntactic element Therefore, for each symbol of a given symbol type, a given subsequence of symbols Select one of several contexts based on previously searched symbols of the 'mbol' type. When high-efficiency mode is activated, the probabilistic model associated with the selected context is used. It is configured to perform selections accordingly and to perform selections in a partially fixed manner. As described above, The subparts are measured along the one-dimensional path 274, and each subpart expands to the extent that it expands. In terms of the number of positions, or each of the numbers already encoded by the current context It can be measured in terms of the number of syntactic elements in a type. That is, for example, the syntax of a binary Text elements coeff_significant_flag, coeff_abs_grea ter1 and coeff_abs_greater2 are selected in HE mode. Adaptive coding in selecting decoder 322 based on a text probabilistic model. This is the context. Probabilistic fitting is used similarly. In LC mode, the binary structure Text elements coeff_significant_flag, coeff_abs_grea Different There is also context. However, for each of these syntactic elements, the context is , simply changing the context in the transition to the next, immediately following section along route 274. The first part along route 274 concerning this matter will remain unchanged. However, each part, regardless of whether there is a corresponding syntax for its respective position, The length is determined by the 4, 8, and 16 positions of the lock 200. For example, coeff_abs_ greater1 and coeff_abs_greater2 are important positions, that is, It only exists for the position where coeff_significant_flag=1 Therefore, for each of the resulting parts, the block position Furthermore, regardless of whether it is an extension exceeding the number of elements, the length of 4, 8, and 16 syntactic elements It is defined. For example, coeff_abs_greater1 and coeff_ab s_greater2 exists only because it is an important position, and thus, four Each part of the syntactic element is of this kind because the level of each part at this position is zero. The syntactic elements are coeff_abs_greater1 and coeff_abs_grea The intermediate positions along route 274 where ter2 is not present and such syntax is not sent. Therefore, the position can be extended by more than 4 blocks.
[0160] Selector 402 is a synth that the desymbolizer obtains the first syntactic element and the second syntactic element. For a given symbol of a given symbol type between subsequences of Boll, a given symbol For each symbol of a type, within the symbol subsequence, the preceding of a given symbol type It is configured to select one of several contexts depending on the multiple symbols found in the search. Therefore, it has a predetermined symbol value and belongs to the same subpart, or the same subpart Multiple previously searched symbols of a given symbol type within a sequence of symbols belonging to It is Bor. The first variation is what can be said about coeff_abs_greater1. The second modification is to use coeff_abs_greater2 according to the specific embodiment described above. That is true.
[0161] Furthermore, the third syntactic element to be examined is, according to the first syntactic element, a larger transformer. For each position in a one-dimensional path where several levels are located, each position The conversion coefficient level is a syntactic element where the amount exceeding it is an integer value, i.e., coeff_abs_m Including inus3, the desymbolizer 314 sets the range of integer-value syntactic elements to symbol sequence Mapping controlled by control parameters that map the domain of the word. The previous third syntax requirement when configured to use the function and high efficiency mode is activated A control parameter is set for each integer-value syntax element according to its raw integer-value syntax element, resulting in a low-complexity model. When the code is active, the setting remains constant across successive sub-sequences of the sub-sequence. The selector 402 is configured to perform settings in a segmented and consistent manner, and is highly efficient. In both the modal and low-complexity modes, the same probability distribution and associated integer-valued syntax elements Entropy decoder for symbols of symbol sequence words mapped to (322) is configured to select one of the predetermined ones. That is, even the desymbolizer The dotted line 407 indicates that it is operating according to the mode selected by switch 400. Instead of setting control parameters in a fixed, segmental manner, the desymbolizer 314, for example, Keep the control parameters constant while they remain constant throughout the current slice or over time. keep.
[0162] Next, context modeling that allows for complexity measurement is described.
[0163] For example, for motion vector difference syntax elements, the derivation of context model index The evaluation of the same syntactic element above and to the left of it is the general method, and in the HE case... It is often used. However, this evaluation requires more buffer memory and structure Direct encoding of sentence elements is not possible. Furthermore, achieving higher encoding performance is not feasible. To accomplish the goal, more readily available neighbors can be valued.
[0164] In a preferred embodiment, adjacent square or rectangular blocks or prediction units All context modeling stages that evaluate syntactic elements are one context The default model is determined. This disables the adaptation of the context model selection stage. This is equivalent to the bin index of the bin string after binarization. The context model selection based on the situation has been modified compared to the current design for CABAC. In another preferred embodiment, a fixed context model for syntactic elements is In addition to adopting neighboring evaluations, context models for different bin indices It is fixed. The explanation relates to the coding of transformation coefficient levels, motion vector difference and syntactic elements. Please note that this does not include binarization or context model selection.
[0165] In a preferred embodiment, only the evaluation of the leftmost adjacent element is acceptable. The last block or symbol... Since the numbering unit line no longer needs to be stored, this reduces the processing chain. It connects to a buffer. In another preferred embodiment, only adjacent devices that are present in the same encoding device , it will be appreciated.
[0166] In a preferred embodiment, all available neighbors are evaluated. For example, the upper and In addition to the area to the left, the area to the upper left, upper right, and lower left are also evaluated if effective.
[0167] In other words, the selector 402 in Figure 11 is associated with a predetermined block of media data. For a given symbol, select one of several contexts and select the selected context The entropy decoder 322 performs a selection based on the text and the associated probabilistic model. Therefore, when high-efficiency mode is activated, different adjacent blocks of media data Use previously searched symbols in the symbol sequence for higher numbers. It can be configured such that adjacent blocks are in the temporal and / or spatial domain. They can be located close together. Spatially adjacent blocks are, for example, in Figures 1-3. You can see it. Then, as just stated, selector 402 is this Compared to LC mode, which reduces memory overhead, HE mode has This is based on previously searched symbols or syntactic elements for a higher number of adjacent blocks. In order to perform contact matching, the mode switch 400 responds to mode selection. stomach.
[0168] Next, a complex coding method with reduced motion vector difference, according to an embodiment, is described.
[0169] Developments related to macroblocks in the H.264 / AVC video codec standard. The vector represents the difference between the motion vector of the current macroblock and the intermediate motion vector predictor. It is transmitted by sending the signal i (motion vector difference -mvd). CABAC is When used as a tropy encoder, mvd is encoded as follows: an integer value m vd is divided into an absolute part and a sign part. The absolute part is called a prefix and a suffix. It is then binarized using a combination of the contracted unary cubic Exp-Golomb. The bin associated with p-Golomb is in bypass mode, i.e., 0.5 in CABAC. Encoded by fixed probability, the bins related to the binarization of the shortened unary are contextual. Encoded using the model. Unary binarization works as follows: absolute in of mvd If the terger value is n, the resulting bin string will be n "1"s and one It consists of "0"s that follow. For example, if n=4, the bin string is "11110". This is the result. In the case of an omitted unary, a restriction exists, and if the value exceeds this restriction, the bin string It consists of n+1 instances of "1". In the case of mvd, the restriction is equal to 9. That is, it is equal to 9. For absolute mvd values greater than or equal to this, the result will be 9 "1"s, and the bin string will be Ex It consists of prefixes and suffixes that have p-Golomb binarization. The context modeling is as follows: For the first bin of the bin string, If available (if not available, the value is assumed to be 0), the adjacent macros at the top and left. The absolute MVD value from the block is required. The sum of a specific component (horizontal or vertical). If the value 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 (the absolute sum is greater than 3). The first context model (small) is selected. Furthermore, the context model is selected for each It varies depending on the component. For the second bin of the bin string, the fourth context model is used. Then, the fifth context model is used for the remaining bins of the unary part. Absolute m If vd is equal to or greater than 9, for example, all bins of the omitted unary part are " The difference between the absolute mvd value and 9 is equal to 1 and has a third-order Exp-Golomb binarization. Encoded in pass mode. In the final stage, the MVD code is in bypass mode. It will be coded.
[0170] The latest coding techniques when using CABAC as the entropy encoder are high Current status of the Efficiency Video Coding (HEVC) project Defined in the Test Model (HM). In HEVC, block size is flexible. The shape that is abnormal and identified by the motion vector is called the predictive unit (PU). The PU sizes at the top and left may have different shapes and sizes than the current PU. Yes, it is possible. Therefore, whenever relevant, the definitions of the top and left neighbors are the current PU. Currently referred to as the top and leftmost of the upper left corner. For encoding itself, the first bin Only the induction method can vary according to the embodiment. Evaluate the absolute sum of MV from the neighboring values. Instead of being valued, each neighbor can be evaluated separately. The absolute MV of the neighbor can be used. If it is greater than 16, the context model index increases, and as a result the first This will be the same number as the context models for the bins, while the remaining absolute MVD levels... The encoding of the code will be exactly the same as H.264 / AVC.
[0171] In the above outlined techniques for MVD encoding, bins 9 and below are context The model must be encoded, while the remaining values of the mvd are low along with the coding information. It can be encoded in complexity bypass mode. This current embodiment is context This document describes techniques to reduce the number of bins encoded in the model, and as a result, bypass The number increases, reducing the number of context models required for MVD encoding. Therefore, the cutoff value decreases from 9 to 1 or 2. In other words, when absolute mvd is greater than zero... Is only the first bin, which is identified as either active or not, encoded using the context model? , or the first and second bins which specify whether the absolute mvd is greater than zero And that is encoded using the context model, while the remaining values are bypassed. Encoded using the code and / or VLC code. Unary or abbreviated unary code Without using VLC, all bins obtained by binarizing using VLC code are low complexity binarization. Encoded using S-mode. In the case of PIPE, the bitstream is... Furthermore, direct insertion from the bitstream is possible. In addition, if there is a first Different settings at the top or left to elicit better contextual model selection for bins. The word "righteousness" can be used.
[0172] In a preferred embodiment, the Exp-Golomb code is the remainder of the absolute MVD component. It is used to binarize the fraction. For this purpose, the order of the Exp-Golomb codes is variable. The target is... The order of the Exp-Golomb code is derived as follows: The first bin A context model for that, and therefore the index of that context model is retrieved. After being extracted and encoded, the index finds the Exp-Golomb binarization part. It is used as an instruction. In this preferred embodiment, the context for the first bin The model is in the range of 1-3, and as a result it is used as an instruction in the Exp-Golomb code. This results in indices 0-2 being used. This preferred embodiment is used for the HE case. It can be broken.
[0173] The above outlined technique uses two sets of five contexts for absolute MVD encoding. In the modified example, 14 contexts are used to encode 9 unary code binarization bins. The model (7 for each component) can be used similarly. For example, the unative part The first and second bins can be encoded in the four different contexts described above. In both cases, the fifth context can be used for the third bin, and the sixth context The st can be used for the 4th bottle, and bottles 5 through 9 are used for the 7th context. It is encoded using . Thus, in this case, a total of 14 contexts are required. Therefore, only the remaining values can be encoded in low-complexity bypass mode. This increases the number of context models, reducing the number of context models required for MVD coding. Techniques to reduce the number of bins encoded in the resulting context model include, for example, reducing the number from 9 to 1 Alternatively, reduce the cutoff value, such as 2. This is only if the absolute MVD is greater than zero. Only the first bin that identifies whether or not is encoded using the context model, The first and second bins determine whether the absolute MVD is greater than zero, and it Each is encoded using its respective context model, while the remaining values are encoded using VLC code. This indicates that it is encoded by the code. All obtained from binarization using VLC code The bins are encoded using low complexity bypass mode. In the case of PIPE, the bins Direct insertion into and from bitstreams is possible. The examples shown lead to a better contextual model selection for the first bin. Therefore, use the other definitions next to the top and left. In addition to this, the first, or first Furthermore, the number of context models required for the second bin decreases, leading to further memory reduction. Context modeling is modified to some extent. Also, neighbors like the one above Evaluation can be disabled, and a line buffer / memo is needed for accumulating adjacent MVD values. This results in a reduction in the amount of ri used. Finally, the encoding order of the components is such that the encoding of the bypass bin follows. Both components (i.e., the bins encoded in the context model) can be encoded with prefix bins. It can be divided in a way that makes it functional.
[0174] In a preferred embodiment, the Exp-Golomb code is the remainder of the absolute mvd component. It is used to binarize the fraction. For that purpose, the order of the Exp-Golomb codes is It is variable. The order of the Exp-Golomb codes can be derived as follows: Yes, it is possible. A context model for the first bin, and therefore that context model After the index is extracted, the index seeks Exp-Golomb binarization. It is used as an instruction. In this preferred embodiment, the context for the first bin The model ranges from 1 to 3, and is used as an instruction in the Exp-Golomb code. The result is ndex0~2. This preferred embodiment is used for the HE case. This can be done, and the number of context models is reduced to 6. Also, the number of context models To reduce and thereby save memory, the horizontal and vertical components are further preferred. The same context model can be shared in the examples. In that case, the three contexts Only a model is required. Furthermore, only the left neighbor is a further preferred embodiment of the present invention. This can be considered for evaluation of the embodiment. In this preferred embodiment, the threshold is changed. It is not necessary (for example, only one threshold 16 is used for the Exp-Golomb parameter 0) This results in 1, and one threshold 32 draws the Exp-Golomb parameter 0 or 2. (Output). This preferred embodiment saves the line buffer required for MVD storage. As another preferred example, the thresholds are modified to be equal to 2 and 16. For the example, a total of three context models were required for MVD encoding. Possible Exp-Golomb parameters range from 0 to 2. In another preferred example, The thresholds are equal to 16 and 32. Furthermore, the described embodiments are suitable for HE cases. It 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 defined using a context model. Encoded. Context model selection for the first bin is in the preferred embodiment described above. It may be carried out in the highest standards or modified manner as described. For bin 2, a different context model like the highest level of technology is selected. In a preferred embodiment, the context model for the second bin evaluates the mvd of the left neighbor. It is selected by doing so. In that case, the context model index is The same applies to the first bin, while the available context models are the first This is different from the one for the bin. In total, six context models are needed ( Note the components that share the text model. Also, the Exp-Golomb parameter. This can depend on the selected context model index of the first bin. In other preferred embodiments of the present invention, the Exp-Golomb parameter is the second bit The context model index of the present invention is It can be used for HE cases.
[0176] In a further preferred embodiment of the present invention, the context model for both bins is fixed. It is not determined and derived by evaluating the adjacent element to the left or above. For a preferred embodiment, the total number of context models is equal to 2. Further preferred embodiments of the present invention In a typical example, the first bin and the second bin share the same context model. As a result, only one context model is required for MVD encoding. In both preferred embodiments of the present invention, the Exp-Golomb parameter is fixed. , equal to 1. The preferred embodiments described in the present invention are suitable for both HE and LC configurations. It is.
[0177] As another preferred example, the order of the Exp-Golomb parts is such that each of the first bins It originates from the context model index. In this case, it is the normal H.264 / AVC. The absolute sum of the context models derives the instruction to find the Exp-Golomb part. It is used for this purpose. This preferred embodiment can be used for HE cases.
[0178] In another preferred embodiment, the order of the Exp-Golomb codes is fixed and set to 0. As another preferred example, the order of the Exp-Golomb codes is fixed and set to 1. In a preferred embodiment, the order of the Exp-Golomb codes is fixed at 2. In further embodiments, the order of the Exp-Golomb codes is fixed at 3. In this example, the order of the Exp-Golomb code is determined by the current shape and size of the PU. It is fixed according to the dimensions. The preferred embodiment shown is used for the LC case. This is possible. The fixed order of the Exp-Golomb part is encoded in the context model. Please note that the reduction in the number of bottles being treated will be taken into consideration.
[0179] In a preferred embodiment, the adjacent is defined as follows: For the above PU, currently All pickups covering the PU range are considered, and the pickup with the highest MV is used. This is also done for the one on the left. All pickups covering the current pickups have been evaluated, and Therefore, the PU with the largest MV is used. Another preferred example is the top of the current PU and The average absolute motion vector value from all PUs covering the left boundary is the first bin It is used to extract [something].
[0180] For the preferred embodiment shown, the encoding order can be changed as follows: The MVD must be specified for horizontal and vertical directions, one after the other (or vice versa). No. Thus, the two bin strings must be encoded. Entropy code Mode switching for the engine (i.e., switching between bypass and normal modes) In the first stage, following the context model encoded bins for both components In the second stage, it is possible to encode the bins encoded in bypass mode. Please note that this is simply a rearrangement.
[0181] The bins obtained from binarizing a unary or abbreviated unary are those whose values are greater than the current bin index. For each bin index that identifies whether something is present or not, there is a binary equivalent to a fixed length flag. Note that it can also be expressed by transformation. For example, the unary form of mvd The cutoff values for binarization are the codewords 0, 10, and 11 for values 0, 1, and 2. This is set to 2. The corresponding fixed-length 2 has one flag for each bin index. In valuation, one flag for bin index 0 (i.e., the first bin) is: Identify whether the absolute MVD value is greater than 0, and determine the second bin with bin index 1. One flag for this is to determine whether the absolute mvd value is greater than 1. When the second flag is encoded only when the value of 'g' is equal to 1, this is the same codeword 0. The results are 10 and 11.
[0182] Next, according to the examples, a measurable representation of the complexity of the internal state of a probabilistic model is described. ru.
[0183] In the HE-PIPE setup, the internal state of the probabilistic model is the bin that has it. It is updated after encoding. The updated state is the old state and the encoded state. The values of the bins are retrieved by the state transitions of the table search. In the case of CABAC. The probability model has 63 different states corresponding to the model probability at intervals (0.0, 0.5). It can take on different states. Each of these states is used to realize two model probabilities. In addition to the probabilities assigned to a state, a probability of 1 minus is also used, called valMps. The flags stored contain information about whether a probability or a negative probability is used. This results in a total of 126 states. Such a probabilistic model with the PIPE coding concept To use it, each of the 126 states must be mapped to one of the available PIPE coding devices. It requires being pinged. In the current implementation of the PIPE encoder, this is referenced. This is done using tables. Examples of such mapping are shown in Table 5.
[0184] Below, we will explain how the internal state of a probabilistic model is converted into a PIPE index. To avoid using a reference table for conversion, it may be shown that this can be done. Examples are described. Simply some simple bit-masking operations are used in probabilistic models. This is necessary to obtain the PIPE index from the internal state variables of the probabilistic model. This novel measurable representation of the complexity of a state is designed in two ways: low complexity For applications where operation is essential, only the first level is used. Pipe index and f used to encode or decode the associated bins Only the valMps value is listed. In the case of the PIPE entropy coding scheme listed... In summary, the first level can be used to distinguish between eight different model probabilities. As shown, the first level uses 3 bits for pipeIdx and the valMps flag. One more bit is needed for this. The second level is a coarse probability range compared to the first level. Each of these has been improved to several smaller intervals to support the presentation of probabilities with higher resolution. This more detailed presentation allows for more accurate operation of the probability estimator. In general, This is suitable for encoding applications that aim for high RD performance. For example, this complexity criterion for the internal state of a stochastic model with a PIPE usage Examples of expressions are given below.
[0185] [Table 6]
[0186] The first and second levels are stored in a single 8-bit memory. 4 bits are for the first level. Level - An index that determines the PIPE index that has the MPS value on the most important bit. It is necessary to store the xx, and another 4 bits are used to store the second level. To satisfy the response of the CABAC probability estimator, each PIPE index is, A certain number of CABAC states are mapped to the PIPE index. It has an allowed improved index. For example, for the mapping in Table 5, PIP The number of CABAC states for each E index is shown in Table 7.
[0187] [Table 7]
[0188] During the bin encoding or decoding process, the PIPE index and valMps are Direct access by using simple bit mask or bit shift operations. It can be done. Low-complexity coding processes require 4 bits at the first level alone. In addition, the highly efficient coding process enables the updating of the CABAC probability estimator's probability model. A second level of 4 bits can be used to perform this operation. This update is implemented. To achieve this, it follows the same transitions as the original table, but with two measurable levels of state complexity. A state transition reference table that uses representations can be designed. The original state transition table is It consists of 2 × 6³ components. For each input state, it includes two output states. Complexity meter When using measurable representations, the size of the state transition table is an acceptable increase in the table size. This does not exceed the 2 × 128 components. How many bits represent the improved index in this increase? It is used for this purpose, and to accurately emulate the response of the CABAC probability estimator. Depending on how it is used, 4 bits are required. However, pipe index The CABAC states have been reduced to a reduced set, with only 8 states allowed per set. Different probability estimators can be used to enable operation. Memory consumption is reduced by adapting the number of bits used to represent the improved index. This allows it to match a given complexity level of the encoding process. (Probability 64) Compared to the internal state of the model probability having a CABAC in which the state index exists, The use of table searches to map probabilities to specific PIPE codes is avoided, and further transformations are not performed. It is not needed.
[0189] Next, the complexity measurable context model, which has been updated according to the examples, It is stated.
[0190] To update the context model, its stochastic state index is one or more It can be updated based on the previously encoded bin above. HE-PIP In the E setup, this update is performed after encoding or decoding each bin. Conversely, this update is never performed in the LC-PIPE setup. It won't happen.
[0191] However, updating the context model in a way that allows for complexity measurement It is possible. That is, the decision of whether or not to update the context model is , based on various aspects. For example, the encoding setup is, for example, the syntactic element coef A specific context like the context model of f_significant_flag I can't update just for the model, and it's always in the context of all other things It is possible to update the model.
[0192] In other words, the number of a given symbol type is lower in the low-complexity mode compared to the high-efficiency mode. To lower the value, the selector 402 selects each of the number of symbols of a given symbol type. For the purposes of the mission, according to the respective probability model associated with each predetermined symbol The entropy decoder 322 is configured to perform the washing process.
[0193] Furthermore, the criteria for controlling whether or not to update the context model are, for example, For example, the size of the bitstream packet, the number of bins decrypted so far, etc. And, or, the update is a specific fixation of bins for the context model or This is performed only after encoding a variable number.
[0194] Regarding this scheme for deciding whether or not to update the context model, A context model with measurable complexity can be implemented. Allows increasing or decreasing the number of bins in the bitstream where the model update is performed. The more context model updates there are, the better the encoding efficiency becomes. The complexity of the calculations increases. In this way, the complexity of the context model is improved. Updates can be provided by the methods described.
[0195] In a preferred embodiment, the context model update involves the syntactic element coeff _significant_flag, coeff_abs_greater1 and c This is done for all syntactic element bins except oeff_abs_greater2. .
[0196] In another preferred embodiment, the context model update is performed on the syntactic element coeff _significant_flag, coeff_abs_greater1 and c This is done only for the oeff_abs_greater2 bin.
[0197] In another preferred embodiment, when the encoding or decoding of a slice begins, the context The update of the context model is performed for all context models. After a certain predetermined number of transformation blocks, until the end of the slice is reached, the context Updating the context model is unavailable for all context models.
[0198] For example, selector 402 selects a predetermined symbol type for a predetermined symbol type The selection of symbols for the program is performed along with the update of the sequence of symbols. The length of the learning phase is shorter in the low-complexity mode compared to the high-efficiency mode. , along with or without updates to the related probability model, a given syn A selection is made within the entropy decoder 322 according to the probabilistic model associated with the Vol type. It is configured to do so.
[0199] Further preferred embodiments are the same as the preferred embodiments described above, but one table is all Stores the "first part" of the context model (valMps and pipeIdx). And, to store the "second part" (refineIdx) of all context models It uses, to some extent, a measurable representation of the complexity of the internal state of the context model. In this context, the context models being updated are all context models. Unusable for (as described in the previous preferred embodiment) and “second part” The table that stores this data is no longer needed and can be discarded.
[0200] Next, the context mode is being updated for the bin sequence according to the example. The text contains a note.
[0201] In the LC-PIPE configuration, type coeff_significant_flag coeff_abs_greater1 and coeff_abs_greater2 The syntactic elements of the bin are categorized into subsets. Each subset has a single context. The model is used to encode that bin. In this case, the context model The update is performed after encoding a fixed number of bins in this sequence. This is as follows: Next, we will show the multi-bin update. However, this update is the last mark This differs from updates using only the numbered bin and the internal state of the context model. For example, one context model update step for each encoded bin. This will be executed.
[0202] The following examples illustrate how to encode a typical subset consisting of eight bins. The letter "b" means bin decoding, and the letter "u" means context model update. This means... In the case of LC-PIPE, only bin decoding is contextual. This will be done without a Dell update.
[0203] bbbbbbbb
[0204] In the case of HE-PIPE, after decoding each bin, the context model is updated. The event will take place.
[0205] bububububububu
[0206] To reduce complexity somewhat, updating the context model is necessary for the bins. This can be done after the bins (in this example, after each of the four bins, these four The bin will be updated.
[0207] bbbbuuuubbbbuuuu
[0208] In other words, the selector 402 selects a predetermined symbol for a predetermined symbol type. The selection of symbols for the volt type is performed with the update, and the frequency is highly efficient. The relevant stochastic models are such that they are lower in the low-complexity mode compared to the rate mode. With or without the update, the symbols associated with a given symbol type It is configured to perform selections within the entropy decoder 322 according to the probabilistic model. .
[0209] In this case, after decrypting the four bins, there are four update steps, just The process continues based on the four decrypted bins. These four update steps are special. Note that this can be done in a single step using a lookup table. I want to do this for each possible combination of the four bins and each possible internal state of the context model. This reference table shows the new results obtained after four conventional update steps. Store the current state.
[0210] In certain modes, multibin updates affect the syntax element coeff_sign Used for ificant_flag. For all other syntactic elements, Text model updates are not used. Multi-bin update step The number of bins to be encoded beforehand is set to n. The number of bins in the set is divisible by n. When none exist, 1 to n-1 bins are subsetted after the last multibin update. It remains at the end of the bottle. For each of these bottles, the update of the conventional one bottle is This is done after encoding all of these bins. The number n is any positive number greater than 1. It's fine. The multibin update is coeff_significant_fla g, coeff_abs_greater1 and coeff_abs_greater Any combination of 2 (instead of just coeff_significant_flag) Except for the purpose of performing the action, another mode may be the same as the previous mode. As such, this mode is more complex than the others. All other syntactic elements (multibin Where the update is not used, it is split into two separate subsets, where the subset For one of them, an update of one bin is used, and for the other subset, Text model updates are not used. Any other possible subset is valid. (including empty subsets).
[0211] In another embodiment, the multibin update is performed before the multibin update. It can be based on only the last m powder bottle that is encoded. m is less than n. It may also be a natural number. Therefore, decoding can be done as follows:
[0212] bbbbuubbbbuubbbbuubbbb Here, n=4 and m=2.
[0213] In other words, the selector 402 is a highly efficient motor for symbols of a predetermined symbol type. In a lower complexity mode, the n / m ratio is higher than when compared to a certain symbol The most recent symbol m of Le Type is the related probability model for all n symbols Along with the update, according to the probability model associated with a given symbol type, The ropy decoder 322 is configured to perform selections.
[0214] In another preferred embodiment, the syntactic element coeff_significant_flag Therefore, for the HE-PIPE configuration, use the local template as described above. The text modeling scheme assigns context models to bins of syntactic elements. It is used. However, for these bins, the context model update It is not used.
[0215] Furthermore, the selector 402 is used for symbols of a given symbol type, in context. The number of 't's and / or the number of previously searched symbols is lower in complexity compared to high-efficiency mode. In sexual mode, many previously searched symbols in the symbol sequence It is configured to select one of many contexts depending on the volt, and the selected context The entropy decoder 322 performs selections according to the probability model associated with the strike. It is composed of the following.
[0216] Probability model initialization using 8-bit initialization values
[0217] This section is like the case of the highest standard video encoding standard H.265 / AVC. Multiple probability models that use so-called 8-bit initialization values instead of two 8-bit values This shows the initialization process of the internal state, which is measurable for noise. It consists of two parts that are equivalent to the pairs of initialization values used in the CABAC probabilistic model. The two parts represent the two parameters of the linear equation used to compute the initial state of the stochastic model. QP represents a specific probability (for example, in the form of a PIPE index).
[0218] • The first part shows the slope, which is the quantization parameter used during encoding or decoding. We utilize the dependency on the internal state for the data (QP). The second part determines the PIPE index with a predetermined QP, similar to valMps.
[0219] The two different modes are used to initialize the probabilistic model using predetermined initialization values. It is possible. The first mode shows QP-independent initialization. It is for all QPs The PIPE index and valMps are defined in the second part of the initialization value. It is simply used. This is equivalent to the case where the slope is equal to 0. The second mode is QP It shows dependency initialization, and furthermore, it changes the PIPE index and improves the index The slope of the first part of the initialization value is used to determine the two parts of the 8-bit initialization value. The minutes are exemplified as follows:
[0220] [Table 8]
[0221] It consists of two 4-bit parts. The first part is 16 different values that are stored in an array. Includes an index indicating one of the given slopes. The given slopes are seven negative slopes (slope). (Indices 0-6), slope equal to zero (slope index 7), and 8 positive slopes It consists of one slope from the (slope index 8-15). The slopes are shown in Table 9.
[0222] [Table 9]
[0223] All values are estimated with 256 factors to avoid the use of floating-point arithmetic. The second part is the probability of the rise of valMps=1 between the probability intervals p=0 and p=1. This is the PIPE index that is materialized. In other words, the PIPE encoder n is the PIPE code It operates with a higher model probability than unit n-1. One PIP for any probabilistic model. The probability index E is available, and it is p for the probability interval QP=26. valMPs=1 probability Check the PIPE encoder that includes this.
[0224] [Table 10]
[0225] The initialization values for QP and the 8 bits are of the form y = m * (QP - QPref) + 256 * b. The initialization of the internal state of the probabilistic model can be calculated by computing a simple linear equation. This requires m to be expressed using a slope index (the first part of the 8-bit initialization value). The slope is determined from 9, and b is QPref=26 (the second part of the 8-bit initialization value: Please note that "PIPE probability index" refers to the PIPE encoder. If y is greater than 2047, then valMPS is 1 and pipeIdx is (y-20 48) is equal to >>8. Otherwise, valMPS is 0 and pipeIdx is (2 047-y) is equal to >>8. If valMPS is equal to 1, the improved index is (( (y - 2048) & 255) * numStates) is equal to >> 8. Otherwise, A good index is equivalent to (((2047―y)&255)*numStates)>>8 In either case, numStates is as shown in Table 7, pi It is equal to the number of CABAC states in peIdx.
[0226] The above scheme is used not only in combination with the PIPE encoder, but also with the above CA It is also used in relation to the BAC scheme. Without PIPE, it is in a CABAC state, i.e., During that time, the state transition for the probability update is PIPE Idx (i.e., pState_c (pStat) is executed for each of the most important bits of urrent[bin]. The number of probabilistic states in e_current[bin] is, in fact, the CABAC state according to QP. It is just a set of parameters that implement the piecewise linear interpolation method. Furthermore, the parameter num If States uses the same value for all PIPE Idx, then this division The linear interpolation method may be effectively ineffective. For example, for 8 for all cases The numStates setting has a total of 16*8 aspects and indices, and valMPS is equal to 1, ((y-2048)&255)>>5 or valMPS is equal to 0, We obtain the improved index calculation that simplifies to ((2047―y)&255)>>5. In this case, the representation using valMPS, PIPE idx, and improved idx is the original H. Mapping to the representation used by the original CABAC of 264 / AVC is It is very simple. The CABAC state is (PIPE Idx<<3)+refinem It is given as ent Idx. This aspect is described further below with respect to Figure 16. .
[0227] Unless the slope of the 8-bit initialization value is equal to zero, or QP is not equal to 26 As far as is concerned, it is done by using a linear equation with QP in the encoding or decoding process. It is necessary to calculate the internal state. It is equal to zero or the QP of the current encoding method is For a slope equal to 26, the second part of the 8-bit initialization value is the probability model. It can be used directly to initialize the internal state. Otherwise, as a result The fractional part of the resulting internal state is interpolated linearly between it and the limits of a particular PIPE encoder for high efficiency coding. This can be further used to determine an improvement index for the application. In this preferred embodiment, the first-order interpolation is simply a modification available to the current PIPE encoder. Multiply the fractional part containing the total number of good indexes by the result and convert the result to the closest integer improved index. It is executed by mapping.
[0228] The process of initializing the internal state of the probabilistic model is related to the number of PIPE probability index states. This can be changed. In particular, PIPE symbols using modes that have an equal chance of being used. Two different PIPs that distinguish between unit E1, i.e., MPS, as either 1 or 0. The double occurrence of using the E index can be avoided as follows. This process can be triggered during the beginning of parsing sliced data, and this process The input to the process is, for example, bits for any context model to be initialized. As shown in Table 11, the 8-bit initialization value is transmitted within the range of the stream. It is possible.
[0229] [Table 11]
[0230] The first four bits determine the slope index and mask bits b4-b7. It is searched by. For every slope index, the slope (m) is specified and shown in Table 12. ru.
[0231] [Table 12]
[0232] Bits b0-b3, the last 4 bits of the 8-bit initialization value, check probIdx. The given QP.probIdx0 indicates the highest probability for a symbol with a value of 0, and Each of these probIdx 14 represents the highest probability for a symbol with a value of 1. Table 13 is The corresponding pipe encoder and its valMps are shown for each probIdx.
[0233] [Table 13]
[0234] For both values, the calculation of the internal state is a linear equation such as y = m*x + 256*b This can be done using m, where m represents the slope, x represents the QP of the current slice, and b It originates from probIdx as shown in the following explanation. All values in this process are floating. To avoid using dynamic point arithmetic, it is estimated by 256 factors. This process The output (y) represents the internal state of the probabilistic model in the current QP, using 8-bit memory. It is stored in . As shown in G, the internal state is valMPs, pipeIdx and It consists of refineIdx.
[0235] [Table 14]
[0236] The transfer of refineIdx and pipeIdx is based on the CABAC stochastic model (pSta It is similar to the internal state of teCtx) and is shown in H.
[0237] [Table 15]
[0238] In a preferred embodiment, probIdx is defined in QP26. Initial 8-bit Based on the values, the internal state of the probabilistic model (valMps, pipeIdx and refi neIdx) is processed as described in the following pseudocode.
[0239] TIFF0007869386000029.tif123146
[0240] As shown in the pseudocode, refineIdx is linearly between the intervals of pipeIdx. It is calculated by inserting and quantizing the result to the corresponding refineIdx. The `fullCt` function identifies the total number of `refineIdx` for each `pipeIdx`. The interval [7, 8) of xState / 256 is split in half. The interval [7, 7.5) is p ipeIdx=0 and valMps=0 are mapped, and the interval [7.5, 8) is pi It is mapped to peIdx=0 and valMps=1. Figure 16 shows the internal state. This shows how to output and mapping fullCtxState / 256 to pStateCtx. Display the message.
[0241] Note that the slope depends on probIdx and QP. 8-bit initialization value If slopeIdx is equal to 7, then all internal states that result from the probabilistic model are This is common to slice QPs - therefore, the internal state initialization process is slice It is independent of the current QP in Isu.
[0242] In other words, selector 402 indexes to a table common to both modes LC and HC. Using this syntactic element as a constructor, the conversion coefficient level contained within it, this part Using a syntactic element that indicates the quantization step size QP used to quantize the data, Decode the entire stream or the next portion of the data stream, such as the next slice. Initialize the pipe index used for this purpose. A table like Table 10 shows each symbol Type, pipe index for each reference QPref, or each symbol type Includes other data for the type. Depending on the actual QP of the current part, the selector is actually Using the respective table items a, which are indexed by the QP and the QP itself, The pipe index value can be calculated by multiplying a by (QP - QPref). Yes, it is. The only difference between LC and HE modes is that the selector is different for LC compared to HE mode. In some cases, the result is simply calculated with low precision. The selector is, for example, simply the integer part of the calculation result. It can only be used. In HE mode, for example, high precision such as fractional parts. The residual is shown by the lower precision or integer part, for each pipe index It is used to select one of the available improved indices for the system. The improved index performs, for example, probabilistic fitting by using the table walk described above. It is used in HE mode (and also potentially and less frequently in LC mode). When leaving available indexes for the current pipe index at a high boundary Higher pipe index minimizes the improved index and is then selected Leave the available index for the current pipe index at a lower boundary. Sometimes, the next lower pipe index can be used to its fullest potential for a new pipe index. The improvement index is maximized and then selected. The pipe index defines a probabilistic state, but for selection within a partial stream, The selector simply uses the pipe index. The improved index simply It is only useful for tracking probabilities more closely, or for achieving finer precision.
[0243] However, the above explanation also shows that the scalability of complexity is different from the PIPE coding concept in Figures 7-10. It was also shown that this can be achieved using the decoder shown in Figure 12. Decoder in Figure 12 This was used to decode the data stream 601 in which the media data was encoded. Then, depending on the data stream 601, either low complexity mode or high efficiency mode is activated. The mode switch 600 is configured in such a way, and the area for symbol sequence words is organized. To map numerical syntax elements to a shared domain, controllable by control parameters To obtain integer syntax element 604 using the rapping function, data stream 6 The symbols obtained from 01 - directly or, for example, by entropy decoding It includes a desymbolizer configured to represent the -kens 603 symbolically. The regenerator 605 is It is configured to reproduce media data 606 based on integer-valued syntax elements. When the high-efficiency mode is activated, the control parameters of the bolizer 602 are set to a first ratio. The desymbolizer 602 performs desymbolization in accordance with the data stream. It is configured to do so, and when the low complexity mode is activated, it is indicated by arrow 607. As such, the control parameter is a second ratio that is lower than the first ratio. It remains constant regardless of changes in response to the stream or data stream. For example, The control parameters can be changed according to the previously unsymbolized symbols.
[0244] Some of the above embodiments utilized the configuration shown in Figure 12. Syntactic elements in sequence 327 coeff_abs_minus3 and MVD are selected, for example, as shown in 407. Depending on the selected mode, the data is binarized in the desymborizer 314, and the regenerator 605 reproduces the data. These syntactic elements were used for this purpose. Clearly, both aspects of Figures 11 and 19 are immediately While it can be integrated into this, the embodiment shown in Figure 12 can also be combined with other encoding environments.
[0245] For example, refer to the motion vector difference coding shown above. The mapping function is cutoff. A shorthand unit that performs mapping within a first interval range of integer-value syntax elements smaller than the value. Includes prefixes and cutoff values in the form of abbreviated unary symbols for term signs and cutoff values. or a combination of suffixes in the form of a VLC codeword within the range of the second interval of the range of integer-value syntax elements exceeding The desymbolizer 602 is configured to attempt to match, and the decoder is configured to handle the changing probability Shortened unary from data stream 601 using unary entropy decoding with evaluation Using multiple first bins and constant equal-probability bypass modes of the code, VLC codewords Includes an entropy decoder 608 configured to extract multiple second bins. In this code, as indicated by arrow 609, entropy coding is more effective than LC coding. This is also complex. That is, context adaptation and / or stochastic adaptation are applied in HE mode. And, suppressed in LC mode, or, as described above with respect to various embodiments, complexity It can be enlarged or reduced.
[0246] The decoder in Figure 11, which encodes media data into a data stream, is compatible with this. The coder is shown in Figure 13. It is a low-complexity mode within data stream 501. Inserter 500, configured to send a signal for activating D or high-efficiency mode, syntactic element The construct is configured to pre-encode media data 505 into sequence 506. Ractor 504, symbol sequence 508, and syntactic element sequence 506 are represented by symbols. The symbolizer 507 is configured such that each part of the symbol represents a partial sequence of data. Multiple entropy encoders 310 configured to convert stream codewords, Each of the symbol sequences 508 is assigned to one of the selected entropy encoders 310. Includes a selector 502 configured to send a symbol, and selector 502 has an arrow 511 As shown, the selection is made depending on which of the low-complexity mode and high-efficiency mode is operating. It is configured to perform the following. The interleaver 510 surrounds the codeword of the encoder 310. Therefore, it can be provided at will.
[0247] Fits the decoder in Figure 12 for encoding media data into a data stream. The encoder shown in Figure 14 is in low complexity mode within the data stream 701. Or, inserter 700 configured to send a signal for operation in high-efficiency mode, having an integer value The sequence of syntactic elements 706 is configured to pre-encode media data 705. The constructor 704 and the area of syntactic elements having integer values are symbol sequences. • To map to the common area of a word, controllable by control parameters A constructor configured to represent syntax elements with integer values using symbols, employing a slashing function. Including 707, when the high-efficiency mode is activated, the control parameters are data at the first rate. As it changes according to the data stream, and the data stream or data stream Although the control parameters remain constant regardless of the changes in response to the trim, as indicated by arrow 708 As such, when the low complexity mode is activated, the second rate is lower than the first rate. Person 707, who is to be numbered, is configured to perform symbolization. The result of symbolization is data stock. It is encoded as REM701.
[0248] Furthermore, the embodiment shown in Figure 14 facilitates the implementation of the context-adaptive binary encoding / decoding described above. It must be stated that it is transferable to: Selector 509 and Entropy Encoder 310 is a context-adaptive binary encoding that directly outputs data stream 401. It condenses into a single bin, and now extracts the context for the bin from the data stream. Select. This is especially true for contextual adaptation and / or stochastic adaptation. During low complexity mode, both functions / adaptives are either switched off or not. It can be designed to be more mitigated.
[0249] The ability to switch modes as described in some of the above embodiments may be present in other embodiments. Therefore, keeping them separate has been briefly shown above. To make this clear, The only way to distinguish the embodiment in Figure 16 from the aforementioned embodiment is the removal of the ability to switch modes. An example of summarizing the explanation is shown in Figure 16. Furthermore, the following explanation is compared, for example, with H.264. Compared to using less precise parameters for slope and offset, the probability assessment of the context This section clarifies the advantages arising from initializing values.
[0250] Figure 16 shows that the horizontal and vertical components of the motion vector difference are obtained by binarizing the horizontal and vertical components. Decode video 405 from data stream 401 which has been encoded. This indicates the region of horizontal and vertical components below the cutoff value and the form of the shortened unary code. Within the first interval of prefix combinations, binarization is a contraction of the horizontal and vertical components, respectively. Equivalent to the number. The tangent of the cutoff value and the exponential Golomb code form of the horizontal and vertical components. The suffixes represent the regions of horizontal and vertical components that are included in or above the cutoff value, respectively. It is within the second interval, the cutoff value is 2, and the exponential Golomb code is in the order of 1. The decoder has the entropy decoder 409 configured for the difference in motion vectors. For horizontal and vertical components, the horizontal and vertical components of the motion vector difference and the motion vector The exponential Golomb code uses a constant equal-probability bypass mode to obtain the binarization of the difference. Therefore, there is definitely one context for the bin position of a common abbreviated unary code. Using context-adaptive binarization entropy decoding, that is, the motion vector To obtain integer values for the horizontal and vertical components of the difference, the binarization of the motion vector difference syntactic elements is performed. Selector / assigner A to be converted to a value, along with several parallel operations with desymbolizer 314 Using the Ting entropy decoder 322, a shortened unary code is extracted from the data stream. The regenerator 404 includes an entropy decoder 409 configured to extract motion vectors The video is reconstructed based on the integer values of the horizontal and vertical components of the torque difference.
[0251] To illustrate this in more detail, an embodiment is briefly shown in Figure 18. 800 is As a representative example, one motion vector difference, i.e., the predicted motion vector and the actual / The vectors shown represent the predicted residual between the reproduced motion vector and the actual motion vector. Horizontal and vertical. Components 802x and 802y are exemplified. They represent the pixel positions, i.e., the pixel positions. A more precise position than cell pitch or one pixel (for example, half the pixel pitch) It may be transmitted in units of minutes or 1 / 4 of a minute, etc. Horizontal and vertical components 8 02x and y are integers to be evaluated. Their range extends from zero to infinity. The label value is handled separately and is not considered here. In other words, the theory outlined here is not the theory described here. The light is concentrated on the magnitude of the motion vector difference 802x, y. The region is exemplified by 804. To the right of the region axis 804, Figure 19 shows the possible components 802x and y, which are arranged perpendicularly to each other. Binarization is an example where each possible value is mapped (binarized) to a given value. This demonstrates that, as can be seen, below the cutoff value of 2, the abbreviated unary code 806 is simply emitted. It simply generates, but as a suffix, it serves as a reminder of an integer value above the cutoff value minus 1. - For this reason, the exponents are ordered from the possible values equal to or greater than the cutoff value of 2, in the order of 808. It also has Golomb code. Only two contexts are provided for all bins. It is: one is the first bin position of the binarization of the horizontal and vertical components 802x,y, The other is the second bin position of the abbreviated unary symbol 806 for both the horizontal and vertical components 802x,y. It is positioned as follows: Equiprobability bypass mode for the bin position of index Golomb code 808. This is used by the entropy decoder 409. That is, both bin values are equal. It is considered likely to occur. The probability evaluation for these bins is determined. Compare it And, related to the two contexts just mentioned in the bin of the abbreviated unary code 806 The probability evaluation is applied continuously during decoding.
[0252] Before going into further detail, the entropy decoder 409 is, as described above, just Regarding the method by which the mentioned work can be performed, the explanation is a non-binary method shown in Figure 18. Decimerizer 314 by de-binarizing the bins of codes 106 and 108 using morphology Possible implementation of the reproducer 404 using the motion vector difference and its integer value obtained in this way We will focus on this. In particular, the regenerator 404, as described above, has at least the regenerated image The data stream contains information about the repartition into blocks that depend on the movement and compensation prediction. It can be searched from 401. Figure 19 shows images typically reproduced at 820 and 8 As mentioned in section 22, motion-compensated prediction is used to predict the content of the image within it. This shows the subdivision of Image 120. Subdivision and block are as described in Figures 2A-2C. The size of 122 may vary. To avoid transmission due to a vector difference of 800, the regenerator 404 transmits data accordingly. In addition to the fact that the subdivision was fixed, the subdivision information or A coupling concept can be used that transmits combined information without further subdivision information. The matching information signals the reproducible 404 which blocks 822 form a group. Send. This measurement blocks a specific motion vector difference of 800 for the reproducible 404. It can be applied to the entire group of 822. Naturally, on the encoding side, The transmission of combined information involves subdivision transmission overhead (if any) and combined information transmission overhead. It depends on the trade-off between the overhead and the motion vector difference transmission overhead, and it is coupled It decreases with increasing loop size. On the other hand, it decreases with increasing number of blocks per join group. The addition of these joins is to meet the actual needs of the individual blocks in each join group. Reduce the fit of motion vector differences for loops, thereby reducing the motion vectors of these blocks. This results in less accurate motion compensation predictions for the metric difference, for example, in the form of transmission coefficient level predictions. High transmission bandwidth is required for residual transmission. Therefore, the trade-off is, It can be found on the encoding side using the appropriate method. However, in any case, the concept of concatenation is This results in the motion vector difference for coupled groups showing little internal correlation. For example, Figure 19 shows this by shading membership to a definite bond group. See below. Clearly, the actual movement of the image content in these blocks is determined by the encoding side. It was similar to the decision to combine each block. However, other combinations The correlation with the movement of the group's image content is low. Therefore, the bin of abbreviated unary code 806 The restriction of using only one context per image is sufficient to allow for movement of adjacent image content. A coupling concept like that which is already adapted to spatial entropy coding efficiency between It does not negatively affect tropy coding efficiency. The context simply moves the bins and the vector difference The fact that it is part of the binarization of components 802x,y and that there are two cutoff values. Therefore, it can only be selected based on the bin position, which is either 1 or 2. Other already decoded bin / syntax elements / mvd components 802x,y are context-selected. It does not affect the choice.
[0253] Similarly, the regenerator 404 first has a list of motion vector predictors, and the motion vector difference Among the data stream information on the predictor index actually used for prediction Generated for each block or combined group that is transmitted explicitly or implicitly. By using the multi-assumption prediction concept, further (space and / (Or beyond temporal prediction) reduces the information content transmitted via motion vector difference. It is configured as follows. For example, please refer to block 122 in Figure 20, which is not shaded. The reproducible device 404 spatially generates motion vectors from, for example, the left, the top, or a combination of both. By making predictions, and by using the previously decoded video images and the aforementioned prediction means From the motion vectors of parts positioned at the same location in further combinations, the motion vectors in time By making predictions, we can provide different predictors for the motion vector of this block. These predictors can reproduce the reproducible 40 in a predictable way that is predictable on the coding side. It is sorted by 4. Some information is transmitted in the data stream for this purpose. It is then used by the reproducible. In other words, some hints are in the data stream. It is included in, and in that regard, the predictors from this ordered list of predictors are actually in this block It is used as a predictor for motion vectors. This index is clearly this block It can be sent in the data stream for the index. However, index Kus is the first prediction, and it is possible to simply convey that prediction. Other possibilities are similar. It exists in [location]. In any case, the prediction scheme just mentioned is the current block movement [number] This enables highly accurate predictions of the motion vector, and therefore the information content imposed on the difference in motion vectors. The requirements are reduced. Therefore, the motion vector difference is used for high prediction efficiency, This shows the frequency histogram of the difference component 802x,y, where higher values are accessed less frequently. Therefore, the selection of the order of the exponential Golomb codes, which are 1, is not simply a matter of using abbreviated unary codes. As mentioned for the two bins and Figure 18, the decrease in the cutoff value up to 2 is shown above. The limitations of Quist adaptive entropy coding do not negatively affect coding efficiency. Prediction accuracy is Since predictions tend to work equally well in both directions, the horizontal and vertical components Even omitting any distinctive features between them can lead to an effective prediction.
[0254] In the above description, desimborizer 314, regenerator 404 and entropy decoder 4 As far as the functions of 09 are concerned, all the details shown in Figures 1-15 are shown in Figure 16, for example. It is important to note that it can also be transferred to other components. Nevertheless, For completeness, these details are outlined again below.
[0255] For a better understanding of the prediction method outlined above, please refer to Figure 20. As described above, component 404 is the current block 822 or the current block Different predictors can be obtained for the combined group of k, and these predictors are solid vectors As shown by Torr 824, the predictor is obtained by spatial and / or temporal prediction. Furthermore, arithmetic mean operations and the like can be used, and as a result, they are correlated with each other. Thus, each individual predictor was obtained to some extent by the reproducer 404. Vector 826 was obtained. Apart from the method described above, the regenerator 404 sequences these predictors 126 into an ordered list. Then sort. This is illustrated in Figure 21, numbers 1-4. The sorting process is unique. If it is possible to determine this, it is preferable that the encoder and decoder operate in sync. And then, the index just mentioned is the current block or join group. Therefore, the data stream is obtained explicitly or implicitly by the regenerator 404. This is possible. For example, if the second predictor "2" is selected, the reproducer 404 will be the motion vector. The difference of 800 is added to this selected predictor 126, thereby, by motion compensation prediction, The last reproduced movement used to predict the contents of the current block / join group. We obtain vector 128. In the case of a combined group, with respect to each block of the combined group. To further improve the motion vector 128, a reproducer 404 is provided for the block. It is possible to include further motion vector differences.
[0256] Thus, continuing with the description of the implementation of the components shown in Figure 16, it is an entrance The ropy decoder 409 uses binary arithmetic decoding or binary PIPE coding, It is configured to extract the abbreviated unary code 806 from data stream 401. This is also acceptable. Both concepts are explained above. Furthermore, entropy decoder 40 9 is either a shortened unary code 806 or two bins in the same context for both bins It can be configured to use different contexts for location. Entropy The decoder 409 can be configured to perform updates to the probabilistic state. Entropy decoder 409 is for the bin currently extracted from the abbreviated unary code 806 From the current stochastic state associated with the context selected for the bin to be drawn, This can be done by transitioning to a new probability state corresponding to the bin being drawn. In addition to the other steps 0-5 above, this is performed by the entropy decoder. The above tables Next_State_LPS and Next_State_M are tables that can be searched. Please refer to PS. In the above explanation, the current probability state is pState_curre Mentioned by nt. It is defined for each context of interest. The entropy decoder 409 takes the current probability interval width value, i.e., the probability interval index q. To obtain the _index, the current probability interval is shown, along with the probability interval index and the probability state. The index, i.e., the current probability interval, is currently extracted to subdivide it into two subintervals. p_s depends on the context selected for the bin being treated and the associated current probabilistic state. By using tate to add indexes to table items, interval subdivision can be achieved. By quantizing the R that is being performed, the bins currently drawn from the shortened unary code 806 are It is configured to perform binary arithmetic decoding. In the embodiments outlined above, these The partial intervals were related to the symbols with the highest and lowest probability of success. As described above, the entropy decoder 409 has an interval width of two or three of the heaviest values in an 8-bit representation. The configuration is designed to extract the necessary bits and attempt to create an 8-bit representation of the current probability interval width value R. The current probability interval width value is then configured to be quantized. The entropy decoder 409 is configured to Based on the current probability interval, i.e., the offset state value from within V, two partial intervals Configured to be selected between the probability interval width value R and the offset state value update Then, using the selected partial interval, estimate the value of the currently extracted bin and update it. The probability interval width value R and the sequence of bits read from data stream 401 Perform a renormalization of the offset value R. For example, the entropy decoder 409 is currently To obtain the current probability interval width value to be subdivided into two partial intervals, the current probability interval width value is obtained This configures the system to perform binary arithmetic decoding of the bins from the exponential Golomb code. It is done. Halving it corresponds to fixing it at 0.5 and having an equal probability evaluation. This can be done by bit shifting. The entropy decoder calculates the difference between each motion vector. Therefore, before the Golomb code of the horizontal and vertical components of the difference in each motion vector, , shortening of the horizontal and vertical components of the respective motion vector differences from data stream 401 It is configured to extract a unary code. Through this measurement, the entropy decoder 409 The higher the number of bins, the more the probability evaluation was fixed, i.e., the more the bins were fixed at 0.5. This can be used to form a hexadecimal. This speeds up the procedure for decoding entropy. The degree can be increased. On the other hand, the entropy decoder 409 first takes one motion vector Extract the horizontal and vertical components of the torque difference, followed by the horizontal and vertical components of the next motion vector difference. By extracting the components, it is preferable to maintain the order within the motion vector difference. Therefore, the desymbolizer 314 immediately proceeds without waiting for further motion vector difference scans. Since the de-binarization of the motion vector difference can be continued, the decoding components, i.e., Figure The memory requirements imposed on the 16 decoders are reduced. This is due to context selection. This makes it possible: only exactly one context is useful per bin location of code 806. It can be used.
[0257] The reproducer 404, as described above, is a predictor 1 for the horizontal and vertical components of the motion vector. 26 is obtained, and using the horizontal and vertical components of the motion vector difference, for example, simply predict each By adding the motion vector difference to the device, the predictor 826 is improved. To reproduce the horizontal and vertical components of the difference, the horizontal and vertical components of the motion vector are spatially represented. It can be predicted both precisely and / or in time.
[0258] Furthermore, the reproducible 404 is an ordered predictor for the horizontal and vertical components of the motion vector. To obtain the list, we predict the horizontal and vertical components of the motion vector in different ways, and the data The list index is obtained from the stream, and the predictor moves the list index. By improving the list predictor using the horizontal and vertical components of the vector, motion It can be configured to reproduce the horizontal and vertical components of the clef.
[0259] Furthermore, as mentioned above, the regenerator 404 subdivides the video image into blocks. Apply the horizontal and vertical components 802x,y of the motion vector with the specified spatial precision. The regenerator 404 is configured to reproduce the video using motion compensation prediction, and the regenerator 404 is configured to reproduce the video using The locks are grouped into a combined group, and in the unit of the combined group, the binarizer 31 Apply the integer values of the horizontal and vertical components (x, y) of the motion vector difference obtained by step 4. To do this, use the join syntax elements in data stream 401.
[0260] The regenerator 404 blocks some data streams 401 that exclude associative syntax elements. The regenerator 404 can extract the video image subdivision. Adapt or combine the horizontal and vertical components of the predetermined motion vectors of all blocks of the program. It is improved by the horizontal and vertical components of the motion vector difference associated with the group block. do.
[0261] For completeness only, Figure 17 shows the encoder that fits the decoder in Figure 16. The encoder in Figure 17 includes a constructor 504, a symbolizer 507, and an ent. Includes a ropy decoder 513. The encoder uses motion vectors to perform motion compensation prediction. By encoding Deo505 and predicting the motion vector, motion vectors are coded predictively. The horizontal and vertical components of the motion vector difference are converted to show the prediction error of the predicted motion vector. Constructor 504 configured to set the integer value 506; motion vector difference water To obtain the binarization of the plane and vertical components 508, the integer values are binarized, and the binarization is cutoff Shortened units of horizontal and vertical components in the first interval of the region of horizontal and vertical components smaller than the value The code of the term, and the region of the horizontal and vertical components including or greater than the cutoff value. Within the interval of 2, prefixes for the cutoff value and Exp-Go for the horizontal and vertical components It is equivalent to a combination of suffixes in the form of a lomb code, with a cutoff value of 2 and Exp-G The OLOMB code is 1 for symbolizer 507; and the horizontal and vertical difference of the motion vectors. For the direct component, the horizontal and vertical components of the motion vector difference, and a constant equal probability bypass module Common to Exp-Golomb codes using this method, each bin position of the shortened unary code is confirmed. It can actually be shortened using context-appropriate binary entropy coding in a single context. Entropy encoder 513 configured to encode unary codes into a data stream. This includes further details of possible implementations, from the description of the decoder in Figure 16 to the encoder in Figure 17. It can be transferred directly to the client.
[0262] Although several embodiments have been described in the context of the apparatus, these embodiments also correspond to the methods. It is clear that this can be applied to the description, and the block or apparatus is a method step or method Corresponds to the characteristics of the step. Similarly, embodiments described in the context of the method step. This represents a description of the corresponding block, component, or feature of the corresponding device. Or all the steps involve hardware devices, such as a microprocessor, and a program. It can be performed (by using) a computer or electronic circuit, etc. In some embodiments, one or more of the most important method steps are performed in this type of apparatus. Therefore, it can be executed.
[0263] The encoded signal of the invention can be stored in a digital storage medium, or, for example, in a digital storage medium. Transmitted over a linear transmission medium or a wired transmission medium, such as the internet. It is possible.
[0264] Depending on the specific implementation requirements, embodiments of the present invention may be in hardware or software. It can be implemented using wearables. Implementation is done using electronically readable software stored on it. Digital storage media that have a signal, such as flexible disks, DVDs, Blu-rays, Using CD, ROM, PROM, EPROM, EEPROM, or flash memory It can be executed, and each method is executed, so it is programmable It collaborates with (or can collaborate with) computer systems. Therefore, digital The storage medium may be computer-readable.
[0265] Some embodiments of the present invention relate to a data carrier having an electronically readable control signal. Including A, so that one of the methods described in this specification is carried out. This can work in conjunction with programmable computer systems.
[0266] Typically, embodiments of the present invention are computer program products having program code. This can be implemented when a computer program product runs on a computer. The program code is being executed to carry out one of the methods. The data can be stored, for example, in a machine-readable carrier.
[0267] Other embodiments are described in this specification and are stored in a machine-readable carrier. This includes a computer program for performing one of the methods.
[0268] In other words, an embodiment of the method of the invention is therefore a computer program that is a computer When operating, a professional to perform one of the methods described in this specification. It is a computer program that uses Gram code.
[0269] Further embodiments of the method of the invention are therefore recorded and described in this specification. It consists of a computer program to perform one of the methods that are being used. It is a data carrier (or digital storage medium or computer-readable medium). Carriers, digital storage media, or recorded content are typically tangible and / or non-transferable. It's something like that.
[0270] Further embodiments of the method of the invention are, therefore, among the methods described in this specification. A data stream or that represents a computer program to execute one of them. It is a sequence of signals. A data stream or sequence of signals is a data communication connection. Through a series of steps, it can be configured to be transferred, for example, over the internet.
[0271] Further embodiments are configured to perform one of the methods described herein, or Adapted processing means, such as a computer or a programmable logic device.
[0272] Further embodiments include, on top of that, one of the methods described in this specification. This includes computers on which the necessary computer programs for performing the task have been installed.
[0273] Further embodiments of the present invention include a receiver using one of the methods described in this specification. To transfer a computer program to run one of them, (for example, electronically or, Includes an apparatus or system configured (optically). The receiver is, for example, a computer. This could also be a mobile device, memory device, etc. The device or system could be, for example, a computer. It may also be a file server for transmitting the reader program to the receiver.
[0274] In some embodiments, a programmable logic unit (e.g., a field program) is used. Possible gate arrays may have some of the functionality of the method described in this specification. It can be used to perform all of these tasks. In some embodiments, the field... A programmable gate array is one of the methods described in this specification. It can work with a microprocessor to perform one of these tasks. Typically, the method is as follows: It is also preferably performed by a hardware device.
[0275] The above-described embodiments are merely illustrative for the sake of illustrating the principle of the present invention. Modifications and changes to the arrangement. And the details described in this specification will be obvious to others skilled in the art. It is understood. However, it is limited only by the scope of the patent claims that are imminent, and the present application The description of the examples and the specific details presented as such are limited to those described in the detailed document. That was not the intention.
Claims
1. A decoder for decoding video encoded in a data stream, A desymbolizer configured to obtain a debinarized value by debinarizing the binarized horizontal and vertical components of a motion vector difference, wherein the video is predictively encoded by motion compensation prediction using a motion vector, and the horizontal and vertical components of the motion vector difference represent the prediction error for the motion vector. The binarized horizontal and vertical components each comprise a prefix binary string having two fixed-length binary codes based on a cutoff value equal to 2, and a suffix binary string having an Exp-Golomb code with a fixed order of 1, wherein the first fixed-length binary code of the two indicates whether the absolute value of a certain motion vector difference is greater than zero, the second fixed-length binary code of the two indicates whether the absolute value of the motion vector difference is greater than 1, and the Exp-Golomb code represents the absolute value of the motion vector difference that is greater than or equal to the cutoff value, a desymbolizer, A reproducible device configured to reproduce the video based on the non-binarized values of the horizontal and vertical components of the motion vector difference. A decoder equipped with a decoder.
2. The decoder according to claim 1, wherein the reproducer is configured to spatially and / or temporally predict the horizontal and vertical components of a motion vector, obtain predictors for the horizontal and vertical components of the motion vector, and reproduce the horizontal and vertical components of the motion vector by refining the predictors using the horizontal and vertical components of the motion vector difference.
3. The decoder according to claim 1, wherein the reproducer is configured to reproduce the horizontal and vertical components of a motion vector by predicting the horizontal and vertical components of the motion vector in different ways, obtaining an ordered list of predictors for the horizontal and vertical components of the motion vector, obtaining a list index from the data stream, and reproducing the horizontal and vertical components of the motion vector by improving the predictors in the list indicated by the list index using the horizontal and vertical components of the motion vector difference.
4. The decoder according to claim 1, wherein the reproducer is configured to reproduce the video using motion compensation prediction by applying the horizontal and vertical components of the motion vector at a spatial granularity defined by subdividing the video images into blocks, wherein the reproducer groups the blocks into joined groups using joined syntax elements present in the data stream, and applies the debinarized values of the horizontal and vertical components of the motion vector difference obtained by the desymbolizer on a joined group basis.
5. The decoder according to claim 4, wherein the reproducer is configured to derive a subdivision of the video into blocks of images from the portion of the data stream excluding the concatenating syntax elements.
6. The decoder according to claim 4, wherein the reproducer is configured to adopt the horizontal and vertical components of a default motion vector for all blocks in the associated coupling group, or to improve the horizontal and vertical components of the default motion vector by the horizontal and vertical components of the motion vector difference associated with the blocks in the coupling group.
7. The decoder according to claim 1, wherein at least a portion of the data stream is associated with the color samples of the video.
8. The decoder according to claim 1, wherein at least a portion of the data stream is associated with depth values relating to a depth map associated with the video.
9. The decoder according to claim 1, further comprising an entropy decoder configured to decode at least the fixed-length binary code using binary arithmetic decoding.
10. The decoder according to claim 9, wherein the entropy decoder is configured to decode the fixed-length binary code of the horizontal and vertical components of each motion vector difference before decoding the Exp-Golumb code of the horizontal and vertical components of each motion vector difference.
11. A method for decoding video encoded in a data stream, A step of obtaining a debinarized value by debinarizing the binarized horizontal and vertical components of a motion vector difference, wherein the video is predictively encoded by motion compensation prediction using a motion vector, and the horizontal and vertical components of the motion vector difference represent the prediction error for the motion vector. The binarized horizontal and vertical components each comprise a prefix binary string having two fixed-length binary codes based on a cutoff value equal to 2, and a suffix binary string having an Exp-Golomb code with a fixed order of 1, wherein the first fixed-length binary code of the two indicates whether the absolute value of a certain motion vector difference is greater than zero, the second fixed-length binary code of the two indicates whether the absolute value of the motion vector difference is greater than 1, and the Exp-Golomb code represents the absolute value of the motion vector difference that is greater than or equal to the cutoff value, and a step, A step of reconstructing the video based on the non-binarized values of the horizontal and vertical components of the motion vector difference. Methods that include...
12. The method according to claim 11, wherein the reproduction step includes the steps of spatially and / or temporally predicting the horizontal and vertical components of a motion vector to obtain predictors for the horizontal and vertical components of the motion vector, and reproducing the horizontal and vertical components of the motion vector by improving the predictors using the horizontal and vertical components of the motion vector difference.
13. The method according to claim 11, wherein the reproduction step includes the steps of predicting the horizontal and vertical components of the motion vector in different ways to obtain an ordered list of predictors for the horizontal and vertical components of the motion vector; obtaining a list index from the data stream; and reproducing the horizontal and vertical components of the motion vector by improving the predictors in the list indicated by the list index using the horizontal and vertical components of the motion vector difference.
14. The method according to claim 11, wherein the reproduction step includes reproducing the video using the motion compensation prediction by applying the horizontal and vertical components of the motion vector at a spatial granularity defined by subdividing the video images into blocks, wherein the blocks are grouped into joined groups using joined syntax elements present in the data stream, and the de-binarized values of the horizontal and vertical components of the motion vector difference are applied on a joined group basis.
15. The method according to claim 14, wherein the reproduction step further includes the step of subdividing the portion of the data stream excluding the concatenation syntax elements into blocks of images of the video.
16. The method according to claim 14, wherein the reproduction step includes the step of adopting the horizontal and vertical components of a default motion vector for all blocks in the associated join group, or the step of improving the horizontal and vertical components of the default motion vector by the horizontal and vertical components of the motion vector difference associated with the blocks in the join group.
17. The method according to claim 11, wherein at least a portion of the data stream is associated with the color samples of the video.
18. The method according to claim 11, wherein at least a portion of the data stream is associated with depth values relating to a depth map associated with the video.
19. The method according to claim 11, further comprising the step of entropy decoding the fixed-length binary code using binary arithmetic decoding.
20. The method according to claim 19, wherein the entropy decoding step includes decoding the fixed-length binary code of the horizontal and vertical components for each motion vector difference before decoding the Exp-Golumb code of the horizontal and vertical components.
21. A method for encoding video into a data stream, A step of predictively encoding a video by motion compensation prediction using a motion vector, predicting the motion vector and generating a motion vector difference, wherein the horizontal and vertical components of the motion vector difference represent the prediction error for the motion vector, and The step of obtaining the binarized horizontal and vertical components of the motion vector difference, wherein the binarized horizontal and vertical components each have a prefix binstring having two fixed-length binary codes based on a cutoff value equal to 2. A step including a suffix binstring having an Exp-Golomb code of order fixed to 1, wherein the first of the two fixed-length binary codes indicates whether the absolute value of a certain motion vector difference is greater than zero, the second of the two fixed-length binary codes indicates whether the absolute value of the motion vector difference is greater than 1, and the Exp-Golomb code represents the absolute value of the motion vector difference that is greater than or equal to the cutoff value, The steps include: encoding the binarized values of the horizontal and vertical components of the motion vector difference into the data stream; Methods that include...
22. The method according to claim 21, wherein at least a portion of the data stream is associated with the color samples of the video.
23. The method according to claim 21, wherein at least a portion of the data stream is associated with depth values relating to a depth map associated with the video.
24. The method according to claim 21, further comprising the step of entropy encoding the fixed-length binary code using binary arithmetic decoding.
25. The method according to claim 24, wherein the entropy coding step includes, for each motion vector difference, the step of coding the fixed-length binary code of the horizontal and vertical components before coding the Exp-Golumb code of the horizontal and vertical components.