BR112013000861B1 - Método para enviar dados de vídeo encapsulados, método para receber dados de vídeo encapsulados, dispositivo e memória legível por computador - Google Patents

Método para enviar dados de vídeo encapsulados, método para receber dados de vídeo encapsulados, dispositivo e memória legível por computador Download PDF

Info

Publication number
BR112013000861B1
BR112013000861B1 BR112013000861-0A BR112013000861A BR112013000861B1 BR 112013000861 B1 BR112013000861 B1 BR 112013000861B1 BR 112013000861 A BR112013000861 A BR 112013000861A BR 112013000861 B1 BR112013000861 B1 BR 112013000861B1
Authority
BR
Brazil
Prior art keywords
components
component
video
file
audio
Prior art date
Application number
BR112013000861-0A
Other languages
English (en)
Other versions
BR112013000861A2 (pt
Inventor
Marta Karczewicz
Yong Wang
Ying Chen
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112013000861A2 publication Critical patent/BR112013000861A2/pt
Publication of BR112013000861B1 publication Critical patent/BR112013000861B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

dados de sinalização para multiplexação de componentes de vídeo. um servidor pode fornecer informação descrevendo características de componentes de áudio e vídeo para um cliente, separadamente das amostras codificadas dos próprios componentes de áudio e vídeo. 0 cliente pode usar informação para selecionar os componentes, e então para solicitar os componentes selecionados, por exemplo, de acordo com um protocolo de rede de fluxo continuo. em um exemplo, um equipamento para enviar dados encapsulados de vídeo inclui um processador configurado para determinar as características para componentes de uma pluralidade de sentações de conteúdo de vídeo, em que as características compreendem ao menos um de: taxa de quadros, indicador de perfil, indicador de nível e dependências entre os componentes; e uma ou mais interfaces configuradas para enviar as características para um dispositivo de cliente, receber uma solicitação a partir do dispositivo de cliente para ao menos um dos componentes apés envio das características, e enviar os componentes solicitados para o dispositivo de cliente em resposta à solicitação.

Description

[001] Esse pedido reivindica o benefício do Pedido Provisional dos Estados Unidos N° 61/364.747, depositado em 15 de julho de 2010, e Pedido Provisional dos Estados Unidos N° 61/366.436, depositado em 21 de julho de 2010, os quais são aqui integralmente incorporados mediante referência.
Campo da Invenção
[002] Essa revelação se refere ao armazenamento e transporte de dados codificados de vídeo.
Descrição da Técnica Anterior
[003] Capacidades de vídeo digital podem serincorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de transmissão direta digital, sistemas de transmissão sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, câmeras digitais, dispositivos de gravação digital, dispositivos de reprodução de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, radiotelefones celulares ou via satélite, dispositivos de teleconferência de vídeo, e semelhantes. Dispositivos de vídeo digital implementam técnicas de compactação de vídeo, tais como aquelas descritas nos padrões definidos por MPEG- 2, MPEG-4, ITU-T H.263 ou ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), e extensões de tais padrões, para transmitir e receber de forma mais eficiente a informação de vídeo digital.
[004] Técnicas de compactação de vídeo realizam predição espacial e/ou predição temporal para reduzir ou remover redundância inerente nas sequências de vídeo. Para codificação de vídeo baseada em blocos, um quadro ou fatia de vídeo pode ser dividido em macroblocos. Cada macrobloco pode ser dividido adicionalmente. Os macroblocos em um quadro ou fatia codificado intra (I) são codificados utilizando predição espacial com relação aos macroblocos vizinhos. Os macroblocos em um quadro, ou fatia, codificado inter (P ou B) podem utilizar predição espacial com relação aos macroblocos vizinhos no mesmo quadro ou fatia ou predição temporal com relação aos macroblocos em outros quadros de referência.
[005] Após os dados de vídeo ser codificados, os dados de vídeo podem ser empacotados para transmissão ou armazenamento. Os dados de vídeo podem ser montados em um arquivo de vídeo em conformidade com qualquer um de uma variedade de padrões, tal como o formato de arquivo de mídia de base da Organização Internacional para Padronização (ISO) e suas extensões, tal como AVC.
[006] Foram feitos esforços para desenvolver novos padrões de codificação de vídeo com base em H.264/AVC. Tal padrão é o padrão de codificação de vídeo escalonável (SVC), que é a extensão escalonável para H.264/AVC. Outro padrão é a codificação de vídeo de múltiplas vistas (MVC), que se tornou a extensão de múltiplas vistas para H.264/AVC. Um esboço conjunto de MCV é descrito em JVT-AB204, "Joint Draft 8.0 on Multiview Video Coding", 28° reunião da JVT, Hannover, Alemanha, julho de 2008, disponível em http://wftp3.itu.int/av-arch/jvt- site/2008_07_Hannover/JVT-AB204.zip. Uma versão do padrão AVC é descrita em JVT-AD007, “Editors' draft revision to ITU-T Rec. H.264 I ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)”; 30a reunião da JVT, Genebra, CH, fevereiro de 2009, disponível a partir de http://wftp3.itu.int/av-arch/jvt- site/2009_01_Geneva/JVT-AD007.zip. Esse documento integra o SVC e MVC na especificação AVC.
Sumário da Invenção
[007] Em geral, essa revelação descreve as técnicas para transportar os dados de vídeo, por exemplo, por intermédio de um protocolo de fluxo contínuo de rede, tal como fluxo contínuo de protocolo de transferência de hipertexto (HTTP). Em alguns casos, o conteúdo de vídeo pode incluir múltiplas combinações possíveis de dados de áudio e vídeo. Por exemplo, o conteúdo pode ter múltiplas trilhas de áudio possíveis (por exemplo, em diferentes idiomas tal como inglês, espanhol e francês) e muitas trilhas de vídeos possíveis (por exemplo, codificadas com diferentes parâmetros de codificação tais como diversas taxas de bits, diversas taxas de quadros, e/ou com outras diversas características). Essas trilhas podem ser referidas como componentes, por exemplo, componentes de áudio e componentes de vídeo. Cada combinação de componentes pode formar uma apresentação singular do conteúdo de multimídia e pode ser entregue a um cliente como um serviço. As técnicas dessa revelação permitem um servidor sinalizar características de várias representações ou componentes de multimídia em uma única estrutura de dados. Dessa maneira, um dispositivo de cliente pode recuperar a estrutura de dados e selecionar uma das representações para solicitar a partir do servidor, por exemplo, de acordo com um protocolo de rede de fluxo contínuo.
[008] Em um exemplo, um método de envio de dados de vídeo encapsulados inclui enviar características para componentes de uma pluralidade de representações de conteúdo de vídeo para um dispositivo de cliente, em que as características compreendem ao menos uma de uma taxa de quadro, um indicador de perfil, um indicador de nível, dependências entre os componentes e o número vistas de saída visadas para uma representação 3D, receber uma solicitação a partir do dispositivo de cliente para ao menos um dos componentes após enviar as características, e enviar os componentes solicitados ao dispositivo de cliente em resposta à solicitação.
[009] Em outro exemplo, um equipamento para enviar dados de vídeo encapsulados inclui um processador configurado para determinar as características para os componentes de uma pluralidade de representações de conteúdo de vídeo, em que as características compreendem ao menos um de: uma taxa de quadro, um indicador de perfil, um indicador de nível, e dependências entre os componentes, e uma ou mais interfaces configuradas para enviar as características para um dispositivo de cliente, receber uma solicitação a partir do dispositivo de cliente para ao menos um dos componentes após enviar as características, e enviar os componentes solicitados ao dispositivo de cliente em resposta à solicitação.
[0010] Em outro exemplo, um equipamento para enviar dados de vídeo encapsulados inclui meio para enviar características para componentes de uma pluralidade de representações de conteúdo de vídeo para um dispositivo de cliente, em que as características compreendem ao menos um de: uma taxa de quadros, um indicador de perfil, um indicador de nível e dependências entre os componentes, meio para receber uma solicitação a partir do dispositivo de cliente para ao menos um dos componentes após o envio das características, e meio para enviar os componentes solicitados para o dispositivo de cliente em resposta à solicitação.
[0011] Em outro exemplo, um produto de programa de computador inclui um meio de armazenamento legível por computador compreendendo instruções que, quando executadas, fazem com que um processador de um dispositivo de origem envie dados de vídeo encapsulados para enviar as características para componentes de uma pluralidade de representações de conteúdo de vídeo para um dispositivo de cliente, em que as características compreendem pelo menos um de: uma taxa de dados, um indicador de perfil, um indicador de nível, e dependências entre os componentes; receber uma solicitação a partir do dispositivo de cliente para ao menos um dos componentes após um envio das características, e enviar os componentes solicitados para o dispositivo de cliente em resposta à solicitação.
[0012] Em outro exemplo, um método de receber dados encapsulados de vídeo inclui solicitar características para os componentes de uma pluralidade de representações de conteúdo de vídeo a partir de um dispositivo de origem, em que as características compreendem ao menos um de: uma taxa de quadros, um indicador de perfil, um indicador de nível, e dependências entre os componentes; selecionar um ou mais dos componentes com base nas características, solicitar amostras dos componentes selecionados, e decodificar e apresentar as amostras após as amostras terem sido recebidas.
[0013] Em outro exemplo, um equipamento para receber dados de vídeo encapsulados inclui uma ou mais interfaces configurada para solicitar características para componentes de uma pluralidade de representações de conteúdo de vídeo a partir de um dispositivo de origem, em que as características compreendem ao menos um de: uma taxa de quadros, um indicador de perfil, um indicador de nível, e dependências entre os componentes, e um processador configurado para selecionar um ou mais dos componentes com base nas características, e para fazer com que uma ou mais interfaces submeta solicitações para amostras dos componentes selecionados para o dispositivo de origem.
[0014] Em outro exemplo, um equipamento para receber dados encapsulados de vídeo inclui meios para solicitar características para componentes de uma pluralidade de representações de conteúdo de vídeo a partir de um dispositivo de origem, em que as características compreendem ao menos uma de uma taxa de quadros, um indicador de perfil, um indicador de nível, e dependências entre os componentes, meios para selecionar um ou mais dos componentes com base nas características, meios para solicitar amostras dos componentes selecionados, e meios para decodificar e apresentar as amostras após as amostras terem sido recebidas.
[0015] Em outro exemplo, um produto de programa de computador inclui um meio de armazenamento legível por computador compreendendo instruções que fazem com que um processador de um dispositivo para receber dados encapsulados de vídeo solicite características para componentes de uma pluralidade de representações de conteúdo de vídeo a partir de um dispositivo de origem, em que as características compreendem ao menos um de: uma taxa de quadros, um indicador de perfil, um indicador de nível e dependências entre os componentes; selecionar um ou mais dos componentes com base nas características; solicitar amostras dos componentes selecionados; e decodificar e apresentar as amostras após as amostras serem recebidas.
[0016] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição das Figuras
[0017] A Figura 1 é um diagrama de blocos de ilustrando um sistema exemplar no qual um dispositivo de origem de áudio/vídeo (A/V) transfere dados de áudio e vídeo para um dispositivo de destino A/V.
[0018] A Figura 2 é um diagrama de blocos ilustrando componentes de uma unidade de encapsulação exemplar adequada para uso no dispositivo de origem de A/V mostrado na Figura 1.
[0019] A Figura 3 é um diagrama conceptual ilustrando uma caixa de mapeamento de componentes exemplar e uma caixa de arranjo de componente exemplar que pode ser usada no sistema da Figura 1.
[0020] A Figura 4 é um diagrama conceptual ilustrando um intervalo de temporização exemplar para multiplexação de um componente de vídeo exemplar e um componente de áudio exemplar no sistema da Figura 1.
[0021] A Figura 5 é um fluxograma ilustrando um método exemplar para proporcionar uma caixa de mapeamento de componentes e caixas de arranjo de componente a partir de um servidor para um cliente.
Descrição Detalhada da Invenção
[0022] Em geral, essa revelação descreve técnicas para transportar conteúdo de vídeo. As técnicas dessa revelação incluem o transporte de conteúdo de vídeo utilizando um protocolo de fluxo contínuo, tal como fluxo contínuo de protocolo de transferência de hipertexto (HTTP). Embora HTTP seja descrito com o propósito de ilustração, as técnicas apresentadas nessa revelação podem ser úteis com outros tipos de fluxo contínuo. O conteúdo de vídeo pode ser encapsulado em arquivos de vídeo de um formato de arquivo específico, tal como Formato de Arquivo de Mídia de Base ISSO ou suas extensões. Um conteúdo de vídeo também pode ser encapsulado com fluxo de transporte MPEG-2. Um servidor de conteúdo pode proporcionar um serviço de multimídia incluindo diferentes tipos de dados de multimídia (por exemplo, áudio e vídeo), e vários conjuntos de dados para cada tipo (por exemplo, diferentes idiomas tal como inglês, espanhol e alemão e/ou diferentes tipos de codificação para vídeo tal como MPEG-2, MPEG-4, H.264/AVC, ou H.265). As técnicas dessa revelação podem ser particularmente úteis para sinalizar como diversos tipos e conjuntos de dados de cada tipo podem ser combinados e multiplexados.
[0023] Essa revelação se refere a uma coleção de dados de multimídia, relacionados de uma cena como “conteúdo”, o qual pode conter múltiplos componentes de conteúdo de vídeo e/ou áudio. O termo “componente de conteúdo” ou simplesmente “componente” se refere à mídia de um único tipo, por exemplo, dados de vídeo ou áudio. Um componente de dados pode se referir a uma trilha de dados, a uma sub-trilha, ou a uma coleção de trilhas ou sub- trilhas. Em geral, uma “trilha” pode corresponder a uma sequência de amostras de imagens codificadas relacionadas, enquanto que uma sub-trilha pode corresponder a um subconjunto das amostras codificadas de uma trilha. Como um exemplo, um componente de conteúdo pode corresponder a uma trilha de vídeo, a uma trilha de áudio, ou subtítulos de filme. Um servidor de fluxo contínuo HTTP pode fornecer um conjunto de componentes de conteúdo a um cliente como um serviço para o cliente.
[0024] Um serviço pode corresponder a uma seleção de um componente de conteúdo de vídeo a partir de todos os componentes de conteúdo de vídeo disponíveis para o conteúdo e uma seleção de um componente de conteúdo de áudio a partir de todos os componentes de conteúdo de áudio disponíveis para o conteúdo. Por exemplo, um programa de jogo de futebol, como um conteúdo armazenado em um servidor HTTP, pode ter múltiplos componentes de conteúdo de vídeo, por exemplo, com diferentes taxas de bits (512 kbps ou 1 Mbps) ou com diferentes taxas de quadros, e múltiplos componentes de áudio, por exemplo, inglês, espanhol ou chinês. Assim, um serviço provido ao cliente pode corresponder a uma seleção de um componente de vídeo e de um componente de áudio, por exemplo, áudio em espanhol com o vídeo de 512 kbps. Uma combinação de componentes de vídeo e áudio também pode ser referida como uma representação do conteúdo.
[0025] Em fluxo contínuo HTTP, como um exemplo, um dispositivo de cliente gera uma ou mais solicitações para dados na forma de solicitações HTTP Get ou solicitações Get parciais. Uma solicitação HTTP Get especifica um localizador uniforme de recursos (URL) ou um nome uniforme de recursos (URN) de um arquivo. Uma solicitação HTTP Get parcial especifica um URL ou URN de um arquivo, assim como uma faixa de bytes do arquivo a ser recuperado. Um servidor de fluxo contínuo HTTP pode responder a uma solicitação HTTP Get mediante emissão (por exemplo, enviando) o arquivo no URL ou URN solicitado, ou a faixa de bytes solicitada no arquivo no caso de uma solicitação HTTP Get parcial. Para que um cliente gere adequadamente às solicitações HTTP Get e Get parcial, o servidor pode fornecer informação com relação aos URLs e/ou URNs dos arquivos correspondendo aos componentes de conteúdo para o cliente, assim como características dos componentes, de tal modo que o cliente pode selecionar os componentes de conteúdo desejados e adequadamente gerar as solicitações HTTP Get e/ou Get parcial para os componentes.
[0026] As técnicas dessa revelação incluem sinalizar características de componentes de conteúdo, por exemplo, sinalizar locais de dados para vários componentes de conteúdo. Dessa maneira, um dispositivo de cliente pode selecionar uma representação do conteúdo e gerar solicitações para combinações de vários tipos de componentes de conteúdo. Por exemplo, de acordo com o exemplo acima, um usuário pode optar por assistir o vídeo de 512 kbps com áudio em espanhol. O dispositivo de cliente do espectador pode submeter uma solicitação para esses dois componentes. Isto é, o dispositivo de cliente pode determinar locais para os dados do vídeo de 512 kbps e áudio em espanhol utilizando os dados sinalizados a partir do servidor, e então gerar solicitações para os dados correspondendo a esses componentes de conteúdo. Em resposta à solicitação, um servidor pode entregar esses dois componentes como um serviço ao dispositivo de cliente.
[0027] O Formato de Arquivo de Mídia de Base ISO é projetado para conter informação de mídia sincronizada para uma representação em um formato flexível, extensível que facilita intercâmbio, gerenciamento, edição e representação da mídia. O formato de arquivo de mídia de base ISSO (ISSO/IEC 14496-12:2004) é especificado em MPEG-4 parte 12, que define uma estrutura geral para arquivos de mídia baseados em tempo. O mesmo é usado como a base para outros formatos de arquivo na família tal como suporte definido de formato de arquivo AVC (ISSO/IEC 14496-15) para compactação de vídeo AVC H.264/MPEG-4, formato de arquivo 3GPP, formato de arquivo SVC, e formato de arquivo MVC. O formato de arquivo 3GPP e o formato de arquivo MVC são extensões do formato de arquivo AVC. O formato de arquivo de mídia de base ISO contém informação de sincronismo, estrutura e mídia para sequências sincronizadas de dados de mídia, tal como representações audiovisuais. A estrutura de arquivo pode ser orientada para objeto. Um arquivo pode ser decomposto em objetos básicos de forma muito simples e a estrutura dos objetos é inferida a partir de seu tipo.
[0028] Arquivos em conformidade com o formato de arquivo de mídia de base ISO (e suas extensões) podem ser formados como uma série de objetos, denominados “caixas”. Os dados no formato de arquivo de mídia de base ISO podem ser contidos em caixas, de tal modo que nenhum outro dado precisa ser contido dentro do arquivo e não precisa haver dados fora das caixas dentro do arquivo. Isso inclui qualquer assinatura inicial exigida pelo formato e arquivo específico. Uma “caixa” pode ser um bloco de construção orientado para objeto definido por um identificador de tipo único e comprimento. Tipicamente, uma representação é contida em um arquivo, e a representação de mídia é independente. O recipiente de filme (caixa de filme) pode conter os metadados da mídia e os quadros de vídeo e áudio podem ser contidos no recipiente de dados de mídia e poderiam estar em outros arquivos.
[0029] De acordo com as técnicas dessa revelação, um servidor pode prover uma caixa de mapeamento de componentes que sinaliza características de vários componentes de conteúdo. A caixa de mapeamento de componentes pode corresponder a uma estrutura de dados que pode ser armazenada em um arquivo separado dos arquivos armazenando as amostras codificadas para os vários componentes de conteúdo. A caixa de mapeamento de componentes pode sinalizar características de um componente de conteúdo que não são convencionalmente sinalizadas para dados de vídeo em uma estrutura de dados armazenada externa aos arquivos que efetivamente incluem as amostras codificadas de vídeo. Tal estrutura de dados, como na caixa de mapeamento de componentes, também pode ser sinalizada no arquivo de manifesto ou fluxo contínuo de Descrição de Apresentação de Mídia de HTTP.
[0030] As características podem incluir, por exemplo, uma taxa de quadros, um indicador de perfil, um indicador de nível e dependências entre os componentes. As características sinalizadas pela caixa de mapeamento de componentes também podem incluir características tridimensionais para vídeo 3D, tal como um número de vistas e relações entre as vistas (por exemplo, duas vistas que formam um par estéreo). A caixa de mapeamento de componentes pode sinalizar essas características além de características convencionalmente sinalizadas para um componente de conteúdo, tal como uma taxa de bits e resolução para o componente de conteúdo. A caixa de mapeamento de componentes também pode prover um identificador de serviço (por exemplo, content_id value) que identifica que forma singular um serviço do conteúdo. Cada componente do serviço pode ser associado com o identificador de serviço.
[0031] Um dispositivo de origem pode ser configurado para prover uma caixa de mapeamento de componentes para conteúdo de vídeo independentemente de como o conteúdo é encapsulado. Isto é, o dispositivo de origem pode prover a caixa de mapeamento de componentes aos dispositivos de cliente independentemente de se o conteúdo de vídeo é encapsulado de acordo com o formato de arquivo de Codificação Avançada de Vídeo (AVC), o formato de arquivo Codificação Escalonável de Vídeo (SVC), o formato de arquivo Codificação de Múltiplas Vistas de Vídeo (MVC), o formato de arquivo de Projeto de Parceria de Terceira Geração (3GPP), ou outros formatos de arquivo. Uma caixa de mapeamento de componentes pode sinalizar características de componentes de conteúdo para um conteúdo específico. Em alguns exemplos, cada componente pode corresponder a uma trilha de vídeo ou áudio de um arquivo, uma trilha em uma série de arquivos pequenos, fragmentos de trilha, combinações de trilhas (por exemplo, em SVC ou MVC), ou um subconjunto de uma trilha.
[0032] Em geral, a caixa de mapeamento de componentes pode ser armazenada separadamente dos dados de vídeo que ela descreve. Em alguns exemplos, a caixa de mapeamento de componentes pode ser incluída em um arquivo separado ou ser incluída como parte de um arquivo de filme incluindo componentes de conteúdo, por exemplo, um arquivo MP4 ou 3GP, ou outro arquivo suportando a funcionalidade descrita nessa revelação. A localização da caixa de mapeamento de componentes pode variar mediante encapsulação do tipo de arquivo. Além disso, a caixa de mapeamento de componentes pode ser feita uma extensão para o formato de arquivo de mídia de base ISO ou uma ou mais de suas extensões. Tal estrutura de dados, como na caixa de mapeamento de componentes pode ser também sinalizada no arquivo de manifesto ou fluxo contínuo de Descrição de Apresentação de Mídia de HTTP.
[0033] Como padrão, uma caixa de mapeamento de componentes pode ser aplicável à duração inteira do conteúdo associado. Contudo, em alguns casos, uma caixa de mapeamento de componentes pode se aplicar apenas a um intervalo de temporização específica do conteúdo. Em tais casos, um servidor pode prover múltiplas caixas de mapa de componente, e sinalizar para cada intervalo de temporização ao qual corresponde à caixa de mapeamento de componentes. Em alguns exemplos, quando um servidor provê múltiplas caixas de mapa de componente, o servidor pode ser configurado em um modo estático, no qual as caixas de mapa de componente são arranjadas de forma contígua em ordem de intervalo de temporização no mesmo arquivo. Em alguns exemplos, o servidor pode ser configurado em um modo dinâmico, no qual as caixas de mapa de componente podem ser providas em arquivos separados e/ou em locais descontínuos entre si. O modo dinâmico pode prover vantagens para fluxo contínuo ao vivo, enquanto que o modo estático pode prover vantagens com relação à procura em uma faixa de tempo maior.
[0034] Essa revelação também provê uma caixa de arranjo de componente que pode ser incluída dentro de cada arquivo para sinalizar relações entre trilhas do arquivo e vários componentes. Por exemplo, uma caixa de arranjo de componente em um arquivo incluindo dados para duas ou mais trilhas pode sinalizar uma relação entre identificadores de trilha para as trilhas no arquivo e identificadores de componente para componentes de conteúdo correspondentes. Dessa maneira, um dispositivo de cliente pode primeiramente recuperar a caixa de mapeamento de componentes a partir de um dispositivo servidor. O dispositivo de cliente pode então selecionar um ou mais componentes de uma representação com base nas características sinalizadas pela caixa de mapeamento de componentes. Então, o dispositivo de cliente pode recuperar caixas de arranjo de componente a partir dos arquivos armazenando os componentes descritos pela caixa de mapeamento de componentes. Utilizando a caixa de mapeamento de componentes, que pode incluir informação de segmento tal como faixas de byte de fragmentos para um componente específico, o cliente pode determinar se os fragmentos dos componentes selecionados são armazenados nos arquivos. Com base nessa determinação, o cliente pode submeter solicitações (por exemplo, solicitações HTTP Get ou Get parcial) para fragmentos das trilhas ou sub-trilhas correspondendo aos componentes selecionados.
[0035] Dessa maneira, mais propriamente do que sinalizar informação sobre como cada arquivo, ou cada trilha, é associado com um componente de conteúdo, na caixa de mapeamento de componentes, essa informação pode ser armazenada nas caixas de arranjo de componente associadas com arquivos respectivos. A caixa de mapeamento de componentes pode sinalizar identificadores de componente (por exemplo, values de component_id) de todos os componentes de um conteúdo, enquanto que a caixa de arranjo de componente pode sinalizar as relações entre valores de component_id dos componentes armazenados dentro do arquivo correspondendo à caixa de arranjo de componentes e valores de content_id associados com os valores de component_id. A caixa de mapeamento de componentes também pode, em alguns casos, armazenar informação de segmento. Adicionalmente, a caixa de mapeamento de componentes pode incluir um identificador indicando se a caixa de mapeamento de componentes inclui informação de segmento. Um dispositivo de cliente pode ser configurado para supor que, se a caixa de mapeamento de componentes não inclui informação de segmento, os dados de mídia da representação são contidos em representações dependentes.
[0036] O servidor pode atribuir valores singulares de component_id de cada tipo de mídia, garantindo que o valor de component_id seja singular para qualquer componente de vídeo ou áudio no mesmo serviço. Componentes de um tipo específico podem ser comutados entre si. Isto é, um cliente pode comutar entre vários componentes de vídeo, por exemplo, em resposta às condições de rede variáveis ou outros fatores. Um cliente não precisa solicitar componentes de cada tipo disponível. Por exemplo, um cliente pode omitir a solicitação de legendas para um conteúdo incluindo componentes de legenda. Além disso, em alguns casos, múltiplos componentes do mesmo tipo de mídia podem ser solicitados, por exemplo, para suportar vídeo 3D ou imagem em imagem. O servidor pode prover sinalização adicional para suportar funcionalidades específicas tal como imagem em imagem.
[0037] Por exemplo, o servidor pode prover um identificador indicativo de se um componente inclui uma descrição de dados de imagem em imagem. Se o identificador indicar que o componente inclui dados de imagem em imagem, a caixa de mapeamento de componentes pode prover um identificador de uma representação, em conjunto com uma representação atual, que devem ser escolhidos em conjunto para formar uma exibição de imagem em imagem. Uma representação pode corresponder à imagem grande, enquanto que a outra representação pode corresponder à imagem menor coberta com a imagem grande.
[0038] Como observado acima, o servidor pode prover uma caixa de arranjo de componente em cada arquivo incluindo amostras codificadas correspondendo a um ou mais componentes. A caixa de arranjo de componente pode ser provida nos dados de cabeçalho do arquivo. A caixa de arranjo de componente pode indicar componentes incluídos no arquivo e como os componentes são armazenados, por exemplo, como trilhas dentro do arquivo. A caixa de arranjo de componentes pode prover um mapeamento entre um valor de identificador de componente e valores de identificador de trilha da trilha correspondente no arquivo.
[0039] A caixa de mapeamento de componentes também pode sinalizar dependências entre componentes de conteúdo, onde as dependências sinalizadas podem incluir a ordem de dependências em conjunto com o componente de conteúdo atual para uma ordem de decodificação dos componentes de conteúdo dentro de uma unidade de acesso. Informação sinalizada com relação às dependências para uma representação atual pode incluir qualquer uma ou as duas representações dependentes na representação atual e/ou representações nas quais depende a representação atual. Também pode haver dependências entre os componentes de conteúdo na dimensão temporal. Contudo, simplesmente indicar os valores de temporal_id para cada componente de vídeo poderia não ser suficiente, uma vez que as subcamadas temporais em fluxos de bit de vídeo alternativos totalmente independentes não têm necessariamente um mapeamento das taxas de quadro mutuamente. Por exemplo, um componente de vídeo pode ter uma taxa de quadros de 24 fps e um temporal_id igual a 0, e pode ter uma subcamada de 12 fps (supondo duas camadas temporais), enquanto que outro componente de vídeo pode ter uma taxa de quadros de 30 fps, com um temporal_id igual a 0, e pode ter uma subcamada de 7,5 fps (supondo três camadas temporais). O servidor, portanto, pode indicar a diferença de camada temporal quando a dependência de dois componentes de vídeo é sinalizada.
[0040] Em geral, características sinalizadas de um componente podem incluir, por exemplo, uma taxa de bits média, uma taxa de bits máxima (por exemplo, acima de um segundo), resolução, taxa de quadros, dependência a outros componentes, e/ou extensões reservadas, por exemplo, para vídeo de múltiplas vistas, que pode incluir o número de vistas visadas para emissão e identificadores para aquelas vistas. Informação com relação a uma série de fragmentos de mídia formando um componente de conteúdo também pode ser sinalizada. A informação sinalizada para cada fragmento de mídia pode incluir o deslocamento de bytes do fragmento de mídia, tempo de decodificação da primeira amostra no fragmento de mídia, um ponto de acesso aleatório no fragmento e seu tempo de decodificação e tempo de representação, e/ou um identificador para indicar se o fragmento pertence a um novo fragmento (e assim um URL diferente) do componente de conteúdo.
[0041] Em alguns casos, fragmentos de dados de áudio não são alinhados de forma temporal com os fragmentos de dados de vídeo. Essa revelação proporciona técnicas para multiplexar múltiplos componentes de conteúdo com base em um intervalo de tempo específico. A caixa de mapeamento de componentes pode prover uma lista de intervalos de multiplexação suportados, ou uma faixa de intervalos de multiplexação. O intervalo de multiplexação pode ser designado como T e pode representar um comprimento temporal de dados multiplexados de áudio e vídeo. Suponha que o próximo intervalo de tempo a ser solicitado seja [n*T, (n+l)*T]. O dispositivo de cliente pode determinar se há algum fragmento em cada componente de conteúdo tendo um tempo inicial t de tal modo que (n*T) <= t <= ((n+l)*T). Se esse for o caso, o dispositivo de cliente pode solicitar aquele fragmento. Fragmentos começando antes de n*T podem ser solicitados antes do intervalo de multiplexação atual n*T, enquanto que fragmentos iniciando após o intervalo (n+1)*T podem ser solicitados em um intervalo de multiplexação posterior. Dessa maneira, os componentes de conteúdo, não tendo limites de fragmento que se alinham mutuamente, ou com um intervalo de multiplexação solicitado, podem, entretanto, ser multiplexados. Além disso, o intervalo de multiplexação pode mudar durante um serviço sem impedir a multiplexação dos componentes de conteúdo.
[0042] O dispositivo de cliente pode ser configurado para se adaptar às condições variáveis de rede mediante mudança do intervalo de multiplexação. Por exemplo, quando a largura de banda se torna relativamente mais disponível, o dispositivo de cliente pode aumentar o intervalo de multiplexação. Por outro lado, quando a largura de banda se torna relativamente menos disponível, o dispositivo de cliente pode diminuir o intervalo de multiplexação. O dispositivo de cliente pode ser configurado adicionalmente para solicitar fragmentos multiplexados com base em um determinado intervalo de temporização e taxa instantânea de bits. O dispositivo de cliente pode calcular a taxa de bits instantânea com base no número de bytes em um fragmento e a duração temporal do fragmento.
[0043] O servidor pode, em alguns exemplos, atribuir o mesmo identificador de componente a duas representações de mídia contínuas, por exemplo, dois arquivos de vídeo tendo informação de temporização sequencial, para suportar união temporal. Conforme observado acima, em alguns casos, as representações podem incluir componentes de conteúdo armazenados em diferentes arquivos. Consequentemente um dispositivo de cliente pode precisar submeter múltiplas solicitações Get ou Get parcial para recuperar os dados para um intervalo de tempo específico do conteúdo. Isto é, o cliente pode precisar submeter às múltiplas solicitações Get ou Get parcial com referência aos vários arquivos armazenando os componentes de conteúdo para a representação. Quando múltiplas solicitações são necessárias para obter os dados a serem multiplexados em um certo intervalo de tempo, o dispositivo de cliente pode canalizar as solicitações para garantir que nenhum dado em outro intervalo de tempo seja recebido entre os dados de fragmento de mídia, desejados no intervalo de tempo atual.
[0044] Dessa maneira, o conteúdo de mídia tendo componentes em múltiplos arquivos pode ser suportado em um contexto de fluxo contínuo de rede, tal como fluxo contínuo HTTP. Isto é, uma representação do conteúdo de mídia pode incluir um componente em um arquivo e outro componente em um arquivo separado. Um servidor pode sinalizar características dos componentes em arquivos diferentes em uma única estrutura de dados, por exemplo, uma caixa de mapeamento de componentes. Isso pode habilitar um cliente a fazer solicitações para qualquer componente de conteúdo alvo, ou para qualquer duração de um componente de conteúdo alvo.
[0045] O uso de estruturas de dados similares à caixa de mapeamento de componentes e caixa de arranjo de componentes dessa revelação também pode prover outras vantagens. Por exemplo, duas trilhas de mídia em componentes diferentes podem ter o mesmo valor de identificador de trilha (track_id) dentro dos componentes respectivos. Contudo, conforme observado acima, a caixa de mapeamento de componentes pode se referir aos componentes separados utilizando um identificador de componente, o qual não é o mesmo que um valor de identificador de trilha. Como cada arquivo pode incluir uma caixa de arranjo de componentes que mapeia identificadores de componente para identificadores de trilha, a caixa de mapeamento de componentes pode se referir aos componentes utilizando um identificador de componente que é independente do valor de identificador de trilha. A caixa de arranjo de componentes também pode prover um mecanismo eficiente para especificar qual arquivo corresponde a cada conteúdo, por exemplo, quando um servidor de rede de fornecimento de conteúdo (CDN) armazena múltiplos arquivos correspondendo a muitos conteúdos diferentes.
[0046] Adicionalmente, as técnicas dessa revelação podem suportar clientes com diferentes tamanhos de armazenamento de rede. Isto é, alguns clientes podem exigir armazenadores de tamanhos diferentes do que outros, por exemplo, devido às condições de rede, capacidades de cliente, e semelhante. Portanto, em alguns casos, múltiplos tipos de componentes para uma representação específica podem precisar ser multiplexados em diferentes intervalos de tempo. Essa revelação proporciona técnicas para um servidor sinalizar diferentes intervalos de tempo de multiplexação, possíveis e, portanto, considerar variações em tamanhos dos dados solicitados e, assim, desempenho de transmissão, por exemplo, em termos de tempo de ida e volta entre um cliente e servidor utilizando HTTP.
[0047] Além disso, em alguns casos, um componente de conteúdo em um arquivo pode depender de vários outros componentes de conteúdo em um ou mais de outros arquivos. Tal dependência pode ocorrer dentro de uma unidade de acesso. Como um exemplo, um componente de conteúdo de vídeo pode corresponder a uma camada de aperfeiçoamento SVC de formato de interface comum (CIF) que depende de uma camada CIF e de uma camada de formato de interface comum de um quarto (QCIF). As duas camadas, CIF e QCIF podem estar em um arquivo, enquanto que a camada de aperfeiçoamento 4CIF pode estar em outro arquivo. As técnicas dessa revelação podem garantir que um cliente seja capaz de solicitar adequadamente os dados para as camadas de CIF, QCIF e 4CIF de tal modo que um decodificador do cliente recebe amostras a partir dessas camadas em uma ordem de decodificação adequada, com base nas dependências.
[0048] Em alguns exemplos, um servidor dinâmico pode ser usado para criar dinamicamente os arquivos que multiplexam em conjunto os componentes de conteúdo. Por exemplo, um servidor dinâmico pode suportar métodos após serviço de Interface de Portal Comum (CGI) para multiplexar componentes em conjunto, e tornar os dados para um intervalo de tempo atual uma parte contínua de um arquivo dinâmico. CGI é descrito em Request for Comment 3875, disponível em http://tools.ietf.org/html/rfc3875. Utilizando um serviço tal como CGI, o servidor pode gerar dinamicamente um arquivo incluindo uma combinação de vários componentes de conteúdo para uma representação de conteúdo.
[0049] Uma representação (sequência de movimento) pode ser contida em vários arquivos. Informação de temporização e enquadramento (posição e tamanho) geralmente está no arquivo de mídia de base ISSO e os arquivos antigos podem essencialmente utilizar qualquer formato. Essa representação pode ser “local” para o sistema contendo representação, ou pode ser provida por intermédio de uma rede ou de outro mecanismo de fornecimento de fluxo.
[0050] Os arquivos podem ter uma estrutura lógica, uma estrutura temporal e uma estrutura física, e essas estruturas não têm que ser acopladas. A estrutura lógica do arquivo pode ser um filme ou clipe de vídeo (incluindo potencialmente ambos os dados, de vídeo e de áudio) que por sua vez contém um conjunto de trilhas paralelas em termos de tempo. A estrutura de tempo do arquivo pode ser aquela em que as trilhas contêm sequências de amostras em tempo, e aquelas sequências são mapeadas para a linha de tempo do filme total mediante listas opcionais de edição. A estrutura física do arquivo pode separar os dados necessários para decomposição lógica, temporal e estrutural, a partir das próprias amostras de dados de mídia. Essa informação estrutural pode ser concentrada em uma caixa de filmes, possivelmente estendida em tempo por caixas de fragmentos de filme. A caixa de filme pode documentar as relações lógicas e de temporização das amostras, e também pode conter indicadores para onde elas estão localizadas. Esses indicadores podem estar no mesmo arquivo ou em outro arquivo, por exemplo, referenciado por um URL.
[0051] Cada fluxo de mídia pode ser contido em uma trilha especializada para aquele tipo de mídia (áudio, vídeo, etc.), e pode adicionalmente ser parametrizado por uma entrada de amostra. A entrada de amostra pode conter o “nome” do tipo de mídia exato (o tipo de decodificador necessário para decodificar o fluxo) e qualquer parametrização necessária daquele decodificador. O nome pode também assumir a forma de um código de quatro caracteres, por exemplo, “moov” ou “trak”. Há formatos de entrada de amostra definidos não apenas para mídia MPEG-4, mas também para os tipos de mídia usados por outras organizações utilizando essa família de formatos de arquivo.
[0052] Suporte para metadados geralmente assume duas formas. Em primeiro lugar, metadados sincronizados podem ser armazenados em uma trilha apropriada, e sincronizados conforme desejado com os dados de mídia que ele está descrevendo. Em segundo lugar, pode haver suporte geral para metadados não sincronizados ligados ao filme ou a uma trilha individual. O suporte estrutural é geral, e permite o armazenamento de recurso de metadados em outro lugar no arquivo ou em outro arquivo, de uma maneira similar ao armazenamento dos dados de mídia, isto é, as imagens de vídeo codificado. Além disso, esses recursos podem ser nomeados e podem ser protegidos.
[0053] O termo “transferência progressiva” é usado para descrever a transferência de arquivos de mídia digital a partir de um servidor para um cliente, utilizando tipicamente o protocolo HTTP. Quando iniciada a partir de um computador, o computador pode começar a reprodução da mídia antes da transferência estar concluída. Uma diferença entre mídia de fluxo contínuo e transferência progressiva está em como os dados de mídia digital são recebidos e armazenados pelo dispositivo de usuário final que está acessando a mídia digital. O dispositivo de reprodução de mídia que é capaz de reprodução de transferência progressiva se baseia em metadados localizados no cabeçalho do arquivo estando intactos e um armazenador local do arquivo de mídia digital à medida que ele é transferido de um servidor de rede. No momento em que uma quantidade especificada de dados armazenados se torna disponível ao dispositivo de reprodução local, o dispositivo pode começar a reproduzir a mídia. Essa quantidade especificada de dados armazenados pode ser embutida no arquivo pelo produtor do conteúdo nas configurações do codificador e pode ser reforçada por configurações adicionais de armazenador impostas pelo aparelho de reprodução de mídia do computador de cliente.
[0054] No fluxo contínuo HTTP ou transferência progressiva, em vez de prover uma única caixa de filme (caixa moov) que inclui todos os dados de mídia, incluindo amostras de vídeo e áudio, fragmentos de filme (moof) são suportados para conter amostras extraordinárias além daquelas contidas na caixa de filme. Tipicamente, os fragmentos de filme contêm as amostras para um certo período de tempo. Utilizando os fragmentos de filme, um cliente pode rapidamente procurar um tempo desejado. Um fragmento de filme pode conter bytes contínuos de um arquivo, de modo que de acordo com um protocolo de fluxo contínuo, tal como fluxo contínuo HTTP, um cliente pode emitir uma solicitação GET parcial para recuperar um fragmento de filme.
[0055] Com relação a 3GPP como um exemplo, transporte HTTP/TCP/IP é suportado para arquivos 3GPP para transferência e para transferência progressiva. Adicionalmente, o uso de HTTP para fluxo contínuo de vídeo pode fornecer algumas vantagens, e os serviços de fluxo contínuo de vídeo com base em HTTP estão se tornando populares. O fluxo contínuo HTTP pode fornecer certas vantagens, incluindo que os componentes existentes da Internet e protocolos podem ser usados, de tal modo que novos esforços não são necessários para desenvolver novas técnicas para transportar dados de vídeo através de uma rede. Outros protocolos de transporte, por exemplo, caixas intermediárias, para ter conhecimento do formato de mídia e do contexto de sinalização. Além disso, o fluxo contínuo HTTP pode ser acionado pelo cliente, o que pode evitar problemas de controle. Utilizando-se HTTP também não se requer necessariamente novas implementações de hardware ou software em um servidor de rede que tenha HTTP 1.1 implementado. Fluxo contínuo de HTTP também proporciona propriedade de TCP amigável e travessia de firewall. Em fluxo contínuo HTTP, uma representação de mídia pode ser uma compilação estruturada de dados que são acessíveis para o cliente. O cliente pode solicitar e transferir informação de dados de mídia para apresentar um serviço de fluxo contínuo a um usuário.
[0056] Um serviço é experimentado pelo usuário de um cliente como uma representação de um filme, o qual é decodificado e renderizado pelo cliente a partir dos componentes de conteúdo fornecidos pelo servidor. No fluxo contínuo HTTP, em vez de receber um conteúdo completo em resposta a uma solicitação, o cliente pode solicitar segmentos dos componentes de conteúdo. Dessa maneira, o fluxo contínuo de HTTP pode fornecer uma entrega mais flexível de conteúdo. Um segmento pode incluir um conjunto de fragmentos de filme contínuo que seriam solicitados por um URL. Por exemplo, um segmento pode ser um arquivo pequeno inteiro, o qual pode conter vídeo e áudio. Como outro exemplo, um segmento pode corresponder a um fragmento de filme, o qual pode conter um fragmento de trilha de vídeo e um fragmento de trilha de áudio. Como ainda outro exemplo, um segmento pode corresponder a vários fragmentos de filme, cada um dos quais ou todos os quais pode ter um fragmento de vídeo e um fragmento de áudio, e os fragmentos de filme podem ser contínuos em tempo de decodificação.
[0057] Uma rede de fornecimento de conteúdo (CDN), também referida como uma rede de distribuição de conteúdo pode incluir um sistema de computadores contendo cópias de dados, colocadas em vários pontos na rede de modo a maximizar a largura de banda para acesso aos dados pelos clientes por toda a rede. Um cliente pode acessar uma cópia dos dados próximos ao cliente, em oposição a todos os clientes acessando o mesmo servidor central, o que pode evitar pontos de estrangulamento próximos a um servidor individual. Tipos de conteúdo podem incluir objetos de rede, objetos que podem ser transferidos (arquivos de mídia, software, documentos e semelhantes) aplicativos, fluxos de mídia em tempo real, e outros componentes de fornecimento de Internet (DNS, todas, e consultas de banco de dados). Há muitos CDNs bem-sucedidos que se baseiam apenas em protocolo HTTP, mais especificamente, servidor de origem, proxies e caches baseados em HTTP 1.1.
[0058] No fluxo contínuo de HTTP, operações frequentemente usadas incluem GET e GET parcial. A operação GET recupera um arquivo inteiro associado a um determinado localizador uniforme de recursos (URL) ou nome uniforme de recursos (URN). A operação GET parcial recebe uma gama de bytes como um parâmetro de entrada e recebe um número contínuo de bytes de um arquivo correspondendo a gama de bytes recebidos. Assim, fragmentos de filme podem ser providos para fluxo contínuo de HTTP, porque uma operação GET parcial pode obter um ou mais fragmentos individuais de filme. Um fragmento de filme pode conter vários fragmentos de trilha a partir de trilhas diferentes.
[0059] No contexto de fluxo contínuo de HTTP, um segmento pode ser fornecido como uma resposta a uma solicitação GET ou a uma solicitação GET parcial (em HTTP 1.1). Em uma CDN, dispositivos de computação tais como proxies e caches podem armazenar os segmentos em resposta às solicitações. Assim, se o segmento for solicitado por outro cliente (ou pelo menos cliente), e o cliente tiver um percurso através desse dispositivo proxy, o dispositivo proxy pode fornecer a cópia local do segmento ao cliente, sem recuperar o segmento outra vez a partir do servidor de origem. Em fluxo contínuo de HTTP, se o dispositivo proxy suportar HTTP 1.1, gamas de bytes, como respostas às solicitações, podem ser combinadas enquanto armazenadas no cache de um dispositivo proxy ou extraídas enquanto sendo usadas como uma cópia local de uma resposta a uma solicitação. Cada componente de conteúdo pode incluir seções de fragmentos contínuos, cada uma das quais pode ser solicitada por um GET de HTTP ou GET parcial enviado por um dispositivo de cliente. Tal fragmento de um componente de conteúdo pode ser referido como um fragmento de mídia.
[0060] Pode haver mais do que uma representação de mídia em fluxo contínuo de HTTP para suportar diversas taxas de bits e diversos dispositivos, assim como se adaptar às várias preferências de usuário. Uma descrição das representações pode ser feita em uma estrutura de dados de Descrição de Apresentação de Mídia (MPD), que pode corresponder a uma caixa de mapeamento de componentes, como gerada por um servidor e enviada a um cliente. Isto é, uma estrutura de dados MPD convencional pode incluir dados correspondendo à caixa de mapeamento de componentes, conforme descrito nessa revelação. Em outros exemplos, a caixa de mapeamento de componentes pode incluir ainda os dados similares a uma estrutura de dados MPD, além dos dados descritos nessa revelação com relação à caixa de mapeamento de componentes. As representações descritas podem incluir componentes de conteúdo, contidos em um ou mais arquivos de filme. Se servidor de conteúdo estático for usado, o servidor pode armazenar os arquivos de filme. Se servidor de conteúdo dinâmico for suportado, o servidor pode gerar um arquivo dinâmico (conteúdo) em resposta a uma solicitação recebida. Embora conteúdo dinâmico possa ser gerado instantaneamente por um servidor, o mesmo é transparente para os dispositivos de computação tais como proxies e caches. Assim, os segmentos providos em resposta às solicitações para servidor de conteúdo dinâmico também podem ser armazenados em cache. Um servidor de conteúdo dinâmico pode ter uma implementação mais complexa e poderia ser de armazenamento menos ótimo pelo lado do servidor ou menos eficiente em cache durante o fornecimento do conteúdo.
[0061] Além disso, essa revelação também inclui técnicas para sinalizar no MPD se uma representação específica (por exemplo, uma combinação de componentes) é um ponto de operação completo. Isto é, um servidor pode prover um sinalizador no MPD para indicar ao cliente se uma representação pode ser selecionada como um ponto de operação de vídeo completo. Um ponto de operação pode corresponder a um subfluxo de bits MVC, isto é, um subconjunto de um fluxo de bits MVC compreendendo um subconjunto de vistas em um determinado nível temporal e representando para ele próprio um fluxo de bits válido. Um ponto de operação pode representar um determinado nível de escalabilidade temporal e visual e conter apenas unidades NAL exigidas para um fluxo de bits válido para representar um determinado subconjunto de vistas em certo nível temporal. Um ponto de operação pode ser descrito por intermédio de valores de identificador de vista do subconjunto de vistas, e um identificador temporal mais elevado do subconjunto de vistas.
[0062] O MPD também pode descrever representações individuais para um conteúdo de multimídia. Por exemplo, para cada representação, o MPD pode sinalizar um identificador de representação, um identificador de representação de atributo padrão, um indicador de perfil e nível para representação, uma taxa de quadros para a representação, um identificador de grupo de dependência, e um identificador temporal. O identificador de representação pode prover um identificador único da representação associada para o conteúdo de multimídia. O identificador de representação de atributo padrão pode prover um identificador de uma representação tendo atributos que serão usados como atributos padrão para representação atual, que podem incluir qualquer um ou todos de um indicador de perfil e nível, largura de banda, largura, altura, taxa de quadros, identificador de grupo de dependência, identificador temporal, e/ou um tipo de compactação de quadros para vídeo 3D. O identificador de taxa de quadros pode especificar uma taxa de quadros do componente(s) de vídeo para a representação correspondente. O identificador de grupo de dependência pode especificar o grupo de dependência para o qual a representação correspondente é atribuída. Representações em um grupo de dependência tendo um valor de identificador temporal podem depender das representações no mesmo grupo de dependência com valores inferiores de identificador temporal.
[0063] Para representações de vídeo 3D, por exemplo, correspondendo ao vídeo de múltiplas vistas, a caixa de mapeamento de componentes pode descrever um número de vistas alvo para emissão. Isto é, a caixa de mapeamento de componentes pode incluir um valor representativo do número de vistas de saída alvo para uma representação. Em alguns exemplos, a caixa de mapeamento de componentes pode prover informação de profundidade para uma única vista em conjunto com amostras codificadas para a única vista, de tal modo que um dispositivo de cliente pode construir uma segunda vista a partir da única vista e da informação de profundidade. Um sinalizador pode estar presente para indicar que a representação é uma vista acrescida de representação de profundidade. Em alguns exemplos, múltiplas vistas podem estar contidas na representação, cada uma delas sendo associada com informação de profundidade. Dessa maneira, cada uma das vistas pode ser usada como uma base para criar um par de vistas estéreo, resultando em duas vistas para cada uma das vistas da representação. Assim, embora múltiplas vistas possam ser combinadas na representação, nenhuma de duas das vistas forma necessariamente um par de vistas estéreo. Em alguns exemplos, um sinalizador pode ser incluído para indicar se uma representação é apenas uma representação dependente, o que não pode por si formar uma representação válida para o componente de multimídia correspondente.
[0064] A Figura 1 é um diagrama de blocos ilustrando um sistema exemplar 10 no qual o dispositivo de origem de áudio/vídeo (A/V) 20 transporta dados de áudio e vídeo para o dispositivo de destino A/V 40. O sistema 10 da Figura 1 pode corresponder a um sistema de teleconferência de vídeo, um sistema de servidor/cliente, um sistema de difusor/receptor, ou qualquer outro sistema no qual os dados de vídeo são enviados a partir de um dispositivo de origem, tal como dispositivo de origem A/V 20, para um dispositivo de destino, tal como dispositivo de destino A/V 40. Em alguns exemplos, o dispositivo de origem A/V 20 e o dispositivo de destino A/V 40 podem realizar permuta bidirecional de informação. Isto é, o dispositivo de origem A/V 20 e o dispositivo de destino A/V 40 podem ser capazes de codificar e decodificar (e transmitir e receber) dados de áudio e vídeo. Em alguns exemplos, o codificador de áudio 26 pode compreender um codificador de voz, também referido como um vocoder.
[0065] O dispositivo de origem A/V 20, no exemplo da Figura 1, compreende fonte de áudio 22 e fonte de vídeo 24. A fonte de áudio 22 pode compreender, por exemplo, um microfone que produz sinais elétricos representativos de dados de áudio capturados a serem codificados pelo codificador de áudio 26. Alternativamente, a fonte de áudio 22 pode compreender um meio de armazenamento armazenando os dados de áudio previamente gravados, um gerador de dados de áudio tal como um sintetizador computadorizado, ou qualquer outra fonte de dados de áudio. A fonte de vídeo 24 pode compreender uma câmera de vídeo que produz dados de vídeo a serem codificados pelo codificador de vídeo 28, um meio de armazenamento codificado com dados de vídeo previamente gravados, uma unidade de geração de dados de vídeo, ou qualquer outra fonte de dados de vídeo.
[0066] Os dados brutos de áudio e vídeo podem compreender dados analógicos ou digitais. Dados analógicos podem ser digitalizados antes de ser codificados pelo codificador de áudio 26 e/ou codificador de vídeo 28. A fonte de áudio 22 pode obter dados de áudio a partir de um participante orador enquanto o participante orador estiver falando, e a fonte de vídeo 24 pode simultaneamente obter os dados de vídeo do participante orador. Em outros exemplos, a fonte de áudio 22 pode compreender um meio de armazenamento legível por computador compreendendo dados de áudio armazenados, e a fonte de vídeo 24 pode compreender um meio de armazenamento legível por computador compreendendo os dados de vídeo armazenados. Dessa maneira, as técnicas descritas nessa revelação podem ser aplicadas aos dados de áudio e vídeo ao vivo, em fluxo constante, em tempo real ou aos dados de áudio e vídeo arquivados, pré- gravados. Além disso, as técnicas podem ser aplicadas aos dados de áudio e vídeo gerados por computador.
[0067] Os quadros de áudio que correspondem aos quadros de vídeo são geralmente quadros de áudio contendo dados de áudio que foram capturados pela fonte de áudio 22 contemporaneamente com os dados de vídeo capturados pela fonte de vídeo 24 que está contida dentro dos quadros de vídeo. Por exemplo, embora um participante orador geralmente produza dados de áudio mediante fala, a fonte de áudio 22 captura os dados de áudio, e a fonte de vídeo 24 captura os dados de vídeo do participante orador ao mesmo tempo, isto é, enquanto a fonte de áudio 22 está capturando os dados de áudio. Portanto, um quadro de áudio pode corresponder de forma temporal a um ou mais quadros de vídeo específicos. Consequentemente um quadro de áudio correspondendo a um quadro de vídeo geralmente corresponde a uma situação na qual os dados de áudio e os dados de vídeo foram capturados ao mesmo tempo e para os quais um quadro de áudio e um quadro de vídeo compreendem, respectivamente, os dados de áudio e os dados de vídeo que foram capturados ao mesmo tempo.
[0068] Em alguns exemplos, o codificador de áudio 26 pode codificar uma marcação de tempo em cada quadro de áudio codificado que representa um tempo no qual os dados de áudio para o quadro de áudio codificado foram gravados, e similarmente, o codificador de vídeo 28 pode codificar uma marcação de tempo em cada quadro de vídeo codificado que representa um tempo no qual os dados de vídeo para o quadro de vídeo codificado foram gravados. Em tais exemplos, um quadro de áudio correspondendo a um quadro de vídeo pode compreender um quadro de áudio compreendendo uma marcação de tempo e um quadro de vídeo compreendendo a mesma marcação de tempo. O dispositivo de origem A/V 20 pode incluir um relógio interno a partir do qual o codificador de áudio 26 e/ou o codificador de vídeo 28 pode gerar as marcações de tempo, ou que a fonte de áudio 22 e a fonte de vídeo 24 podem utilizar para associar os dados de áudio e de vídeo, respectivamente, com uma marcação de tempo.
[0069] Em alguns exemplos, a fonte de áudio 22 pode enviar os dados para o codificador de áudio 26 correspondendo a um tempo no qual os dados de áudio foram gravados, e a fonte de vídeo 24 pode enviar os dados para o codificador de vídeo 20 correspondendo a um tempo no qual os dados de vídeo foram gravados. Em alguns exemplos, o codificador de áudio 26 pode codificar um identificador de sequência nos dados de áudio codificados para indicar um ordenamento temporal relativo de dados de áudio codificados, mas sem indicar necessariamente um tempo absoluto no qual os dados de áudio foram gravados, e similarmente, o codificador de vídeo 28 também pode usar identificadores de sequência para indicar um ordenamento temporal relativo de dados de vídeo codificados. Similarmente, em alguns exemplos, um identificador de sequência pode ser mapeado ou de outro modo correlacionado com uma marcação de tempo.
[0070] As técnicas dessa revelação são geralmente dirigidas ao transporte de dados codificados de multimídia (por exemplo, áudio e vídeo), e recepção e subsequente interpretação e decodificação dos dados de multimídia transportados. Particularmente, a unidade de encapsulação 30 pode gerar ma caixa de mapeamento de componentes para um conteúdo de multimídia, assim como caixas de arranjo de componentes para cada arquivo correspondendo ao conteúdo de multimídia. Em alguns exemplos, um processador pode executar as instruções correspondendo à unidade de encapsulação 30. Isto é, instruções para realizar a funcionalidade atribuída à unidade de encapsulação 30 podem ser armazenadas em um meio legível por computador e executadas por um processador. Outro conjunto de circuitos de processamento pode ser configurado para realizar as funções atribuídas também à unidade de encapsulação 30, em outros exemplos. A caixa de mapeamento de componentes pode ser armazenada separadamente a partir dos componentes (por exemplo, componentes de áudio, componentes de vídeo, ou outros componentes) do conteúdo.
[0071] Consequentemente, o dispositivo de destino 40 pode solicitar a caixa de mapeamento de componentes para o conteúdo de multimídia. O dispositivo de destino 40 pode utilizar a caixa de mapeamento de componentes para determinar os componentes para solicitar para realização de reprodução do conteúdo com base nas preferências de um usuário, condições de rede, capacidades de decodificação e renderização do dispositivo de destino 40, ou outros fatores.
[0072] O dispositivo de origem de A/V 20 pode prover um “serviço” ao dispositivo de destino de A/V 40. Um serviço geralmente corresponde a uma combinação de um ou mais componentes de conteúdo de áudio e vídeo, onde os componentes de conteúdo de áudio e vídeo são subconjuntos dos componentes de conteúdo disponíveis de um conteúdo completo. Um serviço pode corresponder ao vídeo estéreo tendo duas vistas, enquanto que outro serviço pode corresponder a quatro vistas e ainda outro serviço pode corresponder a oito vistas. Em geral, um serviço corresponde ao dispositivo de origem 20 proporcionando uma combinação (isto é, um subconjunto) dos componentes de conteúdo disponíveis. Uma combinação dos componentes de conteúdo também é referida como uma representação do conteúdo.
[0073] A unidade de encapsulação 30 recebe as amostras codificadas a partir do codificador de áudio 26 e codificador de vídeo 28 e forma unidades de camada de abstração de rede (NAL) a partir das amostras codificadas, as quais podem assumir a forma de pacotes de fluxo elementar empacotado (PES). No exemplo de H.264/AVC (Codificação Avançada de Vídeo), os segmentos de vídeo codificado são organizados em unidades NAL, as quais proporcionam uma representação de vídeo “amigável para a rede” tratando de aplicações tais como telefonia de vídeo, armazenamento, difusão, ou fluxo contínuo. As unidades NAL podem ser categorizadas como unidades NAL de Camada de Codificação de Vídeo (VCL) e unidades NAL não-VCL. As unidades VCL podem conter dados a partir de um mecanismo de compactação de núcleo e podem incluir as unidades VCL podem conter dados a partir do mecanismo de compactação de núcleo e podem incluir dados de nível de bloco, macrobloco e/ou fatia. Outras unidades NAL podem ser unidades NAL não VCL. Em alguns exemplos, uma imagem codificada em instância de tempo, normalmente apresentada como uma imagem codificada primária pode ser contida em uma unidade de acesso, a qual pode incluir uma ou mais unidades NAL.
[0074] De acordo com as técnicas dessa revelação, a unidade de encapsulação 30 pode construir uma caixa de mapeamento de componentes que descreve características de componentes de conteúdo. A unidade de encapsulação 30 também pode construir caixas de arranjo de componentes para um ou mais arquivos de vídeo. A unidade de encapsulação 30 pode associar cada caixa de arranjo de componentes com um arquivo de vídeo correspondente, e pode associar uma caixa de mapeamento de componentes com um conjunto de arquivos de vídeo. Dessa maneira, pode haver uma correspondência de 1:1 entre as caixas de arranjo de componente e os arquivos de vídeo, e uma correspondência de 1:N entre as caixas de mapa de componentes e os arquivos de vídeo.
[0075] Conforme observado acima, a caixa de mapeamento de componentes pode descrever características de componentes comuns para um conteúdo. Por exemplo, o conteúdo pode incluir componentes de áudio, componentes de vídeo, e outros componentes, tais como legendas. Cada um dos componentes de certo tipo pode ser permutável com outro componente. Por exemplo, dois componentes de vídeo podem ser comutados, em que os dados a partir de qualquer um dos dois componentes podem ser recuperados sem impedir a reprodução do conteúdo. Os vários componentes podem ser codificados de várias formas e com várias qualidades. Por exemplo, os vários componentes de vídeo podem ser codificados em várias taxas de quadro, taxas de bit, utilizando codificadores diferentes (por exemplo, correspondendo aos codecs diferentes), encapsulados em vários tipos de arquivos (por exemplo, fluxo de transporte (TS) MPEG-2 ou H.264/AVC) ou de outro modo diferir uns dos outros. Contudo, a seleção de um componente de vídeo é geralmente independente da seleção de um componente de áudio, por exemplo. As características de um componente sinalizadas pela caixa de mapeamento de componentes podem incluir uma taxa de bits média, uma taxa de bits máxima (por exemplo, superior a um segundo de tempo de reprodução para o componente), uma resolução, uma taxa de quadro, dependências para outros componentes, e extensões para vários tipos de arquivo, tal como vídeo de múltiplas vistas, por exemplo, o número de vistas visadas para emissão e identificadores para cada uma das vistas.
[0076] O dispositivo de origem 20, o qual pode atuar como um servidor tal como um servidor HTTP, pode armazenar múltiplas representações do mesmo conteúdo para adaptação. Algumas representações podem conter múltiplos componentes de conteúdo. Os componentes podem ser armazenados em diferentes arquivos em um dispositivo de armazenamento do dispositivo de origem 20 (por exemplo, uma ou mais unidades de disco rígido), e assim uma representação pode incluir dados a partir de diferentes arquivos. Mediante sinalização das características dos vários componentes, a unidade de encapsulação 30 pode prover o dispositivo de destino 40 com a capacidade de selecionar um de cada componente permutável para apresentar e reproduzir o conteúdo correspondente. Isto é, o dispositivo de destino 40 pode recuperar a caixa de mapeamento de componentes, a partir do dispositivo de origem 20 para um conteúdo específico, selecionar os componentes para o conteúdo correspondendo a uma representação específica do conteúdo, então recuperar os dados para os componentes selecionados a partir do dispositivo de origem 20, por exemplo, de acordo com um protocolo de fluxo contínuo tal como fluxo contínuo HTTP.
[0077] O dispositivo de destino 40 pode selecionar uma representação com base nas condições de rede, tal como largura de banda disponível e características dos componentes. Além disso, o dispositivo de destino 40 pode se adaptar às condições variáveis de rede utilizando os dados sinalizados pelos dispositivos de origem 20. Isto é, como os componentes do mesmo tipo podem ser comutados entre si, quando mudam as condições da rede, o dispositivo de destino 40 pode selecionar um componente diferente de um tipo específico que é mais adequado para as condições de rede recentemente determinadas.
[0078] A unidade de encapsulação 30 atribui valores de identificador de componente a cada componente do conteúdo de multimídia. Os valores de identificador de componente são singulares para os componentes, independentemente do tipo. Isto é, não deve haver um componente de áudio e um componente de vídeo tendo o mesmo identificador de componente, por exemplo. Os identificadores de componente também não são necessariamente relacionados aos identificadores de trilhas dentro de arquivos individuais. Por exemplo, o conteúdo pode ter dois componentes de vídeo, cada um deles armazenado em diferentes arquivos. Cada um dos arquivos pode identificar os componentes de vídeo utilizando o mesmo identificador de trilha, uma vez que identificadores locais para um arquivo específico são específicos para o escopo daquele arquivo, não externamente. Contudo, como as técnicas dessa revelação envolvem prover características de componente que podem residir dentro de múltiplos arquivos, essa revelação propõe atribuir singularmente os identificadores de componente que não estão necessariamente relacionados aos identificadores de trilha.
[0079] A caixa de mapeamento de componentes também pode indicar como os fragmentos são armazenados para cada componente/trilha no arquivo, por exemplo, onde os fragmentos começam, se eles incluem pontos de acesso aleatórios (e se os pontos de acesso aleatório são imagens de renovação instantânea de decodificação (IDR) ou de renovação de decodificação aberta (ODR)), deslocamentos de bytes para o início de cada fragmento, tempos de decodificação das primeiras amostras em cada fragmento, tempos de apresentação e decodificação para pontos de acesso aleatório, e um sinalizador para indicar se um fragmento específico pertence a um novo segmento. Cada segmento pode ser recuperável independentemente. Por exemplo, a unidade de encapsulação 30 pode armazenar cada segmento de um componente de tal modo que cada segmento pode ser recuperado utilizando um localizador uniforme de recursos (URL) único ou nome uniforme de recursos (URN) único.
[0080] Além disso, a unidade de encapsulação 30 pode prover caixas de arranjo de componentes em cada um dos arquivos que proporciona um mapeamento entre identificadores de componentes para os identificadores de conteúdo e trilha dentro do arquivo correspondente. A unidade de encapsulação 30 pode também sinalizar dependências entre os componentes do mesmo tipo. Por exemplo, certos componentes podem ser dependentes de outros componentes do mesmo tipo a serem decodificados corretamente. Como um exemplo, na codificação de vídeo escalonável (SVC), uma camada de base pode corresponder a um componente, e uma camada de aperfeiçoamento para a camada de base pode corresponder a outro componente. Como outro exemplo, na codificação de vídeo de múltiplas vistas (MVC), uma vista pode corresponder a um componente, e outra vista da mesma cena pode corresponder a outro componente. Como ainda outro exemplo, amostras de um componente podem ser codificadas em relação às amostras de outro componente. Por exemplo, em MVC, pode haver componentes correspondendo as diferentes vistas para as quais predição entre vistas é habilitada.
[0081] Dessa maneira, o dispositivo de destino 40 pode determinar dependências entre os componentes e recuperar componentes originais para componentes dependendo dos componentes originais, em adição aos componentes desejados, para decodificar apropriadamente e/ou renderizar os componentes. A unidade de encapsulação 30 pode adicionalmente sinalizar um ordenamento das dependências e/ou uma ordem de decodificação dos componentes, de modo que o dispositivo de destino 40 pode solicitar os dados para os componentes na ordem adequada. Além disso, a unidade de encapsulação 30 pode sinalizar diferenças temporais de camada entre os componentes tendo dependências, de modo que o dispositivo de destino 40 pode alinhar adequadamente as amostras dos componentes para decodificação e/ou renderização. Por exemplo, um componente de vídeo pode ter uma taxa de quadros de 24 e um temporal_id igual a 0 subcamada de 12 fps, enquanto que outro componente de vídeo pode ter uma taxa de quadros de 30 e um temporal_id igual a 0 subcamada de 7,5 fps.
[0082] A unidade de encapsulação 30 pode sinalizar vários intervalos de multiplexação possíveis para combinações de componentes para formar uma representação. Dessa maneira, o dispositivo de destino 40 pode selecionar um dos possíveis intervalos de multiplexação, para solicitar os dados para os vários componentes dentro de um período de tempo suficiente para permitir os dados para os segmentos vindouros dos componentes a serem recuperados enquanto segmentos anteriores dos componentes estiverem sendo decodificados e exibidos. Isto é, o dispositivo de destino 40 pode solicitar os dados para os componentes suficientemente de forma antecipada de tal modo que não haja uma reprodução interrompida (supondo nenhuma mudança imediata nas condições de rede), ainda assim não muito antecipadamente que um armazenador seja sobrecarregado. Se houver uma mudança nas condições de rede, o dispositivo de destino 40 pode selecionar um intervalo de multiplexação diferente, mais propriamente do que comutar completamente os componentes, para garantir que uma quantidade suficiente de dados seja recuperada para decodificação e renderização enquanto esperando a transmissão de mais dados subsequentes. A unidade de encapsulação 30 pode sinalizar os intervalos de multiplexação com base nos intervalos explicitamente sinalizados ou em uma faixa de intervalos, e pode sinalizar esses intervalos de multiplexação dentro da caixa de mapeamento de componentes.
[0083] Em alguns exemplos, o dispositivo de origem 20 pode receber solicitações especificando múltiplas faixas de bytes. Isto é, o dispositivo de destino 40 pode especificar múltiplas faixas de byte em uma solicitação para obter multiplexação de vários componentes dentro de um arquivo. O dispositivo de destino 40 pode enviar múltiplas solicitações quando os componentes estiverem em múltiplos arquivos, qualquer um ou todos os quais podem especificar uma ou mais faixas de bytes. Como um exemplo, o dispositivo de destino 40 pode submeter múltiplas solicitações HTTP Get ou Get parcial para múltiplos URLs ou URNs, onde qualquer uma ou todas as solicitações Get parcial podem especificar múltiplas faixas de byte dentro dos URLs ou URNs das solicitações. O dispositivo de origem 20 pode responder mediante provisão dos dados solicitados para o dispositivo de destino 40. Em alguns exemplos, o dispositivo de origem 20 pode suportar multiplexação dinâmica, por exemplo, mediante implementação de Interface de Portal Comum (CGI) para multiplexar componentes de uma representação em conjunto para formar dinamicamente um arquivo, cujo dispositivo de origem 20 pode então fornecer ao dispositivo de destino 40.
[0084] A unidade de encapsulação 30 também pode especificar uma duração temporal do conteúdo ao qual corresponde à caixa de mapeamento de componentes. Por padrão, o dispositivo de destino 40 pode ser configurado para determinar que uma caixa de mapeamento de componentes aplica um conteúdo inteiro quando nenhuma duração temporal é sinalizada. Contudo, onde sinalizado, o dispositivo de destino 40 pode ser configurado para solicitar múltiplas caixas de mapa de componentes para o conteúdo, cada uma correspondendo a uma duração temporal diferente do conteúdo. A unidade de encapsulação 30 pode armazenar em conjunto as caixas de mapa de componentes de forma contígua, ou em locais separados.
[0085] Em alguns casos, várias porções (por exemplo, segmentos) de um componente podem ser armazenadas em arquivos separados (por exemplo, estruturas de dados recuperáveis de URL ou URN). Em tais casos, o mesmo identificador de componente pode ser usado para identificar o componente em cada arquivo, tal como dentro de uma caixa de arranjo de componente do arquivo. Os arquivos podem ter informação de temporização sequencial, isto é, informação de temporização que indica que um dos arquivos segue imediatamente o outro arquivo. O dispositivo de destino 40 pode gerar solicitações para fragmentos multiplexados com base em um determinado intervalo de temporização e uma taxa de bits instantânea. O dispositivo de destino 40 pode calcular a taxa de bits instantânea com base em um número de bytes em fragmentos de um componente.
[0086] Como com a maioria dos padrões de codificação de vídeo, H.264/AVC define a sintaxe, semântica, e processo de decodificação para fluxos de bits sem erro, qualquer um dos quais está de acordo com um determinado perfil ou nível. H.264/AVC não especifica o codificador, mas o codificador tem a tarefa de garantir que os fluxos de bit gerados estejam de acordo com o padrão para um decodificador. No contexto de padrão de codificação de vídeo, um “perfil” corresponde a um subconjunto de algoritmos, características, ou ferramentas e restrições que se aplicam aos mesmos. Conforme definido pelo padrão H.264, por exemplo, um “perfil” é um subconjunto da sintaxe de fluxo de bits inteira que é especificada pelo padrão H.264. Um “nível” corresponde às limitações do consumo de recurso de decodificador, tal como, por exemplo, memória de decodificador e computação, que são relacionados à resolução das imagens, taxa de bits, e taxa de processamento de macrobloco (MB). Um perfil pode ser sinalizado com um valor profile_idc (indicador de perfil), enquanto que um nível pode ser sinalizado com um valor levelidc (indicador de nível).
[0087] O padrão H.264, por exemplo, reconhece que, dentro dos limites impostos pela sintaxe de um determinado perfil, ainda é possível exigir uma grande variação no desempenho dos codificadores e decodificadores dependendo dos valores considerados pelos elementos de sintaxe no fluxo de bit tal como o tamanho especificado das imagens decodificadas. O padrão H.264 reconhece ainda que, em muitas aplicações, não é prático nem econômico implementar um decodificador capaz de lidar com todos os usos hipotéticos da sintaxe dentro de um perfil específico. Consequentemente, o padrão H.264 define um “nível” como um conjunto especificado de limitações impostas aos valores dos elementos de sintaxe no fluxo de bits. Essas limitações podem ser limites ou valores simples. Alternativamente, essas limitações podem assumir a forma de limitações em combinações aritméticas de valores (por exemplo, largura de imagem multiplicada pela altura de imagem multiplicada pelo número de imagens decodificadas por segundo). O padrão H.264 proporciona ainda no sentido de que implementações individuais possam suportar um nível diferente para cada perfil suportado.
[0088] Um decodificador de acordo com um perfil suporta comumente todas as características definidas no perfil. Por exemplo, como uma característica de codificação, a codificação de imagem B não é suportada no perfil de linha básica de H.264/AVC, mas é suportado em outros perfis de H.264/AVC. Um decodificador de acordo com um nível deve ser capaz de decodificar qualquer fluxo de bits que não exija recursos além das limitações definidas no nível. Definições de perfis e níveis podem ser úteis para a capacidade de interpretação. Por exemplo, durante a transmissão de vídeo, um par de definições de nível e perfil pode ser negociado e combinado para uma sessão de transmissão inteira. Mais especificamente, em H.264/AVC, um nível pode definir, por exemplo, limitações no número de macroblocos que precisam ser processados, tamanho de armazenador de imagem decodificada (DPB), tamanho de armazenador de imagem codificada (CPB), faixa de vetores de movimento vertical, número máximo de vetores de movimento por 2 MBs consecutivos, e se um bloco B pode ter partições de sub-macroblocos inferiores a 8x8 pixels. Dessa maneira, um decodificador pode determinar se é capaz de decodificar apropriadamente o fluxo de bits.
[0089] Uma representação de mídia pode incluir uma descrição de representação de mídia (MPD), que pode conter descrições de diferentes representações alternativas (por exemplo, serviços de vídeo com qualidades diferentes) e a descrição pode incluir, por exemplo, informação de codec, um valor de perfil, e um valor de nível. O dispositivo de destino 40 pode recuperar o MPD de uma representação de mídia para determinar como acessar os fragmentos de filme de várias representações. Os fragmentos de filme podem estar localizados em caixas de fragmentos de filme (caixas de Moof) de arquivos de vídeo.
[0090] Padrões de compactação de vídeo tal como ITU-T H.261, H.262, H.263, MPEG-1, MPEG-2 e H.264/MPEG-4 Parte 10 fazem uso de predição temporal de movimento compensado para reduzir a redundância temporal. O codificador utiliza uma predição de movimento compensado a partir de algumas imagens previamente codificadas (também referidas aqui como quadros) para predizer as imagens codificadas atuais de acordo com os vetores de movimento. Há três tipos principais de imagem na codificação típica de vídeo. Eles são: imagem Intra codificada (“imagens-I” ou “quadros-I”), imagens Preditas (“imagens-P” ou “quadros-P”) e imagens preditas Bidirecionais (“imagens-B” ou “quadros B”). Imagens-P utilizam apenas a imagem de referência antes da imagem atual na ordem temporal. Em uma imagem-B, cada bloco da imagem-B pode ser predita a partir de uma ou duas imagens de referência. As imagens de referência poderiam estar localizadas antes ou após a imagem atual na ordem temporal.
[0091] De acordo com o padrão de codificação H.264, como um exemplo, as imagens-B utilizam duas listas de imagens de referência previamente codificadas, lista 0 e lista 1. Essas duas listas podem conter individualmente imagens codificadas passadas e/ou futuras na ordem temporal. Os blocos em uma imagem-B podem ser preditos em uma de várias formas: predição de movimento compensado a partir de uma imagem de referência da lista 0, predição de movimento compensado a partir de uma imagem de referência da lista 1, ou predição de movimento compensado a partir da combinação de ambas as imagens de referência, de lista 0 e de lista 1. Para obter a combinação de ambas as imagens de referência de lista 0 e de lista 1, duas áreas de referência de movimento compensado são obtidas a partir das imagens de referência da lista 0 e da lista 1, respectivamente. Suas combinações podem ser usadas para predizer o bloco atual.
[0092] O padrão ITU-T H.264 suporta predição intra em vários tamanhos de bloco, tal como 16 por 16, 8 por 8 ou 4 por 4 para componentes de luminância; e 8x8 para componentes de crominância, assim como predição inter, em vários tamanhos de bloco, tal como 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 e 4x4 para componentes de luminância e tamanhos escalonados correspondentes para componentes de crominância. Nessa revelação, “NxN” e “N por N” podem ser usados de forma permutável para se referir às dimensões de pixels do bloco em termos de dimensões verticais e horizontais, por exemplo, pixels de 16x16 ou pixels de 16 por 16. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). Similarmente, um bloco de NxN geralmente tem N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser arranjados em fileiras e colunas. Os blocos podem ter números diferentes de pixels nas dimensões horizontais e verticais. Isto é, os blocos podem incluir pixels de NxN, onde N não é necessariamente igual a M.
[0093] Os tamanhos de bloco que são inferiores a 16 por 16 podem ser referidos como partições de um macrobloco de 16 por 16. Os blocos de vídeo podem compreender blocos de dados de pixel no domínio de pixel, ou blocos de coeficientes de transformada no domínio de transformada, por exemplo, após a aplicação de uma transformada tal como uma transformada discreta de cosseno (DCT), uma transformada de número inteiro, uma transformada de ondaleta, ou uma transformada similar de forma conceptual aos dados de blocos de vídeo, residuais representando diferenças de pixel entre os blocos de vídeo codificados e blocos de vídeo preditivos. Em alguns casos, um bloco de vídeo pode compreender blocos de coeficientes quantizados de transformada no domínio de transformada.
[0094] Blocos de vídeo menores podem proporcionar melhor resolução, e podem ser usados para locais de um quadro de vídeo que incluem elevados de níveis de detalhe. Em geral, os macroblocos e as várias partições, algumas vezes referidas como sub-blocos, podem ser considerados blocos de vídeo. Além disso, uma fatia pode ser considerada como sendo uma pluralidade de blocos de vídeo, tais como macroblocos e/ou sub-blocos. Cada fatia pode ser uma unidade que pode ser decodificada independentemente de um quadro de vídeo. Alternativamente, os próprios quadros podem ser unidades que podem ser decodificadas, ou outras porções de um quadro podem ser definidas como unidades que podem ser decodificadas. O termo “unidade codificada” ou “unidade de codificação” pode se referir a qualquer unidade que pode ser decodificada independentemente de um quadro de vídeo tal como um quadro inteiro, uma fatia de um quadro, um grupo de imagens (GOP) também referido como uma sequência, ou outra unidade que pode ser decodificada independentemente de acordo com as técnicas de codificação aplicáveis.
[0095] O termo macrobloco se refere a uma estrutura de dados para codificar dados de imagem e/ou vídeo de acordo com um arranjo de pixel bidimensional que compreende 16x16 pixels. Cada pixel compreende um componente de crominância e um componente de luminância. Consequentemente, o macrobloco pode definir quatro blocos de luminância, cada um deles compreendendo um arranjo bidimensional de 8x8 pixels, dois blocos de crominância, cada um compreendendo um arranjo bidimensional de 16x16 pixels, e um cabeçalho compreendendo informação de sintaxe, tal como um padrão de bloco codificado (CBP), um modo de codificação (por exemplo, modos de codificação intra- (I), ou inter- (P ou B)), um tamanho de partição para as partições de um bloco codificado intra (por exemplo, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 ou 4x4), ou um ou mais vetores de movimento para um macrobloco intercodificado.
[0096] O codificador de vídeo 28, decodificador de vídeo 48, codificador de áudio 26, decodificador de áudio 46, unidade de encapsulação 30 e unidade de desencapsulação 38 podem ser implementadas individualmente como qualquer um de uma variedade de conjuntos de circuitos de processamento, adequados, conforme aplicável, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), conjunto de circuitos lógicos discretos, software, hardware, firmware ou qualquer combinação dos mesmos. Cada um do codificador de vídeo 28 e decodificador de vídeo 48 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo combinado (CODEC). Similarmente, cada um de codificador de áudio 26 e decodificador de áudio 46 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codec combinado. Um equipamento incluindo codificador de vídeo 28, decodificador de vídeo 48, codificador de áudio 26, decodificador de áudio 46, unidade de encapsulação 30, e/ou unidade de desencapsulação 38 pode compreender qualquer combinação de um ou mais circuitos integrados, microprocessadores e/ou um dispositivo de comunicação sem fio, tal como um telefone celular.
[0097] Após a unidade de encapsulação 30 ter montado um arquivo de vídeo com base nos dados recebidos, a unidade de encapsulação 30 passa o arquivo de vídeo para a interface de saída 32 para emissão. Em alguns exemplos, a unidade de encapsulação 30 pode armazenar o arquivo de vídeo localmente ou enviar o arquivo de vídeo para um servidor remoto por intermédio da interface de saída 32, mais propriamente do que enviar o arquivo de vídeo diretamente para o dispositivo de destino 40. A interface de saída 32 pode compreender, por exemplo, um transmissor, um transceptor, um dispositivo para gravar dados em um meio legível por computador tal como, por exemplo, uma unidade ótica, uma unidade de mídia magnética (por exemplo, unidade de disquete), uma porta de barramento serial universal (USB), uma interface de rede, ou outra interface de saída. A interface de saída 32 emite o arquivo de vídeo para um meio legível por computador 34, tal como, por exemplo, um sinal de transmissão, um meio magnético, um meio ótico, uma memória, uma unidade flash, ou outro meio legível por computador. A interface de saída 32 pode implementar HTTP 1.1 para responder às solicitações de HTTP Get e Get parcial. Dessa maneira, o dispositivo de origem 20 pode atuar como um servidor de fluxo contínuo HTTP.
[0098] Enfim, a interface de entrada 36 recupera os dados a partir do meio legível por computador 34. A interface de entrada 36 pode compreender, por exemplo, uma unidade ótica, uma unidade de meios magnéticos, uma porta USB, um receptor, um transceptor, ou outra interface de meio legível por computador. A interface de entrada 36 pode fornecer os dados à unidade de desencapsulação 38. A unidade de desencapsulação 38 pode desencapsular os elementos de um arquivo de vídeo para recuperar os dados codificados e enviar os dados codificados ou para o decodificador de áudio 46 ou para o decodificador de vídeo 48, dependendo de se os dados codificados constituem parte de um componente de áudio ou de vídeo. O decodificador de áudio 46 decodifica os dados de áudio, codificados e envia os dados de áudio decodificados para a saída de áudio 42, enquanto que o decodificador de vídeo 48 decodifica os dados de vídeo codificados e envia os dados de vídeo decodificados, o que pode incluir uma pluralidade de vistas, para a saída de vídeo 44.
[0099] A Figura 2 é um diagrama de blocos ilustrando componentes de uma unidade de encapsulação exemplar 30. No exemplo da Figura 2, a unidade de encapsulação 30 inclui interface de entrada de vídeo 80, interface de entrada de áudio 82, unidade de criação de arquivo 60, e interface de saída de arquivo de vídeo 84. A unidade de criação de arquivo 60, nesse exemplo, inclui a unidade de montagem de componente 62, construtor de caixa de mapeamento de componentes 64, e construtor de caixa de arranjo de componentes (arr’t) 66. A interface de entrada de vídeo 80 e a interface de áudio 82 recebem os dados codificados de vídeo e áudio, respectivamente. A interface de entrada de vídeo 80 e a interface de entrada de áudio 82 podem receber os dados codificados de vídeo e áudio quando os dados são codificados, ou pode recuperar os dados codificados de vídeo e áudio a partir de um meio legível por computador. A partir do recebimento de dados codificados de vídeo e áudio, a interface de entrada de vídeo 80 e a interface de áudio 82 passam os dados codificados de vídeo e áudio para a unidade de criação de arquivo 60 para montagem em um arquivo de vídeo.
[00100] A unidade de criação de arquivo 60 pode corresponder a uma unidade de controle incluindo hardware, software, e/ou firmware configurado para realizar as funções e procedimentos atribuídos à mesma. A unidade de controle pode realizar ainda as funções atribuídas à unidade de encapsulação 30 de forma geral. Para os exemplos nos quais a unidade de criação de arquivo 60 é incorporada em software e/ou firmware, a unidade de encapsulação 30 pode incluir um meio legível por computador compreendendo instruções para um ou mais processadores associados com a unidade de criação de arquivo 60 (assim como unidade de montagem de componente 62, construtor de caixa de mapeamento de componentes 64, e construtor de caixa de arranjo de componente 66) e uma unidade de processamento para executar as instruções. Cada uma das subunidades da unidade de criação de arquivo 60 (unidade de montagem de componente 62, construtor de caixa de mapeamento de componentes 64, e construtor de caixa de arranjo de componente 66, nesse exemplo, pode ser implementada como unidades individuais de hardware e/ou módulos de software, e pode ser integrada de modo funcional ou adicionalmente separada em subunidades adicionais.
[00101] A unidade de criação de arquivo 60 pode corresponder a qualquer unidade de processamento adequada ou conjunto de circuitos de processamento, tal como, por exemplo, um ou mais microprocessadores, circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), processadores de sinal digital (DSPs), ou qualquer combinação dos mesmos. A unidade de criação de arquivo 60 pode incluir ainda um meio legível por computador não transitório armazenando instruções para qualquer um ou todos de: unidade de montagem de componente 62, construtor de caixa de mapeamento de componentes 64, e construtor de caixa de arranjo de componente 66, assim como um processador para executar as instruções.
[00102] Em geral, a unidade de criação 60 pode criar um ou mais arquivos de vídeo incluindo os dados recebidos de áudio e vídeo. A unidade de montagem de componente 62 pode produzir um componente de um conteúdo a partir das amostras recebidas, codificadas de vídeo e áudio. O componente pode corresponder a um número de segmentos, cada um dos quais pode incluir um ou mais fragmentos de vídeo. Cada um dos segmentos pode ser recuperável independentemente por um dispositivo de cliente, tal como dispositivo de destino 40. Por exemplo, a unidade de criação de arquivo 60 pode atribuir um URL ou URN único para um arquivo incluindo um segmento. A unidade de montagem de componente 62 pode geralmente garantir que as amostras codificadas pertencendo ao mesmo componente sejam montadas com aquele componente. A unidade de montagem de componente 62 também pode designar identificadores de componentes singulares a cada componente de um conteúdo. A unidade de criação de arquivo 60 pode incluir dados para mais do que um componente em um arquivo, e um componente pode cobrir múltiplos arquivos. A unidade de criação de arquivo 60 pode armazenar os dados para um componente como uma trilha dentro de um arquivo de vídeo.
[00103] O construtor de caixa de mapeamento de componentes 64 pode produzir uma caixa de mapeamento de componentes para um conteúdo de multimídia de acordo com as técnicas dessa revelação. Por exemplo, a caixa de mapeamento de componentes pode sinalizar características dos componentes do conteúdo. Essas características podem incluir uma taxa de bits, média do componente, uma taxa de bits, máxima do componente, uma taxa de resolução e quadro do componente (supondo que o componente seja um componente de vídeo), dependências em relação a outros componentes, ou outras características. Quando as dependências são sinalizadas, o construtor de caixa de mapeamento de componentes 64 também pode especificar uma diferença de camada temporal entre os componentes tendo uma relação dependente. A caixa de mapeamento de componentes também pode sinalizar um conjunto de potenciais intervalos de multiplexação ou uma faixa de intervalos de multiplexação disponíveis para o componente. Em alguns exemplos, a unidade de criação de arquivo 60 pode armazenar a caixa de mapeamento de componentes em um arquivo separado de todos os outros arquivos incluindo amostras codificadas para o conteúdo. Em outros exemplos, a unidade de criação de arquivo 60 pode incluir a caixa de mapeamento de componentes em um cabeçalho de um dos arquivos de vídeo.
[00104] Como padrão, uma caixa de mapeamento de componentes se aplica a um conteúdo inteiro. Contudo, quando uma caixa de mapeamento de componentes se aplica apenas a uma porção do conteúdo, o construtor de caixa de mapeamento de componentes 64 pode sinalizar uma duração temporal do conteúdo ao qual se aplica a caixa de mapeamento de componentes. O construtor de caixa de mapeamento de componentes 64 pode então produzir múltiplas caixas de mapa de componentes para o conteúdo no modo estático ou no modo dinâmico. No modo estático, o construtor de caixa de mapeamento de componentes 64 agrupa todas as caixas de mapa de componentes em conjunto em uma ordem correspondendo às durações temporais do conteúdo ao qual correspondem às caixas de mapa de componentes. No modo dinâmico, o construtor de caixa de mapeamento de componentes 64 pode colocar cada caixa de mapeamento de componentes em um local diferente, por exemplo, arquivos diferentes.
[00105] A caixa de mapeamento de componentes também pode sinalizar se um fragmento de mídia pertence a um novo segmento de um componente. Como cada segmento de um componente inclui um identificador de componente, segmentos pertencendo ao mesmo componente podem ser identificados, mesmo quando os segmentos são armazenados em arquivos separados. A caixa de mapeamento de componentes pode adicionalmente sinalizar informação de temporização para as porções de um componente dentro dos arquivos incluindo amostras codificadas para o componente. Consequentemente, união temporal é naturalmente suportada. Por exemplo, um dispositivo de cliente, tal como dispositivo de destino 40, pode determinar que dois arquivos distintos incluem dados para o mesmo componente e um ordenamento temporal dos dois arquivos.
[00106] O construtor de caixa de arranjo de componentes 66 pode produzir caixas de arranjo de componentes para cada arquivo produzido pela unidade de criação de arquivo 60. Em geral, o construtor de caixa de arranjo de componentes 66 pode identificar quais componentes são incluídos em um arquivo, assim como uma correspondência entre os identificadores de componente e os identificadores de trilha para o arquivo. Dessa maneira, a caixa de arranjo de componentes pode prover um mapeamento entre os identificadores de componente para os identificadores de conteúdo e de trilha para o arquivo. Os identificadores de trilha podem corresponder a uma trilha do arquivo tendo amostras codificadas para o componente especificado no mapeamento.
[00107] A caixa de arranjo de componentes também pode indicar como os fragmentos de cada componente são armazenados em um arquivo. Por exemplo, o construtor de caixa de arranjo de componentes 66 pode especificar faixas de bytes para os fragmentos de um componente em um arquivo, deslocamentos de byte para um fragmento específico, tempo de decodificação de uma primeira amostra no fragmento de mídia, se um ponto de acesso aleatório está presente no fragmento, e se estiver, seus tempos de decodificação e de apresentação e se o ponto de acesso aleatório é uma imagem IDR ou ODR.
[00108] Após a unidade de criação de arquivo 60 ter produzido um arquivo, a interface de saída de arquivo 84 pode emitir o arquivo. Em alguns exemplos, a interface de saída de arquivo 84 pode armazenar o arquivo para um meio de armazenamento legível por computador, tal como um disco rígido. Em alguns exemplos, a interface de saída de arquivo 84 pode enviar o arquivo para outro dispositivo configurado para atuar como um servidor, por exemplo, um servidor de fluxo contínuo HTTP que implementa HTTP 1.1, por intermédio da interface de saída 32 (Figura 1). Em alguns exemplos, a interface de saída de arquivo 84 pode armazenar o arquivo em um meio de armazenamento local de tal modo que a interface de saída 32 pode fornecer o arquivo aos dispositivos de cliente, tal como dispositivo de destino 40, em resposta, por exemplo, às solicitações de fluxo contínuo HTTP.
[00109] A Figura 3 é um diagrama conceptual ilustrando uma caixa de mapeamento de componentes 100, exemplar e caixa de arranjo de componentes 152A. Nesse exemplo, a caixa de mapeamento de componentes 100 inclui componentes de vídeo 110 e componentes de áudio 140. Deve- se observar que a própria caixa de mapeamento de componentes 110 inclui características sinalizadas para componentes de vídeo 110 e componentes de áudio 140. Conforme observado com relação à Figura 2, a caixa de mapeamento de componentes 100 e as caixas de arranjo de componentes 152 podem ser geradas pela unidade de criação de arquivo 60, por exemplo, pelo construtor de caixa de mapeamento de componentes 64 e construtor de caixa de arranjo de componentes 66, respectivamente. Dessa maneira, a unidade de encapsulação 30 pode sinalizar características de um conteúdo de multimídia e arquivos incluindo dados para o conteúdo de multimídia. Por exemplo, os componentes de vídeo 110 incluem características sinalizadas para componentes 112 e os componentes de áudio 140 incluem características sinalizadas para os componentes 142. Conforme mostrado nesse exemplo, o componente 112A inclui características de componente 114A.
[00110] As características de componente 114A, nesse exemplo, incluem informação de taxa de bits 116, informação de resolução 118, informação de taxa de quadros 120, informação de codec 122, informação de perfil e nível 124, informação de dependências 126, informação de segmento 128, informação de intervalo de multiplexação 130, e informação de vídeo 3D 132.
[00111] A informação de taxa de bits 116 pode incluir qualquer uma ou ambas dentre uma taxa de bits, média e uma taxa de bits, máxima para o componente 112A. A informação de taxa de bits 116 também pode incluir sinalizadores indicando se a informação de taxa de bits, média e/ou máxima está sinalizada. Por exemplo, a informação de taxa de bits 116 pode incluir um sinalizador de taxa de bits, média e um sinalizador de taxa de bits, máxima onde o sinalizador de taxa de bits, média indica se a taxa de bits, média está sinalizada para o componente 112A e o sinalizador de taxa de bits, máxima indica se uma taxa de bits, máxima está sinalizada para o componente 112A. A informação de taxa de bits 116 também pode incluir um valor de taxa de bits, média indicativo de uma taxa de bits, média para o componente 112A. Similarmente, a informação de taxa de bits 116 pode incluir um valor de taxa de bits, máxima indicativo de um valor de taxa de bits, máxima por um certo período de tempo, por exemplo, através do intervalo de um segundo.
[00112] A informação de resolução 118 pode descrever a resolução do componente 112A, por exemplo, em termos de largura de pixel e altura de pixel de uma imagem. Em alguns casos, a informação de resolução 118 pode não ser sinalizada explicitamente para o componente 112A. Por exemplo, as características de componente 114A podem incluir um sinalizador de características padrão indicando se um componente tendo índice i tem as mesmas características de um componente do mesmo conteúdo tendo índice i-1. Quando o sinalizador indicar que as características são as mesmas, as características não precisam ser sinalizadas. As características preestabelecidas podem corresponder a um subconjunto das características disponíveis, tal como, por exemplo, resolução, taxa de quadros, informação de codec, informação de perfil, e informação de nível, ou outras combinações de características que podem ser sinalizadas por uma caixa de mapeamento de componentes, tal como a caixa de mapeamento de componentes 100. Em alguns exemplos, sinalizadores individuais são incluídos para cada componente potencial indicando se a característica correspondente para o componente é a mesma que para um componente anterior.
[00113] A informação de taxa de quadros 120 pode ser designada como uma característica padrão conforme descrito acima, em alguns exemplos. Alternativamente, a informação de taxa de quadros 120 pode especificar uma taxa de quadros para o componente 112A. A taxa de quadros pode ser especificada em quadros por 256 segundos do componente de vídeo. A informação de codec 122 também pode ser designada como uma característica padrão, conforme descrito acima. Alternativamente, a informação de codec 122 pode especificar um codificador usado para codificar o componente 112A. Similarmente, informação de perfil e nível 124 pode ser designada como características preestabelecidas ou explicitamente especificadas, por exemplo, como valores de indicador de perfil (profile_ide) e de indicador de nível (level_ide).
[00114] Informação de dependências 126 pode indicar se o componente 112A é dependente de outros dos componentes 110. Se esse for o caso, a informação de dependência 126 pode incluir informação indicando um identificador temporal para o componente 112A e uma diferença entre o identificador temporal para o componente 112A e o identificador temporal para o componente do qual depende o componente 112A.
[00115] A informação de segmento 128 descreve os segmentos do componente 112A. Os segmentos podem ser armazenados em arquivos, tal como arquivos 150. No exemplo da Figura 3, os dados para os segmentos do componente 112A podem ser armazenados no arquivo 150A, especificamente na trilha de vídeo 158, conforme discutido em maior detalhe abaixo. Em alguns casos, os segmentos para o componente 112A podem ser armazenados em múltiplos arquivos. Cada segmento pode corresponder a um ou mais fragmentos. Para cada fragmento, a informação de segmento 128 pode sinalizar se o fragmento inclui um ponto de acesso aleatório, um tipo para o ponto de acesso aleatório (por exemplo, IDR ou ODR), se o fragmento corresponde a um novo arquivo (por exemplo, novo segmento), um deslocamento de bytes para o início do fragmento, informação de temporização para a primeira amostra do fragmento (por exemplo, tempo de decodificação e/ou exibição), um deslocamento de byte para o próximo fragmento, um deslocamento de byte para o ponto de acesso aleatório, se presente, e um número de amostras para as quais saltar a decodificação ao iniciar um fluxo em um ODR RAP.
[00116] Informação de intervalo de multiplexação 130 pode especificar um conjunto ou uma faixa de intervalos de multiplexação para o componente 112A. A informação de vídeo 3D 132 pode ser incluída quando o componente 112A deve ser usado para produzir um efeito tridimensional, por exemplo, mediante exibição de duas ou mais vistas ligeiramente diferentes de uma cena simultaneamente ou quase simultaneamente. A informação de vídeo 3D 132 pode incluir um número de vistas a serem exibidas; identificadores para componentes correspondendo às vistas; um tempo inicial do tempo de partida de uma representação 3D para um componente de vídeo básico específico, uma duração temporal da representação 3D, resoluções alvo (por exemplo, largura alvo e altura alvo da representação 3D quando por fim exibida), informação de posicionamento (por exemplo, deslocamento horizontal e deslocamento vertical em uma janela de exibição), uma camada de janela que indica a camada do componente de vídeo decodificado para apresentação, e um fator transparente. Em geral, um valor de camada de janela inferior pode indicar se o componente de vídeo associado deve ser renderizado mais cedo e pode ser coberto por um componente de vídeo com um valor de camada superior. A informação de nível de transparência pode ser combinada com a informação de nível de janela. Quando o componente é combinado com outro componente tendo um valor de camada de janela inferior, cada pixel no outro componente pode ser ponderado com um valor de [nível transparente]/255, e o pixel alocado no componente atual pode ser ponderado com um valor de (255- [nível transparente])/255.
[00117] A Figura 3 ilustra uma correspondência entre os componentes 112, 142 e vários arquivos 150 incluindo os dados para os componentes 112, 142. Nesse exemplo, o arquivo 150A inclui amostras codificadas para o componente de vídeo 112A na forma de trilha de vídeo 158 e amostradas codificadas para o componente de áudio 142A na forma de trilha de áudio 160. O arquivo 150A também inclui caixa de arranjo de componente 152A. Conforme ilustrado adicionalmente nesse exemplo, a caixa de arranjo de componente 152A inclui componente para mapa de trilha de vídeo 154 e componente para mapa de trilha de áudio 156. O componente para o mapa de trilha de vídeo 154 indica se o identificador de componente para o componente 112A é mapeado para a trilha de vídeo 158 do arquivo 150A. Similarmente, o componente para o mapa de trilha de áudio 156 indica se o identificador de componente para o componente 142A é mapeado para a trilha de áudio 160 do arquivo 150A.
[00118] Nesse exemplo, o componente 112B corresponde à trilha de vídeo 162 do arquivo 150B e o componente 142B corresponde à trilha de áudio 164 do arquivo 150C. Consequentemente, a caixa de arranjo de componentes 152B pode incluir um mapeamento entre o componente 112B e a trilha de vídeo 162, enquanto que a caixa de arranjo de componentes 152C pode incluir um mapeamento entre o componente 142B e a trilha de áudio 164. Dessa maneira, um dispositivo de cliente pode recuperar a caixa de mapeamento de componentes 100 e as caixas de arranjo de componentes 152 para determinar quais os componentes que deve solicitar, e como acessar os dados codificados para os componentes a partir dos arquivos 150.
[00119] O pseudocódigo abaixo é uma implementação exemplar de uma estrutura de dados para uma caixa de mapeamento de componentes. aligned(8) class ComponentMapBox extends FullBox('cmmp', version, 0) { unsigned int(32) box length; unsigned int(64) contentID; unsigned int(32) timescale; unsigned int(8) videocomponentcount; unsigned int(8) audiocomponentcount; unsigned int(8) othercomponentcount; bit (1) firstcmmpflag; //default 1 bit (1) morecmmpflag; //default 0 bit (2) cmmpbyterangeidc; bit (1) multivideopresentflag; bit (2) multiplexintervalidc; bit (1) durationsignalledflag; bit (1) dynamiccomponentmapmodeflag; bit (7) reservedbit; se (durationsignalled flag) { unsigned int (64) startingtime; unsigned int (64) duration; } para (i=l; i<= videocomponent count; i++) { unsigned int(8) component_ID; bit (1) averagebitrate flag; bit (1) maximum bitrate flag; bit (1) defaultcharacteristicsflag; bit (2) resolutionidc; bit (2) framerateidc; bit (2) codecinfoidc; bit (2) profilelevelidc; bit (1) dependencyflag; bit 1 (l)3DVideoflag; bit (2) reserved flag; //bitrate se (average_bitrate_flag) unsigned int (32) avgbitrate; se (maximumbitrate flag) unsigned int (32) maxbitrate; // resolution se(!default characteristics flag) { se (resolution idc == 1) { unsigned int (16) width; unsigned int (16) height; } então se (resolution idc == 2 ) unsigned int (8) samechacomponentid; // quando resolution idc igual a 0, a resolução // não é especificada quando o valor é igual a // 3, ele tem a mesma resolução que o // componente com um índice de i-1. // frame rate se (framerateidc ==1 ) unsigned int (32) frame rate; então se (frame rate idc == 2 ) unsigned int (8) samechacomponentid; // quando frame rate idc igual a 0, a taxa de // quadros não é especificada, quando o valor é // igual a 3, ele tem a mesma taxa de quadros que // o componente com um índice de i-1. se codecinfoidc ==1) string [32] compressorname; então se (codec info idc == 2) unsigned int (8) same cha component id; //profilelevel se (profilelevelidc ==1) profilelevel; então se ( profile_level_idc == 2) unsigned int (8) same_cha_component_id ; } - - - se (dependency flag) { unsigned int (8) dependent comp count; bit(l) temporal scalability; unsigned int (3) temporalid; bit (4) reservado; para (j=l ; j<= dependentcompcount; j++) { unsigned int (6) dependent_comp_id; se (temporalscalability) unsigned int (2) deltatemporalid; } } se (3DV flag) { unsigned int (8) number_target_views; } // segments se (cmmpbyterangeidc > 0 ) { unsigned int (16) entry count byte range; para(j=l; i <= entrycount; j++) { int(2) containsRAP; int(l) RAPtype; bit(l) newfilestartflag; int(4) reserved; unsigned int(32) referenceoffset; unsigned int(32) referencedeltatime; se (cmmpbytrageidc>0) unsigned int (32) nextfragmentoffset; se ( containRAP > 1 ) { unsigned int(32) RAPdeltatime; unsigned int(32) delta_offset; } se ( containRAP > 0 && RAPtype !=0 ) { unsigned int(32) deltaDTPT; unsigned int(8) numberskipsamples; } } } se (multiplexintervalidc ==1) { unsigned int (8) entrycount; para (j=l; j<=entrycount;j++) unsigned int (32) multiplex_time_interval; } então se (multiplex_interval_idc == 2) { unsigned int (32) min_muliplex_time_interval; unsigned int (32) max_muliplex_time_interval; } } se ( multivideopresentflag ) { unsigned int (8) multivideogroupcount; para (i=l; i<= multi video group count; i++ ) { unsigned int (8) basicvideocomponentid; unsigned int (8) extra video component count; int (64) mediatime; int (64) duration; para (j=l; j<= extra video component count; j++ ) unsigned int (8) componentid; para (j=0; j<= extra video component count; j++ ) { unsigned int (16) targetwidth; unsigned int (16) target height; unsigned int (16) horizontal offset; unsigned int (16) verticaloffset; unsigned int (4) windowlayer; unsigned int (8) transparent level; } } } para (i=l; i<= audio_component_count; i++) { unsigned int(8) component_ID; bit (1) average_bitrate_flag; bit (1) maximum_bitrate_flag; bit (2) codec_info_idc; bit (2) profile_level_idc; // similar à tabela de sintaxe para componentes // de vídeo } }
[00120] A semântica dos elementos de pseudocódigo nesse exemplo é como a seguir. Deve-se entender que em outros exemplos, outros nomes variáveis, e outras semânticas, podem ser atribuídos aos elementos de uma caixa de mapeamento de componentes. Nesse exemplo, box_length indica o comprimento da caixa de mapeamento de componentes em unidades de bytes. Content_ID especifica um identificador único do conteúdo que é proporcionado por um servidor de fluxo contínuo.
[00121] A escala de tempo é um número inteiro que especifica a escala de tempo para um serviço inteiro. Esse é o número de unidades de tempo que passam em um segundo. Por exemplo, um sistema de coordenadas temporais que mede o tempo em sexagésimos de um segundo tem uma escala de tempo de 60.
[00122] Video_component_count especifica o número de componentes de vídeo, alternativos que o serviço correspondendo à caixa de mapeamento de componentes poderia prover. Quaisquer dos componentes de vídeo definidos nessa caixa podem ser comutados entre si. Se houver apresentações de vídeo que consistem em múltiplas representações, tal apresentação pode conter um componente pertencendo ao grupo alternativo de componentes de vídeo.
[00123] Audio_component_count especifica o número de componentes de áudio alternativos que o serviço correspondendo à caixa de mapeamento de componentes poderia proporcionar. Quaisquer dois componentes de áudio definidos nessa caixa poderiam ser comutados entre. Other_component_count especifica o número de outros componentes do serviço correspondendo à caixa de mapeamento de componente.
[00124] First_cmmp_flag indica se essa caixa de mapeamento de componentes é a primeira caixa do mesmo tipo para o serviço associado. More_cmmp_flag indica se essa caixa de mapeamento de componentes é a última caixa do mesmo tipo para o serviço associado.
[00125] Cmmp_byte_range_idc tendo um valor igual a 0 indica que a informação de temporização e faixa de bytes não é sinalizada na caixa de mapeamento de componentes. Cmmp_byte_range_idc tendo um valor maior do que 0 indica que a informação de temporização e faixa de bytes é sinalizada na caixa de mapeamento de componentes. Cmmp_byte_range_idc tendo um valor igual a 1 indica que apenas um deslocamento de bytes, inicial de um segmento de um componente é sinalizado. Cmmp_byte_range_idc tendo um valor igual a 2 indica que ambos, deslocamento de bytes, inicial e deslocamento de bytes, final de um segmento de um componente, são sinalizados.
[00126] Temporal_scalability indica se o componente atual é dependente dos seguintes componentes de conteúdo, sinalizados, ao menos um dos quais tem um temporal_id inferior. Temporal_id indica o identificador temporal do componente atual. O valor temporal_id pode ser ignorado se o valor temporal_scalability for igual a 0. Delta_temporal_id indica a diferença do valor de identificador temporal mais alto de todas as amostras do componente atual e o valor de identificador temporal mais alto do componente dependente.
[00127] Multi_video_present_flag tendo um valor igual a 1 indica que há apresentações de vídeo renderizadas para mais do que um componente de vídeo decodificado. Por exemplo, no caso de imagem em imagem, multi_video_present_flag pode ter um valor igual a 0, o que pode indicar que nenhuma apresentação de vídeo é renderizada por mais do que um componente de vídeo decodificado.
[00128] Multiplex_interval_idc tendo um valor igual a 0 indica que o intervalo de múltiplexação não é sinalizado. Multiplex_interval_idc tendo um valor igual a 1 indica que uma lista de intervalos de multiplexação é sinalizada. Multiplex_interval_idc tendo um valor igual a 2 indica que uma faixa de intervalos de multiplexação é sinalizada.
[00129] Duration_signalled_flag indica se a duração do serviço ao qual a caixa de mapeamento de componente corresponde é ou não sinalizada. Se a duração não for sinalizada (por exemplo, quando duration_signalled_flag tem um valor igual a 0), a caixa de mapeamento de componentes, atual supostamente se aplica ao serviço inteiro.
[00130] Dynamic_component_map_mode_flag indica se o modo dinâmico é suportado para a caixa de mapeamento de componentes, atual. Dynamic_component_map_mode_flag tendo um valor igual a 1 indica o modo estático e a próxima caixa de mapeamento de componentes do mesmo serviço, se existir, vem após a caixa de mapeamento de componentes, atual no mesmo arquivo, imediatamente. Dynamic_component_map_mode_flag tendo um valor igual a 0 indica o modo dinâmico e assim a próxima caixa de mapeamento de componentes do mesmo serviço será transmitida para o cliente mais tarde mediante meios diferentes. Por exemplo, a próxima caixa de mapeamento de componentes pode ser incluída em uma caixa de filme de um arquivo seguinte.
[00131] Starting_time indica o tempo iniciar do serviço ao qual se aplica a caixa de mapeamento de componentes, atual. A duração indica a duração do conteúdo ao qual se aplica a caixa atual de mapeamento de componentes.
[00132] Component_ID é um identificador único de um componente. Average_bitrate_flag indica se a taxa média de bits é sinalizada para o componente associado. Maximum_bitrate_flag indica se a taxa máxima de bits é sinalizada para o componente associado. O valor de taxa de bits 116 da Figura 3 pode corresponder a qualquer um ou a ambos dentre average_bitrate_flag e maximum_bitrate_flag no pseudocódigo. Default_characteristics_flag indica seu o componente atual com um índice de i tem os mesmos valores que o componente com um índice de i-1 para as seguintes características: resolução, taxa de quadros, informação de codec, perfil e nível.
[00133] Valores resolution_idc/ frame_rate_idc/codec_info_idc/profile_level_idc sendo ajustados para 0 indicam a resolução, taxa de quadros, informação de codec, perfil, e/ou nível (respectivamente) do componente de vídeo associado não são sinalizados. Resolution_idc pode corresponder a um valor de resolução 118 da Figura 3. Frame_rate_idc pode corresponder ao valor de taxa de quadros 120 da Figura 3. Frame_rate_idc pode corresponder ao valor de informação de codec 122 da Figura 3. Codec_info_idc pode corresponder ao valor de perfil/nível 124 da Figura 3. Esses valores sendo ajustados para 1 indicam que a resolução, taxa de quadros, informação de codec, perfil, ou nível (respectivamente) do componente de vídeo associado são idênticos aos do componente de vídeo com um índice de i-1. Qualquer um desses valores sendo ajustados para 2 indica que o valor respectivo é igual a um componente de vídeo específico, sinalizado utilizando o valor “same_cha_component_id”.
[00134] Dependency_flag indica se a dependência do componente de vídeo atual é sinalizada. Quando dependency_flag indicar que o componente é dependente de outros componentes de vídeo, os componentes do qual depende o componente atual podem ser sinalizados. Isto é, se a dependência for sinalizada, o componente de vídeo correspondente é dependente dos componentes de vídeo sinalizados. O valor dependency_flag em conjunto com os componentes de vídeo sinalizados do qual o componente atual é dependente, pode corresponder ao valor de dependência 126 da Figura 3.
[00135] 3DVideo_flag indica se o componente de vídeo atual é relacionado a MVC ou outro conteúdo de vídeo proporcionando uma representação 3D. Number_target_views especifica o número de vistas alvo ao se decodificar um componente de vídeo 3D, por exemplo, codificado com MVC (codificação de vídeo de múltiplas vistas). Entry_count_byte_range especifica o número de fragmentos sinalizados para o componente associado. 3DVideo_flag, number_target_views, e entry_count_byte_range podem corresponder geralmente ao valor de informação de vídeo 3D 132 da Figura 3.
[00136] Avgbitrate indica a taxa média de bits do componente associado. Maxbitrate indica a taxa máxima de bits do componente associado calculado em qualquer intervalo de um segundo. Largura e altura indicam a resolução, em unidades de pixels de luminância, do componente de vídeo decodificado.
[00137] Same_res1_component_id indica o identificador de componente do componente de vídeo tendo as mesmas características específicas (resolução ou taxa de quadros ou informação de codec, ou perfil e nível) do componente de vídeo associado.
[00138] Frame_rate indica a taxa de quadros, em quadros por 256 segundos, do componente de vídeo. Maxbitrate é um valor de 4 bytes indicando a marca do codec, por exemplo, “avec1”. Ele tem a mesma semântica que o major_brand da caixa de tipo de arquivo. Profile_level indica o perfil e nível exigido para decodificar o componente de vídeo atual. Dependent_comp_count indica o número de componente de vídeo dependente para os componentes de vídeo associados.
[00139] Dependent_comp_id especifica o identificador de componente de um dos componentes de vídeo do qual depende o componente de vídeo associado. Na mesma instância de tempo, amostras em diferentes componentes de conteúdo podem ser ordenadas em uma ordem ascendente do índice dos componentes de conteúdo. Isto é, a amostra com um índice de j pode ser colocada mais cedo do que uma amostra com um índice de j+1, e a amostra do componente de conteúdo atual pode ser a última amostra na instância temporal.
[00140] Contains_RAP indica se os fragmentos do componente contêm um ponto de acesso aleatório. Contains_RAP é ajustado para 0 se o fragmento não contiver qualquer ponto de acesso aleatório. Contains_RAP é ajustado para 1 se o fragmento contiver um ponto de acesso aleatório como a primeira amostra no fragmento. Contains_RAP é ajustado para 0 se o ponto de acesso aleatório não for a primeira amostra do fragmento. RAP_type especifica o tipo de pontos de acesso aleatório (RAPs) contidos na trilha referenciada do fragmento de filme. RAP_type é ajustado para 0 se o ponto de acesso aleatório for uma imagem de renovação de decodificador instantânea (IDR). RAP_type é ajustado para 1 se o ponto de acesso aleatório for um ponto de acesso aleatório GOP aberto, por exemplo, uma imagem de renovação de decodificador aberto (ODR).
[00141] Sinalizador New_file_start_flag indica se um fragmento é o primeiro fragmento de um componente correspondente em um arquivo. Isso significa que o fragmento indicado atual está em um novo arquivo. Essa sinalização pode ser vantajosa quando arquivos de tamanho relativamente pequeno forem usados no servidor ou união temporal for utilizada.
[00142] Reference_offset indica o deslocamento para o byte inicial de um fragmento no arquivo contendo o fragmento. Reference_delta_time indica o tempo de decodifcação do fragmento associado. Next_fragment_offset indica o deslocamento de byte inicial do próximo fragmento do componente de vídeo associado no arquivo contendo o fragmento. RAP_delta_time indica a diferença de tempo de decodificação entre o primeiro ponto de acesso aleatório IDR e a primeira amostra do fragmento. Delta_offset indica a diferença de deslocamento de byte entre o deslocamento de byte da primeira amostra do fragmento e o deslocamento de byte do ponto de acesso aleatório.
[00143] Delta_DT_PT indica a diferença do tempo de decodificação e tempo de apresentação para o RAP que é um ODR (ponto de acesso aleatório GOP aberto). Number_skip_samples indica o número de amostras tendo um tempo de apresentação antes do ODR e um tempo de decomposição após um ODR, o qual pode ser o primeiro RAP de uma trilha referenciada de um fragmento de filme. Observar que um decodificador pode saltar a decodificação dessas amostras se o decodificador receber um fluxo começando com o ODR. Contains_RAP, RAP_type, new_file_start_flag, reference_offset, refrence_delta_time, next_fragment_offset, RAP_delta_time, delta_offset, delta_DT_PT, e number_skip_samples geralmente podem corresponder à informação de segmento 128.
[00144] Multiplex_time_interval indica o intervalo de multiplexação em unidade de escala de tempo para o componente de vídeo associado. Os componentes de vídeo geralmente são associados com informação de intervalo de multiplexação, embora informação de intervalo de multiplexação também possa ser sinalizada para componentes de áudio. Multiplex_time_interval também pode corresponder ao valor de intervalo de multiplexação 130 da Figura 3. Min_multiplex_time_interval e max_multiplex_time_interval indicam a faixa de intervalo de multiplexação em unidade de escala de tempo para o componente de vídeo associado. Multi_video_group_count especifica o número de apresentações de vídeo que devem ser exibidas como uma combinação de múltiplos componentes de vídeo decodificados.
[00145] Basic_vide_component_id especifica o identificador de componente do componente de vídeo básico. Outros componentes de vídeo extra sinalizados são considerados em conjunto com o componente de vídeo básico como uma apresentação de vídeo alternativo. Por exemplo, suponha que o laço anterior de “para video_component_count de componentes de vídeo” inclua sete componentes de vídeo, tendo CIDs 0, 1, 2, 3, 4, 5, 6. Suponha ainda que haja um basic_video_component_id com um número de 3 e dois componentes de vídeo extra, 5 e 6. Então apenas o grupo seguinte de apresentações é alternativo mutuamente {0}, {1}, {2}, {3, 5, 6} e {4}.
[00146] Media_time indica o tempo inicial da apresentação de múltiplos vídeos com um componente de vídeo básico que tem um identificador de basic_vide_component_id. A duração especifica a duração da apresentação de múltiplos vídeos com o componente de vídeo básico que tem um identificador de basic_video_component_id. Target_width e target_height especificam a resolução alvo do componente de vídeo nessa apresentação de múltiplos vídeos. Observar que se essa não for a mesma que a resolução original do vídeo, o dispositivo de destino pode realizar escalonamento.
[00147] Horizontal_offset e vertical_offset especificam o deslocamento em deslocamento horizontal e vertical na janela de exibição. Window_layer indica a camada do componente de vídeo decodificado para apresentação. Um valor de camada inferior pode indicar que o componente de vídeo associado foi renderizado mais cedo e pode ser coberto por um componente de vídeo com um valor de camada superior. Os componentes de vídeo decodificados podem ser renderizados na ordem ascendente dos valores de window_layer.
[00148] Transparent_level indica o fator transparente usado quando esse vídeo decodificado é combinado com uma window_layer que é inferior àquela do componente de vídeo atual. Para cada pixel, o pixel existente pode ser ponderado com um valor de transparent_level/255, e o pixel localizado em comum no componente de vídeo decodificado atual pode ser ponderado com um valor de (255 - transparent_level)/255.
[00149] O pseudocódigo abaixo é uma implementação exemplar de uma estrutura de dados para uma caixa de arranjo de componentes. aligned(8) class ComponentArrangeBox extends FullBox('cmar', version, 0) { unsigned int(8) component count; bit (1) track map flag; bit (1) sub fragment flag; bit (1) agg fragment flag; para (i=l; i<= componentcount; i++) { unsigned int(8) componentID; se (trackmap flag) unsigned int(32) track_id; } ” se (sub fragment flag) { unsigned int (8) majorcomponentcount; para (i=l; i<= majorcomponentcount; i++) { unsigned int(8) full component ID; unsigned int(8) subsetcomponentcount; para (j=l; j< subsetcomponentcount; j++) unsigned int(8) subsetcomponentID; } } se (aggfragmentflag) { unsigned int (8) aggregatedcomponentcount; para (i=l; i<= aggregatedcomponentcount; i++) { unsigned int (8) aggrcomponentid; para (j=l; j<= dependentcomponentcount; j++) unsigned int (8) depenedent_component_ID; } } }
[00150] A semântica dos elementos de pseudocódigos nesse exemplo é como a seguir. Deve-se entender que em outros exemplos, outros nomes variáveis e semântica podem ser atribuídos aos elementos de uma caixa de arranjo de componentes.
[00151] Component_count especifica o número de componentes no arquivo atual. Track_map_flag indica se o mapeamento de trilhas nesse arquivo para componentes do serviço com um identificador de serviço de content_ID é sinalizado.
[00152] Sub_fragment_flag indica se o mapeamento de sub-trilhas nesse arquivo para os componentes é sinalizado. Agg_fragment_flag indica se é sinalizado o mapeamento das agregações de trilha nesse arquivo para os componentes. Major_component_count indica o número de componentes principais que contém todas as amostras no arquivo.
[00153] Valores de component_ID indicam identificadores dos componentes principais armazenados no arquivo, na ordem da primeira amostra de cada componente em cada fragmento de filme. Track_id indica o identificador da trilha que corresponde a um componente com um identificador de componente de component_ID.
[00154] Sub_set_component_count indica um número de subcomponentes que formam um conjunto completo de componentes com um component_id de full_component_ID. Sub_set_component_ID especifica os valores component_id dos subcomponentes que formam um conjunto completo de um componente com um component_id de full_component_ID. Quaisquer dois subcomponentes de um mesmo componente não têm amostras sobrepostas.
[00155] Em alguns exemplos, aggregated_component_count indica o número de componentes de conteúdo que são agregados a partir de outros componentes no arquivo. Em alguns exemplos, aggregated_component_count indica o número de componentes dependentes necessários para agregar o componente de conteúdo agregado com um identificador de componente de aggr_component_id. Aggr_component_id especifica o identificador de componente do componente que é agregado. Depenedent_component_ID especifica o component_id dos componentes usados para agregar o componente com um id de aggr_component_id.
[00156] A Tabela 1 abaixo ilustra outro conjunto exemplar de objetos de sintaxe compatíveis com as técnicas dessa revelação. A coluna “Nome de Elemento ou Atributo” descreve o nome do objeto de sintaxe. A coluna “Tipo” descreve se o objeto de sintaxe é um elemento ou um atributo. A coluna “Cardinalidade” descreve a cardinalidade do objeto de sintaxe, isto é, o número de instâncias do objeto de sintaxe em uma instância de uma estrutura de dados correspondendo à Tabela 1. A coluna “Opcionalidade” descreve se o objeto de sintaxe é opcional, nesse exemplo, onde “M” indica obrigatório, “O” indica opcional, “OD” indica opcional com o valor padrão, e “CM” indica condicionalmente obrigatório. A coluna “descrição” descreve a semântica do objeto de sintaxe correspondente. TABELA 1
Figure img0001
Figure img0002
Figure img0003
Figure img0004
Figure img0005
Figure img0006
Figure img0007
Figure img0008
[00157] Com relação ao exemplo da Figura 3, um dispositivo de cliente pode solicitar a caixa de mapeamento de componentes 100, que inclui informação para características de componentes de vídeo 110 e componentes de áudio 140. Por exemplo, o componente 112A é descrito pelas características de componente 114A. Similarmente, cada um dos outros componentes podem ser descrito mediante informação de características de componente similar às características de componente 114A. O dispositivo de cliente também pode recuperar as caixas de arranjo de componentes 152, as quais descrevem os mapeamentos entre os identificadores de componente e trilhas de dados de áudio e vídeo, tal como trilhas de vídeo 158, 162 e trilhas de áudio 160, 164. Dessa maneira, a caixa de mapeamento de componentes 100 é armazenada separadamente dos arquivos 150, os quais incluem amostras codificadas de dados de áudio e vídeo. O dispositivo de cliente pode usar os dados da caixa de mapeamento de componentes 100 e caixas de arranjo de componentes 152 para selecionar uma representação de conteúdo e para solicitar segmentos dos componentes selecionados, por exemplo, de acordo com um protocolo de fluxo contínuo de rede tal como fluxo contínuo de HTTP.
[00158] A Figura 4 é um diagrama conceptual ilustrando um intervalo de temporização exemplar 190 para multiplexar componente de vídeo 180 e componente de áudio 184. Nesse exemplo, uma representação inclui componente de vídeo 180 e componente de áudio 184. O componente de vídeo 180 inclui fragmentos de vídeo 182A-182D (fragmentos de vídeo 182), enquanto que o componente de áudio 184 inclui fragmentos de áudio 186A-186C (fragmentos de áudio 186). Os fragmentos de vídeo 182 podem incluir amostras codificadas de vídeo, enquanto que os fragmentos de áudio 186 podem incluir amostras codificadas de áudio.
[00159] Fragmentos de vídeo 182 e fragmentos de áudio 186 podem ser arranjados na ordem de tempo de decodificação dentro do componente de vídeo 180 e do componente de áudio 184, respectivamente. O eixo 188 da Figura 4 indica informação de tempo de decodificação para o componente de vídeo 180 e componente de áudio 184. Nesse exemplo, o tempo de decodificação aumenta da esquerda para a direita, conforme mostrado pelo eixo 188. Assim, um dispositivo de cliente pode decodificar o fragmento de vídeo 182A antes do fragmento de vídeo 182B, por exemplo.
[00160] A Figura 4 ilustra também um intervalo de temporização exemplar 190 de um segundo. De acordo com as técnicas dessa revelação, uma caixa de mapeamento de componentes para o componente de vídeo 180 e componente de áudio 184 pode indicar que o intervalo de temporização 190 é um intervalo de um conjunto potencial de intervalos de temporização ou pode indicar uma faixa de intervalos de temporização incluindo intervalo de temporização 190. O dispositivo de cliente pode usar essa informação para solicitar fragmentos a partir do componente de vídeo 180 e componente de áudio 184 de um modo a evitar estouro de armazenador, mas também para garantir que uma quantidade suficiente de dados seja armazenada, que possa ser decodificada antes de um próximo conjunto de informação poder ser enviada em fluxo contínuo através de uma rede.
[00161] Conforme observado acima, essa revelação se refere às situações de fluxo contínuo de rede, onde um cliente solicita os dados continuamente a partir de um servidor e decodifica e renderiza os dados à medida que os dados estão sendo recuperados. Por exemplo, enquanto decodificando e renderizando os dados do fragmento de vídeo 182A e fragmento de áudio 186A, um dispositivo de cliente pode solicitar o fragmento de vídeo 182B e o fragmento de áudio 186B. Conforme mostrado no exemplo da figura 4, os fragmentos de vídeo 182 e os fragmentos de áudio 186 não são necessariamente alinhados de forma temporal. Consequentemente um dispositivo de cliente pode usar a informação de intervalo de temporização para determinar quando solicitar os dados de fragmentos subsequentes do componente de vídeo 180 e do componente de áudio 184.
[00162] Em geral, um dispositivo de cliente pode ser configurado para recuperar os fragmentos tendo um tempo de decodificação inicial dentro de um próximo intervalo de temporização. Se um componente incluir um fragmento tendo um tempo de decodificação inicial dentro do próximo intervalo de temporização, o cliente pode solicitar aquele fragmento. Caso contrário, o cliente pode saltar as solicitações para dados a partir do componente até um intervalo de temporização subsequente.
[00163] No exemplo da Figura 4, o intervalo de temporização 190 é igual a um segundo. Os valores de tempo de decodificação dos fragmentos de vídeo 182 do componente de vídeo 180 podem ser, nesse exemplo, de N-1 segundos para o fragmento de vídeo 182A, N+1,2 segundo para o fragmento de vídeo 182B, N+2,1 segundo para o fragmento de vídeo 182C, e N+3,3 segundo para o fragmento de vídeo 182D. Os valores de tempo de decodificação dos fragmentos de áudio 186 do componente de áudio 184 podem ser, nesse exemplo, de N-0,2 segundo para fragmento de áudio 186A, N+1,3 segundo para fragmento de áudio 186B, e N+3,2 segundo para fragmento de áudio 186C.
[00164] Como um exemplo, suponha que o próximo tempo de decodificação local vindouro no dispositivo de destino 40 seja de N+2 segundos. Consequentemente, o dispositivo de destino 40 pode determinar quais fragmentos componentes têm um tempo de decodificação entre N+2 e N+3 segundos, isto é, o tempo de decodificação local mais o intervalo de temporização 190. Fragmentos de componentes tendo tempos de decodificação iniciais entre N+2 e N+3 segundos podem corresponder aos próximos fragmentos a serem solicitados. Nesse exemplo, o fragmento de vídeo 182C tem um tempo de decodificação entre N+2 e N+3 segundos. Assim, o dispositivo de destino 40 pode submeter uma solicitação para recuperar o fragmento de vídeo 182C, por exemplo, uma solicitação Get parcial de HTTP especificando a faixa de bytes do fragmento de vídeo 182C. Como nenhum dos fragmentos de áudio 186 tem um tempo de decodificação entre N+2 e N+3, o dispositivo de destino 40 ainda não submeteria uma solicitação para qualquer dos fragmentos de áudio 186.
[00165] Como outro exemplo, quando o tempo de decodificação local vindouro é de N+3 segundos, o dispositivo de destino 40 pode submeter às solicitações para fragmento de vídeo 182D e fragmento de áudio 186C. Isto é, o fragmento de vídeo 182D e o fragmento de áudio 186C tem tempos de decodificação entre N+3 segundos e N+4 segundos. Portanto, o dispositivo de destino 40 pode submeter solicitações para fragmento de vídeo 182D e fragmento de áudio 186C.
[00166] Ainda como outro exemplo, suponha que o intervalo de temporização 190 fosse de 2 segundos. Se o tempo de decodificação local fosse de N+1 segundo, então o dispositivo de destino 40 pode primeiramente determinar que os fragmentos de vídeo 182B e 182C e o fragmento de áudio 186B tem tempos de decodificação entre N+1 segundo e N+3 segundos. Consequentemente o dispositivo de destino 40 pode submeter solicitações para fragmentos de vídeo 182B e 182C e fragmento de áudio 186B.
[00167] A Figura 5 é um fluxograma ilustrando um método exemplar para prover uma caixa de mapeamento de componentes e caixas de arranjo de componentes a partir de um servidor para um cliente. A Figura 5 ilustra também um método exemplar para usar a caixa de mapeamento de componentes e as caixas de arranjo de componentes para selecionar componentes para formar uma apresentação, e para solicitar amostras codificadas dos componentes selecionados. Embora geralmente descrito com relação ao dispositivo de origem 20 e dispositivo de destino 40 da Figura 1, deve-se entender que outros dispositivos podem implementar as técnicas da Figura 5. Por exemplo, qualquer servidor e cliente configurado para comunicação por intermédio de um protocolo de fluxo contínuo pode implementar essas técnicas.
[00168] Inicialmente, o dispositivo de origem 20 pode receber amostras de vídeo codificadas 200. O dispositivo de origem 20 também pode receber amostras codificadas de áudio. As amostras recebidas correspondem a um conteúdo comum. As amostras recebidas podem corresponder a vários componentes do conteúdo. O dispositivo de origem 20 pode determinar com quais componentes da amostra se corresponde. O dispositivo de origem 20 também pode armazenar as amostras em um ou mais arquivos como componentes do conteúdo 202. O dispositivo de origem 20 pode arranjar as amostras na forma de fragmentos, de tal modo que um componente pode incluir um ou mais fragmentos, e fragmentos do mesmo componente podem ser armazenados em arquivos separados.
[00169] Após armazenar os componentes do conteúdo em um ou mais arquivos, o dispositivo de origem 20 pode produzir caixas de arranjo de componentes para cada um dos arquivos 204. Conforme discutido acima, as caixas de arranjo de componentes podem proporcionar um mapeamento entre os identificadores de componentes e os identificadores de trilha do arquivo. O dispositivo de origem 20 também pode produzir uma caixa de mapeamento de componentes que descreve todos os componentes do conteúdo 206. Conforme discutido acima, a caixa de mapeamento de componentes pode descrever características de componentes do conteúdo, tal como, por exemplo, taxas de bits, taxas de quadros, resolução, informação de codec, informação de perfil e nível, dependências entre componentes, informação de segmento, intervalos de multiplexação, informação de segmento descrevendo faixas de bytes de fragmentos dentro dos componentes do conteúdo, e/ou informação de vídeo 3D.
[00170] Em alguns exemplos, o dispositivo de origem 20 pode armazenar os arquivos incluindo as amostras de vídeo codificadas e as caixas de arranjo de componentes, assim como a caixa de mapeamento de componentes, localmente dentro do dispositivo de origem 20. Em outros exemplos, o dispositivo de origem 20 pode enviar os arquivos e a caixa de mapeamento de componentes para um dispositivo de servidor separado de modo a serem fornecidos aos clientes por intermédio de um protocolo de rede de fluxo contínuo. No exemplo da Figura 5, supõe-se que o dispositivo de origem 20 armazene os arquivos e implemente um protocolo de rede de fluxo contínuo, tal como fluxo contínuo de HTTP.
[00171] Consequentemente, o dispositivo de destino 40 pode solicitar a caixa de mapeamento de componentes e as caixas de arranjo de componentes a partir do dispositivo de origem 20 (208). Por exemplo, o dispositivo de destino 40 pode enviar uma solicitação para a caixa de mapeamento de componentes e caixas de arranjo de componentes para o dispositivo de origem 20 de acordo com o fluxo contínuo de HTTP, por exemplo, uma solicitação HEAD dirigida em um URL associado com o conteúdo. Em resposta ao recebimento da solicitação 210, o dispositivo de origem 20 pode fornecer a caixa de mapeamento de componentes e as caixas de arranjo de componentes ao dispositivo de destino 40 212.
[00172] Após receber a caixa de mapeamento de componentes e as caixas de arranjo de componentes 214, o dispositivo de destino 40 pode determinar os componentes a serem solicitados com base nos dados contidos dentro da caixa de mapeamento de componentes. Por exemplo, o dispositivo de destino 40 pode determinar se o dispositivo de destino 40 é capaz de decodificar e renderizar componentes específicos com base na resolução, taxa de quadros, informação de codec, informação de perfil e nível, e informação de vídeo 3D. O dispositivo de destino 40 também pode determinar as condições de rede atuais, tal como largura de banda disponível, e selecionar componentes com base nas condições de rede atuais. Por exemplo, o dispositivo de destino 40 pode selecionar os componentes tendo uma taxa de bits relativamente menor quando menos largura de banda estiver disponível, ou taxa relativamente maior de bits quando mais largura de banda estiver disponível. Como outro exemplo, o dispositivo de destino 40 pode selecionar um intervalo de multiplexação com base nas condições atuais da rede, e modificar o intervalo de multiplexação com base nos possíveis intervalos de multiplexação conforme indicado pela caixa, para se adaptar às condições variáveis de rede. Se um componente selecionado for dependente de outro componente, o dispositivo de destino 40 pode solicitar ambos, o componente selecionado e o componente do qual é dependente o componente selecionado.
[00173] Após selecionar os componentes para solicitação, o dispositivo de destino 40 pode determinar os arquivos armazenando dados para os componentes selecionados com base nas caixas de arranjo de componentes, recebidas 218. Por exemplo, o dispositivo de destino 40 pode analisar as caixas de arranjo de componentes para determinar se um arquivo tem um mapeamento entre um identificador de componente selecionado e uma trilha do arquivo. Se esse for o caso, o dispositivo de destino 40 pode solicitar os dados a partir do arquivo, por exemplo, de acordo com um protocolo de rede de fluxo contínuo 220. As solicitações podem compreender solicitações HTTP Get ou Get parcial para os URLs ou URNs dos arquivos, e possivelmente especificando uma faixa de bytes dos arquivos, onde as faixas de bytes podem corresponder aos fragmentos dos componentes armazenados pelos arquivos.
[00174] O dispositivo de destino 40 pode submeter múltiplas solicitações para recuperar porções sequenciais dos componentes, com base em um intervalo de multiplexação selecionado. Isto é, inicialmente, o dispositivo de destino 40 pode primeiramente solicitar fragmentos a partir de cada um dos componentes selecionados. O dispositivo de destino 40 pode então determinar, para um próximo intervalo de multiplexação, se há um fragmento começando dentro do próximo intervalo de multiplexação para cada componente, e se esse for o caso, solicitar o fragmento(s). Dessa maneira, o dispositivo de destino 40 pode solicitar os fragmentos a partir dos componentes com base em um intervalo de multiplexação. O dispositivo de destino 40 também pode periodicamente reavaliar as condições de rede para realizar adaptação para as condições de rede variáveis, por exemplo, mediante mudança do intervalo de multiplexação ou solicitando os dados a partir de componentes diferentes. Em todo caso, em resposta às solicitações, o dispositivo de origem 20 pode emitir os dados de solicitados para o dispositivo de destino 40 222.
[00175] Em um ou mais exemplos, as técnicas descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, os quais correspondem a um meio tangível; tal como meios de armazenamento de dados, ou meios de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um local para outro, por exemplo, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, os meios legíveis por computador geralmente podem corresponder a (1) meios de armazenamento legíveis por computador, tangíveis os quais são não transitórios ou (2) um meio de comunicação tal como um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que possam ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[00176] Como exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro meio de armazenamento de disco ótico, meio de armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disso, qualquer conexão é adequadamente denominada meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibras óticas, par de fios torcidos, linha de assinante digital (DSL) ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibras óticas, par de fios torcidos, DSL, ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídas na definição de meio. Deve-se entender, contudo, que meios de armazenamento legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outros meios transitórios, mas em vez disso se referem aos meios de armazenamento tangíveis, não transitórios. Disco magnético e disco ótico, conforme aqui usado, incluem disco compacto (CD), disco a laser, disco ótico, disco digital versátil (DVD), disquete e disco blu-ray onde discos magnéticos normalmente reproduzem os dados de forma magnética, enquanto que os discos óticos reproduzem os dados de forma ótica com laseres. Combinações dos mencionados acima também devem ser incluídas no escopo de meios legíveis por computador.
[00177] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis no campo (FPGAs), ou outro conjunto de circuitos lógicos integrados ou discretos, equivalentes. Consequentemente, o termo “processador” conforme aqui usado pode se referir a qualquer das estruturas anteriormente precedentes ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de hardware dedicado e/ou módulos de software configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00178] As técnicas dessa revelação podem ser implementadas em uma ampla variedade de dispositivos ou equipamentos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de (ICs) (por exemplo, um conjunto de chips). Diversos componentes, módulos ou unidades são descritos nessa revelação para enfatizar aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não requerem necessariamente a realização por unidades diferentes de hardware. Mais propriamente, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de codec, ou providas por uma coleção de unidades de hardware interligadas, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequado.
[00179] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações seguintes.

Claims (15)

1. Método para enviar dados de vídeo encapsulados, o método compreendendo: enviar, através de um Protocolo de fluxo contínuo de rede baseado em Protocolo de Transferência de Hipertexto (HTTP), um arquivo de manifesto compreendendo características para componentes de uma pluralidade de representações alternativas de conteúdo de vídeo para um dispositivo cliente, o método caracterizado pelo fato de que as características compreendem pelo menos uma dentre uma taxa de quadro, um indicador de perfil, um indicador de nível, e dependências entre os componentes, e em que o arquivo de manifesto conforma ao Protocolo de fluxo contínuo de rede baseado em HTTP; receber, através do Protocolo de fluxo contínuo de rede baseado em HTTP, uma solicitação a partir do dispositivo cliente para pelo menos um dos componentes após enviar o arquivo de manifesto; e enviar, através do Protocolo de fluxo contínuo de rede baseado em HTTP, os componentes solicitados para o dispositivo cliente em resposta à solicitação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que pelo menos dois dentre os componentes são armazenados em arquivos separados, e em que o arquivo de manifesto compreende características para cada um dentre os pelo menos dois dos componentes.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: armazenar o arquivo de manifesto separadamente a partir de um ou mais arquivos armazenando amostras codificadas para os componentes, em que enviar o arquivo de manifesto compreende: receber uma primeira solicitação para o arquivo de manifesto; e enviar o arquivo de manifesto independentemente dos um ou mais arquivos armazenando as amostras codificadas em resposta a primeira solicitação, e em que a solicitação por pelo menos um dos componentes de vídeo compreende uma segunda solicitação diferente.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o arquivo de manifesto é separado dos componentes, o método compreendendo adicionalmente: atribuir um identificador ao arquivo de manifesto que associa o arquivo de manifesto com um conteúdo de multimídia que compreende a pluralidade de representações alternativas; e atribuir identificadores únicos para as representações do conteúdo de multimídia.
5. Método, de acordo com a reivindicação 1, caracterizado compreende adicionalmente enviar valores de identificador de componentes para os componentes, em que pelo menos um dentre os valores de identificador de componente é diferente de um valor de identificador de trilha para o componente correspondente ao pelo menos um dentre os valores de identificador de componente.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente enviar informações indicando que um conjunto dos componentes é comutável entre si, e em que a solicitação especifica pelo menos um dentre o conjunto de componentes.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente enviar informações indicativas das dependências entre os componentes e uma ordem das dependências entre os componentes para uma ordem de decodificação dos componentes em uma unidade de acesso, informações indicativas das dependências entre os componentes e uma diferença de camada temporal entre um primeiro componente e um segundo componente que é dependente do primeiro componente, informações indicativas de um número de visualizações alvo para emitir para uma ou mais dentre a pluralidade de representações alternativas; e informações indicativas de possíveis intervalos de multiplexação para uma combinação de dois ou mais dentre os componentes, e em que a solicitação especifica fragmentos de qualquer um dentre os dois ou mais dos componentes possuindo tempos de decodificação dentro de um intervalo comum dos intervalos de multiplexação.
8. Método para receber dados de vídeo encapsulados, o método compreendendo: solicitar, através de um protocolo de fluxo contínuo de rede baseado em Protocolo de Transferência de Hipertexto (HTTP), um arquivo de manifesto compreendendo características para componentes de uma pluralidade de representações alternativas de conteúdo de vídeo a partir de um dispositivo de origem, caracterizado pelo fato de que as características compreendem pelo menos um dentre uma taxa de quadro, um indicador de perfil, um indicador de nível, e dependências entre os componentes, e em que o arquivo de manifesto conforma ao Protocolo de fluxo contínuo de rede baseado em HTTP; selecionar um ou mais dentre os componentes com base nas características; solicitar, através do Protocolo de fluxo contínuo de rede baseado em HTTP, amostras dos componentes selecionados; e decodificar e apresentar as amostras após as amostras terem sido recebidas.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende adicionalmente: receber informações indicando uma correspondência entre valores de identificador de componente para os componentes selecionados e valores de identificador de trilha para os componentes em um ou mais arquivos armazenando amostras codificadas para os componentes; e receber informações indicativas de deslocamentos de bytes para fragmentos dentro de cada um dentre os componentes selecionados, tempos de decodificação de primeiras amostras nos fragmentos, pontos de acesso aleatório nos fragmentos, e indicações sobre se os fragmentos pertencem a novos segmentos dos respectivos componentes; em que solicitar as amostras compreende solicitar amostras das trilhas dos um ou mais arquivos correspondendo aos valores de identificador de componente para os componentes selecionados com base nos deslocamentos de bytes, tempos de decodificação, pontos de acesso aleatório e nas indicações sobre se os fragmentos pertencem a novos segmentos.
10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende adicionalmente: receber informações indicando que pelo menos um dentre os componentes selecionados é dependente de outro componente; e solicitar amostras do componente no qual o componente dentre os componentes selecionados é dependente.
11. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que solicitar as amostras dos componentes selecionados compreende: determinar um próximo intervalo de multiplexação; determinar alguns dentre os componentes selecionados possuindo fragmentos que iniciam no próximo intervalo de multiplexação; e solicitar os fragmentos que iniciam no próximo intervalo de multiplexação a partir dos componentes determinados dentre os componentes selecionados.
12. Método, de acordo com a reivindicação 8 em que as características compreendem um primeiro conjunto de características, o método caracterizado pelo fato de que compreende adicionalmente: receber informações indicativas de uma primeira duração de tempo dos componentes para os quais o primeiro conjunto de características corresponde; solicitar um segundo conjunto de características para os componentes que correspondem e uma segunda duração de tempo dos componentes aos quais o segundo conjunto de características corresponde; e solicitar amostras dos componentes correspondendo à segunda duração de tempo com base no segundo conjunto de características.
13. Dispositivo, caracterizado pelo fato de que compreende um ou mais meios para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7 e 8 a 12.
14. Dispositivo, de acordo com a reivindicação 13, caracterizado pelo fato de que os um ou mais meios compreendem um ou mais processadores.
15. Memória legível por computador, caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 7 e 8 a 12.
BR112013000861-0A 2010-07-15 2011-07-15 Método para enviar dados de vídeo encapsulados, método para receber dados de vídeo encapsulados, dispositivo e memória legível por computador BR112013000861B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US36474710P 2010-07-15 2010-07-15
US61/364,747 2010-07-15
US36643610P 2010-07-21 2010-07-21
US61/366,436 2010-07-21
US12/986,028 2011-01-06
US12/986,028 US9185439B2 (en) 2010-07-15 2011-01-06 Signaling data for multiplexing video components
PCT/US2011/044284 WO2012009700A1 (en) 2010-07-15 2011-07-15 Signaling data for multiplexing video components

Publications (2)

Publication Number Publication Date
BR112013000861A2 BR112013000861A2 (pt) 2016-05-17
BR112013000861B1 true BR112013000861B1 (pt) 2021-11-09

Family

ID=45466659

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013000861-0A BR112013000861B1 (pt) 2010-07-15 2011-07-15 Método para enviar dados de vídeo encapsulados, método para receber dados de vídeo encapsulados, dispositivo e memória legível por computador

Country Status (8)

Country Link
US (1) US9185439B2 (pt)
EP (1) EP2594071A1 (pt)
JP (2) JP5866354B2 (pt)
CN (1) CN103069799B (pt)
AR (1) AR082242A1 (pt)
BR (1) BR112013000861B1 (pt)
TW (1) TWI458340B (pt)
WO (1) WO2012009700A1 (pt)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
CN100539439C (zh) 2002-10-05 2009-09-09 数字方敦股份有限公司 连锁反应码的系统编码和解码系统和方法
EP1665539B1 (en) 2003-10-06 2013-04-10 Digital Fountain, Inc. Soft-Decision Decoding of Multi-Stage Chain Reaction Codes
CN101019326B (zh) * 2004-05-07 2013-02-27 数字方敦股份有限公司 文件下载和流系统
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9209934B2 (en) * 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) * 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
EP2203836A4 (en) 2007-09-12 2014-11-05 Digital Fountain Inc GENERATING AND COMMUNICATING SOURCE IDENTIFICATION INFORMATION TO ENABLE RELIABLE COMMUNICATIONS
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
CN102484729B (zh) * 2009-04-07 2016-08-24 Lg电子株式会社 广播发送器、广播接收器及其3d视频数据处理方法
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8635359B2 (en) * 2009-11-06 2014-01-21 Telefonaktiebolaget L M Ericsson (Publ) File format for synchronized media
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
KR20120034550A (ko) 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
EP3122056B1 (en) * 2010-09-01 2020-07-29 Ideahub Inc. Method and device for providing content via http adaptive streaming using a general media presentation description and specific media presentation descriptions
US9467493B2 (en) 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
WO2012093714A1 (ja) * 2011-01-07 2012-07-12 シャープ株式会社 再生装置、再生装置の制御方法、生成装置、生成装置の制御方法、記録媒体、データ構造、制御プログラム、及び該プログラムを記録した記録媒体
EP2665261A4 (en) * 2011-01-14 2014-10-15 Sharp Kk Content replay, content replay, release system, content replay program, recording medium and data structure
KR20120083747A (ko) * 2011-01-18 2012-07-26 삼성전자주식회사 방송통신 융합형 서비스를 위한 전송 방법 및 장치
JP5529177B2 (ja) * 2011-01-19 2014-06-25 ネイバー ビジネス プラットフォーム コーポレーション P2p基盤のストリーミングサービスでバッファリングを行うシステムおよび方法、並びにクライアントでバッファリングを処理するアプリケーションを配布するシステム
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US8838262B2 (en) * 2011-07-01 2014-09-16 Dolby Laboratories Licensing Corporation Synchronization and switch over methods and systems for an adaptive audio system
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
WO2013089437A1 (ko) 2011-12-12 2013-06-20 엘지전자 주식회사 미디어 컨텐트를 수신하는 장치 및 방법
US9930379B2 (en) 2012-01-31 2018-03-27 Comcast Cable Communications, Llc System and method for data stream fragmentation
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
DK3793200T3 (da) 2012-04-13 2023-02-13 Ge Video Compression Llc Billedkodning med lav forsinkelse
KR20130116782A (ko) 2012-04-16 2013-10-24 한국전자통신연구원 계층적 비디오 부호화에서의 계층정보 표현방식
US10205961B2 (en) * 2012-04-23 2019-02-12 Qualcomm Incorporated View dependency in multi-view coding and 3D coding
US20130312046A1 (en) * 2012-05-15 2013-11-21 Mark Robertson Smart stream delivery server, system and methods for assembling a mix of services to be delivered to a subscriber's premises
EP2859729B1 (en) * 2012-06-12 2020-09-16 Coherent Logix, Incorporated A distributed architecture for encoding and delivering video content
JP2015526006A (ja) 2012-06-29 2015-09-07 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ ビデオ・データストリーム・コンセプト
WO2014033504A1 (en) * 2012-09-03 2014-03-06 Wijetunga Sagara Method and system for segmenting and separately package audio, video, subtitle and metadata
WO2014052429A1 (en) 2012-09-27 2014-04-03 Dolby Laboratories Licensing Corporation Spatial multiplexing in a soundfield teleconferencing system
US9584792B2 (en) * 2013-01-04 2017-02-28 Qualcomm Incorporated Indication of current view dependency on reference view in multiview coding file format
WO2014163209A1 (ja) * 2013-04-05 2014-10-09 シャープ株式会社 画像復号装置
US9609336B2 (en) * 2013-04-16 2017-03-28 Fastvdo Llc Adaptive coding, transmission and efficient display of multimedia (acted)
GB2513140B (en) * 2013-04-16 2016-05-04 Canon Kk Methods, devices, and computer programs for streaming partitioned timed media data
EP2987326B1 (en) * 2013-04-17 2020-09-02 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US9973559B2 (en) * 2013-05-29 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for presenting content streams to a client device
CA2916878A1 (en) * 2013-07-19 2015-01-22 Sony Corporation Information processing device and method
US9955219B2 (en) 2013-12-03 2018-04-24 Saturn Licensing Llc Reception device
JP2015136057A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
US9807406B2 (en) * 2014-03-17 2017-10-31 Qualcomm Incorporated Picture flushing and decoded picture buffer parameter inference for multi-layer bitstreams
GB2524531B (en) * 2014-03-25 2018-02-07 Canon Kk Methods, devices, and computer programs for improving streaming of partitioned timed media data
KR20160003450A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 전자장치의 데이터를 공유하기 위한 방법 및 장치
KR101600469B1 (ko) * 2014-07-16 2016-03-07 김재경 스트리밍 서비스를 위한 클라이언트 및 서버의 동작 방법
US10390059B2 (en) * 2014-09-04 2019-08-20 Comcast Cable Communications, Llc Latent binding of content based on user preference
US10187680B2 (en) * 2014-11-11 2019-01-22 Cisco Technology, Inc. Adaptive bit rate system architectures using named domain networking
US10728599B2 (en) * 2014-12-12 2020-07-28 Arris Enterprise, Llc Gateway server conditioned media streaming
US10812546B2 (en) 2014-12-24 2020-10-20 Intel IP Corporation Link-aware streaming adaptation
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
KR102126257B1 (ko) * 2015-02-13 2020-06-24 에스케이텔레콤 주식회사 멀티뷰 스트리밍 서비스 지원 방법 및 이를 지원하는 장치
US9589543B2 (en) 2015-03-18 2017-03-07 Intel Corporation Static frame image quality improvement for sink displays
US9532099B2 (en) * 2015-03-24 2016-12-27 Intel Corporation Distributed media stream synchronization control
US10779057B2 (en) * 2015-06-08 2020-09-15 Qualcomm Incorporated Broadcast content redistribution and ad insertion
US9832123B2 (en) * 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
CA3004793A1 (en) 2015-11-09 2017-05-18 Thomson Licensing Method and device for adapting the video content decoded from elementary streams to the characteristics of a display
KR101863598B1 (ko) * 2016-07-29 2018-06-01 주식회사 에어브로드 스트리밍 서비스를 위한 클라이언트의 동작 방법
US20180103271A1 (en) * 2016-10-10 2018-04-12 Qualcomm Incorporated Systems and methods for signaling missing or corrupted video data
US9872062B1 (en) * 2017-02-22 2018-01-16 Wyse Technology L.L.C. Enforcing synchronization by embedding audio within video frame data
US10587904B2 (en) * 2017-07-10 2020-03-10 Qualcomm Incorporated Processing media data using an omnidirectional media format
JP2021129127A (ja) * 2018-05-08 2021-09-02 ソニーグループ株式会社 受信装置、送信装置、受信方法、送信方法、およびプログラム
US11606569B2 (en) * 2018-09-25 2023-03-14 Apple Inc. Extending supported components for encoding image data
US11083961B2 (en) * 2018-12-21 2021-08-10 Universal City Studios Llc Scalable interactive video systems and methods
US11381867B2 (en) 2019-01-08 2022-07-05 Qualcomm Incorporated Multiple decoder interface for streamed media data
WO2020162712A1 (ko) * 2019-02-07 2020-08-13 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 송신 방법, 방송 신호 수신 방법 및 방송 신호 수신 장치
KR20220004961A (ko) 2019-03-26 2022-01-12 피씨엠에스 홀딩스, 인크. 라이트 필드의 다중화 렌더링을 위한 시스템 및 방법
US11094087B2 (en) * 2019-06-24 2021-08-17 Google Llc Dual serving scheme for LOD sequences
US11564018B2 (en) * 2019-10-02 2023-01-24 Qualcomm Incorporated Random access at resync points of dash segments

Family Cites Families (391)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4901319A (en) 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5421031A (en) 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
US5379297A (en) 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5590405A (en) 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5757415A (en) 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
US5835165A (en) 1995-06-07 1998-11-10 Lsi Logic Corporation Reduction of false locking code words in concatenated decoders
US6079041A (en) 1995-08-04 2000-06-20 Sanyo Electric Co., Ltd. Digital modulation circuit and digital demodulation circuit
US5751336A (en) 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
US6055012A (en) 1995-12-29 2000-04-25 Lucent Technologies Inc. Digital multi-view video compression with complexity and compatibility constraints
JP3305183B2 (ja) 1996-01-12 2002-07-22 株式会社東芝 ディジタル放送受信端末装置
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5936659A (en) 1996-01-31 1999-08-10 Telcordia Technologies, Inc. Method for video delivery using pyramid broadcasting
US5903775A (en) 1996-06-06 1999-05-11 International Business Machines Corporation Method for the sequential transmission of compressed video information at varying data rates
US5745504A (en) 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5940863A (en) 1996-07-26 1999-08-17 Zenith Electronics Corporation Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators
US5936949A (en) 1996-09-05 1999-08-10 Netro Corporation Wireless ATM metropolitan area network
KR100261706B1 (ko) 1996-12-17 2000-07-15 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6011590A (en) 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
US5946357A (en) 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
US6226259B1 (en) 1997-04-29 2001-05-01 Canon Kabushiki Kaisha Device and method for transmitting information device and method for processing information
US5844636A (en) 1997-05-13 1998-12-01 Hughes Electronics Corporation Method and apparatus for receiving and recording digital packet data
JP4110593B2 (ja) 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JPH1141211A (ja) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
EP0933768A4 (en) 1997-05-19 2000-10-04 Sanyo Electric Co DIGITAL MODULATION AND DEMODULATION
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
EP1075762A1 (en) 1998-04-02 2001-02-14 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6937618B1 (en) 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6408128B1 (en) 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US7157314B2 (en) 1998-11-16 2007-01-02 Sandisk Corporation Vertically stacked field programmable nonvolatile memory and method of fabrication
JP2000151426A (ja) 1998-11-17 2000-05-30 Toshiba Corp インターリーブ・デインターリーブ回路
US6166544A (en) 1998-11-25 2000-12-26 General Electric Company MR imaging system with interactive image contrast control
US6876623B1 (en) 1998-12-02 2005-04-05 Agere Systems Inc. Tuning scheme for code division multiplex broadcasting system
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6496980B1 (en) 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6804202B1 (en) 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
KR100784652B1 (ko) 1999-05-06 2007-12-12 소니 가부시끼 가이샤 데이터 처리 방법/장치, 데이터 재생 방법/장치, 및 기록매체
KR100416996B1 (ko) 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
JP2000353969A (ja) 1999-06-11 2000-12-19 Sony Corp デジタル音声放送の受信機
JP2001060934A (ja) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm通信装置
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (ja) 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
DE60033011T2 (de) 1999-09-27 2007-08-09 Koninklijke Philips Electronics N.V. Aufteilung einer datei zur emulation eines datenstroms
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US20020009137A1 (en) 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
WO2001057667A1 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Data streaming
US7304990B2 (en) 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
JP2001274776A (ja) 2000-03-24 2001-10-05 Toshiba Corp 情報データ伝送システムとその送信装置及び受信装置
US8572646B2 (en) 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
AU2001251353A1 (en) 2000-04-08 2001-10-23 Sun Microsystems, Inc. Streaming a single media track to multiple clients
US6631172B1 (en) 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
GB2366159B (en) 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US6834342B2 (en) 2000-08-16 2004-12-21 Eecad, Inc. Method and system for secure communication over unstable public connections
KR100447162B1 (ko) 2000-08-19 2004-09-04 엘지전자 주식회사 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법
JP2002073625A (ja) 2000-08-24 2002-03-12 Nippon Hoso Kyokai <Nhk> 放送番組に同期した情報提供の方法、サーバ及び媒体
US7340664B2 (en) 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US7031257B1 (en) 2000-09-22 2006-04-18 Lucent Technologies Inc. Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US7151754B1 (en) 2000-09-22 2006-12-19 Lucent Technologies Inc. Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
US7490344B2 (en) 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6411223B1 (en) 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US6732325B1 (en) 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US7240358B2 (en) 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
KR100908954B1 (ko) 2000-12-15 2009-07-22 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 오디오 또는 비디오 자료의 전송방법 및 장치
US7143433B1 (en) 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
US20020085013A1 (en) 2000-12-29 2002-07-04 Lippincott Louis A. Scan synchronized dual frame buffer graphics subsystem
NO315887B1 (no) 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US20080059532A1 (en) 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
FI118830B (fi) 2001-02-08 2008-03-31 Nokia Corp Tietovirran toisto
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
KR100464360B1 (ko) 2001-03-30 2005-01-03 삼성전자주식회사 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US7035468B2 (en) 2001-04-20 2006-04-25 Front Porch Digital Inc. Methods and apparatus for archiving, indexing and accessing audio and video data
US20020191116A1 (en) 2001-04-24 2002-12-19 Damien Kessler System and data format for providing seamless stream switching in a digital video recorder
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
US20030121047A1 (en) * 2001-12-20 2003-06-26 Watson Paul T. System and method for content transmission network selection
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
EP1670260A3 (en) 2002-01-23 2010-03-03 Nokia Corporation Grouping of image frames in video coding
CN1625880B (zh) 2002-01-30 2010-08-11 Nxp股份有限公司 在具有可变带宽的网络上流式传输多媒体数据
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
FR2837332A1 (fr) 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
AU2003221958B2 (en) 2002-04-15 2008-03-06 Nokia Corporation RLP logical layer of a communication station
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
US7570665B2 (en) 2002-06-11 2009-08-04 Telefonaktiebolaget L M Ericsson (Publ) Generation of mixed media streams
CN100479333C (zh) 2002-06-11 2009-04-15 数字方敦股份有限公司 通过被恢复符号的钝化作用对链式反应代码解码的装置和方法
JP4154569B2 (ja) 2002-07-10 2008-09-24 日本電気株式会社 画像圧縮伸長装置
US7136417B2 (en) 2002-07-15 2006-11-14 Scientific-Atlanta, Inc. Chroma conversion optimization
KR100754419B1 (ko) 2002-07-16 2007-08-31 노키아 코포레이션 비디오 코딩시 랜덤 액세스 및 점진적 화상 리프레시를위한 방법
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
EP1529389B1 (en) 2002-08-13 2016-03-16 Nokia Technologies Oy Symbol interleaving
US6985459B2 (en) 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
CN100539439C (zh) 2002-10-05 2009-09-09 数字方敦股份有限公司 连锁反应码的系统编码和解码系统和方法
JP2004135013A (ja) 2002-10-10 2004-04-30 Matsushita Electric Ind Co Ltd 伝送装置及び伝送方法
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US8320301B2 (en) 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
WO2004040831A1 (en) 2002-10-30 2004-05-13 Koninklijke Philips Electronics N.V. Adaptative forward error control scheme
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
US7760801B2 (en) 2002-11-18 2010-07-20 British Telecommunications Public Limited Company Transmission of video
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
JP2004192140A (ja) 2002-12-09 2004-07-08 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2004193992A (ja) 2002-12-11 2004-07-08 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US8135073B2 (en) 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US7164882B2 (en) 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
US7062272B2 (en) 2003-02-18 2006-06-13 Qualcomm Incorporated Method and apparatus to track count of broadcast content recipients in a wireless telephone network
EP1455504B1 (en) 2003-03-07 2014-11-12 Samsung Electronics Co., Ltd. Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
JP2004343701A (ja) 2003-04-21 2004-12-02 Matsushita Electric Ind Co Ltd データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム
US20050041736A1 (en) 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
US7113773B2 (en) 2003-05-16 2006-09-26 Qualcomm Incorporated Reliable reception of broadcast/multicast content
JP2004348824A (ja) 2003-05-21 2004-12-09 Toshiba Corp Eccエンコード方法、eccエンコード装置
EP1632081B1 (en) 2003-05-23 2016-08-17 Kirusa, Inc. A method and system for communicating a data file over a network and teleconferencing over a telephony network
JP2004362099A (ja) 2003-06-03 2004-12-24 Sony Corp サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CA2528261A1 (en) 2003-06-07 2004-12-16 Samsung Electronics Co., Ltd. Apparatus and method for organization and interpretation of multimedia data on a recording medium
KR101003413B1 (ko) 2003-06-12 2010-12-23 엘지전자 주식회사 이동통신 단말기의 전송데이터 압축/해제 방법
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (ru) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Способ передачи информации с использованием адаптивного перемежения
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
KR100532450B1 (ko) 2003-07-16 2005-11-30 삼성전자주식회사 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
CN1864359B (zh) 2003-08-21 2012-04-18 高通股份有限公司 用于广播和组播内容跨小区边界和/或不同传送方案之间的无缝传送的方法和相关装置
JP4183586B2 (ja) 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
WO2005029871A2 (de) 2003-09-15 2005-03-31 Armin Grasnick Verfahren zum erstellen einer raumbildvorlage für abbildungsverfahren mit räumlichen tiefenwirkungen und vorrichtung zum anzeigen einer raumbildvorlage
WO2005029237A2 (en) 2003-09-15 2005-03-31 Digital Networks North America, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
EP1665539B1 (en) 2003-10-06 2013-04-10 Digital Fountain, Inc. Soft-Decision Decoding of Multi-Stage Chain Reaction Codes
US7614071B2 (en) 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
US7516232B2 (en) 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
US7650036B2 (en) 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US8132215B2 (en) 2003-10-27 2012-03-06 Panasonic Corporation Apparatus for receiving broadcast signal
JP2005136546A (ja) 2003-10-29 2005-05-26 Sony Corp 送信装置および方法、記録媒体、並びにプログラム
DE602004011445T2 (de) 2003-11-03 2009-01-15 Broadcom Corp., Irvine FEC-Dekodierung mit dynamischen Parametern
US7428669B2 (en) 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
KR100770902B1 (ko) 2004-01-20 2007-10-26 삼성전자주식회사 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법
JP4546104B2 (ja) 2004-01-23 2010-09-15 大王製紙株式会社 吸収性物品及びインナー吸収性物品
KR100596705B1 (ko) 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
KR100586883B1 (ko) 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
WO2005094020A1 (en) 2004-03-19 2005-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using rlp
JP4433287B2 (ja) 2004-03-25 2010-03-17 ソニー株式会社 受信装置および方法、並びにプログラム
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
WO2005096301A1 (en) 2004-03-30 2005-10-13 Koninklijke Philips Electronics N.V. System and method for supporting improved trick mode performance for disc-based multimedia content
JP4249224B2 (ja) 2004-04-16 2009-04-02 パナソニック株式会社 再生装置、及び記録方法
FR2869744A1 (fr) 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
CN101019326B (zh) 2004-05-07 2013-02-27 数字方敦股份有限公司 文件下载和流系统
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US20060037057A1 (en) 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8331445B2 (en) 2004-06-01 2012-12-11 Qualcomm Incorporated Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
WO2006020826A2 (en) 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP2006074335A (ja) 2004-09-01 2006-03-16 Nippon Telegr & Teleph Corp <Ntt> 伝送方法、伝送システム及び伝送装置
JP2006115104A (ja) 2004-10-13 2006-04-27 Daiichikosho Co Ltd 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置
US7529984B2 (en) 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US20080196061A1 (en) 2004-11-22 2008-08-14 Boyce Jill Macdonald Method and Apparatus for Channel Change in Dsl System
CN101061659B (zh) 2004-12-02 2015-04-29 汤姆逊许可公司 自适应前向纠错的方法和设备
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
JP2006174045A (ja) 2004-12-15 2006-06-29 Ntt Communications Kk 画像配信装置、プログラム及び方法
JP4391409B2 (ja) 2004-12-24 2009-12-24 株式会社第一興商 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置
US7664872B2 (en) 2005-01-05 2010-02-16 Divx, Inc. Media transfer protocol
WO2006084503A1 (en) 2005-02-08 2006-08-17 Telefonaktiebolaget Lm Ericsson (Publ) On-demand multi-channel streaming session over packet-switched networks
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
US7822139B2 (en) 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
EP1856911A4 (en) 2005-03-07 2010-02-24 Ericsson Telefon Ab L M SWITCHING MULTIMEDIA CHANNELS
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (ja) 2005-03-31 2010-06-23 ブラザー工業株式会社 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
RU2377736C2 (ru) 2005-04-13 2009-12-27 Нокиа Корпорейшн Кодирование, хранение и передача информации о масштабируемости
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7961700B2 (en) 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP2006319743A (ja) 2005-05-13 2006-11-24 Toshiba Corp 受信装置
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
JP2007013436A (ja) 2005-06-29 2007-01-18 Toshiba Corp 符号化ストリーム再生装置
US20070006274A1 (en) 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
JP2007013675A (ja) 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
US7725593B2 (en) 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US20080137744A1 (en) 2005-07-22 2008-06-12 Mitsubishi Electric Corporation Image encoder and image decoder, image encoding method and image decoding method, image encoding program and image decoding program, and computer readable recording medium recorded with image encoding program and computer readable recording medium recorded with image decoding program
WO2007029443A1 (ja) 2005-09-09 2007-03-15 Matsushita Electric Industrial Co., Ltd. 画像処理方法、画像記録方法、画像処理装置および画像ファイルフォーマット
US7924913B2 (en) 2005-09-15 2011-04-12 Microsoft Corporation Non-realtime data transcoding of multimedia content
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US20070078876A1 (en) 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
CA2562212C (en) 2005-10-05 2012-07-10 Lg Electronics Inc. Method of processing traffic information and digital broadcast system
EP2375749B1 (en) 2005-10-11 2016-11-23 Nokia Technologies Oy System and method for efficient scalable stream adaptation
US7720096B2 (en) * 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
JP2007115293A (ja) 2005-10-17 2007-05-10 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
US9131247B2 (en) 2005-10-19 2015-09-08 Thomson Licensing Multi-view video coding using scalable video coding
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
JP4456064B2 (ja) 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US7826536B2 (en) 2005-12-29 2010-11-02 Nokia Corporation Tune in time reduction
US8225164B2 (en) 2006-01-05 2012-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Media container file management
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
CN101390399B (zh) 2006-01-11 2010-12-01 诺基亚公司 可伸缩视频编码中的图片的后向兼容聚合
WO2007081176A1 (en) 2006-01-12 2007-07-19 Lg Electronics Inc. Processing multiview video
WO2007086654A1 (en) 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
RU2290768C1 (ru) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Система медиавещания в инфраструктуре оператора мобильной связи
US8990153B2 (en) 2006-02-07 2015-03-24 Dot Hill Systems Corporation Pull data replication model
CN101379712B (zh) 2006-02-08 2011-12-14 汤姆森特许公司 瑞普特代码的解码
KR100770908B1 (ko) 2006-02-09 2007-10-26 삼성전자주식회사 디지털 방송 스트림의 변속 재생 장치 및 방법
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
KR100809296B1 (ko) 2006-02-22 2008-03-04 삼성전자주식회사 타입이 일치하지 않는 하위 계층의 정보를 사용하여인터레이스 비디오 신호를 인코딩/디코딩 하는 방법 및장치
JP2007228205A (ja) 2006-02-23 2007-09-06 Funai Electric Co Ltd ネットワークサーバ
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US20070230564A1 (en) 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
US20080010153A1 (en) 2006-04-24 2008-01-10 Pugh-O'connor Archie Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application
WO2007127741A2 (en) 2006-04-24 2007-11-08 Sun Microsystems, Inc. Media server system
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
JP2008011177A (ja) * 2006-06-29 2008-01-17 Nec Corp ストリーミング配信における動的品質制御方法およびネットワーク・システム
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
CN102148857A (zh) 2006-07-20 2011-08-10 桑迪士克股份有限公司 内容分布系统
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
WO2008023328A2 (en) 2006-08-24 2008-02-28 Nokia Corporation System and method for indicating track relationships in media files
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
JP2008109637A (ja) 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
EP2084928B1 (en) 2006-10-30 2017-08-23 LG Electronics Inc. Method of performing random access in a wireless communication system
JP2008118221A (ja) 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
US20080109557A1 (en) 2006-11-02 2008-05-08 Vinay Joshi Method and system for reducing switching delays between digital video feeds using personalized unicast transmission techniques
AU2007319261B2 (en) 2006-11-14 2010-12-16 Qualcomm Incorporated Systems and methods for channel switching
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
CN101636726B (zh) 2007-01-05 2013-10-30 Divx有限责任公司 包含连续播放的视频分配系统
CN101669323A (zh) 2007-01-09 2010-03-10 诺基亚公司 用于在mbms文件修复中支持文件版本控制的方法
US20080172430A1 (en) 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
WO2008084876A1 (en) 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
KR20080066408A (ko) 2007-01-12 2008-07-16 삼성전자주식회사 3차원 영상 처리 장치 및 방법
EP3041195A1 (en) 2007-01-12 2016-07-06 University-Industry Cooperation Group Of Kyung Hee University Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format
US7949195B2 (en) 2007-01-16 2011-05-24 Cisco Technology, Inc. Per block breakpoint determining for hybrid variable length coding
US7721003B2 (en) 2007-02-02 2010-05-18 International Business Machines Corporation System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client
US20080192818A1 (en) * 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
EP2137972A2 (en) 2007-04-24 2009-12-30 Nokia Corporation System and method for implementing fast tune-in with intra-coded redundant pictures
WO2008133910A2 (en) 2007-04-25 2008-11-06 Thomson Licensing Inter-view prediction with downsampled reference pictures
JP4838191B2 (ja) 2007-05-08 2011-12-14 シャープ株式会社 ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体
JP2008283571A (ja) 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
WO2008140261A2 (en) 2007-05-14 2008-11-20 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
JP2008282295A (ja) * 2007-05-14 2008-11-20 Casio Hitachi Mobile Communications Co Ltd コンテンツ配信システム、携帯端末装置及びプログラム
WO2008144001A1 (en) 2007-05-16 2008-11-27 Thomson Licensing Apparatus and method for encoding and decoding signals
US8274551B2 (en) 2007-06-11 2012-09-25 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image data
JP5363473B2 (ja) 2007-06-20 2013-12-11 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 改善されたメディア・セッション管理の方法と装置
CN101690229A (zh) 2007-06-26 2010-03-31 诺基亚公司 用于指示时间层切换点的系统和方法
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
JP2009027598A (ja) 2007-07-23 2009-02-05 Hitachi Ltd 映像配信サーバおよび映像配信方法
US8327403B1 (en) 2007-09-07 2012-12-04 United Video Properties, Inc. Systems and methods for providing remote program ordering on a user device via a web server
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
US20090093134A1 (en) * 2007-10-05 2009-04-09 Asm Japan K.K Semiconductor manufacturing apparatus and method for curing materials with uv light
US7796648B2 (en) 2007-10-09 2010-09-14 Samsung Electronics Co., Ltd. Apparatus and method for generating and parsing MAC PDU in a mobile communication system
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8635360B2 (en) 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
US20090125636A1 (en) 2007-11-13 2009-05-14 Qiong Li Payload allocation methods for scalable multimedia servers
WO2009065526A1 (en) 2007-11-23 2009-05-28 Media Patents S.L. A process for the on-line distribution of audiovisual contents with advertisements, advertisement management system, digital rights management system and audiovisual content player provided with said systems
WO2009075766A2 (en) 2007-12-05 2009-06-18 Swarmcast, Inc. Dynamic bit rate scaling
JP5385598B2 (ja) 2007-12-17 2014-01-08 キヤノン株式会社 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム
US9313245B2 (en) 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
KR101506217B1 (ko) 2008-01-31 2015-03-26 삼성전자주식회사 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US7984097B2 (en) 2008-03-18 2011-07-19 Media Patents, S.L. Methods for transmitting multimedia files and advertisements
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US20090257508A1 (en) 2008-04-10 2009-10-15 Gaurav Aggarwal Method and system for enabling video trick modes
WO2009128642A2 (en) 2008-04-14 2009-10-22 Lg Electronics Inc. Method and apparatus for performing random access procedures
US20100049865A1 (en) 2008-04-16 2010-02-25 Nokia Corporation Decoding Order Recovery in Session Multiplexing
US8855199B2 (en) 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
RU2010150108A (ru) 2008-05-07 2012-06-20 Диджитал Фаунтин, Инк. (Us) Быстрое переключение канала и защита потоковой передачи высокого качества по широковещательному каналу
US7979570B2 (en) 2008-05-12 2011-07-12 Swarmcast, Inc. Live media delivery over a packet-based computer network
JP5022301B2 (ja) 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ プロキシサーバおよび通信中継プログラム、並びに通信中継方法
CN101287107B (zh) 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
US7860996B2 (en) 2008-05-30 2010-12-28 Microsoft Corporation Media streaming with seamless ad insertion
US8775566B2 (en) 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8387150B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8468426B2 (en) 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US8539092B2 (en) 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
US20100153578A1 (en) 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8638796B2 (en) 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
KR20100040640A (ko) 2008-10-10 2010-04-20 엘지전자 주식회사 수신 시스템 및 데이터 처리 방법
US8996547B2 (en) * 2008-10-31 2015-03-31 Microsoft Technology Licensing, Llc Dynamic fragmentation of digital media
US8370520B2 (en) 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US20100169458A1 (en) 2008-12-31 2010-07-01 David Biderman Real-Time or Near Real-Time Streaming
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
RU2689191C2 (ru) 2009-01-26 2019-05-24 Томсон Лайсенсинг Упаковка кадров для кодирования видео
KR101405019B1 (ko) 2009-01-29 2014-06-11 돌비 레버러토리즈 라이쎈싱 코오포레이션 다중 이미지들,예를 들면 스테레오스코픽을 서브―샘플링 및 인터리빙하기 위한 방법들 및 디바이스들
US9538142B2 (en) 2009-02-04 2017-01-03 Google Inc. Server-side support for seamless rewind and playback of video streaming
US8909806B2 (en) 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US20120011270A1 (en) 2009-04-09 2012-01-12 Clinton Priddle Methods and arrangements for creating and handling media files
US8730303B2 (en) 2009-04-27 2014-05-20 Lg Electronics Inc. Broadcast transmitter, broadcast receiver and 3D video data processing method thereof
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
US8903895B2 (en) 2009-07-22 2014-12-02 Xinlab, Inc. Method of streaming media to heterogeneous client devices
US20110032331A1 (en) 2009-08-07 2011-02-10 Xuemin Chen Method and system for 3d video format conversion
US8355433B2 (en) 2009-08-18 2013-01-15 Netflix, Inc. Encoding video streams for adaptive video streaming
US20120151302A1 (en) 2010-12-10 2012-06-14 Qualcomm Incorporated Broadcast multimedia storage and access using page maps when asymmetric memory is used
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
CA2772100C (en) 2009-09-02 2016-06-28 Hang Zhang Mac packet data unit construction for wireless systems
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9438861B2 (en) 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
RU2622621C2 (ru) 2009-11-04 2017-06-16 Амотек Ко., Лтд. Система и способ для потоковой передачи воспроизводимого контента
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
CN102687518B (zh) 2009-12-11 2016-06-01 诺基亚技术有限公司 用于流媒体文件内表示的描述和定时的装置及方法
KR101709903B1 (ko) 2010-02-19 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
JP5996439B2 (ja) 2010-02-19 2016-09-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Httpストリーミングにおける表現切り替えのための方法及び装置
JP2013522949A (ja) 2010-03-11 2013-06-13 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート Mimoシステムにおけるデータを送受信する方法及び装置
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
KR101737325B1 (ko) 2010-08-19 2017-05-22 삼성전자주식회사 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
US8615023B2 (en) 2010-10-27 2013-12-24 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Also Published As

Publication number Publication date
BR112013000861A2 (pt) 2016-05-17
JP6392115B2 (ja) 2018-09-19
TWI458340B (zh) 2014-10-21
CN103069799A (zh) 2013-04-24
CN103069799B (zh) 2016-03-09
AR082242A1 (es) 2012-11-21
JP2015097410A (ja) 2015-05-21
WO2012009700A1 (en) 2012-01-19
JP2013535886A (ja) 2013-09-12
US20120013746A1 (en) 2012-01-19
EP2594071A1 (en) 2013-05-22
US9185439B2 (en) 2015-11-10
JP5866354B2 (ja) 2016-02-17
TW201212634A (en) 2012-03-16

Similar Documents

Publication Publication Date Title
BR112013000861B1 (pt) Método para enviar dados de vídeo encapsulados, método para receber dados de vídeo encapsulados, dispositivo e memória legível por computador
JP6345827B2 (ja) ビデオデータをストリーミングするためのシーケンスデータセットを提供すること
CN109076238B (zh) 通过http在动态自适应流式传输中用信号传送虚拟现实视频
CN107251562B (zh) 检索媒体数据的方法及装置、发信媒体信息的方法及装置
JP5559430B2 (ja) ビデオデータをストリーミングするためのビデオ切替え
KR102434300B1 (ko) 샘플 엔트리들 및 랜덤 액세스
BR112013001337B1 (pt) Disposição de fragmentos de sub-trilha para transmissão contínua de dados de vídeo
KR101421390B1 (ko) 트릭 모드 비디오 표현물에 대한 비디오 샘플의 시그널링
KR102434299B1 (ko) 샘플 엔트리들 및 랜덤 액세스
BR112020000195A2 (pt) dados de mídia de processamento com o uso de formato de mídia omnidirecional
KR101436267B1 (ko) 비디오 구성요소들을 멀티플렉싱하기 위한 데이터의 시그널링
JP2024511948A (ja) Heifフォーマットされた画像をリアルタイムトランスポートプロトコル上でトランスポートすること

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/24

Ipc: H04N 21/235 (2011.01), H04N 21/435 (2011.01), H04N

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 15/07/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.