ES3071057T3 - Image processing device and method - Google Patents

Image processing device and method

Info

Publication number
ES3071057T3
ES3071057T3 ES20752383T ES20752383T ES3071057T3 ES 3071057 T3 ES3071057 T3 ES 3071057T3 ES 20752383 T ES20752383 T ES 20752383T ES 20752383 T ES20752383 T ES 20752383T ES 3071057 T3 ES3071057 T3 ES 3071057T3
Authority
ES
Spain
Prior art keywords
processing
unit
context
subblocks
subblock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20752383T
Other languages
English (en)
Inventor
Atsushi Yamato
Takeshi Tsukuba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Application granted granted Critical
Publication of ES3071057T3 publication Critical patent/ES3071057T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115—Selection of the code volume for a coding unit prior to coding
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146—Data rate or code amount at the encoder output
    • H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

La presente divulgación se refiere a un dispositivo y método de procesamiento de imágenes que permite reducir la degradación de la eficiencia de codificación. La presente invención consiste en: establecer un valor límite superior para el número de bins asignados a un subbloque objetivo de procesamiento, distribuyendo dicho número entre subbloques distintos de cero; derivar un valor de elemento sintáctico para el subbloque objetivo de procesamiento utilizando datos de coeficientes derivados de datos de imagen, de modo que el número de bins no supere el valor límite superior; y codificar el valor del elemento sintáctico derivado para generar datos codificados. La presente divulgación es aplicable, por ejemplo, a un dispositivo de procesamiento de imágenes, un dispositivo de codificación de imágenes, un dispositivo de decodificación de imágenes, un dispositivo de transmisión, un dispositivo de recepción, un dispositivo de transmisión y recepción, un dispositivo de procesamiento de información, un dispositivo de imagen, un dispositivo de reproducción, un dispositivo electrónico, un método de procesamiento de imágenes o un método de procesamiento de información. (Traducción automática con Google Translate, sin valor legal)

Description

[0001] DESCRIPCIÓN
[0002] Dispositivo y método de procesamiento de imágenes
[0003] Campo técnico
[0004] La presente descripción se refiere a un aparato y método de procesamiento de imágenes y, en particular, a un aparato y método de procesamiento de imágenes capaces de suprimir una reducción en la eficiencia de codificación como se define en las reivindicaciones adjuntas.
[0005] Antecedentes de la técnica
[0006] Convencionalmente, en una codificación aritmética binaria adaptativa por contexto (CABAC) para la codificación de imágenes, cuanto mayor sea el número de símbolos binarios (bins) codificados por contexto al expresar un valor de elemento sintáctico, mejor será la eficiencia de codificación y más se podrá suprimir una reducción en la calidad de la imagen. Sin embargo, a medida que aumenta el número de bins codificados por contexto, aumenta la cantidad de procesamiento. Por lo tanto, se ha propuesto un método para restringir el número de bins codificados por contexto en unidades de subbloque (por ejemplo, el Documento no patente 1).
[0007] Lista de citas
[0008] Documento no patente
[0009] Documento no patente 1: T.-D. Chuang, S.-T. Hsiang, Z.-Y. Lin, C.-Y. Chen, Y.-W. Huang, S.-M. Lei (MediaTek), “CE7 (Tests 7.1, 7.2, 7.3, y 7.4): Constraints on context-coded bins for coefficient coding”, JVET-M0173, del Joint Video Exploration Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 presentado en el 13er Encuentro: Marrakech, MA, 9-18 de enero de 2019
[0010] Documento no patente 13: T-D CHUANG Y COL.: “CE7-related: Constraints on context-coded bins for coefficient coding”, 12. JVET MEETING; 20181003-20181012; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 E ITU-T SG. 16), n.º JVET-L0145, 8 de octubre de 2018 (08-10-2018), XP030251675, analiza las restricciones sobre los bins codificados por contexto para la codificación de coeficientes.
[0011] Documento no patente 14: T-D CHUANG Y COL.: “CE7-related: Constraints on context-coded bins for coefficient coding”, 12. JVET MEETING; 20181003-20181012; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 E ITU-T SG. 16), n.º JVET-L0145, 8 de octubre de 2018 (08-10-2018), XP030251680, analiza las restricciones sobre los bins codificados por contexto para la codificación de coeficientes.
[0012] Documento no patente 15: T-D CHUANG Y COL.: “CE7-related: Constraints on context-coded bins for coefficient coding”, 12. JVET MEETING; 20181003-20181012; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 E ITU-T SG. 16), n.º JVET-L0145, 8 de octubre de 2018 (08-10-2018), XP030251679, analiza las restricciones sobre los bins codificados por contexto para la codificación de coeficientes.
[0013] Resumen de la invención
[0014] Problemas a resolver mediante la invención
[0015] Sin embargo, en el caso de este método, dado que el número de bins codificados por contexto está restringido de modo uniforme, los datos de coeficientes no pueden aumentarse ni disminuirse localmente según las características de la imagen, y existe la posibilidad de que la eficiencia de codificación se reduzca innecesariamente.
[0016] La presente descripción se ha realizado en vista de tales circunstancias y puede suprimir una reducción en la eficiencia de codificación.
[0017] Soluciones a problemas
[0018] La invención se define mediante las reivindicaciones adjuntas.
[0019] Breve descripción de los dibujos
[0020] La Figura 1 es un diagrama que explica los subbloques.
[0021] La Figura 2 es un diagrama que explica el método n.º 1.
[0022] La Figura 3 es un diagrama que explica un ejemplo de aplicación del método n.º 1.
[0023] La Figura 4 es un diagrama de bloques que muestra un ejemplo de configuración principal de un aparato de codificación.
[0024] La Figura 5 es un diagrama de bloques que muestra un ejemplo de configuración principal de CABAC.
[0025] La Figura 6 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de codificación.
[0026] La Figura 7 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0027] La Figura 8 es un diagrama que muestra un ejemplo de una sintaxis.
[0028] La Figura 9 es un diagrama que sigue a la Figura 8 que muestra un ejemplo de una sintaxis.
[0029] La Figura 10 es un diagrama que sigue a la Figura 9 que muestra un ejemplo de una sintaxis.
[0030] La Figura 11 es un diagrama que sigue a la Figura 10 que muestra un ejemplo de una sintaxis.
[0031] La Figura 12 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de CABAC.
[0032] La Figura 13 es un diagrama de bloques que muestra un ejemplo de configuración principal de un aparato de decodificación.
[0033] La Figura 14 es un diagrama de bloques que muestra un ejemplo de configuración principal de CABAC.
[0034] La Figura 15 es un diagrama de flujo que explica un ejemplo de un flujo de un procesamiento de decodficación. La Figura 16 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de CABAC.
[0035] La Figura 17 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0036] La Figura 18 es un diagrama que explica el método n.º 2.
[0037] La Figura 19 es un diagrama que explica un ejemplo de aplicación del método n.º 2.
[0038] La Figura 20 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0039] La Figura 21 es un diagrama que muestra un ejemplo de una sintaxis.
[0040] La Figura 22 es un diagrama que sigue a la Figura 21 que muestra un ejemplo de una sintaxis.
[0041] La Figura 23 es un diagrama que sigue a la Figura 22 que muestra un ejemplo de una sintaxis.
[0042] La Figura 24 es un diagrama que sigue a la Figura 23 que muestra un ejemplo de una sintaxis.
[0043] La Figura 25 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0044] La Figura 26 es un diagrama que explica el método n.º 3.
[0045] La Figura 27 es un diagrama que explica un ejemplo de aplicación del método n.º 3.
[0046] La Figura 28 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0047] La Figura 29 es un diagrama que muestra un ejemplo de una sintaxis.
[0048] La Figura 30 es un diagrama que sigue a la Figura 29 que muestra un ejemplo de una sintaxis.
[0049] La Figura 31 es un diagrama que sigue a la Figura 30 que muestra un ejemplo de una sintaxis.
[0050] La Figura 32 es un diagrama que sigue a la Figura 31 que muestra un ejemplo de una sintaxis.
[0051] La Figura 33 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0052] La Figura 34 es un diagrama que explica el método n.º 4.
[0053] La Figura 35 es un diagrama que explica un ejemplo de aplicación del método n.º 4.
[0054] La Figura 36 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0055] La Figura 37 es un diagrama de flujo que sigue a la Figura 36 que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0056] La Figura 38 es un diagrama que muestra un ejemplo de una sintaxis.
[0057] La Figura 39 es un diagrama que sigue a la Figura 38 que muestra un ejemplo de una sintaxis.
[0058] La Figura 40 es un diagrama que sigue a la Figura 39 que muestra un ejemplo de una sintaxis.
[0059] La Figura 41 es un diagrama que sigue a la Figura 40 que muestra un ejemplo de una sintaxis.
[0060] La Figura 42 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0061] La Figura 43 es un diagrama de flujo que sigue a la Figura 42 que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0062] La Figura 44 es un diagrama que explica el método n.º 5.
[0063] La Figura 45 es un diagrama que explica un ejemplo de aplicación del método n.º 5.
[0064] La Figura 46 es un diagrama que explica el método n.º 6.
[0065] La Figura 47 es un diagrama que explica un ejemplo de aplicación del método n.º 6.
[0066] La Figura 48 es un diagrama que explica el método n.º 7.
[0067] La Figura 49 es un diagrama que explica un ejemplo de aplicación del método n.º 7.
[0068] La Figura 50 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0069] La Figura 51 es un diagrama que muestra un ejemplo de una sintaxis.
[0070] La Figura 52 es un diagrama que sigue a la Figura 51 que muestra un ejemplo de una sintaxis.
[0071] La Figura 53 es un diagrama que sigue a la Figura 52 que muestra un ejemplo de una sintaxis.
[0072] La Figura 54 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0073] La Figura 55 es un diagrama que explica el método n.º 8.
[0074] La Figura 56 es un diagrama que explica un ejemplo de aplicación del método n.º 8.
[0075] La Figura 57 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de valores de elementos sintácticos.
[0076] La Figura 58 es un diagrama de flujo que explica un ejemplo de un flujo de procesamiento de derivación de datos de coeficientes.
[0077] La Figura 59 es un diagrama de bloques que muestra un ejemplo de configuración principal de un aparato de codificación de imágenes.
[0078] La Figura 60 es un diagrama de flujo que muestra un ejemplo de un flujo de procesamiento de codificación de imágenes.
[0079] La Figura 61 es un diagrama de bloques que muestra un ejemplo de configuración principal de un aparato de decodificación de imágenes.
[0080] La Figura 62 es un diagrama de flujo que muestra un ejemplo de un flujo de procesamiento de decodficación de imágenes.
[0081] La Figura 63 es un diagrama de bloques que muestra un ejemplo de configuración principal de un ordenador.
[0082] Modo de llevar a cabo la invención
[0083] Los modos de llevar a cabo la presente descripción (en lo sucesivo, las realizaciones) se describen a continuación. Obsérvese que la descripción se presentará en el siguiente orden.
[0084] 1. CABAC
[0085] 2. Primera realización (paso del número de bins del subbloque cero al subbloque distinto de cero)
[0086] 3. Segunda realización (compartición de bins máximos dentro de un subbloque distinto de cero)
[0087] 4. Tercera realización (uso de bins adicionales de subbloques distintos de cero en otro subbloque distinto de cero) 5. Cuarta realización (combinación de n.º 1, n.º 2 y n.º 3)
[0088] 6. Quinta realización (aplicación de n.º 1)
[0089] 7. Sexta realización (extensión de la unidad para administrar el número de bins codificados por contexto a un tamaño mayor que TU [CU, VPDU, CTU y similares])
[0090] 8. Séptima realización (eliminación del límite superior del valor máximo del número de bins codificados por contexto en la estructura sintáctica)
[0091] 9. Octava realización (maximización del número de bins del subbloque distinto de cero junto al subbloque cero) 10. Novena realización (aplicación a aparatos de codificación de imágenes y aparatos de decodificación de imágenes) 11. Anexo
[0092] <1. CABAC
[0093] <Documentos y similares que respaldan los contenidos técnicos y los términos técnicos>
[0094] El ámbito descrito en la presente tecnología no se limita al contenido descrito en las realizaciones, sino que cubre el contenido descrito en los siguientes documentos no patente y similares conocidos en el momento de la solicitud y el contenido de otros documentos a los que se hace referencia en los siguientes documentos no patente.
[0095] Documento no patente 1: (descrito anteriormente)
[0096] Documento no patente 2: Recomendación ITU-T H.264 (04/2017) “Advanced video coding for generic audiovisual services”, abril de 2017
[0097] Documento no patente 3: Recomendación ITU-T H.265 (12/2016) “High efficiency video coding”, diciembre de 2016 Documento no patente 4: J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, “Algorithm Description of Joint Exploration Test Model (JEM7)”, JVET-G1001, del Joint Video Exploration Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 117º Encuentro: Turín, IT, 13-21 de julio de 2017
[0098] Documento no patente 5: B. Bross, J. Chen, S. Liu, “Versatile Video Coding (Draft 3),” JVET-L1001, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1112º Encuentro: Macau, CN, 3-12 de octubre de 2018
[0099] Documento no patente 6: J. J. Chen, Y. Ye, S. Kim, “Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)”, JVET-L1002, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1112º Encuentro: Macau, CN, 3-12 de octubre de 2018
[0100] Documento no patente 7: J. Boyce (Intel), Y. Ye (InterDigital), Y.-W. Huang (Mediatek), M. Karczewicz (Qualcomm), E. Francois (Technicolor), W. Husak (Dolby), J. Ridge (Nokia), A. Abbas (GoPro), “Two tier test model”, JVET- J0093, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1110º Encuentro: San Diego, EE. UU., 10-20 de abril de 2018
[0101] Documento no patente 8: S. Yoo, J. Choi, J. Heo, J. Choi, L. Li, J. Lim, S. Kim (LGE), “Non-CE7: Residual rearrangement for transform skipped blocks”, JVET-M0278, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1113er Encuentro: Marrakech, MA, 9-18 de enero de 2019
[0102] Documento no patente 9: B. Bross, T. Nguyen, P. Keydel, H. Schwarz, D. Marpe, T. Wiegand (HHI), “NonCE8:Unified Transform Type Signalling and Residual Coding for Transform Skip”, JVET-M0464, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1113er Encuentro: Marrakech, MA, 9-18 de enero de 2019 Documento no patente 10: Y. Zhao, H. Gao, H. Yang, J. Chen (Huawei), “CE6:Sub-block transform for inter blocks (Test 6.4.1)”, JVET-M0140, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 13er Encuentro: Marrakech, MA, 9-18 de enero de 2019
[0103] Documento no patente 11: S. De-Luxan-Hernandez, V. George, J. Ma, T. Nguyen, H. Schwarz, D. Marpe, T. Wiegand (HHI), “CE3:Intra Sub-Partitions Coding Mode (Tests 1.1.1 and 1.1.2)”, JVET-M0102, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1113er Encuentro: Marrakech, MA, 9-18 de enero de 2019 Documento no patente 12: B. Bross, J. Chen, S. Liu, “Versatile Video Coding (Draft 4),” JVET-M1001, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 1112º Encuentro: Macau, CN, 3-12 de octubre de 2018
[0104] Es decir, los contenidos descritos en los documentos no patente mencionados anteriormente también son la base para determinar los requisitos de soporte. Por ejemplo, incluso en un caso donde se describa directamente en los ejemplos una estructura de bloques en árbol cuaternario y una estructura de bloques en árbol cuaternario más árbol binario (QTBT) descritas en los documentos no patente anteriormente mencionados, estos caen dentro del ámbito de la descripción de la presente tecnología y se cumplen los requisitos de soporte de las reivindicaciones. Además, por ejemplo, términos técnicos como análisis sintáctico, sintaxis y semántica están igualmente dentro del ámbito de la descripción de la presente tecnología, incluso en un caso donde no se describan directamente en los ejemplos, y se cumplen los requisitos de soporte de las reivindicaciones.
[0105] Además, en la presente memoria descriptiva, un “bloque” (no un bloque que indique una unidad de procesamiento) utilizado en la descripción como un área parcial de una imagen (fotografía) o una unidad de procesamiento indica cualquier área parcial en la imagen a menos que se especifique lo contrario, y su tamaño, forma, características y similares no están limitados. Por ejemplo, el “bloque” incluye cualquier área parcial (unidad de procesamiento), tal como bloque de transformación (TB), unidad de transformación (TU), bloque de predicción (PB), unidad de predicción (PU), unidad de codificación más pequeña (SCU), unidad de codificación (CU), unidad de codificación más grande (LCU), bloque en árbol de codificación (CTB), unidad de árbol de codificación (CTU), bloque de transformación, subbloque, el macrobloque, tesela, segmento y similares descritos en los documentos no patente mencionados anteriormente.
[0106] Además, cuando se especifica el tamaño de ese bloque, no solo puede especificarse directamente el tamaño del bloque, sino que también puede especificarse indirectamente el tamaño del bloque. Por ejemplo, el tamaño del bloque puede especificarse utilizando información de identificación que identifique el tamaño. Además, por ejemplo, el tamaño del bloque puede especificarse mediante la relación o diferencia con respecto al tamaño de un bloque de referencia (por ejemplo, LCU o SCU). Por ejemplo, en un caso donde la información para especificar un tamaño de bloque se transmita como un elemento sintáctico o similar, la información para especificar indirectamente el tamaño, como se ha descrito anteriormente, puede utilizarse como información. Al hacerlo, puede reducirse la cantidad de información de la información y puede mejorarse la eficiencia de codificación. Además, especificar el tamaño del bloque también incluye especificar el intervalo de un tamaño de bloque (por ejemplo, especificar el intervalo permitido de un tamaño de bloque).
[0107] Además, en la presente memoria descriptiva, la codificación incluye no solo el procesamiento completo de conversión de una imagen en un flujo de bits, sino también una parte del procesamiento. Por ejemplo, no solo incluye procesamiento que incluye procesamiento de predicción, transformación ortogonal, cuantización, codificación aritmética y similares, sino que también incluye el procesamiento que se refiere colectivamente a cuantización y a codificación aritmética, y procesamiento que incluye procesamiento de predicción, cuantización y codificación aritmética. De forma similar, la decodificación incluye no solo todo el procesamiento de convertir un flujo de bits en una imagen, sino también una parte del procesamiento. Por ejemplo, no solo incluye el procesamiento que incluye decodificación aritmética inversa, cuantización inversa, transformación ortogonal inversa, el procesamiento de predicción y similares, sino también procesamiento que incluye decodificación aritmética inversa y cuantización inversa, procesamiento que incluye decodificación aritmética inversa, cuantización inversa y procesamiento de predicción.
[0108] <Número de bins codificados por contexto>
[0109] El código aritmético binario adaptativo basado en el contexto (CABAC), que se usa para la codificación de imágenes, tal como la codificación de vídeo de alta eficiencia (HEVC), es un método de codificación que binariza el valor del elemento sintáctico que expresa los datos de coeficientes derivados de los datos de imagen mediante un método predeterminado y realiza la codificación aritmética cambiando un modelo de frecuencia de aparición (contexto) para cada bit de la cadena de bits binarizada. Los datos de coeficientes se expresan, por ejemplo, mediante un elemento sintáctico tal como sig_flag que indica el código del coeficiente, gt1_flag que indica si el valor absoluto del coeficiente es 1 o no, par_flag que indica si el coeficiente es par o impar, y gt2_flag que indica si el valor absoluto del coeficiente es 2 o no.
[0110] En general, cuanto mayor sea el número de bins codificados por contexto al expresar un valor de elemento sintáctico, mejor será la eficiencia de codificación y más se podrá suprimir una reducción en la calidad de la imagen. Sin embargo, a medida que aumenta el número de bins codificados por contexto, aumenta la cantidad de procesamiento. Por lo tanto, por ejemplo, en el documento no patente 1, se ha propuesto un método para restringir el número de bins codificados por contexto en unidades de subbloque.
[0111] Sin embargo, en el caso de este método, dado que el número de bins codificados por contexto está restringido de modo uniforme, los datos de coeficientes no pueden aumentarse ni disminuirse localmente según las características de la imagen, y existe la posibilidad de que la eficiencia de codificación se reduzca innecesariamente. En otras palabras, existe el riesgo de reducir la calidad de imagen de una imagen decodificada.
[0112] <Restricción variable sobre el número de bins codificados por contexto>
[0113] Por lo tanto, la restricción sobre el número de bins codificados por contexto en cada subbloque se hace variable. Al hacerlo, los datos de coeficientes pueden aumentarse o disminuirse localmente de forma adicional según las características de la imagen, de modo que pueda suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0114] En ese momento, por ejemplo, el número de bins en unidades de bloque (imagen, segmento, CTU, unidad de datos de canalización virtual (VPDU), CU, unidad de acceso (AU), TU o similares) puede ser similar a un caso donde haya un número fijo de bins codificados por contexto en cada subbloque. Al hacerlo, es posible suprimir una reducción en la eficiencia de codificación mientras se suprime un aumento en la cantidad de procesamiento.
[0115] Por ejemplo, el número de bins codificados por contexto puede distribuirse entre subbloques distintos de cero en el bloque, y puede establecerse el valor límite superior del número de bins codificados por contexto asignados a cada subbloque. A continuación, para un subbloque objetivo de procesamiento, el valor del elemento sintáctico puede derivarse de los datos de coeficientes correspondientes a los datos de imagen, al tiempo que impide que el número de bins codificados por contexto supere el valor límite superior.
[0116] Además, por ejemplo, para un subbloque objetivo de procesamiento, el valor del elemento sintáctico puede extraerse mediante análisis de la sintaxis y los datos de coeficientes correspondientes a los datos de imagen pueden derivarse al tiempo que se impide que el número de bins codificados por contexto supere el valor límite superior.
[0117] Además, por ejemplo, el número de bins asignados a subbloques cero en el bloque puede distribuirse entre subbloques distintos de cero, y puede establecerse el valor límite superior del número de bins codificados por contexto asignados a cada subbloque. A continuación, para un subbloque objetivo de procesamiento, el valor del elemento sintáctico puede derivarse de los datos de coeficientes correspondientes a los datos de imagen, al tiempo que impide que el número de bins codificados por contexto supere el valor límite superior.
[0118] Además, por ejemplo, para un subbloque objetivo de procesamiento, el valor del elemento sintáctico puede extraerse mediante análisis de la sintaxis y los datos de coeficientes correspondientes a los datos de imagen pueden derivarse al tiempo que impide que el número de bins codificados por contexto supere el valor límite superior.
[0119] <Bloque>
[0120] Por ejemplo, un bloque 10 como se muestra en A de la Figura 1 es un bloque objetivo de procesamiento. El bloque 10 es, por ejemplo, una TU de 8x8 píxeles, que incluye cuatro subbloques (subbloque 11-1, subbloque 11-2, subbloque 11-3 y subbloque 11-4). En lo que sigue, en un caso donde no sea necesario describir cada subbloque por separado, se hará referencia a ellos como subbloques 11. Es decir, en el ejemplo de A de la Figura 1, el bloque 10 incluye 2x2 subbloques 11. Por lo tanto, cada subbloque 11 incluye 4x4 píxeles.
[0121] En A de la Figura 1, el valor numérico en cada subbloque 11 indica el número de bins codificados por contexto generados en el subbloque 11. Por ejemplo, cuando el número de bins codificados por contexto por subbloque 11 se restringe a 30 bins, el número de bins codificados por contexto generados en cada subbloque 11 se limita a 30 bins o menos.
[0122] Obsérvese que el orden de procesamiento de cada subbloque 11 está en el orden del código de Morton (curva de orden Z) como se muestra en B de la Figura 1.
[0123] <2. Primera realización>
[0124] <Método n.º 1>
[0125] Por ejemplo, como se muestra en la fila superior de la tabla de la Figura 2, el número de bins codificados por contexto en un subbloque cero puede pasarse a un subbloque distinto de cero.
[0126] Un subbloque cero es un subbloque cuyos coeficientes son todos cero (0). Además, un subbloque distinto de cero es un subbloque en el que existe al menos un coeficiente distinto de cero. Es decir, el número de bins codificados por contexto asignados al subbloque cero en un caso donde el valor límite superior del número de bins codificados por contexto se establezca uniformemente para cada subbloque, como en el método descrito en el documento no patente 1, se asigna al subbloque distinto de cero.
[0127] Por ejemplo, como se muestra en la segunda fila desde la parte superior de la tabla que se muestra en la Figura 2, se saca un indicador de coeficientes del subbloque (coded_sub_block_flag) del bucle existente y se hace independiente. El indicador de coeficiente del subbloque es un indicador que indica si el subbloque contiene o no un coeficiente distinto de cero. Por ejemplo, en un caso donde coded_sub_block_flag = 1, indica que el subbloque correspondiente al indicador es un subbloque distinto de cero, y en un caso donde coded_sub_block_flag = 0, indica que el subbloque correspondiente al indicador es un subbloque cero. El procesamiento relacionado con la derivación del valor del elemento sintáctico se somete a un procesamiento en bucle para cada subbloque, pero en este método, el procesamiento relacionado con el indicador de coeficiente del subbloque se realiza fuera del procesamiento en bucle. Es decir, primero se extraen por análisis sintáctico los indicadores de coeficientes de subbloque para todos los subbloques de la TU.
[0128] A continuación, se cuenta el subbloque con coded_sub_block_flag = 0, es decir, se cuenta el subbloque cero. Luego, el número de subbloques cero × el número de bins codificados por contexto para un subbloque se pasa (añade) al subbloque distinto de cero. Dado que el número de bins codificados por contexto no se consume en el subbloque cero, esa cantidad se pasa al subbloque distinto de cero.
[0129] Además, la administración del número de bins codificados por contexto es cerrada dentro de la TU (unidad predeterminada). Es decir, el número de bins codificados por contexto como se ha descrito anteriormente se distribuye para cada bloque.
[0130] Al hacerlo, como se muestra en la tercera fila desde la parte superior de la tabla que se muestra en la Figura 2, el número de bins codificados por contexto adicionales en el subbloque cero puede utilizarse como el número de bins codificados por contexto en el subbloque distinto de cero, y puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada. Por ejemplo, como se muestra en A de la Figura 3, en un caso donde se establezca una restricción a 30 bins por subbloque, incluso cuando el subbloque 11-2 y el subbloque 11-3 sean subbloques cero, su número de bins codificados por contexto adicionales no puede utilizarse en el subbloque 11-1 o el subbloque 11-4, que son subbloques distintos de cero. Es decir, el número de bins codificados por contexto en el subbloque 11-1 y el subbloque 11-4 no puede ser mayor de 30 bins.
[0131] Por otro lado, en el caso del método n.º 1, tal como se muestra en B de la Figura 3, incluso cuando el subbloque 11-2 y el subbloque 11-3 sean subbloques cero, su número de bins codificados por contexto adicionales puede asignarse al subbloque 11-1 o al subbloque 11-4, que son subbloques distintos de cero. Es decir, en esos subbloques, puede generarse un valor de elemento sintáctico de 30 bins o más. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0132] <Aparato de codificación>
[0133] La Figura 4 es un diagrama de bloques que muestra un ejemplo de la configuración de un aparato de codificación, que es un aspecto de un aparato de procesamiento de imágenes al que se aplica la presente tecnología. Un aparato 100 de codificación mostrado en la Figura 4 es un aparato que codifica los datos de coeficientes derivados de los datos de imagen por CABAC y genera los datos codificados.
[0134] Obsérvese que la Figura 4 muestra los elementos principales, tales como la unidad de procesamiento y el flujo de datos, y no todos se muestran en la Figura 4. Es decir, en el aparato 100 de codificación puede haber una unidad de procesamiento que no se muestre como un bloque en la Figura 4, o puede haber un procesamiento o flujo de datos que no se muestre como una flecha o similar en la Figura 4.
[0135] Como se muestra en la Figura 4, el aparato 100 de codificación incluye un secuenciador 101 y un CABAC 102. El secuenciador 101 adquiere datos de coeficientes y similares derivados de los datos de imagen. Además, el secuenciador 101 adquiere adecuadamente información de control, tal como información de indicadores y similares. El secuenciador 101 lo utiliza para derivar el valor del elemento sintáctico. Además, el secuenciador 101 suministra el valor del elemento sintáctico derivado y similares al CABAC 102. El CABAC 102 adquiere el valor del elemento sintáctico y similares suministrados desde el secuenciador 101. El CABAC 102 binariza el valor del elemento sintáctico mediante un método predeterminado, realiza una codificación aritmética cambiando el contexto para cada bit de la cadena de bits binarizada y genera los datos codificados. El CABAC 102 envía los datos codificados generados al exterior del aparato 100 de codificación.
[0136] Obsérvese que estas unidades de procesamiento (secuenciador 101 y CABAC 102) tienen una configuración arbitraria. Por ejemplo, cada unidad de procesamiento puede incluir un circuito lógico que realice el procesamiento mencionado anteriormente. Además, cada unidad de procesamiento puede incluir, por ejemplo, una unidad central de procesamiento (CPU), una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM) y similares, y ejecutar un programa que las utilice para realizar el procesamiento mencionado anteriormente. Por supuesto, cada unidad de procesamiento puede tener ambas configuraciones, y una parte del procesamiento mencionado anteriormente puede realizarse mediante el circuito lógico, y el resto puede realizarse ejecutando el programa. Las configuraciones de las unidades de procesamiento respectivas pueden ser independientes entre sí. Por ejemplo, algunas unidades de procesamiento pueden realizar una parte del procesamiento mencionado anteriormente mediante el circuito lógico, y algunas otras unidades de procesamiento pueden ejecutar el programa para realizar el procesamiento mencionado anteriormente, y otras unidades de procesamiento pueden realizar el procesamiento mencionado anteriormente tanto mediante el circuito lógico como mediante la ejecución del programa.
[0137] <CABAC>
[0138] La Figura 5 es un diagrama de bloques que muestra un ejemplo de configuración principal de CABAC 102. Obsérvese que la Figura 5 muestra los elementos principales, tales como la unidad de procesamiento y el flujo de datos, y no todos se muestran en la Figura 5. Es decir, en el CABAC 102 puede haber una unidad de procesamiento que no se muestre como un bloque en la Figura 5, o puede haber un procesamiento o flujo de datos que no se muestre como una flecha o similar en la Figura 5.
[0139] Como se muestra en la Figura 5, el CABAC 102 incluye una unidad 121 de binarización, una unidad 122 de selección, un modelo 123 de contexto, una unidad 124 de codificación aritmética, una unidad 125 de codificación aritmética y una unidad 126 de selección.
[0140] La unidad 121 de binarización adquiere el valor del elemento sintáctico suministrado desde el secuenciador 101, realiza la binarización utilizando un método definido para cada elemento sintáctico y genera una cadena de bits binarizada. La unidad 121 de binarización suministra la cadena de bits binarizada a la unidad 122 de selección. La unidad 122 de selección adquiere la cadena de bits binarizada suministrada desde la unidad 121 de binarización y la información del indicador isBypass. La unidad 122 de selección selecciona el destino de suministro de la cadena de bits binarizada basándose en el valor de isBypass. Por ejemplo, en un caso donde isBypass = 0, la unidad 122 de selección determina que es un modo regular y suministra la cadena de bits binarizada al modelo 123 de contexto. Además, en un caso donde isBypass = 1, la unidad 122 de selección determina que es un modo bypass y suministra la cadena de bits binarizada a la unidad 125 de codificación aritmética.
[0141] El modelo 123 de contexto cambia dinámicamente el modelo de contexto a aplicar según un objetivo de codificación y la situación del entorno. Por ejemplo, el modelo 123 de contexto contiene una variable de contexto ctx, y cuando la cadena de bits binarizada se adquiere de la unidad 122 de selección, se lee la variable de contexto ctx correspondiente a cada posición del bin (binIdx) de una cadena de bins definida para cada elemento sintáctico. El modelo 123 de contexto suministra la cadena de bits binarizada y la variable de contexto ctx leída a la unidad 124 de codificación aritmética.
[0142] Cuando la unidad 124 de codificación aritmética adquiere la cadena de bits binarizada y la variable de contexto ctx suministradas desde el modelo 123 de contexto, consulta el estado de probabilidad de la variable de contexto ctx y codifica aritméticamente (codificación de contexto) el valor del bin en binIdx de la cadena de bits binarizada en el modo regular de CABAC. La unidad 124 de codificación aritmética suministra los datos codificados generados por la codificación de contexto a la unidad 126 de selección. Además, la unidad 124 de codificación aritmética suministra la variable de contexto ctx después del procesamiento de codificación de contexto al modelo 123 de contexto y hace que el modelo 123 de contexto contenga la variable de contexto ctx.
[0143] La unidad 125 de codificación aritmética codifica aritméticamente (codificación por bypass) la cadena de bits binarizada suministrada desde la unidad 122 de selección en el modo bypass de CABAC. La unidad 125 de codificación aritmética suministra los datos codificados generados por la codificación bypass a la unidad 126 de selección.
[0144] La unidad 126 de selección adquiere la información de indicador isBypass y selecciona los datos codificados que se emitirán basándose en el valor del isBypass. Por ejemplo, en el caso de isBypass = 0, la unidad 126 de selección determina que es el modo regular, adquiere los datos codificados suministrados desde la unidad 124 de codificación aritmética y los envía al exterior de CABAC 102 (aparato 100 de codificación). Además, en el caso de isBypass = 1, la unidad 126 de selección determina que es el modo bypass, adquiere los datos codificados suministrados desde la unidad 125 de codificación aritmética y los envía al exterior de CABAC 102 (aparato 100 de codificación).
[0145] Obsérvese que estas unidades de procesamiento (de la unidad 121 de binarización a la unidad 126 de selección) tienen una configuración arbitraria. Por ejemplo, cada unidad de procesamiento puede incluir un circuito lógico que realice el procesamiento mencionado anteriormente. Además, cada unidad de procesamiento puede incluir, por ejemplo, una CPU, una ROM, una RAM y similares, y ejecutar un programa que las utilice para realizar el procesamiento mencionado anteriormente. Por supuesto, cada unidad de procesamiento puede tener ambas configuraciones, y una parte del procesamiento mencionado anteriormente puede realizarse mediante el circuito lógico, y el resto puede realizarse ejecutando el programa. Las configuraciones de las unidades de procesamiento respectivas pueden ser independientes entre sí. Por ejemplo, algunas unidades de procesamiento pueden realizar una parte del procesamiento mencionado anteriormente mediante el circuito lógico, y algunas otras unidades de procesamiento pueden ejecutar el programa para realizar el procesamiento mencionado anteriormente, y otras unidades de procesamiento pueden realizar el procesamiento mencionado anteriormente tanto mediante el circuito lógico como mediante la ejecución del programa.
[0146] <Flujo de procesamiento de codificación>
[0147] A continuación, se describirá un ejemplo del flujo de procesamiento de codificación ejecutado por el aparato 100 de codificación con referencia al diagrama de flujo de la Figura 6.
[0148] Cuando se inicia el procesamiento de codificación, en la etapa S101, el secuenciador 101 del aparato 100 de codificación ejecuta el procesamiento de derivación del valor del elemento sintáctico y deriva el valor del elemento sintáctico a partir de los datos de coeficientes (datos de coeficientes derivados de los datos de imagen) introducidos en el aparato 100 de codificación.
[0149] En la etapa S102, el CABAC 102 realiza el procesamiento de CABAC, codifica el valor del elemento sintáctico obtenido en la etapa S101 por CABAC y genera datos codificados. El CABAC 102 envía los datos codificados generados al exterior del aparato 100 de codificación.
[0150] Cuando finaliza el procesamiento de la etapa S102, finaliza el procesamiento de codificación.
[0151] <Flujo del procesamiento de derivación del valor del elemento sintáctico>
[0152] A continuación, se describirá un ejemplo del flujo del procesamiento de derivación del valor del elemento sintáctico ejecutado en la etapa S101 de la Figura 6 con referencia al diagrama de flujo de la Figura 7. Las Figuras 8 a 11 son diagramas que muestran un ejemplo de la sintaxis de la codificación residual. La descripción se proporcionará junto con estos dibujos según sea necesario. Obsérvese que, en la sintaxis de las Figuras 8 a 11, los valores umbral (TH1 a TH4) pueden tener, por ejemplo, los valores que se describen a continuación.
[0154] TH1 = 6, TH2 = 28, TH3 = 2, TH4 = 4
[0155] Por supuesto, el valor de cada valor umbral es arbitrario y no se limita a este ejemplo.
[0156] Cuando se inicia el procesamiento de derivación del valor del elemento sintáctico, el secuenciador 101 codifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el bloque objetivo de procesamiento en la etapa S121, como se muestra, por ejemplo, en la segunda a undécima fila desde la parte superior de la Figura 9.
[0157] En la etapa S122, el secuenciador 101 cuenta el número de subbloques distintos de cero (numNonZeroSbk) sobre la base del valor del indicador de coeficiente de subbloque, como se muestra, por ejemplo, en las filas decimotercera a decimosexta desde la parte superior de la Figura 9. Es decir, el secuenciador 101 cuenta el número de subbloques con coded_sub_block_flag = 1 para el bloque a procesar.
[0158] En la etapa S123, el secuenciador 101 establece un valor límite superior temporal (remBinPass1Tmp) para el número de bins codificados por contexto por subbloque, como se muestra, por ejemplo, en las filas decimoctava y decimonovena desde la parte superior de la Figura 9. Por ejemplo, en el caso de la Figura 3, dado que el subbloque incluye datos de coeficientes de 4x4 y se derivan sig_flag, gt1_flag, par_flag y gt2_flag, el número máximo de bins codificados por contexto por subbloque es de 64 bins. El secuenciador 101 establece estos 64 bins en el valor límite superior temporal mencionado anteriormente (remBinPass1Tmp). Es decir, este valor límite superior temporal (remBinPass1Tmp) puede establecerse sobre la base del tamaño del subbloque.
[0159] En la etapa S124, el secuenciador 101 establece el número de bins codificados por contexto adicionales (remBinPass1InZeroSbk) de todos los subbloques cero sobre la base del número de subbloques cero (numZeroSBk) como se muestra, por ejemplo, en las filas vigésima y vigesimoprimera desde la parte superior de la Figura 9. Dado que el número de subbloques en el bloque objetivo de procesamiento se conoce a partir del número de indicadores de coeficientes de subbloque y similares, el número de subbloques cero (numZeroSBk) puede obtenerse a partir del número de subbloques distintos de cero (numNonZeroSbk) contados en la etapa S122. Dado que el número de bins requerido para el subbloque cero es cero, el valor límite superior temporal (remBinPass1Tmp) establecido en la etapa S123 es el número de bins codificados por contexto adicionales. Por lo tanto, el número de bins codificados por contexto adicionales (remBinPass1InZeroSbk) para todos los subbloques cero se obtiene del producto del número de subbloques cero (numZeroSBk) y el valor del límite superior temporal (remBinPass1Tmp).
[0160] En la etapa S125, el secuenciador 101 establece el número medio de bins codificados por contexto adicionales (remBinPass1Extra) que pueden asignarse de forma adicional por subbloque distinto de cero, como se muestra, por ejemplo, en las filas vigesimosegunda y vigesimotercera desde la parte superior de la Figura 9. Este número medio de bins codificados por contexto adicionales (remBinPass1Extra) puede obtenerse dividiendo el número de bins codificados por contexto adicionales (remBinPass1InZeroSbk) de todos los subbloques cero obtenidos en la etapa S124 por el número de subbloques cero (numZeroSBk). Obsérvese que para evitar una división, puede obtenerse el número medio de bins codificados por contexto adicionales (remBinPass1Extra)utilizando una tabla de consulta. A continuación, el procesamiento pasa al procesamiento de cada subbloque. Es decir, el procesamiento pasa al procesamiento en el bucle de la declaración “for” para cada subbloque en la sintaxis. En la etapa S126, el secuenciador 101 selecciona un subbloque objetivo de procesamiento (subSetId=i) de los subbloques del bloque objetivo de procesamiento.
[0161] En la etapa S127, el secuenciador 101 establece el valor límite superior (remBinPass1) del número de bins codificados por contexto para el subbloque objetivo de procesamiento como se muestra, por ejemplo, en las filas vigesimonovena y trigésima desde la parte superior de la Figura 9 sobre la base del valor límite superior temporal (remBinPass1Tmp) y el número medio de bins codificados por contexto adicionales (remBinPass1Extra) que puede asignarse de forma adicional desde el subbloque cero. En el caso del ejemplo de la Figura 9, el valor límite superior (remBinPass1) del número de bins codificados por contexto se deriva sumando el valor límite superior temporal (remBinPass1Tmp) y el número medio de bins codificados por contexto adicionales (remBinPass1Extra) que pueden asignarse de forma adicional desde el subbloque cero.
[0162] En la etapa S128, el secuenciador 101 obtiene el valor del elemento sintáctico para el subbloque objetivo de procesamiento para no superar el valor límite superior del número de bins codificados por contexto. Este procesamiento corresponde a la sintaxis mostrada en la Figura 10 y en los dibujos posteriores.
[0163] En la etapa S129, el secuenciador 101 determina si se han procesado o no todos los subbloques. En un caso donde se determine que hay un subbloque sin procesar en el bloque objetivo de procesamiento, el procesamiento vuelve a la etapa S126 y se repite el procesamiento posterior. Es decir, cada procesamiento de la etapa S126 a la etapa S129 se ejecuta para cada subbloque en el bloque objetivo de procesamiento. A continuación, en la etapa S129, en un caso donde se determine que se han procesado todos los subbloques del bloque objetivo de procesamiento, finaliza el procesamiento de derivación del valor del elemento sintáctico y el procesamiento vuelve a la Figura 6.
[0164] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el secuenciador 101 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto asignados a subbloques cero en el bloque objetivo de procesamiento puede distribuirse a subbloques distintos de cero. Por lo tanto, también puede utilizarse el número de bins codificados por contexto asignados a los subbloques cero. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. Obsérvese que al codificar el indicador de coeficientes de subbloque (coded_sub_block_flag) antes del procesamiento para cada subbloque, y al contar el número de subbloques cero y el número de subbloques distintos de cero, el número de bins codificados por contexto adicionales puede distribuirse con mayor libertad (puede reducirse la restricción de distribución).
[0165] Además, al cerrar la administración del número de bins codificados por contexto en el bloque (por ejemplo, TU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0166] <Flujo de procesamiento de CABAC>
[0167] A continuación, se describirá un ejemplo del flujo de procesamiento de CABAC ejecutado en la etapa S101 de la Figura 6 con referencia al diagrama de flujo de la Figura 12.
[0168] Cuando se inicia el procesamiento de CABAC, la unidad 121 de binarización de CABAC 102 introduce un valor de elemento sintáctico (syncVal), que es un objetivo de procesamiento, en la etapa S151.
[0169] En la etapa S152, la unidad 121 de binarización realiza el procesamiento de binarización definido para cada elemento sintáctico y obtiene una cadena de bins (synBins) del valor del elemento sintáctico (syncVal).
[0170] En la etapa S153, la unidad 122 de selección lee la variable de contexto ctx correspondiente a cada posición de bin (binIdx) de la cadena de bins definida para cada elemento sintáctico, y el indicador isBypass que indica si es o no el modo bypass.
[0171] En la etapa S154, la unidad 122 de selección determina si es o no el modo bypass. En un caso donde isBypass = 0 y se determina que es el modo regular, el procesamiento pasa a la etapa S155.
[0172] En la etapa S155, la unidad 124 de codificación aritmética realiza la codificación de contexto. Es decir, la unidad 124 de codificación aritmética codifica el valor del bin en la posición del bin (binIdx) de la cadena de bins (synBins) en el modo regular de CABAC con referencia al estado de probabilidad de la variable de contexto ctx. Cuando finaliza el procesamiento de la etapa S155, el procesamiento pasa a la etapa S157.
[0173] Además, en un caso donde isBypass = 1 y se determine en la etapa S154 que es el modo bypass, el procesamiento pasa a la etapa S156.
[0174] En la etapa S156, la unidad 125 de codificación aritmética realiza la codificación por bypass. Es decir, la unidad 125 de codificación aritmética codifica el valor del bin en la posición del bin (binIdx) de la cadena de bins (synBins) en el modo bypass de CABAC. Cuando finaliza el procesamiento de la etapa S156, el procesamiento pasa a la etapa S157. En la etapa S157, la unidad 126 de selección determina si se cumple o no una condición A de interrupción predeterminada. La condición A de interrupción se define sobre la base del valor de la cadena de bins desde binIdx = 0 hasta binIdx = k (posición de binIdx actual k) y el método de binarización para cada elemento sintáctico.
[0175] En un caso donde se determine que la condición A de interrupción no se cumple, el procesamiento vuelve a la etapa S153, y el procesamiento de la etapa S153 y las etapas posteriores se ejecuta para la siguiente posición de bin (binIdx). Es decir, el procesamiento de las etapas S153 a S157 se ejecuta para cada posición de bin (binIdx).
[0176] A continuación, en la etapa S157, en un caso donde se determine que se cumple la condición A de interrupción, el procesamiento CABAC finaliza y el procesamiento vuelve a la Figura 6.
[0177] Al realizar el procesamiento CABAC de este modo, puede codificarse el valor del elemento sintáctico y pueden generarse los datos codificados.
[0178] <Aparato de decodificación>
[0179] La Figura 13 es un diagrama de bloques que muestra un ejemplo de la configuración de un aparato de decodificación, que es un aspecto de un aparato de procesamiento de imágenes al que se aplica la presente tecnología. Un aparato 200 de decodificación, mostrado en la Figura 13, es un aparato que decodifica los datos codificados y genera datos de coeficientes correspondientes a los datos de imagen.
[0180] Obsérvese que la Figura 13 muestra los elementos principales, tales como la unidad de procesamiento y el flujo de datos, y no todos se muestran en la Figura 13. Es decir, en el aparato 200 de decodificación puede haber una unidad de procesamiento que no se muestre como un bloque en la Figura 13, o puede haber un procesamiento o flujo de datos que no se muestre como una flecha o similar en la Figura 13.
[0181] Como se muestra en la Figura 13, el aparato 200 de decodificación incluye un CABAC 201 y un analizador sintáctico 202. El CABAC 201 adquiere los datos codificados, decodifica aritméticamente los datos codificados cambiando el contexto para cada bit de la cadena de bits binarizada para generar la cadena de bits binarizada y convierte la cadena de bits binarizada en múltiples valores utilizando un método predeterminado para generar el valor del elemento sintáctico. El CABAC 201 suministra el valor del elemento sintáctico generado al analizador sintáctico 202. El analizador sintáctico 202 adquiere el valor del elemento sintáctico y lo analiza para derivar los datos de coeficientes correspondientes a los datos de imagen. El analizador sintáctico 202 envía los datos de coeficientes derivados al exterior del aparato 200 de decodificación.
[0182] Obsérvese que estas unidades de procesamiento (CABAC 201 y analizador sintáctico 202) tienen una configuración arbitraria. Por ejemplo, cada unidad de procesamiento puede incluir un circuito lógico que realiza el procesamiento mencionado anteriormente. Además, cada unidad de procesamiento puede incluir, por ejemplo, una CPU, una ROM, una RAM y similares, y ejecutar un programa que las utilice para realizar el procesamiento mencionado anteriormente. Por supuesto, cada unidad de procesamiento puede tener ambas configuraciones, y una parte del procesamiento mencionado anteriormente puede realizarse mediante el circuito lógico, y el resto puede realizarse ejecutando el programa. Las configuraciones de las unidades de procesamiento respectivas pueden ser independientes entre sí. Por ejemplo, algunas unidades de procesamiento pueden realizar una parte del procesamiento mencionado anteriormente mediante el circuito lógico, y algunas otras unidades de procesamiento pueden ejecutar el programa para realizar el procesamiento mencionado anteriormente, y otras unidades de procesamiento pueden realizar el procesamiento mencionado anteriormente tanto mediante el circuito lógico como mediante la ejecución del programa. <CABAC>
[0183] La Figura 14 es un diagrama de bloques que muestra un ejemplo de configuración principal de CABAC 201. Obsérvese que la Figura 14 muestra los elementos principales, tales como la unidad de procesamiento y el flujo de datos, y no todos se muestran en la Figura 14. Es decir, en el CABAC 201 puede haber una unidad de procesamiento que no se muestre como un bloque en la Figura 14, o puede haber un procesamiento o flujo de datos que no se muestre como una flecha o similar en la Figura 14.
[0184] Como se muestra en la Figura 14, el CABAC 201 incluye una unidad 221 de selección, un modelo 222 de contexto, una unidad 223 de decodificación aritmética, una unidad 224 de decodificación aritmética, una unidad 225 de selección y una unidad 226 de conversión multivalor.
[0185] La unidad 221 de selección adquiere los datos codificados y la información de indicador isBypass se introduce en el aparato 200 de decodificación. La unidad 221 de selección selecciona el destino de suministro de los datos codificados basándose en el valor de isBypass. Por ejemplo, en el caso de isBypass = 0, la unidad 221 de selección determina que es el modo regular y suministra los datos codificados al modelo 222 de contexto. Además, en el caso de isBypass = 1, la unidad 221 de selección determina que es el modo bypass y suministra la cadena de bits binarizada a la unidad 224 de decodificación aritmética.
[0186] El modelo 222 de contexto cambia dinámicamente el modelo de contexto a aplicar según un objetivo de decodificación y la situación circundante. Por ejemplo, el modelo 222 de contexto contiene una variable de contexto ctx, y cuando los datos codificados se adquieren de la unidad 221 de selección, se lee la variable de contexto ctx correspondiente a cada posición del bin (binIdx) de una cadena de bins definida para cada elemento sintáctico. El modelo 222 de contexto suministra los datos codificados y la variable de contexto ctx leída a la unidad 223 de decodificación aritmética. Cuando la unidad 223 de decodificación aritmética adquiere los datos codificados y la variable de contexto ctx suministrados desde el modelo 222 de contexto, consulta el estado de probabilidad de la variable de contexto ctx y decodifica aritméticamente (decodificación de contexto) el valor del bin en binIdx de la cadena de bits binarizada en el modo regular de CABAC. La unidad 223 de decodificación aritmética suministra la cadena de bits binarizada generada por la decodificación de contexto a la unidad 225 de selección. Además, la unidad 223 de decodificación aritmética suministra la variable de contexto ctx después del procesamiento de decodificación de contexto al modelo 222 de contexto y hace que el modelo 222 de contexto contenga la variable de contexto ctx.
[0187] La unidad 224 de decodificación aritmética decodifica aritméticamente los datos codificados suministrados desde la unidad 221 de selección en el modo bypass de CABAC (decodificación bypass). La unidad 224 de decodificación aritmética suministra la cadena de bits binarizada generada por la decodificación bypass a la unidad 225 de selección. La unidad 225 de selección adquiere la información del indicador IsBypass y selecciona la cadena de bits binarizada a suministrar a la unidad 226 de conversión multivalor sobre la base del valor del IsBypass. Por ejemplo, en un caso donde isBypass = 0, la unidad 225 de selección determina que es el modo regular, adquiere la cadena de bits binarizada suministrada desde la unidad 223 de decodificación aritmética y la suministra a la unidad 226 de conversión multivalor. Además, en un caso donde isBypass = 1, la unidad 225 de selección determina que es el modo bypass, adquiere la cadena de bits binarizada suministrada desde la unidad 224 de decodificación aritmética y la suministra a la unidad 226 de conversión multivalor.
[0188] La unidad 226 de conversión multivalor adquiere la cadena de bits binarizada suministrada desde la unidad 225 de selección, convierte la cadena de bits binarizada en múltiples valores utilizando el método definido para cada elemento sintáctico y genera un valor de elemento sintáctico. La unidad 226 de conversión multivalor suministra el valor del elemento sintáctico al analizador sintáctico 202.
[0189] Obsérvese que estas unidades de procesamiento (unidad 221 de selección a unidad 226 de conversión multivalor) tienen una configuración arbitraria. Por ejemplo, cada unidad de procesamiento puede incluir un circuito lógico que realiza el procesamiento mencionado anteriormente. Además, cada unidad de procesamiento puede incluir, por ejemplo, una CPU, una ROM, una RAM y similares, y ejecutar un programa que las utilice para realizar el procesamiento mencionado anteriormente. Por supuesto, cada unidad de procesamiento puede tener ambas configuraciones, y una parte del procesamiento mencionado anteriormente puede realizarse mediante el circuito lógico, y el resto puede realizarse ejecutando el programa. Las configuraciones de las unidades de procesamiento respectivas pueden ser independientes entre sí. Por ejemplo, algunas unidades de procesamiento pueden realizar una parte del procesamiento mencionado anteriormente mediante el circuito lógico, y algunas otras unidades de procesamiento pueden ejecutar el programa para realizar el procesamiento mencionado anteriormente, y otras unidades de procesamiento pueden realizar el procesamiento mencionado anteriormente tanto mediante el circuito lógico como mediante la ejecución del programa.
[0190] <Flujo del procesamiento de decodificación>
[0191] A continuación, se describirá un ejemplo del flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación con referencia al diagrama de flujo de la Figura 15.
[0192] Cuando se inicia el procesamiento de decodificación, en la etapa S201, el CABAC 201 del aparato 200 de decodificación realiza el procesamiento de CABAC, decodifica los datos codificados introducidos en el aparato 200 de decodificación mediante el CABAC y genera un valor de elemento sintáctico. En la etapa S202, el analizador sintáctico 202 ejecuta el procesamiento de derivación de datos de coeficientes, analiza el valor del elemento sintáctico y deriva los datos de coeficientes correspondientes a los datos de imagen. El analizador sintáctico 202 envía los datos de coeficientes derivados al exterior del aparato 200 de decodificación.
[0193] Cuando finaliza el procesamiento de la etapa S202, finaliza el procesamiento de decodificación.
[0194] <Flujo de procesamiento de CABAC>
[0195] A continuación, se describirá un ejemplo del flujo del procesamiento de CABAC ejecutado en la etapa S201 de la Figura 15 con referencia al diagrama de flujo de la Figura 16.
[0196] Cuando se inicia el procesamiento de CABAC, en la etapa S221, la unidad 221 de selección de CABAC 201 lee la variable de contexto ctx correspondiente a cada posición de bin (binIdx) de la cadena de bins definida para cada elemento sintáctico, y el indicador isBypass indica si es o no el modo bypass.
[0197] En la etapa S222, la unidad 221 de selección determina si es o no el modo bypass. En un caso donde isBypass = 0 y se determina que es el modo regular, el procesamiento pasa a la etapa S223.
[0198] En la etapa S223, la unidad 223 de decodificación aritmética realiza una decodificación de contexto. Es decir, la unidad 223 de decodificación aritmética decodifica los datos codificados en el modo regular de CABAC con referencia al estado de probabilidad de la variable de contexto ctx, y genera el valor del bin en la posición del bin (binIdx) de la cadena de bins (synBins). Cuando finaliza el procesamiento de la etapa S223, el procesamiento pasa a la etapa S225. Además, en un caso donde isBypass = 1 y se determina en la etapa S222 que es el modo bypass, el procesamiento pasa a la etapa S224.
[0199] En la etapa S224, la unidad 224 de decodificación aritmética realiza una decodificación por bypass. Es decir, la unidad 224 de decodificación aritmética decodifica los datos codificados en el modo bypass de CABAC y genera el valor del bin en la posición del bin (binIdx) de la cadena de bins (synBins). Cuando finaliza el procesamiento de la etapa S224, el procesamiento pasa a la etapa S225.
[0200] En la etapa S225, la unidad 225 de selección determina si se cumple o no la condición A de interrupción predeterminada. La condición A de interrupción se define sobre la base del valor de la cadena de bins desde binIdx = 0 hasta binIdx = k (posición de binIdx actual k) y el método de binarización para cada elemento sintáctico.
[0201] En un caso donde se determina que la condición A de interrupción no se cumple, el procesamiento vuelve a la etapa S221 y se ejecuta el procesamiento de la etapa S221 y las etapas posteriores para generar el valor de la siguiente posición de bin (binIdx). Es decir, el procesamiento de las etapas S221 a S225 se ejecuta para cada posición de bin (binIdx).
[0202] A continuación, en la etapa S225, en un caso donde se determina que se cumple la condición A de interrupción, el procesamiento pasa a la etapa S226.
[0203] En la etapa S226, la unidad 226 de conversión multivalor obtiene el valor del elemento sintáctico (syncVal) de la cadena de bins (synBins) mediante el procesamiento de conversión multivalor definido para cada elemento sintáctico. En la etapa S227, la unidad 226 de conversión multivalor suministra el valor del elemento sintáctico derivado (syncVal) al analizador sintáctico 202.
[0204] Al realizar el procesamiento de CABAC de este modo, los datos codificados pueden decodificarse y puede generarse el valor del elemento sintáctico.
[0205] <Flujo del procesamiento de derivación de datos de coeficientes>
[0206] A continuación se describirá un ejemplo del flujo del procesamiento de derivación de datos de coeficientes ejecutado en la etapa S202 de la Figura 15 con referencia al diagrama de flujo de la Figura 17. Este procesamiento de derivación de datos de coeficientes se ejecuta en un flujo sustancialmente similar al del procesamiento de derivación de valores de elementos sintácticos (Figura 7). Es decir, el procesamiento de cada etapa del procesamiento de derivación de datos de coeficientes (etapas S251 a S259 en la Figura 17) se ejecuta de una forma sustancialmente similar a la de cada procesamiento del procesamiento de derivación de valores de elementos sintácticos (etapas S121 a S129 de la Figura 7).
[0207] Sin embargo, el analizador sintáctico 202 decodifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el bloque objetivo de procesamiento en la etapa S251, como se muestra, por ejemplo, en las filas segunda a undécima desde la parte superior de la Figura 9. Cuando finaliza el procesamiento de la etapa S251, el procesamiento pasa a la etapa S252.
[0208] Además, en la etapa S258, el analizador sintáctico 202 analiza si el valor del elemento sintáctico para el subbloque objetivo de procesamiento no supera el valor límite superior del número de bins codificados por contexto y obtiene los datos de coeficientes. Este procesamiento corresponde a la sintaxis mostrada en la Figura 10 y en los dibujos posteriores. Cuando finaliza el procesamiento de la etapa S258, el procesamiento pasa a la etapa S259.
[0209] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el analizador sintáctico 202 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto asignados a subbloques cero en el bloque objetivo de procesamiento puede distribuirse a subbloques distintos de cero. Por lo tanto, también puede utilizarse el número de bins codificados por contexto asignados a los subbloques cero. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. Obsérvese que al decodificar el indicador de coeficientes de subbloque (coded_sub_block_flag) antes del procesamiento para cada subbloque, y al contar el número de subbloques cero y el número de subbloques distintos de cero, el número de bins codificados por contexto adicionales puede distribuirse con mayor libertad (puede reducirse la restricción de distribución).
[0210] Además, al cerrar la administración del número de bins codificados por contexto en el bloque (por ejemplo, TU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0211] <3. Segunda realización>
[0212] <Método n.º 2>
[0213] El método n.º 1 se ha descrito en la primera realización, pero la presente tecnología no se limita a este método. Por ejemplo, el número máximo de bins codificados por contexto puede compartirse en subbloques distintos de cero, como se muestra en la fila superior de la tabla en la Figura 18.
[0214] Es decir, el número de bins codificados por contexto asignados al subbloque distinto de cero en un caso donde el valor límite superior del número de bins codificados por contexto se establezca uniformemente para cada subbloque, como en el método descrito en el documento no patente 1, se comparte.
[0215] Por ejemplo, como se muestra en la segunda fila desde la parte superior de la tabla que se muestra en la Figura 18, se saca un indicador de coeficientes del subbloque (coded_sub_block_flag) del bucle existente y se hace independiente. Es decir, primero se analizan sintácticamente los indicadores de coeficientes de subbloque para todos los subbloques de la TU.
[0216] A continuación, se cuenta el subbloque con coded_sub_block_flag = 1, es decir, se cuenta el subbloque distinto de cero. A continuación, se comparte el número de subbloques distintos de cero × el número de bins codificados por contexto para un subbloque.
[0217] Además, la gestión del número de bins codificados por contexto es cerrada dentro de la TU (unidad predeterminada). Es decir, el número de bins codificados por contexto como se ha descrito anteriormente se distribuye para cada bloque. Al hacerlo, como se muestra en la tercera fila desde la parte superior de la tabla que se muestra en la Figura 18, el número de bins codificados por contexto adicionales en el subbloque distinto de cero puede utilizarse como el número de bins codificados por contexto en otro subbloque distinto de cero, y puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada. Por ejemplo, como se muestra en A de la Figura 19, en un caso donde se establezca una restricción de 30 bins para cada subbloque, incluso cuando solo se generen 24 bins en el subbloque 11-1, que es un subbloque distinto de cero, los 6 bins del valor límite superior no podrían pasarse a otro subbloque distinto de cero. Por lo tanto, incluso en el subbloque 11-4, que es un subbloque distinto de cero, el número de bins codificados por contexto no podría aumentarse más allá de los 30 bins, que es el valor límite superior.
[0218] Por otra parte, en el caso del método n.º 2, como se muestra en B de la Figura 19, el número de bins codificados por contexto adicionales (“6” en este ejemplo) en el subbloque 11-1, que es un subbloque distinto de cero, puede asignarse al subbloque 11-4, que es un subbloque distinto de cero. Es decir, en esos subbloques distintos de cero, puede compartirse el número de bins codificados por contexto y, según la asignación, puede generarse un valor de elemento sintáctico de 30 bins o más. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. <Flujo del procesamiento de derivación del valor del elemento sintáctico>
[0219] También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0220] Se describirá un ejemplo del flujo del procesamiento de derivación del valor del elemento sintáctico en este caso con referencia al diagrama de flujo de la Figura 20. Las Figuras 21 a 24 son diagramas que muestran un ejemplo de la sintaxis de la codificación residual. La descripción se proporcionará junto con estos dibujos según sea necesario. Obsérvese que en la sintaxis de las Figuras 21 a 24, los valores umbral (TH1 a TH3) pueden tener, por ejemplo, los valores que se describen a continuación.
[0222] TH1 = 6, TH2 = 28, TH3 = 3
[0223] Por supuesto, el valor de cada valor umbral es arbitrario y no se limita a este ejemplo.
[0224] Cuando se inicia el procesamiento de derivación del valor del elemento sintáctico, el secuenciador 101 codifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el bloque objetivo de procesamiento en la etapa S301, como se muestra, por ejemplo, en las filas primera a décima desde la parte superior de la Figura 22.
[0225] En la etapa S302, el secuenciador 101 cuenta el número de subbloques distintos de cero (numNonZeroSbk) basándose en el valor del indicador de coeficiente de subbloque, como se muestra, por ejemplo, en las filas decimosegunda a decimoquinta desde la parte superior de la Figura 22. Es decir, el secuenciador 101 cuenta el número de subbloques con coded_sub_block_flag = 1 para el bloque a procesar.
[0226] En la etapa S303, el secuenciador 101 establece un valor límite superior temporal (remBinPass1Tmp) para el número de bins codificados por contexto por subbloque, como se muestra, por ejemplo, en las filas decimoséptima y decimooctava desde la parte superior de la Figura 22. Por ejemplo, en el caso de la Figura 19, el número máximo de bins codificados por contexto por subbloque es de 64 bins, de forma similar al caso de la Figura 3. El secuenciador 101 establece estos 64 bins en el valor límite superior temporal mencionado anteriormente (remBinPass1Tmp). Es decir, este valor límite superior temporal (remBinPass1Tmp) puede establecerse sobre la base del tamaño del subbloque.
[0227] En la etapa S304, el secuenciador 101 establece el número de bins codificados por contexto adicionales (remBinPass1) que pueden asignarse en todos los subbloques distintos de cero sobre la base del número de subbloques distintos de cero (numNonZeroSbk), como se muestra, por ejemplo, en las filas decimonovena y vigésima desde la parte superior de la Figura 22. El número de bins codificados por contexto adicionales (remBinPass1) que pueden asignarse en todos los subbloques distintos de cero se obtiene del producto del número de subbloques distintos de cero (numNonZeroSbk) contados en la etapa S302 y el valor límite superior temporal (remBinPass1Tmp) establecido en la etapa S303, es decir, la suma del valor límite superior temporal (remBinPass1Tmp) asignado a cada subbloque distinto de cero.
[0228] A continuación, el procesamiento pasa al procesamiento de cada subbloque. Es decir, el procesamiento pasa al procesamiento en el bucle de la declaración “for” para cada subbloque en la sintaxis. En la etapa S305, el secuenciador 101 selecciona un subbloque objetivo de procesamiento (subSetId=i) de los subbloques del bloque objetivo de procesamiento.
[0229] En la etapa S306, el secuenciador 101 obtiene el valor del elemento sintáctico con respecto al subbloque objetivo de procesamiento de modo que la suma del número de bins generados en cada subbloque del bloque objetivo de procesamiento no exceda el número de bins codificados por contexto adicionales (remBinPass1) que pueden asignarse en todos los subbloques distintos de cero derivados en la etapa S304. Este procesamiento corresponde a la sintaxis mostrada en la Figura 23 y en los dibujos posteriores.
[0230] En la etapa S307, el secuenciador 101 determina si se han procesado o no todos los subbloques. En un caso donde se determine que hay un subbloque sin procesar en el bloque objetivo de procesamiento, el procesamiento vuelve a la etapa S305 y se repite el procesamiento de la etapa S305 y las etapas posteriores. Es decir, cada procesamiento de la etapa S305 a la etapa S307 se ejecuta para cada subbloque en el bloque objetivo de procesamiento. A continuación, en la etapa S307, en un caso donde se determine que se han procesado todos los subbloques del bloque objetivo de procesamiento, finaliza el procesamiento de derivación del valor del elemento sintáctico y el procesamiento vuelve a la Figura 6.
[0231] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el secuenciador 101 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto puede distribuirse entre los subbloques distintos de cero en el bloque objetivo de procesamiento. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0232] Obsérvese que al codificar el indicador de coeficientes de subbloque (coded_sub_block_flag) antes del procesamiento para cada subbloque, y al contar el número de subbloques cero y el número de subbloques distintos de cero, el número de bins codificados por contexto adicionales puede distribuirse con mayor libertad (puede reducirse la restricción de distribución).
[0233] Además, al cerrar la administración del número de bins codificados por contexto en el bloque (por ejemplo, TU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0234] <Flujo del procesamiento de derivación de los datos de coeficientes>
[0235] También en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0236] Se describirá un ejemplo del flujo del procesamiento de derivación de datos de coeficientes en este caso con referencia al diagrama de flujo de la Figura 25. Este procesamiento de derivación de datos de coeficientes se ejecuta en un flujo sustancialmente similar al del procesamiento de derivación de valores de elementos sintácticos (Figura 20). Es decir, el procesamiento de cada etapa del procesamiento de derivación de datos de coeficientes (etapas S321 a S327 de la Figura 25) se ejecuta de una forma sustancialmente similar a la de cada procesamiento del procesamiento de derivación de valores de elementos sintácticos (etapas S301 a S307 de la Figura 20).
[0237] Sin embargo, el analizador sintáctico 202 decodifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el bloque objetivo de procesamiento en la etapa S321, como se muestra, por ejemplo, en las filas primera a décima desde la parte superior de la Figura 22. Cuando finaliza el procesamiento de la etapa S321, el procesamiento pasa a la etapa S322.
[0238] Además, en la etapa S326, el analizador sintáctico 202 obtiene datos de coeficientes analizando el valor del elemento sintáctico con respecto al subbloque objetivo de procesamiento de modo que la suma del número de bins generados en cada subbloque del bloque objetivo de procesamiento no exceda el número de bins codificados por contexto adicionales (remBinPass1) que pueden asignarse en todos los subbloques distintos de cero derivados en la etapa S324. Este procesamiento corresponde a la sintaxis mostrada en la Figura 23 y en los dibujos posteriores. Cuando finaliza el procesamiento de la etapa S326, el procesamiento pasa a la etapa S327.
[0239] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el analizador sintáctico 202 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto puede distribuirse entre los subbloques distintos de cero en el bloque objetivo de procesamiento. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. El número de bins codificados por contexto asignados a subbloques cero en el bloque objetivo de procesamiento puede distribuirse a subbloques distintos de cero. Por lo tanto, también puede utilizarse el número de bins codificados por contexto asignados a los subbloques cero. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. Obsérvese que al decodificar el indicador de coeficientes de subbloque (coded_sub_block_flag) antes del procesamiento para cada subbloque, y al contar el número de subbloques cero y el número de subbloques distintos de cero, el número de bins codificados por contexto adicionales puede distribuirse con mayor libertad (puede reducirse la restricción de distribución).
[0240] Además, al cerrar la gestión del número de bins codificados por contexto en el bloque (por ejemplo, TU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0241] <4. Tercera realización>
[0242] <Método n.º 3>
[0243] Además, por ejemplo, el número de bins codificados por contexto adicionales en el subbloque distinto de cero puede utilizarse dentro de otro subbloque distinto de cero, como se muestra en la fila superior de la tabla en la Figura 26.
[0244] Por ejemplo, como se muestra en la segunda fila de la parte superior de la tabla mostrada en la Figura 26, en un caso donde haya un subbloque en el que no se ámbito el valor máximo del número de bins codificados por contexto por subbloque, el número de bins codificados por contexto adicionales se agrupa y se usa para los subbloques siguientes y posteriores.
[0245] De este modo, el indicador de coeficientes de subbloque puede aplicarse sin abandonar el bucle existente, como se muestra en la tercera fila desde la parte superior de la tabla que se muestra en la Figura 26. Es decir, puede suprimirse un aumento en la cantidad de cambios en la sintaxis y la presente tecnología puede aplicarse con mayor facilidad. Además, el número de bins codificados por contexto adicionales en el subbloque distinto de cero puede utilizarse como el número de bins codificados por contexto en otro subbloque distinto de cero, y puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0246] Por ejemplo, como se muestra en A de la Figura 27, en un caso donde se establezca una restricción de 30 bins para cada subbloque, incluso cuando solo se generen 16 bins en el subbloque 11-3, el subbloque 11-4 está sujeto a la restricción de 30 bins. Es decir, los 14 bins hasta el valor límite superior no se podrían pasar al subbloque siguiente ni a los posteriores.
[0247] Por otro lado, en el caso del método n.º 3, como se muestra en B de la Figura 27, el número de bins codificados por contexto adicionales (“14” en este ejemplo) en el subbloque 11-3, puede asignarse al subbloque 11-4 para procesarlo a continuación. Es decir, en el subbloque 11-4, puede generarse un valor de elemento sintáctico de 30 bins o más. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0248] <Flujo del procesamiento de derivación del valor del elemento sintáctico>
[0249] También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0250] Un ejemplo del flujo del procesamiento de derivación del valor del elemento sintáctico en este caso se describirá con referencia al diagrama de flujo de la Figura 28. Las Figuras 29 a 32 son diagramas que muestran un ejemplo de la sintaxis de la codificación residual. La descripción se proporcionará junto con estos dibujos según sea necesario. Obsérvese que en la sintaxis de las Figuras 29 a 32, los valores umbral (TH1 a TH3) pueden tener, por ejemplo, los valores que se describen a continuación.
[0252] TH1 = 6, TH2 = 28, TH3 = 3
[0253] Por supuesto, el valor de cada valor umbral es arbitrario y no se limita a este ejemplo.
[0254] Cuando se inicia el procesamiento de derivación del valor del elemento sintáctico, en la etapa S341, el secuenciador 101 inicializa el número de bins codificados por contexto adicionales (remBinPass1Next) que pueden asignarse al siguiente subbloque (por ejemplo, remBinPass1Next = 0) como se muestra, por ejemplo, en la primera y segunda filas desde la parte superior de la Figura 30. Es decir, de forma predeterminada, el número de bins codificados por contexto adicionales es cero, lo que indica que el número de bins no puede añadirse al siguiente subbloque.
[0255] A continuación, el procesamiento pasa al procesamiento de cada subbloque. Es decir, el procesamiento pasa al procesamiento en el bucle de la declaración “for” para cada subbloque en la sintaxis. En la etapa S342, el secuenciador 101 selecciona un subbloque objetivo de procesamiento (subSetId=i) de los subbloques del bloque objetivo de procesamiento.
[0256] El secuenciador 101 codifica el indicador de coeficientes de subbloque (coded_sub_block_flag) con respecto al subbloque objetivo de procesamiento en la etapa S343, como se muestra, por ejemplo, en las filas tercera a undécima desde la parte superior de la Figura 30.
[0257] En la etapa S344, el secuenciador 101 establece un valor límite superior temporal (remBinPass1Tmp) para el número de bins codificados por contexto para el subbloque objetivo de procesamiento, como se muestra, por ejemplo, en las filas decimocuarta y decimoquinta desde la parte superior de la Figura 30. Por ejemplo, en el caso de la Figura 27, el número máximo de bins codificados por contexto por subbloque es de 64 bins, de forma similar al caso de la Figura 3. El secuenciador 101 establece estos 64 bins en el valor límite superior temporal mencionado anteriormente (remBinPass1Tmp). Es decir, este valor límite superior temporal (remBinPass1Tmp) puede establecerse sobre la base del tamaño del subbloque.
[0258] En la etapa S345, el secuenciador 101 establece el valor límite superior (remBinPass1) del número de bins codificados por contexto basándose en el valor límite superior temporal (remBinPass1Tmp) establecido para el subbloque objetivo de procesamiento en la etapa S344, pudiendo asignarse el número de bins codificados por contexto adicionales (remBinPass1Next) del subbloque procesado inmediatamente antes, al siguiente subbloque, como se muestra, por ejemplo, en las filas decimosexta y decimoséptima desde la parte superior de la Figura 30. Por ejemplo, el valor límite superior (remBinPass1) del número de bins codificados por contexto del subbloque objetivo de procesamiento se deriva de la suma del valor límite superior temporal (remBinPass1Tmp) y el número de bins codificados por contexto adicionales (remBinPass1Next) que pueden asignarse al siguiente subbloque.
[0259] En la etapa S346, el secuenciador 101 obtiene el valor del elemento sintáctico para no superar el valor límite superior (remBinPass1) del número de bins codificados por contexto establecidos para el subbloque objetivo de procesamiento en la etapa S345.
[0260] En la etapa S347, el secuenciador 101 establece el número de bins codificados por contexto adicionales del subbloque objetivo de procesamiento (remBinPass1 tras la derivación del valor del elemento sintáctico) para el número de bins codificados por contexto adicionales (remBinPass1Next) que pueden asignarse al siguiente subbloque, como se muestra, por ejemplo, en las filas vigesimoprimera y vigesimosegunda desde la parte superior de la Figura 31. En la etapa S348, el secuenciador 101 determina si se han procesado o no todos los subbloques. En un caso donde se determine que hay un subbloque sin procesar en el bloque objetivo de procesamiento, el procesamiento vuelve a la etapa S342 y se repite el procesamiento de la etapa S342 y las etapas posteriores. Es decir, cada procesamiento de la etapa S342 a la etapa S348 se ejecuta para cada subbloque en el bloque objetivo de procesamiento. A continuación, en la etapa S348, en un caso donde se determine que se han procesado todos los subbloques del bloque objetivo de procesamiento, finaliza el procesamiento de derivación del valor del elemento sintáctico y el procesamiento vuelve a la Figura 6.
[0261] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el secuenciador 101 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto adicionales del subbloque objetivo de procesamiento puede utilizarse como el número de bins codificados por contexto de los subbloques siguientes y posteriores a procesar. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0262] Obsérvese que al cerrar la gestión del número de bins codificados por contexto en el bloque (por ejemplo, TU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0263] <Flujo del procesamiento de derivación de los datos de coeficientes>
[0264] También en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0265] Se describirá un ejemplo del flujo del procesamiento de derivación de datos de coeficientes en este caso con referencia al diagrama de flujo de la Figura 33. Este procesamiento de derivación de datos de coeficientes se ejecuta en un flujo sustancialmente similar al del procesamiento de derivación de valores de elementos sintácticos (Figura 28). Es decir, el procesamiento de cada etapa del procesamiento de derivación de datos de coeficientes (etapas S361 a S368 de la Figura 33) se ejecuta de una forma sustancialmente similar a la de cada procesamiento del procesamiento de derivación de valores de elementos sintácticos (etapas S341 a S348 de la Figura 28).
[0266] Sin embargo, el analizador sintáctico 202 decodifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el subbloque objetivo de procesamiento en la etapa S363, como se muestra, por ejemplo, en las filas tercera a undécima desde la parte superior de la Figura 30. Cuando finaliza el procesamiento de la etapa S363, el procesamiento pasa a la etapa S364.
[0267] Además, en la etapa S366, el analizador sintáctico 202 obtiene los datos de coeficientes analizando si el valor del elemento sintáctico no supera el valor límite superior (remBinPass1) del número de bins codificados por contexto establecidos para el subbloque objetivo de procesamiento en la etapa S365. Cuando finaliza el procesamiento de la etapa S366, el procesamiento pasa a la etapa S367.
[0268] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el analizador sintáctico 202 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto adicionales del subbloque objetivo de procesamiento puede utilizarse como el número de bins codificados por contexto de los subbloques siguientes y posteriores a procesar. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0269] Obsérvese que al cerrar la gestión del número de bins codificados por contexto en el bloque (por ejemplo, TU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0270] <5. Cuarta realización>
[0271] <Método n.º 4>
[0272] Los métodos descritos anteriormente se pueden combinar arbitrariamente siempre que no haya contradicción. Por ejemplo, como se muestra en la fila superior de la tabla de la Figura 34, los métodos n.º 1 a n.º 3 mencionados anteriormente pueden utilizarse en combinación.
[0273] Por ejemplo, como se muestra en la segunda fila desde la parte superior de la tabla que se muestra en la Figura 34, se saca un indicador de coeficientes del subbloque (coded_sub_block_flag) del bucle existente y se hace independiente. Es decir, primero se analizan sintácticamente los indicadores de coeficientes de subbloque para todos los subbloques de la TU como en los métodos n.º 1 y n.º 2.
[0274] A continuación, el subbloque con coded_sub_block_flag = 0, es decir, el subbloque cero, se cuenta como en los métodos n.º 1 y n.º 2.
[0275] Después, el número de subbloques cero × el número de bins codificados por contexto para un subbloque se pasa (añade) al subbloque distinto de cero como en el método n.º 1. Además, el número de bins codificados por contexto asignados a cada subbloque distinto de cero se comparte como en el método n.º 2. Además, al igual que en el método n.º 3, el número de bins codificados por contexto adicionales generados en el subbloque objetivo de procesamiento se agrupa y se utiliza para los subbloques siguientes y posteriores.
[0276] Además, la gestión del número de bins codificados por contexto es cerrada dentro de la TU (unidad predeterminada) como en los métodos n.º 1 a n.º 3. Es decir, el número de bins codificados por contexto como se ha descrito anteriormente se distribuye para cada bloque.
[0277] Al hacerlo, como se muestra en la tercera fila desde la parte superior de la tabla que se muestra en la Figura 34, pueden obtenerse los efectos de cada método de los métodos n.º 1 a n.º 3 anteriormente mencionados. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0278] Por ejemplo, como se muestra en A de la Figura 35, en un caso donde se establezca una restricción a 30 bins por subbloque, incluso cuando el subbloque 11-2 y el subbloque 11-3 sean subbloques cero, su número de bins codificados por contexto adicionales no podría utilizarse en el subbloque 11-1 o el subbloque 11-4, que son subbloques distintos de cero. Además, el número de bins codificados por contexto adicionales no podría compartirse entre subbloques distintos de cero. Además, incluso cuando solo se generen 20 bins en el subbloque 11-1, que es un subbloque distinto de cero, los 10 bins para el valor límite superior no podrían pasarse al subbloque 11-4, que es otro subbloque siguiente y posterior distinto de cero a procesar. Por lo tanto, el subbloque 11-4 está sujeto a la restricción de 30 bins, y el número de bins codificados por contexto no podría aumentarse más allá de los 30 bins, que es el valor límite superior.
[0279] Por otra parte, en el caso del método n.º 4, como se muestra en B de la Figura 35, el número de bins codificados por contexto adicionales del subbloque 11-2 y el subbloque 11-3, que son subbloques cero, puede asignarse al subbloque 11-1 o al subbloque 11-4, que son subbloques distintos de cero. Además, el número de bins codificados por contexto puede compartirse entre el subbloque 11-1 y el subbloque 11-4, que son subbloques distintos de cero. Además, el número de bins codificados por contexto adicionales del subbloque 11-1 (10 bins en el caso de A de la Figura 35) puede asignarse al subbloque 11-4. Es decir, en el subbloque puede generarse un valor de elemento sintáctico de 30 bins o más. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0280] <Flujo del procesamiento de derivación del valor del elemento sintáctico>
[0281] También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0282] Se describirá un ejemplo del flujo del procesamiento de derivación del valor del elemento sintáctico en este caso con referencia al diagrama de flujo de las Figuras 36 y 37. Las Figuras 38 a 41 son diagramas que muestran un ejemplo de la sintaxis de la codificación residual. La descripción se proporcionará junto con estos dibujos según sea necesario. Obsérvese que en la sintaxis de las Figuras 38 a 41, los valores umbral (TH1 a TH4) pueden tener, por ejemplo, los valores que se describen a continuación.
[0283] TH1 = 6, TH2 = 28, TH3 = 2, TH4 = 4
[0284] Por supuesto, el valor de cada valor umbral es arbitrario y no se limita a este ejemplo.
[0285] Cuando se inicia el procesamiento de derivación del valor del elemento sintáctico, el secuenciador 101 codifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el bloque objetivo de procesamiento en la etapa S381 de la Figura 36, como se muestra, por ejemplo, en las filas primera a décima desde la parte superior de la Figura 39. En la etapa S382, el secuenciador 101 cuenta el número de subbloques distintos de cero (numNonZeroSbk) basándose en el valor del indicador de coeficiente de subbloque, como se muestra, por ejemplo, en las filas decimosegunda a decimoquinta desde la parte superior de la Figura 39. Es decir, el secuenciador 101 cuenta el número de subbloques con coded_sub_block_flag = 1 para el bloque a procesar.
[0286] En la etapa S383, el secuenciador 101 establece un valor límite superior temporal (remBinPass1Tmp) para el número de bins codificados por contexto por subbloque, como se muestra, por ejemplo, en las filas decimoséptima y decimooctava desde la parte superior de la Figura 39. De modo similar al caso del método n.º 1, este valor límite superior temporal (remBinPass1Tmp) puede establecerse sobre la base del tamaño del subbloque.
[0287] En la etapa S384, el secuenciador 101 establece el número de bins adicionales codificados por contexto (remBinPass1InZeroSbk) de todos los subbloques cero sobre la base del número de subbloques cero (numZeroSBk) como se muestra, por ejemplo, en las filas decimonovena y vigésima desde la parte superior de la Figura 39. De forma similar al caso del método n.º 1, el número de subbloques cero (NumZeroSBk) se puede determinar a partir del número de subbloques distintos de cero (NumNonZeroSbk) contados en la etapa S382, y el número de bins adicionales codificados por contexto (remBinPass1inZerosSBk) de todos los subbloques cero se deriva del producto del número de subbloques cero (NumZeroSBk) y del valor límite superior temporal (remBinPass1Tmp).
[0288] En la etapa S385, el secuenciador 101 establece el número medio de bins codificados por contexto adicionales (remBinPass1Extra) que pueden asignarse de forma adicional por subbloque distinto de cero, como se muestra, por ejemplo, en las filas vigesimoprimera y vigesimosegunda desde la parte superior de la Figura 39. Este número medio de bins codificados por contexto adicionales (remBinPass1Extra) puede obtenerse dividiendo el número de bins codificados por contexto adicionales (remBinPass1InZeroSbk) de todos los subbloques cero derivados en la etapa S384 por el número de subbloques cero (numZeroSBk). Obsérvese que para evitar la división, el número promedio de bins codificados por contexto adicionales (remBinPass1Extra) puede derivarse mediante una tabla de consulta. En la etapa S386, el secuenciador 101 inicializa el número de bins codificados por contexto adicionales (remBinPass1Next) que pueden asignarse al siguiente subbloque (por ejemplo, remBinPass1Next = 0) como se muestra, por ejemplo, en las filas vigesimocuarta y vigesimoquinta desde la parte superior de la Figura 39. Es decir, de forma predeterminada, el número de bins codificados por contexto adicionales es cero, lo que indica que el número de bins no puede añadirse al siguiente subbloque.
[0289] Cuando finaliza el procesamiento de la etapa S386, el procesamiento pasa a la Figura 37.
[0290] A continuación, el procesamiento pasa al procesamiento de cada subbloque. Es decir, el procesamiento pasa al procesamiento en el bucle de la declaración “for” para cada subbloque en la sintaxis. En la etapa S391, el secuenciador 101 selecciona un subbloque objetivo de procesamiento (subSetId=i) de los subbloques del bloque objetivo de procesamiento.
[0291] En la etapa S392, el secuenciador 101 establece el valor límite superior (remBinPass1) del número de bins codificados por contexto para el subbloque objetivo de procesamiento como se muestra, por ejemplo, en las filas quinta y sexta desde la parte superior de la Figura 40 sobre la base del valor límite superior temporal (remBinPass1Tmp), el número medio de bins codificados por contexto adicionales (remBinPass1Extra) que puede ser asignado de forma adicional desde el subbloque cero, y el número de bins codificados por contexto adicionales del subbloque anterior. En el caso del ejemplo de la Figura 40, el valor límite superior (remBinPass1) del número de bins codificados por contexto se obtiene de la suma del valor límite superior temporal (remBinPass1Ttmp), el número medio de bins codificados por contexto adicionales que pueden asignarse de forma adicional desde el subbloque cero (remBinPass1Extra) y el número de bins codificados por contexto adicionales que pueden asignarse al siguiente subbloque (remBinPass1Next). En la etapa S393, el secuenciador 101 deriva el valor del elemento sintáctico para no superar el valor límite superior (remBinPass1) del número de bins codificados por contexto para el subbloque objetivo de procesamiento.
[0292] En la etapa S394, el secuenciador 101 establece el número de bins codificados por contexto adicionales del subbloque objetivo de procesamiento (remBinPass1 tras la derivación del valor del elemento sintáctico) en el número de bins codificados por contexto adicionales (remBinPass1Next) que pueden asignarse al siguiente subbloque, como se muestra, por ejemplo, en las filas cuadragésima y cuadragesimoprimera desde la parte superior de la Figura 40.
[0293] En la etapa S395, el secuenciador 101 determina si se han procesado o no todos los subbloques. En un caso donde se determine que hay un subbloque sin procesar en el bloque objetivo de procesamiento, el procesamiento vuelve a la etapa S391 y se repite el procesamiento de la etapa S391 y las etapas posteriores. Es decir, cada procesamiento de la etapa S391 a la etapa S395 se ejecuta para cada subbloque en el bloque objetivo de procesamiento. A continuación, en la etapa S395, en un caso donde se determine que se han procesado todos los subbloques del bloque objetivo de procesamiento, finaliza el procesamiento de derivación del valor del elemento sintáctico y el procesamiento vuelve a la Figura 6.
[0294] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el secuenciador 101 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Es decir, pueden obtenerse los efectos de cada método de los métodos n.º 1 a n.º 3 mencionados anteriormente. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0295] <Flujo del procesamiento de derivación de los datos de coeficientes>
[0296] También en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0297] Se describirá un ejemplo del flujo del procesamiento de derivación de datos de coeficientes en este caso scon referencia a los diagramas de flujo de las Figuras 42 y 43. Este procesamiento de derivación de datos de coeficientes se ejecuta en un flujo sustancialmente similar al del procesamiento de derivación de valores de elementos sintácticos (Figuras 36 y 37). Es decir, el procesamiento de cada etapa del procesamiento de derivación de datos de coeficientes (etapas S411 a S416 de la Figura 42 y etapas S421 a S425 de la Figura 43) se ejecuta de una forma sustancialmente similar a la de cada procesamiento del procesamiento de derivación de valores de elementos sintácticos (etapas S381 a S386 de la Figura 36 y etapas S391 a S395 de la Figura 37).
[0298] Sin embargo, el analizador sintáctico 202 decodifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el subbloque objetivo de procesamiento en la etapa S411 de la Figura 42, como se muestra, por ejemplo, en las filas primera a décima desde la parte superior de la Figura 39. Cuando finaliza el procesamiento de la etapa S411, el procesamiento pasa a la etapa S412.
[0299] Además, en la etapa S423 de la Figura 43, el analizador sintáctico 202 obtiene los datos de coeficientes analizando si el valor del elemento sintáctico no supera el valor límite superior (remBinPass1) del número de bins codificados por contexto establecidos para el subbloque objetivo de procesamiento en la etapa S422. Cuando finaliza el procesamiento de la etapa S423, el procesamiento pasa a la etapa S424.
[0300] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el analizador sintáctico 202 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Es decir, pueden obtenerse los efectos de cada método de los métodos n.º 1 a n.º 3 mencionados anteriormente. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0301] <6. Quinta realización>
[0302] <Método n.º 5>
[0303] Además, por ejemplo, como una aplicación del método n.º 1, como se muestra en la fila superior de la tabla de la Figura 44, la prioridad para asignar el número de bins codificados por contexto adicionales puede establecerse según la posición del subbloque.
[0304] Por ejemplo, como se muestra en la segunda fila desde la parte superior de la tabla mostrada en la Figura 44, en el caso de un subbloque de rango bajo, puede asignarse un mayor número de bins codificados por contexto adicionales, y en el caso de un subbloque de rango alto, puede asignarse un número menor de bins codificados por contexto adicionales. Además, a la inversa, en el caso de un subbloque de rango alto, puede asignarse un mayor número de bins codificados por contexto adicionales, y en el caso de un subbloque de rango bajo, puede asignarse un número menor de bins codificados por contexto adicionales.
[0305] Al hacerlo, como se muestra en la tercera fila desde la parte superior de la tabla que se muestra en la Figura 44, el número de bins codificados por contexto adicionales puede utilizarse como el número de bins codificados por contexto en otro subbloque, y puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0306] Por ejemplo, en el caso de A de la Figura 45, se asigna un número mayor de bins codificados por contexto adicionales que el número de bins codificados por contexto adicionales del subbloque 11-4, que es un subbloque de rango alto, al subbloque 11-1, que es un subbloque de rango bajo. En general, los datos de coeficientes obtenidos mediante la transformación ortogonal de los datos de imagen se recopilan en un rango bajo en vez de en un rango alto. Por lo tanto, en tal caso, es posible suprimir adicionalmente la reducción en la eficiencia de codificación asignando un número grande de bins codificados por contexto adicionales al subbloque de rango bajo, como en el ejemplo de A de la Figura 45.
[0307] Además, por ejemplo, en el caso de B de la Figura 45, se asigna un número mayor de bins codificados por contexto adicionales que el número de bins codificados por contexto adicionales del subbloque 11-1, que es un subbloque de rango bajo, al subbloque 11-4, que es un subbloque de rango alto. Cuando se omite la transformación ortogonal, por ejemplo, como en el caso de la codificación sin pérdidas, los datos de coeficientes de rango alto generalmente tienden a ser mayores que en el caso en el que se realiza la transformación ortogonal. Además, por ejemplo, en el caso de una imagen que tenga muchos componentes de borde, los datos de coeficientes de rango alto tienden a ser grandes. En tal caso, es posible suprimir aún más la reducción en la eficiencia de codificación asignando un número grande de bins codificados por contexto adicionales al subbloque de rango alto, como en el ejemplo de B de la Figura 45. También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0308] Además, el procesamiento de derivación del valor del elemento sintáctico es básicamente similar al caso de la primera realización (Figura 7). En la etapa S127, cuando se establece el valor límite superior del número de bins codificados por contexto para el subbloque objetivo de procesamiento, como se ha descrito anteriormente, solo es necesario establecer el valor límite superior teniendo en cuenta la posición del subbloque objetivo de procesamiento.
[0309] Además, también en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0310] Además, el procesamiento de derivación de datos de coeficientes es básicamente similar al caso de la primera realización (Figura 17). En la etapa S257, cuando se establece el valor límite superior del número de bins codificados por contexto para el subbloque objetivo de procesamiento, como se ha descrito anteriormente, solo es necesario establecer el valor límite superior teniendo en cuenta la posición del subbloque objetivo de procesamiento.
[0311] <7. Sexta realización>
[0312] <Método n.º 6>
[0313] Además, por ejemplo, como se muestra en la fila superior de la tabla de la Figura 46, la unidad para administrar el número de bins codificados por contexto puede extenderse a un tamaño mayor que la TU.
[0314] Por ejemplo, como se muestra en la segunda fila desde la parte superior de la tabla que se muestra en la Figura 46, el número de bins codificados por contexto adicionales puede administrarse, por ejemplo, para cada CU, VPDU o CTU. Es decir, el número de bins puede distribuirse entre subbloques distintos de cero en la CU, la VPDU o la CTU para establecer el valor límite superior del número de bins asignados al subbloque objetivo de procesamiento.
[0315] Al hacerlo, la cantidad de bins codificados por contexto adicionales puede compartirse en un intervalo más amplio. Es decir, como se muestra en la tercera fila desde la parte superior de la tabla mostrada en la Figura 46, es posible asignar el número de bins codificados por contexto con un mayor grado de libertad. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0316] Por ejemplo, como se muestra en A de la Figura 47, se asume que una CU 400 incluye 4x4 subbloques 401 (subbloques 401-1 a 401-16). Además, se asume que cada subbloque se procesa en el orden del código de Morton, como se muestra mediante la flecha en el dibujo.
[0317] En un caso donde haya una restricción de 30 bins por subbloque, como se muestra en B de la Figura 47, incluso cuando hay subbloques cero, el número de bins adicionales codificados por contexto no podría utilizarse en los subbloques siguientes y posteriores. Por lo tanto, el número de bins codificados por contexto se limitó a 30 bins o menos en todos los subbloques.
[0318] Por lo tanto, el método n.º 6 se aplica para compartir el número de bins codificados por contexto adicionales en la CU 400. En este caso, como se muestra en C de la Figura 47, el número de bins codificados por contexto adicionales generados en el subbloque objetivo de procesamiento puede asignarse al subbloque siguiente y posteriores que procesar. Por lo tanto, en el subbloque 401, puede generarse un valor de elemento sintáctico de 30 bins o más. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En particular, en el caso del método n.º 6, dado que el intervalo para compartir el número de bins codificados por contexto adicionales es más amplio que el de la TU, es posible asignar el número de bins codificados por contexto con un mayor grado de libertad.
[0319] También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0320] Además, el procesamiento de derivación del valor del elemento sintáctico es básicamente similar al caso de la primera realización (Figura 7). Es suficiente con que el bloque objetivo de procesamiento sea una unidad de datos mayor que la TU (por ejemplo, CU, VPDU o CTU).
[0321] Además, también en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0322] Además, el procesamiento de derivación de datos de coeficientes es básicamente similar al caso de la primera realización (Figura 17). Es suficiente con que el bloque objetivo de procesamiento sea una unidad de datos mayor que la TU (por ejemplo, CU, VPDU o CTU).
[0323] <8. Séptima realización>
[0324] <Método n.º 7>
[0325] Además, por ejemplo, como se muestra en la fila superior de la tabla de la Figura 48, el límite superior del valor máximo del número de bins codificados por contexto en la estructura sintáctica puede omitirse (no establecerse).
[0326] Por ejemplo, como se muestra en la segunda fila de la parte superior de la tabla que se muestra en la Figura 48, la cantidad de bins generados puede estar limitada por una restricción de nivel, por una expresión condicional o similares. Además, la cantidad de generación puede estar limitada en unidades de datos más grandes que el subbloque (por ejemplo, unidad TU, unidad CU, unidad VPDU, unidad CTU, unidad de segmento, unidad de imagen y similares) en vez de en la unidad de subbloque.
[0327] Al hacerlo, como se muestra en la tercera fila desde la parte superior de la tabla mostrada en la Figura 48, muchos coeficientes pueden expresarse mediante indicadores cuando se generan datos de coeficientes locales. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0328] Por ejemplo, como se muestra en A de la Figura 49, en un caso donde se establezca una restricción de 28 bins para cada subbloque, incluso cuando se genere el número de bins codificados por contexto adicionales, no podría utilizarse en otro subbloque. Por lo tanto, por ejemplo, incluso en el subbloque 11-4, el número de bins codificados por contexto no podría aumentarse más allá de los 28 bins, que es el valor límite superior.
[0329] Por otro lado, en el caso del método n.º 7, como se muestra en B de la Figura 49, el número de bins codificados por contexto puede compartirse, por ejemplo, en unidades CU. Por lo tanto, es posible asignar 28 bins o más bins codificados por contexto para un subbloque. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0330] <Flujo del procesamiento de derivación del valor del elemento sintáctico>
[0331] También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0332] Se describirá un ejemplo del flujo del procesamiento de derivación del valor del elemento sintáctico en este caso con referencia al diagrama de flujo de la Figura 50. Obsérvese que aquí se describirá como ejemplo un caso donde el número de bins codificados por contexto se comparte en unidades CU. Además, las Figuras 51 a 53 son diagramas que muestran un ejemplo de la sintaxis de la codificación residual. La descripción se proporcionará junto con estos dibujos según sea necesario.
[0333] Cuando se inicia el procesamiento de derivación del valor del elemento sintáctico, en la etapa S441, el secuenciador 101 establece el valor límite superior (remBinsPass1) del número de bins codificados por contexto que pueden asignarse en toda la CU sobre la base del número de bins codificados por contexto que pueden asignarse por coeficiente (“*7) >>2”) y el tamaño de la CU (log2TbWidth, Log2TbHeight) como se muestra, por ejemplo, en la vigesimoprimera fila desde la parte superior de la Figura 51.
[0334] A continuación, el procesamiento pasa al procesamiento de cada subbloque. En la etapa S442, el secuenciador 101 selecciona un subbloque objetivo de procesamiento de entre los subbloques de la CU objetivo de procesamiento. En la etapa S443, el secuenciador 101 deriva el valor del elemento sintáctico para el subbloque objetivo de procesamiento para no superar el valor límite superior (remBinsPass1) del número de bins codificados por contexto que pueden asignarse en toda la CU establecido en la etapa S441.
[0335] En la etapa S444, el secuenciador 101 determina si se han procesado o no todos los subbloques. En un caso donde se determine que hay un subbloque sin procesar en la CU objetivo de procesamiento, el procesamiento vuelve a la etapa S442 y se repite el procesamiento de la etapa S442 y las etapas posteriores. Es decir, cada procesamiento de la etapa S442 a la etapa S444 se ejecuta para cada subbloque en la CU objetivo de procesamiento. A continuación, en la etapa S444, en un caso donde se determine que se han procesado todos los subbloques de la CU objetivo de procesamiento, finaliza el procesamiento de derivación del valor del elemento sintáctico y el procesamiento vuelve a la Figura 6.
[0336] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el secuenciador 101 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto puede compartirse en unidades CU. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0337] Obsérvese que al cerrar la gestión del número de bins codificados por contexto en el bloque (por ejemplo, CU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0338] <Flujo del procesamiento de derivación de los datos de coeficientes>
[0339] También en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0340] Un ejemplo del flujo del procesamiento de derivación de datos de coeficientes en este caso se describirá con referencia al diagrama de flujo de la Figura 54. Este procesamiento de derivación de datos de coeficientes se ejecuta en un flujo sustancialmente similar al del procesamiento de derivación de valores de elementos sintácticos (Figura 50). Es decir, el procesamiento de cada etapa del procesamiento de derivación de datos de coeficientes (etapas S461 a S464 de la Figura 54) se ejecuta de una forma sustancialmente similar a la de cada procesamiento del procesamiento de derivación del valor del elemento sintáctico (etapas S441 a S444 de la Figura 50).
[0341] Sin embargo, en la etapa S463, el analizador sintáctico 202 deriva los datos de coeficientes analizando el valor del elemento sintáctico para el subbloque objetivo de procesamiento para no superar el valor límite superior (remBinsPass1) del número de bins codificados por contexto que pueden asignarse en toda la CU establecido en la etapa S461. Cuando finaliza el procesamiento de la etapa S463, el procesamiento pasa a la etapa S464.
[0342] Al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el analizador sintáctico 202 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por ejemplo, el número de bins codificados por contexto puede compartirse en unidades CU. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación.
[0343] Obsérvese que al cerrar la gestión del número de bins codificados por contexto en el bloque (por ejemplo, CU) como se ha descrito anteriormente, puede suprimirse un aumento en la cantidad de procesamiento.
[0344] <9. Octava realización>
[0345] <Método n.º 8>
[0346] Además, por ejemplo, como se muestra en la fila superior de la tabla de la Figura 55, el límite superior del valor máximo del número de bins codificados por contexto en la estructura sintáctica puede omitirse (no establecerse).
[0347] En ese momento, por ejemplo, como se muestra en la segunda fila desde la parte superior de la tabla que se muestra en la Figura 55, el valor máximo del número de bins que pueden generarse en el subbloque distinto de cero junto al subbloque cero puede establecerse como el valor límite superior. Además, en un caso donde los subbloques cero sean continuos, el valor máximo del número de bins que pueden generarse en el mismo número de subbloques distintos de cero puede establecerse como el valor límite superior. Es decir, el valor máximo del número de bins que pueden generarse en el mismo número de subbloques distintos de cero que los subbloques cero puede establecerse como el valor límite superior.
[0348] Al hacerlo, como se muestra en la tercera fila desde la parte superior de la tabla mostrada en la Figura 55, muchos coeficientes pueden expresarse mediante indicadores cuando se generan datos de coeficientes locales. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada.
[0349] Por ejemplo, en el caso de A de la Figura 56, hay una restricción de 28 bins por subbloque. Los subbloques 11-1 y 11-3 son subbloques cero, se genera el número de bins codificados por contexto adicionales (28 bins). Sin embargo, en este caso, el número de bins codificados por contexto adicionales no podría utilizarse en otro subbloque. Es decir, en los subbloques 11-2 y 11-4, que son subbloques distintos de cero, no podría asignarse el número de bins superior a 28 bins, que es el valor límite superior.
[0350] Por otro lado, en el caso del método n.º 8, el valor máximo del número de bins que pueden generarse puede establecerse como el valor límite superior en el subbloque distinto de cero junto al subbloque cero. Por ejemplo, como se muestra en B de la Figura 56, dado que el subbloque 11-1 es un subbloque cero, el valor máximo del número de bins (48 bins) generados en un subbloque puede asignarse al subbloque 11-2, que es un subbloque distinto de cero que se procesará a continuación, como el valor límite superior. De forma similar, dado que el subbloque 11-3 es un subbloque cero, el valor máximo del número de bins (48 bins) generado en un subbloque puede asignarse al subbloque 11-4, que es un subbloque distinto de cero que se procesará a continuación, como el valor límite superior.
[0351] Además, en un caso donde haya una restricción de 28 bins por subbloque, incluso en un caso donde el subbloque 11-1 y el subbloque 11-2 sean subbloques cero como se muestra en C de la Figura 56, el número de bins codificados por contexto adicionales generados en los subbloques 11 no podría utilizarse en el subbloque 11-3 o el subbloque 11-4, que son subbloques distintos de cero.
[0352] Por otro lado, en el caso del método n.º 8, en el caso de tal disposición de subbloques, como se muestra en D de la Figura 56, los subbloques 11-1 y 11-2 son subbloques cero consecutivos. Por lo tanto, en los dos subbloques siguientes distintos de cero que se procesarán, el valor máximo del número de bins generados en un subbloque puede asignarse como el valor límite superior. Es decir, en los subbloques 11-3 y 11-4, el valor máximo del número de bins (48 bins) generado en un subbloque puede asignarse como el valor límite superior.
[0353] <Flujo del procesamiento de derivación del valor del elemento sintáctico>
[0354] También en este caso, la configuración del aparato 100 de codificación es similar al caso de la primera realización (Figura 4). Además, la configuración de la CABAC 102 es similar al caso de la primera realización (Figura 5). Además, el flujo del procesamiento de codificación ejecutado por el aparato 100 de codificación es similar al caso de la primera realización (Figura 6). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 12).
[0355] Un ejemplo del flujo del procesamiento de derivación del valor del elemento sintáctico en este caso se describirá con referencia al diagrama de flujo de la Figura 57.
[0356] Cuando se inicia el procesamiento de derivación del valor del elemento sintáctico, el secuenciador 101 inicializa el valor de recuento de los subbloques cero en la etapa S481. Por ejemplo, el secuenciador 101 establece el valor de recuento de los subbloques cero en “0”.
[0357] A continuación, el procesamiento pasa al procesamiento de cada subbloque. En la etapa S482, el secuenciador 101 selecciona un subbloque objetivo de procesamiento.
[0358] El secuenciador 101 codifica el indicador de coeficientes de subbloque (coded_sub_block_flag) para el subbloque objetivo de procesamiento en la etapa S483.
[0359] En la etapa S484, el secuenciador 101 determina si el subbloque objetivo de procesamiento es o no un bloque distinto de cero sobre la base del valor del indicador de coeficientes de subbloque. En un caso donde coded_sub_block_flag = 1 y se determine que es un subbloque distinto de cero, el procesamiento pasa a la etapa S485.
[0360] En la etapa S485, el secuenciador 101 determina si el valor de recuento de los subbloques cero es “0” o no. En un caso donde se determine en la etapa S709 que el valor de recuento es “0”, el procesamiento pasa a la etapa S486. En este caso, la restricción del número de bins se aplica al subbloque objetivo de procesamiento.
[0361] Por lo tanto, en la etapa S486, el secuenciador 101 establece el valor límite superior (remBinPass1) del número de bins codificados por contexto para el subbloque objetivo de procesamiento. Es decir, el valor límite superior (remBinPass1) del número de bins codificados por contexto se establece sobre la base de la restricción del número de bins para el subbloque objetivo de procesamiento.
[0362] En la etapa S487, el secuenciador 101 obtiene el valor del elemento sintáctico para no superar el valor límite superior (remBinPass1) del número de bins codificados por contexto establecidos para el subbloque objetivo de procesamiento en la etapa S486. Cuando finaliza el procesamiento de la etapa S487, el procesamiento pasa a la etapa S491. Además, en un caso donde se determine que el valor de recuento de los subbloques cero es “1” o más en la etapa S485, el procesamiento pasa a la etapa S488.
[0363] En la etapa S488, el secuenciador 101 obtiene el valor del elemento sintáctico para el subbloque objetivo de procesamiento. En este caso, es posible añadir el número de bins codificados por contexto adicionales del subbloque cero, y la restricción del número de bins no se aplica al subbloque objetivo de procesamiento. Es decir, el valor del elemento sintáctico se obtiene sin que se establezca el valor límite superior (remBinPass1) del número de bins codificados por contexto.
[0364] En la etapa S489, el secuenciador 101 disminuye el valor de recuento de los subbloques cero (por ejemplo, resta “1” del valor de recuento). Cuando finaliza el procesamiento de la etapa S489, el procesamiento pasa a la etapa S491. Además, en un caso donde se determine en la etapa S484 que el bloque objetivo de procesamiento es un subbloque cero, el procesamiento pasa a la etapa S490. En este caso, se omite la derivación del valor del elemento sintáctico. En la etapa S490, el secuenciador 101 incrementa el valor de recuento del subbloque cero (por ejemplo, añade “1” al valor de recuento). Cuando finaliza el procesamiento de la etapa S490, el procesamiento pasa a la etapa S491. En la etapa S491, el secuenciador 101 determina si se han procesado o no todos los subbloques. En un caso donde se determine que hay un subbloque sin procesar en el bloque objetivo de procesamiento, el procesamiento vuelve a la etapa S482 y se repite el procesamiento de la etapa S482 y las etapas posteriores. Es decir, cada procesamiento de la etapa S482 a la etapa S491 se ejecuta para cada subbloque en el bloque objetivo de procesamiento. A continuación, en la etapa S491, en un caso donde se determine que se han procesado todos los subbloques del bloque objetivo de procesamiento, finaliza el procesamiento de derivación del valor del elemento sintáctico y el procesamiento vuelve a la Figura 6.
[0365] Como se ha descrito anteriormente, al usar el valor de recuento de los subbloques cero, es posible omitir la configuración del valor límite superior (remBinPass1) del número de bins codificados por contexto para el mismo número de subbloques distintos de cero que los subbloques cero. Es decir, al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el secuenciador 101 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada. <Flujo del procesamiento de derivación de los datos de coeficientes>
[0366] También en este caso, la configuración del aparato 200 de decodificación es similar al caso de la primera realización (Figura 13). Además, la configuración de la CABAC 201 es similar al caso de la primera realización (Figura 14). Además, el flujo del procesamiento de decodificación ejecutado por el aparato 200 de decodificación es similar al caso de la primera realización (Figura 15). Además, el flujo del procesamiento de la CABAC es similar al caso de la primera realización (Figura 16).
[0367] Un ejemplo del flujo del procesamiento de derivación de datos de coeficientes en este caso se describirá con referencia al diagrama de flujo de la Figura 58. Este procesamiento de derivación de datos de coeficientes se ejecuta en un flujo sustancialmente similar al del procesamiento de derivación de valores de elementos sintácticos (Figura 57). Es decir, el procesamiento de cada etapa del procesamiento de derivación de datos de coeficientes (etapas S521 a S531 de la Figura 58) se ejecuta de una forma sustancialmente similar a la de cada procesamiento del procesamiento de derivación del valor del elemento sintáctico (etapas S481 a S491 de la Figura 57).
[0368] Sin embargo, el analizador sintáctico 202 decodifica el indicador de coeficientes de subbloque (coded_sub_block_flag) en el subbloque objetivo de procesamiento en la etapa S523 de la Figura 58. Cuando finaliza el procesamiento de la etapa S523, el procesamiento pasa a la etapa S524.
[0369] Además, en la etapa S527 de la Figura 58, el analizador sintáctico 202 obtiene los datos de coeficientes analizando si el valor del elemento sintáctico no supera el valor límite superior (remBinPass1) del número de bins codificados por contexto establecidos para el subbloque objetivo de procesamiento en la etapa S526. Cuando finaliza el procesamiento de la etapa S527, el procesamiento pasa a la etapa S531.
[0370] Además, en la etapa S528 de la Figura 58, el analizador sintáctico 202 obtiene los datos de coeficientes analizando el valor del elemento sintáctico para el subbloque objetivo de procesamiento. Cuando finaliza el procesamiento de la etapa S528, el procesamiento pasa a la etapa S529.
[0371] Como se ha descrito anteriormente, al usar el valor de recuento de los subbloques cero, es posible omitir la configuración del valor límite superior (remBinPass1) del número de bins codificados por contexto para el mismo número de subbloques distintos de cero que los subbloques cero. Es decir, al ejecutar el procesamiento de cada etapa como se ha descrito anteriormente, el analizador sintáctico 202 puede hacer variable la restricción sobre el número de bins codificados por contexto de cada de subbloque. Por lo tanto, puede suprimirse una reducción en la eficiencia de codificación. En otras palabras, puede suprimirse la reducción de la calidad de imagen de la imagen decodificada. <10. Novena realización>
[0372] <Aparato de codificación de imágenes>
[0373] En lo anterior, se ha descrito un ejemplo de aplicación de la presente tecnología al aparato 100 de codificación y al aparato 200 de decodificación, pero la presente tecnología puede aplicarse no solo a los anteriores sino a cualquier aparato, dispositivo, sistema o similar. Por ejemplo, la presente tecnología puede aplicarse a un aparato de codificación de imágenes que codifique datos de imagen.
[0374] La Figura 59 es un diagrama de bloques que muestra un ejemplo de la configuración de un aparato de codificación de imágenes, que es un aspecto de un aparato de procesamiento de imágenes al que se aplica la presente tecnología. Un aparato 600 de codificación de imágenes mostrado en la Figura 59 es un aparato que codifica datos de imagen de una imagen en movimiento. Por ejemplo, el aparato 600 de codificación de imágenes codifica los datos de imagen de una imagen en movimiento mediante el método de codificación descrito en cualquiera de los documentos no patente 1 a 12.
[0375] Obsérvese que la Figura 59 muestra los elementos principales, tales como la unidad de procesamiento (bloque) y el flujo de datos, y no todos se muestran en la Figura 59. Es decir, en el aparato 600 de codificación de imágenes puede haber una unidad de procesamiento que no se muestre como un bloque en la Figura 59, o puede haber un procesamiento o flujo de datos que no se muestre como una flecha o similar en la Figura 59.
[0376] Como se muestra en la Figura 59, el aparato 600 de codificación de imágenes incluye una unidad 601 de control, una memoria intermedia 611 de clasificación, una unidad aritmética 612, una unidad 613 de transformación ortogonal, una unidad 614 de cuantización, una unidad 615 de codificación, una memoria intermedia 616 de almacenamiento y una unidad 617 de cuantización inversa, una unidad 618 de transformación ortogonal inversa, una unidad aritmética 619, una unidad 620 de filtrado en bucle, una memoria 621 de tramas, una unidad 622 de predicción y una unidad 623 de control de tasa.
[0377] <Unidad de control>
[0378] La unidad 601 de control divide los datos de imagen en movimiento retenidos por la memoria intermedia 611 de clasificación en bloques (CU, PU, bloque de transformación y similares) en unidades de procesamiento sobre la base del tamaño de bloque en unidades de procesamiento externas o predeterminadas. Además, la unidad 601 de control determina los parámetros de codificación (información de cabecera Hinfo, información de modo de predicción Pinfo, información de transformación Tinfo, información de filtrado Finfo y similares) suministrados a cada bloque sobre la base de, por ejemplo, la optimización de la tasa de distorsión (RDO).
[0379] Los detalles de estos parámetros de codificación se describirán más adelante. Cuando la unidad 601 de control determina los parámetros de codificación descritos anteriormente, la unidad 601 de control los suministra a cada bloque. Específicamente, es como se describe a continuación.
[0380] La información de cabecera Hinfo se suministra a cada bloque.
[0381] La información del modo de predicción Pinfo se suministra a la unidad 615 de codificación y a la unidad 622 de predicción.
[0382] La información de transformación Tinfo se suministra a la unidad 615 de codificación, unidad 613 de transformación ortogonal, unidad 614 de cuantización, unidad 617 de cuantización inversa y a la unidad 618 de transformación ortogonal inversa.
[0383] La información de filtrado Finfo se suministra a la unidad 620 de filtrado en bucle.
[0384] <Memoria intermedia de clasificación>
[0385] Cada campo (imagen de entrada) de datos de imagen en movimiento se introduce en el aparato 600 de codificación de imágenes en el orden de reproducción (orden de visualización). La memoria intermedia 611 de clasificación adquiere y guarda (almacena) cada imagen de entrada en el orden de reproducción (orden de visualización). La memoria intermedia 611 de clasificación reordena las imágenes de entrada en el orden de codificación (orden de decodificación) o divide las imágenes de entrada en bloques en unidades de procesamiento sobre la base del control de la unidad 601 de control. La memoria intermedia 611 de clasificación suministra cada imagen de entrada procesada a la unidad aritmética 612. Además, la memoria intermedia 611 de clasificación también suministra cada imagen de entrada (imagen original) a la unidad 622 de predicción y a la unidad 620 de filtrado en bucle.
[0386] <Unidad aritmética>
[0387] La unidad 612 aritmética toma como entradas una imagen I correspondiente al bloque en unidades de procesamiento y una imagen P de predicción suministrada desde la unidad 622 de predicción, resta la imagen P de predicción de la imagen I como se muestra en la fórmula descrita a continuación, deriva un residuo D de predicción y lo suministra a la unidad 613 de transformación ortogonal.
[0389] D = I — P
[0390] <Unidad de transformación ortogonal>
[0391] La unidad 613 de transformación ortogonal toma como entradas el residuo D de predicción suministrado desde la unidad aritmética 612 y la información de transformación Tinfo suministrada desde la unidad 601 de control, y realiza una transformación ortogonal con respecto al residuo D de predicción sobre la base de la información de transformación Tinfo para derivar el coeficiente de transformación Coeff. Obsérvese que la unidad 613 de transformación ortogonal puede realizar una transformación ortogonal adaptativa (AMT) para seleccionar de forma adaptativa el tipo de transformación ortogonal (coeficiente de transformación). La unidad 613 de transformación ortogonal suministra el coeficiente de transformación Coeff obtenido a la unidad 614 de cuantización.
[0392] <Unidad de cuantización>
[0393] La unidad 614 de cuantización toma como entradas el coeficiente de transformación Coeff suministrado desde la unidad 613 de transformación ortogonal y la información de transformación Tinfo suministrada desde la unidad de control 601, y escala (cuantiza) el coeficiente de transformación Coeff sobre la base de la información de transformación Tinfo. Obsérvese que la tasa de cuantización es controlada por la unidad 623 de control de tasa. La unidad 614 de cuantización suministra el coeficiente de transformación después de la cuantización obtenido mediante dicha cuantización, es decir, el nivel de valor del coeficiente de transformación de cuantización, a la unidad 615 de codificación y a la unidad 617 de cuantización inversa.
[0394] <Unidad de codificación>
[0395] La unidad 615 de codificación toma como entradas el nivel de valor del coeficiente de transformación de cuantización suministrado desde la unidad 614 de cuantización, los diversos parámetros de codificación (información de cabecera Hinfo, información del modo de predicción Pinfo, información de transformación Tinfo, información de filtrado Finfo y similares) suministrados desde la unidad 601 de control, la información relativa a un filtro tal como un coeficiente de filtrado suministrado desde la unidad 620 de filtrado en bucle y la información relativa a un modo de predicción óptimo suministrado desde la unidad 622 de predicción. La unidad 615 de codificación realiza una codificación de longitud variable (por ejemplo, codificación aritmética) del nivel de valor del coeficiente de transformación de cuantización para generar una cadena de bits (datos codificados).
[0396] Además, la unidad 615 de codificación obtiene la información residual Rinfo del nivel de valor del coeficiente de transformación de cuantización, codifica la información residual Rinfo y genera una cadena de bits.
[0397] Además, la unidad 615 de codificación incluye la información sobre el filtro suministrado desde la unidad 620 de filtrado en bucle en la información de filtrado Finfo, e incluye la información sobre el modo de predicción óptimo suministrado desde la unidad 622 de predicción en la información del modo de predicción Pinfo. A continuación, la unidad 615 de codificación codifica los diversos parámetros de codificación anteriormente mencionados (información de cabecera Hinfo, información de modo de predicción Pinfo, información de transformación Tinfo, información de filtrado Finfo y similares) para generar una cadena de bits.
[0398] Además, la unidad 615 de codificación multiplexa las cadenas de bits de la diversa información generada como se ha descrito anteriormente para generar los datos codificados. La unidad 615 de codificación suministra los datos codificados a la memoria intermedia 616 de almacenamiento.
[0399] <Memoria intermedia de almacenamiento>
[0400] La memoria intermedia 616 de almacenamiento contiene temporalmente los datos codificados obtenidos por la unidad 615 de codificación. La memoria intermedia 616 de almacenamiento envía los datos codificados guardados como, por ejemplo, un flujo de bits o similar, al exterior del aparato 600 de codificación de imágenes en un tiempo predeterminado. Por ejemplo, estos datos codificados se transmiten al lado de decodificación a través de un medio de grabación arbitrario, un medio de transmisión arbitrario, un aparato de procesamiento de información arbitrario o similares. Es decir, la memoria intermedia 616 de almacenamiento también es una unidad de transmisión que transmite los datos codificados (flujo de bits).
[0401] <Unidad de cuantización inversa>
[0402] La unidad 617 de cuantización inversa realiza el procesamiento relacionado con la cuantización inversa. Por ejemplo, la unidad 617 de cuantización inversa toma como entradas el nivel de valor de coeficiente de transformación de cuantización suministrado desde la unidad 614 de cuantización y la información de transformación Tinfo suministrada desde la unidad 601 de control, y escala (cuantiza a la inversa) el valor del nivel de valor de coeficiente de transformación de cuantización sobre la base de la información de transformación Tinfo. Obsérvese que esta cuantización inversa es un procesamiento inverso de la cuantización realizada en la unidad 614 de cuantización. La unidad 617 de cuantización inversa suministra el coeficiente de transformación Coeff_IQ obtenido mediante dicha cuantización inversa a la unidad 618 de transformación ortogonal inversa.
[0403] <Unidad de transformación ortogonal inversa>
[0404] La unidad 618 de transformación ortogonal inversa realiza el procesamiento relacionado con la transformación ortogonal inversa. Por ejemplo, la unidad 618 de transformación ortogonal inversa toma como entradas el coeficiente de transformación Coeff_IQ suministrado desde la unidad 617 de cuantización inversa y la información de transformación Tinfo suministrada desde la unidad 601 de control, y realiza una transformación ortogonal inversa con respecto al coeficiente de transformación Coeff_IQ sobre la base de la información de transformación Tinfo para derivar el residuo D’ de predicción. Obsérvese que esta transformación ortogonal inversa es un procesamiento inverso de la transformación ortogonal realizada en la unidad 613 de transformación ortogonal. Es decir, la unidad 618 de transformación ortogonal inversa puede realizar una transformación ortogonal inversa adaptativa (AMT) para seleccionar de forma adaptativa el tipo de transformación ortogonal inversa (coeficiente de transformación).
[0405] La unidad 618 de transformación ortogonal inversa suministra el residuoD'de predicción obtenido mediante dicha transformación ortogonal inversa a la unidad aritmética 619. Obsérvese que, dado que la unidad 618 de transformación ortogonal inversa es similar a una unidad de transformación ortogonal inversa (descrita más adelante) en el lado de decodificación, la descripción (descrita más adelante) dada en el lado de decodificación puede aplicarse a la unidad 618 de transformación ortogonal inversa.
[0406] <Unidad aritmética>
[0407] La unidad aritmética 619 toma como entradas el residuoD'de predicción suministrado desde la unidad 618 de transformación ortogonal inversa y la imagen P de predicción suministrada desde la unidad 622 de predicción. La unidad aritmética 619 suma el residuoD'de predicción y la imagen P de predicción correspondiente al residuoD'de predicción para obtener una imagen decodificada localmente Rlocal. La unidad aritmética 619 suministra la imagen decodificada localmente Rlocal derivada a la unidad 620 de filtrado en bucle y a la memoria 621 de tramas.
[0408] <Unidad de filtrado en bucle>
[0409] La unidad 620 de filtrado en bucle realiza el procesamiento relacionado con el procesamiento de filtrado en bucle. Por ejemplo, la unidad 620 de filtrado en bucle toma como entradas la imagen decodificada localmente Rlocal suministrada desde la unidad aritmética 619, la información de filtrado Finfo suministrada desde la unidad 601 de control y la imagen de entrada (imagen original) suministrada desde la memoria intermedia 611 de clasificación. Obsérvese que la entrada de información a la unidad 620 de filtrado en bucle es arbitraria, y puede introducirse información distinta a dicha información. Por ejemplo, el modo de predicción, la información de movimiento, el valor objetivo de la cantidad de código, los parámetros de cuantización QP, el tipo de imagen, la información de bloques (CU, CTU y similares) y similares pueden introducirse en la unidad 620 de filtrado en bucle según sea necesario.
[0410] La unidad 620 de filtrado en bucle realiza adecuadamente el procesamiento de filtrado con respecto a la imagen decodificada localmente Rlocal sobre la base de la información de filtrado Finfo. La unidad 620 de filtrado en bucle también usa la imagen de entrada (imagen original) y otra información de entrada para el procesamiento del filtrado según sea necesario.
[0411] Por ejemplo, la unidad 620 de filtrado en bucle aplica cuatro filtros en bucle: un filtro bilateral, un filtro de desbloqueo (DBF), un filtro de compensación adaptativa (compensación adaptativa por muestra [SAO]) y un filtro de bucle adaptativo (ALF) en este orden, como se describe en el documento no patente 11. Obsérvese que el filtro a aplicar y el orden a aplicar son arbitrarios y pueden seleccionarse adecuadamente.
[0412] Por supuesto, el procesamiento de filtrado realizado por la unidad 620 de filtrado en bucle es arbitrario y no se limita al ejemplo anterior. Por ejemplo, la unidad 620 de filtrado en bucle puede aplicar un filtro Wiener o similar.
[0413] La unidad 620 de filtrado en bucle suministra la imagen decodificada localmente Rlocal que se ha sometido al procesamiento de filtrado a la memoria 621 de tramas. Obsérvese que cuando la información es relativa al filtrado, tal como un coeficiente de filtrado al lado de decodificación, la unidad 620 de filtrado en bucle suministra la información relativa al filtrado a la unidad 615 de codificación.
[0414] <Memoria de tramas>
[0415] La memoria 621 de tramas realiza el procesamiento relacionado con el almacenamiento de datos relacionados con las imágenes. Por ejemplo, la memoria 621 de tramas toma como entrada la imagen decodificada localmente Rlocal suministrada desde la unidad aritmética 619 o la imagen decodificada localmente Rlocal, que ha sido sometida al procesamiento de filtrado, suministrada desde la unidad 620 de filtrado en bucle, y la guarda (almacena). Además, la memoria 621 de tramas reconstruye una imagen decodificada R para cada unidad de imagen utilizando la imagen decodificada localmente Rlocal y la guarda (la almacena en la memoria intermedia en la memoria 621 de tramas). La memoria 621 de tramas suministra la imagen decodificada R (o una parte de la misma) a la unidad 622 de predicción en respuesta a una solicitud de la unidad 622 de predicción.
[0416] <Unidad de predicción>
[0417] La unidad 622 de predicción realiza el procesamiento relacionado con la generación de una imagen de predicción. Por ejemplo, la unidad 622 de predicción toma como entradas la información del modo de predicción Pinfo suministrada desde la unidad 601 de control, la imagen de entrada (imagen original) suministrada desde la memoria intermedia 611 de clasificación y la imagen decodificada R (o una parte de la misma) leída desde la memoria 621 de tramas. La unidad 622 de predicción realiza un procesamiento de predicción, como la interpredicción y la intrapredicción, utilizando la información del modo de predicción Pinfo o la imagen de entrada (imagen original), hace una predicción consultando la imagen decodificada R como imagen de referencia, realiza un procesamiento de compensación de movimiento basándose en el resultado de la predicción y genera la imagen P de predicción. La unidad 622 de predicción suministra la imagen P de predicción generada a la unidad aritmética 612 y a la unidad aritmética 619. Además, la unidad 622 de predicción suministra información sobre el modo de predicción seleccionado mediante el procesamiento anterior, es decir, el modo de predicción óptimo, a la unidad 615 de codificación según sea necesario.
[0418] <Unidad de control de tasa>
[0419] La unidad 623 de control de tasa realiza el procesamiento relacionado con el control de tasa. Por ejemplo, la unidad 623 de control de tasa controla la tasa de la operación de cuantización de la unidad 614 de cuantización sobre la base de la cantidad de código de los datos codificados almacenados en la memoria intermedia 616 de almacenamiento para que no se produzca desbordamiento ni insuficiencia.
[0420] Obsérvese que estas unidades de procesamiento (la unidad 601 de control y la memoria intermedia 611 de clasificación a la unidad 623 de control de tasa) tienen una configuración arbitraria. Por ejemplo, cada unidad de procesamiento puede incluir un circuito lógico que realiza el procesamiento mencionado anteriormente. Además, cada unidad de procesamiento puede incluir, por ejemplo, una CPU, una ROM, una RAM y similares, y ejecutar un programa que las utilice para realizar el procesamiento mencionado anteriormente. Por supuesto, cada unidad de procesamiento puede tener ambas configuraciones, y una parte del procesamiento mencionado anteriormente puede realizarse mediante el circuito lógico, y el resto puede realizarse ejecutando el programa. Las configuraciones de las unidades de procesamiento respectivas pueden ser independientes entre sí. Por ejemplo, algunas unidades de procesamiento pueden realizar una parte del procesamiento mencionado anteriormente mediante el circuito lógico, y algunas otras unidades de procesamiento pueden ejecutar el programa para realizar el procesamiento mencionado anteriormente, y otras unidades de procesamiento pueden realizar el procesamiento mencionado anteriormente tanto mediante el circuito lógico como mediante la ejecución del programa.
[0421] En el aparato 600 de codificación de imágenes que tiene la configuración anterior, la presente tecnología se aplica a la unidad 615 de codificación. Es decir, la unidad 615 de codificación tiene una configuración similar a la del aparato 100 de codificación mostrado en la Figura 4, y realiza un procesamiento similar. Es decir, la unidad 615 de codificación lleva a cabo uno de los métodos n.º 1 a n.º 8 anteriormente mencionados. Al hacerlo, el aparato 600 de codificación de imágenes puede obtener efectos similares a los descritos anteriormente en cualquiera de la primera realización a la octava realización. Por lo tanto, el aparato 600 de codificación de imágenes puede suprimir la reducción de eficiencia de codificación (mejorar la eficiencia de codificación). En otras palabras, el aparato 600 de codificación de imágenes puede suprimir la reducción en la calidad de imagen de la imagen decodificada.
[0422] <Flujo del procesamiento de codificación de imágenes>
[0423] A continuación, se describirá un ejemplo del flujo del procesamiento de codificación de imágenes ejecutado por el aparato 600 de codificación de imágenes que tiene la configuración anterior con referencia al diagrama de flujo de la Figura 60.
[0424] Cuando se inicia el procesamiento de codificación de imágenes, en la etapa S601, la unidad 601 de control controla la memoria intermedia 611 de clasificación para reordenar el orden de tramas de los datos de imágenes en movimiento de entrada del orden de visualización al orden de codificación.
[0425] En la etapa S602, la unidad 601 de control establece la unidad de procesamiento (realiza la división de bloques) para la imagen de entrada guardada por la memoria intermedia 611 de clasificación.
[0426] En la etapa S603, la unidad 601 de control determina (establece) los parámetros de codificación para la imagen de entrada guardada por la memoria intermedia 611 de clasificación.
[0427] En la etapa S604, la unidad 622 de predicción realiza el procesamiento de predicción y genera una imagen de predicción o similar del modo de predicción óptimo. Por ejemplo, en este procesamiento de predicción, la unidad 622 de predicción realiza una intrapredicción para generar una imagen de predicción o similar del modo de intrapredicción óptimo, realiza una interpredicción para generar una imagen de predicción o similar del modo de interpredicción óptimo y selecciona el modo de predicción óptimo de entre ellos sobre la base de un valor de función de coste y similares. En la etapa S605, la unidad aritmética 612 calcula aritméticamente la diferencia entre la imagen de entrada y la imagen de predicción del modo óptimo seleccionado por el procesamiento de predicción en la etapa S604. Es decir, la unidad aritmética 612 genera el residuo D de predicción entre la imagen de entrada y la imagen de predicción. La cantidad de datos del residuo D de predicción obtenido de este modo es menor que la de los datos de la imagen original. Por lo tanto, la cantidad de datos puede comprimirse en comparación con el caso donde la imagen se codifica tal cual. En la etapa S606, la unidad 613 de transformación ortogonal realiza el procesamiento de transformación ortogonal en el residuo D de predicción generado por el procesamiento de la etapa S605, y deriva el coeficiente de transformación Coeff.
[0428] En la etapa S607, la unidad 614 de cuantización cuantiza el coeficiente de transformación Coeff obtenido mediante el procesamiento de la etapa S606, por ejemplo, utilizando parámetros de cuantización calculados por la unidad 601 de control, y deriva el nivel de valor del coeficiente de transformación de cuantización.
[0429] En la etapa S608, la unidad 617 de cuantización inversa cuantiza a la inversa el nivel de valor del coeficiente de transformación de cuantización generado por el procesamiento de la etapa S607 con las características correspondientes a las características de la cuantización de la etapa S607, y deriva el coeficiente de transformación Coeff_IQ.
[0430] En la etapa S609, la unidad 618 de transformación ortogonal inversa realiza la transformación ortogonal inversa del coeficiente de transformación Coeff_IQ obtenido mediante el procesamiento de la etapa S608 utilizando un método correspondiente al procesamiento de transformación ortogonal de la etapa S606, y deriva el residuo D’ de predicción. Obsérvese que, dado que el procesamiento de transformación ortogonal inversa es similar al procesamiento de transformación ortogonal inversa (descrito más adelante) realizado en el lado de decodificación, la descripción (descrita más adelante) dada en el lado de decodificación puede aplicarse al procesamiento de transformación ortogonal inversa de la etapa S609.
[0431] En la etapa S610, la unidad aritmética 619 añade la imagen de predicción obtenida mediante el procesamiento de predicción de la etapa S604 al residuo D' de predicción obtenido mediante el procesamiento de la etapa S609 para generar una imagen decodificada localmente.
[0432] En la etapa S611, la unidad 620 de filtrado en bucle realiza el procesamiento de filtrado en bucle en la imagen decodificada localmente derivada del procesamiento de la etapa S610.
[0433] En la etapa S612, la memoria 621 de tramas almacena la imagen decodificada localmente derivada mediante el procesamiento de la etapa S610 o la imagen decodificada localmente sometida al procesamiento de filtrado en la etapa S611.
[0434] En la etapa S613, la unidad 615 de codificación codifica el nivel de valor del coeficiente de transformación de cuantización obtenido mediante el procesamiento de la etapa S607. Por ejemplo, la unidad 615 de codificación codifica el nivel de valor del coeficiente de transformación de cuantización, que es información relativa a una imagen, mediante codificación aritmética o similar para generar los datos codificados. Además, en este momento, la unidad 615 de codificación codifica los diversos parámetros de codificación (información de cabecera Hinfo, información de modo de predicción Pinfo, información de transformación Tinfo). Además, la unidad 615 de codificación obtiene la información residual RInfo del nivel de valor del coeficiente de transformación de cuantización y codifica la información residual RInfo.
[0435] En la etapa S614, la memoria intermedia 616 de clasificación almacena los datos codificados resultantes y los envía, por ejemplo, como un flujo de bits al exterior del aparato 600 de codificación de imágenes. Este flujo de bits se transmite al lado de decodificación a través de, por ejemplo, una ruta de transmisión o un medio de grabación. Además, la unidad 623 de control de tasa realiza el control de tasa según sea necesario.
[0436] Cuando finaliza el procesamiento de la etapa S614, finaliza el procesamiento de codificación de imágenes.
[0437] En el procesamiento de codificación de imágenes del flujo anterior, la presente tecnología se aplica al procesamiento de codificación de la etapa S613. Es decir, en esta etapa S613, se realiza el procesamiento de codificación del flujo similar al de la Figura 6. Es decir, la unidad de codificación 615 realiza el procesamiento de codificación adoptando uno de los métodos n.º 1 a n.º 8 mencionados anteriormente. Al hacerlo, el aparato 600 de codificación de imágenes puede obtener efectos similares a los descritos anteriormente en cualquiera de la primera realización a la octava realización. Por lo tanto, el aparato 600 de codificación de imágenes puede suprimir la reducción de la eficiencia de codificación (mejorar la eficiencia de codificación). En otras palabras, el aparato 600 de codificación de imágenes puede suprimir la reducción en la calidad de imagen de la imagen decodificada.
[0438] <Aparato de decodificación de imágenes>
[0439] Además, por ejemplo, la presente tecnología puede aplicarse a un aparato de decodificación de imágenes que decodifique los datos codificados de los datos de imagen. La Figura 61 es un diagrama de bloques que muestra un ejemplo de la configuración de un aparato de decodificación de imágenes, que es un aspecto de un aparato de procesamiento de imágenes al que se aplica la presente tecnología. Un aparato 700 de decodificación de imágenes mostrado en la Figura 61 es un aparato que decodifica los datos codificados de una imagen en movimiento. Por ejemplo, el aparato 700 de decodificación de imágenes decodifica los datos codificados utilizando el método de decodificación descrito en cualquiera de los documentos no patente 1 a 12. Por ejemplo, el aparato 700 de decodificación de imágenes decodifica los datos codificados (flujo de bits) generados por el aparato 600 de codificación de imágenes descrito anteriormente.
[0440] Obsérvese que la Figura 61 muestra los elementos principales, tales como la unidad de procesamiento y el flujo de datos, y no todos se muestran en la Figura 61. Es decir, en el aparato 700 de decodificación de imágenes puede haber una unidad de procesamiento que no se muestre como un bloque en la Figura 61, o puede haber un procesamiento o flujo de datos que no se muestre como una flecha o similar en la Figura 61.
[0441] En la Figura 61, el aparato 700 de decodificación de imágenes incluye una memoria intermedia 711 de almacenamiento, una unidad 712 de decodificación, una unidad 713 de cuantización inversa, una unidad 714 de transformación ortogonal inversa, una unidad aritmética 715, una unidad 716 de filtrado en bucle, una memoria intermedia 717 de clasificación, una memoria 718 de tramas y una unidad 719 de predicción. Obsérvese que la unidad 719 de predicción incluye una unidad de intrapredicción y una unidad de interpredicción, que no se muestran. El aparato 700 de decodificación de imágenes es un aparato para generar datos de imágenes en movimiento decodificando los datos codificados (flujo de bits).
[0442] <Memoria intermedia de almacenamiento>
[0443] La memoria intermedia 711 de almacenamiento adquiere y guarda (almacena) la entrada de flujo de bits al aparato 700 de decodificación de imágenes. La memoria intermedia 711 de almacenamiento suministra el flujo de bits almacenado a la unidad 712 de decodificación en un tiempo predeterminado o, por ejemplo, en un caso donde se cumpla una condición predeterminada.
[0444] <Unidad de decodificación>
[0445] La unidad 712 de decodificación realiza el procesamiento relacionado con la decodificación de imágenes. Por ejemplo, la unidad 712 de decodificación toma como entrada el flujo de bits suministrado desde la memoria intermedia 711 de almacenamiento, realiza una decodificación de longitud variable sobre el valor de sintaxis de cada elemento sintáctico de la cadena de bits según la definición de una tabla de sintaxis y deriva los parámetros.
[0446] El elemento sintáctico y los parámetros derivados del valor sintáctico del elemento sintáctico incluyen, por ejemplo, información tal como la información de cabecera Hinfo, la información del modo de predicción Pinfo, la información de transformación Tinfo, la información residual Rinfo y la información de filtrado Finfo. Es decir, la unidad 712 de decodificación extrae mediante análisis sintáctico (analiza y adquiere) estas informaciones del flujo de bits. Estas informaciones se describirán a continuación.
[0447] <Información de cabecera Hinfo>
[0448] La información de cabecera Hinfo incluye, por ejemplo, información de cabecera tal como el conjunto de parámetros de vídeo (VPS) /conjunto de parámetros de secuencia (SPS)/conjunto de parámetros de imagen (PPS)/cabecera de segmento (SH). La información del encabezado Hinfo incluye, por ejemplo, información que especifica el tamaño de la imagen (anchura PicWidth, altura PicHeight), profundidad de bits (brillo bitDepthY, diferencia de color bitDepthC), tipo de formato de diferencia de color ChromaArrayType, valor máximo maxCUSize/valor mínimo minCUSize del tamaño de la CU, profundidad máxima maxQTDepth/profundidad mínima minQTDepth de la división en árbol cuaternario (también denominada división en árbol cuaternario), profundidad máxima maxBTDepth/profundidad mínima minBTDepth de la división en árbol binario (división en árbol binario), valor máximo maxTSSize del bloque de omisión de transformación (también denominado tamaño máximo del bloque de omisión de transformación), indicador de encendido/apagado (también denominado indicador de activación) de cada herramienta de codificación.
[0449] Por ejemplo, el indicador de encendido/apagado de la herramienta de codificación incluido en la información de encabezado Hinfo incluye indicadores de encendido/apagado relacionados con el procesamiento de transformación y cuantización que se muestra a continuación. Obsérvese que el indicador de encendido/apagado de la herramienta de codificación también puede interpretarse como un indicador que indica si la sintaxis relacionada con la herramienta de codificación existe o no en los datos codificados. Además, en un caso donde el valor del indicador de encendido/apagado sea 1 (true), indica que puede utilizarse la herramienta de codificación, y en un caso donde el valor del indicador de encendido/apagado sea 0 (false), indica que no puede utilizarse la herramienta de codificación. Obsérvese que la interpretación de los valores de indicador puede invertirse.
[0450] Indicador habilitado para predicción de componentes cruzados (ccp_enabled_flag): información de indicador que indica si puede utilizarse o no la predicción de componentes cruzados (CCP), también denominada predicción CC). Por ejemplo, en un caso donde la información de este indicador sea “1” (true), indica que puede utilizarse, y en un caso donde sea “0” (false), indica que no puede utilizarse.
[0451] Obsérvese que esta CCP también se denomina predicción lineal de componentes cruzados (CCLM o CCLMP). <Información del modo de predicción Pinfo>
[0452] La información del modo de predicción Pinfo incluye, por ejemplo, información tal como la información de tamaño PBSize (tamaño del bloque de predicción) del PB (bloque de predicción) objetivo de procesamiento, la información del modo de intrapredicción IPinfo, la información de predicción de movimiento MVinfo y similares.
[0453] La información del modo de intrapredicción IPinfo incluye, por ejemplo, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode en el documento JCTVC-W1005, Sección 7.3.8.5 sintaxis de la unidad de codificación, y el modo de intrapredicción del brillo IntraPredModeY derivado de las sintaxis.
[0454] Además, la información del modo de intrapredicción IPinfo incluye, por ejemplo, el indicador de predicción de componentes cruzados (ccp_flag (cclmp_flag)), el indicador del modo de predicción lineal multiclase (mclm_flag), el identificador del tipo de localización de la muestra de diferencia de color (chroma_sample_loc_type_idx), el identificador MPM de diferencia de color (chroma_mpm_idx) y el modo de intrapredicción del brillo (IntraPredModeC) derivados de estas sintaxis.
[0455] El indicador de predicción de componentes cruzados (ccp_flag (cclmp_flag)) es información de indicador que indica si se debe aplicar o no la predicción lineal de componentes cruzados. Por ejemplo, cuando ccp_flag == 1, indica que se aplica la predicción de componentes cruzados, y cuando ccp_flag == 0, indica que no se aplica la predicción de componentes cruzados.
[0456] El indicador de modo de predicción lineal multiclase (mclm_flag) es información sobre el modo de predicción lineal (información del modo de predicción lineal). Más concretamente, el indicador de modo de predicción lineal multiclase (mclm_flag) es información de indicador que indica si debe establecerse o no el modo de predicción lineal multiclase. Por ejemplo, en el caso de “0”, indica el modo de clase 1 (modo de una clase) (por ejemplo, CCLMP), y en el caso de “1”, indica el modo de clase 2 (modo multiclase) (por ejemplo, MCLMP).
[0457] El identificador del tipo de posición de muestras de diferencia de color (chroma_sample_loc_type_idx) es un identificador que identifica el tipo de posición de píxel del componente de diferencia de color (también denominado tipo de posición de muestras de diferencia de color). Por ejemplo, en un caso donde el tipo de formato de diferencia de color (ChromaArrayType), que es información sobre un formato de color, indique el formato 420, el identificador del tipo de posición de muestras de diferencia de color se asigna como se muestra en las fórmulas siguientes. chroma_sample_loc_type_idx == 0:Type2
[0458] chroma_sample_loc_type_idx == 1:Type3
[0459] chroma_sample_loc_type_idx == 2:Type0
[0460] chroma_sample_loc_type_idx == 3:Type1
[0461] Obsérvese que el identificador del tipo de posición de muestras de diferencia de color (chroma_sample_loc_type_idx) se transmite (almacena) como información (chroma_sample_loc_info ()) sobre la posición de píxel del componente de diferencia de color.
[0462] El identificador MPM de diferencia de color (chroma_mpm_idx) es un identificador que indica qué candidato de modo de predicción en una lista de candidatos de modo de intrapredicción de diferencia de color (intraPredModeCandListC) se designa como modo de intrapredicción de diferencia de color.
[0463] La información de predicción de movimiento MVinfo incluye, por ejemplo, información como merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd (véase, por ejemplo, el Documento JCTVC-W1005, Sección 7.3.8.6 Sintaxis de la unidad de predicción).
[0464] Por supuesto, la información incluida en la información del modo de predicción Pinfo es arbitraria, y puede incluirse información distinta de estas unidades de información.
[0465] <Información de transformación Tinfo>
[0466] La información de transformación Tinfo incluye, por ejemplo, la información que se describe a continuación. Por supuesto, la información incluida en la información de transformación Tinfo es arbitraria, y puede incluirse información distinta a estas unidades de información.
[0467] Tamaño de la anchura TBWSize y altura TBHSize de un bloque de transformación objetivo de procesamiento (o pueden ser valores logarítmicos log2TBWSize y log2TBHSize de los TBWSize y TBHSize respectivos en base 2). Indicador de omisión de transformación (ts_flag): Un indicador que indica si deben omitirse o no la transformación primaria (inversa) y la transformación secundaria (inversa).
[0468] Identificador de escaneo (scanIdx)
[0469] Parámetro de cuantización (qp)
[0470] Matriz de cuantización (scaling_matrix [p. ej., Documento JCTVC-W1005, Sección 7.3.4 Sintaxis de datos de la lista de escalado])
[0471] <Información residual Rinfo>
[0472] La información residual Rinfo (véase, por ejemplo, Sección 7.3.8.11 Sintaxis de codificación residual del Documento JCTVC-W1005) incluye, por ejemplo, las sintaxis que se describen a continuación.
[0473] cbf(coded_block_flag): Indicador de presencia/ausencia de datos residuales
[0474] last_sig_coeff_x_pos: Última coordenada X de coeficiente distinto de cero
[0475] last_sig_coeff_y_pos: Última coordenada Y de coeficiente distinto de cero
[0476] coded_sub_block_flag: Indicador de presencia/ausencia de coeficiente distinto de cero de subbloque sig_coeff_flag: Indicador de presencia/ausencia de coeficiente distinto de cero
[0477] gr1_flag: Indicador que indica si el nivel del coeficiente distinto de cero es superior a 1 (también denominado indicador GR1) gr2_flag: Indicador que indica si el nivel del coeficiente distinto de cero es superior a 2 (también denominado indicador GR2) sign_flag: Código que indica si el coeficiente distinto de cero es positivo o negativo (también denominado código de signo) coeff_abs_level_remaining: Nivel restante del coeficiente distinto de cero (también denominado nivel restante del coeficiente distinto de cero)
[0478] Por supuesto, la información incluida en la información residual Rinfo es arbitraria, y puede incluirse información distinta a estas unidades de información.
[0479] <Información de filtrado Finfo>
[0480] La información de filtrado Finfo incluye, por ejemplo, información de control relacionada con cada procesamiento de filtrado descrito a continuación.
[0481] Información de control relacionada con el filtro de desbloqueo
[0482] (DBF) Información de control relacionada con el desplazamiento adaptativo de píxeles (SAO)
[0483] Información de control relacionada con el filtro de bucle adaptativo (ALF)
[0484] Información de control relacionada con otros filtros lineales y no lineales
[0485] Más concretamente, por ejemplo, se incluye información para especificar una imagen a la que se aplica cada filtro y un área en la imagen, la información de control de encendido/apagado del filtro en las unidades CU, la información de control de encendido/apagado del filtro relacionada con los límites de los segmentos y las teselas, y similares. Por supuesto, la información incluida en la información de filtrado Finfo es arbitraria, y puede incluirse información distinta a estas unidades de información.
[0486] Volviendo a la descripción de la unidad 712 de decodificación, la unidad 712 de decodificación deriva el nivel de valor del coeficiente de transformación de cuantización de cada posición de coeficiente en cada bloque de transformación con referencia a la información residual Rinfo. La unidad 712 de decodificación suministra el nivel de valor del coeficiente de transformación de cuantización a la unidad 713 de cuantización inversa.
[0487] Además, la unidad 712 de decodificación suministra la información de cabecera Hinfo extraída por análisis sintáctico, la información del modo de predicción Pinfo, el nivel de valor del coeficiente de transformación de cuantización, la información de transformación Tinfo y la información de filtrado Finfo a cada bloque. Específicamente, es como se describe a continuación.
[0488] La información de cabecera Hinfo se suministra a la unidad 713 de cuantización inversa, la unidad 714 de transformación ortogonal inversa, la unidad 719 de predicción y la unidad 716 de filtrado en bucle.
[0489] La información del modo de predicción Pinfo se suministra a la unidad 713 de cuantización inversa y a la unidad 719 de predicción.
[0490] La información de transformación Tinfo se suministra a la unidad 713 de cuantización inversa y a la unidad 714 de transformación ortogonal inversa.
[0491] La información de filtrado Finfo se suministra a la unidad 716 de filtrado en bucle.
[0492] Por supuesto, el ejemplo mencionado anteriormente es un ejemplo y no se limita a este ejemplo. Por ejemplo, cada parámetro de codificación puede suministrarse a una unidad de procesamiento arbitraria. Además, puede suministrarse otra información a una unidad de procesamiento arbitraria.
[0493] <Unidad de cuantización inversa>
[0494] La unidad 713 de cuantización inversa tiene al menos una configuración necesaria para realizar el procesamiento relacionado con la cuantización inversa. Por ejemplo, la unidad 713 de cuantización inversa toma como entradas la información de transformación Tinfo y el nivel de valor del coeficiente de transformación de cuantización suministrado desde la unidad 712 de decodificación, escala (cuantiza a la inversa) el valor del nivel de valor del coeficiente de transformación de cuantización sobre la base de la información de transformación Tinfo y deriva el coeficiente de transformación Coeff_IQ después de la cuantización inversa.
[0495] Obsérvese que esta cuantización inversa se realiza como procesamiento inverso de la cuantización por la unidad 614 de cuantización. Además, esta cuantización inversa es un procesamiento similar a la cuantización inversa realizada por la unidad 617 de cuantización inversa. Es decir, la unidad 617 de cuantización inversa realiza un procesamiento (cuantización inversa) similar al de la unidad 713 de cuantización inversa.
[0496] La unidad 713 de cuantización inversa suministra el coeficiente de transformación obtenido Coeff_IQ a la unidad 714 de transformación ortogonal inversa.
[0497] <Unidad de transformación ortogonal inversa>
[0498] La unidad 714 de transformación ortogonal inversa realiza el procesamiento relacionado con la transformación ortogonal inversa. Por ejemplo, la unidad 714 de transformación ortogonal inversa toma como entradas el coeficiente de transformación Coeff_IQ suministrado desde la unidad 713 de cuantización inversa y la información de transformación Tinfo suministrada desde la unidad 712 de decodificación, y realiza el procesamiento de transformación ortogonal inversa con respecto al coeficiente de transformación Coeff_IQ sobre la base de la información de transformación Tinfo para derivar el residuo D’ de predicción.
[0499] Obsérvese que esta transformación ortogonal inversa se realiza como procesamiento inverso de la transformación ortogonal por la unidad 613 de transformación ortogonal. Además, esta transformación ortogonal inversa es un procesamiento similar al de la transformación ortogonal inversa realizada por la unidad 618 de transformación ortogonal inversa. Es decir, la unidad 618 de transformación ortogonal inversa realiza un procesamiento (transformación ortogonal inversa) similar al de la unidad 714 de transformación ortogonal inversa.
[0500] La unidad 714 de transformación ortogonal inversa suministra el residuo D’ de predicción derivado a la unidad aritmética 715.
[0501] <Unidad aritmética>
[0502] La unidad aritmética 715 realiza el procesamiento relacionado con la adición de información sobre las imágenes. Por ejemplo, la unidad aritmética 715 toma como entradas el residuo D' de predicción suministrado desde la unidad 714 de transformación ortogonal inversa y la imagen P de predicción suministrada desde la unidad 719 de predicción. Como se muestra en la fórmula siguiente, la unidad aritmética 715 suma el residuo D' de predicción y la imagen P de predicción (señal de predicción) correspondiente al residuo D' de predicción para derivar la imagen decodificada localmente R<local>.
[0503] R<local>= D’ P
[0504] La unidad aritmética 715 suministra la imagen decodificada localmente derivada R<local>a la unidad 716 de filtrado en bucle y a la memoria 718 de tramas.
[0505] <Unidad de filtrado en bucle>
[0506] La unidad 716 de filtrado en bucle realiza el procesamiento relacionado con el procesamiento de filtrado en bucle. Por ejemplo, la unidad 716 de filtrado en bucle toma como entradas la imagen decodificada localmente R<local>suministrada desde la unidad aritmética 715 y la información de filtrado Finfo suministrada desde la unidad 712 de decodificación. Obsérvese que la entrada de información a la unidad 716 de filtrado en bucle es arbitraria, y puede introducirse información distinta a dicha información.
[0507] La unidad 716 de filtrado en bucle realiza adecuadamente el procesamiento de filtrado con respecto a la imagen decodificada localmente R<local>sobre la base de la información de filtrado Finfo.
[0508] Por ejemplo, la unidad 716 de filtrado en bucle aplica cuatro filtros en bucle: un filtro bilateral, un filtro de desbloqueo (DBF), un filtro de compensación adaptativa (compensación adaptativa por muestra[SAO]) y un filtro de bucle adaptativo (ALF) en este orden, como se describe en el documento no patente 11. Obsérvese que qué filtro aplicar y en qué orden debe aplicarse son arbitrarios y pueden seleccionarse adecuadamente.
[0509] La unidad 716 de filtrado en bucle realiza el procesamiento de filtrado correspondiente al procesamiento de filtrado realizado por el lado de codificación (por ejemplo, la unidad 620 de filtrado en bucle del aparato 600 de codificación de imágenes). Por supuesto, el procesamiento de filtrado realizado por la unidad 716 de filtrado en bucle es arbitrario y no se limita al ejemplo anterior. Por ejemplo, la unidad 716 de filtrado en bucle puede aplicar un filtro Wiener o similar. La unidad 716 de filtrado en bucle suministra la imagen decodificada localmente R<local>que se ha sometido al procesamiento de filtrado a la memoria intermedia 717 de clasificación y a la memoria 718 de tramas.
[0510] <Memoria intermedia de clasificación>
[0511] La memoria intermedia 717 de clasificación toma como entrada la imagen decodificada localmente R<local>suministrada desde la unidad 716 de filtrado en bucle y la mantiene (almacena). La memoria intermedia 717 de clasificación reconstruye una imagen decodificada R para cada unidad de imagen utilizando la imagen decodificada localmente R<local>y la mantiene (la almacena en la memoria intermedia). La memoria intermedia 717 de clasificación reordena la imagen decodificada R obtenida del orden de decodificación al orden de reproducción. La memoria intermedia 717 de clasificación envía un grupo R de imágenes decodificadas reordenadas como datos de imágenes en movimiento al exterior del aparato 700 de decodificación de imágenes.
[0512] <Memoria de tramas>
[0513] La memoria 718 de tramas realiza el procesamiento relacionado con el almacenamiento de datos relacionados con las imágenes. Por ejemplo, la memoria 718 de tramas toma como entrada la imagen decodificada localmente R<local>suministrada por la unidad aritmética 715, reconstruye la imagen decodificada R para cada unidad de imagen y la almacena en la memoria intermedia en la memoria 718 de tramas.
[0514] Además, la memoria 718 de tramas toma como entrada la imagen decodificada localmente R<local>que ha sido sometida al procesamiento de filtrado en bucle y suministrada desde la unidad 716 de filtrado en bucle, reconstruye la imagen decodificada R para cada unidad de imagen y la almacena en la memoria intermedia en la memoria 718 de tramas. La memoria 718 de tramas suministra adecuadamente la imagen decodificada R almacenada (o una parte de la misma) a la unidad 719 de predicción como imagen de referencia.
[0515] Obsérvese que la memoria 718 de tramas puede almacenar la información de cabecera Hinfo, la información del modo de predicción Pinfo, la información de transformación Tinfo, la información de filtrado Finfo y similares relacionadas con la generación de la imagen decodificada.
[0516] <Unidad de predicción>
[0517] La unidad 719 de predicción realiza el procesamiento relacionado con la generación de una imagen de predicción. Por ejemplo, la unidad 719 de predicción toma como entrada la información del modo de predicción Pinfo suministrada desde la unidad 712 de decodificación, realiza una predicción utilizando un método de predicción especificado por la información del modo de predicción Pinfo y deriva la imagen P de predicción. En el momento de la derivación, la unidad 719 de predicción usa la imagen decodificada R (o una parte de la misma) antes o después del filtro almacenado en la memoria 718 de tramas especificado por la información del modo de predicción Pinfo como una imagen de referencia. La unidad 719 de predicción suministra la imagen P de predicción derivada a la unidad aritmética 715. Obsérvese que estas unidades de procesamiento (de la memoria intermedia 711 de almacenamiento a la unidad 719 de predicción) tienen una configuración arbitraria. Por ejemplo, cada unidad de procesamiento puede incluir un circuito lógico que realiza el procesamiento mencionado anteriormente. Además, cada unidad de procesamiento puede incluir, por ejemplo, una CPU, una ROM, una RAM y similares, y ejecutar un programa que las utilice para realizar el procesamiento mencionado anteriormente. Por supuesto, cada unidad de procesamiento puede tener ambas configuraciones, y una parte del procesamiento mencionado anteriormente puede realizarse mediante el circuito lógico, y el resto puede realizarse ejecutando el programa. Las configuraciones de las unidades de procesamiento respectivas pueden ser independientes entre sí. Por ejemplo, algunas unidades de procesamiento pueden realizar una parte del procesamiento mencionado anteriormente mediante el circuito lógico, y algunas otras unidades de procesamiento pueden ejecutar el programa para realizar el procesamiento mencionado anteriormente, y otras unidades de procesamiento pueden realizar el procesamiento mencionado anteriormente tanto mediante el circuito lógico como mediante la ejecución del programa.
[0518] En el aparato 700 de decodificación de imágenes que tiene la configuración anterior, la presente tecnología se aplica a la unidad 712 de decodificación. Es decir, la unidad 712 de decodificación tiene una configuración similar a la del aparato 200 de decodificación mostrado en la Figura 13, y realiza un procesamiento similar. Es decir, la unidad 712 de decodificación realiza uno de los métodos n.º 1 a n.º 8 anteriormente mencionados. Al hacerlo, el aparato 700 de decodificación de imágenes puede obtener efectos similares a los descritos anteriormente en cualquiera de la primera realización a la octava realización. Por lo tanto, el aparato 700 de decodificación de imágenes puede suprimir la reducción de la eficiencia de codificación (mejorar la eficiencia de codificación). En otras palabras, el aparato 700 de decodificación de imágenes puede suprimir la reducción en la calidad de imagen de la imagen decodificada.
[0519] <Flujo del procesamiento de decodificación de imágenes>
[0520] A continuación, se describirá el flujo de cada procesamiento ejecutado por el aparato 700 de decodificación de imágenes que tiene la configuración anterior. En primer lugar, se describirá un ejemplo del flujo del procesamiento de codificación de imágenes con referencia al diagrama de flujo de la Figura 62.
[0521] Cuando se inicia el procesamiento de decodificación de imágenes, la memoria intermedia 711 de almacenamiento adquiere los datos codificados (flujo de bits) suministrados desde el exterior del aparato 700 de decodificación de imágenes y los guarda (almacena) en la etapa S701.
[0522] En la etapa S702, la unidad 712 de decodificación decodifica los datos codificados (flujo de bits) para obtener el nivel de valor del coeficiente de transformación de cuantización. Además, la unidad 712 de decodificación extrae por análisis sintáctico (analiza y adquiere) varios parámetros de codificación a partir de los datos codificados (flujo de bits) mediante esta decodificación.
[0523] En la etapa S703, la unidad 713 de cuantización inversa realiza la cuantización inversa, que es el procesamiento inverso de la cuantización realizada en el lado de codificación, con respecto al nivel de valor del coeficiente de transformación de cuantización obtenido mediante el procesamiento de la etapa S702 para obtener el coeficiente de transformación Coeff_IQ.
[0524] En la etapa S704, la unidad 714 de transformación ortogonal inversa realiza el procesamiento de transformación ortogonal inversa, que es el procesamiento inverso del procesamiento de transformación ortogonal realizado en el lado de codificación, con respecto al coeficiente de transformación Coeff_IQ obtenido en la etapa S703, y obtiene el residuo D’ de predicción.
[0525] En la etapa S705, la unidad 719 de predicción ejecuta el procesamiento de predicción utilizando un método de predicción especificado en el lado de la codificación sobre la base de la información analizada en la etapa S702, consulta la imagen de referencia almacenada en la memoria 718 de tramas y similares, y genera la imagen P de predicción.
[0526] En la etapa S706, la unidad aritmética 715 suma el residuo D' de predicción obtenido en la etapa S704 y la imagen P de predicción obtenida en la etapa S705 para derivar la imagen decodificada localmente R<local>.
[0527] En la etapa S707, la unidad 716 de filtrado en bucle realiza el procesamiento de filtrado en bucle en la imagen decodificada localmente R<local>obtenida mediante el procesamiento de la etapa S706.
[0528] En la etapa S708, la memoria intermedia 717 de clasificación obtiene la imagen decodificada R utilizando la imagen decodificada localmente Rlocal que ha sido sometida al procesamiento de filtrado y obtenida mediante el procesamiento de la etapa S707, y reordena el grupo de imágenes decodificadas R del orden de decodificación al orden de reproducción. El grupo R de imágenes decodificadas reordenado en el orden de reproducción se emite como una imagen en movimiento al exterior del aparato 700 de decodificación de imágenes.
[0529] Además, en la etapa S709, la memoria 718 de tramas almacena al menos una de la imagen decodificada localmente R<local>obtenida mediante el procesamiento de la etapa S706 o la imagen decodificada localmente R<local>después del procesamiento de filtrado obtenida mediante el procesamiento de la etapa S707.
[0530] Cuando finaliza el procesamiento de la etapa S709, finaliza el procesamiento de decodificación de imágenes.
[0531] En el procesamiento de decodificación de imágenes del flujo anterior, la presente tecnología se aplica al procesamiento de decodificación de la etapa S703. Es decir, en esta etapa S703, se realiza el procesamiento de decodificación del flujo similar al de la Figura 15. Es decir, la unidad 712 de decodificación realiza el procesamiento de decodificación adoptando uno de los métodos n.º 1 a n.º 8 mencionados anteriormente. Al hacerlo, el aparato 700 de decodificación de imágenes puede obtener efectos similares a los descritos anteriormente en cualquiera de la primera realización a la octava realización. Por lo tanto, el aparato 700 de decodificación de imágenes puede suprimir la reducción de la eficiencia de codificación (mejorar la eficiencia de codificación). En otras palabras, el aparato 700 de decodificación de imágenes puede suprimir la reducción en la calidad de imagen de la imagen decodificada.
[0532] <11. Anexo>
[0533] <Ordenador>
[0534] La serie de procesamiento descrita anteriormente puede ejecutarse con hardware y puede ejecutarse también con software. En un caso donde la serie de procesamientos se ejecute con software, se instala en un ordenador un programa que constituye el software. En este caso, el ordenador incluye un ordenador montado en un hardware dedicado, por ejemplo, un ordenador personal de uso general que puede ejecutar diversas funciones mediante la instalación de varios programas, y similares.
[0535] La Figura 63 es un diagrama de bloques que muestra un ejemplo de configuración de hardware de un ordenador en el que se ejecuta la serie de procesamientos descrita anteriormente a través de un programa.
[0536] En un ordenador 800, mostrado en la Figura 63, una unidad 801 de procesamiento central (CPU), una memoria 802 de solo lectura (ROM) y una memoria 803 de acceso aleatorio (RAM), están interconectadas mediante un bus 804. También hay una interfaz 810 de entrada/salida conectada al bus 804. Una unidad 811 de entrada, una unidad 812 de salida, una unidad 813 de almacenamiento, una unidad 814 de comunicación, y una unidad 815 de disco, están conectadas a la interfaz 810 de entrada/salida.
[0537] La unidad 811 de entrada incluye, por ejemplo, un teclado, un ratón, un micrófono, un panel táctil, un terminal de entrada y similares. La unidad 812 de salida incluye, por ejemplo, un elemento de visualización, un altavoz, un terminal de salida y similares. La unidad 813 de almacenamiento incluye, por ejemplo, un disco duro, un disco RAM, una memoria no volátil y similares. La unidad 814 de comunicación incluye, por ejemplo, una interfaz de red y similares. La unidad 815 de disco controla un medio extraíble 821, tal como un disco magnético, un disco óptico, un disco magnetoóptico o una memoria de semiconductores.
[0538] En un ordenador configurado de la manera descrita anteriormente, por ejemplo, la CPU 801 carga un programa almacenado en la unidad 813 de almacenamiento en la RAM 803,a través de la interfaz 810 de entrada/salida y el bus 804, y ejecuta el programa, con lo cual se realiza la serie de procesamientos descritos anteriormente. Los datos o similares necesarios para que la CPU 801 ejecute varios procesamientos también se almacenan en la RAM 803, según corresponda.
[0539] El programa que ejecutar por el ordenador puede aplicarse grabándolo en el medio extraíble 821, por ejemplo, como un medio en forma de paquete o similares. En ese caso, el programa puede instalarse en la unidad 813 de almacenamiento a través de la interfaz 810 de entrada/salida de modo que el medio extraíble 821 se monte en la unidad 815.
[0540] Además, este programa puede proporcionarse a través de un medio de transmisión por cable o inalámbrico, tal como una red de área local, Internet o una difusión digital por satélite. En ese caso, la unidad 814 de comunicación puede recibir el programa e instalarlo en la unidad 813 de almacenamiento.
[0541] Además, el programa puede instalarse previamente en la ROM 802 o en la unidad 813 de almacenamiento.
[0542] <Unidad de información y procesamiento>
[0543] La unidad de datos en la que se establece la diversa información descrita anteriormente y la unidad de datos objeto de varios procesamientos son arbitrarias y no se limitan a los ejemplos mencionados anteriormente. Por ejemplo, esta información y procesamiento pueden configurarse para cada unidad de transformación (TU), bloque de transformación (TB), unidad de predicción (PU), bloque de predicción (PB), unidad de codificación (CU), unidad de codificación más grande (LCU) y subbloque, bloque, tesela, segmento, imagen, secuencia o componente, o los datos de esas unidades de datos pueden ser un objetivo. Por supuesto, esta unidad de datos puede configurarse para cada información o procesamiento, y no es necesario que la unidad de datos de toda la información o procesamiento sea la misma. Obsérvese que la ubicación de almacenamiento de estas unidades de información es arbitraria, y la información puede almacenarse en el encabezado, el conjunto de parámetros o similares de la unidad de datos mencionada anteriormente. Además, puede almacenarse en una pluralidad de localizaciones.
[0544] <Información de control>
[0545] La información de control relacionada con la presente tecnología descrita en cada una de las realizaciones anteriores puede transmitirse desde el lado de codificación al lado de decodificación. Por ejemplo, puede transmitirse información de control (por ejemplo, enabled_flag) que controle si se permite (o prohíbe) o no la aplicación de la presente tecnología mencionada anteriormente descrita anteriormente. Además, por ejemplo, puede transmitirse información de control (por ejemplo, present_flag) que indique un objetivo al que se aplique la presente tecnología mencionada anteriormente (o un objetivo al que no se aplique la presente tecnología mencionada anteriormente). Por ejemplo, puede transmitirse información de control que especifique un tamaño de bloque (límites superior e inferior, o ambos), una trama, un componente, una capa y similares a los que se aplique la presente tecnología (o se permite o prohíbe la aplicación). <Objetivo al que puede aplicarse la presente tecnología>
[0546] La presente tecnología puede aplicarse a cualquier método de codificación y decodificación de imágenes. Es decir, siempre que no contradiga la presente tecnología mencionada anteriormente, las especificaciones de varios procesamientos relacionados con la codificación y decodificación de imágenes, tales como la transformación (transformación inversa), la cuantización (cuantización inversa), la codificación (decodificación), la predicción y similares, son arbitrarias y no se limitan al ejemplo mencionado anteriormente. Además, puede omitirse una parte del procesamiento siempre que no contradiga la presente tecnología mencionada anteriormente.
[0547] Además, la presente tecnología puede aplicarse a un sistema de codificación y decodificación de imágenes desde múltiples puntos de vista que codifique y decodifique una imagen desde múltiples puntos de vista que incluya imágenes de una pluralidad de puntos de vista (vistas). En ese caso, solo se requiere aplicar la presente tecnología para codificar y decodificar cada punto de vista (vista).
[0548] Además, la presente tecnología puede aplicarse a un sistema jerárquico de codificación (codificación escalable) y decodificación de imágenes que codifique y decodifique una imagen jerárquica que esté en capas para que tenga una función de escalabilidad para un parámetro predeterminado. En ese caso, solo se requiere aplicar la presente tecnología para la codificación y decodificación de cada jerarquía (capa).
[0549] Además, anteriormente se han descrito el aparato 100 de codificación, el aparato 200 de decodificación, el aparato 600 de codificación de imágenes y el aparato 700 de decodificación de imágenes como ejemplos de aplicación de la presente tecnología, pero la presente tecnología puede aplicarse a cualquier configuración.
[0550] Por ejemplo, la presente tecnología puede aplicarse a varios dispositivos electrónicos, como un transmisor o receptor (por ejemplo, un receptor de televisión o un teléfono móvil) para la transmisión por satélite, la transmisión por cable, como la televisión por cable, la distribución en Internet y la distribución a terminales mediante comunicación celular, aparatos (por ejemplo, grabadoras de disco duro y cámaras) que graben imágenes en un medio como un disco óptico, un disco magnético y una memoria flash, y reproduzcan imágenes desde estos medios de grabación, y similares. Además, por ejemplo, la presente tecnología puede llevarse a cabo como la configuración de una parte de un aparato, tal como un procesador, como un sistema de integración a gran escala (LSI) o similar (por ejemplo, un procesador de vídeo), un módulo que use una pluralidad de procesadores o similares (por ejemplo, un módulo de vídeo), una unidad que utilice una pluralidad de módulos o similares (por ejemplo, una unidad de vídeo), o un equipo en el que se añadan otras funciones a la unidad (por ejemplo, un equipo de vídeo).
[0551] Además, por ejemplo, la presente tecnología también puede aplicarse a un sistema de red que incluya una pluralidad de aparatos. Por ejemplo, la presente tecnología puede llevarse a cabo como computación en la nube compartida procesada de manera conjunta por una pluralidad de aparatos por medio de una red. Por ejemplo, la presente tecnología puede llevarse a cabo en un servicio en la nube que proporcione servicios relacionados con imágenes (imágenes en movimiento) a terminales arbitrarios tales como ordenadores, dispositivos audiovisuales (AV), terminales portátiles de procesamiento de información y dispositivos de Internet de las cosas (IoT).
[0552] Obsérvese que, en la presente descripción, el sistema significa un grupo de una pluralidad de elementos constitutivos (un aparato, un módulo [componente] o similar), con independencia de si todos los elementos constitutivos están presentes o no en el mismo receptáculo. Por lo tanto, una pluralidad de aparatos que se alojen en diferentes receptáculos y se conecten a través de una red, y un único aparato en el que una pluralidad de módulos se alojen en un solo receptáculo, forman el sistema.
[0553] <Campos de uso a los que puede aplicarse la presente tecnología>
[0554] Los sistemas, aparatos, unidades de procesamiento y similares a los que se aplica la presente tecnología pueden utilizarse en cualquier campo, como transporte, atención médica, prevención de delitos, agricultura, industria ganadera, minería, belleza, fábricas, electrodomésticos, meteorología, vigilancia de la naturaleza y similares. Además, el uso también es arbitrario.
[0555] Por ejemplo, la presente tecnología puede aplicarse a sistemas y dispositivos utilizados para proporcionar contenido ornamental y similares. Además, por ejemplo, la presente tecnología también puede aplicarse a sistemas y dispositivos proporcionados para tráfico, tales como supervisión del estado del tráfico y control automático de conducción. Además, por ejemplo, la presente tecnología también puede aplicarse a sistemas y dispositivos proporcionados para seguridad. Además, por ejemplo, la presente tecnología puede aplicarse a sistemas y dispositivos proporcionados para control automático de máquinas y similares. Además, por ejemplo, la presente tecnología también puede aplicarse a sistemas y dispositivos proporcionados para la industria agrícola y ganadera. Además, la presente tecnología también puede aplicarse a sistemas y dispositivos para monitorizar entornos naturales como volcanes, bosques y océanos y vida salvaje. Además, por ejemplo, la presente tecnología también puede aplicarse a sistemas y dispositivos proporcionados con fines deportivos.
[0556] <Otros>>
[0557] Obsérvese que en la presente memoria descriptiva, el “indicador” es información para identificar una pluralidad de estados e incluye no solo la información utilizada para identificar dos estados: true (1) o false (0), sino también información con la que es posible identificar tres o más estados. Por lo tanto, el valor que puede tomar este “indicador” puede ser, por ejemplo, dos valores: 1/0, o tres o más valores. Es decir, el número de bits que constituyen este “indicador” es arbitrario y puede ser de 1 bit o de una pluralidad de bits. Además, se asume que la información de identificación (incluido el identificador) incluye no solo la información de identificación en el flujo de bits, sino también la información de diferencia de la información de identificación con respecto a una determinada información de referencia en el flujo de bits. Por lo tanto, en la presente memoria descriptiva, el “indicador” y la “información de identificación” incluyen no solo la información sino también la información de diferencia con respecto a la información de referencia.
[0558] Además, puede transmitirse o grabar información diversa (metadatos y similares) sobre los datos codificados (flujo de bits) de cualquier forma siempre que esté asociada a los datos codificados. En este caso, el término “asociar” significa, por ejemplo, hacer que los demás datos estén disponibles (vinculables) al procesar un dato. Es decir, los datos asociados entre sí pueden combinarse como un solo dato o pueden ser datos separados. Por ejemplo, la información asociada a los datos codificados (imagen) puede transmitirse en una ruta de transmisión diferente a la de los datos codificados (imagen). Además, por ejemplo, la información asociada a los datos codificados (imagen) puede grabarse en un medio de grabación diferente al de los datos codificados (imagen) (u otra área de grabación del mismo medio de grabación). Obsérvese que esta “asociación” puede ser con una parte de los datos, no con la totalidad de los datos. Por ejemplo, una imagen y la información correspondiente a la imagen pueden asociarse entre sí en cualquier unidad, tal como una pluralidad de fotogramas, un fotograma o una parte dentro de un fotograma.
[0559] Obsérvese que, en la presente memoria descriptiva, los términos como “sintetizar”, “multiplexar”, “añadir”, “integrar”, “incluir”, “almacenar”, “introducir”, “conectar”, “insertar” y similares significan combinar una pluralidad de objetos en uno, por ejemplo, combinar datos codificados y metadatos en un dato, y significan un método de “asociación” descrito anteriormente.
[0560] Además, la realización de la presente tecnología no se limita a las realizaciones mencionadas anteriormente, sino que pueden realizarse varios cambios dentro del ámbito sin apartarse de la esencia de la presente tecnología.
[0561] Por ejemplo, la configuración descrita como un aparato (o unidad de procesamiento) puede dividirse y configurarse como una pluralidad de aparatos (o unidades de procesamiento). Y al revés, la configuración descrita anteriormente como una pluralidad de aparatos (o unidades de procesamiento) puede configurarse íntegramente como un aparato (o unidad de procesamiento). Además, por supuesto, puede añadirse una configuración distinta de la anterior a la configuración de cada aparato (o cada unidad de procesamiento). Además, cuando la configuración y el funcionamiento de todo el sistema son sustancialmente los mismos, una parte de la configuración de un aparato (o unidad de procesamiento) puede incluirse en la configuración de otro aparato (u otra unidad de procesamiento). Además, por ejemplo, el programa mencionado anteriormente puede ejecutarse en cualquier aparato. En ese caso, basta con que el aparato tenga las funciones necesarias (bloques funcionales y similares) para que pueda obtenerse la información necesaria.
[0562] Además, por ejemplo, cada etapa de un diagrama de flujo puede ejecutarse por un aparato, o puede ser compartida y ejecutada por una pluralidad de aparatos. Además, en un caso donde una etapa incluya una pluralidad de piezas de procesamiento, la pluralidad de piezas de procesamiento puede ejecutarse mediante un aparato, o puede compartirse y ejecutarse mediante una pluralidad de aparatos. En otras palabras, la pluralidad de piezas de procesamiento incluidas en una etapa puede ejecutarse como procesamiento de una pluralidad de etapas. Y al revés, el procesamiento descrito como una pluralidad de etapas puede ejecutarse colectivamente como una etapa.
[0563] Además, por ejemplo, con respecto al programa ejecutado por el ordenador, el procesamiento de las etapas de escritura del programa puede ejecutarse en orden cronológico siguiendo el orden descrito en la presente memoria descriptiva o puede ejecutarse en paralelo o individualmente en un tiempo requerido, p. ej., cuando se lleve a cabo una llamada. Es decir, siempre que no haya contradicción, el procesamiento de cada etapa puede ejecutarse en un orden diferente al orden mencionado anteriormente. Además, el procesamiento de las etapas de escritura de este programa puede ejecutarse en paralelo con el procesamiento de otro programa, o puede ejecutarse en combinación con el procesamiento de otro programa.
[0564] Además, por ejemplo, una pluralidad de técnicas relacionadas con la presente tecnología puede llevarse a cabo de forma independiente siempre que no haya ninguna contradicción. Por supuesto, puede utilizarse cualquier número de las presentes tecnologías en combinación. Por ejemplo, una parte o la totalidad de la presente tecnología descrita en cualquiera de las realizaciones puede llevarse a cabo en combinación con una parte o la totalidad de la presente tecnología descrita en otra realización, ejecutada en una sola etapa.
[0565] Además, por ejemplo, con respecto al programa ejecutado por el ordenador, el procesamiento de las etapas de escritura del programa puede ejecutarse en orden cronológico siguiendo el orden descrito en la presente memoria descriptiva o puede ejecutarse en paralelo o individualmente en un tiempo requerido, p. ej., cuando se lleve a cabo una llamada. Es decir, siempre que no haya contradicción, el procesamiento de cada etapa puede ejecutarse en un orden diferente al orden mencionado anteriormente. Además, el procesamiento de las etapas de escritura de este programa puede ejecutarse en paralelo con el procesamiento de otro programa, o puede ejecutarse en combinación con el procesamiento de otro programa.
[0566] Además, por ejemplo, una pluralidad de técnicas relacionadas con la presente tecnología pueden llevarse a cabo de forma independiente siempre que no haya ninguna contradicción. Por supuesto, puede utilizarse cualquier número de las presentes tecnologías en combinación. Por ejemplo, una parte o la totalidad de la presente tecnología descrita en cualquiera de las realizaciones puede llevarse a cabo en combinación con una parte o la totalidad de la presente tecnología descrita en otra realización. Además, también es posible llevar a cabo una parte o la totalidad de cualquiera de las presentes tecnologías mencionadas anteriormente en combinación con otra tecnología no descrita anteriormente.
[0567] Lista de signos de referencia
[0568] 100 Aparato de codificación
[0569] 101 Secuenciador
[0570] 102 CABAC
[0571] 121 Unidad de binarización
[0572] 122 Unidad de selección
[0573] 123 Modelo de contexto
[0574] 124 Unidad de codificación aritmética
[0575] 125 Unidad de codificación aritmética
[0576] 126 Unidad de selección
[0577] 200 Aparato decodificación
[0578] 201 CABAC
[0579] 202 Analizador sintáctico
[0580] 221 Unidad de selección
[0581] 222 Modelo de contexto
[0582] 223 Unidad de decodificación aritmética
[0583] 224 Unidad de decodificación aritmética
[0584] 225 Unidad de selección
[0585] 226 Unidad de conversión multivalor
[0586] 600 Aparato de codificación de imágenes
[0587] 615 Unidad de codificación
[0588] 700 Aparato de decodificación de imágenes
[0589] 712 Unidad de decodificación

Claims (14)

1. REIVINDICACIONES
1. Un aparato (100) de procesamiento de imágenes que comprende:
una unidad (101) de derivación del valor del elemento sintáctico configurada
para establecer un valor límite superior de un número de bins codificados por contexto que pueden asignarse a un bloque objetivo de procesamiento que comprende una pluralidad de subbloques sobre la base del tamaño del bloque objetivo de procesamiento y un número de bins codificados por contexto que pueden asignarse a cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, en donde el tamaño del bloque objetivo de procesamiento es mayor que el tamaño de cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento,
para seleccionar sucesivamente cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, y
para derivar un valor de elemento sintáctico para cada uno de los subbloques seleccionados, sucesivamente, utilizando datos de coeficientes derivados de datos de imagen, de modo que la suma de un número de bins codificados por contexto utilizados para codificar cada uno de los valores de los elementos sintácticos no supere el valor límite superior del número de bins codificados por contexto que pueden asignarse al bloque objetivo de procesamiento; y
una unidad (102) de codificación configurada para codificar los valores de los elementos sintácticos derivados y generar datos codificados.
2. Un aparato (100) de procesamiento de imágenes según la reivindicación 1, en donde el bloque objetivo de procesamiento es una unidad de codificación, CU, o una unidad de transformación, TU.
3. Un aparato (100) de procesamiento de imágenes según la reivindicación 1, en donde la unidad (101) de derivación de valores de elementos sintácticos está configurada para
establecer el valor límite superior basándose en un número de la pluralidad de subbloques en el bloque objetivo de procesamiento y en el número de bins codificados por contexto que pueden asignarse a cada uno de la pluralidad de subbloques.
4. Un aparato (100) de procesamiento de imágenes según la reivindicación 1, en donde el aparato (100) de procesamiento de imágenes está configurado para
disminuir el valor límite superior, en donde la unidad (101) de derivación de valores de elementos sintácticos está configurada para
seleccionar sucesivamente cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, derivar un valor de elemento sintáctico para cada uno de los subbloques seleccionados, sucesivamente, utilizando datos de coeficientes derivados de datos de imagen, de modo que la suma de un número de bins codificados por contexto utilizados para codificar cada uno de los valores de los elementos sintácticos no supere el valor límite superior disminuido,
determinar si el valor límite superior disminuido está por debajo de un umbral y, en respuesta, la unidad de codificación (102) está configurada para
codificar los valores de los elementos sintácticos derivados y generar datos codificados según un modo bypass.
5. Un aparato (100) de procesamiento de imágenes según la reivindicación 1, en donde la unidad (101) de generación de valores de elementos sintácticos es un secuenciador (101).
6. Un aparato (100) de procesamiento de imágenes según la reivindicación 1, en donde la unidad (102) de codificación es una unidad de codificación aritmética binaria adaptativa al contexto (CABAC).
7. Un método de procesamiento de imágenes que comprende:
para establecer un valor límite superior de un número de bins codificados por contexto que pueden asignarse a un bloque objetivo de procesamiento que comprende una pluralidad de subbloques sobre la base del tamaño del bloque objetivo de procesamiento y un número de bins codificados por contexto que pueden asignarse a cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, en donde el
tamaño del bloque objetivo de procesamiento es mayor que el tamaño de cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento,
seleccionar sucesivamente cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, derivar un valor de elemento sintáctico para cada uno de los subbloques seleccionados, sucesivamente, utilizando datos de coeficientes derivados de datos de imagen, de modo que la suma de un número de bins codificados por contexto utilizados para codificar cada uno de los valores de los elementos sintácticos no supere el valor límite superior del número de bins codificados por contexto que pueden asignarse al bloque objetivo de procesamiento;
codificar los valores de los elementos sintácticos derivados y generar datos codificados.
8. Un aparato (200) de procesamiento de imágenes que comprende:
una unidad (201) de decodificación configurada para decodificar datos codificados y generar un valor de elemento sintáctico para cada uno de una pluralidad de subbloques; y
una unidad (202) de derivación de datos de coeficientes configurada para
establecer un valor límite superior de un número de bins codificados por contexto que pueden asignarse a un bloque objetivo de procesamiento que comprende una pluralidad de subbloques sobre la base del tamaño del bloque objetivo de procesamiento y un número de bins codificados por contexto que pueden asignarse a cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, en donde el tamaño del bloque objetivo de procesamiento es mayor que el tamaño de cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento,
seleccionar sucesivamente cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, y derivar los datos de coeficientes correspondientes a los datos de imagen para cada uno de los subbloques seleccionados utilizando los valores de los elementos sintácticos generados, en donde la suma de varios bins codificados por contexto utilizados para decodificar cada uno de los valores de los elementos sintácticos generados no supera el valor límite superior del número de bins codificados por contexto que pueden asignarse al bloque objetivo de procesamiento.
9. Un aparato (200) de procesamiento de imágenes según la reivindicación 8, en donde el bloque objetivo de procesamiento es una unidad de codificación, CU, o una unidad de transformación, TU.
10. Un aparato (200) de procesamiento de imágenes según la reivindicación 8, en donde la unidad (202) de derivación de datos de contexto está configurada para establecer el valor límite superior basándose en un número de la pluralidad de subbloques del bloque objetivo de procesamiento y en el número de bins codificados por contexto que pueden asignarse a cada uno de la pluralidad de subbloques.
11. Un aparato (100) de procesamiento de imágenes según la reivindicación 8, en donde el aparato (100) de procesamiento de imágenes está configurado para
determinar que el valor límite superior se ha disminuido,
determinar que el valor límite superior disminuido está por debajo de un umbral, en donde la unidad (201) de decodificación está configurada para decodificar datos codificados según un modo bypass y generar un valor de elemento sintáctico para cada uno de la pluralidad de subbloques, en donde la unidad (202) de derivación de datos de coeficientes está configurada para
seleccionar sucesivamente cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, y derivar los datos de coeficientes correspondientes a los datos de imagen para cada uno de los subbloques seleccionados utilizando los valores de los elementos sintácticos generados, en donde la suma de varios bins codificados por contexto utilizados para decodificar cada uno de los valores de los elementos sintácticos generados no supera el valor límite superior disminuido del número de bins codificados por contexto que pueden asignarse al bloque objetivo de procesamiento.
12. Un aparato (200) de procesamiento de imágenes según la reivindicación 8, en donde la unidad de decodificación es una unidad de codificación aritmética binaria adaptativa al contexto (CABAC).
13. Un aparato (200) de procesamiento de imágenes según la reivindicación 8, en donde la unidad (202) de derivación de datos de coeficientes es un analizador sintáctico.
14. Un método de procesamiento de imágenes que comprende:
decodificar datos codificados y generar un valor de elemento sintáctico para cada uno de una pluralidad de subbloques,
establecer un valor límite superior de un número de bins codificados por contexto que pueden asignarse a un bloque objetivo de procesamiento que comprende una pluralidad de subbloques sobre la base del tamaño del bloque objetivo de procesamiento y un número de bins codificados por contexto que pueden asignarse a cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, en donde el tamaño del bloque objetivo de procesamiento es mayor que el tamaño de cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento,
seleccionar sucesivamente cada uno de la pluralidad de subbloques del bloque objetivo de procesamiento, y derivar los datos de coeficientes correspondientes a los datos de imagen para cada uno de los subbloques seleccionados utilizando los valores de los elementos sintácticos generados, en donde la suma de varios bins codificados por contexto utilizados para decodificar cada uno de los valores de los elementos sintácticos generados no supera el valor límite superior del número de bins codificados por contexto que pueden asignarse al bloque objetivo de procesamiento.
ES20752383T 2019-02-07 2020-02-06 Image processing device and method Active ES3071057T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962802477P 2019-02-07 2019-02-07
PCT/JP2020/004559 WO2020162540A1 (ja) 2019-02-07 2020-02-06 画像処理装置および方法

Publications (1)

Publication Number Publication Date
ES3071057T3 true ES3071057T3 (en) 2026-06-19

Family

ID=71947799

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20752383T Active ES3071057T3 (en) 2019-02-07 2020-02-06 Image processing device and method

Country Status (8)

Country Link
US (2) US12081761B2 (es)
EP (2) EP4742669A3 (es)
JP (2) JP7415958B2 (es)
KR (2) KR20260066199A (es)
CN (1) CN113366835B (es)
ES (1) ES3071057T3 (es)
PL (1) PL3923573T3 (es)
WO (1) WO2020162540A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL3923573T3 (pl) * 2019-02-07 2026-07-06 Sony Group Corporation Urządzenie i sposób do przetwarzania obrazu
WO2021040485A1 (ko) * 2019-08-31 2021-03-04 엘지전자 주식회사 영상 코딩 시스템에서 단순화된 레지듀얼 데이터 코딩을 사용하는 영상 디코딩 방법 및 그 장치
CN117044202A (zh) * 2021-03-22 2023-11-10 索尼集团公司 图像处理装置和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX353544B (es) * 2012-11-30 2018-01-18 Sony Corp Dispositivo de procesamiento de imagen y método.
US10230983B2 (en) 2013-12-30 2019-03-12 Qualcomm Incorporated Simplification of delta DC residual coding in 3D video coding
JP2020072277A (ja) * 2017-03-03 2020-05-07 シャープ株式会社 動画像符号化装置及び動画像復号装置
EP3975572A1 (en) * 2018-09-11 2022-03-30 LG Electronics Inc. Residual coding method and device for same
KR20250156839A (ko) * 2018-10-05 2025-11-03 로즈데일 다이나믹스 엘엘씨 변환 계수 코딩 방법 및 그 장치
CN116886915A (zh) * 2018-10-05 2023-10-13 Lg电子株式会社 图像编码/解码方法、存储介质及数据传输方法
KR102365119B1 (ko) * 2018-11-12 2022-02-18 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수를 코딩하는 방법 및 그 장치
US10904548B2 (en) * 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
US11523136B2 (en) * 2019-01-28 2022-12-06 Hfi Innovation Inc. Methods and apparatuses for coding transform blocks
PL3923573T3 (pl) * 2019-02-07 2026-07-06 Sony Group Corporation Urządzenie i sposób do przetwarzania obrazu
WO2021006697A1 (ko) * 2019-07-10 2021-01-14 엘지전자 주식회사 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
KR102962343B1 (ko) 2026-05-11
KR20260066199A (ko) 2026-05-12
PL3923573T3 (pl) 2026-07-06
JP2024023856A (ja) 2024-02-21
JP7415958B2 (ja) 2024-01-17
EP4742669A3 (en) 2026-07-01
US20240380888A1 (en) 2024-11-14
CN113366835A (zh) 2021-09-07
JP7559917B2 (ja) 2024-10-02
CN113366835B (zh) 2025-02-25
EP3923573A4 (en) 2022-06-22
EP3923573C0 (en) 2026-04-01
EP3923573B1 (en) 2026-04-01
KR20210124218A (ko) 2021-10-14
EP3923573A1 (en) 2021-12-15
US12081761B2 (en) 2024-09-03
EP4742669A2 (en) 2026-05-13
JPWO2020162540A1 (ja) 2021-12-16
US20220124334A1 (en) 2022-04-21
WO2020162540A1 (ja) 2020-08-13