Relatório Descritivo da Patente de Invenção para ARQUIVO DE MULTIMÍDIA, SISTEMA PARA CODIFICAR OS ARQUIVOS DE MULTIMÍDIA, SISTEMA PARA DECODIFICAR OS ARQUIVOS DE MULTIMÍDIA, E SISTEMA PARA COMUNICAR AS INFORMAÇÕES DE MULTIMÍDIA.
Antecedentes da Invenção [001] A presente invenção refere-se geralmente à codificação, transmissão e decodificação de arquivos de multimídia. Mais especificamente, a invenção refere-se à codificação, transmissão e decodificação de arquivos de multimídia que incluem trilhas em adição a uma única trilha de áudio e uma única trilha de vídeo.
[002] O desenvolvimento da Internet induziu o desenvolvimento de formatos de arquivo para as informações de multimídia para permitir uma geração, distribuição e exibição padronizada dos arquivos. Tipicamente, um único arquivo de multimídia inclui uma única trilha de vídeo e uma única trilha de áudio. Quando a multimídia é escrita em uma mídia de alto volume e fisicamente transportável, tal como um Disco de Vídeo Digital (DVD) múltiplos arquivos podem ser utilizados para prover um número de trilhas de vídeo, trilhas de áudio e trilhas de legenda. Arquivos adicionais podem ser providos contendo as informações que podem ser utilizadas para gerar um menu interativo. Sumário da Invenção [003] As modalidades da presente invenção incluem arquivos de multimídia e sistemas para gerar, distribuir e decodificar os arquivos de multimídia. Em um aspecto da invenção, os arquivos de multimídia incluem uma pluralidade de trilhas de vídeo codificadas. Em outro aspecto da invenção, os arquivos de multimídia incluem uma pluralidade de trilhas de áudio codificadas. Em outro aspecto da invenção, os arquivos de multimídia incluem pelo menos uma trilha de legenda. Em outro aspecto da invenção, os arquivos de multimídia incluem 'metaPetição 870180023875, de 23/03/2018, pág. 6/160
2/112 dados' codificados. Em outro aspecto da invenção, os arquivos de multimídia incluem informações de menu codificadas.
[004] Um arquivo de multimídia de acordo com uma modalidade da invenção inclui uma pluralidade de trilhas de vídeo codificadas. Em modalidades adicionais da invenção, o arquivo de multimídia compreende uma pluralidade de blocos de 'RIFF' concatenados e cada trilha de vídeo codificada está contida em um bloco de 'RIFF' separado. Além disso, o vídeo é codificado utilizando melhoramentos psicovisuais e cada trilha de vídeo tem pelo menos uma trilha de áudio associada com a mesma.
[005] Em outra modalidade, cada trilha de vídeo é codificada como uma série de blocos de 'vídeo' dentro de um bloco de 'RIFF' e a trilha de áudio que acompanha cada trilha de vídeo é codificada como uma série de blocos de 'áudio' intercalados dentro do bloco de 'RIFF' que contém os blocos de 'vídeo' da trilha de vídeo associada. Mais ainda, cada bloco de 'vídeo' pode conter as informações que podem ser utilizadas para gerar um único quadro de vídeo de uma trilha de vídeo e cada bloco de 'áudio' contém as informações de áudio da porção da trilha de áudio que acompanha o quadro gerado utilizando um bloco de 'vídeo'. Além disso, o bloco de 'áudio' pode ser intercalado antes do bloco de 'vídeo' correspondente dentro do bloco de 'RIFF'.
[006] Um sistema para codificar os arquivos de multimídia de acordo com uma modalidade da presente invenção inclui um processador configurado para codificar uma pluralidade de trilhas de vídeo, concatenar as trilhas de vídeo codificadas e escrever as trilhas de vídeo codificadas concatenadas em um único arquivo. Em outra modalidade, o processador está configurado para codificar as trilhas de vídeo de modo que cada trilha de vídeo fique contida dentro de um bloco de 'RIFF' separado e o processador está configurado para codificar o vídeo utilizando melhoramentos psicovisuais. Além disso cada trilha de
Petição 870180023875, de 23/03/2018, pág. 7/160
3/112 vídeo pode ter pelo menos uma trilha de áudio associada com a mesma.
[007] Em outra modalidade, o processador está configurado para codificar cada trilha de vídeo como uma série de blocos de 'vídeo' dentro de um bloco de 'RIFF' e codificar a pelo menos uma trilha de áudio que acompanha cada trilha de vídeo como uma série de blocos de 'áudio' intercalados dentro do bloco de 'RIFF' que contém os blocos de 'vídeo' da trilha de vídeo associada.
[008] Em outra modalidade adicional, o processador está configurado para codificar as trilhas de vídeo de modo que cada bloco de 'vídeo' contenha as informações que podem ser utilizadas para gerar um único quadro de vídeo de uma trilha de vídeo e codificar as trilhas de áudio associadas com uma trilha de vídeo de modo que cada bloco de 'áudio' contenha as informações de áudio da porção da trilha de áudio que acompanha o quadro gerado utilizando um bloco de 'vídeo' gerado da trilha de vídeo. Além disso, o processador pode estar configurado para intercalar cada bloco de 'áudio' antes do bloco de 'vídeo' correspondente dentro do bloco de 'RIFF'.
[009] Um sistema para decodificar um arquivo de multimídia que contém uma pluralidade de trilhas de vídeo codificadas de acordo com uma modalidade da presente invenção inclui um processador configurado para extrair as informações do arquivo de multimídia. O processador está configurado para extrair as informações referentes ao número de trilhas de vídeo codificadas contidas no arquivo de multimídia. [0010] Em uma modalidade adicional, o processador está configurado para localizar uma trilha de vídeo codificada dentro de um bloco de 'RIFF'. Além disso, uma primeira trilha de vídeo codificada pode estar contida em um primeiro bloco de 'RIFF' que tem um código 4cc padrão, uma segunda trilha de vídeo pode estar contida em um segundo bloco de 'RIFF' que tem um código 4cc especializado e o código 4cc
Petição 870180023875, de 23/03/2018, pág. 8/160
4/112 especializado pode ter como os seus últimos dois caracteres os primeiros dois caracteres de um código 4cc padrão.
[0011] Em uma modalidade adicional, cada trilha de vídeo codificada está contida em um bloco de 'RIFF' separado.
[0012] Em outra modalidade adicional, a trilha de vídeo decodificada é similar à trilha de vídeo original que foi codificada na criação do arquivo de multimídia e pelo menos algumas das diferenças entre a trilha de vídeo decodificada e a trilha de vídeo original estão localizadas em porções escuras de quadros da trilha de vídeo. Mais ainda, algumas das diferenças entre a trilha de vídeo decodificada e a trilha de vídeo original podem estar localizadas em cenas de alto movimento da trilha de vídeo.
[0013] Em uma modalidade adicional novamente, cada trilha de vídeo tem pelo menos uma trilha de áudio associada com a mesma.
[0014] Em uma modalidade adicional, o processador está configurado para exibir um vídeo de uma trilha de vídeo pela decodificação de uma série de blocos de 'vídeo' dentro de um bloco de 'RIFF' e gerar um áudio de uma trilha de áudio que acompanha a trilha de vídeo pela decodificação de uma série de blocos de 'áudio' intercalados dentro do bloco de 'RIFF' que contém os blocos de 'vídeo' da trilha de vídeo associada.
[0015] Em ainda outra modalidade adicional, o processador está configurado para utilizar as informações extraídas de cada bloco de 'vídeo' para gerar um único quadro da trilha de vídeo e utilizar as informações extraídas de cada bloco de 'áudio' para gerar a porção da trilha de áudio que acompanha o quadro gerado utilizando um bloco de 'vídeo'. Além disso, o processador pode estar configurado para localizar o bloco de 'áudio' antes do bloco de 'vídeo' com o qual está associado no bloco de 'RIFF'.
[0016] Um arquivo de multimídia de acordo com uma modalidade
Petição 870180023875, de 23/03/2018, pág. 9/160
5/112 da presente invenção inclui uma série de quadros de vídeo codificados e um áudio codificado intercalado entre os quadros de vídeo codificados. O áudio codificado inclui duas ou mais trilhas de informações de áudio.
[0017] Em uma modalidade adicional pelo menos uma das trilhas de informações de áudio inclui uma pluralidade de canais de áudio.
[0018] Outra modalidade ainda inclui as informações de cabeçalho que identificam o número de trilhas de áudio contidas no arquivo de multimídia e as informações de descrição sobre pelo menos uma das trilhas de informações de áudio.
[0019] Em uma modalidade adicional novamente, cada quadro de vídeo codificado é precedido por informações de áudio codificadas e as informações de áudio codificadas que precedem o quadro de vídeo incluem as informações de áudio para a porção de cada trilha de áudio que acompanha o quadro de vídeo codificado.
[0020] Em outra modalidade novamente, as informações de vídeo estão armazenadas como blocos dentro do arquivo de multimídia. Além disso, cada bloco de informações de vídeo pode incluir um único quadro de vídeo. Mais ainda, as informações de áudio podem estar armazenadas como blocos dentro do arquivo de multimídia e as informações de áudio de duas trilhas de áudio separadas não estão contidas dentro de um único de bloco de informações de áudio.
[0021] Em ainda uma modalidade adicional, os blocos de 'vídeo' estão separados por pelo menos um bloco de 'áudio' de cada uma das trilhas de áudio e os blocos de 'áudio' que separam os blocos de 'vídeo' contém as informações de áudio para as porções das trilhas de áudio que acompanham as informações de vídeo contidas dentro do bloco de 'vídeo' seguinte ao bloco de 'áudio'.
[0022] Um sistema para codificar os arquivos de multimídia de acordo com uma modalidade da invenção inclui um processador confi
Petição 870180023875, de 23/03/2018, pág. 10/160
6/112 gurado para codificar uma trilha de vídeo, codificar uma pluralidade de trilhas de áudio, intercalar as informações da trilha de vídeo com as informações da pluralidade de trilhas de áudio e escrever as informações de vídeo e de áudio intercaladas em um único arquivo.
[0023] Em uma modalidade adicional, pelo menos uma das trilhas de áudio inclui uma pluralidade canais de áudio.
[0024] Em outra modalidade, o processador está ainda configurado para codificar as informações de cabeçalho que identificam o número das trilhas de áudio codificadas e escrever as informações de cabeçalho no arquivo único.
[0025] Em uma modalidade adicional novamente, o processador está ainda configurado para codificar as informações de cabeçalho que identificam as informações de descrição sobre pelo menos uma das trilhas de áudio codificadas e escrever as informações de cabeçalho no arquivo único.
[0026] Em outra modalidade novamente, o processador codifica a trilha de vídeo como blocos de informações de vídeo. Além disso o processador pode codificar cada trilha de áudio como uma série de blocos de informações de áudio. Mais ainda, cada bloco de informações de áudio pode conter as informações de áudio de uma única trilha de áudio e o processador pode estar configurado para intercalar os blocos de informações de áudio entre os blocos de informações de vídeo.
[0027] Em ainda uma modalidade adicional, o processador está configurado para codificar a porção de cada trilha de áudio que acompanha as informações de vídeo em um bloco de 'vídeo' em um bloco de 'áudio' e o processador está configurado para intercalar os blocos de 'vídeo' com os blocos de 'áudio' de modo que cada bloco de 'vídeo' é precedido por blocos de 'áudio' que contém as informações de áudio de cada uma das trilhas de áudio que acompanha as informações de
Petição 870180023875, de 23/03/2018, pág. 11/160
7/112 vídeo contidas no bloco de 'vídeo'. Além disso, o processador pode estar configurado para codificar a trilha de vídeo de modo que um único quadro de vídeo fique contido dentro de cada bloco de 'vídeo'.
[0028] Em ainda outra modalidade novamente, o processador é um processador de uso geral.
[0029] Em ainda uma modalidade adicional, o processador é um circuito dedicado.
[0030] Um sistema para decodificar um arquivo de multimídia que contém uma pluralidade de trilhas de áudio de acordo com a presente invenção incluir um processador configurado para extrair as informações do arquivo de multimídia. O processador está configurado para extrair as informações referentes ao número de trilhas de áudio contidas no arquivo de multimídia.
[0031] Em uma modalidade adicional, o processador está configurado para selecionar uma única trilha de áudio da pluralidade de trilhas de áudio e o processador está configurado para decodificar as informações de áudio da trilha de áudio selecionada.
[0032] Em outra modalidade, pelo menos uma das trilhas de áudio inclui uma pluralidade de canais de áudio.
[0033] Em ainda outra modalidade, o processador está configurado para extrair as informações de um cabeçalho no arquivo de multimídia que incluem as informações de descrição sobre pelo menos uma das trilhas de áudio.
[0034] Um sistema para comunicar as informações de multimídia de acordo com uma modalidade da invenção inclui uma rede, um dispositivo de armazenamento que contém um arquivo de multimídia e conectado na rede através de um servidor e um cliente conectado na rede. O cliente pode solicitar a transferência do arquivo de multimídia do servidor e o arquivo de multimídia inclui pelo menos uma trilha de vídeo e uma pluralidade de trilhas de áudio que acompanham a trilha
Petição 870180023875, de 23/03/2018, pág. 12/160
8/112 de vídeo.
[0035] Um arquivo de multimídia de acordo com a presente invenção inclui uma série de quadro de vídeos codificados e pelo menos uma trilha de legenda codificada intercalada entre os quadros de vídeo codificados.
[0036] Em uma modalidade adicional, a pelo menos uma trilha de legenda codificada compreende uma pluralidade de trilhas de legenda codificadas.
[0037] Outra modalidade ainda inclui as informações de cabeçalho que identificam o número de trilhas de legenda codificadas contidas no arquivo de multimídia.
[0038] Uma modalidade adicional também inclui as informações de cabeçalho que incluem as informações de descrição sobre pelo menos uma das trilhas de legenda codificadas.
[0039] Em ainda outra modalidade, cada trilha de legenda inclui uma série de mapas de bits e cada trilha de legenda pode incluir uma série de mapas de bits comprimidos. Além disso, cada mapa de bits é comprimido utilizando codificação de extensão de execução.
[0040] Em ainda uma modalidade adicional, a série de quadros de vídeo codificados são codificados como uma série de blocos de vídeo e cada trilha de legenda codificada é codificada como uma série de blocos de legenda. Cada bloco de legenda inclui as informações capazes de serem representadas como texto em um display. Além disso, cada bloco de legenda pode conter as informações referentes a uma única legenda. Mais ainda, cada bloco de legenda pode incluir as informações referentes à porção da seqüência de vídeo sobre a qual a legenda deve ser sobreposta.
[0041] Em ainda outra modalidade, cada bloco de legenda inclui as informações referentes à porção de um display no qual a legenda deve ser localizada.
Petição 870180023875, de 23/03/2018, pág. 13/160
9/112 [0042] Em uma modalidade adicional novamente, cada bloco de legenda inclui as informações referentes à cor da legenda e as informações referentes à cor podem incluir uma paleta de cores. Além disso, os blocos de legenda podem compreender um primeiro bloco de legenda que inclui as informações referentes a uma primeira paleta de cores e um segundo bloco de legenda que inclui as informações referentes a uma segunda paleta de cores que substitui as informações referentes à primeira paleta de cores.
[0043] Um sistema para codificar os arquivos de multimídia de acordo com uma modalidade da invenção pode incluir um processador configurado para codificar uma trilha de vídeo, codificar pelo menos uma trilha de legenda, intercalar as informações da trilha de vídeo com as informações da pelo menos uma trilha de legenda e escrever as informações de vídeo e de legenda intercaladas em um único arquivo.
[0044] Em uma modalidade adicional, a pelo menos uma trilha de legenda inclui uma pluralidade de trilhas de legenda.
[0045] Em outra modalidade, o processador está ainda configurado para codificar e escrever no único arquivo, as informações de cabeçalho que identificam o número de trilhas de legenda contidas no arquivo de multimídia.
[0046] Em uma modalidade adicional novamente, o processador está ainda configurado para codificar e escrever no único arquivo, as informações de descrição sobre pelo menos uma das trilhas de legenda.
[0047] Em outra modalidade adicional, a trilha de vídeo está codificada como blocos de vídeo e cada uma da pelo menos uma trilha de legenda está codificada como blocos de legenda. Além disso, cada um dos blocos de legenda que contém uma única legenda que acompanha uma porção da trilha de vídeo e o intercalador pode estar configurado para intercalar cada bloco de legenda antes dos blocos de vídeo
Petição 870180023875, de 23/03/2018, pág. 14/160
10/112 que contém a porção da trilha de vídeo que a legenda dentro do bloco de legenda acompanha.
[0048] Em ainda uma modalidade adicional, o processador está configurado para gerar um bloco de legenda pela codificação da legenda como uma mapa de bits.
[0049] Em ainda outra modalidade, a legenda está codificada como um mapa de bits comprimido. Além disso, o mapa de bits pode ser comprimido utilizando codificação de extensão de execução. Mais ainda, o processador pode incluir em cada bloco de legenda as informações referentes à porção da seqüência de vídeo sobre a qual a legenda deve ser sobreposta.
[0050] Em ainda uma modalidade adicional, o processador inclui em cada bloco de legenda as informações referentes à porção de um display no qual a legenda deve estar localizada.
[0051] Em ainda outra modalidade, o processador inclui em cada bloco de legenda as informações referentes à cor da legenda.
[0052] Em ainda uma modalidade adicional novamente, as informações referentes à cor incluem uma paleta de cores. Além disso, os blocos de legenda podem incluir um primeiro bloco de legenda que inclui as informações referentes a uma primeira paleta de cores e um segundo bloco de legenda que inclui as informações referentes a uma segunda paleta de cores que substitui as informações referentes à primeira paleta de cores.
[0053] Um sistema para decodificar os arquivos de multimídia de acordo com uma modalidade da presente invenção inclui um processador configurado para extrair as informações do arquivo de multimídia. O processador está configurado para inspecionar o arquivo de multimídia para determinar se existe pelo menos uma trilha de legenda. Além disso, a pelo menos uma trilha de legenda pode compreender uma pluralidade de trilhas de legenda e o processador pode estar
Petição 870180023875, de 23/03/2018, pág. 15/160
11/112 configurado para determinar o número de trilhas de legenda no arquivo de multimídia.
[0054] Em uma modalidade adicional, o processador está ainda configurado para extrair as informações de cabeçalho que identificam o número de trilhas de legenda do arquivo de multimídia.
[0055] Em ainda outra modalidade, o processador está ainda configurado para extrair as informações de descrição sobre pelo menos uma das trilhas de legenda do arquivo de multimídia.
[0056] Em uma modalidade adicional novamente, o arquivo de multimídia inclui pelo menos uma trilha de vídeo codificada como blocos de vídeo e o arquivo de multimídia inclui pelo menos uma trilha de legenda codificada como blocos de legenda.
[0057] Em outra modalidade novamente, cada bloco de legenda inclui as informações referentes a uma única legenda.
[0058] Em ainda uma modalidade adicional, cada legenda está codificada nos blocos de legenda como um mapa de bits, o processador está configurado para decodificar a trilha de vídeo e o processador está configurado para construir um quadro de vídeo para exibição por sobreposição do mapa de bits sobre uma porção da seqüência de vídeo. Além disso a legenda pode estar codificada como uma mapa de bits comprimido e o processador está configurado para descomprimir o mapa de bits. Mais ainda, o processador pode estar configurado para descomprimir um mapa de bits codificado de extensão de execução.
[0059] Em ainda outra modalidade, cada bloco de legenda inclui as informações referentes à porção da trilha de vídeo sobre a qual a legenda deve ser sobreposta e o processador está configurado para gerar uma seqüência de quadros de vídeo para exibição pela sobreposição do mapa de bits da legenda sobre cada quadro de vídeo indicado pelas informações no bloco de legenda.
[0060] Em ainda uma modalidade adicional, cada bloco de legen
Petição 870180023875, de 23/03/2018, pág. 16/160
12/112 da inclui as informações referentes à posição dentro de um quadro no qual a legenda deve estar localizada e o processador está configurado para sobrepor a legenda na posição dentro de cada quadro de vídeo indicado pelas informações dentro do bloco de legenda.
[0061] Em outra modalidade adicional, cada bloco de legenda inclui as informações referentes à cor da legenda e o processador está configurado para sobrepor a legenda na cor ou cores indicadas pelas informações de cor dentro do bloco de legenda. Além disso, as informações de cor dentro de um bloco de legenda podem incluir uma paleta de cores e o processador está configurado para sobrepor a legenda utilizando a paleta de cores para obter as informações de cor utilizadas no mapa de bits da legenda. Mais ainda, os blocos de legenda podem compreender um primeiro bloco de legenda que inclui as informações referentes a uma primeira paleta de cores e um segundo bloco de legenda que inclui as informações referentes a uma segunda paleta de cores e o processador pode estar configurado para sobrepor a legenda utilizando a primeira paleta de cores para obter as informações referentes às cores utilizadas no mapa de bits da legenda após o primeiro bloco ser processado e o processador pode estar configurado para sobrepor a legenda utilizando a segunda paleta de cores para obter as informações referentes às cores utilizadas no mapa de bits da legenda após o segundo bloco ser processado.
[0062] Um sistema para comunicar as informações de multimídia de acordo com uma modalidade da invenção inclui uma rede, um dispositivo de armazenamento que contém um arquivo de multimídia e conectado na rede através de um servidor e um cliente conectado na rede. O cliente solicita a transferência do arquivo de multimídia do servidor e o arquivo de multimídia inclui pelo menos uma trilha de vídeo e pelo menos uma trilha de legenda que acompanha a trilha de vídeo.
[0063] Um arquivo de multimídia de acordo com uma modalidade
Petição 870180023875, de 23/03/2018, pág. 17/160
13/112 da invenção inclui uma série de quadros de vídeo codificados e informações de menu codificadas. Além disso, as informações de menu codificadas podem ser armazenadas como um bloco.
[0064] Uma modalidade adicional também inclui pelo menos dois blocos de 'menu' separados de informações de menu e pelo menos dois blocos de 'menu' separados podem estar contidos em pelo menos dois blocos de 'RIFF' separados.
[0065] Em outra modalidade, o primeiro bloco de 'RIFF' que contém um bloco de 'menu' inclui um código 4cc padrão e o segundo bloco de 'RIFF' que contém um bloco de 'menu' inclui um código 4cc especializado onde os primeiros dois caracteres de um código 4cc padrão aparecem como os últimos dois caracteres do código 4cc especializado.
[0066] Em uma modalidade adicional novamente, pelo menos dois blocos de 'menu' separados estão contidos em um único bloco de 'RlFF'.
[0067] Em outra modalidade novamente, o bloco de 'menu' inclui blocos que descrevem uma série de menus e um bloco de 'MRIF' que contém uma mídia associada com a série de menus. Além disso, o bloco de 'MRIF' pode conter as informações de mídia que incluem as trilhas de vídeo, as trilhas de áudio e as trilhas de sobreposição.
[0068] Em ainda uma modalidade adicional, os blocos que descrevem uma série de menus pode incluir um bloco que descreve o sistema de menu total, pelo menos um bloco que agrupa os menus por linguagem, pelo menos um bloco que descreve um display de menu individual e um áudio de fundo acompanhante, e pelo menos um bloco que descreve um botão em um menu, pelo menos um bloco que descreve a localização do botão sobre a tela e pelo menos um bloco que descreve várias ações associadas com um botão.
[0069] Ainda outra modalidade também inclui uma conexão para
Petição 870180023875, de 23/03/2018, pág. 18/160
14/112 um segundo arquivo. As informações de menu codificadas estão contidas no segundo arquivo.
[0070] Um sistema para codificar os arquivos de multimídia de acordo com uma modalidade da invenção inclui um processador configurado para codificar as informações de menu. O processador está também configurado para gerar um arquivo de multimídia que inclui uma trilha de vídeo codificada e as informações de menu codificadas. Além disso, o processador pode esta configurado para gerar um modelo de objeto dos menus, converter o modelo de objeto em um arquivo de configuração, analisar o arquivo de configuração em blocos, gerar arquivos AVI que contém as informações de mídia, intercalar a mídia nos arquivos AVI em um bloco de 'MRIF' e concatenar os blocos analisados com o bloco de 'MRIF' para criar um bloco de 'menu'. Mais ainda, o processador pode estar ainda configurado para utilizar o modelo de objeto para gerar um segundo bloco de 'menu' menor.
[0071] Em uma modalidade adicional, o processador está configurado para codificar um segundo menu e o processador pode inserir o primeiro menu codificado em um primeiro bloco de 'RIFF' e inserir o segundo menu codificado em um segundo bloco de 'RIFF'.
[0072] Em outra modalidade, o processador inclui o primeiro e o segundo menus codificados em um único bloco de 'RIFF'.
[0073] Em uma modalidade adicional novamente, o processador está configurado para inserir no arquivo de multimídia uma referência a um menu codificado em um segundo arquivo.
[0074] Um sistema para decodificar os arquivos de multimídia de acordo com a presente invenção, inclui um processador configurado para extrair as informações do arquivo de multimídia. O processador está configurado para inspecionar o arquivo de multimídia para determinar se este contém as informações de menu codificadas. Além disso, o processador pode estar configurado para extrair as informações
Petição 870180023875, de 23/03/2018, pág. 19/160
15/112 de menu de um bloco de 'menu' dentro de um bloco de 'RIFF' e o processador pode estar configurado para construir displays de menu utilizando as informações de vídeo armazenadas no bloco de 'menu'.
[0075] Em uma modalidade adicional, o processador está configurado para gerar um áudio de fundo que acompanha um display de menu utilizando as informações de áudio armazenadas no bloco de 'menu'.
[0076] Em outra modalidade, o processador está configurado para gerar um display de menu sobrepondo uma sobreposição do bloco de 'menu' sobre as informações de vídeo do bloco de 'menu'.
[0077] Um sistema para comunicar as informações de multimídia de acordo com a presente invenção inclui uma rede, um dispositivo de armazenamento que contém um arquivo de multimídia e conectado na rede através de um servidor e um cliente conectado na rede. O cliente pode solicitar a transferência do arquivo de multimídia do servidor e o arquivo de multimídia inclui as informações de menu codificadas.
[0078] Um arquivo de multimídia que inclui uma série de quadros de vídeo codificados e metadados codificados sobre o arquivo de multimídia. Os metadados codificados incluem pelo menos uma sentença que compreende um sujeito, um predicado, um objeto e uma autoridade. Além disso, o sujeito pode conter as informações que identificam um arquivo, um item, uma pessoa ou uma organização que é descrito pelos metadados, o predicado pode conter as informações indicativas de uma característica do sujeito, o objeto contém as informações descritivas da característica do sujeito identificada pelo predicado e a autoridade pode conter as informações referentes à fonte da sentença.
[0079] Em uma modalidade adicional, o sujeito é um bloco que inclui um tipo e um valor, onde o valor contém as informações e o tipo indica se o bloco é um recurso ou um nodo anônimo.
[0080] Em outra modalidade, o predicado é um bloco que inclui um
Petição 870180023875, de 23/03/2018, pág. 20/160
16/112 tipo e um valor, onde o valor contém as informações e o tipo indica se as informações de valor são um URI predicado ou entrada de lista ordinária.
[0081] Em uma modalidade adicional novamente, o objeto é um bloco que inclui um tipo, uma linguagem, um tipo de dados e um valor, onde o valor contém as informações, o tipo indica se as informações de valor são um UTF-8 literal, um inteiro literal ou dados de XML literais, o tipo de dados indica o tipo das informações de valor e a linguagem contém as informações que identificam uma linguagem específica.
[0082] Em outra modalidade novamente, a autoridade é um bloco que inclui um tipo e um valor, onde o valor contém as informações e o tipo indica se as informações de valor são a autoridade da sentença.
[0083] Em ainda uma modalidade adicional, pelo menos uma porção dos dados codificados está representada como dados binários.
[0084] Em ainda outra modalidade, pelo menos uma porção dos dados codificados está representada como dados ASCI de 64 bits.
[0085] Em ainda uma modalidade adicional, pelo menos uma primeira porção dos dados codificados está representada como dados binários e pelo menos uma segunda porção dos dados codificados está representada como blocos adicionais que contêm os dados representados em um segundo formato. Além disso, os blocos adicionais podem cada um conter um único trecho de metadados.
[0086] Um sistema para codificar os arquivos de multimídia de acordo com uma modalidade da presente invenção inclui um processador configurado para codificar uma trilha de vídeo. O processador está também configurado para codificar os metadados referentes ao arquivo de multimídia e os metadados codificados incluem pelo menos uma sentença que compreende um sujeito, um predicado, um objeto e uma autoridade. Além disso, o sujeito pode conter as informações que
Petição 870180023875, de 23/03/2018, pág. 21/160
17/112 identificam um arquivo, um item, uma pessoa ou uma organização que está descrito pelos metadados, o predicado pode conter as informações indicativas de uma característica do sujeito, o objeto pode conter as informações descritivas da característica do sujeito identificada pelo predicado e a autoridade pode conter as informações referentes à fonte da sentença.
[0087] Em uma modalidade adicional, o processador está configurado para codificar o sujeito como um bloco que inclui um tipo e um valor, onde o valor contém as informações e o tipo indica se o bloco é um recurso ou um nodo anônimo.
[0088] Em outra modalidade, o processador está configurado para codificar o predicado como um bloco que inclui um tipo e um valor, onde o valor contém as informações e o tipo indica se as informações de valor são um URI predicado ou uma entrada de lista ordinária.
[0089] Em uma modalidade adicional novamente, o processador está configurado para codificar o objeto como um bloco que inclui um tipo, uma linguagem, um tipo de dados e um valor, onde o valor contém as informações, o tipo indica se as informações de valor são um UTF-8 literal, um inteiro literal ou dados de XML literais, e o tipo de dados indica o tipo das informações de valor e a linguagem contém as informações que identificam uma linguagem específica.
[0090] Em outra modalidade novamente, o processador está configurado para codificar a autoridade como um bloco que inclui um tipo e um valor, onde o valor contém as informações e o tipo indica se as informações de valor são a autoridade da sentença.
[0091] Em ainda uma modalidade adicional, o processador está ainda configurado para codificar pelo menos uma porção dos metadados referente ao arquivo de multimídia como dados binários.
[0092] Em ainda outra modalidade, o processador está ainda configurado para codificar pelo menos uma porção dos metadados refe
Petição 870180023875, de 23/03/2018, pág. 22/160
18/112 rente ao arquivo de multimídia como dados ASCI de 64 bits.
[0093] Em uma modalidade adicional, o processador está ainda configurado para codificar pelo menos uma primeira porção dos metadados referente ao arquivo de multimídia como dados binário e codificar pelo menos uma segunda porção dos metadados referente ao arquivo de multimídia como blocos adicionais que contém os dados representados em um segundo formato. Além disso, o processador pode estar ainda configurado para codificar os blocos adicionais com um único trecho de metadados.
[0094] Um sistema para decodificar os arquivos de multimídia de acordo com a invenção inclui um processador configurado para extrair as informações do arquivo de multimídia. O processador está configurado para extrair as informações de metadados referentes ao arquivo de multimídia e as informações de metadados incluem pelo menos uma sentença que compreende um sujeito, um predicado, um objeto e uma autoridade. Além disso, o processador pode estar configurado para extrair, do sujeito, as informações que identificam um arquivo, um item, uma pessoa ou uma organização que está descrito pelos metadados. Mais ainda, o processador pode estar configurado para extrair as informações indicativas de uma característica do sujeito do predicado, o processador pode estar configurado para extrair as informações descritivas da característica do sujeito identificado pelo predicado do objeto e o processador pode estar configurado para extrair as informações referentes à fonte da sentença da autoridade.
[0095] Em uma modalidade adicional, o sujeito é um bloco que inclui um tipo e um valor e o processador está configurado para identificar que o bloco contém as informações do sujeito pela inspeção do tipo e o processador está configurado para extrair as informações do valor.
[0096] Em ainda outra modalidade, o predicado é um bloco que
Petição 870180023875, de 23/03/2018, pág. 23/160
19/112 inclui um tipo e um valor e o processador está configurado para identificar que o bloco contém as informações do predicado pela inspeção do tipo e o processador está configurado para extrair as informações do valor.
[0097] Em uma modalidade adicional novamente, o objeto é um bloco que inclui um tipo, uma linguagem, um tipo de dados e um valor, o processador está configurado para identificar que o bloco contém as informações de objeto pela inspeção do tipo, o processador está configurado para inspecionar o tipo de dados para determinar o tipo de dados das informações contidas no valor, o processador está configurado para extrair as informações de um tipo indicado pelo tipo de dados do valor e o processador está configurado para extrair as informações que identificam uma linguagem específica da linguagem.
[0098] Em outra modalidade novamente, a autoridade é um bloco que inclui um tipo e um valor e o processador está configurado para identificar que o bloco contém as informações de autoridade pela inspeção do tipo e o processador está configurado para extrair as informações do valor.
[0099] Em ainda uma modalidade adicional, o processador está configurado para extrair as informações da sentença de metadados e exibir pelo menos uma porção das informações.
[00100] Em ainda outra modalidade, o processador está configurado para construir estruturas de dados indicativas de um gráfico identificado direcionado na memória utilizando os metadados.
[00101] Em ainda uma modalidade adicional, o processador está configurado para pesquisar através dos metadados por informações pela inspeção de pelo menos um do sujeito, do predicado, do objeto e da autoridade para uma pluralidade de sentenças.
[00102] Em ainda outra modalidade, o processador está configurado para exibir os resultados da pesquisa como parte de uma interface
Petição 870180023875, de 23/03/2018, pág. 24/160
20/112 gráfica do usuário. Além disso, o processador pode estar configurado para executar uma pesquisa em resposta a uma solicitação de um dispositivo externo.
[00103] Em ainda uma modalidade adicional, pelo menos uma porção das informações de metadados referentes ao arquivo de multimídia está representada como dados binários.
[00104] Em outra modalidade adicional, pelo menos uma porção das informações de metadados referentes ao arquivo de multimídia está representada como dados ASCI de 64 bits.
[00105] Em outra modalidade adicional, pelo menos uma primeira porção das informações de metadados referentes ao arquivo de multimídia está representada como dados binários e pelo menos uma segunda porção das informações de metadados referentes ao arquivo de multimídia está representada como blocos adicionais que contêm os dados representados em um segundo formato. Além disso, os blocos adicionais podem conter um único trecho de metadados.
[00106] Um sistema para comunicar as informações de multimídia de acordo com a presente invenção inclui uma rede, um dispositivo de armazenamento que contém um arquivo de multimídia e que está conectado na rede através de um servidor e um cliente conectado na rede. O cliente pode solicitar a transferência do arquivo de multimídia do servidor e o arquivo de multimídia inclui os metadados referentes ao arquivo de multimídia e os metadados incluem pelo menos uma sentença que compreende um sujeito, um predicado, um objeto e uma autoridade.
[00107] Um arquivo de multimídia de acordo com a presente invenção inclui pelo menos uma trilha de vídeo codificada, pelo menos uma trilha de áudio codificada e uma pluralidade de seqüências de texto codificadas. As seqüências de texto codificadas descrevem as características da pelo menos uma trilha de vídeo e da pelo menos uma trilha
Petição 870180023875, de 23/03/2018, pág. 25/160
21/112 de áudio.
[00108] Em uma modalidade adicional, uma pluralidade das seqüências de texto descreve a mesma característica de uma trilha de vídeo ou uma trilha de áudio utilizando diferentes linguagens.
[00109] Outra modalidade também inclui pelo menos uma trilha de legenda codificada. A pluralidade de seqüências de texto codificadas inclui seqüências que descrevem as características da trilha de legenda.
[00110] Um sistema para criar um arquivo de multimídia de acordo com a presente invenção inclui um processador configurado para codificar pelo menos uma trilha de vídeo, codificar pelo menos uma trilha de áudio, intercalar pelo menos uma das trilhas de áudio codificadas com uma trilha de vídeo e inserir seqüências de texto que descrevem cada uma de um número de características da pelo menos uma trilha de vídeo e da pelo menos uma trilha de áudio em uma pluralidade de linguagens.
[00111] Um sistema para exibir um arquivo de multimídia que inclui seqüências de áudio, de vídeo e de texto codificadas de acordo com a presente invenção que inclui um processador configurado para extrair as seqüências de texto codificadas do arquivo e gerar um display de menu suspenso utilizando as seqüências de texto.
Breve Descrição dos Desenhos [00112] Figura 1 é um diagrama de um sistema de acordo com uma modalidade da presente invenção para codificar, distribuir e decodificar arquivos.
[00113] Figura 2.0 é um diagrama de uma estrutura de um arquivo de multimídia de acordo com uma modalidade da presente invenção.
[00114] Figura 2.0.1 é um diagrama de uma estrutura de um arquivo de multimídia de acordo com outra modalidade da presente invenção.
Petição 870180023875, de 23/03/2018, pág. 26/160
22/112 [00115] Figura 2.1 é um diagrama conceituai de um bloco de lista de 'hdrl' de acordo com uma modalidade da invenção.
[00116] Figura 2.2 é um diagrama conceituai de um bloco de 'strl' de acordo com uma modalidade da invenção.
[00117] Figura 2.3 é um diagrama conceituai da memória alocada para armazenar um bloco de 'DXDT' de um arquivo de multimídia de acordo com uma modalidade da invenção.
[00118] Figura 2.3.1 é um diagrama conceituai de blocos de 'metadados' que podem ser incluídos em um bloco de 'DXDT' de um arquivo de multimídia de acordo com uma modalidade da invenção.
[00119] Figura 2.4 é um diagrama conceituai do bloco de 'DMNU' de acordo com uma modalidade da invenção.
[00120] Figura 2.5 é um diagrama conceituai de blocos de menu contidos em um bloco de 'WowMenuManager' de acordo com uma modalidade da invenção.
[00121] Figura 2.6 é um diagrama conceituai de blocos de menu contidos em um bloco de 'WowMenuManager' de acordo com outra modalidade da invenção.
[00122] Figura 2.6.1 é um diagrama conceituai que ilustra as relações entre os vários blocos contidos em um bloco de 'DMNU'.
[00123] Figura 2.7 é um diagrama conceituai do bloco de lista de 'movi' de um arquivo de multimídia de acordo com uma modalidade da invenção.
[00124] Figura 2.8 é um diagrama conceituai do bloco de lista de 'movi' de um arquivo de multimídia de acordo com uma modalidade da invenção que inclui um DRM.
[00125] Figura 2.9 é um diagrama conceituai do bloco de 'DRM' de acordo com uma modalidade da invenção.
[00126] Figura 3.0 é um diagrama de blocos de um sistema para gerar um arquivo de multimídia de acordo com uma modalidade da
Petição 870180023875, de 23/03/2018, pág. 27/160
23/112 invenção.
[00127] Figura 3.1 é um diagrama de blocos de um sistema para gerar um bloco de 'DXDT' de acordo com uma modalidade da invenção.
[00128] Figura 3.2 é um diagrama de blocos de um sistema para gerar um bloco de 'DMNU' de acordo com uma modalidade da invenção.
[00129] Figura 3.3 é um diagrama conceituai de um modelo de mídia de acordo com uma modalidade da invenção.
[00130] Figura 3.3.1 é um diagrama conceituai de objetos de um modelo de mídia que pode ser utilizado para gerar automaticamente um pequeno menu de acordo com uma modalidade da invenção.
[00131] Figura 3.4 é um fluxograma de um processo que pode ser utilizado para re-bloco o áudio de acordo com uma modalidade da invenção.
[00132] Figura 3.5 é um diagrama de blocos de um codificador de vídeo de acordo com uma modalidade da invenção.
[00133] Figura 3.6 é um fluxograma de um método para executar um melhoramento psicovisual de suavização em um quadro I de acordo com as modalidades da invenção.
[00134] Figura 3.7 é um fluxograma de um processo para executar um melhoramento psicovisual de SAD de macrobloco de acordo com uma modalidade da invenção.
[00135] Figura 3.8 é um fluxograma de um processo para o controle de taxa de uma passada de acordo com uma modalidade da invenção.
[00136] Figura 3.9 é um fluxograma de um processo para executar o controle de taxa de VBV de N- passada de acordo com uma modalidade da invenção.
[00137] Figura 4.0 é um fluxograma para um processo para localizar as informações de multimídia requeridas de um arquivo de multi
Petição 870180023875, de 23/03/2018, pág. 28/160
24/112 mídia e exibir as informações de multimídia de acordo com uma modalidade da invenção.
[00138] Figura 4.1 é um diagrama de blocos de um decodificador de acordo com uma modalidade da invenção.
[00139] Figura 4.2 é um exemplo de um menu exibido de acordo com uma modalidade da invenção.
[00140] Figura 4.3 é um diagrama conceituai que mostra as fontes de informações utilizadas para gerar o display mostrado na Figura 4.2 de acordo com uma modalidade da invenção.
Descrição Detalhada da Invenção [00141] Referindo aos desenhos, as modalidades da presente invenção são capazes de codificar, transmitir e decodificar os arquivos de multimídia. Os arquivos de multimídia de acordo com as modalidades da presente invenção podem conter múltiplas trilhas de vídeo, múltiplas trilhas de áudio, múltiplas trilhas de legenda, dados que podem ser utilizados para gerar uma interface de menu para acessar o conteúdo do arquivo e os 'metadados' referentes ao arquivo. Os arquivos de multimídia de acordo com diversas modalidades da presente invenção também incluem referências a trilhas de vídeo, trilhas de áudio, trilhas de legenda e 'metadados' externos ao arquivo.
1. Descrição do Sistema [00142] Observando agora a Figura 1, um sistema de acordo com uma modalidade da presente invenção para codificar, distribuir e decodificar os arquivos está mostrado. O sistema 10 inclui um computador 12, o qual está conectado a uma variedade de outros dispositivos de computação através de uma rede 14. Os dispositivos que podem estar conectados na rede incluem um servidor 16, um computador laptop 18 e um assistente digital pessoal (PDA) 20. Em várias modalidades, as conexões entre os dispositivos e a rede podem ser ou por fio ou sem fio e implementadas utilizando qualquer um de uma variedade
Petição 870180023875, de 23/03/2018, pág. 29/160
25/112 de protocolos de rede.
[00143] Em operação, o computador 12 pode ser utilizado para codificar os arquivos de multimídia de acordo com uma modalidade da presente invenção. O computador 12 pode também ser utilizado para decodificar os arquivos de multimídia de acordo com as modalidades da presente invenção e distribuir os arquivos de multimídia de acordo com as modalidades da presente invenção. O computador pode distribuir os arquivos utilizando qualquer um de uma variedade de protocolos de transferência incluindo através de uma rede ponto a ponto. Além disso, o computador 12 pode transferir os arquivos de multimídia de acordo as modalidades da presente invenção para um servidor 18, onde os arquivos podem ser acessados por outros dispositivos. Os outros dispositivos podem incluir qualquer variedade de dispositivos de computação ou mesmo um dispositivo decodificador dedicado. Na modalidade ilustrada, um computador laptop e um PDA estão mostrados. Em outras modalidades, conversores de freqüência, computadores de mesa, máquinas de jogos, dispositivos eletrônicos do consumidor e outros dispositivos podem estar conectados na rede, carregar os arquivos de multimídia e decodificá-los.
[00144] Em uma modalidade, os dispositivos acessam os arquivos de multimídia do servidor através da rede. Em outras modalidades, os dispositivos acessam os arquivos de multimídia de um número de computadores através de uma rede ponto a ponto. Em diversas modalidades, os arquivos de multimídia podem ser escritos em um dispositivo de armazenamento portátil, tal como uma unidade de disco, um CD-ROM, ou um DVD. Em muitas modalidades, os dispositivos eletrônicos podem acessar os arquivos de multimídia escritos nos dispositivos de armazenamento portáteis.
2. Descrição da Estrutura de Arquivo [00145] Os arquivos de multimídia de acordo com as modalidades
Petição 870180023875, de 23/03/2018, pág. 30/160
26/112 da presente invenção podem ser estruturados para ficarem em conformidade com o Formato de Arquivo para Intercâmbio de Recursos ('formato de arquivo RIFF'), definido pela Microsoft Corporation de Redmond, WA e pela International Business Machines Corporation de Armonk, NY. o RIFF é um formato para armazenar os dados de multimídia e as informações associadas. Um arquivo RIFF tipicamente tem um cabeçalho de RIFF de 8 bytes, o qual identifica o arquivo e provê o comprimento residual do arquivo após o cabeçalho (isto é filejength -
8). O restante inteiro do arquivo RIFF compreende blocos e listas. Cada bloco tem um cabeçalho de bloco de 8 bytes que identifica o tipo de bloco, e fornece o comprimento em bytes dos dados que seguem o cabeçalho de bloco. Cada lista tem um cabeçalho de 8 bytes que identifica o tipo de lista e fornece o comprimento em bytes dos dados que seguem o cabeçalho de lista. Os dados em uma lista compreendem os blocos e/ou outras listas (as quais por sua vez podem compreender blocos e/ou listas). As listas de RIFF são também algumas vezes referidas como blocos de listas.
[00146] Um arquivo AVI é uma forma especial de arquivo RIFF que segue o formato de um arquivo RIFF, mas inclui vários blocos e listas com identificadores definidos que contém os dados de multimídia em formatos específicos. O formato AVI foi desenvolvido e definido pela Microsoft Corporation. Os arquivos AVI são tipicamente criados utilizando um codificador que pode emitir os dados de multimídia no formato AVI. Os arquivos AVI são tipicamente decodificados por qualquer um de um grupo de softwares conhecidos coletivamente como decodificadores de AVI.
[00147] Os formatos de RIFF e AVI são flexíveis pelo fato de que estes somente definem os blocos e as listas que fazem parte do formato de arquivo definido, mas permitem que os arquivos também incluam listas e/ou blocos que estão fora das definições de formato de
Petição 870180023875, de 23/03/2018, pág. 31/160
27/112 arquivo RIFF e/ou AVI sem tornar o arquivo ilegível por um decodificador de RIFF e/ou de AVI. Na prática os decodificadores de AVI (e similarmente de RIFF) estão implementados de modo que estes simplesmente ignoram as listas e os blocos que contém as informações de cabeçalho não encontradas na definição de formato de arquivo AVI. O decodificador de AVI deve ainda ler através destes blocos e listas não AVI e assim a operação do decodificador de AVI pode ser desacelerada, mas de outro modo, estes geralmente não tem nenhum efeito sobre e são ignorados por um decodificador de AVI.
[00148] Um arquivo de multimídia de acordo com uma modalidade da presente invenção está ilustrado na Figura 2.0. O arquivo de multimídia 30 inclui um bloco de conjunto de caracteres (bloco de 'CSET') 32, um bloco de lista de informações (bloco de lista de 'INFO') 34, um bloco de cabeçalho de arquivo (bloco de lista de 'hdrl') 36, um bloco de metadados (bloco de 'DXDT') 38, um bloco de menu (bloco de 'DMNU') 40, um bloco de lixo (bloco de 'lixo') 41, o bloco de lista de filmes (bloco de lista de 'movi') 42, um bloco de índice (bloco de 'idxT) 44 opcional e um segundo bloco de menu (bloco de 'DMNU') 46. Alguns destes blocos e porções de outros estão definidos no formato de arquivo AVI enquanto que outros não estão contidos no formato de arquivo AVI. Em muitos, mas não em todos, casos, a discussão abaixo identifica os blocos ou as porções de blocos que estão definidos como parte do formato de arquivo AVI.
[00149] Outro arquivo de multimídia de acordo com uma modalidade da presente invenção está mostrado na Figura 2.0.1. O arquivo de multimídia 30' é similar àquele mostrado na Figura 2.0 exceto que o arquivo inclui múltiplos blocos de 'RIFF' concatenados. Os bloco de 'RIFF' podem conter um bloco de 'RIFF' similar àquele mostrado na Figura 2.0 que pode excluir o segundo bloco de 'DMNU' 46 ou pode conter as informações de menu na forma de um bloco de 'DMNU' 46'.
Petição 870180023875, de 23/03/2018, pág. 32/160
28/112 [00150] Na modalidade ilustrada, a multimídia inclui múltiplos bloco de 'RIFF' concatenados, onde o primeiro bloco de 'RIFF' 50 inclui um bloco de conjunto de caracteres (bloco de 'CSET') 32', um bloco de lista de informações (bloco de lista de 'INFO') 34', um bloco de cabeçalho de arquivo (bloco de lista de 'hdrl') 36', um bloco de metadados (bloco de 'DXDT') 38', um bloco de menu (bloco de 'DMNU') 40', um bloco de lixo (bloco de 'junk') 4T, o bloco de lista de filmes (bloco de lista de 'movi') 42', e um bloco de índice (bloco de 'idxT) 44' opcional. O segundo bloco de 'RIFF' 52 contém um segundo bloco de menu (bloco de 'DMNU') 46'. Blocos de 'RIFF' 54 adicionais que contém títulos adicionais podem ser incluídos após o bloco de menu de 'RIFF' 52. Os blocos de 'RIFF' adicionais podem conter uma mídia independente em conformidade com o formato de arquivo AVI. Em uma modalidade, o segundo bloco de menu 46' e os blocos de 'RIFF' adicionais tem códigos de 4 caracteres especializados (definidos no formato de AVI e abaixo discutidos) de modo que os primeiros dois caracteres do código de 4 caracteres aparecem como os segundos dois caracteres e os segundos dois caracteres do código de 4 caracteres aparecem como os primeiros dois caracteres.
2.1 O Bloco de 'CSET' [00151] O bloco de 'CSET' 32 é um bloco definido no formato de Áudio Vídeo Intercalado (formato de arquivo AVI), criado pela Microsoft Corporation. O bloco de 'CSET' define o conjunto de caracteres e as informações de linguagem do arquivo de multimídia. A inclusão de um bloco de 'CSET' de acordo com as modalidades da presente invenção é opcional.
[00152] Um arquivo de multimídia de acordo com uma modalidade da presente invenção não utiliza o bloco de 'CSET' e utiliza o UTF-8, o qual é definido pelo Unicode Consortium, para o conjunto de caracteres como padrão combinado com a Especificação de Linguagem RFC
Petição 870180023875, de 23/03/2018, pág. 33/160
29/112
3066, a qual é definida pela Força Tarefa de Engenharia de Internet para a linguagem de informações.
2.2 O Bloco de Lista de 'Info* [00153] O bloco de lista de 'INFO' 34 pode armazenar as informações que auxiliam a identificar o conteúdo do arquivo de multimídia. A lista de 'INFO' está definida no formato de arquivo AVI e a sua inclusão em um arquivo de multimídia de acordo com as modalidades da presente invenção é opcional. Muitas modalidades que incluem um bloco de 'DXDT' não incluem um bloco de lista de 'INFO'.
2.3 O Bloco de Lista de 'hdrl' [00154] O bloco de lista de 'hdrl' 38 é definido no formato de arquivo AVI e provê as informações referentes ao formato dos dados no arquivo de multimídia. A inclusão de um bloco de lista de 'INFO' ou de um bloco que contém informações de descrição similares é geralmente requerida. O bloco de lista de 'hdrl' ou um bloco que contém informações de descrição similares é geralmente requerido. O bloco de lista de 'hdrl' inclui um bloco para cada trilha de vídeo, cada trilha de áudio e cada trilha de legenda.
[00155] Um diagrama conceituai de um bloco de lista de 'hdrl' 38 de acordo com uma modalidade da invenção inclui uma única trilha de vídeo 62, dias trilhas de áudio 64, e uma trilha de áudio externa 66, duas trilhas de legenda 68 e uma trilha de legenda externa 70 está ilustrado na Figura 2.1. A lista de 'hdrl' 60 inclui um bloco de 'avih'. O bloco de 'avih' 60 contém informações globais para o arquivo inteiro, tais como, o número de fluxos dentro do arquivo e a largura e a altura do vídeo contido no arquivo de multimídia. O bloco de 'avih' pode ser implementado de acordo com o formato de arquivo AVI.
[00156] Além, do bloco de 'avih', a lista de 'hdrl' inclui uma lista de descritor de fluxo para cada trilha de áudio, de vídeo e de legenda. Em uma modalidade, a lista de descritor de fluxo é implementada utilizan
Petição 870180023875, de 23/03/2018, pág. 34/160
30/112 do blocos de 'strl'. Um bloco de 'strl' de acordo com uma modalidade da presente invenção está ilustrado na Figura 2.2. Cada bloco de 'strl' serve para descrever cada trilha no arquivo de multimídia. Os blocos de 'strl' para as trilhas de áudio de vídeo e de legenda dentro do arquivo de multimídia incluem um bloco de 'strl' que referencia um bloco de 'strh' 92, um bloco de 'strf' 94, um bloco de 'strd' 96, e um bloco de 'strri 98. Todos estes blocos podem ser implementados de acordo com o formato de arquivo AVI. De interesse específico é o bloco de 'strh' 92, o qual especifica o tipo de trilha de mídia, e o bloco de 'strd' 96, o qual pode ser modificado para indicar se o vídeo está protegido por um gerenciamento de direitos digitais. Uma discussão de várias implementações de gerenciamento de direitos digitais de acordo com as modalidades da presente invenção está abaixo provida.
[00157] Os arquivos de multimídia de acordo com as modalidades da presente invenção podem conter referências a arquivos externos que contêm informações de multimídia, tais como, uma trilha de áudio adicional ou uma trilha de legenda adicional. As referências a estas trilhas podem estar contidas ou no bloco de 'hdrl' ou no bloco de 'lixo' 41. Em qualquer caso, a referência pode estar contida no bloco de 'strh' 92 de um bloco de 'strl' 90, com referências ou a um arquivo local ou um arquivo remotamente armazenado. O arquivo referenciado pode ser um arquivo AVI padrão ou um arquivo de multimídia de acordo com uma modalidade da presente invenção que contém a trilha adicional.
[00158] Em modalidades adicionais, o arquivo referenciado pode conter qualquer um dos blocos que podem estar presentes no arquivo de referência incluindo os blocos de 'DMNU', os blocos de 'DXDT' e os blocos associados com as trilhas de áudio, de vídeo e/ou de legenda para uma apresentação de multimídia. Por exemplo, um primeiro arquivo de multimídia poderia incluir um bloco de 'DMNU' (abaixo discu
Petição 870180023875, de 23/03/2018, pág. 35/160
31/112 tido em mais detalhes) que referencia a primeira apresentação de multimídia localizada dentro do bloco de lista de 'movi' do primeiro arquivo de multimídia e uma segunda apresentação de multimídia dentro do bloco de lista de 'movi' do segundo arquivo de multimídia. Alternativamente, ambos os blocos de lista de 'movi' podem estar incluídos no mesmo arquivo de multimídia, o qual não precisa ser o mesmo arquivo que o arquivo no qual o bloco de 'DMNU' está localizado.
2.4. O Bloco de 'dxdt' [00159] O bloco de 'DXDT' 38 contém os assim denominados 'metadados'. 'Metadados' é um termo utilizado para descrever os dados que provêem informações sobre o conteúdo de um arquivo, documento ou transmissão. Os 'metadados' armazenados dentro do bloco de 'DXDT' dos arquivos de multimídia de acordo com as modalidades da presente invenção podem ser utilizados para armazenar, tais informações específicas de conteúdo, tais como, o título, o autor, o detentor de direitos autorais e o elenco. Além disso, os detalhes técnicos sobre o codec utilizado para codificar o arquivo de multimídia podem ser providos, tais como, as opções de CLI utilizadas e a distribuição de quantificador após cada passada.
[00160] Em uma modalidade, os metadados estão representados dentro do bloco de 'DXDT' como uma série de sentenças, onde cada sentença inclui um sujeito, um predicado, um objeto e uma autoridade. O sujeito é uma referência ao que está sendo descrito. O sujeito pode referenciar um arquivo, um item, uma pessoa ou uma organização. O sujeito pode referenciar qualquer coisa que tem características capazes de descrição. O predicado identifica uma característica do sujeito que está sendo descrito. O objeto é uma descrição da característica identificada do sujeito e a autoridade identifica a fonte das informações.
[00161] A seguinte é uma tabela que mostra um exemplo de como
Petição 870180023875, de 23/03/2018, pág. 36/160
32/112 vários trechos de 'metadados', podem ser representados como um objeto, um predicado, um sujeito e uma autoridade:
Sujeito |
Predicado |
Objeto |
Autoridade |
:file281 |
httD ://du rl .ora/dc/elements/1.1 /title |
The Matrix |
:auth42 |
:file281 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#Person |
:cast871 |
:auth42 |
:file281 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#Person |
:cast872 |
:auth42 |
:file281 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#Person |
:cast873 |
:auth42 |
:cast871 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#name |
Keanu Reeves |
:auth42 |
:cast871 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#role |
Actor |
:auth42 |
:cast871 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#character |
Neo |
:auth42 |
:cast282 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#name |
Andy Wachowski |
:auth42 |
:cast282 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#role |
Director |
:auth42 |
:cast283 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#name |
Larry Wachowski |
:auth42 |
:cast283 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/ 11/cast#role |
Director |
:auth42 |
:file281 |
httD ://du rl .ora/dc/elements/1.1 /riahts |
Copyright 1998 Wamer Brothers. All Rights Reserved. |
:auth42 |
_:file281 |
Series |
_:file321 |
_:auth42 |
_:file321 |
Episode |
2 |
_:auth42 |
:file321 |
httD ://du rl .ora/dc/elements/1.1 /title |
The Matrix Reloaded |
:auth42 |
_:file321 |
Series |
_:file122 |
_:auth42 |
_:file122 |
Episode |
3 |
_:auth42 |
Petição 870180023875, de 23/03/2018, pág. 37/160
33/112
Sujeito |
Predicado |
Objeto |
Autoridade |
:auth42 |
httD://xmlns.com/foaf/0.1 /Oraanizatio n |
:foaf92 |
:auth42 |
:foaf92 |
httD://xmlns.com/foaf/0.1 /name |
Wamer Brothers |
:auth42 |
:file281 |
httD://xmllns.divxnetworks.com/2004/
11/track#track |
:track#dc00 |
:auth42 |
:track#d cOO |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/
11/track#resolution |
1024x768 |
:auth42 |
:file281 |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/
11/content#certificationLevel |
HT |
:auth42 |
:track#d cOO |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/
11/track#frameTvDeDist |
32,1,3,5 |
:auth42 |
:track#d cOO |
h ttD://xm I n s. d i vxnetwo rks. co m/2004/
11/track#codecSettinas |
bv1 276 -psy 0 key 300 -b 1 -sc 50 -pq 5 -vbv 6951200,314572 8,2359296 profile 3 -nf |
:auth42 |
Tabela 1 - |
Representação conceituai de 'mel |
tadados' |
[00162] Em uma modalidade, a expressão do sujeito, do predicado, do objeto e da autoridade é implementada utilizando representações binárias dos dados, as quais podem ser consideradas formarem Gráficos Identificados Direcionados (DLGs). Um DLG consiste em nodos que são ou recursos ou literais. Os recursos são os identificadores, os quais podem estar em conformidade com uma convenção de nomeação, tal como um Identificador de Recurso Universal (URI) como definido na RFC 2396 pela Força Tarefa de Engenharia de Internet (http://www.ietf.org/rfc/rfc2396.txt) ou referir a dados específicos para o próprio sistema. Os literais são representações de um valor real, ao invés de uma referência.
[00163] Uma vantagem dos DLGs é que estes permitem a inclusão de um número flexível de itens de dados que são do mesmo tipo, tais
Petição 870180023875, de 23/03/2018, pág. 38/160
34/112 como, os membros do elenco de um filme. No exemplo mostrado na Tabela 1, três membros do elenco estão incluídos. No entanto, qualquer número de membros do elenco pode ser incluído. Os DLGs também permitem as conexões relacionais com outros tipos de dados. Na Tabela 1, existe um item de 'metadados' que tem um sujeito _:file281, um predicado Series, e um objeto _:file321. O sujeito _:file281 indica que os 'metadados' referem-se ao conteúdo do arquivo referenciado como _:fi1e321 (neste caso, o filme The Matrix). O predicado é Series, que indica que o objeto terá informações sobre outros filme na série à qual The Matrix pertence. No entanto, _:file321 não é o título ou nenhuma outra informação específica sobre a série que inclui The Matrix, mas ao contrário uma referência a outra entrada que provê mais informações sobre _:file321. A próxima entrada de 'metadados', com o sujeito _:file321, no entanto inclui os dados sobre _:fi1e321, a saber que o Título como especificado pelo Dublin Core Vocabulary como indicado por http://pur1.Org/dc/elements/1.1/title desta seqüência é The Matrix Reloaded.
[00164] As sentenças de 'metadados' adicionais na Tabela 1 especificam que Keanu Reeves foi um membro do elenco fazendo o papel de Neo e que tanto Larry quanto Andy Wachowski foram os diretores. As informações técnicas estão também expressas nos 'metadados'. As sentenças de 'metadados' identificam que :file281 inclui a trilha :track#dcOO. Os 'metadados' provêem informações que incluem a resolução da trilha de vídeo, o nível de certificação da trilha de vídeo e os ajustes de codec. Apesar de não mostrado na Tabela 1, os 'metadados' podem também incluir um identificador único atribuído a uma trilha no momento da codificação. Quando os identificadores únicos são utilizados, a codificação do mesmo conteúdo múltiplas vezes resultará em um diferente identificador para cada versão do conteúdo.
Petição 870180023875, de 23/03/2018, pág. 39/160
35/112
No entanto, uma cópia de trilha de vídeo codificada reteria o identificador da trilha da qual esta foi copiada.
[00165] As entradas mostradas na Tabela 1 podem ser substituídas por outros vocabulários, tais como, o vocabulário UPnP, o qual é definido pelo fórum UPnP (ver http://www.upnpforum.org). Outra alternativa seria os vocabulários de Linguagem de Declaração de Item Digital (DIDL) ou de DIDL-Lite desenvolvidos pela International Standards Organization como parte do trabalho na direção do padrão MPEG-21. Os seguintes são exemplos de predicados dentro do vocabulário UPnP: urn:schemas-upnp-org:metadata-1-0/upnp/artist urn:schemas-upnp-org:metadata-1-0/upnp/actor urn:schemas-upnp-org:metadata-1-0/upnp/author urn:schemas-upnp-org:metadata-1-0/upnp/producer urn:schemas-upnp-org:metadata-1-0/upnp/director urn:schemas-upnp-org:metadata-1-0/upnp/genre urn:schemas-upnp-org:metadata-1-0/upnp/album urn:schemas-upnp-org:metadata-1-0/upnp/playlist urn:schemas-upnp-org:metadata-1O/upnp/originalT rackNumber urn:schemas-upnp-org:metadata-1-0/upnp/userAnnotation [00166] A autoridade para todos os ‘metadados’ é ‘_:auth42.’ As sentenças de ‘metadados’ mostram que ‘_:auth42’ é ‘Warner Brothers.’ A autoridade permite a avaliação tanto da qualidade do arquivo quanto das sentenças de 'metadados' associadas com o arquivo.
[00167] Os nodos em um gráfico estão conectados através de nodos de recurso nomeados. Uma sentença de 'metadados' consiste em um nodo de sujeito, um nodo de predicado e um nodo de objeto. Opcionalmente, um nodo de autoridade pode estar conectado no DLG como parte da sentença de 'metadados'.
[00168] Para cada nodo, existem certas características que auxiliam
Petição 870180023875, de 23/03/2018, pág. 40/160
36/112 a explicar adicionalmente a funcionalidade do nodo. Os tipos possíveis podem ser representados como segue utilizando a linguagem de programação ANSI C:
/** Invalid Type */ #define RDFIDENTIFIERTYPEUNKNOWN0x00 /** Resource URI rdf:about */ #define RDF IDENTIFIER TYPE RESOURCE0x01 /** rdf:Nodeld, _:file or generated N-Triples */ #define RDF IDENTIFIER TYPE ANONYMOUS0x02 /** Predicate URI */ #define RDF IDENTIFIER TYPE PREDICATE0x03 /** rdf:li, rdf:_<n> */ #define RDF IDENTIFIER TYPE ORDINAL0x04 /** Authority URI */ #define RDF IDENTIFIER TYPE AUTHORITY 0x05 /** UTF-8 formatted literal */ #define RDF IDENTIFIER TYPE LITERAL0x06 /** Literal Integer */ #define RDF IDENTIFIER TYPE INT0x07 /** Literal XML data */ #define RDF IDENTIFIER TYPE XML LITERAL0x08 [00169] Um exemplo de uma estrutura de dados (representada pela linguagem de programação ANSI C) que representa os blocos de 'metadados' contidos dentro do bloco de ‘DXDT’ é como segue: typedef struct RDFDataStruct {
RDFHeader Header; uint32_t numOfStatements;
RDFStatement statements(RDF_MAX_STATEMENTS];
} RDFData
Petição 870180023875, de 23/03/2018, pág. 41/160
37/112 [00170] O bloco de ‘RDFData’ inclui um bloco referido como um bloco de ‘RDFHeader’, um valor de ‘numOfStatements’ e uma lista de blocos de ‘RDFStatement’.
[00171] O bloco de ‘RDFHeader’ bloco contém as informações sobre o modo no qual os ‘metadados' são formatados no bloco. Em uma modalidade, os dados no bloco de ‘RDFHeader’ podem ser representados como segue (representados em ANSI C): typedef struct RDFHeaderStruct { uint16_t uint16_t uint16_t uint16_t RDFSchema } RDFHeader;
[00172] versionMajor;
versionMinor; versionFix; numOfSchemas; schemas(RDF_MAX_SCHEMAS];
O bloco de ‘RDFHeader’ inclui um número de ‘version’ que indica a versão do formato de descrição de recurso para permitir uma compatibilidade para adiante. O cabeçalho inclui um segundo número ‘numOfSchemas’ que representa o número de blocos de ‘RDFSchema’ na lista ‘esquemas’, a qual também faz parte do bloco de ‘RDFHeader’. Em diversas modalidades, os blocos de ‘RDFSchema’ são utilizados para permitir que recursos complexos sejam representados mais eficientemente. Em uma modalidade, os dados contidos em um bloco de ‘RDFSchema’ podem ser representados como segue (representados em ANSI C):
typedef struct RDFSchemaStruct {
wchart* prefix;
wchart* uri;
} RDFSchema;
Petição 870180023875, de 23/03/2018, pág. 42/160
38/112 [00173] O bloco de ‘RDFSchema’ inclui uma primeira seqüência de texto como ‘dc’ identificada como ‘prefix’ e uma segunda seqüência de texto, tal como, ‘http://purl.Org/dc/elements/1.1/’ identificada como ‘uri’. O ‘prefix’ define um termo que pode ser utilizado no ‘metadados’ no lugar do ‘uri’. O ‘uri’ é um Identificador de Recurso Universal, o qual pode ser conforme um vocabulário padronizado específico ou ser um vocabulário específico para um sistema específico.
[00174] Retornando para a discussão do bloco de ‘RDFData’. Além de um bloco de ‘RDFHeader’, o bloco, ‘RDFData’ também inclui um valor de ‘numOfStatements’ e uma lista ‘sentenças’ de blocos de ‘RDFStatement’. O valor de ‘numOfStatements’ indica o número real de blocos de ‘RDFStatement’ na lista ‘sentenças’ que contém as informações. Em uma modalidade, os dados contidos no bloco de ‘RDFStatement’ podem representados como segue (representados em ANSI C):
typedef struct RDFStatementStruct {
RDFSubject subject;
RDFPredicate predicate;
RDFObject object;
RDFAuthority authority;
} RDFStatement;
[00175] Cada bloco de ‘RDFStatement’ contém um trecho de ‘metadados’ referente ao arquivo de multimídia. Os blocos ‘subject’, ‘predicate’, Object’ e ‘authority’ são utilizados para conter os vários componentes dos ‘metadados’ acima descritos.
[00176] O ‘subject’ e um bloco de ‘RDFSubject’, o qual representa a porção de sujeito dos ‘metadados’ acima descritos. Em uma modalidade os dados contidos nos bloco de ‘RDFSubject’ podem ser representados como segue (representados em ANSI C):
Petição 870180023875, de 23/03/2018, pág. 43/160
39/112 typedef struct RDFSubjectStruct {
uint16_t type;
wchart* value;
} RDFSubject;
[00177] O bloco de ‘RDFSubject’ acima mostrado inclui um valor de ‘type’ que indica que os dados são ou um Recurso ou um nodo anônimo de um trecho de ‘metadados’ e uma seqüência de texto unicode ‘value’, o qual contém os dados que representam o sujeito do trecho de ‘metadados’. Nas modalidades onde o bloco de ‘RDFSchema’ foi definido o valor pode ser um termo definido ao invés de uma referência direta a um recurso.
[00178] O ‘predicate’ em um bloco de ‘RDFStatement’ é um bloco de ‘RDFPredicate’, o qual representa a porção de predicado de um trecho de ‘metadados’. Em uma modalidade os dados contidos em um bloco de ‘RDFPredicate’ podem ser representados como segue (representados em ANSI C):
typedef struct RDFPredicateStruct {
uint16_t type;
wchart* value;
} RDFPredicate;
[00179] O bloco de ‘RDFPredicate’ acima mostrado inclui um valor de ‘type’ que indica que os dados é o predicado URI ou uma entrada de lista ordinal de um trecho de ‘metadados’ e uma seqüência de texto ‘value,’ o qual contém os dados que representam o predicado em um trecho de ‘metadados.’ Nas modalidades onde um bloco de ‘RDFSchema’ foi definido o valor pode ser um termo definido ao invés de uma referência direta a um recurso.
[00180] O Object’ em um bloco de ‘RDFStatement’ é um bloco de
Petição 870180023875, de 23/03/2018, pág. 44/160
40/112 ‘RDFObject’ o qual representa a porção de objeto de um trecho de ‘metadados.’ Em uma modalidade, os dados contidos no bloco de ‘RDFObject’ podem ser representados como segue (representados em ANSI C):
typedef struct RDFObjectStruct {
uint16_t type;
wchart* language; wchart* dataTypeURI;
wchart* value;
} RDFObject;
[00181] O bloco de ‘RDFObject’ acima mostrado inclui um valor de ‘type’ que indica que o trecho de dados é uma seqüência literal UTF-8, um inteiro literal ou dados de XML literais de um trecho de ‘metadados.’ O bloco também inclui três valores. O primeiro valor de ‘language’ é utilizado para representar a linguagem na qual o trecho de ‘metadados’ é expresso (por exemplo, o título de um filme pode variar em diferentes linguagens). Em diversas modalidades, uma representação padrão pode ser utilizada para identificar a linguagem (tal como RFC 3066 - Identificador para a Identificação de Linguagens especificado pela Força Tarefa de Engenharia de Internet, ver http://www.ietf.org/rfc/rfc3066.txt). O segundo valor de ‘dataTypeURI’ é utilizado para indicar o tipo de dados que estão contidos no campo ‘value’ se estes não puderem ser explicitamente indicados pelo campo ‘type’. O URI especificado pelo dataTypeURI aponta para o Vocabulário RDF URI geral utilizado para descrever o tipo específico de Dados utilizados. Os diferentes formatos nos quais o URI pode ser expresso estão descritos em http://www.w3. org/TR/rdf-concepts/#sectionDatatypes. Em uma modalidade, o ‘value’ é um ‘wide character.’ Em outras modalidades o ‘value’ pode ser qualquer um de uma variedade
Petição 870180023875, de 23/03/2018, pág. 45/160
41/112 de tipos de dados de um único bit até uma imagem ou uma seqüência de vídeo. O ‘value’ contém o trecho de objeto dos ‘metadados.’ [00182] A ‘authority’ em um bloco de ‘RDFStatement’ é um bloco de ‘RDFAuthority’, o qual representa a porção de autoridade de um trecho de ‘metadados.’ Em uma modalidade os dados contidos nos bloco de ‘RDFAuthority’ podem ser representados como segue (representados em ANSI C):
typedef struct RDFAuthorityStruct {
uint16_t type;
wchart* value;
} RDFAuthority;
[00183] A estrutura de dados de ‘RDFAuthority’ acima mostrada inclui um valor de ‘type’ que indica que os dados são um Recurso ou um nodo anônimo de um trecho de ‘metadados.’ O ‘value’ contém os dados que representam a autoridade para os 'metadados'. Em modalidades onde um bloco de ‘RDFSchema’ foi definido o valor pode ser um termo definido ao invés de uma referência direta a um recurso.
[00184] Uma representação conceituai do armazenamento de um bloco de ‘DXDT’ de um arquivo de multimídia de acordo com uma modalidade da presente invenção está mostrada na Figura 2.3. O bloco de ‘DXDT’ 38 inclui um bloco de ‘RDFHeader’ 110, um valor de ‘numOfStatements’ 112 e uma lista de blocos de RDFStatement 114. O bloco de RDFHeader 110 inclui um valor de ‘version’ 116, um valor de ‘numOfSchemas’ 118 e uma lista de blocos de ‘Schema’ 120. Cada bloco de ‘RDFStatement’ 114 inclui um bloco de ‘RDFSubject’ 122, um bloco de ‘RDFPredicate’ 124, um bloco de ‘RDFObject’ 126 e um bloco de ‘RDFAuthority’ 128. O bloco de ‘RDFSubject’ inclui um valor de ‘type’ 130 e um valor de ‘value’ 132. O bloco de ‘RDFPredicate’ 124 também inclui um valor de ‘type’ 134 e um valor de ‘value’ 136. O bloco de
Petição 870180023875, de 23/03/2018, pág. 46/160
42/112 ‘RDFObject’ 126 inclui um valor de ‘type’ 138, um valor de ‘language’ 140 (mostrado na figura como ‘lang’), um valor de ‘dataTypeURI’ 142 (mostrado na figura como 'dataT’) e um valor de ‘value’ 144. O bloco de ‘RDFAuthority’ 128 inclui um valor de ‘type’ 146 e um valor de ‘value’ 148. Apesar do bloco de ‘DXDT’ ilustrado ser mostrado como incluindo um único bloco de ‘Schema’ e um único de bloco de ‘RDFStatement’, uma pessoa versada na técnica prontamente apreciará que diferentes números de blocos de ‘Schema’ e de blocos de ‘RDFStatement’ podem ser utilizados em um bloco que descreve os ‘metadados.’ [00185] Como abaixo discutido, os arquivos de multimídia de acordo com as modalidades da presente invenção podem ser continuamente modificados e atualizados. A determinação com antecedência do 'metadados' para associar com o próprio arquivo e os 'metadados' para acessar remotamente (por exemplo, através da Internet) pode ser difícil. Tipicamente, 'metadados' suficientes estão contidos em um arquivo de multimídia de acordo com uma modalidade da presente invenção de modo a descrever o conteúdo do arquivo. Informações adicionais podem ser obtidas se o dispositivo que revê o arquivo é capaz de acessar através de uma rede outros dispositivos que contém os 'metadados' referenciados de dentro do arquivo.
[00186] Os métodos para representar os 'metadados' acima descritos podem ser extensíveis e podem prover a capacidade de adicionar ou remover os diferentes campos de 'metadados' armazenados dentro do arquivo conforme a necessidade destes muda ao longo do tempo. Além disso, a representação de 'metadados' pode ser compatível para adiante entre as revisões.
[00187] O modo estruturado no qual os 'metadados' são representados de acordo com as modalidades da presente invenção permite que os dispositivos consultem o arquivo de multimídia para melhor determinar o seu conteúdo. A consulta podería então ser utilizada para
Petição 870180023875, de 23/03/2018, pág. 47/160
43/112 atualizar o conteúdo do arquivo de multimídia, para obter 'metadados' adicionais referentes ao arquivo de multimídia, gerar um menu relativo ao conteúdo do arquivo ou executar qualquer outra função que envolva o processamento automático de dados representados em um formato padrão. Além disso, a definição do comprimento de cada elemento analisável dos 'metadados' pode aumentar a facilidade com a qual os dispositivos com quantidades limitadas de memória, tais como, os dispositivos eletrônicos do consumidor, podem acessar os 'metadados'.
[00188] Em outras modalidades, os 'metadados' são representados utilizando blocos individuais para cada trecho de 'metadados'. Diversos blocos de ‘DXDT’ de acordo com a presente invenção incluem um bloco binário que contém os 'metadados' codificados como acima descrito e blocos adicionais que contém trechos individuais de 'metadados' formatados ou como acima descrito ou em outro formato. Nas modalidades onde os 'metadados' binários estão incluídos no bloco de ‘DXDT’ os 'metadados' binários podem ser representados utilizando ASCII codificado em 64-bits. Em outras modalidades, outras representações binárias podem ser utilizadas.
[00189] Exemplos de blocos individuais que pode ser incluídos no bloco de ‘DXDT’ de acordo com a presente invenção estão ilustrados na Figura 2.3.1. Os ‘metadados’ incluem um bloco de ‘MetaData’ 150 que pode conter um bloco de ‘PixelAspectRatioMetaData’ 152a, um bloco de ‘EncoderURIMetaData’ 152b, um bloco de ‘CodecSettingsMetaData’ 152c, um bloco de ‘FrameTypeMetaData’ 152d, um bloco de ‘VideoResolutionMetaData’ 152e, um bloco de ‘PublisherMetaData’ 152f, um bloco de ‘CreatorMetaData’ 152g, um bloco de ‘GenreMetaData’ 152h, um bloco de ‘CreatorToolMetaData’ 152i, um bloco de ‘RightsMetaData’ 152j, um bloco de ‘RunTimeMetaData’ 152k, um bloco de ‘QuantizerMetaData’ 1521, um bloco de ‘CodecInfoMetaData’
Petição 870180023875, de 23/03/2018, pág. 48/160
44/112
152m, um bloco de ‘EncoderNameMetaData’ 152n, um bloco de FrameRateMetaData’ 152o, um bloco de ‘InputSourceMetaData’ 152p, um bloco de ‘FilelDMetaData’ 152q, um bloco de ‘TypeMetaData’ 152r, um bloco de ‘TitleMetaData’ 152s e/ou um bloco de ‘CertLevelMetaData’ 152t.
[00190] O bloco de ‘PixelAspectRatioMetaData’ 152a inclui as informações referentes à razão de aspecto de pixel do vídeo codificado. O bloco de ‘EncoderURIMetaData’ 152b inclui as informações referentes ao codificador. O bloco de ‘CodecSettingsMetaData’ 152c inclui as informações referentes aos ajustes do codec utilizado para codificar o vídeo. O bloco de ‘FrameTypeMetaData’ 152d inclui as informações referentes aos quadros de vídeo. O bloco de The ‘VideoResolutionMetaData’ 152e inclui as informações referentes à resolução de vídeo do vídeo codificado. O bloco de ‘PublisherMetaData’ 152f inclui as informações referentes à pessoa ou à organização que publicou a mídia. O bloco de ‘CreatorMetaData’ 152g inclui as informações referentes ao criador do conteúdo. O bloco de ‘GenreMetaData’ 152h inclui as informações referentes ao gênero da mídia. O bloco de ‘CreatorToolMetaData’ 152i inclui as informações referentes à ferramenta utilizada para criar o arquivo. O bloco de ‘RightsMetaData’ 152j inclui as informações referentes ao DRM. O bloco de ‘RunTimeMetaData’ 152k inclui as informações referentes ao tempo de duração da mídia. O bloco de ‘QuantizerMetaData’ 1521 inclui as informações referentes ao quantificador utilizado para codificar o vídeo. O bloco de ‘CodecInfoMetaData’ 152m inclui as informações referentes ao codec. O bloco de ‘EncoderNameMetaData’ 152n inclui as informações referentes ao nome do codificador. O bloco de FrameRateMetaData’ 152o inclui as informações referentes à taxa de quadros da mídia. O bloco de ‘InputSourceMetaData’ 152p inclui as informações referentes à fonte de entrada. O bloco de ‘FilelDMetaData’ 152q inclui um identificador único para o arqui
Petição 870180023875, de 23/03/2018, pág. 49/160
45/112 vo. O bloco de ‘TypeMetaData’ 152r inclui as informações referentes ao tipo do arquivo de multimídia. O bloco de ‘TitleMetaData’ 152s inclui as informações referentes ao título da mídia e o bloco de ‘CertLevelMetaData’ 152t inclui as informações referentes ao nível de certificação da mídia. Em outras modalidades, blocos adicionais podem ser incluídos que contém ‘metadados’ adicionais. Em diversas modalidades, um bloco que contém ‘metadados’ em um formato binário como acima descrito pode ser incluído no bloco de 'MetaData'. Em uma modalidade o bloco de 'metadados' binários é codificado como ASCII 64 bits.
2.5. Os Blocos de 'DMNU' [00191] Referindo às Figuras 2.0 e 2.0.1, um primeiro bloco de 'DMNU' 40 (40') e um segundo bloco de 'DMNU' 46 (46') estão mostrados. Na Figura 2.0 o segundo bloco de 'DMNU' 46 faz parte do arquivo de multimídia 30. Na modalidade ilustrada na Figura 2.0.1, o bloco de 'DMNU' 46' está contido em um bloco de RIFF separado. Em ambos os casos, o primeiro e o segundo bloco de 'DMNU' contém dados que podem ser utilizados para exibir menus navegáveis. Em uma modalidade, o primeiro bloco de 'DMNU' 40 (40') contém os dados que podem ser utilizados para criar um menu simples que não inclui características avançadas, tais como, as animações de fundo estendidas. Além disso o segundo bloco de 'DMNU' 46 (46') inclui os dados que podem ser utilizados para criar um menu mais complexos que inclui, tais características avançadas como um fundo animado estendido.
[00192] Em diversas modalidades, a provisão de um menu simples e um complexo pode permitir que um dispositivo escolha o menu que este deseje exibir. A colocação do menor dos dois menus antes do bloco de lista de 'movi' 42 permite que os dispositivos de acordo com as modalidades da presente invenção que não podem exibir os menus avancem rapidamente sobre as informações que não podem ser exibiPetição 870180023875, de 23/03/2018, pág. 50/160
46/112 das.
[00193] Em outras modalidades, os dados requeridos para criar um único menu são divididos entre o primeiro e o segundo bloco de 'DMNU'. Alternativamente, o bloco de 'DMNU' pode ser um único bloco antes do bloco de 'movi' que contém os dados para um único conjunto de menus ou múltiplos conjuntos de menus. Em outras modalidades, o bloco de 'DMNU' pode ser um único ou múltiplos blocos localizados em outros locais através de todo o arquivo de multimídia.
[00194] Em diversos arquivos de multimídia de acordo com a presente invenção, o primeiro bloco de 'DMNU' 40 (40') pode ser automaticamente gerado com base em um menu 'mais rico' no segundo bloco de 'DMNU' 46 (46'). A geração automática de menus está abaixo discutida em maiores detalhes.
[00195] A estrutura de um bloco de 'DMNU' de acordo com uma modalidade da presente invenção está mostrada na Figura 2.4. O bloco de 'DMNU' 158 é uma bloco de lista que contém um bloco de menu 160 e um bloco de 'MRIF' 162. O bloco de menu contém as informações necessárias para construir e navegar através dos menus. O bloco de 'MRIF' contém as informações de mídia que podem ser utilizadas para proverem as legendas, o vídeo de fundo e o áudio de fundo para os menus. Em diversas modalidades, o bloco de 'DMNU' contém as informações de menu que permitem a exibição de menus em diversas diferentes linguagens.
[00196] Em uma modalidade o bloco de 'WowMenu' 160 contém a hierarquia de objetos de bloco de menu que estão conceituai mente ilustrados na Figura 2.5. No topo da hierarquia está o bloco de 'WowMenuManager' 170. O bloco de 'WowMenuManager' pode conter um ou mais blocos de 'LanguageMenus' 172 e um bloco de 'Media' 174.
[00197] A utilização de blocos de 'Language Menus' 172 permite que o bloco de 'DMNU' 158 contenha as informações de menu em di
Petição 870180023875, de 23/03/2018, pág. 51/160
47/112 ferentes linguagens. Cada bloco de 'LanguageMenus' 172 contém as informações utilizadas para gerar um conjunto completo de menus em uma linguagem especificada. Portanto, o bloco de 'LanguageMenus' inclui um identificador que identifica a linguagem das informações associadas com o bloco de 'LanguageMenus'. O bloco de 'LanguageMenus' também inclui uma lista de blocos de 'WowMenu' 175.
[00198] Cada bloco de 'WowMenu' 175 contém todas as informações a serem exibidas na tela para um menu específico. Estas informações podem incluir um vídeo e áudio de fundo. As informações podem também incluir os dados referentes às ações dos botões que podem ser utilizados para acessar outros menus ou para sair do menu e começas a exibir uma porção do arquivo de multimídia. Em uma modalidade, o bloco de WowMenu' 175 inclui uma lista de referências de mídia. Estas referências referem-se a informações contidas no bloco de 'Media' 174, o qual será discutido adicionalmente abaixo. As referências à mídia podem definir o vídeo de fundo e o áudio de fundo para um menu. O bloco de 'WowMenu' 175 também define uma sobreposição que pode ser utilizada para realçar um botão específico, quando um menu é primeiramente acessado.
[00199] Além disso, cada bloco de 'WowMenu' 175 inclui um número de blocos de 'ButtonMenu' 176. Cada bloco de 'ButtonMenu' 176 define as propriedades de um botão na tela. O bloco de 'ButtonMenu' pode descrever, tais coisas como a sobreposição a utilizar quando o botão é realçado pelo usuário, o nome do botão e o que fazer em resposta a várias ações executadas por um usuário que navega através do menu. As respostas às ações são definidas referenciando um bloco de 'Action' 178. Uma única ação, por exemplo, selecionar um botão, pode resultar em diversos blocos de 'Action' sendo acessado. Em modalidades onde o usuário é capaz de interagir com o menu utilizando um dispositivo, tal como um mouse que permite que um ponteiro na
Petição 870180023875, de 23/03/2018, pág. 52/160
48/112 tela se mova ao redor do display em um modo irrestrito, a localização na tela dos botões pode ser definida utilizando um bloco de 'MenuRectangle' 180. O conhecimento da localização na tela do botão permite ao sistema determinar se um usuário está selecionando um botão, quando utilizando um dispositivo de entrada de livre alcance.
[00200] Cada bloco de 'Action' identifica um ou mais de um número de diferentes variedade de blocos relativos a ações, os quais podem incluir um bloco de 'PlayAction' 182, um bloco de 'MenuTransitionActiori 184, um bloco 'ReturnToPlayAction' 186, um bloco de 'AudioSelectAction' 188, um bloco de 'SubtitileSelectAction' 190 e um bloco de 'ButtonTransitionAction' 191. Um bloco de 'PlayAction' 182 identifica uma porção de cada uma das trilhas de vídeo, de áudio e de legenda dentro de um arquivo de multimídia. O bloco de 'PlayAction' referencia uma porção da trilha de vídeo utilizando uma referência a um bloco de 'MediaTrack' bloco (ver discussão abaixo). O bloco de 'PlayAction' identifica as trilhas de áudio e de legenda utilizando os blocos de 'SubtitleTrack' 192 e de 'AudioTrack' 194. Os blocos de 'SubtitleTrack' e de 'AudioTrack' ambos contém referências a um bloco de 'MediaTrack' 198. Quando um bloco de 'PlayAction' forma a base de uma ação de acordo com as modalidades da presente invenção, as trilhas de áudio e de legenda que são selecionadas são determinadas pelos valores de variáveis determinadas inicialmente como padrão e então potencialmente modificadas por interações do usuário com o menu.
[00201] Cada bloco de ‘MenuTransitionAction’ 184 contém uma referência a um bloco de ‘WowMenu’ 175. Esta referência pode ser utilizada para obter as informações para a transição para e exibir outro menu.
[00202] Cada bloco de ‘ReturnToPlayAction’ 186 contém as informações que permitem que um reprodutor retorne para uma porção do arquivo de multimídia que estava sendo acessado antes do usuário
Petição 870180023875, de 23/03/2018, pág. 53/160
49/112 trazer um menu.
[00203] Cada bloco de ‘AudioSelectAction’ 188 contém as informações que podem ser utilizadas para selecionar uma trilha de áudio específica. Em uma modalidade, a trilha de áudio é selecionada de trilhas de áudio contidas em um arquivo de multimídia de acordo com uma modalidade da presente invenção. Em outras modalidades, a trilha de áudio pode estar localizada em um arquivo externamente referenciado.
[00204] Cada bloco de ‘SubtitleSelectAction’ 190 contém as informações que podem ser utilizadas para selecionar uma trilha de legenda específica. Em uma modalidade, a trilha de legenda é selecionada de uma legenda contida em um arquivo de multimídia de acordo com uma modalidade da presente invenção. Em outras modalidades, a trilha de legenda pode estar localizada em um arquivo externamente referenciado.
[00205] Cada bloco de ‘ButtonTransitionAction’ 191 contém as informações que podem ser utilizadas para transicionar para outro botão no mesmo menu. Isto é executado após outras ações associadas com um botão terem sido executadas.
[00206] O bloco de ‘Media’ 174 inclui um número de blocos de ‘MediaSource’ 166 e de blocos de ‘MediaTrack’ 198. O bloco de ‘Media’ define todas as trilhas de multimídia (por exemplo, áudio, vídeo, legenda) utilizadas pelo filme e pelo sistema de menu. Cada bloco de ‘MediaSource’ 196 identifica um bloco de RIFF dentro do arquivo de multimídia de acordo com uma modalidade da presente invenção, o qual, por sua vez, pode incluir múltiplos blocos de RIFF. Cada bloco de ‘MediaTrack’ 198 identifica uma porção de uma trilha de multimídia dentro de um bloco de RIFF especificado por um bloco de ‘MediaSource’.
[00207] O bloco de ‘MRIF’ 162 é, essencialmente, o seu próprio pe
Petição 870180023875, de 23/03/2018, pág. 54/160
50/112 queno arquivo de multimídia em conformidade com o formato RIFF. O bloco de 'MRIFF' contém trilhas de áudio, de vídeo e de legenda que podem ser utilizadas para prover áudio e vídeo de fundo e sobreposições para os menus. O bloco de ‘MRIF’ pode também conter um vídeo a ser utilizado como sobreposições para indicar os botões de menu realçados. Nas modalidades onde menos dados de menu são requeridos, o vídeo de fundo pode ser um quadro parado (uma variação do formato AVI) ou uma pequena seqüência de quadros idênticos. Em outras modalidades, seqüências de vídeo mais elaboradas podem ser utilizadas para prover o vídeo de fundo.
[00208] Como acima discutido, os vários blocos que fazem parte de um bloco de ‘WowMenu’ 175 e o próprio bloco de ‘WowMenu’ contém referências a trilhas de mídia reais. Cada uma destas referências é tipicamente para uma trilha de mídia definida no bloco de LISTA de ‘hdrl’ de um bloco de RIFF.
[00209] Outros blocos que podem ser utilizados para criar um bloco de ‘DMNU’ de acordo com a presente invenção estão mostrados na Figura 2.6. O bloco de ‘DMNU’ inclui um bloco de ‘WowMenuManager’ 170’. O bloco de ‘WowMenuManager’ 170’ pode conter pelo menos um bloco de ‘LanguageMenus’ 172’, pelo menos um bloco de ‘Media’ 174’ e pelo menos um bloco de ‘TranslationTable’ 200.
[00210] O conteúdo do bloco de ‘LanguageMenus’ 172’ é grandemente similar àquele do bloco de ‘LanguageMenus’ 172 ilustrado na Figura 2.5. A diferença principal é que o bloco de ‘PlayAction’ 182’ não contém os blocos de ‘SubtitleTrack’ 192 e os blocos de ‘AudioTrack’ 194.
[00211] O bloco de ‘Media’ 174’ é significativamente diferente do bloco de ‘Media’ 174 mostrado na Figura 2.5. O bloco de ‘Media’ 174’ contém pelo menos um bloco de ‘Title’ 202 e pelo menos um bloco de ‘MenuTracks’ 204. O bloco de ‘Title’ refere-se a um título dentro do ar
Petição 870180023875, de 23/03/2018, pág. 55/160
51/112 quivo de multimídia. Como acima discutido, os arquivos de multimídia de acordo com as modalidades da presente invenção podem incluir mais do que um título (por exemplo, múltiplos episódios em uma série de televisão, uma série relativa de filmes de comprimento total ou simplesmente uma seleção de diferentes filmes). O bloco de ‘MenuTracks’ 204 contém as informações referentes às informações de mídia que são utilizadas para criar um display de menu e a trilha de som de áudio e as legendas que acompanham o display.
[00212] O bloco de ‘Title’ pode conter pelo menos um bloco de ‘Chapter’ 206. O bloco de ‘Chapter’ 206 referencia uma cena dentro de um título específico. O bloco de ‘Chapter’ 206 contém referências às porções de trilha de vídeo, cada trilha de áudio e cada trilha de legenda que correspondem à cena indicada pelo bloco de ‘Chapter’. Em uma modalidade, as referências são implementadas utilizando os blocos de ‘MediaSource’ 196’ e os blocos de ‘MediaTrack’ 198’ similares àqueles acima descritos em relação à Figura 2.5. Em diversas modalidades, um bloco de ‘MediaTrack’ referencia a porção apropriada da trilha de vídeo e um número de blocos de ‘MediaTrack’ adicionais cada um referencia uma das trilhas de áudio ou trilhas de legenda. Em uma modalidade, todas as trilhas de áudio e as trilhas de legenda que correspondem a uma trilha de vídeo específica são referenciadas utilizando blocos de ‘MediaTrack’ separados.
[00213] Como acima descrito, os blocos de ‘MenuTracks’ 204 contém referências à mídia que é utilizada para gerar o áudio, o vídeo e a mídia de sobreposição dos menus. Em uma modalidade, as referências às informações de mídia são feitas utilizando os blocos de ‘MediaSource’ 196’ e os blocos de ‘MediaTrack’ 198’ contidos no bloco de ‘MenuTracks’. Em uma modalidade, os blocos de ‘MediaSource’ 196’ e os blocos de ‘MediaTrack’ 198’ são implementados no modo acima descrito em relação à Figura 2.5.
Petição 870180023875, de 23/03/2018, pág. 56/160
52/112 [00214] O bloco de ‘TranslationTable’ 200 pode ser utilizado para conter seqüências de texto que descrevem cada título e capítulo em uma variedade de linguagens. Em uma modalidade, o bloco de ‘TranslationTable’ 200 inclui um bloco de ‘TranslationLookup’ 208. Cada bloco de ‘TranslationLookup’ 208 está associado com um bloco de ‘Title’ 202, um bloco de ‘Chapter’ 206 ou um bloco de ‘MediaTrack’ 196’ e contém um número de blocos de ‘Translation’ 210. Cada um dos bloco de ‘Translation’ em um bloco de ‘TranslationLookup’ contém uma seqüência de texto que descreve o bloco associado com o bloco de ‘TranslationLookup’ em uma linguagem indicada pelo bloco de ‘Translation’.
[00215] Um diagrama que ilustra conceituai mente as relações entre os vários blocos contidos em um bloco de ‘DMNU’ está ilustrado na Figura 2.6.1. A figura mostra a contenção de um bloco por outro bloco utilizando uma seta cheia. A direção na qual a seta aponta indica o bloco contido pelo bloco do qual a seta origina. As referências por um bloco a outro bloco estão indicadas por uma linha tracejada, onde o bloco referenciado está indicado pela seta tracejada.
2.6. O Bloco de ‘junk’ [00216] O bloco de ‘junk’ 41 é um bloco opcional que pode ser incluído em arquivos de multimídia de acordo com as modalidades da presente invenção. A natureza do bloco de ‘junk’ é especificada no formato de arquivo AVI.
2.7. O Bloco de Lista de ‘movi’ [00217] O bloco de lista de ‘movi’ 42 contém um número de blocos de ‘data’. Exemplos de informações que os blocos de ‘data’ podem conter são os dados de áudio, de vídeo ou de legenda. Em uma modalidade, o bloco de lista de ‘movi’ inclui os dados para pelo menos uma trilha de vídeo, múltiplas trilhas de áudio e múltiplas trilhas de legenda. [00218] A intercalação de blocos de ‘data’ no bloco de lista de ‘movi’
Petição 870180023875, de 23/03/2018, pág. 57/160
53/112 de um arquivo de multimídia que contém uma trilha de vídeo, três trilhas de áudio e três trilhas de legenda está ilustrada na Figura 2.7. Para o bem da conveniência, um bloco de ‘data’ que contém um vídeo será descrito como um bloco de ‘video’, um bloco de ‘data’ que contém um áudio será referido como um bloco de ‘audio’ e um bloco de ‘data’ que contém legendas será referenciado como um bloco de ‘subtitle’. No bloco de lista ‘movi’ 42 ilustrado, cada bloco de ‘video’ 262 está separado do próximo bloco de ‘video’ por blocos de ‘audio’ 264 de cada uma das trilhas de áudio. Em diversas modalidades, os blocos de ‘audio’ contém a porção da trilha de áudio que corresponde à porção de vídeo contida no bloco de ‘video’ após o bloco de ‘audio’.
[00219] Os blocos de ‘video’ adjacentes podem também estar separados por um ou mais blocos de ‘subtitle’ 266 de uma das trilhas de legenda. Em uma modalidade, o bloco de ‘subtitle’ 266 inclui uma legenda e um tempo de partida e um tempo de parada. Em diversas modalidades o bloco de ‘subtitle’ é intercalado no bloco de lista de ‘movi’ de modo que o bloco de ‘video’ que segue o bloco de ‘subtitle’ inclui a porção de vídeo que ocorre no tempo de partida da legenda. Em outras modalidades, o tempo de partida de todos os blocos de ‘subtitle’ e de ‘audio’ está à frente do tempo de partida equivalente do vídeo. Em uma modalidade os blocos de ‘audio’ e de ‘subtitle’ podem estar colocados dentro de 5 segundos do bloco de ‘video’ correspondente e em outras modalidades os blocos de ‘audio’ e de ‘subtitle’ podem estar colocados dentro de um tempo relativos à quantidade de vídeo capaz de ser armazenada por um dispositivo capaz de exibir o áudio e o vídeo dentro do arquivo.
[00220] Em uma modalidade os blocos de ‘data’ incluem um código ‘FOURCC’ para identificar o fluxo ao qual o bloco de 'data' pertence. O código ‘FOURCC’ consiste em um número de fluxo de dois dígitos seguido por um código de dois caracteres que define o tipo de informa
Petição 870180023875, de 23/03/2018, pág. 58/160
54/112 ção no bloco . (Raider) Um código ‘FOURCC’ alternativo consiste em um código de dois caracteres que define o tipo de informação no bloco seguido pelo número de fluxo de dois dígitos. Exemplos do código de dois caracteres estão mostrados na tabela seguinte:
Código de dois caracteres |
Descrição |
db |
Quadro de vídeo não comprimido |
dc |
Quadro de vídeo comprimido |
dd |
Informações de chave para o quadro de vídeo |
PC |
Mudança de paleta |
wb |
Dados de áudio |
st |
Legenda (modo de texto) |
sb |
Legenda (modo de mapa de bits) |
ch |
Capítulo |
Tabela 2 - Códigos de dois caracteres selecionados utilizados nos códigos FOURCC [00221] Em uma modalidade, a estrutura dos blocos de ‘video’ 262 e dos blocos de ‘audio’ 264 está em conformidade com o formato de arquivo AVI. Outros formatos para os blocos podem ser utilizados que especificam a natureza da mídia e contém a mídia codificada.
[00222] Em diversas modalidades os dados contidos em um bloco de ‘subtitle’ 266 podem ser representados como segue:
typedef struct _subtitlebloco {
FOURCC fcc;
DWORD cb;
STR duration;
STR subtitle;
} SUBTITLEBLOCO;
[00223] O valor de ‘fcc’ é o código FOURCC que indica a trilha de legenda e a natureza da trilha de legenda (modo de texto ou de mapa de bits). O valor de ‘cb’ especifica o tamanho da estrutura. O valor de ‘duration’ especifica o tempo no ponto de início e de fim da legenda.
Petição 870180023875, de 23/03/2018, pág. 59/160
55/112
Em uma modalidade, este pode estar na forma hh:mm:ss.xxxhh:mm:ss.xxx. O hh representa as horas, mm os minutos, ss os segundos e xxx os milisegundos. O valor de ‘subtitle’ contém ou o texto Unicode da legenda no modo de texto ou uma imagem de mapa de bits da legenda no modo de mapa de bits. Diversas modalidades da presente invenção utilizam imagens de mapa de bits comprimidas para representar as informações de legenda. Em uma modalidade, o campo ‘subtitle’ contém as informações referentes à largura, altura e a posição na tela da legenda. Além disso o campo ‘subtitle’ poder também conter as informações de cor e os pixels reais do mapa de bits. Em diversas modalidades, uma codificação de comprimento de operação é utilizada para reduzir a quantidade de informações de pixels requerida para representar o mapa de bits.
[00224] Os arquivos de multimídia de acordo com as modalidades da presente invenção podem incluir o gerenciamento de direitos digitais. Estas informações podem ser utilizadas em aplicações de vídeo sob demanda. Os arquivos de multimídia que são protegidos por gerenciamento de direitos digitais podem somente ser reproduzidos corretamente em um reprodutor ao qual tenha sido concedido o direito de reprodução específico. Em uma modalidade, o fato de que uma trilha está protegida por gerenciamento de direitos digitais pode estar indicado nas informações sobre a trilha no bloco de lista de 'hdrl' (ver descrição acima). Um arquivo de multimídia de acordo com uma modalidade da presente invenção que inclui uma trilha protegida por gerenciamento de direitos digitais pode também conter as informações sobre o gerenciamento de direitos digitais no bloco de lista de ‘movi’.
[00225] Um bloco de lista de 'movi' de um arquivo de multimídia de acordo com uma modalidade da presente invenção que inclui uma trilha de vídeo, múltiplas trilhas de áudio, e pelo menos uma trilha de legenda e informações que permitem o gerenciamento de direitos digi
Petição 870180023875, de 23/03/2018, pág. 60/160
56/112 tais está ilustrado na Figura 2.8. O bloco de lista de ‘movi’ 42’ é similar ao bloco de lista de ‘movi’ mostrado na Figura 2.7 com a adição de um bloco de ‘DRM’ 270 antes de cada bloco de vídeo 262’. Os blocos de ‘DRM’ 270 são blocos de ‘data’ que contêm as informações de gerenciamento de direitos digitais, as quais podem ser identificadas por um ‘nndd’ de código FOURCC. Os primeiros dois caracteres ‘nn’ referemse ao número da trilha e os segundos dois caracteres são ‘dd’ para significar que o bloco contém as informações de gerenciamento de direitos digitais. Em uma modalidade, o bloco de ‘DRM’ 270 provê as informações de gerenciamento de direitos digitais para o bloco de ‘video’ 262’ após o bloco de ‘DRM’. Um dispositivo que tenta reproduzir a trilha de vídeo protegida por gerenciamento de direitos digitais utiliza as informações no bloco de ‘DRM’ para decodificar as informações de vídeo no bloco de ‘video’. Tipicamente, a ausência de um bloco de ‘DRM’ antes de um bloco de 'video’ é interpretada como significando que o bloco de ‘video’ está desprotegido.
[00226] Em um sistema de criptografia de acordo com uma modalidade da presente invenção, os blocos de vídeo são somente parcialmente criptografados. Onde uma criptografia parcial é utilizada, os blocos de ‘DRM’ contém uma referência à porção de um bloco de ‘video’ que está criptografado e uma referência à chave que pode ser utilizada para decifrar a porção criptografada. As chaves de decifração podem estar localizadas em um cabeçalho de ‘DRM’, o qual faz parte do bloco de ‘strd’ (ver descrição acima). As chaves de decifração são misturadas e criptografadas com uma chave mestre. O cabeçalho de ‘DRM’ também contém as informações que identificam a chave mestre.
[00227] Uma representação conceituai das informações em um bloco de ‘DRM’ está mostrada na Figura 2.9. O bloco de 'DRM’ pode incluir um valor de ‘frame’ 280, um valor de 'status’ 282, um valor de Offset’ 284, um valor de ‘number’ 286 e um valor de ‘key’ 288. O valor
Petição 870180023875, de 23/03/2018, pág. 61/160
57/112 de ‘frame’ pode ser utilizada para referenciar o quadro de vídeo criptografado. O valor de ‘status’ pode ser utilizado para indicar se o quadro está criptografado, o valor de Offset’ 284 aponta para o início do bloco criptografado dentro do quadro e o valor de ‘number’ 286 indica o número de bytes criptografados no bloco. O valor de ‘key’ 288 referencia a chave de decifração que pode ser utilizada para decifrar o bloco.
2.8. O Bloco de *idx1 ’ [00228] O bloco de ‘idx1 ’ 44 é um bloco opcional que pode ser utilizado para indexar os blocos de ‘data’ no bloco de lista de ‘movi’ 42. Em uma modalidade, o bloco de ‘idx1 ’ pode ser implementado como especificado no formato AVI. Em outras modalidades o bloco de ‘idx1 ’ pode ser implementado utilizando estruturas de dados que referenciam a localização dentro do arquivo de cada um dos blocos de ‘data’ no bloco de lista de ‘movi’. Em diversas modalidades, o bloco de ‘idx1’ identifica cada bloco de ‘data’ pelo número de trilhas dos dados e pelo tipo dos dados. Os códigos FOURCC referidos acima podem ser utilizados para este propósito.
3. Codificando um Arquivo de Multimídia [00229] As modalidades da presente invenção podem ser utilizadas para gerar arquivos de multimídia em um número de modos. Em um caso, os sistemas de acordo com as modalidades da presente invenção podem gerar arquivos de multimídia de arquivos que contêm trilhas de vídeo, trilhas de áudio e trilhas de legenda separadas. Em, tais casos, outras informações, tais como, as informações de menu e ‘metadata’ podem ser autorizadas e inseridas no arquivo.
[00230] Outros sistemas de acordo com as modalidades da presente invenção podem ser utilizadas para extrair as informações dos vários arquivos em um Disco de Vídeo Digital (DVD) e autorizar um único arquivo de multimídia de acordo com uma modalidade da presente invenção. Onde um DVD é a fonte inicial das informações, os
Petição 870180023875, de 23/03/2018, pág. 62/160
58/112 sistemas de acordo com as modalidades da presente invenção podem utilizar um codec para obter uma maior compressão e podem re-bloco o áudio de modo que os blocos de áudio correspondam aos blocos de vídeo no arquivo de multimídia recentemente criado. Além disso, as informações de menu no sistema de menu de DVD podem ser analisadas e utilizadas para gerar as informações de menu incluídas no arquivo de multimídia.
[00231] Outras modalidades podem gerar um novo arquivo de multimídia pela adição de um conteúdo adicional a um arquivo de multimídia existente de acordo com uma modalidade da presente invenção. Um exemplo de adicionar um conteúdo adicional seria adicionar uma trilha de áudio adicional ao arquivo, tal como uma trilha de áudio que contém um comentário (por exemplo, os comentários do diretor, a narrativa posteriormente criada de um vídeo de férias). As informações de trilha de áudio adicional intercaladas no arquivo de multimídia poderíam também ser acompanhadas por uma modificação das informações de menu no arquivo de multimídia para permitir a reprodução da nova trilha de áudio.
3.1. Geração Utilizando Trilhas de Dados Armazenadas [00232] Um sistema de acordo com uma modalidade da presente invenção para gerar um arquivo de multimídia está ilustrado na Figura 3.0. O componente principal do sistema 350 é o intercalador 352. O intercalador recebe os blocos de informações e os intercala para criar um arquivo de multimídia de acordo com uma modalidade da presente invenção no formato acima descrito. O intercalador também recebe as informações referentes a ‘metadata’ de um gerenciador de metadados 354. O intercalador emite um arquivo de multimídia de acordo com as modalidades da presente invenção para um dispositivo de armazenamento 356.
[00233] Tipicamente os blocos providos para o intercalador são ar
Petição 870180023875, de 23/03/2018, pág. 63/160
59/112 mazenados em um dispositivo de armazenamento. Em diversas modalidades, todos os blocos são armazenados no mesmo dispositivo de armazenamento. Em outras modalidades, os blocos podem ser providos para o intercalador de uma variedade de dispositivos de armazenamento ou gerados e providos para o intercalador em tempo real. [00234] Na modalidade ilustrada na Figura 3.0, o bloco de ‘DMNU’ 358 e o bloco de ‘DXDT’ 360 já foram gerados e estão armazenados em dispositivos de armazenamentos. A fonte de vídeo 362 está armazenada em um dispositivo de armazenamento e é decodificada utilizando um decodificador de vídeo 364 e então codificada utilizando um codificador de vídeo 366 para gerar um bloco de ‘video’. As fontes de áudio 368 estão também armazenadas em dispositivo de armazenamento. Os blocos de áudio são gerados pela decodificação da fonte de áudio utilizando um decodificador de áudio 370 e então codificando o áudio decodificado utilizando um codificador de áudio 372. Os blocos de ‘Subtitle’ são gerados de legendas de texto 374 armazenadas em um dispositivo de armazenamento. As legendas são providas para um primeiro transcodificador 376 o qual converte qualquer um de um número de formatos de legenda em um formato de mapa de bits bruto. Em uma modalidade, o formato de legenda armazenado pode ser um formato, tal como SRT, SUB ou SSA. Além disso, o formato de mapa de bits pode ser aquele de um mapa de bits de quatro bits que inclui uma tabela de consulta de paleta de cor. A tabela de consulta de paleta de cor inclui uma identificação de profundidade de cor de 24 bits para cada um dos dezesseis códigos de cor de quatro bits possíveis. Um único arquivo de multimídia pode incluir mais do que uma tabela de consulta de paleta de cor (ver o código FOURCC de paleta pc na Tabela 2 acima). O mapa de bits de quatro bits assim permite que cada menu tenha 16 diferentes cores simultâneas tomadas de uma paleta de 16 milhões de cores. Em modalidades alternativas diferentes núme
Petição 870180023875, de 23/03/2018, pág. 64/160
60/112 ros de bits por pixel e diferentes profundidade de cor são utilizados. A saída do primeiro transcodificador 376 é provida para um segundo transcodificador 378, o qual comprime o mapa de bits. Em uma modalidade a codificação de comprimento de operação é utilizada para comprimir o mapa de bits. Em outras modalidades, outros formatos de compressão adequados são utilizados.
[00235] Em uma modalidade, as interfaces entre os vários codificadores, decodificadores e transcodificadores estão em conformidade com os padrões Direct Show especificados pela Microsoft Corporation. Em outras modalidades, o software utilizado para executar a codificação, a decodificação e a transcodificação não precisam estar em conformidade com, tais padrões.
[00236] Na modalidade ilustrada, componentes de processamento separados estão mostrados para cada fonte de mídia. Em outras modalidades, os recursos podem ser compartilhados. Por exemplo, um único decodificador de áudio e codificador de áudio podería ser utilizado para gerar os blocos de áudio de todas as fontes. Tipicamente, o sistema inteiro pode ser implementado em um computador utilizando um software e conectado a um dispositivo de armazenamento, tal como uma unidade de disco rígido.
[00237] De modo a utilizar o intercalador no modo acima descrito, o bloco de ‘DMNU’, o bloco de ‘DXDT’, os blocos de ‘video’, os blocos de ‘audio’ e os blocos de ‘subtitle’ de acordo com as modalidades da presente invenção devem ser gerados e providos para o intercalador. O processo para gerar cada um dos vários blocos em um arquivo de multimídia de acordo com uma modalidade da presente invenção é discutido abaixo em maiores detalhes.
3.2. GERANDO UM BLOCO DE ‘DXDT’ [00238] O bloco de ‘DXDT’ pode ser gerado em um de um número de modos. Em uma modalidade ‘metadata’ são inseridos em estruturas
Petição 870180023875, de 23/03/2018, pág. 65/160
61/112 de dados através de uma interface gráfica do usuário e então analisados em um bloco de ‘DXDT’. em uma modalidade, os ‘metadata’ são expressos como sentenças de séries de sujeito, predicado, objeto e autoridade. Em outra modalidade as sentenças de ‘metadata’ são expressas em qualquer um de uma variedade de formatos. Em diversas modalidades, cada sentença de ‘metadata’ é analisada em um bloco separado, Em outras modalidades, diversas sentenças de ‘metadata’ em um primeiro formato (tais como, expressões de sujeito, predicado, objeto, autoridade) são analisadas em um primeiro bloco e outras sentenças de ‘metadata’ em outros formatos são analisadas em blocos separados. Em uma modalidade, as sentenças de ‘metadata’ estão escritas em um arquivo de configuração XML e o arquivo de configuração XML é analisado para criar os blocos dentro de um bloco de ‘DXDT’.
[00239] Uma modalidade de um sistema para gerar um bloco de ‘DXDT’ de uma série de sentenças de ‘metadata’ contidas em um arquivo de configuração XML está mostrada na Figura FIG. 3.1. O sistema 380 inclui um arquivo de configuração XML 382, o qual pode ser provido para um analisador 384. O arquivo de configuração XML inclui os ‘metadata’ codificados como XML. O analisador analisa o XML e gera um bloco de ‘DXDT’ 386 pela conversão da sentença de ‘metadata’ em blocos que são escritos no bloco de ‘DXDT’ de acordo com qualquer um dos formatos de bloco ‘metadata’ acima descrito.
3.3. Gerando um Bloco de ‘DMNU’ [00240] Um sistema que pode ser utilizado para gerar um bloco de ‘DMNU’ de acordo com uma modalidade da presente invenção está ilustrado na Figura 3.2. O sistema de geração de bloco de menu 420 requer como entradas um modelo de mídia 422 e informações de mídia. As informações de mídia podem tomar a forma de uma fonte de vídeo 424, uma fonte de áudio 426 e uma fonte de sobreposição 428.
Petição 870180023875, de 23/03/2018, pág. 66/160
62/112 [00241] A geração de um bloco de ‘DMNU’ utilizando as entradas para o sistema de geração de bloco de menu envolve a criação de um número de arquivos intermediários. O modelo de mídia 422 é utilizado para criar um arquivo de configuração XML 430 e as informações de mídia são utilizadas para criar um número de arquivos AVI 432. O arquivo de configuração XML é criado por um transcodificador de modelo 434. Os arquivos AVI 432 são criados intercalando as informações de vídeo, de áudio e de sobreposição utilizando um intercalador 436. As informações de vídeo são obtidas pela utilização de um decodificador de vídeo 438 e um codificador de vídeo 440 para decodificar a fonte de vídeo 424 e recodificá-la no modo abaixo discutido. As informações de áudio são obtidas pela utilização de um decodificador de áudio 442 e um codificador de áudio 444 para decodificar o áudio e recodificá-lo no modo abaixo descrito. As informações de sobreposição são geradas utilizando um primeiro transcodificador 446 e um segundo transcodificador 448. O primeiro transcodificador 446 converte a sobreposição em uma representação gráfica, tal como uma mapa de bits padrão e o segundo transcodificador pegas as informações gráficas e as formatas como é requerido para inclusão no arquivo de multimídia. Uma vez que o arquivo XML e os arquivos AVI que contém as informações requeridas para construir os menus foram gerados, o gerador de menu 450 pode utilizar as informações para gerar um bloco de ‘DMNU’ 358’.
3.3.1. O Modelo de Menu [00242] Em uma modalidade, o modelo de mídia é um modelo orientado em objeto que representa todos os menus e seus subcomponentes. O modelo de mídia organizas os menus em uma estrutura hierárquica, o que permite que os menus sejam organizados por seleção de linguagem. Um modelo de mídia de acordo com uma modalidade da presente invenção está ilustrado na Figura 3.3. O modelo de mídia
Petição 870180023875, de 23/03/2018, pág. 67/160
63/112
460 inclui um objeto de ‘MediaManager’ de nível superior 462, o qual está associado com um número de objetos de ‘LanguageMenus’ 463, um objeto de ‘Media’ 464 e um objeto de ‘TranslationTable’ 465. O ‘Menu Manager’ também contém a linguagem de menu padrão. Em uma modalidade, a linguagem padrão pode ser indicada pelo código de linguagem de duas letras ISO 639.
[00243] Os objetos de ‘LanguageMenus’ organizam as informações para vários menus por seleção de linguagem. Todos os objetos de ‘Menu’ 466 para uma dada linguagem estão associados com o objeto de ‘LanguageMenus’ 463 para aquela linguagem. Cada objeto de ‘Menu’ está associado com um número de objetos de ‘Button’ 468 e referencia um número de objetos de ‘MediaTrack’ 488. Os objetos de ‘MediaTrack’ 488 referenciados indicam o vídeo de fundo e o áudio de fundo para o objeto de ‘Menu’ object 466.
[00244] Cada objeto de ‘Button’ 468 está associado com um objeto de ‘Action’ 470 e um objeto de 'Rectangle’ 484. O objeto de ‘Button’ 468 também contém uma referência a um objeto de ‘MediaTrack’ 488 que indica a sobreposição a ser utilizada quando o botão está realçado em um display. Cada objeto ‘Action’ 470 está associado com um número de objetos que podem inclui um objeto de ‘MenuTransition’ 472, um objeto de ‘ButtonTransition’ 474, um objeto de ‘ReturnToPlay’ 476, um objeto de ‘Subtitle Selection’ 478, um objeto de ‘AudioSelection’ 480 e um objeto de ‘PlayAction’ 482. Cada um destes objetos define a resposta do sistema de menu para várias entradas de um usuário. O objeto de ‘MenuTransition’ contém uma referência a um objeto de ‘Menu’ que indica um menu que deve ser transicionado em resposta a uma ação. O objeto de ‘ButtonTransition’ indica um botão que deve ser realçado em resposta a uma ação, objeto de ‘ReturnToPlay’ pode fazer com que um reprodutor continue a reproduzir um filme. Os objetos de ‘SubtitleSelection’ e de ‘AudioSelection’ contém referências a obje
Petição 870180023875, de 23/03/2018, pág. 68/160
64/112 tos de ‘Title’ 487 (abaixo discutidos). O objeto de ‘PlayAction’ contém uma referência a um objeto de ‘Chapter’ 492 (abaixo discutido). O objeto de ‘Rectangle’ 484 indica a porção da tela ocupada pelo botão. [00245] O objeto de ‘Media’ 464 indica as informações de mídia referenciadas pelo sistema de menu. O objeto de ‘Media’ tem um objeto de ‘MenuTracks’ 486 e um número de objetos de ‘Title’ 487 associados com este. O objeto de ‘MenuTracks’ 486 referência os objetos de 'MediaTrack’ 488 que são indicativos da mídia utilizada para construir o menu (isto é, o áudio de fundo, o vídeo de fundo e as sobreposições). [00246] Os objetos de ‘Title’ 487 são indicativos de uma apresentação de multimídia e tem um número de objetos de ‘Chapter’ 492 e de objetos de ‘MediaSource’ 490 associados com estes. Os objetos de ‘Title’ também contêm uma referência a um objeto de ‘TranslationLookup’ 494. Os objetos de ‘Chapter’ são indicativos de um certo ponto em uma apresentação de multimídia e tem um número de objetos de ‘MediaTrack’ 488 associados com estes. Os objetos de ‘Chapter’ também contêm uma referência a um objeto de ‘TranslationLookup’ 494. Cada objeto de ‘MediaTrack’ associado com um objeto de ‘Chapter’ é indicativo de um ponto em qualquer uma de uma trilha de áudio, de vídeo ou de legenda da apresentação de multimídia e referencia a um objeto de ‘MediaSource’ 490 e um objeto de ‘TranslationLookup’ 494 (abaixo discutido).
[00247] O objeto de ‘TranslationTable’ 465 agrupa um número de seqüências de texto que descrevem as várias partes de apresentações de multimídia indicadas pelos objetos de ‘Title’ pelos objetos de ‘Chapter’ e pelos objetos de ‘MediaTrack’. O objeto de ‘TranslationTable’ 465 tem um número de objetos de ‘TranslationLookup’ 494 associados com este. Cada objeto de ‘TranslationLookup’ é indicativo de um objeto específico e tem um número de objetos de ‘Translation’ 496 associados com este. Os objetos de ‘Translation’ são cada um indicativo de
Petição 870180023875, de 23/03/2018, pág. 69/160
65/112 uma seqüência de texto que descreve o objeto indicado pelo objeto de ‘Translationl_ookup’em uma linguagem específica.
[00248] Um modelo de objeto de mídia pode ser construído utilizando um software configurado para gerar os vários objetos acima descritos e estabelecer as associações e referências requeridas entre os objetos.
3.3.2. Gerando um Arquivo XML [00249] Um arquivo de configuração XML é gerado do modelo de menu, o qual reapresenta todos os menus e seus subcomponentes. O arquivo de configuração XML também identifica todos os arquivos de mídia utilizados pelos menus. O XML pode ser gerado pela implementação de uma aplicação de analisador apropriada que analisa o modelo de objeto em um código XML.
[00250] Em outras modalidades uma aplicação de edição de vídeo pode prover um usuário com uma interface do usuário que permite a geração direta de uma arquivo de configuração XML sem criar um modelo de menu.
[00251] Em modalidades onde outro sistema de menu é a base do modelo de menu, tal como um menu de DVD, os menus podem ser podados pelo usuário para eliminar as opções de menu relativas a um conteúdo não incluído no arquivo de multimídia gerado de acordo com a prática da presente invenção. Em uma modalidade, isto pode ser feito provendo uma interface gráfica do usuário que permite a eliminação de objetos do modelo de menu. Em outra modalidade, a poda de menus pode ser conseguida provendo uma interface gráfica do usuário ou uma interface de texto que possa editar o arquivo de configuração XML.
3.3.3. As Informações de Mídia [00252] Quando o bloco de ‘DMNU’ é gerado, as informações de mídia providas para o gerador de menu 450 incluem os dados requeri
Petição 870180023875, de 23/03/2018, pág. 70/160
66/112 dos para prover o vídeo de fundo, o áudio de fundo e as sobreposições de primeiro plano para os botões especificados no modelo de menu (ver descrição acima). Em uma modalidade, uma aplicação de edição de vídeo, tal como a VideoWave distribuída pela Roxio, Inc. de Santa Clara, CA é utilizada para prover as trilhas de mídia de fonte que representam o vídeo, o áudio e as sobreposições de seleção de botão para cada menu individual.
3.3.4. Gerando Arquivos avi Intermediários [00253] Como acima discutido, as trilhas de mídia que são utilizadas nas sobreposições de vídeo de fundo, de áudio de fundo e de botão de primeiro plano estão armazenadas em um único arquivo AVI para um ou mais menus. Os blocos que contém as trilhas de mídia em um arquivo AVI de menu podem ser criados pela utilização de um software projetado para intercalar as trilhas de vídeo, de áudio e de sobreposição de botão. Os blocos de ‘audio’, ‘video’ e Overlay’ (isto é, os blocos de ‘subtitle’ que contêm as informações de sobreposição) são intercalados em um arquivo em conformidade com o formato AVI utilizando um intercalador.
[00254] Como acima mencionado, um arquivo AVI separado pode ser criado para cada menu. Em outras modalidades, outros formatos de arquivo ou um único arquivo poderíam ser utilizados para conter as informações de mídia utilizadas para prover as informações de áudio de fundo, de vídeo de fundo e de sobreposição de primeiro plano.
3.3.5. Combinando o Arquivo de Configuração XML e os Arquivos AVI [00255] Em uma modalidade, um computador está configurado para analisar as informações do arquivo de configuração XML para criar um bloco de ‘WowMenu’ (acima descrito). Além disso, o computador pode criar um bloco de ‘MRIF’ (acima descrito) utilizando os arquivos AVI que contêm a mídia para cada menu. O computador pode então completar a geração do bloco de ‘DMNU’ pela criação das referências ne
Petição 870180023875, de 23/03/2018, pág. 71/160
67/112 cessárias entre o bloco de ‘WowMenu’ e os blocos de mídia no bloco de ‘MRIF’. Em diversas modalidades, as informações de menu podem ser criptografadas. A criptografia pode ser conseguida criptografando as informações de mídia contidas no bloco de ‘MRIF’ em um modo similar àquele abaixo descrito em relação aos blocos de ‘video’. Em outras modalidades, várias técnicas de criptografias alternativas são utilizadas.
3.3.6. Geração Automática de Menus do Modelo de Objeto [00256] Referindo de volta à Figura 3.3, um menu que contém menos conteúdo do que o menu completo pode ser automaticamente gerado do modelo de menu simplesmente examinando os objetos de ‘Title’ 487 associados com o objeto de ‘Media' 464. Os objetos utilizados para gerar automaticamente um menu de acordo com uma modalidade da invenção estão mostrados na Figura 3.3.1. Um software pode gerar um arquivo de configuração XML para um menu simples que simplesmente permite a seleção de uma seção específica de uma apresentação de multimídia e a seleção das trilhas de áudio e de legenda a utilizar.
3.3.7. Gerando Blocos de ‘DXDT’ e de ‘DMNU’ Utilizando um Único Arquivo de Configuração [00257] Os sistemas de acordo com diversas modalidades da presente invenção são capazes de gerar um único arquivo de configuração XML que contém tanto os ‘metadata’ quanto as informações de menu e que utilizam o arquivo XML para gerar os blocos de ‘DXDT’ e de ‘DMNU’. Estes sistemas derivam o arquivo de configuração XML utilizando as informações de ‘metadata’ e o modelo de objeto de menu. Em outras modalidades, o arquivo de configuração não precisa ser em XML.
3.4. Gerando Blocos de ‘audio’ [00258] Os blocos de ‘audio’ no bloco de lista de ‘movi’ de arquivos
Petição 870180023875, de 23/03/2018, pág. 72/160
68/112 de multimídia de acordo com as modalidades da presente invenção podem ser gerados pela decodificação de uma fonte de áudio e então codificando a fonte em blocos de ‘audio’ de acordo com a prática da presente invenção. Em uma modalidade, os blocos de ‘audio’ podem ser codificados utilizando um codec mp3.
3.4.1. Re-Bloco de áudio [00259] Quando a fonte de áudio está provida em blocos que não contêm as informações de áudio que correspondem ao conteúdo de um bloco de ‘video’ correspondente, então as modalidades da presente invenção podem executar o re-bloco do áudio. Um processo que pode ser utilizado para executar o re-bloco de áudio está ilustrado na Figura 3.4. O processo 480 envolve identificar (482) um bloco de ‘video’, identificar (484) as informações de áudio que acompanha o bloco de ‘video’ e extrair (486) as informações de áudio dos blocos de áudio existentes para criar (488) um novo bloco de ‘audio’. O processo é repetido até que a decisão (490 é tomada que a na fonte de áudio inteira foi executado o re-bloco. Em cujo ponto, a execução de re-bloco do áudio está completa (492).
3.5. Gerando os Blocos de ‘video’ [00260] Como acima descrito o processo de criar os blocos de vídeo pode envolver decodificar a fonte de vídeo e codificar o vídeo decodificado em blocos de ‘video’. Em uma modalidade, cada bloco de ‘video’ contém as informações para um único quadro de vídeo. O processo de decodificação simplesmente envolve tomar o vídeo em um formato específico e decodificar o vídeo daquele formato em um formato de vídeo padrão, o qual pode ser não comprimido. O processo de codificação envolve tomar o vídeo padrão, codificar o vídeo e gerar blocos de 'vídeo' utilizando o vídeo codificado.
[00261] Um codificador de vídeo de acordo com uma modalidade da presente invenção está conceituai mente ilustrado na Figura 3.5. O
Petição 870180023875, de 23/03/2018, pág. 73/160
69/112 codificador de vídeo 500 pré-processa 502 as informações de vídeo padrão 504. Uma estimativa de movimento 506 é então executada no vídeo pré-processado para prover uma compensação de movimento 508 para o vídeo pré-processado. Uma transformada de co-seno discreta (transformação de DCT) 510 é executada no vídeo compensado em movimento. Após a transformação de DCT, o vídeo é quantificado 512 e uma predição 514 é executada. Um fluxo de bits comprimido 516 é então gerado pela combinação de uma versão codificada em textura 518 do vídeo com uma codificação de movimento 520 gerada utilizando os resultados da estimativa de movimento. O fluxo de bits comprimido é então utilizado para gerar os blocos de 'vídeo'.
[00262] De modo a executar a estimativa de movimento 506, o sistema deve ter conhecimento de como o quadro de vídeo anteriormente processado será decodificado por um dispositivo de decodificação (por exemplo, quando o vídeo comprimido e descomprimido para ser assistido por um espectador). Estas informações podem ser obtidas pela quantificação inversa 522 da saída do quantificador 512. Uma DCT inversa 524 pode então ser executada na saída do quantificador inverso e o resultado colocado em um armazenamento de quadros 526 para acesso durante o processo de estimativa de movimento.
[00263] Os arquivos de multimídia de acordo com as modalidades da presente invenção podem também incluir um número de melhoramentos psicovisuais 528. Os melhoramentos psicovisuais podem ser métodos de compressão de vídeo baseados nas percepções humanas de visão. Estas técnicas estão adicionalmente abaixo discutidas e geralmente envolvem modificar o número de bits utilizados pelo quantificador para representar vários aspectos de vídeo. Outros aspectos do processo de codificação podem também incluir os melhoramentos psicovisuais.
[00264] Em uma modalidade, o sistema de codificação 500 inteiro
Petição 870180023875, de 23/03/2018, pág. 74/160
70/112 pode ser implementado utilizando um computador configurado para executar as várias funções acima descritas. Exemplos de implementações detalhadas destas funções estão abaixo providos.
3.5.1. Pré-processamento [00265] As operações de pré-processamento 502 que são opcionalmente executadas por um codificador 500 de acordo com uma modalidade da presente invenção pode utilizar um número de técnicas de processamento de sinal para aperfeiçoar a qualidade do vídeo codificado. Em uma modalidade, o pré-processamento 502 pode envolver um ou todos de desentrelaçamento, redução de ruído temporal/espacial e redimensionamento. Nas modalidades onde todas as três destas técnicas de pré-processamento são utilizadas, o desentrelaçamento é tipicamente executado primeiro seguido pela redução de ruído temporal/espacial e pelo redimensionamento.
3.5.2. Estimativa e Compensação de Movimento [00266] Um codificado de vídeo de acordo com uma modalidade da presente invenção pode reduzir o número de pixels requeridos para representar uma trilha de vídeo pesquisando por pixels que são repetidos em múltiplos quadros. Essencialmente, cada quadro em um vídeo tipicamente contém muitos dos mesmos pixels como aquele antes deste. O codificador pode conduzir diversos tipos de pesquisas para coincidências em pixels entre cada quadro (como macroblocos, pixels, meio-pixels e um quarto de pixels) e elimina estas redundâncias sempre que possível sem reduzir a qualidade de imagem. Utilizando a estimativa de movimento, o codificador pode representar a maior parte da imagem simplesmente registrando as mudanças que ocorrerão deste o último quadro ao invés de armazenar a imagem inteira para cada quadro. Durante a estimativa de movimento, o codificador divide o quadro que este está analisando em uma grade de blocos uniforme, frequentemente referida como ‘macroblocos’. Para cada ‘macrobloco’
Petição 870180023875, de 23/03/2018, pág. 75/160
71/112 no quadro, o codificador pode tentar encontrar um bloco coincidente no quadro anterior. O processo de tentar encontrar os blocos coincidentes é denominado uma 'pesquisa de movimento'. O movimento do 'macrobloco' pode ser representado como um vetor bidimensional, isto é uma representação (x, y). O algoritmo de pesquisa de movimento pode ser executado com vários graus de precisão. Uma pesquisa de elemento de imagem inteiro é uma onde o codificador tentará localizar os blocos coincidentes caminhando através do quadro de referência em qualquer dimensão um pixel de cada vez. Em uma pesquisa de meio-pixel, o codificador pesquisa por um bloco coincidente caminhando através do quadro de referência em qualquer dimensão por metade de um pixel de cada vez. O codificador pode utilizar um quarto de pixel, ou outras frações de pixel ou pesquisas que envolvem uma granularidade maior do que um pixel.
[00267] A modalidade de codificador ilustrado na Figura 3.5. executa a estimativa de movimento de acordo com uma modalidade da presente invenção. Durante a estimativa de movimento o codificador tem acesso ao vídeo pré-processado 502 do quadro anterior, o qual está armazenado em um armazenamento de quadros 526. O quadro anterior é gerado tomando a saída do quantificador, executando uma quantificação inversa 522 e uma transformação de DCT inversa 524. A razão para executar as funções inversas é, tal que o quadro no armazenamento de quadros é como este aparecerá quando decodificado por um reprodutor de acordo com uma modalidade da presente invenção. [00268] A compensação de movimento é executada tomando os blocos e os vetores gerados como um resultado da estimativa de movimento. O resultado é uma aproximação da imagem codificada que pode ser coincidida com a imagem real pela provisão de informações de textura adicionais.
3.5.3. Transformada de Co-seno Discreta
Petição 870180023875, de 23/03/2018, pág. 76/160
72/112 [00269] A DCT e a DCT inversa executada pelo codificado ilustrado na Figura 3.5 estão de acordo com o padrão especificado na ISO/IEC 14496-2:2001 (E), Anexo A.1 (transformadas de codificação).
3.5.3.1. Descrição de Transformada [00270] A DCT é um método para transformar um conjunto de pontos de dados de domínio espacial em uma representação de domínio de freqüência. No caso de compressão de vídeo, uma DCT bidimensional converte os blocos de imagem em uma forma onde as redundâncias são mais prontamente exploráveis. Um bloco de domínio de freqüência pode ser uma matriz esparsa que é facilmente comprimida por codificação de entropia.
3.5.3.2. Melhoramentos Psicovisuais na Transformada [00271] Os coeficientes de DCT podem ser modificados para aperfeiçoar a qualidade da imagem quantificada pela redução do ruído de quantificação em áreas onde este fica prontamente aparente para um observador humano. Além disso, o tamanho de arquivo pode ser reduzido pelo aumento de ruído de quantificação em porções da imagem onde este não é prontamente discernível por um observador humano.
[00272] Os codificadores de acordo com uma modalidade da presente invenção podem executar o que é referido como um melhoramento psicovisual 'lento'. O melhoramento psicovisual 'lento' analisa os blocos de imagem de vídeo e decide se permitir algum ruído ali pode economizar alguns bits sem degradar a aparência do vídeo. O processo utiliza uma métrica por bloco. O processo é referido como um processo 'lento', porque este executa uma quantidade considerável de computação para evitar os artefatos de bloqueio ou de anel.
[00273] Outras modalidades de codificadores de acordo com as modalidades da presente invenção implemente um melhoramento psicovisual 'rápido'. O melhoramento psicovisual 'rápido' é capaz de controlar onde o ruído aparece dentro de um bloco e pode modelar o ruído
Petição 870180023875, de 23/03/2018, pág. 77/160
73/112 de quantificação.
[00274] Ambos os melhoramentos psicovisuais 'lento' e 'rápido' estão abaixo discutidos em maiores detalhes. Outros melhoramentos psicovisuais podem ser executados de acordo com as modalidades da presente invenção incluindo os melhoramentos que controlam o ruído e as bordas de imagem e que procuram concentrar níveis mais altos de ruído de quantificação em áreas da imagem onde este não fica prontamente aparente para a visão humana.
3.5.3.3. Melhoramento Psicovisual 'lento' [00275] O melhoramento psicovisual 'lento' analisa os blocos da imagem de vídeo e determina se permitir algum ruído pode economizar bits sem degradar a aparência do vídeo. Em uma modalidade, o algoritmo inclui dois estágios. O primeiro envolve a geração de uma imagem diferenciada para os pixels de luminância de entrada. A imagem diferenciada é gerada no modo abaixo descrito. O segundo estágio envolve modificar os coeficientes de DCT antes da quantificação.
3.5.3.3.1. Geração de Imagem Diferenciada [00276] Cada pixel ^da imagem diferenciada é computada da fonte de pixels não comprimidos, Pxy, de acordo com o seguinte:
P'xy = ΙΪ1*φχ+ν -PxyWPx-ly ~Ρ^\\ρ^ “A^K-l “ Α?|) onde
P^estará dentro da faixa de 0 a 255 (assumindo um vídeo de 8 bits).
3.5.3.3.2. Modificação de Coeficientes de DCT [00277] A modificação dos coeficientes de DCT podem envolver a computação de um fator de anel de bloco, a computação de energia de bloco e a modificação real dos valores de coeficiente.
3.5.3.3.3. Computação de Fator de Anel de Bloco [00278] Para cada bloco da imagem um fator de anel é calculado com base na região local da imagem diferenciada. Nas modalidades
Petição 870180023875, de 23/03/2018, pág. 78/160
74/112 onde o bloco é definido como um bloco de 8 x 8, o fator de anel pode ser determinado utilizando o seguinte método.
[00279] Inicialmente, um limite é determinado com base nos valores de pixels de luminância máximo e mínimo dentro do bloco de 8 x 8: thresholdblock = floor((maxblock - minblock )/8)+2 [00280] A imagem diferenciada e o limite são utilizados para gerar um mapa dos pixels lisos na vizinhança do bloco. O potencial para cada bloco ter um limite diferente impede a criação de um mapa de pixels lisos para o quadro inteiro. O mapa é gerado como segue:
when p\<thresholdblock flaff = 0 otherwise [00281] O mapa de pixels lisos é filtrado de acordo com uma simples operação lógica:
flat'xy = 1 when flatxy = 1 and flatx_]y = 1 and flatxy_} = 1 and flatx_]y_} = 1 flatf otherwise [00282] Os pixels lisos no mapa filtrado são então contados sobre a região de 9 x 9 que cobre o bloco de 8 x 8.
flatcountblock = for 0 = x = 8 and 0 = y = 8 [00283] O risco de artefatos de anel visíveis pode ser avaliado utilizando a seguinte expressão:
ringingbriskblock = ((fíatcountblock -1θ)χ 256 + 20)/40 [00284] O fator de anel dos blocos de 8 x 8 pode ser derivado utilizando a seguinte expressão:
Ringingfactor = 0 when ringingrisk > 255 = 255 when ringingrisk < 0 = 255 - ringingrisk otherwise
3.5.3.3.4. Computação de Energia de Bloco [00285] A energia para os blocos da imagem pode ser calculada utilizando o seguinte procedimento. Em diversas modalidades, blocos
Petição 870180023875, de 23/03/2018, pág. 79/160
75/112 de 8 χ 8 da imagem são utilizados.
[00286] Uma DCT direta é executada na imagem de fonte:
T= fDCT(S) onde S são os 64 valores de luminância de imagem de fonte do bloco de 8 x 8 em questão e T é a versão transformada da mesma porção da imagem de fonte.
[00287] A energia em uma posição de coeficiente específica é definida como o quadrado daquele valor do coeficiente:
ek = tk 2 for 0 = k = 63 [00288] onde tk é o k2 coeficiente do bloco T transformado.
3.5.3.3.5. Modificação de Coeficiente [00289] A modificação dos coeficientes de DCT pode ser executada de acordo com o seguinte processo. Em diversas modalidades, o processo é executado para cada coeficiente de AC DCT não zero antes da quantificação. A magnitude de cada coeficiente é mudada por um pequeno delta, o valor de delta sendo determinado de acordo com as técnicas psicovisuais;
[00290] A modificação de coeficiente de DCT de cada coeficiente de AC não zero ck é executada pelo cálculo de uma energia com base nas energias local e de bloco utilizando a seguinte fórmula:
energyk = max(ak x ek ,0.12 x totalenergy) onde ak é uma constante cujo valor depende da posição do coeficiente como descrito na tabela seguinte:
0.0 |
1.0 |
1.5 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
1.0 |
1.5 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
1.5 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
2.0 |
Petição 870180023875, de 23/03/2018, pág. 80/160
76/112
Tabela 3 - Tabela de coeficientes [00291] A energia pode ser modificada de acordo com o fator de anel do bloco utilizando a seguinte relação:
energy\ = ringingfactorxenergyt [00292] O valor resultante é deslocado e clipado antes de ser utilizado como uma entrada para uma tabela de consulta (LUT).
ek = min (1023,4xenergy'^ dk=LUTi where i = ek [00293] A tabela de consulta é computada como segue:
LUTt = min (/Zoor^^x ((/ + 0.5)/4)^ + kflatxoffset\2xQp) [00294] O valor ‘deslocamento’ depende do quantificador, Qp, como descrito na tabela
Qp |
deslocamento |
Qp |
deslocamento |
1 |
-0.5 |
16 |
8.5 |
2 |
1.5 |
17 |
7.5 |
3 |
1.0 |
18 |
9.5 |
4 |
2.5 |
19 |
8.5 |
5 |
1.5 |
20 |
10.5 |
6 |
3.5 |
21 |
9.5 |
7 |
2.5 |
22 |
11.5 |
8 |
4.5 |
23 |
10.5 |
9 |
3.5 |
24 |
12.5 |
10 |
5.5 |
25 |
11.5 |
11 |
4.5 |
26 |
13.5 |
12 |
6.5 |
27 |
12.5 |
13 |
5.5 |
28 |
14.5 |
14 |
7.5 |
29 |
13.5 |
15 |
6.5 |
30 |
15.5 |
|
|
31 |
14.5 |
Tabela 4 - deslocamento como uma |
Função de valores Qp |
[00295] A variável ktexture θ kfiat controlam a intensidade do efeito psicovisual nas regiões lisas e texturadas respectivamente. Em uma
Petição 870180023875, de 23/03/2018, pág. 81/160
77/112 modalidade, estas tomam valores na faixa de 0 a 1, com 0 significando nenhum efeito e 1 significando efeito total. Em uma modalidade, os valores para ktexture θ kfiat são estabelecidos como segue:
Luminância:
ktexture TO kflat =1·θ
Crominância:
ktexture 1 ·θ kflat = θ·θ [00296] A saída da tabela de consulta (dk) é utilizada para modificar a magnitude do coeficiente de DCT por um processo aditivo:
c'k = ck - min (dk, |ct |)x sgn(c*) [00297] Finalmente, o coeficiente de DCT ck é substituído pelo coeficiente modificado c'k e passado adiante para quantificação.
3.5.3.4. Melhoramento Psicovisual 'rápido' [00298] Um melhoramento psicovisual 'rápido' pode ser executado nos coeficientes de DCT pela computação de um mapa de 'importância' para os pixels de luminância de entrada e então modificando os coeficientes de DCT.
3.5.3.4.1. Computando um Mapa de 'importância' [00299] Um mapa de 'importância' pode ser gerado pelo cálculo de um valor de 'importância' para cada pixel no lugar de luminância do quadro de vídeo de entrada. Em diversas modalidades, o valor de 'importância' aproxima a sensibilidade do olho humano para qualquer distorção localizada naquele pixel específico. O mapa de 'importância' é uma rede de valores de 'importância' de pixels.
[00300] A 'importância' de um pixel pode ser determinada primeiro calculando a faixa dinâmica de um bloco de pixels que circunda o pixel (dxy). Em diversas modalidades a faixa dinâmica de um bloco de pixels de 3 x 3 centrado na localização de pixel (x, y) é computada pela sub
Petição 870180023875, de 23/03/2018, pág. 82/160
78/112 tração do valor do pixel mais escuro na área do valor do pixel mais claro na área.
[00301] A 'importância' de um pixel (m^) pode ser derivada da faixa dinâmica do pixel como segue:
mr. = 0.08/max(jJ13, ,3)+0.001
3.5.3.4.2. Modificando os Coeficientes de dct [00302] Em uma modalidade, a modificação dos coeficientes de DCT envolve a geração de matrizes de energia de função de base e tabelas de consulta de delta.
3.5.3.4.3. Geração de Matrizes de Energia de Função de Base [00303] Um conjunto de matrizes de energia de função de base pode ser utilizado na modificação dos coeficientes de DCT. Estas matrizes contém valores constantes que podem ser computados antes da codificação. Uma matriz de 8 x 8 é utilizada para cada uma das 64 funções de base de DCT. Cada matriz descreve como cada pixel em um bloco de 8 x 8 será impactado pela modificação de seu coeficiente correspondente. A k- matriz de energia de função de base é derivada tomando uma matriz de 8 x 8 Ak com o coeficiente correspondente ajustado para 100 e os outros coeficientes ajustados para 0.
=100 if n = k = 0 otherwise onde n representa posição do coeficiente dentro da matriz de 8 x 8 matrix; 0 = n = 63.
[00304] Uma DCT inversa é executada na matriz para gerar uma matriz de 8 x 8 A’k adicional. Os elementos da matriz (a’kn) representa a k- função de base de DCT.
A\ = iDCT(A„) [00305] Cada valor na matriz transformada é então elevado ao quadrado:
Petição 870180023875, de 23/03/2018, pág. 83/160
79/112 bk„=a\n for0 = n = 63 [00306] Ο processo é executado 64 vezes para produzir as matrizes de energia de função de base Bk, 0 = k = 63, cada uma compreendendo 64 valores naturais. Cada valor de matriz é uma medida de quanto um pixel na n- posição no bloco de 8 x 8 será impactado por qualquer erro ou modificação do coeficiente k.
3.5.3.4.4. Geração de uma Tabela de Consulta de Delta [00307] Uma tabela de consulta (LUT) pode ser utilizada para acelerar a computação do delta de modificação de coeficiente. O conteúdo da tabela pode ser gerado em um modo que seja dependente da força desejada do melhoramento psicovisual 'rápido' e do parâmetro de quantificação (Qp).
[00308] Os valores da tabela de consulta podem ser gerados de acordo com a seguinte relação:
LUTt= miAjloor^x x strength/(i + 0.5)+x offset+0.5),2 x Qp) onde i é a posição dentro da tabela, 0 = i = 1023.
[00309] A intensidade e o deslocamento dependem do quantificador, Qp, como descrito na tabela seguinte:
Qp |
intensidade |
deslocamento |
Qp |
intensidade |
deslocamento |
1 |
0.2 |
-0.5 |
16 |
2.0 |
8.5 |
2 |
0.6 |
1.5 |
17 |
2.0 |
7.5 |
3 |
1.0 |
1.0 |
18 |
2.0 |
9.5 |
4 |
1.2 |
2.5 |
19 |
2.0 |
8.5 |
5 |
1.3 |
1.5 |
20 |
2.0 |
10.5 |
6 |
1.4 |
3.5 |
21 |
2.0 |
9.5 |
7 |
1.6 |
2.5 |
22 |
2.0 |
11.5 |
8 |
1.8 |
4.5 |
23 |
2.0 |
10.5 |
9 |
2.0 |
3.5 |
24 |
2.0 |
12.5 |
10 |
2.0 |
5.5 |
25 |
2.0 |
11.5 |
11 |
2.0 |
4.5 |
26 |
2.0 |
13.5 |
Petição 870180023875, de 23/03/2018, pág. 84/160
80/112
Qp |
intensidade |
deslocamento |
Qp |
intensidade |
deslocamento |
12 |
2.0 |
6.5 |
27 |
2.0 |
12.5 |
13 |
2.0 |
5.5 |
28 |
2.0 |
14.5 |
14 |
2.0 |
7.5 |
29 |
2.0 |
13.5 |
15 |
2.0 |
6.5 |
30 |
2.0 |
15.5 |
|
|
|
31 |
2.0 |
14.5 |
Tabela 5 - Relação entre os valores de intensidade e deslocamento e o valor de Qp [00310] O ktexture θ θ kfiat controlam a intensidade do efeito psicovisual nas regiões lisas e texturadas respectivamente. Em uma modalidade, estes tomam valores na faixa de 0 a 1, com 0 significando nenhum efeito e 1 significando efeito total. Em uma modalidade, os valores para ktexture θ kflat são estabelecidos como segue:
Luminância:
kflat - 1·θ
Crominância:
kflat ~ θ·θ
3.5.3.4.5. Modificação de Coeficientes de DCT [00311] Os coeficientes de DCT podem ser modificados utilizando os valores acima calculados. Em uma modalidade, cada coeficiente de AC DCT não zero é modificado de acordo com o seguinte procedimento antes da quantificação.
[00312] Inicialmente um valor de 'energia' (ek) é computado tomando o produto de ponto da matriz de energia de função de base e o bloco de 8 x 8 apropriado do mapa de importância. Esta 'energia' é uma medida de como os erros de quantificação no coeficiente específico seriam percebidos pelo observador humano. Este é a soma do produto de importância de pixel e da energia de função de base de pixel:
ek =M'Bk
Petição 870180023875, de 23/03/2018, pág. 85/160
81/112 onde
M contém os valores de mapa de importância do bloco de 8 x 8; e
Bk é a k- matriz de energia de função de base.
[00313] O valor de 'energia' resultante é deslocado e clipado antes de ser utilizado como um índice (dk) na tabela de consulta de delta.
e'k = min \W23,floor(ek /32768)] dk=LUTt onde i = e’k [00314] A saída da tabela de consulta de delta é utilizada para modificar a magnitude do coeficiente de DCT por um processo aditivo:
c\ = ck - min (dk, |ct |)x sign(ck) [00315] O coeficiente de DCT ck é substituído pelo c'k modificado e passado adiante para quantificação.
3.5.4. Quantificação [00316] Os codificadores de acordo com as modalidades da presente invenção podem utilizar um quantificador padrão, tal como o quantificador definido pela International Telecommunication Union as Video Coding for Low Bitrate Communication, ITU-T Recommendation H.263, 1996.
3.5.4.1. Melhoramentos Psicovisuais para a Quantificação [00317] Alguns codificadores de acordo com as modalidades da presente invenção, utilizam um melhoramento psicovisual que explora os efeitos psicovisuais da visão humana para conseguir uma compressão mais eficiente. O efeito psicovisual pode ser aplicado em um nível de quadro e um nível de macrobloco.
3.5.4.2. Melhoramentos Psicovisuais em Nível de Quadro [00318] Quando aplicado em um nível de quadro, o melhoramento faz parte do algoritmo de controle de taxa e seu objetivo é ajustar a
Petição 870180023875, de 23/03/2018, pág. 86/160
82/112 codificação de modo que uma dada quantidade de taxa de bits é melhor utilizada para assegurar a máxima qualidade visual como percebida pelos olhos humanos. O melhoramento psicovisual de taxa de quadro é motivado pela teoria de que a visão humana tende a ignorar os detalhes quando a ação é alta e a visão humana tende a notar os detalhes quando a imagem é estática. Em uma modalidade, a quantidade de movimento é determinada observando a soma da diferença absoluta (SAD) para um quadro. Em uma modalidade, o valor de SAD é determinado pela soma das diferenças absolutas dos pixels de luminância colocados de dois blocos. Em diversas modalidades, as diferenças absolutas de blocos de pixel de 16 x 16 são utilizadas. Em modalidades que lidam com deslocamentos de pixel fracionários, uma interpolação é executada como especificado no padrão MPEG-4 (um padrão ISO/IEC desenvolvido pelo Moving Picture Experts Group da ISO/IEC), antes da soma de diferenças absolutas ser calculada.
[00319] O melhoramento psicovisual em nível de quadro aplica-se somente aos quadros P da trilha de vídeo e está baseado no valor de SAD do quadro. Durante a codificação, o módulo psicovisual mantém o registro da SAD média (isto é SAD) de todos os quadros P da trilha de vídeo e da distância média da SAD de cada quadro de sua SAD total (isto é dsad ). a média pode ser feita utilizando um algoritmo de média móvel exponencial. Em uma modalidade, o algoritmo de controle de taxa de uma passada acima descrito pode ser aqui utilizado como o período de média (ver descrição acima).
[00320] Para cada quadro P da trilha de vídeo codificado, o quantificador de quadro Q (obtido do módulo de controle de taxa) terá uma correção psicovisual aplicada a este. Em uma modalidade, o processo envolve calcular uma razão R utilizando a seguinte fórmula:
D SAD-SÃD T
K = —--1
DSAD
Petição 870180023875, de 23/03/2018, pág. 87/160
83/112 onde
I é uma constante e atualmente ajustada para 0.5. O R é clipado dentro do limite de (-1,1].
[00321] O quantificador é então ajustado de acordo com a razão R, através do cálculo abaixo mostrado:
a« =ô1£(i+a.SaJJ onde
Sframe θ uma intensidade constante para os melhoramentos psicovisuais em nível de quadro.
[00322] A constante Sframe determina quão forte um ajuste pode ser para o psicovisual em nível de quadro. Em uma modalidade do codec, a opção de ajustar Sframe para 0,2, 0,3 ou 0,4 está disponível..
3.5.4.3. Melhoramentos Psicovisuais em Nível de Macrobloco [00323] Os codificadores de acordo com as modalidades da presente invenção que utilizam um melhoramento psicovisual no nível de macrobloco tentam identificar os macroblocos que são proeminentes para a qualidade visual do vídeo para um observador humano e tentam codificar estes macroblocos com uma qualidade mais alta. O efeito dos melhoramentos psicovisuais em nível de macrobloco é de retirar os bits das partes menos importantes de um quadro e aplicá-los nas partes mais importantes do quadro. Em diversas modalidades, os melhoramentos são conseguidos utilizando três tecnologias, as quais estão baseadas em suavidade, brilho e SAD de macrobloco. Em outras modalidades qualquer uma das técnicas sozinha ou em combinação com outra das técnicas ou outra técnica inteiramente podem ser utilizadas.
[00324] Em uma modalidade, todos os três melhoramentos psicovisuais em nível de macrobloco acima descritos compartilham um parâmetro comum, Smb, o qual controla a intensidade do melhoramento psicovisual em nível de macrobloco. Os quantificadores máximo e mínimo para os macroblocos são então derivados do parâmetro de inten
Petição 870180023875, de 23/03/2018, pág. 88/160
84/112 sidade e do quantificador de quadro Qframe através dos cálculos abaixo mostrados:
ÔQframe j
MBMax ~ Λ Z \ ’ aní*
V _ MB )
QMBMin = Q frame Ό ~ $MB ) onde
Qmbm3x θ θ quantificador máximo
QiviBMin θ θ quantificador mínimo [00325] Os valores Qmbmsx θ Ομβμιπ definem os limites superior e inferior para os quantificadores de macrobloco para o quadro inteiro. Em uma modalidade, a opção de ajustar o valor de SMb para qualquer um dos valores 0,2, 0,3 e 0,4 é provida. Em outras modalidades, outros valores para SMb podem ser utilizados.
3.5.4.3.1. Melhoramento de Brilho [00326] Em modalidades onde o melhoramento psicovisual é executado com base no brilho dos macroblocos, o codificador tenta codificar os macroblocos mais brilhantes com maior qualidade. A base teórica deste melhoramento é que as partes relativamente escuras do quadro são mais ou menos ignoradas pelos observadores humanos. Este melhoramento psicovisual de macrobloco é aplicado a quadros I e quadros P da trilha de vídeo. Para cada quadro, o codificador observa todo o quadro primeiro. O brilho médio (BR) θ calculado e a diferença de brilho média da média (DBR) θ também calculada. Estes valores são então utilizados para desenvolver dois limites (TBRLOwer, TeRUpper), os quais podem ser utilizados como indicadores para se o melhoramento psicovisual deve ser aplicado:
^BRLower = BR ~ DBR ^BRUpper = BR + (bR — TBRLawer ) [00327] O melhoramento de brilho é então aplicado com base nos dois limites utilizando as condições abaixo apresentadas para gerar
Petição 870180023875, de 23/03/2018, pág. 89/160
85/112 um quantificador (Qmb) pretendido para o macrobloco:
Qmb = Qmbmík when BR > TBRUpper
QmB = Qframe when <BR< TRRUpper, and
Qmb = Qmbmox when BR < TBRLmver onde
BR é o valor de brilho para aquele macrobloco específico.
[00328] Em modalidades onde o codificador está em conformidade com o padrão MPEG-4, a técnica de melhoramento de brilho psicovisual em nível de macrobloco não pode mudar o quantificador por mais de ±2 de um macrobloco para o próximo. Portanto, o Qmb calculado pode requerer uma modificação com base no quantificador utilizado no macrobloco anterior.
3.5.4.3.2. Melhoramento de Suavidade [00329] Os codificadores de acordo com as modalidades da presente invenção que incluem um melhoramento psicovisual de suavidade, modificam o quantificador com base na variação espacial da imagem que está sendo codificada. A utilização de um melhoramento psicovisual de suavidade pode ser motivada pela teoria de que a visão humana tem uma sensibilidade aumentada aos artefatos de quantificação nas partes suaves de uma imagem. O melhoramento psicovisual de suavidade pode, portanto, envolver aumentar o número de bits para representar as porções mais suaves da imagem e diminuir o número de bits onde existe um alto grau de variação espacial na imagem.
[00330] Em uma modalidade, a suavidade de uma porção de uma imagem é medida como a diferença média na luminância de pixels em um macrobloco para o brilho do macrobloco (DR). Um método para executar o melhoramento psicovisual de suavidade em um quadro I de acordo com as modalidades da presente invenção está mostrado na Figura 3.6. O processo 540, envolve examinar o quadro inteiro para calcular (542) DR. O limite para aplicar o melhoramento de suavidade,
Petição 870180023875, de 23/03/2018, pág. 90/160
86/112
TDr, pode então ser derivado (544) utilizando o seguinte cálculo:
[00331] O seguinte melhoramento de suavidade é executado (546) com base no limite.
QmB = Qframe when DR * TDR , Hnd
Qmb =ôMrMewhenZ>/?< Tdr onde
Qmb θ o quantificador pretendido para o macrobloco
DR é o valor de desvio para o macrobloco (isto é luminância média - brilho médio) [00332] As modalidades que codificam os arquivos de acordo com o padrão MPEG-4 estão limitadas como acima descrito pelo fato de que a mudança de quantificador em nível de macrobloco pode ser no máximo ±2 de um macrobloco para o próximo.
3.5.4.3.3. Melhoramento de sad de Macrobloco [00333] Os codificadores de acordo com modalidades da presente invenção podem utilizar um melhoramento psicovisual de SAD de macrobloco. Um melhoramento psicovisual de SAD de macrobloco pode ser utilizado para aumentar os detalhes para os macroblocos estáticos e permitir detalhes diminuídos nas porções de um quadro que são utilizadas em uma cena de alta ação.
[00334] Um processo para executar um melhoramento psicovisual de SAD de macrobloco de acordo com uma modalidade da presente invenção está ilustrado na Figura 3.7. O processo 570 inclui inspecionar (572) um quadro I inteiro para determinar a SAD média ( isto é MBSADy para todos os macroblocos no quadro inteiro e a diferença média de uma SAD de macrobloco da média (isto é dmbsad ) θ também obtida. Em uma modalidade, é feita a média de ambos estes macroblocos ao longo dos macroblocos codificados inter-quadros (isto é
Petição 870180023875, de 23/03/2018, pág. 91/160
87/112 os macroblocos codificados utilizando uma compensação de movimento ou outras dependências em quadros de vídeo codificados anteriores). Dois limites para aplicar o melhoramento de SAD de macrobloco são então derivados (574) destas médias utilizando as seguintes fórmulas:
TMBSADLwer = MBSAD - DMBSAD, and TMBSADUpper = MBSAD + DMBSAD onde
TesADLower θ o limite inferior
TesADUpper θ o limite superior, o qual pode estar limitado por 1024 se necessário.
[00335] O melhoramento de SAD de macrobloco é então aplicado (576) com base nestes dois limites de acordo com as seguintes condições:
Qmb = Qmbmox when MBSAD > TMBSADUpper’
QmB Qjrame when TMADLawer < MBSAD <
^MBSADUpper
Qmb = Qmbmíti when MBSAD <
onde
Qb é o quantificador pretendido para o macrobloco
MBSAD é o valor de SAD para aquele macrobloco específico.
[00336] As modalidades que codificam os arquivos de acordo com a especificação MPEG-4 estão limitadas como acima descrito pelo fato de que a mudança de quantificador de nível de macrobloco pode ser no máximo ±2 de um macrobloco para o próximo..
3.5.5. Controle de Taxa [00337] A técnica de controle de taxa utilizado por um codificador de acordo com uma modalidade da presente invenção pode determinar como o codificador utiliza a taxa de bits alocada para codificar uma seqüência de vídeo. Um codificador tipicamente procurará codificar em
Petição 870180023875, de 23/03/2018, pág. 92/160
88/112 uma taxa de bits predeterminada e a técnica de controle de taxa é responsável por coincidir a taxa de bits gerada pelo codificador tão próxima quanto possível da taxa de bits predeterminada. A técnica de controle de taxa pode também procurar alocar a taxa de bits em um modo que assegurará a mais alta qualidade visual da seqüência de vídeo quando esta é decodificada. Muito do controle de taxa é executado pelo ajuste do quantificador. O quantificador determinar quão finamente o codificador codifica a seqüência de vídeo. Um menor quantificador resultará em uma qualidade mais alta e um consumo de bits mais alto. Portanto, o algoritmo de controle de taxa procura modificar o quantificador em um modo que equilibre os interesses competitivos de qualidade de vídeo e consumo de bits.
[00338] Os codificadores de acordo com as modalidades da presente invenção podem utilizar qualquer uma de uma variedade de diferentes técnicas de controle de taxa. Em uma modalidade, uma técnica de controle de taxa de passada única é utilizada. Em outras modalidades uma técnica de controle de taxa de passada dupla (ou múltipla) é utilizada. Além disso, um controle de taxa ‘verificada em armazenamento de vídeo’ pode ser executado conforme requerido. Exemplos específicos destas técnicas estão abaixo discutidos. No entanto, qualquer técnica de controle de taxa pode ser utilizada em um codificador de acordo com a prática da presente invenção.
3.5.5.1. Controle de Taxa de uma Passada [00339] Uma modalidade de uma técnica de controle de taxa de uma passada de acordo com uma modalidade da presente invenção procura permitir picos de alta taxa de bits para cenas de alto movimento. Em diversas modalidades, a técnica de controle de taxa de uma passada procura aumentar a taxa de bits lentamente em resposta a um aumento na quantidade de movimento em uma cena e rapidamente diminuir a taxa de bits em resposta a uma redução no movimento de
Petição 870180023875, de 23/03/2018, pág. 93/160
89/112 uma cena.
[00340] Em uma modalidade, o algoritmo de controle de taxa de uma passada utiliza dois períodos de média para rastrear a taxa de bits. Uma média de longo prazo para assegurar uma convergência de taxa de bits total e uma média de curto prazo para permitir resposta a variações na quantidade de ação em uma cena.
[00341] Uma técnica de controle de taxa de uma passada de acordo com uma modalidade da presente invenção está ilustrada na Figura
3.8. A técnica de controle de taxa de uma passada 580 começa (582) pela inicialização (584) do codificador com uma taxa de bits desejada, a taxa de quadros de vídeo e uma variedade de outros parâmetros (adicionalmente abaixo discutidos). Uma variável de ponto flutuante é armazenada, a qual é indicativa do quantificador. Se um quadro requerer quantificação (586), então a variável de ponto flutuante é recuperada (588) e o quantificador obtido pelo arredondamento da variável de ponto flutuante para o inteiro mais próximo. O quadro é então codificado (590). Observações são feitas durante a codificação do quadro que permitem a determinação (592) de um novo valor de quantificador. O processo decide (594) repetir a menos que não existam mais quadros. Em cujo ponto, a codificação está completa (596).
[00342] Como acima discutido, o codificador é inicializado (584) com uma variedade de parâmetros. Estes parâmetros são a 'taxa de bits', a 'taxa de quadros', o 'Intervalo de Quadro Chave Max', o 'Quantificador Máximo', o 'Quantificador Mínimo', o 'período de média', o 'período de reação' e a 'razão de descida/subida'. O seguinte é uma discussão de cada um destes parâmetros.
3.5.5.1.1. A'Taxa de bits' [00343] O parâmetro de 'taxa de bits' determina a taxa de bits alvo da codificação.
3.5.5.1.2. A 'Taxa de quadros'
Petição 870180023875, de 23/03/2018, pág. 94/160
90/112 [00344] A 'taxa de quadros' define o período entre os quadros de vídeo.
3.5.5.1.3. O 'Intervalo de Quadro Chave Max' [00345] O 'Intervalo de Quadro Chave Max' especifica o intervalo máximo entre os quadros chave. Os quadros chave são normalmente automaticamente inseridos no vídeo codificado quando o codec detecta uma mudança de cena. Em circunstâncias onde uma cena continua por um longo intervalo sem um único corte, quadros chave podem ser inseridos para assegurar que o intervalo entre os quadros chave é sempre menor do que ou igual ao 'Intervalo de Quadro Chave Max'. Em uma modalidade, o parâmetro de 'Intervalo de Quadro Chave Max' pode ser ajustado para um valor de 300 quadros. Em outras modalidades, outros valores podem ser utilizados.
3.5.5.1.4. O 'Quantificador Máximo' e o 'Quantificador Mínimo' [00346] Os parâmetros de 'Quantificador Máximo' e de 'Quantificador Mínimo' ajustam o limite superior e inferior do quantificador utilizado na codificação. Em uma modalidade, os limites do quantificador são ajustados em valores entre 1 e 31.
3.5.5.1.5. O 'Período de Média' [00347] O parâmetro de 'período de média' controla a quantidade de vídeo que é considerada quando modificando o quantificador. Um período de média mais longo tipicamente resultará no vídeo codificado tendo uma taxa total mais precisa. Em uma modalidade, um 'período de média' de 2000 é utilizado. Apesar de que em outras modalidades outros valores podem ser utilizados.
3.5.5.1.6. O 'Período de Reação' [00348] O parâmetro de 'período de reação' determina quão rápido o codificador adapta a mudanças no movimento em cenas recentes.Um valor de 'período de reação' mais longo pode resultar em cenas de alto movimento de melhor qualidade e cenas de baixo movimento
Petição 870180023875, de 23/03/2018, pág. 95/160
91/112 de pior qualidade. Em uma modalidade, um 'período de reação' de 10 é utilizado. Apesar de que em outras modalidades outros valores podem ser utilizados.
3.5.5.1.7. A 'Razão de Descida/Subida' [00349] O parâmetro de 'razão de descida/subida' controla a sensibilidade relativa para o ajuste do quantificador em reação às cenas de alto ou baixo movimento. Um valor maior tipicamente resulta em cenas de alto movimento de qualidade mais alta e um consumo de bits aumentado. Em uma modalidade uma 'razão de descida/subida' de 20 é utilizada. Apesar de que em outras modalidades, outros valores podem ser utilizados.
3.5.5.1.8. Calculando o Valor do Quantificador [00350] Como acima discutido, a técnica de controle de taxa de uma passada envolve o cálculo de um valor de quantificador após a codificação de cada quadro. O seguinte é uma descrição de uma técnica de acordo com uma modalidade da presente invenção que pode ser utilizada para atualizar o valor do quantificador.
[00351] O codificador mantém duas médias móveis exponenciais que tem períodos iguais ao 'período de média' (PaVerage) θ θ 'período de reação' (Preaction) como uma média móvel da taxa de bits. As duas médias móveis exponenciais podem ser calculadas de acordo com a relação:
. . P-T „T
-4-1·—^-+5·onde
At é a média na instância t;
Am é a média na instância t-T (usualmente a média no quadro anterior);
T representa o período de intervalo (usualmente o tempo de quadro); e
P é o período de média o qual pode ser ou Paverage θ ou PrePetição 870180023875, de 23/03/2018, pág. 96/160
92/112 action[00352] A média móvel acima calculada é então ajustada em taxa de bits dividindo pelo intervalo de tempo entre a instância atual e a última instância no vídeo, utilizando o cálculo seguinte:
onde
Rt é o bitrato;
At é qualquer uma das médias móveis; e
T é o intervalo de tempo entre a instância atual e a última instância (é usualmente o inverso da taxa de quadros).
[00353] O codificador pode calcular a taxa de bits alvo (Rtarget) do próximo quadro como segue:
onde
Roveraii θ θ taxa de bits total determinada para o vídeo inteiro; e
Raverage θ θ taxa de bits média utilizando o período de média longo.
[00354] Em diversas modalidades, a taxa de bits alvo está limitada inferiormente por 75% da taxa de bits total. Se a taxa de bits alvo cair abaixo daquele limite, então esta será forçada para cima para o limite para assegurar a qualidade do vídeo.
[00355] O codificador então atualiza o quantificador interno com base na diferença entre Rtarget θ Rreaction- Se Rreaction for menor do que Rtarget, então existe uma probabilidade de que o quadro anterior era de uma complexidade relativamente baixa. Portanto, o quantificador pode ser diminuído pela execução do seguinte cálculo:
\ reaction /
Petição 870180023875, de 23/03/2018, pág. 97/160
93/112 [00356] Quando Rreaction θ maior do que Rtarget> existe uma probabilidade significativa de que o quadro anterior possuía um nível de complexidade relativamente alta. Portanto, o quantificador pode ser aumentado pela execução do seguinte cálculo:
Q internai Qiatemal' c
. 1+— SP \ reaction J onde
S é a 'razão de subida/descida’.
3.5.5.1.9.Codificacão B-VOP [00357] O algoritmo acima descrito pode também ser aplicado na codificação B-VOP. Quando o B-VOP está habilitado na codificação, o quantificador par o B-VOP (QB) é escolhido com base no quantificador do P-VOP (QP) após o B-VOP. O valor pode ser obtido de acordo com as seguintes relações:
Ôb=2.0p for Qp<4
Qb = 5+Φβρ for 4 < gp < 20
Qb=Qp for ôp-20
3.5.5.2. Controle de Taxa de duas Passadas [00359] Os codificadores de acordo com uma modalidade da presente invenção que utilizam uma técnica de controle de taxa de duas (ou múltiplas) passadas podem determinar as propriedades de uma seqüência de vídeo em uma primeira passada e então codificar a seqüência de vídeo com o conhecimento das propriedades da seqüência inteira. Portanto, o codificador pode ajustar o nível de quantificação para cada quadro com base em sua relativa complexidade comparado com outros quadros na seqüência de vídeo.
[00360] Em uma técnica de controle de taxa de duas passadas de acordo com uma modalidade da presente invenção, o codificador executa uma primeira passada na qual o vídeo é codificado de acordo com a técnica de controle de taxa de uma passada acima descrita e a
Petição 870180023875, de 23/03/2018, pág. 98/160
94/112 complexidade de cada quadro é registrada (qualquer uma de uma variedade de diferentes métricas para media a complexidade pode ser utilizada). A complexidade média e, portanto, o quantificador médio (Qref) podem ser determinados com base na primeira. Na segunda passada, o fluxo de bits é codificado com os quantificadores determinados com base nos valores de complexidade calculados durante a primeira passada.
3.5.5.2.1. Quantificadores para l-VOPs [00361] O quantificador Q para l-VOPs é ajustado para 0,75 x Qref desde que o próximo quadro não seja um l-VOP. Se o próximo quadro for também um l-VOP, o Q (para o quadro atual) é ajustado para 1,25 x Qref·
3.5.5.2.2. Quantificadores para P-VOPs [00362] O quantificador para os P-VOPs podem ser determinados utilizando a seguinte expressão.
= ^·
ef\ ' c / complexity / /C ' complexity onde r
£ a complexidade do quadro;
o compiexuy £ a complexidade média da seqüência de vídeo;
F(x) é uma função que provê o número ao qual a complexidade do quadro deve ser multiplicada para fornecer o número de bits requeridos para codificar o quadro utilizando um quantificador com um valor de quantificação x;
F'1(x) é a função inversa de F(x); e k é o parâmetro de intensidade.
[00363] A seguinte tabela define uma modalidade de uma função F(Q) que pode ser utilizada para gerar o fator pelo qual a complexidade de um quadro deve ser multiplicada de modo a determinar o núme
Petição 870180023875, de 23/03/2018, pág. 99/160
95/112 ro de bits requeridos para codificar um quadro utilizando um codificador com um quantificador Q.
Q |
F(Q) |
Q |
F(Q) |
1 |
1 |
9 |
0.013 |
2 |
0.4 |
10 |
0.01 |
3 |
0.15 |
11 |
0.008 |
4 |
0.08 |
12 |
0.0065 |
5 |
0.05 |
13 |
0.005 |
6 |
0.032 |
14 |
0.0038 |
7 |
0.022 |
15 |
0.0028 |
8 |
0.017 |
16 |
0.002 |
Tabela 6 - Valores de F(Q) com relação a Q.
[00364] Se o parâmetro de intensidade k for escolhido ser 0, então o resultado é um quantificador constante. Quando o parâmetro de intensidade é escolhido ser 1, então o quantificador é proporcional a (j compiextty^ Diversos codificadores de acordo com as modalidades da presente invenção tem um parâmetro de intensidade k igual a 0,5.
3.5.5.2.3. Quantificadores para B-VOPs [00365] O quantificador Q para os B-VOPs pode ser escolhido utilizando a mesma técnica para escolher o quantificador para os B-VOPs na técnica de uma passada acima descrita.
3.5.5.3. Controle de Taxa Verificado em Armazenamento Temporário de Vídeo [00366] O número de bits requeridos para representar um quadro pode variar dependendo das características da seqüência de vídeo. A maioria dos sistemas de comunicação opera a uma taxa de bits constante. Um problema que pode ser encontrado com as comunicações de taxa de bits variável é alocar recursos suficientes para lidar com os picos de utilização de recursos. Diversos codificadores de acordo com as modalidades da presente invenção codificam o vídeo com uma visão de prevenir o estouro de um armazenamento temporário de vídeo
Petição 870180023875, de 23/03/2018, pág. 100/160
96/112 do decodificador, quando a taxa de bits da comunicação de taxa de bits variável está em pico.
[00367] Os objetivos do controle de taxa de verificador de armazenamento temporário de vídeo (VBV) podem incluir gerar um vídeo que não excederá o armazenamento temporário de um decodificador quando transmitido. Além disso, pode ser desejável que o vídeo codificado coincida com uma taxa de bits alvo e que o controle de taxa produza um vídeo de alta qualidade.
[00368] Os codificadores de acordo com diversas modalidades da presente invenção provêem uma escolha de pelo menos duas técnicas de controle de taxa de VBV. Uma das técnicas de controle de taxa de VBV é referida como um controle de taxa casual e a outra técnica é referida como o controle de taxa de N- passada.
3.5.5.3.1. Controle de Taxa Casual [00369] O controle de taxa de VBV casual pode ser utilizado em conjunto com a técnica de controle de taxa de uma passada e gera saídas simplesmente baseadas nos valores de quantificador atual e anterior.
[00370] Um codificador de acordo com uma modalidade da presente invenção inclui um controle de taxa casual que envolve ajustar o quantificador para o quadro n (isto é, Qn) de acordo com a seguinte relação.
1__<V I V I V β, bitrate velocity size η η—1 — = — + x anft n d n onde
Q'n é o quantificador estimado pelo controle de taxa de passada única;
Xbitrate θ calculado pela determinação de uma taxa de bits alvo com base no desvio da taxa de bits desejada;
Petição 870180023875, de 23/03/2018, pág. 101/160
97/112
Xveiocity θ calculado com base no tempo estimado até que o armazenamento temporário de VBV tenha um estouro ou um estouro negativo;
XSize é aplicado no resultado de P-VOPs somente e é calculado com base na taxa na qual o tamanho dos P-VOPs comprimidos está mudando ao longo do tempo;
Xdrift é o desvio da taxa de bits desejada.
[00371] Em diversas modalidades, o controle de taxa de VBV casual pode ser forçado a largar quadros e inserir um enchimento para respeitar o modelo de VBV. Se um quadro comprimido inesperadamente contém bits de mais ou de menos, então este pode ser largado ou enchido.
3.5.5.3.2. Controle de Taxa de vbv de na Passada [00372] O controle de taxa de VBV de N- passada pode ser utilizado em conjunto com uma técnica de controle de taxa de múltiplas passadas e utiliza as informações reunidas durante a análise anterior da seqüência de vídeo. Os codificadores de acordo com diversas modalidades da presente invenção executam um controle de taxa de VBV de N- passada de acordo com o processo ilustrado na Figura 3.9. O processo 600 começa com uma primeira passada, durante a qual uma análise é executada (602). Uma geração de mapa é executada (604) e uma estratégia é gerada (606). O controle de taxa de N- passada é então executado (608).
3.5.5.3.3. Análise [00373] Em uma modalidade, a primeira passada utiliza alguma forma de controle de taxa casual e os dados são registrados para cada quadro referentes a, tais coisas como a duração do quadro, o tipo de codificação do quadro, o quantificador utilizado, os bits de movimento produzidos e os bits de textura produzidos. Além disso, informações globais, tais como, a escala de tempo, a resolução e os ajustes de coPetição 870180023875, de 23/03/2018, pág. 102/160
98/112 dec podem também ser registrados.
3.5.5.3.4. Geração de Mapa [00374] As informações da análise são utilizadas para gerar um mapa da seqüência de vídeo. O mapa pode especificar o tipo de codificação utilizada para cada quadro (l/B/P) e pode incluir dados para cada quadro referentes à duração do quadro, a complexidade de movimento e a complexidade de textura. Em outras modalidades, o mapa pode também conter as informações que permitem uma melhor predição da influência do quantificados e de outros parâmetros sobre o tamanho de quadro comprimido e a distorção perceptual. Em diversas modalidades, a geração de mapa é executada após a N-1- ser completada.
3.5.5.3.5. Geração de Estratégia [00375] O mapa pode ser utilizado para planejar uma estratégia de como o controle de taxa de N- passada operará. O nível ideal do armazenamento temporário de VBV após cada quadro ser codificado pode ser planejado. Em outra modalidade, a geração de estratégia resulta nas informações para cada quadro incluindo o tamanho de quadro comprimido desejado, um quantificador de quadro estimado. Em diversas modalidades, a geração de estratégia é executada após a geração de mapa e antes da N- passada.
[00376] Em uma modalidade, o processo de geração de estratégia envolve a utilização de um processo iterativo para simular o codificador e determinar os valores de quantificador desejados para cada quadro tentando manter o quantificador tão próximo quanto possível do valor de quantificador médio. Uma pesquisa binária pode ser utilizada para gerar um quantificador de base para toda a seqüência de vídeo. O quantificador de base é o valor constante que faz com que o simulador atinja a taxa de bits alvo desejada. Uma vez que o quantificador de base é encontrado, o processo de geração de estratégia en
Petição 870180023875, de 23/03/2018, pág. 103/160
99/112 volve uma consideração das restrições de VBV. Em uma modalidade, um quantificador constante é utilizado se isto não modificar as restrições de VBV. Em outras modalidades, o quantificador é modulado com base na complexidade de movimento nos quadros de vídeo. Isto pode ser adicionalmente estendido para incorporar um mascaramento de mudanças de cena e outros efeitos temporais.
3.5.5.3.6. Controle de Taxa de na Passada em Laço [00377] Em uma modalidade, o controle de taxa de N- passada em laço utiliza a estratégia e utiliza o mapa para fazer a melhor predição possível da influência do quantificador e de outros parâmetros sobre o tamanho de quadro comprimido e a distorção perceptual. Pode existir um critério limitado para desviar da estratégia para tomar uma estratégia corretiva de curto prazo. Tipicamente, seguir a estratégia impedirá a violação do modelo de VBV. Em uma modalidade, o controle de taxa de N- passada em laço utiliza um laço de controle de PID. O retorno no laço de controle é o desvio acumulado do bitrato ideal.
[00378] Apesar da geração de estratégia não envolver largar quadros, o controle de taxa de N- passada em laço pode solicitar que um enchimento de vídeo seja inserido para impedir um estouro de VBV.
3.5.6. Predicões [00379] Em uma modalidade, uma predição AD/DC é executada em um modo que está em conformidade com o padrão referido como ISO/IEC 14496-2:2001 (E), seção 7.4.3. (predição de DC e de AC) e
7.7.1. (predição de DC e de AC de campo).
3.5.7. Codificação de Textura [00380] Um codificador de acordo com uma modalidade da presente invenção pode executar uma codificação de textura em um modo que está em conformidade dom o padrão referido como ISO/IEC 14496-2:2001 (E), anexo B (códigos de comprimento variável) e 7.4.1. (decodificação de comprimento variável).
Petição 870180023875, de 23/03/2018, pág. 104/160
100/112
3.5.8. Codificação de Movimento [00381] Um codificador de acordo com uma modalidade da presente invenção pode executar uma codificação de textura em um modo que está em conformidade dom o padrão referido como ISO/IEC 14496-2:2001 (E), anexo B (códigos de comprimento variável) e 7.6.3. (decodificação de vetor de movimento).
3.5.9. Gerando Blocos de ‘video’ [00382] A trilha de vídeo pode ser considerada como uma seqüência de quadros 1 a N. Os sistemas de acordo com as modalidades da presente invenção são capazes de codificar a seqüência para gerar um fluxo de bits comprimido. O fluxo de bits é formatado segmentando-o em blocos 1 a N. Cada quadro de vídeo n tem um bloco n correspondente.
[00383] Os blocos são gerados anexando os bits do fluxo de bits ao bloco n até que este, juntamente com os blocos 1 até n-1 contenham informações suficientes para um decodificador de acordo com uma modalidade da presente invenção decodifique o quadro de vídeo n. Em casos onde informações suficientes estão contidas nas blocos 1 até n-1 para gerar o quadro de vídeo n, um codificador de acordo com as modalidades da presente invenção pode incluir um bloco marcador. Em uma modalidade, o bloco marcador é um quadro P não codificado com informações de temporização idênticas às do quadro anterior.
3.6. GERANDO BLOCOS DE ‘subtitle’ [00384] Um codificador de acordo com uma modalidade da presente invenção pode tomar as legendas em um de uma série de formatos padrão e então converter as legendas em mapas de bits. As informações nos mapas de bits são então comprimidas utilizando codificação de comprimento de operação. Os mapas de bits codificados em comprimento de operação são então formatados em um bloco, o qual também inclui as informações referentes ao tempo de partida e ao tempo
Petição 870180023875, de 23/03/2018, pág. 105/160
101/112 de parada para a legenda específica contida no bloco. Em diversas modalidades, as informações referentes à cor, ao tamanho, e à posição da legenda na tela podem também estar incluídas no bloco. Os blocos podem estar incluídos na trilha de legenda que determina a paleta para as legendas e que indicam que a paleta mudou. Qualquer aplicação capaz de gerar uma legenda em um formato de legenda padrão pode ser utilizada para converter um texto inserido por um usuário diretamente em informações de legenda.
3.7. Intercalacão [00385] Uma vez que o intercalador recebeu todos os blocos acima descritos, o intercalador constrói um arquivo de multimídia. A construção do arquivo de multimídia pode envolver criar um bloco de ‘CSET’, um bloco de lista de ‘INFO’, um bloco de ‘hdrl’, um bloco de lista de 'movi’ e um bloco de idx1. Os métodos de acordo com as modalidades da presente invenção para criar estes blocos e para gerar os arquivos de multimídia estão abaixo descritos.
3.7.1. Gerando um bloco de ‘cset’ [00386] Como acima descrito, o bloco de ‘CSET’ é opcional e pode ser gerado pelo intercalador de acordo com a AVI Container Format Specification.
3.7.2. Gerando um bloco de lista de ‘INFO’ [00387] Como acima descrito, o bloco de lista de ‘INFO é opcional e pode ser gerado pelo intercalador de acordo com a AVI Container Format Specification.
3.7.3. Gerando o Bloco de Lista de ‘hdrl’ [00388] O bloco de lista de ‘hdrl’ é gerado pelo intercalador com base nas informações nos vários blocos providos para o intercalador. O bloco de lista de ‘hdrl’ referencia a localização dentro do arquivo dos blocos referenciados. Em uma modalidade, o bloco de lista de ‘hdrl’ utiliza os deslocamentos de arquivo de modo a estabelecer as referênPetição 870180023875, de 23/03/2018, pág. 106/160
102/112 cias.
3.7.4. Gerando o Bloco de Lista de ‘movi’ [00389] Como acima descrito, o bloco de lista de ‘movi’ é criado pela codificação das trilhas de áudio, de vídeo e de legenda para criar os blocos de ‘audio’, de ‘video’ e de ‘subtitle’ e então intercalando estes blocos. Em diversas modalidades, o bloco de lista de 'movi' pode também incluir as informações de gerenciamento de direitos digitais.
3.7.4.1. Intercalando o vídeo/áudio/legendas [00390] Uma variedade de regras pode ser utilizada para intercalar os blocos de áudio, de vídeo e de legenda. Tipicamente, o intercalador estabelece um número de filas para cada uma das trilhas de vídeo e de áudio. O intercalador determina qual fila deverá ser escrita no arquivo de saída. A seleção de fila pode estar baseada no período de intercalação escrevendo da fila que tem o menor número de períodos de intercalação escritos. O intercalador pode precisar aguardar que um período de intercalação inteiro esteja presente na fila antes do bloco poder ser escrito no arquivo.
[00391] Em uma modalidade, os blocos de ‘audio,’ de ‘video’ e de ‘subtitle’ gerados são intercalados de modo que os blocos de ‘audio’ e de ‘subtitle’ fiquem localizados dentro do arquivo antes dos blocos de ‘video’ que contêm as informações referentes aos quadros de vídeo aos quais estes correspondem. Em outras modalidades, os blocos de ‘audio’ e de ‘subtitle’ podem ser localizados após os blocos de ‘video’ aos quais estes correspondem. As diferenças de tempo entre a localização dos blocos de ‘audio,’ de ‘video’ e de ‘subtitle’ é grandemente dependente das capacidades de armazenamento temporário dos reprodutores que são utilizados para reproduzir os dispositivos. Em modalidades onde o armazenamento temporário é limitado ou desconhecido, o intercalador intercala os blocos de ‘audio,’ de ‘video’ e de ‘subtitle’ de modo que os blocos de ‘audio’ e de ‘subtitle’ fiquem localizados
Petição 870180023875, de 23/03/2018, pág. 107/160
103/112 entre os blocos de ‘video’, onde o bloco de ‘video’ imediatamente seguinte ao bloco de ‘audio’ e de ‘subtitle’ contém o primeiro quadro de vídeo que corresponde ao áudio ou à legenda.
3.7.4.2. Gerando as informações de DRM [00392] Nas modalidades onde um DRM é utilizado para proteger o conteúdo de vídeo de um arquivo de multimídia, as informações de DRM podem ser geradas concorrentemente com a codificação dos blocos de vídeo. Conforme cada bloco é gerado, o bloco pode ser criptografado e um bloco de DRM gerado contendo as informações referentes à criptografia do bloco de vídeo.
3.7.4.3. Intercalacão das Informações de DRM [00393] Um intercalador de acordo com uma modalidade da presente invenção intercala um bloco de DRM que contém as informações referentes à criptografia de um bloco de vídeo antes do bloco de vídeo. Em uma modalidade, o bloco de DRM para o bloco de vídeo n está localizado entre o bloco de vídeo n-1 e o bloco de vídeo n. Em outras modalidades, o espaçamento do DRM antes e após o bloco de vídeo n é dependente da quantidade de armazenamento temporário provido dentro do dispositivo que decodifica o arquivo de mídia.
3.7.5. Gerando o bloco de ‘idxT [00394] Uma vez que o bloco de lista de ‘movi’ foi gerado, a geração do bloco de ‘idxT é um processo simples. O bloco de ‘idxT é criado pela leitura da localização dentro do bloco de lista de ‘movi’ de cada bloco de ‘data’. Estas informações são combinadas com as informações lidas do bloco de ‘data’ referente à trilha à qual o bloco de ‘data’ pertence e ao conteúdo do bloco de ‘data’. Toda estas informações são então inseridas no bloco de ‘idxT em um modo apropriado a qualquer dos formatos acima descritos que está sendo utilizado para representar as informações.
4. Transmissão e Distribuição de Arquivo de Multimídia
Petição 870180023875, de 23/03/2018, pág. 108/160
104/112 [00395] Uma vez que um arquivo de multimídia é gerado, o arquivo pode ser distribuído sobre qualquer uma de uma variedade de redes. O fato de que em muitas modalidades os elementos requeridos para gerar uma apresentação de multimídia e menus, entre outras coisas, estão contidos em um único arquivo simplifica a transferência de informações. Em diversas modalidades, o arquivo de multimídia pode ser distribuído separadamente das informações requeridas para decifrar o conteúdo do arquivo de multimídia.
[00396] Em uma modalidade, o conteúdo de multimídia é provido para um primeiro servidor e codificado para criar um arquivo de multimídia de acordo com a presente invenção. O arquivo de multimídia pode então estar localizado ou no primeiro servidor ou em um segundo servidor. Em outras modalidades, as informações de DRM podem estar localizadas no primeiro servidor, no segundo servidor ou em um terceiro servidor. Em uma modalidade, o primeiro servidor pode ser consultado para assegurar a localização do arquivo de multimídia codificado e/ou assegurar a localização das informações de DRM.
5. Decodificando o Arquivo de Multimídia [00397] As informações de um arquivo de multimídia de acordo com uma modalidade da presente invenção podem ser acessadas por um computador configurado utilizando um software apropriado, um reprodutor dedicado que está conectado fixo a informações de acesso do arquivo de multimídia ou qualquer outro dispositivo capaz de analisar um arquivo AVI. Em diversas modalidades, os dispositivos podem acessar todas as informações no arquivo de multimídia. Em outras modalidades, o dispositivo pode ser incapaz de acessar todas as informações no arquivo de multimídia de acordo com uma modalidade da presente invenção. Em uma modalidade específica, um dispositivo não é capaz de acessar nenhuma das informações acima descritas que estejam em blocos que não estão especificados no formato de ar
Petição 870180023875, de 23/03/2018, pág. 109/160
105/112 quivo AVI. Em modalidades onde nem todas as informações podem ser acessadas, o dispositivo tipicamente descartará aqueles blocos que não reconhecidos pelo dispositivo.
[00398] Tipicamente, um dispositivo que é capaz de acessar as informações contidas em um arquivo de multimídia de acordo com uma modalidade da presente invenção é capaz de executar um número de funções. O dispositivo pode exibir uma apresentação de multimídia que envolve a exibição de vídeo em um display visual, gerar áudio de uma de potencialmente um número de trilhas de áudio em um sistema de áudio e exibir legendas de potencialmente uma de um número de trilhas de legenda. Diversas modalidades podem também exibir menus em um display visual enquanto reproduzindo o áudio e/ou vídeo acompanhante. Estes menus de exibição são interativos, com características, tais como, botões selecionáveis, menus e submenus instantâneos. Em algumas modalidades os itens de menu podem apontar para um conteúdo de áudio/vídeo fora do arquivo de multimídia presentemente sendo acessado. O conteúdo externo pode estar ou localizado local ao dispositivo que acessa o arquivo de multimídia ou este pode estar localizado remotamente, tal como sobre uma área local, uma área ampla ou uma rede pública. Muitas modalidades podem também pesquisar um ou mais arquivos de multimídia de acordo com os 'metadados' incluídos no(s) arquivo(s) de multimídia ou os 'metadados' referenciados por um ou mais dos arquivos de multimídia.
5.1. Exibição de Apresentação de Multimídia [00399] Dada a capacidade dos arquivos de multimídia de acordo com as modalidades da presente invenção suportarem múltiplas trilhas de áudio, múltiplas trilhas de vídeo e múltiplas trilhas de legenda, a exibição de uma apresentação de multimídia utilizando, tal arquivo de multimídia que combina vídeo, áudio e/ou legendas pode requerer a seleção de uma trilha de áudio, uma trilha de vídeo e/ou uma trilha de
Petição 870180023875, de 23/03/2018, pág. 110/160
106/112 legenda específica ou através de um sistema de menu visual ou um sistema de menu instantâneo (a operação dos quais está abaixo discutida) ou através dos ajustes padrão do dispositivo utilizado para gerar a apresentação de multimídia. Uma vez que uma trilha de áudio, uma trilha de vídeo e potencial mente uma trilha de legenda são selecionadas, a exibição da apresentação de multimídia pode prosseguir.
[00400] Um processo para localizar as informações de multimídia requeridas de um arquivo de multimídia que inclui um DRM e exibir as informações de multimídia de acordo com uma modalidade da presente invenção está ilustrado na Figura 4.0. O processo 620 inclui obter a chave de criptografia requerida para decifrar o cabeçalho de DRM (622). A chave de criptografia é então utilizada para decifrar (624) o cabeçalho de DRM e o primeiro bloco de DRM está localizado (626) dentro do bloco de lista e 'movi' do arquivo de multimídia. A chave de criptografia requerida para decifrar o bloco de 'DRM' é obtida (628) da tabela no cabeçalho de 'DRM' e a chave de criptografia é utilizada para decifrar um bloco de vídeo criptografado. O bloco de áudio requerido e qualquer bloco de legenda requerido que acompanham o bloco de vídeo são então decodificados (630) e as informações de áudio, de vídeo e de qualquer legenda são apresentadas (632) através do display e do sistema de som.
[00401] Em diversas modalidades a trilha de áudio escolhida pode incluir múltiplos canais para prover um áudio estéreo ou de som circundante. Quando uma trilha de legenda é escolhida para ser exibida, uma determinação pode ser feita quanto a se o quadro de vídeo anterior inclui uma legenda (esta determinação pode ser feita em qualquer um de uma variedade de modos que atinja o resultado de identificar um bloco de 'subtitle’ anterior que continha as informações de legenda que devem ser exibidas sobre o quadro de vídeo atualmente decodificado). Se a legenda anterior incluiu uma legenda e as informações de
Petição 870180023875, de 23/03/2018, pág. 111/160
107/112 temporização para a legenda indica que a legenda deve ser exibida com o quadro atual, então a legenda é sobreposta no quadro de vídeo decodificado. Se o quadro anterior não incluiu uma legenda ou as informações de temporização para a legenda no quadro anterior indica que a legenda não deve ser exibida em conjunto com o quadro atualmente decodificado, então um bloco de ‘subtitle’ para a trilha de legenda selecionada é procurado. Se um bloco de ‘subtitle’ for localizado, então a legenda é sobreposta ao vídeo decodificado. O vídeo (incluindo todas as legendas sobrepostas) é então exibido com o áudio acompanhante.
[00402] Retornando à discussão da Figura 4.0, o processo determina (634) se existem quaisquer blocos de DRM adicionais. Se existirem, então o próximo bloco de DRM é localizado (626) e o processo continua até que nenhum bloco de DRM adicional permaneça. Em cujo ponto, a apresentação das trilhas de áudio, de vídeo e/ou de legenda está completa (636).
[00403] Em diversas modalidades, um dispositivo pode procurar por uma porção específica das informações de multimídia (por exemplo, uma cena específica de um filme com uma trilha de áudio acompanhante específica e opcionalmente uma trilha de legenda acompanhante específica) utilizando as informações contidas no bloco de ‘hdrl’ de um arquivo de multimídia de acordo com a presente invenção. Em muitas modalidades, a decodificação do bloco de ‘video’, do bloco de ‘audio’ e/ou do bloco de ‘subtitle’ pode ser executada em paralelo com outras tarefas.
[00404] Um exemplo de um dispositivo capaz de acessar as informações do arquivo de multimídia e exibir um vídeo em conjunto com uma trilha de áudio específica e/ou uma trilha de legenda específica é um computador configurado no modo acima descrito utilizando um software. Outro exemplo é um reprodutor de DVD equipado com um co
Petição 870180023875, de 23/03/2018, pág. 112/160
108/112 dec que inclui estas capacidades. Em outras modalidades qualquer dispositivo configurado para localizar ou selecionar (ou intencionalmente ou arbitrariamente) os blocos de 'data' que correspondem a trilhas de mídia específicas e decodificar estas trilhas para apresentação é capaz de gerar uma apresentação de multimídia utilizando um arquivo de multimídia de acordo com a prática da presente invenção.
[00405] Em diversas modalidades, um dispositivo pode reproduzir as informações de multimídia de um arquivo de multimídia em combinação com as informações de multimídia de um arquivo externo. Tipicamente, um, tal dispositivo faria isto originando uma trilha de áudio ou uma trilha de legenda de um arquivo local referenciado em um arquivo de multimídia do tipo acima descrito. Se o arquivo referenciado não for armazenado localmente e o dispositivo está em rede com o local onde o dispositivo está armazenado, então o dispositivo pode obter uma cópia local do arquivo. O dispositivo acessaria então ambos os arquivos, estabelecendo um encadeamento de um vídeo, de um áudio e de uma legenda (se requerida) no qual as várias trilhas de multimídia são alimentadas das diferentes fontes de arquivo.
5.2. Geração de Menus [00406] Um decodificador de acordo com uma modalidade da presente invenção está ilustrado na Figura 4.1. O decodificador 650 processa um arquivo de multimídia 652 de acordo com uma modalidade da presente invenção provendo o arquivo para um demultiplexador 654. O demultiplexador extrai o bloco de ‘DMNU’ do arquivo de multimídia e extrai todos os blocos de ‘LanguageMenus’ do bloco de 'DMNU' e os provê para um analisador de menu 656. P demultiplexador também extrai todos os blocos de ‘Media’ do bloco de 'DMNU' e os provê para um renderizador de mídia 658. O analisador de menu 656 analisa as informações dos blocos de ‘LanguageMenu’ para construir uma máquina de estado que representa a estrutura de menu definida
Petição 870180023875, de 23/03/2018, pág. 113/160
109/112 no bloco de ‘LanguageMenü. A máquina de estado que representa a estrutura de menu pode ser utilizada para prover displays para o usuário e responder aos comandos do usuário. A máquina de estado é provida para um controlador de estado de menu 660. O controlador de estado de menu acompanha o estado atual da máquina de estado de menu e recebe comandos do usuário. Os comandos do usuário podem causar uma transição de estado. O display inicial provido para um usuário e quaisquer atualizações do display que acompanham uma transição de estado de menu podem ser controladas utilizando uma interface de reprodutor de menu 662. A interface de reprodutor de menu 662 pode estar conectada no controlador de estado de menu e no renderizador de mídia. A interface de reprodutor de menu instrui o renderizador de mídia qual mídia deve ser extraída dos blocos de mídia e providos para o usuário através do reprodutor 664 conectado no renderizador de mídia. O usuário pode prover o reprodutor com instruções que utilizam um dispositivo de entrada, tal como um teclado, um mouse ou um controle remoto. Geralmente o arquivo de multimídia dita o menu inicialmente exibido para o usuário e as instruções do usuário ditam o áudio e o vídeo exibidos após a geração do menu inicial. O sistema ilustrado na Figura 4.1 pode ser implementado um computador e um software. Em outras modalidades, o sistema pode ser implementado utilizando os circuitos integrados de função específica ou uma combinação de software de firmware.
[00407] Um exemplo de um menu de acordo com uma modalidade da presente invenção está ilustrado na Figura 4.2. O display de menu 670 inclui quatro áreas de botão 672, um vídeo de fundo 674, que inclui um título 676, e um apontador 678. O menu também inclui um áudio de fundo (não mostrado). O efeito visual criado pelo display pode ser enganador. A aparência visual dos botões faz tipicamente parte do vídeo de fundo e os próprios botões são simplesmente regiões defini
Petição 870180023875, de 23/03/2018, pág. 114/160
110/112 das do vídeo de fundo que tem ações específicas associadas com estes, quando a região é ativada pelo apontador. Um apontador é tipicamente uma sobreposição.
[00408] A Figura 4.3 conceitualmente ilustra a fonte de todas as informações no display mostrado na Figura 4.2. O vídeo de fundo 674 pode incluir um título de menu, a aparência visual dos botões e o fundo do display. Todos estes elementos e elementos adicionais podem aparecer estáticos ou animados. O vídeo de fundo é extraído pela utilização de informações contidas em um bloco de ‘MediaTrack’ 700 que indica a localização do vídeo de fundo dentro de uma trilha de vídeo 702. O áudio de fundo 706 que acompanha o menu pode ser localizado utilizando um bloco de ‘MediaTrack’ 708 que indica a localização do áudio de fundo dentro de uma trilha de áudio 710. Como acima discutido, o apontador 678 faz parte de uma sobreposição 713. A sobreposição 713 pode também incluir um gráfico que parece realçar a porção do vídeo de fundo que aparece como um botão. Em uma modalidade, a sobreposição 713 é obtida utilizando um Bloco de ‘MediaTrack’ 712 que indica a localização da sobreposição dentro de uma trilha de sobreposição 714. O modo no qual o menu interage com um usuário é definido pelos blocos de ‘Action’ (não mostrados) associados com cada um dos botões. Na modalidade ilustrada, um bloco de 'PlayAction’ 716 está ilustrado. O bloco de 'PlayAction’ indiretamente referencia (os outros blocos referenciados pelo bloco de 'PlayAction’ não estão mostrados) uma cena dentro de uma apresentação de multimídia contida no arquivo de multimídia (isto é uma trilha de áudio, de vídeo e possivelmente de legenda). O bloco de 'PlayAction’ 716 finalmente referencia a cena utilizando um bloco de ‘MediaTrack’ 718, o qual indica a cena dentro da trilha de filme. Um ponto em uma trilha de áudio selecionada ou padrão e potencialmente uma trilha de legenda são também referenciados.
Petição 870180023875, de 23/03/2018, pág. 115/160
111/112 [00409] Conforme o usuário entra os comandos utilizando o dispositivo de entrada, o display pode ser atualizado não somente em resposta à seleção de áreas de botão mas também simplesmente devido ao apontador estando localizado dentro da área de botão. Como acima discutido, tipicamente todas as informações de mídia utilizadas para gerar os menus estão localizadas dentro dos arquivos de multimídia e mais especificamente dentro de um bloco de 'DMNU'. Apesar de que em outras modalidades, as informações podem estar localizadas em qualquer lugar dentro do arquivo e/ou em outros arquivos.
5.3. Acesso aos Metadados [00410] Os 'metadados' são um método padronizado de representar as informações. A natureza padronizada dos 'metadados' permite que os dados sejam acessados e compreendidos por processos automáticos. Em uma modalidade, os 'metadados' são extraídos e providos para um usuário para observação. Diversas modalidades permite que os arquivos de multimídia em um servidor sejam inspecionados para prover informações referentes a usuários, hábitos de assistência e preferências de assistência., tais informações poderíam ser utilizadas por aplicações de software para recomendar outros arquivos de multimídia que um usuário pode apreciar ver. Em uma modalidade, as recomendações podem estar baseadas no arquivo de multimídia contido nos servidores de outros usuários. Em outras modalidades, um usuário pode solicitar um arquivo de multimídia e o arquivo pode ser localizado por uma máquina de pesquisa e/ou agentes inteligentes que inspecionam os 'metadados' dos arquivos de multimídia em uma variedade de locais. Além disso, o usuário pode escolher entre vários arquivos de multimídia que contêm uma apresentação de multimídia específica com base nos 'metadados' referentes ao modo no qual cada uma das diferentes versões da apresentação foram codificadas.
[00411] Em diversas modalidades, os 'metadados' de arquivos de
Petição 870180023875, de 23/03/2018, pág. 116/160
112/112 multimídia de acordo com as modalidades da presente invenção podem ser acessados para propósitos de catalogar ou para criar um menu simples para acessar o conteúdo do arquivo.
[00412] Apesar da descrição acima conter muitas modalidades específicas da invenção, estas não devem ser consideradas como imitações sobre o escopo da invenção, mas ao contrário como um exemplo de uma sua modalidade. Por exemplo, um arquivo de multimídia de acordo com uma modalidade da presente invenção pode incluir uma única apresentação de multimídia ou múltiplas apresentações de multimídia. Além disso, um, tal arquivo pode incluir um ou mais menus e qualquer variedade de diferentes tipos de 'metadados'. Consequentemente, o escopo da invenção deve ser determinado não somente pelas modalidades ilustradas, mas pelas reivindicações anexas e seus equivalentes.