ES2816639T3 - Un servidor VOD de velocidad controlada - Google Patents

Un servidor VOD de velocidad controlada Download PDF

Info

Publication number
ES2816639T3
ES2816639T3 ES08720002T ES08720002T ES2816639T3 ES 2816639 T3 ES2816639 T3 ES 2816639T3 ES 08720002 T ES08720002 T ES 08720002T ES 08720002 T ES08720002 T ES 08720002T ES 2816639 T3 ES2816639 T3 ES 2816639T3
Authority
ES
Spain
Prior art keywords
bit rate
segment
video
storage
video stream
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
ES08720002T
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 ES2816639T3 publication Critical patent/ES2816639T3/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/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/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
    • 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 de video distribuido que comprende: una pluralidad de máquinas (110) de almacenamiento, cada una de la pluralidad de máquinas de almacenamiento que tiene uno o más dispositivos (115) de almacenamiento que almacenan al menos un segmento respectivo de un flujo de video que está seccionado a través de los dispositivos (115) de almacenamiento, la pluralidad de máquinas de almacenamiento que están configuradas para: aceptar instrucciones de control de velocidad de bits; procesar al menos un segmento del flujo de video de acuerdo con las instrucciones de control de la velocidad de bits, produciendo así un segmento modificado del flujo de video, en el que el al menos un segmento se procesa cambiando la velocidad de bits del al menos un segmento de acuerdo con instrucciones de control de velocidad de bit; y proporcionar salida de al menos dicho segmento modificado del flujo de video, y un servidor (100) configurado para: proporcionar las instrucciones de control de la velocidad de bits a la pluralidad de máquinas (110) de almacenamiento; aceptar la salida de las máquinas (110) de almacenamiento; y combinar la salida en un flujo (120) de transporte de video.

Description

DESCRIPCIÓN
Un servidor VOD de velocidad 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 por demanda.
El vídeo digital se distribuye a menudo como flujos de datos digitales. Un protocolo bien conocido para datos de video es MPEG.
Los flujos de vídeo, como los flujos MPEG, normalmente tienen una velocidad de bits variable (VBR). Las transmisiones de video generalmente están comprimidas 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 vídeo MPEG comprimen el vídeo reduciendo 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 una cantidad X de datos para N fotogramas de vídeo, que deben reproducirse a una velocidad de R fotogramas por segundo, con lo que tiene una velocidad de bits proporcional a X*R/N. Si es necesario reducir la velocidad de bits de un flujo de video, las imágenes en un GOP deben cambiarse juntas, ya que las imágenes dependen unas de otras para la reconstrucción.
En los casos en los que se distribuyen flujos de vídeo a los clientes, en ocasiones se combinan varios flujos de vídeo 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. Estos 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 en la actualidad, es la distribución de video por 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 videos diferentes y algunos de los mismos videos comenzaron en momentos diferentes.
Un flujo de transporte a menudo tiene una velocidad de bits constante (CBR). La velocidad 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 velocidad 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 en el suministro de video por demanda.
Puede realizarse la combinación de flujos VBR en un flujo de transporte CBR. Se debe tener cuidado de que la velocidad de bits total de la combinación de flujos VBR nunca exceda el límite de CBR, de lo contrario, el flujo de transporte CBR podría colapsar o ser interrumpido 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 v Br constituyentes como si tuviese constantemente una velocidad de bits máxima, y siempre que la velocidad de bits total de los flujos VBR combinados cae por debajo del CBR del flujo de transporte, se agrega relleno.
Se puede reducir la velocidad de bits de un flujo de video. Es una tarea de computación intensiva. Los flujos MPEG, por ejemplo, se comprimen para facilitar la descompresión, tienen una descompresión relativamente simple desde el punto de vista computacional y una compresión relativamente intensiva en computación. Por lo tanto, la reducción de la velocidad de bits de los flujos MPEG, que implica la descompresión (fácil) y la posterior compresión (difícil) es computacionalmente intensiva.
Resumen de la invención
Un aspecto de algunas realizaciones de la invención se refiere al uso de un sistema de almacenamiento de datos distribuidos para el procesamiento distribuido de datos almacenados en los nodos de almacenamiento distribuidos. Algunos tipos de procesamiento requieren una gran cantidad de cálculos, como, a modo de ejemplo no limitativo, el procesamiento de flujo de video. Uno o más ordenadores pueden controlar el procesamiento, dando instrucciones 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 algunas realizaciones de la invención se refiere al control de una velocidad de bits de un flujo de transporte mediante el control de la velocidad de bits de los componentes del flujo de transporte. El cambio de la velocidad de bits puede requerir muchos cálculos, y el cambio de la velocidad de bits de los componentes del flujo de transporte se realiza de forma distribuida, a fin de distribuir la carga de cálculo lejos de un solo ordenador.
El cambio de la velocidad de bits puede realizarse en tiempo real, es decir, justo antes de transmitir el flujo de transporte, o puede realizarse antes del tiempo real, y los componentes de flujo de velocidad de bits modificados se pueden guardar hasta que se necesiten.
De acuerdo con un aspecto de algunas realizaciones de la presente invención, se proporciona 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 así un segmento cambiado del flujo de datos, y proporcionar la salida de al menos el segmento cambiado 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.
De acuerdo con algunas formas de realización de la invención, el proceso incluye cambiar la velocidad de bits.
De acuerdo con algunas formas de realización de la invención, el al menos un dispositivo de almacenamiento está configurado además para almacenar al menos el segmento modificado del flujo de datos.
De acuerdo con algunas realizaciones de la invención, el servidor está configurado para proporcionar instrucciones de control de la velocidad de bits a la pluralidad de dispositivos de almacenamiento, y la pluralidad de dispositivos de almacenamiento está configurada para aceptar las instrucciones de control de la velocidad de bits del servidor y para cambiar la velocidad de bits del segmento de un flujo de datos de acuerdo con las instrucciones.
De acuerdo con algunas realizaciones de la invención, al menos uno de los flujos de datos es un flujo de video. De acuerdo con algunas formas de realización de la invención, el proceso incluye la transcodificación del flujo de vídeo. De acuerdo con algunas formas de realización de la invención, el proceso incluye insertar contenido en el flujo de video. De acuerdo con algunas realizaciones de la invención, el proceso incluye producir efectos de video en el flujo de video. De acuerdo con algunas realizaciones de la invención, el proceso incluye el procesamiento de protección de contenido con respecto al flujo de video. De acuerdo con algunas formas de realización de la invención, el proceso incluye la búsqueda en el flujo de vídeo.
De acuerdo con algunas realizaciones de la invención, los dispositivos de almacenamiento utilizan un esquema de protección de datos para almacenar el segmento modificado del flujo de datos.
De acuerdo con algunas realizaciones de la invención, se incluye además la producción y el almacenamiento de metadatos que incluyen información sobre una velocidad de bits del segmento modificado del flujo de datos.
De acuerdo con un aspecto de algunas realizaciones de la presente invención, se proporciona un método para combinar una pluralidad de flujos de datos que incluyen el uso de uno o más dispositivos de almacenamiento para procesar al menos un segmento de un flujo de datos, produciendo así un segmento cambiado del flujo de datos, y proporcionar la salida de al menos el segmento modificado del flujo de datos, y combinar la salida de los dispositivos de almacenamiento en un flujo de datos combinado.
De acuerdo con algunas realizaciones de la invención, el procesamiento incluye cambiar una velocidad de bits.
De acuerdo con algunas realizaciones de la invención, se incluye además el almacenamiento de al menos el segmento modificado del flujo de datos.
De acuerdo con algunas realizaciones de la invención, se incluye además proporcionar instrucciones de control de la velocidad de bits a la pluralidad de dispositivos de almacenamiento, y los dispositivos de almacenamiento aceptan las instrucciones de control de la velocidad de bits del servidor y cambian la velocidad de bits del segmento de un flujo de datos de acuerdo con las instrucciones.
De acuerdo con algunas realizaciones de la invención, al menos uno de los flujos de datos es un flujo de datos de vídeo. De acuerdo con algunas formas de realización de la invención, el procesamiento incluye el procesamiento del flujo de vídeo.
De acuerdo con algunas formas de realización de la invención, se incluye, además, después del cambio, almacenar el segmento modificado del flujo de datos y realizar el suministro a petición del servidor.
De acuerdo con algunas realizaciones de la invención, se incluye además la producción y el almacenamiento de metadatos que incluyen información sobre una velocidad de bits del segmento cambiado del flujo de datos.
De acuerdo con un aspecto de algunas realizaciones de la presente invención, se proporciona un sistema configurado para recibir un flujo de transporte que incluye una pluralidad de flujos de datos que incluyen un servidor configurado para dividir el flujo de transporte en una pluralidad de flujos de datos, una pluralidad de dispositivos de almacenamiento configurados para recibir y almacenar uno o más de los flujos de datos desde el servidor, estando al menos uno de los dispositivos de almacenamiento configurado además para procesar al menos un segmento de un flujo de datos, produciendo así un segmento modificado del flujo de datos, y almacenar al menos el segmento modificado del flujo de datos.
De acuerdo con algunas realizaciones de la invención, el proceso incluye cambiar la velocidad de bits.
De acuerdo con algunas formas de realización de la invención, al menos uno de los flujos de datos incluye un flujo de video, y el proceso incluye el procesamiento del flujo de video.
De acuerdo con un aspecto de algunas realizaciones de la presente invención, se proporciona un método para recibir un flujo de transporte que incluye una pluralidad de flujos de datos que incluye dividir el flujo de transporte en una pluralidad de flujos de datos, almacenando los flujos de datos en una pluralidad de dispositivos de almacenamiento, que utilizan al menos uno de los dispositivos de almacenamiento para procesar al menos un segmento de un flujo de datos, produciendo así un segmento modificado del flujo de datos y almacenando el segmento modificado del flujo de datos.
De acuerdo con algunas realizaciones de la invención, el procesamiento incluye cambiar una velocidad de bits. De acuerdo con algunas realizaciones de la invención, al menos uno de los flujos de datos es un flujo de video, y el procesamiento incluye el procesamiento de flujo de video.
A menos que se defina lo contrario, todos los términos técnicos y/o científicos usados en este documento tienen el mismo significado que el que entiende comúnmente un experto en la técnica a la que pertenece la invención. Aunque se pueden usar métodos y materiales similares o equivalentes a los descritos en el presente documento en la práctica o ensayo de realizaciones de la invención, a continuación, se describen métodos y/o materiales ejemplares. 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 se pretende que sean 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 las mismas. Además, de acuerdo con la instrumentación y el equipo real 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 los mismos utilizando un sistema operativo.
Por ejemplo, el hardware para realizar tareas seleccionadas de acuerdo con 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 están siendo ejecutadas por un ordenador utilizando cualquier sistema operativo adecuado. En una realización ejemplar de la invención, una o más tareas de acuerdo con realizaciones ejemplares del método y/o sistema como se describe en el presente documento son realizadas por 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 medio extraíble, para almacenar instrucciones y/o datos. Opcionalmente, también se proporciona una conexión de red. También se proporcionan 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 este documento, sólo a modo de ejemplo, con referencia a los dibujos adjuntos. Con referencia específica ahora a los dibujos en detalle, se destaca que los detalles que se muestran son a modo de ejemplo y con el propósito de una discusión ilustrativa de las realizaciones de la invención. A este respecto, la descripción tomada con los dibujos pone de manifiesto 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 figura 1 es una ilustración simplificada de un sistema construido y operativo de acuerdo con una realización ejemplar de la invención.
La figura 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 figura 3 es una ilustración más detallada de una realización de ejemplo del sistema de la figura 1;
La figura 4 es una ilustración gráfica simplificada de velocidades de bits variables en un flujo de video; y
La figura 5 es una ilustración gráfica simplificada de cómo cortar los picos de velocidad de bits reduce la velocidad de bits máxima de un flujo de vídeo en una realización de la invención.
Descripción de realizaciones específicas 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 por demanda.
Antes de explicar al menos una realización de la invención, en detalle, debe entenderse que la invención no está necesariamente limitada 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 ilustrado en los dibujos y/o los ejemplos. La invención es susceptible de otras realizaciones o de ser practicada o llevada a cabo de diversas formas.
Un aspecto de algunas realizaciones de la invención se refiere al uso de un sistema de almacenamiento de datos distribuidos para el procesamiento distribuido de datos almacenados en los nodos de almacenamiento distribuidos. Uno o más ordenadores pueden controlar el procesamiento, y los nodos de almacenamiento de datos, que también tienen alguna capacidad de procesamiento, realizan al menos parte del procesamiento.
Algunos tipos de procesamiento son de cálculo intensivo, como, a modo de ejemplo no limitativo, procesamiento de flujo de vídeo. Ejemplos no limitativos de procesamiento de flujo de video intensivo en computación incluyen:
1. Configurar la velocidad de los flujos de video, es decir, cambiar la velocidad de bits de los flujos de video. A menudo, el cambio es una reducción de la velocidad de bits de un flujo de video para activar el flujo de video en un ancho de banda más estrecho.
2. Transcodificar los flujos de vídeo, 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. Procesar el contenido, como, a modo de ejemplo no limitativo, insertar contenido adicional como un anuncio en un flujo de video, un logotipo en un flujo de video, produciendo un flujo de video de imagen en imagen (PIP) y agregar una superposición de voz o una superposición de video.
4. Procesar efectos de video, como, por ejemplo, a modo de ejemplo no limitativo, aparición gradual, desaparición gradual, fusión alfa, brillo cambiante y efecto de barrido.
5. Procesamiento de protección de contenido, como, a modo de ejemplo no limitativo, cifrado, descifrado, inserción de una marca de agua o eliminación de una marca de agua.
6. Buscar dentro de un flujo de video, como, a modo de ejemplo no limitativo, buscar un título y/u otros atributos de búsqueda.
Algunas realizaciones contempladas incluyen la combinación de 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 algunos de los dispositivos de almacenamiento procesan al menos parte de los flujos de datos y almacenan la parte procesada. Se proporcionan aquí ejemplos de realizaciones específicas con referencia a flujos de video de velocidad de bits variable (VBR), tales como flujos de video MPEG, que se combinan en un flujo de transporte de velocidad 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 almacenarlos en dispositivos de almacenamiento e indicar a algunos de los dispositivos de almacenamiento que procesen al menos parte de los flujos de video y almacenen la parte modificada, procesada.
Un aspecto de algunas realizaciones de la invención se refiere al control de una velocidad de bits de un flujo de transporte controlando la velocidad de bits de los componentes del flujo de vídeo del flujo de transporte. El cambio de la velocidad de bits de un flujo de video puede ser un cálculo intensivo, y el cambio de la velocidad de bits de los componentes del flujo de video se realiza de forma distribuida, para distribuir la carga de cálculo.
Se observa que a menudo los flujos de vídeo se almacenan en discos de datos distribuidos y se combinan en un flujo de transporte mediante una unidad de cinta continua, que es un ordenador dedicado. Es probable que los discos de datos y la unidad de cinta continua sean equipos costosos, dedicados a las tareas previstas. Un enfoque alternativo al anterior es usar un ordenador de uso general de menor costo, también denominado un servidor, como unidad de cinta continua, 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, lo que abre la puerta al procesamiento distribuido.
Un aspecto de algunas realizaciones de la invención se refiere a otros tipos de procesamiento del flujo de transporte, que se realizan de forma distribuida. La invención es adecuada para distribuir el procesamiento de componentes de flujo.
El término “cambio de velocidad de bits” en todas sus formas gramaticales se usa a lo largo de la presente memoria descriptiva y se reivindica de manera intercambiable con el término “configurar la velocidad” y el término “reducción de velocidad” y sus formas gramaticales.
El término “flujo de vídeo” en todas sus formas gramaticales se utiliza a lo largo de la presente especificación y se reivindica de manera intercambiable con los términos “flujo”, “flujo de datos”, “archivo de datos”, “archivo”, “flujo MPEG” y “Flujo de video MPEG” y sus formas gramaticales.
Se observa 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, como un programa de 24 horas al día.
El aparato que combina flujos en un flujo de transporte se denomina en el presente documento unidad de cinta continua.
Ahora se hace referencia a la figura 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 una unidad de cinta continua 100, conectada a uno o más grupos 105 de almacenamiento. La unidad de cinta continua 100 está configurada para proporcionar una salida 120 o salidas 120 de uno o más flujos de transporte.
La unidad de cinta continua 100 solicita a los grupos 105 de almacenamiento 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 realizar el procesamiento en una o más de los flujos de video, la unidad de cinta continua 100 indica a uno o más de los grupos 105 de almacenamiento que realicen el procesamiento y proporcionen un flujo de video procesado y modificado para la combinación. A modo de ejemplo no limitativo, la unidad de cinta continua 100 rastrea la velocidad de bits de cada uno de los flujos de transporte. Si una velocidad de bits de un flujo de transporte está a punto de exceder un límite predefinido, la unidad de cinta continua 100 asegura, como se describirá más adelante, que la velocidad de bits de uno o más de los flujos de video combinados en el flujo de transporte se reduce asegurando así que la velocidad de bits del flujo de transporte no exceda el límite.
La unidad de cinta continua 100 instruye a uno o más de los grupos 105 de almacenamiento que proporcionen una versión de uno o más de los flujos de vídeo que tienen una velocidad de bits inferior a la nominal.
Los grupos 105 de almacenamiento proporcionan a la unidad de cinta continua 100 una versión de velocidad de bits más baja del uno o más flujos de vídeo que la unidad de cinta continua ha instruido que tenga una velocidad de bits más baja.
Ahora se hace referencia a la figura 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 figura 2 representa un diagrama de flujo del método usado en el sistema de la figura 1, que usa uno o más dispositivos (150) de almacenamiento para procesar al menos un segmento de uno de los flujos (160) de datos. Un método opcional de procesamiento utilizado por una realización de la invención se describe más adelante con referencia a la Figura 5.
Se proporciona (165) la salida de al menos el flujo de datos modificado, como se describió anteriormente con referencia a la Figura 1, y se describirá más adelante con referencia a la Figura 3.
Se utiliza una unidad de cinta continua para combinar la salida de los dispositivos de almacenamiento en un flujo (170) de datos combinado, como se describió anteriormente con referencia a la Figura 1, y se describirá más adelante con referencia a la Figura 3.
Ahora se hace referencia a la Figura 3, que es una ilustración más detallada de una realización de ejemplo del sistema de la Figura 1.
El sistema comprende una unidad de cinta continua 100, conectada a uno o más grupos 105 de almacenamiento. Los grupos 105 de almacenamiento contienen cada uno una o más máquinas 110 de almacenamiento, cada una de las cuales está conectada a uno o más dispositivos 115 de almacenamiento.
La unidad de cinta continua 100 opcionalmente instruye a uno o más de los grupos 105 de almacenamiento para que proporcionen una versión de uno o más de los flujos de vídeo que tienen una velocidad de bits inferior a la nominal.
Los grupos 105 de almacenamiento opcionalmente proporcionan a la unidad de cinta continua 100 una versión de velocidad de bits más baja del uno o más flujos de vídeo que la unidad de cinta continua ha instruido que tengan una velocidad de bits más baja.
La unidad de cinta continua 100
La unidad de cinta continua 100 combina varios flujos de video en un flujo de transporte. Opcionalmente, la unidad de cinta continua asegura que la suma de las velocidades de bits de los flujos de vídeo no supere un límite de velocidad de bits asociado con el flujo de transporte. La combinación de flujos de video VBR en un flujo de transporte CBR, cuando la velocidad de bits total de los flujos de video es menor que el límite de velocidad de bits, es conocida en la técnica. Por ejemplo, una forma de hacerlo es rastrear la velocidad de bits combinada y agregar datos nulos al flujo de transporte según sea necesario para llevar la velocidad de bits del flujo de transporte combinado a un valor constante.
Un uso más eficaz de un flujo de transporte CBR es combinar tantos flujos de vídeo como sea posible en el flujo de transporte. Dado que los flujos de video muestran una velocidad de bits variable, es posible combinar los flujos de video de manera que su velocidad de bits combinada normalmente esté por debajo del límite del flujo de transporte. Cuando se espera que la velocidad de bits combinada de los flujos de video exceda el límite, la unidad de cinta continua 100 opcionalmente reemplaza algunas o todas las transmisiones de video con versiones de velocidad de bits más baja de las transmisiones de video y evita que se exceda.
La velocidad 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 base a los siguientes parámetros: un tipo de modulación para el MPTS, tal como, a modo de ejemplo no limitativo, Modulación de Amplitud en Cuadratura (QAM) como la velocidad de símbolo 64/128/256; y el número de flujos que participan en el MPTS.
Ahora se hace referencia a la figura 4, que es una ilustración gráfica simplificada de velocidades de bits variables en un flujo de vídeo.
La figura 4 representa un gráfico 200 de la velocidad de bits de un segmento de un flujo de vídeo en función del tiempo. El gráfico es de un segmento de un flujo de video original con una velocidad de bits original, sin modificar. El eje 205 horizontal del gráfico 200 representa el tiempo, en unidades de fotogramas de vídeo. Dado que el vídeo se muestra normalmente a una velocidad de fotogramas constante, los fotogramas son directamente proporcionales al tiempo. El eje vertical 210 del gráfico 200 representa la velocidad 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, estando una barra del gráfico 200 para cada imagen. Cada una de las imágenes tiene una velocidad de bits inherente asociada, basada en la cantidad de datos necesarios para representar la imagen y una velocidad de fotogramas del flujo de video. La velocidad de bits inherente está representada por la altura relativa de la barra que representa la imagen.
Dado que cada uno de los GOP 215, 216, 217, 218 se comprime conjuntamente, cada GOP también está asociado con una velocidad de bits. La velocidad de bits de un GOP se basa en la cantidad de datos, después de la compresión, que contiene el GOP, una velocidad de fotogramas del flujo de video y el número de imágenes dentro del GOP.
Las velocidades de bits 220, 221, 222, 223 de GOP se representan mediante líneas de puntos correspondientes a las velocidades de bits de los GOP 215, 216, 217, 218 respectivamente. Las velocidades de bits de Go P 220, 221, 222, 223 no son iguales, dependiendo del contenido de las imágenes del flujo de vídeo.
Una velocidad de bits máxima del segmento en la ilustración de la figura 4 es la velocidad 221 de bits de GOP, asociada con el GOP 2216.
Ahora se hace referencia a la figura 5, que es una ilustración gráfica simplificada de cómo cortar picos de velocidad de bits reduce una velocidad de bits máxima de un flujo de video en una realización de la invención.
La figura 5 representa el segmento de la figura 4, en el que los picos de velocidad de bits de imágenes individuales se han modificado “cortando”, es decir, reduciendo, solo los picos de velocidad de bits. Los valores de las velocidades de bits de imagen sin modificar y las velocidades 220, 221,222, 223 de bits de GOP sin modificar todavía se representan en la Figura 5, con fines de comparación y para facilitar la comprensión.
Una imagen en GOP 2216, que tenía una velocidad de bits inherente más alta de las imágenes de GOP 2, se redujo en la velocidad de bits en una primera cantidad 225. Una velocidad 231 de bits de GOP de GOP 2216 es menor que la velocidad 221 de bit de GOP de GOP 2216 antes de la modificación de la velocidad de bits.
Una imagen en GOP 3217, que tenía una velocidad de bits inherente más alta de las imágenes del GOP 3217, se redujo en la velocidad de bits en una segunda cantidad 226, diferente de la primera cantidad 225. Una velocidad 232 de bits GOP del GOP 3217 es menor que la velocidad 222 de bits de GOP del GOP 3217 antes de la modificación de la velocidad de bits.
Dos imágenes en GOP 4218, que tenían las dos velocidades de bits inherentes más altas de las imágenes de GOP 4 218, se redujeron en la velocidad de bits en una tercera cantidad 227 y una cuarta cantidad 228. Una velocidad 233 de bits GOP del GOP 4218 es menor que la velocidad 223 de bits de GOP del GOP 4218 antes de la modificación de la velocidad de bits.
Los archivos que juntos forman un flujo de transporte cambian con el tiempo. Por ejemplo, cuando la unidad de cinta continua es un servidor VOD, los usuarios finales asignan las sesiones y la unidad de cinta continua 100 debe leer archivos del grupo 105 de almacenamiento. La unidad de cinta continua indica a cada unidad 110 de procesamiento en el grupo 105 de almacenamiento que reduzca la velocidad de ciertos GOP de acuerdo con un algoritmo de multiplexación estadístico.
Dado que la configuración de la velocidad puede ser computacionalmente intensiva, la unidad de cinta continua 100 hace que la configuración de la velocidad de los flujos de vídeo se realice mediante la potencia de cálculo disponible en los grupos 105 de almacenamiento (figura 1). Mientras que los grupos 105 de almacenamiento contienen típicamente una gran cantidad de almacenamiento, que se necesita para almacenar los flujos de video, los grupos de almacenamiento son, no obstante, capaces de realizar cálculos. Tener varios grupos 105 de almacenamiento permite usar la potencia de cálculo incorporada en un sistema de almacenamiento de video distribuido para también dar configuración al video.
Se observa que, de manera similar al ejemplo de la figura 5, la configuración de la velocidad no se realiza en un archivo completo, sino en un segmento de archivo. El tamaño del segmento de archivo varía desde una porción 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 velocidad de bits máxima permitida especificada, la unidad de cinta continua 100 (Figura 1) comienza a leer uno o más flujos de uno de los grupos 105 de almacenamiento,
Junto con los flujos que se están leyendo, la unidad de cinta continua 100 lee los metadatos asociados con cada flujo. Se proporcionan más detalles sobre los metadatos a continuación, con referencia a “Ingesta de un archivo de video”.
Basándose al menos en parte en los metadatos, la unidad de cinta continua 100 puede predecir cuál será la velocidad de bits agregada de todos los flujos en el MPTS, 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 a la unidad de cinta continua 100 predecir un nivel de deterioro en la calidad del flujo de video debido a la reducción de la velocidad.
Teniendo en cuenta los parámetros de metadatos, la unidad de cinta continua compila un conjunto de comandos para los grupos 105 de almacenamiento, solicitando a los grupos 105 de almacenamiento segmentos de datos relevantes con una velocidad de bits específica por GOP.
En algunas realizaciones de la invención, la unidad de cinta continua 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 105 de almacenamiento es un servidor de gestión de flujo (no mostrado). La unidad de cinta continua 100 y el servidor de gestión de flujo pueden o no estar alojados 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ístico descrito anteriormente puede distribuirse entre varios SPTS y varias unidades de cinta continua 100. Cada unidad de cinta continua 100 gestiona uno o más flujos de transporte e instruye a las máquinas 110 de almacenamiento relevantes, a través de uno o más grupos 105 de almacenamiento, para reducir la velocidad de flujo de video cuando sea necesario.
Cada flujo de programa VBR se rellena con relleno nulo en un CBR SPTS a la velocidad 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 de unidades de cinta continua diferentes.
Control de movimiento
Durante la reproducción de un flujo de vídeo, un usuario final puede optar por utilizar modos de control de movimiento, como avance rápido (FF), rebobinado 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 usando un control de movimiento.
Opcionalmente, en los modos FF y rebobinado, la unidad de cinta continua 100 solo solicita y recibe un primer fotograma I de un GOP, y no todas las imágenes del GOP. La gestión de la velocidad de bits la realiza opcionalmente la unidad de cinta continua 100, añadiendo un número adecuado de fotogramas P a fotogramas I y formando los GOP recién generados.
Si la velocidad de bits de un GOP que comprende solo fotogramas I sigue siendo demasiado alta, la unidad de cinta continua 100 opcionalmente solicita una reducción de la velocidad de bits desde las máquinas de almacenamiento, con el fin de reducir la velocidad de bits del fotograma I. Alternativamente, la unidad de cinta continua 100 realiza una reducción de velocidad para los fotogramas I.
En el modo de pausa, la unidad de cinta continua 100 deja de transmitir el flujo de video, por lo que no es necesario utilizar la reducción de velocidad para un flujo de video en pausa.
La unidad de cinta continua 100 tiene en cuenta el modo de pausa y, por ejemplo, en el caso de un flujo de vídeo en pausa, otros flujos en el flujo de transporte pueden utilizar más velocidad de bits.
Configuración de velocidad
Opcionalmente, la configuración de velocidad 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 velocidad se realiza antes del tiempo real y los flujos de vídeo de velocidad de bits modificados se guardan hasta que se necesitan.
Ya sea que la configuración de la velocidad se realice en tiempo real o antes, cada una de las máquinas 110 de almacenamiento que realiza la configuración de la velocidad recibe opcionalmente instrucciones para la configuración de la velocidad de la unidad de cinta continua 100, que incluye un parámetro de velocidad de bits que especifica una velocidad de bits máxima o cuánto reducir la velocidad de bits de un segmento de archivo. Alternativamente, cada máquina 110 de almacenamiento está configurada para uno o más niveles configurables de configuración de velocidad.
Opcionalmente, la reducción de velocidad reduce la calidad de las imágenes en fotogramas de cada GOP, de modo que no se excede una velocidad de bits máxima. Alternativamente, la reducción de la velocidad reduce la velocidad de bits en un porcentaje de la velocidad de bits, o restando una velocidad de bits de una velocidad de bits no modificada.
La reducción de la velocidad de bits se realiza opcionalmente durante un período de tiempo, correspondiente a un cierto 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 105 de almacenamiento maneja una reasignación interna de un presupuesto de velocidad de bits dentro de cada GOP, por ejemplo, asignando más o menos velocidad de bits a diferentes fotogramas dentro de un GOP en función de la complejidad del fotograma, proporcionando opcionalmente algunas áreas de los fotogramas con un tratamiento específico.
Configuración de velocidad en aproximadamente tiempo real
Cuando la configuración de la velocidad se realiza en tiempo real o aproximadamente en tiempo real, la unidad de cinta continua combina varios flujos de video en el flujo de transporte basándose, al menos en parte, en una velocidad de bits total de los flujos de video y, opcionalmente, en un límite de velocidad de bits para el flujo de transporte.
Se observa que los flujos de transporte a veces transportan más que solo flujos de video. Los datos transportados por el flujo de transporte más allá de los flujos de video se consideran aquí como un flujo de datos, y la descripción de los flujos de datos se considera incluida en los ejemplos de flujo de video.
Opcionalmente, la unidad de cinta continua 100 estima la velocidad de bits del flujo de transporte y, opcionalmente, estima la velocidad de bits de cada uno de los flujos de video. Opcionalmente, la estimación se hace mediante la unidad de cinta continua, midiendo realmente la velocidad de bits del flujo de transporte y midiendo opcionalmente la velocidad de bits de cada uno de los flujos de vídeo.
La unidad de cinta continua 100 indica a las máquinas 110 de almacenamiento qué flujos de video deben puntuar la forma y cómo valorar la forma de los flujos de video.
En algunas realizaciones de la invención, la unidad de cinta continua 100 instruye a las máquinas 110 de almacenamiento qué flujo de vídeo y a qué velocidad de bits proporcionar la unidad de cinta continua. En otras realizaciones de la invención, la unidad de cinta continua 100 les instruye a las máquinas 110 de almacenamiento qué flujo de video proporcionar a la unidad de cinta continua 100, y en qué cantidad, o en qué porcentaje, reducir la velocidad de bits del flujo de video.
Opcionalmente, las máquinas 110 de almacenamiento que configuran la velocidad de un flujo de video, también almacenan en caché el flujo de video configurado en velocidad, de modo que el flujo de video necesita ser emitido nuevamente como un flujo de video conformado en velocidad, el flujo de video conformado en velocidad almacenado en caché se recupera de la caché.
Configuración de velocidad antes del tiempo real
Cuando el configurar la velocidad se realiza antes del tiempo real, la unidad de cinta continua 100 opcionalmente instruye a los grupos 105 de almacenamiento qué flujo de video configurar en velocidad, a qué velocidad de bits configurar el flujo de video y dónde almacenar el flujo de video configurado en velocidad.
En otras realizaciones de la invención, la unidad de cinta continua 100 instruye a los grupos 105 de almacenamiento qué flujo de video configurar en velocidad, en qué cantidad o en qué porcentaje, para reducir la velocidad de bits del flujo de video y dónde almacenar el flujo de video configurado en velocidad.
Cuando la configuración de velocidad se realiza antes del tiempo real, los metadatos se producen opcionalmente, asociando algunos o todos los flujos de video guardados con una velocidad de bits estimada o medida. Opcionalmente, los metadatos incluyen la velocidad de bits de los segmentos de los flujos de video, en lugar de una velocidad de bits de para un flujo de video completo.
Opcionalmente, los metadatos incluyen la velocidad 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 velocidad de bits máxima, así como una velocidad de bits promedio.
Opcionalmente, un flujo de video se almacena en más de una versión, con diferentes versiones que han sido configuradas en velocidad y que comprenden diferentes velocidades de bits. Opcionalmente, sólo algunos segmentos del flujo de vídeo son configurados en velocidad, siendo los segmentos configurados en velocidad preferiblemente los segmentos de velocidad de bits más alta.
Opcionalmente, los segmentos del flujo de video que son configurados en velocidad son tan pequeños como un GOP. Dado que en el ejemplo descrito anteriormente la configuración de velocidad se realiza antes del tiempo real, puede que no haya certeza de que se utilicen realmente versiones o segmentos de un flujo de vídeo configurado en velocidad. En algunas realizaciones de la invención, la decisión de qué flujos de vídeo o segmentos de los mismos tendrán una forma de velocidad se realiza de acuerdo con las estadísticas proyectadas de la demanda de vídeo. En algunas realizaciones de la invención, la decisión se realiza de acuerdo con la demanda de video real.
Se contemplan diversos esquemas para ahorrar cálculos, tales como: configurar la velocidad solo de los flujos de video que tienen mayor demanda; configurar la velocidad solo de segmentos de alta velocidad de bits de flujos de video; configurar en velocidad los flujos de video más demandados antes del tiempo real y configurar en velocidad otros flujos de video en tiempo real o en tiempo real aproximado; y configurar en velocidad un flujo de vídeo en tiempo real cuando se combina por primera vez en un flujo de transporte, y guardar el flujo de vídeo con forma de velocidad o los segmentos con forma de velocidad del flujo de vídeo, y sus metadatos asociados, para su posterior reutilización. Se contemplan diversos esquemas para ahorrar espacio de almacenamiento, tales como: guardar versiones configuradas en velocidad solo de los flujos de video que tienen mayor demanda; guardar versiones configuradas en velocidad de solo segmentos de flujo de video con velocidad de bits alta; y guardar versiones de un flujo de video configuradas en velocidad 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 105 de almacenamiento, 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 algo de potencia de procesamiento.
Opcionalmente, el grupo 105 de almacenamiento protege los datos almacenando 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, un segmento de un flujo de video e incluso un GOP de un flujo de video.
Reducción de velocidad con protección de datos
En caso de pérdida de datos en el primero de los grupos 105 de almacenamiento, la unidad de cinta continua 100 solicita segmentos de archivo de velocidad reducida de un segundo de los grupos 105 de almacenamiento. El segundo grupo 105 de almacenamiento reúne los segmentos de archivo requeridos del segundo grupo 105 de almacenamiento. El segundo grupo 105 de almacenamiento realiza una reducción de velocidad en los segmentos de archivos recuperados.
Copia de respaldo
Opcionalmente, cada archivo se almacena en una versión de velocidad reducida predefinida en el grupo de almacenamiento. La versión es opcionalmente una versión CBR o un VBR limitado con una velocidad de bits máxima que no es mayor que la velocidad de bits promedio del flujo original. La versión reducida de velocidad predefinida se denomina como copia de respaldo.
En caso de pérdida de datos de una versión original, o si no hay potencia de procesamiento disponible para reducir la velocidad de la versión original, se usa opcionalmente la copia de respaldo. La copia de respaldo también se usa opcionalmente si la velocidad de bits de la copia de respaldo cae dentro de los límites de la velocidad de bits requerida por la unidad de cinta continua 100.
Almacenamiento en caché de GOP procesados
Cada máquina 110 de almacenamiento tiene opcionalmente una caché que contiene GOP de velocidad reducida. La caché se basa opcionalmente en un método l Ru . Algunas realizaciones de la invención usan una versión en caché de un GOP de velocidad reducida en lugar de utilizar una reducción de velocidad. La preferencia por utilizar la memoria caché y el tamaño de la memoria caché se determinan basándose, al menos en parte, en la potencia de procesamiento disponible de la máquina 110 de almacenamiento.
A modo de ejemplo no limitativo, cuando la unidad de cinta continua 100 solicita un determinado GOP a una velocidad de bits de 2,5 Mbps, y si hay una versión en caché del mismo GOP reducido a 2,4 Mbps, el sistema opta por utilizar opcionalmente la versión en caché de 2,4 Mbps. Esto libera la máquina 110 de almacenamiento para configurar la velocidad de otros GOP que aún no están almacenados en caché.
La máquina 110 de almacenamiento tiene opcionalmente una cantidad dedicada de almacenamiento y IO de almacenamiento para propósitos de almacenamiento en caché.
Reducción de velocidades y “flash-crowd”
Un servidor de datos puede obtener opcionalmente múltiples solicitudes para configurar la velocidad de un segmento de archivo, de múltiples unidades de cinta continua, u opcionalmente múltiples solicitudes de una sola unidad de cinta continua, pero destinadas a ser combinadas en un MPTS que la única unidad de cinta continua procesa.
Un escenario de este tipo puede ser común cuando a muchos usuarios les gustaría 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 en el que 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 configuración de velocidad, de manera que no excedan su potencia de procesamiento y sus capacidades de lectura desde almacenamiento.
En caso de que no se haya seleccionado una solicitud de reducción de velocidad específica para el procesamiento en tiempo real, el servidor de datos opcionalmente proporciona una copia de una versión configurada en velocidad más cercana, o una versión configurada en velocidad más cercana con menos de la velocidad de bits requerida, disponible del segmento configurado en la velocidad solicitada.
Ingesta de un archivo de video
Un archivo de video ingerido se codifica típicamente en un formato VBR. La unidad de cinta continua 100 analiza el archivo de video y lo divide en segmentos de archivo.
En algunas realizaciones de la invención, la unidad de cinta continua 100 produce y almacena opcionalmente, opcionalmente en uno o más grupos 105 de almacenamiento, 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 configuración de la velocidad en tiempo real, los metadatos para el archivo de video se generan y se mantienen en un archivo separado. La información guardada en el archivo de metadatos contiene información sobre la velocidad de bits del flujo, la estructura y la complejidad del fotograma.
Segmentos de datos
Los flujos de vídeo se dividen en bandas a través de los dispositivos de almacenamiento 115 en las máquinas 110 de almacenamiento y también a través de las máquinas 110 de almacenamiento en un grupo 105 de almacenamiento.
Cada archivo se corta en segmentos que se distribuyen entre los dispositivos de almacenamiento. Cada segmento contiene uno o más GOP que pertenecen al archivo.
Debe observarse que cada dispositivo de almacenamiento tiene un segmento de cada archivo, y viceversa, los segmentos de cada archivo pueden aparecer en cada dispositivo de almacenamiento.
El trazado y distribución de los archivos entre las máquinas de almacenamiento, acoplados con los requisitos de configuración de velocidad hechos por 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 agrupado. El número de GOP por segmento se determina basándose, al menos en parte, en parámetros de almacenamiento como el tamaño de los bloques en el dispositivo de almacenamiento, en parámetros de cálculo como la velocidad de cálculo en la máquina de almacenamiento, en el número de máquinas de cálculo y en una velocidad 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 los GOP no llenan completamente un tamaño óptimo de un segmento, se aplica opcionalmente 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; varios fotogramas, sin relación con el MPEG GOP subyacente; e incluso parte de un fotograma, incluso tan pequeño como una porción de un macrobloque MPEG.
Se observa que almacenar un MPEG GOP juntos puede ahorrar tiempo en el ensamblaje de datos para configurar la velocidad.
Se observa que una vez que el segmento ha sido configurado en velocidad, el segmento configurado en velocidad se puede almacenar opcionalmente en un servidor de datos, y opcionalmente se puede almacenar 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 al siguiente fotograma I, que encajan y son 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 usa redundancia de datos, tal como RAID. El nivel de protección RAID es cualquier nivel de protección RAID, como el nivel RAID 0, 1, 2, 3, 4, 5, etc., y opcionalmente puede ser diferente por archivo. Por 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 protección la proporciona el grupo de almacenamiento. En algunas realizaciones de la invención, cada una de las máquinas de almacenamiento proporciona la gestión de protección. En algunas realizaciones de la invención, la gestión de la protección la proporciona la unidad de cinta continua.
Se proporciona ahora un ejemplo no limitativo de funcionalidad de protección. Una unidad de cinta continua intenta recuperar un segmento de archivo de un primer dispositivo de almacenamiento en una primera máquina de almacenamiento. Debido a la falla 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 la unidad de cinta continua administra el esquema de protección, la unidad de cinta continua recupera datos redundantes escritos por el algoritmo de protección en un segundo dispositivo de almacenamiento y reconstruye los datos no disponibles. La unidad de cinta continua no necesariamente califica la forma de los datos reconstruidos. Si la configuración de la velocidad es necesaria, la unidad de cinta continua opcionalmente instruye a los grupos de almacenamiento que proporcionan otros flujos para proporcionar los otros flujos a una velocidad 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, la unidad de cinta continua solicita una segunda máquina de almacenamiento para recuperar 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 configuración de la velocidad en el segmento reconstruido y entrega los datos recuperados y con forma de velocidad a la unidad de cinta continua.
Opción de recuperación 3: cuando la unidad de cinta continua gestiona el esquema de protección, la unidad de cinta continua obtiene datos redundantes en forma de velocidad del grupo de almacenamiento y reconstruye los datos no disponibles de acuerdo con el esquema de protección.
Características adicionales
La máquina 110 de almacenamiento superpone opcionalmente texto, vídeo y/o sonido sobre segmentos de archivo, de acuerdo con las instrucciones recibidas de la unidad de cinta continua 100. La superposición se realiza opcionalmente en el dominio comprimido.
Cada máquina 110 de almacenamiento puede convertir opcionalmente segmentos de video de un formato de video a otro, usando un algoritmo de transcodificación. La transcodificación es opcionalmente por segmento de datos, de modo que cada máquina 110 de almacenamiento solo necesita transcodificar los segmentos que están almacenados en ella. Se espera que durante la vigencia de una patente que madura a partir de esta solicitud se desarrollarán muchos métodos de configuración de velocidad relevantes y se pretende que el alcance de la configuración de velocidad de término incluya todas estas nuevas tecnologías a priori.
Los términos “comprende”, “que comprende”, “incluye”, “que incluye”, “que tiene” y sus conjugados, significan “que incluye, pero no se limita a”.
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, etapas y/o partes adicionales, pero solo si los ingredientes, etapas y/o partes adicionales no alteran materialmente las características básicas y nuevas de la composición, método o estructura reivindicados.
Como se usa en el presente documento, la forma singular “un”, “una” y “el” incluyen referencias en plural a menos que el contexto indique claramente 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, incluyendo combinaciones de los mismos.
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 única realización. A la inversa, varias características de la invención, que, por brevedad, se describen en el contexto de una única realización, también pueden proporcionarse por separado o en cualquier subcombinación adecuada o según sea adecuado en cualquier otra realización descrita de la invención. Ciertas características descritas en el contexto de diversas realizaciones no deben considerarse características esenciales de esas realizaciones, a menos que la realización no funcione 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 caen dentro del espíritu y el amplio alcance de las reivindicaciones adjuntas.

Claims (9)

REIVINDICACIONES
1. Un sistema de procesamiento de flujo de video distribuido que comprende:
una pluralidad de máquinas (110) de almacenamiento, cada una de la pluralidad de máquinas de almacenamiento que tiene uno o más dispositivos (115) de almacenamiento que almacenan al menos un segmento respectivo de un flujo de video que está seccionado a través de los dispositivos (115) de almacenamiento, la pluralidad de máquinas de almacenamiento que están configuradas para:
aceptar instrucciones de control de velocidad de bits;
procesar al menos un segmento del flujo de video de acuerdo con las instrucciones de control de la velocidad de bits, produciendo así un segmento modificado del flujo de video, en el que el al menos un segmento se procesa cambiando la velocidad de bits del al menos un segmento de acuerdo con instrucciones de control de velocidad de bit; y proporcionar salida de al menos dicho segmento modificado del flujo de video, y
un servidor (100) configurado para:
proporcionar las instrucciones de control de la velocidad de bits a la pluralidad de máquinas (110) de almacenamiento; aceptar la salida de las máquinas (110) de almacenamiento; y
combinar la salida en un flujo (120) de transporte de video.
2. El sistema de la reivindicación 1, en el que las máquinas (105) de almacenamiento están configuradas además para almacenar al menos el segmento modificado del flujo de vídeo.
3. El sistema de las reivindicaciones 1 o 2, en el que las máquinas (110) de almacenamiento utilizan un esquema de protección de datos para almacenar dicho segmento modificado del flujo de video.
4. Un método para combinar una pluralidad de flujos de video que comprende:
proporcionar instrucciones de control de la velocidad de bits a una pluralidad de máquinas (110) de almacenamiento, cada una de la pluralidad de máquinas de almacenamiento tiene uno o más dispositivos (115) de almacenamiento que almacenan al menos un segmento respectivo de un flujo de video que está seccionado a través de los dispositivos (115) de almacenamiento;
utilizar la pluralidad de máquinas (110) de almacenamiento para:
aceptar las instrucciones de control de la velocidad de bits;
procesar el al menos un segmento del flujo de video de acuerdo con las instrucciones de control de la velocidad de bits, produciendo así un segmento cambiado del flujo de video, en el que el al menos un segmento se procesa cambiando la velocidad de bits del al menos un segmento de acuerdo con las instrucciones de control de velocidad de bits; y
proporcionar salida de al menos dicho segmento modificado del flujo de video, y
combinar la salida de las máquinas (110) de almacenamiento en un flujo (120) de video combinado.
5. El método de la reivindicación 4, en el que la máquina de almacenamiento que procesa el segmento es la máquina de almacenamiento en la que se almacena el segmento.
6. El método de una cualquiera de las reivindicaciones 4-5, que comprende además almacenar dicho segmento modificado del flujo de vídeo y proporcionar la salida de al menos dicho segmento modificado al recibir una solicitud.
7. El método de una cualquiera de las reivindicaciones 4-6, que comprende además producir y almacenar metadatos que comprenden información sobre una velocidad de bits de dicho segmento modificado del flujo de vídeo.
8. Un sistema configurado para recibir un flujo (120) de transporte de video que comprende una pluralidad de flujos de video, comprendiendo el sistema:
un servidor (100) configurado para:
dividir el flujo (120) de transporte de video en una pluralidad de flujos de video;
una pluralidad de máquinas (110) de almacenamiento, cada una de la pluralidad de máquinas (110) de almacenamiento tiene uno o más dispositivos (115) de almacenamiento configurados para recibir y almacenar al menos un segmento respectivo de un flujo de video en la pluralidad de flujos de video del servidor (100) de manera que cada flujo de video se retira a través de los dispositivos (115) de almacenamiento, estando configuradas además las máquinas (110) de almacenamiento para:
aceptar instrucciones de control de velocidad de bits;
procesar el al menos un segmento del flujo de video de acuerdo con las instrucciones de control de la velocidad de bits, produciendo así un segmento cambiado del flujo de video, en el que el al menos un segmento se procesa cambiando la velocidad de bits del al menos un segmento de acuerdo con las instrucciones de control de velocidad de bits; y
almacenar al menos el segmento modificado del flujo de vídeo, en el que el servidor (100) está configurado además para proporcionar las instrucciones de control de la velocidad de bits a la pluralidad de máquinas de almacenamiento para realizar el procesamiento del flujo de vídeo.
9. Un método para recibir un flujo (120) de transporte de video que comprende una pluralidad de flujos de video, comprendiendo el método:
dividir el flujo (120) de transporte de video en una pluralidad de flujos de video;
almacenar los flujos de video en una pluralidad de máquinas (110) de almacenamiento, cada una de la pluralidad de máquinas de almacenamiento tiene uno o más dispositivos (115) de almacenamiento que almacenan al menos un segmento respectivo de un flujo de video en la pluralidad de flujos de video de manera que cada flujo de video se retira en los dispositivos (115) de almacenamiento;
proporcionar instrucciones de control de la velocidad de bits a las máquinas (110) de almacenamiento;
utilizar las máquinas (110) de almacenamiento para:
aceptar, en las máquinas (110) de almacenamiento, las instrucciones de control de la velocidad de bits;
procesar el al menos un segmento del flujo de video de acuerdo con las instrucciones de control de la velocidad de bits, produciendo así un segmento cambiado del flujo de video, en el que el al menos un segmento se procesa cambiando la velocidad de bits del al menos un segmento de acuerdo con las instrucciones de control de velocidad de bits; y
almacenar el segmento modificado del flujo de vídeo.
ES08720002T 2008-03-18 2008-03-18 Un servidor VOD de velocidad controlada Active ES2816639T3 (es)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
ES2816639T3 true ES2816639T3 (es) 2021-04-05

Family

ID=41091305

Family Applications (2)

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

Family Applications Before (1)

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

Country Status (7)

Country Link
US (2) US8732786B2 (es)
EP (2) EP2269143B1 (es)
CN (1) CN102047236A (es)
CA (1) CA2717882A1 (es)
ES (2) ES2985657T3 (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
CN102047236A (zh) 2008-03-18 2011-05-04 法布里克斯电视有限公司 受控速率视频点播服务器
DK2823810T3 (da) 2009-07-09 2019-05-27 Novosom Verwaltungs Gmbh Amfotere liposomer, der omfatter iminolipider
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
HK1155614A2 (en) * 2012-01-06 2012-05-18 先科研有限公司 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
EP2965529A2 (en) * 2013-03-06 2016-01-13 Interdigital Patent Holdings, Inc. Power aware adaptation for video streaming
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
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
WO2006047722A2 (en) * 2004-10-27 2006-05-04 Eg Technology, Inc. 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
CN102047236A (zh) 2008-03-18 2011-05-04 法布里克斯电视有限公司 受控速率视频点播服务器

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2816639T3 (es) Un servidor VOD de velocidad controlada
US11758103B2 (en) Video client optimization during pause
US12041217B2 (en) Video optimization system and method based on gaze vector information
US12035019B2 (en) Video session with advertisement content
CN112292864B (zh) 用于提供360度沉浸式视频的图块选择和带宽优化
CN112789854B (zh) 用于在暂停期间在360º沉浸式视频中提供质量控制的系统和方法
US10356387B1 (en) Bookmarking system and method in 360° immersive video based on gaze vector information
US10432970B1 (en) System and method for encoding 360° immersive video
US10567780B2 (en) System and method for encoding 360° immersive video
JP2011514051A (ja) コンテンツデータを提供するための装置および方法
US10002644B1 (en) Restructuring video streams to support random access playback
CN1848940A (zh) 信息记录/再现系统、设备和方法
HK40037277B (en) A controlled rate vod server
HK40037277A (en) A controlled rate vod server
JP2011066612A (ja) ストリーミング配信システム、サーバ装置、ストリーミング配信方法及びプログラム