ES2627741T3 - Decodificación y codificación de imágenes de una secuencia de video - Google Patents
Decodificación y codificación de imágenes de una secuencia de video Download PDFInfo
- Publication number
- ES2627741T3 ES2627741T3 ES16169447.6T ES16169447T ES2627741T3 ES 2627741 T3 ES2627741 T3 ES 2627741T3 ES 16169447 T ES16169447 T ES 16169447T ES 2627741 T3 ES2627741 T3 ES 2627741T3
- Authority
- ES
- Spain
- Prior art keywords
- images
- output
- image
- necessary
- decoded
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- 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/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
-
- 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/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- 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/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un método ejecutado por medio de un decodificador (100, 200, 400), dicho método comprende: determinar (S1), después de que una imagen actual de una secuencia de bits se haya decodificado y almacenado en una memoria intermedia de imágenes decodificadas (125, 225), un número de imágenes de dicha memoria intermedia de imágenes decodificadas (125, 225) que están marcadas como necesarias para la salida, perteneciendo dicha imagen actual a una capa distinta de la capa más alta que se decodifica por medio de dicho decodificador (100, 200, 400) de una secuencia de video multi-capa que comprende múltiples capas de imágenes; obtener un valor sps_max_num_reorder_pics[HighestTid] de un elemento de sintaxis asociado con dicha capa más alta, en el que el HighestTid especifica dicha capa más alta, y el elemento de sintaxis se recupera de un conjunto de parámetros de secuencia en la secuencia de bits, y cada capa i de dichas múltiples capas tiene un elemento de sintaxis asociado que define un respectivo valor sps_max_num_reorder_pics[i], y dicho valor sps_max_num_reorder_pics[i] indica un máximo número de imágenes permitido que pueden preceder a cualquier imagen en dicha secuencia de video multi-capa en el orden de decodificación y que van detrás de esa imagen en el orden de salida cuando HighestTid es igual a i; generar como salida (S3) una imagen, que es una primera imagen en el orden de salida de entre dichas imágenes de dicha memoria intermedia de imágenes decodificadas (125, 225) que están marcadas como necesarias para la salida, si dicho número de imágenes de dicha memoria intermedia de imágenes decodificadas (125, 225) que están marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid]; y marcar (S4) dicha imagen como no necesaria para la salida, si dicho número de imágenes de dicha memoria intermedia de imágenes decodificadas (125, 225) que están marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid].
Description
5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Decodificacion y codificacion de imagenes de una secuencia de video Campo tecnico
Las realizaciones presentes se refieren, en general, a la decodificacion y codificacion de imagenes de una secuencia de video y, en particular, a la generacion como salida o transferencia rapida de imagenes desde una memoria intermedia de imagenes decodificadas en relacion con la decodificacion y codificacion de imagenes.
Antecedentes
Compresion de video H.264
La norma H.264 (o Moving Picture Experts Group-4 Advanced Video Coding (MPEG-4 AVC)) es la norma de codificacion de video del estado de la tecnica. Consiste en un esquema de codificacion de video tubrido basado en bloques, que se aprovecha de redundancias temporales y espaciales. La norma H.264/AVC se define en un texto de especificacion que contiene muchos procesos de decodificacion que se tienen que ejecutar en la secuencia especificada para que un decodificador cumpla con la norma. No se establecen requisitos sobre el codificador, pero es frecuente el caso en el que el codificador tambien ejecuta la mayor parte de los procesos al objeto de obtener una buena eficiencia de compresion.
La norma H.264/AVC define una memoria intermedia de imagenes decodificadas (DPB, decoded picture buffer, por sus siglas en ingles) que almacena las imagenes decodificadas despues de que se hayan decodificado. Esto significa que se requiere que el decodificador utilice una cantidad de memoria definida al objeto de decodificar una secuencia. La DPB contiene imagenes que se utilizan como referencia durante la decodificacion de imagenes futuras. “Utilizada como referencia” significa en la presente memoria que una imagen particular se utiliza para hacer una prediccion cuando se decodifica otra imagen. Los valores de los pfxeles de la imagen que se utiliza como referencia se pueden utilizar de esta forma para predecir los valores de los pfxeles de la imagen que se esta decodificando en ese momento. A esto tambien se hace referencia como prediccion intermedia. La DpB contiene ademas imagenes que estan esperando para ser generadas como salida. “Generada como salida” significa en la presente memoria la funcion por la que un decodificador da salida a una imagen a la parte exterior del decodificador. La especificacion H.264 describe la forma segun la cual una secuencia de bits se convierte en unas imagenes decodificadas que se generan como salida a continuacion, vease la figura 1. Las imagenes generadas como salida se pueden, por ejemplo, visualizar o escribir a disco.
Una causa comun por la que una imagen de la DPB espera para ser generada como salida es que hay una imagen, que no se ha decodificado todavfa, que sera generada como salida antes que la propia imagen.
La figura 2 muestra un ejemplo de tres imagenes: A, B y C. El orden de decodificacion es el orden segun el cual las imagenes en formato comprimido se suministran al decodificador. Este normalmente es el mismo que el orden segun el cual las imagenes se codifican por medio del codificador. La figura 2 muestra que el orden de decodificacion en este ejemplo es A, B y C. El orden de salida es el orden segun el cual las imagenes decodificadas se generan como salida. El orden de salida no tiene que ser el mismo que el orden de decodificacion, tal y como se ilustra en el ejemplo de la figura 2, en el que el orden de salida es A, C, B. Las flechas de la figura muestran que imagenes se utilizan como referencia para cada imagen: la imagen A se utiliza como referencia para ambas imagenes B y C.
En la figura 2, la imagen C se decodifica despues de la B, pero se genera como salida antes que ella. Cuando la imagen B se ha decodificado, no se puede generar como salida de forma inmediata, ya que la imagen C no se ha decodificado todavfa y tiene que ser generada como salida antes que la imagen B. Por tanto, la imagen B se tiene que almacenar en la DPB despues de que se haya decodificado, incluso aunque no se utilice como referencia por parte de ninguna otra imagen. Cuando se decodifica la imagen C, la imagen A debe estar presente tambien en la DPB, debido a que la imagen C utiliza como referencia la imagen A.
El orden de salida se regula por medio de la indicacion de un valor PictureOrderCount (POC). Hay elementos de sintaxis en la secuencia de bits para la transmision del POC de todas las imagenes, y estos valores se utilizan al objeto de definir el orden de salida de las imagenes.
Para hacer un seguimiento de la DPB, la norma H.264/AVC contiene tres procesos que tienen lugar despues de que se haya decodificado una imagen: el proceso de marcado de imagen, el proceso de salida de imagen y el proceso de liberacion.
El proceso de marcado de imagen marca las imagenes como “utilizada como referencia” o como “no utilizada como referencia”. Una imagen marcada como “utilizada como referencia” esta disponible como referencia, lo cual significa que una imagen siguiente en el orden de decodificacion puede utilizar como referencia la imagen en sus procesos de decodificacion. Una imagen marcada como “no utilizada como referencia” no se puede utilizar como referencia por parte de imagenes siguientes. Este proceso se controla por medio del codificador a traves de la secuencia de
5
10
15
20
25
30
35
40
45
50
55
bits. Hay una sintaxis opcional en la secuencia de bits de la norma H.264/AVC que, cuando esta presente, indica que imagenes se han de marcar como “no utilizadas como referencia”. A esta operacion se hace referencia a menudo como operacion de control de la gestion de memoria (MMCO, memory management control operation, por sus siglas en ingles). Si no hay una sintaxis MMCO opcional, se define un mecanismo de primero en entrar/primero en salir, denominado proceso de “ventana movil”. El proceso de ventana movil significa que, cuando la ultima imagen que se decodifica fuera a dar lugar a demasiadas imagenes en la DPB, la imagen mas antigua en el orden de decodificacion se marca automaticamente como “no utilizada como referencia”.
El proceso de salida de imagen, que se realiza despues del proceso de marcado de imagen, marca las imagenes como “necesaria para la salida” o como “no necesaria para la salida”. Una imagen marcada como “necesaria para la salida” no se ha generado como salida todavfa, mientras que una imagen marcada como “no necesaria para la salida” se ha generado como salida y ha dejado de esperar a ser generada como salida. El proceso de salida de imagen ademas genera como salida las imagenes. Esto significa que el proceso selecciona las imagenes que estan marcadas como “necesarias para la salida”, las genera como salida y a continuacion las marca como “no necesarias para la salida”. El proceso de salida de imagen determina el orden segun el cual se generan como salida las imagenes. Se ha de observar que el proceso de salida de imagen puede generar como salida y marcar cero, una o muchas imagenes, despues de que se haya decodificado una imagen particular.
Despues de que se han invocado estos dos procesos por medio del decodificador, se invoca el proceso de liberacion. Las imagenes que estan marcadas como “no utilizadas como referencia” y “no necesarias para la salida” se vadan y eliminan de la DPB. A veces se hace referencia a esto diciendo que se ha liberado uno de los espacios de memoria de imagen de la DPB.
El tamano de la DPB en la norma H.264/AVC esta limitado. Esto significa que esta limitado el numero de imagenes que se pueden almacenar debido a que estan esperando a ser generadas como salida o a que estan disponibles como referencia. La variable max_dec_frame_buffering indica el tamano de la DPB, al cual se hace referencia a veces como el numero de espacios de memoria de imagen que hay en la DPB. El codificador tiene que asegurar que nunca se excede el tamano de la DPB.
Los tres procesos se describen en la norma. Esto significa que el decodificador esta controlado por el codificador y que, por tanto, el decodificador no tiene ninguna libertad en lo que respecta al orden de salida. Esta todo determinado por el proceso de salida de imagen y los elementos relacionados de la secuencia de bits enviada por el codificador. En la figura 3 se muestra un diagrama de flujo simplificado de las etapas de decodificacion de la norma H.264/AVC.
El proceso de salida de imagen de la norma H.264 define el orden segun el cual las imagenes se generaran como salida. Un decodificador que genera como salida las imagenes en el orden correcto es uno que cumple que con el orden de salida. Un decodificador puede ajustarse al proceso de salida de imagen descrito en la norma H.264, pero a veces es posible utilizar la variable num_reorder_frames para generar como salida las imagenes con anterioridad a lo determinado por el proceso de salida de imagen. num_reorder_frames indica el maximo numero de imagenes que preceden a cualquier imagen en el orden de decodificacion y que van detras de ella en el orden de salida.
La figura 4 muestra un ejemplo en el que la imagen B se acaba de decodificar. Sin embargo, la imagen B no se puede generar como salida debido a que no se conoce si la imagen C se ha de generar como salida antes o despues de la imagen B. Si el codificador ha decidido que el orden de salida es el mismo que el orden de decodificacion, puede indicar un valor de 0 en num_reorder_frames al decodificador. El codificador ha asegurado de este modo que la imagen C del ejemplo se generara como salida despues de la imagen B, y un decodificador puede generar como salida la imagen B de forma inmediata en el momento en que se haya decodificado. En este caso, cuando num_reorder_frames es 0, no hay ningun retardo de reordenacion adicional en el decodificador. Si num_reorder_frames se fija a 1 en el ejemplo, es posible que la imagen C se genere como salida antes que la imagen B. Con num_reorder_frames igual a 1, hay un retardo de reordenacion adicional de 1 imagen, con num_reorder_frames igual a 2, el retardo de reordenacion es de 2 imagenes, y asf sucesivamente.
Compresion de video HEVC
La norma de codificacion de video de alta eficiencia (HEVC, High Efficiency Video Coding, por sus siglas en ingles), a la que tambien se hace referencia como norma H.265, es una norma de codificacion de video desarrollada en el Joint Collaborative Team - Video Coding (JCT-VC). JCT-VC es un proyecto de colaboracion entre la MPEG y la Seccion de Normalizacion de las Telecomunicaciones de la Union Internacional de Telecomunicaciones (ITU-T, International Telegraph Union Telecommunication, por sus siglas en ingles). La norma HEVC incluye una serie de nuevas herramientas y es considerablemente mas eficiente que la norma H.264/AVC. La norma HEVC define ademas un temporal_id para cada imagen, que se corresponde con la capa temporal a la que pertenece la imagen. Las capas temporales estan ordenadas y tienen la propiedad de que una capa temporal inferior nunca depende de una capa temporal mas alta. Por tanto, las capas temporales mas altas se pueden eliminar sin afectar a las capas temporales inferiores. La eliminacion de las capas temporales se puede denominar como un escalado temporal. Una secuencia de bits HEVC contiene un elemento de sintaxis, max_sub_layers_minus1, que especifica el maximo numero de capas temporales que pueden estar presentes en la secuencia de bits. Un decodificador puede
5
10
15
20
25
30
35
40
45
50
55
decodificar todas las capas temporales o unicamente decodificar un subconjunto de capas temporales. A la capa temporal mas alta que realmente decodifica el decodificador se hace referencia como la sub-capa temporal mas alta, y se puede fijar igual o menor que los maximos numeros de capas que se especifican por medio de max_sub_layers_minus1. Por lo tanto, el decodificador decodifica todas las capas que son iguales o menores que la sub-capa temporal mas alta. La sub-capa temporal mas alta se puede fijar a traves de medios externos.
Se ha de observar que la descripcion anterior no es espedfica de las capas temporales, sino que tambien es valida para otros tipos de capas, tales como capas espaciales y capas de calidad, etc. A la capa temporal que decodifica en consecuencia el decodificador se hace referencia como la capa decodificada mas alta.
El flujo de decodificacion de la norma HEVC es ligeramente diferente del de la norma H.264/AVC. La norma HEVC tiene una DPB, un proceso de marcado de imagen que marca las imagenes como “utilizada como referencia” o como “no utilizada como referencia”, un proceso de salida de imagen que marca las imagenes como “necesaria para la salida” o como “no necesaria para la salida” y un proceso de liberacion. Al igual que la norma H.264/AVC, la norma HEVC utiliza tambien valores POC para definir el orden de salida de las imagenes. Un valor POC se representa en la norma HEVC por medio de la variable PicOrderCntVal, en la que las imagenes se generan como salida segun un orden creciente de PicOrderCntVal.
Sin embargo, la norma HEVC no tiene MMCO ni proceso de ventana movil. En su lugar, la norma HEVC especifica que en cada cabecera de segmento se envfa de forma explfcita una lista de las imagenes que estan marcadas como “utilizada como referencia”. El marcado de imagen en la norma HEVC utiliza esta lista y asegura que todas las imagenes de la DPB que figuran en la lista se marcan como “utilizada como referencia” y que todas las imagenes de la DPB que no figuran en la lista se marcan como “no utilizada como referencia”. Esta lista se denomina el conjunto de imagenes de referencia (RPS, reference picture set, por sus siglas en ingles), y el envfo de uno en cada cabecera de segmento significa que el estado del marcado de referencia en la DPB es explfcito y se repite en cada segmento, lo cual no ocurre en la norma H.264/AVC.
Debido a que en la norma HEVC se utilizan RPSs, el proceso de marcado de imagen, el proceso de salida de imagen y el proceso de liberacion se realizan todos despues del analisis de la primera cabecera de segmento de una imagen, vease la figura 5.
La funcionalidad num_reorder_frames, tal y como se ha descrito para la norma H.264/AVC, tambien esta presente en la norma HEVC. Una secuencia de bits HEVC contiene un elemento de sintaxis para cada capa temporal, denotado como max_num_reorder_pics[i], en donde i es la capa temporal. La funcion de max_num_reorder_pics[i] es la misma que la de num_reorder_frames, pero aqrn cada clave indica el maximo numero de imagenes permitido en la misma capa temporal, o en una inferior, que preceden a una imagen en el orden de decodificacion y que van detras de esa imagen en el orden de salida.
Considerese el ejemplo de la figura 6, en el que el orden de decodificacion es A, B, C, D, E, y el orden de salida es A, D, C, E, B. Esta es una estructura de imagenes que utiliza capas temporales, en donde las imagenes A y B pertenecen a la capa temporal mas baja (capa 0), la imagen C pertenece a una capa temporal media (capa 1), y las imagenes D y E pertenecen a la capa temporal mas alta (capa 2). Las flechas en la figura muestran que imagenes se utilizan como referencia por parte de otras imagenes. Por ejemplo, la imagen A se utiliza como referencia por parte de la imagen B, ya que hay una flecha que va desde la imagen A hasta la imagen B. La mejor forma de utilizar max_num_reorder_pics en la norma HEVC es fijarlo tan bajo como sea posible al objeto de reducir el retardo de salida tanto como sea posible. En la figura 6 se muestran los valores mas bajos posibles de max_num_reorder_pics para cada capa temporal. La razon por la que es 0 para la capa mas baja es porque no hay ninguna imagen en la capa 0 que preceda a ninguna imagen en el orden de decodificacion, ni que vaya detras de ella en el orden de salida. Para la capa 1, tenemos la imagen B que precede a la imagen C en el orden de decodificacion, pero que va detras de ella en el orden de salida, y para la capa 2, tenemos que las imagenes B y C preceden, ambas, a la imagen D en el orden de decodificacion, pero que van detras de ella en el orden de salida.
Si un decodificador supiera que unicamente decodificara la capa temporal 0, podna potencialmente generar como salida la imagen B tan pronto como se haya decodificado, pero si el decodificador decodifica todas las capas no lo puede hacer. En ese caso, tendna que esperar hasta que hubiera dos imagenes decodificadas que vayan detras de B en el orden de salida.
El documento JCTVC-K0030_v3, “Proposed editorial improvement for high efficiency video coding (HEVC) text specification draft 8”, de B. Bross et al., 11a conferencia de JCT-VC de ITU-T SG16 WP3 e IsO/IEC JTC1/SC29/WG11, Shanghai, 10-19 de octubre de 2012, publicado el 12 de septiembre de 2012, analiza la utilizacion de max_num_reorder_pics en la seccion 7.4.2.1 en la pagina 62, y en la seccion 7.4.2.2 en la pagina 64.
no_output_of_prior_pics_flag
Tanto la secuencia de bits de la norma H.264 como la de la norma HEVC especifican un indicador denominado no_output_of_prior_pics_flag. Este indicador esta presente en la cabecera de segmento de las imagenes de acceso aleatorio (RAP, random access picture, por sus siglas en ingles). Las imagenes de acceso aleatorio son imagenes a partir de las cuales es posible ajustar una emision en continuo. Garantizan que la decodificacion de las imagenes
5
10
15
20
25
30
35
40
45
50
futuras se puede realizar de forma correcta si un decodificador comienza a decodificar desde el punto de acceso aleatorio. No se tiene que suministrar al decodificador ningun dato que contenga las imagenes que preceden a la imagen de acceso aleatorio en el orden de decodificacion para que el ajuste funcione.
El indicador no_output_of_prior_pics_flag especifica como se tratan en la memoria intermedia de imagenes decodificadas las imagenes previamente decodificadas, despues de la decodificacion de una imagen de acceso aleatorio. De forma resumida, si no_output_of_prior_pics_flag es igual a 1, no se ha de generar como salida ninguna imagen de la DPB que este marcada como “necesaria para la salida”, pero si no_output_of_prior_pics_flag es igual a 0, se deben generar como salida.
Considerese la figura 7, que muestra un ejemplo en el que max_num_reorder_pics es 0 y la imagen C es una imagen de acceso aleatorio con no_output_of_prior_pics_flag igual a 1. En la norma H.264, sena posible generar como salida la imagen B inmediatamente despues de que se hubiera decodificado. Esto no ocurre en la
especificacion actual de la norma HEVC, ya que el decodificador no sabe inmediatamente despues de que se ha
decodificado la imagen B, si la imagen C es una imagen RAP con no_output_of_prior_pics_flag igual a 1 o no. Si la imagen C no es una de esas imagenes, la imagen B se podna generar como salida inmediatamente despues de que se hubiera decodificado. Pero si la imagen C es realmente una imagen RAP con no_output_of_prior_pics_flag igual a 1, la imagen B no se debena generar como salida, debido a que la imagen B esta marcada como “necesaria para la salida” cuando se decodifica la cabecera de segmento de la imagen C.
Debido a que en la norma HEVC el proceso de salida de imagen se realiza cuando se analiza la cabecera de segmento y a que no_output_of_prior_pics_flag es una caractenstica importante, hay un retardo de salida mayor en la norma HEVC actual que en la norma H.264/AVC.
La informacion sobre la utilizacion de no_output_of_prior_pics_flag esta descrita en la seccion 7.4.7.1 en la pagina 75, y en la seccion C.5.2 en la pagina 26 del documento JCTVC-K0030_v3.
La ventaja de la utilizacion de RPSs en la norma HEVC es que se tiene mucha mas tolerancia al error en comparacion con el metodo de la norma H.264/AVC. Ademas, la escalabilidad temporal es mas sencilla. Un problema de la solucion de la norma HEVC es que introduce un retardo adicional en la generacion como salida de imagenes en comparacion con la norma H.264/AVC. En la norma H.264/AVC, las imagenes se pueden generar como salida despues de que se haya decodificado una imagen. En la norma HEVC, el decodificador tiene que esperar a que se analice la cabecera de segmento de la imagen siguiente antes de que las imagenes se generen como salida. Esto da lugar a un retardo. Por lo tanto, existe la necesidad de resolver las deficiencias de la tecnica anterior de codificacion de video, y en particular, los problemas de retardo que pueden surgir en la codificacion de video de la tecnica anterior.
En el documento JCTVC-F493 (seccion 3.3) se propone aplicar siempre el proceso de “transferencia rapida” antes de decodificar una imagen con el fin de reducir los retardos de salida.
Compendio
Es un objetivo general la provision de una decodificacion y una codificacion mejoradas de las imagenes de una secuencia de video.
Es un objetivo particular la provision de una decodificacion y una codificacion que hagan posible obtener un retardo de salida pequeno para las imagenes.
Estos y otros objetivos se consiguen por medio de las realizaciones descritas en la presente memoria. La invencion se define en las reivindicaciones adjuntas.
Breve descripcion de los dibujos
Las realizaciones, junto con objetos y ventajas adicionales de las mismas, se pueden comprender de la mejor manera haciendo referencia a la siguiente descripcion, considerada en combinacion con los dibujos que se acompanan, en los que:
La figura 1 es una vista general esquematica de un decodificador de acuerdo a la norma H.264/AVC.
La figura 2 ilustra el orden de salida y de decodificacion de un ejemplo de una secuencia de video multi-capa.
La figura 3 es un diagrama de flujo de decodificacion simplificado de la norma H.264/AVC.
La figura 4 ilustra el orden de salida y de decodificacion de un ejemplo de una secuencia de video multi-capa.
La figura 5 es un diagrama de flujo de decodificacion simplificado de la norma HEVC.
La figura 6 ilustra el orden de salida y de decodificacion y las capas temporales de un ejemplo de una secuencia de
video multi-capa.
5
10
15
20
25
30
35
40
La figura 7 ilustra el orden de salida y de decodificacion de un ejemplo de una secuencia de video.
La figura 8 es un diagrama de flujo de un metodo ejecutado por medio de un decodificador segun una realizacion.
La figura 9 es un diagrama de flujo de etapas adicionales opcionales del metodo de la figura 8.
La figura 10 es un diagrama de flujo de una etapa adicional opcional del metodo de la figura 8.
La figura 11 es un diagrama de flujo de un metodo ejecutado por medio de un decodificador segun otra realizacion.
La figura 12 es un diagrama de flujo de etapas adicionales opcionales del metodo de las figuras 9 u 11.
La figura 13 es un diagrama de flujo de una etapa adicional opcional del metodo las figuras 8 u 11.
La figura 14 es un diagrama de flujo de decodificacion simplificado de una realizacion.
La figura 15 es un diagrama de flujo de decodificacion simplificado de otra realizacion.
La figura 16 es un diagrama de bloques esquematico de un decodificador segun una realizacion.
La figura 17 es un diagrama de bloques esquematico de un decodificador segun otra realizacion.
La figura 18 es un diagrama de bloques esquematico de un decodificador segun una realizacion adicional.
La figura 19 es un diagrama de bloques esquematico de un decodificador segun otra realizacion mas.
La figura 20 es un diagrama de bloques esquematico de un decodificador segun una realizacion adicional.
La figura 21 es un diagrama de flujo de un metodo ejecutado por medio de un codificador segun una realizacion.
La figura 22 es un diagrama de flujo de un metodo ejecutado por medio de un codificador segun otra realizacion.
La figura 23 es un diagrama de bloques esquematico de un codificador segun una realizacion.
La figura 24 es un diagrama de bloques esquematico de un codificador segun otra realizacion.
La figura 25 es un diagrama de bloques esquematico de un codificador segun una realizacion adicional.
La figura 26 es un diagrama de bloques esquematico de un codificador segun otra realizacion mas.
La figura 27 es un diagrama de bloques esquematico de un codificador segun una realizacion adicional.
La figura 28 es un diagrama de bloques esquematico de un terminal movil segun una realizacion.
La figura 29 es un diagrama de bloques esquematico de un nodo de red segun una realizacion; y
La figura 30 ilustra el orden de salida y de decodificacion de un ejemplo de una secuencia de video multi-capa.
Descripcion detallada
En los dibujos, se utilizan los mismos numeros de referencia para elementos similares o correspondientes.
Las realizaciones presentes se refieren, en general, a la decodificacion y codificacion de imagenes de una secuencia de video y, en particular, a la generacion como salida o transferencia rapida de imagenes desde una memoria intermedia de imagenes decodificadas en relacion con la decodificacion y codificacion de imagenes. Estas realizaciones permiten de esta forma que se reduzca el retardo de salida y hacen posible una generacion de imagenes mas rapida que en las soluciones del estado de la tecnica.
En una realizacion general, cuando se codifica una imagen, el decodificador o el codificador (la decodificacion de imagenes tambien se lleva a cabo durante la codificacion al objeto de obtener imagenes de referencia reconstruidas a partir de imagenes previamente codificadas) determina el numero de imagenes de una memoria intermedia de imagenes decodificadas (DPB) que se marcan como necesarias para la salida, y compara ese numero con un valor que se obtiene de los elementos de sintaxis de la secuencia de bits. Si el numero de imagenes de la DPB que estan marcadas como necesarias para la salida es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se lleva a cabo un proceso de salida modificado, o se genera como salida la imagen de las imagenes de la DPB marcadas como necesarias para la salida que es la primera imagen en el orden de salida, se senala el proceso de salida de imagenes como #2, y se marca como no necesaria para la salida.
A continuacion, en la presente memoria se describiran en mayor detalle diferentes realizaciones y aspectos de implementaciones particulares, comenzando con la parte de decodificacion y continuando seguidamente con la parte de codificacion.
5
10
15
20
25
30
35
40
45
50
55
60
En la presente memoria, que una imagen se marque como necesaria para la salida implica que una imagen esta esperando a ser generada como salida, por ejemplo, para visualizacion o para almacenamiento. De forma correspondiente, en la presente memoria, que una imagen se marque como no necesaria para la salida implica que una imagen no esta esperando a ser generada como salida, y que, por ejemplo, se puede haber generado ya como salida. De forma correspondiente, que una imagen se marque como utilizada como referencia implica que una imagen se utiliza para hacer una prediccion cuando se decodifica otra imagen. Que una imagen se marque como no utilizada como referencia implica que la imagen no se puede utilizar como referencia o prediccion por parte de imagenes subsiguientes. El marcado, tal y como se ha mencionado con anterioridad, no se debe interpretar como un marcado literal de las imagenes con una etiqueta “necesaria para la salida”, “no necesaria para la salida”, “utilizada como referencia” o “no utilizada como referencia”. En su lugar, el marcado se debe interpretar en el sentido de que la imagen se identifica de alguna forma de manera que se debena / no se debena generar como salida, y de manera que se podna utilizar como imagen de referencia / no se podna utilizar como imagen de referencia. El marcado se puede implementar de diferentes formas. Por ejemplo, se podna almacenar la imagen en una parte espedfica de la DPB dedicada a las imagenes que se deben generar como salida o que no se deben generar como salida o a imagenes que se podnan utilizar como imagen de referencia o que no se podnan utilizar como imagen de referencia. De forma alternativa, la imagen se podna etiquetar o asociar de cualquier otra forma con un indicador o con otra clave que identifique la imagen como necesaria para la salida frente a no necesaria para la salida, y como utilizada como referencia frente a no utilizada como referencia. En el caso de que se implemente un indicador, el indicador podna tener un primer valor (0bin o 1 bin) para indicar una de las alternativas, y podna tener por tanto un segundo valor (1 bin o 0bin) para indicar la otra alternativa. Por ejemplo, se podna utilizar un primer indicador con respecto a la salida de imagenes, y se podna utilizar un segundo indicador con respecto a las referencias.
Por lo tanto, un aspecto general se refiere a un metodo llevado a cabo por medio de un decodificador. En el metodo, el decodificador determina el numero de imagenes de la DPB que estan marcadas como necesarias para la salida, y compara ese numero con un valor que se obtiene de los elementos de sintaxis de la secuencia de bits. Si el numero de imagenes de la DPB que estan marcadas como necesarias para la salida es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se lleva a cabo un proceso de salida modificado, o se genera como salida la imagen de entre las imagenes de la DPB marcadas como necesarias para la salida que es la primera imagen en el orden de salida, se senala el proceso de salida de imagenes como #2 en este caso, y se marca como no necesaria para la salida.
Este aspecto general se implementa preferiblemente en un decodificador que cumple con la norma HEVC, al que tambien se hace referencia en la presente memoria como decodificador que cumple con la norma H.265. En este caso, una realizacion de implementacion se refiere a un metodo llevado a cabo por medio de un decodificador que cumple con la norma HEVC y que comprende las siguientes etapas. El decodificador que cumple con la norma HEVC determina un numero de imagenes de una DPB que estan marcadas como necesarias para la salida. El decodificador que cumple con la norma HEVC compara ademas el numero con un valor que se obtiene de al menos un elemento de sintaxis presente en una secuencia de bits que representa las imagenes de una secuencia de video. El decodificador que cumple con la norma HEVC genera como salida a continuacion una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. Ademas, el decodificador que cumple con la norma HEVC marca la imagen generada como salida como no necesaria para la salida si el numero es mayor que el valor.
La figura 8 es un diagrama de flujo de un metodo llevado a cabo por medio de un decodificador segun una realizacion. El metodo comprende la determinacion, en la etapa S1 y despues de que se haya decodificado y almacenado en una DPB una imagen actual, de un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. Una etapa siguiente S2 comprende la comparacion de este numero con un valor sps_max_num_reorder_pics[HighestTid]. Si el numero es mayor que el valor, el metodo avanza a la etapa S3. Esta etapa S3 comprende la generacion como salida de una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida. La imagen que se ha generado como salida en la etapa S3 se marca a continuacion como no necesaria para la salida en la etapa S4. Por lo tanto, esta etapa S4 se ejecuta si el numero es mayor que el valor.
En esta realizacion, se utiliza sps_max_num_reorder_pics[HighestTid] como representacion preferida del valor que se obtiene de al menos un elemento de sintaxis presente en una secuencia de bits que representa las imagenes de una secuencia de video. Ademas, HighestTid especifica la capa mas alta que se decodifica por medio del decodificador de la secuencia de video. Por tanto, HighestTid indica la sub-capa temporal mas alta si la secuencia de video comprende una o mas capas temporales, e indica la capa mas alta decodificada si, por el contrario, la secuencia de video comprende otro tipo de capas, tales como una o mas capas espaciales, capas de calidad, etc.
En una realizacion, sps_max_num_reorder_pics[i] indica el maximo numero de imagenes permitido que puede preceder a una imagen en la secuencia de video codificada en el orden de decodificacion y que van detras de esa imagen en el orden de salida cuando HighestTid es igual a i. El prefijo sps de max_num_reorder_pics[i] indica que el elemento de sintaxis esta presente preferiblemente en un conjunto de parametros de secuencia (SPs, sequence parameter set, por sus siglas en ingles) de la secuencia de bits.
5
10
15
20
25
30
35
40
45
50
55
Por lo tanto, en esta realizacion se podna obtener un valor por capa en la secuencia de bits, y el valor que se habna de utilizar en la comparacion que se ejecuta en la etapa S2 sena el valor que se obtuviera para la capa mas alta que realmente se decodificara por medio del decodificador de la secuencia de video. Se ha de tener en cuenta que esta capa decodificada mas alta puede ser igual o inferior al numero maximo de capas de la secuencia de video que se especifica por medio de un elemento de sintaxis max_sub_layers_minus1, tal como vps_max_sub_layers_minus1 o sps_max_sub_layers_minus1, dependiendo de si el elemento de sintaxis se recupera de un conjunto de parametros de video (VPS, video parameter set, por sus siglas en ingles) o de un SPS.
Por tanto, en una realizacion particular la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes, es decir, al menos dos. Cada capa de las multiples capas tiene preferiblemente entonces un elemento de sintaxis asociado que define un valor respectivo. El valor utilizado en la comparacion de la etapa S2 es por tanto, en esta realizacion, el valor que se obtiene del elemento de sintaxis asociado con la capa mas alta que se decodifica por medio del decodificador de entre las multiples capas.
En una realizacion particular, sps_max_num_reorder_pics[i] indica el maximo numero de imagenes permitido en la misma capa, o en la inferior, como por ejemplo en la misma capa temporal o en la capa temporal inferior, en comparacion con la capa i, que precede a una imagen en el orden de decodificacion y que va detras de esa imagen en el orden de salida.
En una realizacion, si el numero no es mayor que el valor determinado en la comparacion de la etapa S2, el metodo preferiblemente termina, y no se genera como salida ni se marca ninguna imagen. Por tanto, en tal caso, las etapas S3 y S4 se omiten y no se ejecutan, vease la lmea de puntos a la derecha.
En una realizacion, las etapas S2-S4 solo se pueden ejecutar una vez, despues de que se haya decodificado y almacenado en la DPB una imagen actual. De forma alternativa, el bucle formado por las etapas S2-S4, vease la lmea de puntos a la izquierda, se puede ejecutar hasta que el numero de imagenes de la DPB que estan marcadas como necesarias para la salida deje de ser mayor que el valor sps_max_num_reorder_pics[HighestTid]. Cada vez que se ejecuta el bucle de las etapas S2-S4, el numero de imagenes de la DPB que estan marcadas como necesarias para la salida se reduce en una unidad por medio del marcado como no necesaria para la salida, en la etapa S4, de la imagen generada como salida en la etapa S3. Esto significa que las etapas S3 o S4 se pueden ejecutar, despues de que la imagen actual se haya decodificado y almacenado en la DPB, cero veces, si numero<sps_max_num_reorder_pics[HighestTid]; una vez, si numero=sps_max_num_reorder_pics[HighestTid]+1; o mas de una vez si numero>sps_max_num_reorder_pics[HighestTid]+1; es decir, n veces si
numero=sps_max_num_reorder_pics[HighestTid]+n. Una vez que la comparacion de la etapa S2 determina que el numero ya no es mayor que el valor sps_max_num_reorder_pics[HighestTid], el metodo termina.
La determinacion del numero de imagenes de la DPB marcadas como necesarias para la salida en la etapa S1 se lleva a cabo, preferiblemente, despues de que la imagen actual se haya decodificado y almacenado en la dPb.
El metodo, tal y como se ha descrito con anterioridad y se ha ilustrado en la figura 8, se ejecuta preferiblemente una vez para cada una de las imagenes de la secuencia de video que se decodifica y almacena en la DPB. Por tanto, el metodo se ejecuta preferiblemente de forma instantanea, una vez que la imagen actual se considera decodificada, es decir, despues de que se decodifica la ultima unidad de decodificacion de la imagen, y de que la imagen actual decodificada se almacena en una memoria intermedia de almacenamiento de imagenes vacfa, es decir, en espacio de memoria de imagen, de la DPB.
La figura 9 es un diagrama de flujo de etapas adicionales opcionales del metodo de la figura 8. El metodo comienza en la etapa S10, la cual comprende el analisis de una cabecera de segmento de la imagen actual de la secuencia de video que se ha de decodificar. Una etapa S11 siguiente determina un conjunto de imagenes de referencia (RPS) para la imagen actual a partir del analisis de la cabecera de segmento. Todas las imagenes de la DPB que no estan presentes en el RPS se marcan como no utilizadas como referencia en la etapa S12. Una etapa S13 siguiente comprende la generacion como salida de cero, una o muchas, es decir, mas de una, imagenes, las cuales estan marcadas como necesarias para la salida, de entre las imagenes de la DPB. Esta etapa S13 comprende tambien el marcado de las cero, una o muchas imagenes generadas como salida como no necesarias para la salida. La etapa S14 comprende el vaciado o eliminacion, de la DPB, de toda imagen marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB. La imagen actual se decodifica a continuacion en la etapa S15. El metodo avanza a continuacion a la etapa S1 de la figura 8. Por lo tanto, en esta realizacion, la determinacion del numero de imagenes en la etapa S1, la comparacion del numero en la etapa S2, la generacion como salida de la imagen en la etapa S3 y el marcado de la imagen en la etapa S4 se llevan a cabo despues de la decodificacion de la imagen actual en la etapa S15.
Ademas de la decodificacion de la imagen actual en la etapa S15, esta etapa comprende preferiblemente ademas el marcado de la imagen actual como utilizada como referencia, o en una realizacion opcional, el marcado de la imagen actual como utilizada como referencia a corto plazo. La imagen actual se marca preferiblemente ademas como necesaria para la salida o no necesaria para la salida, de acuerdo al valor de la variable PicOutputFlag, obtenido preferiblemente en la etapa S10.
5
10
15
20
25
30
35
40
45
50
55
Por lo general, una secuencia de video codificada, es dedr, una secuencia de bits, comprende unidades de capa de abstraccion de red (NAL, network abstraction layer, por sus siglas en ingles). Basicamente, una unidad NAL comprende un segmento con una correspondiente cabecera de segmento que incluye informacion de control para ese segmento y la carga util de datos de video, o bien la unidad NAL comprende un conjunto de parametros, tales como un VPS, un SPS y un conjunto de parametros de imagen (PPS, picture parameter set, por sus siglas en ingles). El conjunto de parametros comprende informacion de control. Una imagen de la secuencia de video puede constar de un unico segmento o de multiples segmentos. La etapa S10 de la figura 9 comprende de esta forma el analisis de la parte de cabecera de segmento de la unidad NAL que comprende un segmento de la imagen. Si la imagen comprende multiples segmentos y esta por lo tanto distribuida entre multiples unidades NAL que comprenden una respectiva cabecera de segmento, entonces la etapa S10 se ejecuta preferiblemente para cada segmento de la imagen. Sin embargo, las etapas S11 a S14 se ejecutan preferiblemente solo para uno de los segmentos de la imagen, normalmente para el primer segmento de la imagen.
La cabecera de segmento analizada en la etapa S10 comprende informacion que hace posible que el decodificador genere un RPS. El RPS es un conjunto de imagenes de referencia asociado con la imagen actual, y consta de todas las imagenes de referencia que son anteriores a la imagen actual en el orden de decodificacion y que se pueden utilizar como referencia, es decir, para una prediccion intermedia, de la imagen actual o de cualquier imagen de la secuencia de video que va detras de la imagen actual en el orden de decodificacion.
La informacion obtenida en la etapa S10 y utilizada para determinar el RPS en la etapa S11 puede comprender, por ejemplo, un identificador de una estructura de sintaxis de RPS incluida en un conjunto de parametros, tal como un SPS, aplicable al segmento actual. Un ejemplo de tal identificador aplicable a la norma HEVC es short_term_ref_pic_set_idx. El conjunto de parametros comprende por tanto elementos de sintaxis que definen uno o mas RPS, tales como num_short_term_ref_pic_sets, que definen el numero de elementos de sintaxis short_term_ref_pic_set() incluidos en el SPS, en donde el elemento de sintaxis short_term_ref_pic_set() define un RPS candidato para la imagen actual.
Alternativamente, la informacion obtenida en la etapa S10 se podna utilizar directamente para determinar el RPS en la etapa S11. Esta informacion puede comprender, por ejemplo, un elemento de sintaxis short_term_ref_pic_set(), en donde el elemento de sintaxis short_term_ref_pic_set() define el RPS de la imagen actual.
Se puede encontrar mas informacion sobre la determinacion del RPS en la solicitud internacional de patente WO2013/002700 y en las secciones 7.3.2.2, 7.3.5.1, 7.3.5.2, 7.4.2.2, 7.4.5.1, 7.4.5.2 y 8.3.2 del documento JCTVC- J1003_d7, “High efficiency video coding (HEVC) text specification draft 8”, de B. Bross et al., 10a conferencia de JCT-VC de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, Estocolmo, 11-20 de julio de 2012.
El RPS especifica, como se ha mencionado con anterioridad, las imagenes de la secuencia de video que se han de mantener en la DPB, es decir, que han de estar disponibles para su utilizacion como imagenes de referencia cuando se decodifica la imagen actual y/o cuando se decodifican las imagenes que van detras de la imagen actual en el orden de decodificacion. Esto significa que toda imagen de referencia almacenada en la DPB pero que no figure en el RPS no se utilizara como imagen de referencia ninguna vez mas. Por lo tanto, la etapa S12 comprende de esta forma el marcado de tales imagenes presentes en la DPB pero que no estan identificadas en el RPS como no utilizadas como referencia.
La salida de imagenes en la etapa S13 puede comprender la generacion como salida de una imagen marcada como necesaria para la salida, la generacion como salida de mas de una imagen marcada como necesaria para la salida o, efectivamente, no generar como salida ninguna imagen. Todas las imagenes generadas como salida en la etapa S13 se generan como salida de acuerdo a un orden de salida, preferiblemente se generan como salida segun el orden del menor valor del numero de orden de imagen (POC, picture order count, por sus siglas en ingles).
Toda imagen generada como salida en la etapa S13 se marca a continuacion como no necesaria para la salida debido a que la imagen ya se ha generado como salida. Si se generan como salida cero imagenes, evidentemente no se lleva a cabo ningun marcado en esta etapa S13.
Las imagenes que se marcan como no utilizadas como referencia y como no necesarias para la salida ya no se necesitan. Ni como imagenes de referencia ni para la salida. Por tanto, la etapa S14 vada o elimina todas las imagenes con tal marcado de la DPB, para de esta forma liberar una memoria intermedia de almacenamiento de imagenes, es decir, espacio de memoria de imagen, en la DPB.
La decodificacion de la imagen actual se lleva a cabo segun metodos bien conocidos de decodificacion de imagenes, tales como los especificados en la norma HEVC/H.265. Por tanto, la decodificacion de la etapa S35 supone la generacion de valores de pfxeles para los pfxeles o muestras de la imagen actual, utilizando normalmente los valores de los pfxeles de una o mas de las imagenes previamente decodificadas almacenadas en la DPB como imagenes de referencia.
En la realizacion que se muestra en la figura 9, el metodo que se muestra en la figura 8 y que comprende las etapas S1-S4 se podna considerar como un proceso de salida de imagen adicional o ampliado, el cual ya se ha mencionado con anterioridad como proceso de salida de imagenes #2. Esta realizacion hace posible de esta forma
5
10
15
20
25
30
35
40
45
50
la generacion como salida de imagenes en la etapa S3, incluso despues de que la imagen actual se haya decodificado en la etapa S15, pero antes de comenzar el procesamiento de una imagen siguiente de la secuencia de bits, es decir, antes de la ejecucion de la etapa S10 para una nueva imagen en el orden de decodificacion.
La figura 14 sintetiza esta realizacion. Por lo tanto, en una realizacion se anade una etapa de proceso de salida de imagen adicional despues de la decodificacion de la imagen, al objeto de hacer posible una salida de imagenes mas rapida, vease la figura 14. Un metodo de decodificador puede comprender y/o un decodificador puede estar configurado para la ejecucion de las siguientes etapas en orden, segun la realizacion:
1. Se analiza la cabecera de segmento, incluyendo el RPS, de la primera cabecera de segmento de una imagen P.
2. Se lleva a cabo un proceso de marcado de imagen, por ejemplo, las imagenes se pueden marcar como no utilizadas como referencia por medio del RPS de la cabecera de segmento.
3. Se lleva a cabo un proceso de salida de imagen en el que se pueden generar como salida las imagenes.
4. Se decodifica la imagen P.
5. Despues de decodificar la imagen P, el decodificador determina el numero de imagenes de la DPB que se marcan como necesarias para la salida y compara ese numero con un valor que se obtiene de los elementos de sintaxis de la secuencia de bits, representado por sps_max_num_reorder_pics[HighestTid].
6. Si el numero de imagenes de la DPB que se marcan como necesarias para la salida es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se genera como salida la imagen de las imagenes de la DPB marcadas como necesarias para la salida que es la primera imagen en el orden de salida, y se marca como no necesaria para la salida. Por tanto, segun la realizacion, se introduce el proceso de salida de imagenes #2.
7. La siguiente imagen Q se decodifica por medio de la repeticion de las etapas 1-6 anteriores para la imagen Q.
El metodo descrito en la figura 8 se podna implementar tambien como parte de un proceso de salida modificado, por ejemplo para la norma HEVC. Segun esta aproximacion, se modifica la etapa existente de proceso de salida de imagenes al objeto de hacer posible una salida de imagenes mas rapida.
La modificacion proporciona una solucion al problema de no_output_of_prior_pics_flag, tal y como se ha analizado en la seccion de antecedentes. La solucion es similar a las realizaciones analizadas con anterioridad, pero con el cambio de que, en lugar de la adicion de un proceso de salida adicional, el proceso de salida HEVC existente se modifica cuando no_output_of_prior_pics_flag es igual a 1.
La figura 10 es un diagrama de flujo de una etapa adicional opcional del metodo de la figura 8, cuando se implementa la realizacion que se acaba de mencionar con anterioridad. La etapa S20 comprende el analisis de una cabecera de segmento de una imagen de acceso aleatorio (RAP), a la que tambien se hace referencia en la tecnica como imagen de punto de acceso aleatorio interior (IRAP, intra random access point, por sus siglas en ingles), de la secuencia de video, al objeto de obtener un valor de un indicador no_output_of_prior_pics_flag. Si el valor del indicador no_output_of_prior_pics_flag es 1, el metodo avanza a la etapa S1 de la figura 8. Por tanto, en esta realizacion, la determinacion del numero en la etapa S1, la comparacion del numero en la etapa S2, la generacion como salida de la imagen en la etapa S3 y el marcado de la imagen en la etapa S4 se llevan a cabo si el valor de no_output_of_prior_pics_flag es uno.
Por lo tanto, si el valor de no_output_of_prior_pics_flag es cero (0), el metodo termina y no se ejecuta el proceso de salida modificado.
Cuando esta realizacion se aplica a la norma HEVC, el metodo comprende preferiblemente las etapas adicionales de determinacion de un RPS para la imagen de acceso aleatorio a partir de la cabecera de segmento analizada en la etapa S20 (comparese con la etapa S11 de la figura 9). El metodo comprende ademas el marcado de todas las imagenes de la DPB que no figuran en el RPS como no utilizadas como referencia (comparese con la etapa S12 de la figura 9). Se decodifica la imagen de acceso aleatorio (comparese con la etapa S15 de la figura 9). En esta realizacion, la determinacion del numero en la etapa S1, la comparacion del numero en la etapa S2, la generacion como salida de la imagen en la etapa S3 y el marcado de la imagen en la etapa S4 se llevan a cabo despues del marcado de las imagenes que no figuran en el RPS, pero antes de la decodificacion de la imagen de acceso aleatorio.
La figura 15 es un diagrama de flujo de decodificacion simplificado de esta realizacion. Un metodo de decodificador puede comprender y/o un decodificador puede estar configurado para la ejecucion de las siguientes etapas en orden, segun la realizacion:
1. Se analiza la cabecera de segmento de la primera cabecera de segmento de una imagen P.
2. Se lleva a cabo un proceso de marcado de imagen.
5
10
15
20
25
30
35
40
45
50
55
3. Se lleva a cabo un proceso de salida de imagen en el que se pueden generar como salida las imagenes. El proceso de salida de imagen se modifica de manera que si no_output_of_prior_pics_flag es igual a 1, se aplica lo siguiente:
a. El decodificador determina el numero de imagenes de la DPB que estan marcadas como necesarias para la salida y compara ese numero con un valor que se obtiene de los elementos de sintaxis de la secuencia de bits.
b. Si el numero de imagenes de la DPB que estan marcadas como necesarias para la salida es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se genera como salida la imagen de entre las imagenes de la DPB marcadas como necesarias para la salida que es la primera imagen en el orden de salida, y se marca como no necesaria para la salida.
c. Todas las imagenes restantes de la DPB que estan marcadas como necesarias para la salida se marcan como no necesarias para la salida. No se generan como salida.
4. Se decodifica la imagen P.
La figura 11 es un diagrama de flujo de un metodo ejecutado por medio de un decodificador segun otra realizacion. El metodo comprende el analisis de una cabecera de segmento de una imagen actual que se ha de decodificar de una secuencia de video en la etapa S30. Se determina un RPS para la imagen actual a partir de la cabecera de segmento analizada en la etapa S31. La siguiente etapa S32 comprende el marcado de todas las imagenes de la DPB que no estan presentes en el RPS como no utilizadas como referencia. En la etapa S33, se generan como salida cero, una o muchas imagenes marcadas como necesarias para la salida de entre las imagenes de la DPB, y se marcan como no necesarias para la salida. La etapa S34 siguiente comprende el vaciado o eliminacion, de la DPB, de toda imagen que este marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB. La imagen actual se decodifica a continuacion en la etapa S35.
Estas etapas S30-S35 se corresponden basicamente con las etapas S10-S15 analizadas con anterioridad e ilustradas en la figura 9.
El metodo avanza a continuacion a la etapa S36, la cual comprende la determinacion de un numero de imagenes de la DPB que se marcan como necesarias para la salida. Este numero se compara en la etapa S37 con un valor que se obtiene de al menos un elemento de sintaxis presente en una secuencia de bits que representa las imagenes de la secuencia de video. Si el numero es mayor que el valor, el metodo avanza a las etapas S38 y S39. La etapa S38 comprende la generacion como salida de una imagen, que es la primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida. La etapa S39 comprende el marcado de la imagen, generada como salida en la etapa S38, como no necesaria para la salida.
En esta realizacion, la determinacion del numero de imagenes en la etapa S37, la comparacion del numero en la etapa S38, la generacion como salida de la imagen en la etapa S38 y el marcado de la imagen en la etapa S39 se llevan a cabo despues de la decodificacion de la imagen actual en la etapa S35.
Estas etapas S36 a S39 se corresponden con las etapas S1 a S4 analizadas con anterioridad y mostradas en la figura 8. Pero con la diferencia de que el valor con el que se compara en la etapa S37 el numero determinado no tiene que ser necesariamente sps_max_num_reorder_pics[HighestTid], sino que, en su lugar, podna ser un valor que se obtuviera de otro(s) elemento(s) de sintaxis presente(s) en la secuencia bits, lo cual se analiza en mayor detalle mas adelante.
En una realizacion, si el numero no es mayor que el valor, tal y como se determine en la comparacion de la etapa S37, el metodo preferiblemente termina y no se genera como salida ni se marca ninguna imagen. Por tanto, en tal caso, las etapas S38 y S39 se omiten y no se ejecutan, vease la lmea de puntos a la derecha.
En una realizacion, las etapas S37-S39 solo se pueden ejecutar despues de que se haya decodificado y preferiblemente almacenado en la DPB una imagen actual. De forma alternativa, el bucle formado por las etapas S37-S39, vease la lmea de puntos a la izquierda, se puede ejecutar hasta que el numero de imagenes de la DPB que se marcan como necesarias para la salida deje de ser mayor que el valor. Cada vez que se ejecuta el bucle de las etapas S37-S39, el numero de imagenes de la DPB que estan marcadas como necesarias para la salida se reduce en una unidad por medio del marcado como no necesaria para la salida, en la etapa s39, de la imagen generada como salida en la etapa S38.
La figura 12 es un diagrama de flujo de etapas adicionales opcionales del metodo de la figura 11, pero que tambien es aplicable a las realizaciones mostradas en las figuras 8 y 9. El metodo continua desde la etapa S35 de la figura 11 o desde la etapa S15 de la figura 9, en las que se decodifica la imagen actual. Una etapa S40 siguiente comprende el almacenamiento de la imagen actual decodificada en la DPB en una memoria intermedia de almacenamiento de imagenes vacfa, es decir, en un espacio de memoria de imagen. La imagen actual decodificada se marca en la etapa S41 como necesaria para la salida o como no necesaria para la salida. La imagen se marca tambien, opcionalmente, como utilizada como referencia a corto plazo, es decir, como utilizada como imagen de referencia. Esta etapa S41 se ejecuta preferiblemente en funcion de un PicOutputFlag que se asigna a la imagen
5
10
15
20
25
30
35
40
45
50
55
actual. Por lo tanto, si el indicador tiene un valor de 1, entonces la imagen actual decodificada se marca como necesaria para la salida y, en caso contrario, es decir, si el indicador tiene un valor de 0, la imagen actual decodificada se marca como no necesaria para la salida. El PicOutputFlag se puede obtener a partir de un elemento de sintaxis de la secuencia de bits aplicable a la imagen actual presente, tal como a partir del elemento de sintaxis pic_output_flag, que puede estar presente en la cabecera de segmento de la imagen actual.
El metodo avanza a continuacion a la etapa S36 de la figura 11 o a la etapa S1 de la figura 8, en donde se determina el numero de imagenes de la DPB marcadas como necesarias para la salida.
En la presente memoria, se describiran diferentes realizaciones de la seleccion del valor utilizado en la comparacion de la etapa S37 de la figura 11 y en la de la etapa S2 de la figura 8.
En una realizacion, la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes. Cada capa de las multiples capas tiene entonces un elemento de sintaxis asociado que define un respectivo valor utilizado en el proceso de salida. El metodo comprende ademas una etapa adicional opcional, tal y como se muestra en el diagrama de flujo de la figura 13. El metodo continua desde la etapa S35 de la figura 11 o desde la etapa S1 de la figura 8. Una etapa S50 siguiente comprende la seleccion de un valor que se obtiene de un elemento de sintaxis asociado con la capa mas alta que se decodifica por medio del decodificador de entre las multiples capas. El metodo avanza a continuacion a la etapa S37 de la figura 11 o a la etapa S2 de la figura 8, en donde se utiliza este valor seleccionado.
La etapa S37 y la etapa S2 comprenden preferiblemente, en esta realizacion, la comparacion del numero determinado en la etapa S36 o S1 con un valor de sps_max_num_reorder_pics[HighestTid]. Si el numero es mayor que el valor sps_max_num_reorder_pics[HighestTid], el metodo avanza a la etapa S38 o S3, las cuales comprenden, en esta realizacion, la generacion como salida de una imagen de la DPB que tiene el menor valor de PicOrderCntVal de entre todas las imagenes de la DPB que estan marcadas como necesarias para la salida. PicOrderCntVal representa un valor del numero de orden de imagen de la imagen, el cual, a su vez, define el orden de salida de las imagenes almacenadas en la DPB.
En un aspecto particular de la implementacion de esta realizacion, la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes. En este caso, cada capa tiene un valor respectivo, es decir, sps_max_num_reorder_pics[i] para la capa numero i. El valor que se ha de utilizar es, por lo tanto, el valor asociado a la capa decodificada mas alta, es decir, la capa mas alta que se decodifica por medio del decodificador, como por ejemplo la sub-capa mas alta si las capas son capas temporales diferentes.
En otra realizacion, la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes. Cada capa de las multiples capas tiene entonces un elemento de sintaxis asociado que define un respectivo valor. El metodo comprende ademas una etapa adicional opcional, tal y como se muestra en el diagrama de flujo de la figura 13. El metodo continua desde la etapa S36 de la figura 11. Una etapa S50 siguiente comprende la seleccion de un valor que se obtiene de un elemento de sintaxis asociado con la capa mas alta de las multiples capas. El metodo avanza a continuacion a la etapa S37, en donde se utiliza este valor seleccionado.
La etapa S37 comprende preferiblemente, en esta realizacion, la comparacion del numero determinado en la etapa S36 con un valor de sps_max_num_reorder_pics[sps_max_sub_layers_minus1]. Si el numero es mayor que el valor sps_max_num_reorder_pics[sps_max_sub_layers_minus1], el metodo avanza a la etapa S38, la cual comprende, en esta realizacion, la generacion como salida de una imagen de la DPB que tiene el menor valor de PicOrderCntVal de entre todas las imagenes de la DPB que estan marcadas como necesarias para la salida. El elemento de sintaxis sps_max_sub_layers_minus1 especifica un numero maximo de capas de la secuencia de video.
En aspecto particular de la implementacion de esta realizacion, la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes. En este caso, cada capa tiene un valor respectivo, es decir, sps_max_num_reorder_pics[i] para la capa numero i. El valor que se ha de utilizar es, por lo tanto, el valor asociado a la capa mas alta de la secuencia de bits.
En una realizacion adicional, la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes. Cada capa de las multiples capas tiene entonces un elemento de sintaxis asociado que define un respectivo valor. El metodo comprende ademas una etapa adicional opcional, tal y como se muestra en el diagrama de flujo de la figura 13. El metodo continua desde la etapa S36 de la figura 11. Una etapa S50 siguiente comprende la seleccion de un valor que se obtiene de un elemento de sintaxis asociado con una capa de las multiples capas a la cual pertenece la imagen actual decodificada. El metodo avanza a continuacion a la etapa S37, en donde se utiliza este valor seleccionado.
En otra realizacion mas, la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes. Cada capa de las multiples capas tiene entonces un elemento de sintaxis asociado que define un respectivo valor. El metodo comprende ademas una etapa adicional opcional, tal y como se muestra en el diagrama de flujo de la figura 13. El metodo continua desde la etapa S36 de la figura 11. Una etapa S50 siguiente comprende la seleccion de un valor maximo de entre los respectivos valores.
5
10
15
20
25
30
35
40
45
50
El metodo mostrado en la figura 11 se puede aplicar a una imagen actual que es una imagen de acceso aleatorio de la secuencia de video. En este caso, la etapa S30 comprende preferiblemente el analisis de la cabecera de segmento de la imagen de acceso aleatorio al objeto de obtener un valor de un indicador no_output_prior_flag. En tal caso, la determinacion del numero en la etapa S36, la comparacion del numero en la etapa S37, la generacion como salida de la imagen en la etapa S38 y el marcado de la imagen en la etapa S39 podnan depender del valor de este indicador. Por lo tanto, en una realizacion opcional, estas etapas S36-S39 se ejecutan si el valor del indicador no_output_prior_flag es 1.
En una realizacion, el marcado de la imagen, tal y como se lleva a cabo en la etapa S12 de la figura 9 y en la S32 de la figura 11, comprende preferiblemente el marcado de todas las imagenes de la DPB que no estan presentes en el RPS como no utilizadas como referencia. Estas etapas comprenden tambien, opcionalmente, el marcado de todas las imagenes de la DPB que estan presentes en el RPS como utilizadas como referencia. Sin embargo, en general se marca una imagen como utilizada como referencia una vez que se ha decodificado y almacenado en la DPB. Por lo tanto, las etapas S12 y S32 implican normalmente el remarcado de las imagenes que ya no se necesitan como referencia.
En una realizacion, la generacion como salida de la imagen, tal y como se lleva a cabo en la etapa S3 de la figura 8 y en la etapa S38 de la figura 11, comprende preferiblemente la generacion como salida de una imagen que tiene el valor del numero de orden de imagen mas pequeno de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor determinado en la etapa S2 o S37. El valor del numero de orden de imagen se representa preferiblemente por medio del parametro PicOrderCntVal.
En una realizacion, la generacion como salida de la imagen, tal y como se lleva a cabo en la etapa S3 de la figura 8 y en la etapa S38 de la figura 11, se lleva a cabo preferiblemente antes de analizar una cabecera de segmento de una imagen siguiente de la secuencia de video codificada que se ha de decodificar.
En una realizacion, el metodo, tal y como se lleva a cabo en la figura 8 o en la figura 11, comprende la etapa adicional de recuperacion de al menos un elemento de sintaxis de un conjunto de parametros asociado con la secuencia de bits, y seleccionado de un grupo que consta de un PPS, un SPS y un VPS. Se identifica un PPS a partir de un identificador PPS presente en la cabecera de segmento de la imagen actual. Un SPS que se aplica a la imagen actual se identifica por medio de un identificador SPS presente en el PPS identificado por medio del identificador PPS presente en la cabecera de segmento de la imagen actual. De forma correspondiente, un VPS que se aplica a la imagen actual se identifica por medio de un identificador VPS presente en el SPS que se aplica a la imagen actual. En una realizacion particular, el al menos un elemento de sintaxis se recupera de un SPS.
Una realizacion particular, que es aplicable a una implementacion que utiliza no_output_prior_pics_flag, comprende una etapa adicional preferiblemente de marcado de todas las imagenes restantes en la DPB marcadas como necesarias para la salida a como no necesarias para la salida si el indicador no_output_prior_pics_flag es uno.
En una realizacion relacionada, el metodo comprende la etapa adicional de vaciado de todas las imagenes de la DPB, sin generacion como salida de ninguna imagen, si el indicador no_output_prior_pics_flag es uno. La completitud de la DPB se fija igual a cero a continuacion, para indicar que la DPB esta vacfa.
A continuacion, en la presente memoria se analizaran en mayor detalle diferentes realizaciones a modo de ejemplo.
Realizacion a modo de ejemplo 1
En una realizacion, se anade una etapa adicional al proceso de salida de imagen, despues de la decodificacion de la imagen, al objeto de hacer posible que la generacion como salida de imagenes sea mas rapida, vease la figura 14.
Un metodo de decodificador puede comprender y/o un decodificador puede estar configurado para la ejecucion de las siguientes etapas en orden, segun la realizacion:
1. Se analiza la cabecera de segmento de la primera cabecera de segmento de la imagen P.
2. Se lleva a cabo un proceso de marcado de imagen.
3. Se lleva a cabo un proceso de salida de imagen en el que se pueden generar como salida las imagenes.
4. Se decodifica la imagen P.
5. Despues de decodificar la imagen P, el decodificador determina el numero de imagenes de la DPB que estan marcadas como “necesarias para la salida” y compara ese numero con un valor que se obtiene de los elementos de sintaxis (que se muestran a modo de ejemplo en la realizacion 9) de la secuencia de bits.
6. Si el numero de imagenes de la DPB que estan marcadas como “necesarias para la salida” es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se genera como salida la imagen de las imagenes de la DPB marcadas como “necesarias para la salida” que es la primera imagen en el orden de salida, y
5
10
15
20
25
30
35
40
se marca como “no necesaria para la salida”. Por tanto, segun la realizacion, se introduce el proceso de salida de imagenes #2.
7. Se decodifica una imagen Q siguiente.
Realizacion a modo de ejemplo 2
La misma que la realizacion a modo de ejemplo 1, en la que el valor se representa por medio de una unica clave del elemento de sintaxis de la secuencia de bits.
Realizacion a modo de ejemplo 3
La misma que la realizacion a modo de ejemplo 2, en la que el valor se representa por medio de una clave en un conjunto de parametros de secuencia, por ejemplo, un conjunto de parametros de imagen (PPS), un conjunto de parametros de secuencia (SPS) o un conjunto de parametros de video (VPS).
Realizacion a modo de ejemplo 4
La misma que la realizacion 1-3, en la que hay un valor dependiente de capa que se obtiene para cada capa en la secuencia de bits, y el valor que se ha de utilizar en la comparacion es el valor que se obtiene para la misma capa que la imagen P.
Realizacion a modo de ejemplo 5
La misma que la realizacion 1-3, en la que hay un valor que se obtiene para cada capa en la secuencia de bits, y el valor que se ha de utilizar en la comparacion es el valor que se obtiene para la capa mas alta de la secuencia de bits.
Realizacion a modo de ejemplo 6
La misma que la realizacion 1-3, en la que hay un valor que se obtiene para cada capa en la secuencia de bits, y el valor que se ha de utilizar en la comparacion es el valor maximo de todas las capas.
Realizacion a modo de ejemplo 7
La misma que la realizacion 5, en la que la capa mas alta se define como la sub-capa mas alta.
Realizacion a modo de ejemplo 8
La misma que la realizacion 1-7, en la que la primera imagen en el orden de salida se define como la imagen de la DPB que tiene el menor valor de PicOrderCntVal. PicOrderCntVal define el POC y se ha descrito con anterioridad.
Realizacion a modo de ejemplo 9
La misma que la realizacion 4-8, en la que las capas son capas temporales.
Realizacion a modo de ejemplo 10
La combinacion de las realizaciones 1, 2, 3, 5, 8 y 9 es una realizacion preferida. La expresion de esta realizacion en la especificacion actual de la norma HEVC (JCTVC-K0030_v3) podna dar lugar a los siguientes cambios en la especificacion de la norma HEVC en la seccion C.5.3, en donde el texto en negrita significa texto anadido:
C.5.3 Decodificacion, marcado y almacenamiento de imagenes y posible generacion como salida de una imagen
Lo que sigue ocurre de forma instantanea cuando la ultima unidad de decodificacion de la unidad de acceso n que contiene la imagen actual se elimina de la CPB.
La imagen actual se considera decodificada despues de que se decodifica la ultima unidad de decodificacion de la imagen. La imagen decodificada actual se almacena en una memoria intermedia de almacenamiento de imagenes vada de la DPB, y se aplica lo siguiente.
1. - Si la imagen decodificada actual tiene PicOutputFlag igual a 1, se marca como “necesaria para la salida”.
2. - En caso contrario (la imagen decodificada actual tiene PicOutputFlag igual a 0), se marca como “no necesaria para la salida”.
Si la imagen decodificada actual es una imagen de referencia, se marca como “utilizada como referenda”, en caso contrario (la imagen decodificada actual no es una imagen de referencia), se marca como “no utilizada como referencia”.
5
10
15
20
25
30
35
40
45
Cuando el numero de imagenes de la DPB que estan marcadas como “necesaria para la salida” es mayor que sps_max_num_reorder_pics[sps_max_sub_layers_minus1] despues de que la imagen decodificada actual se ha almacenado en la DPB, la imagen de la DPB que tiene el menor valor de PicOrderCntVal de entre todas las imagenes de la DPB se recorta, se genera como salida y se marca como “no necesaria para la salida”.
Realizacion a modo de ejemplo 11
La combinacion de las realizaciones 1, 2, 3, 7, 8 y 9 es otra realizacion preferida. La expresion de esta realizacion en la especificacion actual de la norma HEVC (JCTVC-K0030_v3) podna dar lugar a los siguientes cambios en la especificacion de la norma HEVC en la seccion C.5.3, en donde el texto en negrita significa texto anadido:
C.5.3 Decodificacion, marcado y almacenamiento de imagenes y posible generacion como salida de una imagen
Lo que sigue ocurre de forma instantanea cuando la ultima unidad de decodificacion de la unidad de acceso n que contiene la imagen actual se elimina de la CPB.
La imagen actual se considera decodificada despues de que se decodifica la ultima unidad de decodificacion de la imagen. La imagen decodificada actual se almacena en una memoria intermedia de almacenamiento de imagenes vada de la DPB, y se aplica lo siguiente.
1. - Si la imagen decodificada actual tiene PicOutputFlag igual a 1, se marca como “necesaria para la salida”.
2. - En caso contrario (la imagen decodificada actual tiene PicOutputFlag igual a 0), se marca como “no necesaria para la salida”.
Si la imagen decodificada actual es una imagen de referencia, se marca como “utilizada como referenda”, en caso contrario (la imagen decodificada actual no es una imagen de referencia), se marca como “no utilizada como referencia”.
Cuando el numero de imagenes de la DPB que estan marcadas como “necesaria para la salida” es mayor que sps_max_num_reorder_pics[HighestTid] despues de que la imagen decodificada actual se ha almacenado en la DPB, la imagen de la DPB que tiene el menor valor de PicOrderCntVal de entre todas las imagenes de la DPB se recorta, se genera como salida y se marca como “no necesaria para la salida”.
Realizacion a modo de ejemplo 12
En una realizacion, se modifica la etapa existente de proceso de salida de imagen, al objeto de hacer posible que la generacion como salida de imagenes sea mas rapida, vease la figura 15.
La modificacion proporciona una solucion al problema de no_output_of_prior_pics_flag, tal y como se ha descrito con anterioridad. La solucion es similar a las realizaciones a modo de ejemplo 1-11, pero con el cambio de que, en lugar de la adicion de un proceso de salida adicional, el proceso de salida HEVC existente se modifica cuando no_output_of_prior_pics_flag es igual a 1, tal y como se muestra a continuacion.
Un metodo de decodificador puede comprender y/o un decodificador puede estar configurado para la ejecucion de las siguientes etapas en orden, segun la realizacion:
1. Se analiza la cabecera de segmento de la primera cabecera de segmento de una imagen P.
2. Se lleva a cabo un proceso de marcado de imagen.
3. Se lleva a cabo un proceso de salida de imagen en el que se pueden generar como salida las imagenes. El proceso de salida de imagen se modifica de manera que si no_output_of_prior_pics_flag es igual a 1, se aplica lo siguiente:
a. El decodificador determina el numero de imagenes de la DPB que estan marcadas como “necesarias para la salida” y compara ese numero con un valor que se obtiene de los elementos de sintaxis de la secuencia de bits.
b. Si el numero de imagenes de la DPB que estan marcadas como “necesarias para la salida” es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se genera como salida la imagen de las imagenes de la DPB marcadas como “necesarias para la salida” que es la primera imagen en el orden de salida, y se marca como “no necesaria para la salida”.
c. Todas las imagenes restantes de la DPB que estan marcadas como “necesarias para la salida” se marcan como “no necesarias para la salida”. No se generan como salida.
4. Se decodifica la imagen P.
5
10
15
20
25
30
35
40
45
50
Las realizaciones a modo de ejemplo 2-12 se aplican tambien a esta realizacion a modo de ejemplo 12.
Realizacion a modo de ejemplo 13
La combinacion de la realizacion a modo de ejemplo 12 y de las realizaciones a modo de ejemplo 2, 3, 7, 8 y 9 es una realizacion preferida. La expresion de esta realizacion en la especificacion actual de la norma HEVC (JCTVC- K0030_v3) podna dar lugar a los siguientes cambios en la especificacion de la norma HEVC en la seccion C.3.1, en donde el texto en negrita significa texto anadido:
C.3.1 Eliminacion de imagenes de la DPB
La eliminacion de imagenes de la DPB antes de la decodificacion de la imagen actual (pero despues del analisis de la cabecera de segmento del primer segmento de la imagen actual) ocurre de forma instantanea en el instante de eliminacion de la CPB de la primera unidad de decodificacion de la unidad de acceso n (que contiene la imagen actual), y se desarrolla como sigue.
Se invoca el proceso de decodificacion para el conjunto de imagenes de referencia, tal y como se especifica en el punto 8.3.2.
Si la imagen actual es una imagen IDR o una imagen BLA, se aplica lo siguiente:
1. Cuando la imagen IDR o BLA no es la primera imagen decodificada y el valor de pic_width_in_luma_samples o
pic_height_in_luma_samples o sps_max_dec_pic_buffering[i] para cualquier posible valor de i que se obtiene del conjunto de parametros de secuencia activo es diferente del valor de pic_width_in_luma_samples o pic_height_in_luma_samples o sps_max_dec_pic_buffering[i] que se obtiene del conjunto de parametros de secuencia que estaba activo para la imagen precedente, respectivamente, se infiere que
no_output_of_prior_pics_flag es igual a 1 por parte del HRD, con independencia del valor real de no_output_of_prior_pics_flag.
Nota - Las implementaciones del decodificador deben intentar gestionar la imagen o los cambios de tamano de la DPB de forma mas adecuada que lo que hace el HRD con respecto a los cambios en pic_width_in_luma_samples o pic_height_in_luma_samples o sps_max_dec_pic_buffering[i].
2. Cuando no_output_of_prior_pics_flag es igual a 1, o se infiere que es igual a 1, se aplican las siguientes etapas en orden:
1. Cuando el numero de imagenes de la DPB que estan marcadas como “necesaria para la salida” es mayor que sps_max_num_reorder_pics[HighestTid], la imagen de la DPB que tiene el menor valor de PicOrderCntVal de entre todas las imagenes de la DPB se recorta, se genera como salida y se marca como “no necesaria para la salida”.
2. Todas las memorias intermedias de almacenamiento de imagenes de la DPB se vadan, sin generar como salida las imagenes que contienen, y la completitud de la DPB se fija a cero.
Todas las imagenes k de la DPB, para las cuales son verdaderas todas las condiciones siguientes, se eliminan de la DPB:
- la imagen k esta marcada como “no utilizada como referencia”.
- la imagen k tiene PicOrderCntVal igual a 0, o su instante de salida de la DPB es menor o igual al instante de eliminacion de la CPB de la primera unidad de decodificacion (a la que se hace referencia como unidad de decodificacion m) de la imagen actual n; es decir, to,dpb (k) <= tr (m).
Cuando se elimina una imagen de la DPB, la completitud de la DPB se reduce en una unidad.
A continuacion, haciendo referencia a la figura 30, se describira una ventaja de las realizaciones descritas en la presente memoria, con respecto a la tecnica anterior, tal y como se representa por medio de la seccion C.5.1, en las paginas 216-217 del documento JCTVC-K0030_v3. La solucion de la tecnica anterior en el documento JCTVC- K0030_v3 utiliza el parametro sps_max_num_reorder_pics[TemporalID] para determinar si se ha de generar como salida alguna imagen. En particular, el documento JCTVC-K0030_v3 estipula que cuando el numero de imagenes de la DPB que estan marcadas como necesarias para la salida es mayor que sps_max_num_reorder_pics[TemporalID], entonces el proceso de transferencia rapida especificado en el punto C.5.2.1 se invoca repetidamente hasta que hay una memoria intermedia de almacenamiento de imagenes vacfa para el almacenamiento de la imagen decodificada actual.
Los numeros que se presentan en la figura 30 indican el orden de decodificacion de las imagenes de la secuencia de video. Las imagenes se deben generar como salida de izquierda a derecha, es decir, I0, b5, B3, b6, B2, b7, B4, B8 y P1. La figura indica ademas el numero de capa, es decir, TemporallD, de las diferentes capas y el parametro sps_max_num_reorder_pics para cada capa. Si se transfirieran o se generaran como salida las imagenes, junto con
5
10
15
20
25
el analisis de las cabeceras de segmento por medio de la utilizacion de sps_max_num_reorder_pics[TemporalID], tal
- y como se sugiere
- en el documento JCTVC-K0030_v3 , entonces el proceso de salida sena de acuerdo a
- siguiente:
- Imagen
- No generada como salida aun sps_max_ num_reorder_pics Accion
- I0
- - 0 Sin accion
- B1
- I0 0 Salida I0
- B2
- B1 1 Sin accion
- B3
- B1 B2 2 Sin accion
- B4
- B1 B2 B3 2 Salida B3
- Sin embargo, generar como salida la imagen B3 cuando se procesa
- la imagen B4 es incorrecto, debido a que
- imagen b5 se debena generar como salida antes que la imagen B3.
- Si se utilizara una
- realizacion como la descrita en la presente memoria para la transferencia, es decir, para
- generacion como salida, despues de la decodificacion de la imagen actual y utilizando HighesTId=3, entonces :
- obtendna el siguiente resultado.
- Imagen
- No generada como salida aun sps_max_num_reorder_pics Accion
- I0
- I0
- 4 Sin accion
- B1
- I0 B2 4 Sin accion
- B2
- I0 B1 B2 4 Sin accion
- B3
- I0 B1 B2 B3 4 Sin accion
- B4
- I0 B1 B2 B3 B4 4 Salida I0
- B5
- B1 B2 B3 B4 b5 4 Salida b5
- Si se utiliza una escala temporal y solo se decodifican l
- as capas 0 -2, entonces HighesTid es 2 y se obtiene
- siguiente resultado segun una realizacion:
- Imagen
- No generada como salida aun sps_max _num_reorder_pics Accion
- I0
- I0
- 2 Sin accion
- B1
- I0 B1 2 Sin accion
- B2
- I0 B1 B2 2 Salida I0
- B3
- B1 B2 B3 2 Salida B3
- B4
- B1 B2 B4 2 Salida B2
Por lo tanto, las realizaciones descritas en la presente memoria son capaces de generar como salida las imagenes en el orden correcto en el ejemplo ilustrado en la figura 30, mientras que la solucion de la tecnica anterior en el documento JCTVC-K0030_v3 no proporciona el orden de salida correcto cuando se invoca el proceso de transferencia despues del analisis de las cabeceras de segmento.
Las etapas, funciones, procedimientos, modulos y/o bloques descritos con anterioridad en relacion a las figuras 8-15 se pueden implementar en hardware por medio de la utilizacion de tecnologfa convencional, tal como tecnologfa de circuitos discretos o tecnologfa de circuitos integrados, incluyendo ambos, sistemas de circuitos de proposito general y sistemas de circuitos espedficos de aplicacion.
Los ejemplos particulares incluyen uno o mas procesadores de senales digitales configurados de forma adecuada y otros circuitos electronicos conocidos, por ejemplo, puertas logicas discretas interconectadas al objeto de llevar a cabo una funcion, o circuitos integrados para aplicaciones espedficas (ASICs, application specific integrated circuits, por sus siglas en ingles).
Alternativamente, al menos algunas de las etapas, funciones, procedimientos, modulos y/o bloques descritos con anterioridad en relacion a las figuras 8-15 se pueden implementar en software, tal como en un programa de ordenador que se ejecuta por medio de circuitos de procesamiento apropiados que incluyen uno o mas procesadores.
5
10
15
20
25
30
35
40
45
50
55
El procesador es capaz de ejecutar instrucciones software contenidas en un programa de ordenador almacenado en un producto de programa de ordenador, por ejemplo, en forma de memorias. El respectivo producto de programa de ordenador puede ser una memoria que sea una combinacion de una memoria de acceso aleatorio (RAM, random access memory, por sus siglas en ingles) y una memoria de solo lectura (ROM, read-only-memory, por sus siglas en ingles). La memoria respectiva comprende un almacenamiento persistente que, por ejemplo, puede ser una cualquiera de entre memoria magnetica, memoria optica, memoria de estado solido o incluso memoria montada de forma remota, o una combinacion de las mismas.
El diagrama o diagramas de flujo presentados con anterioridad y mostrados en las figuras 8-15 se pueden considerar, por tanto, como un diagrama o diagramas de flujo de ordenador, cuando se ejecutan por medio de uno o mas procesadores. Un aparato correspondiente se puede definir como un grupo de modulos de funciones, en donde cada etapa ejecutada por medio del procesador se corresponde con un modulo de funciones. En este caso, los modulos de funciones se implementan como un programa de ordenador que se ejecuta en el procesador.
Los ejemplos de circuitos de procesamiento incluyen, aunque no se limitan a los mismos, uno o mas microprocesadores, uno o mas procesadores de senales digitales (DSPs, digital signal processors, por sus siglas en ingles), una o mas unidades centrales de proceso (CPUs, central processing units, por sus siglas en ingles), hardware de aceleracion de video, y/o cualesquiera circuitos logicos programables adecuados, tal como uno o mas conjuntos de puertas programables por el usuario (FPGAs, field programable gate arrays, por sus siglas en ingles), o uno o mas controladores de logica programable (PLCs, programable logic controllers, por sus siglas en ingles).
Se ha de entender ademas que puede ser posible reutilizar las capacidades de procesamiento generales de cualquier dispositivo o unidad convencional en el que se implemente la tecnologfa propuesta. Puede ser posible tambien reutilizar software existente, por ejemplo, por medio de la reprogramacion del software existente o por medio de la adicion de nuevos componentes software.
Segun un aspecto, se proporciona un decodificador configurado para llevar a cabo un metodo segun cualquiera de las realizaciones descritas con anterioridad. El decodificador esta configurado para la determinacion, despues de que se haya decodificado y almacenado en una DPB una imagen actual de una secuencia de bits que representa las imagenes de una secuencia de video, de un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. El decodificador esta configurado ademas para la comparacion del numero con un valor sps_max_num_reorder_pics[HighestTid]. El decodificador esta configurado tambien para la generacion como salida de una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. El decodificador esta configurado adicionalmente para marcar la imagen (que se ha generado como salida) como no necesaria para la salida si el numero es mayor que el valor.
El decodificador 100 comprende, en una realizacion, un procesador 110 configurado para ejecutar las etapas del metodo descrito previamente en la presente memoria, vease la figura 8 y opcionalmente las figuras 9, 10 y 12-14. El decodificador 100 puede comprender ademas una memoria 120 conectada al procesador 110, vease la figura 16.
La figura 16 es un diagrama de bloques esquematico de un decodificador 100 segun una realizacion. El decodificador 100 esta configurado para recibir una secuencia de bits 10 que representa las imagenes de una secuencia de video y decodificar la secuencia de bits 10. El decodificador 100 comprende un procesador 110 y una memoria 120 que comprende una DPB 125. El procesador 110 esta configurado para la determinacion, despues de que se haya decodificado y almacenado en la DPB 125 la imagen actual, del numero de imagenes de la DPB 125 que estan marcadas como necesarias para la salida. El procesador 110 esta configurado ademas para la comparacion del numero con el valor sps_max_num_reorder_pics[HighestTid] 14. El procesador 110 esta configurado tambien para la generacion como salida de la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 125 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. El procesador 110 esta configurado adicionalmente para marcar la imagen como no necesaria para la salida si el numero es mayor que el valor.
En la figura 16, se ha ilustrado que el decodificador 100 comprende un procesador 110. Este procesador 110 se podna implementar como un unico procesador o como multiples procesadores, por ejemplo, como un circuito de procesamiento.
La figura 16 ilustra de esta forma una implementacion en ordenador del decodificador 100. En este ejemplo particular, al menos algunas de las etapas, funciones, procedimientos, modulos y/o bloques descritos con anterioridad se implementan en un programa de ordenador, el cual se carga en la memoria 120 para su ejecucion por parte del procesador 110. El procesador 110 y la memoria 120 estan interconectados entre sf al objeto de hacer posible la ejecucion normal del software. Tambien se puede interconectar un dispositivo de entrada/salida opcional (no mostrado) al procesador 110 y/o a la memoria 120 para hacer posible la entrada de una secuencia de bits 10 de imagenes codificadas y la salida de las imagenes decodificadas.
5
10
15
20
25
30
35
40
45
50
55
60
El termino “ordenador” se debe interpretar en sentido general, como cualquier sistema, dispositivo o aparato capaz de ejecutar codigo de programa o instrucciones de programa de ordenador para llevar a cabo una tarea concreta de procesamiento, determinacion o calculo.
En una realizacion, el procesador 110 esta configurado preferiblemente para el analisis de una cabecera de segmento 12 de la imagen actual que se ha de decodificar de la secuencia de video. El procesador 110 esta configurado tambien para determinar un RPS para la imagen actual a partir de la cabecera de segmento 12 analizada. El procesador 110 esta configurado ademas para el marcado de todas las imagenes de la DPB 125 que no estan presentes en el RPS como no utilizadas como referencia. El procesador 110 esta configurado adicionalmente para generar como salida cero, una o muchas imagenes marcadas como necesarias para la salida de entre las imagenes de la DPB 125, y para marcar las cero, una o muchas imagenes como no necesarias para la salida. El procesador 110 esta configurado preferiblemente ademas para el vaciado o eliminacion, de la DPB 125, de toda imagen que este marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB 125. El procesador 110 esta configurado ademas para decodificar la imagen actual, por medio de la utilizacion preferiblemente de la carga util de datos de video 16 proporcionados en forma codificada. En esta realizacion, el procesador 110 esta configurado para determinar el numero de imagenes, comparar el numero, generar como salida la imagen y marcar la imagen despues de decodificar la imagen actual.
En una realizacion, el procesador 110 esta configurado opcionalmente para el analisis de una cabecera de segmento 12 de una imagen de acceso aleatorio de la secuencia de video, al objeto de obtener un valor del indicador no_output_prior_pics_flag. En tal caso, el procesador 110 esta configurado opcionalmente para determinar el numero, comparar el numero, generar como salida la imagen y marcar la imagen si (y solo si) el valor del indicador no_output_prior_pics_flag es uno.
Otro aspecto de las realizaciones se refiere a un decodificador configurado para analizar una cabecera de segmento de una imagen actual de una secuencia de video que se ha de decodificar. El decodificador esta configurado tambien para determinar un RPS para la imagen actual a partir del analisis de la cabecera de segmento. El decodificador esta configurado ademas para marcar todas las imagenes de la DPB que no estan presentes en el RPS como no utilizadas como referencia. El decodificador esta configurado adicionalmente para generar como salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB, y para marcar las cero, una o muchas imagenes como no necesarias para la salida. El decodificador esta configurado preferiblemente ademas para vaciar o eliminar, de la DPB, toda imagen marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB. El decodificador esta configurado ademas para decodificar la imagen actual. En esta realizacion, el decodificador esta configurado para determinar un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. El decodificador esta configurado tambien para comparar el numero con un valor que se obtiene de al menos un elemento de sintaxis presente en la secuencia de bits. El decodificador esta configurado ademas para generar como salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. El decodificador esta configurado adicionalmente para marcar la imagen como no necesaria para la salida si el numero es mayor que el valor. Esto significa que en esta realizacion, el decodificador esta configurado para determinar el numero de imagenes, comparar el numero, generar como salida la imagen y marcar la imagen despues de decodificar la imagen actual.
El codificador 100 comprende, en una realizacion, un procesador 110 configurado para ejecutar las etapas del metodo descrito previamente en la presente memoria, vease la figura 11 y opcionalmente las figuras 12, 13 y 15. El codificador 100 puede comprender ademas una memoria 120 conectada al procesador 110, vease la figura 16.
En esta realizacion, el decodificador 100 comprende, por tanto, un procesador 110 y una memoria 120 que comprende una DPB 125. El procesador 110 esta configurado para analizar la cabecera de segmento 12 de la imagen actual de la secuencia de video que se ha de decodificar. El procesador 110 esta configurado tambien para determinar el RPS para la imagen actual a partir del analisis de la cabecera de segmento 12. El procesador 110 esta configurado ademas para marcar todas las imagenes de la DPB 125 que no estan presentes en el RPS como no utilizadas como referencia. El procesador 110 esta configurado adicionalmente para generar como salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB 125, y para marcar las cero, una o muchas imagenes como no necesarias para la salida. El procesador 110 esta configurado preferiblemente ademas para vaciar o eliminar, de la DPB 125, toda imagen marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB 125. El procesador 110 esta configurado ademas para decodificar la imagen actual. En esta realizacion, el procesador 110 esta configurado para determinar el numero de imagenes de la DPB 125 que estan marcadas como necesarias para la salida. El procesador 110 esta configurado tambien para comparar el numero con un valor que se obtiene de al menos un elemento de sintaxis 14 presente en la secuencia de bits 10. El procesador 110 esta configurado ademas para generar como salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 125 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. El procesador 110 esta configurado adicionalmente para marcar la imagen como no necesaria para la salida si el numero es mayor que el valor. Esto significa que en esta realizacion, el procesador 110 esta configurado para determinar el numero de imagenes, comparar el numero, generar como salida la imagen y marcar la imagen despues de decodificar la imagen actual.
5
10
15
20
25
30
35
40
45
50
55
En una realizacion, el procesador 110 esta configurado preferiblemente para almacenar la imagen actual decodificada en la DPB 125 y para marcar la imagen actual decodificada como necesaria para la salida o como no necesaria para la salida, tal y como se ha descrito con anterioridad en la presente memoria.
En una realizacion de implementacion, el procesador 110 esta configurado preferiblemente para comparar el numero con el valor sps_max_num_reorder_pics[HighestTid]. En esta realizacion de implementacion, el procesador 110 esta configurado para generar como salida una imagen de la DPB 125 que tiene un menor valor de PicOrderCntVal de entre todas las imagenes de la DPB 125 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor sps_max_num_reorder_pics[HighestTid].
En otra realizacion de implementacion, la imagen actual es una imagen de acceso aleatorio de la secuencia de video. En este caso, el procesador 110 esta configurado opcionalmente para analizar la cabecera de segmento 12 de la imagen de acceso aleatorio al objeto de obtener un valor de un indicador no_output_prior_pics_flag. El procesador 110 esta configurado en ese caso de forma opcional para determinar el numero, comparar el numero, generar como salida la imagen y marcar la imagen si el valor del indicador no_output_prior_pics_flag es uno.
Si la secuencia de video es una secuencia de video multi-capa que comprende multiples capas de imagenes, en donde cada capa de las multiples capas tiene un elemento de sintaxis asociado que define un valor respectivo, entonces el procesador 110 esta configurado preferiblemente para seleccionar un valor que se obtiene de un elemento de sintaxis, preferiblemente sps_max_num_reorder_pics, asociado con la capa mas alta que se decodifica por medio del decodificador 100 de entre las multiples capas.
En una realizacion, el procesador 110 esta configurado preferiblemente para generar como salida una imagen que tiene el menor valor del numero de orden de imagen de entre las imagenes de la DPB 125 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor.
En una realizacion, el procesador 110 esta configurado preferiblemente para generar como salida la imagen antes de analizar una cabecera de segmento de una imagen siguiente que se ha de decodificar de la secuencia de video.
La figura 17 es un diagrama de bloques esquematico de otro ejemplo de implementacion del decodificador 200. Este ejemplo es especialmente apropiado para una implementacion hardware del decodificador 200. El decodificador 200 comprende una unidad de entrada 210 configurada para recibir la secuencia de bits que representa las imagenes de la secuencia de video y para almacenar la secuencia de bits en una memoria 220 conectada que comprende la DPB 225. El decodificador comprende tambien una unidad de determinacion de numero 230 conectada a la memoria 220. Esta unidad de determinacion de numero 230 esta configurada para determinar, despues de que la imagen actual se haya decodificado y almacenado en la DPB 225, el numero de imagenes de la DPB 225 que estan marcadas como necesarias para la salida. Un comparador 240 esta conectado a la unidad de determinacion de numero 230 y esta configurado para comparar el numero con el valor sps_max_num_reorder_pics[HighestTid]. El decodificador 200 comprende ademas una unidad de salida 250 conectada al comparador 240 y preferiblemente a la memoria 220. La unidad de salida 250 esta configurada para generar como salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 225 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. Una unidad de marcado 260 esta conectada a la memoria 220 y esta configurada para marcar la imagen como no necesaria para la salida si el numero es mayor que el valor.
El comparador 240 esta conectado preferiblemente a la unidad de determinacion de numero 230 al objeto de recibir el numero de imagenes determinado por medio de la unidad de determinacion de numero 230. De forma correspondiente, la unidad de salida 250 esta conectada preferiblemente al comparador 240 al objeto de recibir informacion del comparador 240 sobre si el numero determinado es mayor que el valor sps_max_num_reorder_pics[HighestTid]. La unidad de marcado 260 esta conectada preferiblemente a la unidad de salida 250 al objeto de recibir informacion sobre que imagen se ha generado como salida por medio de la unidad de salida 250.
La figura 18 es un diagrama de bloques esquematico de otro ejemplo mas de implementacion del decodificador 300. Este ejemplo es especialmente apropiado para una implementacion hardware del decodificador 300. El decodificador 300 comprende una unidad de entrada 310 configurada para recibir la secuencia de bits que representa las imagenes de la secuencia de video y para almacenar la secuencia de bits en una memoria 320 conectada que comprende la DPB 325. Una unidad de analisis 370, conectada a la memoria 320, esta configurada para analizar la cabecera de segmento de la imagen actual que se ha de decodificar de la secuencia de video. El decodificador 300 comprende una unidad de determinacion del conjunto de imagenes de referencia 380 conectada a la unidad de analisis 370 y preferiblemente a la memoria 320. La unidad de determinacion del conjunto de imagenes de referencia 380 esta configurada para determinar el RPS para la imagen actual a partir del analisis de la cabecera de segmento. Una unidad de marcado 360 esta conectada a la memoria 320 y esta configurada para marcar todas las imagenes de la DPB 325 que no estan presentes en el RPS como no utilizadas como referencia. El decodificador 300 comprende ademas una unidad de salida 350 conectada a la memoria 320 y preferiblemente a un comparador 340. La unidad de salida 350 esta configurada para generar como salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB 325, en el que la unidad de marcado 360 esta configurada para marcar las cero, una o muchas imagenes como no necesarias para la salida. Una unidad de
5
10
15
20
25
30
35
40
45
50
55
60
vaciado de imagenes 390 esta conectada a la memoria 320 y esta configurada para vaciar o eliminar, de la DPB 325, toda imagen marcada como no utilizada como referencia y no necesaria para la salida de entre las imagenes de la DPB 325. Una unidad de decodificacion 305 esta conectada a la memoria 320 y esta configurada para decodificar la imagen actual.
El decodificador 300 de la figura 18 comprende ademas una unidad de determinacion de numero 330 conectada a la memoria 320 y preferiblemente tambien a la unidad de analisis 370 y al comparador 340. La unidad de determinacion de numero 330 esta configurada para determinar el numero de imagenes de la DPB 325 que se marcan como necesarias para la salida. El comparador 340 mencionado con anterioridad esta configurado para comparar el numero con el valor que se obtiene de al menos un elemento de sintaxis presente en la secuencia de bits. En esta realizacion, la unidad de salida 350 esta configurada ademas para generar como salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 325 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. La unidad de marcado 360 esta configurada ademas para marcar la imagen como no necesaria para la salida si el numero es mayor que el valor.
En una realizacion preferida, la unidad de determinacion de numero 330 esta configurada para determinar el numero de imagenes, el comparador 340 esta configurado para comparar el numero, la unidad de salida 350 esta configurada para generar como salida la imagen y la unidad de marcado 360 esta configurada para marcar la imagen despues de que la unidad de decodificacion 305 haya decodificado la imagen actual.
La unidad de determinacion del conjunto de imagenes de referencia 380 esta conectada preferiblemente a la unidad de analisis 370 al objeto de recibir la informacion presente en la cabecera de segmento analizada y que se ha utilizado para determinar el RPS. La unidad de determinacion del conjunto de imagenes de referencia 380 esta conectada preferiblemente ademas a la unidad de marcado 360 al objeto de proporcionar el RPS o la informacion de las imagenes que figuran en el RPS a la unidad de marcado 360. El comparador 340 esta conectado preferiblemente a la unidad de determinacion de numero 330 al objeto de recibir el numero de imagenes determinado por medio de la unidad de determinacion de numero 330. De forma correspondiente, la unidad de salida 350 esta conectada preferiblemente al comparador 340 al objeto de recibir informacion sobre si el numero determinado es mayor que el valor del comparador 340. La unidad de marcado 360 esta conectada preferiblemente a la unidad de salida 350 al objeto de recibir informacion sobre que imagen se ha generado como salida por medio de la unidad de salida 350.
Como se ha indicado con anterioridad, el decodificador se puede definir alternativamente como un grupo de modulos de funciones, en el que los modulos de funciones se implementan como un programa de ordenador que se ejecuta en un procesador.
La figura 16 es un diagrama de bloques esquematico que ilustra un ejemplo de un decodificador 100 que comprende un procesador 110 y una memoria 120 asociada.
El programa de ordenador que reside en la memoria 120 puede estar organizado, por lo tanto, como unos modulos de funciones apropiados configurados para llevar a cabo, cuando se ejecutan por medio del procesador 110, al menos parte de las etapas y/o tareas descritas con anterioridad. En la figura 19 se ilustra un ejemplo de tales modulos de funciones. La figura 19 es, por lo tanto, un diagrama de bloques esquematico que ilustra un ejemplo de un decodificador 400 que comprende un grupo de modulos de funciones 410-440. Estos modulos comprenden un modulo de determinacion de numero 410 para determinar, despues de que la imagen actual de una secuencia de bits que representa las imagenes de una secuencia de video se haya decodificado y almacenado en una DPB, un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. El decodificador 400 comprende ademas un modulo de comparacion 420 para comparar el numero, preferiblemente tal y como se recibe del modulo de determinacion de numero 410, con un valor sps_max_num_reorder_pics[HighesTid]. Se utiliza un modulo de salida 430 del decodificador 400 para generar como salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de comparacion 420. El decodificador 400 comprende ademas un modulo de marcado 440 para marcar la imagen como no necesaria para la salida si el numero es mayor que el valor, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de comparacion 420.
La figura 20 es un diagrama de bloques esquematico que ilustra otro ejemplo de un decodificador 500 con un grupo de modulos de funciones 510-580. El decodificador 500 comprende un modulo de analisis 510 para analizar una cabecera de segmento de una imagen actual que se ha de decodificar de una secuencia de bits que representa las imagenes de una secuencia de video. Se utiliza un modulo de determinacion del conjunto de imagenes de referencia 520 del decodificador 500 para determinar un RPS para la imagen actual a partir del analisis de la cabecera de segmento, preferiblemente tal y como se analiza por medio del modulo de analisis 510. El decodificador 500 comprende ademas un modulo de marcado 530 para marcar todas las imagenes de una DPB que no estan presentes en el RPS, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de determinacion del conjunto de imagenes de referencia 520, como no utilizadas como referencia, y un modulo de salida 540 para generar como salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB. En una realizacion, el modulo de marcado 530 es ademas para marcar las cero, una o muchas imagenes como no necesarias para la salida. El decodificador 500 comprende ademas un modulo de
5
10
15
20
25
30
35
40
45
50
55
vaciado 550 para vaciar o eliminar, de la DPB, toda imagen marcada como no utilizada como referencia y no necesaria para la salida de entre las imagenes de la DPB, y un modulo de decodificacion 560 para decodificar la imagen actual. El decodificador 500 comprende adicionalmente un modulo de determinacion de numero 560 para determinar un numero de imagenes de la DPB que estan marcadas como necesarias para la salida y un modulo de comparacion 570 para comparar el numero, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de determinacion de numero 560, con un valor que se obtiene de al menos un elemento de sintaxis presente en la secuencia de bits.
En una realizacion, el modulo de salida 540 es ademas para generar como salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de comparacion 570. El modulo de marcado 530 es ademas para marcar la imagen como no necesaria para la salida, si el numero es mayor que el valor, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de comparacion 570.
En una realizacion, el modulo de determinacion de numero 570 determina el numero de imagenes, el modulo de comparacion 580 compara el numero, el modulo de salida 540 genera como salida la imagen y el modulo de marcado 530 marca dicha imagen despues de que el modulo de decodificacion 560 decodifica la imagen actual.
Las realizaciones del decodificador 400, 500, segun se muestran en las figuras 19 y 20, se pueden utilizar opcionalmente tambien para llevar a cabo las diferentes realizaciones de implementacion, tal y como se han descrito con anterioridad en la presente memoria, por ejemplo, haciendo referencia a las figuras 9, 10, 12-15.
En una realizacion, el programa de ordenador comprende un codigo de programa que, cuando se ejecuta por medio de un procesador 110, vease la figura 16, o por medio de un ordenador, hace que el procesador 110 u ordenador ejecuten las etapas, funciones, procedimientos y/o bloques descritos con anterioridad, y mostrados en las figuras 815.
El software o programa de ordenador se puede generar como un producto de programa de ordenador, el cual se dispone o almacena normalmente en un medio legible por ordenador. El medio legible por ordenador puede incluir uno o mas dispositivos de memoria extrafbles o no extrafbles, incluyendo, aunque sin limitarse a los mismos, una ROM, una RAM, un disco compacto (CD, compact disc, por sus siglas en ingles), un disco versatil digital (DVD, digital versatile disc, por sus siglas en ingles), una memoria de bus serie universal (USB, universal serial bus, por sus siglas en ingles), un dispositivo de almacenamiento de disco duro (HDD, hard disk drive, por sus siglas en ingles), una memoria flash, o cualquier otro dispositivo de memoria convencional. El programa de ordenador se puede cargar, por lo tanto, en la memoria de funcionamiento de un ordenador o de un dispositivo de procesamiento equivalente para su ejecucion por parte de los circuitos de procesamiento del mismo.
El decodificador 100, 200, 300, 400, 500, segun se muestra en las figuras 16-20, es un decodificador que cumple preferiblemente con la norma HEVC. Sin embargo, se debe apreciar que las realizaciones no se limitan a la norma HEVC.
Segun un aspecto, se proporciona un metodo que se lleva a cabo por medio de un codificador. En el metodo, el codificador determina el numero de imagenes de la DPB que estan marcadas como necesarias para la salida, y compara ese numero con un valor que esta representado por los elementos de sintaxis de la secuencia de bits. Si el numero de imagenes de la DPB que estan marcadas como necesarias para la salida es mayor que el valor que se obtiene de los elementos de sintaxis de la secuencia de bits, se lleva a cabo un proceso de marcado de salida modificado, o se marca como no necesaria para la salida la imagen de las imagenes de la DPB marcadas como necesarias para la salida que es la primera imagen en el orden de salida.
La figura 21 es un diagrama de flujo de un metodo ejecutado por medio de un codificador segun una realizacion. El metodo comprende la determinacion, en la etapa S60, y despues de que se haya decodificado y almacenado en una DPB una imagen actual, de un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. Una etapa siguiente S61 comprende la comparacion de este numero con un valor sps_max_num_reorder_pics[HighestTid], en donde HighestTid especifica una capa mas alta que se decodifica por medio del codificador de una secuencia de video. Si el numero es mayor que el valor, el metodo avanza a la etapa S62, que comprende el marcado como no necesaria para la salida de una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida.
El metodo, tal y como se lleva a cabo en el codificador en la figura 21, es fundamentalmente similar al metodo correspondiente que se lleva a cabo en un decodificador correspondiente, vease la figura 8. Aunque una diferencia es que el codificador, por lo general, no genera como salida ninguna imagen, lo cual se lleva a cabo en el decodificador. Por lo tanto, la realizacion del metodo mostrado en la figura 21 carece preferiblemente de la etapa de salida S3 del metodo correspondiente, la cual se ejecuta por medio de un decodificador en la figura 8.
En una realizacion, cuando la imagen actual se ha decodificado, tienen lugar preferiblemente dos marcados, uno para salida y uno para referencia. Por tanto, en una realizacion, estos marcados se llevan a cabo preferiblemente
5
10
15
20
25
30
35
40
45
50
55
con anterioridad a la etapa S60, ya que esto afecta al numero de imagenes que se marcan como necesarias para la salida. Si la imagen actual tiene un PicOutputFlag=1, la imagen actual preferiblemente se cuenta tambien.
En una realizacion, si el numero no es mayor que el valor, segun se determina en la comparacion de la etapa S61, el metodo preferiblemente termina y no se marca ninguna imagen. Por tanto, en tal caso, la etapa S62 se omite y no se ejecuta, vease la lmea de puntos a la derecha.
En una realizacion, las etapas S61-S62 de la figura 21 solo se pueden ejecutar una vez, despues de que se haya decodificado y almacenado en la DPB una imagen actual. De forma alternativa, el bucle formado por las etapas S61-S62, vease la lmea de puntos a la izquierda, se puede ejecutar hasta que el numero de imagenes de la DPB que estan marcadas como necesarias para la salida deje de ser mayor que el valor sps_max_num_reorder_pics[HighestTid]. Cada vez que se ejecuta el bucle de las etapas S61-S62, el numero de imagenes de la DPB que estan marcadas como necesarias para la salida se reduce en una unidad por medio del marcado de la etapa S62.
La figura 22 es un diagrama de flujo de un metodo ejecutado por medio de un codificador segun otra realizacion. El metodo comprende el marcado como no utilizadas como referencia, en la etapa S70, de todas las imagenes de la DPB que no estan presentes en un RPS para una imagen actual de un conjunto de secuencia de video. El metodo comprende ademas el marcado como no necesarias para la salida, en la etapa S71, de cero, una o muchas imagenes, que estan marcadas como necesarias para la salida, de entre las imagenes de la DPB. Toda imagen marcada como no utilizada como referencia y no necesaria para la salida de entre las imagenes de la DPB se vada o elimina de la DPB en la etapa S72. La etapa S73 siguiente comprende la decodificacion de la imagen actual. El metodo comprende ademas la determinacion, en la etapa S74, de un numero de imagenes de la DPB que estan marcadas como necesarias para la salida, y la comparacion, en la etapa S75, del numero con un valor que se obtiene de al menos un elemento de sintaxis definido. Si este numero es mayor que el valor, el metodo avanza a la etapa S76, que comprende el marcado como no necesaria para la salida de una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida. En una realizacion preferida, la determinacion del numero de imagenes en la etapa S74, la comparacion del numero en la etapa S75 y el marcado de la imagen en la etapa S76 se llevan a cabo despues de la decodificacion de la imagen actual en la etapa S73.
El metodo, tal y como se lleva a cabo en el codificador en la figura 22, es fundamentalmente similar al metodo correspondiente que se lleva a cabo en un decodificador correspondiente, vease la figura 11. Aunque una diferencia es que el codificador, por lo general, no genera como salida ninguna imagen, lo cual se lleva a cabo en el decodificador. Por lo tanto, la realizacion del metodo mostrado en la figura 22 carece preferiblemente de las etapas de salida S33 y S38 del metodo correspondiente, las cuales se ejecutan por medio de un decodificador en la figura 11. Ademas, en el metodo de la figura 22, el codificador no recibe ninguna secuencia de bits y, por lo tanto, no necesita analizar una cabecera de segmento al objeto de obtener informacion para determinar el RPS para la imagen actual. En claro contraste, el codificador genera por sf mismo y determina el RPS para la imagen actual. Por lo tanto, las etapas S30 y S31 del metodo correspondiente que se lleva a cabo por medio de un decodificador en la figura 11 no se ejecutan normalmente por un codificador.
En una realizacion, si el numero no es mayor que el valor, segun se determina en la comparacion de la etapa S75, el metodo preferiblemente termina y no se marca ninguna imagen. Por tanto, en tal caso, la etapa S76 se omite y no se ejecuta, vease la lmea de puntos a la derecha.
En una realizacion, las etapas S75-S76 solo se pueden ejecutar una vez, despues de que se haya decodificado y almacenado en la DPB una imagen actual. De forma alternativa, el bucle formado por las etapas S75-S76, vease la lmea de puntos a la izquierda, se puede ejecutar hasta que el numero de imagenes de la DPB que se marcan como necesarias para la salida deje de ser mayor que el valor. Cada vez que se ejecuta el bucle de las etapas S75-S76, el numero de imagenes de la DPB que se marcan como necesarias para la salida se reduce en una unidad por medio del marcado de la etapa S76.
Las realizaciones analizadas en lo anterior en relacion con los metodos llevados a cabo por medio de un decodificador tambien se pueden llevar a cabo por medio de un codificador.
Por ejemplo, un metodo de codificador puede comprender y/o un codificador puede estar configurado para la ejecucion de las siguientes etapas en orden, segun una realizacion:
1. Se codifica una imagen P.
2. Despues de que se ha codificado la imagen P, el codificador determina el numero de imagenes de la DPB que estan marcadas como “necesarias para la salida” y compara ese numero con un valor que se puede obtener de los elementos de sintaxis de la secuencia de bits. Se debe observar que esto se refiere a la dPb del codificador. El estatus de la DPB del codificador y del decodificador es el mismo. La comparacion en el decodificador sera exactamente la misma. La especificacion HEVC especifica que el decodificador lo hara, pero que el codificador tendra que tener un control de ello, es decir, el codificador hace lo que el decodificador hara.
5
10
15
20
25
30
35
40
45
50
55
3. Si el numero de imagenes de la DPB que estan marcadas como “necesarias para la salida” es mayor que el valor que se puede obtener de los elementos de sintaxis de la secuencia de bits, se marca como “no necesaria para la salida” la imagen de las imagenes de la DPB marcadas como “necesarias para la salida” que es la primera en el orden de salida. La imagen, opcionalmente, se puede generar como salida desde el codificador.
4. Se codifica una imagen Q siguiente.
Las etapas, funciones, procedimientos, modulos y/o bloques descritos con anterioridad en relacion a las figuras 21 y 22 se pueden implementar en hardware por medio de la utilizacion de cualquier tecnologfa convencional, tal como tecnologfa de circuitos discretos o tecnologfa de circuitos integrados, incluyendo ambos, sistemas de circuitos electronicos de proposito general y sistemas de circuitos espedficos de aplicacion.
Los ejemplos particulares incluyen uno o mas procesadores de senales digitales configurados de forma adecuada y otros circuitos electronicos conocidos, por ejemplo, puertas logicas discretas interconectadas al objeto de llevar a cabo una funcion especializada, o ASICs.
Alternativamente, al menos algunas de las etapas, funciones, procedimientos, modulos y/o bloques descritos con anterioridad en relacion a las figuras 21 y 22 se pueden implementar en software, tal como en un programa de ordenador que se ejecuta por medio de circuitos de procesamiento apropiados que incluyen uno o mas procesadores.
El procesador es capaz de ejecutar instrucciones software contenidas en un programa de ordenador almacenado en un producto de programa de ordenador, por ejemplo, en forma de memorias. El respectivo producto de programa de ordenador puede ser una memoria que sea una combinacion cualquiera de RAM y ROM. La memoria respectiva comprende un almacenamiento persistente que, por ejemplo, puede ser una cualquiera de entre memoria magnetica, memoria optica, memoria de estado solido o incluso memoria montada de forma remota, o una combinacion de las mismas.
El diagrama o diagramas de flujo presentados con anterioridad y mostrados en las figuras 21 y 22 se pueden considerar, por tanto, como un diagrama o diagramas de flujo de ordenador, cuando se ejecutan por medio de uno o mas procesadores. Un aparato correspondiente se puede definir como un grupo de modulos de funciones, en donde cada etapa ejecutada por medio del procesador se corresponde con un modulo de funciones. En este caso, los modulos de funciones se implementan como un programa de ordenador que se ejecuta en el procesador.
Los ejemplos de circuitos de procesamiento incluyen, aunque no se limitan a los mismos, uno o mas microprocesadores, uno o mas procesadores DSPs, una o mas CPUs, hardware de aceleracion de video, y/o cualesquiera circuitos logicos programables adecuados, tal como uno o mas FPGAs, o uno o mas PLCs.
Se ha de entender ademas que puede ser posible reutilizar las capacidades de procesamiento generales de cualquier dispositivo o unidad convencional en el que se implemente la tecnologfa propuesta. Puede ser posible tambien reutilizar software existente, por ejemplo, por medio de la reprogramacion del software existente o por medio de la adicion de nuevos componentes software.
Segun un aspecto, se proporciona un codificador configurado para llevar a cabo el metodo. El codificador esta configurado para la determinacion, despues de que se haya decodificado y almacenado en una DPB una imagen actual, de un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. El codificador esta configurado ademas para la comparacion del numero con un valor sps_max_num_reorder_pics[HighestTid]. El codificador esta configurado tambien para marcar como no necesaria para la salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor.
El codificador 600 comprende, en una realizacion, un procesador 610 configurado para ejecutar las etapas del metodo descrito previamente en la presente memoria, vease la figura 21. El codificador 600 puede comprender ademas una memoria 620 conectada al procesador 610, vease la figura 23.
La figura 23 es un diagrama de bloques esquematico de un codificador 600 segun una realizacion. El codificador 600 esta configurado para codificar imagenes de una secuencia de video en una secuencia de bits 10. El codificador 600 comprende un procesador 610 y una memoria 620. La memoria 620 comprende una DPB 625. En una realizacion, el procesador 610 esta configurado para la determinacion, despues de que se haya decodificado y almacenado en la DPB 625 la imagen actual, el numero de imagenes de la DPB 625 que estan marcadas como necesarias para la salida. El procesador 610 esta configurado ademas para la comparacion del numero con el valor sps_max_num_reorder_pics[HighestTid]. El procesador 610 esta configurado ademas para marcar como no necesaria para la salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 625 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor.
En la figura 23, se ha ilustrado que el codificador 600 comprende un procesador 610. Este procesador 610 se podna implementar como un unico procesador o como multiples procesadores, por ejemplo, como un circuito de procesamiento.
5
10
15
20
25
30
35
40
45
50
55
60
La figura 23 ilustra de esta forma una implementacion en ordenador del codificador 600. En este ejemplo particular, al menos algunas de las etapas, funciones, procedimientos, modulos y/o bloques descritos con anterioridad se implementan en un programa de ordenador, el cual se carga en la memoria 620 para su ejecucion por parte del procesador 610. El procesador 610 y la memoria 620 estan interconectados entre sf al objeto de hacer posible la ejecucion normal del software. Tambien se puede interconectar un dispositivo de entrada/salida opcional (no mostrado) al procesador 610 y/o a la memoria 620 para hacer posible la entrada de imagenes que se han de codificar y la salida de la secuencia de bits 10.
Otro aspecto de las realizaciones se refiere a un codificador configurado para marcar todas las imagenes de una DPB que no estan presentes en un RPS para una imagen actual como no utilizadas como referencia. El codificador esta configurado ademas para marcar como no necesarias para la salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB, y para vaciar o eliminar, de la DPB, toda imagen marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB. El codificador esta configurado ademas para decodificar la imagen actual y para determinar un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. El codificador esta configurado adicionalmente para comparar el numero con un valor que se obtiene de al menos un elemento de sintaxis definido y para marcar como no necesaria para la salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. En una realizacion, el codificador esta configurado para determinar el numero de imagenes, comparar el numero y marcar la imagen despues de decodificar la imagen actual.
El codificador 600 comprende, en una realizacion, un procesador 610 configurado para ejecutar las etapas del metodo descrito previamente en la presente memoria, vease la figura 22. El decodificador 600 puede comprender ademas una memoria 620 conectada al procesador 610, vease la figura 23.
La figura 23 es un diagrama de bloques esquematico de un codificador 600 segun una realizacion. El codificador 600 esta configurado para codificar imagenes de una secuencia de video en una secuencia de bits 10. El codificador 600 comprende un procesador 610 y una memoria 620. La memoria 620 comprende una DPB 625. En una realizacion, el procesador 610 esta configurado para marcar todas las imagenes de la DPB 625 que no estan presentes en el RPS para la imagen actual de la secuencia de video como no utilizadas como referencia. El procesador 610 esta configurado ademas para marcar cero, una o muchas imagenes, marcadas como necesarias para la salida, como no necesarias para la salida, de entre las imagenes de la DPB 625. El procesador 610 esta configurado ademas para vaciar o eliminar, de la DPB 625, toda imagen marcada como no utilizada como referencia y como no necesaria para la salida de entre las imagenes de la DPB 625. En esta realizacion, el procesador 610 esta configurado ademas para decodificar la imagen actual, y para determinar un numero de imagenes de la DPB 625 que estan marcadas como necesarias para la salida. El procesador 610 esta configurado tambien para comparar el numero con un valor que se obtiene de al menos un elemento de sintaxis definido. El procesador 610 esta configurado adicionalmente para marcar como no necesaria para la salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 625 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. En esta realizacion, el procesador 610 esta configurado para determinar el numero de imagenes, comparar el numero y marcar la imagen despues de decodificar la imagen actual.
La figura 24 es un diagrama de bloques esquematico de otro ejemplo de implementacion del codificador 700. Este ejemplo es especialmente apropiado para una implementacion hardware del codificador 700. El codificador 700 comprende una unidad de determinacion de numero 730 conectada a una memoria 720 que comprende la DPB 725. La unidad de determinacion de numero 730 esta configurada para determinar, despues de que la imagen actual de la secuencia de video se haya decodificado y almacenado en la DPB 725, el numero de imagenes de la DPB 725 que estan marcadas como necesarias para la salida. El codificador 700 comprende ademas un comparador 740 conectado a la unidad de determinacion de numero 730 y preferiblemente a la memoria 720. El comparador 740 esta configurado para comparar el numero con el valor sps_max_num_reorder_pics[HighestTid]. Una unidad de marcado 760 del codificador esta conectada a la memoria 720 y esta configurada para marcar como no necesaria para la salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 725 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor.
El comparador 740 esta conectado preferiblemente a la unidad de determinacion de numero 730 al objeto de recibir el numero de imagenes determinado por medio de la unidad de determinacion de numero 730.
La figura 25 es un diagrama de bloques esquematico de otro ejemplo mas de implementacion del codificador 800, especialmente apropiado para una implementacion hardware. El codificador 800 comprende una unidad de marcado 860 conectada a la memoria 820 que comprende la DPB 825. La unidad de marcado 860 esta configurada para i) marcar todas las imagenes de la DPB 825 que no estan presentes en el RPS para la imagen actual de la secuencia de video como no utilizadas como referencia y ii) para marcar como no necesarias para la salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB 825. Una unidad de vaciado de imagenes 890 esta conectada a la memoria 820 y esta configurada para vaciar o eliminar, de la DPB 825, toda imagen marcada como no utilizada como referencia y no necesaria para la salida de entre las imagenes de la DPB 825. El codificador 800 comprende ademas una unidad de decodificacion 805 conectada a la memoria 820 y configurada para decodificar la imagen actual. Una unidad de determinacion de numero 830 del codificador 800 esta
5
10
15
20
25
30
35
40
45
50
55
conectada a la memoria 830, y esta configurada para determinar el numero de imagenes de la DPB 825 que estan marcadas como necesarias para la salida. El codificador 800 comprende ademas un comparador 840 conectado a la unidad de determinacion de numero 830 y preferiblemente a la memoria 820. El comparador 840 esta configurado para comparar el numero con el valor que se obtiene de al menos un elemento de sintaxis definido. En esta realizacion, la unidad de marcado 860 esta configurada ademas para marcar como no necesaria para la salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB 825 que estan marcadas como necesarias para la salida, si el numero es mayor que el valor. En una realizacion preferida, la unidad de determinacion de numero 830 esta configurada para determinar el numero de imagenes, el comparador 840 esta configurado para comparar el numero y la unidad de marcado 840 esta configurada para marcar la imagen despues de que la unidad de decodificacion 805 haya decodificado la imagen actual.
El comparador 840 esta conectado preferiblemente a la unidad de determinacion de numero 830 al objeto de recibir el numero de imagenes determinado por medio de la unidad de determinacion de numero 830.
Como se ha indicado con anterioridad, el codificador se puede definir alternativamente como un grupo de modulos de funciones, en el que los modulos de funciones se implementan como un programa de ordenador que se ejecuta en un procesador.
La figura 23 es un diagrama de bloques esquematico que ilustra un ejemplo de un codificador 600 que comprende un procesador 610 y una memoria 620 asociada.
El programa de ordenador que reside en la memoria 620 puede estar organizado, por lo tanto, como unos modulos de funciones apropiados configurados para llevar a cabo, cuando se ejecutan por medio del procesador 610, al menos parte de las etapas y/o tareas descritas con anterioridad. En la figura 26 se ilustra un ejemplo de tales modulos de funciones. La figura 26 es, por lo tanto, un diagrama de bloques esquematico que ilustra un ejemplo de un codificador 900 que comprende un grupo de modulos de funciones 910-930. Estos modulos comprenden un modulo de determinacion de numero 910 para determinar, despues de que una imagen actual de una secuencia de bits que representa las imagenes de una secuencia de video se haya decodificado y almacenado en una DPB, un numero de imagenes de la DPB que estan marcadas como necesarias para la salida. El codificador 900 comprende ademas un modulo de comparacion 920 para comparar el numero, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de determinacion de numero 910, con un valor sps_max_num_reorder_pics[HighesTid]. El codificador 900 comprende ademas un modulo de marcado 930 para marcar como no necesaria para la salida una imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de comparacion 920.
La figura 27 es un diagrama de bloques esquematico que ilustra otro ejemplo de un codificador 1000 con un grupo de modulos de funciones 1000-1050. El codificador 1000 comprende un modulo de marcado 1010 para marcar todas las imagenes de una DPB que no estan presentes en un conjunto RPS para una imagen actual de una secuencia de video como no utilizadas como referencia, y para marcar como no necesarias para la salida cero, una o muchas imagenes, marcadas como necesarias para la salida, de entre las imagenes de la DPB. El codificador 1000 comprende ademas un modulo de vaciado 1020 para vaciar o eliminar, de la DPB, toda imagen marcada como no utilizada como referencia y no necesaria para la salida de entre las imagenes de la DPB, y un modulo de decodificacion 1030 para decodificar la imagen actual. El codificador 1000 comprende adicionalmente un modulo de determinacion de numero 1040 para determinar un numero de imagenes de la DPB que estan marcadas como necesarias para la salida y un modulo de comparacion 1050 para comparar el numero, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de determinacion de numero 1040, con un valor que se obtiene de al menos un elemento de sintaxis presente en la secuencia de bits.
En una realizacion, el modulo de marcado 1010 es ademas para marcar como no necesaria para la salida la imagen, que es una primera imagen en el orden de salida, de entre las imagenes de la DPB que estan marcadas como necesarias para la salida, si el numero es mayor que el valor, de forma opcional, pero preferiblemente, segun se determina por medio del modulo de comparacion 1050.
En una realizacion, el modulo de determinacion de numero 1040 determina el numero de imagenes, el modulo de comparacion 1050 compara el numero y el modulo de marcado 1010 marca dicha imagen despues de que el modulo de decodificacion 1030 decodifica la imagen actual.
En una realizacion, el programa de ordenador comprende un codigo de programa que, cuando se ejecuta por medio de un procesador 610, vease la figura 23, o por medio de un ordenador, hace que el procesador 610 u ordenador ejecuten las etapas, funciones, procedimientos y/o bloques descritos con anterioridad, y mostrados en las figuras 21 o 22.
El software o programa de ordenador se puede generar como un producto de programa de ordenador, el cual se dispone o almacena normalmente en un medio legible por ordenador. El medio legible por ordenador puede incluir uno o mas dispositivos de memoria extrafbles o no extrafbles, incluyendo, aunque sin limitarse a los mismos, una ROM, una RAM, un CD, un DVD, una memoria USB, un dispositivo de almacenamiento HDD, una memoria flash, o
5
10
15
20
25
30
35
40
45
50
55
cualquier otro dispositivo de memoria convencional. El programa de ordenador se puede cargar, por lo tanto, en la memoria de funcionamiento de un ordenador o de un dispositivo de procesamiento equivalente para su ejecucion por parte de los circuitos de procesamiento del mismo.
El codificador 600, 700, 800, 900, 1000, segun se muestra en las figuras 23-27, es un codificador que cumple preferiblemente con la norma HEVC. Sin embargo, se debe apreciar que las realizaciones no se limitan a la norma HEVC.
El decodificador 100, 200, 300, 400, 500 de cualquiera de las figuras 16-20 y el codificador 600, 700, 800, 900, 1000 de cualquiera de las figuras 23-27 se pueden implementar, por ejemplo, en un terminal movil. Por ejemplo, el decodificador 100, 200, 300, 400, 500 puede estar ubicado, por ejemplo, en un receptor de una camara de video o de cualquier otro dispositivo de visualizacion de una emision de video en continuo. El codificador 600, 700, 800, 900, 1000 puede estar ubicado, por ejemplo, en un transmisor de una camara de video, por ejemplo, en un dispositivo movil.
La figura 28 es una diagrama de bloques esquematico de un terminal movil 1100 segun una realizacion. El terminal movil 1100 comprende un decodificador 100, 200, 300, 400, 500 segun las realizaciones y/o un codificador 600, 700, 800, 900, 1000 segun las realizaciones, tales como el decodificador que se muestra en cualquiera de las figuras 1620 y/o el codificador que se muestra en cualquiera de las figuras 23-27.
El terminal movil 1100 comprende preferiblemente ademas una unidad de entrada y salida (I/O, input and output, por sus siglas en ingles) 1110 para hacer posible la comunicacion, por lo general una comunicacion inalambrica, pero de forma alternativa, o adicionalmente, una comunicacion por cable, con unidades externas. La unidad I/O 1110 se podna implementar como un transmisor y un receptor, o un transceptor, de comunicacion inalambrica. De forma alternativa, la unidad I/O 1110 podna ser una unidad o puerto I/O general 1110 capaz de llevar a cabo una comunicacion por cable. Si el terminal movil 1100 se implementa con un codificador 600, 700, 800, 900, 1000, la unidad I/O 1110 esta configurada preferiblemente para transmitir o generar como salida una secuencia de bits que representa una secuencia de video codificada, tal y como se genera por medio del codificador 600, 700, 800, 900, 1000. De forma correspondiente, si el terminal movil 1100 comprende un decodificador 100, 200, 300, 400, 500, la unidad I/O 1110 esta configurada preferiblemente para recibir o tomar como entrada una secuencia de bits que representa una secuencia de video codificada.
El terminal movil 1100 comprende una memoria 1120 configurada para almacenar imagenes codificadas de una secuencia de video codificada. Estas imagenes codificadas se pueden haber generado por medio del propio terminal movil 1100. En tal caso, el terminal movil 1100 comprende preferiblemente un motor o grabador multimedia (no mostrado) junto con un codificador 600, 700, 800, 900, 1000 conectado. De forma alternativa, la secuencia de video codificada se genera por medio de algun otro dispositivo y se transmite al terminal movil 1100.
Las imagenes codificadas se llevan desde la memoria 1120 hasta un decodificador 100, 200, 300, 400, 500. El decodificador 100, 200, 300, 400, 500 decodifica a continuacion las imagenes codificadas y las transforma en imagenes decodificadas. Las imagenes decodificadas se proporcionan a un reproductor multimedia 1130 que esta configurado para traducir las imagenes decodificadas de la secuencia de video en datos de video que se pueden visualizar en un monitor o pantalla 1140 del terminal movil 1100 o conectado al mismo.
En la figura 28, se ha ilustrado que el terminal movil 1100 comprende tanto el decodificador 100, 200, 300, 400, 500 como el reproductor multimedia 1130, con el decodificador 100, 200, 300, 400, 500 implementado como una parte del reproductor multimedia 1130. Sin embargo, esto se ha de considerar meramente como un ejemplo ilustrativo y no limitativo de una realizacion de implementacion del terminal movil 1100. Tambien son posibles implementaciones distribuidas, en las que el decodificador 100, 200, 300, 400, 500 y el reproductor multimedia 1130 se proporcionan en dos dispositivos separados ffsicamente dentro del alcance del terminal movil 1100, tal y como se utiliza en la presente memoria. El monitor 1140 se podna proporcionar tambien como un dispositivo independiente conectado al terminal movil 1100 en el que tiene lugar el procesamiento real de los datos.
El terminal movil 1100 puede ser cualquier dispositivo que tenga funciones de decodificacion multimedia que opere sobre una secuencia de video codificada de imagenes codificadas para de esta forma decodificar las imagenes y hacer que los datos de video esten disponibles. Ejemplos no limitativos de tales terminales moviles 1100 incluyen telefonos moviles y otros reproductores multimedia portatiles, ordenadores, decodificadores, consolas de juegos, etc.
El codificador 600, 700, 800, 900, 1000 de las realizaciones, tal como el que se muestra en cualquiera de las figuras 23-27, y/o el decodificador 100, 200, 300, 400, 500 de las realizaciones, tal como el que se muestra en cualquiera de las figuras 16-20, se puede implementar en un nodo de red 2, tal y como se muestra en la figura 29.
Como se ilustra en la figura 29, el codificador 600, 700, 800, 900, 1000 y/o el decodificador 100, 200, 300, 400, 500 se puede implementar en un nodo de red 2 en una red de comunicacion 1, entre una unidad emisora 3 y una unidad receptora 4. Tal nodo de red 2 puede ser un dispositivo para la conversion de video entre, por ejemplo, diferentes resoluciones de video, frecuencias de trama, calidades, velocidades de bits y normas de codificacion. El nodo de red 2 puede adoptar la forma de una estacion de base de radiocomunicaciones, un nodo-B o de cualquier otro nodo de red en una red de comunicacion 1, tal como un red de radiocomunicaciones.
El codificador y/o el decodificador de las realizaciones se puede proporcionar ademas sobre cualquier elemento que opere sobre una secuencia de bits, tal como un elemento de red de gestion multimedia (MANE, media aware network element, por sus siglas en ingles).
Las realizaciones no estan limitadas a la norma HEVC, sino que se pueden aplicar a cualquier extension de la norma 5 HEVC, tal como a una extension escalable o a una extension multivision, o a un codec de video diferente.
Las realizaciones descritas con anterioridad se han de entender como unos cuantos ejemplos ilustrativos de la presente invencion.
Sin embargo, el alcance de la presente invencion esta definido por medio de las reivindicaciones adjuntas.
Claims (9)
- 5101520253035404550REIVINDICACIONES1. Un metodo ejecutado por medio de un decodificador (100, 200, 400), dicho metodo comprende:determinar (S1), despues de que una imagen actual de una secuencia de bits se haya decodificado y almacenado en una memoria intermedia de imagenes decodificadas (125, 225), un numero de imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida, perteneciendo dicha imagen actual a una capa distinta de la capa mas alta que se decodifica por medio de dicho decodificador (100, 200, 400) de una secuencia de video multi-capa que comprende multiples capas de imagenes;obtener un valor sps_max_num_reorder_pics[HighestTid] de un elemento de sintaxis asociado con dicha capa mas alta, en el que el HighestTid especifica dicha capa mas alta, y el elemento de sintaxis se recupera de un conjunto de parametros de secuencia en la secuencia de bits, y cada capa i de dichas multiples capas tiene un elemento de sintaxis asociado que define un respectivo valor sps_max_num_reorder_pics[i], y dicho valorsps_max_num_reorder_pics[i] indica un maximo numero de imagenes permitido que pueden preceder a cualquier imagen en dicha secuencia de video multi-capa en el orden de decodificacion y que van detras de esa imagen en el orden de salida cuando HighestTid es igual a i;generar como salida (S3) una imagen, que es una primera imagen en el orden de salida de entre dichas imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida, si dicho numero de imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid]; ymarcar (S4) dicha imagen como no necesaria para la salida, si dicho numero de imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid].
- 2. El metodo segun la reivindicacion 1, que comprende ademas:analizar (S10) una cabecera de segmento de dicha imagen actual que se ha de decodificar de dicha secuencia de video multi-capa;determinar (S11) un conjunto de imagenes de referencia para dicha imagen actual a partir del analisis de dicha cabecera de segmento;marcar (S12) todas las imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que no estan presentes en dicho conjunto de imagenes de referencia como no utilizadas como referencia;generar como salida (S13) cero, una o muchas imagenes, las cuales estan marcadas como necesarias para la salida, de entre dichas imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225), y marcar dichas cero, una o muchas imagenes como no necesarias para la salida;vaciar (S14), de dicha memoria intermedia de imagenes decodificadas (125, 225), toda imagen marcada como no utilizada como referencia y como no necesaria para la salida de entre dichas imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225); ydecodificar (S15) dicha imagen actual; en el que la determinacion (S1) de dicho numero de imagenes, la generacion como salida (S3) de dicha imagen y el marcado (S4) de dicha imagen se llevan a cabo despues de la decodificacion (S15) de dicha imagen actual.
- 3. Un decodificador (100, 200) configurado para:determinar, despues de que una imagen actual de una secuencia de bits (10) que representa las imagenes de una secuencia de video multi-capa que comprende multiples capas de imagenes se haya decodificado y almacenado en una memoria intermedia de imagenes decodificadas (125, 225), un numero de imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida, perteneciendo dicha imagen actual a una capa distinta de la capa mas alta que se decodifica por medio de dicho decodificador (100, 200) de dicha secuencia de video multi-capa;obtener un valor sps_max_num_reorder_pics[HighestTid] de un elemento de sintaxis asociado con dicha capa mas alta, en el que el HighestTid especifica dicha capa mas alta, y el elemento de sintaxis se recupera de un conjunto de parametros de secuencia en la secuencia de bits, y cada capa i de dichas multiples capas tiene un elemento de sintaxis asociado que define un respectivo valor sps_max_num_reorder_pics[i], y dicho valorsps_max_num_reorder_pics[i] indica un maximo numero de imagenes permitido que pueden preceder a cualquier imagen en dicha secuencia de video multi-capa en el orden de decodificacion y que van detras de esa imagen en el orden de salida cuando HighestTid es igual a i;generar como salida una imagen, que es una primera imagen en el orden de salida de entre dichas imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la51015202530354045salida, si dicho numero de imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid]; ymarcar dicha imagen como no necesaria para la salida, si dicho numero de imagenes de dicha memoria intermedia de imagenes decodificadas (125, 225) que estan marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid].
- 4. El decodificador segun la reivindicacion 3, en el que dicho decodificador (100, 200, 300, 400, 500) es un decodificador (100, 200, 300, 400, 500) que cumple con la norma de codificacion de video de alta eficiencia, HEVC.
- 5. Un metodo ejecutado por medio de un codificador (600, 700, 900), dicho metodo comprende:determinar (S60), despues de que una imagen actual se haya decodificado y almacenado en una memoria intermedia de imagenes decodificadas (625, 725), un numero de imagenes de dicha memoria intermedia de imagenes decodificadas (625, 725) que estan marcadas como necesarias para la salida, perteneciendo dicha imagen actual a una capa distinta de la capa mas alta que se decodifica por medio de dicho codificador (600, 700, 900) de una secuencia de video multi-capa que comprende multiples capas de imagenes;seleccionar un valor sps_max_num_reorder_pics[HighestTid] para un elemento de sintaxis en un conjunto de parametros de secuencia, en el que HighestTid especifica dicha capa mas alta, cada capa i de dichas multiples capas tiene un valor asociado sps_max_num_reorder_pics[i], y dicho valor sps_max_num_reorder_pics[i] indica un maximo numero de imagenes permitido que pueden preceder a cualquier imagen en dicha secuencia de video multi- capa en el orden de decodificacion y que van detras de esa imagen en el orden de salida cuando HighestTid es igual a i;marcar (S62) como no necesaria para la salida una imagen, que es una primera imagen en el orden de salida de entre dichas imagenes de dicha memoria intermedia de imagenes decodificadas (625, 725) que estan marcadas como necesarias para la salida, si dicho numero de imagenes de dicha memoria intermedia de imagenes decodificadas (625, 725) que estan marcadas como necesarias para la salida es mayor que dicho valor sps_max_num_reorder_pics[HighestTid].
- 6. Un codificador (600, 700) configurado para:determinar, despues de que una imagen actual se haya decodificado y almacenado en una memoria intermedia de imagenes decodificadas (625, 725), un numero de imagenes de dicha memoria intermedia de imagenes decodificadas (625, 725) que estan marcadas como necesarias para la salida, perteneciendo dicha imagen actual a una capa distinta de la capa mas alta que se decodifica por medio de dicho decodificador (600, 700) de una secuencia de video multi-capa que comprende multiples capas de imagenes;seleccionar un valor sps_max_num_reorder_pics[HighestTid] para un elemento de sintaxis en un conjunto de parametros de secuencia, en el que HighestTid especifica dicha capa mas alta, cada capa i de dichas multiples capas tiene un valor asociado sps_max_num_reorder_pics[i], y dicho valor sps_max_num_reorder_pics[i] indica un maximo numero de imagenes permitido que pueden preceder a cualquier imagen en dicha secuencia de video multi- capa en el orden de decodificacion y que van detras de esa imagen en el orden de salida cuando HighestTid es igual a i;marcar como no necesaria para la salida una imagen, que es una primera imagen en el orden de salida de entre dichas imagenes de dicha memoria intermedia de imagenes decodificadas (625, 725) que estan marcadas como necesarias para la salida, si dicho numero de imagenes de dicha memoria intermedia de imagenes decodificadas (625, 725) que estan marcadas como necesarias para la salida es mayor que dicho valorsps_max_num_reorder_pics[HighestTid].
- 7. El codificador segun la reivindicacion 6, en el que dicho codificador (600, 700, 800, 900, 1000) es un codificador (600, 700, 800, 900, 1000) que cumple con la norma de codificacion de video de alta eficiencia, HEVC.
- 8. Un terminal movil (1100) que comprende un decodificador (100, 200, 300, 400, 500) segun cualquiera de las reivindicaciones 3-4 y/o un codificador (600, 700, 800, 900, 1000) segun cualquiera de las reivindicaciones 6-7.
- 9. Un nodo de red (2) que comprende un decodificador (100, 200, 300, 400, 500) segun cualquiera de las reivindicaciones 3-4 y/o un codificador (600, 700, 800, 900, 1000) segun cualquiera de las reivindicaciones 6-7.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261706869P | 2012-09-28 | 2012-09-28 | |
US201261706869P | 2012-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2627741T3 true ES2627741T3 (es) | 2017-07-31 |
Family
ID=49261548
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13770472.2T Active ES2596268T3 (es) | 2012-09-28 | 2013-09-26 | Decodificación y codificación de imágenes de una secuencia de video |
ES16169447.6T Active ES2627741T3 (es) | 2012-09-28 | 2013-09-26 | Decodificación y codificación de imágenes de una secuencia de video |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13770472.2T Active ES2596268T3 (es) | 2012-09-28 | 2013-09-26 | Decodificación y codificación de imágenes de una secuencia de video |
Country Status (23)
Country | Link |
---|---|
US (3) | US9407932B2 (es) |
EP (2) | EP3076673B1 (es) |
JP (2) | JP5820551B1 (es) |
KR (2) | KR101561012B1 (es) |
CN (2) | CN105025303B (es) |
AP (2) | AP3943A (es) |
AU (1) | AU2013322607B2 (es) |
BR (1) | BR112015006535B1 (es) |
CA (1) | CA2886688C (es) |
CL (3) | CL2015000758A1 (es) |
DK (2) | DK3076673T3 (es) |
ES (2) | ES2596268T3 (es) |
HK (1) | HK1206896A1 (es) |
IL (2) | IL237488A (es) |
IN (2) | IN2015DN01879A (es) |
MX (2) | MX338311B (es) |
MY (1) | MY155923A (es) |
PH (1) | PH12015500413B1 (es) |
PL (1) | PL2901680T3 (es) |
RU (3) | RU2607979C2 (es) |
SG (2) | SG10201502830WA (es) |
WO (1) | WO2014049066A1 (es) |
ZA (2) | ZA201501654B (es) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101561012B1 (ko) | 2012-09-28 | 2015-10-15 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 비디오 시퀀스의 픽처의 디코딩 및 인코딩 |
US9942545B2 (en) * | 2013-01-03 | 2018-04-10 | Texas Instruments Incorporated | Methods and apparatus for indicating picture buffer size for coded scalable video |
US10264272B2 (en) * | 2013-10-15 | 2019-04-16 | Qualcomm Incorporated | Device and method for scalable coding of video information |
US9648348B2 (en) * | 2013-10-23 | 2017-05-09 | Qualcomm Incorporated | Multi-layer video file format designs |
US9654794B2 (en) * | 2014-01-03 | 2017-05-16 | Qualcomm Incorporated | Methods for coding an inter-layer reference picture set (RPS) and coding end of bitstream (EOB) network access layer (NAL) units in multi-layer coding |
US20150195564A1 (en) * | 2014-01-03 | 2015-07-09 | Qualcomm Incorporated | Method for coding a reference picture set (rps) in multi-layer coding |
CN104053002A (zh) * | 2014-06-05 | 2014-09-17 | 乐视网信息技术(北京)股份有限公司 | 视频解码方法和视频解码装置 |
CN108141619B (zh) * | 2015-10-19 | 2020-11-20 | 联发科技股份有限公司 | 管理已解码图像缓存器的方法及装置 |
US10116576B2 (en) * | 2015-10-19 | 2018-10-30 | Samsung Electronics Co., Ltd. | Methods and apparatus for random access of HEVC bitstream for MMT |
US10516891B2 (en) | 2015-11-20 | 2019-12-24 | Intel Corporation | Method and system of reference frame caching for video coding |
WO2017154563A1 (ja) * | 2016-03-07 | 2017-09-14 | ソニー株式会社 | 符号化装置および符号化方法 |
US10623755B2 (en) * | 2016-05-23 | 2020-04-14 | Qualcomm Incorporated | End of sequence and end of bitstream NAL units in separate file tracks |
CN107592543B (zh) * | 2016-07-06 | 2019-12-24 | 北京大学 | 视频解码处理方法及装置 |
TWI690202B (zh) * | 2018-12-28 | 2020-04-01 | 瑞昱半導體股份有限公司 | 用於控制媒體播放器中之串流緩衝器的方法與相關的緩衝裝置 |
JP7323099B2 (ja) * | 2019-09-24 | 2023-08-08 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | マルチレイヤビデオビットストリームのためのdpbパラメータのシグナリング |
EP4044598A4 (en) * | 2019-11-05 | 2022-12-07 | LG Electronics Inc. | METHOD AND DEVICE FOR PROCESSING IMAGE INFORMATION FOR IMAGE/VIDEO CODING |
KR20230017236A (ko) * | 2020-05-18 | 2023-02-03 | 엘지전자 주식회사 | 픽처 출력 관련 정보 기반 영상 또는 비디오 코딩 |
KR20230019845A (ko) | 2020-06-08 | 2023-02-09 | 바이트댄스 아이엔씨 | 코딩된 비디오 픽처에서 슬라이스 카운트의 제약들 |
CN112055231B (zh) * | 2020-08-31 | 2021-10-15 | 浙江大华技术股份有限公司 | 视频解码方法、解码装置、解码器及电子设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000013790A (ja) * | 1998-06-19 | 2000-01-14 | Sony Corp | 画像符号化装置および画像符号化方法、画像復号装置および画像復号方法、並びに提供媒体 |
RU2374787C2 (ru) * | 2005-03-10 | 2009-11-27 | Квэлкомм Инкорпорейтед | Структура декодера для оптимизированного управления обработкой ошибок в потоковой передаче мультимедийных данных |
AU2006223287C1 (en) | 2005-03-10 | 2010-10-21 | Qualcomm Incorporated | A decoder architecture for optimized error management in streaming multimedia |
JP2009500941A (ja) | 2005-07-08 | 2009-01-08 | エルジー エレクトロニクス インコーポレイティド | 情報を圧縮/圧縮解除するためにビデオ信号のコーディング情報をモデリングする方法 |
KR101154999B1 (ko) * | 2005-07-08 | 2012-07-09 | 엘지전자 주식회사 | 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는 방법 |
US7894523B2 (en) | 2005-09-05 | 2011-02-22 | Lg Electronics Inc. | Method for modeling coding information of a video signal for compressing/decompressing coding information |
US7656410B2 (en) * | 2006-03-31 | 2010-02-02 | Intel Corporation | Image buffering techniques |
US7991236B2 (en) | 2006-10-16 | 2011-08-02 | Nokia Corporation | Discardable lower layer adaptations in scalable video coding |
US8265140B2 (en) | 2008-09-30 | 2012-09-11 | Microsoft Corporation | Fine-grained client-side control of scalable media delivery |
JP2010252151A (ja) * | 2009-04-17 | 2010-11-04 | Renesas Electronics Corp | 再生装置、及び同期再生方法 |
US20110235709A1 (en) | 2010-03-25 | 2011-09-29 | Apple Inc. | Frame dropping algorithm for fast adaptation of buffered compressed video to network condition changes |
US8885729B2 (en) * | 2010-12-13 | 2014-11-11 | Microsoft Corporation | Low-latency video decoding |
PL3410725T3 (pl) | 2011-06-30 | 2022-02-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Sygnalizacja obrazu referencyjnego |
TWI587693B (zh) * | 2011-06-30 | 2017-06-11 | 微軟技術授權有限責任公司 | 用於減少視訊編碼及解碼中之延遲的方法、系統及電腦可讀取媒體 |
US9351005B2 (en) * | 2012-09-24 | 2016-05-24 | Qualcomm Incorporated | Bitstream conformance test in video coding |
KR101561012B1 (ko) * | 2012-09-28 | 2015-10-15 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 비디오 시퀀스의 픽처의 디코딩 및 인코딩 |
-
2013
- 2013-09-26 KR KR1020157010551A patent/KR101561012B1/ko active IP Right Grant
- 2013-09-26 ES ES13770472.2T patent/ES2596268T3/es active Active
- 2013-09-26 MY MYPI2015700965A patent/MY155923A/en unknown
- 2013-09-26 PL PL13770472T patent/PL2901680T3/pl unknown
- 2013-09-26 AP AP2015008308A patent/AP3943A/en active
- 2013-09-26 SG SG10201502830WA patent/SG10201502830WA/en unknown
- 2013-09-26 CN CN201510411514.0A patent/CN105025303B/zh active Active
- 2013-09-26 DK DK16169447.6T patent/DK3076673T3/en active
- 2013-09-26 DK DK13770472.2T patent/DK2901680T3/en active
- 2013-09-26 MX MX2015003724A patent/MX338311B/es active IP Right Grant
- 2013-09-26 CA CA2886688A patent/CA2886688C/en active Active
- 2013-09-26 SG SG11201501396RA patent/SG11201501396RA/en unknown
- 2013-09-26 KR KR1020157011085A patent/KR101729425B1/ko active IP Right Grant
- 2013-09-26 AU AU2013322607A patent/AU2013322607B2/en not_active Ceased
- 2013-09-26 RU RU2015115939A patent/RU2607979C2/ru active
- 2013-09-26 BR BR112015006535-0A patent/BR112015006535B1/pt active IP Right Grant
- 2013-09-26 CN CN201380050705.8A patent/CN104685889B/zh active Active
- 2013-09-26 EP EP16169447.6A patent/EP3076673B1/en active Active
- 2013-09-26 IN IN1879DEN2015 patent/IN2015DN01879A/en unknown
- 2013-09-26 ES ES16169447.6T patent/ES2627741T3/es active Active
- 2013-09-26 MX MX2015005450A patent/MX351197B/es unknown
- 2013-09-26 EP EP13770472.2A patent/EP2901680B1/en active Active
- 2013-09-26 RU RU2016140556A patent/RU2016140556A/ru not_active Application Discontinuation
- 2013-09-26 US US14/116,071 patent/US9407932B2/en active Active
- 2013-09-26 IN IN2716DEN2015 patent/IN2015DN02716A/en unknown
- 2013-09-26 JP JP2015533584A patent/JP5820551B1/ja active Active
- 2013-09-26 AP AP2015008469A patent/AP2015008469A0/xx unknown
- 2013-09-26 RU RU2015121357A patent/RU2623896C2/ru active
- 2013-09-26 WO PCT/EP2013/070093 patent/WO2014049066A1/en active Application Filing
-
2015
- 2015-02-26 PH PH12015500413A patent/PH12015500413B1/en unknown
- 2015-03-01 IL IL237488A patent/IL237488A/en active IP Right Grant
- 2015-03-11 ZA ZA2015/01654A patent/ZA201501654B/en unknown
- 2015-03-25 CL CL2015000758A patent/CL2015000758A1/es unknown
- 2015-04-07 ZA ZA2015/02295A patent/ZA201502295B/en unknown
- 2015-04-12 IL IL238190A patent/IL238190B/en active IP Right Grant
- 2015-04-15 CL CL2015000952A patent/CL2015000952A1/es unknown
- 2015-05-12 JP JP2015097696A patent/JP6058736B2/ja active Active
- 2015-07-16 US US14/801,142 patent/US9706225B2/en active Active
- 2015-07-28 HK HK15107236.2A patent/HK1206896A1/zh unknown
-
2017
- 2017-05-31 US US15/609,173 patent/US9848203B2/en active Active
-
2019
- 2019-02-15 CL CL2019000428A patent/CL2019000428A1/es unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2627741T3 (es) | Decodificación y codificación de imágenes de una secuencia de video | |
US11653011B2 (en) | Decoded picture buffer removal | |
US10986357B2 (en) | Signaling change in output layer sets | |
ES2776147T3 (es) | Construcción de lista de imágenes de referencia para codificación de video | |
ES2748561T3 (es) | Unidades de acceso IRAP y conmutación y empalme de flujos de bits | |
US10284862B2 (en) | Signaling indications and constraints | |
ES2914871T3 (es) | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico | |
ES2698554T3 (es) | Acceso aleatorio con gestión avanzada de memoria intermedia de imágenes codificadas en codificación de vídeo | |
US20170134742A1 (en) | Slice type and decoder conformance | |
US20170171563A1 (en) | Restrictions on signaling | |
US20150103924A1 (en) | On operation of decoded picture buffer for interlayer pictures | |
US20170019666A1 (en) | Constrained reference picture parameters | |
ES2949165T3 (es) | Dispositivo, método y programa de decodificación predictiva de imágenes dinámicas | |
AU2015224479B2 (en) | Decoding and encoding of pictures of a video sequence |