FUNDAMENTOS
[001] O uso de servidores de streaming de mídia para suportar televisão a cabo, IPTV e transmissão de vídeo sem fio apresenta muitos desafios. Por exemplo, diferentes clientes, tais como terminais “set-top” de definição padrão (SD) e alta definição (HD), computadores pessoais e PDAs e telefones celulares podem ter capacidades de tela, energia, comunicação e computacionais diferentes. Um sistema de streaming de vídeo de sucesso deve ser capaz de transmitir vídeo para esses clientes heterogêneos. A título de exemplo, no contexto da televisão a cabo e IPTV, taxas de transmissão padrão de indústria suportam tanto definição padrão e alta definição. Devido à diferença de codificação entre uma versão SD e HD de um mesmo programa, a versão HD requer tipicamente uma taxa de transmissão 4-5 vezes mais elevada e 4-5 vezes mais espaço de armazenamento no servidor. Dependendo da técnica de codificação e do comprimento do programa, taxas de transmissão típicas variam entre 2-4 Mbps para programação SD e 8-15 Mbps para taxas de transmissão de programação HD e requisitos de armazenamento de arquivos típicos variam de cerca de 0,75-1,66 GBytes / hora para SD e 3-7 GBytes / hora para HD. Em contraste, dispositivos sem fios, que normalmente suportam taxas de transmissão de interface de rede muito mais baixas e resoluções muito mais baixas, têm taxas de transmissão de cerca de 0,256-1 Mbps e requisitos de armazenamento de arquivos de 100-400 Mbytes / hora.
[002] Uma maneira de suportar uma ampla variedade de dispositivos de cliente sem manter vários arquivos de um mesmo programa em diferentes formatos é empregar técnicas de codificação escalonáveis. Codificação escalonável gera camadas múltiplas, por exemplo, uma camada de base e uma camada de reforço, para a codificação de dados de vídeo. A camada de base tem, tipicamente, uma taxa de bits mais baixa e menor resolução espacial e qualidade, enquanto a camada de reforço aumenta a resolução espacial e qualidade da camada de base, o que requer uma taxa de bits mais elevada. O fluxo de bits de camada de melhoramento é apenas decodificado em conjunto com a camada de base, ou seja, contém referências aos dados de vídeo de camada de base decodificados que são utilizados para gerar os dados de vídeo decodificados finais. Por usar codificação escalonável, um único arquivo pode ser transmitido por streaming para dispositivos de cliente com diferentes capacidades. Cada dispositivo de cliente pode decodificar apenas as camadas que ele precisa e é capaz de suportar.
[003] Codificação escalonável foi aceita para incorporar em padrões de codificação de vídeo estabelecidos. Em particular, a extensão de Codificação de Vídeo Escalonável (SVC) do padrão de codificação de vídeo (AVC) H.264/AVC caracterizam escalabilidade espacial, qualidade e temporal. Compatibilidade com dispositivos de decodificação anteriores é mantida através de uma camada de base compatível H.264/AVC, o que representa a menor qualidade de um fluxo de bits SVC. No entanto, muitas vezes é desejável também proporcionar as camadas de maior qualidade para os dispositivos H.264/AVC anteriores.
[004] Servidores de streaming de mídia podem ser usados em combinação com técnicas de multiplexação estatísticas a fim de entregar conteúdo para dispositivos de cliente. Em multiplexação estatística, vários programas cada um compreendendo um fluxo de bits de vídeo comprimido são combinados em um único fluxo de bits multiplexado, por exemplo, para transmissão em um único canal. Quando um multiplexador estatístico combina múltiplos fluxos de bit, um algoritmo pode ser utilizado para adaptar a taxa de bits de cada fluxo, mas a taxa de bits total da multiplexação de saída pode ser mantida em um valor constante. Multiplexação estatística engloba arquitetura de multiplexação tendo um caminho de mensagem inverso do multiplexador para os codificadores. Isto também é muitas vezes referido com multiplexação estatística de circuito fechado. Multiplexadores estatísticos de circuito fechado são tipicamente maiores no custo que multiplexadores estatísticos de circuito aberto, porque eles exigem codificadores de alta performance e, portanto, são normalmente utilizados apenas para transmitir fluxos de bits através de um canal que serve muitos assinantes. Multiplexadores estatísticos de circuito aberto são menos caros e, portanto, podem ser usados para transmitir fluxos de bits ao longo de um canal que serve um conjunto menor de assinantes.
[005] Embora a entrega de conteúdo utilizando ambos os fluxos SVC e multiplexação estatística possa ser muito eficaz, geralmente não é prática, porque, como mencionado acima, a maioria dos dispositivos de cliente anteriores não incorpora decodificadores SVC. Em vez disso, a maioria dos dispositivos anteriores só pode decodificar a camada de base compatível com AVC, que representa a qualidade mais baixa de um fluxo de bits SVC. No entanto, muitas vezes é desejável também proporcionar as camadas de maior qualidade para os dispositivos clientes AVC anteriores.
[006] Apesar de multiplexação estatística poder ser utilizada com fluxos AVC para entregar conteúdo, tal técnica não oferece as vantagens acima mencionadas que podem surgir da utilização de fluxos SVC. Além disso, se os multiplexadores estatísticos de circuito aberto de custo inferior são usados para fluxos AVC de multiplexação, apenas um aumento de eficiência muito limitado pode ser obtido, em parte porque fluxos AVC já são codificados relativamente eficazmente. Em particular, multiplexação estatística de circuito aberto geralmente não pode reduzir a taxa de bits de um fluxo AVC por mais do que cerca de 10% sem degradação inaceitável na qualidade de vídeo.
RESUMO
[007] Em conformidade com a presente invenção, um método e aparelho é fornecido para o processamento de uma pluralidade de fluxos de bits de camadas múltiplas. O método inclui receber uma pluralidade de fluxos de bits de camadas múltiplas tendo cada uma camada de base e pelo menos uma camada de reforço. Uma ou mais das camadas de reforço são extraídas no todo ou em parte a partir de pelo menos um dos fluxos de bits de camadas múltiplas de modo que a pluralidade de fluxos de bits de camadas múltiplas são coletivamente reduzidos na sua largura de banda total. Cada um dos fluxos de bits de camadas múltiplas, é reconfigurado para um fluxo de bits de camada única. Os fluxos de bits de camada única são multiplexados para formar um fluxo de bits de camada única multiplexado.
[008] De acordo com outro aspecto da invenção, é fornecido um aparelho para estatisticamente multiplexar e reescrever um bit escalonável. O aparelho inclui uma pluralidade de unidades de extração de taxa de bits para receber uma pluralidade de fluxos de bits de camadas múltiplas. As unidades de extração de taxa de bits são cada configurada para extrair uma ou mais camadas de reforço no todo ou em parte a partir de pelo menos um dos fluxos de bits de camadas múltiplas de modo que a pluralidade de fluxos de bits de camadas múltiplas são coletivamente reduzidos na sua largura de banda total. Uma pluralidade de camadas múltiplas para reescritores de camada única é fornecida para a conversão da pluralidade de fluxos de bits de camadas múltiplas recebidos das unidades de extração de taxa de bits para uma pluralidade de fluxos de bits de camada única. Um multiplexador é fornecido para multiplexação dos fluxos de bits de camada única de modo a formar um fluxo de bits de camada única multiplexado.
[009] De acordo com outro aspecto da invenção, é fornecido um método para processamento de uma pluralidade de fluxos de bits de camadas múltiplas. O método inclui receber uma pluralidade de fluxos de bit escalonáveis. A taxa de bit de uma ou mais dos fluxos de bits de camadas múltiplas é adaptada de modo que a pluralidade de fluxos de bit escalonáveis têm coletivamente uma taxa de bit prescrita. A pluralidade de fluxos de bit escalonáveis tendo a taxa de bits prescrita são convertidos para uma pluralidade de fluxos de bit não escalonáveis. A pluralidade de fluxos de bits não escalonáveis é multiplexada para fornecer um fluxo de bits não escalonável multiplexado.
BREVE DESCRIÇÃO DOS DESENHOS
[0010] A Figura 1 mostra um exemplo de uma arquitetura que pode ser utilizada para entregar conteúdos e serviços de vídeo e outros para os utilizadores associados com uma variedade de diferentes dispositivos de cliente.
[0011] A Figura 2 mostra um exemplo da reescritor de multiplexação estatística na Figura 1.
[0012] A Figura 3 é um diagrama de blocos funcional mostrando um exemplo de um reescritor que pode ser empregue no reescritor de multiplexação estatística da Figura 2.
[0013] A Figura 4 é um fluxograma que ilustra um exemplo de um método para processar uma pluralidade de fluxos de bits de camadas múltiplas, tais como fluxo de Codificação de Vídeo Escalonável (SVC).
DESCRIÇÃO DETALHADA
[0014] A Figura 1 mostra um exemplo de uma arquitetura 200 que pode ser usada para entregar conteúdos e serviços de vídeo e outros para os utilizadores associados com uma variedade de diferentes dispositivos de cliente, que podem incluir, sem limitação, PCs, PDAs, computadores portáteis, centros de mídia, reprodutores de mídia portáteis, telefones celulares e caixas “set-top”. Neste exemplo ilustrativo, três dispositivos de cliente são apresentados, um telefone celular 220, um terminal “set-top” 230 e um computador pessoal (PC) 240. Um terminal principal 210 está em comunicação com cada um dos dispositivos de cliente 220, 230 e 240 através da rede IP 270. Telefone celular 220 comunica com terminal principal 210 através da rede IP 270 e uma rede sem fio, tais como rede GSM ou UMTS, por exemplo. Terminal “set-top” 230 comunica com terminal principal 210 através da rede IP 270 e uma rede híbrida de fibra / coaxial (HFC) 260 e PC 240 comunica com o terminal principal 210 através da rede IP 270, normalmente através de um provedor de serviço de Internet (não mostrado). Claro que, a arquitetura representada na Figura 1 é apresentada apenas para fins ilustrativos. De modo mais geral, uma grande variedade de diferentes dispositivos de cliente pode comunicar com o terminal principal sobre outros tipos de redes, incluindo, por exemplo, toda coaxial, xDSL (por exemplo, ADSL, ADLS2, ADSL2 +, VDSL, e VDSL2) e sistemas de satélite.
[0015] O terminal principal 210 é a instalação a partir de que um operador de rede fornece conteúdo de programação e oferece outros serviços para os dispositivos de cliente. Conforme detalhado abaixo, o terminal principal 210 pode incluir um servidor de streaming 215 para transmitir o conteúdo de programação que é codificado por um codificador escalonável 212. O termo "streaming" é usado para indicar que os dados que representam o conteúdo de mídia é fornecido através de uma rede para um dispositivo de cliente e que a reprodução do conteúdo pode começar antes do conteúdo ser entregue na sua totalidade (por exemplo, fornecendo os dados em uma base conforme a necessidade, em vez de pré-entregar os dados em sua totalidade antes da reprodução).
[0016] Em um arranjo convencional, o terminal principal mantém e gerencia várias cópias de cada programa. Cada cópia contém uma versão diferente do programa que está adaptada às características de exibição dos diferentes dispositivos de cliente. Quando é utilizado um codificador escalonável 212 realizando codificação escalonável, cada dispositivo de cliente pode receber o mesmo fluxo de transporte codificado escalonável, que é entregue pelo terminal principal 210. Infelizmente, tal como mencionado anteriormente, as camadas de reforço em fluxos SVC não podem ser decodificadas pela maioria dos dispositivos de cliente anteriores. No entanto, uma forma de reter muitos dos benefícios da codificação escalonável é através da conversão dos fluxos SVC em fluxos AVC, que podem ser decodificados por uma ampla variedade de dispositivos anteriores. Antes da conversão, no entanto, os fluxos SVC podem necessitar ser adaptados para diminuir taxa de bits de fluxos SVC para que eles possam ser alojados pelo canal sobre o qual eles devem ser transportados e de modo que eles deixam quaisquer camadas de reforço, que não podem ser usadas pelos dispositivos de cliente menos capazes. Estas duas funções são executadas pelo reescritor de multiplexação estatística (SMR) 230, o qual recebe os fluxos SVC 215 de servidor de streaming. Isto é, SMR 230 executa uma função de multiplexação estatística e uma função de conversão SVC-a- AVC.
[0017] Um exemplo de SMR 230 é mostrado na Figura 2. Quanto à sua função de multiplexação estatística, o SMR 230 recebe um ou mais fluxos SVC que, individualmente, cada um tem uma taxa de bits especificada e produz um fluxo AVC multiplexados em uma taxa de bits de saída total alvo. O ARM 230 atinge a taxa de bits de saída alvo em uma forma de circuito aberto por transcodificar um ou mais dos fluxos SVC de entrada de modo que coletivamente sua taxa de bits total corresponda à taxa de bits de saída desejada. Depois de realizar sua função de multiplexação estatística, o SMR 230 converte então o fluxo SVC para um fluxo AVC em um processo que será descrito mais abaixo.
[0018] Como mostrado na Figura 2, o SMR 230 inclui uma etapa de extração 310 e uma etapa de reescrever SVC-a-AVC 320. A etapa de extração 310 inclui uma série de unidades de extração de fluxo de bits 3121, 3122, ... 312n que cada um recebe um fluxo SVC. A fase de reescrever SVC-a-AVC 320 inclui uma série reescritores SVC-a-AVC 2321, 2322, ... 232n, que recebem cada um, respectivamente, um fluxo de bits a partir de uma respectiva uma das unidades de extração de taxa de bits 3121, 3122, ... 312n. A etapa de extração 310 executa a multiplexação estatística e a fase de reescrever SVC-a-AVC realiza a conversão SVC-a-AVC. O SMR 230 também inclui um gerente de alocação de taxa de bits 340 para determinar a largura de banda a ser alocada pelas unidades de extração de taxa de bits 3121, 3122, ... 312n para os fluxos SVC e um banco de dados modelo de canal 330 que contém as informações de canal que o gerente de alocação 340 usa em sua análise. Um multiplexador 350 multiplexa os fluxos AVC recebidos a partir da fase de reescrever para fornecer um fluxo multiplexado AVC que pode ser transmitido através de um canal em uma rede.
[0019] Começando com a função de multiplexação estatística de circuito aberto do SMR 230, em um multiplexador estatístico de circuito aberto convencional transcodificação é tipicamente acompanhada por totalmente ou parcialmente decodificar o fluxo de bits de requantizá-lo para atingir uma taxa de bits mais baixa. No entanto, no SMR 230 transcodificação está sendo executada em um fluxo SVC. Como discutido anteriormente, codificação escalonável emprega uma camada de base e uma ou mais camadas de reforço. Um fluxo VCS com camadas múltiplas de reforço tendo uma taxa de bits pode ser adaptado a um fluxo SVC em uma taxa de bits inferior simplesmente por truncar camadas de reforço suficientes ou partes da mesma a partir do fluxo SVC inicial. Adaptação de um fluxo SVC pode ser conseguida pelas unidades de extração de taxa de bits na etapa de extração 310 utilizando um processo de extração para extrair a partir do fluxo SVC um subfluxo com uma taxa de bits média particular.
[0020] As unidades de extração de taxa de bits 3121, 3122, ... 312n no SMR 230 podem executar a adaptação de taxa de bits por truncar as camadas adequadas a partir do fluxo de vídeo codificado escalonável em uma variedade de maneiras diferentes. Por exemplo, as unidades de extração podem examinar um fluxo SVC de entrada para determinar os tipos de ID de pacote (PID), a localização de quadros chave, taxa de bits e outras informações pertinentes. Em particular, as unidades de extração podem distinguir entre os PIDs atribuídos aos pacotes que transportam a camada de base e os PID atribuídos aos pacotes que contêm cada camada de reforço. Desta forma, quando o SMR 230 está entregando conteúdo para um ou mais dispositivos de cliente em particular, ele pode deixar todos os pacotes que têm um PID atribuído a uma camada de reforço que não é necessária para o dispositivo de cliente ou pode deixar pacotes para atingir uma taxa de bits mais baixa para acomodar as diferentes condições de rede, tais como as limitações de largura de banda do canal no qual o fluxo é transportado.
[0021] Em outras implementações as unidades de extração de taxa de bits 3121, 3122, ... 312n podem extrair as unidades de Camada de Abstração de Rede Individual (NAL) a partir dos fluxos SVC, que são as unidades elementares em que os dados codificados são organizados. Por exemplo, a taxa de bit do fluxo SCV pode ser ajustada por descartar unidades NAL de refinamento de qualidade diferentes. Em um exemplo, um identificador de prioridade é atribuído a cada unidade NAL de fatia codificada pelo codificador. A sintaxe SVC oferece diferentes meios para a inclusão de tais informações em um fluxo de bits. Durante o processo de extração, unidades NAL de fatia codificadas com a prioridade mais baixa são descartadas, e se a taxa de bits alvo não é atingida, unidades NAL de fatia codificadas da próxima classe de prioridade são descartadas, e assim por diante, até que a taxa de bits alvo seja atingida. Detalhes adicionais relativos a esta técnica podem ser encontrados em I. Amonou et al. "Extração de distorção de taxa otimizada com camadas de qualidade", IEEE Trans. Circuits Syst. Video Technol., Vol. 17, n. 9, pp 1 186-1193, setembro de 2007.
[0022] A taxa de bits alocada para cada fluxo que é recebido pelas unidades de extração 3121, 3122, ... 312n é determinada por dados contidos no banco de dados de modelo de canal 330. Esta informação permite as capacidades e necessidades de cada canal que é recebido pelos dispositivos de cliente serem estimadas. Por exemplo, o banco de dados de modelo de canal pode incluir informações que especificam o número de fluxos que cada canal pode suportar, sua taxa máxima de bits, se os fluxos são “multicast” ou “unicast”, se correção de erro antecipada (FEC) é usada, se a programação nos fluxos é conteúdo ágil ou não ágil e se é conteúdo ao vivo ou vídeo sob demanda, e assim por diante.
[0023] Os dados de modelo de canal são enviados para o gerente de alocação de taxa de bit 340. O gerente de alocação 340 analisa esses dados para determinar uma alocação adequada de bits que cada unidade de extração deve atribuir aos fluxos SVC. O gerente de alocação 340 envia informações sobre a taxa de bits alocada para cada uma das unidades de extração. As unidades de extração por sua vez ajustam a taxa de bits dos fluxos de bits que estão recebendo em conformidade com a atribuição determinada pelo gerente de alocação 340. O gerente de alocação de taxa de bits 340 pode alocar bits para cada fluxo em qualquer maneira apropriada. Em uma implementação, o gerente 340 aloca apenas bits suficientes para cada fluxo de modo que a qualidade de vídeo perceptual é a mesmo para todos os fluxos. Isso pressupõe que todos os fluxos têm a mesma prioridade, o que obviamente pode não ser sempre o caso. O modelo de canal geralmente especifica a prioridade de cada fluxo. No caso em que certos fluxos têm uma prioridade mais elevada, como pode ser o caso para os canais ágeis, por exemplo, então esses canais tendem a ter uma melhor qualidade do que os canais de prioridade mais baixa.
[0024] O modelo a seguir pode ser utilizado quando todos os fluxos têm prioridades iguais ou diferentes, mesmo que tenham significativamente diferentes complexidades. Neste exemplo, a taxa de bits alocada para fluxo i, Bi, pode ser determinada como segue:
onde Bi = a taxa de bits alocada para transmitir i. BT = taxa de bits total disponível para o conjunto de fluxos 1 a N. pi = a prioridade do fluxo i. ci = a complexidade do fluxo i.
[0025] Como mencionado anteriormente, a prioridade do fluxo pode ser de dados fornecidos pelo modelo de canal.
[0026] A complexidade do fluxo pode ser transmitida pelo codificador de fonte como metadados. Também pode ser calculada internamente pelo modelo de alocação de taxa de bits que é empregue. A complexidade é uma medida do número de bits necessários para alcançar um determinado nível de qualidade perceptual. Uma maneira de medir a complexidade consiste em medir o número de bits necessários para o conteúdo de código em um nível de quantização predeterminado e constante. Outra forma de medir a complexidade é medir os valores de quantização médios de fluxo, e medir o número médio de bits utilizados no fluxo, e inserir estes valores para uma tabela de pesquisa predeterminada que mapeia o valor de quantização e o número de bits para um valor complexidade. Este último método pode ser parte do modelo de alocação de taxa de bits.
[0027] Depois das unidades de extração terem realizado adaptação de taxa de bits, tal como descrito acima, o reescritores SVC-AVC 320 executam um processo de conversão para converter eficientemente fluxos SVC a fluxos AVC. Este processo de conversão pode ser obtido por um processo que é referido como reescrever fluxo de bits. Reescrever fluxo de bits aproveita as semelhanças entre os codecs SVC e AVC, portanto, não é necessário a transcodificação completa do fluxo de bits.
[0028] A Figura 3 é um diagrama de blocos funcional mostrando um exemplo de um reescritor que pode ser empregue como os reescritores 2321, 2322, ... 232n da Figura 2. Evidentemente, este exemplo é apresentado com fins ilustrativos e de modo mais geral outras técnicas de reescrita podem ser usadas também. Nesta implementação a camada de base 101 e a camada de reforço 103 são recebidas no reescritor SVC-AVC 100. Os dados de camada de base podem ser quantificados inversos 105 e os coeficientes de transformada podem ser escalonadas 106 para coincidir uma característica da camada de reforço. Em algumas modalidades, a característica correspondida pode compreender uma característica de parâmetro de quantização. A camada de reforço 103 também pode ser quantizada inversa 111 e acrescentada 107 para os coeficientes residuais de base escalonada para criar coeficientes combinados. Estes coeficientes combinados podem então ser analisados para determinar 150 se coeficientes de transformada diferentes de zero estão presentes. Se os coeficientes de transformada diferentes de zero estiverem presentes, um parâmetro de quantificação sinalizado no fluxo de bit pode ser usado para processar l52 essa porção da imagem. Se não há coeficientes de transformada diferentes de zero, um parâmetro de quantificação de uma porção da imagem anterior ou última 151 pode ser usado para processar essa porção da imagem.
[0029] Em algumas modalidades, os coeficientes combinados são então transformados inversos 110 para produzir valores de intensidade de domínio espacial. Em algumas modalidades, a informação de camada de base pode ser ignorada quando ela não é necessária. Os valores de intensidade de domínio espacial podem então ser filtrados 112 para remover artefatos de bloqueio ou por outras razões. Esta filtragem pode utilizar ou estar dependente do parâmetro de quantificação selecionado 151, 152, com referência aos coeficientes de transformada diferentes de zero.
[0030] Detalhes adicionais sobre reescrever SVC-AVC podem ser encontrados no manual de Software JSVM (Modelo de Vídeo Escalonável Conjunto), versão JSVM 9.19.9, que é o software de referência para o projeto Codificação de Vídeo Escalonável (SVC) da Equipe de Vídeo Conjunta (JVT) do Grupo de Especialistas de Imagens de Movimento ISO / IEC (MPEG) e o Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG).
[0031] Nos exemplos acima apresentados o reescritor de multiplexação estatística foi descrito como estando localizado no terminal principal de um operador de rede que entrega conteúdo de programação. De modo mais geral, deve notar-se que o reescritor de multiplexação estatística pode estar localizado em qualquer lugar ao longo da rede. Por exemplo, o reescritor de multiplexação estatística pode estar localizado perto da borda de uma rede ou até mesmo nas instalações de cliente. Deste modo, o operador de rede pode armazenar e fornecer uma versão mestre do conteúdo para o local em que a sua taxa de bits tem de ser adaptada por causa de diferentes capacidades de largura de banda limitadas e capacidades de dispositivo de cliente. Por exemplo, nas instalações de cliente, que podem ser limitadas a uma largura de banda de, por exemplo, 20Mbit/sec, a taxa de bits do conteúdo pode ser ajustada dependendo do número de diferentes programas simultaneamente sendo renderizados em diversos monitores. Assim, uma maior taxa de bits pode ser atribuída a um programa quando ele é o único programa que está sendo renderizado enquanto s taxas de bits mais baixas podem ser alocadas a cada programa quando dois ou mais programas estão sendo renderizados.
[0032] Como outro exemplo, um operador de cabo local que serve alguns milhares de clientes pode usar o reescritor de multiplexação estatística dentro de seu circuito local para entregar conteúdo. Em todos estes exemplos, o reescritor de multiplexação estatística pode ser utilizado de uma forma rentável, apesar do relativamente pequeno número de clientes envolvido uma vez que o reescritor de multiplexação estatística usa multiplexação estatística de circuito aberto e, portanto, é significativamente menos dispendioso para implementar do que um dispositivo de multiplexação de circuito fechado.
[0033] Nos exemplos apresentados acima o reescritor de multiplexação estatística recebe fluxos de bits que estão em conformidade com o padrão SVC e gera um fluxo de bits multiplexado em conformidade com o padrão AVC. No entanto, os métodos e técnicas descritos aqui são igualmente aplicáveis a outros padrões escalonáveis e não escalonáveis. Assim, de modo mais geral, o reescritor de multiplexação estatística pode receber dois ou mais fluxos de camadas múltiplas e retornar um fluxo de camada única multiplexado.
[0034] A Figura 4 é um fluxograma que ilustra um exemplo de um método para processar uma pluralidade de fluxos de bits de camadas múltiplas. O método começa no passo 410 quando uma pluralidade de fluxos de bits de camadas múltiplas é recebida. Cada fluxo de bits de múltiplas tem uma camada de base e pelo menos uma camada de reforço. Na etapa 420, uma taxa de bits a ser alocada a cada um dos fluxos é determinada. Esta determinação pode ser feita com qualquer base apropriada, tal como examinando, por exemplo, um ou parâmetros cujos valores podem ser armazenados em umo banco de dados de modelo de canal. Uma ou mais das camadas de reforço é extraída, no todo ou em parte, a partir de pelo menos um dos fluxos de bits de camadas múltiplas no passo 430 de modo que as taxas de bits dos fluxos de bits de camadas múltiplas são adaptadas em conformidade com a taxa de alocação de bits que foi feita. Em seguida, no passo 440, cada um dos fluxos de bits de camadas múltiplas é submetido a um processo de reescrever a um fluxo de bits de camada única. Os fluxos de bits de camada única são multiplexados em passo 450, para formar um fluxo de bits de camada única multiplexado, que posteriormente pode ser comunicado através de um canal de rede.
[0035] Tal como utilizado neste pedido, os termos "componente", “módulo", "unidade", "sistema", "aparelho", "interface", ou semelhantes, geralmente destinam-se a referir a uma entidade relacionada com computador, ou hardware, uma combinação de hardware e software, software, ou software em execução. Por exemplo, um componente pode ser, mas não está limitado a ser, um processo executado em um processador, um processador, um objeto, um executável, uma rotina de execução, um programa, e / ou em um computador. A título de ilustração, tanto um aplicativo em execução em um controlador e o controlador podem ser um componente. Um ou mais componentes podem residir dentro de um processo e / ou rotina de execução e um componente pode ser localizado em um computador e / ou distribuído entre dois ou mais computadores.
[0036] Além disso, a matéria reivindicada pode ser implementada como método, dispositivo ou artigo de manufatura utilizando programação padrão e / ou técnicas de engenharia para produzir software, firmware, hardware, ou qualquer combinação dos mesmos para controlar um computador para implementar o divulgado assunto. O termo "artigo de manufatura", como aqui utilizado se destina a abranger um programa de computador acessível a partir de qualquer dispositivo, portadora ou mídia legível por computador. Por exemplo, meios de armazenamento legíveis por computador podem incluir, mas não estão limitados a, dispositivos de armazenamento magnéticos (por exemplo, disco rígido, disco flexível, tiras magnéticas ...), discos ópticos (por exemplo, disco compacto (CD), Disco Versátil Digital (DVD) ...), cartões inteligentes e dispositivos de memória flash (por exemplo, cartão, haste, unidade de chave ...). Claro que, os peritos na arte reconhecerão que muitas modificações podem ser feitas a esta configuração sem sair do âmbito ou espírito da matéria reivindicada.
[0037] Embora tenha sido descrita especificamente, ao longo de toda a divulgação instantânea, modalidades representativas do presente invento têm utilidade sobre uma ampla gama de aplicações, e a discussão acima não pretende e não deve ser interpretada de forma a ser limitativa, mas é oferecida como uma discussão ilustrativa de aspectos da invenção.
[0038] O que foi descrito e ilustrado aqui são modalidades da invenção, juntamente com algumas das suas variações. Os termos, descrições e figuras usados aqui são estabelecidos por meio de ilustração apenas e não são entendidos como limitações. Os peritos na arte reconhecerão que são possíveis muitas variações dentro do espírito e âmbito da invenção, em que a invenção se destina a ser definido pelas seguintes reivindicações e seus equivalentes - em que todos os termos são significados no seu sentido mais amplo razoável a menos que de outra forma indicado.