BR112012003843B1 - Método implementado por computador para codificar um fluxo de vídeo, meio não transitório legível por computador e sistema de computador - Google Patents

Método implementado por computador para codificar um fluxo de vídeo, meio não transitório legível por computador e sistema de computador Download PDF

Info

Publication number
BR112012003843B1
BR112012003843B1 BR112012003843-5A BR112012003843A BR112012003843B1 BR 112012003843 B1 BR112012003843 B1 BR 112012003843B1 BR 112012003843 A BR112012003843 A BR 112012003843A BR 112012003843 B1 BR112012003843 B1 BR 112012003843B1
Authority
BR
Brazil
Prior art keywords
gop
sequence
video stream
gops
switching point
Prior art date
Application number
BR112012003843-5A
Other languages
English (en)
Other versions
BR112012003843A2 (pt
Inventor
Anthony Neal Park
Yung-Hsiao Lai
David Randall Ronca
Original Assignee
Netflix, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netflix, Inc filed Critical Netflix, Inc
Publication of BR112012003843A2 publication Critical patent/BR112012003843A2/pt
Publication of BR112012003843B1 publication Critical patent/BR112012003843B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23895Multiplex stream processing, e.g. multiplex stream encrypting involving multiplex stream encryption

Landscapes

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

Abstract

codificação de fluxos de vídeo para fluxo contínuo adaptativo de vídeo: uma modalidade de invenção apresenta um servidor de codificação incluindo componentes configurados para codificar um fluxo de vídeo associado a um título de conteúdo para fluxo contínuo adaptativo.o fluxo de vídeo é primeiramente processado por um codificador vc¹ para gerar um fluxo de vídeo codificado compreendendo múltiplos gops,cada um gop incluindo um primeiro quadro e tendo deslocamento de reprodução diferente .o fluxo de vídeo codificado é então empacotado de tal modo que gops são armazenados nos pacotes de dados do fluxo codificado empacotados.um gerador shi gera um shi associado ao fluxo codificado empacotado que inclui um ponto de comutação associado a um gop. cada ponto de comutação inclui o deslocamento de reprodução associado ao gop correspondente.o shi associado ao mesmo título de conteúdo e codificados para taxas de bits de reprodução diferentes tem pontos de comutação correspondentes .

Description

REFERÊNCIA REMISSIVA A PEDIDOS CORRELATOS
Esse pedido reivindica o benefício do Pedido de Patente dos Estados Unidos 12/543.328, depositado em 18 de agosto de 2009, o qual é aqui incorporado mediante referência.
ANTECEDENTES DA INVENÇÃO
Campo da Invenção
A presente invenção se refere geralmente aos meios digitais e, mais especificamente, à codificação de fluxos de vídeo para fluxo contínuo adaptativo de vídeo.
Descrição da Técnica Relacionada
Sistemas de distribuição de conteúdo digital, convencionais normalmente incluem um servidor de conteúdo, um dispositivo de reprodução de conteúdo, e uma rede de comunicação conectando o servidor de conteúdo ao dispositivo de reprodução de conteúdo. O servidor de conteúdo é configurado para armazenar arquivos de conteúdo digital correspondendo a diferentes títulos de conteúdo que podem ser baixados a partir do servidor de conteúdo para o dispositivo de reprodução de conteúdo. Cada arquivo de conteúdo digital inclui tipicamente um fluxo de vídeo codificado para uma taxa de bits de reprodução específica assim como um fluxo de áudio. Como é bem entendido, um fluxo de vídeo codificado para uma alta taxa de bits de reprodução é maior em tamanho do que um fluxo de vídeo codificado para uma taxa inferior de bits de reprodução.
O dispositivo de reprodução de conteúdo é configurado para baixar e reproduzir um arquivo de conteúdo digital correspondendo a um título de conteúdo específico em resposta a um usuário selecionando o título de conteúdo para reprodução. A transferência de arquivo de conteúdo digital envolve tipicamente uma técnica conhecida na arte como "fluxo contínuo", pelo que o servidor de conteúdo transmite sequencialmente o arquivo de conteúdo digital correspondendo ao título de conteúdo selecionado para a camada de conteúdo. A camada de conteúdo então reproduz o fluxo de vídeo e o fluxo de áudio incluído no arquivo de conteúdo digital quando porções daqueles fluxos se tornam disponíveis. Antes de iniciar a transferência do arquivo de conteúdo digital, o dispositivo de reprodução de conteúdo pode medir a largura de banda disponível a partir do servidor de conteúdo e selecionar um arquivo de conteúdo digital tendo um fluxo de vídeo codificado para uma taxa de bits que pode ser suportada pela largura de banda disponível medida. Até o ponto em que a rede de comunicação pode prover largura de banda adequada para baixar o arquivo de conteúdo digital selecionado, enquanto satisfazendo às exigências de taxa de bits, a reprodução do arquivo de conteúdo digital baixado prossegue de forma satisfatória.
Na prática, contudo, a largura de banda disponível na rede de comunicação muda constantemente à medida que diferentes dispositivos conectados à rede de comunicação desempenham tarefas independentes. Para maximizar a qualidade de reprodução em virtude da disponibilidade de largura de banda que muda, uma técnica de fluxo contínuo adaptativa pode ser implementada. No fluxo contínuo adaptativo, se a largura de banda disponível na rede de comunicação aumenta, então o dispositivo de reprodução de conteúdo transfere um arquivo de conteúdo diferente correspondendo ao título de conteúdo selecionado que inclui um fluxo de vídeo codificado para uma taxa de bits de reprodução superior. Similarmente, se a largura de banda disponível na rede de comunicação diminui, então o dispositivo de reprodução de conteúdo pode transferir um arquivo de conteúdo diferente correspondendo ao título de conteúdo selecionado que inclui um fluxo de vídeo codificado para uma taxa de bits de reprodução, inferior.
Ao comutar a partir da transferência de um fluxo de vídeo atual para a transferência de um novo fluxo de vídeo, o dispositivo de reprodução de conteúdo precisa combinar o quadro de vídeo no novo fluxo de vídeo correspondendo ao quadro de vídeo no fluxo de vídeo atual sendo reproduzido no momento da comutação. Para combinar quadros de vídeo, o dispositivo de reprodução de conteúdo tipicamente procura sequencialmente o novo fluxo de vídeo para localizar o quadro de vídeo que combina com o quadro de vídeo pertinente no fluxo de vídeo atual. Um empecilho para essa abordagem é que a operação de busca pode ser muito demorada, causando assim uma interrupção na transferência do fluxo de vídeo que perturba a experiência de visualização para o usuário.
Conforme ilustrado no precedente, o que é necessário na técnica é um mecanismo de codificação de fluxo de vídeo que permita a comutação entre fluxos de vídeo que reduz a incidência de interrupção de reprodução em relação às técnicas anteriores.
SUMÁRIO DA INVENÇÃO
Uma modalidade da presente invenção apresenta um método para codificar um fluxo de vídeo associado com um título de conteúdo para fluxo contínuo adaptativo de vídeo. O método inclui as etapas de aplicar um codec de vídeo ao fluxo de vídeo em uma taxa específica de bits de reprodução para gerar uma sequência de grupos de imagens (GOPs), em que cada GOP é associado a um intervalo de tempo de reprodução e a um deslocamento de reprodução diferente e inclui um quadro essencial e um ou mais quadros de dados de vídeo, aplicando-se um formato de sistema avançado à sequência de GOPs para gerar um ou mais pacotes de dados que incluem a sequência de GOPs, gerando um índice de cabeçalho de sequência para a sequência de GOPs que inclui um primeiro ponto de comutação correspondendo a um primeiro GOP na sequência de GOPs, em que o primeiro ponto de comutação especifica o deslocamento de reprodução associado com o primeiro GOP e um primeiro pacote de dados que inclui um primeiro quadro essencial incluído no primeiro GOP, e combinando o índice de cabeçalho de sequência com um ou mais pacotes de dados para gerar um fluxo de vídeo codificado.
Uma vantagem do método revelado é que um dispositivo de reprodução de conteúdo pode eficientemente comutar a partir de um fluxo de vídeo codificado associado a um título de conteúdo específico e tendo uma taxa de bits de reprodução específica para outro fluxo de vídeo codificado associado com o mesmo título de conteúdo e tendo diferente taxa de bits de reprodução mediante identificação do ponto de comutação apropriado no índice de cabeçalho de sequência associado ao novo fluxo de vídeo codificado.
BREVE DESCRIÇÃO DOS DESENHOS
A Figura 1 ilustra um sistema de distribuição de conteúdo configurado para implementar um ou mais aspectos da invenção;
A Figura 2 é uma ilustração mais detalhada do servidor de codificação da Figura 1, de acordo com uma modalidade da invenção;
A Figura 3 é um diagrama conceptual ilustrando os diferentes estágios codificados de um fluxo de vídeo processado pelo servidor de codificação da Figura 2, de acordo com uma modalidade da invenção;
A Figura 4 é uma ilustração mais detalhada do índice de cabeçalho de sequência da Figura 3, de acordo com uma modalidade da invenção;
A Figura 5 é um diagrama de fluxo das etapas de método para codificar um fluxo de vídeo para fluxo contínuo adaptativo de vídeo, de acordo com uma modalidade da invenção; e
A Figura 6 é um diagrama de fluxo das etapas de método para codificar e criptografar um fluxo de vídeo para fluxo contínuo de vídeo adaptativo, de acordo com outra modalidade da invenção.
DESCRIÇÃO DETALHADA
Na descrição seguinte, vários detalhes específicos são apresentados para prover um entendimento mais completo da presente invenção. Contudo, será evidente para aqueles versados na técnica que a presente invenção pode ser praticada sem um ou mais desses detalhes específicos. Em outros casos, características bem conhecidas não foram descritas para evitar obscurecer a presente invenção.
A Figura 1 ilustra um sistema de distribuição de conteúdo 100 configurado para implementar um ou mais aspectos da invenção. Conforme mostrado, o sistema de distribuição de conteúdo 100 inclui um servidor de codificação 102, uma rede de comunicação 104, uma rede de distribuição de conteúdo (CDN) 106 e um dispositivo de reprodução de conteúdo 108.
A rede de comunicação 104 inclui vários sistemas de comunicação de rede, tais como roteadores e comutadores, configurados para facilitar a comunicação de dados entre o servidor de codificação 102, a CDN 106 e o dispositivo de reprodução de conteúdo 108. Aqueles versados na técnica reconhecerão que existem muitas técnicas praticáveis para construir a rede de comunicação 104, incluindo tecnologias praticadas na instalação da rede de comunicação de Internet, bem conhecida.
O servidor de codificador 102 é um sistema de computador configurado para codificar os fluxos de vídeo associados com arquivos de conteúdo digital para fluxo contínuo adaptativo. O fluxo de trabalho de codificação para codificar os fluxos de vídeo para fluxo contínuo adaptativo é descrito em maior detalhe abaixo com relação às Figuras 2 e 3. O sistema de distribuição de conteúdo 100 pode incluir um ou mais servidores de codificação 102, onde cada servidor de codificação 102 é configurado para realizar todas as funções necessárias para codificar os fluxos de vídeo ou onde cada servidor de codificação 102 é configurado para realizar uma função específica necessária para codificar os fluxos de vídeo. Os arquivos de conteúdo digital incluindo os fluxos de vídeo codificados são recuperados pela CDN 106 por intermédio da rede de comunicação 104 para distribuição para o dispositivo de reprodução de conteúdo 108.
A CDN 106 compreende um ou mais sistemas de computador configurados para atender às solicitações de transferência para arquivos de conteúdo digital a partir do dispositivo de reprodução de conteúdo 108. Os arquivos de conteúdo digital podem residir em um sistema de armazenamento de massa acessível ao sistema de computador. O sistema de armazenamento de massa pode incluir, sem limitação, meio de armazenamento anexado direto, meio de armazenamento de arquivo anexado de rede, ou meio de armazenamento de nível de bloco anexado de rede. Os arquivos de conteúdo digital podem ser formatados e armazenados no sistema de armazenamento de massa utilizando qualquer técnica praticável. Um protocolo de transferência de dados, tal como um protocolo de transferência de hipertexto (HTTP), bem conhecido pode ser usado para transferir arquivos de conteúdo digital a partir do servidor de conteúdo 106 para o dispositivo de reprodução de conteúdo 108.
O dispositivo de reprodução de conteúdo 108 pode compreender um sistema de computador, um conversor de sinais de frequência, um dispositivo móvel tal como um telefone móvel, ou qualquer outra plataforma de computação tecnicamente praticável que tenha conectividade de rede e seja acoplada ou inclua um dispositivo de exibição e dispositivo de altofalante para apresentar quadros de vídeo, e gerar saída acústica, respectivamente. O dispositivo de reprodução de conteúdo 108 é configurado para fluxo contínuo adaptativo, isto é, para transferir unidades de um fluxo de vídeo codificadas para uma taxa de bits de reprodução específica, e comutar para transferência de unidades subsequentes de um fluxo de vídeo codificadas para uma taxa de bits de reprodução diferente com base nas condições predominantes de largura de banda dentro da rede de comunicação 104. À medida que a largura de banda dentro da rede de comunicação 104 se torna limitada, o dispositivo de reprodução de conteúdo 108 pode selecionar um fluxo de vídeo codificado para uma taxa de bits de reprodução inferior. À medida que aumenta a largura de banda disponível, um fluxo de vídeo codificado para uma taxa de bits de reprodução superior pode ser selecionado.
Embora, na descrição acima, o sistema de distribuição de conteúdo 100 seja mostrado com um dispositivo de reprodução de conteúdo 108 e uma CDNs 106, aqueles versados na técnica reconhecerão que a arquitetura da Figura 1 considera apenas uma modalidade exemplar da invenção. Outras modalidades podem incluir qualquer número de dispositivos de reprodução de conteúdo 108 e/ou CDNs 106. Assim, a Figura 1 de modo algum pretende limitar de qualquer forma a presente invenção.
A Figura 2 é uma ilustração mais detalhada do servidor de codificação 102 da Figura 1, de acordo com uma modalidade da invenção. Conforme mostrado, o servidor de codificação 102 inclui uma unidade de processamento central (CPU) 202, um disco de sistema 204, uma interface de dispositivos de entrada/saída (I/O) 206, uma interface de rede 208, uma interconexão 210 e uma memória de sistema 212.
A CPU 202 é configurada para recuperar e executar instruções de programação armazenadas na memória de sistema 212. Similarmente, a CPU 202 é configurada para armazenar dados de aplicação e recuperar dados de aplicação a partir a memória de sistema 212. A interconexão 210 é configurada para facilitar a transmissão de dados, tais como instruções de programação e dados de aplicação, entre a CPU 202, o disco de sistema 204, interface de dispositivos I/O 206, a interface de rede 208, e a memória de sistema 212. A interface de dispositivos I/O 206 é configurada para receber dados de entrada a partir dos dispositivos I/O 222 e transmitir os dados de entrada para a CPU 202 por intermédio da interconexão 210. Por exemplo, os dispositivos I/O 222 podem compreender um ou mais botões, um teclado, e um mouse ou outro dispositivo indicador. A interface de dispositivos I/O 206 também é configurada para receber dados de saída a partir da CPU 202 por intermédio da interconexão 210 e transmitir os dados de saída para os dispositivos I/O 222. O disco de sistema 204, tal como uma unidade de disco rígido ou unidade de armazenamento de memória instantânea ou semelhante, é configurado para armazenar dados não voláteis tais como fluxos de vídeo codificados. Os fluxos de vídeo codificados podem ser então recuperados pela CDN 106 por intermédio da rede de comunicação 104. A interface de rede 218 é acoplada à CPU 202 por intermédio da interconexão 210 e é configurada para transmitir e receber pacotes de dados por intermédio da rede de comunicação 104. Em uma modalidade, a interface de rede 208 é configurada para operar em conformidade com o padrão Ethernet bem conhecido.
A memória de sistema 212 inclui componentes de software que incluem instruções para codificar um ou mais fluxos de vídeo associados a um título de conteúdo específico para fluxo contínuo adaptativo. Conforme mostrado, esses componentes de software incluem um codificador VC1 214, uma ferramenta de empacotamento de formato de sistemas avançados (ASF) 216, uma ferramenta de enchimento 218 e um gerador de índice de cabeçalho de sequência (SHI) 220.
O codificador VC1 214 executa as operações de codificação para codificar um fluxo de vídeo para a taxa de bits de reprodução específica de tal modo que o fluxo de vídeo codificado está de acordo com o padrão de codec de vídeo VC1 e é configurado para fluxo contínuo adaptativo. Em uma modalidade alternativa, o fluxo de vídeo pode ser codificado para ser compatível com um padrão de codec de vídeo diferente tal como MPEG ou H.264. Um fluxo de vídeo codificado gerado pelo codificador VC1 214 inclui uma sequência de grupos de imagens (GOPs), cada GOP compreendendo múltiplos quadros de dados de vídeo. Ao codificar o fluxo de vídeo, o codificador VC1 214 codifica o fluxo de vídeo de acordo com três configurações incluídas no padrão de codec de vídeo VC1. Em primeiro lugar, a configuração de ponto de entrada fechada é habilitada para garantir que cada GOP no fluxo de vídeo codificado seja independente dos outros GOPs no fluxo de vídeo codificado. Em segundo lugar, a configuração de modo de saída de cabeçalho de sequência é habilitada de modo que um quadro essencial que inclui um cabeçalho de sequência é inserido no início de cada GOP. O cabeçalho de sequência incluído no quadro essencial de um GOP especifica, entre outras informações, um código de início de cabeçalho de sequência que pode ser usado para localizar o quadro essencial dentro do fluxo de vídeo codificado e a resolução e a relação de aspecto dos quadros de dados de vídeo no GOP. Em terceiro lugar, a configuração GOP adaptativa é desabilitada para garantir que cada GOP seja associado com o mesmo intervalo de tempo de reprodução e um deslocamento de reprodução diferente. O deslocamento de reprodução associado com o GOP é determinado com base na localização no GOP na sequência de GOPs incluída no fluxo de vídeo codificado. Por exemplo, em um fluxo de vídeo codificado onde cada GOP tem um intervalo de tempo de reprodução de 3 segundos, um primeiro GOP no fluxo de vídeo codificado teria um deslocamento de reprodução de 0 segundo, um segundo GOP no fluxo de vídeo codificado teria um deslocamento de reprodução de 3 segundos e assim por diante. Quando codificado, o codificador VC1 214 transmite o fluxo de vídeo codificado para a ferramenta de empacotamento ASF 216 para processamento adicional.
A ferramenta de empacotamento ASF 216 empacota o fluxo de vídeo codificado recebido a partir do codificador VC1 214 em um fluxo de vídeo codificado compatível com formato de sistemas avançados (ASF), o qual pode ser transferido e processado para reprodução pelos múltiplos tipos de dispositivos de reprodução de conteúdo compatível com os padrões, incluindo o dispositivo de reprodução de conteúdo 108. O fluxo de vídeo codificado compatível com ASF inclui um objeto de dados e um cabeçalho ASF. O objeto de dados armazena os GOPs em um ou mais pacotes de dados do mesmo tamanho. Como o tamanho dos pacotes de dados pode não combinar com o tamanho dos GOPs, um pacote de dados específico pode incluir quadros de dados de vídeo associados com dois ou mais GOPs. O cabeçalho ASF inclui informação associada com o fluxo de vídeo codificado compatível com ASF, tal como o tamanho e o número de pacotes de dados, necessitados por um dispositivo de reprodução de conteúdo, tal como o dispositivo de reprodução de conteúdo 108, para processar o fluxo de vídeo codificado compatível com ASF para reprodução.
O fluxo de vídeo codificado compatível com ASF é então processado pela ferramenta de enchimento 218. A ferramenta de enchimento 218 insere enchimento no objeto de dados do fluxo de vídeo codificado compatível com ASF para garantir que o quadro essencial associado com cada GOP esteja localizado no início de um pacote de dados diferente dentro do objeto de dados. Conforme descrito abaixo, o alinhamento de quadros essenciais com diferentes pacotes de dados permite que o gerador SHI 220 defina pontos de comutação para o fluxo de vídeo codificado compatível com ASF, possibilitando assim que os dispositivos de reprodução de conteúdo comutem entre múltiplos fluxos de vídeo codificados compatíveis com ASF de forma eficiente. A ferramenta de enchimento 218 então transmite o fluxo de vídeo codificado compatível com ASF para o gerador SHI 220.
O gerador SHI 220 gera um índice de cabeçalho de sequência associado com o fluxo de vídeo codificado compatível com ASF. Para gerar o índice de cabeçalho de sequência, o gerador SHI 220 primeiramente procura no objeto de dados do fluxo de vídeo codificado compatível com ASF os quadros essenciais associados com os diferentes GOPs incluídos no objeto de dados. Os quadros essenciais podem ser localizados pelo gerador SHI 220 com base nos códigos de início de sequência especificados nos cabeçalhos de sequência incluídos nos quadros essenciais. Para o GOP associado com cada um dos quadros essenciais identificados, o gerador SHI 220 define um ponto de comutação dentro do índice de cabeçalho de sequência que armazena (i) um número de pacote de dados que identifica o pacote de dados que inclui o quadro essencial associado com o GOP e (ii) o deslocamento de reprodução associado com o GOP. Outra vez, o deslocamento de reprodução associado ao GOP é determinado com base na localização do GOP na sequência de GOPs incluída no fluxo de vídeo codificado.
O servidor de codificação 102 pode gerar múltiplos fluxos de vídeo codificados compatíveis com ASF associados com o mesmo título de conteúdo e codificados para diferentes taxas de bits de reprodução da forma descrita acima. O processo de codificação aqui descrito garante que, através dos diferentes fluxos de vídeo codificados compatíveis com ASF os GOPs sejam associados com o mesmo intervalo de tempo de reprodução e que GOPs correspondentes através dos diferentes fluxos de vídeo codificados compatíveis com ASF sejam associados com os mesmos deslocamentos de reprodução. Portanto, cada ponto de comutação definido em um cabeçalho de sequência incluído em um dos fluxos de vídeo codificados compatíveis com ASF associados com um título de conteúdo específico tem um ponto de comutação correspondente definido em um cabeçalho de sequência incluído em cada um dos outros fluxos de vídeo codificados compatíveis com ASF associados ao mesmo título de conteúdo.
Com base nos índices de cabeçalho de sequência incluídos em dois fluxos de vídeo codificados compatíveis com ASF associados ao mesmo título de conteúdo, um dispositivo de reprodução de conteúdo pode comutar eficientemente entre os fluxos de vídeo codificados compatíveis com ASF mediante identificação dos pontos de comutação apropriados nos índices de cabeçalho de sequência. Ao comutar entre um fluxo de vídeo codificado compatível com ASF atualmente sendo reproduzido e um novo fluxo de vídeo codificado compatível com ASF, um dispositivo de reprodução de conteúdo, tal como o dispositivo de reprodução de conteúdo 108, pesquisa o índice de cabeçalho de sequência incluído no novo fluxo de vídeo codificado compatível a ASF para localizar o ponto de comutação particular especificando o deslocamento de reprodução associado ao próximo GOP a ser reproduzido. O dispositivo de reprodução de conteúdo pode então comutar para o novo fluxo de vídeo codificado compatível com ASF e baixar o GOP armazenado no pacote de dados especificado no ponto de comutação específico para reprodução. Por exemplo, para fluxos de vídeo codificados compatíveis com ASF onde cada GOP foi associado a um intervalo de tempo de reprodução de 3 segundos, se o primeiro GOP associado ao deslocamento de reprodução de 0 segundo estivesse sendo reproduzido atualmente, então o próximo GOP a ser reproduzido seria associado ao deslocamento de reprodução de 3 segundos. Em tal cenário, o dispositivo de reprodução de conteúdo pesquisa o cabeçalho de sequência associado ao novo fluxo codificado procurando pelo ponto de comutação particular especificando um deslocamento de reprodução de 3 segundos. Ao localizar o ponto de comutação específico, o dispositivo de reprodução de conteúdo baixaria o GOP armazenado no pacote de dados especificado no ponto de comutação para reprodução.
Em uma modalidade alternativa, enchimento não é inserido no objeto de dados do fluxo de vídeo codificado e, portanto, os quadros essenciais dos diferentes GOPs não são necessariamente alinhados com os novos pacotes de dados. Em tal modalidade, o índice de cabeçalho de sequência especifica o pacote de dados incluindo um quadro essencial específico, e o dispositivo de reprodução de conteúdo procura através do pacote de dados o quadro essencial. Sem enchimento, o tamanho do fluxo de vídeo codificado é reduzido e, portanto, o fluxo de vídeo codificado pode ser transferido mais rapidamente por um dispositivo de reprodução de conteúdo.
Em outra modalidade alternativa, a ferramenta de empacotamento ASF 216 garante que o tamanho de pacote de dados através de múltiplos fluxos de vídeo codificados associados ao mesmo título de conteúdo sejam do mesmo tamanho. Como o padrão ASF requer que o tamanho dos pacotes de dados em um único fluxo de vídeo codificado seja idêntico, garantindo que pacotes de dados através de múltiplos fluxos de vídeo codificados tenham o mesmo tamanho isso permite que o dispositivo de reprodução de conteúdo junte pacotes de dados de múltiplos fluxos de vídeo codificados em um único fluxo de vídeo codificado.
A Figura 3 é um diagrama conceptual ilustrando os diferentes estágios codificados de fluxo de vídeo processado pelo servidor de codificação 102 da Figura 2, de acordo com uma modalidade da invenção. O fluxo de vídeo 302 é um fluxo de vídeo do tipo mezanino associado ao título de conteúdo específico conforme distribuído por um distribuidor de fluxo de vídeo quando os direitos para o título de conteúdo específico são adquiridos. O fluxo de vídeo 302 compreende uma série de quadros sequenciais de dados de vídeo, tal como quadro o 304 e o quadro 306.
O fluxo de vídeo 302 é codificado pelo codificador VC1 214 para gerar o fluxo de vídeo codificado 308. Conforme descrito previamente aqui, o codificador VC1 214 codifica o fluxo de vídeo do tipo mezanino para uma taxa de bits de reprodução específica. O fluxo de vídeo codificado 308 é dividido em múltiplos GOPs, tal como GOP 318 e GOP 320. Cada GOP inclui um quadro essencial incluindo um cabeçalho de sequência, tal como o quadro essencial 310 no GOP 318 e quadro essencial 314 no GOP 320. Adicionalmente, cada GOP dentro do fluxo de vídeo codificado 308 é associado com o mesmo intervalo de tempo de reprodução e um deslocamento de reprodução diferente. Por exemplo, se o intervalo de tempo de reprodução é de 3 segundos, então o GOP 318 é associado a um deslocamento de reprodução de zero segundo, enquanto que o GOP 320 é associado a um deslocamento de reprodução de seis segundos.
O fluxo de vídeo codificado 308 é então processado pela ferramenta de empacotamento ASF 216 para gerar um fluxo de vídeo codificado compatível com ASF 322. Conforme mostrado, o fluxo de vídeo codificado compatível com ASF 322 inclui um cabeçalho ASF 324, um objeto de dados incluindo pacotes de dados do mesmo tamanho, tal como o pacote de dados 1 e o pacote de dados 7, e um índice ASF 326. Outra vez, o cabeçalho ASF 324 inclui informação associada ao fluxo de vídeo codificado compatível com ASF 322, tal como o tamanho e o número de pacotes de dados. O índice ASF 326 inclui informação de índice associada ao fluxo de vídeo codificado compatível com ASF 322, e os pacotes de dados dentro do objeto de dados armazenam os GOPs. Como previamente descrito aqui, como o tamanho dos pacotes de dados não necessariamente combina com o tamanho dos GOPs, um GOP pode ser armazenado através de diferentes pacotes de dados. Por exemplo, conforme mostrado, o GOP 318 é armazenado no pacote de dados 1, no pacote de dados 2 e parcialmente no pacote de dados 3.
O fluxo de vídeo codificado compatível com ASF 322 é então processado pela ferramenta de enchimento 218. Outra vez, a ferramenta de enchimento 218 insere enchimento no objeto de dados do fluxo de vídeo codificado compatível com ASF 322 para garantir que o quadro essencial associado com cada GOP esteja localizado no início de um pacote de dados diferente dentro do objeto de dados. Por exemplo, a ferramenta de enchimento 218 insere o enchimento 334 no pacote de dados 3 após o GOP 318 de tal modo que o quadro essencial 316 do GOP 323 é alinhado com um novo pacote de dados, isto é, pacote de dados 4. Similarmente, a ferramenta de enchimento 218 insere o enchimento 336 no pacote de dados 5 após o GOP 323 de tal modo que o quadro essencial 314 do GOP 320 é alinhado com um novo pacote de dados, isto é, pacote de dados 6.
Quando o objeto de dados do fluxo de vídeo codificado compatível com ASF 322 é preenchido, o gerador SHI 220 gera um índice de cabeçalho de sequência 338 associado com o fluxo de vídeo codificado compatível com ASF 322. Para o GOP associado com cada um dos quadros essenciais identificados, o gerador SHI 220 define um ponto de comutação dentro do índice de cabeçalho de sequência 338 que armazena (i) um número de pacotes de dados que identifica o pacote de dados que inclui o quadro essencial associado ao GOP e (ii) o deslocamento de reprodução associado ao GOP. O índice de cabeçalho de sequência 338 é descrito em maior detalhe abaixo em conjunto com a Figura
4. Quando gerado, o gerador SHI 220 insere o índice de cabeçalho de sequência 338 no cabeçalho ASF 324 do fluxo de vídeo codificado compatível com ASF 322.
A Figura 4 é uma ilustração mais detalhada do índice de cabeçalho de sequência da Figura 3, de acordo com uma modalidade da invenção. Conforme mostrado, o índice de cabeçalho de sequência inclui um ou mais pontos de comutação, tal como o ponto de comutação 408 e o ponto de comutação 410, e cada ponto de comutação inclui uma porção de índice 402, uma porção de deslocamento 404, e uma porção de pacote de dados 406. Cada ponto de comutação é associado a um GOP específico começando em um deslocamento de reprodução particular especificado na porção de deslocamento 404 do ponto de comutação, onde o quadro essencial daquele GOP está localizado dentro de um pacote de dados particular especificado na porção de pacote de dados 406 do ponto de comutação. Por exemplo, o ponto de comutação 408 é associado ao GOP 318, e a porção de deslocamento 404 do ponto de comutação 408 indica que o deslocamento de reprodução para o GOP 318 é de zero segundo (isto é, o primeiro GOP no fluxo de vídeo) e a porção de pacote de dados 406 indica que o quadro essencial 310 do GOP 318 está localizado no pacote de dados 1.
A Figura 5 é um diagrama de fluxo das etapas de método para codificar um fluxo de vídeo para fluxo contínuo adaptativo de vídeo, de acordo com uma modalidade da invenção. Embora as etapas do método sejam descritas em conjunto com os sistemas para as Figuras 1-4, aqueles versados na técnica entenderão que qualquer sistema determinado configurado para realizar as etapas de método, em qualquer ordem, está dentro do escopo da invenção.
O método 500 começa na etapa 502 onde o codificador VC1 214 executa operações de codificação em um fluxo de vídeo do tipo mezanino para gerar um fluxo de vídeo codificado para uma taxa de bits de reprodução específica. Um fluxo de vídeo codificado gerado pelo codificador VC1 214 inclui uma sequência de grupos de imagens (GOPs), cada GOP compreendendo múltiplos quadros de dados de vídeo e um quadro essencial que inclui um cabeçalho de sequência. Cada GOP é associado ao mesmo intervalo de tempo de reprodução e um deslocamento de reprodução diferente. Outra vez, o deslocamento de reprodução associado a um GOP é determinado com base na localização do GOP na sequência de GOPs incluída no fluxo de vídeo codificado.
Na etapa 504, a ferramenta de empacotamento ASF 216 processa o fluxo de vídeo codificado para gerar um fluxo de vídeo codificado compatível com ASF. Conforme aqui previamente descrito, o fluxo de vídeo codificado compatível com ASF inclui um cabeçalho ASF, um objeto de dados incluindo pacotes de dados do mesmo tamanho e, opcionalmente, um índice ASF. O cabeçalho ASF e o índice ASF armazenam informação relacionada ao fluxo de vídeo codificado compatível com ASF tal como o tamanho dos pacotes de dados e os índices dos pacotes de dados. O objeto de dados armazena os GOPs do fluxo de vídeo codificado nos pacotes de dados.
Na etapa 506, a ferramenta de enchimento 218 insere enchimento no objeto de dados do fluxo de vídeo codificado compatível com ASF para garantir que o quadro essencial associado a cada GOP esteja localizado no início de um pacote de dados diferente dentro do objeto de dados. A ferramenta de enchimento 218 então transmite o fluxo de vídeo codificado compatível com ASF para o gerador SHI 220.
Na etapa 508, o gerador SHI 220 procura no objeto de dados do fluxo de vídeo codificado compatível com ASF os quadros essenciais associados aos diferentes GOPs incluídos no objeto de dados. Os quadros essenciais podem ser localizados pelo gerador SHI 220 com base nos códigos de início de sequência especificados nos cabeçalhos de sequência incluídos nos quadros essenciais. Na etapa 510, o gerador SHI 220 gera um índice de cabeçalho de sequência associado com o fluxo de vídeo codificado compatível com SAF com base nas localizações dos quadros essenciais. Para o GOP associado com cada um dos quadros essenciais identificados, o gerador SHI 220 define um ponto de comutação dentro de um índice de cabeçalho de sequência que armazena (i) um número de pacote de dados que identifica o pacote de dados que inclui o quadro essencial associado ao GOP e (ii) o deslocamento de reprodução associado ao GOP. Na etapa 512, o gerador SHI 220 insere o índice de cabeçalho de sequência no cabeçalho ASF do fluxo de vídeo codificado compatível com ASF.
Em uma modalidade alternativa, um fluxo de vídeo sendo processado pelo servidor de codificação 102 pode ser criptografado utilizando uma técnica de criptografia de gerenciamento de direitos digitais (DRM) durante o processo de codificação. Em implementações DRM, como os códigos de início e cabeçalho de sequência identificando os quadros essenciais dos GOPs em um fluxo de vídeo codificado também são criptografados, se a técnica descrita acima fosse empregada, o gerador SHI 220 terminaria procurando os quadros essenciais com base na criptografia posterior dos códigos de início de cabeçalho de sequência e, assim, não seria capaz de gerar um índice de cabeçalho de sequência associado ao fluxo de vídeo codificado. Para tratar dessa nuança de implementações DRM, a técnica descrita abaixo em conjunto com a Figura 6 pode ser usada como uma alternativa para a técnica descrita acima.
A Figura 6 é um diagrama de fluxo de etapas de método para codificar e criptografar um fluxo de vídeo para fluxo contínuo adaptativo de vídeo, de acordo com outra modalidade da invenção. Embora as etapas de método sejam descritas em conjunto com os sistemas para as Figuras 1-4, aqueles versados na técnica entenderão que qualquer sistema configurado para realizar as etapas de método, em qualquer ordem, está dentro do escopo da invenção.
O método 600 começa na etapa 602, onde o codificador VC1 214 executa operações de codificação em um fluxo de vídeo do tipo mezanino para gerar um fluxo de vídeo codificado para uma taxa de bits de reprodução específica. Um fluxo de vídeo codificado gerado pelo codificador VC1 214 inclui uma sequência de grupos de imagens (GOPs), cada GOP compreendendo múltiplos quadros de dados de vídeo e um quadro essencial que inclui um cabeçalho de sequência. Cada GOP é associado ao mesmo intervalo de tempo de reprodução e a um deslocamento de reprodução diferente.
Na etapa 604, a ferramenta de empacotamento ASF 216 processa o fluxo de vídeo codificado para gerar um fluxo de vídeo codificado compatível com ASF. Conforme previamente descrito aqui, o fluxo de vídeo codificado compatível com ASF inclui um cabeçalho ASF, um objeto de dados incluindo pacotes de dados de mesmo tamanho e, opcionalmente, um índice ASF. O objeto de dados armazena os GOPs do fluxo de vídeo codificado nos pacotes de dados.
Na etapa 606, o gerador SHI 220 procura no objeto de dados do fluxo de vídeo codificado compatível com ASF os quadros essenciais associados aos diferentes GOPs incluídos no objeto de dados. Os quadros essenciais podem ser localizados pelo gerador SHI 220 com base nos códigos de início de sequência especificados nos cabeçalhos de sequência incluídos nos quadros essenciais. Na etapa 608, o gerador SHI 220 gera um índice de cabeçalho de sequência associado ao fluxo de vídeo codificado compatível com ASF com base nas localizações dos quadros essenciais. Para o GOP associado a cada um dos quadros essenciais identificados, o gerador SHI 220 define um ponto de comutação dentro de um índice de cabeçalho de sequência que armazena (i) um número de pacote de dados que identifica o pacote de dados que inclui o quadro essencial associado ao GOP e (ii) o deslocamento de reprodução associado ao GOP. Na etapa 610, o gerador SHI 220 insere o índice de cabeçalho de sequência no cabeçalho ASF do fluxo de vídeo codificado compatível com ASF.
Na etapa 612, o servidor de codificação 102 criptografa o fluxo de vídeo codificado compatível com ASF utilizando uma técnica de criptografia DRM, tal como DRM PlayReady ou DRM Windows Media (WMDRM). Como é bem sabido, a criptografia de um fluxo de vídeo utilizando uma técnica de criptografia DRM pode mudar o tamanho dos quadros de dados de vídeo armazenados em cada GOP. Assim, as localizações dos quadros essenciais dentro do fluxo de vídeo codificado compatível com ASF pode mudar após a criptografia.
Na etapa 614, o gerador SHI 220 localiza cada quadro essencial no fluxo de vídeo codificado compatível com ASF com base no deslocamento de reprodução correspondente armazenado no índice de cabeçalho de sequência. Outra vez, durante a criptografia, a localização de um quadro essencial pode mudar, mas o deslocamento de reprodução associado ao GOP incluindo o quadro essencial não muda, permitindo assim que o gerador SHI 220 localize com exatidão o quadro essencial com base no deslocamento de reprodução.
Na etapa 616, a ferramenta de enchimento 218 insere o enchimento no objeto de dados do fluxo de vídeo codificado compatível com ASF para garantir que o quadro essencial associado a cada GOP esteja localizado no início de um pacote de dados diferente dentro do objeto de dados. Na etapa 616, o gerador SHI 220 modifica o índice de cabeçalho de sequência armazenado no cabeçalho ASF do fluxo de vídeo codificado compatível com ASF com base no enchimento inserido no objeto de dados do fluxo de vídeo codificado compatível com ASF criptografado. Especificamente, o gerador SHI 220 modifica os identificadores de pacotes de dados armazenados no índice de cabeçalho de sequência para especificar o pacote de dados armazenando o quadro essencial.
Desse modo, o gerador SHI 220 é capaz de gerar o índice de cabeçalho de sequência associado ao fluxo de vídeo codificado compatível com ASF antes da criptografia DRM. Como os deslocamentos de reprodução associados aos GOPs permanecem idênticos durante a criptografia, o gerador SHI 220 é capaz de modificar o índice de cabeçalho de sequência com base nas novas localizações dos quadros essenciais incluídos nos GOPs após a criptografia. Como resultado, um dispositivo de reprodução de conteúdo pode mudar eficientemente entre fluxos de vídeo codificados compatíveis com ASF criptografados associados ao mesmo título de conteúdo mediante identificação dos pontos de comutação apropriados nos índices de cabeçalho de sequência incluídos nos fluxos de vídeo codificados, compatíveis com ASF criptografados.
Em outra modalidade alternativa, ao criptografar um fluxo de vídeo utilizando criptografia WMDRM, uma técnica de codificação apresentada na Figura 5 pode ser implementada. Quando o índice de cabeçalho de sequência associado ao fluxo de vídeo codificado compatível com ASF é gerado, o fluxo de vídeo codificado compatível com ASF pode ser criptografado utilizando criptografia WMDRM. Como a técnica de criptografia WMDRM não muda as localizações dos quadros essenciais no fluxo de vídeo criptografado, o índice de cabeçalho de sequência não precisa ser reajustado após criptografia WMDRM. Como aqueles versados na técnica reconhecerão, a técnica da Figura 6 também pode ser usada em implementações WMDRM.
Em resumo, um servidor de codificação codifica um fluxo de vídeo associado a um título de conteúdo para identificar os pontos de comutação que são especificados em um índice de cabeçalho de sequência incluído no fluxo de vídeo codificado. Os pontos de comutação de dois ou mais fluxos de vídeo correspondendo ao mesmo título de conteúdo e codificados para diferentes taxas de bits de reprodução ocorrem nos mesmos intervalos de tempo de reprodução através de cada um dos dois ou mais fluxos de vídeo.
AO codificar um fluxo de vídeo específico, o codificador VC1 dentro do servidor de codificação primeiramente processa o fluxo de vídeo para gerar um fluxo de vídeo codificado que é dividido em um ou mais grupos de imagens (GOPs) de dado de vídeo. Cada GOP inclui um cabeçalho de sequência seguido por múltiplos quadros de dados de vídeo. O cabeçalho de sequência especifica a resolução e a relação de aspecto dos quadros dos dados de vídeo, e os quadros dos dados de vídeo dentro do GOP são associados a um intervalo de tempo de reprodução específico começando em um deslocamento de reprodução específico.
Quando o fluxo de vídeo codificado é gerado, a ferramenta de empacotamento ASF dentro do servidor de codificação empacota o fluxo de vídeo codificado em um fluxo de vídeo codificado compatível com ASF. O fluxo de vídeo codificado compatível com ASF inclui um cabeçalho ASF e um objeto de dados. O cabeçalho ASF inclui informação associado ao fluxo de vídeo codificado, tal como o tamanho e o número de pacotes de dados, necessitados por um dispositivo de reprodução de conteúdo para processar o fluxo de vídeo codificado para reprodução. O objeto de dados armazena os GOPs em um ou mais pacotes de dados.
A ferramenta de empacotamento ASF transmite o fluxo de vídeo codificado compatível com ASF para ferramenta de enchimento dentro do servidor de codificação. A ferramenta de enchimento insere o enchimento no objeto de dados do fluxo de vídeo codificado compatível com ASF para alinhar o cabeçalho de sequência de cada GOP com um novo pacote de dados dentro do objeto de dados. Quando o enchimento é inserido no objeto de dados, o gerador de índice de cabeçalho de sequência (SHI) dentro do servidor de codificação gera um SHI associado ao fluxo de vídeo de vídeo codificado compatível com ASF. Para cada GOP no fluxo de vídeo codificado compatível com ASF, o SHI especifica o pacote de dados incluindo o cabeçalho de sequência do GOP e o deslocamento de reprodução correspondendo ao GOP. O gerador de SHI então insere o SHI no cabeçalho ASF do fluxo de vídeo codificado compatível com a ASF.
Ao codificar dois ou mais fluxos de vídeo associados ao mesmo título de conteúdo, o servidor de codificação 102 gera dois ou mais fluxos de vídeo codificados compatíveis com ASF codificados para diferentes taxas de bits de reprodução da forma descrita acima. Essencialmente, através de dois ou mais fluxos de vídeo codificados compatíveis com ASF, GOPs correspondentes são associados ao mesmo intervalo de tempo e aos mesmos deslocamentos de reprodução. Portanto, cada ponto de comutação definida em um cabeçalho de sequência incluído em um fluxo de vídeo codificado compatível com ASF associado a um título de conteúdo específico tem um ponto de comutação correspondente definido em um cabeçalho de sequência incluído em um fluxo de vídeo codificado compatível com ASF diferente associado ao mesmo título de conteúdo.
Uma vantagem da técnica revelada é que o dispositivo de reprodução de conteúdo pode comutar eficientemente de um fluxo de vídeo codificado associado a um título de conteúdo específico e tendo uma taxa de bits de reprodução específica para outro fluxo de vídeo codificado associado ao mesmo título de conteúdo e tendo taxa de bits de reprodução diferente mediante identificação do ponto de comutação apropriado no índice de cabeçalho de sequência associado ao novo fluxo de vídeo codificado. Como o dispositivo de reprodução de conteúdo não tem que procurar o quadro apropriado de dados de vídeo incluído no fluxo de vídeo codificado para reprodução, a incidência de interrupção de reprodução ao comutar entre fluxos de vídeo codificados é reduzida. Outra vantagem da técnica revelada é que os fluxos de vídeo codificados gerados pelo servidor de codificação são compatíveis com ASF e, portanto, podem ser baixados e processados para reprodução por intermédio de qualquer dispositivo de reprodução de conteúdo compatível com os padrões.
Embora o precedente seja dirigido às modalidades da presente invenção, outras e adicionais modalidades da presente invenção podem ser concebidas sem se afastar de seu escopo básico. Por exemplo, aspectos da presente invenção podem ser implementados em hardware ou software ou em uma combinação de hardware e software. Uma modalidade da presente invenção pode ser implementada como um produto de programa para uso com um sistema de computador. O programa(s) do produto de programa define funções das modalidades (incluindo os métodos aqui descritos) e pode ser contida em uma variedade de meios de armazenamento legíveis por computador. Meios de armazenamento legíveis por computador, ilustrativos incluem, mas não são limitados a: (i) meios de armazenamento não graváveis (por exemplo, dispositivos de memória de leitura dentro de um computador tais como discos CD-ROMs legíveis por uma unidade de CD- ROM, memória instantânea, chips ROM ou qualquer tipo de memória de semicondutor não volátil de estado sólido) nos quais informação é permanentemente armazenada; e (ii) meios de armazenamento graváveis (por exemplo, disquetes dentro de uma unidade de disquete ou unidade de disco rígido ou qualquer tipo de memória de semicondutor de acesso aleatório de estado sólido) nos quais informação que pode ser alterada é armazenada. Tais meios de armazenamento legíveis por computador, quando carregando instruções legíveis por computador que dirigem as funções da presente invenção, são modalidades da presente invenção.
Em virtude do precedente, o escopo da presente invenção é determinado pelas reivindicações a seguir.

Claims (19)

1. Método implementado por computador para codificar um fluxo de vídeo associado a um título de conteúdo para fluxo adaptativo de vídeo, o método caracterizado por compreender: aplicar um codec de vídeo ao fluxo de vídeo em uma taxa de bits de reprodução específica para gerar uma sequência de grupos de imagens (GOPs), em que cada GOP é associado a um intervalo de tempo de reprodução e a um deslocamento de reprodução diferente e inclui um quadro essencial e um ou mais quadros de dados de vídeo; aplicar um formato de sistema avançado à sequência de GOPs para gerar um ou mais pacotes de dados que incluem a sequência de GOPs; gerar um índice de cabeçalho de sequência para a sequência de GOPs que inclui um primeiro ponto de comutação correspondendo a um primeiro GOP na sequência de GOPs, em que o primeiro ponto de comutação especifica o deslocamento de reprodução associado com o primeiro GOP e um primeiro pacote de dados que inclui um primeiro quadro essencial incluído no primeiro GOP; e combinar o índice de cabeçalho de sequência com um ou mais pacotes de dados para gerar um fluxo de vídeo codificado, em que o índice de cabeçalho de sequência faz com que um dispositivo de reprodução de conteúdo atualmente reproduzindo o fluxo de vídeo codificado identifique o primeiro ponto de comutação como um ponto de comutação apropriado e solicite o primeiro pacote de dados especificado pelo primeiro ponto de comutação para reprodução.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro quadro essencial inclui um código de início de cabeçalho de sequência e um cabeçalho de sequência que armazena informação associada ao primeiro GOP.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a etapa de gerar o índice de cabeçalho de sequência compreende procurar no um ou mais pacotes de dados o código de início de cabeçalho de sequência incluído no primeiro quadro essencial para identificar o primeiro pacote de dados.
4. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda a etapa de encher o um ou mais pacotes de dados para alinhar cada quadro essencial incluído na sequência de GOPs com um pacote de dados diferente.
5. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda a etapa de criptografar o um ou mais pacotes de dados com base em uma técnica de criptografia de gerenciamento de direitos digitais (DRM) para gerar um ou mais pacotes de dados criptografados.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a técnica de criptografia DRM compreende uma técnica de criptografia DRM Windows Media.
7. Método, de acordo com a reivindicação 5, caracterizado por compreender ainda as etapas de: com base no deslocamento de reprodução especificado no primeiro ponto de comutação, determinar se um primeiro pacote de dados criptografado armazena o primeiro quadro essencial, em que o primeiro pacote de dados e o primeiro pacote de dados criptografados são pacotes de dados diferentes; e modificar o primeiro ponto de comutação incluído no índice de cabeçalho de sequência para especificar se o primeiro pacote de dados criptografados armazena o primeiro quadro essencial.
8. Método, de acordo com a reivindicação 7, caracterizado por compreender ainda a etapa de encher o um ou mais pacotes de dados criptografados para alinhar cada quadro essencial incluído na sequência de GOPs com um pacote de dados diferente.
9. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda as etapas de: aplicar o codec de vídeo a um segundo fluxo de vídeo em uma segunda taxa de bits de reprodução para gerar uma segunda sequência de grupos de imagens (GOPs), em que cada GOP é associado a um intervalo de tempo de reprodução e um deslocamento de reprodução diferente e inclui um quadro essencial e um ou mais quadros de dados de vídeo; aplicar o formato de sistema avançado à segunda sequência de GOPs para gerar um ou mais de outros pacotes de dados que incluem a segunda sequência de GOPs; gerar um segundo índice de cabeçalho de sequência para a segunda sequência de GOPs que inclui um segundo ponto de comutação correspondendo a um segundo GOP na segunda sequência de GOPs, em que o segundo ponto de comutação especifica o deslocamento de reprodução associado ao segundo GOP e um segundo pacote de dados incluído no um ou mais de outros pacotes de dados, e em que o segundo pacote de dados inclui um segundo quadro essencial incluído no segundo GOP; e combinar o segundo índice de cabeçalho de sequência com o um ou mais de outros pacotes de dados para gerar um segundo fluxo de vídeo codificado, em que o deslocamento de reprodução associado com o segundo GOP é igual ao deslocamento de reprodução associado ao primeiro GOP, e em que o segundo ponto de comutação corresponde ao primeiro ponto de comutação.
10. Meio não transitório legível por computador caracterizado por armazenar instruções que, quando executadas por um processador, fazem com que o processador codifique um fluxo de vídeo associado a um título de conteúdo para fluxo adaptativo de vídeo, realizando as etapas de: aplicar um codec de vídeo a um fluxo de vídeo em uma taxa de bits de reprodução específica para gerar uma sequência de grupo de imagens (GOPs), em que cada GOP é associado a um intervalo de tempo de reprodução e a um deslocamento de reprodução diferente e inclui um quadro essencial e um ou mais quadros de dados de vídeo; aplicar um formato de sistema avançado à sequência de GOPs para gerar um ou mais pacotes de dados que incluem a sequência de GOPs; gerar um índice de cabeçalho de sequência para a sequência de GOPs que inclui um primeiro ponto de comutação correspondendo a um primeiro GOP na sequência de GOPs, em que o primeiro ponto de comutação especifica o deslocamento de reprodução associado ao primeiro GOP e um primeiro pacote de dados que inclui um primeiro quadro essencial incluído no primeiro GOP; e combinar o índice de cabeçalho de sequência com um ou mais pacotes de dados para gerar um fluxo de vídeo codificado, em que o índice de cabeçalho de sequência faz com que um dispositivo de reprodução de conteúdo atualmente reproduzindo o fluxo de vídeo codificado identifique o primeiro ponto de comutação como um ponto de comutação apropriado e solicite o primeiro pacote de dados especificado pelo primeiro ponto de comutação para reprodução.
11. Meio legível por computador, de acordo com a reivindicação 10, caracterizado pelo fato de que o primeiro quadro essencial inclui um código de início de cabeçalho de sequência e um cabeçalho de sequência que armazena informação associada ao primeiro GOP.
12. Meio legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de que a etapa de gerar o índice de cabeçalho de sequência compreende procurar no um ou mais pacotes de dados o código de início de cabeçalho de sequência incluído no primeiro quadro essencial para identificar o primeiro pacote de dados.
13. Meio legível por computador, de acordo com a reivindicação 10, caracterizado por compreender ainda a etapa de encher o um ou mais pacotes de dados para alinhar cada quadro essencial incluído na sequência de GOPs com um pacote de dados diferente.
14. Meio legível por computador, de acordo com a reivindicação 10, caracterizado por compreender ainda a etapa de criptografar o um ou mais pacotes de dados com base em uma técnica de criptografia de gerenciamento de direitos digitais (DRM) para gerar um ou mais pacotes de dados criptografados.
15. Meio legível por computador, de acordo com a reivindicação 14, caracterizado pelo fato de que a técnica de criptografia DRM compreende uma técnica de criptografia DRM Windows Media.
16. Meio legível por computador, de acordo com a reivindicação 14, caracterizado por compreender ainda as etapas de: com base no deslocamento de reprodução especificado no primeiro ponto de comutação, determinar que um primeiro pacote de dados criptografados armazena o primeiro quadro essencial, em que o primeiro pacote de dados e o primeiro pacote de dados criptografados são pacotes de dados diferentes; e modificar o primeiro ponto de comutação incluído no índice de cabeçalho de sequência para especificar se o primeiro pacote de dados criptografado armazena o primeiro quadro essencial.
17. Meio legível por computador, de acordo com a reivindicação 16, caracterizado por compreender ainda a etapa de encher um ou mais pacotes de dados criptografados para alinhar cada quadro essencial incluído na sequência de GOPs com um pacote de dados diferente.
18. Meio legível por computador, de acordo com a reivindicação 10, caracterizado por compreender ainda as etapas de: aplicar o codec de vídeo a um segundo fluxo de vídeo em uma segunda taxa de bits de reprodução para gerar uma segunda sequência de grupos de imagens (GOPs), em que cada GOP é associado ao intervalo de tempo de reprodução e a um deslocamento de reprodução diferente e inclui um quadro essencial e um ou mais quadros de dados de vídeo; aplicar o formato de sistema avançado à segunda sequência de GOPs para gerar um ou mais de outros pacotes de dados que incluem a segunda sequência de GOPs; gerar um segundo índice de cabeçalho de sequência para a segunda sequência de GOPs que inclui um segundo ponto de comutação correspondendo a um segundo GOP na segunda sequência de GOPs, em que o segundo ponto de comutação especifica o deslocamento de reprodução associado ao segundo GOP e um segundo pacote de dados incluído em um ou mais de outros pacotes de dados, e em que o segundo pacote de dados inclui um segundo quadro essencial incluído no segundo GOP; e combinar o segundo índice de cabeçalho de sequência com um ou mais de outros pacotes de dados para gerar um segundo fluxo de vídeo codificado, em que o deslocamento de reprodução associado ao segundo GOP é igual ao deslocamento de reprodução associado ao primeiro GOP, e em que o segundo ponto de comutação corresponde ao primeiro ponto de comutação.
19. Sistema de computador, caracterizado por compreender: um processador; e uma memória armazenando instruções que quando executadas pelo processador são configuradas para: aplicar um codec de vídeo a um fluxo de vídeo em uma taxa de bits de reprodução específica para gerar uma sequência de grupos de imagens (GOPs), em que cada GOP é associado a um intervalo de tempo de reprodução e a um deslocamento de reprodução diferente e inclui um quadro essencial e um ou mais quadros de dados de vídeo, aplicar um formato de sistema avançado à sequência de GOPs para gerar um ou mais pacotes de dados que incluem a estrutura de GOPs, gerar um índice de cabeçalho de sequência para a sequência de GOPs que inclui um primeiro ponto de comutação correspondendo a um primeiro GOP na sequência de GOPs, em que o primeiro ponto de comutação especifica o deslocamento de reprodução associado ao primeiro GOP e um primeiro pacote de dados que inclui um primeiro quadro essencial incluído no primeiro GOP, e combinar o índice de cabeçalho de sequência com um ou mais pacotes de dados para gerar um fluxo de vídeo codificado, em que o índice de cabeçalho de sequência faz com que um dispositivo de reprodução de conteúdo atualmente reproduzindo o fluxo de vídeo codificado identifique o primeiro ponto de comutação como um ponto de comutação apropriado e solicite o primeiro pacote de dados especificado pelo primeiro ponto de comutação para reprodução.
BR112012003843-5A 2009-08-18 2010-08-17 Método implementado por computador para codificar um fluxo de vídeo, meio não transitório legível por computador e sistema de computador BR112012003843B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/543,328 US8355433B2 (en) 2009-08-18 2009-08-18 Encoding video streams for adaptive video streaming
US12/543,328 2009-08-18
PCT/US2010/045805 WO2011022432A1 (en) 2009-08-18 2010-08-17 Encoding video streams for adaptive video streaming

Publications (2)

Publication Number Publication Date
BR112012003843A2 BR112012003843A2 (pt) 2016-03-22
BR112012003843B1 true BR112012003843B1 (pt) 2021-07-27

Family

ID=43607311

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012003843-5A BR112012003843B1 (pt) 2009-08-18 2010-08-17 Método implementado por computador para codificar um fluxo de vídeo, meio não transitório legível por computador e sistema de computador

Country Status (10)

Country Link
US (1) US8355433B2 (pt)
EP (1) EP2467956B1 (pt)
JP (1) JP5499314B2 (pt)
BR (1) BR112012003843B1 (pt)
CA (1) CA2771187C (pt)
CL (1) CL2012000416A1 (pt)
CO (1) CO6612207A2 (pt)
IN (1) IN2012DN02232A (pt)
MX (1) MX2012002087A (pt)
WO (1) WO2011022432A1 (pt)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive 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
EP2357732B1 (en) 2002-10-05 2022-04-06 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
KR101170629B1 (ko) 2003-10-06 2012-08-02 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러 정정 다중-스테이지 코드 생성기 및 디코더
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
EP1743431A4 (en) 2004-05-07 2007-05-02 Digital Fountain Inc SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES
US7721184B2 (en) * 2004-08-11 2010-05-18 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
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
EP1999883A4 (en) 2006-03-14 2013-03-06 Divx Llc FEDERATED DIGITAL RIGHTS MANAGEMENT SYSTEM COMPRISING CONFIDENCE SYSTEMS
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
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
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
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
AU2008298602A1 (en) 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8268107B2 (en) 2007-09-21 2012-09-18 The Boeing Company Fly away caul plate
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US9407942B2 (en) 2008-10-03 2016-08-02 Finitiv Corporation System and method for indexing and annotation of video content
KR101635876B1 (ko) 2009-01-07 2016-07-04 쏘닉 아이피, 아이엔씨. 온라인 콘텐츠를 위한 미디어 가이드의 단일, 공동 및 자동 생성
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
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
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
US9237178B2 (en) * 2010-02-03 2016-01-12 Futurewei Technologies, Inc. Combined binary string for signaling byte range of media fragments in adaptive streaming
KR101624013B1 (ko) 2010-02-19 2016-05-24 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
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
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US8910212B2 (en) * 2010-09-29 2014-12-09 Verizon Patent And Licensing Inc. Multiple device storefront for video provisioning system
WO2012089766A1 (fr) * 2010-12-30 2012-07-05 Thomson Licensing Procede de traitement d'un contenu video permettant l'adaptation a plusieurs types de dispositifs d'affichage
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9363522B2 (en) 2011-04-28 2016-06-07 Warner Bros. Entertainment, Inc. Region-of-interest encoding enhancements for variable-bitrate mezzanine compression
KR101840008B1 (ko) * 2011-06-24 2018-05-04 에스케이플래닛 주식회사 고화질 비디오 스트리밍 서비스 방법 및 시스템
US8948249B2 (en) * 2011-08-19 2015-02-03 Google Technology Holdings LLC Encoder-aided segmentation for adaptive streaming
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
KR101928910B1 (ko) 2011-08-30 2018-12-14 쏘닉 아이피, 아이엔씨. 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US9253233B2 (en) * 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8935425B2 (en) * 2011-10-05 2015-01-13 Qualcomm Incorporated Switching between representations during network streaming of coded multimedia data
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US8918908B2 (en) 2012-01-06 2014-12-23 Sonic Ip, Inc. Systems and methods for accessing digital content using electronic tickets and ticket tokens
US9166864B1 (en) * 2012-01-18 2015-10-20 Google Inc. Adaptive streaming for legacy media frameworks
EP2820815A1 (en) * 2012-02-27 2015-01-07 Telefonaktiebolaget LM Ericsson (Publ) An improved method and apparatus for video content distribution
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US8826429B2 (en) 2012-04-02 2014-09-02 The Boeing Company Information security management
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9354799B2 (en) 2012-06-13 2016-05-31 Sonic Ip, Inc. Systems and methods for adaptive streaming systems with interactive video timelines
CN103516731B (zh) * 2012-06-15 2017-04-19 华为技术有限公司 一种缓存服务器的服务方法、缓存服务器及系统
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
WO2014015110A1 (en) 2012-07-18 2014-01-23 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US9727321B2 (en) * 2012-10-11 2017-08-08 Netflix, Inc. System and method for managing playback of streaming digital content
US10708335B2 (en) * 2012-11-16 2020-07-07 Time Warner Cable Enterprises Llc Situation-dependent dynamic bit rate encoding and distribution of content
US9813325B2 (en) 2012-12-27 2017-11-07 Comcast Cable Communications, Llc Information stream management
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
KR101693584B1 (ko) * 2013-01-18 2017-01-06 후아웨이 테크놀러지 컴퍼니 리미티드 미디어 콘텐츠에 대해 적응 스트리밍을 수행하는 방법 및 장치
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9350990B2 (en) 2013-02-28 2016-05-24 Sonic Ip, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
CN105075281B (zh) * 2013-06-05 2019-01-01 太阳专利托管公司 数据解码方法、数据解码装置及数据发送方法
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
CN105325009B (zh) * 2013-07-23 2019-04-16 英特尔公司 用于流式传输视频质量分析的改进技术
ITMI20131710A1 (it) * 2013-10-15 2015-04-16 Sky Italia S R L "sistema di cloud encoding"
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US20150189365A1 (en) * 2013-12-26 2015-07-02 Thomson Licensing Method and apparatus for generating a recording index
CN104869103B (zh) * 2014-02-24 2018-05-18 华为终端(东莞)有限公司 查找多媒体文件的方法、终端设备和服务器
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10804958B2 (en) * 2015-02-24 2020-10-13 Comcast Cable Communications, Llc Multi-bitrate video with dynamic blocks
US10499070B2 (en) * 2015-09-11 2019-12-03 Facebook, Inc. Key frame placement for distributed video encoding
US9426543B1 (en) * 2015-12-18 2016-08-23 Vuclip (Singapore) Pte. Ltd. Server-based video stitching
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10873775B2 (en) * 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding
CN109788372B (zh) * 2019-01-24 2021-06-08 维沃移动通信有限公司 一种流媒体的播放方法及相关装置
US11509949B2 (en) * 2019-09-13 2022-11-22 Disney Enterprises, Inc. Packager for segmenter fluidity
US11128688B2 (en) * 2019-10-16 2021-09-21 Disney Enterprises, Inc. Transcoder conditioning for segment fluidity
CN115119009B (zh) * 2022-06-29 2023-09-01 北京奇艺世纪科技有限公司 视频对齐方法、视频编码方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
JP3060919B2 (ja) * 1995-11-16 2000-07-10 松下電器産業株式会社 圧縮動画像復号・表示装置および圧縮動画像簡易編集装置
US6453114B2 (en) * 1997-02-18 2002-09-17 Thomson Licensing Sa Random picture decoding
US7302490B1 (en) * 2000-05-03 2007-11-27 Microsoft Corporation Media file format to support switching between multiple timeline-altered media streams
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US7263129B2 (en) * 2002-08-29 2007-08-28 Sony Corporation Predictive encoding and data decoding control
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7519274B2 (en) * 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US7706384B2 (en) * 2007-04-20 2010-04-27 Sharp Laboratories Of America, Inc. Packet scheduling with quality-aware frame dropping for video streaming
US8561116B2 (en) * 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US8543720B2 (en) * 2007-12-05 2013-09-24 Google Inc. Dynamic bit rate scaling

Also Published As

Publication number Publication date
MX2012002087A (es) 2012-06-12
CO6612207A2 (es) 2013-02-01
IN2012DN02232A (pt) 2015-08-21
CL2012000416A1 (es) 2012-08-24
BR112012003843A2 (pt) 2016-03-22
CA2771187C (en) 2017-02-28
EP2467956A1 (en) 2012-06-27
EP2467956A4 (en) 2013-02-13
WO2011022432A1 (en) 2011-02-24
JP5499314B2 (ja) 2014-05-21
US8355433B2 (en) 2013-01-15
CA2771187A1 (en) 2011-02-24
JP2013502836A (ja) 2013-01-24
US20110268178A1 (en) 2011-11-03
EP2467956B1 (en) 2015-09-30

Similar Documents

Publication Publication Date Title
BR112012003843B1 (pt) Método implementado por computador para codificar um fluxo de vídeo, meio não transitório legível por computador e sistema de computador
US9646141B2 (en) Fast start of streaming digital media playback with deferred license retrieval
US10033787B2 (en) Dynamic virtual chunking of streaming media content
WO2018076952A1 (zh) 一种视频文件的存储、定位播放方法及装置
BRPI0923917B1 (pt) Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real
JP2003229843A (ja) ストリーミングシステム及びストリーミング方法、クライアント端末及びコンテンツデータ復号方法、ストリームサーバ及びストリーム配信方法、オーサリング装置及びオーサリング方法、並びにプログラム及び記録媒体
JP2014135749A (ja) サーバにおけるファイル伝送方法及びその装置並びに端末におけるファイル再生方法及びその装置
US20120011596A1 (en) System and method of protecting digital media contents
BR112014007669B1 (pt) método e dispositivo para transmissão de mídia de transmissão contínua
US11968246B2 (en) Playback mode determining method and apparatus
BR112015031926B1 (pt) Dispositivo, método e sistema para suprimento de conteúdo, unidade de armazenamento, e, dispositivo de terminal
KR20200016368A (ko) 스태거형 키 프레임 비디오 인코딩
US20180302674A1 (en) File generating method and file generating apparatus
US9226034B1 (en) Apparatus and methods for generating clips using recipes with slice definitions
US10284529B2 (en) Information processing apparatus and information processing method
EP3092780A1 (en) Signaling and handling of forensic marking for adaptive streaming
US20130124699A1 (en) Apparatus and method for transceiving a streaming service
EP3171606B1 (en) Information processing device and information processing method
TW200534719A (en) Method and circuit for encrypting a data stream
CN114124941B (zh) m3u8格式文件下载方法、播放方法及m3u8格式文件下载系统
Alnesjö Chunked DASH in JavaScript

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: H04J 1/16

Ipc: H04N 21/2343 (2011.01), H04N 21/236 (2011.01), H04

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 17/08/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.