BRPI0709888A2 - decodificaÇço multimÍdia em nÍvel de quadro com tabela de informaÇÕes de quadro - Google Patents

decodificaÇço multimÍdia em nÍvel de quadro com tabela de informaÇÕes de quadro Download PDF

Info

Publication number
BRPI0709888A2
BRPI0709888A2 BRPI0709888-0A BRPI0709888A BRPI0709888A2 BR PI0709888 A2 BRPI0709888 A2 BR PI0709888A2 BR PI0709888 A BRPI0709888 A BR PI0709888A BR PI0709888 A2 BRPI0709888 A2 BR PI0709888A2
Authority
BR
Brazil
Prior art keywords
information
multimedia data
layer
processing
error
Prior art date
Application number
BRPI0709888-0A
Other languages
English (en)
Inventor
Fang Shi
Seyfullah Halit Oguz
Vijayalakshmi R Reveevdran
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0709888A2 publication Critical patent/BRPI0709888A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

<B>DECODIFICAÇçO MULTIMÍDIA EM NÍVEL DE QUADRO COM TABELA DE INFORMAÇÕES DE QUADRO<D>São descritos equipamento e método paradecodificar dados de vídeo enquanto mantém uma qualidade vídeo alvo usando um sistema de controle de erro integrado que inclui recuperação de erro, re-sincronização e detecção de erro, O controle de erro robusto pode ser fornecido por uma funcionalidade comum do codificador-decodificador que inclui múltiplos projetos de resiliência de erro. Em um aspecto, a recuperação de erro pode ser um mecanismo multicamada integrado fim-a-fim de detecção de erro, re- sincronização e recuperação projetado para conseguir detecção de erro e localização de erro confiáveis. O sistema de recuperação de erro pode incluir interação de camada cruzada de subsistemas de detecção de erro, re- sincronização e recuperação de erro. Em um outro aspecto, tratamento de erro de um fluxo de bits codificado graduável é coordenado através de uma camada base e de uma camada de aperfeiçoamento de vídeo comprimido graduável.

Description

DECODIFICAÇÃO MULTIMÍDIA EM NÍVEL DE QUADRO COM TABELA DE
INFORMAÇÕES DE QUADRO
REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
Reivindicação de Prioridade conforme § 119, 35 USC
O presente Pedido de Patente reivindicaprioridade ao Pedido Provisório No. 60/789.443 intitulado"FRAME LEVEL VIDEO DECODING WITH FRAME INFORMATION TABLE(FIT)" depositado em 4 de abril de 2006 e cedido aocessionário do mesmo e dessa forma expressamenteincorporado por referência aqui.
FUNDAMENTOS
Campo da Invenção
A invenção é direcionada a processamento de sinalmultimídia e, mais especificamente, a codificação edecodificação de vídeo.
Descrição da Técnica Relacionada
Sistemas de processamento de sinal multimídia,tal como codificadores de vídeo, podem codificar dadosmultimídia usando métodos de codificação com base empadrões internacionais, tais como padrões MPEG-x e H.26x.Tais métodos de codificação geralmente são direcionados nosentido de compressão dos dados multimídia para transmissãoe/ou armazenamento. Compressão é amplamente o processo deremover redundância dos dados.
Um sinal de vídeo pode ser descrito em termos deuma seqüência de imagens, que incluem quadros (uma imageminteira) ou campos (por exemplo, um sinal de vídeoentrelaçado compreende campos de linhas ímpares e paresalternantes de uma imagem) . Como usado aqui, o termo"quadro" refere-se a uma imagem, um quadro ou um campo.Quadros podem ser formados por várias partes dimensionadasde dados de vídeo incluindo pixels individuais, grupos depixels referidos geralmente como blocos e grupos de blocosgeralmente referidos como fatias. Métodos de codificação devideo comprimem sinais de video usando algoritmos decompressão sem perda ou com perda para comprimir cadaquadro. Codificação intra-quadro (aqui referida como intra-codificação) refere-se a codificação de um quadro usandoaquele quadro. Codificação inter-quadro (aqui referida comointer-codificação) refere-se a codificação de um quadro combase em outros quadros "referência". Por exemplo, sinais devideo freqüentemente exibem redundância espacial em quepartes de amostras de quadro de video próximas umas dasoutras no mesmo quadro possuem pelo menos partes que casamou pelo menos aproximadamente casam umas as outras. Emadição, quadros exibem freqüentemente redundância temporalque pode ser removida usando técnicas, tal como previsãocompensada de movimento.
Um fluxo de bits multimídia alvo para uma únicaaplicação, tal como fluxo de bits de vídeo, por exemplo,pode ser codificado em duas ou mais camadas separadas (porexemplo, usando codificação graduável) , tal como uma camadabase e uma ou mais camadas de aperfeiçoamento. Esjsascamadas podem a seguir ser usadas para forneòerescalabilidade, por exemplo, escalabilidade temporal e/ouSNR (relação sinal/ruído). Δ codificação graduável é útilem canais dinâmicos, onde fluxos de bits graduáveis podemser adaptados para casar flutuações na largura de banda derede. Em canais propensos a erro, codificação graduávelpode adicionar robustez através de proteção de errodesigual da camada base e da camada de aperfeiçoamento.
Canais sem fio são propensos a erros, incluindoerros de bits e perdas de pacotes. Devido à compressão devídeo inerentemente remover redundância, os dadoscomprimidos se tornam críticos. Perda de qualquer partedestes dados durante transmissão impacta a qualidade devídeo reconstruído no decodificador. O impacto é agravadose os dados perdidos são parte das porções de referênciapara previsão compensada de movimento e/ou previsãoespacial, causando propagação de erro temporal e/êuespacial. Em adição, a codificação graduável pode tamtíémagravar propagação de erro. Por exemplo, perda de umacamada base pode produzir dados inúteis de camada deaperfeiçoamento recebidos corretamente, caso os dados decamada de aperfeiçoamento dependam da camada base. Alémdisso, a sincronização pode ser perdida no decodificadordevido à codificação dependente de contexto e codificaçãopreditiva resultante em porções igualmente maiores de vídeoperdido que poderiam ser exibidos caso a re-sincronizaçãofosse possível. Caso grandes porções de vídeos sejamperdidas devido a erros, controle de erro, detecção erecuperação pode ser difícil ou impossível para umaaplicação de decodificador. O que é necessário é um sistemade controle de erro confiável incluindo, pelo menos emparte, detecção de erro, re-sincronização e/ou recuperaçãode erro que faz uso máximo das informações recebidas.
SUMÁRIO
O sistema, o método e os dispositivos dainvenção, cada um, possui muitos aspectos, nenhum desses éresponsável apenas por seus atributos desejáveis. Semlimitar o escopo da invenção como expresso pelasreivindicações que seguem, suas características maisproeminentes serão agora discutidas brevemente. Apósconsiderar esta discussão, e especificamente após ler aseção intitulada "Descrição Detalhada de Certos Aspectos",alguns irão entender como características de amostra destainvenção fornecem vantagens para codificação edecodificação multimídia que inclui, por exemplo, ocultaçãode erro melhorada e/ou eficiência melhorada.
Um método para processar dados multimídia éfornecido. 0 método inclui receber os dados multimídia,organizar informações descritivas sobre os dados multimídiaem uma primeira camada, onde as informações descritivas sãorelacionadas ao processamento dos dados multimídia em umasegunda camada, e fornecer instruções relacionadas aoprocessamento dos dados multimídia na segunda camada combase, pelo menos em parte, nas informações descritivas.
Um equipamento para processar dados multimídia éfornecido. O equipamento inclui um receptor configuradopara receber os dados multimídia, um organizador deinformações configurado para organizar informaçõesdescritivas sobre os dados multimídia em uma primeiracamada, onde as informações descritivas são relacionadas aoprocessamento dos dados multimídia em uma segunda camada, eum subsistema de decisão de controle de erro configuradopara fornecer instruções relacionadas ao processamento dosdados multimídia na segunda camada com base, pelo menos emparte, nas informações descritivas.
É fornecido um meio legível por máquinacompreendendo código de programa. O código de programa,quando executado em uma ou mais máquinas, faz com que umaou mais máquinas realizem operações de programa. 0 códigode programa inclui código para receber dados multimídia,código para organizar informações descritivas sobre osdados multimídia em uma primeira camada, em que asinformações descritivas são relacionadas ao processamentodos dados multimídia em uma segunda camada, e código parafornecer instruções relacionadas ao processamento dos dadosmultimídia na segunda camada com base, pelo menos em parte,nas informações descritivas.É fornecido um método para processar dadosmultimídia. 0 método inclui receber os dados multimídia,processar os dados multimídia em uma camada superior,instruir uma camada inferior com base, pelo menos em parte,em informações associadas com o processamento dos dadosmultimídia na camada superior, e processar os dadosmultimídia na camada inferior com base, pelo menos emparte, nas informações associadas com o processamento dosdados multimídia na camada superior.
É fornecido um equipamento para processar dadosmultimídia. O equipamento inclui um receptor configuradopara receber os dados multimídia, um subsistema dedecodificador de camada superior configurado para processaros dados multimídia em uma camada superior, e para instruiruma camada inferior com base, pelo menos em parte, eminformações associadas com o processamento dos dadosmultimídia na camada superior, e um subsistema dedecodificador de camada inferior configurado para processaros dados multimídia na camada inferior com base, pelo menosem parte, nas informações associadas com o processamentodos dados multimídia na camada superior.
É fornecido um meio legível por máquinacompreendendo código de programa. 0 código de programa,quando executado em uma ou mais máquinas, faz com que umaou mais máquinas realizem operações de programa. 0 códigode programa inclui código para receber dados multimídia,código para processar os dados multimídia em uma camadasuperior, código para instruir uma camada inferior combase, pelo menos em parte, em informações associadas com oprocessamento dos dados multimídia na camada superior, ecódigo para processar os dados multimídia na camadainferior com base, pelo menos em parte, nas informaçõesassociadas com o processamento dos dados multimídia nacamada superior.
É fornecido um método para processar dadosmultimídia. O método inclui receber os dados multimídia,receber informações descritivas sobre os dados multimídia apartir de uma primeira camada, em que as informaçõesdescritivas são relacionadas com o processamento dos dadosmultimídia em uma segunda camada, e processar os dadosmultimídia na segunda camada com base, pelo menos em parte,nas informações descritivas recebidas.
É fornecido um equipamento para processar dadosmultimídia. O equipamento inclui um receptor configuradopara receber os dados multimídia, um decodificadorconfigurado para receber informações descritivas sobre osdados multimídia a partir de uma primeira camada, em que asinformações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada, epara processar os dados multimídia na segunda camada combase, pelo menos em parte, nas informações descritivasrecebidas.
É fornecido um meio legível por máquinacompreendendo código de programa. O código de programa,quando executado em uma ou mais máquinas, faz com que umaou mais máquinas realizem operações de programa. 0 códigode programa inclui código para receber dados multimídia,código para receber informações descritivas sobre os dadosmultimídia a partir de uma primeira camada, em que asinformações descritivas são relacionadas com o processamentodos dados multimídia em uma segunda camada, e código paraprocessar os dados multimídia na segunda camada com base,pelo menos em parte, nas informações descritivas recebidas.BREVE DESCRIÇÃO DOS DESENHOS
A Figura 1 é um diagrama de blocos ilustrando umsistema de comunicações multimídia de acordo com umaspecto.
A Figura 2 é um diagrama de blocos de um exemplode uma pilha de protocolo multicamada usada para dividirtarefas incluindo um sistema de controle de erro de camadacruzada no dispositivo de codificador 105 e no dispositivode decodificador 110 no sistema, tal como ilustrado na Fig. 1.
A Figura 3A é um diagrama de blocos ilustrando umaspecto de um dispositivo de decodif icador que pode serusado em um sistema, tal como ilustrado na Fig. 1.
A Figura 3B é um diagrama de blocos ilustrando umexemplo de um sistema de processador de computador de umdispositivo de decodif icador que pode ser usado em umsistema, tal como ilustrado na Fig. 1.
A Figura 4 mostra uma ilustração de um exemplo deum esquema de empacotamento de múltiplas camadas.
A Figura 5A é um fluxograma ilustrando um exemplode um método de processar dados multimídia em um sistema,tal como ilustrado na Fig. 1.
A Figura 5B é um fluxograma ilustrando outroexemplo de um método de processar dados multimídia em umsistema, tal como ilustrado na Fig. 1.
A Figura 5C é um fluxograma ilustrando outroexemplo de um método de processar dados multimídia em umsistema, tal como ilustrado na Fig. 1.
A Figura 6 é um diagrama de blocos de um exemplode um subsistema de decodificador multimídia de multicamadaque pode ser usado para realizar o método ilustrado na Fig. 5C.A Figura 7 é um fluxograma ilustrando um exemplode um método de organizar informações descritivas que podeser usado para realizar certos atos nos métodos ilustradosnas Figs. 5A e 5C.
As Figuras 8A e 8B são fluxogramas ilustrando umexemplo de um método de determinar ações de controle deerro no método ilustrado na Fig. 7.
A Figura 9 apresenta uma estrutura de um exemplode pacotes de camada fisica incluindo uma camada basecodificada graduável e camada de aperfeiçoamento para usoem um sistema, tal como ilustrado na Fig. 1.
A Figura IOA ilustra graficamente posições de umquadro-P e um quadro-P decodificado anteriormenteposicionado três quadros antes do quadro atual.
A Figura IOB ilustra graficamente flagging dequadros decodificados usados para ocultação de erro paraoutros quadros errôneos.
A Figura IOC ilustra graficamente variáveisusadas para indicar posições de dois quadros decodificadosusados para ocultar um quadro errôneo usando FRUC.
A Figura 11 é um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado em um sistema, tal como ilustrado naFig. 1.
A Figura 12 é um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado em um sistema, tal como ilustrado naFig. 1.
A Figura 13 é um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado em um sistema, tal como ilustrado naFig. 1.Figura 14 é um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado em um sistema, tal como ilustrado naFig. 1.
Figura 15 é um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado em um sistema, tal como ilustrado naFig. 1.
Figura 16 é .um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado em um sistema, tal como ilustrado naFig. 1.
DESCRIÇÃO DETALHADA DE CERTOS ASPECTOS
A seguinte descrição detalhada está direcionada acertos aspectos de amostra específicos da invenção. 0 usodos termos "um aspecto", "outro aspecto", "um aspectoadicional", "aspecto", "alguns aspectos", "certos aspectos"e similares não se destinam a implicar exclusividade mútuados vários aspectos de elementos dentro dos váriosaspectos. Dessa forma, vários aspectos e elementos dosvários aspectos podem ser eliminados e/ou combinados eainda estar dentro do escopo do pedido. Entretanto, osvários aspectos da invenção podem ser incorporados em umamultiplicidade de diferentes modos como definidos ecobertos pelas reivindicações. Nesta descrição, referênciaé feita aos desenhos em que partes semelhantes sãodesignadas com números semelhantes ao longo deste.
Aspectos incluem sistemas e métodos para melhorarprocessamento em um codificador e um decodificador em umsistema de transmissão multimídia. Dados multimídia podemincluir um ou mais dentre vídeo em movimento, áudio,imagens fixas ou qualquer outro tipo adequado de dadosáudio-visuais. Aspectos incluem um equipamento e método dedecodificar dados de vídeo para manter uma qualidade devídeo alvo usando um sistema de controle de erro integradoincluindo detecção de erro, re-sincronização e recuperaçãode erro. Controle de erro robusto pode ser fornecido poruma funcionalidade conjunta de codificador-decodificadorincluindo múltiplos projetos de resiliência de erro. Porexemplo, foi descoberto de acordo com um aspecto querecuperação de erro pode ser um mecanismo de detecção, re-sincronização e recuperação de erro multicamada integradofim-a-fim projetado para obter detecção de erro elocalização de erro confiáveis. Também foi encontrado quebenefício em desempenho de processamento pode ser obtido aoimplementar certa interação de camada cruzada duranteprocessamento de dados. Em outro aspecto, tratamento deerro de um fluxo de bits codificado graduável é coordenadoatravés de uma camada base e camada de aperfeiçoamento devídeo comprimido graduável.
A Fig. 1 é um diagrama de blocos funcionalilustrando um sistema de comunicações multimídia 100 deacordo com um aspecto. O sistema 100 inclui um dispositivode codificador 110 em comunicação com um dispositivo dedecodificador 150 via uma rede 140. Em um exemplo, odispositivo de codificador recebe um sinal multimídia apartir de uma fonte externa 102 e codifica aquele sinalpara transmissão na rede 140.
Neste exemplo, dispositivo de codificador 110compreende um processador 112 acoplado a uma memória 114 eum transceptor 116. O processador 112 codifica dados apartir da fonte de dados multimídia e fornece-os aotransceptor 116 para comunicação através da rede 140.
Neste exemplo, o dispositivo de decodificador 150compreende um processador 152 acoplado a uma memória 154 eum transceptor 156. O processador 152 pode incluir um oumais dentre um processador de propósito geral e/ou umprocessador de sinal digital e/ou um processador dehardware especifico de aplicação. A memória 154 podeincluir um ou mais dentre um estado sólido ou armazenamentocom base em disco ou qualquer dispositivo de memória deacesso aleatório gravável e legível. O transceptor 156 éconfigurado para receber dados multimídia através da rede140 e fazê-los disponíveis para o processador 152 paradecodificação. Em um exemplo, o transceptor 156 inclui umtransceptor sem fio. A rede 140 pode compreender um ou maisdentre um sistema de comunicação sem fio ou cabeado,incluindo um ou mais dentre um sistema Ethernet, telefônico(por exemplo, POTS) , a cabo, de linha de força e de fibraótica, e/ou sistema sem fio compreendendo um ou mais dentreum sistema de comunicação de acesso múltiplo por divisão decódigo (CDMA ou CDMA2000), um sistema de acesso múltiplopor divisão de freqüência (FDMA), um sistema de acessomúltiplo por divisão de tempo (TDMA), tal como sistemaGSM/GPRS (Serviço de Rádio Pacote Geral)/EDGE (ambiente GSMde dados aperfeiçoados), um sistema de telefonia móvelTETRA (Rádio Truncado Terrestre), um sistema de acessomúltiplo por divisão de código de banda larga (WCDMA), umsistema de alta taxa de dados (IxEV-DO ou IxEV-DO GoldMulticast), um sistema IEEE 802.11, um sistema MediaFLO, umsistema DMB, um sistema de acesso múltiplo por divisão defreqüência ortogonal (OFDM), ou um sistema DVB-H.
Devido a canais sem fio experimentar tanto errosde bit aleatórios quanto erros de rajada, a recuperação deerro é projetada para tratar efetivamente de ambos essestipos de erros. Foi revelado que usando um sistema decontrole de erro multicamada integrado, ambos os tipos detipos de erro podem ser efetivamente tratados. Foi reveladoque erros de bit aleatórios afetando porções de vídeoisoladas incluindo, por exemplo, um ou muitos pixels, oumesmo incluindo a perda de um ou mais pacotes de camadafísica (PLP), podem ser tratados efetivamente usandoocultação de erro temporal ou espacial na camada deaplicação. Entretanto, erros de rajada que resultam naperda de múltiplos PLPs consecutivos podem ser maisefetivamente tratados com a ajuda de módulos de controle deerro embutidos na camada de transporte e sincronização comodiscutido abaixo.
A Fig. 2 é um diagrama de blocos de um exemplo deuma pilha de protocolo multicamada usado para dividirtarefas incluindo um sistema de controle de erro de camadacruzada no dispositivo de codificador 110 e no dispositivode decodificador 150 no sistema, tal como ilustrado na Fig.1. Referindo-se às Figs. 1 e 2, dispositivos decomunicação, tal como o dispositivo de codificador 110 e odispositivo de decodificador 150, podem usar uma pilha deprotocolo multicamada usada para distribuir tarefas deprocessamento. Componentes de camada superior nodispositivo de codificador 110 e no dispositivo dedecodificador 150 podem incluir múltiplas aplicações, talcomo, por exemplo, decodificadores e/ou codificadores deáudio ou vídeo. Algumas modalidades podem incluir múltiplosfluxos de informações cujo propósito é serem decodificadossimultaneamente. Nestes casos, tarefas de sincronização dosmúltiplos fluxos podem também ser realizadas em componentesde camada superior. No dispositivo de codificador 110, umcomponente de camada superior pode fornecer informações detemporização codificadas no fluxo de bits que é transmitidoatravés de uma rede sem fio e/ou uma rede cabeada 140. Nodispositivo de decodificador 150, um componente de camadasuperior pode realizar parse dos múltiplos fluxos deinformações tal que as aplicações associadas decodificam-sepraticamente ao mesmo tempo.
Componentes de camada superior do dispositivo decodificador 110 são distribuídos em uma ou mais dentre umacamada de aplicação 205 e uma camada de sincronização 210.Componentes de camada inferior do dispositivo decodificador 110 são distribuídos em uma ou mais dentre umacamada de transporte 215, uma camada de controle de acessoao meio (MAC) e/ou fluxo 220 e uma camada física 225.Similarmente, componentes de camada superior do dispositivode decodificador 150 são distribuídos em uma ou mais dentreuma camada de aplicação 230 e uma camada de sincronização235. Componentes de camada inferior do dispositivo dedecodif icador 150 são distribuídos em uma ou mais dentreuma camada de transporte 24 0, uma camada de controle deacesso ao meio (MAC) e/ou fluxo 245 e uma camada física350. Técnicos versados irão reconhecer estas camadas e sefamiliarizarão com a alocação de várias tarefas entre elas.Deve ser notado que o termo de camada superior e camadainferior como usado aqui em diante são termos relativos.Por exemplo, a camada de sincronização 235 pode ser,referida como uma camada inferior em referência à camada deaplicação 230, mas pode ser referida como uma camadasuperior em referência à camada de transporte 240.
Um sistema de resiliência de erro 255 nodispositivo de codificador 110 é fornecido através de cadauma das camadas neste exemplo. Componentes de camadainferior no dispositivo de codificador 110 podem incluirvários esquemas para fornecer resiliência de erro. Taisesquemas de resiliência de erro fornecidos em componentesde camada inferior podem incluir um ou mais esquemas decodificação de controle de erro, esquemas de intercalamento,e outros esquemas que são conhecidos dos técnicos versados.Componentes de camada inferior no dispositivo dedecodificador 150 podem incluir os componentes dedecodificação de erro correspondentes que habilitamdetecção e correção de erros. Alguns erros que sãointroduzidos através da rede cabeada e/ou sem fio 150 podemser corrigiveis pelos componentes de camada inferior dodispositivo de decodificador 110. Para aqueles erros quenão são corrigiveis, -soluções, tal como solicitarretransmissão de componentes corruptos pelos componentes decamada inferior do dispositivo de codificador 105, podemnão ser factíveis para algumas situações.
Os componentes de camada superior do dispositivode codificador 150 podem anexar informações descritivas emcabeçalhos relacionados a várias camadas de comunicação,com relação ao empacotamento de dados multimídia. Em algunsexemplos, o empacotamento é realizado em vários níveis parapermitir múltiplos fluxos de dados a serem divididos(parsed) no processo de codificação e serem remontadosdurante decodificação usando, pelo menos em parte,informações de cabeçalho que foram adicionados pelas váriascamadas do codificador. Por exemplo, a camada desincronização 210 pode adicionar informações de cabeçalhoidentificando múltiplos tipos de pacotes sendo ligados commúltiplos componentes de decodificador que podemdecodificar os múltiplos tipos de pacotes simultaneamente.As informações de cabeçalho de camada de sincronizaçãopodem incluir campos identificando um tempo de seqüência dedados, uma duração de seqüência de dados, o componente dedecodificador de destinação (por exemplo, áudio, vídeo elegenda oculta (closed caption)), número de quadro, númerode pacote e outras informações. Pacotes de camada desincronização podem ser de comprimento variável em algunsexemplos. Isto pode ser devido a vários esquemas decodificação, tais como, por exemplo, esquemas de compressãodigital incluindo esquemas de codificação de comprimentovariável.
A camada de transporte 215 pode também anexarinformações descritivas para pacotes de camada detransporte em um cabeçalho de transporte. Pacotes de camadade transporte podem ser de comprimento fixo de modo asuportar vários esquemas de codificação de erro, esquemasde modulação e outros esquemas que usam pacotes decomprimento fixo. Os cabeçalhos de transporte podem conterinformações identificando o número de pacotes de camada detransporte que realizaram parse a partir de um único pacotede camada de sincronização. Se o pacote de camada desincronização for de comprimento variável, a seguir onúmero de pacotes de camada de transporte necessários paraconter os dados pode ser igualmente variável.
Em um aspecto, pelo menos parte das informaçõesincluídas nos cabeçalhos de transporte e/ou sincronizaçãopode ser incluída em um diretório. 0 diretório pode incluirinformações de cabeçalho relacionadas a várias camadas,tais como a camada de aplicação 205, a camada desincronização 210, a camada de transporte 215 e outras. 0diretório pode ser comunicado ao decodificador. Asinformações podem ser usadas pelo dispositivo dedecodificador na recuperação de vários erros incluindo,identificar o tamanho de pacotes errôneos recebidos comerro, identificar o próximo pacote disponível de modo a re-sincronizar e outros. Informações de cabeçalho a partir dodiretório de cabeçalho podem ser usadas para substituir asinformações de cabeçalho originais errôneas ou perdidasdentro do fluxo de dados. Detalhes adicionais do diretóriode cabeçalho podem ser encontrados no PedidoNo. 11/527.022, depositado em 25/09/2006 e intitulado"VÍDEO ENCODING ENABLING . HIGHLY EFFICIENT PARTIAL DECODINGOF H.2 64 AND OTHER TRANSFORM CODED INFORMATION", que écedido ao cessionário do mesmo e totalmente incorporadoaqui por referência.
Um sistema de recuperação de erro 260 nodispositivo de codificador 150 é fornecido através de cadauma das camadas neste exemplo. 0 dispositivo dedecodificador 150 pode incluir vários esquemas parafornecer recuperação de erro. Tais esquemas de recuperaçãode erro podem incluir componentes de detecção e correção deerro em nivel inferior (tais como codificação Reed-Solomone/ou codificação-Turbo), assim como esquemas de ocultaçãode erro e/ou recuperação de erro de camada superior usadospara substituir e/ou ocultar dados não corrigiveis pelosmétodos de camada inferior. Os vários componentes derecuperação de erro na camada de aplicação 230 podem sebeneficiar das informações disponíveis às camadasinferiores, tais como a camada de sincronização 235 e acamada de transporte 240. As informações podem ser contidasnos cabeçalhos de camada de transporte, nos cabeçalhos decamada de sincronização, no diretório de cabeçalho se umestá disponível, ou pode ser gerado no decodif icador combase em uma avaliação dos dados recebidos.
Como discutido acima, o sistema de resiliência deerro 255 no dispositivo de codificador 110 e no sistema derecuperação de erro 260 no dispositivo de decodificador 150formam um mecanismo de recuperação, re-sincronização edetecção de erro multicamada integrado fim-a-fim que éreferido aqui como o sistema de controle de erro. Detalhesdo sistema de controle de erro serão agora discutidos.
Deve ser notado que um ou mais elementos dodispositivo de codificador 110 ou do dispositivo de,decodificador 150 mostrados nas Figs. 1 e 2 podem seromitidos, rearranjados, divididos e/ou combinados.
A Fig. 3A é um diagrama de blocos funcionalilustrando um aspecto do dispositivo de decodificador 150que pode ser usado em um sistema, tal como o sistema 100ilustrado na Fig. 1. Neste aspecto, o decodificador 150compreende um elemento de receptor 302, um elemento deorganizador de informações 304, um elemento de decisão decontrole de erro 306 e um elemento de decodif icadormultimídia 308.
O receptor 302 recebe dados de vídeo codificados(por exemplo, dados codificados pelo codificador 110 daFig. 1) . O receptor 302 pode receber os dados codificadosatravés de uma rede cabeada ou sem fio, tal como a rede 140da Fig. 1. Em um aspecto, os dados recebidos incluemcoeficientes de transformada representando dados multimídiafonte. Os coeficientes de transformada são transformados emum domínio onde as correlações amostras vizinhas sãosignificativamente reduzidas. Por exemplo, imagens exibemtipicamente um alto grau de correlação espacial no domínioespacial. Por outro lado, os coeficientes transformados sãotipicamente ortogonais um ao outro, exibindo correlaçãozero. Alguns exemplos de transformadas que podem ser usadospara dados multimídia incluem, mas não são limitados a, aDCT (Transformada de Cosseno Discreta) , a DFT (Transformadade Fourier Discreta), a transformada Hadamard (ou Walsh-Hadamard), transformadas de wavelet discretas, a DST(Transformada de Seno Discreta), a transformada Haar, atransformada Slant, a transformada KL (Karhunen-Loeve) etransformadas de inteiro, tal como uma usada em H.264. Astransformadas são usadas para transformar uma matriz ouvetor de amostras multimídia. Matrizes de duas dimensõessão comumente usadas, mas vetores de uma dimensão tambémpodem ser usados.
Os dados recebidos também incluem informaçõesindicando como os blocos codificados foram codificados.
Tais informações podem incluir informações de referência deinter-codificação, tais como números de seqüência de quadroe vetores de movimento, e informações de referência deintra-codificação incluindo tamanhos de blocos, eindicadores de diretividade de predição espacial, e outros.
Alguns dados recebidos incluem parâmetros de quantizaçãoindicando como cada coeficiente de transformada foiaproximado por um número certo de bits, indicadores não-zero indicando quantos coeficientes de transformada namatriz transformada são não-zero, e outros.
0 elemento de organizador de informações 304junta informações descritivas sobre os dados multimídia apartir do fluxo de bits. Em um aspecto, o organizador deinformações 304 interpreta os dados de cabeçalho de camadade transporte e sincronismo para processamento adicional.
Os cabeçalhos de transporte podem ser processados paradeterminar bordas de quadro e superquadro, onde umsuperquadro é um grupo de quadros que tipicamente sãoindependentemente decodificáveis. Um superquadro podeincluir quadros que cobrem um período de tempo fixo seestendendo de cerca de 0,2 segundos a cerca de 2,0segundos. O tamanho de superquadro pode ser escolhido parapermitir um tempo de aquisição razoável. Cabeçalhos detransporte podem ser também processados para determinarcomprimentos de quadro e deslocamentos de byte de quadrosno fluxo de bits, para tratar PLPs errôneos recebidos apartir da camada de Fluxo/MAC. Os cabeçalhos de camada desincronização podem ser processados para extrair números dequadro e interpretar quadros base e de aperfeiçoamento,para extrair taxa de quadro requerida para marcas de tempode apresentação interpolada no caso de erros e/ou parainterpolar e derivar PTSs para quadros interpolados atravésdo processo de Conversão Ascendente de Taxa de Quadro(FRUC). Os cabeçalhos de sincronismo podem também serprocessados para extrair marcas de tempo de apresentaçãopara quadros de video para sincronizar com os quadros deáudio associados, e para extrair localizações de ponto deacesso aleatório para marcar o próximo ponto de re-sincronização no caso de erros que resulta na perda desincronização no decodificador. 0 organizador deinformações 304 pode também juntar informações de umdiretório de cabeçalho como discutido acima, se um estádisponível.
Em adição a juntar informações de cabeçalhos ediretórios de cabeçalho, o organizador de informações 304pode também gerar informações descritivas sobre os dados devídeo. As várias somas de verificação de cabeçalho, somasde verificação de carga útil e esquemas de controle de erropodem todos ser usados para identificar que porção de dadosé errônea. As informações geradas podem incluir dadosidentificando estas porções errôneas de dados. Os dados deerro podem ser uma medida de distribuição de erro ou umamedida de taxa de erro. Os dados de erro podem serorganizados em qualquer nível a partir de um nível dequadro, para um nível de fatia (uma fatia é um grupo deblocos codificados de pixels), nível de bloco de pixel oumesmo um nível de pixel. Estes tipos de informaçõesdescritivas referentes a dados errôneos podem ser usadospara localizar e estabelecer a extensão dos erros. Osdetalhes de tipos de informações que podem seridentificados, compilados, juntados, mantidos, indicados ougerados pelo organizador de informações 304 serãodiscutidos abaixo.
Em um aspecto, o elemento de decisão de controlede erro 306 usa as informações descritivas (por exemplo,armazenadas na forma de tabela) juntadas e/ou geradas peloorganizador de informações 304 para fornecer instruçõesrelacionadas ao processamento dos dados multimídia. 0elemento de decisão de controle de erro 306 analisa asinformações descritivas de modo a localizar os erros eestabelecer que porções de vídeo são afetadas e para queextensão estas porções são errôneas. Usando estasinformações, o elemento de decisão de controle de erro 306pode determinar um método de controle de erro para trataras condições de erro. Em outro aspecto, o elemento dedecisão de controle de erro 306 recebe informações derealimentação a partir das camadas superiores. Asinformações de realimentação podem incluir informaçõesassociadas com processamento da multimídia na camadasuperior. As informações de realimentação podem incluirinformações que foram incorretas nas informaçõesdescritivas passadas para a camada superior. Estasinformações podem ser usadas para corrigir a tabelaarmazenada na camada inferior. Em adição, as informações derealimentação podem incluir tempos de processamento, açõesde processamento, status de processamento e outrasinformações. Este tipo de informações pode ser analisadopelo elemento de decisão de controle de erro 306 aodeterminar como instruir a camada superior.
O elemento de decisão de controle de erro 306analisa as informações que ele juntou de modo a tomar umadecisão em como a camada superior deveria processar osdados multimídia quando ele fosse encaminhado para a camadasuperior. A decisão pode incluir escolher um ou mais dentremuitos método de controle.de erro. Os métodos de controlede erro podem incluir ocultação de erro temporal e/ouespacial de porções de dados de video que são errôneos. Osmétodos de controle de erro podem incluir também técnicasde recuperação de erro onde os dados errôneos sãoanalisados para serem salvos de alguma forma com base emcontexto ou outras informações disponíveis para a aplicaçãode camada superior. Uma forma extrema de ocultação de errotemporal que pode ser usada é conhecida como uma conversãoascendente de taxa de quadro ou FRUC. A FRUC constrói umnovo quadro com base em outros quadros, usualmente doisquadros que afastaram o quadro a ser construído. Quandoporções errôneas de dados estão em um nível gerenciável(por exemplo, porções de um quadro, um único quadro ou umnúmero de quadros determinados a serem ocultáveisdependendo da situação), o elemento de decisão de controlede erro 306 pode instruir a camada superior a usarocultação de erro temporal e/ou espacial, recuperação deerro ou FRUC, assim como outros esquemas de controle deerro. Entretanto, se a extensão dos dados errôneos é muitogrande, o elemento de controle de erro pode instruir acamada superior a pular decodificação das porções errôneas.Os detalhes usados pelo elemento de decisão de controle deerro 306 ao determinar como instruir a camada superior são discutidos abaixo.
0 elemento de decódificador multimídia 308realiza as funções relacionadas para decodificar dos fluxosde bits multimídia que podem incluir áudio, vídeo comlegenda oculta e mais. 0 decodificador multimídia realizaoperação inversa correspondente às operações de codificaçãousadas para codificar os dados. Os dados codificados podemser inter-codifiçados (por exemplo, dados previstostemporalmente) e/ou dados intra-codifiçados. Em referênciaà Fig. 2, as funções realizadas pelo decodificadormultimídia 308 podem ser realizadas em múltiplos níveis,tais como a camada de transporte 240, a camada desincronização 235 e a camada de aplicação 250. Funções decamada de transporte podem incluir os esquemas de detecçãoe correção de erro usados para corrigir erros e paraidentificar erros incorrigíveis. Os erros incorrigíveisidentificados podem ser comunicados ao organizador deinformações 304 para inclusão nas informações descritivascomo discutido acima. As funções de camada de sincronizaçãopodem incluir armazenar em buffer os dados recebidos dosmúltiplos fluxos de bits até todos os dados sincronizadosestarem prontos a serem decodificados. Em que ponto éencaminhado para os decodificadores de camada de aplicaçãopara decodificação quase simultânea. As funções de camadade aplicação podem incluir descompressão dos fluxos de bitsde áudio, vídeo e legenda oculta. Várias funções dedescompressão podem incluir dequantização e transformaçõesinversas usadas para reconstrução dos dados de vídeo. Em umaspecto, a camada de aplicação do elemento de decodificadorde vídeo 308 recebe quadros de vídeo um quadro por vez naordem de decodificar após o organizador de informações 304e do elemento de decisão de controle de erro 306 teremrealizado as funções discutidas acima.
Em alguns aspectos, um ou mais dos elementos dodecodificador 150 da Fig. 3A pode ser omitido, rearranjadoe/ou combinado. Os elementos podem ser implementados porhardware, software, firmware, middleware, microcódigo ouqualquer combinação dos mesmos. Os detalhes, das açõesrealizadas pelos elementos do dec°dificador 150 serãodiscutidos em referência aos métodos ilustrados nas Figs.5A-5C abaixo.A Fig. 3Β é um diagrama de blocos ilustrando umexemplo de um sistema de processador de computador de umdispositivo de decodif icador que pode ser usado em umsistema, tal como ilustrado na Fig. 1. 0 dispositivo dedecodificador 150 deste exemplo inclui um elemento de pré-processador 320, um elemento de memória de acesso aleatório(RAM) 322, um elemento de processador de sinal digital(DSP) 324 e um elemento de núcleo de video 326.
O pré-processador 320 é usado em um aspecto pararealizar uma ou mais ações realizadas pelos várioselementos na Fig. 3A. O pré-processador realiza parse dofluxo de bits de video e escreve os dados na RAM 322. Emadição, em um aspecto, o pré-processador 320 implementa asações do organizador de informações 234, o elemento dedecisão de controle de erro 306 e porções de pré-processamento (por exemplo, ocultação de erro, recuperaçãode erro, etc.) do decodificador multimídia 308. Ao realizarestas ações mais eficientemente, menos computacionalmenteintensivas no pré-processador 320, a decodificação de vídeomais computacionalmente intensiva pode ser feita, de modocausai, no núcleo de vídeo altamente eficiente 326.
O DSP 324 recupera os dados de vídeo em parsearmazenados na RAM 322 e reorganiza-os para serem tratadospelo núcleo de vídeo 326. O núcleo de vídeo 326 realiza adequantização (também conhecida como re-graduação ougraduação), transformação inversa e funções de desblocagem,assim como outras funções de descompressão de vídeo. Onúcleo de vídeo é tipicamente implementado em uma maneiraaltamente otimizada e encadeada. Devido a isso, os dados devídeo podem ser decodificados de maneira mais rápida quandoeles são decodificados de modo causai. Ao realizar parsefora de ordem, detecção de erro, organização de informaçõese controle de erro no pré-processador, o modo causai émantido para decodificar no núcleo de video permitindodesempenho de decodificação geral melhorado.
Como discutido acima, o elemento de organizadorde informações 304 pode juntar informações descritivas,organizá-las em uma tabela e encaminhar a tabela a camadassuperiores para propósitos de controle de erro. Uma fontede informações descritivas é os vários cabeçalhos anexadosaos pacotes das várias camadas de empacotamento. A Fig. 4mostra uma ilustração de um exemplo de um esquema deempacotamento de múltipla camada. Este esquema deempacotamento exemplar é usado para explicar certosaspectos do sistema de controle de erro, mas outrosesquemas de empacotamento podem também ser usados. A camadade transporte e camadas de sincronização são um protocolode enquadramento e soma de verificação. Eles fornecem ummecanismo em camadas para detectar erros nas várias camadasincluindo, por exemplo, em um nível de superquadro (umnúmero selecionado de quadros processados), em um nível deunidade de acesso de vídeo (VAU) ou em um nível PLP. Dessaforma, a localização de erro efetiva pode ser realizada emqualquer um ou todos esses níveis. A VAU compreendendo umúnico quadro de vídeo, fornece um nível adicional deverificação de integridade na camada de aplicação acima dopacote de camada de sincronização.
Neste exemplo, pacotes de camada de aplicação405A e 405B podem ser pacotes de comprimento fixo e/ouvariável. Os pacotes de camada de aplicação 405A e 405Bpodem cada um ser um quadro de vídeo completo ou VAU. Umacamada de sincronização anexa um cabeçalho de camada desincronização (SH) 410 a cada pacote de camada de aplicação405A e 405B, resultando nos pacotes de camada desincronização 406A e 406B (os pacotes de camada desincronização 406A e 406B na Fig. 4 incluem um cabeçalho decamada de sincronização 410 e os pacotes de camada deaplicação 405A e 405B, respectivamente). Os pacotes decamada de sincronização 406A e 406B são a seguir inseridosna camada de transporte. Neste exemplo, os pacotes decamada de transporte são de comprimento fixo. A camada detransporte quebra os pacotes de camada de sincronização emporções correspondentes ao tamanho de pacote de camada detransporte e anexa cabeçalhos de camada de transporte (TH)415 aos pacotes de camada de transporte resultantes. Acamada de transporte pode também anexar uma soma deverificação de quadro (FCS) a cada pacote de camada desincronização (não mostrado) . A FCS pode ser usada paradetectar erros nos pacotes de camada de sincronização.Neste exemplo, o pacote de camada de sincronização 406Acompreendendo o pacote de camada de aplicação 405A édividido em dois pacotes de camada de transporte 420A e420B, onde o pacote 420B inclui a porção restante 425B dopacote de camada de sincronização 406A e uma primeiraporção 425C do pacote de camada de sincronização 406B.Neste exemplo, um cabeçalho de camada de transporteadicional 415 é anexado à porção 425C do pacote de camadade transporte 420B, precedendo o inicio do próximo pacotede camada de sincronização 406B. Um terceiro pacote decamada de transporte 420D contém a próxima porção 425D dopacote de camada de sincronização 406B.
Os cabeçalhos de camada de sincronização 410 e oscabeçalhos de camada de transporte 415 podem conterinformações similares direcionadas a habilitar umdecodificador a remontar os pacotes de camada desincronização e pacotes de camada de aplicação. Umcabeçalho pode incluir informações tais que um tamanho depacote, um número de pacote, uma localização de umcabeçalho dentro de um pacote, um tempo de seqüência dedados, uma duração de seqüência de dados, um tempo dequadro, um número de quadro, um sinalizador de ponto deacesso aleatório, uma taxa de quadro e/ou um número depacotes associados em um grupo. Em adição, informações decabeçalho podem incluir informações de identificação defluxo identificando o pacote associado como pertencendo aum fluxo de bits de video, um fluxo de bits de áudio e/ouum fluxo de bits de legenda oculta. Um exemplo especificode cabeçalhos de camada de sincronização e de transporteserá agora discutido.
Uma função da camada de transporte é fornecer umserviço de pacote através do serviço com base em octeto dacamada de fluxo/MAC. A camada de transporte também fornecemecanismos para determinar bordas de seus pacotes de carga-útil (VAUs no exemplo mostrado na Fig. 4) na presença deerros de camada física. Múltiplos protocolos deenquadramento podem ser usados em associação com a camadade transporte. O protocolo de enquadramento associado com acamada de transporte especifica regras para combinar seuspacotes de carga-útil para criar pacotes a seremdistribuídos ao decodificador na camada de aplicação. 0protocolo de enquadramento também especifica regras paratratamento de erros PLP e o comportamento resultante quepode ser esperado pelo decodificador. Um formato exemplarde certos campos no cabeçalho de camada de transporte 415 édado na Tabela 1. Neste exemplo, as regras de protocolo deenquadramento fornecem um PLP de comprimento fixo de 122bytes. Em adição a indicar o início e fim da carga-útil (aVAU neste exemplo), o cabeçalho de transporte é tambémusado para conduzir PLPs errôneas a camadas superiores.Tabela 1
<table>table see original document page 28</column></row><table>
O cabeçalho de transporte na Tabela 1 é decomprimento de um byte. O campo COMPRIMENTO de sete bitsindica o comprimento da carga-útil em bytes e possui umafaixa de 0 a 121 bytes (o valor máximo é 121 desde que oPLP tenha 122 bytes de comprimento e o cabeçalho tenha umbyte). O campo ÚLTIMO sendo ajustado em um indica que estepacote de camada de transporte contém o último fragmento deuma VAU. Neste exemplo, se o PLP for determinado a sererrôneo (como determinado por uma ou mais dentre as somasde verificação e/ou esquemas de correção de erro), a camadade transporte ajusta o valor do campo COMPRIMENTO em 122,marcando todo o PLP como não-utilizável para as camadassuperiores a que ele for encaminhado.
Um formato exemplar de certos campos no cabeçalhode camada de sincronização 410 é dado na Tabela 2. Ospacotes de camada de sincronização formam a carga-útil paraa camada de transporte para video. Em um exemplo, um quadrode video forma um pacote de camada de sincronização. Noexemplo mostrado na Tabela 2, o cabeçalho de pacote decamada de sincronização 410 é um cabeçalho de 4 bytes fixoe o pacote de camada de sincronização correspondente é umacarga-útil de comprimento variável correspondendo a umquadro de video. Informações incluídas nos campos decabeçalho de sincronização da Tabela 2 podem incluirinformações, tais como tipo de quadro de vídeo, taxa dequadro, marca de tempo de apresentação, sinalizador deacesso aleatório, número de quadro dentro de umsuperquadro, e se os dados estão associados com um fluxo debits de camada base ou de aperfeiçoamento, e outros.<table>table see original document page 29</column></row><table>
O campo Stream_ID é usado para indicar um dentreuma pluralidade de fluxos multimídia que os dados de carga-útil estão associados (por exemplo, áudio, vídeo, dados delegenda oculta, etc.). O campo PTS é usado para indicar otempo de apresentação que pode ser usado para sincronizar oáudio, vídeo, etc. O campo Frame_ID inclui uma porção denúmero de quadro cíclico (por exemplo, 7 bits representandoquadros 0-127) e um bit de aperfeiçoamento indicando se osdados são dados de camada base ou de camada deaperfeiçoamento. Se a codificação graduável não é usada, obit de aperfeiçoamento pode ser omitido. O campo RAP_FLAG éusado para indicar se um quadro pode ser usado por umdispositivo de decodificação como um ponto de acessoaleatório. Um ponto de acesso aleatório pode ser decodificadosem referência a quaisquer outros quadros antigos ou futurosou outras porções de vídeo. 0 campo FRAME_RATE indica umadentre uma pluralidade de taxas de quadro possíveis. Taxas dequadro podem variar de cerca de 15 quadros por segundo oumenos a cerca de 60 quadros por segundo ou mais. 0 campoRESERVADO pode ser usado para comunicar outros tipos deinformações que técnicos versados podem achar benéficas.
Em adição às informações de cabeçalho de transportee informações de cabeçalho de sincronização, uma outra fontede informações descritivas para o elemento de organização deinformações pode ser um diretório de cabeçalho, comodiscutido acima. O diretório de cabeçalho é uma tabela deinformações de cabeçalho duplicada que é transmitida comoinformações laterais, em um exemplo, separadas a partir dosfluxos de bits de video e/ou áudio. As informações dediretório de cabeçalho, tal como listadas na Tabela 3.
Tabela 3
<table>table see original document page 30</column></row><table>
0 diretório de cabeçalho pode ser transmitido comouma carga útil de comprimento variável. Muito das informaçõesé uma duplicação das informações nos vários cabeçalhos doesquema de empacotamento (por exemplo, taxa de quadro, marcasde tempo de apresentação, pontos de acesso aleatório) .Entretanto, informações adicionais podem ser incluídas. Taisinformações adicionais podem incluir o campoB_FRAME_FLAG_BIT S, que indica a localização dos quadros-Bdentro de um superquadro. Um superquadro tipicamente iniciacom um quadro decodificável independentemente, tal como umquadro intra-codifiçado. Os outros quadros no superquadrotipicamente compreendem porções previstas unidirecionalmente(referidas aqui como porções de quadro-P ou simplesmentequadros-P) e porções previstas bidirecionalmente (referidasaqui como porções de quadro-B ou simplesmente quadros-B). Noexemplo da Tabela 3, os pontos de acesso aleatório ^ nosuperquadro são mapeados no campo RAP_FLAG_BITS.
0 diretório de cabeçalho fornece informações decabeçalho e informações adicionais referentes à posição? decertos quadros (por exemplo, quadros-B) dentro de * umsuperquadro. Estas informações podem ser usadas parasubstituir as informações de cabeçalho perdidas (perdidasdevido a erros) assim como habilitando o elemento deorganizador de informações 304 para determinar a identidadesemelhante de porções errôneas de dados que, do contrário,não puderam ser identificadas.
A Fig. 5A é um fluxograma ilustrando um exemplo deum método de processar dados multimídia em um sistema, talcomo ilustrado na Fig. 1. 0 processo 500 inicia no bloco 505onde o dispositivo de decodificador recebe dados multimídia.Os dados multimídia codificados podem estar na forma de dadoscomprimidos associados com um fluxo de bits de dadosmultimídia. 0 dispositivo de decodificador pode receber osdados multimídia através de uma rede cabeada e/ou sem fio,tal como a rede 14 0 mostrada na Fig. 1. Os dados multimídiapodem compreender múltiplos fluxos de bits sincronizados e/ounão-sincronizados incluindo, mas não limitados a áudio,video, legenda oculta e semelhantes. Os dados multimídiapodem compreender múltiplas camadas empacotadas incluindopacotes de camada de aplicação, pacotes de camada desincronização e pacotes de camada de transporte. As múltiplascamadas podem cada uma incluir informações de cabeçalho comodiscutido acima. As informações de cabeçalho podem incluirinformações, tais como listadas nas Tabelas 1 e 2 acima. Osdados de vídeo podem ser arranjados em porções, tais comoquadros, fatias, blocos de pixels, etc. Os quadros podem seragrupados em superquadros de múltiplos quadros. Os dadosmultimídia recebidos podem também incluir um diretório decabeçalho como discutido acima. Os dados multimídia recebidospodem ser codificados em camadas graduáveis, tais como umacamada base e uma camada de aperfeiçoamento. Ó diretório decabeçalho pode conter informações, tais como listadas naTabela 3. O elemento de receptor 302 do dispositivo dedecodif icador 150 na Fig. 3A pode realizar as funções nobloco 505.
Após receber os dados multimídia no bloco 505, oprocesso 500 continua no bloco 510 onde o dispositivo dedecodificador organiza informações descritivas sobre os dadosmultimídia recebidos. Como discutido acima com referência àFig. 3A, o elemento de organizador de informações 304 juntainformações descritivas sobre os dados multimídia a partir dofluxo de bits no bloco 505. Os cabeçalhos de transporte podemser processados para determinar bordas de quadro esuperquadro. Cabeçalhos de transporte podem também serprocessados para determinar comprimentos de quadro edeslocamentos de byte de quadros no fluxo de bits. Oscabeçalhos de camada de sincronização podem ser processadospara extrair números de quadro e interpretar quadros base ede aperfeiçoamento (por exemplo, para fluxos de bitsgraduavelmente codificados), para extrair taxas de quadroe/ou para interpolar e derivar PTSs para quadros. Oscabeçalhos de sincronização podem também ser processados paraextrair marcas de tempo de apresentação ou para extrairpontos de acesso aleatório. As informações identificadas,compiladas, juntadas, mantidas, indicadas ou geradas no bloco510 podem também ser obtidas a partir de um diretório decabeçalho como discutido acima, se um é recebido no bloco505.
As informações descritivas organizadas no bloco 510podem também incluir informações pertencentes a dadoserrôneos. Os dados errôneos podem incluir uma medida dedistribuição de erro ou uma medida de taxa de erro. Os dadosde erro podem ser organizados em qualquer nivel a partir deum nivel de quadro, para um nivel de fatia (uma fatia é umgrupo de blocos codificados de pixels), nivel de bloco depixel ou mesmo um nivel de pixel. Estes tipos de informaçõesdescritivas referentes a dados errôneos podem ser usados paralocalizar e estabelecer a extensão dos erros. Um exemplo deuma tabela de informações descritivas que podem serorganizadas no bloco 510 é agora discutido.
Tabela 4 lista um exemplo de uma tabela deinformações de quadro que pode ser gerada no bloco 510.
Tabelas similares podem também ser organizadas em outrosníveis, tais como fatias, blocos de pixels, etc.
Tabela 4
<table> table see orginal document page 33</column></row><table>Os campos número de quadro, camada (por exemplo,base ou aperfeiçoamento), comprimento de quadro, PTS, tipode quadro, RAP_FLAG podem ser obtidos a partir doscabeçalhos de camada de sincronização que são conhecidoscomo sendo não-errôneos. Estes campos podem também serobtidos a partir de um diretório de cabeçalho se um forrecebido no bloco 505. Se muitos quadros errôneos sãoconcatenados juntos (por exemplo, devido à corrupção docabeçalho de sincronização), o campo de comprimento dequadro pode ser ajustado em um valor igual ao número detotal de bytes dos quadros concatenados. 0 campo de tipo dequadro pode ser usado para indicar um quadro-I, um quadro-Pou um quadro-B, por exemplo. Alguns destes campos podem nãoser capazes de serem preenchidos devido à corrupção dosdados.
0 campo de distribuição de erro PLP é usado parafornecer informações descritivas relacionadas com a posiçãodos dados errôneos dentro do quadro detectado. Cada quadropode ser feito de muitos PLPs como discutido acima emreferência à Fig. 4. A variável "Error_dist_n" contém umaindicação de que porção de PLPs contém dados errôneos.Muitos métodos para indicar distribuição de erro podem serusados. Por exemplo, a distribuição de erro pode sercoletada até uma 1/16-ésima porção de um quadro erepresentada por uma variável "Error_dist_n" de dois bytes.
Cada bin ou bit da variável de dois bytes indica a presençade PLPs errôneos para uma 1/16-ésima porção do quadro. Umvalor de 1 indica que existem PLPs errôneos para aquelafaixa, e um 0 indica uma porção PLP livre de erro. Semuitos quadros são concatenados juntos, a distribuição deerro PLP captura a distribuição de erro total de todos osPLPs dentro dos quadros concatenados. Neste ponto noprocesso 500, o campo final da tabela de informações d£quadro listadas na Tabela 4, "Ação", não está completo epode ser determinado no bloco 515 com base nas outrasinformações contidas na tabela de informações de quadro. Atabela de informações de quadro pode ser armazenada noelemento de memória 154 do dispositivo de decodificador 150na Fig. 1. O organizador de informações 304 do dispositivode decodificador 150 da Fig. 3A pode realizar as funções nobloco 510.
Após organizar as informações descritivas nobloco 510, o processo 500 continua no bloco 515 onde odispositivo de decodificador fornece instruçõesrelacionadas ao processamento dos dados multimídia em umasegunda camada. A segunda camada pode ser uma camadasuperior ou uma camada inferior. Os exemplos discutidosacima foram relacionados a uma camada inferior (porexemplo, a camada de transporte e/ou sincronização)fornecendo instruções a uma camada superior (por exemplo, acamada de aplicação). Entretanto, métodos discutidos abaixoirão mostrar que camadas superiores podem também fornecerinstruções a camadas inferiores com base em informaçõesdescritivas obtidas nas camadas superiores.
Em um aspecto, o dispositivo de decodificadorfornece instruções relacionadas a um método de controle deerro a ser realizado em - outra camada (por exemplo, umacamada de aplicação). Os métodos de controle de erro podemincluir várias técnicas de recuperação de erro. Em técnicasde recuperação de erro tentativas são feitas para salvarvalores de variáveis contidas nos dados errôneos. Estesmétodos podem incluir usar o diretório de cabeçalhodiscutido acima, se um for recebido no bloco 505, paraidentificar o tamanho da carga útil de quadro dos pacotesde camada de seqüência. O diretório de cabeçalho podeconter informações identificando o tipo de codificação, onúmero e o tamanho de pacotes de camada de transporte,informações de temporização, etc.
Uma outra forma de controle de erro que pode serrealizada é ocultação de erro. Técnicas de ocultação deerro geralmente envolvem estimar valores de pixel de outros,já recebidos e/ou valores de pixel decodificados. Astécnicas de ocultação de erro podem usar ocultação temporale/ou espacial. Por exemplo, se uma porção de um quadro-P éerrônea, a ocultação de erro pode ser escolhida para serocultação temporal com base em um quadro anterior que jáestá decodificado. Se uma porção de um quadro-B é errônea,previsão temporal de dois outros quadros recebidos e/oudecodificados podem ser usados.
Uma outra forma de controle de erro que pode ser realizada é FRUC. Em técnicas FRUC, um quadro inteiro éconstruído com base em um ou mais outros quadros. Astécnicas FRUC podem usar técnicas de ocultação temporalsimilares àquelas usadas por porções de um quadro, mas sãosimplesmente realizadas através do quadro inteiro.
Em um aspecto, o elemento de decisão de controlede erro 306 do dispositivo de decodificador 150 da Fig. 3Arealiza as ações no bloco 515. O elemento de decisão decontrole de erro 306 usa as características de distribuiçãode erro que foram organizados no bloco 310 para determinarqual das várias técnicas de controle de erro recomenda serrealizada. Detalhes de métodos para determinar que técnicade controle de erro recomendar são discutidos abaixo. Emalguns casos, o elemento de decisão de controle de erro 306pode determinar que nenhuma técnica de controle de erro éfactível e pode recomendar pular o controle de erro para umou mais quadros. Neste caso, o último quadro que foidecodificado com sucesso pode ser exibido alternativamente.Em um aspecto, o método de controle de erro que édeterminado no bloco 515 é armazenado no campo "Ação" databela de informações de quadro como mostrado na Tabela 3.A tabela de informações de quadro é passada para a camadaonde os métodos de controle de erro são realizados. Odecodif icador de vídeo pega o item de "Ação" do quadrocorrespondente a partir da tabela de informações de quadroe usa-o como um ponto inicial para guiar o processo dedecodificação. Deve ser notado que alguns dos blocos doprocesso 500 podem ser combinados, omitidos, rearranjadosou qualquer combinação dos mesmos.
A Fig. 5B é um fluxograma ilustrando um outroexemplo de um método 520 de processar dados multimídia emum sistema, tal como ilustrado na Fig. 1. 0 método 520 podeser realizado em uma camada de aplicação de um dispositivode decodificador que tem uma camada inferior que realiza ométodo 500 da Fig. 5A em uma camada inferior.
0 método 520 inicia no bloco 525 onde dadosmultimídia são recebidos na camada realizando o método 520.Os dados multimídia podem ser porções de dados multimídia,tais como quadros, fatias ou blocos de pixels. Em umaspecto, as porções de dados multimídia recebidas no bloco525 foram compiladas em um nível inferior, tal como umacamada de transporte e/ou sincronização combinando pacotesde camada de transporte para formar um pacote de camada desincronização completo. 0 pacote de camada de sincronizaçãocompleto pode ser um quadro completo ou alguma outra porçãode vídeo que pode ser decodificado. Em alguns aspectos, asporções de dados multimídia recebidos no bloco 525 sãorecebidas na ordem em que eles possam ser exibidos naseqüência multimídia. 0 subsistema de decodificadormultimídia 308 do dispositivo de decodificador 150 mostradona Fig. 1 pode realizar os atos no bloco 525.Após receber os dados multimídia no bloco 525, acamada de decodificador realizando o processo 520 recebeinformações descritivas sobre os dados multimídia a partirde uma primeira camada no bloco 530. A primeira camada podeser uma camada inferior (por exemplo, a camada detransporte ou sincronização). As informações descritivasrecebidas no bloco 530 podem ser identificadas, compiladas,juntadas, mantidas, indicadas ou geradas no bloco 510 doprocesso 500 discutido acima. As informações descritivasrecebidas no bloco 530 podem estar na forma de uma tabelade informações de quadro incluindo entradas, tais comoaquelas mostradas nas Tabelas 3 ou 4 acima. A tabela deinformações de quadro pode incluir uma "Ação" recomendadarelacionada ao processamento dos dados multimídia. 0subsistema de decodificador multimídia 308 do dispositivode decodificador 150 mostrado na Fig. 1 pode realizar osatos no bloco 530.
Após receber os dados multimídia no bloco 525 eas informações descritivas sobre os dados multimídia nobloco 530, o processo 520 continua no bloco 535 onde asegunda camada processa os dados multimídia com base pelomenos em parte nas informações descritivas recebidas. Se asinformações descritivas contêm uma "Ação" recomendada, osubsistema de decodificador realizando o processo 520 podeou não usar a ação recomendada. Como discutido acima, aação recomendada pode compreender uma ou mais técnicas decontrole de erro incluindo, mas não limitado a, técnicas derecuperação de erro, técnicas de ocultação de erro ou pulardecodificação. O dispositivo de decodificador pode ou nãoseguir a ação recomendada dependendo de que dados podem serrecuperados durante recuperação de erro. Por exemplo, oprocesso de camada inferior que organizou as informaçõesdescritivas recebidas no bloco 530 pode não ser capaz deidentificar quantos quadros estão em uma seção de dadoserrôneos. As técnicas de recuperação de erro de camadasuperior podem ser capazes de identificar o número dequadros na seção de dados errôneos e pode escolher pararealizar algumas técnicas de recuperação ou ocultação deerro que não foram recomendadas no campo "Ação" da tabelade informações de quadro. O subsistema de decodificadormultimídia 308 do dispositivo de decodificador 150 mostradona Fig. 1 pode realizar os atos no bloco 535. Deve sernotado que alguns dos blocos do processo 520 podem sercombinados, omitidos, rearranjados ou qualquer combinaçãodos mesmos.
Fig. 5C é um fluxograma ilustrando um outroexemplo de um método 540 de processar dados multimídia emum sistema, tal como ilustrado na Fig. 1. O método 540inicia no bloco 545 onde o dispositivo de decodificadorrecebe dados multimídia codificados. As ações realizadas nobloco 545 podem ser similares aquelas realizadas no bloco505 do processo 500 ilustrado na Fig. 5A. O elemento dereceptor 302 do dispositivo de decodificador 150 na Fig. 3Apode realizar as funções no bloco 545.
As ações restantes do processo 540 incluem ações550 realizadas em uma camada inferior e ações 570realizadas em uma camada superior. As ações de camadainferior 550 incluem certas ações que podem ser similares aalgumas ações realizadas no processo 500 ilustrado na Fig.5A. Da mesma forma, ações de camada superior 570 incluemcertas ações que podem ser similares a algumas açõesrealizadas no processo 520 ilustrado na Fig. 5B.
O método 540 ilustrado na Fig. 5C pode serrealizado por um subsistema de decodificador multimídiamulticamada, tal como aquele mostrado na Fig. 6. Em umaspecto, um decodificador multimídia 600 compreende umsubsistema de módulo de mídia de camada inferior 605 nacamada de transporte e camada de sincronização. 0decodificador multimídia 600 também inclui um subsistema decamada superior localizado na camada de aplicação. Osubsistema de módulo de mídia 605 pode incluir oorganizador de informações 304 e o subsistema de decisão decontrole de erro 306 ilustrado na Fig. 3A. A camada deaplicação inclui um decodificador multimídia incluindo umacamada de decodificação de vídeo (VDL) 610 e um subsistemade controle de erro 615. O módulo de mídia de camadainferior fornece informações descritivas e/ou instruçõespara a camada superior como indicado pela flecha para cima620. Os subsistemas de camada superior 610 e 615 podemfornecer realimentação para a camada inferior como indicadopela flecha 625.
Em referência a Fig. 5C, após receber os dadosmultimídia codificados no bloco 545, o processo 540continua no bloco 555, onde a camada inferior organizainformações descritivas sobre os dados multimídiarecebidos. As ações realizadas no bloco 555 podem sersimilares aquelas realizadas no bloco 510 do processo 500ilustrado na Fig. 5A. As informações descritivas podemincluir qualquer ou todas as informações discutidas acima,tais como as informações ilustradas nas Tabelas 3 e 4.
Após organizar as informações descritivas nobloco 555, o processo 540 continua no bloco 560 ondeinstruções relacionadas ao processamento dos dadosmultimídia são determinadas. As instruções podem serdeterminadas com base na distribuição de erro e outrasinformações descritivas organizadas no bloco 555. Emadição, a camada inferior recebe realimentação a partir dacamada superior no processo 540. A realimentação podeincluir informações relacionadas ao processamento dos dadosmultimídia na camada superior. A realimentação pode incluirinformações, tais como tempo de processamento de porçõesespecificas de dados multimídia, ações de processamento(por exemplo, ações de controle de erro) realizadas nacamada superior, e status de processamento (por exemplo,que quadros foram decodificados e exibidos). Arealimentação pode ser usada para reorganizar asinformações descritivas no bloco 555. Os detalhes demétodos usados para determinar as instruções relacionadasao processamento dos dados multimídia no bloco 560 sãodiscutidos abaixo. O subsistema de decisão de controle deerro 306 do dispositivo de decodif icador 150 na Fig. 5Apode realizar as ações no bloco 560.
No bloco 565, o subsistema de camada inferiorfornece as informações descritivas e/ou as instruçõesrelacionadas ao processamento dos dados multimídia para osubsistema de camada superior. 0 subsistema de camadasuperior recebe as informações descritivas e/ou instruçõesno bloco 575. O subsistema de decodificador multimídia 308pode realizar as ações nos blocos 565 e 575.
Após receber as informações descritivas e/ouinstruções no bloco 575, o processo 540 continua no bloco580 onde o subsistema de camada superior processa os dadosmultimídia com base nas instruções e/ou nas informaçõesdescritivas. As ações realizadas no bloco 580 podem sersimilares aquelas realizadas no bloco 535 do método 520ilustrado na Fig. 5B. Se as informações descritivas contêmuma "Ação" recomendada, o subsistema de decodificadorrealizando o processo 540 pode ou não usar a açãorecomendada. Como discutido acima, a ação recomendada podecompreender uma ou mais técnicas de controle de erroincluindo, mas não limitado a, técnicas de recuperação deerro, técnicas de ocultação de erro ou pular decodificação.O dispositivo de decodificador pode oü não seguir a açãorecomendada dependendo em que dados podem ser recuperadosdurante recuperação de erro. Por exemplo, o processo decamada inferior que organizou as informações descritivas nobloco 555 pode não ser capaz de identificar quantos quadrosestão em uma seção de dados errôneos. As técnicas derecuperação de erro de camada superior podem ser capazes deidentificar o número de quadros na seção de dados errôneose pode escolher realizar algumas técnicas de recuperação ouocultação de erro que não foram recomendadas no campo"Ação" da tabela de informações de quadro. 0 subsistema dedecodificador multimídia 308 do dispositivo dedecodificador 150 mostrado na Fig. 1 pode realizar os atosno bloco 580.
O processo 540 continua no bloco 585 onde odecodificador multimídia de camada superior instrui acamada inferior com informações de realimentação com baseno processamento realizado nas ações de camada superior570. A realimentação pode incluir um tempo de processamentonecessário para decodificar uma certa porção de dadosmultimídia ou um tempo de processamento que a porção dedados foi completamente decodifiçada. Ao comparar o tempode processamento completo com uma marca de tempo deapresentação de novos dados multimídia recebidos no bloco545, os processos de camada inferior podem instruir acamada superior a pular certos quadros (por exemplo,quadros-B) se o tempo de processamento de camada superiormostra indicações regressas com base em desempenho deprocessamento passado. As informações de realimentaçãorecebidas na camada inferior podem ser organizadas nasinformações descritivas organizadas no bloco 555.
A realimentação pode também incluir detalhes nasações de processamento realizadas na camada superior. Porexemplo, a realimentação pode indicar as técnicas decontrole de erro especificas e/ou ações de decodificaçãonormais que tomam lugar para quadros específicos ou outrasporções de dados multimídia. A realimentação pode incluirtambém o status de processamento (por exemplo,decodificação bem-suçedida de quadro ou não) . Ao incluir aação de processamento e informações de realimentação destatus de processamento nos dados organizados no bloco 555,a camada inferior pode ajustar as instruções determinadasno bloco 560 com base nas informações descritivasatualizadas. Se há back-up de processamento, a camadainferior pode instruir a camada superior a pulardecodificação de certos quadros, tais como quadros-B oudados de camada de aperfeiçoamento. 0 subsistema dedecodificador multimídia 308 do dispositivo dedecodificador 150 mostrado na Fig. 1 pode realizar as açõesno bloco 585. Deve ser notado que alguns dos blocos doprocesso 540 podem ser combinados, omitidos, rearranjadosou qualquer combinação dos mesmos.
Fig. 7 é um fluxograma ilustrando um exemplo deum método de organizar informações descritivas que podemser usadas para realizar certos atos nos métodos ilustradosnas Figs. 5A e 5C. 0 processo 700 pode ser realizado paraorganizar as informações descritivas no bloco 510 doprocesso 500 ilustrado na Fig. 5A ou no bloco 555 doprocesso 540 ilustrado na Fig. 5C. 0 processo 700 inicia nobloco 705 onde um superquadro de dados multimídia que foirecebido no bloco 505 no processo 500, por exemplo, éarmazenado em um buffer de memória. Um superquadro é umgrupo de quadros que tipicamente são independentementedecodificáveis. Um superquadro pode incluir quadros quecobrem um período de tempo fixo que vai de cerca de 0,2segundo a cerca de 2,0 segundos. Superquadros podem tambémser dimensionados de acordo com um número fixo de quadrosconstituintes, dessa forma possuindo um período de tempovariável. Tamanho de superquadro pode ser escolhido parapermitir um tempo de aquisição razoável. Após armazenar osuperquadro de dados multimídia no bloco 705, o processo700 continua no bloco 710 onde uma determinação é feita emse os dados incluem múltiplas camadas (por exemplo, umacamada base e uma ou mais camadas de aperfeiçoamento) . Seapenas uma única camada de dados é codificada nosuperquadro, o processo 700 continua no bloco 715A. Se duasou mais camadas de dados são codificadas no superquadro, oprocesso 700 continua no bloco 715B. Um cabeçalho desuperquadro pode conter um sinalizador que indica seexistem múltiplas camadas dentro do superquadro ou não. Nosblocos 715A ou 715B, a tabela de informações de quadro(FIT) é inicializada. Inicialização da FIT pode serrealizada para ajustar campos para certos valores padrão.Após inicializar a FIT, o processo 700 prossegue ou aobloco 720A ou ao bloco 720B, dependendo se o superquadrocontém múltiplas camadas ou não. Em um ou outro caso,informações contidas em um diretório de cabeçalho opcionalsão importadas no bloco 720A ou no bloco 720B. 0 diretóriode cabeçalho pode conter qualquer uma das informações comodiscutido acima.
Após a FIT ser inicializada no bloco 715A ou nobloco 715B, e o diretório de cabeçalho opcional importadono bloco 720A ou no bloco 720B, respectivamente, o processo700 prossegue ao Ioop através do superquadro nos blocos725-740 ou blocos 745—760, respectivamente. Nos blocos 730e 750, o dispositivo de decodificador identifica unidadesde acesso de vídeo completas (VAU) que ele pode identificaratravés das informações de cabeçalho que são disponíveis.As informações de cabeçalho podem incluir qualquer um doscampos no cabeçalho de transporte ou no cabeçalho desincronização (ou qualquer outro cabeçalho) como mostradonas Tabelas 1 e 2, por exemplo. As informações no diretóriode cabeçalho opcional podem também ser usadas. As VAUs noprocesso 700 são presumidas serem quadros, mas outrasporções, tais como fatias ou blocos, podem também seridentificados no bloco 730 ou no bloco 750. Apósidentificar uma VAU completa, porções errôneas de dados devideo dentro da VAU identificada são identificadas no bloco735 ou bloco 755, respectivamente. As porções errôneaspodem ser identificadas pelas falhas de soma de verificaçãode cabeçalho, ou falhas de soma de verificação de camada detransporte, etc. Inúmeras técnicas para detectar dadoserrôneos podem ser usadas são conhecidas por pessoasversadas na técnica. As porções errôneas podem ser usadaspara compilar as informações de distribuição de erro para aFIT (ver Distribui ção de Erro PLP e campos de Taxa de E^çroPLP na Tabela 4). Depois, as porções errôneas das VAUs sãoidentificadas no bloco 735 ou no bloco 755, as informações de FIT são organizadas no bloco 740 ou no bloco 760,respectivamente. As informações na FIT podem incluirqualquer uma das informações discutidas acima na Tabela 4.0 processo 700 continua no Ioop através dos superquadros(blocos 725-740 ou blocos 745-760) até o final do25 superquadro ser identificado no bloco de decisão 725 oubloco 745. Quando o final do superquadro é identificado, oprocesso 700 continua rio bloco 800 onde a ação de controlede erro é determinada. 0 componente de organizador deinformações 304 do dispositivo de decodificador 150 na Fig.3A pode realizar as ações do processo 700. Deve ser notadoque alguns dos blocos do processo 700 podem ser combinados,omitidos, rearranjados ou qualquer combinação dos mesmos.As Figs. 8Α e 8Β. são fluxogramas ilustrando umexemplo de um método de determinar ações de controle deerro no método ilustrado na Fig. 7. 0 processo 800 podetambém ser realizado para determinar ações de controle deerro e fornecer as instruções correspondentes no bloco 515do processo 500 ilustrado na Fig. 5A, ou nos blocos 560 e565 do processo 540 ilustrado na Fig. 5C. Em um aspecto, oprocesso 800 é usado para determinar as ações de controlede erro a serem fornecidas à camada superior. As ações decontrole de erro são determinadas, por exemplo, com base nadistribuição de erro e/ou taxa de erro dos quadrosmultimídia. Em outro aspecto, o processo 800 identificaoutras porções de dados multimídia que podem ser usadaspela camada superior ao realizar as ações de controle deerro recomendadas.
Como discutido acima, alguns dados multimídi^podem ser codificados em múltiplas camadas, tais como umacamada base (por exemplo, os bits mais significativos) euma ou mais camadas de aperfeiçoamento (por exemplo, osbits menos significativos). As camadas de aperfeiçoamentopodem também conter todos os dados para quadros-B. Nestescasos, a FIT contém porções para ambas as camadas base e deaperfeiçoamento e uma ou todas das camadas podem sererrôneas. A Fig. 9 descreve uma estrutura de um exemplo depacotes de camada física incluindo uma camada basecodificada graduável e camada de aperfeiçoamento para usoem um sistema, tal como ilustrado na Fig. 1. Uma camadabase 900 contém os múltiplos PLPs 910 contendo cabeçalhosde camada de transporte 915, cabeçalhos de camada diesincronização 920 e caudas de soma de verificação de camadade transporte 925. A camada base 905 pode conter os bitsmais significativos de quadros-I, tais como quadro 930(rotulado Fi) , e quadros-P, tais como quadro 935 (rotuladoF3). Uma camada de aperfeiçoamento 950 também contém PLPs910, cabeçalhos 915, cabeçalhos de sincronização 920 esomas de verificação de camada de transporte 925. A camadade aperfeiçoamento, neste exemplo, contém os bits menossignificativos do quadro-I 930 (rotulado Fi-) e o quadro-P935 (rotulado F3-)- Em adição, a camada de aperfeiçoamento950 contém pacotes de camada de sincronização para umquadro-B 940 (rotulado F2) que é previsto bidirecionalmentea partir de quadro-I 930 e quadro-P 935, onde os paresF1, F1- e F3, F3- de camada de aperfeiçoamento e base sãocombinados e decodificados antes de construir o quadro-BF2. 0 processo 800 é projetado com esta forma decodificação graduável em mente.
0 processo 800 inicia no bloco 805 onde odispositivo de decodif i-cador integra informações decabeçalho em porções da FIT contendo VAUs errôneas, taiscomo aquelas identificadas nos blocos 735 e 755 no processo700 ilustrado na Fig. 7. As informações de cabeçalho podemser obtidas a partir de cabeçalhos de camada de transportee/ou de camada de sincronização recebidas corretamente ou apartir de um diretório de cabeçalho se um for recebido. Seos dados errôneos não podem ser isolados a PLPs específicos(por exemplo, devido à perda de sincronização), asinformações de diretório de cabeçalho podem ser usadas paraidentificar limites PLP e possivelmente preencher os campos"Distribuição de erro PLP" e/ou "Relação de erro PLP" naFIT. Se um diretório de cabeçalho não está disponível, a"Relação de erro PLP" pode ser ajustada em 100%. O métodoexemplar 800 usa a "relação de erro PLP" para determinarque "Ação" de controle de erro recomendar. Entretanto,técnicos versados irão reconhecer modos de utilizar asinformações de "distribuição de erro PLP", assim comooutras formas de dados de erro para determinar a "Ação".Depois, os campos da FIT relacionada a quadroserrôneos são preenchidos no bloco 805, o processo 800prossegue ao Ioop através dos quadros no superquadroiniciando no bloco 810. No bloco de decisão 810, odispositivo de decodificador examina os dados de relação deerro PLP FIT e determina se o número de quadros perdidosconsecutivos (isto é, errôneos) é maior que um limite "n-ésimo perdido". Se o número de quadros perdidosconsecutivos excede o limite, então o processo 800 continuano bloco 815 onde o campo "Ação" da FIT para os quadrosperdidos é ajustado em um valor recomendando pulardecodificação dos quadros perdidos. 0 limite "n-ésimoperdido" pode ser ajustado em um número de quadros onde asoutras técnicas de controle de erro são determinadas aserem ineficazes ou suficientemente degradadas de tal formaa não serem garantidas. 0 limite "n-ésimo perdido" podeestar em uma faixa a partir de cerca de 3 quadros a cercade 6 quadros. 0 desempenho de técnicas de ocultaçãotemporal é degradado quando sendo realizadas em umadistância temporal maior que 3 quadros para uma taxa dequadro de 30 quadros por segundo. Taxas de quadro maisrápidas podem permitir um limite maior, tal como a partirde cerca de 6 quadros a cerca de 12 quadros em uma taxa dequadros de 60 quadros por segundo. Após ajustar a "Ação"para os quadros perdidos para pular no bloco 815, oprocesso 800 continua no bloco de decisão 820. Se o finaldo superquadro foi alcançado, a seguir o processo continuana porção restante do processo ilustrado na FIg. 8B. Semais quadros restam para serem processados,, o processo 800continua de volta ao bloco de decisão 810.
No bloco de decisão 810, se o número de quadrosperdidos consecutivos não excede o limite (incluindo o casode um quadro completamente não-errôneo), o processo 800continua no bloco de decisão 825 onde o campo "tipo dequadro" da FIT é usado para determinar se o quadro atual éum quadro-B. As ações de controle de erro realizadas emquadros-B são diferentes daquelas realizadas em quadros-P equadros-I, neste exemplo. Se o quadro atual não é umquadro-B, o processo 800 continua no bloco de decisão \830onde a relação de erro PLP (PLP_ERR) é comparada a umlimite P_TH. O limite P_TH ajusta um limite na relação deerro PLP para quais técnicas de ocultação de erro normal(por exemplo, ocultação de erro temporal e espacial) sãoefetivas. O limite P_TH pode estar em uma faixa de cerca de20% a cerca de 40%. Se a relação de erro PLP excede olimite P_TH, a "Ação" para o quadro atual é ajustada igualpara pular no bloco 835. Se a relação de erro PLP nãoexcede o limite, a "Ação" para o quadro atual é ajustada emum valor no bloco 840 indicando que ocultação de erronormal (EC) é realizada. Após ajustar a "Ação" para oquadro atual no bloco 835 ou no bloco 840, o processo 800continua no bloco de decisão 820 e volta em Ioop ao bloco810 se mais quadros restam no superquadro, como discutidoacima.
Retornando ao bloco de decisão 825, o processo800 continua no bloco de decisão 845 se o quadro atual édeterminado a ser um quadro-B. No exemplo mostrado,presume-se que quadros-B são localizados entre um quadrc^-Ie um quadro-P, ou entre dois quadros-P. Se a "Ação" dbquadro anterior foi determinada a ser uma "Ação" pulada,· oprocesso 800 ajusta a "Ação" do quadro-B atual também a serum pulo no bloco 850. Desde que os dados do quais o quadro-B atual foi previsto não estejam disponíveis, a construçãonormal do quadro-B não é factível e as outras opções deocultação de erro podem também ser degradadas.Retornando ao bloco de decisão 845, se a "Ação"do quadro anterior não foi determinada a ser um pulo, aseguir o processo 800 continua ao bloco 855, onde a relaçãode erro PLP é comparada a um outro limite B_TH. Se arelação de erro PLP é maior que B_TH, a "Ação" para oquadro atual é ajustada em FRUC no bloco 860, do contrário,a "Ação" para o quadro atual é ajustada em ocultação deerro normal no bloco 8 65. A ocultação de erro normal paraquadros-B, neste exemplo, é previsão temporal a partir dedois quadros decodificados. Os quadros usualmentecompreendem um quadro anterior ao quadro-B e um quadrosubseqüente ao quadro-B. Entretanto, dois quadros-Banteriores ou dois subseqüentes também podem ser usados.
Ocultação espacial usando porções não-errôneas do quadro-Batual também pode ser usada com ocultação de erro normaldeterminada no bloco 8 60. O limite B_TH pode ser maior queo limite P_TH usado para quadros-P uma vez que existem doisquadros de referência para escolher e não é requerido usarambos na previsão. Entretanto, em alguns casos FRUC podeser mais robusto e pode ocultar melhor do que ocultação deerro normal e, portanto, o valor de B_TH pode ser ajustadoem um valor inferior a P_TH. O valor de B_TH e P_TH podedepender de condições, tais como o tipo de condições decanal e como os erros são introduzidos. A ocultação usadaem FRUC pode ser similar à ocultação de erro de quadro-Bnormal, mas é realizado para o quadro todo.
Após a decisão de "Ação" ter sido feita paratodos os quadros no superquadro, no bloco de decisão 820, oprocesso 800 continua no bloco 870 na Fig. 8B. 0 Ioop apartir do bloco 875 ao 895 preenche a tabela FIT cominformações que podem ser usadas na camada superior pararealizar a "Ação" decidida. No bloco 870, o processo 800inicia outro passo através da FIT, iniciando no começo, erealizando loops através dos quadros de camada base e deaperfeiçoamento.
No bloco de decisão 875, se o quadro atual não éum quadro-B ou um quadro a ser ocultado usando FRUC, oprocesso continua no bloco 880 onde a tabela FIT épreenchida com uma variável skip_num que é usada paraocultação de erro temporal. A variável skip_num indica onúmero de quadros distantes no tempo a partir do quadroatual que o quadro atual está para ser previsto a partir deusar a ocultação de erro temporal.
A Fiq. IOA ilustra graficamente as posições doquadro-P atual 1005 e um quadro-P previamente decodificado1010 posicionado três quadros antes do quadro atual. Nesteexemplo, a variável skip_num seria ajustada igual a três.
Dessa forma, os quadros-P 1015 e 1020 que foram puladospelo decodificador não serão usados. Em vez disso, osvetores de movimento 1025 do quadro-P atual 1005 podem sergraduados (ver vetor de movimento graduado 1030) paraapontar o quadro-P anteriormente decodificado 1010. A Fig.10A ilustra os quadros como uma dimensão, onde eles sãorealmente de duas dimensões e o vetor de movimento 1025aponta a uma posição de duas dimensões em um quadroanterior. No exemplo da Fig. 10A, um objeto 1035 no quadro1010 move-se no quadro 1005. Se o movimento do objeto érelativamente constante, uma extrapolação linear do vetorde movimento 1025 pode apontar precisamente a posiçãocorreta no quadro 1010, reposicionando, assim, o objeto1035 em direção ao quadro 1005. A posição de exibição doobjeto 1035 pode ser mantida constante em quadros pulados1015 e 1020.
Retornando à Fig. 8B, após determinar a variávelskip_num para o quadro atual, o processo 800 continua nobloco 885 onde um sinalizador MV_FLAG do quadro indicadopela variável skip_num é ajustado em um valor indicando aodecodificador de camada superior que os valoresdecodificados do quadro deveriam ser salvos para ocultaçãode quadro futuro. Fig. IOB ilustra graficamente asinalização de quadros decodificados usados em ocultação deerro para outros quadros errôneos. No exemplo da Fig. 10B,o quadro decodificado 1040 é sinalizado para ser usado paraocultar quadro errôneo 1045 usando a ocultação de erronormal. Os quadros decodificados 1050 e 1055 são ambosindicados para serem usados para realizar FRUC para quadro1060. Estes são apenas exemplos e outras combinações dequadros localizados a frente e/ou atrás podem ser usadaspara ocultação de erro normal e FRUC.
Retornando à Fig. 8B, após ajustar o MV_FLAGdo(s) quadro(s) a ser(em) usado(s) para ocultar o quadroatual, o processo 800 continua no bloco 895. No bloco 895,o decodificador verifica para ver se o final do superquadrofoi alcançado. 0 processo 800 finaliza o superquadro atualse o final do superquadro foi detectado. Se mais quadrosrestam no superquadro, o processo 800 retorna ao bloco dedecisão 875 para Ioop pelos quadros restantes.
No bloco 875, se o quadro atual é um quadro-B ouum quadro a ser ocultado usando FRUC, o processo 800continua no bloco 890 onde as variáveis B_NUM e b_numlocalizando a posição de dois quadros para realizar aprevisão bidirecional são determinadas. A Fig. IOC ilustragraficamente as variáveis usadas para indicar as posiçõesde dois quadros decodificados usados para ocultar um quadroerrôneo usando FRUC (as mesmas variáveis podem ser usadaspara um quadro-B errôneo). Um quadro errôneo atual 1065 foideterminado para ser ocultado usando FRUC. A variável b_numé ajustada em dois para indicar que uma posição de quadroanterior 1070 dois quadros a frente é um primeiro quadro dereferência. No exemplo mostrado, o quadro 1075 é previsto apartir do quadro 1070 usando os vetores de movimentorecebidos 1085. A variável B_NUM é ajustada igual a 3 paraindicar que um quadro 1075 localizado três quadros adiantedo quadro 1070 é um segundo quadro de referência. Noexemplo mostrado, o quadro decodificado 1075 é previsto apartir do quadro 1070 usando os vetores de movimentorecebidos 1085. Os vetores de movimento recebidos 1085podem ser graduados, resultando em vetores de movimentosgraduados 1090, para apontar o quadro errôneo 1065. Asporções decodifiçadas localizadas pelos vetores demovimento recebidos 1085 nos quadros 1075 e 1070 podem,então, serem usadas para ocultar a porção do quadro 1065localizado pelo vetor de movimento graduado 1090. Nesteexemplo, um quadro-B 1080 não foi usado para ocultar oquadro 1065 (quadros-B não são tipicamente usados paraprevisão). Tipicamente, os quadros decodificadoscorretamente mais próximos serão usados para realizarocultação de erro. Os dois quadros decodificados podemtambém ambos serem adiantados ou retardados do quadroerrôneo sendo ocultado.
Após preencher a FIT com as variáveis B_NUM eb_num no bloco 8 90, o processo continua no Ioop pelosblocos 875-895 até que a FIT para o superquadro inteiroseja preenchida, no ponto o qual o processo 800 termina. Emum aspecto a FIT é preenchida usando os processos 700 e oprocesso 800 para todos os quadros no superquadro antes queos quadros individuais e FIT sejam encaminhados para acamada superior para serem decodificados. Neste modo, osquadros podem ser encaminhados na ordem em que eles estãopara serem decodificados. Em adição, quadros que estão paraserem pulados podem ou não ser encaminhados. Em outroaspecto, os quadros e entradas correspondentes da FIT podemser encaminhados para a camada superior assim que osprocessos 700 e 800 sejam ambos completados para um quadro.O subsistema de decisão de controle de erro 306 dodispositivo de decodificador 150 na Fig. 3A pode realizaras ações do processo 800.
Os processos exemplares 700 e 800 usaram quadroscomo a VAU. Entretanto, as VAUs podem também ser fatias oublocos de pixels e a FIT pode ser preenchida para estasporções em vez de quadros. Deve ser notado que alguns dosblocos dos processos 700 e 800 podem ser combinados,omitidos, rearranjados ou qualquer combinação dos mesmos.
A Fig. 11 é um diagrama de blocos funcionalilustrando outro exemplo de um dispositivo de decodificador150 que pode ser usado para processar dados multimídia emum sistema, tal como ilustrado na Fig. 1. Este aspectoinclui meios para receber os dados multimídia, meios paraorganizar informações descritivas sobre os dados multimídiaem uma primeira camada, em que as informações descritivassão relacionadas com o processamento dos dados multimídiaem uma segunda camada, e meios para fornecer instruçõesrelacionadas ao processamento dos dados multimídia nasegunda camada com base pelo menos em parte nas informaçõesdescritivas. Alguns exemplos deste aspecto incluem onde osmeios de recepção compreendem um receptor 1102, onde osmeios de organização compreendem um subsistema deorganizador de informações 1104, e onde os meios defornecimento compreendem um subsistema de decisão decontrole de erro 1106.
A Fig. 12 é um diagrama de blocos funcionalilustrando um outro exemplo de um dispositivo dedecodif icador 150 que pode ser usado para processar dadosmultimídia em um sistema, tal como ilustrado na Fig. 1.Este aspecto inclui meios para receber os dados multimídia,meios para organizar informações descritivas sobre os dadosmultimídia em uma primeira camada, em que as informaçõesdescritivas são relacionadas com o processamento dos dadosmultimídia em uma segunda camada, e meios para fornecerinstruções relacionadas ao processamento dos dadosmultimídia na segunda camada com base pelo menos em partenas informações descritivas. Alguns exemplos deste aspectoincluem onde os meios de recepção compreendem um módulopara receber 1202, onde os meios de organização compreendemum módulo para organizar informações 1204, e onde os meiosde fornecimento compreendem um módulo para fornecerinstruções 1206.
A Fig. 13 é um diagrama de blocos funcionalilustrando um outro exemplo de um dispositivo dedecodificador 150 que pode ser usado para processar dadosmultimídia em um sistema, tal como ilustrado na Fig. 1.
Este aspecto inclui meios para receber os dados multimídia,meios para processar os dados multimídia em uma camadasuperior, meios para instruir uma camada inferior com base,pelo menos em parte, em informações associadas com oprocessamento dos dados multimídia na camada superior, emeios para processar os dados multimídia na camada inferiorcom base, pelo menos em parte, nas informações associadascom o processamento dos dados multimídia na camadasuperior. Alguns exemplos deste aspecto incluem onde osmeios de recepção compreendem um receptor 1302, onde osmeios de processamento de camada superior compreendem umsubsistema de decodificador multimídia de camada deaplicação 1308, onde os meios para instruir compreendem osubsistema de decodificador. multimídia de camada deaplicação 1308, e onde os meios de processamento de camadainferior compreendem um subsistema de decodificadormultimídia de camada de transporte/sincronização 1306.A Fig. 14 é um diagrama de blocos funcionalilustrando um outro exemplo de um dispositivo dedecodificador 150 que pode ser usado para processar dadosmultimídia em um sistema, tal como ilustrado na Fig. 1.
Este aspecto inclui meios para receber os dados multimídia,meios para processar os dados multimídia em uma camadasuperior, meios para instruir uma camada inferior com base,pelo menos em parte, em informações associadas com oprocessamento dos dados multimídia na camada superior emeios para processar os dados multimídia na camada inferiorcom base, pelo menos em parte, nas informações associadascom o processamento dos dados multimídia na camadasuperior. Alguns exemplos deste aspecto incluem onde osmeios de recepção compreendem um módulo para receber 14 02,onde os meios de processamento de camada superiorcompreendem um módulo para processar multimídia em umacamada superior 1408, onde os meios para instruircompreendem o módulo para processar multimídia na camadainferior 14 08, e onde os meios de processamento de camadainferior compreendem um módulo para processar dadosmultimídia em uma camada inferior 1406.
A Fig. 15 é um diagrama de blocos funcionalilustrando um outro exemplo de um dispositivo dedecodif icador 150 que pode ser usado para processar dadosmultimídia em um sistema, tal como ilustrado na Fig. 1.Este aspecto inclui meios para receber os dados multimídia,meios para receber informações descritivas sobre os dadosmultimídia a partir de uma primeira camada, em que asinformações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada, emeios para processar os dados multimídia na segunda camadacom base, pelo menos em parte, nas informações descritivasrecebidas. Alguns exemplos deste aspecto incluem onde' osmeios para receber os dados multimídia compreendem umreceptor 1502, onde os meios para receber informaçõesdescritivas compreendem um decodificador multimídia 1508, eonde os meios de processamento compreendem um decodificadormultimídia 1508.
A Fig. 16 é um diagrama de blocos funcionalilustrando um outro exemplo de um dispositivo dedecodif icador 150 que pode ser usado para processar dadosmultimídia em um sistema, tal como ilustrado na Fig. 1.Este aspecto inclui meios para receber os dados multimídia,meios para receber informações descritivas sobre os dadosmultimídia a partir de uma primeira camada, em que asinformações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada, emeios para processar os dados multimídia na segunda camadacom base, pelo menos em parte, nas informações descritivasrecebidas. Alguns exemplos deste aspecto incluem onde osmeios para receber os dados multimídia compreendem ummódulo para receber 1602, onde os meios para receberinformações descritivas compreendem um módulo paradecodificar multimídia 1608 e onde os meios deprocessamento compreendem um módulo para decodificarmultimídia 1608.
Aqueles técnicos versados na área entenderão queas informações e os sinais podem ser representados usando-se uma variedade de diferentes tecnologias e técnicas. Comoexemplo, dados, instruções, comandos, informações, sinais,bits, símbolos e chips que possam ter sido mencionados portoda a descrição acima podem ser representados por tensões,correntes, ondas eletromagnéticas, campos ou partículaseletromagnéticas, campos ou partículas ópticas ou quaisquercombinações destes.Aqueles técnicos versados na área irão perceberadicionalmente que os vários blocos, módulos, circuitos eetapas de algoritmos lógicos ilustrativos descritos emconexão com os exemplos aqui descritos podem serimplementados na forma de hardware eletrônico, firmware,software de computador, middleware, microcódigo oucombinações destes. Para ilustrar claramente talintercambialidade de hardware e software, várioscomponentes, blocos, módulos, circuitos e etapasilustrativos foram acima descritos de um modo geral emtermos de sua funcionalidade. Se tal funcionalidade éimplementada na forma de um hardware ou software depende daaplicação e restrições de projeto especificas impostas aosistema como um todo. Os técnicos na área podem implementara funcionalidade descrita de diversas formas para cadaaplicação especifica, porém tais decisões de implementaçãonão devem ser interpretadas como um afastamento do escopodos métodos descritos.
Os vários blocos, componentes, módulos ecircuitos lógicos ilustrativos aqui descritos em conexãocom os exemplos aqui descritos podem ser implementados ourealizados por meio de um processador de propósito geral,um processador de sinais digitais (DSP), um circuitointegrado de aplicação especifica (ASIC), um arranjo deporta programável em campo (FPGA) ou outros dispositivoslógicos programáveis, portas individuais ou lógica detransistores, componentes de hardware individuais ouquaisquer combinações destes projetados para efetuar asfunções aqui descritas. Um processador de propósito geralpode ser um microprocessador, porém como alternativa, oprocessador pode ser qualquer processador, controlador,microcontrolador ou máquina de estado convencionais. Umprocessador pode também ser implementado na forma de umacombinação de dispositivos de computação, por exemplo, umacombinação de um DSP e um microprocessador, uma pluralidadede microprocessadores, um ou mais microprocessadores emconjunto com um núcleo DSP ou núcleo ASIC, ou qualqueroutra configuração similar.
As etapas de um método ou algoritmo descritos emconexão com os exemplos descritos aqui podem serconcretizadas diretamente em hardware, em um módulo desoftware executado por um processador ou em uma combinaçãode ambos. Um módulo de software pode residir em uma memóriaRAM, memória flash, memória ROM, memória EPROM, memóriaEEPROM, registradores, disco rígido, um disco removível, umCD-ROM, um meio de armazenamento ótico ou qualquer outraforma de meio de armazenamento conhecida pelos técnicos naárea. Um exemplo de meio de armazenamento é acoplado aoprocessador de tal forma que o processador possa lerinformações provenientes do, e gravar informações no, meiode armazenamento. Como alternativa, o meio de armazenamentopode estar integrado ao processador. O processador e o meio de armazenamento podem residir em um circuito integrado deaplicação específica (ASIC) . 0 ASIC pode residir em ummodem sem fio. Como alternativa, o processador e o meio dearmazenamento podem residir na forma de componentesindividuais em um modem sem fio.
A descrição anterior dos exemplos descritos éprovida para permitir que os técnicos na área efetivem oufaçam uso dos métodos e equipamentos descritos. Váriasmodificações a esses exemplos ficarão prontamente claraspara os técnicos na área e os princípios aqui definidospodem ser aplicados a outros exemplos e elementosadicionais podem ser adicionados.Dessa forma, métodos e equipamentos para realizarcontrole de erro robusto e altamente eficiente de dadosmultimídia foram descritos.

Claims (84)

1. Um método para processar dados multimídiacompreendendo:receber os dados multimídia;organizar informações descritivas sobre os dadosmultimídia em uma primeira camada, em que as informaçõesdescritivas são relacionadas com o processamento dos dadosmultimídia em uma segunda camada; efornecer instruções relacionadas com oprocessamento dos dados multimídia na segunda camada combase, pelo menos em parte, nas informações descritivas.
2. O método, de acordo com a reivindicação 1,compreendendo adicionalmente passar as informaçõesdescritivas para a segunda camada.
3. O método, de acordo com a reivindicação 1, emque as informações descritivas compreendem um ou maisdentre informações características de quadro, dados base oude aperfeiçoamento identificando informações, informaçõesde temporização, um tipo de codificação, um tipo de quadro,informações de sincronização e informações relacionadas àcodificação preditiva.
4. O método, de acordo com a reivindicação 1, emque os dados multimídia compreendem alguns dados errôneos,o método compreendendo adicionalmente organizar asinformações descritivas para incluir informaçõesrepresentando uma distribuição de erro dos dados errôneosdentro dos dados multimídia.
5. O método, de acordo com a reivindicação 4,compreendendo adicionalmente determinar as instruções combase, pelo menos em parte, nas informações de distribuiçãode erro.
6. O método, de acordo com a reivindicação 1,compreendendo adicionalmente mudar o processamento dosdados multimídia na segunda camada com base, pelo menos emparte, nas instruções.
7. 0 método, de acordo com a reivindicação 1, emque as informações descritivas compreendem metadados.
8. 0 método, de acordo com a reivindicação 1,compreendendo adicionalmente determinar um método decontrole de erro com base, pelo menos em parte, eminformações de distribuição de erro, em que as instruçõesfornecidas para a segunda camada são relacionadas ao métododeterminado de controle de erro.
9. 0 método, de acordo com a reivindicação 8, emque o método determinado de controle de erro compreende umou mais dentre recuperação de erro, ocultação de erro einterpolação de um quadro.
10. Um equipamento para processar dadosmultimídia compreendendo:um receptor configurado para receber os dadosmultimídia;um organizador de informações configurado paraorganizar informações descritivas sobre os dados multimídiaem uma primeira camada, em que as informações descritivassão relacionadas com o processamento dos dados multimídiaem uma segunda camada; eum subsistema de decisão de controle de erroconfigurado para fornecer instruções relacionadas com oprocessamento dos dados multimídia na segunda camada combase, pelo menos em parte, nas informações descritivas.
11. 0 equipamento, de acordo com a reivindicação-10, em que o organizador de informações é configuradoadicionalmente para passar as informações descritivas paraa segunda camada.
12. O equipamento, de acordo com a reivindicação-10, em que as informações descritivas compreendem um oumais dentre informações características de quadro, dadosbase ou de aperfeiçoamento identificando informações,informações de temporização, um tipo de codificação, umtipo de quadro, informações de sincronização e informaçõesrelacionadas à codificação preditiva.
13. O equipamento, de acordo com a reivindicação-10, em que os dados multimídia compreendem alguns dadoserrôneos, e o processador de dados multimídia é configuradoadicionalmente para organizar as informações descritivaspara incluir informações representando uma distribuição deerro dos dados errôneos dentro dos dados multimídia.
14. 0 equipamento, de acordo com a reivindicação-13, em que o subsistema de decisão de controle de erro éconfigurado adicionalmente para determinar as instruçõescom base, pelo menos em parte, nas informações dedistribuição de erro.
15. 0 equipamento, de acordo com a reivindicação-10, compreendendo adicionalmente um decodificadormultimídia configurado para mudar o processamento dos dadosmultimídia na segunda camada com base, pelo menos em parte,nas instruções.
16. O equipamento, de acordo com a reivindicação10, em que as informações descritivas compreendemmetadados.
17. 0 equipamento, de acordo com a reivindicação-10, em que o subsistema de decisão de controle de erro éconfigurado adicionalmente para determinar um método decontrole de erro com base, pelo menos em parte, eminformações de distribuição de erro, em que as instruçõesfornecidas para a segunda camada são relacionadas ao métododeterminado de controle de erro.
18. 0 equipamento, de acordo com a reivindicação-17, em que o método determinado de controle de errocompreende um ou mais dentre recuperação de erro, ocultaçãode erro e interpolação de um quadro.
19. Um equipamento para processar dadosmultimídia compreendendo:meios para receber os dados multimídia;meios para organizar informações descritivassobre os dados multimídia em uma primeira camada, em que asinformações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada; emeios para fornecer instruções relacionadas com oprocessamento dos dados multimídia na segunda camada combase, pelo menos em parte, nas informações descritivas.
20. O equipamento, de acordo com a reivindicação 19, compreendendo adicionalmente meios para passar asinformações descritivas para a segunda camada.
21. O equipamento, de acordo com a reivindicação 19, em que as informações descritivas compreendem um oumais dentre informações características de quadro, dadosbase ou de aperfeiçoamento identificando informações,informações de temporização, um tipo de codificação, umtipo de quadro, informações de sincronização e informaçõesrelacionadas à codificação preditiva.
22. O equipamento, de acordo com a reivindicação 19, em que os dados multimídia compreendem alguns dadoserrôneos, em que os meios para organizar organizam asinformações descritivas para incluir informaçõesrepresentando uma distribuição de erro dos dados errôneosdentro dos dados multimídia.
23. O equipamento, de acordo com a reivindicação 22, compreendendo adicionalmente meios para determinar asinstruções com base, pelo menos em parte, nas informaçõesde distribuição de erro.
24. O equipamento, de acordo com a reivindicação-19, compreendendo adicionalmente meios para mudar oprocessamento dos dados multimídia na segunda camada combase, pelo menos em parte, nas instruções.
25. 0 equipamento, de acordo com a reivindicação-19, em que as informações descritivas compreendemmetadados.
26. 0 equipamento, de acordo com a reivindicação-19, compreendendo adicionalmente meios para determinar um método de controle de erro com base, pelo menos em parte,em informações de distribuição de erro, em que asinstruções fornecidas para a segunda camada sãorelacionadas ao método determinado de controle de erro.
27. O equipamento, de acordo com a reivindicação-26, em que o método determinado de controle de errocompreende um ou mais dentre recuperação de erro, ocultaçãode erro e interpolação de um quadro.
28. Meio legível por máquina compreendendo códigode programa, que, quando executado em uma ou mais máquinas,faz com que uma ou mais máquinas realizem operações deprograma, o código de programa compreendendo:código para receber dados multimídia;código para organizar informações descritivassobre os dados multimídia em uma primeira camada, em que asinformações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada; ecódigo para fornecer instruções relacionadas como processamento dos dados multimídia na segunda camada combase, pelo menos em parte, nas informações descritivas.
29. O meio legível por máquina, de acordo com areivindicação 28, compreendendo adicionalmente código parapassar as informações descritivas para a segunda camada.
30. O meio legível por máquina, de acordo com areivindicação 28, em que as informações descritivascompreendem um ou mais dentre informações característicasde quadro, dados base ou de aperfeiçoamento identificandoinformações, informações de temporização, um tipo decodificação, um tipo de quadro, informações desincronização e informações relacionadas a codificaçãopreditiva.
31. O meio legível por máquina, de acordo com areivindicação 28, em que os dados multimídia compreendemalguns dados errôneos, .e compreendendo adicionalmentecódigo para organizar as informações descritivas paraincluir informações representando uma distribuição de errodos dados errôneos dentro dos dados multimídia.
32. O meio legível por máquina, de acordo com areivindicação 31, compreendendo adicionalmente código paradeterminar as instruções com base, pelo menos em parte, nasinformações de distribuição de erro.
33. O meio legível por máquina, de acordo com areivindicação 28, compreendendo adicionalmente código paramudar o processamento dos dados multimídia na segundacamada com base, pelo menos em parte, nas instruções.
34. 0 meio legível por máquina, de acordo com areivindicação 28, em que as informações descritivascompreendem metadados.
35. O meio legível por máquina, de acordo com areivindicação 28, compreendendo adicionalmente código paradeterminar um método de controle de erro com base, pelomenos em parte, em informações de distribuição de erro, emque as instruções fornecidas para a segunda camada sãorelacionadas ao método determinado de controle de erro.
36. O meio legível por máquina, de acordo com areivindicação 35, em que o método determinado de controlede erro compreende um ou mais dentre recuperação de erro,ocultação de erro e interpolação de um quadro.
37. Um método para processar dados multimídiacompreendendo:receber os dados multimídia;processar os dados multimídia em uma camadasuperior;instruir uma camada inferior com base, pelo menosem parte, em informações associadas com o processamento dosdados multimídia na camada superior; eprocessar os dados multimídia na camada inferiorcom base, pelo menos em parte, nas informações associadascom o processamento dos dados multimídia na camadasuperior.
38. O método, de acordo com a reivindicação 37,compreendendo adicionalmente organizar informaçõesdescritivas na camada inferior sobre os dados multimídiacom base, pelo menos em parte, nas informações associadascom o processamento dos dados multimídia na camadasuperior.
39. O método, de acordo com a reivindicação 38,compreendendo adicionalmente fornecer instruçõesrelacionadas com o processamento dos dados multimídia nacamada superior com base, pelo menos em parte, nasinformações descritivas.
40. 0 método, de acordo com a reivindicação 38,em que as informações descritivas compreendem metadados.
41. O método, de acordo com a reivindicação 38,em que as informações descritivas compreendem um ou maisdentre informações características de quadro, dados base oude aperfeiçoamento identificando informações, informaçõesde temporização, um tipo de codificação, um tipo de quadro,informações de sincronização e informações relacionadas àcodificação preditiva.
42. 0 método, de acordo com a reivindicação 37,em que instruir a camada inferior compreende passarinformações compreendendo um ou mais dentre tempo deprocessamento, ação de processamento e status deprocessamento.
43. Um equipamento para processar dadosmultimídia compreendendo:um receptor configurado para receber os dadosmultimídia;um subsistema de decodificador de camada superiorconfigurado para processar os dados multimídia em umacamada superior, e para instruir uma camada inferior combase, pelo menos em parte, em informações associadas com oprocessamento dos dados multimídia na camada superior; eum subsistema de decodificador de camada inferiorconfigurado para processar os dados multimídia na camadainferior com base, pelo menos em parte, nas informaçõesassociadas com o processamento dos dados multimídia nacamada superior.
44. O equipamento, de acordo com a reivindicação-43, compreendendo adicionalmente um organizador deinformações configurado para organizar informaçõesdescritivas na camada inferior sobre os dados multimídiacom base, pelo menos em parte, nas informações associadascom o processamento dos dados multimídia na camadasuperior.
45. O equipamento, de acordo com a reivindicação-38, compreendendo adicionalmente um subsistema de decisãode controle de erro configurado para fornecer instruçõesrelacionadas com o processamento dos dados multimídia nacamada superior com base, pelo menos em parte, nasinformações descritivas.
46. O equipamento, de acordo com a reivindicação 44, em que as informações descritivas compreendem metadados.
47. O equipamento, de acordo com a reivindicação 44, em que as informações descritivas compreendem um oumais dentre informações características de quadro, dadosbase ou de aperfeiçoamento identificando informações,informações de temporização, um tipo de codificação, umtipo de quadro, informações de sincronização e informaçõesrelacionadas à codificação preditiva.
48. O equipamento, de acordo com a reivindicação 43, em que o subsistema de decodificador de camada superioré configurado adicionalmente para instruir a camadainferior passando informações compreendendo um ou maisdentre tempo de processamento, ação de processamento estatus de processamento.
49. Um equipamento para processar dadosmultimídia compreendendo:meios para receber os dados multimídia;meios para processar os dados multimídia em umacamada superior;meios para instruir uma camada inferior com base,pelo menos em parte, em informações associadas com oprocessamento dos dados multimídia na camada superior; emeios para processar os dados multimídia nacamada inferior com base, pelo menos em parte, nasinformações associadas com o processamento dos dadosmultimídia na camada superior.
50. O equipamento, de acordo com a reivindicação 49,compreendendo adicionalmente meios para organizarinformações descritivas na camada inferior sobre os dadosmultimídia com base, pelo menos em parte, nas informaçõesassociadas com o processamento dos dados multimídia nacamada superior.
51. O equipamento, de acordo com a reivindicação -50, compreendendo adicionalmente meios para fornecerinstruções relacionadas com o processamento dos dadosmultimídia na camada superior com base, pelo menos emparte, nas informações descritivas.
52. O equipamento, de acordo com a reivindicação -50, em que as informações descritivas compreendemmetadados.
53. O equipamento, de acordo com a reivindicação-50, em que as informações descritivas compreendem um oumais dentre informações características de quadro, dadosbase ou de aperfeiçoamento identificando informações,informações de temporização, um tipo de codificação, umtipo de quadro, informações de sincronização e informaçõesrelacionadas à codificação preditiva.
54. O equipamento, de acordo com a reivindicação-49, em que os meios para instruir a camada inferiorcompreendem meios para passar informações compreendendo umou mais dentre tempo de processamento, ação deprocessamento e status de processamento.
55. Um meio legível por máquina compreendendocódigo de programa, que, quando executado em uma ou maismáquinas, faz com que uma ou mais máquinas realizemoperações de programa, o código de programa compreendendo:código para receber dados multimídia;código para processar os dados multimídia em umacamada superior;código para instruir uma camada inferior combase, pelo menos em parte, em informações associadas com oprocessamento dos dados multimídia na camada superior; ecódigo para processar os dados multimídia nacamada inferior com base, pelo menos em parte, nasinformações associadas com o processamento dos dadosmultimídia na camada superior.
56. 0 meio legível por máquina, de acordo com areivindicação 55, compreendendo adicionalmente código paraorganizar informações descritivas na camada inferior sobreos dados multimídia com base, pelo menos em parte, nasinformações associadas com o processamento dos dadosmultimídia na camada superior.
57. O meio legível por máquina, de acordo com areivindicação 56, compreendendo adicionalmente código parafornecer instruções relacionadas com o processamento dosdados multimídia na camada superior com base, pelo menos emparte, nas informações descritivas.
58. 0 meio legível por máquina, de acordo com areivindicação 56, em que as informações descritivascompreendem metadados.
59. O meio legível por máquina, de acordo com areivindicação 56, em que as informações descritivascompreendem um ou mais dentre informações característicasde quadro, dados base ou de aperfeiçoamento identificandoinformações, informações de temporização, um tipo decodificação, um tipo · de quadro, informações desincronização e informações relacionadas à codificaçãopreditiva.
60. 0 meio legível por máquina, de acordo com areivindicação 55, compreendendo adicionalmente código parainstruir a camada inferior passando informaçõescompreendendo um ou mais dentre tempo de processamento,ação de processamento e status de processamento.
61. Um método para processar dados multimídiacompreendendo:receber os dados multimídia;receber informações descritivas sobre os dadosmultimídia a partir de uma primeira camada, em que asinformações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada; eprocessar os dados multimídia na segunda camadacom base, pelo menos em parte, nas informações descritivasrecebidas.
62. 0 método, de acordo com a reivindicação 61,compreendendo adicionalmente:receber pelo menos uma instrução na segundacamada, em que a instrução é baseada, pelo menos em parte,nas informações descritivas; emudar o processamento dos dados multimídia nasegunda camada com base, pelo menos em parte, na instruçãorecebida.
63. 0 método, de acordo com a reivindicação 62,em que a instrução recebida é relacionada com um método decontrole de erro.
64. O método, de acordo com a reivindicação 63,em que o método de controle de erro compreende um ou maisdentre recuperação de erro, ocultação de erro einterpolação de um quadro.
65. O método, de acordo com a reivindicação 61, em que as informações descritivas compreendem metadados.
66. O método, de acordo com a reivindicação 61,em que as informações descritivas compreendem um ou maisdentre informações características de quadro, dados base oude aperfeiçoamento identificando informações, informaçõesde temporização, um tipo de codificação, um tipo de quadro,informações de sincronização e informações relacionadas àcodificação preditiva.
67. Um equipamento para processar dadosmultimídia compreendendo:um receptor configurado para receber os dadosmultimídia; eum decodificador configurado para receberinformações descritivas sobre os dados multimídia a partirde uma primeira camada, em que as informações descritivassão relacionadas com o processamento dos dados multimídiaem uma segunda camada, e para processar os dados multimídiana segunda camada com base, pelo menos em parte, nasinformações descritivas recebidas.
68. O equipamento, de acordo com a reivindicação 67, em que o decodificador é configurado adicionalmentepara receber pelo menos uma instrução na segunda camada, emque a instrução é baseada, pelo menos em parte, nasinformações descritivas, e o decodificador é configuradoadicionalmente para mudar o processamento dos dadosmultimídia na segunda camada com base, pelo menos em parte,na instrução recebida.
69. O equipamento, de acordo com a reivindicação 68, em que a instrução recebida é relacionada com um métodode controle de erro.
70. O equipamento, de acordo com a reivindicação 69, em que o método de controle de erro compreende um oumais dentre recuperação de erro, ocultação de erro einterpolação de um quadro.
71. O equipamento, de acordo com a reivindicação 67, em que as informações descritivas compreendemmetadados.
72. O equipamento, de acordo com a reivindicação 67, em que as informações descritivas compreendem um oumais dentre informações características de quadro, dadosbase ou de aperfeiçoamento identificando informações,informações de temporização, um tipo de codificação, umtipo de quadro, informações de sincronização e informaçõesrelacionadas à codificação preditiva.
73. Um equipamento para processar dadosmultimídia compreendendo:meios para receber os dados multimídia;meios para receber informações descritivas sobreos dados multimídia a partir de uma primeira camada, em queas informações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada; emeios para processar os dados multimídia nasegunda camada com base, pelo menos em parte, nasinformações descritivas recebidas.
74. O equipamento, de acordo com a reivindicação-73, compreendendo adicionalmente:meios para receber pelo menos uma instrução nasegunda camada, em que a instrução é baseada, pelo menos emparte, nas informações descritivas; emeios para mudar o processamento dos dadosmultimídia na segunda camada com base, pelo menos em parte,na instrução recebida.
75. O equipamento, de acordo com a reivindicação-74, em que a instrução recebida é relacionada com um métodode controle de erro.
76. 0 equipamento, de acordo com a reivindicação-75, em que o método de controle ,de erro compreende um oumais dentre recuperação de erro, ocultação de erro einterpolação de um quadro.
77. O equipamento, de acordo com a reivindicação-73, em que as informações descritivas compreendemmetadados.
78. O equipamento, de acordo com a reivindicação-73, em que as informações descritivas compreendem um oumais dentre informações características de quadro, dadosbase ou de aperfeiçoamento identificando informações,informações de temporização, um tipo de codificação, umtipo de quadro, informações de sincronização e informaçõesrelacionadas à codificação preditiva.
79. Um meio legível por máquina compreendendocódigo de programa, que, quando executado em uma ou maismáquinas, faz com que uma ou mais máquinas realizemoperações de programa, o código de programa compreendendo:código para receber dados multimídia;código para receber informações descritivas sobreos dados multimídia a partir de uma primeira camada, em queas informações descritivas são relacionadas com oprocessamento dos dados multimídia em uma segunda camada; ecódigo para processar os dados multimídia nasegunda camada com base, pelo menos em parte, nasinformações descritivas recebidas.
80. 0 meio legível por máquina, de acordo com areivindicação 7 9, compreendendo adicionalmente:código para receber pelo menos uma instrução nasegunda camada, em que a instrução é baseada, pelo menos emparte, nas informações descritivas; ecódigo para mudar o processamento dos dadosmultimídia na segunda camada com base, pelo menos em parte,na instrução recebida.
81. 0 meio legível por máquina, de acordo com areivindicação 80, em que a instrução recebida é relacionadacom um método de controle de erro.
82. 0 meio legível por máquina, de acordo com areivindicação 81, em que o método de controle de errocompreende um ou mais dentre recuperação de erro, ocultaçãode erro e interpolação de um quadro.
83. O meio legível por máquina, de acordo com areivindicação 7 9, em que as informações descritivascompreendem metadados.
84. O meio legível por máquina, de acordo com areivindicação 7 9, em que as informações descritivascompreendem um ou mais dentre informações característicasde quadro, dados base ou de aperfeiçoamento identificandoinformações, informações de temporização, um tipo decodificação, um tipo de quadro, informações desincronização e informações relacionadas à codificaçãopreditiva.
BRPI0709888-0A 2006-04-04 2007-04-04 decodificaÇço multimÍdia em nÍvel de quadro com tabela de informaÇÕes de quadro BRPI0709888A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US78944306P 2006-04-04 2006-04-04
US60/789,443 2006-04-04
US11/696,071 2007-04-03
US11/696,071 US8358704B2 (en) 2006-04-04 2007-04-03 Frame level multimedia decoding with frame information table
PCT/US2007/065940 WO2008063687A2 (en) 2006-04-04 2007-04-04 Frame level multimedia decoding with frame information table

Publications (1)

Publication Number Publication Date
BRPI0709888A2 true BRPI0709888A2 (pt) 2011-07-26

Family

ID=38861516

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0709888-0A BRPI0709888A2 (pt) 2006-04-04 2007-04-04 decodificaÇço multimÍdia em nÍvel de quadro com tabela de informaÇÕes de quadro

Country Status (9)

Country Link
US (1) US8358704B2 (pt)
EP (1) EP2080384A2 (pt)
JP (3) JP2009537081A (pt)
KR (1) KR100983169B1 (pt)
CN (1) CN101690239B (pt)
BR (1) BRPI0709888A2 (pt)
CA (1) CA2645014A1 (pt)
RU (1) RU2008143381A (pt)
WO (1) WO2008063687A2 (pt)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060062312A1 (en) * 2004-09-22 2006-03-23 Yen-Chi Lee Video demultiplexer and decoder with efficient data recovery
JP4971660B2 (ja) * 2005-03-31 2012-07-11 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム、記憶媒体
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
US20070230356A1 (en) * 2006-04-04 2007-10-04 Kalantri Sacchindrakumar G Method and apparatus for enabling FLO device certification
EP1855436A1 (en) * 2006-05-12 2007-11-14 Deutsche Thomson-Brandt Gmbh Method and apparatus for encrypting encoded audio signal
FR2906433B1 (fr) * 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
KR100862662B1 (ko) 2006-11-28 2008-10-10 삼성전자주식회사 프레임 오류 은닉 방법 및 장치, 이를 이용한 오디오 신호복호화 방법 및 장치
US9888817B2 (en) 2014-12-17 2018-02-13 Omachron Intellectual Property Inc. Surface cleaning apparatus
US7969929B2 (en) * 2007-05-15 2011-06-28 Broadway Corporation Transporting GSM packets over a discontinuous IP based network
US20080298468A1 (en) * 2007-06-04 2008-12-04 Mediaphy Corporation Error tagging for decoder
JP4469879B2 (ja) * 2007-08-07 2010-06-02 株式会社東芝 半導体メモリ蓄積装置とその素材管理方法
FR2921529B1 (fr) * 2007-09-21 2009-11-13 Alcatel Lucent Procede de transmission de donnees depuis une infrastructure d'un reseau de radiocommunication vers des equipements utilisateur, et equipements pour la mise en oeuvre du procede
KR100958257B1 (ko) * 2007-11-05 2010-05-17 한국전자통신연구원 특정 장소에서의 선택적 방송 채널 시청 방법 및 시스템
US20090124250A1 (en) * 2007-11-14 2009-05-14 Topaltzas Dimitrios M System and Method for Testing Mobile Telephone Devices using a Plurality of Communication Protocols
US8566108B2 (en) * 2007-12-03 2013-10-22 Nokia Corporation Synchronization of multiple real-time transport protocol sessions
US9210480B2 (en) * 2007-12-20 2015-12-08 Broadcom Corporation Video processing system with layered video coding and methods for use therewith
JP5284652B2 (ja) * 2008-01-30 2013-09-11 京セラ株式会社 データ処理装置及びデータ処理方法並びに電子機器
US9357233B2 (en) 2008-02-26 2016-05-31 Qualcomm Incorporated Video decoder error handling
US8902996B2 (en) 2008-02-26 2014-12-02 Richwave Technology Corp. Adaptive wireless video transmission systems and methods
US20100080143A1 (en) * 2008-09-30 2010-04-01 Topaltzas Dimitrios M System and Method for Testing Mobile Telephone Data Services
JP4600574B2 (ja) * 2009-01-07 2010-12-15 日本電気株式会社 動画像復号装置、動画像復号方法、及びプログラム
US20120121014A1 (en) * 2009-03-04 2012-05-17 Thomas Rusert Processing of Multimedia Data
US20100269142A1 (en) * 2009-04-16 2010-10-21 Nec Laboratories America, Inc. Utility optimization for scalable video multicast in wireless systems
US8064900B2 (en) * 2009-06-17 2011-11-22 Metrico Wireless, Inc. System, method and device for testing mobile telephone call performance
US9578325B2 (en) * 2010-01-13 2017-02-21 Texas Instruments Incorporated Drift reduction for quality scalable video coding
CN101964188B (zh) * 2010-04-09 2012-09-05 华为技术有限公司 语音信号编码、解码方法、装置及编解码系统
EP2571258B1 (en) * 2010-05-10 2018-04-04 LG Electronics Inc. Apparatus for transmitting a broadcast signal, apparatus for receiving a broadcast signal, and method for transmitting/receiving a broadcast signal using an apparatus for transmitting/receiving a broadcast signal
CA2743738A1 (en) 2010-06-18 2011-12-18 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Multilayer decoding using persistent bits
US20120033620A1 (en) * 2010-08-03 2012-02-09 Nxp B.V. Synchronization for data transfers between physical layers
KR101443061B1 (ko) * 2010-11-12 2014-09-26 한국전자통신연구원 패킷 손실에 강인한 애드혹 멀티미디어 그룹통신 단말 및 그 동작방법
JP4929393B1 (ja) * 2010-11-19 2012-05-09 株式会社東芝 受信装置、受信方法および受信プログラム
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
US9843844B2 (en) * 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
TWI528793B (zh) * 2011-10-14 2016-04-01 立積電子股份有限公司 用以提供數位視訊內容錯誤復原的方法
KR101978811B1 (ko) * 2012-01-02 2019-08-29 삼성전자주식회사 계층 변조 및 복조 장치 및 이의 방법
WO2014003787A1 (en) * 2012-06-29 2014-01-03 Hewlett-Packard Development Company, L.P. Routing packet from edge device to home network or from home network to remote access network
US9602827B2 (en) * 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US9319684B2 (en) 2012-08-21 2016-04-19 Qualcomm Incorporated Alternative transform in scalable video coding
US10194158B2 (en) 2012-09-04 2019-01-29 Qualcomm Incorporated Transform basis adjustment in scalable video coding
KR102059084B1 (ko) * 2012-10-18 2019-12-24 브이아이디 스케일, 인크. 모바일 멀티미디어 스트리밍에 대한 디코딩 복잡도
ES2603827T3 (es) * 2013-02-05 2017-03-01 Telefonaktiebolaget L M Ericsson (Publ) Método y aparato para controlar la ocultación de pérdida de trama de audio
US9530452B2 (en) * 2013-02-05 2016-12-27 Alc Holdings, Inc. Video preview creation with link
US9467700B2 (en) 2013-04-08 2016-10-11 Qualcomm Incorporated Non-entropy encoded representation format
KR20140122835A (ko) * 2013-04-11 2014-10-21 삼성전자주식회사 프로세스 병렬 처리 장치 및 방법
JP6605789B2 (ja) * 2013-06-18 2019-11-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 送信方法、受信方法、送信装置、および、受信装置
US20150009289A1 (en) * 2013-07-08 2015-01-08 Electronics And Telecommunications Research Institute Method and apparatus for providing three-dimensional (3d) video
US20150055527A1 (en) * 2013-08-26 2015-02-26 Qualcomm Incorporated Devices and methods for facilitating power savings by optimized data block decodes in wireless communications systems
US9412024B2 (en) * 2013-09-13 2016-08-09 Interra Systems, Inc. Visual descriptors based video quality assessment using outlier model
US9930250B2 (en) * 2013-09-15 2018-03-27 Mediatek Inc. Method and apparatus for performing image processing operation based on frame/algorithm selection
EP3130097A1 (de) * 2014-04-09 2017-02-15 Hirschmann Automation and Control GmbH Verfahren für ein redundantes übertragungssystem mit prp und mehrfachem datenpaketversand
WO2016031589A1 (ja) * 2014-08-29 2016-03-03 ソニー株式会社 受信装置、及び、受信方法
CN112468846B (zh) * 2014-12-05 2023-06-02 Lg 电子株式会社 广播信号发送方法和装置以及广播信号接收方法和装置
US9860537B2 (en) * 2014-12-16 2018-01-02 Intel Corporation Multi-focus image data compression
US11950745B2 (en) 2014-12-17 2024-04-09 Omachron Intellectual Property Inc. Surface cleaning apparatus
US11071032B2 (en) 2015-03-02 2021-07-20 Corning Optical Communications LLC Gateway coordinating multiple small cell radio access networks
US10728806B2 (en) * 2015-03-02 2020-07-28 Corning Optical Communications LLC Enhanced features for a gateway coordinating multiple small cell radio access networks
US10148510B2 (en) 2015-03-02 2018-12-04 Spidercloud Wireless, Inc. Topology discovery and management and SON orchestration
US10349313B2 (en) * 2015-03-02 2019-07-09 Corning Optical Communications LLC Enhanced features for a gateway coordinating multiple small cell radio access networks
KR102268856B1 (ko) * 2015-03-11 2021-06-24 한국전자통신연구원 미디어 데이터 송신 방법 및 장치
US10129805B2 (en) 2015-03-12 2018-11-13 Spidercloud Wireless, Inc. Hitless software upgrade for a virtualized gateway coordinating multiple small cell radio access networks
US11212539B2 (en) 2017-07-28 2021-12-28 Nvidia Corporation Efficient lossless compression of captured raw image information systems and methods
CN108777606B (zh) * 2018-05-30 2021-07-27 Tcl华星光电技术有限公司 解码方法、设备及可读存储介质
US10986339B2 (en) * 2019-02-08 2021-04-20 Tencent America LLC Method and apparatus for harmonization between transform skip mode and multiple transform selection
US11798128B2 (en) 2020-01-02 2023-10-24 Texas Instruments Incorporated Robust frame size error detection and recovery mechanism to minimize frame loss for camera input sub-systems
CN115053528A (zh) * 2020-01-02 2022-09-13 德克萨斯仪器股份有限公司 稳健的帧尺寸错误检测和恢复机制
CN117376632B (zh) * 2023-12-06 2024-02-06 中国信息通信研究院 基于智能深度合成的数据恢复方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614847B1 (en) * 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
TW398129B (en) * 1998-02-13 2000-07-11 Matsushita Electric Ind Co Ltd The Decoder and the decoding method of the same
KR100354745B1 (ko) * 1998-11-02 2002-12-18 삼성전자 주식회사 비디오코딩및디코딩방법
JP3411234B2 (ja) * 1999-04-26 2003-05-26 沖電気工業株式会社 符号化情報受信復号装置
US6621865B1 (en) * 2000-09-18 2003-09-16 Powerlayer Microsystems, Inc. Method and system for encoding and decoding moving and still pictures
CN1190916C (zh) * 2000-10-19 2005-02-23 华为技术有限公司 一种基于ip应用的抗误码编解码方法
JP3931595B2 (ja) * 2001-07-10 2007-06-20 株式会社日立製作所 データ修正装置及びデータ修正方法
WO2004047010A1 (en) 2002-11-15 2004-06-03 The Arizona Board Of Regents On Behalf Of The University Of Arizona Methods for decoding corrupt jpeg2000 codestreams
BRPI0410300A (pt) * 2003-05-16 2006-05-23 Thomson Licensing receptor unificado para sistemas de modulação em camadas e hierárquica
US20070086515A1 (en) * 2003-12-09 2007-04-19 Koninkiljke Phillips Electronics N.V. Spatial and snr scalable video coding
KR20050120491A (ko) * 2004-06-19 2005-12-22 삼성전자주식회사 멀티미디어 방송 시스템에서의 전송 에러 처리방법 및장치
KR20060005585A (ko) * 2004-07-13 2006-01-18 삼성전자주식회사 Usb를 이용한 데이터 전송 장치 및 방법
EP1772017A2 (en) 2004-07-20 2007-04-11 Qualcomm Incorporated Method and apparatus for encoder assisted-frame rate up conversion (ea-fruc) for video compression
US9055298B2 (en) * 2005-07-15 2015-06-09 Qualcomm Incorporated Video encoding method enabling highly efficient partial decoding of H.264 and other transform coded information
GB0600141D0 (en) * 2006-01-05 2006-02-15 British Broadcasting Corp Scalable coding of video signals

Also Published As

Publication number Publication date
EP2080384A2 (en) 2009-07-22
CA2645014A1 (en) 2008-05-29
JP2009537081A (ja) 2009-10-22
CN101690239A (zh) 2010-03-31
JP5507606B2 (ja) 2014-05-28
JP2012165431A (ja) 2012-08-30
WO2008063687A3 (en) 2009-10-22
JP2014042288A (ja) 2014-03-06
KR20090006163A (ko) 2009-01-14
US20070291836A1 (en) 2007-12-20
CN101690239B (zh) 2012-07-25
JP5705941B2 (ja) 2015-04-22
RU2008143381A (ru) 2010-05-10
US8358704B2 (en) 2013-01-22
KR100983169B1 (ko) 2010-09-20
WO2008063687A2 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
BRPI0709888A2 (pt) decodificaÇço multimÍdia em nÍvel de quadro com tabela de informaÇÕes de quadro
US8976858B2 (en) Error resilience using out of band directory information
KR101141086B1 (ko) 채널 전환용 시스템 및 방법
US7886201B2 (en) Decoder architecture for optimized error management in streaming multimedia
JP5341629B2 (ja) ピクチャ復号化方法
BRPI0718810A2 (pt) Sistemas e métodos para aplicativos utilizando quadros de comutação de canal
KR20080066706A (ko) 채널 스위치 프레임
EP2524502A1 (en) Method and apparatus for processing transport streams
TW200803523A (en) Frame level multimedia decoding with frame information table

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 5A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2161 DE 05/06/2012.

B15K Others concerning applications: alteration of classification

Free format text: PROCEDIMENTO AUTOMATICO DE RECLASSIFICACAO. A CLASSIFICACAO IPC ANTERIOR ERA H04N 7/64.

Ipc: H04N 21/2343 (2011.01), H04N 19/132 (2014.01), H04

Ipc: H04N 21/2343 (2011.01), H04N 19/132 (2014.01), H04