BR122021000421B1 - Referenciação de sub-fluxo flexível dentro de um fluxo de dados de transporte - Google Patents
Referenciação de sub-fluxo flexível dentro de um fluxo de dados de transporte Download PDFInfo
- Publication number
- BR122021000421B1 BR122021000421B1 BR122021000421-8A BR122021000421A BR122021000421B1 BR 122021000421 B1 BR122021000421 B1 BR 122021000421B1 BR 122021000421 A BR122021000421 A BR 122021000421A BR 122021000421 B1 BR122021000421 B1 BR 122021000421B1
- Authority
- BR
- Brazil
- Prior art keywords
- data
- stream
- information
- data stream
- video
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 15
- 238000012800 visualization Methods 0.000 claims 3
- 238000005192 partition Methods 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 36
- 230000005540 biological transmission Effects 0.000 description 22
- 238000003860 storage Methods 0.000 description 18
- 238000005457 optimization Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 208000031509 superficial epidermolytic ichthyosis Diseases 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234327—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Systems (AREA)
Abstract
a presente invenção refere-se a uma representação de uma sequência de vídeo que apresenta um primeiro fluxo de dados compreendendo primeira porções de dados, sendo que as primeiras porções de dados compreendem primeira informação de sincronização e um segundo fluxo de dados, sendo que o segundo fluxo de dados compreende uma segunda porção de dados que apresenta segunda informação de sincronização, que pode ser derivada. informação de associação é associada a uma segunda porção de dados do segundo fluxo de dados, sendo que a informação de associação indica uma primeira porção de dados pré-determinada do primeiro fluxo de dados. é gerado um fluxo de transporte que compreende o primeiro e o segundo fluxo de dados como a representação da sequência de vídeo.
Description
[0001] Concretização da presente invenção diz respeito a esquemas para referenciar flexivelmente porções de dados individuais de diferentes sub-fluxos de um fluxo de dados de transporte, contendo dois ou mais sub-fluxos. Particularmente, diversas concretizações referem-se a um método e a um equipamento para identificar porções de dados de referência contendo informação sobre imagens de referência necessárias para a decodificação de um fluxo de vídeo de uma camada superior de um fluxo de vídeo escalável quando fluxos de vídeo com diferentes propriedades de sincronização são combinados em um único fluxo de transporte.
[0002] São inúmeras as aplicações, nas quais fluxos de dados múltiplos são combinados dentro de um fluxo de transporte. Essa combinação ou multiplexação dos diferentes fluxos de dados é muitas vezes necessária para possibilitar a transmissão da informação completa utilizando apenas um único canal de transporte físico para transmitir o fluxo de transporte gerado.
[0003] Por exemplo, em um fluxo de transporte MPEG-2 usado para transmissão por satélite de múltiplos programas de vídeo, sendo que cada programa de vídeo fica contido dentro de um fluxo elementar. Isto é, frações de dados de um fluxo elementar específico (que são empacotadas nos assim chamados pacotes PES) são intercaladas com frações de dados de outros fluxos elementares. Além disso, diferentes fluxos elementares ou sub-fluxos podem pertencer a um único programa como, por exemplo, o programa pode ser transmitido utilizando-se um fluxo elementar de áudio e um fluxo elementar de vídeo separado. Os fluxos elementares de áudio e de vídeo são, portanto, dependentes entre si. Ao usar códigos de vídeo escaláveis (SVC), as interdependências podem ser ainda mais complicadas, como um vídeo da camada base AVC (Advanced Video Codec) com compatibilidade regressiva (H.264/AVC) pode ser então melhorado pela adição de informação adicional, os assim chamados sub-fluxos de bits SVC, que melhoram a qualidade da camada base AVC em termos de fidelidade, resolução espacial e/ou resolução temporal. Isto é, nas camadas avançadas (os sub-fluxos de bits SVC), pode ser transmitida informação adicional para um quadro de vídeo para melhorar sua qualidade perspectiva.
[0004] Para a reconstrução, toda informação pertencente a um único quadro de vídeo é coletada dos diferentes fluxos antes de uma decodificação do respectivo quadro de vídeo. A informação contida dentro de diferentes fluxos que pertence a um único quadro é chamada de unidade NAL (Network Abstraction Layer Unit). A informação pertencente a uma única imagem pode ser ainda transmitida por diferentes canais de transmissão. Por exemplo, um canal físico separado pode ser usado para cada sub-fluxo de bits. Porém, os diferentes pacotes de dados dos sub-fluxos de bits individuais dependem um do outro. A dependência é muitas vezes sinalizada por um elemento de sintaxe específico (dependência_ID: DID) da sintaxe de fluxo de bits. Isto é, os sub-fluxos de bits SVC (diferindo no elemento de sintaxe no cabeçalho de unidade H.264/SVC NAL: DID), que melhoram a camada base AVC ou um sub-fluxo de bits inferior em pelo menos uma das dimensões de escalabilidade possíveis fidelidade, resolução espacial ou temporal, são transportados para o fluxo de transporte com diferentes números PID (identificador de pacote). Eles são, por assim dizer, transportados do mesmo modo como diferentes tipos de mídia (p.ex. áudio ou vídeo) para o mesmo programa que deverá ser transportado. A presença desses sub-fluxos é definida em um cabeçalho de pacote de fluxo de transporte associado ao fluxo de transporte.
[0005] Porém, para reconstruir e decodificar as imagens e os dados de áudio associados, os diferentes tipos de mídia devem ser sincronizados antes ou após a decodificação. A sincronização após a decodificação é muitas vezes obtida pela transmissão das assim chamadas “estampas de tempo de apresentação” (PTS) que indicam o atual tempo de saída/apresentação tp de um quadro de vídeo ou um quadro de áudio, respectivamente. Se um buffer de imagem decodificada (DPB) for usado para armazenar temporariamente uma imagem decodificada (quadro) de um fluxo de vídeo transportado após a decodificação, a estampa de tempo de apresentação tp portanto indicará a retirada da imagem decodificada do buffer respectivo. Como diferentes tipos de quadro podem ser usados, por exemplo, quadros tipo p (predictivo) e tipo b (bi- direcional), os quadros de vídeo não precisam ser necessariamente decodificados para que sejam apresentados. Portanto, as assim chamadas “estampas de tempo de decodificação” são normalmente transmitidas, as quais indicam o ultimo tempo possível de decodificação de um quadro para garantir assim que toda a informação esteja presente para os quadros subseqüentes.
[0006] Quando a informação recebida do fluxo de transporte é temporariamente armazenada dentro de um buffer de fluxo elementar (EB), a estampa de tempo de decodificação (DTS) indica o último tempo possível de retirada da informação em questão do buffer de fluxo elementar (EB). O processo de decodificação convencional pode, portanto, ser definido em termos de um modelo de armazenamento temporário hipotético (T-STD) para a camada de sistema e um modelo de armazenamento temporário (HRD) para a camada de vídeo. Entende-se por camada de sistema a camada de transporte, isto é, uma sincronização precisa da multiplexação e de- multiplexação necessária para prover diferentes fluxos de programa ou fluxos elementares dentro de um único fluxo de transporte é vital. Entende-se por camada de video a informação de divisão em pacotes e referência exigida pelo codec de vídeo empregado. As informações dos pacotes de dados da camada de vídeo são novamente empacotadas e combinadas pela camada de sistema para permitir assim uma transmissão em série do canal de transporte.
[0007] Um exemplo de um modelo de armazenamento temporário hipotético utilizado pela transmissão de video MPEG-2 com um único canal de transporte é apresentado na figura 1. As estampas de tempo da camada de video e as estampas de tempo da camada de sistema (indicadas no cabeçalho PES) indicam o mesmo instante de tempo. Se, porém, a frequência sincronização da camada de video e da camada de sistema for diferente (como normalmente é o caso), os tempos serão iguais dentro da tolerância mínima indicada pelos diferentes relógios usados pelos dois diferentes modelos de buffer (STD e HRD).
[0008] No modelo descrito pela figura 1, um pacote 2 de dados de fluxo de transporte que chega em um receptor no instante de tempo t(i) é de-multiplexado do fluxo de transporte para diferentes fluxos independentes 4a - 4d, sendo que os diferentes fluxos são diferenciados por diferentes números PID presentes dentro de cada cabeçalho de pacote de fluxo de transporte.
[0009] Os pacotes de dados de fluxo de transporte são armazenados em um buffer de transporte 6 (TB) e então transferidos para um buffer de multiplexação 8 (MB). A transferência do buffer de transporte TB para o buffer de multiplexação MB pode ser feita com uma taxa fixada.
[0010] Antes de transmitir os dados puros de vídeo para um decodificador de vídeo, a informação adicional adicionada pela camada de sistema (camada de transporte), o cabeçalho PES é removido. Isso pode ser feito antes da transferência dos dados para um buffer de fluxo elementar 10 (EB). Isto é, a informação de sincronização correspondente removida, como por exemplo, a estampa de tempo de decodificação td e/ou a estampa de tempo de apresentação tp, deverá ser armazenada como informação lateral para processamento adicional quando os dados são transferidos do MB para EB. Para levar em conta uma reconstrução aceitável, os dados de unidade de acesso A(j) (os dados correspondem a um quadro específico) são removidos não depois de td(j) do buffer 10 de fluxo elementar 10, conforme indicado pela estampa de tempo de decodificação inserida no cabeçalho PES. Novamente, enfatizamos o fato de que a estampa de tempo de decodificação da camada de sistema deve ser igual à estampa de tempo de decodificação na camada de vídeo, já que as estampas de tempo de decodificação da camada de vídeo (indicadas pelas assim chamadas mensagens SEI para cada unidade de acesso A(j)) não são enviadas em texto puro dentro da sequência de bits de vídeo. Portanto, ao utilizar as estampas de decodificação da camada de vídeo, seria necessária ainda a decodificação do fluxo de vídeo e portanto, isso tornaria uma implementação multiplexada simples e eficiente impraticável.
[0011] Um decodificador 12 decodifica o conteúdo de vídeo puro para prover uma imagem decodificada, que é armazenada em um buffer de imagem decodificada 14. Conforme acima indicado, a estampa de tempo de apresentação provida pelo codec de vídeo é utilizada para controlar a apresentação, isto é, a remoção do conteúdo armazenado no buffer de imagem decodificada 14 (DPB).
[0012] Conforme anteriormente ilustrado, o presente padrão para o transporte de códigos de vídeo escaláveis (SVC) define o transporte dos sub-fluxos de bits como fluxos elementares que apresentam pacotes de fluxo de transporte com diferentes números PID. Isso exige uma reordenação adicional dos dados de fluxo elementar contidos nos pacotes de fluxo de transporte para derivar as unidade de acesso individuais que representam um quadro único.
[0013] O esquema de reordenação aparece ilustrado na figura 2. O de-multiplexador 4 de-multiplexa pacotes que apresentam diferentes números PID em cadeias de buffer separadas de 20a a 20c. Ou seja, quando um fluxo de vídeo SVC é transmitido, partes de uma unidade de acesso idênticas transportadas para diferentes sub-fluxos são providas para diferentes buffers de representação de dependência (DRBn) de diferentes cadeias de buffer de 20a a 20c. Finalmente, estes devem ser previstos para um buffer 10 (EB) de fluxo elementar comum 10 (EB), que armazena temporariamente os dados antes de serem providos para o decodificador 22. A imagem decodificada é então armazenada em um buffer 24 de imagem decodificada comum.
[0014] Em outras palavras, partes da mesma unidade de acesso nos diferentes sub-fluxos de bits (que também são chamados de representações de dependência DR) são previamente armazenadas em buffers de representação de dependência (DRB) até que elas possam ser transmitidas ao buffer 10 (EB) de fluxo elementar para remoção. Um sub-fluxo de bits com o elemento de sintaxe máximo “dependência_ID” (DID), que aparece indicado dentro do cabeçalho da unidade NAL, compreende todas as unidades de acesso ou partes das unidades de acesso (ou seja das representações de dependência DR) com a taxa de quadro máxima. Por exemplo, um sub-fluxo que é identificado pela dependência ID = 2, pode conter informação de imagem codificada com uma taxa de quadro de 50Hz, enquanto o sub-fluxo com dependência _ID = 1 pode conter informação para uma taxa de quadro de 25Hz.
[0015] De acordo com as presentes implementações, todas as representações de dependência dos sub-fluxos de bits com tempos iguais de decodificação são transmitidas para o decodificador na qualidade uma unidade de acesso particular da representação de dependência com o valor disponível máximo de DID. Ou seja, quando a representação de dependência com DID = 2 é decodificada, são consideradas informações de representações de dependência com DID = 1 e DID = 0. A unidade acesso é formada utilizando-se todos os pacotes de dados das três camadas que apresentam uma estampa de tempo de decodificação td idêntica. A ordem na qual as diferentes representações de dependência são providas para o decodificador, é definida pelo DID dos sub-fluxos considerados. A de-multiplexação e reordenação é realizada conforme indicado na figura 2. Uma unidade de acesso é abreviada com a letra A. DBP indica um buffer de imagem decodificada e DR indica uma representação de dependência. As representações de dependências são temporariamente armazenadas em buffer de representação de dependência DRB e o fluxo re-multiplexado é armazenado em um buffer de fluxo elementar EB antes da transmissão para o decodificador 22. MB significa buffers de multiplexação e PID significa o programa ID de cada sub-fluxo individual. TB indica os buffers de transporte e td indica a estampa de tempo de codificação.
[0016] Porém, a abordagem anteriormente descrita sempre pressupõe o fato de a mesma informação de sincronização estar presente dentro de todas as representações de dependência dos sub-fluxos de bits associados à mesma unidade de acesso (quadro). Isso, porém, pode não ser verdade ou viável com conteúdo SVC, nem para as estampas de tempo de decodificação nem para as estampas de tempo de apresentação suportadas pelos sincronismos SVC.
[0017] Este problema pode surgir, já que anexo A do padrão H.264/AVC define diversos diferentes perfis e níveis. Geralmente, um perfil define as características que um decodificador em conformidade com aquele perfil particular, deve suportar. Os níveis definem o tamanho dos diferentes buffers dentro do decodificador. Além disso, os assim chamados “decodificadores hipotéticos de referência” (HRD) são definidos como um modelo que simula o comportamento desejado do decodificador, especialmente dos buffers associados no nível selecionado. O modelo HRD também é usado no codificador para assegurar que a informação de sincronização introduzida no fluxo de vídeo codificado pelo codificador não interrompe as restrições do modelo HRD e, consequentemente, o tamanho do buffer no decodificador. Isso, portanto tornaria impossível a decodificação com um decodificador compatível padrão. Um fluxo SVC pode suportar diferentes níveis dentro de diferentes sub-fluxos. Ou seja, a extensão SVC para codificação de vídeo apresenta a possibilidade de criar diferentes sub-fluxos com diferente informação de sincronização. Por exemplo, diferentes taxas de quadro podem ser codificadas dentro dos sub-fluxos individuais de um fluxo de vídeo SVC.
[0018] A extensão escalável de H.264/AVC (SVC) possibilita a codificação de fluxos escaláveis com diferentes taxas de quadro em cada sub-fluxo. As taxas de quadro podem ser um múltiplo de cada uma, por exemplo camada de base 15Hz e camada de otimização temporal 30Hz. Além disso, SVC também permite ter uma razão quadro-taxa alterada entre os sub- fluxos, por exemplo, a camada de base provê 25 Hz e a camada de otimização 30 Hz. Note que o padrão SVC extendido ITU-T H.222.0 (camada de sistema) asystem-layer) é capaz de suportar tais estruturas de codificação.
[0019] A Fig. 3 mostra um exemplo de diferentes taxas de quadro dentro de dois sub-fluxos de um fluxo video de transporte. A camada de base (o primeiro fluxo de dados) 40 pode apresentar uma taxa de quadro de 30Hz e a camada de otimização temporal 42 do canal 2 (o segundo fluxo de dados) podem apresentar uma taxa de quadro de 50Hz. Para a camada de base, a informação de sincronização (DTS e PTS) no cabeçalho PES do fluxo de transporte ou o sincronismo nas SEIs do fluxo de vídeo são suficientes para decodificar a taxa de quadro mais baixa da camada de base.
[0020] Se a informação completa de um quadro de vídeo tiver sido incluída nos pacotes de dados da camada de otimização, a informação de sincronização nos cabeçalhos PES ou nos SEIs em-fluxo na camada de otimização, então serão suficientes para a decodificação das taxas máxima de quadro. Como, porém, MPEG prove mecanismos complexos de referenciação mediante introdução de quadros-p ou quadros-i, pacotes de dados da camada de otimização podem utilizar da camada base como quadros de referência. Isto é, um quadro decodificado da camada de otimização utiliza informação em quadros previstos pela camada base. Essa situação aparece ilustrada na figura 3, onde as duas porções de dados ilustradas 40a e 40b da camada base 40 apresentam estampas de tempo de decodificação correspondentes ao tempo de apresentação para atender as exigências do modelo HRD para decodificadores de camada base bastante lentos. A informação necessária para um decodificador de camada de otimização para a completa decodificação de um quadro completo é fornecida pelos blocos de dados 44a a 44d.
[0021] O primeiro quadro 44a a ser reconstruído com uma taxa de quadro superior exige a informação complete do primeiro quadro 40a da acamada base e das três primeiras porções de dados 42ada camada de otimização. O segundo quadro 44b a ser decodificado com uma taxa de quadro superior exige a informação completa do segundo quadro 40b da camada base e das porções de dados 42b da camada de otimização.
[0022] Um decodificador convencional combinaria todas as unidades NAL das camadas base e de otimização que apresentam a mesma estampa de tempo de decodificação DTS ou estampa de tempo de apresentação PTS. O tempo de remoção da unidade de acesso gerada AU do buffer elementar seria fornecido pela DTS da camada mais elevada (o segundo fluxo de dados). Porém, a associação de acordo com os valores DTS ou PTS dentro das diferentes camadas não é mais possível, uma vez que os valores dos pacotes de dados correspondentes são diferentes. Para manter a associação de acordo com os valores PTS ou DTS, ainda viável, ao segundo quadro 40b da camada base devera ser teoricamente atribuído um valor de estampa de tempo de decodificação conforme indicado pelo quadro hipotético 40c da camada base. Porém, um decodificador compatível com o padrão de camada base apenas (o modelo HRD correspondente à camada base) não poderia mais decodificar mesmo a camada base, já que os buffers associados também são pequenos ou a força de processamento também é lenta para decodificar os dois quadros subsequentes com o deslocamento de tempo de decodificação reduzido.
[0023] Em outras palavras, tecnologias convencionais inviabilizam o uso flexível da informação de uma unidade NAL anterior (quadro 40b) em uma camada mais baixa na qualidade de um quadro de referência para informação de decodificação de uma camada mais alta. Porém, essa flexibilidade pode ser necessária, especialmente quando do transporte de vídeo com diferentes taxas de quadro que apresentam razões desiguais como em diferentes camadas de um fluxo SVC. Um importante exemplo pode ser por exemplo um fluxo de vídeo escalável que apresenta uma taxa de quadro de 24 quadros/segundo (conforme usado nas produções cinematográficas) na camada de otimização e 20 quadros/segundo na camada base. Em um cenário desse, isso pode representar uma economia extrema de bits para codificar o primeiro quadro da camada de otimização como um quadro-p dependendo de um quadro-i 0 da camada base. Os quadros dessas duas camadas apresentariam obviamente porém diferentes estampas de tempo. De-multiplexação apropriada e reordenação para prover uma sequência de quadros na ordem correta para um decodificador subseqüente não seria possível com o uso de técnicas convencionais e com mecanismos de fluxo de transporte existentes descritos nos parágrafos anteriores. Visto que ambas contém informação de sincronização diferente para taxas de quadro diferentes, o padrão de fluxo MPEG e outros conhecidos mecanismos de transporte de fluxo de bits para o transporte de fluxos de vídeo escaláveis ou de dados interdependentes não possibilitam a flexibilidade necessária que permite definir ou referenciar as unidades NAL correspondentes ou porções de dados das mesmas imagens em uma camada diferente.
[0024] Existe a necessidade de prover um esquema de referenciação mais flexível entre porções de dados diferentes de diferentes sub-fluxos contendo porções de dados interelacionadas.
[0025] De acordo com algumas concretizações da presente invenção, essa possibilidade é viabilizada através de métodos para derivar uma decodificação ou estratégia de associação para porções de dados pertencentes a um primeiro e segundo fluxo de dados em um fluxo de transporte. Os diferentes fluxos de dados contém diferentes informações de sincronização, sendo que as informações de sincronização são definidas de forma que os tempos relativos dentro de um único fluxo de dados sejam consistentes. De acordo com algumas concretizações da presente invenção, a associação entre porções de dados de diferentes fluxos de dados é obtida mediante inclusão da informação de associação em um segundo fluxo de dados, que precisa referenciar porções de dados de um primeiro fluxo de dados.De acordo com algumas concretizações, a informação de associação referencia um dos campos de dados já existentes dos pacotes de dados do primeiro fluxo de dados.Assim, pacotes individuais no primeiro fluxo de dados podem ser distintamente referenciados através de pacotes de dados do segundo fluxo de dados.
[0026] De acordo com outras concretizações da presente invenção, a informação das primeiras porções de dados referenciadas pelas porções de dados do segundo fluxo de dados e a informação de sincronização das porções de dados no primeiro fluxo de dados. De acordo com outras concretizações, são referenciadas outras informações distintas das primeiras porções de dados do primeiro fluxo de dados, tais como por exemplo, números ID de pacote contínuos, ou similar.
[0027] De acordo com outras concretizações da presente invenção, nenhum dado adicional é introduzido na porções de dados do segundo fluxo de dados enquanto campos de dados já existente são utilizados diferentemente com a finalidade de incluir a informação de associação. Ou seja, por exemplo, campos de dados reservados para informação de sincronização no Segundo fluxo de dados podem ser utilizados para inserir a informação de associação adicional que permite uma referência distinta para porções de dados de diferentes fluxos de dados.
[0028] Em termos gerais, algumas concretizações da invenção também oferecem a possibilidade de gerar uma representação de dados de vídeo compreendendo um primeiro e um Segundo fluxo de dados nos quais pode ser realizada uma referenciação flexível entre as porções de dados dos diferentes fluxos de dados no fluxo de transporte.
[0029] Várias concretizações da presente invenção serão a seguir descritas sob referência às figuras inseridas, onde:
[0030] A Fig. 1 mostra um exemplo de de- multiplexação de fluxo de transporte;
[0031] A Fig. 2 mostra um exemplo de de- multiplexação de fluxo de transporte SVC;
[0032] A Fig. 3 mostra um exemplo de um fluxo de transporte SVC;
[0033] A Fig. 4 mostra uma concretização de um método para gerar uma representação de um fluxo de transporte;
[0034] A Fig. 5 mostra uma outra concretização de um método para gerar uma representação de um fluxo de transporte;
[0035] A Fig. 6a mostra uma concretização de um método para derivar uma estratégia de decodificação;
[0036] A Fig. 6b mostra outra concretização de um método para derivar uma estratégia de decodificação
[0037] A Fig. 7 mostra um exemplo de uma sintaxe de fluxo de transporte;
[0038] A Fig. 8 mostra outro exemplo de uma sintaxe de fluxo de transporte;
[0039] A Fig. 9 mostra uma concretização de um gerador de estratégia de decodificação; e
[0040] A Fig. 10 mostra uma concretização de um escalonador de pacote de dados.
[0041] A Fig. 4 descreve uma possível implementação de um método inventivo para gerar uma representação de uma sequência de vídeo em um fluxo de dados de transporte 100. Um primeiro fluxo de dados 102 que apresenta primeiras porções de dados de 102a a 102c e um Segundo fluxo de dados 104 que apresenta as segundas porções de dados de 104a e 104b, são combinados para gerar o fluxo de dados de transporte 100. A informação de associação é gerada a qual associa uma primeira porção de dados pré-determinada do primeiro fluxo de dados 102a uma segunda porção de dados 106 do segundo fluxo de dados. No exemplo da figura 4, a associação é feita por incorporação da informação de associação 108na segunda porção de dados 104a. Na concretização ilustrada na figura 4, a informação de associação 108 referencia a primeira informação de sincronização 112 da primeira porção de dados 102a, por exemplo, incluindo um indicador ou copiando a informação se sincronização como a informação de associação. Isso sem falar que outras concretizações podem utilizar outra informação de associação, tais como, por exemplo, números ID de cabeçalho único, números de quadro de fluxo MPEG ou similar.
[0042] Um fluxo de transporte, que compreende a primeira porção de dados 102a e a segunda porção de dados 106a pode portanto ser gerado pela multiplexação das porções de dados na ordem de sua informação de sincronização original.
[0043] Ao invés de introduzir a informação de associação como novos campos de dados exigindo espaço adicional de bit, campos de dados já existentes, tais como, por exemplo, o campo de dados contendo a segunda informação de sincronização 110, podem ser utilizados para receber a informação de associação.
[0044] A Fig. 5 resume uma concretização de um método para gerar uma representação de uma sequência de vídeo que apresenta um primeiro fluxo de dados compreendendo as primeiras porções de dados, sendo que as primeiras porções de dados apresentam a primeira informação de sincronização e o Segundo fluxo de dados compreendendo as segundas porções de dados, sendo que as segundas porções de dados apresentam a segunda informação de sincronização. Em uma etapa de associação 120, a informação de associação é associada a uma segunda porção de dados do Segundo fluxo de dados, sendo que a informação de associação indica uma primeira porção de dados pré-determinada do primeiro fluxo de dados.
[0045] No lado do decodificador, pode ser derivada uma estratégia de decodificação para o fluxo de transporte gerado 210, conforme ilustrado na Fig. 6a. A Fig. 6a ilustra o conceito geral da derivação de uma estratégia de decodificação para uma segunda porção de dados 200 em função de uma porção de dados de referência 402, sendo que a segunda porção de dados 200 é parte de um Segundo fluxo de dados de um fluxo de transporte 210, sendo que o fluxo de transporte compreende um primeiro fluxo de dados e um segundo fluxo de dados, sendo que a primeira porção de dados 202 do primeiro fluxo de dados compreende a primeira informação de sincronização 212 e a segunda porção de dados 200 do segundo fluxo de dados compreender a segunda informação de sincronização 214 assim como a informação de associação 216 indicando uma primeira porção de dados pré-determinada 202 do primeiro fluxo de dados. Em particular, a informação de associação compreende a primeira informação de sincronização 212 ou uma referência ou indicador para a primeira informação de sincronização 212, permitindo assim identificar de forma distinta a primeira porção de dados 202 no primeiro fluxo de dados.
[0046] A estratégia de decodificação para a segunda porção de dados 200 é derivada utilizando-se a segunda informação de sincronização 214 como sendo a indicação para um tempo de processamento (o tempo de decodificação ou o tempo de apresentação) para a segunda porção de dados e a primeira porção de dados referenciada 202 do primeiro fluxo de dados como uma porção de dados de referência. Ou seja, assim que a estratégia de decodificação é derivada em uma etapa de geração de estratégia 220, as porções de dados podem ser além disso processadas ou decodificadas (no caso de dados de vídeo) através de um método de decodificação subsequente 230. Quando a segunda informação de sincronização 214 é usada como uma indicação para o tempo de processamento t2 e quando a porção de dados de referência é conhecida, o decodificador pode ser provido de porções de dados na ordem correta no tempo certo. Ou seja, o conteúdo de dados correspondente à primeira porção de dados 202 é previsto para o decodificador primeiro, seguido pelo conteúdo de dados correspondente à segunda porção de dados 200. O instante de tempo no qual conteúdos de dados são previstos para o decodificador 232 é indicado pela segunda informação de sincronização 214 da segunda porção de dados 200.
[0047] Uma vez que a estratégia de decodificação é derivada, a primeira porção de dados pode ser processada antes da segunda porção de dados. Processamento pode significar em uma concretização que a primeira porção de dados é acessada antes da segunda porção de dados. Em uma outra concretização, o acesso pode compreender a extração de uma informação necessária para decodificar a segunda porção de dados e, um decodificador subseqüente. Isso pode ser por exemplo a informação lateral associada ao fluxo de vídeo.
[0048] Nos parágrafos seguintes, é descrita uma concretização particular através da aplicação do conceito inventivo de referenciação flexível de porções de dados para o padrão de fluxo de transporte MPEG (ITU-T Rec. H.222.0 | ISO/IEC 13818-1:2007 FPDAM3.2 (extensões SVC), Antalya, Turquia, Janeiro 2008: [3] ITU-T Rec. H.264 200X 4a edição (SVC) | ISO/IEC 14496-10:200X 4a edição (SVC)).
[0049] Conforme anteriormente resumido, concretizações da presente invenção podem conter, ou adicionar informação adicional para identificar estampas de tempo nos sub-fluxos (fluxos de dados) com valores DID mais baixos (por exemplo, o primeiro fluxo de dados de um fluxo de transporte compreendendo dois fluxos de dados). A estampa de tempo da unidade de acesso reordenada A(j) é fornecida pelo sub-fluxo com o valor de DID mais alto (o segundo fluxo de dados) ou com o DID máximo quando mais de dois fluxos de dados estão presentes. Embora as estampas de tempo do sub- fluxo com o DID máximo da camada de sistema possam ser usadas para decodificação e/ou sincronização de saída, pode-se obter uma reordenação através da informação adicional de sincronização by additional timing information tref que indica a representação de dependência correspondente no sub- fluxo com outro valor (p.ex o próximo inferior) de DID. Esse procedimento é ilustrado na figura 7. Em algumas concretizações, a informação adicional pode ser transportada para um campo de dados adicional, p.ex para o delimitador de representação de dependência SVC ou, por exemplo, como uma extensão no cabeçalho PES. Alternativamente, ela pode ser transportada para campos de informação de sincronização existentes (p.ex. para os campos de cabeçalho PES), se estiver adicionalmente sinalizado que o conteúdo dos respectivos campos de dados serão alternativamente usados. Na concretização adaptada ao fluxo de transporte MPEG 2 ilustrado na figura 6b, a reordenação pode ser feita conforme abaixo detalhado. A Fig. 6b mostra múltiplas estruturas cujas funcionalidades são descritas através das seguintes abreviações:
[0050] An(j)= jth unidade de acesso de fluxo de subbits n é decodificada em tdn(jn), onde n==0 indica a camada base
[0051] DIDn = NAL cabeçalho de unidade element de sintaxe dependência_id em fluxo de sub-bits n
[0052] DPBn = buffer de imagem decodificada de fluxo de sub-bits
[0053] DRn(jn)= jnth representação de dependência no fluxo de sub-bits n
[0054] DRBn = buffer de representação de dependência de fluxo de sub-bits n
[0055] EBn = buffer de fluxo elementar de fluxo de sub-bits n
[0056] MBn = buffer de multiplexação de fluxo de sub-bits n
[0057] PIDn = programa ID de fluxo de sub-bits n no fluxo de transporte.
[0058] TBn = buffer de transporte de fluxo de sub bits n
[0059] tdn(jn)= estampa de tempo de decodificação da representação de dependência jnth no fluxo de sub-bits n
[0060] tdn(jn) pode diferir de pelo menos um tdm(jm) na mesma unidade de acesso An(j)
[0061] tpn(jn)= apresentação estampa de tempo da representação de dependência jnth no fluxo de sub-bits n
[0062] tpn(jn) pode diferir de pelo menos um tpm(jm) na mesma unidade de acesso An(j)
[0063] trefn(Jn)= referência de estampa de tempo ao fluxo de sub-bits inferior (diretamente referenciado) do jnth
[0064] Representação de dependência no fluxo de sub- bits n, onde tref é trefn(jn)
[0065] transportada adicionalmente para tdn(jn) está no pacote PES p.ex no delimitador de representação de dependência SVC NAL
[0066] O fluxo de transporte recebido 300 é processado conforme segue.
[0067] Todas as representações de dependência DRz(jz) que iniciam com o valor máximo, z = n, na ordem de recebimento jn de DRn(jn) no sub-fluxo sub-stream n. Ou seja, os sub-fluxos são de-multiplexados pelo de-multiplexador 4, conforme indicado pelos números individuais PID. O conteúdo das porções de dados recebido é armazenado nas DRBs das cadeias de buffer individuais dos diferentes fluxos de subbits. Os dados das DRBs são extraídos na ordem de z para criar a unidade de acesso jnth An(jn) do sub-fluxo n, de acordo com a seguinte regra:
[0068] Para tanto, considera-se que o fluxo de subbits y seja um fluxo de sub-bits que apresenta um DID superior ao do fluxo de sub-bits x. Ou seja, a informação no fluxo de sub-bits y depende da informação no fluxo de subbits x. Para cada dois DRx(jx) eDRy(jy) correspondentes, trefy(jy) deve ser igual a tdx(jx). Ao se aplicar esta instrução ao padrão de fluxo de transporte MPEG 2, pode-se obter o seguinte:
[0069] A informação de associação tref pode ser indicada adicionando-se um campo na extensão de cabeçalho PES, que também pode ser usada através de padrões futuros de codificação escaláveis/multi-view. Para o respectivo campo a ser analisado, tanto o flag de extensão PES como o flag 2 de extensão PES podem ser ajustados a unidade e o flaf de extensão id de fluxo pode ser ajustado a 0. A informação de associação tref poderia ser sinalizada com o uso do bit reservado da seção de extensão PES.
[0070] Também existe a possibilidade de definir um tipo de extensão adicional PES, que também seria preparado para extensões futuras.
[0071] De acordo com uma outra concretização, um campo de dados adicional para a informação de associação pode ser adicionado ao delimitador de representação de dependência SVC. Assim, um bit de sinalização pode ser introduzido para indicar a presença do novo campo dentro da representação de dependência SVC. Tal bit adicional pode, por exemplo, ser introduzido no descritor SVC ou no descritor de hierarquia.
[0072] De acordo com uma concretização, pode ser implementada extensão do pacote de cabeçalho PES utilizando- se os flags existentes a seguir ou introduzindo-se os seguintes flags adicionais:
[0073]
[0074] Flag de referência de estampa de tempo - Este é um flag 1-bit, quando ajustado a ‘1’ indicando a presença de.
[0075] Flag de referência PTS_DTS - Este é um flag 1-bit.
[0076] Flags PTR_DTR_- Este é um campo 2-bit. Quando o campo de flags PTR_DTR_flags estiver ajustado a '10', os campos PTR seguintes conterão uma referência a um campo PTS em outro fluxo de sub-bits SVC de vídeo ou a camada base AVC com o valor próximo inferior de dependência ID de elemento de sintaxe de cabeçalho de unidade NAL conforme presente no fluxo de sub-bits de vídeo SVC que contém esta extensão dentro do cabeçalho PES. Quando o campo de flags PTR_DTR_é ajustado a '01' os campos DTR a seguir conterão uma referência a um campo a DTS em outro fluxo de sub-bits de vídeo SVC ou a camada base AVC com o valor próximo inferior da dependência ID de elemento de sintaxe do cabeçalho de unidade NAL conforme presente no fluxo de sub-bits de vídeo SVC que contém esta extensão dentro do cabeçalho PES. Quando o campo de flags PTR_DTR_ é ajustado a '00' não estarão presentes referências PTS ou DTS no cabeçalho de pacote PES. O valor '11' é proibido.
[0077] PTR (referência do tempo de representação)-Este é um número 33-bit codificado em três campos separados. Este é uma referência a um campo PTS em outro fluxo de sub-bits de vídeo SVC ou a camada base AVC com o valor próximo inferior de dependência ID de elemento de sintaxe de cabeçalho de unidade NAL conforme presente no fluxo de sub-bits de vídeo SVC contendo esta extensa dentro do cabeçalho PES.
[0078] DTR (referência de tempo de apresentação) Este é um número 33-bit codificado em três campos separados. Este é uma referência a um campo DTS em outro fluxo de subbits de vídeo SVC ou a camada base AVC com o valor próximo inferior de dependência ID de elemento de sintaxe de cabeçalho de unidade NAL conforme presente no fluxo de sub- bits de vídeo SVC que contém esta extensão dentro do cabeçalho PES.
[0079] Na figura 7 aparece indicado um exemplo de uma sintaxe correspondente que utiliza os flags existentes e outros flags de dados adicionais.
[0080] Um exemplo de uma sintaxe, que pode ser usada ao se implementar a segunda opção anteriormente descrita, aparece ilustrado na figura 8. Para implementar a informação de associação adicional, os elementos de sintaxe a seguir podem ser atribuídos aos seguintes números ou valores:
[0081] Semântica de unidade NAL de delimitador de representação de dependência SVC.
[0082] zero-bit proibido -deve ser igual a 0x00
[0083] nal_ref_idc -deve ser igual a 0x00
[0084] nal_unit_type -deve ser igual a 0x18
[0085] t_ref [32...0] - deve ser igual à estampa de tempo de decodificação DTS conforme indicada no cabeçalho PES para a representação de dependência com o valor próximo inferior de dependência ID de elemento de sintaxe de cabeçalho de unidade NAL da mesma unidade de acesso em um fluxo de sub bits de video SVC ou a camada base AVC. Onde o t_ref é ajustado como segue com relação aos DTS da representação de dependência referenciada: DTS[14..0] é igual a t_ref[14..0], DTS[29..15]é igual a t_ref[29..15], DTS[32..30] é igual a t_ref[32..30].
[0086] Maker_bit - é um campo de 1-bit e deve ser igual a “1”.
[0087] Outras concretizações da presente invenção podem ser implementadas como hardware dedicado ou em circuito integrado de hardware.
[0088] A Fig. 9, por exemplo, mostra um gerador de estratégia de decodificação para uma segunda porção de dados em função de uma porção de dados de referência, sendo que a segunda porção de dados é parte de um segundo fluxo de dados de um fluxo de transporte que compreende um primeiro fluxo e um Segundo fluxo de dados, sendo que as primeiras porções de dados do primeiro fluxo de dados compreende primeira informação de sincronização e sendo que a segunda porção de dados do segundo fluxo de dados compreende segunda informação de sincronização assim como informação de associação que indica primeira porção de dados pré-determinada do primeiro fluxo de dados.
[0089] O gerador de estratégia de decodificação 400 compreende um gerador de informação de referência 402 assim como um gerador de estratégia 404. O gerador de informação de referência 402 é adaptado para derivar a porção de dados de referência para a segunda porção de dados utilizando a primeira porção de dados pré-determinada do primeiro fluxo de dados. O gerador de estratégia 404 é adaptado para derivar a estratégia de decodificação para a segunda porção de dados utilizando a segunda informação de sincronização conforme a indicação para o tempo de processamento para a segunda porção de dados e para a porção de dados de referência derivada pelo gerador de informação de referência 402.
[0090] De acordo com uma outra concretização da presente invenção, um decodificador de vídeo inclui um gerador de estratégia de decodificação conforme ilustrado na figura 9 a fim de criar uma estratégia de ordem de decodificação para porções de dados de vídeo presente dentro de pacotes de dados de diferentes fluxos de dados associados a diferentes níveis de um codec de vídeo escalável.
[0091] As concretizações da presente invenção, portanto, permitem criar um fluxo de video codificado de modo eficiente, que compreende informação sobre diferentes qualidades de um fluxo de vídeo codificado. Devido à referenciação flexível, uma quantidade significativa de taxa de bit pode ser preservada já que é possível evitar transmissão redundante de informação dentro de camadas individuais.
[0092] A aplicação da referenciação flexível entre diferentes porções de dados de diferentes fluxos de dados não é somente útil no contexto de codificação de vídeo. Em geral, ela pode ser aplicada a qualquer tipo de pacotes de dados de diferentes fluxos de dados.
[0093] A Fig. 10 mostra uma concretização de um programador de pacote de dados 500 compreendendo um gerador de ordem de processo 502, um receptor opcional 504 e um reordenador opcional 506. O receptor é adaptado para receber um fluxo de transporte que compreende um primeiro fluxo de dados e um Segundo fluxo de dados que apresenta uma primeira e segunda porções de dados, sendo que a primeira porção de dados compreende primeira informação de sincronização e sendo que a segunda porção de dados compreende segunda informação de sincronização e informação de associação.
[0094] O gerador de ordem de processo 502 é adaptado para gerar um programa de processamento que apresenta uma ordem de processamento, de tal forma que a segunda porção de dados é processada após a primeira porção de dados referenciada do primeiro fluxo de dados. O reordenador 506 é adaptado para gerar a segunda porção de dados 452 após a primeira porção de dados 450.
[0095] Conforme além disso ilustrado na Fig.10, o primeiro e segundo fluxo de dados não devem estar necessariamente contidos dentro de um fluxo de dados de transporte multiplexado, conforme indicado como opção A. Ao contrário, também é possível transmitir o primeiro e segundo fluxo de dados como fluxos dedados separados, conforme indicado pela opção B da Fig. 10.
[0096] Múltipla transmissão e roteiros de fluxo de dados podem ser melhorados através da referenciação flexível introduzida nos parágrafos anteriores. Outros roteiros de aplicação são apresentados nos parágrafos seguintes.
[0097] Um fluxo de mídia, com escalável ou multiview ou multi descrição, ou qualquer outra propriedade, que permita dividir a mídia em subconjuntos lógicos, é transferido através de diferentes canais ou armazenado em diferentes recipientes de armazenamento. A divisão de fluxo de mídia também pode exigir a divisão de frames de mídia individuais ou unidade de acesso necessários em sua totalidade para decodificação em subpartes. Para recuperar a ordem de decodificação dos frames ou unidades de acesso após transmissão através de diferentes canais ou armazenamento em diferentes recipientes de armazenamento, é necessário um processo para recuperação de ordem de decodificação, já que a confiança na ordem de transmissão nos diferentes canais ou na ordem de armazenamento em diferentes recipientes de armazenamento não pode permitir a recuperação da ordem de decodificação do fluxo completo de mídia ou qualquer subconjunto independentemente aplicável do fluxo completo de mídia. Um sub conjunto A do fluxo de mídia completo é foi estendido de subpartes particulares de unidades de acesso para novas unidades de acesso do subconjunto de fluxo de mídia. Os subconjuntos de fluxo de mídia podem requerer estampas de tempo de decodificação e de apresentação por frame/unidade de acesso dependendo do número de subconjuntos do fluxo de mídia usado para recuperar unidades de acesso. Alguns canais provêem estampas de tempo de decodificação e/ou de apresentação nos canais, que podem ser usados para recuperar ordem de decodificação. Adicionalmente, canais provêem tipicamente a ordem de decodificação dentro do canal através da transmissão ou ordem de armazenamento ou através de meios adicionais. Para recuperar a ordem de decodificação entre diferentes canais ou os diferentes recipientes de armazenamento é necessária informação adicional. Para pelo menos um canal de transmissão ou recipiente de armazenamento, a ordem de decodificação deve ser derivável através de qualquer meio. Ordem de decodificação dos outros canais é portanto fornecidas pela ordem de decodificação derivável mais os valores que indicam um frame/unidade de acesso ou subpartes destes nos diferentes canais de transmissão ou recipientes de armazenamento que é derivável para a ordem de decodificação. Ponteiros podem ser estampas de tempo de decodificação ou estampas de tempo de apresentação, mas também podem ser seqüências numerosas que indicam ordem de transmissão ou de armazenagem em um canal particular ou recipiente ou podem ser quaisquer outros indicadores que permitem identificar um frame/unidade de acesso no subconjunto de fluxo de mídia que é derivável para a ordem de decodificação.
[0098] Um fluxo de mídia pode ser dividido em subconjuntos de fluxo de mídia e é transportado através de diferentes canais ou armazenado em diferentes recipientes de armazenamento, ou seja, frames de mídia/unidades de acesso de mídia completes ou subconjunto destes estão presentes nos diferentes canais ou diferentes recipientes de armazenamento. A combinação de sub-partes dos frames/unidades de acesso do fluxo de mídia resulta em subconjuntos decodificáveis do fluxo de mídia.
[0099] Pelo menos em um canal de transmissão ou recipiente de armazenamento, a mídia é transportada ou armazenada em ordem de decodificação ou em pelo menos um canal de transmissão ou recipiente de armazenamento a ordem de decodificação é derivável através de quaisquer outros meios.
[00100] Pelo menos, o canal para o qual a ordem de decodificação pode ser recuperada provê pelo menos um indicador, que pode ser usado para identificar um frame particular/unidade de acesso ou subparte destes. Este indicador é designado a frames/unidades de acesso ou subpartes destes em pelo menos outro canal ou recipiente, que seja então derivável para a ordem de decodificação.
[00101] Ordem de decodificação de frames/unidades de acesso ou sub partes destes em qualquer outro canal ou recipiente que seja derivável para a ordem de decodificação, é dada por identificadores que permitem encontrar frames/unidades de acesso correspondentes ou subpartes destes no canal ou recipiente que seja derivável para a ordem de decodificação. A ordem de decodificação respectiva é então dada pela ordem de decodificação referenciada no canal, que é derivável para a ordem de decodificação.
[00102] Estampas de tempo de decodificação e/ou de apresentação podem ser usadas como indicadores.
[00103] Podem ser usados como indicadores exclusivamente ou adicionalmente indicadores de visualização de um fluxo de mídia de codificação multi-view.
[00104] Podem ser usados como indicadores exclusivamente ou adicionalmente indicadores que indicam uma divisão de um fluxo de mídia de codificação mulit-view.
[00105] Quando estampas de tempo são usadas como indicador, as estampas de tempo do nível mais elevado são usadas para atualizar as estampas de tempo presentes em subpartes inferiores do frame / unidade de acesso para toda a unidade de acesso.
[00106] Embora as concretizações anteriormente descritas se refiram principalmente a codificação de vídeo e transmissão de vídeo, a referenciação flexível não limitada a aplicações de vídeo. Pelo contrário, todas as outras aplicações de transmissão divididas em pacotes podem se beneficiar com a aplicação de estratégias de decodificação e estratégias de codificação conforme anteriormente descrito, como por exemplo aplicações de fluxo de áudio que utilizam fluxos de áudio de diferente qualidade ou outras aplicações multi-fluxo.
[00107] E isso sem dizer que a aplicação não depende dos canais de transmissão selecionados. Quaisquer tipos de canais de transmissão podem ser usados, tais como por exemplo transmissão over-the-air, transmissão a cabo, transmissão por fibra, teledifusão via satélite, e similares. Além disso, diferentes fluxos de dados podem ser providos por diferentes canais de transmissão. Por exemplo, o canal base de um fluxo que requer apenas largura da banda limitada pode ser transmitido via rede GSM, enquanto somente aqueles que apresentam pronto para uso um telefone celular UMTS podem ser capazes de receber a camada de implementação que exige uma taxa maior de bit.
[00108] Dependendo de certas exigências de implementação dos métodos inventivos, os métodos inventivos podem ser implementados em hardware ou em software. A implementação pode ser feita utilizando-se um meio de armazenamento digital, particularmente um disco, DVD ou um CD que apresente sinais eletronicamente legíveis ali armazenados, que cooperam com o sistema de computador programável de tal forma que os métodos inventivos sejam realizados. Em geral, a presente invenção é, portanto, um produto de programa de computador com um código de programa armazenado em um portador legível por máquina, sendo o código de programa operativo para executar os métodos inventivos quando o produto de programa de computador roda em um computador. Em outras palavras, os métodos inventivos são, portanto, um programa de computador que apresenta um código de programa para executar pelo menos um dos métodos inventivos quando o programa de computador roda em um computador.
[00109] Embora o exposto adiante tenha sido particularmente mostrado e descrito com referência a concretizações particulares a esse respeito, o versado na técnica perceberá que é possível realizar várias outras alterações na forma e em detalhes sem que o espírito e escopo desta sejam abandonados. Naturalmente que várias alterações poderão ser feitas relativamente à adaptação a diferentes concretizações sem que os conceitos mais amplos aqui descritos e compreendidos pelas reivindicações a seguir sejam abandonados.
Claims (6)
1. “Método para derivar uma programação de processamento para uma segunda porção de dados dependendo de uma porção de dados de referência, a segunda porção de dados sendo parte de um segundo fluxo de dados de um fluxo de transporte, o fluxo de transporte compreendendo o segundo fluxo de dados e um primeiro fluxo de dados compreendendo o primeiro porções de dados, as primeiras porções de dados compreendendo a primeira informação de temporização e a segunda porção de dados do segundo fluxo de dados compreendendo a segunda informação de temporização e informação de associação indicando uma primeira porção de dados predeterminada do primeiro fluxo de dados, caracterizado por compreender: derivar a programação de processamento tendo uma ordem de processamento de modo que a segunda porção de dados seja processada após a primeira porção de dados predeterminada do primeiro fluxo de dados; e usar a segunda informação de tempo como uma indicação para um tempo de processamento para a porção de dados de referência.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a segunda porção de dados está associada à primeira porção de dados predeterminada usando um carimbo de tempo de apresentação da primeira porção de dados predeterminada como a informação de associação, o carimbo de tempo de apresentação indicando uma apresentação tempo da primeira porção de dados predeterminada dentro da primeira camada do fluxo de dados de vídeo múltiplas visões escalável.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que usa ainda uma informação de visualização indicando uma das diferentes visualizações possíveis dentro do fluxo de dados de vídeo de múltiplas visualizações ou uma informação de partição indicando uma das diferentes partições possíveis de um fluxo de dados de vídeo de múltiplas visualizações do primeiro parte de dados como a informação de associação.
4. Método para derivar uma programação de processamento, de acordo com qualquer uma das reivindicações de 1 a 3, caracterizado pelo fato de que compreende ainda: receber a primeira e a segunda porções de dados; e anexar a segunda parte de dados à primeira parte de dados em um fluxo de bits de saída.
5. Programador de pacote de dados, caracterizado por ser adaptado para gerar uma programação de processamento para uma segunda porção de dados dependendo de uma porção de dados de referência, a segunda porção de dados sendo parte de um segundo fluxo de dados de um fluxo de transporte, o fluxo de transporte compreendendo o segundo fluxo de dados e um primeiro fluxo de dados compreendendo primeiras porções de dados, as primeiras porções de dados compreendendo primeiras informações de tempo e a segunda porção de dados do segundo fluxo de dados compreendendo segunda informação de tempo e informação de associação indicando uma primeira porção de dados predeterminada do primeiro fluxo de dados, compreendendo: um gerador de ordem de processo adaptado para gerar uma programação de processamento tendo uma ordem de processamento de modo que a segunda porção de dados seja processada após a primeira porção de dados predeterminada do primeiro fluxo de dados.
6. Programador de pacote de dados, de acordo com a reivindicação 5, caracterizado pelo fato de que compreende ainda: um receptor adaptado para receber a primeira e a segunda porções de dados; e um reordenador adaptado para emitir a segunda parte de dados após a primeira parte de dados.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EPPCT/EP2008/003384 | 2008-04-25 | ||
EP2008003384 | 2008-04-25 | ||
PCT/EP2008/010258 WO2009129838A1 (en) | 2008-04-25 | 2008-12-03 | Flexible sub-stream referencing within a transport data stream |
BRPI0822167-7A BRPI0822167B1 (pt) | 2008-04-25 | 2008-12-03 | Método para derivar uma estratégia de decodificação |
Publications (1)
Publication Number | Publication Date |
---|---|
BR122021000421B1 true BR122021000421B1 (pt) | 2022-01-18 |
Family
ID=40756624
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122021000421-8A BR122021000421B1 (pt) | 2008-04-25 | 2008-12-03 | Referenciação de sub-fluxo flexível dentro de um fluxo de dados de transporte |
BRPI0822167-7A BRPI0822167B1 (pt) | 2008-04-25 | 2008-12-03 | Método para derivar uma estratégia de decodificação |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0822167-7A BRPI0822167B1 (pt) | 2008-04-25 | 2008-12-03 | Método para derivar uma estratégia de decodificação |
Country Status (8)
Country | Link |
---|---|
US (1) | US20110110436A1 (pt) |
JP (1) | JP5238069B2 (pt) |
KR (1) | KR101204134B1 (pt) |
CN (1) | CN102017624A (pt) |
BR (2) | BR122021000421B1 (pt) |
CA (2) | CA2924651C (pt) |
TW (1) | TWI463875B (pt) |
WO (1) | WO2009129838A1 (pt) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2204965B1 (en) * | 2008-12-31 | 2016-07-27 | Google Technology Holdings LLC | Device and method for receiving scalable content from multiple sources having different content quality |
US8566393B2 (en) * | 2009-08-10 | 2013-10-22 | Seawell Networks Inc. | Methods and systems for scalable video chunking |
WO2012009246A1 (en) * | 2010-07-13 | 2012-01-19 | Thomson Licensing | Multi-component media content streaming |
EP2666296A4 (en) * | 2011-01-19 | 2013-12-25 | Ericsson Telefon Ab L M | INDICATION OF BITS FLOW SUBASSEMBLIES |
US9215473B2 (en) | 2011-01-26 | 2015-12-15 | Qualcomm Incorporated | Sub-slices in video coding |
US9077998B2 (en) | 2011-11-04 | 2015-07-07 | Qualcomm Incorporated | Padding of segments in coded slice NAL units |
US9124895B2 (en) | 2011-11-04 | 2015-09-01 | Qualcomm Incorporated | Video coding with network abstraction layer units that include multiple encoded picture partitions |
WO2013077670A1 (ko) * | 2011-11-23 | 2013-05-30 | 한국전자통신연구원 | 스케일러빌리티 및 뷰 정보를 제공하는 스트리밍 서비스를 위한 방법 및 장치 |
US9565452B2 (en) * | 2012-09-28 | 2017-02-07 | Qualcomm Incorporated | Error resilient decoding unit association |
US9641906B2 (en) * | 2012-10-09 | 2017-05-02 | Sharp Kabushiki Kaisha | Content transmission device, content playback device, content distribution system, method for controlling content transmission device, method for controlling content playback device, control program, and recording medium |
CN109089122B (zh) * | 2013-01-18 | 2022-08-05 | 弗劳恩霍夫应用研究促进协会 | 一种前向纠错数据生成器和前向纠错解码器 |
CA2908853C (en) | 2013-04-08 | 2019-01-15 | Arris Technology, Inc. | Signaling for addition or removal of layers in video coding |
JP6605789B2 (ja) * | 2013-06-18 | 2019-11-13 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 送信方法、受信方法、送信装置、および、受信装置 |
JP5789004B2 (ja) * | 2013-08-09 | 2015-10-07 | ソニー株式会社 | 送信装置、送信方法、受信装置、受信方法、符号化装置および符号化方法 |
EP3057330B1 (en) | 2013-10-11 | 2020-04-01 | Sony Corporation | Transmission device, transmission method, and reception device |
CN110636292B (zh) | 2013-10-18 | 2022-10-25 | 松下控股株式会社 | 图像编码方法以及图像解码方法 |
JP6538324B2 (ja) | 2013-10-18 | 2019-07-03 | パナソニック株式会社 | 画像符号化方法および画像符号化装置 |
US10291922B2 (en) * | 2013-10-28 | 2019-05-14 | Arris Enterprises Llc | Method and apparatus for decoding an enhanced video stream |
US10225566B2 (en) * | 2013-11-01 | 2019-03-05 | Sony Corporation | Transmission device, transmission method, reception device, and reception method |
MX360655B (es) | 2014-05-21 | 2018-11-12 | Arris Entpr Llc | Gestión individual de memorias intermedias en transporte de video escalable. |
MX364550B (es) | 2014-05-21 | 2019-04-30 | Arris Entpr Llc | Señalización y selección para la mejora de capas en vídeo escalable. |
CN105933800A (zh) * | 2016-04-29 | 2016-09-07 | 联发科技(新加坡)私人有限公司 | 一种视频播放方法及其控制终端 |
US10554711B2 (en) * | 2016-09-29 | 2020-02-04 | Cisco Technology, Inc. | Packet placement for scalable video coding schemes |
US10567703B2 (en) * | 2017-06-05 | 2020-02-18 | Cisco Technology, Inc. | High frame rate video compatible with existing receivers and amenable to video decoder implementation |
US20200013426A1 (en) * | 2018-07-03 | 2020-01-09 | Qualcomm Incorporated | Synchronizing enhanced audio transports with backward compatible audio transports |
US11991376B2 (en) * | 2020-04-09 | 2024-05-21 | Intel Corporation | Switchable scalable and multiple description immersive video codec |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3788532T2 (de) * | 1986-03-31 | 1994-04-21 | Nippon Electric Co | Funkübertragungssystem mit vereinfachter Fehlerkorrekturschaltung und schneller Kanalumschaltung. |
JP3496725B2 (ja) * | 1992-10-16 | 2004-02-16 | ソニー株式会社 | 多重化データ分離装置 |
JP3197766B2 (ja) * | 1994-02-17 | 2001-08-13 | 三洋電機株式会社 | Mpegオーディオデコーダ、mpegビデオデコーダおよびmpegシステムデコーダ |
US5745837A (en) * | 1995-08-25 | 1998-04-28 | Terayon Corporation | Apparatus and method for digital data transmission over a CATV system using an ATM transport protocol and SCDMA |
US5630005A (en) * | 1996-03-22 | 1997-05-13 | Cirrus Logic, Inc | Method for seeking to a requested location within variable data rate recorded information |
AR020608A1 (es) * | 1998-07-17 | 2002-05-22 | United Video Properties Inc | Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto |
JP4724919B2 (ja) * | 2000-06-02 | 2011-07-13 | ソニー株式会社 | 記録装置および記録方法、再生装置および再生方法、並びに記録媒体 |
GB2364841B (en) * | 2000-07-11 | 2002-09-11 | Motorola Inc | Method and apparatus for video encoding |
US7123658B2 (en) * | 2001-06-08 | 2006-10-17 | Koninklijke Philips Electronics N.V. | System and method for creating multi-priority streams |
US7039113B2 (en) * | 2001-10-16 | 2006-05-02 | Koninklijke Philips Electronics N.V. | Selective decoding of enhanced video stream |
DE60334780D1 (de) * | 2002-03-08 | 2010-12-16 | France Telecom | Verfahren zum übertragen von abhängigen datenströmen |
US20040001547A1 (en) * | 2002-06-26 | 2004-01-01 | Debargha Mukherjee | Scalable robust video compression |
WO2004057873A1 (en) * | 2002-12-20 | 2004-07-08 | Koninklijke Philips Electronics N.V. | Method and apparatus for handling layered media data |
WO2005034517A1 (en) * | 2003-09-17 | 2005-04-14 | Thomson Licensing S.A. | Adaptive reference picture generation |
US7860161B2 (en) * | 2003-12-15 | 2010-12-28 | Microsoft Corporation | Enhancement layer transcoding of fine-granular scalable video bitstreams |
US20050254575A1 (en) * | 2004-05-12 | 2005-11-17 | Nokia Corporation | Multiple interoperability points for scalable media coding and transmission |
US8837599B2 (en) * | 2004-10-04 | 2014-09-16 | Broadcom Corporation | System, method and apparatus for clean channel change |
US7995656B2 (en) * | 2005-03-10 | 2011-08-09 | Qualcomm Incorporated | Scalable video coding with two layer encoding and single layer decoding |
WO2006118433A1 (en) * | 2005-05-04 | 2006-11-09 | Samsung Electronics Co., Ltd. | Adaptive data multiplexing method in ofdma system and transmission/reception apparatus thereof |
US20070022215A1 (en) * | 2005-07-19 | 2007-01-25 | Singer David W | Method and apparatus for media data transmission |
KR100772868B1 (ko) * | 2005-11-29 | 2007-11-02 | 삼성전자주식회사 | 복수 계층을 기반으로 하는 스케일러블 비디오 코딩 방법및 장치 |
US20070157267A1 (en) * | 2005-12-30 | 2007-07-05 | Intel Corporation | Techniques to improve time seek operations |
EP2060123A4 (en) * | 2006-09-07 | 2016-05-04 | Lg Electronics Inc | METHOD AND DEVICE FOR DECODING / ENCODING A VIDEO SIGNAL |
EP1937002B1 (en) * | 2006-12-21 | 2017-11-01 | Rohde & Schwarz GmbH & Co. KG | Method and device for estimating the image quality of compressed images and/or video sequences |
US8279946B2 (en) * | 2007-11-23 | 2012-10-02 | Research In Motion Limited | System and method for providing a variable frame rate and adaptive frame skipping on a mobile device |
JP2009267537A (ja) * | 2008-04-22 | 2009-11-12 | Toshiba Corp | 階層化されたエレメンタリーストリームの多重化装置、分離装置及び多重化方法並びにプログラム |
-
2008
- 2008-12-03 JP JP2011505369A patent/JP5238069B2/ja active Active
- 2008-12-03 BR BR122021000421-8A patent/BR122021000421B1/pt active IP Right Grant
- 2008-12-03 BR BRPI0822167-7A patent/BRPI0822167B1/pt active IP Right Grant
- 2008-12-03 CA CA2924651A patent/CA2924651C/en active Active
- 2008-12-03 US US12/989,135 patent/US20110110436A1/en not_active Abandoned
- 2008-12-03 WO PCT/EP2008/010258 patent/WO2009129838A1/en active Application Filing
- 2008-12-03 KR KR1020107023598A patent/KR101204134B1/ko active IP Right Grant
- 2008-12-03 CN CN2008801287904A patent/CN102017624A/zh active Pending
- 2008-12-03 CA CA2722204A patent/CA2722204C/en active Active
-
2009
- 2009-04-16 TW TW098112708A patent/TWI463875B/zh active
Also Published As
Publication number | Publication date |
---|---|
KR20100132985A (ko) | 2010-12-20 |
TW200945901A (en) | 2009-11-01 |
CN102017624A (zh) | 2011-04-13 |
US20110110436A1 (en) | 2011-05-12 |
JP5238069B2 (ja) | 2013-07-17 |
JP2011519216A (ja) | 2011-06-30 |
CA2722204A1 (en) | 2009-10-29 |
BRPI0822167B1 (pt) | 2021-03-30 |
WO2009129838A1 (en) | 2009-10-29 |
TWI463875B (zh) | 2014-12-01 |
CA2722204C (en) | 2016-08-09 |
CA2924651C (en) | 2020-06-02 |
CA2924651A1 (en) | 2009-10-29 |
BRPI0822167A2 (pt) | 2015-06-16 |
KR101204134B1 (ko) | 2012-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR122021000421B1 (pt) | Referenciação de sub-fluxo flexível dentro de um fluxo de dados de transporte | |
JP2011519216A5 (pt) | ||
US7623673B2 (en) | Versatile watermark transport system | |
US11368744B2 (en) | Device and associated method for using layer description and decoding syntax in multi-layer video | |
JP5450810B2 (ja) | Mpeg−2システムにおけるマルチビュービデオ符号化サブビットストリームのアセンブル | |
US10187646B2 (en) | Encoding device, encoding method, transmission device, decoding device, decoding method, and reception device | |
KR20160046761A (ko) | 송신 장치, 송신 방법, 수신 장치 및 수신 방법 | |
US8731065B2 (en) | Dynamic image stream processing method and device, and dynamic image reproduction device and dynamic image distribution device using the same | |
JP2019220974A (ja) | 復号装置 | |
BR112016023443B1 (pt) | Dispositivo de transmissão e recepção, e, método de recepção e transmissão | |
BRPI0211109B1 (pt) | método para transmitir sinais de multimídia para uma pluralidade de terminais | |
GB2608469A (en) | Method, device, and computer program for dynamically encapsulating media content data | |
JP5886341B2 (ja) | 送信装置、送信方法、受信装置および受信方法 | |
JP5976189B2 (ja) | 送信装置、送信方法、受信装置および受信方法 | |
JP7306527B2 (ja) | 復号装置 | |
JP5976188B2 (ja) | 送信装置、送信方法、受信装置および受信方法 | |
JP6052354B2 (ja) | 送信装置、送信方法、受信装置および受信方法 | |
JP2015226305A (ja) | 符号化装置 | |
JP2023076538A (ja) | 送信方法、受信方法、送信装置及び受信装置 | |
ES2494541T3 (es) | Procedimientos de codificación de video multi-pista y aparato que usa un extractor que referencia dos o más unidades NAL no consecutivas | |
BR112016020162B1 (pt) | Dispositivos e métodos de transmissão e de recepção | |
JP2018157591A (ja) | 送信装置、送信方法、受信装置および受信方法 | |
JP2017055438A (ja) | 送信装置、送信方法、受信装置および受信方法 | |
SECTOR et al. | ITU-Th. 222.0 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06A | Patent application procedure suspended [chapter 6.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 03/12/2008, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |