ES2985657T3 - Un servidor vod de tasa controlada - Google Patents

Un servidor vod de tasa controlada Download PDF

Info

Publication number
ES2985657T3
ES2985657T3 ES20180944T ES20180944T ES2985657T3 ES 2985657 T3 ES2985657 T3 ES 2985657T3 ES 20180944 T ES20180944 T ES 20180944T ES 20180944 T ES20180944 T ES 20180944T ES 2985657 T3 ES2985657 T3 ES 2985657T3
Authority
ES
Spain
Prior art keywords
video stream
segment
bit rate
storage
video
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
ES20180944T
Other languages
English (en)
Inventor
Nir Drang
Tomer Amiaz
Ram Ben-Yakir
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.)
MK Systems USA Inc
Original Assignee
MK Systems USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MK Systems USA Inc filed Critical MK Systems USA Inc
Application granted granted Critical
Publication of ES2985657T3 publication Critical patent/ES2985657T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • 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/146Data rate or code amount at the encoder output
    • 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/164Feedback from the receiver or from the transmission channel
    • 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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/21Server components or server architectures
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2225Local VOD servers
    • 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
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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
    • 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/234309Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/23439Processing 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 for generating different versions
    • 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/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • 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/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • 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/2365Multiplexing of several video streams
    • 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/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • 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/47202End-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 requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un sistema de procesamiento de flujo distribuido que incluye una pluralidad de dispositivos de almacenamiento, al menos uno de los cuales está configurado para procesar al menos un segmento de un flujo de datos, produciendo de ese modo un segmento modificado del flujo de datos, y proporcionar una salida de al menos el segmento modificado del flujo de datos, y un servidor configurado para aceptar la salida de los dispositivos de almacenamiento y combinar la salida en un flujo de transporte. Un método para combinar una pluralidad de flujos de datos que incluye el uso de uno o más dispositivos de almacenamiento para procesar al menos un segmento de un flujo de datos, produciendo de ese modo un segmento modificado del flujo de datos, y proporcionando una salida de al menos el segmento modificado del flujo de datos, y combinando la salida de los dispositivos de almacenamiento en un flujo de datos combinado. También se describen aparatos y métodos relacionados. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Un servidor vod de tasa controlada
Campo y antecedentes de la invención
La presente invención, en algunas realizaciones de la misma, se refiere a un servidor de video digital y, más particularmente, pero no exclusivamente, a un servidor de video digital para servicios de video bajo demanda.
El video digital a menudo se distribuye como flujos de datos digitales. Un protocolo bien conocido para datos de video es MPEG.
Los flujos de video, como los flujos MPEG, generalmente tienen una tasa de bits variable (VBR). Los flujos de video generalmente se comprimen, y la cantidad de compresión depende de la complejidad de la escena y de la cantidad de cambios entre escenas.
Los protocolos de compresión de video MPEG comprimen el video al reducir la redundancia de datos de píxeles dentro de una imagen y también la redundancia entre imágenes vecinas. La compresión de video MPEG agrupa varias imágenes consecutivas en un Grupo de imágenes (GOP) y define la mayoría de las imágenes, también denominadas fotogramas de video, por su diferencia con una imagen vecina, que también está en el GOP.
Un GOP contiene X cantidad de datos para N fotogramas de video, que deben reproducirse a una tasa de R fotogramas por segundo, lo que tiene una tasa de bits proporcional a X*R/N. Si es necesario reducir la tasa de bits de un flujo de video, las imágenes de un GOP deben cambiarse juntas, ya que las imágenes dependen entre sí para la reconstrucción.
En los casos en que los flujos de video se distribuyen a los clientes, a veces se combinan varios flujos de video en un flujo de transporte, denominado Flujo de Transporte de Programas Múltiples (MPTS). En algunos casos, un flujo de transporte contiene solo un programa. Dichos flujos de transporte se denominan Flujos de Transporte de Programa Único (SPTS).
Un ejemplo de distribución de video, que se está volviendo cada vez más común hoy en día, es la distribución de Video bajo demanda (VOD). Los clientes solicitan recibir videos específicos, y los proveedores de VOD transmiten cada video solicitado por los clientes. Por ejemplo, el proveedor de VOD transmite varias transmisiones MPEG, algunos de los diferentes videos y algunos de los mismos videos comenzaron en diferentes momentos.
Un flujo de transporte a menudo tiene una tasa de bits constante (CBR). La tasa de bits del flujo de transporte es a menudo un límite superior físico de algún dispositivo en la ruta de transmisión. En otros casos, el flujo de transporte tiene una tasa de bits asignada por un proveedor de servicios que realiza la transmisión. Un proveedor de VOD puede comprar una o más unidades de tal o cual ancho de banda, para usarlas para suministrar video bajo demanda.
Se puede combinar flujos VBR en un flujo de transporte CBR. Se debe tener cuidado de que la tasa de bits total de la combinación de flujos VBR nunca exceda el límite CBR, de lo contrario, el flujo de transporte CBR puede bloquearse o ser cortado por el proveedor de servicios que realiza la transmisión. A veces, la combinación combina los flujos teniendo en cuenta cada uno de los flujos VBR constituyentes como si tuviera constantemente una tasa de bits máxima, y siempre que la tasa de bits total de los flujos VBR combinados caiga por debajo de la CBR del flujo de transporte, se añade relleno.
Se puede reducir la tasa de bits de un flujo de video. Es una tarea de cálculo intensivo. Los flujos MPEG, por ejemplo, se comprimen para facilitar la descompresión, teniendo una descompresión relativamente simple desde el punto de vista computacional y una compresión relativamente intensiva desde el punto de vista computacional. Por lo tanto, la reducción de la tasa de bits de los flujos MPEG, que implica la descompresión (fácil) y la compresión posterior (difícil), es computacionalmente intensiva.
WO 99/39501 describe una unidad de control multipunto que incluye una pluralidad de procesadores de segmento. Los procesadores están dispuestos para extraer datos de una pluralidad de flujos de video de entrada y proporcionar datos de segmento a una pluralidad de colas de datos.
US 2004/193648 describe un método de transcodificación de contenido multimedia para generar múltiples copias que tienen un destino y/o tipo de fuente diferente.
Breve descripción de la invención
La invención se define mediante las reivindicaciones adjuntas a la presente. Un aspecto de la descripción se refiere al uso de un sistema de almacenamiento de datos distribuido para el procesamiento distribuido de datos almacenados en los nodos de almacenamiento distribuido. Algunos tipos de procesamiento son intensivos en cómputo, como, a modo de ejemplo no limitativo, el procesamiento de flujo de video. Uno o más ordenadores pueden controlar el procesamiento, instruyendo a los nodos de almacenamiento de datos, que también tienen alguna capacidad de procesamiento, para realizar parte o la totalidad del procesamiento.
Un aspecto de la descripción se refiere al control de una tasa de bits de un flujo de transporte mediante el control de la tasa de bits de los componentes del flujo de transporte. Cambiar la tasa de bits puede ser intensivo en cómputo, y cambiar la tasa de bits de los componentes del flujo de transporte se realiza de manera distribuida, para separar la carga de cómputo de un solo ordenador.
A menos que se defina lo contrario, todos los términos técnicos y/o científicos utilizados en la presente tienen el mismo significado que entiende comúnmente un experto en la técnica a la que pertenece la invención. Aunque se pueden utilizar métodos y materiales similares o equivalentes a los descritos en la presente en la práctica o prueba de realizaciones de la invención, a continuación, se describen ejemplos de métodos y/o materiales. En caso de conflicto, prevalecerá la especificación de la patente, incluidas las definiciones. Además, los materiales, métodos y ejemplos son solo ilustrativos y no pretenden ser necesariamente limitantes.
La implementación del método y/o sistema de realizaciones de la invención puede implicar realizar o completar tareas seleccionadas de forma manual, automática o una combinación de estas. Además, de acuerdo con la instrumentación y el equipo reales de las realizaciones del método y/o sistema de la invención, varias tareas seleccionadas podrían implementarse mediante hardware, software o firmware o mediante una combinación de estos utilizando un sistema operativo.
Por ejemplo, el hardware para realizar tareas seleccionadas de acuerdo con las realizaciones de la invención podría implementarse como un chip o un circuito. Como software, las tareas seleccionadas de acuerdo con las realizaciones de la invención podrían implementarse como una pluralidad de instrucciones de software que son ejecutadas por un ordenador usando cualquier sistema operativo adecuado. En una realización ilustrativa de la invención, una o más tareas de acuerdo con realizaciones ilustrativas del método y/o sistema como se describe en la presente se realizan mediante un procesador de datos, tal como una plataforma informática para ejecutar una pluralidad de instrucciones. Opcionalmente, el procesador de datos incluye una memoria volátil para almacenar instrucciones y/o datos y/o un almacenamiento no volátil, por ejemplo, un disco duro magnético y/o medios extraíbles, para almacenar instrucciones y/o datos. Opcionalmente, también se proporciona una conexión de red. También se proporciona opcionalmente una pantalla y/o un dispositivo de entrada de usuario, como un teclado o un ratón.
Breve descripción de los dibujos
Algunas realizaciones de la invención se describen en la presente, solo a modo de ejemplo, con referencia a los dibujos adjuntos. Con referencia específica ahora a los dibujos en detalle, se enfatiza que los detalles mostrados son a modo de ejemplo y con fines de discusión ilustrativa de las realizaciones de la invención. En este sentido, la descripción tomada con los dibujos hace evidente para los expertos en la técnica cómo se pueden poner en práctica las realizaciones de la invención. En los dibujos:
La Fig. 1 es una ilustración simplificada de un sistema construido y operativo de acuerdo con una realización ejemplar de la invención;
La Fig. 2 es una ilustración de diagrama de flujo simplificado de un método operativo de acuerdo con una realización ejemplar de la invención;
La Fig. 3 es una ilustración más detallada de una realización de ejemplo del sistema de la Fig. 1;
La Fig. 4 es una ilustración gráfica simplificada de tasas de bits variables en un flujo de video; y
La Fig. 5 es una ilustración gráfica simplificada de cómo cortar los picos de tasa de bits reduce una tasa de bits máxima de un flujo de vídeo en una realización de la invención.
Descripción detallada de la invención
La presente invención, en algunas realizaciones de la misma, se refiere a un servidor de video digital y, más particularmente, pero no exclusivamente, a un servidor de video digital para servicios de video bajo demanda.
Antes de explicar al menos una realización de la invención en detalle, debe entenderse que la invención no se limita necesariamente en su aplicación a los detalles de construcción y la disposición de los componentes y/o métodos establecidos en la siguiente descripción y/o ilustrados en los dibujos y/o los ejemplos. La invención es capaz de otras realizaciones o de ponerse en práctica o llevarse a cabo de diversas maneras.
Un aspecto de algunas realizaciones de la invención se refiere al uso de un sistema de almacenamiento de datos distribuido para el procesamiento distribuido de datos almacenados en los nodos de almacenamiento distribuido. Uno o más ordenadores pueden controlar el procesamiento, y los nodos de almacenamiento de datos, que también tienen cierta capacidad de procesamiento, realizan al menos parte del procesamiento.
Algunos tipos de procesamiento son intensivos en cómputo, como, a modo de ejemplo no limitativo, el procesamiento de flujo de video. Los ejemplos no limitantes de procesamiento de secuencias de video intensivo en cómputo incluyen:
1. La configuración de la tasa de los flujos de video, es decir, cambiar la tasa de bits de los flujos de video. A menudo, el cambio es una disminución de la tasa de bits de un flujo de video para convertir el flujo de video en un ancho de banda más estrecho.
2. Transcodificación de flujos de video, de un formato a otro, como, a modo de ejemplo no limitativo, MPEG2 a MPEG4 o viceversa, Alta Definición (HD) a Definición Estándar (SD) o viceversa.
3. Procesamiento de contenido, como, a modo de ejemplo no limitativo, insertar contenido adicional como un banner en un flujo de video, un logotipo en un flujo de video, producir un flujo de video Imagen-En-Imagen (PIP) y agregar una superposición de voz o una superposición de video.
4. Procesamiento de efectos de video, como, a modo de ejemplo no limitativo, fundido de entrada, fundido de salida, mezcla alfa, cambio de brillo y un efecto de borrado.
5. Procesamiento de protección de contenido, como, a modo de ejemplo no limitativo, cifrado, descifrado, inserción de una marca de agua, eliminación de una marca de agua.
6. Buscar dentro de un flujo de video, como, a modo de ejemplo no limitativo, buscar un subtítulo y/u otros atributos de búsqueda.
Algunas realizaciones contempladas incluyen combinar flujos de datos almacenados en nodos de almacenamiento de datos en un flujo de transporte, mientras se procesan al menos algunos de los flujos de datos.
Algunas realizaciones contempladas incluyen recibir un flujo de transporte que contiene flujos de datos, dividir el flujo de transporte en flujos de datos para su almacenamiento en dispositivos de almacenamiento, mientras que algunos de los dispositivos de almacenamiento procesan al menos parte de los flujos de datos y almacenan la parte procesada.
En la presente se proporcionan ejemplos de realizaciones específicas con referencia a flujos de video de tasa de bits variable (VBR), tales como flujos de video MPEG, que se combinan en un flujo de transporte de tasa de bits constante (CBR). Los ejemplos deben entenderse en un contexto más amplio de flujos de datos VBR que se combinan en un flujo de transporte CBR.
Otras realizaciones específicas contempladas incluyen recibir un flujo de transporte que contiene flujos de video, dividir el flujo de transporte en flujos de video para su almacenamiento en dispositivos de almacenamiento e instruir a algunos de los dispositivos de almacenamiento para procesar al menos parte de los flujos de video y almacenar la parte procesada cambiada.
Un aspecto de algunas realizaciones de la invención se refiere a controlar una tasa de bits de un flujo de transporte mediante el control de la tasa de bits de los componentes del flujo de video del flujo de transporte. Cambiar una tasa de bits de un flujo de video puede ser intensivo en cómputo, y cambiar la tasa de bits de los componentes del flujo de video se realiza de manera distribuida, para distribuir la carga de cómputo.
Se observa que a menudo los flujos de video se almacenan en discos de datos distribuidos y se combinan en un flujo de transporte por un streamer, que es un ordenador dedicado. Es probable que los discos de datos y el streamer sean equipos costosos, dedicados a las tareas previstas. Un enfoque alternativo a lo anterior es usar un ordenador de propósito general de menor costo, también denominado servidor, como un streamer, y usar almacenamiento de bajo costo en ordenadores de propósito general de bajo costo como almacenamiento distribuido. El enfoque alternativo produce una ventaja adicional, que es que el almacenamiento distribuido también tiene poder de procesamiento, abriendo la puerta al procesamiento distribuido.
Un aspecto de algunas realizaciones de la invención se refiere a otros tipos de procesamiento de la corriente de transporte, que se realiza de manera distribuida. La invención es adecuada para distribuir el procesamiento de los componentes del flujo.
El término "cambio de tasa de bits" en todas sus formas gramaticales se utiliza a lo largo de la presente memoria descriptiva y reivindica indistintamente con el término "conformación de tasa" y el término "reducción de tasa" y sus formas gramaticales.
El término "flujo de video" en todas sus formas gramaticales se utiliza a lo largo de la presente memoria descriptiva y reivindica indistintamente los términos "flujo", "flujo de datos", "archivo de datos", "archivo", "flujo MPEG" y "flujo de video MPEG" y sus formas gramaticales.
Cabe señalar que el término flujo de video puede referirse a un flujo que está limitado en el tiempo, tal como, a modo de ejemplo no limitativo, una película, un programa de televisión y un comercial de 30 segundos, y el término puede referirse a un flujo de video que no está limitado en el tiempo, tal como un programa de 24 horas al día. El aparato que combina flujos en un flujo de transporte se denomina en la presente un streamer.
Ahora se hace referencia a la Fig. 1, que es una ilustración simplificada de un sistema construido y operativo de acuerdo con una realización ejemplar de la invención.
El sistema comprende un streamer 100, conectado a uno o más grupos de almacenamiento 105.
El streamer 100 continuo está configurado para proporcionar una salida 120 o salidas 120 de uno o más flujos de transporte.
El streamer 100 solicita a los grupos de almacenamiento 105 que le envíen flujos de video (no mostrados) y combina los flujos de video en uno o más flujos de transporte.
Si existe la necesidad de que el procesamiento se realice en uno o más de los flujos de video, el streamer 100 instruye a uno o más de los grupos de almacenamiento 105 para que realice el procesamiento y proporcione un flujo de video procesado y modificado para la combinación. A modo de ejemplo no limitativo, el streamer 100 rastrea la tasa de bits de cada uno de los flujos de transporte. Si una tasa de bits de un flujo de transporte está a punto de exceder un límite predefinido, el streamer 100 asegura, como se describirá adicionalmente a continuación, que la tasa de bits de uno o más de los flujos de video combinados en el flujo de transporte se reduce, asegurando así que la tasa de bits del flujo de transporte no exceda el límite.
El streamer 100 instruye a uno o más de los grupos de almacenamiento 105 para proporcionar una versión de uno o más de los flujos de video que tienen una tasa de bits inferior a la nominal.
Los grupos de almacenamiento 105 proporcionan al streamer 100 una versión de tasa de bits más baja del uno o más flujos de video que el streamer instruyó para que estuviera a una tasa de bits más baja.
Ahora se hace referencia a la Fig. 2, que es una ilustración de diagrama de flujo simplificado de un método operativo de acuerdo con una realización ejemplar de la invención.
La Fig. 2 representa un diagrama de flujo del método utilizado en el sistema de la Fig. 1, que utiliza uno o más dispositivos de almacenamiento (150) para procesar al menos un segmento de uno de los flujos de datos (160). Un método opcional de procesamiento utilizado por una realización de la invención se describe adicionalmente a continuación con referencia a la Fig. 5.
Se proporciona la salida de al menos el flujo de datos cambiado (165), como se describió anteriormente con referencia a la Fig. 1, y se describirá más adelante con referencia a la Fig. 3.
Se utiliza un cable para combinar la salida de los dispositivos de almacenamiento en un flujo de datos combinado (170), como se describió anteriormente con referencia a la Fig. 1, y se describirá más adelante con referencia a la Fig. 3.
Ahora se hace referencia a la Fig. 3, que es una ilustración más detallada de una realización de ejemplo del sistema de la Fig. 1.
El sistema comprende un streamer 100, conectado a uno o más grupos de almacenamiento 105. Cada uno de los grupos de almacenamiento 105 contiene una o más máquinas de almacenamiento 110, cada una de las cuales está conectada a uno o más dispositivos de almacenamiento 115.
El streamer 100 opcionalmente instruye a uno o más de los grupos de almacenamiento 105 para proporcionar una versión de uno o más de los flujos de video que tienen una tasa de bits inferior a la nominal.
Los grupos de almacenamiento 105 proporcionan opcionalmente al streamer 100 una versión de tasa de bits más baja del uno o más flujos de video que el streamer instruyó para que esté a una tasa de bits más baja.
El streamer 100
El streamer 100 combina varios flujos de video en un flujo de transporte. El streamer opcionalmente asegura que una suma de las tasas de bits de los flujos de video no exceda un límite de tasa de bits asociado con el flujo de transporte. La combinación de flujos de video VBR en un flujo de transporte CBR, cuando la tasa de bits total de los flujos de video es menor que el límite de tasa de bits se conoce en la técnica. Por ejemplo, una forma de hacerlo es rastrear la tasa de bits combinada y agregar datos nulos al flujo de transporte según sea necesario para llevar la tasa de bits del flujo de transporte combinado a un valor constante.
Un uso más eficiente de un flujo de transporte CBR es combinar tantos flujos de video como sea posible en el flujo de transporte. Dado que los flujos de video muestran una tasa de bits variable, es posible combinar los flujos de video de modo que su tasa de bits combinada generalmente esté por debajo del límite del flujo de transporte. Cuando se espera que la tasa de bits combinada de los flujos de video exceda el límite, el streamer 100 opcionalmente reemplaza algunos o todos los flujos de video con versiones de tasa de bits más baja de los flujos de video, y evita el exceso.
La tasa de bits promedio de cada archivo de video VBR o segmento de archivo de video que participa en un flujo de transporte se deriva opcionalmente en función de los siguientes parámetros: un tipo de modulación para los MPTS, como, a modo de ejemplo no limitativo, el tipo de Modulación de Amplitud en Cuadratura (QAM) como 64/128/256 Tasa de Símbolos; y el número de flujos que participan en los MPTS.
Ahora se hace referencia a la Fig. 4, que es una ilustración gráfica simplificada de tasas de bits variables en un flujo de video.
La Fig. 4 representa un gráfico 200 de la tasa de bits de un segmento de un flujo de video en función del tiempo. El gráfico es de un segmento de un flujo de video original con una tasa de bits original no modificada. El eje horizontal 205 del gráfico 200 representa el tiempo, en unidades de fotogramas de video. Dado que el video generalmente se muestra a una tasa de fotogramas constante, los fotogramas son directamente proporcionales al tiempo. El eje vertical 210 de la gráfica 200 representa la tasa de bits, en unidades de Mbps.
El segmento contiene varios GOP 215, 216, 217, 218. Cada uno de los GOP 215, 216, 217, 218, comprende imágenes individuales, una barra del gráfico 200 de pie para cada imagen. Cada una de las imágenes tiene una tasa de bits inherente asociada, basada en la cantidad de datos necesarios para representar la imagen, y una tasa de fotogramas del flujo de vídeo. La tasa de bits inherente se representa por la altura relativa de la barra que representa la imagen.
Dado que cada uno de los GOP 215, 216, 217, 218 se comprimen juntos, cada GOP también está asociado con una tasa de bits. La tasa de bits de un GOP se basa en la cantidad de datos, después de la compresión, que contiene el GOP, una tasa de fotogramas del flujo de video y el número de imágenes dentro del GOP.
Las tasas de bits del GOP 220, 221, 222, 223 se representan mediante líneas de puntos correspondientes a las tasas de bits de los GOP 215, 216, 217, 218, respectivamente. Las tasas de bits GOP 220, 221, 222, 223 no son iguales, dependiendo del contenido de las imágenes del flujo de video.
Una tasa de bits máxima del segmento en la ilustración de la Fig. 4 es la tasa de bits del GOP 221, asociada con el GOP 2216.
Ahora se hace referencia a la Fig. 5, que es una ilustración gráfica simplificada de cómo cortar los picos de tasa de bits reduce una tasa de bits máxima de un flujo de vídeo en una realización de la invención.
La Fig. 5 representa el segmento de la Fig. 4, en el que los picos de tasa de bits de imágenes individuales se han modificado "cortando", es decir, reduciendo, solo los picos de tasa de bits. Los valores de las tasas de bits de imagen no modificadas y las tasas de bits de GOP no modificadas 220, 221, 222, 223 todavía se representan en la Fig. 5, con fines de comparación y para ayudar a la comprensión.
Una imagen en GOP 2216, que tenía una tasa de bits inherente más alta de las imágenes de GOP 2, se redujo en tasa de bits en una primera cantidad 225. Una tasa de bits del GOP 231 del GOP 2216 es menor que la tasa de bits del GOP 221 del GOP 2216 antes de la modificación de la tasa de bits.
Una imagen en GOP 3217, que tenía una tasa de bits inherente más alta de las imágenes de GOP 3217, se redujo en tasa de bits en una segunda cantidad 226, diferente de la primera cantidad 225. Una tasa de bits del GOP 232 del GOP 3217 es menor que la tasa de bits del GOP 222 del GOP 3217 antes de la modificación de la tasa de bits.
Dos imágenes en GOP 4218, que tenían las dos tasas de bits inherentes más altas de las imágenes de GOP 4 218, se redujeron en tasa de bits en una tercera cantidad 227 y una cuarta cantidad 228. Una tasa de bits del GOP 233 del GOP 4218 es menor que la tasa de bits del GOP 223 del GOP 4218 antes de la modificación de la tasa de bits.
Los archivos que en conjunto forman un flujo de transporte cambian con el tiempo. Por ejemplo, cuando el streamer es un servidor VOD, las sesiones son asignadas por los usuarios finales, y se requiere que el streamer 100 lea archivos del grupo de almacenamiento 105. El streamer instruye a cada unidad de procesamiento 110 en el grupo de almacenamiento 105 para reducir la tasa de ciertos GOP de acuerdo con un algoritmo de multiplexación estadística.
Dado que la conformación de la tasa puede ser computacionalmente intensiva, el streamer 100 hace que la conformación de tasa de los flujos de video se realice mediante la potencia de cálculo disponible en los grupos de almacenamiento 105 (Fig. 1). Mientras que los grupos de almacenamiento 105 típicamente contienen una gran cantidad de almacenamiento, que se necesita para almacenar los flujos de video, los grupos de almacenamiento son, sin embargo, capaces de cómputo. Tener varios grupos de almacenamiento 105 permite utilizar la potencia de cálculo integrada en un sistema de almacenamiento de video distribuido para dar forma también a la tasa del video.
Cabe señalar que, de manera similar al ejemplo de la Fig. 5, la conformación de tasa no se realiza en un archivo completo, sino en un segmento de archivo. El tamaño del segmento de archivo varía desde una parte de un archivo, hasta un GOP
Toma de decisiones de Multiplexación Estadística (Statmux)
Al tener un MPTS o un grupo de flujos SPTS dirigidos a una salida específica con una tasa de bits máxima permitida especificada, el streamer 100 (Fig. 1) comienza a leer uno o más flujos de uno de los grupos de almacenamiento 105.
Junto con los flujos que se leen, el streamer 100 lee los metadatos asociados con cada flujo. A continuación, se proporcionan más detalles sobre los metadatos, con referencia a "Ingerir un archivo de video".
Con base, al menos en parte, en los metadatos, el streamer 100 puede predecir cuál será la tasa de bits agregada de todos los flujos en las MPT, o grupo de flujos SPTS que entran en una salida específica. Los metadatos también contienen información sobre la complejidad de cada flujo y permiten que el streamer 100 prediga un nivel de deterioro en la calidad del flujo de video debido a la reducción de la tasa.
Al tener en cuenta los parámetros de metadatos, el streamer compila un conjunto de comandos para los grupos de almacenamiento 105, solicitando los grupos de almacenamiento 105 para segmentos de datos relevantes con una tasa de bits específica por GOP.
En algunas realizaciones de la invención, el streamer 100 es un componente que combina los flujos en el flujo de datos, y el componente que considera los metadatos y emite comandos a los grupos de almacenamiento 105 es un servidor de gestión de flujos (no se muestra). El streamer 100 y el servidor de gestión de flujo pueden o no estar alojados por separado y/o ubicados por separado.
SPTS
Para los flujos de transporte heredados que no admiten MPTS como su entrada, el método de multiplexación estadística descrito anteriormente puede distribuirse entre varios SPTS y varios streamers 100. Cada streamer 100 gestiona uno o más flujos de transporte e instruye a las máquinas de almacenamiento relevantes 110, a través de uno o más grupos de almacenamiento 105, para reducir la tasa de los flujos de video cuando sea necesario.
Cada flujo de programa VBR se rellena con relleno nulo en un CBR SPTS a la tasa de bits máxima permitida y se envía a una salida adecuada.
Un método de statmuxing distribuido gestiona opcionalmente un ancho de banda agregado de todos los flujos que entran en un flujo de transporte de salida específico, incluso cuando algunos flujos de vídeo se originan en diferentes máquinas streamers.
Juego de trucos
Durante la reproducción de una transmisión de video, un usuario final puede optar por utilizar los modos de reproducción trucada, como Avance rápido (FF), Regresar y Pausa. Esta sección describe el rendimiento de la invención en caso de que al menos uno de los flujos de video se reproduzca utilizando un modo de truco.
Opcionalmente, en los modos FF y regresar, solo se solicita y recibe un primer fotograma I de un GOP por el streamer 100, y no todas las imágenes del GOP. La gestión de la tasa de bits se realiza opcionalmente por el streamer 100, agregando un número adecuado de fotogramas P a los fotogramas I y formando GOP recién generados.
Si la tasa de bits de un GOP que comprende solo tramas I sigue siendo demasiado alta, el streamer 100 solicita opcionalmente la reducción de la tasa de bits de las máquinas de almacenamiento, con el fin de reducir la tasa de bits del fotograma I. Alternativamente, el streamer 100 realiza una reducción de tasa para lis fotogramas I.
En el modo de pausa, el streamer 100 deja de transmitir el flujo de video, por lo que no es necesario utilizar la reducción de tasa para un flujo de video en pausa.
El streamer 100 tiene en cuenta el modo de pausa y, por ejemplo, en caso de un flujo de video pausado, otros flujos en el flujo de transporte pueden usar más tasa de bits.
Modelado de tasa
Opcionalmente, la conformación de la tasa se realiza en tiempo real, o aproximadamente en tiempo real, es decir, justo antes de transmitir el flujo de transporte. Alternativamente, la configuración de la tasa se realiza antes del tiempo real, y los flujos de video de tasa de bits cambiados se guardan hasta que se necesiten.
Ya sea que la conformación de tasa se realice en tiempo real o con anticipación, cada una de las máquinas de almacenamiento 110 que realiza la conformación de tasa recibe opcionalmente instrucciones para la conformación de tasa del streamer 100, que incluyen un parámetro de tasa de bits que especifica una tasa de bits máxima, o en qué medida reducir la tasa de bits de un segmento de archivo. Alternativamente, cada máquina de almacenamiento 110 está configurada para uno o más niveles configurables de conformación de tasa.
Opcionalmente, la reducción de la tasa reduce la calidad de las imágenes en los fotogramas de cada GOP, de modo que no se excede una tasa de bits máxima. Alternativamente, la reducción de la tasa reduce la tasa de bits en un porcentaje de la tasa de bits, o restando una tasa de bits de una tasa de bits no modificada.
La reducción de la tasa de bits se realiza opcionalmente durante un período de tiempo, correspondiente a un determinado segmento del flujo de video, y la cantidad de reducción puede cambiar después del período de tiempo. En algunas realizaciones de la invención, cada grupo de almacenamiento 105 maneja una reasignación interna de un presupuesto de tasa de bits dentro de cada GOP, por ejemplo, asignando más o menos tasa de bits a diferentes fotogramas dentro de un GOP en función de la complejidad del fotograma, opcionalmente proporcionando algunas áreas de los fotogramas con un tratamiento específico.
Conformación de tasas en tiempo real aproximado
Cuando la conformación de la tasa se realiza en tiempo real o aproximadamente en tiempo real, el streamer combina varios flujos de video en el flujo de transporte basado, al menos en parte, en una tasa de bits total de los flujos de video y opcionalmente en un límite de tasa de bits para el flujo de transporte.
Cabe señalar que los flujos de transporte a veces llevan algo más que flujos de video. Los datos transportados por el flujo de transporte más allá de los flujos de video se consideran un flujo de datos, y se considera que la descripción de los flujos de datos se incluye en los ejemplos de flujo de video.
Opcionalmente, el streamer 100 estima la tasa de bits del flujo de transporte y, opcionalmente, estima la tasa de bits de cada uno de los flujos de video. Opcionalmente, el streamer realiza la estimación midiendo realmente la tasa de bits del flujo de transporte y, opcionalmente, midiendo la tasa de bits de cada uno de los flujos de video. El streamer 100 instruye a las máquinas de almacenamiento 110 qué flujos de video calificar y cómo calificar la forma de los flujos de video.
En algunas realizaciones de la invención, el streamer 100 instruye a las máquinas de almacenamiento 110 qué flujo de video y a qué tasa de bits proporcionar el streamer. En otras realizaciones de la invención, el streamer (100) instruye a las máquinas de almacenamiento (110) qué flujo de video proporcionar al streamer (100), y en qué cantidad, o en qué porcentaje, reducir la tasa de bits del flujo de video.
Opcionalmente, las máquinas de almacenamiento 110 que dan forma a un flujo de video, también almacenan en caché el flujo de video con forma de tasa, de modo que el flujo de video necesita ser emitido nuevamente como un flujo de video con forma de tasa, el flujo de video con forma de tasa almacenado en caché se recupera de la caché.
Conformación de tasas antes del tiempo real
Cuando la conformación de la tasa se realiza antes del tiempo real, el streamer 100 opcionalmente instruye a los grupos de almacenamiento 105 qué flujo de video se debe conformar por tasa, a qué tasa de bits se debe conformar el flujo de video y dónde almacenar el flujo de video conformado por tasa.
En otras realizaciones de la invención, el streamer (100) instruye a los grupos de almacenamiento (105) qué flujo de video a la conformación de tasa, en qué cantidad, o en qué porcentaje, reducir la tasa de bits del flujo de video, y dónde almacenar el flujo de video en forma de tasa.
Cuando la conformación de la tasa se realiza antes que, en tiempo real, los metadatos se producen opcionalmente, asociando algunos o todos los flujos de video guardados con una tasa de bits estimada o medida. Opcionalmente, los metadatos incluyen la tasa de bits de segmentos de los flujos de video, en lugar de una tasa de bits para un flujo de video completo.
Opcionalmente, los metadatos incluyen la tasa de bits para cada GOP individual.
Opcionalmente, los metadatos para un flujo de video o para un segmento de un flujo de video incluyen una tasa de bits máxima, así como una tasa de bits promedio.
Opcionalmente, un flujo de video se almacena en más de una versión, con diferentes versiones que tienen forma de tasa y que comprenden diferentes tasas de bits. Opcionalmente, solo algunos segmentos del flujo de video tienen forma de tasa, siendo los segmentos con forma de tasa preferentemente los segmentos con mayor tasa de bits.
Opcionalmente, los segmentos del flujo de video que tienen forma de tasa son tan pequeños como un GOP.
Dado que en el ejemplo descrito anteriormente la conformación de tasa se realiza antes del tiempo real, es posible que no haya certeza de que realmente se usarán versiones o segmentos con forma de tasa de un flujo de video. En algunas realizaciones de la invención, decidir qué flujos de video o segmentos de estos tendrán forma de tasa se realiza de acuerdo con las estadísticas proyectadas de la demanda de video. En algunas realizaciones de la invención, la decisión se realiza de acuerdo con la demanda de video real.
Se contemplan varios esquemas para ahorrar computación, tales como: conformación de tasa solo de flujos de video que son los más demandados; conformación de tasa solo de segmentos de alta tasa de flujos de video; conformación de tasa de la mayoría de los flujos de video en demanda antes del tiempo real, y conformación de tasa de otros flujos de video en tiempo real o tiempo real aproximado; y, de acuerdo con la invención reivindicada, conformación de tasa de un flujo de video en tiempo real cuando se combina por primera vez en un flujo de transporte, y guardar el flujo de video en forma de tasa o segmentos en forma de tasa del flujo de video, y sus metadatos asociados, para su posterior reutilización.
Se contemplan varios esquemas para ahorrar espacio de almacenamiento, tales como: ahorrar versiones en forma de tasa solo de flujos de video que son los más demandados; ahorrar versiones en forma de tasa solo de segmentos de alta tasa de bits de flujos de video; y ahorrar versiones en forma de tasa de un flujo de video solo después de una primera combinación en un flujo de transporte.
Almacenamiento
Una realización ejemplar de la invención incluye un grupo de almacenamiento 105, que comprende varias máquinas de almacenamiento, también denominadas servidores de datos. Cada máquina de almacenamiento tiene uno o más dispositivos de almacenamiento y cierta potencia de procesamiento.
Opcionalmente, el grupo de almacenamiento 105 protege los datos mediante el almacenamiento de datos redundantes. La protección se realiza utilizando esquemas como RAID. Cabe señalar que la protección se configura por segmento de archivo. El segmento de archivo corresponde a un flujo de video, segmento de un flujo de video e incluso un GOP de un flujo de video.
Reducción de tasas con protección de datos
En caso de que haya pérdida de datos en un primer grupo de los grupos de almacenamiento 105, el streamer 100 solicita segmentos de archivo de tasa reducida de un segundo grupo de los grupos de almacenamiento 105. El segundo grupo de almacenamiento 105 reúne los segmentos de archivos requeridos del segundo grupo de almacenamiento 105. El segundo grupo de almacenamiento 105 realiza una reducción de tasa en los segmentos de archivos recuperados.
Copia alternativa
Opcionalmente, cada archivo se almacena en una versión predefinida de tasa reducida en el grupo de almacenamiento. La versión es opcionalmente una versión CBR o una VBR limitada con una tasa de bits máxima que no es mayor que la tasa de bits promedio del flujo original. La versión predefinida de tasa reducida se denomina copia alternativa.
En caso de pérdida de datos de una versión original, o si no hay potencia de procesamiento disponible para reducir la tasa de la versión original, se utiliza opcionalmente la copia alternativa. La copia de reserva también se usa opcionalmente si la tasa de bits de la copia de reserva cae dentro de los límites de la tasa de bits requerida por el streamer 100.
Almacenamiento en caché de los GOP procesados
Cada máquina de almacenamiento 110 tiene opcionalmente una caché que contiene GOP ya de tasa reducida. La caché se basa opcionalmente en un método LRU. Algunas realizaciones de la invención utilizan una versión en caché de un GOP de tasa reducida en lugar de utilizar la reducción de tasa. La preferencia por usar la caché y el tamaño de la caché se determinan en función, al menos en parte, de la potencia de procesamiento disponible de la máquina de almacenamiento 110.
A modo de ejemplo no limitativo, cuando el streamer 100 solicita un determinado GOP a una tasa de bits de 2.5 Mbps, y si hay una versión en caché del mismo GOP reducida a 2.4 Mbps, el sistema opta opcionalmente por utilizar la versión en caché de 2.4 Mbps. Esto libera a la máquina de almacenamiento 110 para calificar la forma de otros GOP que aún no están almacenados en caché.
La máquina de almacenamiento 110 tiene opcionalmente una cantidad dedicada de almacenamiento y E/S de almacenamiento para fines de almacenamiento en caché.
Reducción de tasa y "flash-crowd"
Un servidor de datos puede obtener opcionalmente múltiples solicitudes para configurar la tasa de un segmento de archivo, de múltiples streamers, u opcionalmente múltiples solicitudes de un solo streamer, pero destinadas a combinarse en un MPTS que el único streamer procesa.
Tal escenario puede ser común cuando muchos usuarios desean ver un archivo específico sustancialmente en el mismo momento, por ejemplo, un evento popular recién emitido. El servidor de datos que almacena el segmento de video solicitado recibe muchas solicitudes para el mismo segmento, más de las que puede procesar. El nodo de datos llega a un punto donde no puede atender todas las solicitudes y mantener una respuesta aproximadamente en tiempo real.
En algunas realizaciones de la invención, el servidor de datos agrega solicitudes y elige procesar solo varios comandos de conformación de tasa, de modo que no exceda su potencia de procesamiento y sus capacidades de lectura desde el almacenamiento.
En caso de que no se haya seleccionado una solicitud de reducción de tasa específica para el procesamiento en tiempo real, el servidor de datos proporciona opcionalmente una copia de una versión en forma de tasa más cercana, o una versión en forma de tasa más cercana con menos de la tasa de bits requerida, disponible del segmento en forma de tasa solicitado.
Ingerir un archivo de video
Un archivo de video ingerido generalmente se codifica en un formato VBR. El streamer 100 analiza el archivo de video y divide el archivo de video en segmentos de archivo.
En algunas realizaciones de la invención, el streamer 100 produce y almacena opcionalmente, opcionalmente en uno o más grupos de almacenamiento 105, metadatos sobre el comportamiento y la complejidad del flujo. Los metadatos se utilizan opcionalmente más adelante para la toma de decisiones de multiplexación estadística. Durante el proceso de ingestión, y opcionalmente durante la conformación de la tasa en tiempo real, se generan los metadatos para el archivo de video y se guardan en un archivo separado. La información guardada en el archivo de metadatos contiene información sobre la tasa de bits del flujo, la estructura del fotograma y la complejidad.Segmentos de datos
Los flujos de video se dividen a través de los dispositivos de almacenamiento 115 en las máquinas de almacenamiento 110 y también a través de las máquinas de almacenamiento 110 en un grupo de almacenamiento 105.
Cada archivo se corta en segmentos que se distribuyen entre los dispositivos de almacenamiento. Cada segmento contiene uno o más GOP pertenecientes al archivo.
Cabe señalar que cada dispositivo de almacenamiento puede tener un segmento de cada archivo, y viceversa, los segmentos de cada archivo pueden aparecer en cada dispositivo de almacenamiento.
La división y distribución de los archivos entre las máquinas de almacenamiento, junto con los requisitos de conformación de tasa realizados de las máquinas de almacenamiento, provocan una distribución de la carga de cálculo entre las máquinas de almacenamiento.
El número de GOP por segmento se determina para optimizar el rendimiento de un sistema de archivos en grupo. El número de GOP por segmento se determina basándose, al menos en parte, en parámetros de almacenamiento tales como tamaños de bloque en el dispositivo de almacenamiento, en parámetros de cálculo tales como la tasa de cálculo en la máquina de almacenamiento, en el número de máquinas de cálculo y en una tasa de bits del segmento. Por ejemplo, cuando se determina que el tamaño de un segmento es de 1 MB, el segmento puede contener 10 GOP de un flujo de video de definición estándar (SD) o 5 GOP de un flujo de alta definición (HD).
Se observa que cuando un tamaño óptimo de un segmento no está completamente lleno por GOP, opcionalmente se aplica relleno.
En algunas realizaciones de la invención, un segmento es más pequeño que un MPEG GOP. Un segmento puede ser, a modo de ejemplo no limitativo, un fotograma; una serie de fotogramas, sin relación con el GOP MPEG subyacente; e incluso parte de un fotograma, incluso tan pequeño como un corte de un macrobloque MPEG.
Cabe señalar que el almacenamiento de un MPEG GOP en conjunto puede ahorrar tiempo en el ensamblaje de datos para la conformación de la tasa.
Se observa que una vez que un segmento ha sido conformado por tasa, el segmento conformado por tasa puede almacenarse opcionalmente en un servidor de datos, y puede almacenarse opcionalmente en más de un servidor de datos.
En algunas realizaciones de la invención, especialmente en lo que respecta al flujo MPEG2, un segmento se elige mínimamente para que sea uno o más GOP, es decir, todos los fotogramas de un fotograma I a un siguiente fotograma I, que encajan y están alineados con un bloque de datos de 1 MB.
Protección de datos
Cada segmento de datos escritos en el almacenamiento está opcionalmente protegido por un esquema de protección de datos, a modo de ejemplo no limitativo, un esquema de protección de datos que utiliza redundancia de datos, como RAID. El nivel de protección RAID es cualquier nivel de protección RAID, como los niveles RAID 0, 1, 2, 3, 4, 5, etc., y opcionalmente puede ser diferente por archivo. Por lo tanto, cada segmento está protegido por datos redundantes, que se escriben en el grupo de almacenamiento, en diferentes dispositivos de almacenamiento, en diferentes máquinas de almacenamiento.
En algunas realizaciones de la invención, la gestión de la protección es proporcionada por el grupo de almacenamiento. En algunas realizaciones de la invención, la gestión de la protección es proporcionada por cada una de las máquinas de almacenamiento. En algunas realizaciones de la invención, la gestión de la protección es proporcionada por el streamer.
Ahora se proporciona un ejemplo no limitativo de la funcionalidad de protección. Un streamer intenta obtener un segmento de archivo de un primer dispositivo de almacenamiento en una primera máquina de almacenamiento. Debido a un fallo del primer dispositivo de almacenamiento o de la primera máquina de almacenamiento, el segmento de datos no está disponible.
Opción de recuperación 1: cuando el streamer administra el esquema de protección, el streamer obtiene datos redundantes escritos por el algoritmo de protección en un segundo dispositivo de almacenamiento y reconstruye los datos no disponibles. El streamer no necesariamente califica la forma de los datos reconstruidos. Si la conformación de la tasa es necesaria, el streamer opcionalmente instruye a los grupos de almacenamiento que proporcionan otros flujos para proporcionar los otros flujos a una tasa de bits más baja.
Opción de recuperación 2: cuando cada una de las máquinas de almacenamiento gestiona el esquema de protección, el streamer solicita una segunda máquina de almacenamiento para obtener los datos no disponibles. La segunda máquina de almacenamiento recupera los datos redundantes y reconstruye los datos previamente no disponibles utilizando el esquema de protección. Luego, la máquina de almacenamiento realiza la conformación de la tasa en el segmento reconstruido y entrega los datos conformados y recuperados al streamer.
Opción de recuperación 3: cuando el streamer gestiona el esquema de protección, el streamer obtiene datos redundantes en forma de tasa del grupo de almacenamiento y reconstruye los datos no disponibles de acuerdo con el esquema de protección.
Funciones adicionales
La máquina de almacenamiento 110 opcionalmente superpone texto, video y/o sonido sobre segmentos de archivo, de acuerdo con las instrucciones recibidas del streamer 100. La superposición se realiza opcionalmente en el dominio comprimido.
Cada máquina de almacenamiento 110 puede convertir opcionalmente segmentos de video de un formato de video a otro, utilizando un algoritmo de transcodificación. La transcodificación es opcionalmente por segmento de datos, de modo que cada máquina de almacenamiento 110 solo se requiere para transcodificar segmentos que se almacenan en la misma.
Se espera que durante la vida de una patente que vence a partir de esta solicitud se desarrollen muchos métodos relevantes de conformación de tasas y se pretende que el alcance del término conformación de tasas incluya todas estas nuevas tecnologíasa priori.
Los términos "comprende", "que comprende", "incluye", "que incluye", "que tiene" y sus conjugados, significan "que incluye, de modo no limitativo".
El término "que consiste en" significa "que incluye y se limita a".
El término "que consiste esencialmente en" significa que la composición, método o estructura puede incluir ingredientes, pasos y/o partes adicionales, pero solo si los ingredientes, pasos y/o partes adicionales no alteran materialmente las características básicas y novedosas de la composición, método o estructura reivindicada.
Como se usa en la presente, la forma singular “un”, “uno/una” y “el”, “la” incluyen referentes en plural a menos que el contexto claramente dicte lo contrario. Por ejemplo, el término "un flujo de video" o "al menos un flujo de video" puede incluir una pluralidad de flujos de video, que incluyen combinaciones de estos.
Se aprecia que ciertas características de la invención, que, para mayor claridad, se describen en el contexto de realizaciones separadas, también se pueden proporcionar en combinación en una sola realización. Por el contrario, varias características de la invención, que, por brevedad, se describen en el contexto de una sola realización, también se pueden proporcionar por separado o en cualquier subcombinación adecuada o como sea adecuado en cualquier otra realización descrita de la invención. Determinadas características descritas en el contexto de diversas realizaciones no deben considerarse características esenciales de esas realizaciones, a menos que la realización sea inoperante sin esos elementos.
Aunque la invención se ha descrito junto con realizaciones específicas de la misma, es evidente que muchas alternativas, modificaciones y variaciones serán evidentes para los expertos en la técnica. Por consiguiente, se pretende abarcar todas estas alternativas, modificaciones y variaciones que se encuentran dentro del alcance de las reivindicaciones adjuntas.
Todas las publicaciones, patentes y solicitudes de patente mencionadas en esta memoria descriptiva se incorporan a la presente en su totalidad mediante referencia en la memoria descriptiva, en la misma medida que si cada publicación, patente o solicitud de patente individual se indicara específica e individualmente para incorporarse a la presente mediante referencia. Además, la cita o identificación de cualquier referencia en esta solicitud no se interpretará como una admisión de que dicha referencia está disponible como técnica anterior a la presente invención. En la medida en que se utilicen encabezados de sección, no deben interpretarse como necesariamente limitantes.

Claims (11)

REIVINDICACIONES
1. Un sistema de procesamiento de flujo distribuido que comprende:
una pluralidad de máquinas de almacenamiento (110), cada una de la pluralidad de máquinas de almacenamiento tiene uno o más dispositivos de almacenamiento (115) que almacenan segmentos de un flujo de video, en donde el flujo de video se corta en los segmentos que se distribuyen a través de los dispositivos de almacenamiento (115), cada una de la pluralidad de máquinas de almacenamiento está configurada para:
almacenar al menos un segmento de un archivo del flujo de video, en donde el al menos un segmento es una porción del archivo del flujo de video;
procesar el al menos un segmento de un archivo del flujo de video en tiempo real, produciendo así un segmento cambiado del flujo de video, en donde el al menos un segmento del archivo del flujo de video se procesa mediante la conformación de la tasa de flujo de video; y
proporcionar la salida de al menos dicho segmento cambiado del flujo de video, y
un servidor configurado para instruir a los dispositivos de almacenamiento para que realicen el procesamiento del flujo de video, acepte la salida del al menos dicho segmento cambiado del flujo de video de cada uno de los dispositivos de almacenamiento y combinen la salida del al menos un segmento cambiado recibido de cada uno de los dispositivos de almacenamiento en un flujo de transporte de video,
en donde el servidor está configurado además para producir metadatos para el flujo de video, en donde los metadatos comprenden una tasa de bits para cada uno del al menos un segmento cambiado en lugar de una tasa de bits para todo el flujo de video, y en donde los segmentos cambiados y los metadatos se almacenan para su posterior reutilización.
2. El sistema de cualquiera de las reivindicaciones anteriores en el que el al menos un dispositivo de almacenamiento está configurado además para almacenar al menos el segmento cambiado del flujo de video.
3. El sistema de cualquiera de las reivindicaciones anteriores en el que el servidor está configurado para proporcionar instrucciones de control de tasa de bits a la pluralidad de dispositivos de almacenamiento, y la pluralidad de dispositivos de almacenamiento están configurados para aceptar las instrucciones de control de tasa de bits del servidor y para cambiar la tasa de bits de dicho segmento de un flujo de vídeo de acuerdo con las instrucciones.
4. El sistema de cualquiera de las reivindicaciones anteriores, en el que los dispositivos de almacenamiento utilizan un esquema de protección de datos para almacenar dicho segmento modificado del flujo de vídeo.
5. El sistema de cualquiera de las reivindicaciones anteriores, en donde el segmento contiene uno o más GOP que pertenecen al archivo del flujo de video.
6. Un método para combinar una pluralidad de flujos de datos que comprende: usar cada una de una pluralidad de máquinas de almacenamiento (110), cada una de la pluralidad de máquinas de almacenamiento que tiene uno o más dispositivos de almacenamiento (115) que almacenan segmentos de un flujo de video, en donde el flujo de video se corta en los segmentos que se distribuyen a través de los dispositivos de almacenamiento (115), para:
almacenar al menos un segmento de un archivo del flujo de video, en donde el al menos un segmento es una porción del archivo del flujo de video;
procesar el al menos un segmento de un archivo del flujo de video en tiempo real, produciendo así un segmento cambiado del flujo de video, en donde el al menos un segmento se procesa mediante la conformación de la tasa del flujo de video; y
proporcionar la salida de al menos dicho segmento cambiado del flujo de video, y
usar un servidor para instruir a los dispositivos de almacenamiento para realizar el procesamiento del flujo de video, aceptar la salida del al menos dicho segmento cambiado del flujo de video de cada uno de los dispositivos de almacenamiento y combinar la salida del al menos un segmento cambiado recibido de cada uno de los dispositivos de almacenamiento en un flujo de datos combinado, y además producir metadatos para el flujo de video, en donde los metadatos comprenden una tasa de bits para cada uno del al menos un segmento cambiado en lugar de una tasa de bits para todo el flujo de video y en donde los segmentos cambiados y los metadatos se almacenan para su posterior reutilización.
7. El método de la reivindicación 6, en el que el procesamiento comprende cambiar la tasa de bits.
8. El método de cualquiera de las reivindicaciones 6 a 7, que comprende además almacenar al menos el segmento cambiado del flujo de video en el dispositivo de almacenamiento.
9. El método de cualquiera de las reivindicaciones 6 a 8, que comprende, además, en la pluralidad de dispositivos de almacenamiento, aceptar instrucciones de control de tasa de bits del servidor y cambiar la tasa de bits de dicho segmento de un flujo de video de acuerdo con las instrucciones.
10. El método de cualquiera de las reivindicaciones 6 a 9, que comprende además usar un esquema de protección de datos para almacenar dicho segmento cambiado del flujo de datos.
11. El método de cualquiera de las reivindicaciones 6 a 10, en donde el segmento contiene uno o más GOP que pertenecen al archivo del flujo de video.
ES20180944T 2008-03-18 2008-03-18 Un servidor vod de tasa controlada Active ES2985657T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/IL2008/000377 WO2009116024A2 (en) 2008-03-18 2008-03-18 A controlled rate vod server
EP20180944.9A EP3748514B1 (en) 2008-03-18 2008-03-18 A controlled rate vod server

Publications (1)

Publication Number Publication Date
ES2985657T3 true ES2985657T3 (es) 2024-11-06

Family

ID=41091305

Family Applications (2)

Application Number Title Priority Date Filing Date
ES08720002T Active ES2816639T3 (es) 2008-03-18 2008-03-18 Un servidor VOD de velocidad controlada
ES20180944T Active ES2985657T3 (es) 2008-03-18 2008-03-18 Un servidor vod de tasa controlada

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES08720002T Active ES2816639T3 (es) 2008-03-18 2008-03-18 Un servidor VOD de velocidad controlada

Country Status (7)

Country Link
US (2) US8732786B2 (es)
EP (2) EP2269143B1 (es)
CN (1) CN102047236A (es)
CA (1) CA2717882A1 (es)
ES (2) ES2816639T3 (es)
PT (1) PT3748514T (es)
WO (1) WO2009116024A2 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2816639T3 (es) 2008-03-18 2021-04-05 Mk Systems Usa Inc Un servidor VOD de velocidad controlada
CN104744310A (zh) 2009-07-09 2015-07-01 玛瑞纳生物技术有限公司 包含亚氨基脂质的两性脂质体
US10003851B2 (en) * 2009-11-24 2018-06-19 Imagine Communications Corp. Managed multiplexing of video in an adaptive bit rate environment
US8683514B2 (en) * 2010-06-22 2014-03-25 Verizon Patent And Licensing Inc. Enhanced media content transport stream for media content delivery systems and methods
JP5625997B2 (ja) * 2011-02-23 2014-11-19 富士通株式会社 通信システムおよび伝送装置
US8661479B2 (en) * 2011-09-19 2014-02-25 International Business Machines Corporation Caching large objects with multiple, unknown, and varying anchor points at an intermediary proxy device
HK1157132A2 (en) * 2012-01-06 2012-06-15 先科研有限公司 A method and system of playing the streaming content and smart buffering management on network television
WO2013173721A1 (en) 2012-05-18 2013-11-21 Home Box Office, Inc. Audio-visual content delivery
KR101991214B1 (ko) 2013-03-06 2019-06-19 인터디지탈 패튼 홀딩스, 인크 비디오 스트리밍을 위한 전력 인식 적응
US9438652B2 (en) 2013-04-15 2016-09-06 Opentv, Inc. Tiered content streaming
US20150312601A1 (en) * 2014-04-28 2015-10-29 Magnum Semiconductor, Inc. Methods and apparatuses including a statistical multiplexer with multiple channel rate control
US9654804B2 (en) 2014-09-03 2017-05-16 Vigor Systems Inc. Replacing video frames in a transport stream
DE102014220423A1 (de) * 2014-10-08 2016-04-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Erzeugen eines Videoausgangsdatenstroms, Videoquelle, Videosystem und Verfahren zum Erzeugen eines Videoausgangsdatenstroms bzw. eines Videoquellendatenstroms
JP6642016B2 (ja) * 2016-01-12 2020-02-05 船井電機株式会社 配信装置および情報機器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732217A (en) * 1995-12-01 1998-03-24 Matsushita Electric Industrial Co., Ltd. Video-on-demand system capable of performing a high-speed playback at a correct speed
US5978843A (en) * 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
US20030040962A1 (en) * 1997-06-12 2003-02-27 Lewis William H. System and data management and on-demand rental and purchase of digital data products
US6285661B1 (en) 1998-01-28 2001-09-04 Picturetel Corporation Low delay real time digital video mixing for multipoint video conferencing
US6477706B1 (en) * 1998-05-01 2002-11-05 Cogent Technology, Inc. Cable television system using transcoding method
EP0971542A3 (en) 1998-07-10 2001-08-01 Tektronix, Inc. Readjustment of bit rates when switching between compressed video streams
KR20010010109A (ko) * 1999-07-16 2001-02-05 구자홍 이동통신 단말기를 이용한 방송 서비스 시스템
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7242324B2 (en) * 2000-12-22 2007-07-10 Sony Corporation Distributed on-demand media transcoding system and method
US6947996B2 (en) 2001-01-29 2005-09-20 Seabridge, Ltd. Method and system for traffic control
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US20060088052A1 (en) 2004-10-27 2006-04-27 Sauser Martin H Jr Decentralized method for generating an MPEG-2 multiprogram transport stream
GB0428160D0 (en) 2004-12-22 2005-01-26 British Telecomm Variable bit rate processing
US20060227813A1 (en) * 2005-04-11 2006-10-12 Mavrogeanes Richard A Method and system for synchronized video recording/delivery
US8077707B2 (en) * 2005-11-18 2011-12-13 Sri International Systems and methods for digital stream denting
US20070200949A1 (en) * 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
US20080235200A1 (en) * 2007-03-21 2008-09-25 Ripcode, Inc. System and Method for Identifying Content
US8543667B2 (en) * 2008-01-14 2013-09-24 Akamai Technologies, Inc. Policy-based content insertion
ES2816639T3 (es) 2008-03-18 2021-04-05 Mk Systems Usa Inc Un servidor VOD de velocidad controlada

Also Published As

Publication number Publication date
EP2269143B1 (en) 2020-06-24
PT3748514T (pt) 2024-07-18
ES2816639T3 (es) 2021-04-05
EP3748514B1 (en) 2024-05-01
EP2269143A2 (en) 2011-01-05
CA2717882A1 (en) 2009-09-24
CN102047236A (zh) 2011-05-04
US8732786B2 (en) 2014-05-20
EP3748514A1 (en) 2020-12-09
US20140250476A1 (en) 2014-09-04
US9282347B2 (en) 2016-03-08
US20110023080A1 (en) 2011-01-27
EP2269143A4 (en) 2012-02-01
WO2009116024A2 (en) 2009-09-24
WO2009116024A3 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
ES2985657T3 (es) Un servidor vod de tasa controlada
US12126782B2 (en) Video client optimization during pause
US12035019B2 (en) Video session with advertisement content
US12041217B2 (en) Video optimization system and method based on gaze vector information
CN112292864B (zh) 用于提供360度沉浸式视频的图块选择和带宽优化
CN112789854B (zh) 用于在暂停期间在360º沉浸式视频中提供质量控制的系统和方法
US10432970B1 (en) System and method for encoding 360° immersive video
US10567780B2 (en) System and method for encoding 360° immersive video
HK40037277B (en) A controlled rate vod server
HK40037277A (en) A controlled rate vod server