ES2614910T3 - Concepto de flujo de datos de vídeo - Google Patents

Concepto de flujo de datos de vídeo Download PDF

Info

Publication number
ES2614910T3
ES2614910T3 ES13735241.5T ES13735241T ES2614910T3 ES 2614910 T3 ES2614910 T3 ES 2614910T3 ES 13735241 T ES13735241 T ES 13735241T ES 2614910 T3 ES2614910 T3 ES 2614910T3
Authority
ES
Spain
Prior art keywords
packets
units
sequence
decoding
payload
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES13735241.5T
Other languages
English (en)
Inventor
Thomas Schierl
Valeri GEORGE
Anastasia Henkel
Detlev Marpe
Karsten GRÜNEBERG
Robert SKUPIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GE Video Compression LLC
Original Assignee
GE Video Compression LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48782303&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2614910(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by GE Video Compression LLC filed Critical GE Video Compression LLC
Application granted granted Critical
Publication of ES2614910T3 publication Critical patent/ES2614910T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/67Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving unequal error protection [UEP], i.e. providing protection according to the importance of the data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64776Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

Flujo de datos de vídeo que tiene contenido de vídeo (16) codificado en el mismo en unidades de subporciones (24) de instantáneas (18) del contenido de vídeo (16), estando cada subporción (24) codificada respectivamente en uno o más paquetes de la carga útil (32) de una secuencia (34) de paquetes del flujo de datos de vídeo (22), estando dividida la secuencia (34) de paquetes en una secuencia de unidades de acceso (30), de manera que cada unidad de acceso (30) recopila los paquetes de la carga útil (32) relacionados con una instantánea respectiva (18) del contenido de vídeo (16), en el que la secuencia (34) de paquetes tiene intercalada en la misma paquetes de control de temporización (36), de manera que los paquetes de control de temporización (36) subdividen las unidades de acceso (30) en unidades de decodificación (38), de manera que al menos algunas unidades de acceso (30) se subdividen en dos o más unidades de decodificación (38), señalizando cada paquete de control de temporización (38) un tiempo de recuperación de la memoria intermedia del decodificador para una unidad de decodificación (38), los paquetes de la carga útil (32) de la cual, siguen el paquete de control de temporización (38) respectivo en la secuencia (34) de paquetes.

Description

5
10
15
20
25
30
35
40
45
50
55
60
Concepto de flujo de datos de v^deo DESCRIPCION
Campo de la invencion
La presente solicitud esta relacionada con los conceptos de flujo de datos de video, que son en particular, ventajosos con relacion a las aplicaciones de bajo retardo.
HEVC [2] permite diferentes medios de senalizacion de la Sintaxis de Alto Nivel en la capa de aplicacion. Tales medios son el encabezamiento de la unidad NAL, Conjuntos de Parametros y Mensajes de Informacion Complementaria de Mejora (SEI). Los ultimos no se utilizan en el proceso de decodificacion. Otros medios de senalizacion de la Sintaxis de Alto Nivel se originan de las especificaciones del protocolo de transporte respectivo, tales como el Protocolo de Transporte MPEG2 [3] o el Protocolo de Transporte en Tiempo Real [4], y sus especificaciones espedficas de la carga util, por ejemplo, las recomendaciones para H.264/AVC [5], codificacion de video escalable (SVC) [6] o HEVC [7]. Tales protocolos de transporte pueden introducir senalizacion de Alto Nivel que emplea estructuras y mecanismos similares como la senalizacion de Alto Nivel de la capa de aplicacion respectiva espedfica del codec, por ejemplo HEVC [2]. Un ejemplo de tal senalizacion es la unidad NAL de la Informacion de la Escalabilidad del Contenido de la Carga Util (PACSI), como se describe en [6], que proporciona informacion complementaria para la capa de transporte.
Para los conjuntos de parametros, HEVC incluye el Conjunto de Parametros de Video (VPS), que recopila la informacion del flujo mas importante a utilizarse por la capa de aplicacion en una ubicacion unica y central. En enfoques anteriores, esta informacion necesitaba reunirse desde multiples Conjuntos de Parametros y encabezamientos de la unidad NAL.
Antes de la presente solicitud, el estado de la norma con respecto a las operaciones de la Memoria Intermedia de la Instantanea Codificada (CPB) del Decodificador de Referencia Hipotetico (HRD), y toda la sintaxis relacionada proporcionada en el Conjunto de Parametros de la Secuencia (SPS)/ Informacion de la Usabilidad de Video (VUI), SEI de Temporizacion de Instantanea, SEI del Periodo de Almacenamiento en Memoria Intermedia, asf como la definicion de la unidad de decodificacion, que describen una sub-instantanea y la sintaxis de los Cortes Dependientes como estan presentes en el encabezamiento del corte, asf como el Conjunto de Parametros de la Instantanea (PPS), eran como sigue.
Con el fin de permitir una operacion CPB con bajo retardo a nivel de la sub-instantanea, se han propuesto e integrado operaciones CPB de la sub-instantanea en la norma del borrador del HEVC 7 JCTVC-I1003 [2]. En este punto especialmente, la unidad de decodificacion se ha definido en la seccion 3 de [2] como:
unidad de decodificacion: Una unidad de acceso o un subconjunto de una unidad de acceso. Si SubPicCpbFlag es igual a 0, una unidad de decodificacion es una unidad de acceso. De otra manera, una unidad de decodificacion consiste en una o mas unidades NAL VCL en una unidad de acceso y las unidades no NAL VCL asociadas. Para la primera unidad NAL VCL en una unidad de acceso, las unidades no NAL VCL asociadas y las unidades NAL de los datos de relleno, si las hay, siguen inmediatamente a la primera unidad NAL VCL y todas las unidades no NAL VCL en la unidad de acceso que precede la primera unidad NAL VCL. Para una unidad NAL VCL que no es la primera unidad NAL VCL en una unidad de acceso, las unidades no NAL VCL asociadas son la unidad NAL de datos de relleno, si las hay, que siguen inmediatamente a la unidad NAL VCL.
En la norma definida hasta ese momento, la “Temporizacion de la eliminacion de la unidad de decodificacion y la decodificacion de la unidad de decodificacion” se ha descrito y agregado al Anexo C “Decodificador de referencia hipotetico”. Con el fin de senalizar la temporizacion de la sub-instantanea, el mensaje SEI del periodo de almacenamiento en memoria intermedia y el mensaje SEI de temporizacion de la instantanea, asf como los parametros HRD en la VUI, se han extendido para soportar las unidades de decodificacion, como las unidades de la sub-instantanea.
La sintaxis del mensaje SEI del periodo de almacenamiento en memoria intermedia de [2] se muestra en la Figura 1.
Cuando NalHrdBpPresentFlag o VclHrdBpPresentFlag son iguales a 1, un mensaje SEI del periodo de almacenamiento en memoria intermedia puede asociarse con cada unidad de acceso en el flujo de bits, y un mensaje SEI del periodo de almacenamiento en memoria intermedia debera asociarse con cada unidad de acceso RAP, y con cada unidad de acceso asociada con un mensaje SEI del punto de recuperacion.
Para algunas aplicaciones, la presencia frecuente de un mensaje SEI del periodo de almacenamiento en memoria intermedia puede ser deseable.
5
10
15
20
25
30
35
40
45
50
55
60
Un periodo de almacenamiento en memoria intermedia se especifico como el conjunto de unidades de acceso entre dos instancias del mensaje SEI del periodo de almacenamiento en memoria intermedia en un orden de decodificacion.
La semantica era como sigue:
seq_parameter_set_id especifica el conjunto de parametros de la secuencia que contiene los atributos HED de la secuencia. El valor de seq_parameter_set_id debera ser igual al valor de seq_parameter_set_id en el conjunto de parametros de la instantanea referenciado por la instantanea codificada primaria asociada con el mensaje SEI del periodo de almacenamiento en memoria intermedia. El valor de seq_parameter_set_id debera estar en el intervalo de 0 a 31, inclusive.
rap_cpb_params_present_flag igual a 1 especifica la presencia de los elementos de la sintaxis initial_alt_cpb_removal_delay[ SchedSelldx ] e initial_alt_cpb_removal_delay_offset[ SchedSelldx ]. Cuando no esta presente, el valor de rap_cpb_params_present_flag se infiere para que sea igual a 0. Cuando la instantanea asociada no es una instantanea CRA ni una instantanea BLA, el valor de rap_cpb_params_present_flag debera ser igual a 0.
initial_cpb_removal_delay[ SchedSelldx ] e initial_alt_cpb_removal_delay[ SchedSelldx ] especifican los retardos de la eliminacion de CPB inicial para el CPB de orden SchedSelldx. Los elementos de la sintaxis tienen una longitud en bits dada por initial_cpb_removal_delay_length_minus1 + 1, y estan en unidades de un reloj de 90 kHz. Los valores de los elementos de la sintaxis no deben ser iguales a 0 y no deben superar 90000 * (CpbSize[ SchedSelldx ] + BitRate[ SchedSelldx ] ), el equivalente del tiempo del tamano de CPB en unidades de reloj de 90 kHz.
initial_cpb_removal_delay_offset[ SchedSelldx ] e initial_alt_cpb_removal_delay_offset[ SchedSelldx ] se utilizan para el CPB de orden SchedSelldx para especificar el tiempo de entrega inicial de las unidades de datos codificadas al CPB. Los elementos de la sintaxis tienen una longitud en bits dada por initial_cpb_removal_delay_length_minus1 + 1 y estan en unidades de un reloj de 90 kHz. Estos elementos de la sintaxis no se utilizan por los decodificadores y pueden necesitarse solo por el planificador de entrega (HSS).
En toda la secuencia de video codificada, la suma de initial_cpb_removal_delay[ SchedSelldx ] e initial_cpb_removal_delay_offset[SchedSelldx] debera ser constante para cada valor de SchedSelldx, y la suma de initial_alt_cpb_removal_delay[ SchedSelldx ] e initial_alt_cpb_removal_delay_offset[ SchedSelldx ] debera ser constante para cada valor de SchedSelldx.
La sintaxis del mensaje SEl de temporizacion de la instantanea de [2] se muestra en la Figura 2.
La sintaxis del mensaje SEl de temporizacion de la instantanea era dependiente del contenido del conjunto de parametros de la secuencia que este activo para la instantanea codificada asociada con el mensaje SEl de temporizacion de la instantanea. Sin embargo, a menos que el mensaje SEl de temporizacion de la instantanea de una unidad de acceso lDR o BLA este precedido por un mensaje SEl del periodo de almacenamiento en memoria intermedia dentro de la misma unidad de acceso, la activacion del conjunto de parametros de la secuencia asociado (y para las instantaneas lDR o BLA que no son la primera instantanea en el flujo de bits, la determinacion de que la instantanea codificada es una instantanea lDR o una instantanea BLA) no tiene lugar hasta la decodificacion de la primera unidad NAL del corte codificado de la instantanea codificada. Puesto que la unidad NAL del corte codificado de la instantanea codificada sigue al mensaje SEl de temporizacion de la instantanea en el orden de la unidad NAL, puede haber muchos casos en los cuales es necesario que el decodificador almacene el RBSP que contiene el mensaje SEl de temporizacion de la instantanea hasta determinar los parametros del parametro de la secuencia que estaran activos para la instantanea codificada, y a continuacion realizar el analisis del mensaje SEl de temporizacion de la instantanea.
La presencia del mensaje SEl de temporizacion de la instantanea en el flujo de bits se especifico como sigue.
- Si CpbDpbDelaysPresentFlag es igual a 1, un mensaje SEl de temporizacion de la instantanea debera estar presente en cada unidad de acceso de la secuencia de video codificada.
- De otra manera (CpbDpbDelaysPresentFlag es igual a 0), ningun mensaje SEl de temporizacion de la instantanea debera estar presente en ninguna unidad de acceso de la secuencia de video codificada.
La semantica se definio como sigue:
cpb_removal_delay especifica cuantos tictacs del reloj esperar despues de la eliminacion de la CPB de la unidad de acceso asociada con el mensaje SEl del periodo de almacenamiento en memoria intermedia mas reciente en una unidad de acceso precedente, antes de eliminar de la memoria intermedia, los datos de la unidad
5
10
15
20
25
30
35
40
45
50
55
60
de acceso asociada con el mensaje SEI de temporizacion de la instantanea. Este valor tambien se utiliza para calcular un posible tiempo de llegada mas anterior de los datos de la unidad de acceso en la CPB para el HSS. El elemento de la sintaxis es un codigo de longitud fija cuya longitud en bits se da por cpb removal delay_length minusl + 1. cpb_removal_delay es el resto de un contador de un modulo
2(cpb_removal_delay_length_minus1 + T)
El valor de cpb_removal_delay_length_minus1 que determina la longitud (en bits) del elemento de la sintaxis cpb_removal_delay es el valor de cpb_removal_delay_length_minus1 codificado en el conjunto de parametros de la secuencia que esta activo para la instantanea codificada primaria asociada con el mensaje SEI de temporizacion de la instantanea, aunque cpb_removal_delay especifica un numero de tictacs del reloj con relacion al tiempo de eliminacion de la unidad de acceso precedente que contiene un mensaje SEI del periodo de almacenamiento en memoria intermedia, que puede ser una unidad de acceso de una secuencia de video codificada diferente. dpb_output_delay se utiliza para calcular el tiempo de salida DPB de la instantanea. Especifica cuantos tictacs del reloj esperar despues de la eliminacion de la ultima unidad de decodificacion en una unidad de acceso de la CPB antes de que la instantanea decodificada se emita de la DPB.
Una instantanea no se elimina de la DPB en su tiempo de salida, cuando esta marcado todavfa como “utilizado para la referencia a corto plazo” o “utilizado para la referencia a largo plazo”.
Solo un dpb_output_delay se especifica para una instantanea decodificada.
La longitud del elemento de la sintaxis dpb_output_delay se da en bits por dpb_output_delay_length_minus1 + 1. Cuando sps_max_dec_pic_buffering[ max_temporal_layers_minus1 ] es igual a 0, dpb_output_delay debera ser igual a 0.
El tiempo de salida derivado de dpb_output_delay de cualquier cuadro que se emita desde una temporizacion de salida conforme al decodificador, debera preceder el tiempo de salida derivado de dpb_output_delay de todas las instantaneas en cualquier secuencia de video codificada subsiguiente en el orden de decodificacion.
El orden de salida de la instantanea establecido por los valores de este elemento de la sintaxis debera ser el mismo orden establecido por los valores de PicOrderCntVal.
Para las instantaneas que no se emiten por el proceso de “antiguedad” debido a que preceden, en el orden de decodificacion, una instantanea IDR o BLA con no_output_of_prior_pics_flag igual a 1 o inferida para que sea igual a 1, los tiempos de salida derivados de dpb_output_delay deberan incrementarse con el valor creciente de PicOrderCntVal con relacion a todas las instantaneas dentro de la misma secuencia de video codificada. num_decoding_units_minus1 mas 1 especifica el numero de unidades de decodificacion en la unidad de acceso con la que el mensaje SEI de temporizacion de la instantanea esta asociado. El valor de num_decoding_units_minus1 debera estar en el intervalo de 0 a PicWidthInCtbs * PicHeightInCtbs - 1, inclusive. num_nalus_in_du_minus1[ i ] mas 1 especifica el numero de unidades NAL en la i-esima unidad de decodificacion de la unidad de acceso con la que el mensaje SEI de temporizacion de la instantanea esta asociado. El valor de num_nalus_in_du_minus1[ i ] debera estar en el intervalo de 0 a PicWidthInCtbs * PicHeightInCtbs - 1, inclusive.
La primera unidad de decodificacion de la unidad de acceso consiste en las primeras unidades NAL num_nalus_in_du_minus1[ 0 ] + 1 consecutivas en el orden de decodificacion en la unidad de acceso. La i-esima (con i mayor que 0) unidad de decodificacion de la unidad de acceso, consiste en las unidades NAL num_nalus_in_du_minus1[ i ] + 1 consecutivas que siguen inmediatamente a la ultima unidad NAL en la unidad de decodificacion previa de la unidad de acceso, en el orden de decodificacion. Debera haber al menos una unidad NAL VCL en cada unidad de decodificacion. Todas las unidades no NAL VCL asociadas con una unidad NAL VCL deberan incluirse en la misma unidad de decodificacion.
du_cpb_removal_delay[ i ] especifica cuantos tictacs del reloj de la sub-instantanea esperar despues de la eliminacion de la CPB de la primera unidad de decodificacion en la unidad de acceso asociada con el mensaje SEI del periodo de almacenamiento en memoria intermedia mas reciente en una unidad de acceso precedente, antes de eliminar de la CPB la i-esima unidad de decodificacion en la unidad de acceso asociada con el mensaje SEI de temporizacion de la instantanea. Este valor tambien se utiliza para calcular un posible tiempo de llegada mas anterior de los datos de la unidad de decodificacion en la CPB para el HSS. El elemento de la sintaxis es un codigo de longitud fija cuya longitud en bits esta dada por cpb removal_delay_length_minus1 + 1. du_cpb_removal_delay[ i ] es el resto de un contador de un modulo 2(cpb-rem°val-delay-length-minus1 + 1
El valor de cpb_removal_delay_length_minus1 que determina la longitud (en bits) del elemento de la sintaxis du_cpb_removal_delay[ i ] es el valor de cpb_removal_delay_length_minus1 codificado en el conjunto de parametros de la secuencia que esta activo para la instantanea codificada asociada con el mensaje SEI de temporizacion de la instantanea, aunque du_cpb_removal_delay[ i ] especifica un numero de tictacs del reloj de la sub-instantanea con relacion al tiempo de eliminacion de la primera unidad de decodificacion en la unidad de acceso precedente que
5
10
15
20
25
30
35
40
45
50
55
60
contiene un mensaje SEI del periodo de almacenamiento en memoria intermedia, que puede ser una unidad de acceso de una secuencia de video codificada diferente.
Alguna informacion estaba contenida en la sintaxis VUI de [2]. La sintaxis de los parametros VUI de [2] se muestra en la Figura 3. La sintaxis de los parametros HRD de [2] se muestra en la Figura 4. La semantica se define como sigue:
sub_pic_cpb_params_present_flag igual a 1 especifica que los parametros del retardo de la eliminacion del nivel de la sub-instantanea CPB estan presentes y que la CPB puede operar al nivel de la unidad de acceso o el nivel de la sub-instantanea. sub_pic_cpb_params_present_flag igual a 0 especifica que los parametros del retardo de la eliminacion al nivel de la sub-instantanea CPB no estan presentes y la CPB opera al nivel de la unidad de acceso. Cuando sub_pic_cpb_params_present_flag no esta presente, su valor se infiere para que sea igual a 0.
num_units_in_sub_tick es el numero de unidades de tiempo de un reloj que opera a la frecuencia time_scale Hz que corresponde a un incremento (llamado un tictac del reloj de la sub-instantanea) de un contador de tictacs del reloj de la sub-instantanea. num_units_in_sub_tick debe ser mayor que 0. Un tictac del reloj de la sub- instantanea es el intervalo mmimo de tiempo que puede representarse en los datos codificados cuando sub_pic_cpb_params_present_flag es igual a 1.
tiles_fixed_structure_flag igual a 1 indica que cada conjunto de parametros de la instantanea que esta activo en la secuencia de video codificada tiene el mismo valor de los elementos de la sintaxis num_tile_columns_minus1, num_tile_rows_minus1, uniform_spacing_flag, column_width[ i ], row_height[ i ] y loop_filter_across_tiles_enabled_flag, cuando estan presentes. tiles_fixed_structure_flag igual a 0 indica que los elementos de la sintaxis de las piezas en diferentes conjuntos de parametros de la instantanea pueden o no tener el mismo valor. Cuando el elemento de la sintaxis tiles_fixed_structure_flag no esta presente, se infiere para que sea igual a 0.
La senalizacion de tiles_fixed_structure_flag igual a 1 es una garantfa para un decodificador de que cada instantanea en la secuencia de video codificada tiene el mismo numero de piezas distribuidas de la misma manera, que pueden ser utiles para la asignacion de la carga de trabajo en el caso de decodificacion con multiples hilos.
Los datos de relleno de [2] se senalizaron utilizando la sintaxis RBSP de los datos del filtro mostrada en la Figura 5.
El decodificador de referencia hipotetico de [2] utilizado para verificar el flujo de bits y la conformidad del decodificador se definio como sigue:
Dos tipos de flujos de bits se someten a la verificacion de la conformidad HRD para esta Recomendacion | Norma Internacional. El primero de tales tipos de flujo de bits, llamado el flujo de bits del Tipo I, es un flujo de la unidad NAL que contiene solo las unidades nAl VCL y las unidades NAL de los datos de relleno para todas las unidades de acceso en el flujo de bits. El segundo tipo de flujo de bits, llamado el flujo de bits del Tipo II, contiene, ademas de las unidades NAL VCL y las unidades NAL de los datos de relleno para todas las unidades de acceso en el flujo de bits, al menos uno de lo siguiente:
- unidades no NAL VCL adicionales aparte de las unidades NAL de los datos de relleno,
- todos los elementos de la sintaxis leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes, y trailing_zero_8bits que forman un flujo de bytes del flujo de la unidad NAL.
La Figura 6 muestra los puntos de conformidad de los tipos de flujo de bits verificados por el HRD de [2].
Se utilizan dos tipos de conjuntos de parametros HRD (parametros HRD NAL y parametros HRD VCL). Los conjuntos de parametros HRD se senalizan a traves de la informacion de usabilidad de video, que es parte de la estructura de la sintaxis del conjunto de parametros de la secuencia.
Todos los conjuntos de parametros de la secuencia y los conjuntos de parametros de la instantanea referidos en las unidades NAL VCL, y el periodo de almacenamiento en memoria intermedia y los mensajes SEI de temporizacion de la instantanea, correspondientes, deberan transportarse al HRD, de una manera puntual, ya sea en el flujo de bits, o mediante otros medios.
La especificacion para la “presencia” de unidades no NAL VCL tambien se satisface cuando aquellas unidades NAL (o solo algunas de ellas) se transportan a los decodificadores (o al HRD) mediante otros medios no especificados en esta Recomendacion | Norma Internacional. Con el proposito de contar los bits, solo se cuentan los bits apropiados que estan realmente presentes en el flujo de bits.
Como un ejemplo, la sincronizacion de una unidad no NAL VCL, transportada por medios diferentes a la presencia
5
10
15
20
25
30
35
40
45
50
55
60
en el flujo de bits, con las unidades NAL que estan presentes en el flujo de bits, puede lograrse indicando dos puntos en el flujo de bits, entre los cuales la unidad no NAL VCL habna estado presente en el flujo de bits, si el codificador hubiera decidido transportarla en el flujo de bits.
Cuando el contenido de una unidad no NAL VCL se transporta para la aplicacion por algunos medios diferentes a la presencia dentro del flujo de bits, la representacion del contenido de la unidad no NAL VCL no requiere utilizar la misma sintaxis especificada en este anexo.
Observese que cuando la informacion HRD esta contenida dentro del flujo de bits, es posible verificar la conformidad de un flujo de bits con los requisitos de esta subclausula, basandose unicamente en la informacion contenida en el flujo de bits. Cuando la informacion HRD no esta presente en el flujo de bits, como es el caso para todos los flujos de bits del Tipo I “independientes”, la conformidad solo puede verificarse cuando los datos HRD se suministran por algun otro medio no especificado en esta Recomendacion | Norma Internacional.
El HRD contiene una memoria intermedia de la instantanea codificada (CPB), un proceso de decodificacion instantaneo, una memoria intermedia de la instantanea decodificada (DPB), y un recorte de salida, como se muestra en la Figura 7.
El tamano de CPB (numero de bits) es CpbSize[ SchedSelldx ]. El tamano de DPB (numero de memorias intermedias de almacenamiento de la instantanea) para la capa temporal X es sps_max_dec_pic_buffering [ X ] para cada X en el intervalo de 0 a sps_max_temporal_layers_minus1, inclusive.
La variable SubPicCpbPreferredFlag esta especificada por los medios externos, o cuando no esta especificada por los medios externos, se fija a 0.
La variable SubPicCpbFlag se deriva como sigue:
SubPicCpbFlag = SubPicCpbPreferredFlag && sub_pic_cpb_params_present_flag
Si SubPicCpbFlag es igual a 0, la CPB opera al nivel de la unidad de acceso y cada unidad de decodificacion es una unidad de acceso. De otra manera, la CPB opera al nivel de la sub-instantanea y cada unidad de decodificacion es un subconjunto de una unidad de acceso.
El HRD opera como sigue. Los datos asociados con las unidades de decodificacion que fluyen en la CPB de acuerdo con la planificacion de llegada especificada, se suministran por el HSS. Los datos asociados con cada unidad de decodificacion se eliminan y decodifican instantaneamente por el proceso de decodificacion instantaneo en los tiempos de eliminacion de cPb. Cada instantanea decodificada se coloca en la DPB. Una instantanea decodificada se elimina de la DPB en el tiempo de salida DPB mas tardfo o en el tiempo que ya no se vuelve necesario para la referencia de inter-prediccion.
El HRD se inicializa como se especifico por el periodo de almacenamiento en memoria intermedia SEI. La temporizacion de eliminacion de las unidades de decodificacion de la CPB y la temporizacion de salida de las instantaneas decodificados de la DPB se especifican en el mensaje SEI de temporizacion de la instantanea. Toda la informacion de temporizacion que se relaciona con una unidad de decodificacion espedfica, deberan llegar antes del tiempo de eliminacion CPB de la unidad de decodificacion.
El HRD se utiliza para verificar la conformidad de los flujos de bits y los decodificadores.
Aunque la conformidad se garantiza bajo la suposicion de que todas las tasas de instantanea y relojes utilizados para generar el flujo de bits coinciden exactamente con los valores senalizados en el flujo de bits, en un sistema real cada uno de estos puede variar del valor senalizado o especificado.
Toda la aritmetica se hace con los valores reales, de manera que no pueden propagarse errores por el redondeo. Por ejemplo, el numero de bits en una CPB justo antes o despues de la eliminacion de una unidad de decodificacion, no necesariamente es un entero.
La variable tc se deriva como sigue y se llama un tictac del reloj:
tc = num_units_in_tick + time_scale
La variable tc_sub se deriva como sigue y se llama un tictac del reloj de la sub-instantanea:
tc_sub = num_units_in_sub_tick ^ time_scale
5
10
15
20
25
30
35
40
45
50
55
60
Lo siguiente se especifica para expresar las restricciones:
- Sea la unidad de acceso n la n-esima unidad de acceso en el orden de decodificacion con la primera unidad de acceso siendo la unidad de acceso 0.
- Sea la instantanea n la instantanea codificada o la instantanea decodificada de la unidad de acceso n.
- Sea la unidad de decodificacion m la m-esima unidad de decodificacion en el orden de decodificacion con la primera unidad de decodificacion siendo la unidad de decodificacion 0.
En [2], la sintaxis del encabezamiento del corte permite los llamados cortes dependientes.
La Figura 8 muestra la sintaxis del encabezamiento del corte de [2].
La semantica del encabezamiento del corte se define como sigue:
dependent_slice_flag igual a 1 especifica que el valor de cada elemento de la sintaxis del encabezamiento del corte no presente, se infiere para que sea igual al valor del elemento de la sintaxis del encabezamiento del corte correspondiente en el corte precedente que contiene el bloque del arbol de codificacion para el cual la direccion del bloque del arbol de codificacion es SliceCtbAddrRS - 1. Cuando no esta presente, el valor de dependent_slice_flag se infiere para que sea igual a 0. El valor de dependent_slice_flag debera ser igual a 0 cuando SliceCtbAddrRS es igual a 0.
slice_address especifica la direccion en la resolucion de la granularidad del corte en la cual empieza el corte. La longitud del elemento de la sintaxis slice_address es (Ceil( Log2(PicWidthInCtbs * PicHeightInCtbs)) + SliceGranularity) bits.
La variable SliceCtbAddrRS, que especifica el bloque del arbol de codificacion en el cual empieza el corte en el orden del barrido por tramas del bloque del arbol de codificacion, se deriva como sigue.
SliceCtbAddrRS = ( slice_address >> SliceGranularity )
La variable SliceCbAddrZS, que especifica la direccion del primer bloque de codificacion en el corte en la granularidad minima del bloque de codificacion en el orden del barrido en z, se deriva como sigue.
SliceCbAddrZS = slice_address
<< ( ( log2_diff_max_min_coding_block_size - SliceGranularity ) <<1 )
La decodificacion del corte empieza con la unidad de codificacion mas larga posible en la coordenada de inicio del corte.
first_slice_in_pic_flag indica si el corte es el primer corte de la instantanea. Si first_slice_in_pic_flag es igual a 1, las variables SliceCbAddrZS y SliceCtbAddrRS se fijan ambas a 0 y la decodificacion empieza con el primer bloque del arbol de codificacion en la instantanea.
pic_parameter_set_id especifica el conjunto de parametros de la instantanea en uso. El valor de pic_parameter_set_id debera estar en el intervalo de 0 a 255, inclusive.
num_entry_point_offsets especifica el numero de elementos de la sintaxis entry_point_offset[ i ] en el encabezamiento del corte. Cuando tiles_or_entropy_coding_sync_idc es igual a 1, el valor de num_entry_point_offsets debera estar en el intervalo de 0 a
( num_tile_columns_minus1 + 1 ) * ( num_tile_rows_minus1 + 1 ) - 1, inclusive. Cuando
tiles_or_entropy_coding_sync_idc es igual a 2, el valor de num_entry_point_offsets debera estar en el intervalo de 0 a PicHeightInCtbs - 1, inclusive. Cuando no esta presente, el valor de num_entry_point_offsets se infiere para que sea igual a 0.
offset_len_minus1 mas 1 especifica la longitud, en bits, de los elementos de la sintaxis entry_point_offset[ i ]. entry_point_offset[ i ] especifica el i-esimo desplazamiento del punto de entrada, en bytes y debera estar representado por offset_len_minus1 mas 1 bits. Los datos del corte codificado despues del encabezamiento del corte consisten en los subconjuntos num_entry_point_offsets + 1, con los valores del mdice del subconjunto que vanan de 0 a num_entry_point_offsets, inclusive. El subconjunto 0 consiste en bytes 0 a entry_point_offset[ 0 ] - 1, inclusive, de los datos del corte codificado, el subconjunto k, con k en el intervalo de 1 a num_entry_point_offsets - 1, inclusive, consiste en los bytes entry_point_offset[ k - 1 ] a entry_point_offset[ k ] + entry_point_offset[ k - 1 ] - 1, inclusive, de los datos del corte codificado, y el ultimo subconjunto (con el mdice del subconjunto igual a num_entry_point_offsets) consiste en los bytes restantes de los datos del corte codificado.
Cuando tiles_or_entropy_coding_sync_idc es igual a 1 y num_entry_point_offsets es mayor que 0, cada subconjunto debera contener todos los bits codificados de exactamente una pieza, y el numero de subconjuntos (es decir, el valor de num_entry_point_offsets + 1) debera ser igual o menor que el numero de piezas en el corte.
Cuando tiles_or_entropy_coding_sync_idc es igual a 1, cada corte debe incluir un subconjunto de una pieza (caso
5
10
15
20
25
30
35
40
45
50
55
60
en el cual la senalizacion de los puntos de entrada es innecesaria) o un numero entero de piezas completos.
Cuando tiles_or_entropy_coding_sync_idc es igual a 2 y num_entry_point_offsets es mayor que 0, cada subconjunto k, con k en el intervalo de 0 a num_entry_point_offsets - 1, inclusive, debera contener todos los bits codificados de exactamente una fila de los bloques del arbol de codificacion, el ultimo subconjunto (con el mdice del subconjunto igual a num_entry_point_offsets) debera contener todos los bits codificados de los bloques de codificacion restantes incluidos en el corte, en el que los bloques de codificacion restantes consisten en exactamente una fila de los bloques del arbol de codificacion o un subconjunto de una fila de los bloques del arbol de codificacion, y el numero de subconjuntos (es decir, el valor de num_entry_point_offsets + 1) debera ser igual al numero de filas de los bloques del arbol de codificacion en el corte, en el que tambien se cuenta un subconjunto de una fila de los bloques del arbol de codificacion en el corte.
Cuando tiles_or_entropy_coding_sync_idc es igual a 2, un corte puede incluir un numero de las filas de los bloques del arbol de codificacion y un subconjunto de una fila de los bloques del arbol de codificacion. Por ejemplo, si un corte incluye dos filas y media de bloques del arbol de codificacion, el numero de subconjuntos (es decir, el valor de num_entry_point_offsets + 1) debera ser igual a 3.
La Figura 9 muestra la sintaxis del conjunto de parametros de la instantanea RBSP de [2], la semantica del conjunto de parametros de la instantanea RBSP de [2] se define como:
dependent_slice_enabled_flag igual a 1 especifica la presencia del elemento de la sintaxis dependent_slice_flag en el encabezamiento del corte para las instantaneas codificadas que hacen referencia al conjunto de parametros de la instantanea. dependent_slice_enabled_flag igual a 0 especifica la ausencia del elemento de la sintaxis dependent_slice_flag en el encabezamiento del corte para las instantaneas codificadas, que hacen referencia al conjunto de parametros de la instantanea. Cuando tiles_or_entropy_coding_sync_idc es igual a 3, el valor de dependent_slice_enabled_flag debera ser igual a 1.
tiles_or_entropy_coding_sync_idc igual a 0 especifica que debe haber solo una pieza en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, no debe haber un proceso de sincronizacion espedfico para las variables del contexto invocadas antes de decodificar el primer bloque del arbol de codificacion de una fila de bloques del arbol de codificacion en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, y los valores de cabac_independent_flag y dependent_slice_flag para las instantaneas codificadas, que hacen referencia al conjunto de parametros de la instantanea, no deberan ser ambos igual a 1.
Cuando cabac_independent_flag y depedent_slice_flag son ambos igual a 1 para un corte, el corte es un corte de entropfa.]
tiles_or_entropy_coding_sync_idc igual a 1 especifica que puede haber mas de una pieza en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, no debera haber un proceso de sincronizacion espedfico para las variables del contexto invocadas antes de decodificar el primer bloque del arbol de codificacion de una fila de bloques del arbol de codificacion en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, y los valores de cabac_independent_flag y dependent_slice_flag para las instantaneas codificadas, que hacen referencia al conjunto de parametros de la instantanea, no deberan ambos ser igual a 1. tiles_or_entropy_coding_sync_idc igual a 2 especifica que habra solo una pieza en cada instantanea que hace referencia al conjunto de parametros de la instantanea, un proceso de sincronizacion espedfico para las variables del contexto, se invocara antes de decodificar el primer bloque del arbol de codificacion de una fila de bloques del arbol de codificacion en cada instantanea, que hace referencia al conjunto de parametros de la instantanea y un proceso de memorizacion espedfico para las variables del contexto debera invocarse despues de decodificar dos bloques del arbol de codificacion de una fila de bloques del arbol de codificacion en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, y los valores de cabac_independent_flag y dependent_slice_flag para las instantaneas codificadas, que hacen referencia al conjunto de parametros de la instantanea, no deberan ambos ser iguales a 1.
tiles_or_entropy_coding_sync_idc igual a 3 especifica que debera haber solo una pieza en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, no habra un proceso de sincronizacion espedfico para las variables del contexto invocadas antes de decodificar el primer bloque del arbol de codificacion de una fila de bloques del arbol de codificacion en cada instantanea, que hace referencia al conjunto de parametros de la instantanea, y los valores de cabac_independent_flag y dependent_slice_flag para las instantaneas codificadas, que hacen referencia al conjunto de parametros de la instantanea pueden ambos ser iguales a 1.
Cuando dependent_slice_enabled_flag deba ser igual a 0, tiles_or_entropy_coding_sync_idc no debe ser igual a 3.
Es un requisito de conformidad del flujo de bits que el valor de tiles_or_entropy_coding_sync_idc debera ser el mismo para todos los conjuntos de parametros de la instantanea que esten activados dentro de una secuencia de video codificada.
5
10
15
20
25
30
35
40
45
50
55
60
Para cada porcion, que hace referencia al conjunto de parametros de la instantanea, cuando tiles_or_entropy_coding_sync_idc es igual a 2 y el primer bloque de codificacion en el corte no es el primer bloque de codificacion en el primer bloque del arbol de codificacion de una fila de bloques del arbol de codificacion, el ultimo bloque de codificacion en el corte debe pertenecer a la misma fila de bloques del arbol de codificacion que el primer bloque de codificacion en el corte.
num_tile_columns_minus1 mas 1 especifica el numero de columnas de piezas que divide la instantanea. num_tile_rows_minus1 mas 1 especifica el numero de filas de piezas que divide la instantanea. Cuando num_tile_columns_minus1 es igual a 0, num_tile_rows_minus1 no debe ser igual a 0.
uniform_spacing_flag igual a 1 especifica que los lfmites de la columna y de igual manera los lfmites de la fila estan distribuidos de manera uniforme a traves de la instantanea. uniform_spacing_flag igual a 0 especifica que los lfmites de la columna y de igual manera los lfmites de la fila no estan distribuidos de manera uniforme a traves de la instantanea, pero senalados de manera explfcita utilizando los elementos de la sintaxis column_width[ i ] y row_height[ i ].
column_width[ i ] especifica la anchura de la i-esima columna de piezas en unidades de bloques del arbol de codificacion.
row_height[ i ] especifica la altura de la i-esima fila de piezas en unidades de bloques del arbol de codificacion.
El vector colWidth[ i ] especifica la anchura de la i-esima columna de piezas en unidades de CTB con la columna i que vana de 0 a num_tile_columns_minus1, inclusive.
El vector CtbAddrRStoTS[ ctbAddrRS ] especifica la conversacion de una direccion CTB en el orden del barrido por tramas a una direccion CTB en el orden del barrido de las piezas con el mdice ctbAddrRS que vana de 0 a (picHeightInCtbs * picWidthInCtbs) - 1, inclusive.
El vector CtbAddrTStoRS[ ctbAddrTS ] especifica la conversacion de una direccion CTB en el orden del barrido de las piezas a una direccion CTB en el orden del barrido por tramas, con el mdice ctbAddrTS que vana de 0 a (picHeightInCtbs * picWidthInCtbs) - 1, inclusive.
El vector TileId[ ctbAddrTS ] especifica la conversacion de una direccion CTB en el orden del barrido de las piezas a una id de las piezas, con ctbAddrTS que vana de 0 a (picHeightInCtbs * picWidthInCtbs) - 1, inclusive.
Los valores de colWidth, CtbAddrRStoTS, CtbAddrTStoRS y TileId se derivan invocando el proceso de conversacion del barrido por tramas y de las piezas CTB como se especifica en el subapartado 6.5.1, con PicHeightInCtbs y PicWidthInCtbs como las entradas y la salida se asigna a colWidth, CtbAddrRStoTS y TileId.
Los valores de ColumnWidthInLumaSamples[ i ], que especifican la anchura de la i-esima columna de piezas en unidades de muestras luma, se fijan igual a colWidth[ i ] << Log2CtbSize.
La serie MinCbAddrZS[ x ][ y ], que especifica la conversacion de una ubicacion ( x, y ) en unidades de CB mmimos a una direccion CB minima en el orden del barrido en z, con x que vana de 0 a picWidthInMinCbs - 1, inclusive, e y que vana de 0 a picHeightInMinCbs - 1, inclusive, se deriva invocando el proceso de inicializacion de la disposicion del orden del barrido en z, como se especifica en el subapartado 6.5.2, con Log2MinCbSize, Log2CtbSize, PicHeightInCtbs, PicWidthInCtbs, y el vector CtbAddrRStoTS como las entradas y la salida se asigna a MinCbAddrZS.
loop_filter_across_tiles_enabled_flag igual a 1 especifica que las operaciones de filtracion en el bucle se realizan a traves de los lfmites de las piezas. loop_filter_across_tiles_enabled_flag igual a 0 especifica que las operaciones de filtracion en el bucle no se realizan a traves de los lfmites de las piezas. Las operaciones de filtracion en el bucle incluyen el filtro de desbloqueo, el desplazamiento adaptativo de la muestra, y las operaciones adaptativas del filtro del bucle. Cuando no esta presente, el valor de loop_filter_across_tiles_enabled_flag se infiere para que sea igual a 1.
cabac_independent_flag igual a 1 especifica que la decodificacion CABAC de los bloques de codificacion en un corte es independiente de cualquier estado del corte decodificado previamente. cabac_independent_flag igual a 0 especifica que la decodificacion CABAC de los bloques de codificacion en un corte es dependiente de los estados del corte decodificado previamente. Cuando no esta presente, el valor de cabac_independent_flag se infiere para que sea igual a 0.
Un proceso de derivacion para la disponibilidad de un bloque de codificacion con una direccion del bloque de codificacion minima se describio como sigue:
Las entradas a este proceso son
- una direccion del bloque de codificacion minima minCbAddrZS en el orden del barrido en z
- la direccion del bloque de codificacion minima actual currMinCBAddrZS en el orden del barrido en z
5
10
15
20
25
30
35
40
45
50
55
60
La salida de este proceso es la disponibilidad del bloque de codificacion con la direccion del bloque de codificacion mmima cbAddrZS en el orden del barrido en z cbAvailable.
Observese que el significado de disponibilidad se determina cuando este proceso se invoca.
Observese que cualquier bloque de codificacion, sin importar su tamano, esta asociado con una direccion del bloque de codificacion minima, que es la direccion del bloque de codificacion con el tamano mmimo del bloque de codificacion en el orden del barrido en z.
- Si una o mas de las siguientes condiciones es cierta, cbAvailable se fija como FALSO.
- minCbAddrZS es menor que 0
- minCbAddrZS es mayor que currMinCBAddrZS
- el bloque de codificacion con la direccion del bloque de codificacion minima minCbAddrZS pertenece a un corte diferente que el bloque de codificacion con la direccion del bloque de codificacion minima actual currMinCBAddrZS y dependent_slice_flag del corte que contiene el bloque de codificacion con la direccion del bloque de codificacion minima actual currMinCBAddrZS es igual a 0.
- el bloque de codificacion con la direccion del bloque de codificacion minima minCbAddrZS esta contenido en una pieza diferente que el bloque de codificacion con la direccion del bloque de codificacion minima actual currMinCBAddrZS.
- De otra manera, cbAvailable se fija a VERDADERO.
El proceso del analisis CABAC para los datos del corte de [2] era como sigue:
Este proceso es invocado cuando se realiza el analisis de los elementos de la sintaxis con el descriptor ae(v).
Las entradas a este proceso son una solicitud de un valor de un elemento de la sintaxis y los valores de los elementos de la sintaxis previos analizados.
La salida de este proceso es el valor del elemento de la sintaxis.
Cuando se empieza el analisis de los datos del corte de un corte, se invoca el proceso de inicializacion del proceso del analisis CABAC.
La direccion del bloque de codificacion minima del bloque del arbol de codificacion que contiene el bloque T vecino espacial (Figura 10a), ctbMinCbAddrT, se deriva utilizando la ubicacion ( x0, y0 ) de la muestra luma superior izquierda del bloque del arbol de codificacion actual como sigue.
x = x0 + 2 << Log2CtbSize - 1
y = y0 - 1
ctbMinCbAddrT = MinCbAddrZS[ x >> Log2MinCbSize ][ y >> Log2MinCbSize ]
La variable availableFlagT se obtiene invocando el proceso de derivacion de la disponibilidad del bloque de codificacion con ctbMinCbAddrT como la entrada.
Cuando se empieza el analisis de un arbol de codificacion, se aplican las siguientes etapas ordenadas.
1. El motor de decodificacion aritmetico se inicializa como sigue.
- Si CtbAddrRS es igual a slice_address, dependent_slice_flag es igual a 1 y entropy_coding_reset_flag es igual a 0, se aplica lo siguiente.
- El proceso de sincronizacion del proceso del analisis CABAC se invoca con TableStateldxDS y TableMPSValDS como una entrada.
- El proceso de decodificacion para las decisiones binarias antes de la terminacion se invoca, seguido por el proceso de inicializacion para la decodificacion aritmetica.
- De otra manera, si tiles_or_entropy_coding_sync_idc es igual a 2, y CtbAddrRS % PicWidthInCtbs es igual a 0, se aplica lo siguiente.
- Cuando availableFlagT es igual a 1, el proceso de sincronizacion del proceso del analisis CABAC se
5
10
15
20
25
30
35
40
45
50
55
60
invoca con TableStateldxWPP y TableMPSValWPP como entrada.
- El proceso de decodificacion para las decisiones binarias antes de la terminacion se invoca, seguido por el proceso de inicializacion para el motor de decodificacion aritmetica.
2. Cuando cabac_independent_flag es igual a 0 y dependent_slice_flag es igual a 1, o cuando tiles_or_entropy_coding_sync_idc es igual a 2, el proceso de memorizacion se aplica como sigue.
- Cuando tiles_or_entropy_coding_sync_idc es igual a 2 y CtbAddrRS % PicWidthInCtbs es igual a 2, el proceso de memorizacion del proceso del analisis CABAC se invoca con TableStateldxWPP y TableMPSValWPP como la salida.
- Cuando cabac_independent_flag es igual a 0, dependent_slice_flag es igual a 1, y end_of_slice_flag es igual a 1, el proceso de memorizacion del proceso del analisis CABAC se invoca con TableStateldxDS y TableMPSValDS como la salida.
El analisis de los elementos de la sintaxis procede como sigue:
Para cada valor solicitado de un elemento de la sintaxis, se deriva una conversion a binario.
La conversion a binario para el elemento de la sintaxis y la secuencia de los binarios analizados determina el flujo del proceso de decodificacion.
Para cada binario de la conversion a binario del elemento de la sintaxis, que esta indexado por la variable binldx, se deriva un mdice del contexto ctxldx.
Para cada ctxldx, se invoca el proceso de decodificacion aritmetico.
La secuencia resultante (bo..bbinidx) de binarios analizados se compara con el conjunto de cadenas de binarios dada por el proceso de conversion a binario despues de decodificar cada binario. Cuando la secuencia coincide con una cadena de binarios en el conjunto dado, el valor correspondiente se asigna al elemento de la sintaxis.
En el caso de que la solicitud para un valor de un elemento de la sintaxis se procese para el elemento de la sintaxis pcm-flag y el valor decodificado de pcm_flag sea igual a 1, el motor de decodificacion se inicializa despues de la decodificacion de cualquiera de pcm_alignment_zero_bit, num_subsequent_pcm, y todos los datos pcm_sample_luma y pcm_sample_chroma.
En la estructura de diseno descrita hasta ahora, ha tenido lugar el siguiente problema.
La temporizacion de las unidades de decodificacion necesita conocerse antes de codificar y enviar los datos en un escenario de bajo retardo, donde las unidades NAL ya se enviaran por el codificador, mientras que el codificador esta todavfa codificando partes de la instantanea, es decir, otras unidades de decodificacion de la sub-instantanea. Esto es, debido a que el orden de la unidad NAL en una unidad de acceso solo permite mensajes SEI que precedan las VCL (unidades NAL de Codificacion de Video) en una unidad de acceso, pero en tal escenario de bajo retardo, las unidades no NAL VCL necesitan estar ya listas en el alambre, es decir, enviarse, si el codificador empieza a codificar las unidades de decodificacion. La Figura 10b ilustra la estructura de una unidad de acceso como se define en [2]. [2] aun no especifico el final de la secuencia o flujo, de modo que su presencia en la unidad de acceso era provisional.
Ademas, el numero de unidades NAL asociadas con una sub-instantanea tambien necesita conocerse de antemano en un escenario de bajo retardo, puesto que el mensaje SEI de temporizacion de la instantanea contiene esta informacion y tiene que compilarse y enviarse antes de que el decodificador empiece a codificar la instantanea real. Un disenador de la aplicacion, reacio a insertar unidades NAL de los datos de relleno, con potencialmente ningun dato de relleno para cumplir con el numero de la unidad NAL, como se senalo por unidad de decodificacion en la SEI de temporizacion de la instantanea, necesita medios para senalizar esta informacion a un nivel de la sub- instantanea. Lo mismo se cumple para la temporizacion de la sub-instantanea, que esta actualmente fija al inicio de una unidad de acceso por los parametros dados en el mensaje SEI de la temporizacion.
Las desventajas adicionales de la especificacion provisional [2] incluyen numerosas senalizaciones a nivel de la sub- instantanea, que se requieren para las aplicaciones espedficas, tales como la senalizacion ROI o la senalizacion de las dimensiones de las piezas.
Los problemas expuestos anteriormente no son espedficos de la norma HEVC. En su lugar, este problema tambien tiene lugar en relacion con otros codecs de video tambien. La Figura 11 muestra, mas en general, un escenario de transmision de video donde un par de un codificador 10 y decodificador 12 estan conectados mediante una red 14 con el fin de transmitir un video 16 desde el codificador 10 al decodificador 12 en un corto retardo de extremo a
5
10
15
20
25
30
35
40
45
50
55
60
extremo. El problema ya expuesto anteriormente es el siguiente. El codificador 10 codifica la secuencia de fotogramas 18 del video 16, de acuerdo con un cierto orden de decodificacion que de manera sustancial, pero no necesaria, sigue el orden de reproduccion 20 de los fotogramas 18, y dentro de cada fotograma 18, se desplaza a traves del area del fotograma de los fotogramas 18 de alguna manera conocida, tal como por ejemplo, de manera de barrido por tramas o sin seccionamiento de las piezas de los fotogramas 18. El orden de decodificacion controla la disponibilidad de la informacion para las tecnicas de codificacion utilizadas por el codificador 10, tales como, por ejemplo, prediccion y/o codificacion por entropfa, es decir, la disponibilidad de la informacion relacionada con porciones vecinas espacial y/o temporalmente del video 16, disponibles para servir como una base para la prediccion o seleccion del contexto. Incluso aunque el codificador 10 pueda ser capaz de utilizar el procesamiento paralelo con el fin de codificar los fotogramas 18 del video 16, el codificador 10 necesita forzosamente algo de tiempo para codificar un cierto fotograma 18, tal como el fotograma actual. La Figura 11, por ejemplo, ilustra un instante en el tiempo donde el codificador 10 ya ha terminado de codificar la porcion 18a de un fotograma actual 18, mientras que otra porcion 18b del fotograma actual 18 aun no se ha codificado. Puesto que el codificador 10 no ha codificado aun la porcion 18b, el codificador 10 no puede predecir como debena distribuirse espacialmente la tasa de bits disponible para codificar el fotograma actual 18 en el fotograma actual 18 para lograr un optimo en terminos de por ejemplo, tasa/sentido de la distorsion. En consecuencia, el codificador 10 simplemente tiene dos opciones: el codificador 10 estima una distribucion casi optima de la tasa de bits disponible para el fotograma actual 18 en los cortes en los cuales el fotograma actual 18 esta subdividido espacialmente de antemano, aceptando en consecuencia que la estimacion puede ser incorrecta, o el codificador 10 finaliza de codificar el fotograma actual 18 antes de transmitir los paquetes que contienen los cortes del codificador 10 al decodificador 12. En cualquier caso, con el fin de aprovechar cualquier transmision de los paquetes de cortes del fotograma actual codificado 18 antes de la finalizacion de su codificacion, debena informarse a la red 14 de las tasas de bits asociadas con cada uno de tales paquetes de cortes en la forma tiempos de recuperacion de la memoria intermedia de la instantanea codificada. Sin embargo, como se indico anteriormente, aunque el codificador 10, de acuerdo con la version actual de HEVC, es capaz de variar la tasa de bits distribuida en los fotogramas 18 mediante el uso de definir los tiempos de recuperacion de la memoria intermedia del decodificador para las areas de la sub-instantanea de manera individual, el codificador 10 necesita transmitir o enviar tal informacion mediante la red 14 al decodificador 12, al inicio de cada unidad de acceso, recopilando todos los datos relacionados con el fotograma actual 18, urgiendo por lo tanto al codificador 10 que elija entre las dos alternativas recien expuestas, una que conduce a un retardo menor pero a una tasa/distorsion peor, la otra que conduce a una tasa/distorsion optima, sin embargo, a un retardo de extremo a extremo incrementado.
Asf, hasta ahora, no hay codec de video que permita lograr tal bajo retardo que permitiera que el codificador empezara a transmitir paquetes relacionados con las porciones 18a del fotograma actual, antes de codificar una porcion 18b restante del fotograma actual, el decodificador es capaz de aprovechar esta transmision intermedia de paquetes relacionados con las porciones 18a preliminares por medio de la red 16, que obedece a la temporizacion de recuperacion de la memoria intermedia de decodificacion, transportada dentro del flujo de datos de video enviados desde el codificador 12 al decodificador 14. Las aplicaciones que por ejemplo, aprovechanan tal retardo bajo, abarcan de manera ejemplar, las aplicaciones industriales tales como por ejemplo, vigilancia de piezas de trabajo o de la fabricacion para fines de automatizacion o de inspeccion o similar. Hasta ahora, no hay una solucion satisfactoria para informar al lado de la decodificacion sobre la asociacion de los paquetes a las piezas en las cuales un fotograma actual esta estructurado, y las regiones interesantes (region de interes) de un fotograma actual, de manera que las entidades de la red intermedia dentro de la 16 se posibilitan para reunir tal informacion desde el flujo de datos sin tener que inspeccionar profundamente el interior de los paquetes, es decir, la sintaxis de los cortes.
En consecuencia, es el objeto de la presente invencion proporcionar un concepto de codificacion de un flujo de datos de video que sea mas eficiente al permitir un retardo bajo de extremo a extremo y/o que presente mas facil la identificacion de las porciones del flujo de datos a una region de interes o a ciertas piezas.
Este objeto se logra mediante la materia objeto de las reivindicaciones independientes anexas.
Una idea en la cual se basa la presente solicitud, es que la informacion de la temporizacion de recuperacion del decodificador, la informacion ROI y la informacion de identificacion de las piezas debenan transmitirse dentro de un flujo de datos de video a un nivel que permita un acceso facil por las entidades de la red tales como MANE o decodificadores y que con el fin de alcanzar tal nivel, la informacion de tales tipos debena transportarse dentro de un flujo de datos de video por medio de paquetes intercalados en los paquetes de unidades de acceso de un flujo de datos de video. De acuerdo con una realizacion, los paquetes intercalados son de un tipo de paquete retirable, es decir, la eliminacion de estos paquetes intercalados mantiene la capacidad del decodificador de recuperar completamente el contenido del video transportado mediante el flujo de datos de video.
De acuerdo con un aspecto de la presente solicitud, el logro de un retardo bajo de extremo a extremo se presenta mas efectivo utilizando los paquetes intercalados con el fin de transportar la informacion sobre los tiempos de recuperacion de la memoria intermedia del decodificador para las unidades de decodificacion formadas por los paquetes de la carga util que siguen el paquete del control de la temporizacion respectivo en el flujo de datos de
5
10
15
20
25
30
35
40
45
50
55
60
video dentro de la unidad de acceso actual. Mediante esta medida, se posibilita al codificador determinar los tiempos de recuperacion de la memoria intermedia del decodificador sobre la marcha, durante la codificacion de un fotograma actual, siendo capaz por lo tanto de que mientras codifica un fotograma actual, determina de manera continua la tasa de bits gastada realmente para la porcion del fotograma actual que ya se ha codificado en los paquetes de la carga util y se han transmitido o enviado, prefijados con los paquetes del control de la temporizacion, por una parte, y en consecuencia, adaptar la distribucion de la tasa de bits restante disponible para el fotograma actual sobre la porcion restante del fotograma actual que no se ha codificado aun. Mediante esta medida, la tasa de bits disponible se aprovecha de manera efectiva y el retardo sin embargo, se mantiene corto puesto que el codificador no necesita esperar para acabar de codificar el fotograma actual completamente.
De acuerdo con un aspecto adicional de la presente solicitud, los paquetes intercalados en un paquete de carga util de una unidad de acceso, se aprovechan para transportar la informacion en una region de interes, posibilitando por lo tanto, como se expuso anteriormente, un acceso facil de esta informacion por las entidades de la red, puesto que no tienen que inspeccionar los paquetes de la carga util intermedios. Ademas, el codificador todavfa esta libre para determinar los paquetes que pertenecen a la ROI durante la codificacion de un fotograma actual sobre la marcha, sin tener que determinar la subdivision del fotograma actual en las subporciones y los paquetes de la carga util respectivos de antemano. Ademas, de acuerdo con la realizacion de acuerdo con la cual los paquetes intercalados son de un tipo de paquete retirable, la informacion ROI puede ignorarse por los receptores del flujo de datos de video no interesados en la informacion ROI, o que no son capaces de procesar la misma.
Se aprovechan ideas similares en la presente solicitud, de acuerdo con otro aspecto, de acuerdo con el cual, los paquetes intercalados transportan la informacion sobre la cual pertenecen ciertos paquetes de piezas dentro de una unidad de acceso.
Las implementaciones ventajosas de la presente invencion son el objeto de las reivindicaciones dependientes. Las realizaciones preferidas de la presente solicitud, se describen con mas detalle a continuacion, con respecto a las Figuras, entre las cuales:
Las Figuras 1 a 10b
La Figura 11
La Figura 12 La Figura 13 La Figura 14
La Figura 15
La Figura 16
La Figura 17
La Figura 18 La Figura 19 La Figura 20
muestran un estado actual del HEVC, con la Figura 1 que muestra una sintaxis de mensaje SEI del periodo de almacenamiento en memoria intermedia, la Figura 2 muestra una sintaxis de mensaje SEI de la temporizacion de la instantanea, la Figura 3 muestra una sintaxis de un parametro VUI, la Figura 4 muestra una sintaxis de un parametro HRD, la Figura 5 muestra la sintaxis RBSP de los datos de relleno, la Figura 6 muestra una estructura de unos flujos de bytes y los flujos de la unidad NAL para las verificaciones de conformidad del HRD, la Figura 7 muestra un modelo de la memoria intermedia HRD, la Figura 8 muestra una sintaxis del encabezamiento del corte, la Figura 9 muestra una sintaxis RBSP del conjunto de parametros de la instantanea, la Figura 10a muestra un esquema que ilustra un bloque T del arbol del codificacion vecino espacialmente, utilizado posiblemente para invocar el proceso de derivacion de la disponibilidad del bloque del arbol de codificacion, con relacion al bloque del arbol de codificacion actual y la Figura 10b muestra una definicion de una estructura de una unidad de acceso;
muestra de manera esquematica un par de un codificador y un decodificador conectados mediante una red, para ilustrar los problemas que tienen lugar en la transmision del flujo de datos de video;
muestra un diagrama de bloques esquematico de un codificador, de acuerdo con una realizacion, que utiliza los paquetes del control de la temporizacion;
muestra un diagrama de flujo que ilustra un modo de operacion del codificador de la Figura 12, de acuerdo con una realizacion;
muestra un diagrama de bloques de una realizacion de un decodificador, para explicar su funcionalidad, con relacion a un flujo de datos de video generado por un codificador de acuerdo con la Figura 12;
muestra un diagrama de bloques esquematico que ilustra un codificador, una entidad de la red y un flujo de datos de video, de acuerdo con una realizacion adicional, utilizando paquetes ROI;
muestra un diagrama de bloques esquematico que ilustra un codificador, una entidad de la red y un flujo de datos de video, de acuerdo con una realizacion adicional utilizando paquetes de identificacion de las piezas;
muestra una estructura de una unidad de acceso, de acuerdo con una realizacion. La lmea discontinua refleja el caso de una unidad NAL del prefijo del corte no obligatoria; muestra el uso de las piezas en la region de senalizacion de interes; muestra la primera sintaxis sencilla/version 1;
muestra la sintaxis extendida/version 2 que incluye la senalizacion de tile_id, el identificador del inicio de la unidad de decodificacion, la ID del prefijo del corte y los datos del encabezamiento del corte, aparte del concepto del mensaje SEI;
5
10
15
20
25
30
35
40
45
50
55
60
La Figura 21 La Figura 22
La
Figura CO CM
La
Figura 24
La
Figura 25
La
Figura 26
La
Figura 27
La
Figura 28
La
Figura 29
La
Figura 30
La
Figura 31
La
Figura 32
La
Figura 33
La
Figura 34
Las Figuras 35 a 38 La Figura 39
muestra el codigo del tipo de la unidad NAL y las clases del tipo de la unidad NAL; muestra una posible sintaxis para un encabezamiento del corte, donde ciertos elementos de la sintaxis presentes en el encabezamiento del corte, de acuerdo con la version actual, se desplazan a un elemento de la sintaxis de jerarqma menor, denominado como slice_header_data();
muestra una tabla donde todos los elementos de la sintaxis eliminados del encabezamiento del corte se senalizan a traves de los datos del encabezamiento del corte del elemento de la sintaxis;
muestra una sintaxis del mensaje de la informacion de la mejora complementaria; muestra una sintaxis de la carga util SEI adaptada, con el fin de introducir un nuevo corte o tipos de mensaje SEI de la sub-instantanea;
muestra un ejemplo para un mensaje SEI de almacenamiento en memoria intermedia de la sub-instantanea;
muestra un ejemplo de un mensaje SEI de la temporizacion de la sub-instantanea; muestra como puede verse el mensaje SEI de la informacion del corte de la sub- instantanea;
muestra un ejemplo de un mensaje SEI de la informacion de las piezas de la sub- instantanea;
muestra un ejemplo de la sintaxis para un mensaje SEI de la informacion de las piezas de la sub-instantanea;
muestra una primera variante de un ejemplo de la sintaxis para un mensaje SEI de la region de interes, donde cada ROI se senaliza en un mensaje SEI individual; muestra una segunda variante de un ejemplo de la sintaxis para un mensaje SEI de una region de interes, donde todas las ROI estan senalizadas en un mensaje SEI unico; muestra una posible sintaxis para un paquete del control de la temporizacion de acuerdo con una realizacion adicional;
muestra una posible sintaxis para un paquete de identificacion de las piezas, de acuerdo con una realizacion;
muestran posibles subdivisiones de una instantanea, de acuerdo con diferentes configuraciones de subdivision, de acuerdo con una realizacion; y
muestra un ejemplo de una porcion fuera de un flujo de datos de video, de acuerdo con una realizacion, utilizando los paquetes del control de la temporizacion que estan intercalados entre los paquetes de la carga util de una unidad de acceso.
Con respecto a la Figura 12, se describe un codificador 10 de acuerdo con una realizacion de la presente solicitud y su modo de operacion. El codificador 10 esta configurado para codificar el contenido de video 16 en un flujo de datos de video 22. El codificador esta configurado para hacer esto en unidades de las subporciones de los fotogramas/instantaneas 18 del contenido de video 16, en el que las subporciones pueden, por ejemplo, ser recortes 24 en las cuales se dividen las instantaneas 18, o algunos otros segmentos espaciales, tales como por ejemplo, piezas 26 o subflujos WPP 28, todos los cuales se ilustran en la Figura 12, simplemente para fines ilustrativos, mas en lugar de sugerir que el codificador 10 necesita ser capaz de soportar el procesamiento paralelo de las piezas o WPP, por ejemplo, o que las subporciones necesitan ser cortes.
En la codificacion del contenido de video 16 en unidades de las subporciones 24, el codificador 10 puede obedecer un orden de decodificacion - u orden de codificacion - definido entre las subporciones 24, que por ejemplo, atraviesan las instantaneas 18 del video 16, de acuerdo con un orden de decodificacion de la instantanea, que por ejemplo, no coincide necesariamente con el orden de reproduccion 20 definido entre las instantaneas 18, y atraviesa cada bloque de la instantanea 18 en los cuales las instantaneas 18 estan divididas, de acuerdo con un orden del barrido por tramas, con las subporciones 24 que representan las pasadas continuas de tales bloques a lo largo del orden de decodificacion. En particular, el codificador 10 puede configurarse para obedecer este orden de decodificacion, para determinar la disponibilidad de las porciones vecinas espacial y/o temporalmente de las porciones a codificarse actualmente, con el fin de utilizar los atributos que describen tales porciones vecinas en la codificacion predictiva y/o la codificacion por entropfa, tal como por ejemplo, para determinar una prediccion y/o un contexto de entropfa: Simplemente, las porciones previamente visitadas (codificadas/decodificadas) del video estan disponibles. De otra manera, los atributos recien mencionados se configuran a los valores por defecto o se toman algunas otras medidas sustitutas.
Por otra parte, el codificador 10 no necesita codificar en serie las subporciones 24 a lo largo del orden de decodificacion. En su lugar, el codificador 10 puede utilizar el procesamiento paralelo para acelerar el proceso de codificacion, o para ser capaz de realizar una codificacion mas compleja en tiempo real. De igual manera, el codificador 10 puede o no configurarse para transmitir o enviar los datos que codifican las subporciones a lo largo del orden de decodificacion. Por ejemplo, el codificador 10 puede emitir/transmitir los datos codificados en algun otro orden, tal como por ejemplo, de acuerdo con el orden en el cual se finaliza la codificacion de las subporciones por el codificador 10, que puede, debido al procesamiento paralelo, por ejemplo, desviarse del orden de decodificacion
5
10
15
20
25
30
35
40
45
50
55
60
reden mencionado.
Con el fin de presentar las versiones codificadas de las subporciones 24 adecuadas para la transmision a traves de una red, el codificador 10 codifica cada subporcion 24 en uno o mas paquetes de la carga util de una secuencia de paquetes de flujo de datos de video 22. En el caso de que las subporciones 24 sean cortes, el codificador 10 puede, por ejemplo, configurarse para poner cada uno de los datos del corte, es decir, cada corte codificado, en un paquete de carga util, tal como una unidad NAL. Este empaquetamiento puede servir para presentar el flujo de datos de video 22 apropiado para la transmision mediante una red. En consecuencia, los paquetes pueden representar las unidades mas pequenas en las cuales puede tener lugar el flujo de datos de video 22, es decir, las unidades mas pequenas que pueden enviarse individualmente por el codificador 10 para la transmision mediante una red a un receptor.
Ademas de los paquetes de la carga util y los paquetes del control de la temporizacion intercalados entre los mismos y analizados aqu posteriormente, otros paquetes, es decir, paquetes de otro tipo, pueden existir tambien, tales como paquetes de datos de relleno, paquetes de la instantanea o del conjunto de parametros de la secuencia, para transportar los elementos de la sintaxis que cambian de manera poco frecuente o paquetes EOF (fin del archivo) o AUE (fin de la unidad de acceso) o similar.
El codificador realiza la codificacion en los paquetes de la carga util, de manera que la secuencia de paquetes se divide en una secuencia de unidades de acceso 30 y cada unidad de acceso recopila los paquetes de la carga util 32 relacionados con una instantanea 18 del contenido de video 16. Esto es, la secuencia 34 de paquetes que forman el flujo de datos de video 22 esta subdividida en porciones no solapantes, llamadas unidades de acceso 30, cada una esta asociada con una respectiva de las instantaneas 18. La secuencia de unidades de acceso 30 puede seguir el orden de decodificacion de las instantaneas 18 con las que estan relacionadas las unidades de acceso 30. La Figura 12 ilustra, por ejemplo, que la unidad de acceso 30 dispuesta en la mitad de la porcion del flujo de datos 22, ilustrada, comprende un paquete de carga util 32 por subporcion 24 en la cual se subdivide la instantanea 18. Esto es, cada paquete de carga util 32 porta una subporcion 24 correspondiente. El codificador 10 esta configurado para intercalarse en la secuencia 34 de los paquetes 36 del control de la temporizacion de los paquetes, de manera que los paquetes del control de la temporizacion subdividen las unidades de acceso 30 en unidades de decodificacion 38, de manera que al menos algunas unidades de acceso 30, tales como la de en medio, mostrada en la Figura 12, se subdividen en dos o mas unidades de decodificacion 38, cada paquete del control de la temporizacion senaliza un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion 38, los paquetes de la carga util 32 de la cual, siguen el paquete del control de la temporizacion respectivo en la secuencia 34 de paquetes. En otras palabras, el codificador 10 prefija las subsecuencias de la secuencia de paquetes de la carga util 32 dentro de una unidad de acceso 30 con un respectivo paquete de control de temporizacion 36 que senaliza la subsecuencia de paquetes de la carga util respectiva, prefijada por el paquete del control de la temporizacion 36 respectivo y forman una unidad de decodificacion 38, un tiempo de recuperacion de la memoria intermedia del decodificador. La Figura 12, por ejemplo, ilustra el caso donde cada segundo paquete 32 representa el primer paquete de carga util de una unidad de decodificacion 38 de la unidad de acceso 30. Como se ilustra en la Figura 12, la cantidad de datos o la tasa de bits gastada para cada unidad de decodificacion 38 vana y los tiempos de recuperacion de la memoria intermedia del decodificador pueden correlacionarse con esta variacion de la tasa de bits entre las unidades de decodificacion 38, en que el tiempo de recuperacion de la memoria intermedia del decodificador de una unidad de decodificacion 38 puede seguir el tiempo de recuperacion de la memoria intermedia del decodificador senalizado por el paquete del control de la temporizacion 36 de la unidad de decodificacion 38 inmediatamente precedente, mas un intervalo de tiempo que corresponde a la tasa de bits gastada por esta unidad de decodificacion 38 inmediatamente precedente.
Esto es, el codificador 10 puede operar como se muestra en la Figura 13. En particular, como se menciono anteriormente, el codificador 10 puede, en la etapa 40, someterse a una subporcion 24 actual de una instantanea 18 actual a una codificacion. Como ya se menciono, el codificador 10 puede realizar ciclos secuencialmente a traves de las subporciones 24 en el orden de decodificacion mencionado anteriormente, como se ilustra por la flecha 42, o el codificador 10 puede utilizar algun procesamiento paralelo, tal como WPP y/o el procesamiento de las piezas, con el fin de codificar de manera concurrente varias “subporciones actuales” 24. Sin importar si se utiliza el procesamiento paralelo o no, el codificador 10 forma una unidad de decodificacion de una o varias de las subporciones recien codificadas en la etapa 40 y continua con la etapa 44, donde el codificador 10 configura un tiempo de recuperacion de la memoria intermedia del decodificador para esa unidad de decodificacion y transmite esa unidad de decodificacion prefijada con un paquete de control del tiempo que senaliza el tiempo de recuperacion de la memoria intermedia del decodificador recien configurado para esta unidad de decodificacion. Por ejemplo, el codificador 10 puede determinar el tiempo de recuperacion de la memoria intermedia del decodificador en la etapa 44, basandose en la tasa de bits gastada para codificar las subporciones que se han codificado en los paquetes de la carga util que forman la unidad de decodificacion actual, incluyendo, por ejemplo, todos los paquetes intermedios adicionales dentro de esta unidad de decodificacion, si los hay, es decir, los “paquetes prefijados”.
A continuacion, en la etapa 46, el codificador 10 puede adaptar la tasa de bits disponible, basandose en la tasa de
5
10
15
20
25
30
35
40
45
50
55
60
bits que se ha gastado para la unidad de decodificacion que se acaba de transmitir en la etapa 44. Si, por ejemplo, el contenido de la instantanea dentro de la unidad de decodificacion reden transmitida en la etapa 44 era bastante complejo en terminos de tasa de compresion, entonces el codificador 10 puede reducir la tasa de bits disponible para la siguiente unidad de decodificacion, para obedecer alguna tasa de bits objetivo configurada externamente, habiendose determinado, por ejemplo, basandose en una situacion del ancho de banda actual en relacion con la red que transmite el flujo de datos de video 22. Las etapas 40 a 46 se repiten a continuacion. Mediante esta medida, las instantaneas 18 se codifican y transmiten, es decir, se envfan, en unidades de unidades de decodificacion, prefijandose cada una por un paquete del control de la temporizacion correspondiente.
En otras palabras, el codificador 10, durante una codificacion de una instantanea actual 18 del contenido de video 16, codifica 40 una subporcion actual 24 de la instantanea actual 18 en un paquete de carga util actual 32 de una unidad de decodificacion actual 38, transmite 44, dentro del flujo de datos, la unidad de decodificacion actual 38 prefijada con un paquete del control de la temporizacion actual 36 con la configuracion de un tiempo de recuperacion de la memoria intermedia del decodificador senalizado por el paquete del control de la temporizacion actual (36), en un primer instante de tiempo, y codifica 44, al realizar ciclos nuevamente de la etapa 46 a la 40, una subporcion 24 adicional de la instantanea actual 18 en un segundo instante de tiempo - segunda vez que se visita la etapa 40 -, posteriormente que el primer instante de tiempo - primera vez que se visita la etapa 44.
Puesto que el codificador es capaz de enviar una unidad de decodificacion antes de codificar el resto de la instantanea actual al cual pertenece esta unidad de decodificacion, el codificador 10 es capaz de reducir el retardo de extremo a extremo. Por otra parte, el codificador 10 no necesita desperdiciar la tasa de bits disponible, puesto que el codificador 10 es capaz de reaccionar con la naturaleza espedfica del contenido de la instantanea actual y su distribucion espacial de la complejidad.
Por otra parte, las entidades de la red intermedias, responsables de transmitir el flujo de datos de video 22 mas lejos del codificador al decodificador, son capaces de utilizar los paquetes del control de la temporizacion 36, para garantizar que cualquier decodificador que reciba el flujo de datos de video 22 reciba las unidades de decodificacion a tiempo, para ser capaces de aprovecharse de la codificacion por unidad de decodificacion y de la transmision por el codificador 10. Vease, por ejemplo, la Figura 14 que muestra un ejemplo de un decodificador para decodificar el flujo de datos de video 22. El decodificador 12 recibe el flujo de datos de video 22 en una memoria intermedia de la instantanea codificada CPB 48 por medio de una red, mediante la cual el codificador 10 transmitio el flujo de datos de video 22 al decodificador 12. En particular, puesto que la red 14 se supone que puede soportar la aplicacion de bajo retardo, la red 10 inspecciona los tiempos de recuperacion de la memoria intermedia del decodificador, para reenviar la secuencia 34 de paquetes del flujo de datos de video 22 a la memoria intermedia de la instantanea codificada 48 del decodificador 12, de manera que cada unidad de decodificacion esta presente dentro de la memoria intermedia de la instantanea codificada 48, antes del tiempo de recuperacion de la memoria intermedia del decodificador, senalizado por el paquete del control de la temporizacion que prefija la unidad de decodificacion respectiva. Mediante esta medida, el decodificador es capaz de, sin detenerse, es decir, sin quedarse sin paquetes de la carga util disponibles dentro de la memoria intermedia de la instantanea codificada 48, utilizar los tiempos de recuperacion de la memoria intermedia del decodificador en los paquetes del control de la temporizacion, para vaciar la memoria intermedia de la instantanea codificada 48 del decodificador, en unidades de las unidades de decodificacion en lugar de unidades de acceso completas. La Figura 14, por ejemplo, muestra para fines ilustrativos, una unidad de procesamiento 50 como que esta conectada a una salida de la memoria intermedia de la instantanea codificada 48, la entrada de la cual recibe el flujo de datos de video 22. De manera similar al codificador 10, el decodificador 12 puede ser capaz de realizar el procesamiento paralelo tal como por ejemplo, utilizando el procesamiento paralelo/decodificacion de las piezas y/o el procesamiento paralelo/decodificador de WPP.
Como se expondra con mas detalle a continuacion, los tiempos de recuperacion de la memoria intermedia del decodificador mencionados hasta ahora no pertenecen necesariamente a los tiempos de recuperacion con respecto a la memoria intermedia de la instantanea codificada 48 del decodificador 12. En su lugar, los paquetes del control de la temporizacion pueden adicionalmente, o como alternativa, dirigir la recuperacion de los datos ya decodificados de la instantanea de una memoria intermedia de la instantanea decodificada correspondiente de un decodificador 12. La Figura 14 muestra, por ejemplo, el decodificador 12 como que comprende una memoria intermedia de la instantanea del decodificador, en la cual la version decodificada del contenido de video, como se obtiene por la unidad de procesamiento 50 decodificando el flujo de datos de video 22, se almacena en memoria intermedia, es decir, almacenada y enviada, en unidades de las versiones decodificadas de las unidades de decodificacion. La memoria intermedia de la instantanea decodificada 22 del decodificador puede asf, conectarse entre la salida del decodificador 12 y la salida de la unidad de procesamiento 50. Al tener la capacidad para configurar los tiempos de recuperacion para emitir las versiones decodificadas de las unidades de decodificacion desde la memoria intermedia de la instantanea decodificada 52, se le proporciona al codificador 10 la oportunidad de, sobre la marcha, es decir, durante la codificacion de una instantanea actual, de controlar la reproduccion o el retardo de extremo a extremo de la reproduccion del contenido de video en el lado de la decodificacion, incluso a una granularidad menor que la tasa de la instantanea o la tasa del fotograma. Evidentemente, la sobre-segmentacion de cada instantanea 18 en una enorme cantidad de subporciones 24 en el lado de la codificacion, afectana de manera negativa la tasa de bits para
5
10
15
20
25
30
35
40
45
50
55
60
transmitir el flujo de datos de v^deo 22, aunque por otra parte, el retardo de extremo a extremo puede minimizarse, puesto que el tiempo necesario para codificar y transmitir y decodificar y emitir una unidad de decodificacion de este tipo, se minimizana. Por otra parte, incrementar el tamano de las subporciones 24 incrementa el retardo de extremo a extremo. En consecuencia, tiene que encontrarse un compromiso. Utilizando los tiempos de recuperacion de la memoria intermedia del decodificador recien mencionados para dirigir la temporizacion de salida de las versiones decodificadas de las subporciones 24 en unidades de las unidades de decodificacion, permite que el codificador 10 o alguna otra unidad en el lado de la codificacion, adapte este compromiso espacialmente, sobre el contenido de la instantanea actual. Mediante esta medida, sena posible controlar el retardo de extremo a extremo de tal manera, que el mismo vane espacialmente a traves del contenido de las instantaneas actuales.
Al implementar las realizaciones expuestas anteriormente, es posible utilizar, como los paquetes del control de la temporizacion, los paquetes de un tipo de paquete retirable. Los paquetes de un tipo de paquete retirable no son necesarios para recuperar el contenido de video en el lado de la decodificacion. A continuacion, tales paquetes se denominan paquetes SEI. Ademas, los paquetes de un tipo de paquete retirable pueden existir tambien, esto es, paquetes retirables de otro tipo, tal como, si se transmiten dentro del flujo, paquetes de redundancia. Como otra alternativa, los paquetes del control de la temporizacion pueden ser paquetes de un cierto tipo de paquete retirable, que portan ademas, sin embargo, un cierto campo del tipo de paquete SEI. Por ejemplo, los paquetes del control de la temporizacion pueden ser paquetes SEI, portando cada paquete SEI uno o varios mensajes SEI, y solo aquellos paquetes SEI que comprenden un mensaje SEI de un cierto tipo forman los paquetes del control de la temporizacion mencionados anteriormente.
Asf, la realizacion descrita hasta ahora con respecto a las Figuras 12 a 14 se aplica, de acuerdo con una realizacion adicional, en la norma HEVC, formando por lo tanto, un posible concepto pava presentar a HEVC mas efectivo para lograr un retardo menor extremo a extremo. Al hacer esto, los paquetes mencionados anteriormente se forman por unidades NAL y los paquetes de la carga util mencionados anteriormente son las unidades NAL VCL de un flujo de la unidad NAL con las porciones que forman las subporciones mencionadas anteriormente.
Antes de una descripcion de este tipo de una realizacion mas detallada, sin embargo, las realizaciones adicionales se describen, las cuales coinciden con las realizaciones expuestas anteriormente, en que los paquetes intercalados se utilizan con el fin de transportar, de una manera eficiente, la informacion que describe el flujo de datos de video, pero la clase de informacion difiere de las realizaciones anteriores, donde los paquetes del control de la temporizacion transportan la informacion de la temporizacion de la recuperacion de la memoria intermedia del decodificador. En las realizaciones descritas adicionalmente a continuacion, la clase de informacion transferida mediante los paquetes intercalados, intercalados en los paquetes de la carga util que pertenecen a una unidad de acceso, relacionada con la informacion de la region de interes (ROI) y/o la informacion de identificacion de las piezas. Las realizaciones descritas adicionalmente, a continuacion, pueden o no combinarse con las realizaciones descritas con respecto a las Figuras 12 a 14.
La Figura 15 muestra un codificador 10 que opera de manera similar al explicado anteriormente con respecto a la Figura 12, excepto por la intercalacion de los paquetes del control de la temporizacion y la funcionalidad descrita anteriormente, con respecto a la Figura 13, que es opcional para el codificador 10 de la Figura 15. Sin embargo, el codificador 10 de la Figura 15 esta configurado para codificar el contenido de video 16 en un flujo de datos de video 22 en unidades de subporciones 24 de las instantaneas 18 del contenido de video 16, justo como se explico anteriormente, con respecto a la Figura 11. En la codificacion del contenido de video 16, el codificador 10 esta interesado en transportar, junto con el flujo de datos de video 22, la informacion en una region de interes ROI 60 al lado de la decodificacion. La ROI 60 es una subarea espacial de una instantanea actual 18, a la que el decodificador debena, por ejemplo, prestar especial atencion. La posicion espacial de la ROI 60 puede ser la entrada al codificador 10 desde el exterior, como se ilustra por una lmea discontinua 62, tal como por la entrada del usuario, o puede determinarse de manera automatica por el codificador 10 o por alguna otra entidad, sobre la marcha, durante la codificacion de la instantanea actual 18. En cualquier caso, el codificador 10 se enfrenta el siguiente problema: la indicacion de la ubicacion de la ROI 60 es en principio, ningun problema para el codificador 10. Para hacer esto, el codificador 10 puede indicar facilmente la ubicacion de la ROI 60 dentro del flujo de datos 22. Sin embargo, con el fin de presentar esta informacion facilmente accesible, el codificador 10 de la Figura 15 utiliza la intercalacion de los paquetes ROI entre los paquetes de la carga util de las unidades de acceso, de manera que el codificador 10 esta libre para, en una base en lmea, elegir la segmentacion de la instantanea actual 18 en las subporciones 24 y/o el numero de paquetes de la carga util en los cuales las subporciones 24 se empaquetan, espacialmente fuera y espacialmente dentro de la ROI 60. Al utilizar los paquetes ROI intercalados, cualquier entidad de la red puede identificar facilmente los paquetes de la carga util que pertenecen a la ROI. Por otra parte, en el caso de utilizar un tipo de paquete retirable para estos paquetes ROI, los mismos pueden ignorarse facilmente por cualquier entidad de la red.
La Figura 15 muestra un ejemplo para intercalar los paquetes ROI 64 entre los paquetes de la carga util 32 de una unidad de acceso 30. El paquete ROI 64 indica donde dentro de la secuencia 34 de paquetes del flujo de datos de video 22 estan contenidos los datos codificados con los que esta relacionado, es decir, codifica, la ROI 60. Como
5
10
15
20
25
30
35
40
45
50
55
60
indica el paquete ROI 64 la ubicacion de la ROI 60 puede implementarse de multiples formas. Por ejemplo, la mera existencia/aparicion de un paquete ROI 64 puede indicar la incorporacion de los datos codificados relacionados con la ROI 60 dentro de uno o mas de los siguientes paquetes de la carga util 32, que siguen en el orden secuencial de la secuencia 34, es decir, que pertenecen a los paquetes prefijados de la carga util. Como alternativa, un elemento de la sintaxis dentro del paquete ROI 64 puede indicar si uno o mas de los siguientes paquetes de la carga util 32 pertenece a, es decir, codifican al menos parcialmente, la ROI 60 o no. El alto numero de varianza tambien surge de posibles variaciones con respecto al “alcance” del paquete ROI 64 respectivo, es decir, el numero de paquetes prefijados de la carga util prefijado por un paquete ROI 64. Por ejemplo, la indicacion de la incorporacion o la no incorporacion de cualquier dato codificado relacionado con la ROI 60 dentro de un paquete ROI, puede relacionarse con todos los paquetes de la carga util 32 que siguen en el orden secuencial de la secuencia 34, hasta la aparicion del siguiente paquete ROI 64, o puede relacionarse simplemente con el paquete de carga util 32, es decir el paquete de carga util 32 que sigue inmediatamente el paquete ROI 64 respectivo en el orden secuencial de la secuencia 34. En la Figura 15, una grafica 66 ilustra de manera ejemplar, un caso donde los paquetes ROI 64 indican una relevancia de la ROI, es decir, la incorporacion de cualesquiera datos codificados relacionados con la ROI 60, o la no relevancia de la ROI, es decir, la ausencia de cualesquiera datos codificados relacionados con la ROI 60, en relacion con todos los paquetes de la carga util 32 que tienen lugar corriente abajo del paquete ROI 64 respectivo, hasta la aparicion del siguiente paquete ROI 64 o el final de la unidad de acceso actual 30, lo que tenga lugar antes, a lo largo de la secuencia 34 de paquetes. En particular, la Figura 15 ilustra el caso donde un paquete ROI 64 tiene en su interior un elemento de la sintaxis, que indica si los paquetes de la carga util 32 que siguen en el orden secuencial de la secuencia de paquetes 34 tienen o no cualesquiera datos codificados que relacionados con la ROI 60 en su interior o no. Una realizacion de este tipo tambien se describe aqrn posteriormente. Sin embargo, otra posibilidad es, como se acaba de mencionar, que cada paquete ROI 64 indique simplemente su presencia en la secuencia de paquetes 34, que el paquete o paquetes de carga util 32 pertenecen al “alcance” del paquete ROI 64 respectivo, tiene datos relacionados con la ROI 60 en su interior, es decir, datos relacionados con la ROI 60. De acuerdo con una realizacion descrita aqrn posteriormente con mas detalle, el paquete ROI 64 indica incluso la ubicacion de la porcion de la ROI 60 codificada en el paquete o paquetes de carga util 32 que pertenecen a su “alcance”.
Cualquier entidad de la red 68 que recibe el flujo de datos de video 22 puede aprovechar la indicacion de la relevancia de la ROI, como se realiza mediante el uso de los paquetes ROI 64 para tratar, por ejemplo, las porciones relevantes de la ROI, de la secuencia 34 de paquetes con una prioridad mayor que las otras porciones de la secuencia de paquetes 34, por ejemplo. Como alternativa, la entidad de la red 68 podna utilizar la informacion de relevancia de la ROI para realizar otras tareas relacionadas con, por ejemplo, la transmision del flujo de datos de video 22. La entidad de la red 68 puede ser, por ejemplo, una MANE o un decodificador para decodificar y reproducir el contenido de video 60 segun se transporta mediante el flujo de datos de video 22, 28. En otras palabras, la entidad de la red 68 puede utilizar un resultado de la identificacion de los paquetes ROI, para decidir sobre las tareas de la transmision que pertenecen al flujo de datos de video. Las tareas de la transmision pueden comprender solicitudes de retransmision con respecto a paquetes defectuosos. La entidad de la red 68 puede configurarse para manejar la region de interes 70 con una prioridad incrementada y asignar una prioridad mayor a los paquetes rOi 72 y a sus paquetes de la carga util asociados, es decir, los prefijados por la misma, que se senalizan como superpuestos a la region de interes, en comparacion con los paquetes ROI y sus paquetes de la carga util asociados, que estan senalizados como no superpuestos a la ROI. La entidad de la red 68 puede solicitar primero una retransmision de los paquetes de la carga util que tienen la prioridad mas alta asignada a los mismos, antes de solicitar cualquier retransmision de los paquetes de la carga util que tienen la prioridad menor asignada a los mismos.
La realizacion de la Figura 15 puede combinarse facilmente con la realizacion descrita previamente, con respecto a las Figuras 12 a 14. Por ejemplo, los paquetes ROI 64 mencionados anteriormente tambien pueden ser los paquetes SEI que tienen un cierto tipo de mensaje SEI contenido en los mismos, en concreto un mensaje SEI ROI. Es decir, un paquete SEI puede, por ejemplo, ser un paquete del control de la temporizacion y de manera concurrente, un paquete ROI, en concreto, si el paquete SEI respectivo comprende tanto la informacion del control de la temporizacion como la informacion de la indicacion ROI. Como alternativa, un paquete SEI puede ser uno de un paquete del control de la temporizacion y un paquete ROI, en lugar del otro, o puede ser ni un paquete ROI ni un paquete del control de la temporizacion.
De acuerdo con la realizacion mostrada en la Figura 16, la intercalacion de los paquetes entre los paquetes de la carga util de las unidades de acceso se utiliza para indicar, de una manera facilmente accesible para las entidades de la red 68, que manejan del flujo de datos de video 22, cual pieza o piezas de la instantanea actual 18, con cual unidad de acceso actual 30 se relacionan, estan superpuestas por alguna subporcion codificada en cualquiera de los paquetes de la carga util 32 para el que los paquetes respectivos sirven como un prefijo. En la Figura 16, por ejemplo, la instantanea actual 18 se muestra que esta subdividida en cuatro piezas 70, en este punto formadas de manera ejemplar por cuatro cuadrantes de la instantanea actual 18. La subdivision de la instantanea actual 18 en las piezas 70 puede, por ejemplo, senalizarse dentro del flujo de datos de video en unidades que comprenden las secuencias de instantaneas tales como por ejemplo, en paquetes VPS o SPS tambien intercalados en la secuencia
5
10
15
20
25
30
35
40
45
50
55
60
34 de paquetes. Como se describe con mas detalle a continuacion, una subdivision de las piezas de la instantanea actual 18 puede ser una subdivision regular de la instantanea 18 en columnas y filas de piezas. El numero de columnas y el numero de filas, asf como la anchura de las columnas y la altura de las filas de las piezas puede variarse. En particular, la anchura y la altura de las columnas/filas de las piezas puede ser diferente para diferentes filas y diferentes columnas, respectivamente. La Figura 16 muestra ademas, el ejemplo donde las subporciones 24 son cortes de la instantanea 18. Los cortes 24 subdividen la instantanea 18. Como se expondra con mas detalle a continuacion, la subdivision de la instantanea 18 en los cortes 24 puede someterse a restricciones de acuerdo con las que cada corte 24 puede estar contenido completamente dentro de una sola pieza 70, o cubrir completamente dos o mas piezas 70. La Figura 16 ilustra un caso donde la instantanea 18 esta subdividida en cinco cortes 24. Los primeros cuatro de estos cortes 24 en el orden de decodificacion mencionado anteriormente, cubren las primeras dos piezas 70, mientras que el quinto corte cubre completamente la tercera y cuarta piezas 70. Ademas, la Figura 16 ilustra el caso donde cada corte 24 se codifica individualmente en un paquete de carga util 32 respectivo. Ademas, la Figura 16 ilustra de manera ejemplar, el caso donde cada paquete de carga util 32 se prefija por un paquete de identificacion de las piezas 72 precedente. Cada paquete de identificacion de las piezas 72, a su vez, indica para su paquete de carga util 32 inmediatamente sucesivo, en cual de las piezas 70 se superpone la subporcion 24 codificada en este paquete de carga util 32. En consecuencia, aunque los primeros dos paquetes de identificacion de las piezas 72 dentro de la unidad de acceso 30 estan relacionados con una instantanea actual 18 que indica la primera pieza, el tercer y cuarto paquetes de identificacion de las piezas 72 indican la segunda pieza 70 de la instantanea 18, y el quinto paquete de identificacion de las piezas 72 indica la tercera y cuarta piezas 70. Con respecto a la realizacion de la Figura 16, las mismas variaciones son factibles como se describio anteriormente, con respecto a la Figura 15, por ejemplo. Esto es, el “alcance” de los paquetes de identificacion de las piezas 72 pueden por ejemplo, abarcar simplemente el primer paquete de carga util 32 inmediatamente sucesivo o los paquetes de la carga util 32 inmediatamente sucesivos hasta la aparicion del siguiente paquete de identificacion de las piezas.
Con respecto a las piezas, el codificador 10 puede configurarse para codificar cada pieza 70, de manera que a traves de los lfmites de las piezas, no tenga lugar una prediccion espacial o no tenga lugar una seleccion del contexto. El codificador 10 puede, por ejemplo, codificar la pieza 70 en paralelo. De igual manera, cualquier decodificador, tal como la entidad de la red 68 puede decodificar las piezas 70 en paralelo.
La entidad de la red 68 puede ser una MANE o un decodificador o algun otro dispositivo entre el codificador 10 y el decodificador, y puede configurarse para utilizar la informacion transportada por los paquetes de identificacion de las piezas 72, para decidir sobre ciertas tareas de transmision. Por ejemplo, la entidad de la red 68 puede manipular una cierta pieza de la instantanea actual 18 del video 16 con mayor prioridad, es decir, puede reenviar los paquetes de la carga util respectivos indicados como que estan relacionados con tal pieza antes o utilizando una proteccion FEC mas segura o similar. En otras palabras, la entidad de la red 68 puede utilizar un resultado de la identificacion para decidir sobre las tareas de transmision que pertenecen al flujo de datos de video. Las tareas de transmision pueden comprender solicitudes de retransmision con respecto a los paquetes recibidos en un estado defectuoso - es decir, que exceden cualquier proteccion FEC del flujo de datos de video, si los hubiera. La entidad de la red puede manejar, por ejemplo, diferentes piezas 70 con diferente prioridad. Para este fin, la entidad de la red puede asignar una mayor prioridad a los paquetes de identificacion de las piezas 72 y a sus paquetes de la carga util, es decir, los prefijados de esta manera, que pertenecen a piezas con prioridad mayor, en comparacion con los paquetes de identificacion de las piezas 72 y sus paquetes de la carga util que pertenecen a piezas con prioridad menor. La entidad de la red 68 puede, por ejemplo, solicitar en primer lugar la retransmision de los paquetes de la carga util que tienen la prioridad mayor asignada a los mismos, antes de solicitar cualquier retransmision de los paquetes de la carga util que tienen la prioridad menor asignada a los mismos.
Las realizaciones descritas hasta ahora pueden construirse en la estructura del HEVC como se describio en la porcion introductoria de la memoria descriptiva de la presente solicitud, como se describe a continuacion.
En particular, los mensajes SEI pueden asignarse a cortes de las unidades de decodificacion en el caso de la sub- instantanea CPB/HRD. Esto es, el periodo de almacenamiento en memoria intermedia y los mensajes SEI de la temporizacion pueden asignarse a las unidades NAL que contienen los cortes de una unidad de decodificacion. Esto puede lograrse por un nuevo tipo de unidad NAL, que es una unidad no NAL VCL que se le permite preceder directamente uno o mas cortes/unidades NAL VCL de una unidad de decodificacion. Esta nueva unidad nAl puede llamarse una unidad NAL del prefijo del corte. La Figura 17 ilustra la estructura de una unidad de acceso que omite cualesquiera unidades NAL provisionales para el fin de la secuencia y flujo.
De acuerdo con la Figura 17, una unidad de acceso 30 se construye como sigue: en el orden secuencial de paquetes de la secuencia 34 de paquetes, la unidad de acceso 30 puede empezar con la aparicion de un tipo especial de paquete, en concreto, un delimitador de la unidad de acceso 80. A continuacion, uno o mas paquetes SEI 82 de un tipo de paquete SEI que esta relacionado con toda la unidad de acceso, puede seguir dentro de la unidad de acceso 30. Ambos tipos de paquete 80 y 82 son opcionales. Esto es, ningun paquete de este tipo puede tener lugar dentro de una unidad de acceso 30. A continuacion, sigue la secuencia de unidades de decodificacion 38. Cada unidad de decodificacion 38 empieza opcionalmente con una unidad NAL del prefijo del corte 84,
5
10
15
20
25
30
35
40
45
50
55
60
incluyendo en la misma, por ejemplo, informacion del control de la temporizacion o de acuerdo con la realizacion de la Figura 15 o 16, una informacion ROI o informacion de las piezas o, incluso mas en general, un mensaje SEI de la sub-instantanea 86 respectiva. A continuacion, los datos del corte 88 real en los paquetes de la carga util o unidades NAL VCL respectivos, siguen como se indica en 88. Por lo tanto, cada unidad de decodificacion 38 comprende una secuencia de una unidad NAL del prefijo del corte 84 seguida por la unidad o unidades de NAL de los datos del corte 88 respectivas. La flecha de desviacion 90 en la Figura 17, que evita la unidad NAL del prefijo del corte, debe indicar que en caso de que no haya una subdivision de la unidad de decodificacion de la unidad de acceso actual 30, puede no haber una unidad NAL del prefijo del corte 84.
Como ya se indico anteriormente, toda la informacion senalizada en el prefijo del corte y los mensajes SEI de la sub- instantanea asociados, pueden ser validos para todas las unidades NAL VCL en la unidad de acceso o hasta la aparicion de una segunda unidad NAL de prefijo o para la siguiente unidad NAL VCL, en el orden de decodificacion, dependiendo de una bandera dada en la unidad NAL del prefijo del corte.
La unidad NAL VCL del corte para la que la informacion senalizada en el prefijo del corte es valida, se denomina como cortes prefijados a continuacion. Los cortes prefijados asociados con unico corte prefijado no necesariamente constituyen una unidad de decodificacion completa, pero pueden ser partes de la misma. Sin embargo, un solo prefijo del corte no puede ser valido para multiples unidades de decodificacion (subinstantaneas) y el inicio de una unidad de decodificacion se senaliza en el prefijo del corte. Si los medios para la senalizacion no se dan a traves de la sintaxis del prefijo del corte (como en la “sintaxis sencilla”/version 1 indicada a continuacion) la aparicion de una unidad NAL del prefijo del corte senaliza el inicio de una unidad de decodificacion. Solo ciertos mensajes SEI (identificados mediante payloadType en la descripcion de la sintaxis a continuacion), pueden enviarse de manera exclusiva a un nivel de la sub-instantanea dentro de la unidad NAL del prefijo del corte, mientras que algunos mensajes SEI pueden enviarse ya sea en la unidad NAL del prefijo del corte al nivel de la sub-instantanea o como un mensaje SEI convencional al nivel de la unidad de acceso.
Como se analizo anteriormente con respecto a la Figura 16, adicionalmente, o como alternativa, una senalizacion del mensaje SEI de la ID de las piezas/ID de las piezas puede realizarse en la sintaxis de alto nivel. En los disenos anteriores de un HEVC, el encabezamiento del corte/los datos del corte conteman un identificador para la pieza contenido en el corte respectivo. Por ejemplo, la semantica de los datos del corte se lee:
tile_idx_minus_1 especifica la TileID en el orden del barrido por tramas. La primera pieza en la instantanea debe tener una TileID de 0. El valor de tile_idx_minus_1 debera estar en el intervalo de 0 a (num_tile_columns_minus1 + 1) * (num_tile_rows_minus1 + 1 ) - 1.
Sin embargo, este parametro no se considera util, puesto que esta ID puede derivarse facilmente de la direccion del corte y las dimensiones del corte, como se senalizo en el conjunto de parametros de la instantanea, si tiles_or_entropy_coding_sync_idc es igual a 1.
Aunque la ID de las piezas puede derivarse de manera implfcita en el proceso de decodificacion, el conocimiento de este parametro en la capa de aplicacion tambien es importante para casos de uso diferentes, tales como por ejemplo, en un escenario de videoconferencia, donde diferentes piezas tienen diferente prioridad para la reproduccion (esas piezas forman tipicamente la region de interes que contiene el hablante en un caso de uso de conversacion), pueden tener una prioridad mayor que otras piezas. En caso de perder los paquetes de la red en la transmision de multiples piezas, esos paquetes de la red que contienen piezas que representan la region de interes pueden retransmitirse con una prioridad mayor, con el fin de mantener la calidad de la experiencia en el terminal del receptor mas alta que en el caso de retransmitir las piezas sin ningun orden de prioridad. Otro caso de uso puede ser asignar las piezas, si las dimensiones y su posicion son conocidas, a diferentes pantallas, por ejemplo, en un escenario de una videoconferencia.
Con el fin de permitir que tal capa de aplicacion maneje las piezas con una cierta prioridad en los escenarios de transmision, tile_id puede proporcionarse como un mensaje SEI espedfico de la sub-instantanea o del corte o en una unidad NAL especial en frente de una o mas unidades NAL de las piezas o en una seccion especial del encabezamiento de la unidad NAL que pertenece a la pieza.
Como se describio anteriormente con respecto a la Figura 15, tambien pueden proporcionarse adicionalmente, o como alternativa los mensajes SEI de la region de interes. Un mensaje SEI de este tipo podna permitir la senalizacion de la region de interes (ROI), en particular, la senalizacion de una ROI a la que pertenece una cierta tile_id/pieza. El mensaje podna permitir proporcionar a la region de interes ID mas una prioridad de una region de interes.
La Figura 18 ilustra el uso de las piezas en la senalizacion de la region de interes.
Ademas de lo que se ha descrito anteriormente, podna implementarse la senalizacion del encabezamiento del corte.
5
10
15
20
25
30
35
40
45
50
55
60
La unidad NAL del prefijo del corte tambien puede contener el encabezamiento del corte para los siguientes cortes dependientes, es decir, los cortes prefijados por el prefijo del corte respectivo. Si el encabezamiento del corte solo se aprovisiona en la unidad NAL del prefijo del corte, el tipo de corte real necesita derivarse por el tipo de unidad NAL de la unidad NAL que contiene el corte dependiente respectivo o por medio de una bandera en el prefijo del corte, que senaliza si los siguientes datos del corte pertenecen a un tipo de corte que sirve como un punto de acceso aleatorio.
Ademas, la unidad NAL del prefijo del corte puede portar mensajes SEI espedficos del corte o de la sub-instantanea para transportar informacion no obligatoria, tal como la temporizacion de la sub-instantanea o un identificador de las piezas. La mensajena espedfica de la sub-instantanea no obligatoria no se soporta en la especificacion HEVC descrita en la porcion introductoria de la memoria descriptiva de la presente solicitud, pero es crucial para ciertas aplicaciones.
A continuacion, se describe la posible sintaxis para implementar el concepto expuesto anteriormente del prefijado del corte. En particular, se describe que cambios podnan ser suficientes a un nivel del corte cuando se utiliza el estado HEVC, como se expuso en la porcion introductoria de la memoria descriptiva de la presente solicitud como una base.
En particular, a continuacion, se presentan dos versiones de una posible sintaxis del prefijo del corte, una con una funcionalidad de mensajena SEI unicamente, y una con la funcionalidad extendida de la senalizacion de una porcion del encabezamiento del corte para los siguientes cortes. La primera sintaxis sencilla/version 1 se muestra en la Figura 19.
Como una nota preliminar, la Figura 19 muestra por lo tanto una posible implementacion para implementar cualquiera de las realizaciones descritas anteriormente con respecto a las Figuras 11 a 16. Los paquetes intercalados mostrados en la misma pueden construirse como se muestra en la Figura 19 y a continuacion, esto se describe con mas detalle con los ejemplos de la implementacion espedfica.
La sintaxis extendida/version 2 incluye la senalizacion de tile_id, el identificador del inicio de la unidad de decodificacion, la ID del prefijo del corte y datos del encabezamiento del corte, aparte del concepto del mensaje SEI que se da en la tabla de la Figura 20.
La semantica podna definirse como sigue:
rap_flag con un valor de 1 indica que la unidad de acceso que contiene el prefijo del corte es una instantanea rAp. rap_flag con un valor de 0 indica que la unidad de acceso que contiene el prefijo del corte no es una instantanea RAP.
decoding_unit start_flag indica el inicio de una unidad de decodificacion dentro de la unidad de acceso, por lo tanto los cortes siguientes hasta el fin de la unidad de acceso o el inicio de otra unidad de decodificacion pertenecen a la misma unidad de decodificacion.
single_slice_flag con un valor de 0 indica que la informacion proporcionada dentro de la unidad NAL del prefijo del corte y los mensajes SEI de la sub-instantanea asociada son validos para todas las siguientes unidades nAl VCL hasta el inicio de la siguiente unidad de acceso, la aparicion de otro prefijo del corte u otro encabezamiento del corte completo. single_slice_flag con un valor de 1 indica que toda la informacion proporcionada en la unidad NAL del prefijo del corte y los mensajes SEI de la sub-instantanea asociada son validos solo para la siguiente unidad NAL VCL en el orden de decodificacion.
tile_idc indica la cantidad de piezas que estan presentes en el siguiente corte. tile_idc igual a 0 indica que no se utilizan piezas en el siguiente corte. tile_idc igual a 1 indica que una sola pieza se utiliza en el siguiente corte y su identificador de las piezas esta senalado en consecuencia. tile_idc con un valor de 2 indica que se utilizan multiples piezas dentro del siguiente corte y el numero de piezas y el identificador de la primera pieza se senalizan en consecuencia.
prefix_slice_header_data_present_flag indica que los datos del encabezamiento del corte, que corresponden a los cortes siguientes en el orden de decodificacion, estan senalizados en el prefijo del corte dado.
slice_header_data() se define posteriormente en el texto. Contiene la informacion relevante del encabezamiento del corte, que no esta cubierta por el encabezamiento del corte, si dependent_slice_flag se fija igual a 1.
Observese que el desacoplamiento del encabezamiento del corte y los datos del corte real permiten esquemas de transmision mas flexibles del encabezamiento y los datos del corte.
num_tiles_in_prefixed_slices_minus1 indica el numero de piezas utilizadas en la siguiente unidad de decodificacion menos 1.
5
10
15
20
25
30
35
40
45
50
55
60
first_tile_id_in_prefixed_slices indica el identificador de las piezas de la primera pieza en la siguiente unidad de decodificacion.
Para la sintaxis sencilla/version 1 del prefijo del corte, los siguientes elementos de la sintaxis pueden establecerse a los valores por defecto como sigue; si no estan presentes:
- decoding_unit_start igual a 1, es decir, el prefijo del corte siempre indica un inicio de una unidad de decodificacion.
- single_slice_flag igual a 0, es decir, el prefijo del corte es valido para todos los cortes en la unidad de decodificacion.
Se propone que la unidad NAL del prefijo del corte tenga un tipo de unidad NAL de 24 y la tabla de resumen del tipo de unidad NAL se extienda de acuerdo con la Figura 21.
Esto es, resumiendo brevemente las Figuras 19 a 21, los detalles de la sintaxis mostrados en ellas revelan que un cierto tipo de paquete puede atribuirse a los paquetes intercalados identificados anteriormente, en este punto, de manera ejemplar, el tipo 24 de unidad NAL. Ademas, especialmente el ejemplo de la sintaxis de la Figura 20 aclara que las alternativas descritas anteriormente con respecto al “alcance” de los paquetes intercalados, un mecanismo de conmutacion controlado por un elemento de la sintaxis respectivo dentro de estos mismos paquetes intercalados, en este punto de manera ejemplar single_slice_flag, puede utilizarse con el fin de controlar este alcance, es decir, para cambiar entre diferentes alternativas para la definicion de este alcance, respectivamente. Ademas, se ha aclarado que las realizaciones descritas anteriormente de las Figuras 1 a 16 pueden extenderse en que los paquetes intercalados tambien comprenden datos del encabezamiento del corte comunes para los cortes 24 contenidos en los paquetes que pertenecen al “alcance” de los paquetes intercalados respectivos. Esto es, puede haber un mecanismo controlado por una bandera respectiva dentro de estos paquetes intercalados, que indican si los datos del encabezamiento del corte comunes, estan contenidos dentro del paquete intercalado respectivo o no.
Por supuesto, el concepto recien presentado de acuerdo con que parte de los datos del encabezamiento del corte se desplazan en el prefijo del encabezamiento del corte, requiere cambios de los encabezamientos del corte como se especifica en la version actual de HEVC. La tabla en la Figura 22 muestra una posible sintaxis para tal encabezamiento del corte, donde ciertos elementos de la sintaxis presentes en el encabezamiento del corte, de acuerdo con la version actual, se desplazan a un elemento de la sintaxis de jerarqrna menor, denominado como slice_header_data(). Esta sintaxis del encabezamiento del corte y los datos del encabezamiento del corte solo se aplican a la opcion de acuerdo con la que se utiliza el concepto de la unidad NAL de prefijo de encabezamiento de corte extendido.
En la Figura 22, slice_header_data_present_flag indica que los datos del encabezamiento del corte para el corte presente, deben predecirse desde los valores senalizados en la ultima unidad NAL del prefijo del corte en la unidad de acceso, es decir, la unidad NAL del prefijo del corte que aparece mas recientemente.
Todos los elementos de la sintaxis eliminados del encabezamiento del corte se senalizan a traves de los datos del encabezamiento del corte del elemento de la sintaxis como se proporciona en la tabla de la Figura 23.
Esto es, transfiriendo el concepto de la Figura 22 y la Figura 23 a las realizaciones de las Figuras 12 a 16, los paquetes intercalados descritos en las mismas, pueden extenderse por el concepto de incorporar en estos paquetes intercalados, una parte de la sintaxis del encabezamiento del corte de las porciones (subporciones) 24 codificadas en los paquetes de la carga util, es decir, unidades NAL VCL. La incorporacion puede ser opcional. Esto es, un elemento de la sintaxis respectivo en el paquete intercalado puede indicar si tal sintaxis del encabezamiento del corte esta contenida en el paquete intercalado respectivo o no. Si esta incorporado, los datos del encabezamiento del corte respectivo, incorporados en un paquete intercalado respectivo pueden aplicarse a todos los cortes contenidos en el paquete que pertenece al “alcance” del paquete intercalado respectivo. Si los datos del encabezamiento del corte contenidos en un paquete intercalado se adoptan por un corte codificado en cualquiera de los paquetes de la carga util que pertenecen al alcance de este paquete intercalado, puede senalizarse por una bandera respectiva, tal como slice_header_data_present_flag de la Figura 22. Mediante esta medida, los encabezamientos del corte de los cortes codificados en los paquetes que pertenecen al “alcance” de un paquete intercalado respectivo, pueden subdimensionarse en consecuencia, utilizando la bandera recien mencionada en el encabezamiento del corte de los cortes y cualquier decodificador que recibe el flujo de datos de video, tal como las entidades de la red mostradas en las Figuras 12 a 16 anteriores, sena sensible a la bandera recien mencionada en el encabezamiento del corte de los cortes, para copiar los datos del encabezamiento del corte incorporados en un paquete intercalado en el encabezamiento del corte de un corte codificado en un paquete de carga util que pertenece al alcance de este paquete intercalado, en el caso de la bandera respectiva dentro del corte que senaliza el desplazamiento de los datos del encabezamiento del corte al prefijo del corte, es decir, el paquete intercalado respectivo.
Continuando ademas con el ejemplo de sintaxis para implementar las realizaciones de las Figuras 12 a 16, la
5
10
15
20
25
30
35
40
45
50
55
60
sintaxis del mensaje SEI puede ser como se muestra en la Figura 24. Con el fin de introducir los tipos del mensaje SEI del corte o de la sub-instantanea, la sintaxis de la carga util SEI puede adaptarse como se presenta en la tabla de la Figura 25. Solo el mensaje SEI payloadType en el intervalo de 180 a 184 puede enviarse de manera exclusiva al nivel de la sub-instantanea dentro de la unidad NAL del prefijo del corte. Ademas, los mensajes SEI de la region de interes con payloadType igual a 140 pueden enviarse en la unidad NAL del prefijo del corte al nivel de la sub- instantanea, o el mensaje SEI convencional al nivel de la unidad de acceso.
Esto es, al transferir los detalles mostrados en las Figuras 25 y 24 en las realizaciones descritas anteriormente con respecto a las Figuras 12 a 16, los paquetes intercalados mostrados en estas realizaciones de las Figuras 12 a 16 pueden realizarse utilizando las unidades NAL del prefijo del corte con un cierto tipo de unidad NAL, por ejemplo 24, que comprende un cierto tipo de mensaje SEI senalizado por payloadType al inicio de cada mensaje SEI dentro de la unidad NAL del prefijo del corte, por ejemplo. En la realizacion de la sintaxis espedfica descrita ahora, payloadType = 180 y payloadType = 181 da como resultado un paquete del control de la temporizacion de acuerdo con las realizaciones de las Figuras 11 a 14, mientras que payloadType = 140 da como resultado un paquete ROI de acuerdo con la realizacion de la Figura 15, y payloadType = 182 da como resultado un paquete de identificacion de las piezas de acuerdo con la realizacion de la Figura 16. El ejemplo de la sintaxis espedfica descrita en el presente documento a continuacion, puede comprender meramente uno o un subconjunto de las opciones de payloadType recien mencionadas. Mas alla de esto, la Figura 25 revela que cualquiera de las realizaciones descritas anteriormente de las Figuras 11 a 16 pueden combinarse unas con otras. Incluso ademas, la Figura 25 revela que cualquiera de las realizaciones anteriores de las Figuras 12 a 16, o cualquier combinacion de las mismas, puede extenderse por un paquete intercalado adicional, explicado posteriormente con payloadType = 184. Como ya se describio anteriormente, una extension descrita a continuacion con respecto a payloadType = 183 termina en la posibilidad de que cualesquiera paquetes intercalados puedan tener incorporados en los mismos datos de encabezamiento del corte comun para los encabezamientos del corte, de los cortes codificados en cualquier paquete de carga util que pertenezca a su alcance.
Las tablas en las siguientes Figuras definen los mensajes SEI que pueden utilizarse al nivel del corte o de la sub- instantanea. Tambien se presenta un mensaje SEI de la region de interes, que puede utilizarse al nivel de sub- instantanea y de la unidad de acceso.
La Figura 26, por ejemplo, muestra un ejemplo para un mensaje SEI de almacenamiento de memoria intermedia de la sub-instantanea que tiene lugar cada vez que una unidad NAL del prefijo del corte de la unidad NAL del tipo 24 tiene un tipo de mensaje SEI 180 contenido en la misma, formando asf un paquete del control de la temporizacion.
La semantica podna definirse como sigue:
seq_parameter_set_id especifica el conjunto de parametros de la secuencia que contiene los atributos HED de la secuencia. El valor de seq_parameter_set_id debera ser igual al valor de seq_parameter_set_id en el conjunto de parametros de la instantanea referenciado por la instantanea codificada primaria asociada con el mensaje SEI del periodo de almacenamiento en memoria intermedia. El valor de seq_parameter_set_id debera estar en el intervalo de 0 a 31, inclusive.
initial_cpb_removal_delay[ SchedSelIdx ] e initial_alt_cpb_removal_delay[ SchedSelIdx ] especifican los retardos de eliminacion CPB iniciales para la CPB de orden SchedSelIdx de la unidad de decodificacion (la sub- instantanea). Los elementos de la sintaxis tienen una longitud en bits dada por initial_cpb_removal_delay_length_minus1 + 1, y estan en unidades de un reloj de 90 kHz. Los valores de los elementos de la sintaxis no deben ser iguales a 0 y no deberan superar 90000 * ( CpbSize[ SchedSelIdx ] + BitRate[ SchedSelIdx ] ), el equivalente del tiempo del tamano de la CPB en unidades de reloj de 90 kHz.
Sobre toda la secuencia de video codificada, la suma de initial_cpb_removal_delay[ SchedSelIdx ] e initial_cpb_removal_delay_offset[ SchedSelIdx ] por unidad de decodificacion (sub-instantanea) debera ser constante para cada valor de SchedSelIdx, y la suma de initial_alt_cpb_removal_delay[ SchedSelIdx ] e initial_alt_cpb_removal_delay_offset[ SchedSelIdx ] debera ser constante para cada valor de SchedSelIdx.
La Figura 27 muestra de igual manera, un ejemplo para un mensaje SEI de la temporizacion de la sub-instantanea, en el que la semantica podna describirse como sigue:
du_cpb_removal_delay especifica cuantos tictacs del reloj esperar despues de la eliminacion de la CPB de la unidad de decodificacion (sub-instantanea) asociada con el mensaje SEI del periodo de almacenamiento de la sub-instantanea en memoria intermedia mas reciente en una unidad de acceso precedente en la misma unidad de decodificacion (sub-instantanea), si esta presente, asociada de otra manera con el mensaje SEI del periodo de almacenamiento en memoria intermedia mas reciente en una unidad de acceso precedente, antes de eliminar de la memoria intermedia, los datos de la unidad de decodificacion (sub-instantanea) asociados con el mensaje SEI de la temporizacion de la sub-instantanea. Este valor tambien se utiliza para calcular un posible tiempo de
5
10
15
20
25
30
35
40
45
50
55
60
llegada mas anterior de los datos de la unidad de decodificacion (sub-instantanea) en la CPB para el HSS (Planificador del Flujo Hipotetico [2]0). El elemento de la sintaxis es un codigo de longitud fija cuya longitud en bits se da por cpb removal_delay length_minus1 + 1. El cpb_removal_delay es el resto de un contador de un
modulo 2(cpb_removal_delay_length_minus1 +"T)
du_dpb_output_delay se utiliza para calcular el tiempo de salida DPB de la unidad de decodificacion (sub- instantanea). Especifica cuantos tictacs del reloj esperar despues de la eliminacion de la unidad de decodificacion decodificada (sub-instantanea) de la CPB antes de que la unidad de decodificacion (sub- instantanea) de la instantanea de emita desde la DPB.
Observese que esto permite las actualizaciones de la sub-instantanea. En tal escenario, las unidades de decodificacion no actualizadas pueden permanecer sin cambio de la ultima instantanea decodificada, es decir, permanecen visibles.
Resumiendo las Figuras 26 y 27 y transfiriendo los detalles espedficos contenidos en las mismas en la realizacion de las Figuras 12 a 14, puede decirse que el tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion puede senalizarse en el paquete del control de la temporizacion asociado de una manera codificada diferencialmente, en concreto, incrementalmente, con relacion a otro tiempo de recuperacion de la memoria intermedia de decodificacion. Esto es, con el fin de obtener el tiempo de recuperacion de la memoria intermedia del decodificador para una cierta unidad de decodificacion, un decodificador que recibe el flujo de datos de video agrega el tiempo de recuperacion del decodificador obtenido desde el paquete del control de la temporizacion, prefijando la cierta unidad de decodificacion, al tiempo de recuperacion del decodificador de la unidad de decodificacion inmediatamente precedente, es decir, la que precede a cierta unidad de decodificacion, y procediendo de esta manera con las siguientes unidades de decodificacion. Al inicio de las secuencias de video codificadas de cada una de varias instantaneas o partes de las mismas, un paquete del control de la temporizacion puede adicionalmente, o como alternativa, comprender un valor del tiempo de recuperacion de la memoria intermedia del decodificador codificado de manera absoluta, en lugar de diferencialmente, con relacion a cualquier tiempo de recuperacion de la memoria intermedia del decodificador de la unidad de decodificacion precedente.
La Figura 28 muestra como puede verse el mensaje SEI de la informacion del corte de la sub-instantanea. La semantica podna definirse como sigue:
slice_header_data_flag con un valor de 1 indica que los datos del encabezamiento del corte estan presentes en el mensaje SEI. Los datos del encabezamiento del corte proporcionados en la SEI son validos para todos los cortes que siguen en el orden de decodificacion, hasta el final de la unidad de acceso, la aparicion de los datos del corte en otro mensaje SEI, unidad NAL del corte o unidad NAL del prefijo del corte.
La Figura 29 muestra un ejemplo para un mensaje SEI de la informacion de las piezas de la sub-instantanea, en el que la semantica podna definirse como sigue:
tile_priority indica la prioridad de todas las piezas en los cortes prefijados que siguen en el orden de decodificacion. El valor de tile_priority debera estar en el intervalo de 0 a 7, inclusive, donde 7 indica la prioridad mas alta.
multiple_tiles_in_prefixed_slices_flag con un valor de 1, indica que hay mas de 1 pieza en los cortes prefijados para seguir en el orden de decodificacion. multiple_tiles_in_prefixed_slices_flag con un valor de 0 indica que los siguientes cortes prefijados contienen solo una pieza.
num_tiles_in_prefixed_slices_minus1 indica el numero de piezas en los cortes prefijados que siguen en el orden de decodificacion.
first_tile_id_in_prefixed_slices indica la tile_id de la primera pieza en los cortes prefijados que siguen en el orden de decodificacion.
Esto es, la realizacion de la Figura 16 podna implementarse utilizando la sintaxis de la Figura 29 para realizar los paquetes de identificacion de las piezas mencionados en la Figura 16. Como se muestra allf, una cierta bandera, en este punto multiple_tiles_in_prefixed_slices_flag, puede utilizarse para senalizar dentro del paquete intercalado de identificacion de las piezas, si simplemente una pieza o mas de una pieza estan cubiertas por cualquier subporcion de la instantanea actual 18 codificada en cualquiera de los paquetes de la carga util que pertenecen al alcance del paquete intercalado de identificacion de las piezas respectivo. Si la bandera senaliza la superposicion de mas de una pieza, un elemento de la sintaxis adicional esta contenido en el paquete intercalado respectivo, en este punto de manera ejemplar, num_tiles_in_prefixed_slices_minus1 indicando el numero de piezas superpuestas por cualquier subporcion de cualquier paquete de carga util que pertenece al alcance del paquete intercalado de identificacion de las piezas respectivo. Finalmente, un elemento de la sintaxis adicional, en este punto de manera ejemplar, first_tile_id_in_prefixed_slices, indica la ID de la pieza entre el numero de piezas indicado por el paquete intercalado
5
10
15
20
25
30
35
40
45
50
55
60
de identificacion de las piezas actual, que es el primero de acuerdo con el orden de decodificacion. Transfiriendo la sintaxis de la Figura 29 en la realizacion de la Figura 16, el paquete de identificacion de las piezas 72 que prefija el quinto paquete de carga util 32 podna, por ejemplo, tener todos los tres elementos de la sintaxis recien analizados con multiple_tiles_in_prefixed_slices_flag fijandose a 1, num_tiles_in_prefixed_slices_minus1 estableciendose a 1, indicando de esta manera que dos piezas pertenecen al alcance actual, y first_tile_id_in_prefixed_slices estableciendose a 3, indicando que la pasada de piezas en el orden de decodificacion que pertenece al alcance del paquete de identificacion de las piezas actual 72 empieza en la tercera pieza (que tiene tile_id = 2).
La Figura 29 tambien revela que un paquete de identificacion de las piezas 72 puede tambien indicar posiblemente una tile_priority, es decir, una prioridad de las piezas que pertenecen a su alcance. De manera similar al aspecto ROI, la entidad de la red 68 puede utilizar tal informacion de la prioridad para controlar las tareas de transmision, tales como la solicitud para las retransmisiones de ciertos paquetes de la carga util.
La Figura 30 muestra un ejemplo de sintaxis para un mensaje SEI de la informacion de la dimension de las piezas de la sub-instantanea, en el que la semantica podna definirse como sigue:
multiple_tiles_in_prefixed_slices_flag con un valor de 1 indica que hay mas de 1 pieza en los cortes prefijados para seguir en el orden de decodificacion. multiple_tiles_in_prefixed_slices_flag con un valor de 0 indica que los siguientes cortes prefijados contienen solo una pieza.
num_tiles_in_prefixed_slices_minus1 indica el numero de piezas en los cortes prefijados que siguen en el orden de decodificacion.
tile_horz_start[ i ] indica el inicio en la direccion horizontal de la i-esima pieza en pixeles dentro de la instantanea.
tile_width[ i ] indica la anchura de la i-esima pieza en pixeles dentro de la instantanea.
tile_vert_start[ i ] indica el inicio en la direccion horizontal de la i-esima pieza en pixeles dentro de la instantanea.
tile_height[ i ] indica la altura de la i-esima pieza en pixeles dentro de la instantanea.
Observese que el mensaje SEI de la dimension de las piezas puede utilizarse en las operaciones de visualizacion, por ejemplo, para asignar una pieza a una pantalla en un escenario de visualizacion con multiples pantallas.
La Figura 30 por lo tanto revela, que el ejemplo de sintaxis de implementacion de la Figura 29, con respecto a los paquetes de identificacion de las piezas de la Figura 16 puede variarse en que las piezas que pertenecen al alcance del paquete de identificacion de las piezas respectivo estan indicadas por su ubicacion dentro de la instantanea actual 18, en lugar de por su ID de las piezas. Esto es, en lugar de senalizar la ID de las piezas de la primera pieza en el orden de decodificacion cubierto por las subporciones respectivas codificadas en cualquiera de los paquetes de carga util que pertenecen al alcance del paquete intercalado de identificacion de las piezas respectivo, para cada pieza que pertenece al paquete de identificacion de las piezas actual, su posicion podna senalizarse mediante senalizacion, por ejemplo, la posicion de la esquina superior izquierda de cada pieza i, en este punto ejemplarmente por tile_horz_start y tile_vert_start, y la anchura y la altura de las piezas i, en este punto ejemplarmente por tile_width y tile_height.
Un ejemplo de sintaxis para un mensaje SEI de la region de interes se muestra en la Figura 31. Para ser aun mas precisos, la Figura 32 muestra una primera variante. En particular, el mensaje SEI de la region de interes puede, por ejemplo, utilizarse al nivel de la unidad de acceso o al nivel de la sub-instantanea para senalizar una o mas regiones de interes. De acuerdo con la primera variante de la Figura 32, una ROI individual se senaliza una vez por mensaje SEI ROI, en lugar de senalizar todas las ROI del alcance del paquete ROI respectivo dentro de un mensaje SEI ROI, si multiples ROI estan dentro del alcance actual.
De acuerdo con la Figura 31, el mensaje SEI de la region de interes senaliza cada ROI de manera individual. La semantica podna definirse como sigue:
roi_id indica el identificador de la region de interes.
roi_priority indica la prioridad de todas las piezas que pertenecen a la region de interes en los cortes prefijados o todas las porciones que siguen en el orden de decodificacion dependiendo de si el mensaje SEI se envfa al nivel de la sub-instantanea o al nivel de la unidad de acceso. El valor de roi_priority debera estar en el intervalo de 0 a 7, inclusive, donde 7 indica la prioridad mas alta. En ambos, se proporciona roi_priority en el mensaje SEI de la informacion de la roi y tile_priority en los mensajes SEI de la informacion de las piezas de la sub-
5
10
15
20
25
30
35
40
45
50
55
60
instantanea, el valor mas alto de ambas es valido para la prioridad de las piezas individuals.
num_tiles_in_roi_minus1 indica el numero de piezas en los cortes prefijados que siguen en el orden de decodificacion que pertenecen a la region de interes.
roi_tile_id[ i ] indica la tile_id de la i-esima pieza que pertenece a la region de interes en los cortes prefijados que siguen en el orden de decodificacion.
Esto es, la Figura 31 muestra que un paquete ROI como se muestra en la Figura 15 podna senalizar en el mismo, una ID de la region de interes a la cual se refieren el paquete ROI respectivo y el paquete de carga util que pertenecen a su alcance. Opcionalmente, un mdice de prioridad ROI puede senalizarse junto con la ID de la ROI. Sin embargo, ambos elementos de la sintaxis son opcionales. A continuacion, un elemento de la sintaxis num_tiles_in_roi_minus1 puede indicar el numero de piezas en el alcance del paquete ROI respectivo que pertenece a la ROI 60 respectiva. A continuacion, roi_tile_id indica la ID de la pieza de las i-esimas piezas que pertenecen a la ROI 60. Imagmese, por ejemplo, que la instantanea 18 se subdividiera en las piezas 70 en la forma mostrada en la Figura 16, y que la ROI 60 de la Figura 15 correspondiera a la mitad izquierda de la instantanea 18, se formana por la primera y tercera piezas en el orden de decodificacion. A continuacion, un paquete ROI puede colocarse delante del primer paquete de carga util 32 de la unidad de acceso 30 en la Figura 16, seguido por un paquete ROI adicional entre el cuarto y quinto paquetes de la carga util 32 de esta unidad de acceso 30. A continuacion, el primer paquete ROI tendna un num_tile_in_roi_minus1 establecido a 0 con roi_tile_id[0] siendo 0 (refiriendose de esta manera, a la primera pieza en el orden de decodificacion), en el que el segundo paquete ROI delante del quinto paquete de carga util 32 tendna un num_tiles_in_roi_minus1 estableciendose a 0 con roi_tile_id[0] estableciendose a 2 (indicando por lo tanto, la tercera pieza en el orden de decodificacion en el cuarto inferior izquierdo de la instantanea 18).
De acuerdo con la segunda variante, la sintaxis de un mensaje SEI de la region de interes podna ser como se muestra en la Figura 32. Aqrn, todas las ROI en un solo mensaje SEI se senalizan. En particular, se utilizana la misma sintaxis que la discutida anteriormente con respecto a la Figura 31, pero multiplicando los elementos de la sintaxis para cada una de las ROI de un numero de ROI al que se refiere el mensaje SEI ROI o el paquete ROI respectivo, con un numero siendo senalizado por un elemento de la sintaxis, aqrn, de manera ejemplar, num_rois_minus1. Opcionalmente, un elemento de la sintaxis adicional, aqrn de manera ejemplar, roi_presentation_on_separate_screen, podna senalar para cada ROI, si la ROI respectiva es adecuada para ser presentada en una pantalla separada.
La semantica podna ser como sigue:
num_rois_minus1 indica el numero de ROI en los cortes prefijados o los cortes regulares que siguen en el orden de decodificacion.
roi_id[ i ] indica el identificador de la i-esima region de interes.
roi_priority[ i ] indica la prioridad de todas las piezas que pertenecen a la i-esima region de interes en los cortes prefijados o todos los cortes que siguen en el orden de decodificacion, dependiendo de si el mensaje SEI se envfa al nivel de la sub-instantanea o al nivel de la unidad de acceso. El valor de roi_priority debera estar en el intervalo de 0 a 7 inclusive, donde 7 indica la prioridad mas alta. Si se proporciona tanto roi_priority en el mensaje SEI de roi_info como tile_priority en los mensajes SEI de informacion de la sub-instantanea, el valor mas alto de ambos es valido para la prioridad de las piezas individuales.
num_tiles_in_roi_minus1[ i ] indica el numero de piezas en los cortes prefijados que siguen en el orden de decodificacion, que pertenecen a la i-esima region de interes.
roi_tile_id[ i ][ n ] indica la tile_id de la n-esima pieza que pertenece a la i-esima region de interes en los cortes prefijados que siguen en el orden de decodificacion.
roi_presentation_on_seperate_screen [ i ] indica que la region de interes, asociada con la i-esima roi_id es adecuada para la presentacion en una pantalla separada.
Por lo tanto, resumiendo brevemente las diversas realizaciones descritas hasta ahora, se ha presentado una estrategia de senalizacion de la sintaxis de alto nivel adicional, que permite aplicar mensajes SEI, asf como elementos de la sintaxis de alto nivel adicionales, mas alla de los incluidos en el encabezamiento de la unidad NAL a un nivel por porcion. Por lo tanto, describimos la unidad NAL del prefijo del corte. La sintaxis y la semantica de los mensajes sEi del prefijo del corte y slicejevel/sub-instantanea se han descrito junto con los casos de uso para operaciones CPB de bajo retardo/sub-instantanea, senalizacion de las piezas y senalizacion ROI. Se ha presentado adicionalmente una sintaxis extendida para senalizar parte del encabezamiento del corte de las siguientes porciones en el prefijo del corte.
5
10
15
20
25
30
35
40
45
50
55
60
Por motivos de completitud, la Figura 33 muestra un ejemplo adicional para una sintaxis, que podna utilizarse para un paquete del control de la temporizacion, de acuerdo con la realizacion de las Figuras 12 a 14. La semantica podna ser:
du_spt_cpb_removal_delay_increment especifica la duracion, en unidades de subtictacs del reloj, entre los tiempos CPB nominales de la ultima unidad de decodificacion en el orden de decodificacion en la unidad de acceso actual y la unidad de decodificacion asociada con el mensaje SEI de la informacion de la unidad de decodificacion. Este valor tambien se utiliza para calcular un posible tiempo de llegada mas anterior de los datos de la unidad de decodificacion en la CPB para el HSS, como se especifica en el Anexo C. El elemento de la sintaxis se representa por un codigo de longitud fija cuya longitud en bits se da por du_cpb_removal_delay_increment_length_minus1 + 1. Cuando la unidad de decodificacion asociada con el mensaje SEI de la informacion de la unidad de decodificacion es la ultima unidad de decodificacion en la unidad de acceso actual, el valor de du_spt_cpb_removal_delay_increment debera ser igual a 0.
dpb_output_du_delay_present_flag igual a 1 especifica la presencia del elemento de la sintaxis pic_spt_dpb_output_du_delay en el mensaje SEI de la informacion de la unidad de decodificacion. dpb_output_du_delay_present_flag igual a 0 especifica la ausencia de elemento de la sintaxis pic_spt_dpb_output_du_delay en el mensaje SEI de la informacion de la unidad de decodificacion.
pic_spt_dpb_output_du_delay se utiliza para calcular el tiempo de salida DPB de la instantanea cuando SubPicHrdFlag es igual a 1. Especifica cuantos subtictacs del reloj esperar despues de la eliminacion de la ultima unidad de decodificacion en una unidad de acceso de la CPB antes de que la instantanea decodificada se emita de la DPB. Cuando no esta presente, el valor de pic_spt_dpb_output_du_delay se infiere para que sea igual a pic_dpb_output_du_delay. La longitud del elemento de la sintaxis pic_spt_dpb_output_du_delay se proporciona en bits por dpb_output_delay_du_length_minus1 + 1.
Es un requisito de la conformidad del flujo de bits que todos los mensajes SEI de la informacion de la unidad de decodificacion que esten asociados con la misma unidad de acceso, apliquen el mismo punto de operacion, y que tengan dpb_output_du_delay_present_flag igual a 1, deberan tener el mismo valor de pic_spt_dpb_output_du_delay. El tiempo de salida derivado de pic_spt_dpb_output_du_delay de cualquier instantanea que se emita de un decodificador que cumpla con la temporizacion de salida, debera preceder el tiempo de salida derivado de pic_spt_dpb_output_du_delay de todas las instantaneas en cualquier CVS subsiguiente en el orden de decodificacion.
El orden de salida de la instantanea establecido por los valores de este elemento de la sintaxis, debera ser el mismo orden que el establecido por los valores de PicOrderCntVal.
Para las instantaneas que no se emiten por el proceso de “antiguedad” debido a que preceden, en el orden de decodificacion, una instantanea RAP con NoRaslOutputFlag igual a 1 que tiene no_output_of_prior_pics_flag igual a 1 o que se infiere para que sea igual a 1, los tiempos de salida derivados de pic_spt_dpb_output_du_delay deberan incrementarse con el valor creciente de PicOrderCntVal, con relacion a todas las instantaneas dentro del mismo CVS. Para cualquiera de dos instantaneas en CVS, las diferencias entre los tiempos de salida de las dos instantaneas cuando SubPicHrdFlag es igual a 1 deberan ser identicas a la misma diferencia cuando SubPicHrdFlag es igual a 0.
Ademas, la Figura 34 muestra un ejemplo adicional para senalizar una region ROI que utiliza paquetes ROI. De acuerdo con la Figura 34, la sintaxis de un paquete ROI comprende simplemente una bandera que indica si todas las subporciones de la instantanea 18 codificada en algun paquete de carga util 32 que pertenece a su alcance, pertenece a la ROI o no. El “alcance” se extiende hasta la aparicion del paquete ROI o el mensaje SEI region_refresh_info. Si la bandera es 1, la region se indica como que esta codificada en un paquete o paquetes de carga util subsiguiente respectivos, y si es 0, se aplica lo opuesto, es decir, las subporciones respectivas de la instantanea 18 no pertenecen a la rOi 60.
Antes de analizar algunas de las realizaciones anteriores, nuevamente en otras palabras, con la explicacion adicional de algunos terminos utilizados anteriormente, tales como pieza, corte y subdivision del subflujo WPP, debera observarse que la senalizacion de Alto Nivel de las realizaciones anteriores, puede definirse como alternativa, en las especificaciones del transporte tales como [3-7]. En otras palabras, los paquetes mencionados anteriormente y que forman la secuencia 34, pueden ser paquetes de transporte, algunos de los cuales tienen las subporciones de la capa de aplicacion, tales como cortes, incorporados, tales como empaquetados completamente o fragmentados, en la misma, algunos estan intercalados entre la ultima, de una manera, y con el objeto analizados anteriormente. En otras palabras, los paquetes intercalados mencionados anteriormente no estan restringidos para definirse como mensajes SEI de otros tipos de unidades NAL, definidas en el codec del video de la capa de aplicacion, pero podnan, como alternativa, ser un paquete de transporte adicional definido en los protocolos de
5
10
15
20
25
30
35
40
45
50
55
60
transporte.
En otras palabras, de acuerdo con un aspecto de la presente memoria descriptiva, las realizaciones anteriores revelaron un flujo de datos de video que tiene el contenido de video codificado en el mismo, en unidades de subporciones (vease los bloques o cortes del arbol de codificacion) de las instantaneas del contenido de video, cada subporcion esta codificada respectivamente en uno o mas paquetes de la carga util (veanse las unidades NAL VCL) de una secuencia de paquetes (unidades NAL) del flujo de datos de video, la secuencia de paquetes esta dividida en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util que estan relacionados con una instantanea respectiva del contenido de video, en el que la secuencia de paquetes tiene intercalada en la misma, los paquetes del control de la temporizacion (prefijo del corte), de manera que los paquetes del control de la temporizacion subdividen las unidades de acceso en unidades de decodificacion, de manera que al menos algunas unidades de acceso se subdividen en dos o mas unidades de decodificacion, senalizando cada paquete del control de la temporizacion un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion, los paquetes de la carga util de la cual, siguen al paquete del control de la temporizacion respectivo en la secuencia de paquetes.
Como se describio anteriormente, el dominio con respecto al cual el contenido de video se codifica en el flujo de datos en unidades de subporciones de instantaneas, puede cubrir los elementos de la sintaxis que relacionados con la codificacion predictiva, tal como los modos de codificacion (tal como un intra modo, inter modo, informacion de la subdivision y similares), parametros de prediccion (tales como vectores del movimiento, direcciones de extrapolacion o similar) y/o datos residuales (tales como niveles del coeficiente de transformacion, estando asociados estos elementos de la sintaxis con las porciones locales de la instantanea, tales como los bloques del arbol de codificacion, bloques de prediccion y bloques residuales (tales como transformados), respectivamente.
Como se describio anteriormente, los paquetes de la carga util pueden abarcar, cada uno, uno o mas cortes (completos, respectivamente). Los cortes pueden ser decodificables de manera independiente o pueden mostrar interrelaciones que impiden una decodificacion independiente de los mismos. Por ejemplo, los cortes de entropfa pueden ser decodificables por entropfa de manera independiente, pero la prediccion mas alla de los lfmites del corte puede estar prohibida. Los cortes dependientes pueden permitir el procesamiento WPP, es decir, codificacion/decodificacion utilizando la codificacion por entropfa y predictiva, mas alla de los lfmites del corte, con la capacidad de codificar/decodificar de manera paralela los cortes dependientes, de una manera que se solapa en el tiempo, sin embargo, con un comienzo escalonado del procedimiento de codificacion/decodificacion de los cortes dependientes individuales y el corte/cortes referidos por los cortes dependientes.
El orden secuencial en el cual los paquetes de la carga util de una unidad de acceso estan dispuestos dentro de la unidad de acceso respectiva, puede conocerse por el decodificador de antemano. Por ejemplo, un orden de codificacion/decodificacion puede definirse entre las subporciones de las instantaneas, tal como el orden de exploracion entre los bloques del arbol de codificacion en los ejemplos anteriores.
Vease, por ejemplo, la figura a continuacion. Una instantanea codificada/decodificada 100 actualmente, puede dividirse en piezas, que en las Figuras 35 y 36, por ejemplo, corresponden de manera ejemplar a los cuatro cuadrantes de la instantanea 110 y estan indicados con los signos de referencia 112a-112d. Esto es, toda la instantanea 110 puede formar una pieza, como en el caso de la Figura 37 o puede segmentarse en mas de una pieza. La segmentacion de las piezas puede restringirse a las regulares, en las cuales las piezas se disponen en columnas y filas unicamente. A continuacion se presentan diferentes ejemplos.
Como puede observarse, la instantanea 110 se subdivide ademas en bloques (recuadros pequenos en la Figura y llamados CTB anteriormente) de codificacion (arbol) 114, entre los cuales, se define un orden de codificacion 116 (en este punto, el orden del barrido por tramas, pero tambien puede ser diferente). La subdivision de la instantanea en las piezas 112a-d puede restringirse de manera que las piezas son conjuntos disjuntos de los bloques 114. Ademas, ambos de los bloques 114 y las piezas 112a-d pueden restringirse a una disposicion regular en columnas y filas.
Si las piezas (es decir, mas de una) estan presentes, entonces el orden de (de)codificacion 116 explora por barrido de tramas una primera pieza completa en primer lugar, pasando a continuacion - tambien en un orden de las piezas de barrido por tramas - a la siguiente pieza en el orden de las piezas.
Puesto que las piezas son codificables/decodificables de manera independiente unas de otras debido a que no se cruzan los lfmites de las piezas por las predicciones espaciales y las selecciones del contexto deducidas de las cercamas espaciales, el codificador 10 y el decodificador 12 pueden codificar/decodificar una instantanea subdividida en piezas 112 (indicadas anteriormente por 70), en paralelo, de manera independiente unas de otras - excepto por ejemplo, por un bucle o postfiltrado que puede permitirse que cruce los lfmites de las piezas.
La instantanea 110 puede subdividirse ademas en porciones 118a-d, 180 - indicadas anteriormente utilizando el
5
10
15
20
25
30
35
40
45
50
55
60
signo de referencia 24. Un corte puede contener simplemente una parte de una pieza, una pieza completa o mas de una pieza completa. Por lo tanto, la division en los cortes tambien puede subdividir las piezas como en el caso de la Figura 35. Cada corte comprende al menos un bloque de codificacion 114 completo y esta compuesto de bloques de codificacion 114 consecutivos en el orden de codificacion 116, de manera que se define un orden entre los cortes 118a-d, despues de lo cual, se han asignado los indices en la figura. La division del corte en las Figuras 35 a 37 se ha elegido para fines de ilustracion unicamente. Los lfmites de las piezas pueden senalizarse en el flujo de datos. La instantanea 110 puede formar una sola pieza como se describe en la Figura 37.
El codificador 10 y el decodificador 12 pueden configurarse para obedecer los lfmites de las piezas en que la prediccion espacial no se aplica a traves de los lfmites de las piezas. La adaptacion del contexto, es decir, las adaptaciones de la probabilidad de los varios contextos de la entropfa (aritmeticos) pueden continuar sobre todos los cortes. Sin embargo, cada vez que un corte cruza - a lo largo del orden de codificacion 116 - un lfmite de las piezas (si esta presente dentro del interior de un corte) tal como en la Figura 36 con respecto a los cortes 118a,b, entonces el corte, a su vez, se subdivide en subsecciones (subflujos o piezas) con el corte que comprende punteros (vease entry_point_offset), que apuntan al inicio de cada subseccion. Puede permitirse que los filtros del bucle del decodificador crucen los lfmites de las piezas. Tales filtros pueden implicar uno o mas de un filtro de desbloqueo, un filtro de Desviacion Adaptativa de la Muestra (SAO) y un filtro del bucle Adaptativo (ALF). El ultimo puede aplicarse sobre los lfmites de las piezas/porcion si se activa.
Cada segunda y siguientes subsecciones opcionales pueden tener su inicio colocado alineado con los bytes dentro del corte con el puntero, que indica el desplazamiento del inicio de una subseccion al inicio de la siguiente subseccion. Las subsecciones estan dispuestas dentro de los cortes en el orden del barrido 116. La Figura 38 muestra un ejemplo con el corte 180c de la Figura 37 que se subdivide de manera ejemplar en las subsecciones 119i.
Con respecto a las figuras, observese que los cortes que forman las subpartes de las piezas no tienen que terminar con la fila en la pieza 112a. Vease, por ejemplo, el corte 118a en las Figuras 37 y 38.
La figura a continuacion una porcion ejemplar de un flujo de datos relacionado con una unidad de acceso asociada con la instantanea 110 de la Figura 38 anterior). Aqrn, cada paquete de la carga util 122a-d - indicado anteriormente por el signo de referencia 32 - acomoda, de manera ejemplar simplemente un corte 118a. Dos paquetes del control de la temporizacion 124a,b - indicados anteriormente con el signo de referencia 36 - se muestran como que estan intercalados en la unidad de acceso 120 para fines de ilustracion: 124a precede al paquete 122a en el orden del paquete 126 (que corresponde al eje del tiempo de decodificacion/codificacion) y 124b precede al paquete 122c. En consecuencia, la unidad de acceso 120 se divide en dos unidades de decodificacion 128a,b - indicadas anteriormente con el signo de referencia 38, - la primera de las cuales comprende los paquetes 122a,b (junto con los paquetes de los datos de relleno opcionales (que siguen al primer y segundo paquetes 122a,b, respectivamente), y la unidad de acceso opcional que conduce a los paquetes SEI (que preceden al primer paquete 122a)) y el segundo de los cuales comprende los paquetes 118c,d (junto con los paquetes de los datos de relleno opcionales (que siguen a los paquetes 122c,d, respectivamente)).
Como se describio anteriormente, cada paquete de la secuencia de paquetes puede asignarse exactamente a un tipo de paquete de una pluralidad de tipos de paquetes (nal_unit_type). Los paquetes de la carga util y los paquetes del control de la temporizacion (y los paquetes de datos de relleno y SEI opcionales), son por ejemplo, de diferentes tipos de paquete. La instanciacion de los paquetes de un cierto tipo de paquete en la secuencia de paquetes puede someterse a ciertas limitaciones. Estas limitaciones pueden definir un orden entre los tipos de paquetes (vease la Figura 17), que se ha de obedecer por los paquetes dentro de cada unidad de acceso, de manera que los lfmites de la unidad de acceso 130a,b son detectables, y permanecen en la misma posicion dentro de la secuencia de paquetes, incluso si los paquetes de algun tipo de paquete retirable se eliminan del flujo de datos de video. Por ejemplo, los paquetes de la carga util son del tipo de paquete no retirable. Sin embargo, los paquetes del control de la temporizacion, los paquetes de datos de relleno y los paquetes SEI pueden, como se ha analizado anteriormente, ser de un tipo de paquete retirable, es decir, pueden ser unidades no NAL VCL.
En el ejemplo anterior, los paquetes del control de la temporizacion se han ejemplificado de manera explfcita anteriormente por la sintaxis de slice_prefix_rbsp().
Utilizando una intercalacion de este tipo de los paquetes del control de la temporizacion, se posibilita que un codificador ajuste la planificacion del almacenamiento en memoria intermedia en el lado del decodificador durante el curso de la decodificacion de las instantaneas individuales del contenido de video. Por ejemplo, se posibilita que el codificador optimice la planificacion de la memoria intermedia para minimizar el retardo de extremo a extremo. A este respecto se posibilita que el codificador tenga en cuenta la distribucion individual de la complejidad de la codificacion a traves del area de la instantanea del contenido de video para las instantaneas individuales del contenido de video. En particular, el codificador puede emitir de manera continua la secuencia de paquetes 122, 122a-d, 122a-d1-3 en una base paquete a paquete (es decir, tan pronto como un paquete actual ha finalizado su
5
10
15
20
25
30
35
40
45
50
55
60
salida). Mediante el uso de los paquetes del control de la temporizacion, el codificador es capaz de ajustar la planificacion de la memoria intermedia en el lado del decodificador en los momentos en que algunas de las subporciones de la instantanea actual ya se han codificado en los paquetes de la carga util respectivos, con las subporciones restantes, sin embargo, que aun no se han codificado.
En consecuencia, un codificador para codificar un contenido de video del flujo de datos de video en unidades de subporciones (veanse los bloques del arbol de codificacion, piezas o cortes) de las instantaneas del contenido de video, codificando respectivamente cada subporcion en uno o mas paquetes de la carga util (veanse las unidades NAL VCL) de una secuencia de paquetes (unidades NAL) del flujo de datos de video, de manera que la secuencia de paquetes se divide en una secuencia de unidades de acceso y cada unidad de acceso recopila los paquetes de la carga util relacionados con una instantanea respectiva del contenido de video, puede configurarse para intercalar en la secuencia de paquetes, los paquetes del control de la temporizacion (prefijo del corte), de manera que los paquetes de control de la temporizacion subdividen las unidades de acceso en unidades de decodificacion, de manera que al menos algunas unidades de acceso se subdividen en dos o mas unidades de decodificacion, senalizando cada paquete del control de la temporizacion un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion, los paquetes de la carga util de la cual siguen el paquete del control de la temporizacion respectivo en la secuencia de paquetes.
Cualquier decodificador que reciba el flujo de datos de video recien expuesto, esta libre para aprovechar la informacion de la planificacion contenida en el paquete del control de la temporizacion o no. Sin embargo, aunque el decodificador esta libre para aprovechar la informacion, un decodificador conforme con el nivel del codec debe ser capaz de decodificar los datos siguiendo la temporizacion indicada. Si tiene lugar el aprovechamiento, el decodificador alimenta su memoria intermedia del decodificador y vacfa su memoria intermedia del decodificador en unidades de unidades de decodificacion. La “memoria intermedia del decodificador” puede, como se describio anteriormente, implicar la memoria intermedia de la instantanea decodificada y/o la memoria intermedia de la instantanea codificada.
En consecuencia, un decodificador para decodificar un flujo de datos de video que tiene un contenido de video codificado en el mismo en unidades de subporciones (veanse los bloques del arbol de codificacion, piezas o cortes) de las instantaneas del contenido de video, codificandose cada subporcion respectivamente en uno o mas paquetes de la carga util (veanse las unidades NAL VCL) de una secuencia de paquetes (unidades NAL) del flujo de datos de video, dividiendose la secuencia de paquetes en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util relacionados con una instantanea respectiva del contenido de video, pueden configurarse para buscar los paquetes del control de la temporizacion intercalados en la secuencia de paquetes, subdividir las unidades de acceso en unidades de decodificacion en los paquetes del control de la temporizacion, de manera que al menos algunas unidades de acceso se subdividan en dos o mas unidades de decodificacion, derivar de cada paquete del control de la temporizacion un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion, los paquetes de la carga util de la cual siguen el paquete del control de la temporizacion respectivo en la secuencia de paquetes, y recuperar las unidades de decodificacion de una memoria intermedia del decodificador planificado a los tiempos definidos por los tiempos de recuperacion de la memoria intermedia del decodificador para las unidades de decodificacion.
La busqueda del paquete del control de la temporizacion puede implicar que el decodificador inspeccione el encabezamiento de la unidad NAL y el elemento de la sintaxis comprendido en el mismo, en concreto nal_unit_type. Si el valor de la ultima bandera equivale a algun valor, es decir, es de acuerdo con los ejemplos anteriores, 124, entonces el paquete inspeccionado actualmente es un paquete del control de la temporizacion. Esto es, el paquete del control de la temporizacion comprendena o transportana la informacion explicada anteriormente con respecto a un seudocodigo subpic_buffering, asf como subpic_timing. Esto es, los paquetes del control de la temporizacion pueden transportar o especificar los retardos de la eliminacion CPB iniciales para el decodificador o especificar cuantos tictacs del reloj esperar despues de eliminar de la CPB de una unidad de decodificacion respectiva.
Con el fin de permitir una transmision repetitiva de los paquetes del control de la temporizacion sin dividir adicionalmente no intencionadamente la unidad de acceso en unidades de decodificacion adicionales, una bandera dentro de los paquetes del control de la temporizacion puede senalizar de manera explfcita si el paquete del control de la temporizacion actual participa en la subdivision de la unidad de acceso en unidades de codificacion o no (comparese decoding_unit_start_flag = 1, indicando el inicio de una unidad de decodificacion, y
decoding_unit_start_flag = 0, que senaliza la circunstancia opuesta).
El aspecto de utilizar la informacion de la identificacion de las piezas relacionada con la unidad de decodificacion intercalada, difiere del aspecto de utilizar los paquetes del control de la temporizacion relacionados con la unidad de decodificacion intercalada en que los paquetes de identificacion de las piezas estan intercalados en el flujo de datos. Los paquetes del control de la temporizacion mencionados anteriormente pueden, ademas, intercalarse en el flujo de datos o los tiempos de recuperacion de la memoria intermedia del decodificador pueden transportarse junto con la informacion de la identificacion de las piezas explicada a continuacion dentro del mismo paquete comunmente. En
5
10
15
20
25
30
35
40
45
50
55
60
consecuencia, los detalles llevados adelante en la seccion anterior, pueden utilizarse con el fin de aclarar las cuestiones en la descripcion siguiente.
Un aspecto adicional de la presente memoria descriptiva derivable de las realizaciones descritas anteriormente, revela un flujo de datos de video que tiene un contenido de video codificado en el mismo, utilizando la codificacion predictiva y de entropfa, en unidades de cortes en las cuales las instantaneas del contenido de video estan subdivididas espacialmente, utilizando un orden de codificacion entre los cortes, con predicciones de restriccion de la codificacion predictiva y/o la codificacion por entropfa al interior de las piezas en las cuales las instantaneas del contenido de video se subdividen espacialmente, en el que la secuencia de los cortes en el orden de codificacion se empaqueta en paquetes de la carga util de una secuencia de paquetes (unidades NAL) del flujo de datos de video en el orden de codificacion, la secuencia de paquetes se divide en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util que tienen empaquetados en los mismos los recortes relacionados con una instantanea respectiva del contenido de video, en el que la secuencia de paquetes tiene los paquetes de identificacion de las piezas intercalados en la misma, que identifican las piezas (potencialmente simplemente una), que estan superpuestas por cortes (potencialmente simplemente una), empaquetada en uno o mas paquetes de la carga util que siguen inmediatamente al paquete de identificacion de las piezas respectivo en la secuencia de paquetes.
Vease, por ejemplo, la figura inmediatamente precedente que muestra un flujo de datos. Los paquetes 124a y 124b deberan representar ahora los paquetes de identificacion de las piezas. Ya sea senalando de manera explfcita (comparese single_slice_flag = 1) o por convencion, el paquete de identificacion de las piezas puede identificar simplemente las piezas que estan superpuestas por los cortes empaquetados en el paquete de carga util 122a inmediatamente siguiente. Como alternativa, mediante la senalizacion explfcita o por convencion, el paquete de identificacion de las piezas 124a puede identificar las piezas que estan superpuestas por cortes empaquetados en uno o mas paquetes de la carga util que siguen inmediatamente al paquete de identificacion de las piezas 124a respectivo en la secuencia de paquetes, hasta el mas inicial del final 130b de la unidad de acceso 120 actual, y el inicio de una siguiente unidad de decodificacion 128b, respectivamente. Vease, por ejemplo, la Figura 35: si cada porcion 118a-d1-3 se empaqueto de manera separada en un paquete respectivo 122a-d1-3, con la subdivision en las unidades de decodificacion siendo de manera que los paquetes se agrupan en tres unidades de decodificacion de acuerdo con {122a1-3},{122b1-3} y {122c1-3, 122d1-3}, entonces los cortes {118c%3, 118d1_3} empaquetados en los paquetes {122c1-3, 122d1-3} de la tercera unidad de decodificacion, por ejemplo, se superpondnan a las piezas 112c y 112d, y el prefijo del corte correspondiente, por ejemplo, cuando se refiere a la unidad de decodificacion completa, indicana “c" y “d", es decir, estas piezas 112c y 112d.
Por lo tanto, la entidad de la red mencionada ademas a continuacion, puede utilizar esta senalizacion explfcita o convencion, con el fin de asociar correctamente cada paquete de identificacion de las piezas con uno o mas paquetes de la carga util que siguen inmediatamente al paquete de identificacion en la secuencia de paquetes. La manera en la que la identificacion puede senalizarse se ha descrito de manera ejemplar anteriormente por medio del pseudocodigo subpic_tile_info. Los paquetes de la carga util asociados se mencionaron anteriormente como “cortes prefijados". Naturalmente, el ejemplo puede modificarse. Por ejemplo, los elementos de la sintaxis “tile_priority" pueden dejarse fuera. Ademas, el orden entre los elementos de la sintaxis puede cambiarse y el descriptor con respecto a las posibles longitudes de bit y los principios de codificacion de los elementos de la sintaxis son meramente ilustrativos.
Una entidad de la red que recibe el flujo de datos de video (es decir, un flujo de datos de video que tiene un contenido de video codificado en el mismo, utilizando la codificacion predictiva y por entropfa, en unidades de cortes en las cuales las instantaneas del contenido de video se subdividen espacialmente, utilizando un orden de codificacion entre los cortes, con predicciones de restriccion de la codificacion predictiva y/o la codificacion por entropfa al interior de las piezas en las cuales las instantaneas del contenido de video se subdividen espacialmente, en el que la secuencia de los cortes en el orden de codificacion se empaqueta en los paquetes de la carga util de una secuencia de paquetes (unidades NAL) del flujo de datos de video en el orden de la codificacion, la secuencia de paquetes se divide en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util que tienen empaquetados en la misma los cortes relacionados con una instantanea respectiva del contenido de video, en el que la secuencia de paquetes tiene paquetes de identificacion de las piezas intercalados en la misma), puede configurarse para identificar, basandose en los paquetes de identificacion de las piezas, las piezas que estan superpuestos por cortes empaquetados en uno o mas paquetes de la carga util que siguen inmediatamente al paquete de identificacion de las piezas respectivo en la secuencia de paquetes. La entidad de la red puede utilizar el resultado de la identificacion para decidir sobre las tareas de la transmision. Por ejemplo, la entidad de la red puede manejar las diferentes piezas con diferente prioridad para la reproduccion. Por ejemplo, en el caso de perdida del paquete, aquellos paquetes de la carga util relacionados con las piezas de prioridad mas alta, pueden preferirse para una retransmision sobre los paquetes de la carga util relacionados con las piezas de prioridad menor. Esto es, la entidad de la red puede solicitar primero la retransmision de los paquetes de la carga util perdidos relacionados con las piezas de prioridad superior. Simplemente en el caso de que quede suficiente tiempo (dependiendo de la tasa de transmision), la entidad de la red continua con la solicitud de la retransmision de los
5
10
15
20
25
30
35
40
45
50
55
60
paquetes de la carga util perdidos relacionados con las piezas de prioridad menor. La entidad de la red puede, sin embargo, tambien ser una unidad de reproduccion que es capaz de asignar las piezas o paquetes de la carga util que relacionados con ciertas piezas a diferentes pantallas.
Con respecto al aspecto de utilizar la informacion de la region de interes intercalada, debena observarse que los paquetes ROI mencionados a continuacion podnan coexistir con los paquetes de control de la temporizacion mencionados anteriormente y/o los paquetes de identificacion de las piezas, ya sea combinando el contenido de la informacion de los mismos dentro de los paquetes comunes como se describio anteriormente, con respecto a los prefijos del corte, o en la forma de paquetes separados.
El aspecto de utilizar la region intercalada de la informacion de interes como se describio anteriormente, revela en otras palabras, un flujo de datos de video que tiene un contenido de video codificado en el mismo, utilizando la codificacion predictiva y por entropfa, en unidades de cortes en las cuales las instantaneas del contenido de video se subdividen espacialmente, utilizando un orden de codificacion entre los cortes, con predicciones de restriccion y/o codificacion por entropfa de la codificacion predictiva al interior de las piezas en las que las instantaneas del contenido de video se dividen, en el que la secuencia de los cortes en el orden de codificacion se empaquetan en los paquetes de la carga util de una secuencia de paquetes (unidades NAL) del flujo de datos de video en el orden de codificacion, la secuencia de paquetes se divide en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util que tienen empaquetados en los mismos, los cortes relacionados con una instantanea respectiva del contenido de video, en el que la secuencia de paquetes tiene paquetes ROI intercalados en la misma, que identifica las piezas de las instantaneas que pertenecen a una ROI de las instantaneas, respectivamente.
Con respecto a los paquetes ROI, los comentarios similares son validos a aquellos proporcionados antes con respecto a los paquetes de identificacion de las piezas: los paquetes ROI pueden identificar las piezas de las instantaneas que pertenecen a una ROI de la instantanea simplemente entre aquellas piezas que estan superpuestas por cortes contenidos en uno o mas paquetes de la carga util, con que se refiere el paquete ROI respectivo, por medio de uno o mas paquetes de la carga util inmediatamente precedentes, como se describio anteriormente con respecto a los “cortes prefijados”.
Los paquetes ROI pueden permitir identificar mas de una ROI por corte prefijado que identifican las piezas asociadas para cada una de estas ROI (vease num_rois_minus1). A continuacion, para cada ROI, puede transmitirse una prioridad que permite clasificar las ROI en terminos de prioridad (vease roi_priority[ i ]). Con el fin de permitir un “rastreo” de las ROI con el tiempo durante una secuencia de instantaneas del video, cada ROI puede indexarse con un mdice ROI, de manera que las ROI indicadas en los paquetes ROI pueden asociarse con otros lfmites mas alla/a traves de la instantanea, es decir, con el tiempo (vease roi_id[ i ]).
Una entidad de la red que recibe el flujo de datos de video (es decir, un flujo de datos de video que tiene un contenido de video codificado en el mismo, utilizando la codificacion predictiva y por entropfa, en unidades de corte en las cuales las instantaneas del contenido de video se subdividen espacialmente, utilizando un orden de codificacion entre las porciones, con predicciones de restriccion de la codificacion predictiva al interior de las piezas en las cuales las instantaneas del contenido de video se dividen, mientras que continua la adaptacion de la probabilidad de la codificacion por entropfa sobre todos los cortes, en el que la secuencia de los cortes en el orden de la codificacion se empaqueta en los paquetes de la carga util de una secuencia de paquetes (unidades NAL) del flujo de datos de video en el orden de codificacion, la secuencia de paquetes se divide en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util que tienen empaquetados en los mismos, los cortes relacionados con una instantanea respectiva del contenido de video), pueden configurarse para identificar, basandose en los paquetes de identificacion de las piezas, paquetes que empaquetan los cortes que se superponen a las piezas que pertenecen a la ROI de las instantaneas.
La entidad de la red puede explicar la informacion transportada por el paquete ROI de una manera similar a como se explico anteriormente en esta seccion previa, con respecto a los paquetes de identificacion de las piezas.
Con respecto a la seccion actual, asf como la seccion previa, debera observarse que cualquier entidad de la red, tal como una MANE o decodificador, es capaz de determinar que pieza o piezas estan superpuestas por el corte o cortes de un paquete de la carga util inspeccionado actualmente, simplemente inspeccionando el orden del corte de los cortes de las instantaneas e inspeccionando el progreso de la porcion de la instantanea actual que estos cortes cubren, con relacion a la posicion de todas las piezas en la instantanea, que puede senalizarse de manera explfcita en el flujo de datos como se explico anteriormente, o puede conocerse para codificar y decodificar mediante convencion. Como alternativa, cada corte (excepto la primera de una instantanea en el orden del barrido), puede proporcionarse con una indicacion/mdice (slice_address medida en unidades de bloques del arbol de codificacion) del primer bloque de codificacion (por ejemplo, CTB), lo mismo se refiere a (mismos codigos), de manera que el decodificador puede colocar cada corte (su reconstruccion) en la instantanea desde este primer bloque de codificacion hacia la direccion del orden del corte. En consecuencia, puede ser suficiente que los paquetes de la
5
10
15
20
25
30
35
40
45
50
55
60
informacion de las piezas mencionados anteriormente, simplemente comprendan el mdice de la primera pieza (first_tile_id_in_prefixed_slices) superpuesto por cualquier corte de uno o mas paquetes de la carga util asociados que siguen inmediatamente al paquete de identificacion de las piezas respectivo, puesto que esta claro para la entidad de la red tras encontrar el siguiente paquete de identificacion de las piezas en lmea, que si el mdice transportado por el ultimo paquete de identificacion de las piezas difiere del previo en mas de uno, entonces los paquetes de la carga util entre estos dos paquetes de identificacion de las piezas cubren las piezas que tienen el mdice de las piezas entre ellos. Esto es cierto, si como se menciono anteriormente, tanto la subdivision de las piezas como la subdivision del bloque de codificacion se basan, por ejemplo, en una subdivision en filas/columnas, que tiene un orden de barrido por tramas definido entre ellas, que es para tanto piezas como bloques de codificacion, a nivel de filas, por ejemplo, es decir el mdice de las piezas se incrementa en este orden de barrido por tramas, asf como los cortes que siguen a cada uno de acuerdo con el orden del corte a lo largo de este orden del barrido por tramas entre los bloques de codificacion.
El aspecto de la senalizacion del encabezamiento del corte empaquetado e intercalado descrito, derivable de las realizaciones anteriores, tambien es combinable con cualquiera de los aspectos mencionados anteriormente o cualquier combinacion de los mismos. Los prefijos del corte descritos de manera explfcita previamente, por ejemplo, de acuerdo con la version 2 unifican todos estos aspectos. Una ventaja del presente aspecto, es la posibilidad de volver a los datos del encabezamiento del corte mas facilmente disponible para las entidades de la red puesto que se transportan en paquetes autocontenidos externos a los cortes prefijados/paquetes de la carga util, y se posibilita una transmision repetitiva de los datos del encabezamiento del corte.
En consecuencia, un aspecto adicional de la presente memoria descriptiva, es el aspecto de la senalizacion del encabezamiento del corte empaquetado e intercalado, y puede observarse, en otras palabras, que revela un flujo de datos de video que tiene un contenido de video codificado en el mismo en unidades de subporciones (veanse los bloques del arbol de codificacion o cortes) de las instantaneas del contenido de video, cada subporcion se codifica respectivamente en uno o mas paquetes de la carga util (veanse las unidades NAL VCL) de una secuencia de paquetes (unidades NAL) del flujo de datos de video, la secuencia de paquetes esta dividida en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util relacionados con una instantanea respectiva del contenido de video, donde la secuencia de paquetes tiene intercalada en la misma los paquetes del encabezamiento del corte (prefijo del corte) que transportan los datos del encabezamiento del corte para, y faltantes en uno o mas paquetes de la carga util que siguen al paquete del encabezamiento del corte respectivo en la secuencia de paquetes.
Una entidad de la red que recibe el flujo de datos de video (es decir, un flujo de datos de video que tiene un contenido de video codificado en el mismo en unidades de subporciones (veanse los bloques del arbol de codificacion o porciones) de las instantaneas del contenido de video, cada subporcion esta codificada respectivamente en uno mas paquetes de la carga util (veanse las unidades NAL VCL) de una secuencia de paquetes (unidades NAL) del flujo de datos de video, la secuencia de paquetes esta dividida en una secuencia de unidades de acceso, de manera que cada unidad de acceso recopila los paquetes de la carga util relacionados con una instantanea respectiva del contenido de video, donde la secuencia de paquetes tiene intercalada en la misma los paquetes del encabezamiento del corte), pueden configurarse para leer el encabezamiento del corte junto con los datos de la carga util para los cortes de los paquetes que, sin embargo, derivan de los paquetes del encabezamiento del corte los datos del encabezamiento del corte y se saltan la lectura del encabezamiento del corte para uno o mas paquetes de la carga util que siguen al paquete del encabezamiento del corte respectivo en la secuencia de paquetes, pero que adoptan el encabezamiento del corte derivado del paquete del encabezamiento del corte que sigue a uno o mas paquetes de la carga util, en su lugar.
Como se cumplio con los aspectos mencionados anteriormente, es posible que los paquetes, en este punto los paquetes del encabezamiento del corte, tambien tengan la funcionalidad de indicar a cualquier entidad de la red tal como una MANE o decodificador, el inicio de una unidad de decodificacion o el inicio de las pasadas de uno o mas paquetes de la carga util prefijados por el paquete respectivo. En consecuencia, la entidad de la red de acuerdo con el presente aspecto, puede identificar los paquetes de la carga util para los cuales la lectura del encabezamiento del corte tiene que saltarse, basandose en los elementos de la sintaxis mencionados anteriormente en este paquete, en concreto single_slice_flag, en combinacion con, por ejemplo, decoding_unit_start_flag, entre los cuales la ultima bandera posibilita, como se analizo anteriormente, una retransmision de las copias de ciertos paquetes del encabezamiento del corte dentro de las unidades de decodificacion. Esto es util, por ejemplo, puesto que el encabezamiento del corte de las porciones dentro de una unidad de decodificacion puede cambiar a lo largo de las secuencias de los cortes, y en consecuencia, mientras que los paquetes del encabezamiento del corte al inicio de las unidades de decodificacion pueden tener configurada la bandera decoding_unit_start_flag (siendo igual a uno), los paquetes del encabezamiento del corte colocados entre ellos, pueden tener esta bandera no configurada, para evitar que cualquier entidad de la red interprete de manera falsa la aparicion de este paquete del encabezamiento del corte como el inicio de una nueva unidad de decodificacion.
Aunque algunos aspectos se han descrito en el contexto de un aparato, esta claro que estos aspectos tambien
5
10
15
20
25
30
35
40
45
50
55
60
representan una descripcion del metodo correspondiente, donde un bloque o dispositivo corresponde a una etapa del metodo o una caractenstica de una etapa del metodo. De manera analoga, los aspectos descritos en el contexto de un metodo, tambien representan una descripcion de un bloque o punto o caractensticas correspondiente de un aparato correspondiente. Algunas o todas las etapas del metodo pueden ejecutarse por (o utilizando) un aparato de hardware, como por ejemplo, un microprocesador, una computadora programable o un circuito electronico. En algunas realizaciones, algunas o mas de las etapas del metodo mas importantes pueden ejecutarse mediante tal aparato.
El flujo de datos de video inventivo puede almacenarse en un medio de almacenamiento digital o puede transmitirse en un medio de transmision, tal como un medio de transmision inalambrico o un medio de transmision alambrico, tal como Internet.
Dependiendo de ciertos requisitos de implementacion, las realizaciones de la invencion pueden implementarse en hardware o software. La implementacion puede realizarse utilizando un medio de almacenamiento digital, por ejemplo, un disco flexible, un DVD, un Blu-Ray, un CD, una ROM, una PROM, una EPROM, una EEPROM o una memoria FLASH, que tengan senales de control legibles electronicamente almacenadas en la misma, que cooperen (o sean capaces de cooperar) con un sistema de computadora programable, de manera que se realice el metodo respectivo. Por lo tanto, el medio de almacenamiento digital puede ser legible por computadora.
Algunas realizaciones de acuerdo con la invencion comprenden un soporte de datos que tiene senales de control legibles electronicamente, que son capaces de cooperar con un sistema de computadora programable, de manera que se realice uno de los metodos descritos en el presente documento.
En general, las realizaciones de la presente invencion pueden implementarse como producto de un programa de computadora con un codigo del programa, el codigo del programa es operativo para realizar uno de los metodos cuando el producto del programa de computadora se ejecuta en una computadora. El codigo del programa puede, por ejemplo, almacenarse en un soporte legible en una maquina.
Otras realizaciones comprenden el programa de computadora para realizar uno de los metodos descritos en el presente documento, almacenado en un soporte legible por maquina.
En otras palabras, una realizacion del metodo inventivo es, por lo tanto, un programa de computadora que tiene un codigo del programa para realizar uno de los metodos descritos en el presente documento, cuando el programa de computadora se ejecuta en una computadora.
Una realizacion adicional de los metodos inventivos es, por lo tanto, un soporte de datos (o un medio de almacenamiento digital, o un medio legible por computadora) que comprende, registrado en el mismo, el programa de computadora para realizar uno de los metodos descritos en el presente documento. El soporte de datos, el medio de almacenamiento digital o el medio registrado son tfpicamente tangibles y/o no transitorios.
Una realizacion adicional del metodo inventivo es, por lo tanto, un flujo de datos o una secuencia de senales que representan el programa de computadora para realizar uno de los metodos descritos en el presente documento. El flujo de datos o la secuencia de senales pueden, por ejemplo, configurarse para transferirse mediante una conexion de comunicacion de datos, por ejemplo, mediante Internet.
Una realizacion adicional comprende medios de procesamiento, por ejemplo, una computadora, o un dispositivo logico programable, configurado para, o adaptado para realizar uno de los metodos descritos en el presente documento.
Una realizacion adicional comprende una computadora que tiene instalado en el misma, el programa de computadora para realizar uno de los metodos descritos en el presente documento.
Una realizacion adicional de acuerdo con la invencion, comprende un aparato o un sistema configurado para transferir (por ejemplo, de manera electronica u optica), un programa de computadora para realizar uno de los metodos descritos en el presente documento a un receptor. El receptor puede, por ejemplo, ser una computadora, un dispositivo movil, un dispositivo de memoria o similar. El aparato o sistema puede, por ejemplo, comprender un servidor de archivos para transferir el programa de computadora al receptor.
En algunas realizaciones, puede utilizarse un dispositivo logico programable (por ejemplo, un campo de matrices de puertas programables), para realizar algunas o todas las funcionalidades de los metodos descritos en el presente documento. En algunas realizaciones, un campo de matrices de puertas programables puede cooperar con un microprocesador, con el fin de realizar uno de los metodos descritos en el presente documento. En general, los metodos se realizan de manera preferida mediante un aparato de hardware.
Las realizaciones descritas anteriormente son meramente ilustrativas de los principios de la presente invencion. Se
5
10
15
20
25
entiende que las modificaciones y variaciones de las disposiciones y los detalles descritos en el presente documento seran evidentes para los expertos en la materia. Es la intencion, por lo tanto, de limitarse solo por el alcance de las reivindicaciones de la patente siguientes, y no por los detalles espedficos presentados a manera de descripcion y explicacion de las realizaciones en el presente documento.
Referencias
[1] Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, Ajay Luthra, “Overview of the H.264/AVC Video Coding Standard”, IEEE Trans. Circuits Syst. Video Technol., vol. 13, N7, julio de 2003.
[2] JCT-VC, “High-Efficiency Video Coding (HEVC) text specification Working Draft 7”, JCTVC-I1003, mayo de 2012.
[3] ISO/IEC 13818-1: MPEG-2 Systems specification.
[4] IETF RFC 3550 - Real-time Transport Protocol.
[5] Y.-K. Wang et al. ,”RTP Payload Format for H.264 Video”, IETF RFC 6184,
http://tools.ietf.org/html/
[6] S. Wenger et al., “RTP Payload Format for Scalable Video Coding”, IETF RFC 6190,
http://tools.ietf.org/html/rfc6190
[6] T. Schierl et al., “RTP Payload Format for High Efficiency Video Coding”, IETF internet draft,
http://datatracker.ietf.org/doc/draft-schierl-carga util-rtp-h265/

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    REIVINDICACIONES
    1. Flujo de datos de v^deo que tiene contenido de v^deo (16) codificado en el mismo en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), estando cada subporcion (24) codificada respectivamente en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos de video (22), estando dividida la secuencia (34) de paquetes en una secuencia de unidades de acceso (30), de manera que cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), en el que la secuencia (34) de paquetes tiene intercalada en la misma paquetes de control de temporizacion (36), de manera que los paquetes de control de temporizacion (36) subdividen las unidades de acceso (30) en unidades de decodificacion (38), de manera que al menos algunas unidades de acceso (30) se subdividen en dos o mas unidades de decodificacion (38), senalizando cada paquete de control de temporizacion (38) un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion (38), los paquetes de la carga util (32) de la cual, siguen el paquete de control de temporizacion (38) respectivo en la secuencia (34) de paquetes.
  2. 2. Flujo de datos de video de acuerdo con la reivindicacion 1, en el que las subporciones (24) son cortes, y cada paquete de carga util (32) abarca uno o mas cortes.
  3. 3. Flujo de datos de video de acuerdo con la reivindicacion 2, en el que los cortes comprenden cortes decodificables de manera independiente y cortes dependientes que permiten, para el procesamiento WPP, decodificar utilizando la decodificacion por entropfa y predictiva, mas alla de los lfmites del corte.
  4. 4. Flujo de datos de video de acuerdo con cualquiera de las reivindicaciones 1 a 3, en el que cada paquete de la secuencia (34) de paquetes puede asignarse a exactamente un tipo de paquete de una pluralidad de tipos de paquetes con los paquetes de la carga util (32) y los paquetes de control de temporizacion (36) siendo de diferentes tipos de paquetes, en el que las apariciones de los paquetes de la pluralidad de tipos de paquete en la secuencia (34) de paquetes se someten a ciertas limitaciones que definen un orden entre los tipos de paquetes, que ha de obedecerse por los paquetes dentro de cada unidad de acceso (30), de manera que los lfmites de la unidad de acceso son detectables utilizando las limitaciones, detectando los casos donde se objetan las limitaciones, y permanecen en la misma posicion dentro de la secuencia de paquetes, incluso si los paquetes de cualquier tipo de paquete retirable se eliminan del flujo de datos de video, en el que los paquetes de la carga util (32) son de un tipo de paquete no retirable, y los paquetes de control de temporizacion (36) son del tipo de paquete retirable.
  5. 5. Flujo de datos de video de acuerdo con cualquiera de las reivindicaciones 1 a 4, en el que cada paquete comprende un tipo de paquete que indica porcion del elemento de la sintaxis.
  6. 6. Flujo de datos de video de acuerdo con la reivindicacion 5, en el que el tipo de paquete que indica la porcion del elemento de la sintaxis comprende un campo del tipo de paquete en un encabezamiento del paquete del paquete respectivo, el contenido del cual difiere entre los paquetes de la carga util y los paquetes de control de temporizacion, y para los paquetes de control de temporizacion, un campo del tipo del paquete SEI diferencia entre los paquetes de control de temporizacion, por una parte, y los paquetes SEI de diferente tipo, por otra parte.
  7. 7. Codificador para codificar en un flujo de datos de video (22) el contenido de video (16) en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), codificando respectivamente cada subporcion (24) en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos de video (22), de manera que la secuencia (34) de paquetes se divide en una secuencia de unidades de acceso (30), y cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), estando configurado el codificador para intercalar en la secuencia (34) de paquetes, paquetes de control de temporizacion (36), de manera que los paquetes de control de temporizacion (36) subdividen las unidades de acceso (30) en unidades de decodificacion (38), de manera que al menos algunas unidades de acceso (30) se subdividen en dos o mas unidades de decodificacion (38), senalizando cada paquete del control de temporizacion (36) un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion (38), los paquetes de la carga util (32) de la cual, siguen el paquete del control de temporizacion (36) respectivo en la secuencia (34) de paquetes.
  8. 8. Codificador de acuerdo con la reivindicacion 7, en el que el codificador esta configurado para, durante la codificacion de una instantanea actual del contenido de video,
    codificar una subporcion actual (24) de una instantanea actual (18) en un paquete de carga util actual (32) de una unidad de decodificacion actual (38),
    transmitir, dentro del flujo de datos, la unidad de decodificacion actual (38) prefijada con un paquete del control de la temporizacion actual (36), configurando un tiempo de recuperacion de la memoria intermedia del decodificador senalizado por el paquete del control de la temporizacion actual (36), en un primer instante de tiempo; y codificar una subporcion adicional de la instantanea actual en un segundo instante de tiempo, mas tarde que el primer instante de tiempo.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
  9. 9. Metodo para codificar en un flujo de datos de v^deo (22) el contenido de v^deo (16) en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), codificando respectivamente cada subporcion (24) en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos de video (22), de manera que la secuencia (34) de paquetes se divide en una secuencia de unidades de acceso (30) y cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), comprendiendo el metodo intercalar en la secuencia (34) de paquetes, paquetes de control de temporizacion (36), de manera que los paquetes de control de temporizacion (36) subdividen las unidades de acceso (30) en unidades de decodificacion (38), de manera que al menos algunas unidades de acceso (30) se subdividen en dos o mas unidades de decodificacion (38), senalizando cada paquete del control de temporizacion (36) un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion (38), los paquetes de la carga util (32) de la cual, siguen el paquete del control de temporizacion (36) respectivo en la secuencia (34) de paquetes.
  10. 10. Decodificador para decodificar un flujo de datos de video (22) que tiene contenido de video (16) codificado en el mismo, en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), codificandose cada subporcion respectivamente en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos de video (22), dividiendose la secuencia (34) de paquetes en una secuencia de unidades de acceso (30), de manera que cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), comprendiendo el decodificador una memoria intermedia para almacenar en memoria intermedia el flujo de datos de video o una reconstruccion del contenido de video obtenida desde el mismo, mediante la decodificacion del flujo de datos de video, y configurada para buscar los paquetes de control de temporizacion (36) intercalados en la secuencia de paquetes, subdividir las unidades de acceso (30) en unidades de decodificacion (38) en los paquetes de control de temporizacion (36), de manera que al menos algunas unidades de acceso se subdividen en dos o mas unidades de decodificacion, y vaciar la memoria intermedia en unidades de las unidades de decodificacion.
  11. 11. Decodificador de acuerdo con la reivindicacion 10, en el que el decodificador esta configurado para, al buscar los paquetes de control de temporizacion (36), inspeccionar, en cada paquete, un tipo de paquete que indica una porcion de elemento de la sintaxis, si un valor del tipo de paquete que indica la porcion del elemento de la sintaxis equivale a un valor predeterminado, reconocer el paquete respectivo como un paquete del control de temporizacion (36).
  12. 12. Metodo para decodificar un flujo de datos de video (22) que tiene contenido de video (16) codificado en el mismo en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), codificandose cada subporcion respectivamente en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos de video (22), dividiendose la secuencia (34) de paquetes en una secuencia de unidades de acceso (30), de manera que cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), utilizando el metodo una memoria intermedia para almacenar en memoria intermedia el flujo de datos de video o una reconstruccion del contenido de video obtenida desde el mismo, mediante la decodificacion del flujo de datos de video y que comprende buscar los paquetes de control de temporizacion (36) intercalados en la secuencia de paquetes, subdividiendo las unidades de acceso (30) en unidades de decodificacion (38) en los paquetes de control de temporizacion (36), de manera que al menos algunas unidades de acceso se subdividen en dos o mas unidades de decodificacion, y vaciar la memoria intermedia en unidades de las unidades de decodificacion.
  13. 13. Entidad de red para transmitir un flujo de datos de video (22) que tiene contenido de video (16) codificado en el mismo, en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), codificandose cada subporcion respectivamente en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos de video (22), dividiendose la secuencia (34) de paquetes en una secuencia de unidades de acceso (30), de manera que cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), estando configurado el decodificador para buscar paquetes de control de temporizacion (36) intercalados en la secuencia de paquetes, subdividir las unidades de acceso en unidades de decodificacion en los paquetes de control de temporizacion (36) de manera que al menos algunas unidades de acceso (30) se subdividen en dos o mas unidades de decodificacion (38), derivar desde cada paquete del control de temporizacion (36), un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion (38), los paquetes de la carga util (32) de la cual, siguen al paquete del control de temporizacion (36) respectivo en la secuencia (34) de paquetes, y realizar la transmision del flujo de datos de video dependiendo de los tiempos de recuperacion de la memoria intermedia del decodificador para las unidades de decodificacion (38).
  14. 14. Metodo para transmitir un flujo de datos de video (22) que tiene contenido de video (16) codificado en el mismo, en unidades de subporciones (24) de instantaneas (18) del contenido de video (16), codificandose cada subporcion respectivamente en uno o mas paquetes de la carga util (32) de una secuencia (34) de paquetes del flujo de datos
    de video (22), estando dividida la secuencia (34) de paquetes en una secuencia de unidades de acceso (30), de manera que cada unidad de acceso (30) recopila los paquetes de la carga util (32) relacionados con una instantanea respectiva (18) del contenido de video (16), comprendiendo el metodo buscar paquetes de control de temporizacion (36) intercalados en la secuencia de paquetes, subdividir las unidades de acceso en unidades de decodificacion en 5 los paquetes de control de temporizacion (36), de manera que al menos algunas unidades de acceso (30) se subdividen en dos o mas unidades de decodificacion (38), derivar desde cada paquete del control de temporizacion (36), un tiempo de recuperacion de la memoria intermedia del decodificador para una unidad de decodificacion (38), los paquetes de la carga util (32) de la cual, siguen el paquete del control de temporizacion (36) respectivo en la secuencia (34) de paquetes, y realizar la transmision del flujo de datos de video dependiendo de los tiempos de 10 recuperacion de la memoria intermedia del decodificador para las unidades de decodificacion (38).
  15. 15. Programa informatico que tiene un codigo de programa para realizar, cuando se ejecuta en una computadora, un metodo de acuerdo con la reivindicacion 9, 12 o 14.
ES13735241.5T 2012-06-29 2013-07-01 Concepto de flujo de datos de vídeo Active ES2614910T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261666185P 2012-06-29 2012-06-29
US201261666185P 2012-06-29
PCT/EP2013/063853 WO2014001573A1 (en) 2012-06-29 2013-07-01 Video data stream concept

Publications (1)

Publication Number Publication Date
ES2614910T3 true ES2614910T3 (es) 2017-06-02

Family

ID=48782303

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13735241.5T Active ES2614910T3 (es) 2012-06-29 2013-07-01 Concepto de flujo de datos de vídeo

Country Status (25)

Country Link
US (6) US9973781B2 (es)
EP (3) EP3905697A1 (es)
JP (8) JP2015526006A (es)
KR (5) KR102659283B1 (es)
CN (15) CN115442626A (es)
AU (6) AU2013283173B2 (es)
BR (2) BR122020007914B1 (es)
CA (3) CA2877045C (es)
CL (1) CL2014003507A1 (es)
DK (1) DK2868103T3 (es)
ES (1) ES2614910T3 (es)
HK (1) HK1210342A1 (es)
HU (1) HUE031264T2 (es)
IL (7) IL305350B1 (es)
MX (2) MX2020009883A (es)
MY (1) MY167958A (es)
PH (5) PH12014502882A1 (es)
PL (1) PL2868103T3 (es)
PT (1) PT2868103T (es)
RU (3) RU2635251C2 (es)
SG (3) SG11201408612TA (es)
TW (7) TWI636687B (es)
UA (2) UA114909C2 (es)
WO (1) WO2014001573A1 (es)
ZA (1) ZA201500558B (es)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3174295B1 (en) 2012-04-13 2018-12-12 GE Video Compression, LLC Low delay picture coding
CN107809645B (zh) * 2012-06-22 2021-12-03 威勒斯媒体国际有限公司 图像解码方法及图像解码设备
EP2866438A4 (en) * 2012-06-25 2015-12-02 Nec Corp VIDEO ENCODING / DECODING DEVICE, METHOD, AND PROGRAM
CN115442626A (zh) 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
JP6214235B2 (ja) * 2012-07-02 2017-10-18 キヤノン株式会社 ファイル生成方法、ファイル生成装置、及びプログラム
US20140003534A1 (en) * 2012-07-02 2014-01-02 Sony Corporation Video coding system with temporal scalability and method of operation thereof
EP4156690A1 (en) 2012-08-09 2023-03-29 Sun Patent Trust Image decoding method
US9479774B2 (en) * 2012-09-24 2016-10-25 Qualcomm Incorporated Buffering period and recovery point supplemental enhancement information messages
MY181830A (en) 2012-09-26 2021-01-08 Panasonic Ip Corp America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
US8989508B2 (en) * 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
US9479782B2 (en) 2012-09-28 2016-10-25 Qualcomm Incorporated Supplemental enhancement information message coding
US9883011B2 (en) * 2012-10-12 2018-01-30 Canon Kabushiki Kaisha Method and corresponding device for streaming video data
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
CA3129121C (en) 2013-04-07 2024-02-20 Dolby International Ab Signaling change in output layer sets
GB2513303B (en) * 2013-04-16 2017-06-07 Canon Kk Method and device for partitioning an image
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
EP3018910B1 (en) * 2013-07-05 2019-11-13 Saturn Licensing LLC Transmission device, transmission method, reception device, and reception method
KR102657916B1 (ko) 2013-07-15 2024-04-15 지이 비디오 컴프레션, 엘엘씨 다계층식 비디오 코딩에서의 저지연 개념
WO2015009676A1 (en) * 2013-07-15 2015-01-22 Sony Corporation Extensions of motion-constrained tile sets sei message for interactivity
JP6268066B2 (ja) * 2013-09-20 2018-01-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
EP3703379B1 (en) 2013-12-16 2022-06-22 Panasonic Intellectual Property Corporation of America Transmission method, reception method, transmitting device, and receiving device
JP6652320B2 (ja) * 2013-12-16 2020-02-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
WO2015089623A1 (en) * 2013-12-16 2015-06-25 Mcafee, Inc. Process efficient preprocessing for an encryption standard
CA2951009A1 (en) 2014-06-20 2015-12-23 Sony Corporation Image encoding device and method, and image decoding device and method
US10091532B2 (en) * 2014-06-26 2018-10-02 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
US10123028B2 (en) * 2014-09-17 2018-11-06 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
US9800898B2 (en) 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
US11418812B2 (en) 2015-02-11 2022-08-16 Qualcomm Incorporated Placement of parameter sets and sync samples in video coding
JP6879479B2 (ja) 2015-09-02 2021-06-02 インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ 拡張されたシーンでナビゲーションを容易にする方法、装置及びシステム
US10616618B2 (en) * 2015-09-11 2020-04-07 Lg Electronics Inc. Broadcast signal transmitting device, broadcast signal receiving device, broadcast signal transmitting method and broadcast signal receiving method
JP6519441B2 (ja) 2015-10-22 2019-05-29 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
CN108886639B (zh) * 2016-02-02 2021-05-07 弗劳恩霍夫应用研究促进协会 视频流传输中的场景部分和感兴趣区域处理
TWI762260B (zh) * 2016-02-09 2022-04-21 弗勞恩霍夫爾協會 用於圖像/視訊資料串流而允許有效可縮減性或有效隨機存取之技術
US10582201B2 (en) * 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
US10574718B2 (en) * 2016-08-25 2020-02-25 Comcast Cable Communications, Llc Packaging content for delivery
EP3293981A1 (en) * 2016-09-08 2018-03-14 Koninklijke KPN N.V. Partial video decoding method, device and system
MX2022004787A (es) * 2016-10-12 2022-12-01 Fraunhofer Ges Forschung Transmisión continua espacialmente desigual.
CN115955560A (zh) * 2017-03-20 2023-04-11 Ge 视频压缩有限责任公司 生成视频数据流的装置以及生成视频数据流的方法
US10587800B2 (en) * 2017-04-10 2020-03-10 Intel Corporation Technology to encode 360 degree video content
WO2019034803A1 (en) * 2017-08-14 2019-02-21 Nokia Technologies Oy METHOD AND APPARATUS FOR PROCESSING VIDEO INFORMATION
US11523135B2 (en) 2018-04-09 2022-12-06 Nokia Technologies Oy Apparatus, a method and a computer program for volumetric video
GB2572770B (en) * 2018-04-09 2022-11-02 Canon Kk Method and apparatus for encoding or decoding video data with frame portions
KR102644707B1 (ko) * 2018-07-02 2024-03-06 노키아 테크놀로지스 오와이 비디오 코딩에서 타일 관련 어드레싱을 위한 방법 및 장치
CN112690004B (zh) * 2018-09-14 2023-01-13 华为技术有限公司 一种视频译码中的基于分块的寻址方法,译码器以及视频译码设备
KR102637732B1 (ko) * 2018-09-21 2024-02-19 삼성전자주식회사 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 애플리케이션 프로세서
US10834163B2 (en) * 2018-10-18 2020-11-10 At&T Intellectual Property I, L.P. Methods, devices, and systems for encoding portions of video content according to priority content within live video content
GB201817781D0 (en) * 2018-10-31 2018-12-19 V Nova Int Ltd Mehods, apparatuses, computer programs and computer-readable media
US11140403B2 (en) * 2018-12-20 2021-10-05 Tencent America LLC Identifying tile from network abstraction unit header
US11310516B2 (en) * 2018-12-21 2022-04-19 Hulu, LLC Adaptive bitrate algorithm with cross-user based viewport prediction for 360-degree video streaming
US11778171B2 (en) * 2019-01-02 2023-10-03 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
BR112021013512A2 (pt) * 2019-01-09 2021-09-14 Huawei Technologies Co., Ltd. Codificador de vídeo, decodificador de vídeo e métodos correspondentes
CN113557744A (zh) * 2019-03-11 2021-10-26 华为技术有限公司 视频译码中的分块级滤波
US10924751B2 (en) * 2019-03-18 2021-02-16 Tencent America LLC Data unit and parameter set design for point cloud coding
CN114009051B (zh) * 2019-06-27 2023-07-18 华为技术有限公司 用于v-pcc的假设参考解码器
US11012690B2 (en) * 2019-08-21 2021-05-18 Tencent America LLC Method and apparatus for video coding
CN112422295B (zh) * 2019-08-23 2023-06-13 微芯片技术股份有限公司 以太网接口及相关系统、方法和设备
CN112532569B (zh) * 2019-09-19 2022-05-31 澜至电子科技(成都)有限公司 视频码流保护装置、方法以及存储介质
CN110856220B (zh) * 2019-11-15 2020-12-29 深圳市东方拓宇科技有限公司 数据传输方法及终端
CN110856153B (zh) * 2019-11-15 2020-12-29 深圳市东方拓宇科技有限公司 数据传输方法及终端
US20230013803A1 (en) * 2019-11-27 2023-01-19 Lg Electronics Inc. Image decoding method and apparatus therefor
US20230328266A1 (en) * 2019-11-27 2023-10-12 Lg Electronics Inc. Image decoding method and device therefor
US10939126B1 (en) * 2019-12-09 2021-03-02 Guangzhou Zhijing Technology Co., Ltd Method of adding encoded range-of-interest location, type and adjustable quantization parameters per macroblock to video stream
EP4085622A1 (en) * 2019-12-31 2022-11-09 Koninklijke KPN N.V. Partial output of a decoded picture buffer in video coding
KR20220119675A (ko) 2020-01-09 2022-08-30 텔레폰악티에볼라겟엘엠에릭슨(펍) 화상 헤더 존재
JP2021131168A (ja) 2020-02-18 2021-09-09 株式会社デンソー 熱交換器
CN115211130B (zh) 2020-02-21 2024-04-09 抖音视界有限公司 基于条带和片图片分割的信令通知的处理视频数据的方法
BR112022016900A2 (pt) * 2020-02-28 2022-10-25 Huawei Tech Co Ltd Codificador, decodificador e métodos correspondentes que simplificam sinalização de elementos de sintaxe de cabeçalho de fatia
JP7450747B2 (ja) * 2020-03-05 2024-03-15 エルジー エレクトロニクス インコーポレイティド 混成nalユニットタイプに基づく画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法
EP4144093A4 (en) * 2020-05-22 2023-08-23 ByteDance Inc. SIGNALING OF IMAGE INFORMATION IN ACCESS UNITS
WO2021243044A1 (en) * 2020-05-27 2021-12-02 Let's Jam, Llc Methods and systems for synchronizing multimedia
CN115918077A (zh) 2020-06-09 2023-04-04 字节跳动有限公司 子图片子比特流提取过程中补充增强信息的处理
US11321878B2 (en) 2020-06-26 2022-05-03 Sony Group Corporation Decoded tile hash SEI message for V3C/V-PCC
EP4268457A1 (en) * 2020-12-28 2023-11-01 Koninklijke KPN N.V. Partial output of a decoded picture buffer in video coding
EP4268462A1 (en) * 2020-12-28 2023-11-01 Koninklijke KPN N.V. Prioritized decoding and output of parts of a picture in video coding
CN113542745B (zh) * 2021-05-27 2024-06-25 绍兴市北大信息技术科创中心 一种率失真编码优化方法
WO2023242590A1 (en) * 2022-06-16 2023-12-21 Mbda Uk Limited Method for image encoding
US11695965B1 (en) 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer
CN116149591B (zh) * 2023-04-04 2023-08-18 深圳曦华科技有限公司 一种命令模式码片数据流传输时序控制方法及装置

Family Cites Families (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5020121A (en) 1990-08-16 1991-05-28 Hewlett-Packard Company Neighborhood block prediction bit compression
US5786858A (en) 1993-01-19 1998-07-28 Sony Corporation Method of encoding image signal, apparatus for encoding image signal, method of decoding image signal, apparatus for decoding image signal, and image signal recording medium
RU2093968C1 (ru) 1995-08-02 1997-10-20 Закрытое акционерное общество "Техно-ТМ" Способ кодирования-декодирования изображений и устройство для его осуществления
JP3409552B2 (ja) 1995-12-27 2003-05-26 三菱電機株式会社 ディジタル情報符号化装置、ディジタル情報復号化装置、及びディジタル情報符号化・復号化装置
JPH09298668A (ja) 1996-05-07 1997-11-18 Mitsubishi Electric Corp ディジタル情報符号化装置、ディジタル情報復号化装置、ディジタル情報符号化・復号化装置、ディジタル情報符号化方法、及びディジタル情報復号化方法
EP0861001B1 (en) 1997-02-07 2012-05-23 Texas Instruments Incorporated Error resilient video encoding
HUP0001273A3 (en) 1998-01-20 2000-09-28 Interactic Holdings Llc New Yo A scalable low-latency switch, interconnect apparatus, interconnect structure and method
US6754271B1 (en) 1999-04-15 2004-06-22 Diva Systems Corporation Temporal slice persistence method and apparatus for delivery of interactive program guide
US7093028B1 (en) 1999-12-15 2006-08-15 Microsoft Corporation User and content aware object-based data stream transmission methods and arrangements
TW488155B (en) 2000-01-27 2002-05-21 Hewlett Packard Co Task-partitioned hybrid codec
US6493388B1 (en) 2000-04-19 2002-12-10 General Instrument Corporation Rate control and buffer protection for variable bit rate video programs over a constant rate channel
GB2377573B (en) * 2001-07-11 2004-03-31 Motorola Inc Video transmission system, video tranmission unit and methods of encoding/decoding video data
CN100407791C (zh) 2001-11-16 2008-07-30 株式会社Ntt都科摩 图像编码、译码方法、图像编码、译码装置及图像传送系统
JP3807342B2 (ja) 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
US7305036B2 (en) 2002-05-14 2007-12-04 Broadcom Corporation System and method for entropy code preprocessing
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
EP1595405B1 (en) * 2003-02-18 2019-12-04 Nokia Technologies Oy Method and device for transmitting media data in nal units over rtp
KR101029762B1 (ko) 2003-03-03 2011-04-19 에이전시 포 사이언스, 테크놀로지 앤드 리서치 고급 비디오 코딩에 대한 인트라 프레딕션을 위한 신속모드 결정 알고리즘
US7447369B2 (en) 2003-03-07 2008-11-04 Ricoh Co., Ltd. Communication of compressed digital images
US6894628B2 (en) 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
US20050185541A1 (en) 2004-02-23 2005-08-25 Darren Neuman Method and system for memory usage in real-time audio systems
US7586924B2 (en) * 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
EP1754378A1 (en) 2004-05-25 2007-02-21 Koninklijke Philips Electronics N.V. Method and device for encoding digital video data
EP1760933B1 (en) 2004-08-06 2012-03-14 Panasonic Corporation Feedback control for multicast or broadcast services
US7440626B2 (en) * 2004-12-02 2008-10-21 Mitsubishi Electric Research Laboratories, Inc. Image transcoding
KR101138392B1 (ko) 2004-12-30 2012-04-26 삼성전자주식회사 색차 성분의 상관관계를 이용한 컬러 영상의 부호화,복호화 방법 및 그 장치
JP4680608B2 (ja) 2005-01-17 2011-05-11 パナソニック株式会社 画像復号装置及び方法
US7664041B2 (en) 2005-05-26 2010-02-16 Dale Trenton Smith Distributed stream analysis using general purpose processors
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
GB2429593A (en) 2005-08-26 2007-02-28 Electrosonic Ltd Data compressing using a wavelet compression scheme
CN102271249B (zh) * 2005-09-26 2014-04-09 韩国电子通信研究院 用于可伸缩视频的感兴趣区域信息设置方法和解析方法
KR101255226B1 (ko) 2005-09-26 2013-04-16 한국과학기술원 스케일러블 비디오 코딩에서 다중 roi 설정, 복원을위한 장치 및 방법
EP2375749B1 (en) * 2005-10-11 2016-11-23 Nokia Technologies Oy System and method for efficient scalable stream adaptation
WO2007043609A1 (ja) 2005-10-14 2007-04-19 Nec Corporation 画像符号化方法及び、これを用いた装置とコンピュータプログラム
JP4211780B2 (ja) 2005-12-27 2009-01-21 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
WO2007077942A1 (ja) 2006-01-05 2007-07-12 Nippon Telegraph And Telephone Corporation 映像符号化方法及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体
KR100904442B1 (ko) 2006-01-09 2009-06-24 엘지전자 주식회사 영상 신호의 레이어 간 예측 방법
KR20070074453A (ko) 2006-01-09 2007-07-12 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
RU2384970C1 (ru) 2006-01-09 2010-03-20 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ межслойного предсказания для видеосигнала
US8619865B2 (en) * 2006-02-16 2013-12-31 Vidyo, Inc. System and method for thinning of scalable video coding bit-streams
JP4876122B2 (ja) 2006-03-22 2012-02-15 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 精度スケーラビリティを可能にする符号化スキーム
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
WO2007114612A1 (en) 2006-03-30 2007-10-11 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
KR100828404B1 (ko) 2006-05-08 2008-05-08 한국과학기술원 경계관찰질의를 이용한 데이터 스트림 처리 방법
JP2008017331A (ja) * 2006-07-07 2008-01-24 Toshiba Corp パケットストリーム送信装置
US7840078B2 (en) 2006-07-10 2010-11-23 Sharp Laboratories Of America, Inc. Methods and systems for image processing control based on adjacent block characteristics
CA2657267C (en) 2006-07-13 2013-07-16 Qualcomm Incorporated Video coding with fine granularity scalability using cycle-aligned fragments
CN101491097B (zh) * 2006-07-13 2011-12-14 高通股份有限公司 使用经循环对准的片段的具有细粒度可缩放性的视频编码
JP4129694B2 (ja) * 2006-07-19 2008-08-06 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US7554468B2 (en) 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
JP5143829B2 (ja) 2006-09-07 2013-02-13 エルジー エレクトロニクス インコーポレイティド スケーラブルビデオコーディングされたビットストリームのデコーディング方法及び装置
CN101150719B (zh) 2006-09-20 2010-08-11 华为技术有限公司 并行视频编码的方法及装置
US8218640B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8218641B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture encoding using same-picture reference for pixel reconstruction
US7778277B2 (en) * 2006-11-03 2010-08-17 Mediatek Inc. Timing recovery method and system thereof
US7675549B1 (en) * 2006-12-08 2010-03-09 Itt Manufacturing Enterprises, Inc. Imaging architecture for region and time of interest collection and dissemination
EP2124343A4 (en) 2006-12-14 2012-01-11 Nec Corp METHOD, DEVICE AND VIDEO PROGRAMMING PROGRAM
TWI328199B (en) 2006-12-15 2010-08-01 Via Tech Inc Method for image rendering
ZA200904019B (en) 2007-01-05 2010-08-25 Thomson Licensing Hypothetical reference decoder for scalable video coding
US20080247459A1 (en) 2007-04-04 2008-10-09 General Instrument Corporation Method and System for Providing Content Adaptive Binary Arithmetic Coder Output Bit Counting
MX2009010322A (es) * 2007-04-24 2009-10-19 Nokia Corp Señalizacion de multiples tiempos de descodificacion en archivos multimedia.
TWI330987B (en) 2007-05-18 2010-09-21 Via Tech Inc Method and apparatus for determining whether adjacent macroblocks are located in the same slice
US8180029B2 (en) 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
WO2009003885A2 (en) * 2007-06-29 2009-01-08 Thomson Licensing Video indexing method, and video indexing device
KR20090004659A (ko) 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
KR20090004658A (ko) 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
CN100534186C (zh) 2007-07-05 2009-08-26 西安电子科技大学 基于码率预分配的jpeg2000自适应率控制系统及方法
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
US20110116542A1 (en) 2007-08-24 2011-05-19 France Telecom Symbol plane encoding/decoding with dynamic calculation of probability tables
WO2009039638A1 (en) 2007-09-28 2009-04-02 Pin-Han Ho A robust system and method for wireless data multicasting using superposition modulation
US20090097704A1 (en) * 2007-10-10 2009-04-16 Micron Technology, Inc. On-chip camera system for multiple object tracking and identification
US8938009B2 (en) 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
US20090141809A1 (en) * 2007-12-04 2009-06-04 Sony Corporation And Sony Electronics Inc. Extension to the AVC standard to support the encoding and storage of high resolution digital still pictures in parallel with video
KR101291196B1 (ko) 2008-01-25 2013-07-31 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
US9357233B2 (en) 2008-02-26 2016-05-31 Qualcomm Incorporated Video decoder error handling
CN101552924B (zh) 2008-03-31 2011-08-03 深圳市融创天下科技发展有限公司 一种用于视频编码的空间预测方法
CN101568037B (zh) 2008-04-21 2010-12-15 展讯通信(上海)有限公司 一种dvb-h手机电视流式修复的方法、终端与系统
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US20090316793A1 (en) 2008-06-20 2009-12-24 Yang Zhijie Michael Method and system for adaptive deblocking for avs1-p2
US8908763B2 (en) 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
CN102113324B (zh) * 2008-07-31 2013-09-25 三菱电机株式会社 视频编码装置、视频编码方法、视频再现装置、视频再现方法
EP2890149A1 (en) * 2008-09-16 2015-07-01 Intel Corporation Systems and methods for video/multimedia rendering, composition, and user-interactivity
KR101007381B1 (ko) * 2008-10-06 2011-01-13 주식회사 아이엠케이네트웍스 관심 영역을 고려한 영상 부호화 장치
US20100254620A1 (en) 2008-10-10 2010-10-07 Daisuke Iwahashi Image decoding apparatus and image decoding method
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
CN102257819A (zh) 2008-10-30 2011-11-23 Gvbb控股股份有限公司 图像编码装置、图像编码方法和图像编码程序
US9467699B2 (en) 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
WO2010067505A1 (ja) 2008-12-08 2010-06-17 パナソニック株式会社 画像復号化装置および画像復号化方法
US8371552B2 (en) 2008-12-11 2013-02-12 GM Global Technology Operations LLC Shift actuator valve having a pressure dead band
US20120014451A1 (en) 2009-01-15 2012-01-19 Wei Siong Lee Image Encoding Methods, Image Decoding Methods, Image Encoding Apparatuses, and Image Decoding Apparatuses
EP2392138A4 (en) * 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
JP5516843B2 (ja) 2009-01-29 2014-06-11 コマニー株式会社 3ウェイ方式のパネル連結構造及び連結金具
RU2375939C1 (ru) 2009-03-02 2009-12-20 Андрей Николаевич Конев Противоскользящее средство для обуви
US8514931B2 (en) * 2009-03-20 2013-08-20 Ecole Polytechnique Federale De Lausanne (Epfl) Method of providing scalable video coding (SVC) video content with added media content
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
US20100246683A1 (en) 2009-03-27 2010-09-30 Jennifer Lois Harmon Webb Error Resilience in Video Decoding
US9112618B2 (en) * 2009-07-02 2015-08-18 Qualcomm Incorporated Coding latency reductions during transmitter quieting
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
JP5389187B2 (ja) * 2009-10-29 2014-01-15 パナソニック株式会社 画像符号化方法および画像符号化装置
KR101495724B1 (ko) 2010-02-02 2015-02-25 삼성전자주식회사 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US20110196673A1 (en) 2010-02-11 2011-08-11 Qualcomm Incorporated Concealing lost packets in a sub-band coding decoder
US8487791B2 (en) 2010-02-18 2013-07-16 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US9973768B2 (en) 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
CN102939750B (zh) 2010-04-13 2016-07-06 Ge视频压缩有限责任公司 跨平面预测
US20110280314A1 (en) 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
US9215470B2 (en) 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
US20120014429A1 (en) 2010-07-15 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9591320B2 (en) 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US20120014433A1 (en) 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
US8930562B2 (en) 2010-07-20 2015-01-06 Qualcomm Incorporated Arranging sub-track fragments for streaming video data
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US20120063515A1 (en) 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
US8344917B2 (en) 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US8902988B2 (en) * 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US8604951B2 (en) 2010-10-05 2013-12-10 Massachusetts Institute Of Technology System and method for optimizing context-adaptive binary arithmetic coding
US8787443B2 (en) 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US20120082235A1 (en) * 2010-10-05 2012-04-05 General Instrument Corporation Coding and decoding utilizing context model selection with adaptive scan pattern
US8885729B2 (en) * 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US20120163457A1 (en) * 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US9325999B2 (en) 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
EP2684369A4 (en) 2011-03-10 2014-08-27 Sharp Kk METHOD FOR DECODING VIDEO DATA
JP2012232720A (ja) 2011-05-09 2012-11-29 Suzuki Motor Corp 船外機の動力連結装置
GB2491164B (en) 2011-05-25 2013-09-11 Canon Kk Method and device for compression of video data
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
WO2012167418A1 (en) * 2011-06-07 2012-12-13 Technicolor (China) Technology Co., Ltd. Method for encoding and/or decoding images on macroblock level using intra-prediction
US10298939B2 (en) * 2011-06-22 2019-05-21 Qualcomm Incorporated Quantization in video coding
US9398307B2 (en) 2011-07-11 2016-07-19 Sharp Kabushiki Kaisha Video decoder for tiles
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9247258B2 (en) * 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
WO2013077236A1 (en) 2011-11-21 2013-05-30 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
US9565431B2 (en) 2012-04-04 2017-02-07 Qualcomm Incorporated Low-delay video buffering in video coding
EP3174295B1 (en) 2012-04-13 2018-12-12 GE Video Compression, LLC Low delay picture coding
EP2843945B1 (en) 2012-04-23 2020-03-11 Sun Patent Trust Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
CN115442626A (zh) * 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
US9930562B2 (en) 2016-02-05 2018-03-27 Arris Enterprises Llc Utilization based control of wireless network services
WO2023107452A1 (en) * 2021-12-09 2023-06-15 Apple Inc. Encoding and decoding video content using prediction-aware flexible skip coding

Also Published As

Publication number Publication date
JP2020065292A (ja) 2020-04-23
IL305350B1 (en) 2024-05-01
CN115442624A (zh) 2022-12-06
TWI769904B (zh) 2022-07-01
TW202201961A (zh) 2022-01-01
WO2014001573A1 (en) 2014-01-03
US20150208095A1 (en) 2015-07-23
CN115442626A (zh) 2022-12-06
EP3905697A1 (en) 2021-11-03
US11025958B2 (en) 2021-06-01
TWI584637B (zh) 2017-05-21
IL299951A (en) 2023-03-01
IL277485A (en) 2020-11-30
RU2720534C2 (ru) 2020-04-30
KR101858200B1 (ko) 2018-05-16
MX2014016063A (es) 2015-04-09
JP2017118564A (ja) 2017-06-29
JP7021167B2 (ja) 2022-02-16
CN115442623A (zh) 2022-12-06
TW202007152A (zh) 2020-02-01
CN115442625A (zh) 2022-12-06
IL283196A (en) 2021-06-30
CA3095638A1 (en) 2014-01-03
RU2635251C2 (ru) 2017-11-09
CN115442621A (zh) 2022-12-06
CN115442630A (zh) 2022-12-06
DK2868103T3 (en) 2017-03-13
AU2020289848A1 (en) 2021-01-28
CN115442629A (zh) 2022-12-06
IL283196B2 (en) 2023-06-01
US20180220161A1 (en) 2018-08-02
EP3151566B1 (en) 2021-03-31
CN115442621B (zh) 2024-05-31
CN104685893B (zh) 2019-08-13
AU2013283173B2 (en) 2016-03-24
RU2766882C2 (ru) 2022-03-16
US20190253736A1 (en) 2019-08-15
JP6793167B2 (ja) 2020-12-02
KR20240070581A (ko) 2024-05-21
US11956472B2 (en) 2024-04-09
IL312019A (en) 2024-06-01
EP3151566A1 (en) 2017-04-05
CN104685893A (zh) 2015-06-03
US11856229B2 (en) 2023-12-26
AU2022252837B2 (en) 2023-12-14
US20200112749A1 (en) 2020-04-09
KR20180014234A (ko) 2018-02-07
PH12018500335A1 (en) 2019-01-28
KR20150029723A (ko) 2015-03-18
CA2877045C (en) 2020-12-08
RU2020114791A (ru) 2021-10-27
PT2868103T (pt) 2017-03-02
MX349567B (es) 2017-08-03
AU2022252837A1 (en) 2022-11-10
BR112014032687A2 (pt) 2018-05-02
AU2013283173A1 (en) 2015-01-22
UA123988C2 (uk) 2021-07-07
KR20200116538A (ko) 2020-10-12
SG11201408612TA (en) 2015-01-29
MY167958A (en) 2018-10-08
CA3095638C (en) 2023-11-14
HK1210342A1 (en) 2016-04-15
IL277485B (en) 2021-05-31
JP2019041402A (ja) 2019-03-14
CL2014003507A1 (es) 2015-02-27
IL261382B (en) 2020-10-29
CN110536136A (zh) 2019-12-03
EP2868103A1 (en) 2015-05-06
HUE031264T2 (en) 2017-07-28
JP6831022B2 (ja) 2021-02-17
ZA201500558B (en) 2016-01-27
AU2024201670A1 (en) 2024-04-04
CN115442632A (zh) 2022-12-06
US20240007675A1 (en) 2024-01-04
CN115442622A (zh) 2022-12-06
RU2017137234A3 (es) 2020-03-02
JP2023175929A (ja) 2023-12-12
JP6483167B2 (ja) 2019-03-13
JP7364710B2 (ja) 2023-10-18
AU2016204304B2 (en) 2018-06-28
CN115442631A (zh) 2022-12-06
KR102659283B1 (ko) 2024-04-22
US20210274221A1 (en) 2021-09-02
AU2016204304A1 (en) 2016-07-14
CA3214600A1 (en) 2014-01-03
SG10201809547WA (en) 2018-11-29
UA114909C2 (uk) 2017-08-28
BR122020007914B1 (pt) 2023-03-07
KR102162119B1 (ko) 2020-10-06
PH12014502882B1 (en) 2015-02-23
PH12018500332A1 (en) 2019-01-28
TWI662832B (zh) 2019-06-11
KR102415989B1 (ko) 2022-07-01
RU2017137234A (ru) 2019-02-12
MX2020009883A (es) 2021-08-20
JP2020025292A (ja) 2020-02-13
TWI636687B (zh) 2018-09-21
RU2020114791A3 (es) 2021-10-27
IL305350A (en) 2023-10-01
AU2018236689B2 (en) 2020-09-24
KR20220098273A (ko) 2022-07-11
CN110536136B (zh) 2022-08-05
TWI558182B (zh) 2016-11-11
BR112014032687B1 (pt) 2023-02-28
SG10201606616WA (en) 2016-09-29
PH12014502882A1 (en) 2015-02-23
JP6603248B2 (ja) 2019-11-06
IL236285A0 (en) 2015-02-26
CA2877045A1 (en) 2014-01-03
CN115442633A (zh) 2022-12-06
US9973781B2 (en) 2018-05-15
PL2868103T3 (pl) 2017-06-30
IL261382A (en) 2018-10-31
CN115442628A (zh) 2022-12-06
CN115442627A (zh) 2022-12-06
IL299951B2 (en) 2024-01-01
RU2015102812A (ru) 2016-08-20
AU2018236689A1 (en) 2018-10-11
US10484716B2 (en) 2019-11-19
TW201811059A (zh) 2018-03-16
AU2020289848B2 (en) 2022-07-14
JP2015526006A (ja) 2015-09-07
JP2022078031A (ja) 2022-05-24
JP2017123659A (ja) 2017-07-13
TW202315403A (zh) 2023-04-01
TW201921936A (zh) 2019-06-01
TWI737990B (zh) 2021-09-01
TW201409995A (zh) 2014-03-01
IL299951B1 (en) 2023-09-01
PH12018500333A1 (en) 2019-01-28
PH12018500334A1 (en) 2019-01-28
US10743030B2 (en) 2020-08-11
TW201742467A (zh) 2017-12-01
EP2868103B1 (en) 2016-12-07

Similar Documents

Publication Publication Date Title
ES2614910T3 (es) Concepto de flujo de datos de vídeo
RU2812020C2 (ru) Концепция потока видеоданных