MX2007014332A - Estrategias para programar eventos de medios consumidores de anchura de banda. - Google Patents

Estrategias para programar eventos de medios consumidores de anchura de banda.

Info

Publication number
MX2007014332A
MX2007014332A MX2007014332A MX2007014332A MX2007014332A MX 2007014332 A MX2007014332 A MX 2007014332A MX 2007014332 A MX2007014332 A MX 2007014332A MX 2007014332 A MX2007014332 A MX 2007014332A MX 2007014332 A MX2007014332 A MX 2007014332A
Authority
MX
Mexico
Prior art keywords
conflict
program
media
solution
bandwidth
Prior art date
Application number
MX2007014332A
Other languages
English (en)
Inventor
Peter J Potrebic
Thomas H Taylor
Naga A K Pasumarthy
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MX2007014332A publication Critical patent/MX2007014332A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4583Automatically resolving scheduling conflicts, e.g. when a recording by reservation has been programmed for two programs in the same time slot
    • 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/47214End-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 content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Se describe una funcionalidad de programacion para resolver conflictos en los programas de disposistivos de cliente respectivos, en donde los programas son utilizados para gobernar el recordatorio de programas de medios a traves de los dispositivos de cliente respectivos. Los dispositivos de clientes respectivos utilizan funcionalidad de sintonizador virtual para recibir programas de medios a traves de canales de comunicacion respectivos, cada canal teniendo una cantidad prescrita de anchura de banda, en donde se recibe informacion de medios. La funcionalidad de programacion incluye un modulo de identificacion de conflicto para identificar conflictos en los programas, un modulo de enumeracion de solucion para enumerar soluciones a los conflictos, y un modulo de resolucion de conflicto para resolver los conflictos basandose en la salida del modulo de enumeracion de solucion. En un caso, los programas pueden ser divididos en una pluralidad de segmentos de tiempo, y las soluciones pueden ser enumeradas para cada segmento de tiempo a la vez.

Description

ESTRATEGIAS PARA PROGRAMAR EVENTOS DE MEDIOS CONSUMIDORES DE ANCHURA DE BANDA CAMPO TÉCNICO La presente se refiere a resolver conflictos en programas. En una implementación más particular, este tema se refiere a estrategias para resolver conflictos en programas que gobiernan la recepción y grabación de programas de medios por dispositivos de clientes respectivos.
ANTECEDENTES La funcionalidad de grabadora de video digital (DVR) convencional utiliza un programador. Un programador comprende funcionalidad que coordina la grabación de programas de medios. El programador realiza esta tarea al crear un programa y después grabar programas de medios identificados en el programa. Más específicamente, el programa incluye entradas que identifican los programas de medios respectivos. Las entradas incluyen información relacionada con tiempo y otros datos que rigen la grabación de los programas de medios correspondientes. Ocasionalmente, un usuario intenta agregar una entrada a la programación que tiene conflicto con una o más entradas pre-existentes. Por ejemplo, considerar el caso en el cual un dispositivo de cliente emplea un sintonizador físico convencional para recibir información de medios de una fuente de extremo de cabeza. Este sintonizador solo puede sintonizar y recibir un programa de medios en cualquier tiempo dado (por ejemplo, al sintonizar una frecuencia prescrita que transporta el programa de medios). De esa forma, si el usuario agrega una entrada al programa que identifica un programa de medios que temporalmente se traslapa la edición de otro programa de medios, entonces se crea un conflicto, debido que el sintonizador no puede sintonizar y recibir dos programas de medios en un momento. El programador puede resolver este conflicto al alterar al usuario del conflicto y solicitar que el usuario seleccione cualquiera de los programas de medios de conflicto. Un dispositivo de cliente más complejo puede emplear sintonizadores físicos múltiples. Esto permite que el dispositivo de cliente reciba múltiples programas de medios al mismo tiempo. En un caso, estos sintonizadores pueden implementarse como la misma clase de unidad. En otro caso, estos sincronizadores pueden implementarse como dos o más clases diferentes de unidades; por ejemplo, una primera clase de sintonizadores puede utilizarse para recibir una primera clase de programa de medios (tal como programas de medios de definición estándar), mientras la segunda clase de sintonizador puede utilizarse para recibir una segunda clase de programa de medios (tal como programas de medio de alta definición). La resolución de conflicto para estos tipos de dispositivos de clientes es más compleja que el caso de sintonizador individual, pero no se parte fundamentalmente del paradigma básico utilizado por el caso de sintonizador individual. Principalmente, el programador determina si, en cualquier tiempo dado, el dispositivo de cliente puede proporcionar suficientes sintonizadores físicos para grabar todos los programas de medios identificados en el programa. Si, en cualquier momento, el número de programas de medios para grabar se excede el número de sintonizadores disponibles, entonces existe un conflicto. El programador puede intentar resolver el conflicto en la forma específica anteriormente, es decir, al alertar al usuario al conflicto e impulsar que el usuario elimine una o más entradas en el programa para remover los conflictos valorados. El apoderado de la presente invención desarrolla dispositivos de cliente que se apartan de los modelos tradicionales utilizados anteriormente. Un dispositivo de cliente de esta variedad emplea funcionalidad de sintonizador virtual. La funcionalidad de sintonizador virtual distribuye un número variable de sintonizadores virtuales para recibir un número variable de programas de medios digitales al "sintonizar" estas corrientes en una transmisión única y/o forma de transmisión múltiple. Por ejemplo, supongamos que el dispositivo de cliente se distribuye a un total de seis unidades de anchura de banda para recibir información de medios. Además se asumen que cada programa de medios de definición estándar consume una unidad de anchura de banda y cada programa de medios de definición alta consume 2 unidades de anchura de banda. Esto significa que la funcionalidad de sincronizador virtual puede emplear cualquier combinación de definición estándar y programas de medios alta definición mientras la anchura de banda consumida total no excede 6 unidades. Por ejemplo, una posibilidad es que el dispositivo de cliente distribuya 6 sintonizadores virtuales para recibir 6 programas de medios de definición estándar. Otra posibilidad es que el dispositivo de cliente dedica 3 sintonizadores virtuales para recibir 3 programas de medios de alta definición correspondiente. Otra posibilidad es que el dispositivo de cliente dedica 2 sintonizadores virtuales para recibir dos programas de medios de alta definición y 2 sintonizadores virtuales para recibir 2 programas de de medios de definición estándar y así sucesivamente. La tecnología ilustrativa para implementar tal dispositivo de cliente se describe, por ejemplo, en la Solicitud de Patente de E.U.A. en serie No. 11/057,477, titulada, "UNIDAD DE PRESENTACIÓN DE MEDIOS INALÁMBRICOS Y MÉTODOS PARA USO", que nombra a los inventores David L. de Hear y otros, presentada el 14 de Febrero, 2005. Esta solicitud de patente se incorpora aquí por referencia en su totalidad. La resolución de conflicto es más compleja en un dispositivo de cliente que emplea funcionalidad de sintonizador virtual. Esto es debido a que el dispositivo de cliente está limitado por la cantidad total de anchura de banda disponible, más que el número total de sintonizadores físicos disponibles. Esto permite muchos más grados de libertad al crear y modificar un programa comparado con el paradigma de programación tradicional descrito anteriormente. Por ejemplo, cualquier evento que consume una porción de la anchura de banda disponible potencialmente puede causar un conflicto en una programación, y un cambio hecho a una parte de la programación puede propagarse a través del programa, lo que manda cambios potencialmente complejos para hacerse a otras entradas en el programa. Por lo tanto existe una necesidad ilustrativa en la técnica de proporcionar estrategias de resolución de conflicto para dispositivos de cliente que reciben programas de medios que utilizan funcionalidad de sintonizador virtual.
BREVE DESCRIPCIÓN DE LA INVENCIÓN De acuerdo con un aspecto ilustrativo, el método se describe para resolver conflictos de programa que afectan a un dispositivo de cliente que emplea funcionalidad de sintonizador virtual. El método comprende: establecer un programa que especifica programas de medios plurales; identificar al menos un conflicto en el programa causado por al menos un evento de anchura de banda; enumerar al menos una solución de lo antes mencionado de al menos un conflicto, en donde lo antes mencionado en al menos una solución toma en cuenta: (a) un cantidad total de anchura de banda disponible para el dispositivo de cliente para recibir programas de medios; y (b) una cantidad de anchura de banda consumida por cada uno de los programas de medios plurales antes mencionados en el programa; y resolver lo antes mencionado al menos en un conflicto basado en lo antes mencionado al menos en una solución. De acuerdo con otro aspecto ilustrativo, la identificación antes descrita de al menos un conflicto antes mencionado comprende: dividir el programa en al menos un segmento de tiempo candidato en el cual puede existir un conflicto; y determinar al menos un segmento de tiempo de conflicto del al menos un segmento de tiempo candidato antes mencionado para el cual existe un conflicto real. La enumeración de al menos una solución antes mencionada comprende enumerar al menos una solución que resuelve el conflicto para cada segmento de tiempo particular en vez de al menos un segmento de tiempo de conflicto antes mencionado. De acuerdo con otro aspecto ilustrativo, se describe un método para programar el procesamiento de medios para un dispositivo de cliente que emplea funcionalidad de sintonizador virtual. El método comprende: identificar al menos un evento de anchura de banda que afecta la grabación de un grupo de programas de medios por el dispositivo de cliente; identificar diferentes versiones de anchura de banda de al menos un programa de medios en el grupo de programas de medios; identificar una preferencia del usuario con respecto a la calidad en la cual se graban los programas de medios; y proporcionar un programa que rige la grabación de al menos un programa de medios antes mencionado basado en las versiones de anchura de banda identificadas y las preferencias de usuario, en donde la proporción del programa comprende resolver al menos un conflicto en el programa cuando se determina que existe tal conflicto. A continuación se describen implementaciones adicionales ilustrativas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 muestra un sistema ilustrativo para realizar la programación para dispositivos de cliente que emplean funcionalidad de sintonizador virtual. La Figura 2 muestra un dispositivo de cliente ilustrativo para usarse en el sistema de la Figura 1. La Figura 3 muestra funcionalidad de programación ilustrativa para usarse por el sistema en la Figura 1. Las Figuras 4a y 4b ¡lustran técnicas "horizontales" y "verticales" que la funcionalidad de programa de la Figura 3 puede utilizar para resolver conflictos. Las Figuras 5 y 6 juntas muestran un procedimiento que explica una forma ilustrativa de operación del sistema de la Figura 1. Las Figuras 7, 8a-8c, 9a-9d, 10a y 10b ilustra una aplicación del sistema de la Figura 1 para la resolución de casos específicos de conflictos de programa. Los mismos números se utilizan de la descripción y las Figuras para hacer referencias a componentes y características similares.
Series de 100 números se refieren a características originalmente encontradas en la Figura 1, series de 200 números se refieren a características originalmente encontradas en la Figura 2, series de 300 números se refieren a características originalmente encontradas en la Figura 3, y así sucesivamente.
DESCRIPCIÓN DETALLADA La siguiente descripción menciona la funcionalidad de programación para programar el procesamiento (por ejemplo, grabación) de programas de medios para un dispositivo de cliente que emplea funcionalidad de sintonizador virtual. La funcionalidad de sintonizador virtual sintoniza uno o más programas de medios en forma virtual, y simultáneamente puede consumir cualquier número de programas de medios, que proporciona la cantidad total de anchura de banda consumida que no excede una cantidad total de anchura de banda disponible. En otras palabras, un dispositivo de cliente que utiliza funcionalidad de sintonizador virtual puede "repartir" la anchura de banda disponible en una variedad de formas diferentes para consumir programas de medios. Esta capacidad introduce grados adicionales de libertad al construir programas, y de esa forma hace la tarea de programar programas de medios más compleja (comparada con programación realiza con respecto a un dispositivo de cliente que utiliza un número fijo de sintonizadores físicos). La funcionalidad de programación aquí descrita dirige efectivamente esta complejidad agregada. Como con la terminología, el término "información de medios" se refiere a cualquier dato representado en forma electrónica que puede consumirse por un usuario. La información de medios puede incluir cualquier información que transporta información de audio y/o video, tal como recursos de audio (por ejemplo, música, tema de palabra hablada, etc.), recursos de imagen fija (por ejemplo, fotografías digitales, etc.), recursos de imagen en movimiento (por ejemplo, programas de medios de televisión audiovisual, películas, etc.), y así sucesivamente. El término "programa de medios" representa cualquier unidad de información de medios que puede consumirse por un dispositivo de cliente. Por ejemplo, el programa de medios puede representar un programa de medios de televisión, una película, una pieza de música, y así sucesivamente. El término "dispositivo de cliente" se refiere a cualquier unidad para procesar y presentar información de medios. Por ejemplo, el dispositivo de cliente puede comprende un módulo de caja de TV por cable, una grabadora de video digital (DVR), un dispositivo de disco de video digital rescribible (DVD-RW), un dispositivo de televisión con funcionalidad de procesamiento de medios integrada, una computadora equipada con funcionalidad de procesamiento de medios, y así sucesivamente, o alguna combinación de tales dispositivos. El termino "programa" se refiere a una colección de entradas que especifican información saliente con respecto a programas de medios para grabarse. Por ejemplo, las entradas especifican en tiempo en los cuales comenzaran y terminaran los programas de medios. Las entradas también pueden especificar las fuentes (por ejemplo, canales) que proporcionarán a los programas de medios y otras características potenciales de los programas de medios. Generalmente, la información presentada en el programa se denomina como "información de programa" aquí. El término "guía de programa de medios" se refiere a información de programa maestro que define el tiempo de programas de medios entregados por una pluralidad de diferentes fuentes (por ejemplo, canales). El término "información de guía de programa de medios" generalmente se refiere a información presentada en la guía de programa de medios. La información de guía de programa de medios puede comprender información de guía de programa de medios electrónico (EPG) que se actualiza en una base periódica. Esta descripción incluye las siguientes secciones. La sección A explica un sistema ilustrativo para implementara la funcionalidad de programa. Y la sección B presenta cuadros de flujo y ejemplos acompañantes que ilustran la operación del sistema de la sección A.
A. Sistema ilustrativo (Figuras 1-4) Generalmente, cualquiera de las funciones descritas con referencia a las Figuras puede implementarse al utilizar software, firmware (por ejemplo, sistema de circuitos lógico fijo), procesamiento manual, o una combinación de estás implementaciones. El término "lógica", "módulo" o "funcionalidad", como se utiliza aquí generalmente representa software, firmware, o una combinación de software y firmware. Por ejemplo, en el caso de una implementación, el término "lógica", "módulo", o "funcionalidad" representa código de programa de medios (y/o instrucciones de tipo de declaración) que realizan tareas específicas cuando se ejecuta en un dispositivo de procesamiento o dispositivos (por ejemplo, CPU o CPUs). El código de programa de medios puede almacenarse en uno o más dispositivos de memoria legible por computadora. Más generalmente, la separación ilustrada de lógica, módulos y funcionalidad en unidades distintas puede reflejar un agrupamiento físico real y distribución de tal software y/o hardware, o puede corresponde a una distribución conceptual de tareas diferentes realizadas por un programa de medios de software individual y/o unidad de hardware. La lógica ilustrada, módulos y funcionalidad pueden localizarse en un sitio individual (por ejemplo, como se implementa por un dispositivo de procesamiento), o pueden distribuirse en ubicaciones plurales.
A.1. Revisión del Paradigma de Diseño Ilustrativo (Figura 1) La Figura 1 muestra un sistema 100 en el cual un centro de operaciones (OC) de extremo de cabeza 102 entrega programas de medios a una pluralidad de dispositivos de cliente (104, 106,... 108). El dispositivo de cliente representativo 104 se localiza en un hogar 110. El hogar 110 potencialmente puede incluir dispositivos de cliente adicionales (no mostrados). Por ejemplo, el hogar 110 potencialmente puede incluir diferentes dispositivos de clientes localizados en diferentes habitaciones respectivas del hogar 110. En la siguiente discusión, las características de la invención se describirán con respecto al dispositivo de cliente representativo 104 localizado en el hogar 110; pero las características identificadas aplican con igual fuerza a otros dispositivos de cliente y hogares. El centro de operación 102 utiliza un canal de comunicación ("canal") 112 para entregar información de medios al hogar ilustrativo 110. El canal 112 incluye una cantidad prescrita de anchura de banda 114 para dirigir información de medios al hogar 114. El término "anchura de banda" se refiere a la cantidad de información que puede transmitirse en el canal 112 en una cantidad de tiempo dada. En un caso, el centro de operaciones 102 transmite información en el canal 112 en una velocidad de datos constante igual a la anchura de banda 114. En otro caso, el centro de operaciones 102 transmite información en el canal 112 a una velocidad variable que se cubre con la anchura de banda 114. En cualquier caso, el canal 112 puede observarse metafóricamente como una tubería de comunicaciones que tiene un "diámetro" definido por la anchura de banda 114, que controla la cantidad máxima de información que puede fluir a través de la tubería en cualquier tiempo dado. La anchura de banda 114 puede acomodar la entrega de corrientes identificadas plurales de información de medios al hogar 110. Esto permite que un dispositivo de cliente individual 104 extraiga potencialmente múltiples corrientes de información de medios que utiliza un canal 112 para presentación simultánea ahí mismo. Esto, a su vez, permite que el usuario observe o grabe programas de medios plurales al mismo tiempo. En otro caso, el canal de comunicación 112 puede proporcionar corrientes plurales para recepción por diferentes dispositivos de cliente dentro del hogar 110 que "alimenta" el mismo canal 112. La suposición de simplificación se hace en la descripción que la anchura de banda 114 permanece substancialmente constante. Sin embargo, los algoritmos de programación aquí descritos también pueden aplicarse al caso en donde la anchura de banda 114 varía con el tiempo. Por ejemplo, los algoritmos de programación pueden aplicarse al caso en donde la anchura de banda 114 se establece a un primer nivel en ciertos momentos del día, y a un segundo nivel en otros momentos del día. Muchos otros escenarios de anchura de banda variables son posibles. En estos casos, los algoritmos de programación determinan la anchura de banda disponible durante la transmisión de futuros programas, y toman este factor en cuenta cuando programan los programas. Una suposición de simplificación adicional se hace en esta descripción que la anchura de banda consumida por cualquier programa permanece substancialmente constante, por ejemplo, a un nivel constante de definición estándar, un nivel constante de alta definición, y así sucesivamente. Sin embrago, los algoritmos de programación aquí descritos también pueden aplicarse al caso cuando la cantidad de anchura de banda consumida por un programa varia en el curso del programa. Los algoritmos de programación pueden tomar este factor adicional en cuenta cuando programan esta clase de programas. El dispositivo de cliente 104 emplea funcionalidad de sintonizador de virtual (no mostrada) para recibir programas de medios del canal 112. Por ejemplo, se asume que el centro de operaciones 102 proporciona a la información de medios a través de técnica de transmisión múltiple, tal como el Protocolo de Manejo de Grupo de Internet (IGMP). En la técnica de IGMP, una fuente de información de medios disemina la información de medios a un grupo de receptores que utilizan un árbol de nodos de distribución. En este caso, la funcionalidad de sintonizador virtual puede "sintonizar" un programa de medios al golpear ligeramente la distribución de transmisión múltiple del programa de medios; puede realizar esta tarea al localizar un nodo de distribución apropiado dentro de tales nodos. Alternativamente, se asume que el centro de operaciones 102 proporciona la información de medios a través de una técnica de transmisión única. En la técnica de transmisión única, una fuente de información de medios proporciona una diseminación con objetivo de la información de medios a un receptor en una forma de uno a uno. En este caso, la funcionalidad del sintonizador virtual puede "sintonizar" el programa de medios al identificar la fuente que proporciona el programa de medios (que puede corresponder, por ejemplo, a una máquina de servidor proporcionada por el centro de operaciones 102). Incluso en otros casos, la funcionalidad de sintonizador virtual puede utilizar una combinación de técnicas de transmisión múltiple y de transmisión única, o alguna otra técnica o técnicas. La funcionalidad de sintonizador virtual puede aplicar diferentes casos de su funcionalidad para recibir diferentes programas de medios. En la terminología utilizada aquí, tales casos separados constituyen "sintonizadores virtuales" separados. Los sintonizadores virtuales difieren de los sintonizadores físicos convencionales en varios aspectos. Por ejemplo, los sintonizadores virtuales "sintonizan" programas de medios al identificar lógicamente una fuente que distribuye tales programas de medios (en la forma descrita anteriormente). En contraste, los sintonizadores físicos sintonizan programas de medios para cerrar típicamente una frecuencia que modula los programas de medios. Además, la funcionalidad de sintonizador virtual puede soportar cualquier número de sintonizadores virtuales (mientras la cantidad agregada de anchura de banda consumida por los sintonizadores virtuales no exceda la cantidad total de anchura de banda distribuida 114). En contraste, los sintonizadores físicos representa unidades de hardware separadas; por consiguiente, un dispositivo de cliente tradicional proporciona un número fijo de tales unidades que no puede variar sin agregar físicamente (o remover) unidades. La funcionalidad de sintonizador virtual se califica como "virtual" por las razones mencionadas anteriormente.
Una explicación más detallada de las características de la funcionalidad de sintonizador virtual sigue. Se asume que el canal de comunicación 112 proporciona una anchura de banda 14 de N unidades. Además se asume que un programa de medios puede proporcionarse en diferentes calidades de grabación, tal como una calidad de grabación de definición estándar (SD) y una calidad de grabación de alta definición (HD). Una corriente de SD consume unidades de SSD de anchura de banda y una corriente de HD consume unidades de anchura de banda SHD, en donde SSD < SHD- Otro formato potencial es el formato de imagen en imagen (PIP), que comprende una versión en vista pequeña de la corriente, en donde SP|P < SSD- En el caso simplificado en el cual el dispositivo de cliente 104 recibe solo corrientes de SD, entonces el canal 112 puede soportar T sintonizadores virtuales: T = N/ SSD. O expresado de otra forma: K(SSD)=N. Esta expresión indica que un número K de corrientes SD debe, en el agregado, consumir menos de la N cantidad total de anchura de banda disponible 114. En el caso más general en el cual el dispositivo de cliente 104 puede recibir corrientes que consumen una cantidad arbitraria de anchura de banda S,, la siguiente expresión debe seguir verdadera en todos los momentos. k SS,=N. i=1 En otras palabras, la cantidad agregada a la anchura de banda consumida por las corrientes recibidas debe ser menor que la N cantidad total de anchura de banda disponible 114. Por ejemplo, se considera el caso ilustrativo en el cual el dispositivo de cliente 114 recibe un número L de corrientes SD que cada una consume unidades SSD de anchura de banda y un número J de corrientes de HD que cada una consume unidades SHD de anchura de banda. La limitación antes identificada se convierte en: L*SSD + J*SHD = N. Las ecuaciones antes descritas representan aproximaciones. En una aplicación real, el sistema 100 puede causar que una porción de su anchura de banda 114 contarle otras tareas además de la corriente principal de programas de medios. Por ejemplo, el sistema 100 puede utilizar una porción de anchura de banda para controlar la actividad de reintento que suministra paquetes perdidos al dispositivo de cliente 104. Como se describirá posteriormente, existen otras "salidas" potenciales en la anchura de banda disponible. Por ejemplo, una entidad (tal como una computadora personal) que se acopla al canal 112 puede consumir porciones de la anchura de banda 114, por ejemplo, al descargar música de Internet, cargar imágenes a un sitio web, recibir y/o enviar correo electrónico, y así sucesivamente. Esta anchura de banda consumida reduce la cantidad de anchura de banda total disponible para recibir programas de medios, y de esa forma afecta la programación de los programas.
El sistema 100 proporciona funcionalidad de programación que utiliza las limitaciones antes descritas cuando se programan la grabación de programas de medios para consumo por el dispositivo de cliente 104. En un caso, ia funcionalidad de programación puede implementarse en el centro de operaciones 102 como funcionalidad de programación de OC 116. En esta implementación, la funcionalidad de programación de OC 116 mantiene programas para todos los dispositivos de cliente (104, 106,...108) en el sitio de centro de operaciones 102. En otro caso, la funcionalidad de programación puede implementarse como funcionalidad de control de programa de lado de cliente 118 que se localiza en el dispositivo de cliente representativo 104. (Como se mencionó anteriormente, esta discusión se enfocará en dispositivo de cliente representativo 104; pero otros dispositivos de cliente pueden implementarse en su propia funcionalidad de control de programación de lado de cliente respectiva, y lo que se menciona con respecto al dispositivo de cliente 104 aplica a otros dispositivos de cliente con igual fuerza). Incluso en otro caso, la funcionalidad de programación puede implementarse de forma distribuida por una combinación de funcionalidad proporcionada en el centro de operaciones 102 en el dispositivo de cliente 104. Para facilitar discusión, y para proporcionar un ejemplo concreto, el resto de la discusión se asume que es el núcleo de la funcionalidad de programación que se implementa en el centro de operaciones 102 por la funcionalidad de programación de OC 116. El propósito de la funcionalidad de programación 116, con respecto a dispositivo de cliente representativo 104, es mantener una programación para el dispositivo de cliente 104 que determina el tiempo en el cual el dispositivo al cliente 104 debe grabar programas de medios proporcionados para el centro de operaciones 102. Para realizar de esta forma, el usuario del dispositivo de cliente 104 puede dirigir instrucciones de programación a la funcionalidad de programación 116 para crear un programa. La funcionalidad de programación 116 entonces, a su vez, puede enviar instrucciones de grabación hacia abajo al dispositivo de cliente 104 cuando el programa indica que es momento de grabar los programas de medios identificados en el programa. El dispositivo de cliente 104 entonces procede a granar los programas de medios identificados en un almacenamiento de local 120. En otras implementaciones, el programa puede utilizarse para determinar el flujo de uno más programas de medios al dispositivo al cliente 104 sin requerir necesariamente la grabación de estos programas de medios en el dispositivo de cliente 104. En otras palabras, el programa puede instruir al dispositivo de cliente 104 a sintonizar programas plurales al mismo tiempo, y el dispositivo de cliente 104 simplemente puede presentar estos programas al mismo tiempo, por ejemplo, en forma de imagen por imagen o de alguna de otra forma (sin grabar necesariamente estos programas). O el dispositivo de cliente 104 puede grabar algunos programas que recibe pero no otros. Incluso alternativamente, el centro de operaciones 102 por si mismo puede grabar los programas de medios en el centro de operaciones 102 en un almacenamiento de programa de medios apropiado (no mostrado), después de la cual estos programas pueden dirigirse al dispositivo de cliente 104 para presentaciones en el dispositivo al cliente 104. Sin embargo, el escenario antes mencionado elimina la necesidad de programación junta. Esto es debido a que, después de grabación de los programas en el centro de operaciones 102, generalmente no hay necesidad múltiples programas al dispositivo de cliente 104 al mismo tiempo, a menos que el dispositivo de cliente 104 por alguna razón desea recibir múltiples programas grabados al mismo tiempo, tal como en un escenario de imagen en imagen. En cualquier caso, la funcionalidad de programación 116 aplica las limitaciones antes identificadas para valorar la presencia de conflictos en un programa. Más específicamente, existe un conflicto cuando, en cualquier punto dado en el tiempo dentro de un programa, una o más de las limitaciones antes identificadas no se satisfacen. Principalmente, en esos puntos en el tiempo, el programa intenta grabar programas de medios que consumen en agregado, más anchura de banda de la que está disponible. Puede surgir un conflicto debido a diferentes clases de eventos. En un caso, un usuario puede agregar un nuevo programa de medios a un programa que crea un conflicto con uno o más programas de medios preexistentes en el programa. O el usuario puede modificar un programa de medios existente en el programa para que ahora interfiera con uno o más otros programas de medios en el programa. Por ejemplo, suponer que la anchura de banda disponible 114 acomodará la recepción de dos programas de medios de HD al mismo tiempo. Sí el usuario intenta grabar 3 programas de medios HD al mismo tiempo, entonces el usuario habrá creado un conflicto (debido a que el canal de comunicación 112 posiblemente no puede suministrar la cantidad requerida de información de medios, a menos, como se describió posteriormente, que sea posible substituir uno o más programas de medios SD en lugar de uno o más contrapartes de programas de medios HD). En otro caso, puede surgir un conflicto debido a cambios en la información de guía de programa de medios. Por ejemplo, supongamos que un programa se basa en la suposición que un programa de medios se difundirá en el tiempo X, pero entonces la no información de guía de programa en medios llega lo que cambia la difusión del programa de medios programado en el tiempo Y. Este nuevo tiempo al aire puede crear un conflicto con uno o más de otros programas de medios en el programa. En otro cas, puede surgir un conflicto debido a que cualquier otro evento en el sistema 100 que consume la anchura de banda provista 114, por lo tanto hace imposible recibir uno o más programas de medios previamente programados. Por ejemplo, asumir que una computadora personal (no mostrada) en el hogar 110 comparte el canal de comunicación 112 en el dispositivo de cliente 104, la computadora puede consumir la anchura de banda al interactuar con Internet (o alguna otra entidad), con lo cual reduce la cantidad total de anchura de banda disponible 114 que puede consumirse por el dispositivo de cliente 104. De esa forma, cuando la computadora está en operación, puede crear conflictos con programas que actualmente se dirigen al dispositivo de cliente 104 de acuerdo con un programa. En cualquiera de ambos casos, cuando ocurre un cambio cualquiera entre el programa, puede tener un efecto de onda que impacta otras entradas. Esto es debido a que todas las otras entradas expulsadas del grupo común de anchura de banda 114, para que la reducción de este grupo común potencialmente puede afectar muchas entradas en el programa. Las secciones posteriores proporcionarán una explicación detallada de la forma en la cual la funcionalidad de programación 116 dirige conflictos en el programa. A manera de introducción, la funcionalidad de programación 116 primero puede identificar eventos de anchura de banda. Como se describió anteriormente, estos eventos definen cualquiera de las ocurrencias que representan un cambio en la utilización de anchura de banda; estos eventos pueden o no causar una sobre distribución de anchura de banda. La funcionalidad de programación 116 entonces puede identificar diferentes versiones de anchura de banda de los programas de medios que se programan para grabarse, así como las preferencias de usuario con respecto a la forma en la cual estos programas de medios se van a grabar (tal como SD, HD, etc.). La funcionalidad de programación 116 entonces puede establecer un programa que toma en cuenta los eventos de anchura de banda, las versiones de anchura de banda disponibles de los programas de medios, y las preferencias de usuario. Al formar el programa, la funcionalidad de programación 116 proporciona un mecanismo para resolver cualquiera de los conflictos que pueden surgir. Un mecanismo ilustrativo para resolver los conflictos involucra identificar segmentos de tiempo en el programa para el cual ocurre una sobre distribución, enumerar soluciones para estos conflictos para cada segmento de tiempo, y presentar estas soluciones al usuario a través de una presentación de interfase de usuario (Ul). La presentación de Ul permite al usuario resolver el conflicto al seleccionar una o más soluciones identificadas.
A.2. Sistema Ilustrativo que Incluye la Funcionalidad de Programación (Figura 1) Un número de características del sistema 100 de la Figura 1 se identificarán en la sección de introducción anterior. Esta sección proporciona una revisión más comprensiva de las características en el sistema 100. Para comenzar, el centro de operaciones 102 incluye funcionalidad de adquisición 122 para suministrar la información de medios de una o más fuentes 124 de tal información. Las fuentes 124 pueden representar cualquier clase de entidad que produce o proporciona información de medios, tal como proveedores de televisión por cable o por satélite, uno o más proveedores de Video a demanda (VOD), uno o más alojamientos de publicación de información, una o más fuentes de biblioteca, cualquier clase de depósito habilitada por Internet, así sucesivamente. La información de medios recibida de estas fuentes 124 puede incluir video, audio, imágenes fijas, y/u otro contenido multimedia. Las fuentes 124 de programas de medios pueden proporcionar los programas de medios (o algún subgrupo del mismo) en múltiples formatos de grabación diferentes, tal como SD, HD, PIP (tamaño pequeño), y así sucesivamente. Esto proporciona al usuario la opción de ver y grabar los programas de medios en un formato de grabación preferido. La funcionalidad de adquisición 122 también recibe información de guía de programa de medios de una fuente de guía de programa de medios 126. La fuente de guía de programa de medios 126 puede representar cualquier clase de entidad que produce o proporciona información de guía de programa de medios, tal como un servicio de comercial que cumple y distribuye información de guía de programa de medios electrónicos (EPG). La información de guía de programa de medios típicamente identifica eventos de medios que ocurrirán dentro de un lapso de tiempo identificado, tal como lapso de 12 días. La información de guía de programa de medios puede identificar eventos al proporcionar información de ID que representa los eventos, los tiempos en los cuales los eventos comenzarán y terminarán, y las fuentes (por ejemplo, canales) que presentarán los eventos, y así sucesivamente.
La funcionalidad de adquisición 122 por si misma puede comprender una o más computadoras de servidor u otra funcionalidad dedicada a la tarea de recuperar la información de recurso. El centro de operaciones 102 opcionalmente incluye un almacenamiento de contenido de información 128 para almacenar la información de medios antes de su diseminación a los dispositivos de cliente (104, 106,...108). El almacenamiento de contenido de información 124 puede ímplementarse como una o más bases de datos y funcionalidad de manejo de base de datos asociada. El centro de operaciones 102 también puede incluir funcionalidad de diseminación de información 130 para suministrar información de medios a los dispositivos de cliente (104, 106,...108) a través de un mecanismo de acoplamiento 132. Diferentes sistemas pueden utilizar la funcionalidad de diseminación de información 130 en diferentes formas. Como se describió anteriormente, el sistema 100 puede utilizar la funcionalidad de diseminación de información 130 para transmitir información de medios al dispositivo de cliente 104, cuando se recibe desde la funcionalidad de adquisición 122 (o desde alguna otra fuente), en forma de transmisión múltiple, forma de transmisión única, una combinación de forma de transmisión única y de transmisión múltiple, o al utilizar alguna otra técnica de comunicación. La funcionalidad de diseminación de información 130 puede implementarse como una colección de módulos de servidor (no mostrada) que facilita la transmisión de información de medios a los dispositivos de cliente (104, 106,...108). En los módulos de servidor pueden proporcionar servicios redundantes, tal como cualquiera de los módulos de servidor que pueden asignarse para proporcionar el mismo servicio a cualquiera de los dispositivos de cliente (104, 106,...108). Cualquiera que sea la estrategia de entrega utilizada, el centro de operaciones 102 puede entregar información de medios a los dispositivos de cliente (104, 106,...108) que utilizan una variedad de paradigmas de empaquetado. En un caso, el centro de operaciones 102 puede suministrar una secuencia de programas de medios a usuario en diferentes canales. De este modo, el centro de operaciones 102 puede presentar los programas de medios de acuerdo con un programa fijo, en la forma de entrega tradicional de canales (aunque los canales pueden no tener connotación específica de frecuencia de sistemas análogos tradicionales que utilizan sintonizadores físicos). En otro caso, el centro de operaciones 102 puede suministrar programas de medios individuales a usuarios en tiempos fijos. La información de medios por sí misma puede expresar en cualquier formato, que incluye, pero no se limita a, estándar de MPEG-2, estándar VC-1 de Microsoft Corporation, el estándar ISO/ITU, y así sucesivamente. La información de medios codificada puede encapsularse en paquetes que utilizan cualquier formato, que incluye, pero no se limita a, Protocolo de Transporte de Tiempo Real (RTP), el Protocolo de Dirección de Tiempo Real (RTSP), y así sucesivamente. El mecanismo a acoplamiento 132 acopla el centro de operaciones 102 a los dispositivos de cliente (104, 106,...108). Este mecanismo de acoplamiento 132 puede implementarse en formas diferentes para adecuarse a diferentes técnicas y ambientes comerciales. Por ejemplo, el mecanismo de acoplamiento 132 puede incluir cualquier clase de red (o combinación de redes), tal como una red de área ancha (por ejemplo, Internet), una Intranet, infraestructura de red de Línea de Suscriptor Digital (DSL), infraestructura de acoplamiento de punto a punto, y asís sucesivamente. El mecanismo de acoplamiento 132 puede utilizar o involucrar cualquier clase de protocolo o combinación de protocolos. En el caso en donde una o más redes digitales se utilizan para diseminar información, el mecanismo de acoplamiento 132 puede incluir varios enlaces por cable y/o inalámbricos, enrutadores, entradas, servidores de nombre, y así sucesivamente. En el caso en donde se utiliza infraestructura DSL para diseminar información, el mecanismo de acoplamiento 130 puede utilizar los servicios, en parte, de infraestructura de acoplamiento de telefonía y funcionalidad de procesamiento DSL. El mecanismo de acoplamiento 132 permite comunicación de doble sentido entre el centro de operaciones 102 y los dispositivos de cliente (104, 106,...108). Por ejemplo, esta comunicación de dos sentidos permite al dispositivo de cliente 104 enviar selecciones de programación al centro de operaciones 102 (a través de la ruta 134), y permite al centro de operación 102 enviar instrucciones de grabación e información de medios al dispositivo de cliente 104 (a través de ruta 112 para el hogar 110). El canal 12 que conecta el centro de operaciones 102 al dispositivo de cliente 104 puede implementarse al utilizar el mismo mecanismo de comunicación que el canal 134 conecta al dispositivo de cliente 104 al centro de operaciones 102; alternativamente, estos canales pueden implementarse al utilizar diferentes mecanismos de comunicación. Al hacer referencia ahora a los aspectos de lado de cliente del sistema 100, los dispositivos de cliente (104, 106, ...108) por sí mismos pueden ¡mplementarse en diferentes formas. Cualquier dispositivo de cliente dado (104, 106,...180) puede representar alguna configuración de televisión con funcionalidad de interfase/procesamiento IP integral, un dispositivo de televisión con una caja de cable asociada acoplada a este, un dispositivo de grabadora de video digital (DVR), un dispositivo de disco de video digital rescribible (DVD-RW), una computadora personal que tiene funcionalidad de descodificación AV, y así sucesivamente (así como cualquier combinación de estos dispositivos). O un dispositivo de cliente dado (104, 106,...108) puede tomar la forma de un teléfono móvil personal, asistente digital personal (PDA), dispositivo de computadora de tipo de tableta, cualquier clase de computadora utilizable (por ejemplo, un dispositivo de computadora de tipo de reloj de muñeca), y así sucesivamente. En cualquier forma que se implementan los dispositivos de cliente (104, 106,...108), pueden comprender un módulo de procesamiento de medios que se acopla comunicativamente a un módulo de presentación. Por ejemplo, el dispositivo de cliente 104 incluye módulo de procesamiento de medios 136 acoplado al módulo de presentación de medios 138, el dispositivo de cliente 106 incluye módulo de procesamiento de medios 140 acoplado al módulo de presentación de medios 142, y el dispositivo de cliente 108 incluye un módulo de procesamiento de medios 144 acoplado al módulo de presentación de medios 146. Los módulos de procesamiento de medios (136, 140, ...144) pueden comprender funcionalidad para procesar la información de medios, y los módulos de presentación de medios (138, 142,...146) pueden condenar funcionalidad para presentar la salida de los módulos de presentación de medios (136, 140,...144). Los módulos de procesamiento de medios (136, 140,...144) pueden integrarse con los módulos de presentación de medios (138, 142, ...146) (por ejemplo, en el caso en donde los módulos de procesamiento de medios se integran en grupos de televisión listos de IP respectivo), o los módulos de procesamiento (136, 140,...144) pueden ser separados (pero acoplados a) los módulos de presentación de medios (138, 142,...146) (por ejemplo, en el caso en donde los módulos de procesamiento de medios se aloja en cajas de Tv portátil respectivas que se acoplan a aparatos de televisión). Como se describió anteriormente, el dispositivo de cliente representativo 104 incluye el módulo de procesamiento de medios 136, que, a su vez, puede comprender funcionalidad de control de programa de lado de cliente opcional 118. Si está presente, esta funcionalidad de control de programa 118 realiza cualquier tarea que se requiera para cooperar con la funcionalidad de programación 116 desplegada en el centro de operaciones 102. Finalmente, el dispositivo de procesamiento de medios 104 también incluye el almacenamiento local 120. El almacenamiento local 120 puede utilizarse para almacenar corrientes de información de medios en respuesta a instrucciones desde el centro de operaciones 102, y así sucesivamente. Como se describió anteriormente, el sistema 100 puede distribuir la funcionalidad de programación completa para la funcionalidad de programación OC 116. El sistema 100 puede distribuir la funcionalidad de programación completamente a la funcionalidad de control de programación de lado de cliente 118. O el sistema 100 puede distribuir la funcionalidad de programación tanto la funcionalidad de programación OC 116 como la funcionalidad de control de programa de lado de cliente 118 de forma distribuida. Como se mencionó anteriormente, la descripción se enfocará en una implementación en la cual la funcionalidad de programación OC 116 se pone en tarea con la responsabilidad de crear y mantener programas, y para resolver conflictos que suspenden los programas. La funcionalidad de control de programa de lado de cliente 118 se pone en la tarea con la responsabilidad de interactuar con la funcionalidad de programa de OC 116 y para coordinar el almacenamiento de programas de medios en el almacenamiento local 120 cuando se solicita para hacerlo o la funcionalidad de programación OC 116. La Sección A.4 (posterior) proporciona información adicional con respecto a una implementación ilustrativa de la funcionalidad de programa OC 116.
A.3. Detalles de Extremo de Cliente Ilustrativos (Figura 2) La Figura 2 proporciona detalles adicionales con respecto al dispositivo de cliente representativo 104 (introducido en el contexto de la Figura 1). La composición del dispositivo de cliente 104 mostrada en la Figura 2 es solamente representativa de una demostración de implementaciones posibles. El dispositivo de cliente 104 comprende el módulo de procesamiento antes identificados 136 acoplado al módulo de presentación de medios 138. En un caso, el módulo de procesamiento de medios 136 puede comprender funcionalidad de procesamiento AV combinada con el módulo de presentación de medios 138 en un dispositivo integrable individual (por ejemplo, un aparato de televisión listo de IP individual). En otro caso, el módulo de procesamiento de medios 136 puede comprender una caja de TV por cable separada o unidad de DVR (u otra clase de unidad separada) que se acopla comunicativamente al módulo de presentación de medios 138 (por ejemplo, una pantalla de televisión).
El módulo de procesamiento de medios 228 puede incluir un número de módulos para realizar sus tareas atribuidas. Para comenzar, el módulo de procesamiento de medios 136 incluye un módulo de interfase de red 202. El módulo de ¡nterfase de red 202 puede representar cualquier funcionalidad para recibir información de medios del centro de operaciones 102 que utiliza cualquier mecanismo de acoplamiento. Por ejemplo, el módulo de interfase de red 202 puede comprender un NIC de Ethernet, un módem de DSL, un módem de cable, una interfase de red inalámbrica, u otra clase de equipo de interfase de red. El módulo de procesamiento de medios 136 también incluye memoria 204. Una porción de la memoria 204 puede comprender una memoria intermedia de tipo FIFO para almacenar información de medios antes que se decodifique la información. El módulo de procesamiento 136 también incluye un descodificador audio visual (AV) 206 para descodificar (y descomprimir) la información de medios recibida en sus componentes de video y de audio. La descodificación comprende ordenar paquetes (si se reciben fuera de orden), extraer información de medios de la corriente de paquetes recibidos, y también extraer información de tiempo que regirá la reproducción de la información de medios. El descodificador 206 también puede implementar la funcionalidad de sintonizador virtual descrito anteriormente, por ejemplo, al incluir lógica para sintonizar una o más corrientes identificadas de información de medios que utiliza una técnica de transmisión única y/o de transmisión múltiple, o alguna otra técnica. El módulo de procesamiento de medios 136 también incluye uno o más procesadores 208 para ejecutar instrucciones para implementar la funcionalidad del módulo de procesamiento de medios 228. El módulo de procesamiento de medios 136 también incluye una interfase de l/O 210 para interactuar con el consumidor a través de uno o más dispositivos de entrada (por ejemplo, un controlador remoto 212, una PC 214, una palanca de mandos (no mostrada), un mecanismo de entrada sensible al tacto (no mostrado), y así sucesivamente). El módulo de procesamiento de medios 136 también incluye un módulo de interfase A/V 216 para proporcionar información de medios en un formato apropiado (por ejemplo, en un espacio de color apropiado) al módulo de presentación de medios 220. El módulo de procesamiento de medios también incluye el almacenamiento local antes ¡dentificador 120 para almacenar información de medios y/o otra información. En general, cualquier combinación de dispositivo de almacenamiento (por ejemplo, memoria 204, almacenamiento local 120, etc.) desplegados por el dispositivo de cliente 104 pueden utilizarse para almacenar instrucciones que implementan la funcionalidad de control de programa de lado de cliente 118 (si se utiliza esta funcionalidad de la del cliente opcional). Finalmente, el módulo de procesamiento de cliente 136 puede incluir varios otros módulos 218, no específicamente enumerados en la Figura. Por ejemplo, el módulo de procesamiento de cliente 136 puede incluir un compositor de gráficos para combinar un componente de video de la información de medios del descodificador de AV 206 en una base de marco por marco con información de gráficos. La información de gráficos puede comprender varias presentaciones de interfase de usuario que se sobreponen en la información de medios. El módulo de presentación de medios 138 puede comprender cualquier clase de dispositivo para presentar información de AV, que incluye un dispositivo de-tipo CRT, un dispositivo de tipo LCD, y así sucesivamente. En cualquier caso, el módulo de presentación de medios 138 define una superficie de presentación 220. El módulo de procesamiento de medios 136 puede presentar una o más presentaciones de interfase de usuario 222 en la superficie de presentación 220. Por ejemplo, una presentación de interfase de usuario (no mostrada) puede proporcionarse lo que permite al usuario crear, revisar e inspeccionar un programa. Esta interfase puede proporcionarse por la funcionalidad de programa 116 (del centro de operaciones 102) o localmente por la funcionalidad de control de programa de lado de cliente 118 (o por una combinación de tal funcionalidad).
A.4. Detalles de Funcionalidad de Programa Ilustrativos (Figura 3) La Figura 3 muestra detalles ilustrativos de la funcionalidad de programa 116. Los componentes mostrados en la Figura 3 pueden localizarse juntos en un sitio de extremo de cabeza individual o distribuido en sitios plurales. En general, la lógica mostrada en la Figura 3 es ilustrativa; otra funcionalidad puede aplicar diferentes módulos de lógica para implementar los principios de diseño básicos descritos aquí. Para comenzar, la funcionalidad de programación 116 incluye un módulo de interfase de cliente 302 para usual interactuar con unos dispositivos de cliente (104, 106,...108) y usuarios asociados. La funcionalidad de programación 116 también incluye un módulo de configuración de programa 304 que proporcionar funcionalidad para crear, realizar e inspeccionar programas 306. El módulo de configuración de programa 304 almacena estos programas 306 en un almacenamiento de programa 308. Los programas 306 rigen la grabación de información de medios (tal como programas de medios de televisión) para reproducción en dispositivos de cliente respectivos (104, 106,...108). (Alternativamente, los dispositivos de cliente pueden almacenar sus propios programas respectivos en sus almacenamientos locales, lo que delega el procesamiento de estos programas a la funcionalidad de programación de extremo de cabeza 116). Cada programa puede incluir una o más entradas que describen programas de medios de presentación de medios asociados. Por ejemplo, una entrada puede describir un programa de medios al identificar su tiempo de inicio, tiempo de fin, fuente (por ejemplo, canal en el cual se va a presentar), y otras características salientes del programa de medios. Al crear programas, el módulo de configuración de programación 304 puede acceder tanto a la información de fuente de guía (desde la fuente de guía 126) y una información de preferencia de usuario 310. La información de guía de programa de medios especifica que programas de medios se están transmitiendo en tiempos particulares y los canales particulares. La información de guía de programa de medios también puede especificar los formatos disponibles de los programas de medios (Tal como SD, HD, etc.). La información de preferencia de usuario 310 indica las preferencias de grabación de los usuarios, por ejemplo, con respecto al formato que se va a utilizar para grabar programas de medios seleccionados por los usuarios. Por ejemplo, un usuario del dispositivo de cliente 104 puede indicar que prefiere que todos los programas de medios deban grabarse en formato de HD, excepto para nuevos programas de medios (los que deben grabarse en formato SD). Si este usuario entonces agrega un nuevo programa de medios a un programa, el módulo de configuración de programa 304 puede configurarse para crear automáticamente una entrada en el programa que específica una versión de programa de medios que tiene el formato de grabación deseado (si ese formato está disponible). Como se describió anteriormente, diferentes eventos pueden causar un conflicto de grabación. Uno de tales eventos surge cuando el usuario agrega un nuevo programa de medios a un programa que tiene conflicto con uno o más programas de medios preexistentes (debido a que, para uno o más segmentos, la grabación de todos los programas de medios especificados requerirá más anchura de banda de la que está disponible). Otro evento surge cuando el usuario modifica un programa de medios pre-existente para que ahora interfiera con uno o más otros programas de medios en el programa. Otro evento surge cuando el proveedor de la información de guía de programa de medios cambia el tiempo o formato de un programa de medios programado para que ahora este conflicto con uno o más otros programas de medios en el programa. Incluso casos adicionales dé conflicto son posibles. En el caso de- un conflicto, la funcionalidad de programación 116 emplea funcionalidad de análisis de conflicto 312 para identificar y resolver el conflicto. La funcionalidad de análisis de conflicto representativa 312 incluye un número de módulos para realizar diferentes aspectos de sus responsabilidades. Primero, un módulo de identificación de conflicto 314 identifica conflictos en un programa. En una técnica, este módulo 314 realiza esta tarea al dividir un programa en segmentos de tiempo distintos. Cada segmento de tiempo se distingue por el hecho que representa una combinación diferente de eventos de consumo de medios que un segmento de tiempo temporalmente precedente. Cada segmento de tiempo también representa un nuevo potencial que está presente un conflicto. Por ejemplo, el comienzo de un nuevo programa de medios demarca el inicio de un nuevo segmento de tiempo. El tiempo de ese segmento de tiempo puede corresponder a cualquier evento de anchura de banda subsecuente, tal como el inicio o fin de cualquier programa de medios. Algunos de estos segmentos de tiempo contienen un conflicto y otros no. Por consiguiente, después de la formación de los segmentos, el módulo de identificación de conflicto 314 puede identificar esos segmentos de tempo parea los cuales existe un conflicto real (por ejemplo, cuando la cantidad de anchura de banda requerida excede la cantidad de anchura de banda disponible 114). Un módulo de enumeración de solución 316 enumera soluciones a los conflictos identificados por el módulo de identificación de • conflicto 314. La Figura 4a representa un método horizontal de resolver conflictos, mientras la Figura 4b representa un método vertical. En ambos casos, se asume que el usuario primer crea un programa que identifica programas de medios A, B y C, que ocurren durante los lapsos de tiempo ilustrados mostrados en estas Figuras. En este punto en tiempo, no hay conflicto debido a que el canal de comunicación 112 incluye anchura de banda suficiente para registrar los tres de estos programas de medios, incluso en las uniones en las cuales el programa de medios A temporalmente se sobrepone con el programa de medios C, y después, entonces, cuando el programa de medios B temporalmente se traslapa con el programa de medios C. Sin embargo, se asume que el usuario subsecuentemente crea una entrada de programa para grabar el programa de medios D. Esto crea al menos un conflicto. Se asume que la anchura de banda 114 no es suficiente para recibir programas de medios A, C y D (en esa unión en la cual se traslapan estos programas de medios), y/o es insuficiente para recibir programas de medios B, C y D (én la unión la cual estos programas de medios se traslapan). El método horizontal mostrado en la Figura 4a ofrece soluciones completas a todos los conflictos. Por ejemplo, las soluciones posibles al programa pueden ser: (1) no grabar programa de medios C; o (2) no grabar programas de medios A y B; o (3) no grabar programa de medios D. La selección de cualquiera de estas soluciones resuelve todos los conflictos para el lapso de tiempo completo abarcado por el programa (en este caso, el lapso definido por 5 pm a 10 pm). El método vertical mostrado en la Figura 4b enumera soluciones para cada segmento de tiempo. Por ejemplo, se asume que el módulo de numeración de solución 316 determina que los segmentos S1 y S2 contienen contextos. Esto significa que, para el segmento de tiempo S1, la anchura de banda disponible 114 es insuficiente para grabar programas de medios A, C y D, y para el segmento de tiempo S2, la anchura de banda disponible 114 es insuficiente para grabar programas de medios B, C y D. En este caso, el módulo de enumeración de solución 316 identifica diferentes grupos de soluciones para el segmento de tiempo S1 y alternando el tiempo S2. Por ejemplo, las soluciones al problema para el segmento S1 pueden ser: (1) no grabar el programa de medios A; o (2) no grabar el programa de medios C; o (3) no grabar el programa de medios D. En situaciones de los programas consuman la misma cantidad de anchura de banda, el acercamiento vertical representa soluciones que resuelven el conflicto al remover programas individuales (como opuesto a soluciones que resuelven el conflicto al remover combinaciones de múltiples programas). En ciertas circunstancias, el módulo de enumeración de solución 316 determinará que uno o más programas de medios no juegan un papel crítico al resolver el conflicto. Es decir, para estos programas de medios, nace una diferencia si se graban o no se graban. En un ejemplo, el programa de medios se reclama no esencial debido a que la remoción de este programa de medios no liberará suficiente anchura de banda para resolver el conflicto. En un caso más general, un programa de medios se reclama no esencial cuando no hace una contribución necesaria a cualquier solución única. Por ejemplo, se considera el caso en donde una solución única es cancelar todos los tres programas SD, X, Y, y Z; en este caso, los tres de estos programas son "esenciales" y no deben removerse del análisis. Por otro lado, se considera el caso en donde X e Y son programas HD que son suficientes para resolver el conflicto cuando se combinan; si Z es un programa SD, z no puede contribuir a ninguna solución única (al asumir que ni X + Z ni Y+Z son soluciones). Si uno o más programas de medios se determinan como no esenciales, entonces estos programas de medios efectivamente pueden removerse del análisis para no complicar innecesariamente la decisión de usuario. Finalmente, regresando a la Figura 3, la funcionalidad de análisis de conflicto 312 incluye un módulo de resolución de conflicto 318. El módulo de resolución de conflicto 318 resuelve los conflictos valorados por el módulo de identificación de conflicto 314 que utiliza una o más de las soluciones determinadas por el módulo de enumeración de solución 316. Por ejemplo, se asume que el conflicto surge cuando el usuario intenta agregar el nuevo programa de medios D al programa. En este momento, el módulo de remoción de conflicto 318 puede alertar al usuario para tener conflicto y son posibles soluciones, y entonces permitir que el usuario seleccione manualmente una o más de las soluciones. (Como se describirá posteriormente, si un usuario no está disponible para resolver manualmente el conflicto, entonces la funcionalidad de análisis de conflicto 312 puede intentar resolver automáticamente el conflicto basado en varias reglas). Por ejemplo, se considera el caso en donde el método horizontal se utiliza para enumerar soluciones. En este caso, el módulo de resolución de conflicto 318 sucesivamente puede presentar diferentes soluciones al usuario (en donde cada solución remueve todos los conflictos en el programa). Por ejemplo, el módulo de resolución de conflicto 318 primero puede preguntar al usuario si desea someterse a la grabación de programa de medios C. Si el usuario declina esta solución, el módulo de resolución de conflicto 318 puede preguntar al usuario si desea someterse a la grabación de ambos programas de medios A y B. Si un usuario declina esta solución, el módulo de resolución de conflicto 318 puede pedir al usuario si desea someterse a la grabación de programa de medios D, y así sucesivamente. El método vertical puede aplicar un acercamiento similar para resolver conflictos, es decir, al dividir en pasos sucesivamente el usuario a través de diferentes soluciones. Pero en este caso, el módulo de resolución de conflicto 318 dirige cada segmento en conflicto a su vez, al pedir al usuario que seleccione una solución para cada segmento. En un caso ilustrativo, la selección del usuario para un primer segmento (por ejemplo, someter a la grabación de un programa de medios particular por ese segmento), eliminará completamente cada programa de medios de programa. Esto puede o no tener el efecto de cambiar la situación en conflicto para un segmento que ocurre posterior (es decir, también al remover el conflicto para este segmento posterior). Alternativamente, el módulo de resolución de conflicto 318 puede configurarse para que la instrucción del usuario remueva un programa de medios para un segmento en conflicto que solo removerá esa parte del programa de medios en ese segmento, lo que potencialmente resulta en la grabación del resto de ese programa de medios en segmentos posteriores. El usuario puede desear esta opción debido a que el usuario aún no está interesado en grabar la parte del programa de medios en conflicto, por ejemplo, en donde el usuario desea obsevar el último cuarto de un juego de fútbol, e incluso aunque no puede observar las primeras partes del juego. Pueden utilizarse diferentes técnicas de interfase de usuario para facilitar la selección de usuario de soluciones. En una técnica, el módulo de resolución de conflicto 318 presenta información textual que identifica las soluciones posibles, en conjunto con una presentación de barra de tiempo gráfica que representa el traslape de programas de medios (por ejemplo, en la forma de las presentaciones mostradas en las Figuras 4a y 4b). El usuario entonces puede dar clic en la información textual que corresponde a la solución a soluciones deseadas. En otro caso, el módulo de resolución de conflicto 318 puede permitir al usuario interactuar con la presentación de barra de tiempo gráfica por sí misma. Por ejemplo, el módulo de resolución de conflicto 318 puede proporcionar indicio visual en barras de tiempo (tal como puntos a color u otros símbolos) que representan un grupo de programas de medios que pueden grabarse dentro de las limitaciones de la anchura de banda disponible 114. Por ejemplo, se considera el primer caso de la solución horizontal. El módulo de resolución de conflicto 318 inicialmente puede presentar las barras de tiempo mostradas en la Figura 4a con puntos rojos en las barras de tiempo para programa de medios A, programa de medios B, y programa de medios D, que es una de las soluciones. Esto significa que, si el usuario acepta esta solución, entonces los programas de medios A, B y D se grabarán, pero no el programa de medios C. Si el usuario desea grabar C, el módulo de resolución de conflicto 318 puede permitir que el usuario de clic en la barra de tiempo para el programa de medios C. Esto hará que se presente un punto rojo en el programa de medios C, y posiblemente los puntos rojos se remuevan de los programas de medios A y B. Si esta solución no es satisfactoria, el usuario entonces puede dar clic en cualquiera de las barras de tiempo para programas de medios A y B, lo que puede causar que los puntos rojos de nuevo se presente en estas barras de tiempo, pero pueden causar la remoción del punto rojo de la barra de tiempo del programa de medios D. Esta forma, el usuario puede circular a través de soluciones posibles. La presentación gráfica de barras de tiempo y el índice de grabación asociada permite al usuario ganar entendimiento fácil de las permutaciones de grabación posibles. El mismo paradigma gráfico puede emplearse para revisar y seleccionar soluciones para la técnica vertical. Pero en este caso, el módulo de resolución de conflicto 318 puede secuenciar gráficamente a través de las diferentes soluciones para cada segmento de tiempo a su vez. La lógica puede agregarse al mecanismo de solución antes descrito para asegurar que el módulo de resolución de conflicto 318 visita cada solución posible antes de repetir una solución. Esto puede ser una característica útil para prevenir que el módulo de resolución de conflicto 318 "rebote" entre dos soluciones. Por ejemplo, si el usuario da clic en la barra de tiempo para el programa de medios C para agregar un punto a color a la barra de tiempo C, puede ser apropiado remover el punto de color de la barra de tiempo D, lo que deja los puntos de color para barras de tiempo A y B. Pero si el usuario entonces da clic en la barra de tiempo D, no se instruye para que de nuevo remueva el punto de color de la barra de tiempo C (debido a que el usuario solo indicó que esta solución no fue satisfactoria). Más que eso, se debe considerar más constructivo remover los puntos de color de las barras de tiempo A y B, lo que deja a los puntos de color en las barras de tiempo C y D. Esto asegura que el módulo de resolución de conflicto 318 completamente se pone en secuencia a través de las opciones disponibles. Esta característica puede implementarse al mantener una lista de soluciones posibles, y al asegurar que no se repita ninguna solución hasta que todas las opciones se visitaron en la lista. Pueden • utilizarse otras características para mejorar la experiencia de Ul antes descritas. Por ejemplo, el módulo de resolución de conflicto 318 puede ordenar las soluciones en la lista, por ejemplo, al ordenar las soluciones de acuerdo con su deseabilidad potencial. Pueden utilizarse diferentes reglas para valorar la deseabilídad. Por ejemplo, una regla puede ser secuencia a través de todas las soluciones que involucran la remoción solo de un programa de medios antes de moverse en la soluciones para involucrar la remoción de múltiples programas de medios. Por ejemplo, en el acercamiento vertical, se considera el caso en donde los programas A, B, y C ya se programaron. Los programas A y B consumen una unidad de anchura de banda y el programa C consume dos unidades de anchura de banda. Se asume que existe un siguiente intento para grabar un programa D que consume dos unidades de anchura de banda. Una solución al remover programas A y B; otra solución es remover el programa C. La regla de ordenamiento de solución antes descrita puede impulsar al usuario al considerar remover el programa C antes de remover ambos programas A y B (bajo la suposición que remover un programa es menos destructivo que remover dos programas). Otra regla puede confiar en criterios de selección que el usuario define expresamente; por ejemplo, el usuario puede indicar que valora programas de medios más arriba que los programas de medios de noticias; de esa forma, si existe una lección entre estos dos tipos de programas de medios, el módulo de resolución de conflicto 318 primero presentará la solución en la cual se remueve el programa de medios de noticias. Estas son simplemente reglas ilustrativas; otras aplicaciones pueden adoptar diferentes reglas. De acuerdo con otra característica, uno o más de los programas de medio en el programa puede tener transmisiones al aire que tiene diferente calidad de grabación. Por ejemplo, se asume que el usuario inicial indica que desea grabar un programa de medios de deporte del modo HD. Sin embargo, se asume que el usuario posteriormente agrega otro programa de medios al programa que pone en conflicto este programa de medios de deporte. El módulo de resolución de conflicto 318 puede configurarse para alertar al usuario de la disponibilidad del programa de medios de deporte en un formato diferente, tal como SD, en el caso que la selección de este formato remedie el conflicto. La disponibilidad de formatos de grabación alternativos puede comunicarse al usuario en diferentes formas. Por ejemplo, como se muestra en la Figura 4a, el módulo de resolución de conflicto 318 puede agregar indicio visual (por ejemplo, una burbuja de mensaje) a una barra de tiempo (asociada con un programa de medios particular) que indica que una grabación de calidad inferior está disponible para este programa de medios que puede remediar el conflicto. El usuario puede dar clic en el indicio para invocar la grabación de calidad inferior. De acuerdo con otra característica, si uno o más programas de medios no presentan una parte en la solución (debido a que la remoción de estos programas de medios posiblemente no pueda resolver el conflicto) entonces el módulo de resolución de conflicto 318 puede eliminar estos programas de medios para que no aparezcan en la presentación de Ul. Esto es benéfico debido a que la remoción de estos programas de medios produce una presentación Ul menos agrupada, y potencialmente hace a la presentación de Ul más fácil de entender, lo que facilita la toma de decisión del usuario. De acuerdo con otra característica, un proveedor puede agregar limitaciones "artificiales", que rigen como se distribuirá la anchura de banda disponible 114 a sintonizadores virtuales. Es decir, como se mencionó anteriormente, la funcionalidad de sintonizador virtual normalmente puede ser capaz de dividir la anchura de banda disponible en cualquier número de corrientes, lo que proporciona al agregado de la anchura de banda consumida que no excede la anchura de banda disponible 114. Pero un proveedor puede desear especificar que solo un número máximo de sintonizadores virtuales se desplegara, tal como dos sintonizadores virtuales HD y dos sintonizadores virtuales SD, y así sucesivamente. Si es aplicable, la funcionalidad de análisis de conflicto 312 puede tomar estas limitaciones "artificiales" en cuenta en su técnica de resolución de conflicto. Incluso otras características o variaciones de la funcionalidad de programación 116 son posibles. La solicitud de Patente de E.U.A. co dependiente comúnmente asignada a No. (No. de Apoderado No. 13768.520/308482.01), titulada "Manejo de Conflicto de Grabación de Video e Interfase de Usuario", nombra a los inventores de Aaron J. DeYonker, Peter J. Potrebic, Thomas H. Taylor, y Jeffrey C. Fong describe funcionalidad de interfase de usuario adicional y otras características que pueden aplicarse al caso de programación de programas en un ambiente de sintonización virtual. Esta aplicación se incorpora aquí por referencia en su totalidad. Como un tema final, pueden activarse otros conceptos por acciones que no formen respuesta directa a las acciones del usuario. Por ejemplo, la información de guía de programa de medios puede actualizarse periódicamente. Si nueva información de guía de programa de medios indica que cambio una ranura de tiempo de entrada programada, o su calidad de grabación cambio, etc., entonces la funcionalidad en el conflicto 312 puede entrar para intentar resolver cualquiera de los conflictos que pueden crear estos cambios. En un caso, si es posible, la funcionalidad de análisis de conflicto 312 puede marcar el conflicto para resolución posterior por el usuario cuando interactúa el dispositivo de cliente 104. Si no es posible, entonces la funcionalidad de análisis de conflicto 312 puede intentar resolver automáticamente el conflicto. Esto puede realizarse al seleccionar automáticamente una solución que se determina para basarse mejor entre reglas ilustrativas identificadas anteriormente (en las cuales se ordenan soluciones basándose en su deseabilidad valorada). Por ejemplo, un arreglo puede degradar automáticamente la calidad de grabación dada uno o más programas de HD a SD para resolver el conflicto (incluso aunque puede ser la preferencia normal del usuario grabar por un almacena HD): B. Método Ilustrativo de Operación (Figuras 5-10) Las Figuras restantes describen la operación de la funcionalidad de programación 116 de la forma de cuadro de flujo, en conjunto con ejemplos específicos que clarifican la operación de los cuadros de flujo. Para facilitar la discusión, se describen ciertas operaciones como constituyendo pasos distintos realizados en cierto orden. Tales implementaciones son ilustrativas y no limitantes. Si otros pasos aquí descritos pueden agruparse y realizarse en una operación individual, y en inciertos pasos pueden realizarse en u orden que difiere del orden empleado en el ejemplo mencionado en esta descripción. Mientras ya se ha explicado muchas funciones descritas en estos cuadros de flujo en secciones previas, esta sección sirve principalmente como una revisión de esas funciones.
B.1. Método de Operación de la Funcionalidad de Programación (Figuras 5 y 6) El procedimiento 500 mostrado en la Figura 5 proporciona una revisión de un método ilustrativo de operación de la funcionalidad de programación 116 de las Figuras 1 y 3. En el paso 502 la funcionalidad de programación 116 identifica uno o más eventos de anchura de banda que pueden presentar conflictos de programa. Como se describió previamente, una primera clase de evento representa la adición de un nuevo programa de medios a un programa, o la modificación de un evento de medios existente (por ejemplo, a alterar su calidad de grabación). Una segunda clase de evento representa un cambio en la información de guía de programa de medios (u otro evento no directamente causado por las acciones de usuario), que crea un conflicto. En el paso 504, la funcionalidad de programación 116 identifica diferentes versiones de anchura de banda de un nuevo programa de medios que se agrega al programa (y, de hecho, el evento de anchura de banda valorado en el paso 502 corresponde a un nuevo programa de medios que se agrega al programa). El paso 504 opcionalmente puede involucrar determinar diferentes versiones de anchura de banda de programa de medios preexistentes de los programas; esta es información útil en el caso donde es apropiado cambiar la calidad de grabación de uno o más programas de medios preexistentes en el programa para acomodar la instrucción de un nuevo programa de medios. Las calidades de grabación ilustrativas comprenden SD, HD, PIP, etc. En el paso 506, la funcionalidad de programa 116 identifica preferencias de usuario con respecto a calidad de grabación. Por ejemplo, el usuario puede indicar que prefiere todos los programas de medios de cierta clase que se encarga en el formato SD, formato HD, etc. En el paso 505, la funcionalidad de programación 116 procesa los resultados de los pasos precedentes para actualizar el programa, por ejemplo, al agregar un nuevo programa de medios al programa que tiene la calidad de grabación deseada. El paso 508 también valora si el elemento de anchura de banda identificado en el paso 502 crea un conflicto que necesita resolverse. Si no es así, entonces la funcionalidad de programación 116 almacena el programa actualizado en el almacenamiento 308. Si ocurre un conflicto, sin embrago, entonces el procesamiento avanza al procedimiento 600 de la Figura 6. El procedimiento 600 proporciona un método ilustrativo para resolver el conflicto al utilizar la técnica vertical antes descrita. A manera de revisión, esta técnica involucra dividir el programa en sus segmentos de tiempo de componente, y entonces dirigir el conflicto (o conflictos) en un segmento por base de segmento. Más específicamente, en el paso 602, la funcionalidad de programación 116 comienza al dividir el programa que contiene conflictos en sus segmentos de tiempo de componentes. Cada segmento de tiempo representa una combinación diferente de eventos de anchura de banda que su segmento de tiempo inmediatamente precedente. Por ejemplo, el inicio de un nuevo programa de medios marcará el inicio de un nuevo segmento de tiempo. El final de cualquier programa de medios o el inicio de cualquier programa de medios marcado al final de ese segmento de tiempo. Algunos segmentos de tiempo de esa forma creados contendrán conflictos, mientras otros no. En el paso 604, la funcionalidad de programación 116 remueve segmentos de tiempo que no contienen ninguno de los conflictos, lo que deja solamente segmentos de tiempo que contienen un conflicto. En estos segmentos de tiempo en conflicto, existe una sobre distribución de anchura de banda, lo que significa que no existe suficiente anchura de banda para grabar todos los programas de medios que el usuario desea grabar. En el paso 606, la funcionalidad de programación 116 puede enumerar todas las soluciones para que el conflicto alcance el segmento de tiempo en el cual ocurrió el conflicto. Es decir, para cada segmento de tiempo, la funcionalidad de programación 116 identifica un grupo de soluciones, cualquiera de las cuales resolverá el conflicto para ese segmento. En el paso 608, la funcionalidad de programación 116 reduce la complejidad de los segmentos de tiempo (si es posible) para reflejar el resultado del paso 606. Por ejemplo, se asume que se determina en el paso 606 que uno o más programas de medios posiblemente no pueden contribuir a una solución. En un ejemplo, esto es debido a que remover estos programas de medios no libera suficiente anchura de banda para resolver el conflicto. En este caso, el paso 608 puede remover los programas de medios no consecuentes del programa y predeterminar los segmentos de tiempo. Esto puede tener el efecto de combinar uno o más segmentos de tiempo previamente definidos. En el paso 610, la funcionalidad de programación 116 resuelve los conflictos al utilizar las técnicas de Ul antes descritas. Por ejemplo, la funcionalidad de programación 116 puede permitir que el usuario circule gráficamente a través de las posibles soluciones y seleccionen una resolución deseada del conflicto para cada segmento de tiempo en turno.
B.2. Ejemplos Ilustrativos (Figuras 7-10) Las Figuras restantes presentan ejemplos de los procedimientos mencionados en las Figuras 5 y 6. Se considera primero el caso introductorio de la Figura 7. En este caso, se asume que la anchura de banda distribuida total 114 es de 3 unidades. Se asume que una corriente SD consume una unidad de anchura de banda y una corriente HD consume dos unidades de anchura de banda. (Estos valores de anchura de banda de menos unidades sirven a un propósito simplemente de tutorial en esta sección; es decir, estos valores no son significantes dentro y por su parte). Además se asume que el usuario desea grabar un programa de medios SD A, un programa de medios HD B, y finalmente, un nuevo programa de medios HD C. Existe un conflicto, debido a que en estás porciones en las cuales los programas de medios A, B y C se traslapan, una cantidad de 1+2 + 2 = 5 unidades de anchura de banda se requiere, mientras solo existen 3 unidades disponibles. En este caso, mientras el programa de medios A se traslapa con el programa de medios C, el programa de medios A no es parte de ninguna solución al conflicto. Esto es debido a que al cancelar A no libera la suficiente anchura de banda para resolver el conflicto. O más generalmente, remover el programa A no forma un componente necesario de ninguna solución púnica (por ejemplo, es posible resolver el conflicto al cancelar programas A y B, pero remover el programa B se satisfacera por si mismo, lo que hacer la remoción del programa A superflua). Por lo tanto, la enumeración de conflicto resulta en dos soluciones posibles: (1) no grabar B (lo que permite a E grabarse); o (2) no grabar el nuevo programa de medios C (de esa forma mantiene el estatus quo). En un segundo escenario, también con referencia a la misma Figura 7, se asume que el programa de medios A es un programa de medios SD, programa de medios B es un programa de medios HD, y ahora, sin embargo, el programa de medios C es un programa de medios SD. En este caso, ya que la nueva solicitud es un programa de medios SD, cancelar el programa de medios A o programa de medios B liberará suficiente anchura de banda, lo que permite al programa de medios C grabarse. Por lo tanto, la enumeración de solución de conflicto resulta en tres soluciones posibles: (1) no grabar el programa en medios A, o (2) no grabar el programa de medios B; o (3) no grabar el programa de medios C (de esa forma se mantiene el estatus quo). El escenario de la Figura 8 (que comprende Figuras 8a, 8b y 8c) ilustra un caso más complejo, que muestra, paso a paso, el análisis realizado de acuerdo con el procedimiento 600 de la Figura 6. En este ejemplo, se asume de nuevo que el sistema proporciona 3 unidades de anchura de banda 114, y que un programa de medios SD consume una unidad de anchura de banda y un programa de medios HD consume 2 unidades de anchura de banda. En este ejemplo, los programas de medios A y B son corrientes HD, el programa de medios C es una corriente SD, y el nuevo programa de medios, D, es una corriente HD. El paso 602 involucra determinar todos los segmentos de tiempo, lo que genera el resultado en la Figura 8a. Cada segmento representa un potencial para un nuevo conflicto, pero cada segmento de tiempo realmente puede no contener un conflicto. El paso 604 involucra remover segmentos que no representan sobre distribución de anchura de banda, y de esa forma no presenta un conflicto. Esto genera el resultado mostrado en el Figura 8b. Como se indica aquí, de entre 5 segmentos mostrados en la Figura 8a, solo dos (segmentos S1 y S2) incluyen un conflicto valorado real. La funcionalidad de programación 116 puede confiar en las ecuaciones de limitación antes identificadas (definida en la sección A.1) para determinar si existe una sobre-distribución en cada segmento de tiempo.
El paso 606 involucra enumerar soluciones posibles para cada segmento de tiempo, de esa forma producir un grupo de una o más soluciones para cada segmento de tiempo. Por ejemplo, para el segmento S1, existe dos soluciones: (1) no grabar el programa de medios A; o (2) no grabar el programa de medios D. Para el segmento de tiempo S2, existen solo dos soluciones: (1) no grabar el programa de medios B; o no grabar el programa de medios D. En este escenario particular, si el programa de medios se C se graba uno no es tema, debido a que la remoción de este programa de medios no resuelve el conflicto. Por esta razón, como se indico en la Figura 8c, el programa de medios C efectivamente puede removerse de la Ul que se presenta al usuario. Finalmente, el paso 610 involucra resolver el conflicto en la forma descrita anteriormente. Esto puede involucrar poner en secuencia gráficamente a través de las soluciones para cada pieza en turno en la forma descrita anteriormente La Figura 9 (que comprende Figuras 9a, 9b, 9c y 9d) muestra otro ejemplo. En este caso, de nuevo se asume que el sistema proporciona un total de 3 unidades de anchura de banda 114, y que la corriente SD consume una unidad de anchura de banda de una corriente HD consume 2 unidades de anchura de banda. Aquí, los programas de medios A y B son corrientes SD, C es un corriente HD, y el nuevo programa de medios, D es una corriente HD. El procedimiento 600 mostrado en la Figura 6 se aplica de nuevo. En el paso 602, la funcionalidad de programación 116 determina todos los segmentos de tiempo que pueden presentar un nuevo conflicto. Esto genera los 5 segmentos de tiempo mostrados en la Figura 9a. El paso 604 involucra remover segmentos de tiempo que no representan sobre-distribución (y de esa forma no representan un conflicto). Esto produce el resultado mostrado en la Figura 9b, en la cual 3 segmentos de tiempo (S1, S2 y S3) permanecen en el programa. El paso 606 involucra enumerar soluciones para cada segmento de tiempo en el cual existe un conflicto. En este caso, los programas de medios A y B no contribuyen a ninguna de las soluciones, debido a que remover estos programas de medios no removerá ninguno de los conflictos valorados. De esa forma, los programas de medios A y B pueden removerse de la Ul, para producir la presentación de barra de tiempo mostrada en la Figura 9c. Las soluciones posibles para cada uno de los 3 segmentos de tiempo son; (1) no grabar el programa en medios C; o (2) no grabar el programa de medios D. El paso 608 involucra re-segmentar la Ul en respuesta de los resultados del paso 606. Principalmente, en el paso 606, el análisis descartó programas de medios A y B. Esto permite que la funcionalidad de programación 116 combine los 3 segmentos de tiempo en un segmento de tiempo individual, como se muestra en la Figura 9d. El paso 610 involucra utilizar la Ul para resolver el conflicto en la forma descrito anteriormente. En este caso, el usuario puede presentarse con la presentación de Ul simplificada mostrada en la Figura 9d, que facilita la toma de decisión del usuario. La Figura 10 (que comprende las Figuras 10a y 10b) muestra un ejemplo final. En este caso, se asume que el sistema proporciona un total de cuatro unidades en anchura de bandas 114, y que una corriente SD consume una unidad de anchura de banda y la corriente HD consume dos unidades de anchura de banda. Los programas de medios A y B son corrientes HD, mientras los programas de medios C y D son corrientes SD. El nuevo programa de medios X es un corriente HD. El procedimi-ento 600 mostrado en la Figura 6 se aplica de nuevo. En el paso 602, la funcionalidad de programación 116 determina todos los segmentos de tiempo en los cuales puede ocurrir un conflicto. Esto produce los 5 segmentos de tiempo mostrados en la Figura 10a. En el paso 604, la funcionalidad de programación 116 promueve segmentos de tiempo que no presentan ninguno de los conflictos. Esto produce el resultado mostrado en la Figura 10b. Los segmentos de tiempos restantes, S1 y S2, incluyen una sobre-distribución de anchura de banda. En el paso 606, la funcionalidad de programación 116 enumeran las soluciones posibles para cada uno de los segmentos de tiempo S1 y S2. En el segmento de tiempo S1, las soluciones se ¡ncluyen: (1) no grabar el programa de medios A; o (2) no programas de medios C y D; o (3) no grabar el programa de medios X. Una solución similar aplica al segmento de tiempo S2 (pero con una solución que propone la omisión de programa de medios B más que A). En el paso 610, la funcionalidad de programación 116 solicita una resolución en los conflictos de los valorados del usuario que utiliza el acercamiento basado en Ul descrito anteriormente. Para finalizar, se describió un número de características aquí al identificar primero problemas ilustrativos que pueden dirigir estás características. Esta forma de explicación no constituye una admisión que otros apreciaron y/o articularon los problemas en la forma aquí especificada. La apreciación y articulación de los problemas presentes en las técnicas relevantes se va a entender como parte de la presente invención. Aunque la invención se describió el lenguaje específico a características estructurales y/o actos metodológicos, se entiende que la invención definida en las reivindicaciones anexas no se limitan necesariamente a las características específicas o actos descritos. Más que eso, las características y actos específicos se describen con formas ilustrativas para implementar la invención reclamada.

Claims (9)

REIVINDICACIONES
1.- Un método para resolver conflictos de programa que afectan un dispositivo de cliente que emplea funcionalidad de sintonizador virtual, que comprende: establecer un programa que especifica programas de medios plurales; identificar al menos un conflicto en el programa causado por al menos un evento de anchura de banda; enumerar al menos una solución a dicho al menos un conflicto, en donde dicho al menos .una solución toma en cuenta: (a) una cantidad total de anchura de banda disponible para el dispositivo de cliente para recibir programas de medios; y (b) una cantidad de anchura de banda consumida por cada una de dichos programas de medios plurales en el programa; y resolver dicho al menos un conflicto basándose en dicha al menos una solución.
2.- El método de acuerdo con la reivindicación 1, en donde dicho al menos un evento de anchura de banda comprende una selección de usuario de un nuevo programa de medios.
3.- El método de acuerdo con la reivindicación 1, en donde dicho al menos un evento de anchura de banda comprende un cambio en información de guía de programa de medios que afecta el programa.
4.- El método de acuerdo con la reivindicación 1, en donde identificar dicho al menos un conflicto comprende: dividir el programa en al menos un segmento de tiempo de candidato en el cual puede existir un conflicto; y determinar al menos un segmento de tiempo en conflicto de dicho al menos un segmento de tiempo candidato para el cual existe un conflicto.
5.- El método de acuerdo con la reivindicación 4, en donde la numeración de dicha al menos una solución comprende enumerar al menos una solución que resuelve el conflicto para todos los segmentos de tiempo en dicho al menos un segmento de tiempo en conflicto.
6.- El método de acuerdo con la reivindicación 4, en donde la enumeración de dicha al menos una solución comprende enumerar al menos una solución que resuelve el conflicto para cada segmento de tiempo particular en turno en dicho al menos un segmento de tiempo en conflicto. 7 '.- El método de acuerdo con la reivindicación 4, en donde la identificación de dicho al menos un conflicto comprende predeterminar dicho al menos un segmento de tiempo de conflicto en respuesta a la enumeración. 8.- El método de acuerdo con la reivindicación 1, en donde la resolución de dicho al menos un conflicto comprende: proporcionar una presentación de ¡nterfase de usuario a un usuario que solicita entrada del usuario para resolver dicho al menos un conflicto; y recibir la entrada del usuario para resolver dicho al menos un conflicto. 9.- El método de acuerdo con la reivindicación 8, en donde la presentación de interfase de usuario presenta programas de medios en conflicto utilizando barras de tiempo respectivas, y en donde la recepción de la entrada comprende recibir la selección del usuario de una o más barras de tiempo. 10.- Uno o más medios legibles por máquina que contienen instrucciones legibles por máquina para implementar el método de acuerdo con la reivindicación 1. 11.- La funcionalidad de programación para resolver conflictos de programa que afectan un dispositivo de cliente que emplean funcionalidad de sintonizador virtual, que comprende: un módulo de configuración de programa configurado para establecer un programa que especifica programas de medios plurales; un módulo de identificación de conflicto configurado para identificar al menos un conflicto en programa; un módulo de enumeración de solución configurado para enumerar al menos una solución para dicho al menos un conflicto, en donde dicha al menos una solución toma en cuenta: (a) una cantidad total de anchura de banda disponible para el dispositivo de cliente para recibir programas de medios; y (b) una cantidad de anchura de banda consumida por cada uno de dichos programas de medios plurales en el programa; y un módulo de resolución de conflicto configurado para resolver dicho al menos un conflicto basado en dicha al menos una solución. 12.- La funcionalidad de programación de acuerdo con la reivindicación 11, en donde el módulo de identificación de conflicto se configura para identificar dicho al menos un conflicto al: dividir el programa en al menos un segmento de tiempo de candidato en el cual puede existir un conflicto; y determinar al menos un segmento de tiempo de conflicto desde dicho al menos un segmento de tiempo candidato para el cual existe un conflicto real. 13.- La funcionalidad de programación de acuerdo con la reivindicación 12, en donde el módulo de enumeración de solución se configura para enumerar al menos dicha solución al enumerar al menos una solución que resuelve el conflicto para todos los segmentos de tiempo en dicho al menos un segmento de tiempo en conflicto. 14.- La funcionalidad de programación de acuerdo con la reivindicación 12, en donde el módulo de enumeración de solución se configura para enumerar dicha al menos una solución enumerando al menos una solución que resuelve el conflicto para cada segmento de tiempo particular en turno en dicho al menos un segmento de tiempo en conflicto. 15.- La funcionalidad de programación de acuerdo con la reivindicación 12, en donde el módulo de identificación de conflictos se configura para re-determinar dicho al menos un segmento de tiempo en conflicto en respuesta a la enumeración por el modo de numeración de solución. 16.- La funcionalidad de programación de acuerdo con la reivindicación 11, en donde el módulo de resolución de conflicto se configura para resolver dicho al menos un conflicto al: proporcionar una presentación de interfase de usuario a un usuario que solicita entrada desde el usuario para resolver dicho al menos un conflicto; y recibir la entrada del usuario para resolver dicho al menos un conflicto. 1
7.- Un medio legible por máquina que contiene instrucciones legibles por máquina para implementar la funcionalidad de programación de acuerdo con la reivindicación 11. 1
8.- Un método para programar el procesamiento de programas de medios para un dispositivo de cliente que emplea funcionalidad de sintonizador virtual, que comprende: identificar al menos un evento de anchura de banda que afecta la grabación de un grupo de programas de medios por el dispositivo de cliente; identificar diferentes versiones de anchura de banda de al menos un programa de medios en el grupo de programa de medios; identificar una calidad con respecto a preferencias de usuario en la cual los programas de medios se graban; y proporcionar un programa que rige la grabación de dicho al menos un programa de medios basado en las versiones de anchura de banda identificadas y las preferencias de usuario, en donde proporcionar el programa comprende resolver al menos un conflicto en el programa cuando se determina que tal conflicto existe. 1
9.- El método de acuerdo con la reivindicación 18, en donde la resolución de dicho al menos un conflicto comprende: identificar dicho al menos un conflicto en el programa causado por dicho al menos un evento de anchura de banda; enumerar al menos una solución a dicho al menos un conflicto, en donde dicha al menos una solución toma en cuenta: (a) una cantidad total de anchura de banda disponible para que el dispositivo de cliente reciba programas de medios; y (b) una cantidad de anchura de banda consumida por cada uno de dichos programas de medios plurales en el programa; y resolver dicho al menos un conflicto basado en dicha al menos una solución. 20.- Uno o más medios legibles por máquina que contienen instrucciones legibles por máquina para implementar el método de acuerdo con la reivindicación 19.
MX2007014332A 2005-05-24 2006-04-28 Estrategias para programar eventos de medios consumidores de anchura de banda. MX2007014332A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/135,994 US7584497B2 (en) 2005-05-24 2005-05-24 Strategies for scheduling bandwidth-consuming media events
PCT/US2006/016448 WO2006127211A2 (en) 2005-05-24 2006-04-28 Strategies for scheduling bandwidth-consuming media events

Publications (1)

Publication Number Publication Date
MX2007014332A true MX2007014332A (es) 2008-02-12

Family

ID=37452551

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007014332A MX2007014332A (es) 2005-05-24 2006-04-28 Estrategias para programar eventos de medios consumidores de anchura de banda.

Country Status (6)

Country Link
US (1) US7584497B2 (es)
EP (1) EP1880546B1 (es)
JP (1) JP4690457B2 (es)
CN (1) CN101194511B (es)
MX (1) MX2007014332A (es)
WO (1) WO2006127211A2 (es)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7483532B2 (en) * 2003-07-03 2009-01-27 Microsoft Corporation RTP payload format
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7684566B2 (en) 2005-05-27 2010-03-23 Microsoft Corporation Encryption scheme for streamed multimedia content protected by rights management system
US7769880B2 (en) * 2005-07-07 2010-08-03 Microsoft Corporation Carrying protected content using a control protocol for streaming and a transport protocol
US9432710B2 (en) * 2005-07-08 2016-08-30 At&T Intellectual Property I, L.P. Methods systems, and products for conserving bandwidth
US7561696B2 (en) * 2005-07-12 2009-07-14 Microsoft Corporation Delivering policy updates for protected content
US8321690B2 (en) 2005-08-11 2012-11-27 Microsoft Corporation Protecting digital media of various content types
US7634816B2 (en) 2005-08-11 2009-12-15 Microsoft Corporation Revocation information management
JP4618503B2 (ja) * 2005-09-09 2011-01-26 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7720096B2 (en) * 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
US20070089145A1 (en) * 2005-10-18 2007-04-19 Sbc Knowledge Ventures, L.P. System and method of delivering video data
US8582946B2 (en) * 2005-11-04 2013-11-12 Rovi Guides, Inc. Systems and methods for recording programs using a network recording device as supplemental storage
US8245267B2 (en) * 2006-04-28 2012-08-14 At&T Intellectual Property I, L.P. Methods, systems, and products for recording media on a user device
US20080187291A1 (en) * 2007-02-05 2008-08-07 Microsoft Corporation Prioritization for video acquisition
TR200701997A2 (tr) * 2007-03-27 2008-10-21 Grundi̇g Elektroni̇k Anoni̇m Şi̇rketi̇ Sayısal kayıt için bir yöntem
US8798433B2 (en) * 2007-05-04 2014-08-05 United Video Properties, Inc. Systems and methods for recording overlapping media content during scheduling conflicts
EP2009845A1 (en) * 2007-06-07 2008-12-31 Thomson Licensing Method and apparatus for error messaging in a multimedia network
KR101411586B1 (ko) * 2007-08-14 2014-06-25 삼성전자주식회사 방송 프로그램 선택을 위한 gui 제공방법 및 이를적용한 av 기기
US8272015B2 (en) 2007-11-01 2012-09-18 Microsoft Corporation Alternate source conflict resolution
US8627399B2 (en) * 2008-01-31 2014-01-07 At&T Intellectual Property I, Lp System and method of delivering television content
US8358913B2 (en) * 2008-02-29 2013-01-22 Microsoft Corporation Resolving recording conflicts
US8640227B2 (en) 2008-06-23 2014-01-28 EchoStar Technologies, L.L.C. Apparatus and methods for dynamic pictorial image authentication
US8583771B2 (en) * 2008-07-01 2013-11-12 Cisco Technology, Inc. Mapping human-meaningful parameters to network-meaningful parameters to permit user to establish traffic importance in home network
US20100054712A1 (en) * 2008-08-29 2010-03-04 At&T Intellectual Property I, L.P. System and Method for Recording High-Definition Content
US20100057668A1 (en) * 2008-09-04 2010-03-04 Cisco Technology, Inc. Mapping human-meaningful parameters to network-meaningful parameters for media transformation
US8464309B2 (en) 2008-09-05 2013-06-11 Tivo Inc. Server-based program recording scheduling
US8582957B2 (en) * 2008-09-22 2013-11-12 EchoStar Technologies, L.L.C. Methods and apparatus for visually displaying recording timer information
US8572651B2 (en) 2008-09-22 2013-10-29 EchoStar Technologies, L.L.C. Methods and apparatus for presenting supplemental information in an electronic programming guide
US9357262B2 (en) 2008-09-30 2016-05-31 Echostar Technologies L.L.C. Systems and methods for graphical control of picture-in-picture windows
US8473979B2 (en) 2008-09-30 2013-06-25 Echostar Technologies L.L.C. Systems and methods for graphical adjustment of an electronic program guide
US8937687B2 (en) 2008-09-30 2015-01-20 Echostar Technologies L.L.C. Systems and methods for graphical control of symbol-based features in a television receiver
US8411210B2 (en) 2008-09-30 2013-04-02 Echostar Technologies L.L.C. Systems and methods for configuration of a remote control device
US8397262B2 (en) 2008-09-30 2013-03-12 Echostar Technologies L.L.C. Systems and methods for graphical control of user interface features in a television receiver
US8793735B2 (en) 2008-09-30 2014-07-29 EchoStar Technologies, L.L.C. Methods and apparatus for providing multiple channel recall on a television receiver
US8098337B2 (en) 2008-09-30 2012-01-17 Echostar Technologies L.L.C. Systems and methods for automatic configuration of a remote control device
US9100614B2 (en) 2008-10-31 2015-08-04 Echostar Technologies L.L.C. Graphical interface navigation based on image element proximity
US8244106B2 (en) * 2008-12-24 2012-08-14 Echostar Technologies L.L.C. Apparatus and methods for resolving recording conflicts of a digital video recorder
US20100205136A1 (en) * 2009-02-09 2010-08-12 Southwest Research Institute System and Method for Modeling and Predicting Security Threats
US8434121B2 (en) * 2009-10-16 2013-04-30 At&T Intellectual Property I, L.P. System and method for monitoring whole home digital video recorder usage for internet protocol television
US9113127B2 (en) 2010-02-08 2015-08-18 Echostar Technologies L.L.C. Systems and methods for automatically scheduling recordings of programming events
KR101653237B1 (ko) * 2010-03-25 2016-09-01 삼성전자주식회사 복수 장치를 이용하는 콘텐츠 서비스 제공 방법 및 시스템
US8771064B2 (en) 2010-05-26 2014-07-08 Aristocrat Technologies Australia Pty Limited Gaming system and a method of gaming
US9191692B2 (en) 2010-06-02 2015-11-17 Microsoft Technology Licensing, Llc Aggregated tuner scheduling
US10908794B2 (en) * 2010-08-16 2021-02-02 Iheartmedia Management Services, Inc. Automated scheduling of multimedia content avoiding adjacency conflicts
US9172990B2 (en) 2011-06-24 2015-10-27 Google Technology Holdings LLC Method and device for optimizing storage of recorded video programs
US8898694B2 (en) * 2012-04-27 2014-11-25 United Video Properties, Inc. Systems and methods for indicating media asset access conflicts using a time bar
US9197841B2 (en) * 2013-08-29 2015-11-24 Verizon Patent And Licensing Inc. Manual DVR conflict resolution
CN103686276A (zh) * 2013-12-04 2014-03-26 乐视致新电子科技(天津)有限公司 一种红外遥控器码值冲突规避系统及方法
US9641791B2 (en) * 2014-03-03 2017-05-02 Microsoft Technology Licensing, Llc Bandwidth aware digital video recording (DVR) scheduling
CN106604078B (zh) * 2015-10-14 2019-07-19 北京国双科技有限公司 一种网络视频推荐方法及装置
JP6465077B2 (ja) * 2016-05-31 2019-02-06 トヨタ自動車株式会社 音声対話装置および音声対話方法
CN109524031B (zh) * 2017-09-19 2021-05-18 华为技术有限公司 一种冲突检测方法及系统

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248980A (ja) * 1994-03-11 1995-09-26 N T T Data Tsushin Kk マルチメディア情報の通信方式
US5841433A (en) 1994-12-23 1998-11-24 Thomson Consumer Electronics, Inc. Digital television system channel guide having a limited lifetime
US5666645A (en) * 1995-04-26 1997-09-09 News America Publications, Inc. Data management and distribution system and method for an electronic television program guide
EP0836320B1 (en) * 1996-10-08 2006-03-22 Matsushita Electric Industrial Co., Ltd. Information receiving method and information receiving apparatus using the same method
US6177931B1 (en) * 1996-12-19 2001-01-23 Index Systems, Inc. Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information
WO1999013641A1 (en) * 1997-09-05 1999-03-18 Prevue International, Inc. Program guide application interface system
US6272546B1 (en) * 1998-03-12 2001-08-07 Sony Corporation Method of and apparatus for managing resource allocation and bandwidth overflow in a cooperative, distributed computing environment
US6788882B1 (en) * 1998-04-17 2004-09-07 Timesurf, L.L.C. Systems and methods for storing a plurality of video streams on re-writable random-access media and time-and channel- based retrieval thereof
US8689265B2 (en) * 1999-03-30 2014-04-01 Tivo Inc. Multimedia mobile personalization system
KR20010082379A (ko) * 1999-10-19 2001-08-29 모리시타 요이찌 송출 장치 및 수신 장치
US6922845B2 (en) * 2000-04-25 2005-07-26 The Directtv Group, Inc. Multi-processor DVR
US6804824B1 (en) * 2000-06-30 2004-10-12 Microsoft Corporation Systems and methods using multiple tuners
US7773859B1 (en) * 2000-08-30 2010-08-10 Microsoft Corporation Resolving recording conflicts between coinciding programming
US8302127B2 (en) * 2000-09-25 2012-10-30 Thomson Licensing System and method for personalized TV
JP2002207793A (ja) * 2000-11-13 2002-07-26 Jisedai Joho Hoso System Kenkyusho:Kk 配信スケジューリングシステム、配信スケジューリング方法およびその方法をコンピュータに実行させるプログラム
US8046799B2 (en) * 2000-11-27 2011-10-25 The Directv Group, Inc. Daypart based navigation paradigm
US20020108126A1 (en) * 2001-02-08 2002-08-08 Horowitz Steven M. Background enabled recording in a set top box
US7088910B2 (en) * 2001-02-09 2006-08-08 Microsoft Corporation Optimizing use of storage space in a video data recording system
US6798971B2 (en) * 2001-02-09 2004-09-28 Microsoft Corporation Systems and methods for providing continuous recording of repeating programming
US20020110360A1 (en) * 2001-02-09 2002-08-15 Potrebic Peter J. Systems and methods for recording fragmented programs
JP2002247091A (ja) * 2001-02-19 2002-08-30 Ntt Communications Kk コンテンツ配信サーバ、方法およびシステム
US20020136538A1 (en) * 2001-03-22 2002-09-26 Koninklijke Philips Electronics N.V. Smart quality setting for personal TV recording
JP2004536491A (ja) * 2001-04-24 2004-12-02 プレディウェイブ・コーポレイション プリフェッチデータ送信を用いたデータ・オン・デマンドデジタル放送システム
US7526788B2 (en) * 2001-06-29 2009-04-28 Scientific-Atlanta, Inc. Graphic user interface alternate download options for unavailable PRM content
JP4536963B2 (ja) * 2001-07-13 2010-09-01 株式会社リコー 配信スケジューリング装置、配信スケジューリング方法、および、その方法をコンピュータに実行させるためのプログラム
BRPI0213811B1 (pt) * 2001-11-10 2016-08-02 Thomson Licensing Sa sistema de gravação de vídeo e método para controlar o funcionamento de um sistema de gravação e reprodução de televisão utilizado por uma pluralidade de usuários
US6897904B2 (en) * 2002-01-04 2005-05-24 Microsoft Corporation Method and apparatus for selecting among multiple tuners
AU2002252630A1 (en) 2002-02-08 2003-09-02 David Lively Centralized digital video recording system with bookmarking and playback from multiple locations
JP3794972B2 (ja) * 2002-03-22 2006-07-12 株式会社野村総合研究所 帯域制御システム
US7600246B2 (en) * 2002-04-17 2009-10-06 Microsoft Corporation Method and apparatus for analyzing program data
US7774816B2 (en) * 2002-04-23 2010-08-10 Rovi Technologies Corporation Conflict manager for a video recorder
US7369750B2 (en) * 2002-04-24 2008-05-06 Microsoft Corporation Managing record events
US7200611B2 (en) * 2002-05-13 2007-04-03 Microsoft Corporation TV program database
US20040078817A1 (en) * 2002-05-14 2004-04-22 Steven Horowitz Dynamic program events recording
JP2004007196A (ja) * 2002-05-31 2004-01-08 Nippon Telegr & Teleph Corp <Ntt> 情報配信システムの帯域管理方法及びプログラム並びに記録媒体
JP2004023326A (ja) 2002-06-14 2004-01-22 Matsushita Electric Ind Co Ltd 録画装置
US7212730B2 (en) * 2002-06-27 2007-05-01 International Business Machines Corporation System and method for enhanced edit list for recording options
JP3783947B2 (ja) * 2002-08-14 2006-06-07 日本電信電話株式会社 映像ストリームの品質制御方法、そのプログラム及び記録媒体
AU2003294466A1 (en) 2002-12-05 2004-06-30 Sbc Properties, L.P. Dsl video service with memory manager, automatic program selector, and/or storage
US7640564B2 (en) * 2003-05-01 2009-12-29 Microsoft Corporation Recording resources indicators
US7983529B2 (en) * 2003-05-05 2011-07-19 Thomson Licensing Method and apparatus for indicating whether sufficient space exists for recording a program
US20080152315A1 (en) * 2003-06-27 2008-06-26 Marc Andre Peters Alternative Program Source Avoids Dvr Scheduling Conflict
US20060061682A1 (en) * 2004-09-22 2006-03-23 Bradley Bruce R User selectable content stream
US7782789B2 (en) * 2004-09-23 2010-08-24 Harris Corporation Adaptive bandwidth utilization for telemetered data
US20060104611A1 (en) * 2004-11-15 2006-05-18 Pioneer Research Center Usa, Inc. Flexible conflict resolution in scheduled recording of broadcast content

Also Published As

Publication number Publication date
JP2008546279A (ja) 2008-12-18
EP1880546B1 (en) 2015-09-30
US20060268099A1 (en) 2006-11-30
US7584497B2 (en) 2009-09-01
WO2006127211A3 (en) 2008-02-07
EP1880546A4 (en) 2010-08-04
WO2006127211A2 (en) 2006-11-30
EP1880546A2 (en) 2008-01-23
CN101194511B (zh) 2011-04-13
CN101194511A (zh) 2008-06-04
JP4690457B2 (ja) 2011-06-01

Similar Documents

Publication Publication Date Title
MX2007014332A (es) Estrategias para programar eventos de medios consumidores de anchura de banda.
US9641791B2 (en) Bandwidth aware digital video recording (DVR) scheduling
US7721313B2 (en) Multi-DVR node communication
JP4688932B2 (ja) 仮想チューナ管理
US20070094690A1 (en) Media-on-demand reminders
US20080022331A1 (en) Multi-DVR Media Stream Transition
CN102598692A (zh) 个性化高清晰度视频内容向客户存储设备的多播
JP2001358672A (ja) 送出/受信システムおよび放送システム
CN1792074A (zh) 数字内容提供系统
JPWO2005086009A1 (ja) メディア配信装置及びメディア受信装置
JPH11317937A (ja) 放送蓄積視聴装置
US7810130B2 (en) Method and apparatus of power management for moving image-streaming content
US7933918B2 (en) Content hook-up apparatus and method
US8739230B2 (en) Manager/remote content architecture
JP4181962B2 (ja) 受信装置及び受信方法
CN103081490A (zh) 内容变换装置、内容变换方法、内容变换程序以及内容发布系统
CN101739448A (zh) 组装多媒体资产以及随后将其供应给客户端设备的方法
JP4533408B2 (ja) 受信装置及び受信方法
US20080320074A1 (en) Method and apparatus for efficient peer network set-top box web-casting
KR20100022326A (ko) 북마크 설정이 가능한 vod 재생장치 및 vod의 북마크설정방법과 북마크를 활용한 vod 재생방법
EP2168379A2 (en) High-speed programs review
KR20120088072A (ko) 멀티미디어 스트리밍 서비스 방법

Legal Events

Date Code Title Description
FG Grant or registration