ES2711954T3 - Dispositivo y procedimiento para codificación escalable de información de vídeo basándose en codificación de vídeo de alta eficiencia - Google Patents
Dispositivo y procedimiento para codificación escalable de información de vídeo basándose en codificación de vídeo de alta eficiencia Download PDFInfo
- Publication number
- ES2711954T3 ES2711954T3 ES13811078T ES13811078T ES2711954T3 ES 2711954 T3 ES2711954 T3 ES 2711954T3 ES 13811078 T ES13811078 T ES 13811078T ES 13811078 T ES13811078 T ES 13811078T ES 2711954 T3 ES2711954 T3 ES 2711954T3
- Authority
- ES
- Spain
- Prior art keywords
- layer
- block
- base layer
- video
- prediction
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 239000010410 layer Substances 0.000 claims abstract description 328
- 230000006872 improvement Effects 0.000 claims abstract description 65
- 239000011229 interlayer Substances 0.000 claims abstract description 53
- 238000009966 trimming Methods 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims description 3
- 230000033001 locomotion Effects 0.000 description 115
- 239000012634 fragment Substances 0.000 description 57
- 239000013598 vector Substances 0.000 description 32
- 238000013139 quantization Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 13
- 230000002441 reversible effect Effects 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 9
- 238000012800 visualization Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 239000000523 sample Substances 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- 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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/34—Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/55—Motion estimation with spatial constraints, e.g. at image or region borders
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un procedimiento de codificación de información de vídeo, el procedimiento que comprende: recibir información de vídeo asociada con una capa de mejora (400) y una capa base (430), la capa base que comprende una región de referencia y una región fuera de la región de referencia, en el que la región de referencia es una región recortada de la capa base, en el que la región de referencia está disponible para la predicción entre capas de la capa de mejora, en el que la región fuera de la región de referencia no está disponible para la predicción entre capas de la capa de mejora, y en la que la capa de mejora comprende bloques que corresponden a bloques respectivos en la capa base; codificar la capa base; y codificar la capa de mejora, en el que codificar la capa de mejora comprende: usar la región de referencia de la capa base para la predicción entre capas de la capa de mejora; asignar coordenadas que identifican un bloque de capa de mejora actual a las coordenadas correspondientes de una posición asignada en la capa base; determinar si las coordenadas asignadas están fuera de la región de referencia de la capa base; y en respuesta a la determinación de que las coordenadas asignadas están fuera de la región de referencia de la capa base, determinar que el bloque de capa base correspondiente no está disponible para predecir el bloque actual, y deshabilitar la predicción de elementos sintácticos entre capas para el bloque de capa de mejora actual.
Description
DESCRIPCION
Dispositivo y procedimiento para codificacion escalable de informacion de video basandose en codificacion de video de alta eficiencia
CAMPO TECNICO
[0001] Esta divulgacion esta relacionada con el campo de la codificacion y compresion de video, codificacion escalable basada en codificacion de video de alta eficiencia (HEVC) y codificacion de multiples visualizaciones y 3DV basada en HEVC.
ANTECEDENTES
[0002] Las capacidades de video digital pueden incorporarse a una amplia gama de dispositivos, incluidos televisores digitales, sistemas de difusion directa digital, sistemas de difusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de sobremesa, camaras digitales, dispositivos de grabacion digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, dispositivos de videoconferencia y similares. Los dispositivos de video digital implementan tecnicas de compresion de video, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, codificacion de video avanzada (AVC), la norma de codificacion de video de alta eficiencia (HEVC) actualmente en desarrollo y las extensiones de dichas normas. Los dispositivos de video pueden transmitir, recibir, codificar, descodificar y/o almacenar informacion de video digital mas eficazmente, implementando tales tecnicas de codificacion de video.
[0003] Las tecnicas de compresion de video realizan la prediccion espacial (dentro de las imagenes) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrinseca a las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (por ejemplo, una trama de video, una parte de una trama de video, etc.) puede dividirse en bloques de video, que tambien pueden denominarse bloques arbolados, unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intracodificado (I) de una imagen se codifican utilizando prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de video en un fragmento inter-codificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas, y las imagenes de referencia pueden denominarse tramas de referencia.
[0004] La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pixeles entre el bloque original a codificar y el bloque predictivo. Un bloque inter-codificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica de acuerdo con un modo de intracodificacion y a los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pixeles a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que a continuacion se pueden cuantificar. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, pueden escanearse con el fin de generar un vector unidimensional de coeficientes de transformada, y puede aplicarse codificacion por entropia para lograr aun mas compresion.
[0005] El documento US 2008/0165850 divulga un procedimiento en el que una unidad de codificacion puede realizar una prediccion entre capas para la capa de mejora con respecto a una capa base, para bloques de la capa de mejora que se superponen total o parcialmente con bloques de la capa base.
SUMARIO
[0006] La codificacion de video escalable (SVC) se refiere a la codificacion de video en la que se utiliza una capa base (BL), a veces denominada capa de referencia (RL), y una o mas capas de mejora escalable (EL). Para SVC, la capa base puede transportar datos de video con un nivel de calidad base. Las una o mas capas de mejora pueden transportar datos de video adicionales para soportar niveles SNR espaciales, temporales y/o de senal a ruido mas altos. Las capas de mejora pueden definirse en relacion con una capa previamente codificada. Por ejemplo, una capa inferior puede servir como una BL, mientras que una capa superior puede servir como una EL. Las capas medias pueden servir como EL o RL, o como ambas. Por ejemplo, una capa en el medio puede ser una EL para las capas debajo de ella, como la capa base o cualquier capa de mejora intermedia, y al mismo tiempo servir como RL para una o mas capas de mejora sobre ella. De manera similar, en la extension de multiples visualizaciones o 3D de la norma HEVC, puede haber multiples visualizaciones, y la informacion de una visualizacion puede utilizarse para codificar (por ejemplo, codificar o descodificar) la informacion de otra visualizacion (por ejemplo, estimacion de movimiento, prediccion de vector de movimiento y/u otras redundancias).
[0007] En la extension HEVC, se puede predecir un bloque actual en la capa de mejora u otra visualizacion usando un bloque correspondiente en la capa o visualizacion base. Por ejemplo, los elementos sintacticos, la informacion de movimiento (por ejemplo, vectores de movimiento) o la informacion de modo (por ejemplo, modo intra) del bloque actual pueden basarse en el bloque correspondiente en la capa base. Por ejemplo, un vector de movimiento de capa base (MV) se puede utilizar como candidato en el modo de combinacion de capa de mejora/listas de candidatos AMVP. Una lista de candidatos es una matriz de predictores de vectores de movimiento espacial y temporal que debe utilizar el codificador para predecir el bloque actual. Por ejemplo, en lugar de codificar y comunicar el propio vector de movimiento, un codificador de video puede codificar y comunicar una diferencia de vector de movimiento (MVD) en relacion con un vector de movimiento conocido (o que puede conocerse). En H.264/AVC, el vector de movimiento conocido, que se puede usar con el MVD para definir el vector de movimiento actual, se puede definir mediante un llamado predictor de vector de movimiento (MVP), que se obtiene como la media de los vectores de movimiento Asociado a bloques contiguos. Sin embargo, las tecnicas MVP mas avanzadas pueden permitir que el codificador de video seleccione el contiguo desde el cual definir el MVP.
[0008] Sin embargo, el bloque correspondiente de la capa base se puede ubicar fuera de la trama de la capa base, por ejemplo, cuando el tamano de trama codificada es mas grande que el tamano de trama real que puede mostrarse en un dispositivo, o cuando la capa base esta codificada con otra norma de video, como AVC o MPEG2. En tales situaciones, la informacion del bloque correspondiente no puede usarse para predecir el bloque actual en la capa o visualizacion de mejora porque no hay informacion disponible para el bloque correspondiente. En otras palabras, las partes de la capa o visualizacion de mejora que no corresponden a areas dentro del tamano de trama real o codificada de la imagen de la capa base no pueden codificarse utilizando la informacion de la capa o visualizacion base, y por lo tanto la eficiencia de la codificacion puede reducirse. Al permitir que dichas partes de la capa o visualizacion de mejora sean predichas utilizando la informacion obtenida a partir de la capa o visualizacion base, las tecnicas descritas en esta divulgacion pueden mejorar la eficiencia de codificacion y/o reducir la complejidad computacional asociada con un procedimiento de codificacion de datos de video.
[0009] Cada uno de los sistemas, procedimientos y dispositivos de esta divulgacion tiene varios aspectos innovadores, ninguno de los cuales es el unico responsable de los atributos deseables divulgados en el presente documento. La invencion se expone en el conjunto de reivindicaciones adjuntas; los ejemplos adicionales denominados "modos de realizacion" en la descripcion son ejemplos ilustrativos.
[0010] En un modo de realizacion, un aparato configurado para codificar informacion de video incluye una unidad de memoria y un procesador en comunicacion con la unidad de memoria. La unidad de memoria esta configurada para almacenar informacion de video asociada con una capa de mejora que tiene un primer bloque y una capa base que tiene un segundo bloque, correspondiendo el segundo bloque en la capa base al primer bloque en la capa de mejora. El procesador esta configurado para predecir, mediante prediccion entre capas, el primer bloque en la capa de mejora basandose en la informacion obtenida a partir del segundo bloque en la capa base. Al menos una parte del segundo bloque esta ubicada fuera de una region de referencia de la capa base, estando disponible la region de referencia para el uso para la prediccion entre capas del primer bloque. La informacion obtenida a partir del segundo bloque en la capa base puede incluir informacion correspondiente a un bloque contiguo mas cercano al segundo bloque. El bloque contiguo puede ubicarse recortando la informacion de coordenadas del segundo bloque a un rango de la region de referencia (por ejemplo, tanto horizontal como verticalmente) de la capa base. De forma alternativa, la informacion de coordenadas del primer bloque puede recortarse primero a un rango de una imagen actual descodificada o recortada de la capa base antes de realizar un proceso de asignacion de posicion para determinar el segundo bloque de la capa base. En el caso de que se determine que el segundo bloque (o una parte del mismo) esta fuera de la region de referencia de la capa base, la prediccion entre capas de los elementos sintacticos y la informacion residual se pueden desactivar para el primer bloque, o de forma alternativa, los valores sintacticos predeterminados pueden usarse para la prediccion entre capas del primer bloque. En otro modo de realizacion, los valores sintacticos del bloque contiguo se pueden usar para la prediccion entre capas del primer bloque. El tamano de la unidad de codificacion (SCU) mas pequena de la capa de mejora puede configurarse para que sea diferente de la SCU de la capa base. El tamano de relleno de limite de cada limite de imagen de la capa de mejora puede configurarse para ser diferente del tamano de relleno de limite de cada limite de imagen correspondiente de la capa base.
[0011] En otro modo de realizacion, un procedimiento para codificar informacion de video incluye: recibir informacion de video asociada con una capa base y una capa de mejora; y predecir, mediante la prediccion entre capas, un primer bloque en la capa de mejora basado en la informacion obtenida a partir de un segundo bloque en la capa base, correspondiendo el segundo bloque en la capa base al primer bloque en la capa de mejora; y predecir, mediante la prediccion entre capas, el primer bloque en la capa de mejora basandose en la informacion obtenida a partir del segundo bloque en la capa base. Al menos una parte del segundo bloque esta ubicada fuera de una region de referencia de la capa base, estando disponible la region de referencia para el uso para la prediccion entre capas del primer bloque. La informacion obtenida a partir del segundo bloque en la capa base puede incluir informacion correspondiente a un bloque contiguo mas cercano al segundo bloque. El bloque contiguo puede ubicarse recortando la informacion de coordenadas del segundo bloque a un rango de la region de referencia (por ejemplo, tanto horizontal como verticalmente) de la capa base. De forma alternativa, la informacion de coordenadas del primer bloque puede recortarse primero a un rango de una imagen actual descodificada o recortada de la capa
base antes de realizar un proceso de asignacion de posicion para determinar el segundo bloque de la capa base. En el caso de que se determine que el segundo bloque (o una parte del mismo) esta fuera de la region de referencia de la capa base, la prediccion entre capas de los elementos sintacticos y la informacion residual se pueden desactivar para el primer bloque, o de forma alternativa, los valores sintacticos predeterminados pueden usarse para la prediccion entre capas del primer bloque. En otro modo de realizacion, los valores sintacticos del bloque contiguo se pueden usar para la prediccion entre capas del primer bloque. El tamano de la unidad de codificacion (SCU) mas pequena de la capa de mejora puede configurarse para que sea diferente de la SCU de la capa base. El tamano de relleno de limite de cada limite de imagen de la capa de mejora puede configurarse para ser diferente del tamano de relleno de limite de cada limite de imagen correspondiente de la capa base.
[0012] En otro modo de realizacion, un procedimiento para descodificar informacion de video incluye: recibir elementos sintacticos extraidos de un flujo de bits de video codificado, en el que los elementos sintacticos comprenden informacion de video asociada con una capa de mejora que tiene un primer bloque y una capa base que tiene un segundo bloque, correspondiendo el segundo bloque al primer bloque; y predecir, mediante la prediccion entre capas, el primer bloque en la capa de mejora basandose en la informacion obtenida a partir del segundo bloque en la capa base, en el que al menos una parte del segundo bloque esta ubicada fuera de una region de referencia de la capa base, estando la region de referencia disponible para su uso para la prediccion entre capas del primer bloque. La informacion obtenida a partir del segundo bloque en la capa base puede incluir informacion correspondiente a un bloque contiguo mas cercano al segundo bloque. El bloque contiguo puede ubicarse recortando la informacion de coordenadas del segundo bloque a un rango de la region de referencia (por ejemplo, tanto horizontal como verticalmente) de la capa base. De forma alternativa, la informacion de coordenadas del primer bloque puede recortarse primero a un rango de una imagen actual descodificada o recortada de la capa base antes de realizar un proceso de asignacion de posicion para determinar el segundo bloque de la capa base. En el caso de que se determine que el segundo bloque (o una parte del mismo) esta fuera de la region de referencia de la capa base, la prediccion entre capas de los elementos sintacticos y la informacion residual se pueden desactivar para el primer bloque, o de forma alternativa, los valores sintacticos predeterminados pueden usarse para la prediccion entre capas del primer bloque. En otro modo de realizacion, los valores sintacticos del bloque contiguo se pueden usar para la prediccion entre capas del primer bloque. El tamano de la unidad de codificacion (SCU) mas pequena de la capa de mejora puede configurarse para que sea diferente de la SCU de la capa base. El tamano de relleno de limite de cada limite de imagen de la capa de mejora puede configurarse para ser diferente del tamano de relleno de limite de cada limite de imagen correspondiente de la capa base.
[0013] En otro modo de realizacion, un medio legible por ordenador no transitorio incluye codigo que, cuando se ejecuta, hace que un aparato: almacene informacion de video asociada con una capa de mejora que tiene un primer bloque y una capa base que tiene un segundo bloque, correspondiendo el segundo bloque al primer bloque y, predecir, mediante prediccion entre capas, el primer bloque en la capa de mejora basandose en la informacion obtenida a partir del segundo bloque en la capa base, en el que al menos una parte del segundo bloque esta ubicada fuera de una region de referencia de la capa base, estando la region de referencia disponible para su uso para la prediccion entre capas del primer bloque.
[0014] En otro modo de realizacion, un dispositivo de codificacion de video configurado para codificar informacion de video incluye: medios para almacenar informacion de video asociada con una capa de mejora que tiene un primer bloque y una capa base que tiene un segundo bloque, correspondiendo el segundo bloque al primer bloque; y medios para predecir, mediante prediccion entre capas, el primer bloque en la capa de mejora basandose en la informacion obtenida a partir del segundo bloque en la capa base, en el que al menos una parte del segundo bloque esta ubicada fuera de una region de referencia de la capa base, estando la region de referencia disponible para su uso para la prediccion entre capas del primer bloque.
BREVE DESCRIPCION DE LOS DIBUJOS
[0015]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion y descodificacion de video de ejemplo que puede utilizar tecnicas de acuerdo con los aspectos descritos en esta divulgacion.
La FIG.2 es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar tecnicas de acuerdo con los aspectos descritos en esta divulgacion.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un descodificador de video que puede implementar tecnicas de acuerdo con aspectos descritos en esta divulgacion.
La FIG. 4 un diagrama que ilustra las diversas tramas en la capa base y la capa de mejora.
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento de codificacion de informacion de video, de acuerdo con un modo de realizacion de la presente divulgacion.
DESCRIPCION DETALLADA
[0016] Ciertos modos de realizacion descritos en el presente documento se refieren a la prediccion entre capas para la codificacion de vfdeo escalable en el contexto de los codecs de vfdeo avanzados, como HEVC (codificacion de vfdeo de alta eficiencia). Mas especfficamente, la presente divulgacion se refiere a sistemas y procedimientos para mejorar el rendimiento de la prediccion entre capas en la extension de codificacion de vfdeo escalable (SVC) de HEVC.
[0017] En la descripcion a continuacion, se describen tecnicas H.264/AVC relacionadas con ciertos modos de realizacion; tambien se analizan la norma HEVC y las tecnicas relacionadas. Aunque ciertos modos de realizacion se describen en el presente documento en el contexto de las normas HEVC y/o H.264, un experto en la tecnica puede apreciar que los sistemas y procedimientos divulgados en el presente documento pueden aplicarse a cualquier norma de codificacion de vfdeo adecuado. Por ejemplo, los modos de realizacion divulgados en el presente documento pueden ser aplicables a una o mas de las siguientes normas: ITU-T H.261, MPEG-1 Visual de la ISO/IEC, ITU-T H.262 o MPEG-2 Visual de la ISO/IEC, ITU-T H.263, MPEG-4 Visual de la ISO/IEC e ITU-T H.264 (tambien conocida como AVC del MPEG-4 de la ISO/IEC), incluyendo sus ampliaciones de codificacion de vfdeo escalable (SVC) y de codificacion de vfdeo de multiples visualizaciones (MVC).
[0018] Para fines de ilustracion solamente, ciertos modos de realizacion divulgados en el presente documento se describen con ejemplos que incluyen solo dos capas (por ejemplo, una capa de nivel inferior tal como la capa base y una capa de nivel superior tal como la capa de mejora). Debe entenderse que dichos ejemplos pueden ser aplicables a configuraciones que incluyen multiples capas base y/o de mejora. Ademas, para facilitar la explicacion, la siguiente divulgacion incluye los terminos "tramas" o "bloques" con referencia a ciertos modos de realizacion. Sin embargo, estos terminos no pretenden ser limitativos. Por ejemplo, las tecnicas descritas a continuacion se pueden usar con cualquier unidad de vfdeo adecuada, como bloques (por ejemplo, CU, PU, TU, macrobloques, etc.), fragmentos, tramas, etc.
[0019] HEVC, en general, sigue el marco de las normas de codificacion de vfdeo anteriores en muchos aspectos. La unidad de prediccion en HEVC es diferente de la de ciertos estandares de codificacion de vfdeo anteriores (por ejemplo, macrobloque). De hecho, el concepto de macrobloque no existe en HEVC como se entiende en ciertas normas anteriores de codificacion de vfdeo. Un macrobloque se reemplaza por una estructura jerarquica basada en un esquema de arbol cuaternario, lo cual puede proporcionar una gran flexibilidad, entre otros beneficios posibles. Por ejemplo, dentro del esquema HEVC, se definen tres tipos de bloques, es decir, unidad de codificacion (CU), unidad de prediccion (PU) y unidad de transformada (TU). La CU puede referirse a la unidad basica de division de la region. La CU puede considerarse analoga al concepto de macrobloque, pero no limita el tamano maximo y puede permitir la division recursiva en cuatro CU de igual tamano para mejorar la adaptabilidad del contenido. La PU puede considerarse la unidad basica de prediccion inter/intra, y puede contener multiples particiones de forma arbitraria en una unica PU para codificar de manera efectiva patrones de imagen irregulares. La TU se puede considerar como la unidad basica de transformada. Se puede definir independientemente de la PU; sin embargo, su tamano puede estar limitado a la CU a la que pertenece la TU. Esta separacion de la estructura de bloques en tres conceptos diferentes puede permitir optimizar cada uno de ellos de acuerdo con su funcion, lo cual puede dar como resultado una mejora de la eficacia de codificacion.
Normas de codificacion de video
[0020] Una imagen digital, como una imagen de vfdeo, una imagen de TV, una imagen fija o una imagen generada por una grabadora de vfdeo o un ordenador puede consistir en pfxeles dispuestos en lfneas horizontales y verticales. La cantidad de pfxeles en una sola imagen suele ser de decenas de miles. Cada pfxel contiene tfpicamente informacion de luminancia y crominancia. Sin compresion, la cantidad de informacion que se transmitira desde un codificador de imagenes a un descodificador de imagenes es tan grande que harfa imposible la transmision de imagenes en tiempo real. Para reducir la cantidad de informacion a transmitir, se han desarrollado una serie de procedimientos de compresion diferentes, tales como las normas JPEG, MPEG y H.263.
[0021] Entre las normas de codificacion de vfdeo se incluyen ITU-T H.261, MPEG-1 Visual de la ISO/IEC, ITU-T H.262 o MPEG-2 Visual de la ISO/IEC, ITU-T H.263, MPEG-4 Visual de la ISO/IEC e ITU-T H.264 (tambien conocida como AVC del MPEG-4 de la ISO/IEC), incluyendo sus ampliaciones de codificacion de vfdeo escalable (SVC) y de codificacion de vfdeo de multiples visualizaciones (MVC).
[0022] Ademas, existe una nueva norma de codificacion de vfdeo, concretamente la codificacion de vfdeo de alta eficiencia (HEVC) que esta siendo desarrollada por el Equipo de Colaboracion Conjunta en Codificacion de Vfdeo (JCT-VC) del Grupo de Expertos en Codificacion de Vfdeo (VCEG) de ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. Un borrador reciente de la HEVC esta disponible en http://phenix.itsudparis.eu/ict/doc end user/documents/12 Geneva/wg11/JCTVC-L1003-v34.zip. desde el 9 de agosto de 2013. La cita completa del borrador 10 de HEVC es el documento JCTVC-L1003, de Bross et al., titulado "High Efficiency Video Coding (HEVC) Text Specification Draft 10 [Especificacion textual de la Codificacion de Vfdeo de Alta
Eficacia (HEVC), Borrador 10]", Equipo de colaboracion conjunta en codificacion de video (JCT-VC) de ITU-T SG16 WP3 e iSo /IEC JTC1/SC29/WG11, 12.a reunion: Ginebra, Suiza, del 14 de enero de 2013 al 23 de enero de 2013.
[0023] En lo sucesivo se describen de forma mas detallada diversos aspectos de los sistemas, aparatos y procedimientos novedosos, con referencia a los dibujos adjuntos. Sin embargo, esta divulgacion se puede realizar de muchas formas diferentes y no se deberia interpretar que esta limitada a cualquier estructura o funcion especifica presentada a lo largo de esta divulgacion. En su lugar, estos aspectos se proporcionan para que esta divulgacion sea exhaustiva y completa, y transmita por completo el alcance de la divulgacion a los expertos en la materia. Basandose en las ensenanzas en el presente documento, un experto en la materia deberia apreciar que el alcance de la divulgacion esta concebido para abarcar cualquier aspecto de los sistemas, aparatos y procedimientos novedosos divulgados en el presente documento, ya sea implementados de forma independiente de, o en combinacion con, cualquier otro aspecto de la invencion. Por ejemplo, un aparato se puede implementar o un procedimiento se puede llevar a la practica usando cualquier numero de los aspectos expuestos en el presente documento.
[0024] Aunque se mencionan algunos beneficios y ventajas de los aspectos preferentes, el alcance de la divulgacion no esta concebido para limitarse a beneficios, usos u objetivos particulares. En cambio, los aspectos de la divulgacion pretenden ser ampliamente aplicables a diferentes tecnologias inalambricas, configuraciones de sistema, redes y protocolos de transmision, algunos de los cuales se ilustran a modo de ejemplo en las figuras y en la siguiente descripcion de los aspectos preferidos. La descripcion detallada y los dibujos son meramente ilustrativos de la divulgacion en lugar de ser limitativos, estando definido el alcance de la divulgacion por las reivindicaciones adjuntas y equivalentes de las mismas.
[0025] Los dibujos adjuntos ilustran ejemplos. Los elementos indicados mediante numeros de referencia en los dibujos adjuntos corresponden a elementos indicados mediante numeros de referencia similares en la siguiente descripcion.
Sistema de codificacion de video
[0026] La FIG. 1A es un diagrama de bloques que ilustra un sistema de codificacion de video 10 de ejemplo que puede utilizar tecnicas de acuerdo con aspectos descritos en esta divulgacion. Tal como se utiliza en el presente documento, el termino "codificador de video" se refiere genericamente tanto a codificadores de video como a descodificadores de video. En esta divulgacion, los terminos "codificacion de video" o "codificacion" pueden referirse genericamente a la codificacion de video y a la descodificacion de video.
[0027] Como se muestra en la FIG. 1, el sistema de codificacion de video 10 incluye un dispositivo de origen 12 y un dispositivo de destino 14. El dispositivo de origen 12 genera datos de video codificados. El dispositivo de destino 14 puede descodificar datos de video codificados, generados por el dispositivo de origen 12. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, notebooks (por ejemplo, portatiles, etc.), ordenadores tipo tablet, descodificadores, telefonos portatiles como los denominados telefonos “inteligentes”, los denominados paneles “inteligentes”, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, ordenadores de coche o similares. En algunos ejemplos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica.
[0028] El dispositivo de destino 14 puede recibir datos de video codificados desde el dispositivo de origen 12 a traves de un canal 16. El canal 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el canal 16 puede comprender un medio de comunicacion que permite al dispositivo de origen 12 transmitir datos de video codificados directamente al dispositivo de destino 14 en tiempo real. En este ejemplo, el dispositivo de origen 12 puede modular los datos de video codificados de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y puede transmitir los datos de video modulados al dispositivo de destino 14. El medio de comunicacion puede comprender un medio de comunicacion inalambrica o alambrica, tal como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area amplia o una red global tal como Internet. El medio de comunicacion puede incluir routers, conmutadores, estaciones base u otros equipos que faciliten la comunicacion desde el dispositivo de origen 12 al dispositivo de destino 14.
[0029] En otro ejemplo, el canal 16 puede corresponder a un medio de almacenamiento que almacena los datos de video codificados generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder al medio de almacenamiento a traves del acceso al disco o del acceso a la tarjeta. El dispositivo de almacenamiento puede incluir una variedad de medios de almacenamiento de datos de acceso local, tales como discos Blu-ray, DVD, CD-ROM, memoria flash u otros medios adecuados de almacenamiento digital para almacenar datos de video codificados. En un ejemplo adicional, el canal 16 puede incluir un servidor de archivos u otro dispositivo de almacenamiento intermedio que almacene el video codificado generado por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder a datos de video codificados almacenados
en el servidor de ficheros o en otro dispositivo de almacenamiento intermedio mediante transmision continua o descarga. El servidor de ficheros puede ser un tipo de servidor capaz de almacenar datos de vfdeo codificados y transmitir los datos de vfdeo codificados al dispositivo de destino 14. Entre los ejemplos de servidores de archivos se incluyen servidores web (por ejemplo, para un sitio web, etc.), servidores FTP, dispositivos de almacenamiento conectados a la red (NAS) y unidades de disco local. El dispositivo de destino 14 puede acceder a los datos de vfdeo codificados a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Entre los ejemplos de tipos de conexiones de datos pueden incluirse canales inalambricos (por ejemplo, conexiones WiFi, etc.), conexiones alambricas (por ejemplo, DSL, modem de cable, etc.) o combinaciones de ambos que sean adecuadas para acceder a datos de vfdeo codificados almacenados en un servidor de ficheros. La transmision de datos de vfdeo codificados desde el servidor de ficheros puede ser una transmision continua, una transmision de descarga o una combinacion de ambas.
[0030] Las tecnicas de esta divulgacion no estan limitadas a aplicaciones o a configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de vfdeo, para soportar cualquiera de una diversidad de aplicaciones multimedia, tales como radiodifusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de vfdeo en continuo, por ejemplo, a traves de Internet (por ejemplo, transmision adaptable dinamica por HTTP (DASH), etc.), codificacion de vfdeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificacion de vfdeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema de codificacion de vfdeo 10 puede configurarse para soportar la transmision de vfdeo unidireccional o bidireccional para soportar aplicaciones tales como la transmision de vfdeo, la reproduccion de vfdeo, la radiodifusion de vfdeo y/o la videotelefonfa.
[0031] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vfdeo 18, un codificador de vfdeo 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (modem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vfdeo 18 puede incluir una fuente tal como un dispositivo de captura de vfdeo, por ejemplo, una videocamara, un archivo de vfdeo que contiene datos de vfdeo previamente capturados, una interfaz de alimentacion de vfdeo para recibir datos de vfdeo desde un proveedor de contenido de vfdeo y/o un sistema de graficos por ordenador para generar datos de vfdeo, o una combinacion de dichas fuentes.
[0032] El codificador de vfdeo 20 puede estar configurado para codificar los datos de vfdeo capturados, precapturados o generados por ordenador. Los datos de vfdeo codificados se pueden transmitir directamente al dispositivo 14 de destino por medio de la interfaz de salida 22 del dispositivo de origen 12. Los datos de vfdeo codificados tambien pueden almacenarse en un medio de almacenamiento o en un servidor de ficheros para un acceso posterior mediante el dispositivo de destino 14 para su descodificacion y/o su reproduccion.
[0033] En el ejemplo de la FIG. 1, el dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vfdeo 30 y un dispositivo de visualizacion 32. En algunos casos, la interfaz 28 de entrada puede incluir un receptor y/o un modem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vfdeo codificados por el canal 16. Los datos de vfdeo codificados pueden incluir una variedad de elementos sintacticos generados por el codificador de vfdeo 20 que representan los datos de vfdeo. Los elementos sintacticos pueden describir caracterfsticas y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imagenes (GOP). Dichos elementos sintacticos se pueden incluir con los datos de vfdeo codificados transmitidos en un medio de comunicacion, almacenados en un medio de almacenamiento o almacenados en un servidor de archivos.
[0034] El dispositivo de visualizacion 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualizacion integrado y tambien puede estar configurado para interactuar con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualizacion. En general, el dispositivo de visualizacion 32 muestra los datos de vfdeo descodificados a un usuario. El dispositivo de visualizacion 32 puede comprender cualquiera entre una variedad de dispositivos de visualizacion, tales como una pantalla de cristal lfquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
[0035] El codificador de vfdeo 20 y el descodificador de vfdeo 30 pueden funcionar de acuerdo con una norma de compresion de vfdeo, tal como la norma de codificacion de vfdeo de alta eficiencia (HEVC), actualmente en fase de elaboracion, y pueden ajustarse a un modelo de prueba de HEVC (HM). De manera alternativa, el codificador de vfdeo 20 y el descodificador de vfdeo 30 pueden funcionar de acuerdo con otras normas de propiedad o industriales, tales como la norma ITU-T H.264, de manera alternativa llamada MPEG-4, parte 10, codificacion avanzada de vfdeo (AVC), o ampliaciones de dichas normas. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular. Otros ejemplos de normas de compresion de vfdeo incluyen MPEG-2 e ITU-T H.263.
[0036] Aunque no se muestra en el ejemplo de la FIG. 1, tanto el codificador de video 20 como el descodificador de video 30 pueden estar integrados en un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para ocuparse de la codificacion tanto de audio como de video en un flujo de datos comun o en flujos de datos separados. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ser conformes al protocolo de multiplexador ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0037] Nuevamente, la FIG. 1 es meramente un ejemplo y las tecnicas de esta divulgacion pueden aplicarse a configuraciones de codificacion de video (por ejemplo, codificacion de video o descodificacion de video) que no incluyan necesariamente ninguna comunicacion de datos entre los dispositivos de codificacion y descodificacion. En otros ejemplos, los datos pueden recuperarse de una memoria local, transmitirse a traves de una red o similar. Un dispositivo de codificacion puede codificar y almacenar datos en la memoria, y/o un dispositivo de descodificacion puede recuperar y descodificar datos de la memoria. En muchos ejemplos, la codificacion y la descodificacion se realiza mediante dispositivos que no se comunican entre si, sino que simplemente codifican datos en la memoria y/o recuperan y descodifican datos desde la memoria.
[0038] El codificador de video 20 y el descodificador de video 30 pueden, cada uno, implementarse como cualquiera entre varios circuitos adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especificos de la aplicacion (ASIC), matrices de puertas programables in situ (FPGA), logica discreta, hardware o cualquier combinacion de los mismos. Cuando las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio de almacenamiento no transitorio legible por ordenador adecuado, y ejecutar las instrucciones en hardware usando uno o mas procesadores para realizar las tecnicas de esta divulgacion. Cada uno entre el codificador de video 20 y el descodificador de video 30 se puede incluir en uno o mas codificadores o descodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo. Un dispositivo que incluye el codificador de video 20 y/o el descodificador de video 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicacion inalambrica, tal como un telefono celular.
[0039] Como se ha mencionado brevemente anteriormente, el codificador de video 20 codifica datos de video. Los datos de video pueden comprender una o mas imagenes. Cada una de las imagenes es una imagen fija que forma parte de un video. En algunos casos, una imagen puede denominarse una "trama" de video. Cuando el codificador de video 20 codifica los datos de video, el codificador de video 20 puede generar un flujo de bits. El flujo de bits puede incluir una secuencia de bits que forman una representacion codificada de los datos de video. El flujo de bits puede incluir imagenes codificadas y datos asociados. Una imagen codificada es una representacion codificada de una imagen.
[0040] Para generar el flujo de bits, el codificador de video 20 puede llevar a cabo operaciones de codificacion en cada imagen en los datos de video. Cuando el codificador de video 20 realiza operaciones de codificacion en las imagenes, el codificador de video 20 puede generar una serie de imagenes codificadas y datos asociados. Los datos asociados pueden incluir conjuntos de parametros de secuencia, conjuntos de parametros de imagen, conjuntos de parametros de adaptacion y otras estructuras sintacticas. Un conjunto de parametros de secuencia (SPS) puede contener parametros aplicables a cero o mas secuencias de imagenes. Un conjunto de parametros de imagen (PPS) puede contener parametros aplicables a cero o mas imagenes. Un conjunto de parametros de adaptacion (APS) puede contener parametros aplicables a cero o mas imagenes. Los parametros en un APS pueden ser parametros que tienen mas probabilidades de cambiar que los parametros en el PPS.
[0041] Para generar una imagen codificada, el codificador de video 20 puede dividir una imagen en bloques de video de igual tamano. Un bloque de video puede ser una matriz bidimensional de muestras. Cada uno de los bloques de video esta asociado con un bloque de arbol. En algunos casos, un bloque de arbol tambien puede denominarse una unidad de codificacion mas grande (LCU). Los bloques de arbol de HEVC pueden ser aproximadamente analogos a los macrobloques de normas anteriores, tales como la H.264/AVC. Sin embargo, un bloque de arbol no esta limitado necesariamente a un tamano particular y puede incluir una o mas unidades de codificacion (CU). El codificador de video 20 puede usar la division en arbol cuadruple para dividir los bloques de video de bloques de arbol en bloques de video asociados con las CU, de ahi el nombre "bloques de arbol".
[0042] En algunos ejemplos, el codificador de video 20 puede dividir una imagen en una pluralidad de fragmentos. Cada uno de los fragmentos puede incluir un numero entero de CU. En algunos casos, un fragmento comprende un numero entero de bloques de arbol. En otros casos, un limite de un fragmento puede estar dentro de un bloque de arbol.
[0043] Como parte de realizar una operacion de codificacion en una imagen, el codificador de video 20 puede realizar operaciones de codificacion en cada fragmento de la imagen. Cuando el codificador de video 20 realiza una operacion de codificacion en un fragmento, el codificador de video 20 puede generar datos codificados asociados con el fragmento. Los datos codificados asociados con el fragmento pueden denominarse un "fragmento codificado".
[0044] Para generar un fragmento codificado, el codificador de video 20 puede llevar a cabo operaciones de codificacion en cada bloque de arbol en un fragmento. Cuando el codificador de video 20 realiza una operacion de codificacion en un bloque de arbol, el codificador de video 20 puede generar un bloque de arbol codificado. El bloque de arbol codificado puede comprender datos que representan una version codificada del bloque de arbol.
[0045] Cuando el codificador de video 20 genera un fragmento codificado, el codificador de video 20 puede realizar operaciones de codificacion (es decir, codificar) en los bloques de arbol en el fragmento de acuerdo con un orden de escaneo de trama. En otras palabras, el codificador de video 20 puede codificar los bloques de arbol del fragmento en un orden que avanza de izquierda a derecha en la fila mas alta de los bloques de arbol en el fragmento, a continuacion procede de izquierda a derecha en la siguiente fila inferior de los bloques de arbol, y asi sucesivamente hasta que el codificador de video 20 ha codificado cada uno de los bloques de arbol del fragmento.
[0046] Como resultado de codificar los bloques de arbol de acuerdo con el orden de escaneo de trama, los bloques de arbol de arriba y a la izquierda de un bloque de arbol determinado pueden haber sido codificados, pero los bloques de arbol de debajo y a la derecha del bloque de arbol determinado aun no han sido codificados. En consecuencia, el codificador de video 20 puede tener acceso a la informacion generada por la codificacion de los bloques de arbol de arriba y a la izquierda del bloque de arbol determinado cuando codifica el bloque de arbol determinado. Sin embargo, el codificador de video 20 puede no ser capaz de acceder a la informacion generada por la codificacion de los bloques de arbol de debajo y a la derecha del bloque de arbol determinado al codificar el bloque de arbol determinado.
[0047] Para generar un bloque de arbol codificado, el codificador de video 20 puede llevar a cabo de forma recursiva la division en arbol cuaternario en el bloque de video del bloque de arbol para dividir el bloque de video en bloques de video progresivamente mas pequenos. Cada uno de los bloques de video mas pequenos puede estar asociado con una CU diferente. Por ejemplo, el codificador de video 20 puede dividir el bloque de video de un bloque de arbol en cuatro sub-bloques de igual tamano, dividir uno o mas de los sub-bloques en cuatro subsub-bloques de igual tamano, etc. Una CU dividida puede ser una CU cuyo bloque de video esta dividido en bloques de video asociados con otras CU. Una CU no dividida puede ser una CU cuyo bloque de video no este dividido en bloques de video asociados con otras CU.
[0048] Uno o mas elementos sintacticos en el flujo de bits puede indicar un numero maximo de veces que el codificador de video 20 puede dividir el bloque de video de un bloque de arbol. Un bloque de video de una CU puede tener forma cuadrada. El tamano del bloque de video de una CU (es decir, el tamano de la CU) puede variar desde 8x8 pixeles hasta el tamano de un bloque de video de un bloque de arbol (es decir, el tamano del bloque de arbol) con un maximo de 64x64 pixeles o mayor.
[0049] El codificador de video 20 puede realizar operaciones de codificacion (es decir, codificar) en cada CU de un bloque de arbol de acuerdo con un orden de escaneo z. En otras palabras, el codificador de video 20 puede codificar una CU superior izquierda, una CU superior derecha, una CU inferior izquierda y luego una CU inferior derecha, en ese orden. Cuando el codificador de video 20 realiza una operacion de codificacion en una CU dividida, el codificador de video 20 puede codificar las CU asociadas con sub-bloques del bloque de video de la CU dividida de acuerdo con el orden de escaneo z. En otras palabras, el codificador de video 20 puede codificar una CU asociada con un sub-bloque superior izquierdo, una CU asociada con un sub-bloque superior derecho, una CU asociada con un sub-bloque inferior izquierdo, y luego una CU asociada con un sub-bloque inferior derecho, en ese orden.
[0050] Como resultado de la codificacion de las CU de un bloque de arbol de acuerdo con un orden de escaneo z, las CU arriba, arriba y a la izquierda, arriba y a la derecha, izquierda y abajo y a la izquierda de una CU determinada pueden haber sido codificadas. Las CU de abajo y a la derecha de la CU determinada todavia no han sido codificadas. En consecuencia, el codificador de video 20 puede ser capaz de acceder a la informacion generada codificando algunas CU que se encuentran contiguas a la CU determinada cuando codifica la CU determinada. Sin embargo, el codificador de video 20 puede ser incapaz de acceder a la informacion generada por la codificacion de otras CU que se encuentran junto a la CU determinada cuando codifica la CU determinada.
[0051] Cuando el codificador de video 20 codifica una CU no dividida, el codificador de video 20 puede generar una o mas unidades de prediccion (PU) para la CU. Cada una de las PU de la CU puede estar asociada con un bloque de video diferente dentro del bloque de video de la CU. El codificador de video 20 puede generar un bloque de video predicho para cada PU de la CU. El bloque de video predicho de una PU puede ser un bloque de muestras. El codificador de video 20 puede usar prediccion intra o prediccion inter para generar el bloque de video predicho para una PU.
[0052] Cuando el codificador de video 20 utiliza la prediccion intra para generar el bloque de video predicho de una PU, el codificador de video 20 puede generar el bloque de video predicho de la PU basandose en muestras descodificadas de la imagen asociada con la PU. Si el codificador de video 20 utiliza la prediccion intra para generar bloques de video predichos de las PU de una CU, la CU es una CU con prediccion intra. Si el codificador de video
20 utiliza la prediccion inter para generar el bloque de video predicho de la PU, el codificador de video 20 puede generar el bloque de video predicho de la PU basandose en muestras descodificadas de una o mas imagenes distintas a la imagen asociada con la PU. Si el codificador de video 20 utiliza la prediccion inter para generar bloques de video predichos de las PU de una CU, la CU es una CU con prediccion inter.
[0053] Ademas, cuando el codificador de video 20 utiliza prediccion inter para generar un bloque de video predicho para una PU, el codificador de video 20 puede generar informacion de movimiento para la PU. La informacion de movimiento para una PU puede indicar uno o mas bloques de referencia de la PU. Cada bloque de referencia de la PU puede ser un bloque de video dentro de una imagen de referencia. La imagen de referencia puede ser una imagen distinta de la imagen asociada con la PU. En algunos casos, un bloque de referencia de una PU tambien puede denominarse la "muestra de referencia" de la PU. El codificador de video 20 puede generar el bloque de video predicho para la PU basandose en los bloques de referencia de la PU.
[0054] Despues de que el codificador de video 20 genere bloques de video predichos para una o mas PU de una CU, el codificador de video 20 puede generar datos residuales para la CU basandose en los bloques de video predichos para las PU de la CU. Los datos residuales para la CU pueden indicar diferencias entre muestras en los bloques de video predichos para las PU de la CU y el bloque de video original de la CU.
[0055] Ademas, como parte de la realizacion de una operacion de codificacion en una CU no dividida, el codificador de video 20 puede realizar la division recursiva en arbol cuaternario en los datos residuales de la CU para dividir los datos residuales de la CU en uno o mas bloques de datos residuales (es decir, bloques de video residuales) asociados con las unidades de transformada (TU) de la CU. Cada TU de una CU puede estar asociada con un bloque de video residual diferente.
[0056] El codificador de video 20 puede aplicar una o mas transformadas a bloques de video residuales asociados con las TU para generar bloques de coeficientes de transformada (por ejemplo, bloques de coeficientes de transformada) asociados con las TU. Conceptualmente, un bloque de coeficientes de transformada puede ser una matriz bidimensional (2D) de coeficientes de transformada.
[0057] Despues de generar un bloque de coeficientes de transformada, el codificador de video 20 puede realizar un proceso de cuantificacion en el bloque de coeficientes de transformada. La cuantificacion se refiere, en general, a un proceso en el que los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes de transformada, proporcionando una compresion adicional. El proceso de cuantificacion puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes de transformada. Por ejemplo, un coeficiente de transformada de n bits puede redondearse a la baja hasta un coeficiente de transformada de m bits durante la cuantificacion, donde n es mayor que m.
[0058] El codificador de video 20 puede asociar cada CU con un valor de parametro de cuantificacion (QP). El valor QP asociado con una CU puede determinar como el codificador de video 20 cuantifica los bloques de coeficientes de transformada asociados con la CU. El codificador de video 20 puede ajustar el grado de cuantificacion aplicado a los bloques de coeficientes de transformada asociados con una CU ajustando el valor QP asociado con la CU.
[0059] Despues de que el codificador de video 20 cuantifica un bloque de coeficientes de transformada, el codificador de video 20 puede generar conjuntos de elementos sintacticos que representan los coeficientes de transformada en el bloque de coeficientes de transformada cuantificado. El codificador de video 20 puede aplicar operaciones de codificacion por entropia, tales como operaciones de codificacion aritmetica binaria adaptable al contexto (CABAC), a algunos de estos elementos sintacticos. Tambien podrian usarse otras tecnicas de codificacion por entropia, tales como la codificacion de longitud variable adaptable al contenido (CAVLC), la codificacion por entropia de division de intervalo de probabilidad (PIPE) u otra codificacion aritmetica binaria.
[0060] El flujo de bits generado por el codificador de video 20 puede incluir una serie de unidades de capa de abstraccion de red (NAL). Cada una de las unidades NAL puede ser una estructura sintactica que contiene una indicacion de un tipo de datos en la unidad NAL y los bytes que contienen los datos. Por ejemplo, una unidad NAL puede contener datos que representan un conjunto de parametros de secuencia, un conjunto de parametros de imagen, un fragmento codificado, informacion de mejora suplementaria (SEI), un delimitador de unidad de acceso, datos de relleno u otro tipo de datos. Los datos en una unidad NAL pueden incluir varias estructuras sintacticas.
[0061] El descodificador de video 30 puede recibir el flujo de bits generado por el codificador de video 20. El flujo de bits puede incluir una representacion codificada de los datos de video codificados por el codificador de video 20. Cuando el descodificador de video 30 recibe el flujo de bits, el descodificador de video 30 puede realizar una operacion de analisis sintactico en el flujo de bits. Cuando el descodificador de video 30 realiza la operacion de analisis sintactico, el descodificador de video 30 puede extraer elementos sintacticos del flujo de bits. El descodificador de video 30 puede reconstruir las imagenes de los datos de video basandose en los elementos sintacticos extraidos del flujo de bits. El proceso para reconstruir los datos de video basados en los elementos
sintacticos puede ser en general reciproco al proceso realizado por el codificador de video 20 para generar los elementos sintacticos.
[0062] Despues de que el descodificador de video 30 extraiga los elementos sintacticos asociados con una CU, el descodificador de video 30 puede generar bloques de video predichos para las PU de la CU basandose en los elementos sintacticos. Ademas, el descodificador de video 30 puede invertir bloques de coeficientes de transformada cuantificados asociados con TU de la CU. El descodificador de video 30 puede realizar transformadas inversas en los bloques de coeficientes de transformada para reconstruir los bloques de video residuales asociados con las TU de la CU. Despues de generar los bloques de video predichos y reconstruir los bloques de video residuales, el descodificador de video 30 puede reconstruir el bloque de video de la CU basado en los bloques de video predichos y los bloques de video residuales. De esta manera, el descodificador de video 30 puede reconstruir los bloques de video de las CU basandose en los elementos sintacticos del flujo de bits.
Codificador de video
[0063] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar tecnicas de acuerdo con los aspectos descritos en esta divulgacion. El codificador de video 20 puede configurarse para realizar algunas de, o todas, las tecnicas de esta divulgacion. Como ejemplo, la unidad de prediccion 100 puede configurarse para realizar cualquiera o todas las tecnicas descritas en esta divulgacion. Sin embargo, los aspectos de esta divulgacion no estan limitados a lo anterior. En algunos ejemplos, las tecnicas descritas en esta divulgacion pueden compartirse entre los diversos componentes del codificador de video 20. En algunos ejemplos, adicionalmente o en lugar de, un procesador (no mostrado) puede configurarse para realizar cualquiera o todas las tecnicas descritas en esta divulgacion.
[0064] Para los propositos de explicacion, esta divulgacion describe el codificador de video 20 en el contexto de la codificacion h Ev C. Sin embargo, las tecnicas de esta divulgacion pueden ser aplicables a otras normas o procedimientos de codificacion.
[0065] El codificador de video 20 puede realizar intracodificacion e intercodificacion de bloques de video dentro de segmentos de video. La intracodificacion se apoya en la prediccion espacial para reducir o eliminar la redundancia espacial en el video dentro de una trama o imagen de video determinada. La intercodificacion se basa en la prediccion temporal para reducir o eliminar la redundancia temporal en el video dentro de tramas o imagenes adyacentes de una secuencia de video. El modo intra (modo I) puede referirse a cualquiera de varios modos de codificacion de base espacial. Los modos inter, tales como la prediccion unidireccional (modo P) o la biprediccion (modo B), pueden referirse a cualquiera de varios modos de codificacion de base temporal.
[0066] En el ejemplo de la FIG. 2, el codificador de video 20 incluye una pluralidad de componentes funcionales. Los componentes funcionales del codificador de video 20 incluyen una unidad de prediccion 100, una unidad de generacion residual 102, una unidad de transformada 104, una unidad de cuantificacion 106, una unidad de cuantificacion inversa 108, una unidad de transformada inversa 110, una unidad de reconstruccion 112, una unidad de filtro 113, una memoria intermedia de imagenes descodificadas 114 y una unidad de codificacion por entropia 116. La unidad de prediccion 100 incluye una unidad de prediccion inter 121, una unidad de estimacion de movimiento 122, una unidad de compensacion de movimiento 124 y una unidad de prediccion intra 126. En otros ejemplos, el codificador de video 20 puede incluir mas, menos o diferentes componentes funcionales. Ademas, la unidad de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 pueden estar altamente integradas, pero estan representadas en el ejemplo de la FIG. 2 de forma separada con fines explicativos.
[0067] El codificador de video 20 puede recibir datos de video. El codificador de video 20 puede recibir los datos de video de diversas fuentes. Por ejemplo, el codificador de video 20 puede recibir los datos de video de la fuente de video 18 (FIG. 1) u otra fuente. Los datos de video pueden representar una serie de imagenes. Para codificar los datos de video, el codificador de video 20 puede realizar una operacion de codificacion en cada una de las imagenes. Como parte de realizar la operacion de codificacion en una imagen, el codificador de video 20 puede realizar operaciones de codificacion en cada fragmento de la imagen. Como parte de realizar una operacion de codificacion en un fragmento, el codificador de video 20 puede realizar operaciones de codificacion en bloques de arbol en el fragmento.
[0068] Como parte de realizar una operacion de codificacion en un bloque de arbol, la unidad de prediccion 100 puede realizar la division en arbol cuaternario en el bloque de video del bloque de arbol para dividir el bloque de video en bloques de video progresivamente mas pequenos. Cada uno de los bloques de video mas pequenos puede estar asociado con una CU diferente. Por ejemplo, la unidad de prediccion 100 puede dividir un bloque de video de un bloque de arbol en cuatro sub-bloques de igual tamano, dividir uno o mas de los sub-bloques en cuatro sub-sub-bloques de igual tamano, etc.
[0069] Los tamanos de los bloques de video asociados con las CU pueden variar desde muestras de 8x8 hasta el tamano del bloque de arbol, con un maximo de muestras de 64x64 o mayores. En esta divulgacion, "NxN" y "N por N" pueden usarse indistintamente para hacer referencia a las dimensiones de muestras de un bloque de video
en terminos de dimensiones verticales y horizontales, por ejemplo, muestras de 16x16 o muestras de 16 por 16. En general, un bloque de vfdeo de 16x16 tiene dieciseis muestras en una direccion vertical (y = 16) y dieciseis muestras en una direccion horizontal (x = 16). Asimismo, un bloque NxN presenta, en general, N muestras en una direccion vertical y N muestras en una direccion horizontal, donde N representa un valor entero no negativo.
[0070] Ademas, como parte de la realizacion de la operacion de codificacion en un bloque de arbol, la unidad de prediccion 100 puede generar una estructura de datos jerarquica en arbol cuaternario para el bloque de arbol. Por ejemplo, un bloque de arbol puede corresponder a un nodo rafz de la estructura de datos en arbol cuaternario. Si la unidad de prediccion 100 divide el bloque de vfdeo del bloque de arbol en cuatro sub-bloques, el nodo rafz tiene cuatro nodos secundarios en la estructura de datos en arbol cuaternario. Cada uno de los nodos secundarios corresponde a una CU asociada con uno de los sub-bloques. Si la unidad de prediccion 100 divide uno de los subbloques en cuatro sub-sub-bloques, el nodo correspondiente a la CU asociada con el sub-bloque puede tener cuatro nodos secundarios, cada uno de los cuales corresponde a una CU asociada con uno de los sub-subbloques.
[0071] Cada nodo de la estructura de datos en arbol cuaternario puede contener datos sintacticos (por ejemplo, elementos sintacticos) para el bloque de arbol o CU correspondiente. Por ejemplo, un nodo en el arbol cuadruple puede incluir un indicador de division, que indica si el bloque de vfdeo de la CU correspondiente al nodo esta dividido (es decir, partido) en cuatro sub-bloques. Los elementos sintacticos para una CU pueden definirse de manera recursiva y pueden depender de si el bloque de vfdeo de la CU esta dividido en sub-bloques. Una CU cuyo bloque de vfdeo no esta dividido puede corresponder a un nodo hoja en la estructura de datos en arbol cuaternario. Un bloque de arbol codificado puede incluir datos basados en la estructura de datos en arbol cuaternario para un bloque de arbol correspondiente.
[0072] El codificador de vfdeo 20 puede realizar operaciones de codificacion en cada CU no dividida de un bloque de arbol. Cuando el codificador de vfdeo 20 realiza una operacion de codificacion en una CU no dividida, el codificador de vfdeo 20 genera datos que representan una representacion codificada de la CU no dividida.
[0073] Como parte de la realizacion de una operacion de codificacion en una CU, la unidad de prediccion 100 puede dividir el bloque de vfdeo de la CU entre una o mas PU de la CU. El codificador de vfdeo 20 y el descodificador de vfdeo 30 pueden soportar varios tamanos de PU. Suponiendo que el tamano de una CU particular sea 2Nx2N, el codificador de vfdeo 20 y el descodificador de vfdeo 30 pueden soportar tamanos de PU de 2Nx2N o NxN y prediccion inter en tamanos de PU simetricas de 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, nLx2N, nRx2N o similares. El codificador de vfdeo 20 y el descodificador de vfdeo 30 tambien pueden soportar divisiones asimetricas para tamanos de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En algunos ejemplos, la unidad de prediccion 100 puede realizar una division geometrica para dividir el bloque de vfdeo de una CU entre las PU de la CU a lo largo de un lfmite que no coincide con los lados del bloque de vfdeo de la CU en angulos rectos.
[0074] La unidad de prediccion inter 121 puede realizar una prediccion inter en cada PU de la CU. La prediccion inter puede proporcionar compresion temporal. Para realizar la prediccion inter en una PU, la unidad de estimacion de movimiento 122 puede generar informacion de movimiento para la PU. La unidad de compensacion de movimiento 124 puede generar un bloque de vfdeo predicho para la PU basandose en la informacion de movimiento y las muestras descodificadas de imagenes distintas a la imagen asociada con la CU (es decir, imagenes de referencia). En esta divulgacion, un bloque de vfdeo predicho generado por la unidad de compensacion de movimiento 124 se puede denominar un bloque de vfdeo con prediccion inter.
[0075] Los fragmentos pueden ser fragmentos I, fragmentos P o fragmentos B. El modulo de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 pueden realizar diferentes operaciones para una PU de una CU dependiendo de si la PU esta en un fragmento I, un fragmento P o un fragmento B. En un fragmento en I, todas las PU tienen prediccion inter. Por lo tanto, si la PU esta en un fragmento I, la unidad de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 no realizan la prediccion inter en la PU.
[0076] Si la PU esta en un fragmento P, la imagen que contiene la PU esta asociada con una lista de imagenes de referencia denominada "lista 0". Cada una de las imagenes de referencia en la lista 0 contiene muestras que pueden usarse para la prediccion inter de otras imagenes. Cuando la unidad de estimacion de movimiento 122 realiza la operacion de estimacion de movimiento con respecto a una PU en un fragmento P, la unidad de estimacion de movimiento 122 puede buscar las imagenes de referencia en la lista 0 para un bloque de referencia para la PU. El bloque de referencia de la PU puede ser un conjunto de muestras, por ejemplo, un bloque de muestras, que se corresponde mas estrechamente con las muestras del bloque de vfdeo de la PU. La unidad de estimacion de movimiento 122 puede usar una variedad de metricas para determinar cuan estrechamente un conjunto de muestras en una imagen de referencia se corresponde con las muestras del bloque de vfdeo de una PU. Por ejemplo, la unidad de estimacion de movimiento 122 puede determinar cuan estrechamente un conjunto de muestras en una imagen de referencia se corresponde con las muestras en el bloque de vfdeo de una PU por la suma de la diferencia absoluta (SAD), la suma de diferencias al cuadrado (SSD) u otras metricas de diferencia.
[0077] Despues de identificar un bloque de referencia de una PU en un fragmento P, la unidad de estimacion de movimiento 122 puede generar un fndice de referencia que indica la imagen de referencia de la lista 0 que contiene el bloque de referencia y un vector de movimiento que indica un desplazamiento espacial entre la PU y el bloque de referencia. En varios ejemplos, la unidad de estimacion de movimiento 122 puede generar vectores de movimiento con diferentes grados de precision. Por ejemplo, la unidad de estimacion de movimiento 122 puede generar vectores de movimiento con una precision de un cuarto de muestra, una precision de un octavo de muestra o una precision de otra fraccion de muestra. En el caso de la precision de la fraccion de muestra, los valores del bloque de referencia pueden interpolarse a partir de valores de muestra de posicion de entero en la imagen de referencia. La unidad de estimacion de movimiento 122 puede emitir el fndice de referencia y el vector de movimiento como la informacion de movimiento de la PU. La unidad de compensacion de movimiento 124 puede generar el bloque de vfdeo predicho de la PU basandose en el bloque de referencia identificado por la informacion de movimiento de la PU.
[0078] Si la PU esta en un fragmento B, la imagen que contiene la PU puede estar asociada con dos listas de imagenes de referencia, denominadas "lista 0" y "lista 1." En algunos ejemplos, una imagen que contiene un fragmento B puede estar asociada con una combinacion de listas que es una combinacion de la lista 0 y la lista 1.
[0079] Ademas, si la PU esta en un fragmento B, la unidad de estimacion de movimiento 122 puede llevar a cabo la prediccion unidireccional o la prediccion bidireccional para la PU. Cuando la unidad de estimacion de movimiento 122 realiza la prediccion unidireccional para la PU, la unidad de estimacion de movimiento 122 puede buscar las imagenes de referencia de la lista 0 o la lista 1 para un bloque de referencia para la PU. La unidad de estimacion de movimiento 122 puede entonces generar un fndice de referencia que indica la imagen de referencia en la lista 0 o la lista 1 que contiene el bloque de referencia y un vector de movimiento que indica un desplazamiento espacial entre la PU y el bloque de referencia. La unidad de estimacion de movimiento 122 puede emitir el fndice de referencia, un indicador de la direccion de prediccion y el vector de movimiento como la informacion de movimiento de la PU. El indicador de direccion de prediccion puede indicar si el fndice de referencia indica una imagen de referencia en la lista 0 o la lista 1. La unidad de compensacion de movimiento 124 puede generar el bloque de vfdeo predicho de la PU basandose en el bloque de referencia indicado por la informacion de movimiento de la PU.
[0080] Cuando la unidad de estimacion de movimiento 122 realiza la prediccion bidireccional para una PU, la unidad de estimacion de movimiento 122 puede buscar las imagenes de referencia de la lista 0 para un bloque de referencia para la PU y tambien puede buscar las imagenes de referencia de la lista 1 para otro bloque de referencia para la PU. La unidad de estimacion de movimiento 122 puede entonces generar fndices de referencia que indican las imagenes de referencia en la lista 0 y la lista 1 que contienen los bloques de referencia y los vectores de movimiento que indican desplazamientos espaciales entre los bloques de referencia y la PU. La unidad de estimacion de movimiento 122 puede emitir los fndices de referencia y los vectores de movimiento de la PU como la informacion de movimiento de la PU. La unidad de compensacion de movimiento 124 puede generar el bloque de vfdeo predicho de la PU basandose en los bloques de referencia indicados por la informacion de movimiento de la PU.
[0081] Como se analiza adicionalmente a continuacion con referencia a la FIG. 5, la unidad de prediccion 100 (por ejemplo, a traves de la unidad de prediccion inter 121) puede configurarse para predecir un bloque actual en la EL que tiene un bloque correspondiente no disponible en la BL realizando los pasos ilustrados en la FIG. 5.
[0082] En algunos casos, la unidad de estimacion de movimiento 122 no emite un conjunto completo de informacion de movimiento para una PU a la unidad de codificacion por entropfa 116. En lugar de eso, la unidad de estimacion de movimiento 122 puede senalizar la informacion de movimiento de una PU con referencia a la informacion de movimiento de otra PU. Por ejemplo, la unidad de estimacion de movimiento 122 puede determinar que la informacion de movimiento de la PU es suficientemente similar a la informacion de movimiento de una PU proxima. En este ejemplo, la unidad de estimacion de movimiento 122 puede indicar, en una estructura sintactica asociada con la PU, un valor que indica al descodificador de vfdeo 30 que la PU tiene la misma informacion de movimiento que la PU contigua. En otro ejemplo, la unidad de estimacion de movimiento 122 puede identificar, en una estructura sintactica asociada con la PU, una PU proxima y una diferencia de vectores de movimiento (MVD). La diferencia de vectores de movimiento indica una diferencia entre el vector de movimiento de la PU y el vector de movimiento de la PU proxima indicada. El descodificador de vfdeo 30 puede utilizar el vector de movimiento de la PU contigua indicada y la diferencia de vectores de movimiento para determinar el vector de movimiento de la PU. Haciendo referencia a la informacion de movimiento de una primera PU cuando se senala la informacion de movimiento de una segunda PU, el codificador de vfdeo 20 puede ser capaz de senalar la informacion de movimiento de la segunda PU usando menos bits.
[0083] Como parte de la realizacion de una operacion de codificacion en una CU, la unidad de prediccion intra 126 puede llevar a cabo la prediccion intra en las PU de la CU. La prediccion intra puede proporcionar compresion espacial. Cuando la unidad de prediccion intra 126 realiza la prediccion intra en una PU, la unidad de prediccion intra 126 puede generar datos de prediccion para la PU basados en muestras descodificadas de otras PU en la misma imagen. Los datos de prediccion para la PU pueden incluir un bloque de vfdeo predicho y varios elementos
sintacticos. La unidad de prediccion intra 126 puede realizar la prediccion intra en PU en fragmentos I, fragmentos P y fragmentos B.
[0084] Para realizar la prediccion intra en una PU, la unidad de prediccion intra 126 puede usar multiples modos de prediccion intra para generar multiples conjuntos de datos de prediccion para la PU. Cuando la unidad de prediccion intra 126 utiliza un modo de prediccion intra para generar un conjunto de datos de prediccion para la PU, la unidad de prediccion intra 126 puede extender muestras de bloques de video de PU proximas a traves del bloque de video de la PU en una direccion y/o gradiente asociada con el modo de prediccion intra. Las PU contiguas pueden estar arriba, arriba y a la derecha, arriba y a la izquierda o a la izquierda de la PU, suponiendo un orden de codificacion de izquierda a derecha, de arriba a abajo para las PU, CU y bloques de arbol. La unidad de prediccion intra 126 puede usar varios numeros de modos de prediccion intra, por ejemplo, 33 modos de prediccion intra direccional, dependiendo del tamano de la PU.
[0085] La unidad de prediccion 100 puede seleccionar los datos de prediccion para una PU entre los datos de prediccion generados por la unidad de compensacion de movimiento 124 para la PU o los datos de prediccion generados por la unidad de prediccion intra 126 para la PU. En algunos ejemplos, la unidad de prediccion 100 selecciona los datos de prediccion para la PU basandose en las metricas de velocidad/distorsion de los conjuntos de datos de prediccion.
[0086] Si la unidad de prediccion 100 selecciona datos de prediccion generados por la unidad de prediccion intra 126, la unidad de prediccion 100 puede senalizar el modo de prediccion intra que se utilizo para generar los datos de prediccion para las PU, es decir, el modo de prediccion intra seleccionado. La unidad de prediccion 100 puede senalizar el modo de prediccion intra seleccionado de varias maneras. Por ejemplo, es probable que el modo de prediccion intra seleccionado sea el mismo que el modo de prediccion intra de una PU proxima. En otras palabras, el modo de prediccion intra de la PU proxima puede ser el modo mas probable para la PU actual. De este modo, la unidad de prediccion 100 puede generar un elemento sintactico para indicar que el modo de prediccion intra seleccionado es el mismo que el modo de prediccion intra de la PU contigua.
[0087] Despues de que la unidad de prediccion 100 seleccione los datos de prediccion para las PU de una CU, la unidad de generacion residual 102 puede generar datos residuales para la CU restando los bloques de video predichos de las PU de la CU del bloque de video de la CU. Los datos residuales de una CU pueden incluir bloques de video residuales en 2D que corresponden a diferentes componentes de muestra de las muestras en el bloque de video de la CU. Por ejemplo, los datos residuales pueden incluir un bloque de video residual que corresponde a diferencias entre componentes de luminancia de muestras en los bloques de video predichos de las PU de la CU y componentes de luminancia de muestras en el bloque de video original de la CU. Ademas, los datos residuales de la CU pueden incluir bloques de video residuales que corresponden a las diferencias entre componentes de crominancia de muestras en los bloques de video predichos de las PU de la CU y los componentes de crominancia de las muestras en el bloque de video original de la CU.
[0088] La unidad de prediccion 100 puede realizar la division en arbol cuaternario para dividir los bloques de video residuales de una CU en sub-bloques. Cada bloque de video residual no dividido puede estar asociado con una TU diferente de la CU. Los tamanos y posiciones de los bloques de video residuales asociados con las TU de una CU pueden o no basarse en los tamanos y posiciones de los bloques de video asociados con las PU de la CU. Una estructura en arbol cuaternario conocida como "arbol cuaternario residual" (RQT) puede incluir nodos asociados con cada uno de los bloques de video residuales. Las TU de una CU pueden corresponder a nodos de hoja del RQT.
[0089] La unidad de transformada 104 puede generar uno o mas bloques de coeficientes de transformada para cada TU de una CU aplicando una o mas transformadas a un bloque de video residual asociado con la TU. Cada uno de los bloques de coeficientes de transformada puede ser una matriz en 2D de coeficientes de transformada. La unidad de transformada 104 puede aplicar varias transformadas al bloque de video residual asociado con una TU. Por ejemplo, la unidad de transformada 104 puede aplicar una transformada de coseno discreta (DCT), una transformada direccional o una transformada conceptualmente similar al bloque de video residual asociado con una TU.
[0090] Despues de que la unidad de transformada 104 genere un bloque de coeficientes de transformada asociado con una TU, la unidad de cuantificacion 106 puede cuantificar los coeficientes de transformada en el bloque de coeficientes de transformada. La unidad de cuantificacion 106 puede cuantificar un bloque de coeficientes de transformada asociado con una TU de una CU basandose en un valor de QP asociado con la CU.
[0091] El codificador de video 20 puede asociar un valor QP con una CU de varias maneras. Por ejemplo, el codificador de video 20 puede realizar un analisis de distorsion de velocidad en un bloque de arbol asociado con la CU. En el analisis de distorsion de velocidad, el codificador de video 20 puede generar multiples representaciones codificadas del bloque de arbol realizando una operacion de codificacion varias veces en el bloque de arbol. El codificador de video 20 puede asociar diferentes valores de QP con la CU cuando el codificador de video 20 genera diferentes representaciones codificadas del bloque de arbol. El codificador de video 20 puede
senalar que un valor QP dado esta asociado con la CU cuando el valor QP dado esta asociado con la CU en una representacion codificada del bloque de arbol que tiene una velocidad de bits y una metrica de distorsion mas bajas.
[0092] La unidad de cuantificacion inversa 108 y la unidad de transformada inversa 110 pueden aplicar la cuantificacion inversa y las transformadas inversas al bloque de coeficientes de transformada, respectivamente, para reconstruir un bloque de video residual a partir del bloque de coeficientes de transformada. La unidad de reconstruccion 112 puede anadir el bloque de video residual reconstruido a las muestras correspondientes de uno o mas bloques de video predichos generados por la unidad de prediccion 100 para producir un bloque de video reconstruido asociado con una TU. Mediante la reconstruccion de bloques de video para cada TU de una CU de esta manera, el codificador de video 20 puede reconstruir el bloque de video de la CU.
[0093] Despues de que la unidad de reconstruccion 112 reconstruya el bloque de video de una CU, la unidad de filtro 113 puede realizar una operacion de desbloqueo para reducir los artefactos de bloqueo en el bloque de video asociado con la CU. Despues de realizar las una o mas operaciones de desbloqueo, la unidad de filtro 113 puede almacenar el bloque de video reconstruido de la CU en la memoria intermedia de imagenes descodificadas 114. La unidad de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 pueden utilizar una imagen de referencia que contiene el bloque de video reconstruido para realizar la prediccion inter en las PU de las imagenes posteriores. Ademas, la unidad de prediccion intra 126 puede usar bloques de video reconstruidos en la memoria intermedia de imagenes descodificadas 114 para realizar la prediccion intra en otras PU en la misma imagen que la CU.
[0094] La unidad de codificacion por entropia 116 puede recibir datos desde otros componentes funcionales del codificador de video 20. Por ejemplo, la unidad de codificacion por entropia 116 puede recibir bloques de coeficientes de transformada de la unidad de cuantificacion 106 y puede recibir elementos sintacticos de la unidad de prediccion 100. Cuando la unidad de codificacion por entropia 116 recibe los datos, la unidad de codificacion por entropia 116 puede realizar una o mas operaciones de codificacion por entropia para generar datos codificados por entropia. Por ejemplo, el codificador de video 20 puede realizar una operacion de codificacion de longitud variable adaptable al contexto (CAVLC), una operacion CABAC, una operacion de codificacion de longitud variable a variable (V2V), una operacion de codificacion aritmetica binaria adaptable al contexto basada en sintaxis (SBAC), una operacion de codificacion por entropia de division de intervalo de probabilidad (PIPE) u otro tipo de operacion de codificacion por entropia en los datos. La unidad de codificacion por entropia 116 puede emitir un flujo de bits que incluye los datos codificados por entropia.
[0095] Como parte de la realizacion de una operacion de codificacion por entropia en los datos, la unidad de codificacion por entropia 116 puede seleccionar un modelo de contexto. Si la unidad de codificacion por entropia 116 esta realizando una operacion CABAC, el modelo de contexto puede indicar las estimaciones de las probabilidades de que un bin particular tenga unos valores particulares. En el contexto de CABAC, el termino "bin" se utiliza para referirse a un bit de una version binarizada de un elemento sintactico.
DESCODIFICADOR DE VIDEO
[0096] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un descodificador de video que puede implementar tecnicas de acuerdo con aspectos descritos en esta divulgacion. El descodificador de video 30 puede configurarse para realizar algunas de, o todas, las tecnicas de esta divulgacion. Como ejemplo, la unidad de compensacion de movimiento 162 y/o la unidad de prediccion intra 164 pueden configurarse para realizar cualquiera o todas las tecnicas descritas en esta divulgacion. Sin embargo, los aspectos de esta divulgacion no estan limitados a lo anterior. En algunos ejemplos, las tecnicas descritas en esta divulgacion pueden compartirse entre los diversos componentes del descodificador de video 30. En algunos ejemplos, adicionalmente o en lugar de, un procesador (no mostrado) puede configurarse para realizar cualquiera o todas las tecnicas descritas en esta divulgacion.
[0097] En el ejemplo de la FIG. 3, el descodificador de video 30 incluye una pluralidad de componentes funcionales. Los componentes funcionales del descodificador de video 30 incluyen una unidad de descodificacion por entropia 150, una unidad de prediccion 152, una unidad de cuantificacion inversa 154, una unidad de transformada inversa 156, una unidad de reconstruccion 158, una unidad de filtro 159 y una memoria intermedia de imagenes descodificadas 160. La unidad de prediccion 152 incluye la unidad de compensacion de movimiento 162 y una unidad de prediccion intra 164. En algunos ejemplos, el descodificador de video 30 puede realizar una pasada de descodificacion, en general, reciproca a la pasada de codificacion descrita con respecto al codificador de video 20 de la FIG. 2. En otros ejemplos, el descodificador de video 30 puede incluir mas, menos o diferentes componentes funcionales.
[0098] El descodificador de video 30 puede recibir un flujo de bits que comprende datos de video codificados. El flujo de bits puede incluir una pluralidad de elementos sintacticos. Cuando el descodificador de video 30 recibe el flujo de bits, la unidad de descodificacion por entropia 150 puede realizar una operacion de analisis sintactico en el flujo de bits. Como resultado de realizar la operacion de analisis sintactico en el flujo de bits, la unidad de
descodificacion por entropia 150 puede extraer elementos sintacticos del flujo de bits. Como parte de la realizacion de la operacion de analisis sintactico, la unidad de descodificacion por entropia 150 puede realizar la descodificacion por entropia de elementos sintacticos sometidos a codificacion por entropia en el flujo de bits. La unidad de prediccion 152, la unidad de cuantificacion inversa 154, la unidad de transformada inversa 156, la unidad de reconstruccion 158 y la unidad de filtro 159 pueden realizar una operacion de reconstruccion que genera datos de video descodificados basados en los elementos sintacticos extraidos del flujo de bits.
[0099] Como se analizo anteriormente, el flujo de bits puede comprender una serie de unidades NAL. Las unidades NAL del flujo de bits pueden incluir unidades NAL de conjunto de parametros de secuencia, unidades NAL de conjunto de parametros de imagen, unidades SEI NAL, etc. Como parte de realizar la operacion de analisis sintactico en el flujo de bits, la unidad de descodificacion por entropia 150 puede realizar operaciones de analisis sintactico que extraen y descodifican por entropia conjuntos de parametros de secuencia a partir de unidades NAL de conjuntos de parametros de secuencia, conjuntos de parametros de imagen a partir de unidades NAL de conjuntos de parametros de imagen, datos SEI a partir de unidades NAL SEI, etc.
[0100] Ademas, las unidades NAL del flujo de bits pueden incluir unidades NAL de fragmentos codificados. Como parte de realizar la operacion de analisis sintactico en el flujo de bits, la unidad de descodificacion por entropia 150 puede realizar operaciones de analisis sintactico que extraen y descodifican por entropia fragmentos codificados a partir de las unidades de NAL de fragmentos codificados. Cada uno de los fragmentos codificados puede incluir una cabecera de fragmento y datos de fragmento. La cabecera de fragmento puede contener elementos sintacticos pertenecientes a un fragmento. Los elementos sintacticos en la cabecera del fragmento pueden incluir un elemento sintactico que identifica un conjunto de parametros de imagen asociado con una imagen que contiene el fragmento. La unidad de descodificacion por entropia 150 puede realizar operaciones de descodificacion por entropia, tales como operaciones de descodificacion de CABAC, en los elementos sintacticos de la cabecera del fragmento codificado para recuperar la cabecera del fragmento.
[0101] Como parte de extraer los datos del fragmento de unidades NAL de fragmentos codificados, la unidad de descodificacion por entropia 150 puede realizar operaciones de analisis sintactico que extraen los elementos sintacticos de las CU codificadas en los datos del fragmento. Los elementos sintacticos extraidos pueden incluir elementos sintacticos asociados con bloques de coeficientes de transformada. La unidad de descodificacion por entropia 150 puede entonces realizar operaciones de descodificacion de CABAC en algunos de los elementos sintacticos.
[0102] Despues de que la unidad de descodificacion por entropia 150 realice una operacion de analisis sintactico en una CU no dividida, el descodificador de video 30 puede realizar una operacion de reconstruccion en la CU no dividida. Para realizar la operacion de reconstruccion en una CU no dividida, el descodificador de video 30 puede realizar una operacion de reconstruccion en cada TU de la CU. Realizando la operacion de reconstruccion para cada TU de la CU, el descodificador de video 30 puede reconstruir un bloque de video residual asociado con la CU.
[0103] Como parte de la realizacion de una operacion de reconstruccion en una TU, la unidad de cuantificacion inversa 154 puede cuantificar de forma inversa, es decir, descuantificar, un bloque de coeficientes de transformada asociado con la TU. La unidad de cuantificacion inversa 154 puede cuantificar de forma inversa el bloque de coeficientes de transformada de una manera similar a los procesos de cuantificacion inversa propuestos para HEVC o definidos por la norma de descodificacion H.264. La unidad de cuantificacion inversa 154 puede utilizar un parametro de cuantificacion QP calculado por el codificador de video 20 para una CU del bloque de coeficientes de transformada para determinar un grado de cuantificacion y, del mismo modo, un grado de cuantificacion inversa para la unidad de cuantificacion inversa 154 a aplicar.
[0104] Despues de que la unidad de cuantificacion inversa 154 cuantifique de forma inversa un bloque de coeficientes de transformada, la unidad de transformada inversa 156 puede generar un bloque de video residual para la TU asociada con el bloque de coeficientes de transformada. La unidad de transformada inversa 156 puede aplicar una transformada inversa al bloque de coeficientes de transformada para generar el bloque de video residual para la TU. Por ejemplo, la unidad de transformada inversa 156 puede aplicar una DCT inversa, una transformada de numero entero inversa, una transformada de Karhunen-Loeve (KLT) inversa, una transformada de rotacion inversa, una transformada direccional inversa u otra transformada inversa al bloque de coeficientes de transformada. En algunos ejemplos, la unidad de transformada inversa 156 puede determinar una transformada inversa para aplicar al bloque de coeficientes de transformada basandose en la senalizacion del codificador de video 20. En dichos ejemplos, la unidad de transformada inversa 156 puede determinar la transformada inversa basada en una transformada senalizada en el nodo raiz de un arbol cuaternario para un bloque de arbol asociado con el bloque de coeficientes de transformada. En otros ejemplos, la unidad de transformada inversa 156 puede inferir la transformada inversa a partir de una o mas caracteristicas de codificacion, tales como tamano de bloque, modo de codificacion o similares. En algunos ejemplos, la unidad de transformada inversa 156 puede aplicar una transformada inversa en cascada.
[0105] En algunos ejemplos, la unidad de compensacion de movimiento 162 puede refinar el bloque de video predicho de una PU mediante interpolacion basandose en filtros de interpolacion. Los identificadores para los filtros de interpolacion que van a usarse para la compensacion de movimiento con una precision de submuestra pueden incluirse en los elementos sintacticos. La unidad de compensacion de movimiento 162 puede usar los mismos filtros de interpolacion usados por el codificador de video 20 durante la generacion del bloque de video predicho de la PU para calcular valores interpolados para muestras de subenteros de un bloque de referencia. La unidad de compensacion de movimiento 162 puede determinar los filtros de interpolacion usados por el codificador de video 20 de acuerdo con la informacion sintactica recibida y usar los filtros de interpolacion para producir el bloque de video predicho.
[0106] Si se codifica una PU usando prediccion intra, la unidad de prediccion intra 164 puede realizar la prediccion intra para generar un bloque de video predicho para la PU. Por ejemplo, la unidad de prediccion intra 164 puede determinar un modo de prediccion intra para la PU basandose en los elementos sintacticos del flujo de bits. El flujo de bits puede incluir elementos sintacticos que la unidad de prediccion intra 164 puede usar para predecir el modo de prediccion intra de la PU.
[0107] En algunos casos, los elementos sintacticos pueden indicar que la unidad de prediccion intra 164 tiene que utilizar el modo de prediccion intra de otra PU para determinar el modo de prediccion intra de la PU actual. Por ejemplo, puede ser probable que el modo de prediccion intra de la PU actual sea el mismo que el modo de prediccion intra de una PU proxima. En otras palabras, el modo de prediccion intra de la PU proxima puede ser el modo mas probable para la PU actual. Por lo tanto, en este ejemplo, el flujo de bits puede incluir un elemento sintactico pequeno que indica que el modo de prediccion intra de la PU es el mismo que el modo de prediccion intra de la PU proxima. La unidad de prediccion intra 164 puede entonces utilizar el modo de prediccion intra para generar datos de prediccion (por ejemplo, muestras predichas) para la PU basandose en los bloques de video de las PU espacialmente proximas.
[0108] Como se analiza mas adelante a continuacion con referencia a la FIG. 5, la unidad de prediccion 152 se puede configurar para predecir un bloque actual en la EL que tiene un bloque correspondiente no disponible en la BL realizando los pasos ilustrados en la FIG. 5.
[0109] La unidad de reconstruccion 158 puede utilizar los bloques de video residuales asociados con las TU de una CU y los bloques de video predichos de las PU de la CU, es decir, datos de prediccion intra o datos de prediccion inter, segun corresponda, para reconstruir el bloque de video de la CU. De este modo, el descodificador de video 30 puede generar un bloque de video predicho y un bloque de video residual basandose en los elementos sintacticos en el flujo de bits y puede generar un bloque de video basandose en el bloque de video predicho y el bloque de video residual.
[0110] Despues de que la unidad de reconstruccion 158 reconstruya el bloque de video de la CU, la unidad de filtro 159 puede realizar una operacion de desbloqueo para reducir los artefactos de bloqueo asociados con la CU. Despues de que la unidad de filtro 159 realice una operacion de desbloqueo para reducir los artefactos de bloqueo asociados con la CU, el descodificador de video 30 puede almacenar el bloque de video de la CU en la memoria intermedia de imagenes descodificadas 160. La memoria intermedia de imagenes descodificadas 160 puede proporcionar imagenes de referencia para la posterior compensacion de movimiento, la prediccion intra y la presentacion en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1. Por ejemplo, el descodificador de video 30 puede realizar, basandose en los bloques de video en la memoria intermedia de imagenes descodificadas 160, operaciones de prediccion intra o de prediccion inter en las PU de otras CU.
[0111] En un modo de realizacion de la extension HEVC, se puede predecir la capa de mejora u otra sintaxis de visualizacion, como el campo de movimiento o los modos intra, utilizando el bloque correspondiente de la capa base. Por ejemplo, un vector de movimiento de capa base (MV) se puede utilizar como candidato en las listas de candidatos del modo de combinacion de capa de mejora/AMVP (prediccion avanzada de vectores de movimiento). Sin embargo, puede haber una situacion en la que un bloque correspondiente o colocado de la capa base este ubicado fuera de la trama de la capa base. Esto puede suceder cuando el tamano de trama codificada es mas grande que el tamano de trama real que se puede mostrar en un dispositivo.
[0112] Por ejemplo, una situacion de este tipo puede ocurrir cuando el tamano de relleno del limite de la imagen de mejora es mayor que el de la imagen de la capa base. La configuracion del codificador especifico podria introducir el diferente tamano de relleno de limite de las capas de base y de mejora. Tambien puede deberse a los diferentes tamanos de unidades de codificacion mas pequenas (SCU) de las capas base y de mejora. Dado que en HEVC el tamano de trama codificada real se alinea con el tamano de la SCU (un tamano de trama es un multiplo entero de las SCU), si la SCU de la capa de mejora es mas grande que la SCU de la capa base, no hay informacion de sintaxis para algunas partes de la trama de la capa base. Como se muestra en la FIG. 4, los diferentes tamanos de la SCU de la capa de mejora 422 y SCU de la capa base 432 pueden dar como resultado que una parte de la capa de mejora 400 no tenga una region correspondiente en la capa base 430 de la cual se pueda recuperar informacion de movimiento o informacion de pixeles para la prediccion de capa intermedia. En otro ejemplo, la
indisponibilidad de la informacion de la capa base puede ocurrir cuando la capa base esta codificada con otra norma de vfdeo (por ejemplo, AVC o MPEG2).
[0113] En 3D-HEVC, al aplicar un vector de disparidad a un bloque de lfmite para ubicar un bloque en la visualizacion de referencia, el bloque correspondiente puede caer fuera del lfmite del componente de visualizacion de la visualizacion de referencia.
[0114] Esta divulgacion esta en general dirigida a la extension SVC. Esta divulgacion tambien es valida para la codificacion de vfdeo de multiples visualizaciones (MVC) donde una de las visualizaciones sirve como una capa de mejora en la descripcion.
[0115] La FIG. 4 ilustra los diversas tramas de la capa de mejora 400 y la capa base 430. El rectangulo blanco 432 representa el tamano de trama real de la imagen de la capa base (por ejemplo, recortada para ajustarse al tamano de visualizacion de un dispositivo). El tamano de trama codificada de la capa base se muestra en lfneas discontinuas 436 en la parte inferior de la FIG.4, y el tamano de trama codificada de la capa de mejora se muestra en las lfneas discontinuas 416 en la parte superior de la FIG. 4. Tambien se muestra entre el tamano de trama real 412 y el tamano de trama codificado 416 de la capa de mejora en lfneas discontinuas 414 un tamano de trama codificado de la capa de base muestreada. El area 418 representa el area entre el tamano de trama real y el tamano de trama codificada de la capa de base muestreada de manera ascendente, y el area 420 representa el area entre el tamano de trama codificada de la capa de base muestreada de manera ascendente y el tamano de trama codificada de la capa de mejora.
[0116] Tfpicamente, para la prediccion entre capas, la informacion de la capa base, incluido el vector de movimiento (MV) y otros elementos sintacticos, se puede obtener a partir de la ubicacion de sub-bloque o pfxeles correspondiente y se puede usar para predecir el bloque actual (por ejemplo, en la capa de mejora). Esta ubicacion de sub-bloque o pfxeles correspondiente puede estar ubicado dentro o fuera de la CU o la PU de la capa de mejora actual. Por ejemplo, la ubicacion de sub-bloque o pfxel puede ser una ubicacion de sub-bloque o pfxel de centro o de esquina. Si esta ubicacion de sub-bloque o pfxel correspondiente se encuentra en un area no disponible fuera de la trama de la capa base, es deseable definir el comportamiento del codec SVC o MVC para este caso. Por ejemplo, el "bloque correspondiente" (o ubicacion de sub-bloque o pfxel) utilizado en el presente documento puede referirse a un bloque de ubicacion conjunta, un bloque contiguo o cualquier otro bloque determinado por el codificador (por ejemplo, codificador o descodificador).
[0117] Como se menciono anteriormente, puede haber regiones de la capa de mejora que no tengan regiones correspondientes en la capa base disponibles para la prediccion entre capas. Por ejemplo, los bordes inferior y derecho de la trama codificada de la capa de mejora (es decir, el area 420 en la FlG. 4) no tienen regiones correspondientes en la capa base desde la cual se puede obtener informacion de movimiento para usar en la prediccion entre capas. Por lo tanto, tales partes de borde no pueden codificarse con la informacion obtenida de sus partes correspondientes en la capa base, y por lo tanto no se pueden usar las tecnicas convencionales de prediccion entre capas.
Falta de disponibilidad del bloque de referencia en BL
[0118] Se puede verificar si la ubicacion del sub-bloque o pfxel correspondiente esta fuera de la trama de la capa base comparando las coordenadas de las esquinas del sub-bloque o la ubicacion del pfxel con el tamano de trama. Por ejemplo, si las coordenadas de la esquina inferior derecha del sub-bloque estan fuera del rango del tamano de trama de la capa base (o el tamano de trama de la BL con muestreo ascendente de acuerdo con la relacion espacial de la BL y la EL), el sub-bloque correspondiente se considera no disponible para predecir el bloque actual en la EL. Una o mas de las tecnicas analizadas en el presente documento se pueden usar para realizar una prediccion entre capas en bloques de este tipo que tienen bloques correspondientes no disponibles en la BL (por ejemplo, sintaxis de BL no disponible).
[0119] En un modo de realizacion, durante una prediccion de movimiento entre visualizaciones/capas, se identifican las posiciones superior izquierda e inferior derecha P0 y P1 del bloque actual en la EL, que corresponden a las ubicaciones Q0 y Q1 en la visualizacion/capa de referencia/base. Si Q0 o Q1 esta fuera de la imagen de visualizacion/capa de referencia/base, se considera que el bloque correspondiente no esta disponible y no se usa para la prediccion de movimiento entre capas/visualizacion. En tal caso, la prediccion entre capas/visualizacion de otros elementos sintacticos o informacion residual puede estar deshabilitada. En otro modo de realizacion, se puede considerar que el bloque de visualizacion de capa/referencia base no esta disponible solo cuando Q0 y Q1 estan fuera de la imagen de la visualizacion/capa de referencia/base.
[0120] En otro modo de realizacion, en lugar de las posiciones superior izquierda e inferior derecha del bloque actual en la EL, el bloque actual se identifica por las posiciones superior derecha e inferior izquierda del bloque, y por lo tanto la disponibilidad del bloque de referencia en la BL se determina basandose en las posiciones asignadas de las posiciones superior derecha e inferior izquierda.
[0121] En otro modo de realizacion adicional, el bloque actual puede identificarse por las coordenadas horizontales de los pfxeles mas a la izquierda y los pfxeles mas a la derecha de los bloques, X i y Xr y las coordenadas verticales de los pfxeles superiores y los pfxeles inferiores, Y i y Yr. Despues de la asignacion de dichas coordenadas a las coordenadas correspondientes en la capa/visualizacion de base/referencia, si alguno de los valores (por ejemplo, coordenadas horizontales y verticales) se encuentra mas alla del lfmite de la imagen, se considera que el bloque correspondiente en la visualizacion de capa/referencia base no esta disponible. Aquf, el lfmite de la imagen puede referirse al lHriite de la trama real o la trama codificada, como se ilustra en la FIG. 4.
[0122] Para un determinado elemento sintactico (o todos los elementos sintacticos), la posicion asignada en la visualizacion de capa/referencia base del bloque actual puede depender de la posicion asignada de una coordenada especffica del bloque actual. Cuando la posicion asignada de la coordenada especffica del bloque actual esta mas alla del lHmite de la visualizacion de capa/referencia base, se considera que el bloque de visualizacion de capa/referencia base no esta disponible. La coordenada especffica de un bloque podrfa apuntar a la posicion superior izquierda, inferior derecha, central, superior derecha e inferior izquierda del bloque. La coordenada especffica de un bloque podrfa ser la misma posicion para todos los elementos sintacticos, o podrfan ser diferentes posiciones para diferentes elementos sintacticos.
Region de referenda
[0123] Incluso cuando una posicion asignada en la visualizacion de capa/referencia base esta dentro de la imagen de la visualizacion de capa/referencia base, si esta fuera de la region de referencia de la visualizacion de capa/referencia base, se considera que reside en una region no disponible, y el bloque identificado por tal posicion se considera no disponible. En un modo de realizacion, la region de referencia se define como la region rectangular dentro de la imagen de la visualizacion de capa/referencia base, a partir de la cual se predice la capa/visualizacion actual (por ejemplo, disponible para uso para prediccion entre capas o entre visualizaciones). La informacion de pfxeles o bloques de la imagen fuera de la region de referencia no se utiliza para la prediccion entre capas/de visualizacion. La "imagen" de la visualizacion de capa/referencia base utilizada en el presente documento puede referirse a una imagen de la capa base recortada para su visualizacion, que se ilustra con el rectangulo blanco 434 en la parte inferior de la FIG.4. De forma alternativa, el termino puede referirse a la imagen codificada (por ejemplo, descodificada) de la capa base, que se ilustra con las lfneas discontinuas 436 en la parte inferior de la FIG. 4.
Localizacion del bloque disponible mas cercano
[0124] En un modo de realizacion, cuando una ubicacion de bloque o pfxel se asigna a un bloque no disponible de la capa/visualizacion de base/referencia o se identifica fuera del lfmite izquierdo/derecho y/o superior/inferior de la region de referencia, la informacion del bloque disponible mas cercano en el lfmite derecho/izquierdo y/o superior/inferior del bloque de referencia no disponible (es decir, el bloque correspondiente) se puede usar para la prediccion entre capas/de visualizacion. Una forma de ubicar dicho bloque disponible mas cercano es recortar las coordenadas de la ubicacion de capa/visualizacion de base/referencia correspondiente en el rango del tamano de la region de referencia de la capa/referencia base, donde la region de referencia puede ser la imagen de la capa base descodificada (436) o la imagen de la capa base recortada (434), como se muestra en la FIG.4. Sin embargo, la region de referencia no esta limitada a las representadas en la FIG. 4, y puede ser la region especificada por el codificador para la capa de mejora o el bloque especffico en la capa de mejora.
[0125] Por ejemplo, las coordenadas horizontales de la ubicacion de capa/visualizacion de base/referencia correspondiente pueden recortarse al rango entre 0 y (reference_region_width - 1), y las coordenadas verticales de la ubicacion de capa/visualizacion de base/referencia correspondiente pueden recortarse a la rango entre 0 y (region de referencia altura - 1). Al recortar las coordenadas de la ubicacion de capa/visualizacion de base/referencia correspondiente, se ubica el bloque de referencia disponible mas cercano, y la informacion correspondiente a dicho bloque (por ejemplo, informacion de pfxeles o informacion de movimiento) se puede usar para predecir el bloque actual en la capa de mejora.
[0126] La FIG. 5 ilustra un procedimiento de ejemplo 500 para codificar informacion de vfdeo, de acuerdo con un modo de realizacion de la presente divulgacion. El procedimiento 500 puede ser realizado por uno o mas componentes del codificador de vfdeo 20 o del descodificador de vfdeo 30, incluidos, entre otros, la unidad de prediccion 121 y la unidad de compensacion de movimiento 162. En algunos modos de realizacion, se pueden usar otros componentes para implementar uno o mas de los pasos descritos en el presente documento. Por ejemplo, el procedimiento 500 se puede usar para realizar una o mas de las acciones descritas con respecto a la FIG. 4. Aunque los pasos del procedimiento 500 se describen como realizados por un codificador, dichos pasos pueden ser realizados por un codificador (por ejemplo, codificador de vfdeo 20) o un descodificador (por ejemplo, descodificador de vfdeo 30).
[0127] El procedimiento 500 se inicia en el paso 505, por ejemplo, para codificar un bloque actual en la capa de mejora. En el paso 510, el codificador verifica si un bloque correspondiente no esta disponible. Por ejemplo, el bloque correspondiente puede ser un bloque co-localizado del bloque actual en la capa de mejora, un bloque contiguo del bloque co-localizado, o cualquier otro bloque determinado por el codificador. Cualquiera de las
diversas tecnicas de verificacion de disponibilidad descritas en el presente documento puede usarse para determinar si dicho bloque correspondiente no esta disponible. Si se determina que el bloque correspondiente no esta disponible (SI en el paso 510), el codificador obtiene informacion basada en el bloque correspondiente de la capa base (paso 515). Por ejemplo, como se analiza en el presente documento, el codificador puede ubicar un bloque contiguo y puede obtenerse la informacion asociada con el bloque contiguo para su uso en la prediccion entre capas. Basandose en la informacion obtenida, se realiza la prediccion entre capas para predecir el bloque actual en la capa de mejora (paso 520). Por ejemplo, como se analizo anteriormente, la unidad de prediccion 100 del codificador de video 20 de la FIG. 2 o la unidad de prediccion 152 del descodificador de video 30 de la FIG. 2 puede realizar dicha prediccion. El procedimiento 500 finaliza en el paso 525.
Elementos sintacticos e informacion residual
[0128] En un modo de realizacion, si un bloque se asigna a un bloque no disponible de capa/visualizacion de base/referencia o se identifica fuera del limite izquierdo/derecho y/o superior/inferior de la region de referencia, la prediccion entre capas para los elementos sintacticos y/o la informacion residual esta deshabilitada para dicho bloque. De forma alternativa, en lugar de deshabilitar la prediccion entre capas para dicho bloque, los valores sintacticos predeterminados pueden usarse para la prediccion entre capas. Por ejemplo, se puede usar un campo de movimiento cero (por ejemplo, un MV es igual a cero y el indice de referencia es igual a cero), y el modo intra se puede establecer en la direccion de prediccion de DC.
[0129] En otro modo de realizacion, los elementos sintacticos de un bloque disponible contiguo pueden sustituirse por los elementos sintacticos del bloque correspondiente no disponible. En el caso de utilizar la informacion del bloque disponible contiguo, el campo de movimiento utilizado para los sub-bloques no disponibles puede comprimirse (por ejemplo, basandose en el tamano de 16x16 como en HEVC), especialmente si la trama de la capa base se inserta en la lista de imagenes de referencia.
Tamano de unidad de codificacion (SCU) mas peaueno
[0130] El tamano de SCU de la capa de mejora y de base se puede restringir para evitar regiones no disponibles para la prediccion de sintaxis entre capas. Por ejemplo, el tamano de la SCU de la capa de mejora puede configurarse para que sea mas pequeno o igual que el tamano de la SCU de la capa base. Ademas, la relacion de aspecto de escalabilidad espacial se puede tener en cuenta al definir la restriccion en los tamanos de SCU.
Tamano de relleno de lim ite de imagen
[0131] Los tamanos de relleno del limite de la imagen de la capa de mejora y la capa base pueden restringirse para evitar regiones no disponibles para la prediccion de sintaxis entre capas. Por ejemplo, el tamano de relleno de la capa de mejora puede configurarse para que sea mas pequeno o igual que el tamano de relleno de la capa base. Mas especificamente, los tamanos de relleno de cada limite de imagen (es decir, los limites izquierdo, superior, derecho e inferior en la imagen de la capa de mejora) pueden hacerse mas pequenos o iguales a los de la imagen de la capa base. Ademas, la relacion de resolucion se puede tener en cuenta al definir la restriccion en los tamanos de relleno de limite de imagen para el caso de escalabilidad espacial.
D isponibilidad de informacion de campo de movimiento
[0132] Durante la prediccion de movimiento entre visualizaciones/capas, si la esquina inferior derecha del bloque de capa de mejora esta fuera de la imagen, se considera que el campo de movimiento no esta disponible. La imagen como se usa en el presente documento puede referirse a la imagen de la capa base descodificada o la imagen de la capa base recortada, como se ilustra en la FIG. 4. En tal caso, se puede considerar que el campo de movimiento no esta disponible incluso si el bloque de la capa base correspondiente esta dentro de la imagen de la capa base. De forma alternativa, en otro modo de realizacion, si la parte representativa del bloque de capa de mejora esta fuera de la imagen, pero el bloque de capa base correspondiente a la parte representativa del bloque de capa de mejora esta dentro de la imagen de capa base, entonces el campo de movimiento del bloque de capa base (escalado de acuerdo con la relacion de escalabilidad si es necesario) puede asignarse para el bloque de capa de mejora.
D isponibilidad de informacion de campo de movimiento
[0133] En otro modo de realizacion, en lugar de la esquina inferior derecha del bloque, se pueden utilizar otros puntos o cualquier sub-bloque dentro del bloque como el punto representativo. Por ejemplo, se puede usar el punto central de la capa base o el bloque de capa de mejora, o uno de los sub-bloques 4x4 del centro del bloque de capa base o de mejora. Si este punto o sub-bloque representativo esta fuera de la imagen BL o EL correspondiente, se puede aplicar una de las tecnicas descritas en la presente divulgacion. La imagen aqui puede ser una imagen descodificada o una imagen recortada.
Coordenadas de recorte antes de la asignacion de posicion
[0134] En un modo de realizacion, se puede aplicar una restriccion de rango a la ubicacion en la imagen de la capa de mejora actual antes de realizar el proceso de asignacion de posicion para determinar la ubicacion del bloque correspondiente en la capa/visualizacion de base/referencia. Por ejemplo, las coordenadas de la ubicacion actual pueden recortarse en el rango de tamanos de imagen de la imagen descodificada actual antes de realizar el proceso de asignacion de posicion para obtener la ubicacion correspondiente en la capa/visualizacion de base/referencia. En otro ejemplo, las coordenadas de la ubicacion actual se pueden recortar en el rango de tamanos de imagen de la imagen recortada actual antes de realizar el proceso de asignacion de posicion para obtener la ubicacion correspondiente en la capa/visualizacion de base/referencia.
Imagen recortada e imagen descodificada
[0135] En una visualizacion mas detallada, la region fuera de la trama puede dividirse en dos partes: la primera parte (por ejemplo, el area 418 en la FIG. 4) que esta relacionada con una parte extendida de la trama de la capa base debido a la alineacion con el tamano de la SCU de la capa base 432 mostrada en la FIG. 4, y la segunda parte (por ejemplo, el area 420 en la FIG. 4) que no tiene ninguna parte correspondiente en la trama de la capa base, que se muestra con el sombreado en la FIG. 4.
[0136] Las tecnicas descritas anteriormente se pueden aplicar a las dos areas 418 y 420. De forma alternativa, se puede considerar que el area 418 esta disponible, ya que la informacion se puede obtener a partir de la trama de la capa base extendida (es decir, la trama codificada 436 de la capa base), y por lo tanto, las tecnicas descritas en esta divulgacion solo se pueden aplicar al area 420.
[0137] En un modo de realizacion, la indisponibilidad de un bloque se puede verificar directamente de acuerdo con la ubicacion asignada en la imagen de la capa/visualizacion de base/referencia. Como se muestra en la FIG.
4, una tecnica que se puede usar es considerar que cualquier posicion asignada dentro del tamano de trama real de la imagen de capa/visualizacion de base/referencia este disponible y la parte mas alla del tamano de trama real no este disponible. De forma alternativa, cualquier posicion asignada dentro del tamano de trama codificada de la imagen de capa/visualizacion de base/referencia puede considerarse disponible, y la parte mas alla del tamano de trama codificada puede considerarse como no disponible.
Otras aplicaciones
[0138] En la descripcion anterior, aunque se utilizo la prediccion entre capas de movimiento como un ejemplo, los mismos principios y tecnicas tambien son aplicables a otros elementos sintacticos como el modo intra, modo de prediccion, indicador de division, indicador de omision, etc.
[0139] De forma alternativa o adicional, los procedimientos mencionados anteriormente pueden aplicarse a la prediccion de pixeles entre capas (incluida la prediccion Intra-BL o Texture-BL, la prediccion de residuos entre capas, la prediccion intra del dominio de diferencia, la prediccion inter de dominio de diferencia, etc.). Por ejemplo, para aquellos bloques o parte de los bloques que se encuentran en una region no disponible, la prediccion de pixeles entre capas se puede desactivar, o los pixeles se pueden inicializar con valores predeterminados, por ejemplo, 0 o (1 << (profundidad de bits - 1)), donde profundidad de bits puede ser 8, 10, 12 bits y asi sucesivamente.
[0140] De forma alternativa, los pixeles se pueden rellenar utilizando los pixeles adyacentes disponibles. El procedimiento de relleno de pixeles, por ejemplo, puede ser el mismo procedimiento que se utiliza para el relleno de pixeles para la interpolacion. Sin embargo, la cantidad de pixeles que deben extenderse puede ser diferente de los necesarios para fines de interpolacion. Otros procedimientos de relleno de pixeles tambien son aplicables sin restriccion.
[0141] Para el caso de prediccion de pixeles entre capas, el procedimiento de comprobacion de indisponibilidad mencionado anteriormente se puede realizar pixel a pixel. Es decir, para cada pixel, su posicion colocada en la imagen de capa/visualizacion de base/referencia se utiliza para verificar la disponibilidad con la regla mencionada anteriormente. Cuando un pixel se asigna a una posicion no disponible de la capa/visualizacion de base/referencia, el pixel de la posicion disponible mas cercana al limite de la derecha/izquierda y/o superior/inferior de la posicion asignada se usa para la prediccion entre capas/de visualizacion.
[0142] Como se muestra en la FIG. 4, la esquina superior izquierda con coordenadas (0,0) esta alineada para las capas base y de mejora. Sin embargo, la solucion se puede aplicar en una situacion en la que no existe tal alineacion de esquina. En tal situacion, hay otra area no disponible fuera de la trama de la capa de mejora desde los lados izquierdo y superior similar a las homologas derecha e inferior mostradas en la FIG. 4.
[0143] La informacion y las senales divulgadas en el presente documento pueden representarse usando cualquiera entre varias tecnologias y tecnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la informacion, las senales, los bits, los simbolos y los chips que puedan haberse mencionado a lo largo de la
descripcion anterior pueden representarse mediante tensiones, corrientes, ondas electromagneticas, campos o particulas magneticos, campos o particulas opticos o cualquier combinacion de los mismos.
[0144] Los diversos bloques logicos, unidades, modulos, circuitos y pasos de algoritmo ilustrativos, descritos en relacion con los modos de realizacion divulgados en el presente documento pueden implementarse como hardware electronico, software informatico o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito, en general, diversos componentes, bloques, modulos, circuitos y pasos ilustrativos en terminos de su funcionalidad. Que dicha funcionalidad se implemente como hardware o software depende de la aplicacion particular y de las restricciones de diseno impuestas en el sistema global. Los expertos en la tecnica pueden implementar la funcionalidad descrita de formas diversas para cada aplicacion particular, pero no deberia interpretarse que dichas decisiones de implementacion suponen apartarse del alcance de la presente invencion.
[0145] Las tecnicas descritas en el presente documento pueden implementarse en hardware, software, firmware o en cualquier combinacion de lo anterior. Dichas tecnicas pueden implementarse en cualquiera entre una variedad de dispositivos tales como ordenadores de proposito general, equipos manuales de dispositivos de comunicacion inalambrica o dispositivos de circuitos integrados que tienen multiples usos, incluyendo su aplicacion en equipos manuales de dispositivos de comunicacion inalambrica y otros dispositivos. Cualquier caracteristica descrita como unidades, modulos o componentes puede implementarse conjuntamente en un dispositivo logico integrado o por separado, como dispositivos logicos discretos pero interoperables. Si se implementan en software, las tecnicas pueden realizarse, al menos en parte, mediante un medio de almacenamiento de datos legible por ordenador que comprenda codigo de programa que incluye instrucciones que, cuando se ejecutan, realizan uno o mas de los procedimientos descritos anteriormente. El medio de almacenamiento de datos legible por ordenador puede formar parte de un producto de programa informatico, que puede incluir materiales de embalaje. El medio legible por ordenador puede comprender memoria o medios de almacenamiento de datos, tales como memoria de acceso aleatorio (RAM), tal como memoria de acceso aleatorio dinamica sincrona (SDRAM), memoria de solo lectura (ROM), memoria de acceso aleatorio no volatil (NVRAM), memoria de solo lectura programable y borrable electricamente (EEPROM), memoria FLASH, medios de almacenamiento de datos magneticos u opticos, y similares. Las tecnicas se pueden realizar, adicionalmente o de forma alternativa, al menos en parte, por un medio de comunicacion legible por ordenador que transporta o comunica codigo de programa en forma de instrucciones o estructuras de datos y a las que se puede acceder, leer y/o ejecutar por medio de un ordenador, tales como senales u ondas propagadas.
[0146] El codigo de programa puede ser ejecutado por un procesador, que puede incluir uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especificos de la aplicacion (ASIC), matrices de puertas programables en el terreno (FPGA) u otros circuitos logicos equivalentes, integrados o discretos. Un procesador de este tipo puede estar configurado para realizar cualquiera de las tecnicas descritas en esta divulgacion. Un procesador de proposito general puede ser un microprocesador, pero, de forma alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o maquina de estados convencional. Un procesador tambien puede implementarse como una combinacion de dispositivos informaticos, por ejemplo, una combinacion de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o mas microprocesadores junto con un nucleo de DSP o cualquier otra configuracion de este tipo. Por consiguiente, el termino "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior, cualquier combinacion de la estructura anterior, o cualquier otra estructura o aparato adecuados para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de modulos de software o modulos de hardware dedicados configurados para la codificacion y la descodificacion, o incorporados en un codificador-descodificador de video combinado (CODEC). Tambien, las tecnicas se podrian implementar totalmente en uno o mas circuitos o elementos logicos.
[0147] Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un equipo manual inalambrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de codec, o ser proporcionadas por un grupo de unidades de hardware interoperativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, conjuntamente con software y/o firmware adecuados.
Claims (1)
- REIVINDICACIONESUn procedimiento de codificacion de informacion de video, el procedimiento que comprende:recibir informacion de video asociada con una capa de mejora (400) y una capa base (430), la capa base que comprende una region de referencia y una region fuera de la region de referencia, en el que la region de referencia es una region recortada de la capa base, en el que la region de referencia esta disponible para la prediccion entre capas de la capa de mejora, en el que la region fuera de la region de referencia no esta disponible para la prediccion entre capas de la capa de mejora, y en la que la capa de mejora comprende bloques que corresponden a bloques respectivos en la capa base; codificar la capa base; ycodificar la capa de mejora, en el que codificar la capa de mejora comprende:usar la region de referencia de la capa base para la prediccion entre capas de la capa de mejora; asignar coordenadas que identifican un bloque de capa de mejora actual a las coordenadas correspondientes de una posicion asignada en la capa base;determinar si las coordenadas asignadas estan fuera de la region de referencia de la capa base; y en respuesta a la determinacion de que las coordenadas asignadas estan fuera de la region de referencia de la capa base, determinar que el bloque de capa base correspondiente no esta disponible para predecir el bloque actual, y deshabilitar la prediccion de elementos sintacticos entre capas para el bloque de capa de mejora actual.Un procedimiento de descodificacion de informacion de video, el procedimiento que comprende: recibir un flujo de bits de video codificado que comprende informacion de video codificada asociada con una capa de mejora (400) y una capa base (430);descodificar la capa base, en el que la capa base descodificada comprende una region de referencia y una region fuera de la region de referencia, en el que la region de referencia es una region recortada de la capa base, en el que la region de referencia esta disponible para la prediccion entre capas de la capa de mejora, en el que la region fuera de la region de referencia no esta disponible para la prediccion entre capas de la capa de mejora; ydescodificar la capa de mejora, la capa de mejora que tiene bloques que corresponden a bloques respectivos en la capa base, en el que la descodificacion de la capa de mejora comprende: usar la region de referencia de la capa base para la prediccion entre capas de la capa de mejora; asignar coordenadas que identifican un bloque de capa de mejora actual a las coordenadas correspondientes de una posicion asignada en la capa base;determinar si las coordenadas asignadas estan fuera de la region de referencia de la capa base; y en respuesta a la determinacion de que las coordenadas asignadas estan fuera de la region de referencia de la capa base, determinar que el bloque de capa base correspondiente no esta disponible para predecir el bloque actual, y deshabilitar la prediccion de elementos sintacticos entre capas para el bloque de capa de mejora actual.El procedimiento segun la reivindicacion 2, que comprende ademas recortar la capa base descodificada para ajustarse al tamano de visualizacion de un dispositivo, en el que la region de referencia de la capa base es la capa base recortada.El procedimiento segun la reivindicacion 1 o la reivindicacion 2, en el que un tamano de una unidad de codificacion mas pequena (SCU) de la capa de mejora es diferente del tamano de una SCU de la capa base.El procedimiento segun la reivindicacion 1 o la reivindicacion 2, en el que un tamano de relleno de limite de cada limite de imagen de la capa de mejora es diferente de un tamano de relleno de limite de cada limite de imagen correspondiente de la capa base.Un medio no transitorio legible por ordenador que tenga instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un aparato realice un procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-7.Un dispositivo de codificacion de video configurado para codificar informacion de video, el dispositivo de codificacion de video que comprende:medios para almacenar informacion de video asociada con una capa de mejora (400) y una capa base (430), la capa base que comprende una region de referencia y una region fuera de la region de referencia, en el que la region de referencia es una region recortada de la capa base, en el que la region de referencia esta disponible para la prediccion entre capas de la capa de mejora, en el que la region fuera de la region de referencia no esta disponible para la prediccion entre capas de la capa de mejora, y en la que la capa de mejora comprende bloques que corresponde a bloques respectivos en la capa base;medios para codificar la capa base; ymedios para codificar la capa de mejora, en el que los medios para codificar la capa de mejora comprenden:medios para usar la region de referencia de la capa base para la prediccion entre capas de la capa de mejora;medios para asignar coordenadas que identifican un bloque de capa de mejora actual a las coordenadas correspondientes de una posicion asignada en la capa base;medios para determinar si las coordenadas asignadas estan fuera de la region de referencia de la capa base; ymedios para determinar que el bloque de capa base correspondiente no esta disponible para predecir el bloque actual, y deshabilitar la prediccion entre capas de elementos sintacticos para el bloque de capa de mejora actual, en respuesta a la determinacion de que las coordenadas asignadas estan fuera de la region de referencia de la capa base.Un dispositivo de descodificacion de video configurado para descodificar informacion de video, el dispositivo de descodificacion de video que comprende:medios para recibir un flujo de bits de video codificado que comprende informacion de video asociada con una capa de mejora (400) y una capa base (430);medios para descodificar la capa base, en el que la capa base descodificada comprende una region de referencia y una region fuera de la region de referencia, en el que la region de referencia es una region recortada de la capa base, en el que la region de referencia esta disponible para la prediccion entre capas de la capa de mejora, en la que la region fuera de la region de referencia no esta disponible para la prediccion entre capas de la capa de mejora; ymedios para descodificar la capa de mejora, la capa de mejora que tiene bloques que corresponden a bloques respectivos en la capa base, en el que los medios para descodificar la capa de mejora comprenden:medios para usar la region de referencia de la capa base para la prediccion entre capas de la capa de mejora;medios para asignar coordenadas que identifican un bloque de capa de mejora actual a las coordenadas correspondientes de una posicion asignada en la capa base;medios para determinar si las coordenadas asignadas estan fuera de la region de referencia de la capa base; ymedios para determinar que el bloque de capa base correspondiente no esta disponible para predecir el bloque actual, y deshabilitar la prediccion entre capas de elementos sintacticos para el bloque de capa de mejora actual, en respuesta a la determinacion de que las coordenadas asignadas estan fuera de la region de referencia de la capa base.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261736481P | 2012-12-12 | 2012-12-12 | |
| US201361767183P | 2013-02-20 | 2013-02-20 | |
| US14/049,649 US9648319B2 (en) | 2012-12-12 | 2013-10-09 | Device and method for scalable coding of video information based on high efficiency video coding |
| PCT/US2013/073015 WO2014093079A1 (en) | 2012-12-12 | 2013-12-04 | Device and method for scalable coding of video information based on high efficiency video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2711954T3 true ES2711954T3 (es) | 2019-05-08 |
Family
ID=50880949
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13811078T Active ES2711954T3 (es) | 2012-12-12 | 2013-12-04 | Dispositivo y procedimiento para codificación escalable de información de vídeo basándose en codificación de vídeo de alta eficiencia |
Country Status (13)
| Country | Link |
|---|---|
| US (1) | US9648319B2 (es) |
| EP (1) | EP2932718B1 (es) |
| JP (1) | JP6430394B2 (es) |
| KR (1) | KR101861906B1 (es) |
| CN (1) | CN104919797B (es) |
| AP (1) | AP2015008516A0 (es) |
| EC (1) | ECSP15029651A (es) |
| ES (1) | ES2711954T3 (es) |
| HU (1) | HUE042712T2 (es) |
| MA (1) | MA38178B1 (es) |
| SA (1) | SA515360542B1 (es) |
| TW (1) | TWI535273B (es) |
| WO (1) | WO2014093079A1 (es) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2981090A4 (en) * | 2013-04-05 | 2016-11-02 | Samsung Electronics Co Ltd | METHOD FOR DETERMINING INTERPRETATION CANDIDATES FOR INTERMEDIATE LAYER DECODING AND CODING METHOD AND DEVICE |
| EP2997732A1 (en) * | 2013-05-15 | 2016-03-23 | VID SCALE, Inc. | Single loop decoding based inter layer prediction |
| US10321162B2 (en) * | 2015-06-08 | 2019-06-11 | Qualcomm Incorporated | Derivation of color gamut scalability parameters and tables in scalable video coding |
| US10531111B2 (en) | 2015-11-06 | 2020-01-07 | Microsoft Technology Licensing, Llc | Flexible reference picture management for video encoding and decoding |
| US10424082B2 (en) * | 2017-04-24 | 2019-09-24 | Intel Corporation | Mixed reality coding with overlays |
| US10602180B2 (en) | 2017-06-13 | 2020-03-24 | Qualcomm Incorporated | Motion vector prediction |
| WO2019135447A1 (ko) * | 2018-01-02 | 2019-07-11 | 삼성전자 주식회사 | 움직임 예측에 의한 패딩 기법을 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
| US11265551B2 (en) * | 2018-01-18 | 2022-03-01 | Qualcomm Incorporated | Decoder-side motion vector derivation |
| CA3131286C (en) | 2019-03-08 | 2024-06-18 | Beijing Bytedance Network Technology Co., Ltd. | Constraints on model-based reshaping in video processing |
| PH12021552429A1 (en) | 2019-04-18 | 2022-07-25 | Beijing Bytedance Network Tech Co Ltd | Parameter derivation in cross component mode |
| PH12021552543A1 (en) | 2019-04-23 | 2022-07-04 | Beijing Bytedance Network Tech Co Ltd | Methods for cross component dependency reduction |
| CN117221558A (zh) | 2019-05-08 | 2023-12-12 | 北京字节跳动网络技术有限公司 | 跨分量编解码的适用性条件 |
| CN113924774A (zh) | 2019-05-10 | 2022-01-11 | 北京达佳互联信息技术有限公司 | 用于利用三角形预测进行视频编解码的方法和装置 |
| EP3977738A4 (en) | 2019-07-07 | 2022-08-17 | Beijing Bytedance Network Technology Co., Ltd. | SIGNALING OF CHROMA RESIDUAL SCALE |
| KR20240042245A (ko) * | 2019-10-10 | 2024-04-01 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| NL9201640A (nl) | 1992-09-22 | 1994-04-18 | Nederland Ptt | Systeem omvattende ten minste één encoder voor het coderen van een digitaal signaal en ten minste één decoder voor het decoderen van een digitaal signaal, en encoder en decoder voor toepassing in het systeem volgens de uitvinding. |
| US6957350B1 (en) | 1996-01-30 | 2005-10-18 | Dolby Laboratories Licensing Corporation | Encrypted and watermarked temporal and resolution layering in advanced television |
| KR20060109247A (ko) * | 2005-04-13 | 2006-10-19 | 엘지전자 주식회사 | 베이스 레이어 픽처를 이용하는 영상신호의 엔코딩/디코딩방법 및 장치 |
| US20060153295A1 (en) | 2005-01-12 | 2006-07-13 | Nokia Corporation | Method and system for inter-layer prediction mode coding in scalable video coding |
| KR100704626B1 (ko) * | 2005-02-07 | 2007-04-09 | 삼성전자주식회사 | 다 계층 기반의 모션 벡터를 압축하는 방법 및 장치 |
| WO2006087314A1 (en) * | 2005-02-18 | 2006-08-24 | Thomson Licensing | Method for deriving coding information for high resolution images from low resoluton images and coding and decoding devices implementing said method |
| JP4321484B2 (ja) * | 2005-04-12 | 2009-08-26 | 日本ビクター株式会社 | 空間スケーラブル符号化方法、空間スケーラブル符号化装置、空間スケーラブル符号化プログラム、空間スケーラブル復号化方法、空間スケーラブル復号化装置及び空間スケーラブル復号化プログラム |
| US8755434B2 (en) * | 2005-07-22 | 2014-06-17 | Lg Electronics Inc. | Method and apparatus for scalably encoding and decoding video signal |
| JP5134001B2 (ja) | 2006-10-18 | 2013-01-30 | アップル インコーポレイテッド | 下層のフィルタリングを備えたスケーラブルビデオ符号化 |
| WO2008060125A1 (en) * | 2006-11-17 | 2008-05-22 | Lg Electronics Inc. | Method and apparatus for decoding/encoding a video signal |
| US8428125B2 (en) | 2006-12-22 | 2013-04-23 | Qualcomm Incorporated | Techniques for content adaptive video frame slicing and non-uniform access unit coding |
| US8548056B2 (en) * | 2007-01-08 | 2013-10-01 | Qualcomm Incorporated | Extended inter-layer coding for spatial scability |
| DE102007049351A1 (de) | 2007-10-15 | 2009-04-16 | Siemens Ag | Verfahren und Vorrichtung zum Erstellen eines kodierten Ausgangsvideostroms aus mindestens zwei kodierten Eingangsvideoströmen, sowie Verwendung der Vorrichtung und kodierter Eingangsvideostrom |
| US20120314767A1 (en) | 2011-06-13 | 2012-12-13 | Qualcomm Incorporated | Border pixel padding for intra prediction in video coding |
| CN103931173B (zh) | 2011-06-30 | 2016-12-21 | 维德约股份有限公司 | 可伸缩视频编码中的运动预测 |
| JP5810700B2 (ja) * | 2011-07-19 | 2015-11-11 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
| CN104205819B (zh) | 2012-02-01 | 2017-06-30 | 诺基亚技术有限公司 | 用于视频编码的方法和装置 |
-
2013
- 2013-10-09 US US14/049,649 patent/US9648319B2/en active Active
- 2013-12-04 KR KR1020157016406A patent/KR101861906B1/ko active Active
- 2013-12-04 AP AP2015008516A patent/AP2015008516A0/xx unknown
- 2013-12-04 WO PCT/US2013/073015 patent/WO2014093079A1/en not_active Ceased
- 2013-12-04 HU HUE13811078A patent/HUE042712T2/hu unknown
- 2013-12-04 EP EP13811078.8A patent/EP2932718B1/en active Active
- 2013-12-04 MA MA38178A patent/MA38178B1/fr unknown
- 2013-12-04 JP JP2015547409A patent/JP6430394B2/ja active Active
- 2013-12-04 ES ES13811078T patent/ES2711954T3/es active Active
- 2013-12-04 CN CN201380064415.9A patent/CN104919797B/zh active Active
- 2013-12-12 TW TW102145970A patent/TWI535273B/zh active
-
2015
- 2015-06-07 SA SA515360542A patent/SA515360542B1/ar unknown
- 2015-07-10 EC ECIEPI201529651A patent/ECSP15029651A/es unknown
Also Published As
| Publication number | Publication date |
|---|---|
| EP2932718B1 (en) | 2018-11-28 |
| KR20150096421A (ko) | 2015-08-24 |
| JP2016503982A (ja) | 2016-02-08 |
| EP2932718A1 (en) | 2015-10-21 |
| TW201429263A (zh) | 2014-07-16 |
| TWI535273B (zh) | 2016-05-21 |
| US9648319B2 (en) | 2017-05-09 |
| AP2015008516A0 (en) | 2015-06-30 |
| CN104919797B (zh) | 2018-08-24 |
| KR101861906B1 (ko) | 2018-05-28 |
| WO2014093079A1 (en) | 2014-06-19 |
| SA515360542B1 (ar) | 2017-11-27 |
| HUE042712T2 (hu) | 2019-07-29 |
| MA38178B1 (fr) | 2017-10-31 |
| MA38178A1 (fr) | 2016-05-31 |
| ECSP15029651A (es) | 2016-01-29 |
| CN104919797A (zh) | 2015-09-16 |
| US20140161179A1 (en) | 2014-06-12 |
| JP6430394B2 (ja) | 2018-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2711954T3 (es) | Dispositivo y procedimiento para codificación escalable de información de vídeo basándose en codificación de vídeo de alta eficiencia | |
| ES2795682T3 (es) | Dispositivo y procedimiento para codificación escalable de información de vídeo | |
| ES2648312T3 (es) | Relleno de píxeles de borde para intra-predicción en codificación de vídeo | |
| US9491458B2 (en) | Scalable video coding prediction with non-causal information | |
| ES2987671T3 (es) | Predicción entre capas utilizando ajustes adaptativos de muestra para codificación de vídeo escalable de profundidadde bits | |
| ES2895270T3 (es) | Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso | |
| CN103797799B (zh) | 用于视频译码的运动向量确定 | |
| ES2778350T3 (es) | Dispositivo y procedimiento para codificación escalable de información de vídeo | |
| CN104396243B (zh) | 用于视频压缩的自适应上取样滤波器 | |
| US9584808B2 (en) | Device and method for scalable coding of video information | |
| ES2914950T3 (es) | Muestreo ascendente de campo de movimiento para codificación escalable basada en codificación de vídeo de alta eficacia | |
| US9420285B2 (en) | Inter-layer mode derivation for prediction in scalable video coding | |
| CN105519116A (zh) | 产生用于增强层中的运动预测的经调适运动向量候选者列表的可缩放hevc装置和方法 | |
| US10194146B2 (en) | Device and method for scalable coding of video information | |
| CA2916679A1 (en) | Device and method for scalable coding of video information | |
| ES2769837T3 (es) | Escalamiento del vector de movimiento espacial para codificación escalable de vídeo |