BRPI0714235A2 - tÉcnicas para codificaÇço e decodificaÇço de resoluÇço variavÉl de vÍdeo digital - Google Patents

tÉcnicas para codificaÇço e decodificaÇço de resoluÇço variavÉl de vÍdeo digital Download PDF

Info

Publication number
BRPI0714235A2
BRPI0714235A2 BRPI0714235-8A BRPI0714235A BRPI0714235A2 BR PI0714235 A2 BRPI0714235 A2 BR PI0714235A2 BR PI0714235 A BRPI0714235 A BR PI0714235A BR PI0714235 A2 BRPI0714235 A2 BR PI0714235A2
Authority
BR
Brazil
Prior art keywords
video
level
layer
enhancement layer
resolution
Prior art date
Application number
BRPI0714235-8A
Other languages
English (en)
Inventor
Warren V Barkley
Philip A Chou
Regis J Crinon
Tim Moore
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0714235A2 publication Critical patent/BRPI0714235A2/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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • 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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/234327Processing 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 decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/234345Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/234363Processing 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 spatial resolution, e.g. for clients with a lower screen resolution
    • 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
    • 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/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption

Landscapes

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

Abstract

TÉCNICAS PARA COSIFICAÇçO E DECODIFICAÇçO DE RESOLUÇçO VARIÁVEL DE VÍDEO DIGITAL.São descritas técnicas para a codificação e decodificação de resolução variável de vídeo digital.Um aparelho pode compreender um codificador de vídeo para codificar informações de vídeo em um fluxo de vídeo com uma camada base e uma camada de aperfeiçoamento.A camada base pode ter um primeiro nível de resolução espacial e um primeiro nível de resolução temporal.A camada de aperfeiçoamento pode aumentar o primeiro nível de resolução espacial ou o primeiro nível e resolução temporal.Outras concretizaçõestambém são descritas e reivindicadas.

Description

"TÉCNICAS PARA CODIFICAÇÃO E DECODIFICAÇÃO DE RESOLUÇÃO VARIÁ- VEL DE VÍDEO DIGITAL"
ANTECEDENTES DA INVENÇÃO
Vídeos digitais consumem grandes quantidades de capacidade de armazenamento e de transmissão. Uma seqüência típica de vídeo digital bruto inclui 15, 30 ou até mesmo 60 quadros por segundo (quadro/s). Cada quadro pode incluir centenas de milhares de pixels. Cada pixel ou "pel" (elemento de imagem) representa um elemento minúsculo da imagem. Na forma bruta, um computador geralmente representa um pixel com 24 bits, por exemplo. Sendo assim, uma taxa de bits ou número de bits por segundo de uma seqüência típica de vídeo digital bruto pode ser da ordem de 5 milhões de bits por segundo (bits/s) ou mais.
A maioria dos dispositivos de processamento de mídia e redes de comunicação ca- rece de recursos para o processamento de vídeos digitais brutos. Por esse motivo, os enge- nheiros utilizam a compactação (também conhecida como compressão ou codificação) para reduzir a taxa de bits dos vídeos digitais. A descompactação (ou decodificação) reverte a compactação.
Geralmente, há decisões de design a serem feitas ao selecionar um tipo específico de compactação de vídeo para um determinado dispositivo de processamento e/ou rede de comunicação. Por exemplo, a compactação pode ser sem perdas, quando a qualidade do vídeo continuar alta ao custo de uma maior taxa de bits, ou com perdas, quando a qualidade do vídeo é reduzida, o que, por outro lado, diminui consideravelmente a taxa de bits. A maio- ria dos projetos de sistema tenta chegar a um meio-termo entre a qualidade e a taxa de bits com base em um determinado conjunto de restrições estruturais e requisitos de desempe- nho. Como conseqüência, uma certa técnica de compactação de vídeo geralmente não é adequada a diferentes tipos de dispositivos de compactação de mídia e/ou redes de comu- nicação.
SUMÁRIO
A intenção deste Sumário é a de apresentar, de maneira simplificada, uma seleção de conceitos que são descritos em detalhes a seguir na Descrição Detalhada. O presente Sumário não tem a intenção de identificar aspectos cruciais ou essenciais da matéria reivin- dicada e não deve ser usado para limitar o âmbito da matéria reivindicada.
Várias concretizações costumam estão em geral voltadas à codificação, à decodifi- cação e ao processamento digital de conteúdos de mídia digital, tais como vídeos, imagens, figuras e assim por diante. Em certas concretizações, a codificação, a decodificação e o pro- cessamento digital de conteúdos de mídia digital podem ser baseados na série de codecs de vídeo do padrão 421M ("VC-1") da Sociedade dos Engenheiros de Cinema e Televisão (SMPTE - Society of Motion Picture and Television Engineers) de padrões e variantes. Mais particularmente, algumas concretizações estão voltadas a várias técnicas de codificação e decodificação de resolução de vídeo e a como tais técnicas são possíveis no fluxo de bits VC-1 sem gerar incompatibilidade com versões anteriores. Em uma concretização, por e- xemplo, um aparelho pode incluir um codificador de vídeo configurado para compactar ou codificar informações de vídeo digital em um fluxo de vídeo ou fluxo de bits SMPTE VC-1 aumentado. O codificador de vídeo pode codificar as informações de vídeo digital na forma de várias camadas, tal como uma camada base e uma ou mais camadas de aperfeiçoamen- to temporal e/ou espacial. A camada base pode oferecer um grau mínimo definido de reso- lução espacial e um nível base de resolução temporal. Uma ou mais camadas de aperfeiço- amento podem incluir informações de vídeo codificadas que podem ser usadas para aumen- tar o nível base de resolução espacial e/ou o nível base de resolução temporal para as in- formações de vídeo codificadas na camada base. Um decodificador de vídeo pode decodifi- car, de forma seletiva, informações de vídeo a partir da camada base e da uma ou mais ca- madas de aperfeiçoamento para reproduzir ou executar as informações de vídeo em um nível de qualidade desejado. De forma semelhante, uma Unidade de Controle Multiponto de Áudio e Vídeo (AVMCU) pode escolher encaminhar as informações de vídeo da camada base e de uma ou mais camadas de aperfeiçoamento para um participante de conferência, com base em informações como a largura de banda de rede atualmente disponível e a ca- pacidade de decodificação do destinatário. Outras concretizações são descritas e reivindi- cadas.
BREVE DESCRIÇÃO DOS DESENHOS
A FIG. 1 ilustra uma concretização para um sistema de captura e reprodução de ví- deo.
A FIG. 2 ilustra uma concretização para um sistema geral de codificação de vídeo.
A FIG. 3 ilustra uma concretização para um sistema geral de decodificação de ví- deo.
A FIG. 4 ilustra uma concretização para uma hierarquia de camadas de vídeo.
A FIG. 5 ilustra uma concretização para um primeiro fluxo de vídeo.
A FIG. 6 ilustra uma concretização para um segundo fluxo de vídeo.
A FIG. 7 ilustra uma concretização para um terceiro fluxo de vídeo.
A FIG. 8 ilustra uma concretização para um quarto fluxo de vídeo.
A FIG. 9 ilustra uma concretização para um fluxo lógico.
A FIG. 10 ilustra uma concretização para um primeiro sistema de vídeo modificado.
A FIG. 11 ilustra uma concretização para um segundo sistema de vídeo modificado.
A FIG. 12 ilustra uma concretização para um ambiente de computação.
DESCRIÇÃO DETALHADA
Vários dispositivos de processamento de mídia podem implementar um codificador e/ou decodificador de vídeo (chamados conjuntamente de "codec") para realizar um deter- minado nível de compactação para conteúdos de mídia digita, tais como vídeos digitais. Um nível selecionado de compactação pode variar dependendo de uma série de fatores, tais como o tipo da fonte do vídeo, o tipo de técnica de compactação de vídeo, a largura de ban- da ou protocolo disponível para um elo de comunicação, os recursos de processamento e memória disponíveis para um determinado dispositivo receptor, o tipo do meio de exibição usado para reproduzir o vídeo digital, e assim por diante. Uma vez implementado, um dispo- sitivo de processamento de mídia é geralmente limitado ao nível de compactação estabele- cido pelo codec de vídeo, tanto no que diz respeito a operações de codificação quanto às de decodificação. Em geral, essa solução oferece pouquíssima flexibilidade. Quando níveis de compactação diferentes são desejados, um dispositivo de processamento de mídia geral- mente implementa um codec de vídeo diferente para cada nível de compactação. Essa so- lução pode exigir o uso de vários codecs de vídeo por dispositivo de processamento de mí- dia, aumentando assim a complexidade e o custo do dispositivo de processamento de mídia.
Visando solucionar esses e outros problemas, várias concretizações podem ser di- recionadas a várias técnicas de codificação e decodificação de resolução. Um codificador de vídeo escalonável pode codificar informações de vídeo digital na forma de várias camadas de vídeo dentro de um fluxo de vídeo comum, sendo que cada camada de vídeo oferece um ou mais níveis de resolução espacial e/ou resolução temporal. O codificador de vídeo pode multiplexar informações de vídeo digital para várias camadas de vídeo, tais como uma ca- mada base e camadas de aperfeiçoamento, em um único fluxo de vídeo comum. Um decodi- ficador de vídeo pode demultiplexar ou decodificar de forma seletiva informações de vídeo a partir do fluxo de vídeo comum com o intuito de recuperar informações de vídeo da camada base e de uma ou mais camadas de aperfeiçoamento para executar ou reproduzir as infor- mações de vídeo em um nível de qualidade desejado, normalmente definido em termos de uma relação sinal-ruído (SNR) ou de outras medidas. O decodificador de vídeo pode decodi- ficar seletivamente as informações de vídeo usando vários códigos de início conforme defi- nidos para cada camada de vídeo. De forma similar, uma AVMCU pode selecionar encami- nhar a camada base e apenas um subconjunto das camadas de aperfeiçoamento para um ou mais participantes com base em informações como a largura de banda disponível e a capacidade do decodificador. A AVMCU seleciona as camadas usando códigos de início no fluxo de bits do vídeo.
Em geral, resolução espacial pode referir-se a uma medida de precisão em relação aos detalhes do espaço sendo medido. No contexto de vídeos digitais, a resolução espacial pode ser medida ou expressa pelo número de pixels em um quadro, figura ou imagem. Por exemplo, um tamanho de imagem digital de 640 χ 480 pixels eqüivale a 326.688 pixels indi- viduais. Em geral, as imagens com uma resolução espacial maior são compostas por um número de pixels maior do que aquelas com uma resolução espacial menor. A resolução espacial pode afetar, entre outras coisas, a qualidade da imagem de um quadro de vídeo, figura ou imagem.
Em geral, a resolução temporal refere-se em geral à precisão de uma medida espe- cífica com relação ao tempo. No contexto de vídeos digitais, a resolução temporal pode ser medida ou expressa por uma taxa de quadros ou número de quadros de informações de vídeo capturados por segundo, tal como 15 quadros/s, 30 quadros/s, 60 quadros/s, e assim por diante. Em geral, uma resolução temporal maior refere-se a um número de quadros/s maior em relação ao das resoluções temporais menores. A resolução temporal pode afetar, entre outras coisas, a reprodução de movimento para uma seqüência de imagens ou qua- dros de vídeo. Um fluxo de vídeo ou fluxo de bits pode referir-se a uma seqüência contínua de segmentos (por exemplo, bits ou bytes) representando informações de áudio e/ou vídeo.
Em uma concretização, por exemplo, um codificador de vídeo escalonável pode co- dificar informações de vídeo digital na forma de uma camada base e uma ou mais camadas de aperfeiçoamento temporal e/ou espacial. A camada base pode oferecer um nível mínimo ou base de resolução espacial e/ou resolução temporal para as informações de vídeo digital. As camadas de aperfeiçoamento temporal e/ou espacial podem oferecer níveis aperfeiçoa- dos e escalonados de resolução espacial de vídeo e/ou níveis de resolução temporal para as informações de vídeo digital. Vários tipos de pontos de entrada e códigos de início podem ser definidos para delinear as diferentes camadas de vídeo dentro de um fluxo de vídeo. Dessa forma, um único codificador de vídeo escalonável pode oferecer e multiplexar vários níveis de resolução espacial e/ou resolução temporal em um único fluxo de vídeo.
Em várias concretizações, uma série de decodificadores de vídeo diferentes pode decodificar, de forma seletiva, informações de vídeo digital a partir de uma determinada ca- mada de vídeo do fluxo de vídeo codificado para oferecer um nível desejado de resolução espacial e/ou resolução temporal para um determinado dispositivo de processamento de mídia. Por exemplo, um tipo de decodificador de vídeo pode ser capaz de decodificar uma camada base a partir de um fluxo de vídeo, ao passo que outro tipo de decodificador de ví- deo pode ser capaz de decodificar uma camada base e uma ou mais camadas de aperfei- çoamento a partir de um fluxo de vídeo. Um dispositivo de processamento de mídia pode combinar as informações de vídeo digital decodificadas a partir de cada camada de vídeo de várias formas para oferecer diferentes níveis de qualidade de vídeo em termos de resolução espacial e/ou resolução temporal. O dispositivo de processamento de mídia pode então re- produzir as informações de vídeo digital decodificadas no nível selecionado de resolução espacial e resolução temporal em um ou mais meios de exibição.
Um codificador e decodificador de vídeo de resolução múltiplo ou escalonável pode oferecer várias vantagens em relação aos codificadores e decodificadores de vídeo conven- cionais. Por exemplo, vários serviços de vídeo digital diferenciados ou escalonados podem ser oferecidos usando um único codificador de vídeo escalonável e um ou mais tipos de de- codificadores de vídeo. Os decodificadores de vídeo herdados podem ser capazes de deco- dificar informações de vídeo digital a partir de uma camada base de um fluxo de vídeo sem ter de necessariamente acessar as camadas de aperfeiçoamento, ao passo que os decodifi- cadores de vídeo aperfeiçoados podem ser capazes de acessar tanto uma camada base quanto uma ou mais camadas de aperfeiçoamento dentro do mesmo fluxo de vídeo. Em outro exemplo, diferentes técnicas de criptografia podem ser usadas para cada camada, controlando assim o acesso a cada camada. De modo semelhante, diferentes direitos digi- tais podem ser designados a cada camada para autorizar o acesso a cada camada. Em ain- da outro exemplo, um nível de resolução espacial e/ou temporal pode ser aumentado ou diminuído com base no tipo de fonte de vídeo, no tipo de técnica de compactação de vídeo, na largura de banda ou protocolo disponível para um elo de comunicação, nos recursos de processamento ou memória disponíveis para um determinado dispositivo receptor, no tipo de meio de exibição usado para reproduzir o vídeo digital, entre outros.
Em particular, essa implementação de resolução de codificação de vídeo variável aperfeiçoada tem a vantagem de possuir parâmetros que especificam as dimensões da re- solução de exibição dentro do fluxo de vídeo. As resoluções de codificação para uma parte do vídeo são sinalizadas no nível do ponto de entrada. Os pontos de entrada são adjacen- tes, ou contíguos, a uma ou mais ou subseqüências ou grupos de imagens da seqüência de vídeo que começa com um quadro intra-codificado (também chamado de "quadro-l") e tam- bém podem conter um ou mais quadros codificados de forma preditiva (também chamados como "quadro-P" ou "quadro-B") que são codificados de forma preditiva em relação ao refe- rido quadro intra-codificado. Dessa forma, a resolução de codificação sinalizada em um de- terminado ponto de entrada aplica-se a um grupo de imagens que inclui um quadro-l na ca- mada base e os quadros-P ou quadros-B que fazem referência ao quadro-l.
A descrição a seguir refere-se a implementações de uma técnica de resolução de codificação variável aperfeiçoada que permite que partes de uma seqüência de vídeo sejam codificadas de forma variável em diferentes resoluções. Uma aplicação exemplificativa des- sa técnica encontra-se em um sistema de codec de vídeo. Sendo assim, a técnica de reso- lução de codificação variável é descrita no contexto de um codificador/decodificador de ví- deo exemplificativo utilizando uma sintaxe de fluxo de bits codificado. Em particular, uma implementação descrita da técnica de resolução de codificação variável aperfeiçoada encon- tra-se em um codec de vídeo em conformidade com o perfil avançado da série de codec de vídeo 421M (VC1) do padrão SMPTE de padrões e variantes. Como alternativa, a técnica pode ser incorporada em várias implementações de codec de vídeo e padrões que podem variar em detalhes em relação ao codec de vídeo e à sintaxe exemplificativa descrita abaixo.
A FIG. 1 ilustra uma implementação para um sistema de captura e reprodução de vídeo 100. A FIG. 1 ilustra o sistema de captura e reprodução de vídeo 100 utilizando um codec de vídeo no qual a técnica de resolução de codificação variável é implementada em uma aplicação ou situação de uso típica. Em geral, o sistema de captura e reprodução de vídeo 100 inclui uma fonte de vídeo/codificador 120 que captura e codifica o conteúdo de vídeo proveniente de uma fonte de vídeo digital de entrada 110 em um fluxo de bits de vídeo compactado em um canal de comunicação 140, assim como inclui um reprodutor de ví- deo/decodificador 150 que recebe e decodifica o vídeo proveniente do canal e exibe o vídeo em um meio de exibição de vídeo 170. Alguns exemplos de tais sistemas em que o codec de vídeo com resolução de codificação variável descrito abaixo pode ser implementado in- cluem sistemas em que as etapas de captura, decodificação e reprodução de vídeo são to- das realizadas em uma só máquina, bem como sistemas em que tais operações são reali- zadas em máquinas separadas, geograficamente distantes. Por exemplo, um gravador de vídeo digital ou um computador pessoal com uma placa sintonizadora de TV pode capturar um sinal de vídeo e codificar o vídeo no disco rígido, bem como ler novamente, decodificar e exibir o vídeo em um monitor a partir do disco rígido. Como outro exemplo, um produtor co- mercial ou difusor de vídeo pode usar um sistema de masteirização de vídeo incorporando o codificador de vídeo para produzir uma transmissão de vídeo (por exemplo, um canal de satélite digital ou fluxo de vídeo via Rede (Web)) ou um dispositivo de armazenamento (por exemplo, uma fita ou disco) com o vídeo codificado, que é então usado para distribuir o ví- deo aos aparelhos de decodificação e reprodução dos usuários (como computadores pes- soais, reprodutores de vídeo, receptores de vídeo etc.).
No sistema 100 ilustrado, uma fonte de vídeo/codificador 120 inclui um pré- processador da fonte 122, um codificador de compactação da fonte 124, um multiplexador 126 e um codificador de canal 128. O pré-processador 122 recebe o vídeo digital não- compactado de uma fonte de vídeo digital 110, tal como uma câmera de vídeo, captura de televisão analógica ou outra fonte, e processa o vídeo para transmiti-lo ao codificador de compactação 124. O codificador de compactação 124, um exemplo do qual é o codificador de vídeo 200 conforme descrito com referência à FIG. 2, realiza a compactação e a codifica- ção do vídeo. O multiplexador 126 divide o vídeo em pacotes e distribui o fluxo de bits de vídeo compactado resultante ao codificador de canal 128 para codificá-lo no canal de comu- nicação 140. O canal de comunicação 140 pode ser uma transmissão de vídeo, tal como uma difusão de televisão digital, transmissão via satélite ou pelo ar; ou uma transmissão por cabo, telefone ou outra transmissão por fio, entre outras. O canal de comunicação 140 tam- bém pode ser mídia de vídeo gravada, tais como um disco rígido de computador ou outro disco de armazenamento; fita, disco óptico (DVD) ou outro meio gravado removível. O codi- ficador de canal 128 codifica o fluxo de bits de vídeo compactado em um recipiente de ar- quivos, sinal portador de transmissão ou similar. No reprodutor de vídeo/decodificador 150, um decodificador de canal 152 decodifi- ca o fluxo de bits de vídeo compactado no canal de comunicação 140. Um demultiplexador 154 demuliplexa e distribui o fluxo de bits do vídeo compactado proveniente do decodifica- dor de canal a um decodificador de compactação 156, sendo um exemplo deste o decodifi- cador de vídeo 300 conforme descrito com referência à FIG. 3. Em seguida, o decodificador de compactação decodifica e reconstrói o vídeo a partir do fluxo de bits do vídeo compacta- do. Por fim, o pós-processador 158 processa o vídeo para ser exibido em um meio de exibi- ção de vídeo 170. Exemplos de operações de pós-processamento incluem o desagrupa- mento, a eliminação de zumbidos ou de outros artefatos, o remapeamento de faixas, a con- versão de cores e outras operações semelhantes.
A FIG. 2 é um diagrama de blocos de um codificador de vídeo geral 200, e a FIG. 3 é um diagrama de blocos de um decodificador de vídeo geral 300, nos quais a técnica de resolução de codificação variável pode ser incorporada. As relações ilustradas entre os mó- dulos dentro do codificador e do decodificador indicam o fluxo principal de informações no codificador e no decodificador, sendo as demais relações omitidas em prol da clareza. Em particular, as FIGS. 2 e 3 normalmente não ilustram as informações secundárias que indi- cam as configurações do codificador, modos e tabelas, entre outras coisas, conforme usa- dos para uma seqüência de vídeo, quadros, macroblocos, blocos e entre outros. Tais infor- mações secundárias são enviadas no fluxo de bits de saída, normalmente após a codifica- ção de entropia das informações secundárias. O formato do fluxo de bits de saída pode ser, por exemplo, um formato SMPTE VC-1, um formato SMPTE VC-1 adaptado para Comuni- cações em Tempo Real, um formato H.263, um formato H.264 ou outros formatos de vídeo.
Em uma concretização, por exemplo, o codificador 200 e o decodificador 300 são baseados em blocos e utilizam um formato de macrobloco 4:2:0 com cada macrobloco inclu- indo 4 blocos de luminância 8x8 de luminância (às vezes tratados como um macrobloco de 16x16) e dois blocos de crominância de 8x8 . Como alternativa, o codificador 200 e o deco- dificador 300 são baseados em objetos, utilizam um macrobloco ou formato de macrobloco diferente ou realizam operações em conjuntos de pixels de tamanhos ou configurações dife- rentes em relação aos blocos 8x8 e aos macroblocos 16x16. O macrobloco pode ser usado para representar conteúdo de vídeo progressivo ou entrelaçado.
As técnicas e ferramentas de codificação e decodificação de vídeo escalonável nas várias concretizações podem ser implementadas em um codificador e/ou decodificador de vídeo. Os codificadores e decodificadores de vídeo podem conter dentro deles diferentes módulos e os diferentes módulos podem relacionar-se e comunicar-se uns com os outros de diversas formas diferentes. Os módulos e relações descritos abaixo são meramente exem- plificativos e não implicam em limitações. Dependendo da implementação e do tipo de com- pactação desejado, módulos do codificador de vídeo ou decodificador de vídeo podem ser adicionados, omitidos, divididos em vários módulos, combinados com outros módulos e/ou substituídos por módulos semelhantes. Em concretizações alternativas, codificadores de vídeo ou decodificadores de vídeo com módulos e/ou configurações de módulos diferentes podem realizar uma ou mais das técnicas descritas.
Em geral, as técnicas de compactação de vídeo incluem a compactação intraqua- dros e a compactação interquadros. As técnicas de compactação intraquadros compactam quadros individuais, geralmente chamados de quadro-ls, quadros-chave ou quadros de refe- rência. As técnicas de compactação interquadros compactam quadros com referência a quadros anteriores e/ou posteriores e que são geralmente chamados de quadros preditos. Exemplos de quadros preditos incluem um quadro (P) Preditivo1 um quadro Superpreditivo (SP) e um quadro Bi-Preditivo ou Bi-Direcional (B). Um quadro predito é representado em termos de predição (ou diferença) compensada por movimento de um ou mais dos outros quadros. Um resíduo de predição é a diferença entre o que foi predito e o quadro original. Em contrapartida, um quadro-l ou quadro-chave é compactado sem referência a outros qua- dros.
Um codificador de vídeo geralmente recebe uma seqüência de quadros de vídeo, incluindo o quadro atual, e produz informações de vídeo compactado como dados de saída. O codificador compacta os quadros preditos e os quadros-chave. Muitos dos componentes do codificador são usados para compactar tanto quadros chave quanto quadros preditos. As operações exatas realizadas por esses componentes podem variar dependendo do tipo de informação sendo compactado.
A FIG. 2 é um diagrama de blocos de um sistema codificador de vídeo geral 200. O sistema codificador 200 recebe uma seqüência de quadros de vídeo, incluindo um quadro atual 205, e produz informações de vídeo compactado 295 como saída. Concretizações es- pecíficas dos codificadores de vídeo geralmente utilizam uma variação ou versão suplemen- tada do codificador geral 200.
O sistema codificador 200 compacta quadros preditos e quadros chave. Para uma melhor apresentação, a FIG. 2 ilustra um caminho para quadros chave através do sistema codificador 200 e um caminho para quadros preditos antecipadamente. Muitos dos compo- nentes do sistema codificador 200 são usados para compactar tanto quadros chave quanto quadros preditos. As operações exatas realizadas por esses componentes podem variar, dependendo do tipo de informação sendo compactado.
Um quadro predito (por exemplo, quadro-P, quadro-SP e quadro-B) é representado em termos de predição (ou diferença) em relação a um ou mais dos outros quadros. Um resíduo de predição é a diferença entre o que foi predito e o quadro original. Em contraparti- da, um quadro chave (por exemplo, quadro-l) é compactado sem referência a outros qua- dros. Se o quadro atual 205 for um quadro predito antecipadamente, um estimador de movimento 210 estima o movimento de macroblocos ou de outros conjuntos de pixels (por exemplo, blocos de 16x8, 8x16 ou 8x8) do quadro atual 205 com relação a um quadro de referência, que é o quadro anterior reconstruído 225 armazenado temporariamente no ar- mazenamento de quadros 220. Em concretizações alternativas, o quadro de referência é um quadro posterior ou o quadro atual é predito bidirecionalmente. O estimador de movimento 210 transmite, na forma de informações secundárias, informações de movimento 215, tais como vetores de movimento. Um compensador de movimento 230 aplica as informações de movimento 215 ao quadro anterior reconstruído 225 para formar um quadro atual de movi- mento compensado 235. No entanto, a predição raramente é perfeita e a diferença entre o quadro atual de movimento compensado 235 e o quadro atual original 205 é o resíduo de predição 245. Como alternativa, um estimador de movimento e um compensador de movi- mento aplicam outro tipo de estimação/compensação de movimento.
Um transformador de freqüência 260 converte as informações de vídeo de domínio espacial em dados de domínio de freqüência (isto é, espectrais). Para quadros de vídeo ba- seados em blocos, o transformador de freqüência 260 aplica uma transformada, descrita nas seções posteriores, que possui propriedades semelhantes à transformada discreta de cos- seno (DCT). Em algumas concretizações, o transformador de freqüência 260 aplica uma transformada de freqüência a blocos de resíduos de predição espacial para quadros chave. O transformador de freqüência 260 pode aplicar uma transformada de freqüência 8x8, 8x4, 4x8 ou de outros tamanhos.
Em seguida, um quantificador 270 quantifica os blocos de coeficientes de dados espectrais. O quantificador aplica a quantificação escalar uniforme aos dados espectrais com um tamanho de passo que varia numa base quadro-a-quadro ou em outra base. Como alternativa, o quantificador aplica outro tipo de quantificação aos coeficientes de dados es- pectrais, por exemplo, uma quantificação não-uniforme, vetorial ou não-adaptativa, ou quan- tifica diretamente os dados de domínio espacial em um sistema codificador que não utiliza transformações de freqüência. Além da quantificação adaptativa, o codificador 200 pode utilizar a retirada de quadros, a filtragem adaptativa ou outras técnicas para o controle da taxa.
Quando um quadro atual reconstruído é necessário para uma estima- ção/compensação de movimento subseqüente, um quantificador inverso 276 realiza a quan- tificação inversa nos coeficientes de dados espectrais quantificados. Em seguida, um trans- formador de freqüência inversa 266 realiza o inverso das operações do transformador de freqüência 260, produzindo um resíduo de predição reconstruído (para um quadro predito) ou um quadro chave reconstruído. Se o quadro atual 205 for um quadro chave, o quadro chave reconstruído é tido como o quadro atual reconstruído. Se o quadro atual 205 for um quadro predito, o resíduo de predição reconstruído é adicionado ao quadro atual de movi- mento compensado 235 para formar o quadro atual reconstruído. O armazenamento de quadros 220 armazena temporariamente o quadro atual reconstruído para uso na predição do próximo quadro. Em algumas concretizações, o codificador aplica um filtro de desagru- pamento de blocos ao quadro reconstruído para uniformizar adaptativamente as descontinu- idades nos blocos do quadro.
O codificador de entropia 280 compacta os dados de saída do quantificador 270, bem como certas informações secundárias (como as informações de movimento 215 e o tamanho de passo de quantificação). Técnicas típicas de codificação de entropia incluem a codificação aritmética, a codificação diferencial, a codificação de Huffman, a codificação de comprimento de seqüência, a codificação LZ, a codificação de dicionário e combinações destas. O codificador de entropia 280 geralmente utiliza diferentes técnicas de codificação para diferentes tipos de informações (por exemplo, coeficientes CC, coeficientes CA, dife- rentes tipos de informações secundárias) e pode escolher entre várias tabelas de código dentro de uma técnica de codificação específica.
O codificador de entropia 280 insere informações de vídeo compactado 295 no ar- mazenamento temporário 290. Um indicador do nível do armazenamento temporário é rea- Iimentado aos módulos adaptativos de taxa de bits. As informações de vídeo compactado 295 são retiradas do armazenamento temporário 290 a uma taxa de bits constante ou relati- vamente constante e armazenadas para transmissão contínua posterior à taxa de bits men- cionada. Como alternativa, o codificador 200 transmite em fluxo informações de vídeo com- pactado imediatamente após a compactação.
Antes ou após o armazenamento temporário 290, as informações de vídeo compac- tadas 295 podem ser codificadas no canal para transmissão pela rede. A codificação no ca- nal pode aplicar detecção de erros e dados de correção às informações de vídeo compacta- das 295.
A FIG. 3 é um diagrama de blocos de um sistema decodificador de vídeo geral 300. O sistema decodificador 300 recebe informações 395 para uma seqüência compactada de quadros de vídeo e produz a saída incluindo um quadro reconstruído 305. Concretizações específicas de decodificadores de vídeo normalmente utilizam uma variação ou versão su- plementada do decodificador geral 300.
O sistema decodificador 300 descompacta quadros preditos e quadros chave. Para uma melhor apresentação, a FIG. 3 ilustra um caminho para quadros chave através do sis- tema decodificador 300 e um caminho para quadros preditos antecipadamente. Muitos dos componentes do sistema decodificador 300 são usados para compactar tanto quadros cha- ve quanto quadros preditos. As operações exatas realizadas por esses componentes podem variar dependendo do tipo de informação sendo compactado. Um armazenamento temporário 390 recebe as informações 395 para a seqüência de vídeo compactado e disponibiliza as informações recebidas ao decodificador de entropia 380. O armazenamento temporário 390 normalmente recebe as informações a uma taxa que é bastante constante ao longo do tempo e inclui uma memória para variação de latência (jitter buffer) para suavizar as variações a curto prazo na largura de banda ou na transmis- são. O armazenamento temporário 390 pode incluir um armazenamento temporário para reprodução, bem como outros armazenamentos temporários. Como alternativa, o armaze- namento temporário 390 recebe informações a uma taxa variável. Antes ou após o armaze- namento temporário 390, as informações de vídeo compactado podem ser decodificadas no canal e processadas para detecção e correção de erros.
O decodificador de entropia 380 decodifica por entropia dados quantificados codifi- cados por entropia, bem como informações secundárias codificadas por entropia (por exem- plo, informações de movimento, tamanho de passo de quantificação), aplicando geralmente o inverso da codificação por entropia realizada no codificador. As técnicas de decodificação de entropia incluem a decodificação aritmética, a decodificação diferencial, a decodificação de Huffman, a decodificação de comprimento de seqüência, a decodificação LZ, a decodifi- cação de dicionário e combinações das decodificações acima. O decodificador de entropia 380 geralmente utiliza diferentes técnicas de decodificação para diferentes tipos de informa- ções (por exemplo, coeficientes CC, coeficientes CA, diferentes tipos de informações secun- dárias) e pode escolher entre várias tabelas de códigos dentro de uma técnica de decodifi- cação específica.
Se o quadro 305 a ser reconstruído for um quadro predito antecipadamente, um compensador de movimento 330 aplica informações de movimento 315 a um quadro de re- ferência 325 para formar uma predição 335 do quadro 305 sendo reconstruído. Por exem- plo, o compensador de movimento 330 usa um vetor de movimento de macrobloco para en- contrar um macrobloco correspondente no quadro de referência 325. A predição 335 é, por- tanto, um conjunto de blocos de vídeo de movimento compensado a partir do quadro de ví- deo previamente decodificado. Um armazenamento temporário de quadros 320 armazena quadros reconstruídos anteriores para usá-los como quadros de referência. Como alternati- va, um compensador de movimento aplica outro tipo de compensação de movimento. A pre- dição feita pelo compensador de movimento raramente é perfeita; sendo assim, o decodifi- cador 300 também reconstrói resíduos de predição.
Quando o decodificador precisa de um quadro reconstruído para uma compensa- ção de movimento subseqüente, o armazenamento de quadros 320 armazena temporaria- mente o quadro reconstruído para usar na predição do próximo quadro. Em algumas concre- tizações, o codificador aplica um filtro de desagrupamento de blocos ao quadro reconstruído para suavizar adaptativamente as descontinuidades nos blocos do quadro. Um quantificador inverso 370 quantifica de forma inversa os dados decodificados por entropia. Em geral, o quantificador inverso aplica uma quantificação inversa escalar uni- forme aos dados decodificados por entropia com um tamanho de passo que varia numa ba- se de quadro-a-quadro ou em outra base. Como alternativa, o quantificador inverso aplica outro tipo de quantização inversa aos dados, por exemplo, uma quantificação não-uniforme, vetorial ou não-adaptativa, ou aplica quantificação inversa diretamente aos dados de domí- nio espacial em um sistema codificador que não utiliza transformações de freqüência inver- sa.
Um transformador de freqüência inversa 360 converte os dados de domínio de fre- qüência quantificados em informações de vídeo de domínio espacial. Para quadros de vídeo baseados em blocos, o transformador de freqüência inversa 360 aplica uma transformada inversa descrita nas seções seguintes. Em algumas concretizações, o transformador de fre- qüência inversa 360 aplica uma transformada de freqüência inversa aos blocos de resíduos de predição espacial para quadros chave. O transformador de freqüência inversa 360 pode aplicar uma transformada de freqüência inversa 8x8, 8x4, 4x8 ou de outros tamanhos.
A técnica de resolução de codificação variável permite que o decodificador mante- nha a resolução de exibição de vídeo desejada, ao mesmo tempo em que concede ao codi- ficador a flexibilidade para optar pela codificação de alguma parte ou de algumas partes do vídeo em vários níveis de resolução codificada que podem ser diferentes da resolução de exibição. O codificador pode codificar algumas imagens da seqüência de vídeo em resolu- ções codificadas inferiores para atingir uma taxa de bits, tamanho de exibição ou qualidade de exibição codificada inferior. Quando se deseja usar a resolução de codificação inferior, o codificador filtra e reduz a qualidade de resolução da(s) imagem(ns) para a resolução inferi- or. Durante a decodificação, o decodificador decodifica, de forma seletiva, as partes do fluxo de vídeo com a menor resolução de codificação para exibição na resolução de exibição. O decodificador também pode aumentar a resolução menor do vídeo antes de exibi-lo em uma tela com grande endereçabilidade de pixels. De forma semelhante, o codificador pode codi- ficar algumas imagens da seqüência de vídeo em resoluções codificadas superiores para atingir uma taxa de bits, tamanho de exibição ou qualidade de exibição codificada superior. Caso se deseje usar a resolução de codificação superior, o filtro do codificador retém uma grande parte da resolução de vídeo original. Isso é feito geralmente pela codificação de uma camada adicional representando a diferença entre o vídeo com maior resolução e a versão da camada de menor resolução interpolada para coincidir com o tamanho do vídeo de maior resolução. Por exemplo, um vídeo original pode ter uma resolução de pixels vertical e hori- zontal de 640 e 480 pixels, respectivamente. A camada base codificada pode ter 160 χ 120 pixels. A primeira camada de aperfeiçoamento espacial pode oferecer uma resolução de 320 χ 240 pixels. Essa camada de aperfeiçoamento espacial pode ser obtida reduzindo-se a re- solução do vídeo original pelo fator 2 ao longo da resolução horizontal e vertical. Ela é codi- ficada calculando-se a diferença entre o vídeo de 320 χ 240 e a camada base de 160 χ 120 interpolada por um fator de 2, horizontal e verticalmente, para corresponder à resolução 320 χ 240 da primeira camada de aperfeiçoamento. Durante a decodificação, o decodificador decodifica, de forma seletiva, as partes do fluxo de vídeo com a resolução de codificação espacial base e a maior resolução de codificação espacial para exibição na resolução de exibição ou para fornecer um nível de detalhes maior no vídeo, independente da resolução da exibição.
Em várias concretizações, o codificador de vídeo 200 pode oferecer resoluções de codificação variáveis em uma base de quadro-a-quadro ou em outra base. Os vários níveis de resoluções de codificação podem ser organizados na forma de várias camadas de vídeo, com cada camada de vídeo oferecendo um nível diferente de resolução espacial e/ou reso- lução temporal para um dado conjunto de informações de vídeo. Por exemplo, o codificador de vídeo 200 pode ser configurado para codificar informações de vídeo em um fluxo de ví- deo com uma camada base e uma camada de aperfeiçoamento. As informações de vídeo podem compreender, por exemplo, uma ou mais seqüências de quadros, quadros, imagens, figuras, imagens fixas, blocos, macroblocos, conjuntos de pixels ou outro conjunto definido de dados de vídeo (chamados conjuntamente de "quadros"). A camada base pode ter um primeiro nível de resolução espacial e um primeiro nível de resolução temporal. A camada de aperfeiçoamento pode aumentar o primeiro nível de resolução espacial, o primeiro nível de resolução temporal ou ambos. Pode haver várias camadas de aperfeiçoamento para ofe- recer um nível desejado de granularidade ao aprimorar a resolução espacial ou a resolução temporal de um dado conjunto de informações de vídeo. As camadas de vídeo podem ser descritas em mais detalhes com referência à FIG. 4.
A FIG. 4 ilustra uma concretização exemplificativa de uma hierarquia de camadas de vídeo. A FIG. 4 ilustra uma representação hierárquica de várias camadas de vídeo inde- pendentes 400 de um vídeo digital codificado dentro de um fluxo de vídeo. Conforme ilustra a FIG. 4, as camadas de vídeo 400 podem compreender uma camada base (BL). A BL pode representar um nível base de resolução espacial e um nível base de resolução temporal (por exemplo, taxa de quadros) de um fluxo de vídeo. Em uma concretização, por exemplo, um nível base de resolução temporal pode compreender T quadros/s, onde T = 15 quadros. A codificação do vídeo é tal que a decodificação de quadros de vídeo BL subseqüentes de- pende apenas dos quadros de vídeo anteriores da mesma camada (por exemplo, um ou mais quadros P, SP ou B na camada base).
As camadas de vídeo 400 também podem compreender uma ou mais camadas a- perfeiçoadas. Por exemplo, as camadas de aperfeiçoamento podem incluir uma ou mais camadas de aperfeiçoamento espacial, como uma primeira camada de aperfeiçoamento espacial (SLO), uma segunda camada de aperfeiçoamento espacial (SL1) e uma terceira camada de aperfeiçoamento espacial (SL2). SLO representa uma camada de aperfeiçoa- mento espacial que pode ser adicionada à BL para oferecer um vídeo de resolução maior à mesma taxa de quadros que a seqüência da BL (por exemplo, 15 quadros/s). SL1 represen- ta uma camada de aperfeiçoamento espacial que pode ser adicionada à BL para oferecer um vídeo de resolução maior a uma taxa de quadros média que é maior do que a seqüência da BL. Em uma concretização, por exemplo, uma taxa de quadros média pode compreender T/2 quadros/s, onde T = 30 quadros. SL2 representa uma camada de aperfeiçoamento es- pacial que pode ser adicionada à BL para oferecer um vídeo de resolução maior a uma taxa de quadros maior que é até mesmo maior do que a seqüência da BL. Em uma concretiza- ção, por exemplo, uma taxa de quadros maior pode compreender T quadros/s, onde T = 60 quadros. Deve-se apreciar que os valores atribuídos a T são meramente exemplificativos em vez de limitações.
As camadas de aperfeiçoamento também podem incluir uma ou mais camadas de aperfeiçoamento temporais, tal como uma primeira camada de aperfeiçoamento temporal (TL1) e uma segunda camada de aperfeiçoamento temporal (TL2). TL1 representa uma ca- mada de aperfeiçoamento temporal que pode ser adicionada à BL para produzir o mesmo vídeo de resolução inferior que a BL, mas a uma taxa de quadros que é duas vezes maior do que a taxa de quadros para os quadros da BL. Como resultado, a reprodução de movi- mento é aprimorada nessa seqüência. TL2 representa uma camada de aperfeiçoamento temporal que dobra a taxa de quadros da BL e da TL1. A reprodução de movimento nesse nível é melhor do que a da BL ou da TL1.
Há muitas combinações disponíveis para usar a camada base e as camadas de aperfeiçoamento, conforme indicado pelas setas tracejadas na FIG. 4. Algumas combina- ções podem incluir, a título exemplificativo e sem implicar em limitações, as combinações a seguir:
• BL
• BL+SL0
• BL+TL1
· BL+TL1+TL2
• BL+SL0+TL1+SL1
• BL+SL0+TL1+SL1+TL2+SL2
Essas e outras combinações de camada de vídeo podem assegurar que a qualida- de do vídeo seja constante ao longo do tempo. Em alguns casos, pode-se desejar selecio- nar o mesmo número de camadas de aperfeiçoamento espacial para todas as camadas temporais de modo que a qualidade do vídeo seja constante ao longo do tempo.
Conforme descrito com mais detalhes abaixo, o codificador 200 especifica a resolu- ção máxima em um cabeçalho de seqüência dentro do fluxo de bits do vídeo compactado 295 (FIG. 2). Em comparação às informações de cabeçalho transmitidas fora do fluxo de bits, tais como as informações de cabeçalho de um formato de arquivos de recipiente, ou formato de carregador de transmissão, a codificação do nível de resolução de codificação no cabeçalho de seqüência do fluxo de bits de vídeo tem a vantagem de que a resolução má- xima pode ser decodificada diretamente pelo decodificador de vídeo. A resolução máxima não precisa ser enviada separadamente ao decodificador de vídeo pelo decodificador de arquivo de recipiente ou de carregador de transmissão (por exemplo, o decodificador de canal 152).
Além disso, o codificador 200 sinaliza que um grupo de uma ou mais imagens se-
guindo um ponto de entrada no fluxo de bits do vídeo é codificado a uma resolução inferior usando um sinalizador definido ou código de início no cabeçalho de ponto de entrada. Em algumas concretizações, se o sinalizador indicar uma resolução de codificação menor ou maior, o tamanho codificado também pode ser codificado no cabeçalho de ponto de entrada. O fluxo de bits de vídeo compactado 295 (FIG. 2) inclui informações para uma se-
qüência de quadros de vídeo progressivos compactados ou outras imagens (por exemplo, imagens de formato de campo entrelaçado ou de quadro entrelaçado). O fluxo de bits 295 é organizado em várias camadas hierárquicas que são decodificadas por um decodificador tal como o decodificador 300 da FIG. 3. A camada superior é a camada de seqüência, que tem as informações para toda a seqüência de quadros. Além disso, cada quadro de vídeo com- pactado é composto por dados que são estruturados em três camadas hierárquicas: ima- gem, macrobloco e bloco (de cima para baixo). Implementações de vídeo alternativas em- pregando a técnica de resolução de codificação variável podem utilizar outras estruturas de sintaxe contendo várias composições diferentes de elementos de sintaxe. Ademais, o fluxo de bits de vídeo compactado pode conter um ou mais pontos de
entrada. Os pontos de entrada válidos em um fluxo de bits são localizações em um fluxo de bits elementar a partir do qual um sistema de processamento de mídia pode decodificar ou processar o fluxo de bits sem a necessidade de quaisquer informações (bits) precedentes no fluxo de bits. O cabeçalho do ponto de entrada (também chamado de cabeçalho do Grupo de Imagens) normalmente contém informações de inicialização cruciais do decodificador, como as dimensões horizontal e vertical dos quadros de vídeo, os estados básicos necessá- rios do armazenamento temporário e parâmetros do quantificador, por exemplo. Os quadros que podem ser decodificador sem referência a quadros anteriores são chamados de qua- dros independentes ou chave. Um ponto de entrada é sinalizado em um fluxo de bits por um indicador de ponto de
entrada. O propósito de um indicador de ponto de entrada é o de sinalizar a presença de uma localização especial em um fluxo de bits para iniciar ou continuar a decodificação, por exemplo, quando não há dependência de campos ou quadros de vídeo decodificados previ- amente para a decodificação do quadro de vídeo imediatamente seguinte ao indicador de ponto de entrada. Os indicadores de ponto de entrada e as estruturas de ponto de entrada associadas podem ser inseridos em intervalos regulares ou irregulares em um fluxo de bits.
Portanto, um codificador pode adotar diferentes critérios para administrar a inserção de indi- cadores de ponto de entrada em um fluxo de bits. O comportamento tópico é o de inserir indicadores e estruturas de ponto de entrada em localizações de quadros regulares no fluxo de bits de vídeo, mas algumas situações (por exemplo, a recuperação de erros ou a mudan- ça rápida de canal) podem alterar a natureza periódica da inserção dos pontos de entrada.
Como exemplo, vide a Tabela 1 abaixo para a estrutura de um ponto de entrada em um flu- xo elementar de vídeo VC-1, conforme segue: TABELA 1
Fluxo de bits de camada de ponto de entrada para Perfil Avançado
ENTRYPOINT LAYER() { Número de bits Descritor BROKENJJNK 1 uimsbf CLOSED_ENTRY 1 uimsbf PANSCAN_FLAG 1 uimsbf REFDIST_FLAG 1 uimsbf LOOPFILTER 1 uimsbf FASTUVMC 1 uimsbf EXTENDED_MV 1 uimsbf DQUANT uimsbf VSTRANSFORM 1 uimsbf OVERLAP 1 uimsbf QUANTIZER 2 uimsbf if (HRD_PARAM_ FLAG == 1) { HRD FULLNESS () } CODED_SIZE_FLAG 1 uimsbf if (CODED_SIZE_FLAG== 1) { CODED_WIDTH 12 uimsbf CODEDJHEIGHT 12 uimsbf } if (EXTENDED_MV == 1){ EXTENDED_DMV 1 uimsbf } RANGE_MAPY_FLAG 1 uimsbf if (RANGE_MAPY_FLAG == 1) { RANGE_MAPY 3 uimsbf } RANGE_MAPUV_FLAG 1 uimsbf if (RANGE_MAPUV_FLAG == 1) { RANGE_MAPUV 3 uimsbf } }
Em várias concretizações, os indicadores de ponto de entrada podem ser definidos de acordo com um determinado padrão, protocolo ou arquitetura. Em alguns casos, os indi- cadores de ponto de entrada podem ser definidos para estender um determinado padrão, protocolo ou arquitetura. Nas Tabelas 1 e 2 a seguir, vários indicadores de ponto de entrada são definidos como sufixos de código de início e seus significados correspondentes ade- quados para segmentos de fluxo de bits incorporados em um fluxo de bits SMPTE 421M (VC-1). Os códigos de início devem ser unicamente identificáveis, com códigos de início diferentes para camadas de vídeo diferentes, tal como uma camada base e uma ou mais camadas de aperfeiçoamento. Os códigos de início, porém, podem usar identificadores de estrutura semelhantes entre as camadas de vídeo para tornar a análise e a identificação mais fáceis. Exemplos de identificadores de estrutura podem incluir, mas sem isto se limitar, cabeçalhos de seqüência, cabeçalhos de ponto de entrada, cabeçalhos de quadro, cabeça- Ihos de campo, cabeçalhos de fatia, entre outros. Além do mais, as técnicas de emulação de código de início podem ser utilizadas para reduzir a possibilidade de códigos de início para uma determinada camada de vídeo ocorrendo de forma aleatória no fluxo de vídeo.
Dependendo de um código de início específico, um analisador de estrutura especí- fico e decodificador para cada camada de vídeo pode ser invocado ou iniciado para decodi- ficar informações de vídeo a partir do fluxo de vídeo. O analisador e decodificador de estru- tura específico pode implementar um conjunto específico de ferramentas decodificadoras apropriadas para uma determinada camada de vídeo, tais como quadros de referência ne- cessários, quantificadores, controle de taxa, modo de compensação de movimento e simila- res. As concretizações não são limitadas neste contexto.
Em várias concretizações, os sufixos de códigos de início podem ter compatibilida- de anterior com o fluxo de bits VC-1 atual, de modo que os decodificadores VC-1 possam ser capazes de continuar funcionando mesmo que o fluxo de bits VC-1 inclua tais novos segmentos. Os sufixos dos códigos de início podem ser usados para estender e desenvolver o formato atual de um fluxo de bits de vídeo SMPTE 421M para que ele suporte a represen- tação de vídeo escalonável. TABELA 2
Sufixo do Código de início Significado 0x00 SMPTE Reservado 0x01-0x09 SMPTE Reservado OxOA Fim-de-Sequência OxOB Fatia OxOC Campo OxOD Quadro OxOE Cabeçalho de ponto de entrada OxOF Cabeçalho de Seqüência 0x10-0x1A SMPTE Reservado 0x1 B Dados do Usuário a Nível de Fatia 0x1 C Dados do Usuário a Nível de Campo 0x1 D Dados do Usuário a Nível de Quadro 0x1 E Dados do Usuário a Nível de ponto de entra- da 0x1 F Dados do Usuário a Nível de Seqüência 0x20-0x7F SMPTE Reservado 0x80-0xFF Negado
Os sufixos dos códigos de início apresentados na Tabela 2 podem ser adicionados ao término de uma seqüência de 3 bytes 0x000001 para criar vários códigos de início. Tais códigos de início são integrados no fluxo de bits VC-1 para permitir que os decodificadores de vídeo determinem que parte do fluxo de bits eles estão analisando. Por exemplo, um có- digo de início de seqüência anuncia a ocorrência de um cabeçalho de seqüência no fluxo de bits VC-1. As ocorrências de seqüências de bits parecidas com códigos de início poderiam ser eliminadas pela prevenção da emulação de código de início, que divide tais seqüências em vários segmentos de fluxo de bits que não mais emulam um código de início. Em várias concretizações, a adição de fragmentos de fluxo de bits representando
camadas de vídeo adicionais é obtida adicionando-se novos códigos de início para identifi- car e sinalizar a presença dos fragmentos de camada de aperfeiçoamento no fluxo de bits. Por exemplo, com as 2 camadas espaciais e 3 camadas temporais ilustradas na FIG. 4, é possível atribuir os seguintes sufixos para sinalizar os vários segmentos de fluxo de bits de camada relativos ao conteúdo que carregam, como mostra a Tabela 3 a seguir:
TABELA 3
Sufixo do Código de Início Significado 0x00 SMPTE Reservado 0x01-0x09 SMPTE Reservado OxOA Fim-de-Sequência OxOB Fatia OxOC Campo OxOD Quadro OxOE Cabeçalho de ponto de entrada OxOF Cabeçalho de Seqüência 0x10-0x1A SMPTE Reservado 0x1 B Dados do Usuário a Nível de Fatia 0x1 C Dados do Usuário a Nível de Campo 0x1 D Dados do Usuário a Nível de Quadro 0x1 E Dados do Usuário a Nível de ponto de en- trada 0x1 F Dados do Usuário a Nível de Seqüência 0x20 Nível de Fatia - SLO 0x21 Nível de Fatia - TL1 0x22 Nível de Fatia - SL1 0x23 Nível de Fatia -TL2 0x24 Nível de Fatia - SL2 0x30 Nível de Campo-SLO 0x31 Nível de Campo - TL1 0x32 Nível de Campo - SL1 0x33 Nível de Campo - TL2 0x34 Nível de Campo-SL2 0x40 Nível de Quadro - SLO 0x41 Nível de Quadro - TL1 0x42 Nível de Quadro-SLI 0x43 Nível de Quadro-TL2 0x44 Nível de Quadro-SL2 0x50 Nível de Ponto de Entrada - SLO 0x51 Nível de Ponto de Entrada - TL1 0x52 Nível de Ponto de Entrada - SL1 0x53 Nível de Ponto de Entrada - TL2 0x54 Nível de Ponto de Entrada - SL2 0x60 Nível de Seqüência - SLO 0x61 Nível de Seqüência - TL1 0x62 Nível de Seqüência - SL1 0x63 Nível de Seqüência - TL2 0x64 Nível de Seqüência - SL2 0x80-0xFF Negado
A inserção dos fragmentos deve seguir um conjunto de regras de escopo definidas. Por exemplo, as informações de nível de seqüência da SLO devem seguir as informações de nível de seqüência da BL e assim por diante. Isso pode ser descrito em mais detalhes com referências às FIGS. 5-8, nas quais o fluxo de bits VC-1 original é a camada BL do vídeo a título meramente exemplificativo.
A FIG. 5 é um diagrama de sintaxe para um fluxo de vídeo 500. A FIG. 5 ilustra o fluxo de vídeo 500 que representa um fluxo de bits VC-1 contendo apenas quadros de ví- deo, o que significa que o conteúdo é vídeo progressivo e não vídeo intercalado. Isso é típi- co de várias situações de comunicação em tempo real em que as fontes de vídeo produzem somente vídeos progressivos, tais como webcams e similares.
Conforme ilustra a FIG. 5, o fluxo de vídeo 500 pode compreender um primeiro blo- co contendo um código de início de seqüência e um cabeçalho de seqüência para uma se- qüência de quadros de vídeo. O segundo bloco pode conter um código de início de ponto de entrada e um cabeçalho de ponto de entrada. O terceiro bloco pode conter um código de início de quadro e um cabeçalho de quadro para um primeiro quadro de vídeo. O quarto blo- co pode conter a carga útil real do quadro. O quinto bloco pode conter um código de início de quadro e um cabeçalho de quadro para um segundo quadro de vídeo. Isso pode continu- ar para cada quadro dentro da seqüência de quadros para um determinado conjunto de con- teúdo de vídeo digital.
Para implementar a codificação de resolução múltipla usando diferentes camadas
de vídeo, um ou mais códigos de início da Tabela 2 e/ou da Tabela 3 podem ser inseridos no fluxo de vídeo 500 para indicar ou delinear um segmento de vídeo de BL e segmentos de vídeo da camada de aperfeiçoamento (por exemplo, SL0, SL1, SL2, TL1, TL2, e assim por diante). As setas inferiores ilustram o local em que os cabeçalhos de seqüência, cabeçalhos de entrada, cabeçalhos de quadro e cargas úteis adicionais em relação a outras camadas de vídeo são inseridos no fluxo de bits BL VC-1.
A FIG. 6 é um diagrama de sintaxe para um fluxo de vídeo 600. A FIG. 6 ilustra o fluxo de vídeo 600 que representa um fluxo de bits VC-1 semelhante ao fluxo de vídeo 500, exceto que cada quadro é codificado como um conjunto de fatias independentes. A codifica- ção em fatias é usada para oferecer capacidade extra de recuperação a erros em redes de comunicação em que é alta a probabilidade de perda de pacotes. Com a codificação em fatias apenas parte dos quadros de vídeo é afetada por uma perda de pacotes, em vez do quadro inteiro. Conforme ilustra a FIG. 6, vários locais dentro do fluxo de vídeo 600 para códigos de início de fatia e cabeçalhos de fatia são indicados pelas setas superiores. As setas inferiores indicam locais onde camadas de vídeo adicionais podem ser inseridas em relação aos cabeçalhos de fatia e cargas úteis de fatia.
A FIG. 7 é um diagrama de sintaxe para um fluxo de vídeo 700. A FIG. 7 ilustra o fluxo de vídeo 700 que representa um fluxo de bits VC-1 contendo vídeo entrelaçado. Neste caso, um quadro de vídeo é formado por dois campos de vídeo. Os códigos de início, cabe- çalhos e cargas úteis de vídeo das escalas em relação ao primeiro campo da BL são inseri- dos no fluxo de bits VC-1 antes do código de início e do cabeçalho do segundo campo da BL. Os códigos de início, cabeçalhos e cargas úteis de vídeo das escalas em relação ao segundo campo da BL são inseridos no fluxo de bits VC-1 antes do início do próximo quadro de vídeo.
A FIG. 8 é um diagrama de sintaxe para um fluxo de vídeo 800. A FIG. 8 ilustra o fluxo de vídeo 800 que representa um fluxo de bits VC-1 semelhante ao fluxo de vídeo 700, exceto pelo fato de que todos os quadros entrelaçados são codificados como um conjunto de fatias independentes. Os códigos de início, cabeçalhos e cargas úteis de vídeo das fatias pertencentes às camadas de vídeo adicionais são ilustrados pelas setas na parte inferior da FIG. 8. O cabeçalho de campo do segundo campo da BL delimita a BL e quaisquer dados adicionais de camada de vídeo do primeiro campo da BL e quaisquer dados adicionais de camada de vídeo do segundo campo da BL. A seguir, serão descritas operações para as concretizações acima com referência
às figuras seguintes e aos exemplos concomitantes. Algumas das figuras podem incluir um fluxo lógico. Embora tais figuras apresentadas no presente documento possam incluir um fluxo lógico específico, apreciar-se-á que o fluxo lógico fornece apenas um exemplo de co- mo a funcionalidade geral, conforme descrita no presente documento, pode ser aplicada. Ademais, o dado fluxo lógico não precisa ser necessariamente executado na ordem apre- sentada, salvo indicação em contrário. Além disso, o dado fluxo lógico pode ser implemen- tado por um elemento de hardware, um elemento de software executado por um processa- dor ou qualquer combinação desses. As concretizações não são limitadas neste contexto.
A FIG. 9 ilustra uma concretização de um fluxo decodificador lógico 900. O fluxo ló- gico 900 pode representar as operações executadas por uma ou mais concretizações des- critas no presente documento, tais como o sistema de captura e reprodução de vídeo 100, o codificador de vídeo 200 ou o decodificador de vídeo 300. Como ilustra a FIG. 9, um anali- sador para o decodificador de vídeo 300 monitora um fluxo de vídeo, buscando um código de início BL no losango 902. Se o analisador não reconhecer um código de início BL, ele continua em Ioop através do losango 902 até que um seja reconhecido. Assim que o anali- sador reconhece um código de início BL1 ele obtém o cabeçalho ou cabeçalho + carga útil associada ao código de início no bloco 904. Tendo feito isso, o analisador verifica a presen- ça de códigos de início para camadas de vídeo adicionais no losango 906. Se o analisador não reconhecer nenhum código de início para camadas de vídeo adicionais dentro de um determinado fluxo de vídeo ou período de tempo, o controle é passado ao losango 902. Se o analisador de fato reconhecer um código de início para uma camada de vídeo adicional no losango 906, ele obtém o cabeçalho ou cabeçalho + carga útil associada à camada de vídeo no bloco 908 e o controle é passado de volta ao losango 906. O ciclo de controle entre o losango 906 e o bloco 908 continua por quantas camadas de vídeo estiverem sendo usadas no dado fluxo de bits VC-1. Quando um código de início for reconhecido como não sendo mais um de uma escala de vídeo adicional no losango 906, o analisador retorna e começa a procurar por um código de início pertencente à camada base VC-1 do losango 902.
A FIG. 10 ilustra um diagrama de blocos de um primeiro sistema de captura e re- produção de vídeo 100 modificado, modificado pelo fato de a fonte de vídeo/codificador 120 incluir um módulo de criptografia 1002 e vários reprodutores de vídeo/decodificadores 150- 1-p, cada um dos quais inclui um módulo de descriptografia 1004. O módulo de criptografia 1002 pode ser usado para criptografar cada camada de vídeo de forma independente com uma chave de criptografia diferente. O módulo de criptografia 1002 pode fornecer as infor- mações de criptografia 1012 (por exemplo, chaves e cifras de descriptografia) para cada camada de vídeo. A distribuição dessas informações ou é feita em banda ou por canais de comunicação externos. Além disso, as informações de criptografia 1012 podem ser dinâmi- cas e variar ao longo do tempo para melhorar a segurança. Como ilustra a FIG. 10, as setas 1006-1 -q podem representar a camada base, as setas 1008-1 -r podem representar a cama- da de aperfeiçoamento espacial e as setas 1010-1 -s podem representar a camada de aper- feiçoamento temporal. Com base nas informações de descriptografia 1012 recebidas do módulo de criptografia 1002, o módulo de descriptografia 1004 para cada receptor é capaz (ou não) de descriptografar cada camada de vídeo. A disponibilidade das chaves de descrip- tografia está geralmente ligada a políticas de segurança ou a direitos concedidos a um ser- viço assinado/adquirido. Por exemplo, o reprodutor de vídeo/decodificador 150-2 só é capaz de receber e descriptografar a camada base e a camada de aperfeiçoamento espacial do fluxo de vídeo, ao passo que o reprodutor de vídeo/decodificador 150-1 pode decodificar somente a camada base. Qualquer tentativa por parte de um decodificador/reprodutor de vídeo 150-1-p em receber e descriptografar uma camada de vídeo não autorizada, conforme representado pelas setas tracejadas, não terá êxito. Dessa forma, a fonte de ví- deo/codificador 120 pode enviar um fluxo de vídeo de resolução inferior e um fluxo de vídeo de resolução superior ligado a diferentes pagamentos de serviços ou direitos de acesso. Por exemplo, a disponibilidade de um fluxo de vídeo de resolução superior (como uma chamada de conferência de vídeo) pode estar ligada ao pagamento de um serviço especial.
A FIG. 11 ilustra um diagrama de blocos de um segundo sistema de captura e re- produção de vídeo 100 modificado, modificado pelo fato de a fonte de vídeo/codificador 120 incluir um servidor de gerenciamento de direitos digitais (DRM) 1102 e vários reprodutores de vídeo/decodificadores 150-1-p, cada um dos quais inclui um módulo DRM 1104. O servi- dor DRM 1102 pode ser usado para atribuir, a cada camada de vídeo, um conjunto de direi- tos digitais diferente. Para implementações que incluem um roteador de conferência multi- mídia 1114, cada camada de vídeo pode ser associada a um conjunto específico de diretri- zes ou políticas de DRM. Sob o controle do servidor de DRM 1102, o roteador de conferên- cia multimídia 1114 encaminha camadas de vídeo de acordo com os direitos que foram con- cedidos a cada reprodutor de vídeo/decodificador 150-1-p. O servidor de DRM 1102 pode fornecer as informações de DRM 1112 para cada camada de vídeo aos reprodutores de vídeo/decodificadores 150-1-p. Como ilustra a FIG. 11, as setas 1106-1 -q podem represen- tar a camada base, as setas 1108-1-r podem representar a camada de aperfeiçoamento espacial e as setas 1110-1-s podem representar a camada de aperfeiçoamento temporal. Com base nas informações de DRM 1112 recebidas do servidor de DRM 1102, o módulo de DRM 1104 para cada receptor é autorizado (ou não é autorizado) a receber ou acessar cada camada de vídeo. A disponibilidade das informações de DRM 1112 está geralmente relacio- nada às políticas de DRM. Por exemplo, o reprodutor de vídeo/decodificador 150-2 só é ca- paz de receber e acessar a camada base e a camada de aperfeiçoamento espacial do fluxo de vídeo, ao passo que o reprodutor de vídeo/decodificador 150-1 pode receber e acessar somente a camada base. Qualquer tentativa por parte de um reprodutor de ví- deo/decodificador 150-1-p em receber e acessar uma camada de vídeo não autorizada, con- forme representado pelas setas tracejadas, não terá êxito. O roteador de mídia 1114 envia os fluxos de vídeo de acordo com as políticas de DRM estabelecidas para cada reprodutor de vídeo/decodificador 150-1-p. As várias resoluções de codificação proporcionadas pela fonte de vídeo/codificador 120 permitem o controle e o gerenciamento de diversidade nos direitos de acesso que os participantes podem ter em uma conferência em tempo real.
A FIG. 12 ilustra um diagrama de blocos para um ambiente de computação 1200. O ambiente de computação 1200 pode representar uma arquitetura de sistema geral apropria- da para a implementação de várias concretizações. O ambiente de computação 1200 pode incluir vários elementos. Um elemento pode compreender qualquer estrutura física ou lógica configurada para realizar certas operações. Cada elemento pode ser implementado como hardware, software, ou qualquer combinação desses, conforme desejado para um determi- nado conjunto de parâmetros de estrutura ou restrições de desempenho. Exemplos de ele- mentos de hardware podem incluir dispositivos, componentes, processadores, microproces- sadores, circuitos, elementos de circuito (por exemplo, transistores, resistores capacitores, indutores e semelhantes), circuitos integrados, circuitos integrados de aplicação específica (ASIC), dispositivos lógicos programáveis (PLD), processadores de sinal digital (DSP), ar- ranjos de portas programáveis em campo (FPGA), unidades de memória, portes lógicas, registradores, dispositivos semicondutores, chips, microchips, conjuntos de chips, entre ou- tros. Exemplos de softwares podem incluir quaisquer componentes de software, programas, aplicativos, programas de computador, programas aplicativos, programas de sistema, pro- gramas de máquina, softwares de sistema operacional, middlewares, firmwares, módulos de software, rotinas, sub-rotinas, funções, métodos, interfaces, interfaces de software, interfa- ces de programação de aplicativos (API), conjuntos de instruções, códigos de computação, códigos de computador, segmentos de códigos, segmentos de código de computador, pala- vras, valores, símbolos, objetos de software ou qualquer combinação desses. Embora o dis- positivo de computação 1200, conforme ilustrado na FIG. 1, tenha um número limitado de elementos em certa topologia, apreciar-se-á que o ambiente de computação 1200 pode in- cluir mais ou menos elementos em topologias alternativas, conforme desejado para uma determinada implementação. As concretizações não são limitadas neste contexto.
Em várias concretizações, o ambiente de computação 1200 pode ser implementado como parte de um dispositivo alvo apropriado para o processamento de informações de mí- dia. Exemplos de dispositivos alvo podem incluir, sem a isto se limitar, um computador, um sistema de computador, um subsistema de computador, uma estação de trabalho, um termi- nal, um servidor, um servidor da Rede, um servidor virtual, um computador pessoal (PC), um computador de mesa, um computador laptop, um computador ultra-laptop, um computador portátil, um computador de mão, um assistente digital pessoal (PDA), um dispositivo de computação móvel, um telefone celular, um dispositivo de mídia (por exemplo, dispositivo de áudio, dispositivo de vídeo, dispositivo de texto, entre outros), um reprodutor de mídia, um dispositivo de processamento de mídia, um servidor de mídia, um sistema de entretenimento doméstico, produtos eletrônicos, um dispositivo de Disco Versátil Digital (DVD), um dispositi- vo de sistema de vídeo doméstico (VHS), um dispositivo VHS digital, um gravador de vídeo pessoal, um console de jogo, um reprodutor de Disco Compacto (CD), uma câmera digital, uma filmadora de vídeo digital, um sistema de monitoramento de vídeo, um sistema de con- ferência de vídeo, um sistema de telefone de vídeo e qualquer outro dispositivo eletrônico, eletromecânico ou elétrico. As concretizações não são limitadas neste contexto. Quando implementado como um dispositivo de processamento de mídia, o ambien-
te de computação 1200 também pode ser configurado para operar de acordo com vários padrões e/ou protocolos para o processamento de mídias. Exemplos de padrões de proces- samento de mídia incluem, mas sem a isto se limitar, o padrão SMPTE 421M (VC-1), VC-1 implementado para Comunicações em Tempo Real, VC-1 implementado como WMV-9 e variantes, o padrão de difusão Transmissão de Vídeo Digital Terrestre (DVB-T)1 o padrão ITU/IEC H.263, Codificação de Vídeo para Comunicação de Taxa de Bits Baixa, ITU-T Re- comendação H.263v3, publicado em novembro de 2000 e/ou o padrão H.264 da ITU/IEC, Codificação de Vídeo para Comunicação de Taxa de Bits Muito Baixa, H.264 de Recomen- dação da ITU-T1 publicado em maio de 2003, padrões do Grupo de Peritos em Imagens em Movimento (MPEG) (como MPEG-1, MPEG-2, MPEG-4) e/ou padrões de Rede Local de Alto Desempenho (HiperLAN) a rádio. Exemplos de protocolos de processamento de mídia incluem, mas sem a estes se restringirem, o Protocolo de Descrição de Sessão (SDP), o Protocolo de Transmissão Contínua em Tempo Real (RTSP), Protocolo de Transporte em Tempo Real (RTP)1 o protocolo da Linguagem Sincronizada de Integração Multimídia (SMIL), fluxos contínuos de Programa MPEG-2 e Transporte MPEG-2 e/ou o protocolo In- ternet Streaming Médias Alliance (ISMA). Uma implementação das técnicas de codificação e decodificação de vídeo de múltiplas resoluções, conforme descritas no presente documento, pode ser incorporada no Perfil Avançado da versão 9 do codec de vídeo WINDOWS® MEDIA VIDEO (WMV-9) distribuído e licenciado pela Microsoft® Corporation of Redmond, Wash., USA, incluindo revisões posteriores e variantes, por exemplo. As concretizações não são limitadas neste contexto.
Com referência à FIG. 12, o ambiente de computação 1200 inclui pelo menos uma unidade de processamento 1210 e a memória 1220. Na FIG. 12, essa configuração mais básica 1230 está incluída dentro de uma linha tracejada. A unidade de processamento 1210 pode ser qualquer tipo de processador capaz de executar software, tal como um processa- dor de uso geral, um processador dedicado, um processador de mídia, um controlador, um microcontrolador, um processador embutido, um processador de sinais digitais (DSP), entre outros. A unidade de processamento 1210 executa instruções executáveis por computador e pode ser um processador real ou virtual. Em um sistema de multiprocessamento, várias uni- dades de processamento executam instruções executáveis por computador para aumentar a capacidade de processamento. A memória 1220 pode ser implementada usando qualquer meio legível por máquina ou legível por computador capaz de armazenar dados, incluindo tanto memória volátil quanto não-volátil. Por exemplo, a memória 1220 pode incluir a memó- ria somente para leitura (ROM), a memória de acesso aleatório (RAM), a RAM dinâmica (DRAM), a DRAM de taxa de transferência dupla (DDRAM), a DRAM síncrona (SDRAM), a RAM estática (SRAM), a ROM programável (PROM), a ROM programável apagável (EPROM), a ROM programável eletricamente apagável (EEPROM), a memória flash, a me- mória polimérica, tal como a memória polimérica ferroelétrica, a memória ovônica, a memó- ria de mudança de fase ou ferroelétrica, a memória de óxido de silício-nitreto-óxido-silício (SONOS), cartões magnéticos ou ópticos ou qualquer outro tipo de meio adequado para o armazenamento de informações. Em várias concretizações, a memória 1220 armazena um software 1280 que implementa técnicas de codificação e/ou decodificação de vídeo escalo- nável
Um ambiente de computação pode ter recursos adicionais. Por exemplo, o ambien- te de computação 1200 inclui o meio de armazenamento 1240, um ou mais dispositivos de entrada 1250, um ou mais dispositivos de saída 1260 e uma ou mais conexões de comuni- cação 1270. Um mecanismo de interconexão tal como um barramento, controlador ou rede interconecta os componentes do ambiente de computação 1200. Normalmente, o software do sistema operacional oferece um ambiente operacional para outros softwares em execu- ção no ambiente de computação 1200 e coordena as atividades dos componentes do ambi- ente de computação 1200.
O meio de armazenamento 1240 pode ser removível ou não-removível e inclui dis- cos magnéticos, cassetes ou fitas magnéticas, Discos Compactos de Memória Somente para Leitura (CD-ROM), Discos Compactos Graváveis (CD-R), Discos Compactos Regravá- veis (CD-RW), discos ópticos, meios magnéticos, meios magneto-ópticos, cartões ou discos de memória regravável, vários tipos de Disco Versátil Digital (DVD) ou quaisquer outros meios que possam ser utilizados para armazenar informações e que possam ser acessados dentro do ambiente de computação 1200. O meio de armazenamento 1240 armazena ins- truções para o software 1280 que implementa as técnicas de codificação e/ou decodificação de resolução multiespacial.
O(s) dispositivo(s) de entrada 1250 pode(m) ser um dispositivo de entrada a toque, tal como um teclado, mouse, caneta ou trackball, um dispositivo de entrada de voz, um dis- positivo de digitalização, um adaptador de rede ou outro dispositivo que alimente informa- ções de entrada ao ambiente de computação 1200. Em relação ao vídeo, o(s) dispositivo(s) de entrada 1250 podem ser uma placa sintonizadora de TV, uma interface de vídeo de câ- mera ou webcam, ou um dispositivo semelhante que aceite a entrada de vídeo em forma analógica ou digital, ou um leitor de CD-ROM/DVD que forneça a entrada de vídeo ao ambi- ente de computação. O(s) dispositivo(s) de saída 1260 podem ser um meio de exibição, um projetor, uma impressora, um alto-falante, um gravador de CD/DVD, um adaptador de rede ou outro dispositivo que constitua uma saída do ambiente de computação 1200.
Em várias concretizações, o ambiente de computação 1200 pode incluir ainda uma ou mais conexões de comunicação 1270 que permitam que o ambiente de comunicação 1200 se comunique com outros dispositivos por meios de comunicação 1290. As conexões de comunicação 1270 podem incluir vários tipos de elementos de comunicação padrões, tais como uma ou mais interfaces de comunicação, interfaces de rede, placas de interface de rede (NIC), rádios, transmissores/receptores sem fio (transceptores), meios de comunicação com fio ou sem fio, conectores físicos, entre outros. Os meios de comunicação 1290 geral- mente incorporam instruções legíveis por computador, estruturas de dados, módulos de pro- grama ou outros dados em um sinal de dados modulado, tal como uma onda portadora ou outro mecanismo de transporte, e incluem quaisquer meios de distribuição de informações. O termo "sinal de dados modulados" refere-se a um sinal que tem uma ou mais de suas ca- racterísticas ajustadas ou alteradas de modo a codificar as informações no sinal. A título exemplificativo, e não de limitação, os meios de comunicação 1290 incluem meios de comu- nicação com fio e meios de comunicação sem fio. Exemplos de meios de comunicação com fio podem incluir um fio, cabo, condutores de metal, placas de circuito integrado (PCB), pla- cas-mãe, estruturas de comutação, materiais semicondutores, fios de pares trançados, ca- bos coaxiais, fibras ópticas, sinais propagados, entre outros. Exemplos de meios comunica- ção sem fio podem incluir meios acústicos, espectros de rádio-freqüência (RF)1 infraverme- lho e outros meios sem fio. Os termos "meios legíveis por máquina" e "meios legíveis por computador", conforme usados no presente documento, pretendem incluir, a título exemplifi- cativo e não-limitante, a memória 1220, o rmazenamento 1240, os meios de comunicação 1290 e combinações de qualquer um dos itens supramencionados.
Algumas concretizações podem ser descritas no contexto geral de instruções exe- cutáveis por computador, tais como as incluídas nos módulos de programa, sendo executa- das em um ambiente de computação em um processador-alvo real ou virtual. Geralmente, os módulos de programa incluem rotinas, programas, bibliotecas, objetos, classes, compo- nentes, e estruturas de dados, entre outros, que efetuam tarefas específicas ou implemen- tam tipos específicos de dados abstratos. A funcionalidade dos módulos de programa pode ser combinada ou dividida entre os módulos de programa conforme desejado nas várias concretizações. As instruções executáveis por computador para módulos de programa po- dem ser executadas dentro de um ambiente de computação local ou distribuído.
Vários detalhes específicos foram apresentados no presente documento para ofe- recer uma compreensão completa das concretizações. Os versados na técnica compreende- rão, porém, que as concretizações podem ser praticadas sem esses detalhes específicos. Em outros casos, as operações, componentes e circuitos bem conhecidos não foram descri- tos em detalhes a fim de não obscurecer as concretizações. Pode-se apreciar que os deta- lhes estruturais e funcionais específicos revelados no presente documento são representati- vos, sem necessariamente limitar o âmbito das concretizações.
Também vale a pena observar que qualquer referência a "uma concretização" signi- fica que um recurso, estrutura ou característica específica descrita em relação à concretiza- ção é incluída em pelo menos uma concretização. A ocorrência da expressão "em uma con- cretização" em vários trechos do relatório descritivo não se refere necessariamente à mes- ma concretização.
Algumas concretizações podem ser descritas usando as expressões "acoplado" e "conectada" junto com seus derivados. Deve-se compreender que esses termos não são usados com a intenção de serem sinônimos uns dos outros. Por exemplo, algumas concreti- zações podem ser descritas usando o termo "conectado" para indicar que dois ou mais ele- mentos estão em contato direto físico ou elétrico um com o outro. Em outro exemplo, algu- mas concretizações podem ser descritas usando o termo "acoplado" para indicar que dois ou mais elementos estão em contato direto físico ou elétrico. O termo "acoplado", no entan- to, também pode significar que dois ou mais elementos não estão em contato direto um com o outro, mas ainda assim cooperam ou interagem um com o outro. As concretizações não são limitadas neste contexto.
Algumas concretizações podem ser implementadas, por exemplo, usando um meio ou artigo legível por máquina que pode armazenar uma instrução ou uma série de instru- ções que, se executada por um máquina, pode fazer com que a máquina realize um método e/ou operações de acordo com as concretizações. Tal máquina pode incluir, por exemplo, qualquer plataforma de processamento adequada, plataforma de computação, dispositivo de computação, sistema de computação, sistema de processamento, computador, processado, entre outros, e pode ser implementada usando qualquer combinação adequada de hardware e/ou software. O meio ou artigo legível por máquina pode incluir, por exemplo, qualquer tipo adequado de unidade de memória, dispositivo de memória, artigo de memória, meio de me- mória, dispositivo de armazenamento, artigo de armazenamento, meio de armazenamento e/ou unidade de armazenamento, por exemplo, memória, meios removíveis ou não- removíveis, meios apagáveis ou não-apagáveis, meios graváveis ou regraváveis, meios digi- tais ou analógicos, meios magnéticos, meios magneto-ópticos, cartões ou discos de memó- ria removíveis, vários tipos de DVD, uma fita, um cassete ou similar.
Embora a matéria reivindicada tenha sido descrita em linguagem específica aos as- pectos estruturais e/ou procedimentos metodológicos, deve-se entender que a matéria defi- nida nas reivindicações em anexo não se limita necessariamente aos aspectos ou procedi- mentos específicos descritos acima. Em vez disso, os aspectos e procedimentos específicos descritos acima são revelados como formas exemplificativas de se implementar as reivindi- cações.

Claims (29)

1. Método, CARACTERIZADO por compreender: receber informações de vídeo; e codificar as referidas informações de vídeo em um fluxo de vídeo com diferentes camadas de vídeo incluindo uma camada base e uma camada de aperfeiçoamento, a referi- da camada base contendo um primeiro nível de resolução espacial e um primeiro nível de resolução temporal e a referida camada de aperfeiçoamento aumentando o referido primeiro nível de resolução espacial ou o referido primeiro nível de resolução temporal.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender codificar informações de vídeo no referido fluxo de vídeo como uma primeira camada de aperfeiçoamento temporal em um segundo nível de resolução temporal.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO por compre- ender codificar informações de vídeo no referido fluxo de vídeo como uma primeira camada de aperfeiçoamento espacial em um segundo nível de resolução espacial.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO por compreender inserir um código de início unicamente identificável para indicar um ponto de início no referido fluxo de vídeo para a referida camada de aperfei- çoamento.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO por compreender multiplexar vários identificadores de estrutura e cargas úteis para a referida camada de aperfeiçoamento com vários identificadores de estrutura e cargas úteis para a referida camada base.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO por compreender criptografar cada camada de vídeo com uma chave de criptografia diferente.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO por compreender atribuir, a cada camada de vídeo, um conjunto diferen- te de direitos digitais.
8. Método, CARACTERIZADO por compreender: receber um fluxo de vídeo codificado; e decodificar informações de vídeo a partir de diferentes camadas de vídeo incluindo uma camada base e uma camada de aperfeiçoamento do referido fluxo de vídeo codificado, a referida camada base tendo um primeiro nível de resolução espacial e um primeiro nível de resolução temporal e a referida camada de aperfeiçoamento aumentando o referido pri- meiro nível de resolução espacial ou o referido primeiro nível de resolução temporal.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO por compreender decodificar informações de vídeo a partir de uma primeira camada de aperfeiçoamento tem- poral em um segundo nível de resolução temporal.
10. Método, de acordo com a reivindicação 8 ou 9, CARACTERIZADO por compre- ender decodificar informações de vídeo a partir de uma primeira camada de aperfeiçoamen- to espacial em um segundo nível de resolução espacial.
11. Método, de acordo com qualquer uma das reivindicações 8 a 10, CARACTERIZADO por compreender: analisar o referido fluxo de vídeo; e recuperar um código de início para indicar um ponto de início no referido fluxo de vídeo para a referida camada de aperfeiçoamento.
12. Método, de acordo com qualquer uma das reivindicações 8 a 11, CARACTERIZADO por compreender invocar um analisador e decodificador de estrutura específico para a referida camada de aperfeiçoamento com base em um valor para um códi- go de início da camada de aperfeiçoamento.
13. Método, de acordo com qualquer uma das reivindicações 8 a 12, CARACTERIZADO por compreender reconhecer um código de início associado à referida camada de aperfeiçoamento para invocar um conjunto de ferramentas de decodificação pa- ra a referida camada de aperfeiçoamento.
14. Método, de acordo com qualquer uma das reivindicações 8 a 13, CARACTERIZADO por descriptografar cada camada de vídeo com uma chave de criptogra- fia diferente.
15. Método, de acordo com qualquer uma das reivindicações 8 a 14, CARACTERIZADO por compreender: recuperar um conjunto de direitos digitais diferente para cada camada de vídeo; e controlar o acesso às informações de vídeo de cada camada de vídeo de acordo com cada conjunto de direitos digitais.
16. Método, de acordo com qualquer uma das reivindicações 8 a 15, CARACTERIZADO por compreender reproduzir informações de vídeo da referida camada base e informações de vídeo da referida camada de aperfeiçoamento para aumentar o refe- rido nível de resolução espacial ou o referido nível de resolução temporal em um meio de exibição.
17. Aparelho, CARACTERIZADO por compreender um codificador de vídeo (200) para codificar informações de vídeo em um fluxo de vídeo com uma camada base e uma camada de aperfeiçoamento, a referida camada base tendo um primeiro nível de resolução espacial e um primeiro nível de resolução temporal, e a referida camada de aperfeiçoamento aumentando o referido primeiro nível de resolução espacial ou o referido primeiro nível de resolução temporal.
18. Aparelho, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que o referido codificador de vídeo codifica informações de vídeo no referido fluxo de vídeo como uma camada de aperfeiçoamento temporal em um segundo nível de resolução tempo- ral ou em um terceiro nível de resolução temporal.
19. Aparelho, de acordo com a reivindicação 17 ou 18, CARACTERIZADO pelo fato de que o referido codificador de vídeo codifica informações de vídeo no referido fluxo de vídeo como uma camada de aperfeiçoamento espacial em um segundo nível de resolução espacial e no referido primeiro nível de resolução temporal, em um segundo nível de resolu- ção temporal ou em um terceiro nível de resolução temporal.
20. Aparelho, de acordo com qualquer uma das reivindicações 17 a 19, CARACTERIZADO por compreender um módulo de criptografia (1002) acoplado ao referido codificador de vídeo, o referido módulo de criptografia criptografando cada camada com uma chave de criptografia diferente.
21. Aparelho, de acordo com qualquer uma das reivindicações 17 a 20, CARACTERIZADO por compreender um módulo de gerenciamento de direitos digitais (1102) acoplado ao referido codificador de vídeo, o referido módulo de gerenciamento de direitos digitais atribuindo, a cada camada, um conjunto diferente de direitos digitais.
22. Aparelho, CARACTERIZADO por compreender um decodificador de vídeo (300) para decodificar informações de vídeo a partir de uma camada base e uma camada de aperfeiçoamento de um fluxo de vídeo codificado, a referida camada base tendo um primeiro nível de resolução espacial e um primeiro nível de resolução temporal e a referida camada de aperfeiçoamento aumentando o referido primeiro nível de resolução espacial ou o referi- do primeiro nível de resolução temporal.
23. Aparelho, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que o referido decodificador de vídeo decodifica informações de vídeo a partir de uma ca- mada de aperfeiçoamento temporal em um segundo nível de resolução temporal ou em um terceiro nível de resolução temporal.
24. Aparelho, de acordo com a reivindicação 22 ou 23, CARACTERIZADO pelo fato de que o referido decodificador de vídeo decodifica informações de vídeo a partir de uma camada de aperfeiçoamento espacial em um segundo nível resolução espacial e no referido primeiro nível de resolução temporal, em um segundo nível de resolução temporal ou em um terceiro nível de resolução temporal.
25. Aparelho, de acordo com qualquer uma das reivindicações 22 a 24, CARACTERIZADO por compreender um módulo de descriptografia (1004) acoplado ao re- ferido decodificador de vídeo, o referido módulo de descriptografia descriptografando cada camada com uma chave de descriptografia diferente.
26. Aparelho, de acordo com qualquer uma das reivindicações 22 a 25, CARACTERIZADO por compreender um módulo de gerenciamento de direitos digitais (1104) acoplado ao referido decodificador de vídeo, o referido módulo de gerenciamento de direitos digitais controlando o acesso às informações de vídeo de cada camada usando um conjunto de direitos digitais diferente atribuído a cada camada.
27. Aparelho, de acordo com qualquer uma das reivindicações 22 a 26, CARACTERIZADO por compreender um dispositivo de exibição (1260) acoplado ao referido decodificador de vídeo, o referido dispositivo de exibição exibindo informações de vídeo a partir da referida camada base e informações de vídeo a partir da referida camada de aper- feiçoamento para aumentar o referido primeiro nível de resolução espacial ou o referido pri- meiro nível de resolução temporal em um meio de exibição.
28. Programa de computador, CARACTERIZADO por compreender elementos de programa de computador que, quando executado em um aparelho de processamento de dados, implementam o método de acordo com qualquer uma das reivindicações de 1 a 16 e/ou implementam o codificador de vídeo de qualquer uma das reivindicações 17 a 21 e/ou implementam o decodificador de vídeo de acordo com qualquer uma das reivindicações de 22 a 27.
29. Meio portador de programa de computador, CARACTERIZADO por portar um programa de computador de acordo com a reivindicação 28.
BRPI0714235-8A 2006-08-16 2007-08-14 tÉcnicas para codificaÇço e decodificaÇço de resoluÇço variavÉl de vÍdeo digital BRPI0714235A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/504.843 2006-08-16
US11/504,843 US20080043832A1 (en) 2006-08-16 2006-08-16 Techniques for variable resolution encoding and decoding of digital video
PCT/US2007/075907 WO2008060732A2 (en) 2006-08-16 2007-08-14 Techniques for variable resolution encoding and decoding of digital video

Publications (1)

Publication Number Publication Date
BRPI0714235A2 true BRPI0714235A2 (pt) 2013-04-02

Family

ID=39101362

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0714235-8A BRPI0714235A2 (pt) 2006-08-16 2007-08-14 tÉcnicas para codificaÇço e decodificaÇço de resoluÇço variavÉl de vÍdeo digital

Country Status (10)

Country Link
US (1) US20080043832A1 (pt)
EP (1) EP2055106B1 (pt)
JP (1) JP2010501141A (pt)
KR (1) KR101354833B1 (pt)
CN (1) CN101507278B (pt)
AU (1) AU2007319699B2 (pt)
BR (1) BRPI0714235A2 (pt)
MX (1) MX2009001387A (pt)
RU (1) RU2497302C2 (pt)
WO (1) WO2008060732A2 (pt)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7876978B2 (en) * 2005-10-13 2011-01-25 Penthera Technologies, Inc. Regions of interest in video frames
US8665967B2 (en) * 2006-02-15 2014-03-04 Samsung Electronics Co., Ltd. Method and system for bit reorganization and packetization of uncompressed video for transmission over wireless communication channels
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US8773494B2 (en) * 2006-08-29 2014-07-08 Microsoft Corporation Techniques for managing visual compositions for a multimedia conference call
US8175041B2 (en) * 2006-12-14 2012-05-08 Samsung Electronics Co., Ltd. System and method for wireless communication of audiovisual data having data size adaptation
US8630355B2 (en) * 2006-12-22 2014-01-14 Qualcomm Incorporated Multimedia data reorganization between base layer and enhancement layer
US8566695B2 (en) * 2007-03-30 2013-10-22 Sandisk Technologies Inc. Controlling access to digital content
US8237776B2 (en) * 2007-10-19 2012-08-07 Warner Bros. Entertainment Inc. Method and apparatus for generating stereoscopic images from a DVD disc
US8068608B2 (en) * 2007-12-17 2011-11-29 Broadcom Corporation Video processing system for scrambling video streams with dependent portions and methods for use therewith
US9872066B2 (en) * 2007-12-18 2018-01-16 Ibiquity Digital Corporation Method for streaming through a data service over a radio link subsystem
US8130823B2 (en) * 2007-12-19 2012-03-06 Broadcom Corporation Channel adaptive video transmission system for use with layered video coding and methods for use therewith
US9143731B2 (en) * 2008-01-02 2015-09-22 Broadcom Corporation Mobile video device for use with layered video coding and methods for use therewith
US8176524B2 (en) * 2008-04-22 2012-05-08 Samsung Electronics Co., Ltd. System and method for wireless communication of video data having partial data compression
US8179983B2 (en) * 2008-05-20 2012-05-15 Broadcom Corporation Video processing system with layered video coding for fast channel change and methods for use therewith
JP5369893B2 (ja) * 2008-05-30 2013-12-18 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラム、動画像再符号化装置、動画像再符号化方法、動画像再符号化プログラム
US8488680B2 (en) * 2008-07-30 2013-07-16 Stmicroelectronics S.R.L. Encoding and decoding methods and apparatus, signal and computer program product therefor
US20100064315A1 (en) * 2008-09-08 2010-03-11 Jeyhan Karaoguz Television system and method for providing computer network-based video
KR20160114186A (ko) * 2008-09-18 2016-10-04 톰슨 라이센싱 비디오 영상 프루닝 방법 및 장치
US9342663B2 (en) * 2008-10-09 2016-05-17 Adobe Systems Incorporated Distributing media with variable resolution and format
US8300082B2 (en) * 2008-12-15 2012-10-30 At&T Intellectual Property I, Lp Apparatus and method for video conferencing
KR101635876B1 (ko) 2009-01-07 2016-07-04 쏘닉 아이피, 아이엔씨. 온라인 콘텐츠를 위한 미디어 가이드의 단일, 공동 및 자동 생성
US20100262708A1 (en) * 2009-04-08 2010-10-14 Nokia Corporation Method and apparatus for delivery of scalable media data
US20110075537A1 (en) * 2009-09-25 2011-03-31 General Electric Company Holographic disc with improved features and method for the same
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
KR20110071707A (ko) * 2009-12-21 2011-06-29 삼성전자주식회사 동영상 컨텐트 제공 방법 및 그 장치, 동영상 컨텐트 재생 방법 및 그 장치
US20110191587A1 (en) * 2010-02-02 2011-08-04 Futurewei Technologies, Inc. Media Processing Devices With Joint Encryption-Compression, Joint Decryption-Decompression, And Methods Thereof
US8838954B2 (en) * 2010-02-02 2014-09-16 Futurewei Technologies, Inc. Media processing devices for adaptive delivery of on-demand media, and methods thereof
US8908774B2 (en) 2010-02-11 2014-12-09 Mediatek Inc. Method and video receiving system for adaptively decoding embedded video bitstream
US8544103B2 (en) * 2010-05-04 2013-09-24 Intertrust Technologies Corporation Policy determined accuracy of transmitted information
US8731152B2 (en) 2010-06-18 2014-05-20 Microsoft Corporation Reducing use of periodic key frames in video conferencing
WO2012032502A1 (en) * 2010-09-10 2012-03-15 Nokia Corporation A method and apparatus for adaptive streaming
US20120082228A1 (en) * 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
CN101951518B (zh) * 2010-10-12 2012-05-16 高斯贝尔数码科技股份有限公司 一种低码率情形下的数字电视图像修正系统及修正方法
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US8856212B1 (en) 2011-02-08 2014-10-07 Google Inc. Web-based configurable pipeline for media processing
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
CN103597839B (zh) 2011-05-31 2017-10-20 杜比实验室特许公司 视频压缩方法、视频重构方法和系统、及编码器
US10873772B2 (en) 2011-07-21 2020-12-22 V-Nova International Limited Transmission of reconstruction data in a tiered signal quality hierarchy
US10045089B2 (en) 2011-08-02 2018-08-07 Apple Inc. Selection of encoder and decoder for a video communications session
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
JP6192902B2 (ja) * 2011-11-11 2017-09-06 サターン ライセンシング エルエルシーSaturn Licensing LLC 画像データ送信装置、画像データ送信方法、画像データ受信装置および画像データ受信方法
KR102009049B1 (ko) 2011-11-11 2019-08-08 소니 주식회사 송신 장치, 송신 방법, 수신 장치 및 수신 방법
CN107241606B (zh) * 2011-12-17 2020-02-21 杜比实验室特许公司 解码系统、方法和设备以及计算机可读介质
KR102158629B1 (ko) * 2011-12-29 2020-09-22 엘지전자 주식회사 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9762903B2 (en) * 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
WO2013189257A1 (en) * 2012-06-20 2013-12-27 Mediatek Inc. Method and apparatus of bi-directional prediction for scalable video coding
RU2737038C2 (ru) * 2012-06-22 2020-11-24 Сони Корпорейшн Устройство и способ обработки изображений
US9197685B2 (en) * 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
EP2875417B1 (en) 2012-07-18 2020-01-01 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US9804668B2 (en) 2012-07-18 2017-10-31 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear TV experience using streaming content distribution
WO2014025213A1 (ko) * 2012-08-10 2014-02-13 엘지전자 주식회사 신호 송수신 장치 및 신호 송수신 방법
CN104620281B (zh) * 2012-09-12 2018-08-14 皇家飞利浦有限公司 使hdr观看为内容所有者同意的过程
US20140086328A1 (en) * 2012-09-25 2014-03-27 Qualcomm Incorporated Scalable video coding in hevc
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
TWI557727B (zh) * 2013-04-05 2016-11-11 杜比國際公司 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品
WO2014168890A1 (en) * 2013-04-08 2014-10-16 General Instrument Corporation Individual buffer management in video coding
CA2909445C (en) * 2013-04-15 2024-02-20 Luca Rossato Hybrid backward-compatible signal encoding and decoding
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
CN103686177B (zh) * 2013-12-19 2018-02-09 中国科学院深圳先进技术研究院 一种图像压缩、解压的方法、装置及图像系统
US9432624B2 (en) * 2014-01-03 2016-08-30 Clearone Communications Hong Kong Ltd. Method for improving an MCU's performance using common properties of the H.264 codec standard
CN104281427B (zh) * 2014-03-10 2018-04-27 深圳深讯和科技有限公司 交互应用中的视频数据处理方法和系统
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
EP3146719B1 (en) * 2014-05-22 2020-10-21 Microsoft Technology Licensing, LLC Re-encoding image sets using frequency-domain differences
CN104902275B (zh) * 2015-05-29 2018-04-20 宁波菊风系统软件有限公司 一种控制视频通信质量甜点的方法
CN105739935B (zh) * 2016-01-22 2019-06-04 厦门美图移动科技有限公司 一种多终端联合显示方法、装置及系统
GB2547442B (en) * 2016-02-17 2022-01-12 V Nova Int Ltd Physical adapter, signal processing equipment, methods and computer programs
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10178394B2 (en) * 2016-06-10 2019-01-08 Apple Inc. Transcoding techniques for alternate displays
KR102433821B1 (ko) 2016-10-12 2022-08-18 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 공간적으로 불균등한 스트리밍
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10742708B2 (en) 2017-02-23 2020-08-11 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US11178204B1 (en) * 2017-02-23 2021-11-16 Cox Communications, Inc. Video processor to enhance color space and/or bit-depth
US10917644B2 (en) 2017-02-23 2021-02-09 Netflix, Inc. Iterative techniques for encoding video content
US10666992B2 (en) 2017-07-18 2020-05-26 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
CN111917558B (zh) * 2020-08-13 2021-03-23 南开大学 一种基于区块链的视频帧数据双认证与分级加密方法
CN114650426A (zh) * 2020-12-17 2022-06-21 华为技术有限公司 一种视频处理方法、装置以及设备

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253055A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
JP3363668B2 (ja) * 1995-07-25 2003-01-08 キヤノン株式会社 画像伝送装置及び画像伝送システム
FR2756399B1 (fr) * 1996-11-28 1999-06-25 Thomson Multimedia Sa Procede et dispositif de compression video pour images de synthese
AU732452B2 (en) * 1997-04-01 2001-04-26 Sony Corporation Image encoder, image encoding method, image decoder, image decoding method, and distribution media
US6057884A (en) * 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US6233356B1 (en) * 1997-07-08 2001-05-15 At&T Corp. Generalized scalability for video coder based on video objects
US6993201B1 (en) * 1997-07-08 2006-01-31 At&T Corp. Generalized scalability for video coder based on video objects
RU2201654C2 (ru) * 1997-12-23 2003-03-27 Томсон Лайсенсинг С.А. Способ низкошумового кодирования и декодирования
JP2000032393A (ja) * 1998-07-09 2000-01-28 Sony Corp 画像情報処理装置および方法、並びに提供媒体
US6639943B1 (en) * 1999-11-23 2003-10-28 Koninklijke Philips Electronics N.V. Hybrid temporal-SNR fine granular scalability video coding
JP4018335B2 (ja) * 2000-01-05 2007-12-05 キヤノン株式会社 画像復号装置及び画像復号方法
US20020126759A1 (en) * 2001-01-10 2002-09-12 Wen-Hsiao Peng Method and apparatus for providing prediction mode fine granularity scalability
KR100783396B1 (ko) * 2001-04-19 2007-12-10 엘지전자 주식회사 부호기의 서브밴드 분할을 이용한 시공간 스케일러빌러티방법
EP1753244B1 (en) * 2002-01-22 2010-04-14 Microsoft Corporation Methods and systems for start code emulation prevention and data stuffing
US20030215011A1 (en) * 2002-05-17 2003-11-20 General Instrument Corporation Method and apparatus for transcoding compressed video bitstreams
AU2003240828A1 (en) * 2002-05-29 2003-12-19 Pixonics, Inc. Video interpolation coding
JP2004140667A (ja) * 2002-10-18 2004-05-13 Canon Inc 情報処理方法
US20040086041A1 (en) * 2002-10-30 2004-05-06 Koninklijke Philips Electronics N.V. System and method for advanced data partitioning for robust video transmission
AU2003285634A1 (en) * 2002-12-16 2004-07-09 Koninklijke Philips Electronics N.V. Method and apparatus to encrypt video data streams
JP2006511026A (ja) * 2002-12-19 2006-03-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多層化ビデオの特徴的ポイント情報(cpi)
US7406176B2 (en) * 2003-04-01 2008-07-29 Microsoft Corporation Fully scalable encryption for scalable multimedia
US7313814B2 (en) * 2003-04-01 2007-12-25 Microsoft Corporation Scalable, error resilient DRM for scalable media
EP1627532A1 (en) * 2003-05-02 2006-02-22 Koninklijke Philips Electronics N.V. Multilayered coding supports migration to new standards
KR100965881B1 (ko) * 2003-10-10 2010-06-24 삼성전자주식회사 비디오 데이터 인코딩 시스템 및 디코딩 시스템
US7797454B2 (en) * 2004-02-13 2010-09-14 Hewlett-Packard Development Company, L.P. Media data transcoding devices
US20050254575A1 (en) * 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
KR100662350B1 (ko) * 2004-08-23 2007-01-02 엘지전자 주식회사 영상 전송 장치 및 방법
KR100668345B1 (ko) * 2004-10-05 2007-01-12 삼성전자주식회사 움직임 보상된 계층 생성장치 및 방법
US20060078049A1 (en) * 2004-10-13 2006-04-13 Nokia Corporation Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability
KR100714689B1 (ko) * 2005-01-21 2007-05-04 삼성전자주식회사 다 계층 구조 기반의 스케일러블 비디오 코딩 및 디코딩방법, 이를 위한 장치
US7668962B2 (en) * 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
US20060212542A1 (en) * 2005-03-15 2006-09-21 1000 Oaks Hu Lian Technology Development Co., Ltd. Method and computer-readable medium for file downloading in a peer-to-peer network
CN1319382C (zh) * 2005-04-07 2007-05-30 西安交通大学 可伸缩视频编解码器体系结构设计方法
US7953224B2 (en) * 2005-05-20 2011-05-31 Microsoft Corporation MPEG-4 encryption enabling transcoding without decryption
CN100358364C (zh) * 2005-05-27 2007-12-26 上海大学 基于h.264的精细颗粒可伸缩编码的码率控制方法

Also Published As

Publication number Publication date
CN101507278B (zh) 2011-08-03
EP2055106A4 (en) 2013-01-30
US20080043832A1 (en) 2008-02-21
KR20090051042A (ko) 2009-05-20
RU2009105072A (ru) 2010-08-20
AU2007319699A1 (en) 2008-05-22
MX2009001387A (es) 2009-02-13
EP2055106B1 (en) 2015-06-17
KR101354833B1 (ko) 2014-01-23
WO2008060732A3 (en) 2008-07-31
JP2010501141A (ja) 2010-01-14
CN101507278A (zh) 2009-08-12
AU2007319699B2 (en) 2011-06-09
WO2008060732A2 (en) 2008-05-22
RU2497302C2 (ru) 2013-10-27
EP2055106A2 (en) 2009-05-06

Similar Documents

Publication Publication Date Title
BRPI0714235A2 (pt) tÉcnicas para codificaÇço e decodificaÇço de resoluÇço variavÉl de vÍdeo digital
US10630938B2 (en) Techniques for managing visual compositions for a multimedia conference call
JP5770345B2 (ja) ビデオデータをストリーミングするためのビデオ切替え
EP3038367B1 (en) Streaming encoded video data
US11553154B2 (en) Method and arrangement for supporting playout of content
RU2541155C2 (ru) Размещение фрагментов субтрека для потоковой передачи видеоданных
JP2016092837A (ja) 映像圧縮装置、映像再生装置および映像配信システム
US20100239001A1 (en) Video streaming system, transcoding device, and video streaming method
Akramullah et al. Video Coding Standards
Coelho Low Cost Transcoder
Inamdar Performance Evaluation Of Greedy Heuristic For SIP Analyzer In H. 264/SVC

Legal Events

Date Code Title Description
B13B Fees due related to the expedition of a letter patent: publication of letter-patent cancelled
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 6A 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 2261 DE 06/05/2014.