MX336735B

Entropy coding of motion vector differences.

Abstract

A decoder for decoding a video from a data stream into which horizontal and vertical components of motion vector differences are coded using binarizations of the horizontal and vertical components is described, the binarizations equaling a truncated unary code of the horizontal and vertical components, respectively, within a first interval of the domain of the horizontal and vertical components below a cutoff value, and a combination of a prefix in form of the truncated unary code for the cutoff value and a suffix in form of a Exp-Golomb code of the horizontal and vertical components, respectively, within a second interval of the domain of the horizontal and vertical components inclusive and above the cutoff value, wherein the cutoff value is two and the Exp-Golomb code has order one. An entropy decoder is configured to, for the horizontal and vertical components of the motion vector differences, derive the truncated unary code from the data stream using context- adaptive binary entropy decoding with exactly one context per bin position of the truncated unary code, which is common for the horizontal and vertical components of the motion vector differences, and the Exp-Golomb code using a constant equi-probability bypass mode to obtain the binarizations of the motion vector differences. A desymbolizer is configured to debinarize the binarizations of the motion vector difference syntax elements to obtain integer values of the horizontal and vertical components of the motion vector differences; A reconstructor is configured to reconstruct the video based on the integer values of the horizontal and vertical components of the motion vector differences.

MX336735B, drawing sheet 1
Sheet 1 of 132

Term

5.7 yearsleft in the term

Expires 18 June 2032.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

32 claims: 16 independent, 16 dependent

  1. 1
    REIVINDICACIONES 1. Decodificador para decodificar un video a partir del flujo de datos en el cual los componentes horizontales y verticales de diferencias de vector de movimiento son 5 codificados usando binarizaciones de los componentes horizontales y verticales, las binarizaciones igualando un código unario truncado de los componentes horizontales y verticales, respectivamente, dentro de un primer intervalo del dominio de los componentes horizontales y verticales bajo un valor de corte, y una combinación de un prefijo en forma de un código unario truncado para el valor de 10 corte y un sufijo en forma de un código Exp-Golomb de los componentes horizontales y verticales, respectivamente, dentro de un segundo intervalo del dominio de los componentes horizontales y verticales inclusive sobre el valor de corte, CARACTERIZADO porque el valor de corte es dos y el código Exp-Golomb tiene orden uno, comprendiendo 15 - un decodificador de entropía configurado para los componentes horizontales y verticales de las diferencias del vector de movimiento, deriva el código unario truncado del flujo de datos usando decodificación de entropía binaria de contexto adaptativo decodificando con exactamente un contexto por posición de bin del código unario truncado, el cual es común para los componentes horizontales y verticales de las diferencias del vector de movimiento, y el código Exp-Golomb usando un modo de derivación de equi-probabilidad 141 constante para obtener las binarizaciones de las diferencias del vector de movimiento;- un des-simbolizador configurado para debinarizar las binarizaciones de los elementos de sintaxis de la diferencia del vector de movimiento para obtener 5 valores enteros de los componentes horizontales y verticales de las diferencias de vector de movimiento;- un reconstructor configurado para reconstruir el video basado en los valores enteros de los componentes horizontales y verticales de las diferencias del vector de movimiento. 10
  2. 2
    Decodificador de acuerdo a la reivindicación 1, CARACTERIZADO porque el decodificador de entropía (409) es configurado para derivar el código unario truncado (806) del flujo de datos (401) usando decodificación binaria aritmética o decodificación binaria PIPE.
  3. 3
    Decodificador de acuerdo a la reivindicación 1 ó 2, CARACTERIZADO porque el 15 decodificador de entropía (409) es configurado para usar diferentes contextos para las dos posiciones de bins del código unario truncado (806).
  4. 4
    Decodificador de acuerdo a cualquiera de las reivindicaciones 1 a 3, CARACTERIZADO porque el decodificador de entropía (409) es configurado para realizar una actualización del estado de probabilidad, para un bin derivado 20 actualmente de un código unario truncado (806), en transición desde un estado de probabilidad actual asociado con el contexto seleccionado para el bin actualmente derivado, a un nuevo estado de probabilidad dependiendo en el bin actualmente derivado. ñf 142 ί i;ν ΙΜ Es'STi nz ;LA ρ;f;·
  5. 5
    Decodificador de acuerdo a cualquiera de las reivindicaciones 1 a 4, CARACTERIZADO porque el decodificador de entropía (409) es configurado para decodificar aritmética binaria un bin actualmente a ser derivado de un código unario truncado (806) cuantificando un valor de ancho de intervalo de probabilidad actual 5 representando un intervalo de probabilidad actual para obtener un índice de intervalo de probabilidad y realizar una subdivisión de intervalo indexando una entrada de tabla entre entradas de tablas usando el índice de intervalo de probabilidad y un índice de estado de probabilidad dependiendo en un estado de probabilidad actual asociado con el contexto seleccionado para el bin actualmente a 10 ser derivado, para obtener una subdivisión del intervalo de probabilidad actual en dos intervalos parciales.
  6. 6
    Decodificador de acuerdo a la reivindicación 5, CARACTERIZADO porque el decodificador de entropía (409) es configurado para usar una representación de 8 bits para el valor de ancho de intervalo de probabilidad actual y para tomar 2 ó 3 15 bits más significativos de las representación de 8 bits cuantificando el valor de ancho de intervalo de probabilidad actual.
  7. 7
    Decodificador de acuerdo a la reivindicación 5 ó 6, CARACTERIZADO porque el decodificador de entropía (409) es configurado para seleccionar entre los dos intervalos parciales basados en un valor de estado offset desde un interior del 20 intervalo de probabilidad actual, actualizar el valor del ancho del intervalo de probabilidad y el valor de estado de offset, e inferir un valor del bin actualmente a ser derivado, usando el intervalo parcial seleccionado, y realizar una renormalización del valor de ancho del intervalo de probabilidad actualizado y el 143 valor de estado de offset incluyendo una continuación de lectura de bits desde el flujo de datos (401).
  8. 8
    Decodificador de acuerdo a cualquiera de las reivindicaciones 5 a 7, CARACTERIZADO porque el decodificador de entropía (409) es configurado en el 5 modo de derivación de equi-probabilidad constante, decodificación binaria aritmética un bin del código de Exp-Golomb reduciendo a la mitad el valor del ancho del intervalo de probabilidad actual para obtener una subdivisión del intervalo de probabilidad actual en dos intervalos parciales.
  9. 9
    Decodificador de acuerdo a cualquiera de las reivindicaciones 1 a 8,
  10. 10
    10 CARACTERIZADO porque el decodificador de entropía (409) es configurado para cada diferencia de vector de movimiento, derivar el código unario truncado de los componentes horizontales y verticales de la respectiva diferencia del vector de movimiento del flujo de datos, antes del código de Exp-Golomb de los componentes horizontales y verticales de la respectiva diferencia del vector de movimiento. 15 10. Decodificador de acuerdo a cualquiera de las reivindicaciones 1 a 9, CARACTERIZADO porque el reconstructor es configurado para predecir espacial y/o temporalmente los componentes horizontales y verticales de vectores de movimiento de manera de obtener predictores para los componentes horizontales y verticales de los vectores de movimientos y reconstruir los componentes 20 horizontales y verticales de los vectores de movimiento refinando los predictores 826 usando los componentes horizontales y verticales de las diferencias del vector de movimiento. 144
  11. 11
    Decodificador de acuerdo a cualquiera de las reivindicaciones 1 a 10, CARACTERIZADO porque el reconstructor es configurado para predecir componentes horizontales y verticales de vectores de movimiento en diferentes formas de manera de obtener una lista ordenada de predictores para los componentes horizontales y verticales de vectores de movimiento, obtener un índice de lista del flujo de datos y reconstruir los componentes horizontales y verticales de vectores de movimiento refinando el predictor al cual el predictor de la lista a la cual el índice de lista apunta usando los componentes horizontales y verticales de las diferencias del vector de movimiento.
  12. 12
    Decodificador de acuerdo a las reivindicaciones 10 u 11, CARACTERIZADO porque el reconstructor es configurado para reconstruir el video usando la predicción compensado por movimiento por uso de los componentes horizontales y verticales de vectores de movimiento.
  13. 13
    Decodificador de acuerdo a la reivindicación 12, CARACTERIZADO porque el reconstructor es configurado para reconstruir el video usando la predicción compensada por movimiento aplicando los componentes horizontales y verticales de vectores de movimiento en una granularidad espacial definida por una subdivisión de las imágenes de los videos en bloques, donde el reconstructor usa elementos de sintaxis de fusión presente en el flujo de datos de manera de agrupar los bloques en grupos de fusión y aplica los valores enteros de los componentes horizontales y verticales de las diferencias del vector de movimiento por el debinarizador, en unidades de grupos de fusión. 145
  14. 14
    Decodificador de acuerdo a la reivindicación 13, CARACTERIZADO porque el reconstructor es configurado para derivar la subdivisión de las imágenes del video en bloques a partir de una porción del flujo de datos excluyendo los elementos de sintaxis de fusión.
  15. 15
    Decodificador de acuerdo a la reivindicación 13 ó 14, CARACTERIZADO porque el reconstructor es configurado para adoptar los componentes horizontales y verticales de un vector de movimiento predeterminado para todos los bloques de un grupo fusionado asociado, o refínar el mismo por los componentes horizontales y verticales de las diferencias de vector de movimiento asociado con los bloques del grupo fusionado. kTjtodificador para codificar un video en un flujo de datos, CARACTERIZADO porque comprende:- un constructor configurado para codificar de manera predictiva el video por predicción de movimiento compensado usando vectores de movimiento y codificando de manera predictiva los vectores de movimiento prediciendo los vectores de movimiento y estableciendo valores enteros de componentes horizontales y verticales de diferencias de vector de movimiento para representar un error de predicción de los vectores de movimientos predichos;- un simbolizador configurado para binarizar los valores enteros para obtener binarizaciones de los componentes horizontales y verticales de las diferencias de vector de movimiento, las binarizaciones igualando un código unario truncado de los componentes horizontales y verticales, respectivamente, dentro de un primer intervalo del dominio de los componentes horizontales y verticales bajo 146 un valor de corte, y una combinación de un prefijo en forma de un código unario truncado para el valor de corte y un sufijo en forma de un código Exp-Golomb de los componentes horizontales y verticales, respectivamente, dentro de un segundo intervalo del dominio de los componentes horizontales y verticales inclusive y sobre el valor de corte, donde el valor de corte es dos y el código Exp-Golomb tiene orden uno;y - un codificador de entropía configurado para los componentes horizontales y verticales de las diferencias de vector de movimiento, codificar el código unario truncado en el flujo de datos usando codificación de entropía binaria de contexto adaptativo con exactamente un contexto por posición de bin del código unario truncado, el cual es común para los componentes horizontales y verticales de las diferencias de vector de movimiento, y el código Exp-Golomb usando un modo de derivación de equi-probabilidad constante.
  16. 16
    17. Codificador de acuerdo a la reivindicación 16, CARACTERIZADO porque el codificador de entropía es configurado para codificar el código unario truncado en el flujo de datos usando codificación aritmética binaria o codificación binaria PIPE.
  17. 17
    18. Codificador de acuerdo a la reivindicación 16 o 17, CARACTERIZADO porque el codificador de entropía es configurado para usar diferentes contextos para las dos posiciones de bin del código unario truncado.
  18. 18
    19. Codificador de acuerdo a cualquiera de las reivindicaciones 16 a 18, CARACTERIZADO porque el codificador de entropía es configurado para realizar una actualización del estado de probabilidad, para un el bin actualmente codificado fuera del código unario truncado mediante transición del estado de probabilidad 147 actual asociado con el contexto seleccionado para el bin codificado actualmente, a un nuevo estado de probabilidad dependiendo en el bin actualmente derivado.
  19. 19
    20. Codificador de acuerdo a cualquiera de las reivindicaciones 16 a 19, CARACTERIZADO porque el codificador de entropía es configurado para codificar un binario aritmético un bin actualmente a ser codificado fuera del código unario truncado cuantificando un valor de ancho de intervalo de probabilidad actual representando un intervalo de probabilidad actual para obtener un índice de intervalo de probabilidad y realizando una subdivisión de intervalo indexando una entrada de tabla entre entradas de tablas usando el índice de intervalo de probabilidad y un índice de estado de probabilidad dependiendo de un estado de probabilidad actual asociado con el contexto seleccionado para el bin actualmente a ser derivado, para obtener una subdivisión del intervalo de probabilidad actual en dos intervalos parciales.
  20. 20
    21. Codificador de acuerdo a la reivindicación 20, CARACTERIZADO porque el codificador de entropía es configurado para usar una representación de 8 bits para el valor de ancho de intervalo de probabilidad actual y para tomar 2 ó 3 bits más representativos de las representación de 8 bits cuantificando el valor de ancho de intervalo de probabilidad actual.
  21. 21
    22. Codificador de acuerdo a la reivindicación 20 ó 21, CARACTERIZADO porque el codificador de entropía es configurado para seleccionar entre los dos intervalos parciales basados en el valor entero del bin actualmente a ser codificado, actualizar el valor de ancho de intervalo de probabilidad y un offset de intervalo de probabilidad usando el intervalo parcial seleccionado y realizar una renormalización Τ £ I ίν:ίΝΕϊ.·;υ r. DE LA > íAt, 148 V del valor de ancho de intervalo de probabilidad y el offset de intervalo de probabilidad incluyendo una continuación de escritura de bits al flujo de datos.
  22. 22
    23. Codificador de acuerdo a cualquiera de las reivindicaciones 20 a 21, CARACTERIZADO porque el codificador de entropía es configurado para 5 codificar binario aritmético un bin fuera del código Exp-Golomb reduciendo a la mitad el valor del ancho del intervalo de probabilidad para obtener una subdivisión del intervalo de probabilidad actual en dos intervalos parciales.
  23. 23
    24. Codificador de acuerdo a cualquiera de las reivindicaciones 16 a 23, CARACTERIZADO porque el codificador de entropía es configurado para cada 10 diferencia de vector de movimiento, codificar un código unario truncado de los componentes horizontales y verticales de la respectiva diferencia de vector de movimiento en el flujo de datos, antes del código Exp-Golomb de los componentes horizontales y verticales de la respectiva diferencia de vector de movimiento.
  24. 24
    25. Codificador de acuerdo a cualquiera de las reivindicaciones 16 a 24, 15 CARACTERIZADO porque el constructor es configurado para predecir espacial y/o temporalmente los componentes horizontales y verticales de los vectores de movimiento de manera de obtener predictores para los componentes horizontales y verticales de vectores de movimiento y determinar los componentes horizontales y verticales de las diferencias de vector de movimiento de manera de refinar los 20 predictores hacia los componentes horizontales y verticales de vectores de movimiento.
  25. 25
    26. Codificador de acuerdo a cualquiera de las reivindicaciones 16 a 25, CARACTERIZADO porque el constructor es configurado para predecir los 149 componentes horizontales y verticales de los vectores de movimiento en diferentes formas de manera de obtener una lista ordenada de predictores para los componentes horizontales y verticales de vectores de movimiento, determinar un índice de lista e insertar información revelando la misma en el flujo de datos y 5 determinar los componentes horizontales y verticales de las diferencias de vector de movimiento de manera de refinar el predictor al cual un predictor de la lista a la cual el índice de lista apunta hacia los componentes horizontales y verticales de vectores de movimiento.
  26. 26
    27. Codificador de acuerdo a cualquiera de las reivindicaciones 16 a 26, 10 CARACTERIZADO porque el constructor es configurado para codificar el video usando la predicción compensada por movimiento aplicando los componentes horizontales y verticales de vectores de movimiento en una granularidad espacial definida por una subdivisión de imágenes de video en bloques, donde el constructor determina, e inserta en el flujo de datos, fusionando elementos de sintaxis de 15 manera de agrupar los bloques de grupos de fusión y aplicar los valores enteros de los componentes horizontales y verticales de las diferencias de vector de movimiento sujeto a binarización por el debinarizador, en unidades grupos de fusión.
  27. 27
    28. Codificador de acuerdo a la reivindicación 27, CARACTERIZADO porque el 20 constructor es configurado para codificar la subdivisión de las imágenes de video en bloques en una porción del flujo de datos excluyendo los elementos de sintaxis fusionados. 150 D¿ LA Γί\€'Ρ1£·>.·'.^ζ industrial
  28. 28
    29. Codificador de acuerdo a la reivindicación 27 ó 28, CARACTERIZADO porque el constructor es configurado para adoptar los componentes horizontales y verticales de un vector de movimiento predeterminado para todos los bloques de un grupo de fusión asociado, o refinar el mismo por los componentes horizontales y verticales de 5 las diferencias de vector de movimiento asociado con los bloques del grupo de fusión.
  29. 29
    30. Método para decodificar un video a partir del flujo de datos en los cuales los componentes horizontales y verticales de las diferencias de vector de movimiento son codificados usando binarizaciones de los componentes horizontales y verticales, 10 las binarizaciones igualando un código unario truncado de los componentes horizontales y verticales respectivamente, dentro de un primer intervalo del dominio de componentes horizontales y verticales bajo un valor de corte, y una combinación de un prefijo en forma de un código unario truncado para el valor de corte y un sufijo en forma de un código Exp-Golomb de los componentes horizontales y 15 verticales, respectivamente, dentro de un segundo intervalo del dominio de componentes horizontales y verticales inclusive, y sobre el valor de corte, CARACTERIZADO porque el valor de corte es dos y el código Exp-Golomb tiene orden uno, comprendiendo - para los componentes horizontales y verticales de las diferencias de vector de 20 movimiento, derivando el código unario truncado del flujo de datos usando decodificación de entropía binaria de contexto adaptativo con exactamente un contexto por posición de bin del código unario truncado, el cual es común para los componentes horizontales y verticales de las diferencias de vector de 151 movimiento, y el código Exp-Golomb usando un modo de derivación de equiprobabilidad constante para obtener las binarizaciones de diferencias de vector de movimiento;- debinarizando las binarizaciones de los elementos de sintaxis de diferencia de vector de movimiento para obtener valores enteros de los componentes horizontales y verticales de las diferencias de vector de movimiento;- reconstruyendo el video basado en los valores enteros de los componentes horizontales y verticales de las diferencias de vector de movimiento.
  30. 30
    31. Método para codificar un video en un flujo de datos, CARACTERIZADO porque comprende:- codificar de manera predictiva el video por predicción de movimiento compensado usando vectores de movimiento y codificar de manera predictiva los vectores de movimiento prediciendo los vectores de movimiento y estableciendo valores enteros de componentes horizontales y verticales de diferencias de vector de movimiento para representar un error de predicción de los vectores de movimiento predichos;- binarizando los valores enteros para obtener binarizaciones de los componentes horizontales y verticales de las diferencias de vector de movimiento, las binarizaciones igualando un código unario truncado de los componentes, respectivamente, dentro de un primer intervalo del dominio de los componentes horizontales y verticales bajo un valor de corte, y una combinación de un prefijo en forma de un código unario truncado para el valor de corte y un sufijo en forma de un código Exp-Golomb de los componentes horizontales y verticales, ΐ 152 respectivamente, dentro de un segundo intervalo del dominio de los componentes horizontales y verticales inclusive y sobre el valor de corte, donde el valor de corte es dos y el código Exp-Golomb tiene orden uno;y - para los componentes horizontales y verticales de las diferencias de vector de movimiento, codificando el código unario truncado en el flujo de datos usando la codificación de entropía binaria de contexto adaptativo con exactamente un contexto por posición de bin del código unario truncado, el cual es común para los componentes horizontales y verticales de las diferencias de vector de movimiento, y el código Exp-Golomb usando el modo de derivación de equiprobabilidad constante.
  31. 31
    32. Un medio de almacenamiento legible por computadora para decodificar un video a partir del flujo de datos, que comprende el método de la reivindicación 30.
  32. 32
    33. Un medio de almacenamiento legible por computadora para codificar un video en un flujo de datos, que comprende el método de la reivindicación 31. 153
Independent claims32