BR112020022899A2 - sinalizar, em um arquivo de manifesto, seções ausentes de dados de mídia para rede de fluxo contínuo - Google Patents
sinalizar, em um arquivo de manifesto, seções ausentes de dados de mídia para rede de fluxo contínuo Download PDFInfo
- Publication number
- BR112020022899A2 BR112020022899A2 BR112020022899-0A BR112020022899A BR112020022899A2 BR 112020022899 A2 BR112020022899 A2 BR 112020022899A2 BR 112020022899 A BR112020022899 A BR 112020022899A BR 112020022899 A2 BR112020022899 A2 BR 112020022899A2
- Authority
- BR
- Brazil
- Prior art keywords
- data
- media data
- presentation
- segment
- time period
- Prior art date
Links
- 238000011084 recovery Methods 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims description 65
- 239000012634 fragment Substances 0.000 claims description 44
- 238000003860 storage Methods 0.000 claims description 32
- 238000005538 encapsulation Methods 0.000 claims description 28
- 238000002360 preparation method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 13
- 230000002123 temporal effect Effects 0.000 abstract description 14
- 230000006978 adaptation Effects 0.000 description 37
- 230000000875 corresponding effect Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000012800 visualization Methods 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
- 240000002791 Brassica napus Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/37—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
-
- 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- 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/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43074—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64322—IP
-
- 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/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
SINALIZAR, EM UM ARQUIVO DE
MANIFESTO, SEÇÕES AUSENTES DE DADOS DE MÍDIA PARA REDE DE FLUXO
CONTÍNUO.
Um dispositivo exemplar para recuperar dados de mídia inclui uma memória
configurada para armazenar dados de mídia; e um ou mais processadores
implementados em conjunto de circuitos e configurados para: determinar
que um arquivo de manifesto para uma apresentação dos dados de mídia
inclui dados que especificam um período de tempo da apresentação para o
qual os dados de mídia não estão disponíveis, mas para o qual uma linha
temporal de segmento pode ser estendida; recuperar um primeiro conjunto
de segmentos da apresentação incluindo dados de mídia tendo tempos de
apresentação anteriores ao período de tempo; recuperar um segundo
conjunto de segmentos da apresentação incluindo dados de mídia tendo
tempos de apresentação após o período de tempo; em resposta à
determinação de que o arquivo de manifesto inclui os dados que
especificam o período de tempo: omitir a recuperação de dados de mídia
tendo tempos de apresentação durante o período de tempo; e estender a
linha temporal de segmento de acordo com a determinação.
Description
[0001] Este pedido reivindica o benefício do Pedido Provisório US No. 62/670,370, depositado em 11 de maio de 2018, e Pedido US No. 16/406,947, depositado em 8 de maio de 2019, cujo todo conteúdo de cada é aqui incorporado por referência.
[0002] Esta divulgação refere-se ao transporte de dados de mídia codificados.
[0003] As capacidades de vídeo digital podem ser incorporadas a uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de broadcast digital direta, sistemas de transmissão sem fio, assistentes digitais pessoais (PDAs), computadores laptops ou desktop, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de videogames, consoles de videogames, telefones celulares ou via rádio por satélite, dispositivos de teleconferência de vídeo e semelhantes. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tais como as descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263 ou ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265 (também conhecido como codificação de vídeo de alta eficiência (HEVC)) e extensões de tais padrões, para transmitir e receber informações de vídeo digital com mais eficiência.
[0004] Após dados de vídeo serem codificados, os dados de vídeo podem ser empacotados para transmissão ou armazenamento. Os dados de vídeo podem ser reunidos em um arquivo de vídeo em conformidade com qualquer um de uma variedade de padrões, tal como formato de arquivo de mídia baseado na Organização Internacional para Padronização (ISO) e suas extensões, como AVC.
[0005] Em geral, esta divulgação descreve técnicas para sinalizar seções ausentes de dados de mídia para serviços de fluxo contínuo (streaming) de rede, como Fluxo Contínuo Adaptativo Dinâmico sobre HTTP (DASH). Em alguns casos, dados de mídia esperados de segmentos podem não estar presentes devido a falhas em diferentes partes de um sistema de fluxo contínuo. De acordo com as técnicas desta divulgação, tais dados de mídia esperados podem ser sinalizados em um segmento como seções ausentes, o que permite a extensão de uma linha temporal de segmento em um dispositivo de recepção. Ou seja, o dispositivo de recepção pode recuperar dados de mídia tendo tempos de apresentação após a seção ausente e emitir os dados de mídia, sem emitir dados de mídia desejados para a seção ausente. Adicionalmente ou em alternativa, as seções ausentes podem ser sinalizadas em um arquivo de manifesto, de modo que os dispositivos de recepção possam evitar solicitação das seções ausentes.
[0006] Em um exemplo, um método para recuperação de dados de mídia inclui determinar que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados que especificam um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida, recuperar um primeiro conjunto de segmentos da apresentação, incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; e estender a linha temporal de segmento de acordo com a determinação.
[0007] Em outro exemplo, um dispositivo para recuperar dados de mídia inclui uma memória configurada para armazenar dados de mídia; e um ou mais processadores implementados em conjunto de circuitos e configurados para: determinar que um arquivo de manifesto para uma apresentação dos dados de mídia inclui dados que especificam um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar um primeiro conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo; e estender a linha temporal de segmento de acordo com a determinação.
[0008] Em outro exemplo, um meio de armazenamento legível por computador tem instruções armazenadas no mesmo que, quando executadas, fazem com que um processador determine que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados especificando um período de tempo da apresentação para o qual dados de mídia não estão disponíveis, mas para os quais uma linha temporal de segmento pode ser estendida; recuperar um primeiro conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo; e estender a linha temporal de segmento de acordo com a determinação.
[0009] Em outro exemplo, um dispositivo para recuperar dados de mídia inclui meios para determinar que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados que especificam um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; meios para recuperar um primeiro conjunto de segmentos da apresentação, incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; meios para recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; meios para omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo; e meios para estender a linha temporal de segmento de acordo com a determinação em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo.
[0010] Em outro exemplo, um método para recuperação de dados de mídia inclui a recuperação de pelo menos uma porção de um primeiro segmento de uma representação de dados de mídia, a pelo menos porção do primeiro segmento incluindo dados indicando que o primeiro segmento inclui uma seção ausente que representa um período de tempo para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação após a seção ausente; estender a linha temporal de segmento de acordo com os dados da pelo menos porção do primeiro segmento; e emitir os dados de mídia do segundo segmento de acordo com a linha temporal de segmento estendida.
[0011] Em outro exemplo, um dispositivo para recuperar dados de mídia inclui uma memória configurada para armazenar dados de mídia; e um ou mais processadores implementados em conjunto de circuitos e configurados para: recuperar pelo menos uma porção de um primeiro segmento de uma representação dos dados de mídia, a pelo menos porção do primeiro segmento incluindo dados indicando que o primeiro segmento inclui uma seção ausente que representa um período de tempo para o qual os dados de mídia não estão disponíveis, mas para o qual a linha temporal de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação após a seção ausente; estender a linha temporal de segmento de acordo com os dados da pelo menos porção do primeiro segmento; e emitir os dados de mídia do segundo segmento de acordo com a linha temporal de segmento estendida.
[0012] Em outro exemplo, um meio de armazenamento legível por computador armazenou instruções no mesmo que, quando executadas, fazem com que um processador recupere pelo menos uma porção de um primeiro segmento de uma representação dos dados de mídia, a pelo menos porção do primeiro segmento incluindo dados que indicam que o primeiro segmento inclui uma seção ausente que representa um período de tempo para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação após a seção ausente; estender a linha temporal de segmento de acordo com os dados da pelo menos porção do primeiro segmento; e emitir os dados de mídia do segundo segmento de acordo com a linha temporal de segmento estendida.
[0013] Em outro exemplo, um dispositivo para recuperar dados de mídia inclui meios para recuperar pelo menos uma porção de um primeiro segmento de uma representação de dados de mídia, a pelo menos porção do primeiro segmento incluindo dados indicando que o primeiro segmento inclui um seção que representa um período de tempo para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; meios para recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação após a seção ausente; meios para estender a linha temporal de segmento de acordo com os dados da pelo menos porção do primeiro segmento; e meios para emitir os dados de mídia do segundo segmento de acordo com a linha temporal de segmento estendida.
[0014] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos e vantagens serão evidentes a partir da descrição e dos desenhos e das reivindicações.
[0015] A Figura 1 é um diagrama de blocos que ilustra um sistema exemplar que implementa técnicas para fluxo contínuo de dados de mídia em uma rede.
[0016] A Figura 2 é um diagrama de blocos que ilustra um conjunto exemplar de componentes de uma unidade de recuperação em mais detalhes.
[0017] A Figura 3 é um diagrama conceitual que ilustra elementos exemplares de conteúdo multimídia.
[0018] A Figura 4 é um diagrama de blocos que ilustra elementos de um arquivo de vídeo exemplar.
[0019] A Figura 5 é um diagrama conceitual que ilustra vários exemplos de cenários nos quais pode ocorrer perda de dados de mídia de um ou mais segmentos.
[0020] A Figura 6 é um fluxograma que ilustra um método exemplar para determinar que os dados de mídia transmitidos por fluxo contínuo incluem uma seção ausente, de acordo com as técnicas desta divulgação.
[0021] A Figura 7 é um fluxograma que ilustra um exemplo de um método para recuperar um arquivo de manifesto incluindo dados indicando que uma apresentação inclui uma seção ausente, de acordo com as técnicas desta divulgação.
[0022] A Figura 8 é um fluxograma que ilustra um exemplo de um método para recuperar um segmento incluindo dados indicando que o segmento inclui uma seção ausente, de acordo com as técnicas desta divulgação.
[0023] Em geral, esta divulgação descreve técnicas para sinalizar seções ausentes de dados de mídia para serviços de fluxo contínuo de rede, tais como Fluxo Contínuo Adaptativo Dinâmico sobre HTTP (DASH), Fluxo Contínuo ao Vivo HTTP (HLS), Fluxo Contínuo Suave da Microsoft ou semelhantes.
[0024] No caso de distribuição linear (ao vivo), os segmentos esperados podem não estar necessariamente presentes devido a falhas em diferentes partes do sistema de ponta a ponta. Uma boa visão geral dos casos de uso aparece na Seção 4.8 de DASH Industry Forum, “Guidelines for Implementation: DASH-IF Interoperability Points”, Versão 4, 12 de dezembro de 2016, disponível em dashif.org/wp-content/uploads/20l6/l2/DASH-IF-IOP-v4.0- clean.pdf.
[0025] Um tal exemplo são as falhas do codificador/empacotador. Se um codificador/empacotador falhar por algum motivo, e um codificador/empacotador redundante começar a produzir segmentos, pode haver uma lacuna de um ou mais segmentos entre o último segmento escrito na origem pelo codificador/empacotador primário e o primeiro segmento escrito pelo codificador/empacotador redundante.
[0026] Outro exemplo é quando a saída do codificador é um Protocolo de Datagrama de Usuário (UDP) MPEG-2 TS multicast com segmentação virtual, tais como descritores de fronteiras CableLabs EBP ou MPEG-2. Essa abordagem não usa protocolos multicast confiáveis. Um pacote UDP dessa implantação pode conter sete pacotes MPEG- 2 TS e nenhum outro dado. Quando ocorrem perdas, os segmentos podem não ser produzidos pelos empacotadores a jusante.
[0027] Ainda outro exemplo é quando diferentes representações são geradas por diferentes codificadores/empacotadores. Nesse caso, quando um codificador falha, pode haver uma lacuna apenas para uma ou mais das representações, mas a representação (s) restante ainda terá um segmento disponível.
[0028] Dois exemplos de problemas podem ocorrer como resultado da discussão acima. Em um exemplo, se nenhum segmento for produzido, uma solicitação (por exemplo, uma solicitação GET HTTP ou GET parcial) para esse segmento pode resultar em um erro, como um erro HTTP 404. A produção de um amplo conjunto de erros 404 na operação é indesejável, pois gera carga operacional desnecessária para redes de entrega de conteúdo (CDNs). Em segundo lugar, sem a produção de um segmento, pelo menos em alguns casos, o fluxo operacional do cliente pode ser interrompido, principalmente quando se utiliza o cliente ativo principal do DASH de acordo com o DASH-IF IOP. A perda de um segmento faz com que não seja mais possível distribuir mensagem de evento (EMSG) e a informação de segmento como documento no DASH-IF IOP V. 4.0, cláusula 4.5.3, para continuar a operação. O cliente DASH pode então contar com uma atualização de MPD para continuar a entender os detalhes (por exemplo, dados de mídia subsequentes).
[0029] Para resolver esses problemas, o DASH provê um mecanismo para lidar com perdas de segmento usando o elemento SegmentTimeline. Uma lacuna pode ser calculada a partir da diferença entre o valor esperado de S@t calculado a partir dos elementos S anteriores, e o valor de S@t. No entanto, um problema potencial dessa abordagem é que, no caso de perdas de segmento em uma representação, um SegmentTimeline no nível de representação pode ser usado, em vez de no nível do conjunto de adaptação, como normalmente é feito. Usar SegmentTimeline no nível do conjunto de adaptação se aplicaria a todas as representações, o que seria incorreto caso a perda fosse específica de um subconjunto das representações.
[0030] O uso de SegmentTimeline de nível de representação adiciona elementos XML extras a cada representação. Isso funciona bem no caso de segmentos de precisamente a mesma duração, pois grandes valores @r podem reduzir o número de elementos S necessários para expressar todos os segmentos. Quando segmentos de durações semelhantes, mas não iguais, são usados (por exemplo, segmentos de 2 segundos com variação de +/- 1 segundo), SegmentTimeline pode crescer bastante rapidamente. Dada a necessidade de repetir as mesmas informações para todas as representações dentro de um conjunto de adaptação, e no caso de um grande número de representações (por exemplo,
14), isso resulta em arquivos de manifesto muito grandes, como descrições de apresentação de mídia (MPDs), ambos em bytes e em número de elementos XML. O efeito negativo de grandes tamanhos de MPD é o overhead da rede. Os efeitos negativos de um grande número de elementos XML é o aumento no tempo de análise MPD e no uso de memória no lado do cliente.
[0031] As técnicas desta divulgação geralmente se referem ao uso de um SegmentTimeline no nível do conjunto de adaptação (que se aplica a todas as representações neste conjunto de adaptação). Isso permite uma MPD relativamente menor em tamanho com menos elementos em comparação com elementos SegmentTimeline de nível de representação de sinalização, mas tendo uma indicação de nível de representação para seções ausentes (por exemplo, dentro de segmentos ou segmentos ausentes completos).
[0032] Adicionalmente ou em alternativa, um dispositivo de preparação de conteúdo pode adicionar um segmento fictício para substituir as informações ausentes. Por exemplo, um codificador, unidade de encapsulamento, empacotador DASH ou semelhante pode produzir um segmento bem identificado que é marcado tal que um cliente DASH pode identificar o segmento como ausente ou incompleto. Portanto, o cliente DASH pode enviar dados para um decodificador de mídia correspondente indicando o problema, ou seja, que dados de mídia estão faltando. Como outra opção, o empacotador DASH pode produzir um segmento válido para o qual o conteúdo pode representar uma tela preta ou uma ou mais mensagens de erro. Em ambos os casos, essa adição pode causar confusão por parte do visualizador.
Assim, um dispositivo cliente pode evitar a exibição de mensagens de erro ou tela preta se outras representações proverem alternativas válidas. Portanto, mesmo esses segmentos e seções de mídia podem ser evitados. Para este propósito, o cliente DASH pode precisar estar ciente do segmento fictício ou segmento indicativo de erro bem identificado.
[0033] Em geral, as técnicas desta divulgação incluem dois aspectos. Primeiro, no caso ao vivo, um dispositivo de geração de conteúdo (por exemplo, uma unidade de encapsulamento do mesmo) pode gerar e inserir segmentos que não estão completos ou totalmente ausentes e que estão claramente marcados como contendo uma seção ausente (por exemplo, o segmento é um segmento de seção ausente), mas permite a extensão da linha temporal em um dispositivo de recepção sem atualizações de arquivo de manifesto (como atualizações de MPD). Em segundo lugar, a sinalização para seções ausentes pode ser incluída no arquivo de manifesto (como uma MPD), de modo que os clientes (por exemplo, dispositivos de recepção) que têm acesso ao MPD possam fazer uso das informações e evitar a solicitação dos segmentos com informações ausentes. Segmentos com informações "ausentes" podem se referir a segmentos conforme discutido acima (por exemplo, segmentos que não estão completos ou estão totalmente ausentes e marcados como tal), ou podem se referir a conteúdo que não seja o conteúdo de mídia principal desejado, como uma tela preta ou mensagens de erro.
[0034] As técnicas desta divulgação podem ser aplicadas a arquivos de vídeo em conformidade com dados de vídeo encapsulados de acordo com qualquer formato de arquivo de mídia baseado em ISO, formato de arquivo Codificação de Vídeo Escalonável (SVC), formato de arquivo de Codificação de Vìdeo Avançada (AVC), formato de arquivo do Third Generation Partnership Project (3GPP) e/ou formato de arquivo de Codificação de Vídeo Multivista (MVC) ou outros formatos de arquivo de vídeo semelhantes.
[0035] Em fluxo contínuo de HTTP, as operações usadas com frequência incluem HEAD, GET e GET parcial. A operação HEAD recupera um cabeçalho de um arquivo associado a um determinado localizador de recurso uniforme (URL) ou nome de recurso uniforme (URN), sem recuperar uma carga associada ao URL ou URN. A operação GET recupera um arquivo inteiro associado a um determinado URL ou URN. A operação GET parcial recebe um intervalo de bytes como um parâmetro de entrada e recupera um número contínuo de bytes de um arquivo, onde o número de bytes corresponde ao intervalo de bytes recebido. Assim, fragmentos de filme podem ser providos para fluxo contínuo HTTP, porque uma operação GET parcial pode obter um ou mais fragmentos de filmes. Em um fragmento de filme, pode haver vários fragmentos de faixas de diferentes faixas. No fluxo contínuo HTTP, uma apresentação de mídia pode ser uma coleção estruturada de dados que são acessíveis ao cliente. O cliente pode solicitar e baixar informações de dados de mídia para apresentar um serviço de fluxo contínuo a um usuário.
[0036] No exemplo de fluxo contínuo de dados 3 GPP usando fluxo contínuo de HTTP, pode haver várias representações para dados de vídeo e/ou áudio de conteúdo multimídia. Conforme explicado abaixo, diferentes representações podem corresponder a diferentes características de codificação (por exemplo, diferentes perfis ou níveis de um padrão de codificação de vídeo), diferentes padrões de codificação ou extensões de padrões de codificação (como extensões multivista e/ou escalonáveis) ou diferentes taxas de bits. O arquivo de manifesto de tais representações pode ser definido em uma estrutura de dados da Descrição de Apresentação de Mídia (MPD). Uma apresentação de mídia pode corresponder a uma coleção estruturada de dados que é acessível a um dispositivo cliente de fluxo contínuo HTTP. O dispositivo cliente de fluxo contínuo HTTP pode solicitar e baixar informações de dados de mídia para apresentar um serviço de fluxo contínuo a um usuário do dispositivo cliente. Uma apresentação de mídia pode ser descrita na estrutura de dados MPD, que pode incluir atualizações da MPD.
[0037] Uma apresentação de mídia pode conter uma sequência de um ou mais períodos. Cada período poderá se estender até o início do próximo Período, ou até o final da apresentação na mídia, no caso do último período. Cada período pode conter uma ou mais representações para o mesmo conteúdo de mídia. Uma representação pode ser uma de uma série de versões alternativas codificadas de áudio, vídeo, texto temporizado ou outros dados. As representações podem diferir por tipos de codificação, por exemplo, por taxa de bits, resolução e/ou codec para dados de vídeo e taxa de bits, idioma e/ou codec para dados de áudio. O termo representação pode ser usado para se referir a uma seção de dados de áudio ou vídeo codificados correspondentes a um período particular do conteúdo multimídia e codificados de uma maneira particular.
[0038] As representações de um período particular podem ser atribuídas a um grupo indicado por um atributo na MPD indicativa de um conjunto de adaptação ao qual as representações pertencem. As representações no mesmo conjunto de adaptação são geralmente consideradas alternativas entre si, em que um dispositivo cliente pode alternar de forma dinâmica e sem cortes entre essas representações, por exemplo, para realizar a adaptação da largura de banda. Por exemplo, cada representação de dados de vídeo para um período particular pode ser atribuída ao mesmo conjunto de adaptação, de modo que qualquer uma das representações possa ser selecionada para decodificação para apresentar dados de mídia, tais como dados de vídeo ou dados de áudio, do conteúdo multimídia para o período correspondente. O conteúdo de mídia dentro de um período pode ser representado por uma representação do grupo 0, se presente, ou a combinação de no máximo uma representação de cada grupo diferente de zero, em alguns exemplos. Os dados de tempo para cada representação de um período podem ser expressos em relação ao tempo de início do período.
[0039] Uma representação pode incluir um ou mais segmentos. Cada representação pode incluir um segmento de inicialização ou cada segmento de uma representação pode ser autoinicializado. Quando presente, o segmento de inicialização pode conter informações de inicialização para acessar a representação. Em geral, o segmento de inicialização não contém dados de mídia. Um segmento pode ser referenciado exclusivamente por um identificador, tais como um localizador de recurso uniforme (URL), nome de recurso uniforme (URN) ou identificador de recurso uniforme (URI). A MPD pode prover os identificadores para cada segmento. Em alguns exemplos, a MPD também pode prover intervalos de bytes na forma de um atributo de intervalo, que pode corresponder aos dados para um segmento dentro de um arquivo acessível pela URL, URN ou URI.
[0040] Diferentes representações podem ser selecionadas para recuperação substancialmente simultânea para diferentes tipos de dados de mídia. Por exemplo, um dispositivo cliente pode selecionar uma representação de áudio, uma representação de vídeo e uma representação de texto temporizada a partir da qual recuperar segmentos. Em alguns exemplos, o dispositivo cliente pode selecionar conjuntos de adaptação particulares para realizar a adaptação de largura de banda. Ou seja, o dispositivo cliente pode selecionar um conjunto de adaptação incluindo representações de vídeo, um conjunto de adaptação incluindo representações de áudio e/ou um conjunto de adaptação incluindo texto temporizado. Alternativamente, o dispositivo cliente pode selecionar conjuntos de adaptação para certos tipos de mídia (por exemplo, vídeo) e selecionar diretamente representações para outros tipos de mídia (por exemplo, áudio e/ou texto temporizado).
[0041] A Figura 1 é um diagrama de blocos que ilustra um sistema exemplar 10 que implementa técnicas para fluxo contínuo de dados de mídia em uma rede. Neste exemplo, o sistema 10 inclui dispositivo de preparação de conteúdo 20, dispositivo servidor 60 e dispositivo cliente
40. O dispositivo cliente 40 e o dispositivo servidor 60 são acoplados comunicativamente pela rede 74, que pode compreender a Internet. Em alguns exemplos, o dispositivo de preparação de conteúdo 20 e o dispositivo servidor 60 também podem ser acoplados pela rede 74 ou outra rede, ou podem ser acoplados comunicativamente de forma direta. Em alguns exemplos, o dispositivo de preparação de conteúdo 20 e o dispositivo servidor 60 podem compreender o mesmo dispositivo.
[0042] Dispositivo de preparação de conteúdo 20, no exemplo da Figura 1, compreende a fonte de áudio 22 e a fonte de vídeo 24. A fonte de áudio 22 pode compreender, por exemplo, um microfone que produz sinais elétricos representativos de dados de áudio capturados para serem codificados pelo codificador de áudio 26. Alternativamente, a fonte de áudio 22 pode compreender um meio de armazenamento armazenando dados de áudio gravados anteriormente, um gerador de dados de áudio, como um sintetizador computadorizado, ou qualquer outra fonte de dados de áudio. A fonte de vídeo 24 pode compreender uma câmera de vídeo que produz dados de vídeo a serem codificados pelo codificador de vídeo 28, um meio de armazenamento codificado com dados de vídeo previamente gravados, uma unidade de geração de dados de vídeo, como uma fonte de gráficos de computador ou qualquer outra fonte de dados de vídeo. O dispositivo de preparação de conteúdo 20 não é necessariamente acoplado comunicativamente ao dispositivo servidor 60 em todos os exemplos, mas pode armazenar conteúdo multimídia em uma mídia separada que é lida pelo dispositivo servidor 60.
[0043] Dados brutos de áudio e vídeo podem compreender dados analógicos ou digitais. Os dados analógicos podem ser digitalizados antes de serem codificados pelo codificador de áudio 26 e/ou codificador de vídeo 28. A fonte de áudio 22 pode obter dados de áudio de um participante falante enquanto o participante falante está falando, e a fonte de vídeo 24 pode simultaneamente obter dados de vídeo do participante falante. Em outros exemplos, a fonte de áudio 22 pode compreender um meio de armazenamento legível por computador compreendendo dados de áudio armazenados e a fonte de vídeo 24 pode compreender um meio de armazenamento legível por computador compreendendo dados de vídeo armazenados. Desta forma, as técnicas descritas nesta divulgação podem ser aplicadas a dados ao vivo, de fluxo contínuo, de áudio e vídeo em tempo real ou a dados de áudio e vídeo arquivados e pré-gravados.
[0044] Os quadros de áudio que correspondem aos quadros de vídeo são geralmente quadros de áudio contendo dados de áudio que foram capturados (ou gerados) pela fonte de áudio 22 contemporaneamente com os dados de vídeo capturados (ou gerados) pela fonte de vídeo 24 que está contida nos quadros de vídeo. Por exemplo, enquanto um participante falante geralmente produz dados de áudio falando, a fonte de áudio 22 captura os dados de áudio e a fonte de vídeo 24 captura dados de vídeo do participante falante ao mesmo tempo, isto é, enquanto a fonte de áudio 22 está capturando os dados de áudio. Portanto, um quadro de áudio pode corresponder temporariamente a um ou mais quadros de vídeo particulares. Por conseguinte, um quadro de áudio correspondente a um quadro de vídeo geralmente corresponde a uma situação em que dados de áudio e dados de vídeo foram capturados ao mesmo tempo e para o qual um quadro de áudio e um quadro de vídeo compreendem, respectivamente, os dados de áudio e os dados de vídeo que foram capturados ao mesmo tempo.
[0045] Em alguns exemplos, o codificador de áudio 26 pode codificar uma marca de tempo em cada quadro de áudio codificado que representa um tempo em que os dados de áudio para o quadro de áudio codificado foram gravados e, da mesma forma, o codificador de vídeo 28 pode codificar uma marca de tempo em cada quadro de vídeo codificado que representa um tempo em que os dados de vídeo para um quadro de vídeo codificado foram gravados. Em tais exemplos, um quadro de áudio correspondente a um quadro de vídeo pode compreender um quadro de áudio compreendendo uma marca de tempo e um quadro de vídeo compreendendo a mesma marca de tempo. O dispositivo de preparação de conteúdo 20 pode incluir um relógio interno a partir do qual o codificador de áudio 26 e/ou o codificador de vídeo 28 podem gerar as marcas de tempo, ou que a fonte de áudio 22 e a fonte de vídeo 24 podem usar para associar dados de áudio e vídeo, respectivamente, com uma marca de tempo.
[0046] Em alguns exemplos, a fonte de áudio 22 pode enviar dados para o codificador de áudio 26 correspondendo a um tempo em que os dados de áudio foram gravados e a fonte de vídeo 24 pode enviar dados para o codificador de vídeo 28 correspondendo a um tempo em que os dados de vídeo foram gravados. Em alguns exemplos, o codificador de áudio 26 pode codificar um identificador de sequência em dados de áudio codificados para indicar uma ordenação temporal relativa de dados de áudio codificados, mas sem necessariamente indicar um tempo absoluto em que os dados de áudio foram gravados e, da mesma forma, o codificador de vídeo 28 também pode usar identificadores de sequência para indicar uma ordenação temporal relativa de dados de vídeo codificados. Da mesma forma, em alguns exemplos, um identificador de sequência pode ser mapeado ou de outra forma correlacionado com uma marca de tempo.
[0047] O codificador de áudio 26 geralmente produz um fluxo de dados de áudio codificados, enquanto o codificador de vídeo 28 produz um fluxo de dados de vídeo codificados. Cada fluxo individual de dados (seja áudio ou vídeo) pode ser referido como um fluxo elementar. Um fluxo elementar é um único componente digitalmente codificado (possivelmente compactado) de uma representação. Por exemplo, o vídeo codificado ou parte de áudio da representação pode ser um fluxo elementar. Um fluxo elementar pode ser convertido em um fluxo elementar empacotado (PES) antes de ser encapsulado em um arquivo de vídeo. Dentro da mesma representação, um ID de fluxo pode ser usado para distinguir os pacotes PES pertencentes a um fluxo elementar um do outro. A unidade básica de dados de um fluxo elementar é um pacote de fluxo elementar empacotado (PES). Assim, dados de vídeo codificados geralmente correspondem a fluxos de vídeo elementares. Da mesma forma, os dados de áudio correspondem a um ou mais fluxos elementares respectivos.
[0048] Muitos padrões de codificação de vídeo, como ITU-T H.264/AVC e o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) futuro, definem a sintaxe, a semântica e o processo de decodificação para fluxos de bits sem erros, qualquer um dos quais está em conformidade com um determinado perfil ou nível. Os padrões de codificação de vídeo normalmente não especificam o codificador, mas o codificador tem a tarefa de garantir que os fluxos de bits gerados sejam compatíveis com o padrão para um decodificador. No contexto dos padrões de codificação de vídeo, um “perfil” corresponde a um subconjunto de algoritmos, recursos ou ferramentas e restrições que se aplicam a eles. Conforme definido pelo padrão H.264, por exemplo, um “perfil” é um subconjunto de toda a sintaxe de fluxo de bits especificada pelo padrão H.264. Um “nível” corresponde às limitações do consumo de recursos do decodificador, como, por exemplo, memória e computação do decodificador, que estão relacionados à resolução das imagens, taxa de bits e taxa de processamento de bloco. Um perfil pode ser sinalizado com um valor profile_idc (indicador de nível), enquanto um nível pode ser sinalizado com um valor level_idc (indicador de nível).
[0049] O padrão H.264, por exemplo, reconhece que, dentro dos limites impostos pela sintaxe de um determinado perfil, ainda é possível exigir uma grande variação no desempenho de codificadores e decodificadores dependendo dos valores tomados pelos elementos de sintaxe no fluxo de bits, como o tamanho especificado das imagens decodificadas. O padrão H 264 reconhece ainda que, em muitas aplicações, não é prático nem econômico implementar um decodificador capaz de lidar com todos os usos hipotéticos da sintaxe dentro de um perfil particular. Consequentemente, o padrão H.264 define um “nível” como um conjunto especificado de restrições impostas aos valores dos elementos de sintaxe no fluxo de bits. Essas restrições podem ser limites simples de valores. Alternativamente, essas restrições podem assumir a forma de restrições em combinações aritméticas de valores (por exemplo, largura da imagem multiplicada pela altura da imagem multiplicada pelo número de imagens decodificadas por segundo). O padrão H.264 provê ainda que implementações individuais podem oferecer suporte a um nível diferente para cada perfil compatível.
[0050] Um decodificador em conformidade com um perfil normalmente suporta todos os recursos definidos no perfil. Por exemplo, como um recurso de codificação, a codificação de imagem B não é compatível com o perfil de linha de base do H.264/AVC, mas é compatível com outros perfis de H.264/AVC. Um decodificador em conformidade com um nível deve ser capaz de decodificar qualquer fluxo de bits que não requeira recursos além das limitações definidas no nível. As definições de perfis e níveis podem ser úteis para a interpretabilidade. Por exemplo, durante a transmissão de vídeo, um par de definições de perfil e nível pode ser negociado e acordado para uma sessão de transmissão inteira. Mais especificamente, em H.264/AVC, um nível pode definir limitações no número de macroblocos que precisam ser processados, tamanho do armazenador temporário (buffer) de imagem decodificada (DPB), tamanho do armazenador temporário de imagem codificada (CPB), intervalo de vetor de movimento vertical, número máximo de vetores de movimento por dois MBs consecutivos e se um bloco B pode ter partições de submacrobloco com menos de
8x8 pixels. Desta forma, um decodificador pode determinar se o decodificador é capaz de decodificar adequadamente o fluxo de bits.
[0051] No exemplo da Figura 1, a unidade de encapsulamento 30 do dispositivo de preparação de conteúdo 20 recebe fluxos elementares que compreendem dados de vídeo codificados do codificador de vídeo 28 e fluxos elementares compreendendo dados de áudio codificados do codificador de áudio 26. Em alguns exemplos, o codificador de vídeo 28 e o codificador de áudio 26 podem, cada um, incluir empacotadores para formar pacotes PES a partir de dados codificados. Em outros exemplos, o codificador de vídeo 28 e o codificador de áudio 26 podem, cada um, fazer interface com os respectivos empacotadores para formar pacotes PES a partir de dados codificados. Em ainda outros exemplos, a unidade de encapsulamento 30 pode incluir empacotadores para formar pacotes PES a partir de dados de áudio e vídeo codificados.
[0052] O codificador de vídeo 28 pode codificar dados de vídeo de conteúdo multimídia em uma variedade de maneiras, para produzir diferentes representações do conteúdo multimídia em várias taxas de bits e com várias características, tais como resoluções de pixel, taxas de quadro, conformidade com vários padrões de codificação, conformidade com vários perfis e/ou níveis de perfis para vários padrões de codificação, representações com uma ou múltiplas visualizações (por exemplo, para reprodução bidimensional ou tridimensional) ou outras características semelhantes. Uma representação, como usada nesta divulgação, pode compreender um de dados de áudio, dados de vídeo, dados de texto (por exemplo, para legendas) ou outros dados. A representação pode incluir um fluxo elementar, como um fluxo elementar de áudio ou um fluxo elementar de vídeo. Cada pacote PES pode incluir um stream_id que identifica o fluxo elementar ao qual o pacote PES pertence. A unidade de encapsulamento 30 é responsável pela montagem de fluxos elementares em arquivos de vídeo (por exemplo, segmentos) de várias representações.
[0053] A unidade de encapsulamento 30 recebe pacotes PES para fluxos elementares de uma representação do codificador de áudio 26 e do codificador de vídeo 28 e forma unidades de camada de abstração de rede (NAL) correspondentes dos pacotes PES. Os segmentos de vídeo codificados podem ser organizados em unidades NAL, que proveem uma representação de vídeo "amigável à rede", endereçando aplicações como videotelefonia, armazenamento, transmissão ou fluxo contínuo. As unidades NAL podem ser categorizadas em unidades NAL de Camada de Codificação de Vídeo (VCL) e unidades NAL não VCL. As unidades VCL podem conter o mecanismo de compressão de núcleo e podem incluir dados de nível de bloco, macrobloco e/ou fatia. Outras unidades NAL podem ser unidades NAL não VCL. Em alguns exemplos, uma imagem codificada em uma instância de tempo, normalmente apresentada como uma imagem codificada primária, pode estar contida em uma unidade de acesso, que pode incluir uma ou mais unidades NAL.
[0054] Unidades não NAL VCL podem incluir unidades NAL de conjunto de parâmetros e unidades NAL SEI, entre outras. Os conjuntos de parâmetros podem conter informações de cabeçalho de nível de sequência (em conjuntos de parâmetros de sequência (SPS)) e as informações de cabeçalho de nível de imagem que mudam com pouca frequência (em conjuntos de parâmetros de imagem (PPS)). Com conjuntos de parâmetros (por exemplo, PPS e SPS), as informações que mudam com pouca frequência não precisam ser repetidas para cada sequência ou imagem; portanto, a eficiência da codificação pode ser melhorada. Além disso, o uso de conjuntos de parâmetros pode permitir a transmissão fora da banda das informações importantes do cabeçalho, evitando a necessidade de transmissões redundantes para resiliência a erros. Em exemplos de transmissão fora da banda, as unidades NAL do conjunto de parâmetros podem ser transmitidas em um canal diferente do que outras unidades NAL, como unidades NAL SEI.
[0055] Informação de Aprimoramento Suplementar (SEI) pode conter informações que não são necessárias para decodificar as amostras de imagens codificadas de unidades NAL VCL, mas podem auxiliar nos processos relacionados à decodificação, exibição, resiliência de erros e outros fins. As mensagens SEI podem estar contidas em unidades NAL não VCL. As mensagens SEI são a parte normativa de algumas especificações padrão e, portanto, nem sempre são obrigatórias para a implementação do decodificador compatível com o padrão. As mensagens SEI podem ser mensagens SEI de nível de sequência ou mensagens SEI de nível de imagem. Algumas informações de nível de sequência podem estar contidas em mensagens SEI, como mensagens SEI de informações de escalabilidade no exemplo de SVC e mensagens SEI de informações de escalabilidade de exibição em MVC. Esses exemplos de mensagens SEI podem transmitir informações sobre, por exemplo, extração de pontos de operação e características dos pontos de operação. Em adição a unidade de encapsulamento 30 pode formar um arquivo e manifesto, tal como um descritor de representação de mídia (MPD) que descreve características das representações. A unidade de encapsulamento 30 pode formatar o MPD de acordo com a linguagem de marcação extensível (XML).
[0056] A unidade de encapsulamento 30 pode prover dados para uma ou mais representações de conteúdo multimídia, juntamente com o arquivo de manifesto (por exemplo, o MPD) para a interface de saída 32. A interface de saída 32 pode compreender uma interface de rede ou uma interface para gravar em um meio de armazenamento, tal como uma interface de barramento serial universal (USB), um gravador de CD ou ou gravador DVD, uma interface para mídia de armazenamento magnético ou flash ou outras interfaces para armazenar ou transmitir dados de mídia. A unidade de encapsulamento 30 pode prover dados de cada uma das representações de conteúdo multimídia para a interface de saída 32, que pode enviar os dados para o dispositivo servidor 60 por meio de transmissão de rede ou mídia de armazenamento. No exemplo da Figura 1, o dispositivo servidor 60 inclui meio de armazenamento 62 que armazena vários conteúdos multimídia 64, cada um incluindo um respectivo arquivo de manifesto 66 e uma ou mais representações 68A-68N (representações 68). Em alguns exemplos, a interface de saída 32 também pode enviar dados diretamente para a rede 74.
[0057] Em alguns casos, tal como fluxo contínuo ao vivo, vários componentes do dispositivo de preparação de conteúdo 20 podem encontrar um erro, como discutido acima. Vários cenários de erro são discutidos na Seção 4.8 do DASH-IF IOP v. 4, conforme observado acima. A unidade de encapsulamento 30 pode detectar tal erro e executar várias técnicas desta divulgação em resposta. Por exemplo, a unidade de encapsulamento 30 pode gerar pequenos segmentos que são marcados como segmentos de seção ausentes. Adicionalmente ou em alternativa, a unidade de encapsulamento 30 pode gerar o arquivo de manifesto 66 para incluir informações que indicam os segmentos de seção ausentes, de modo que o dispositivo cliente 40 pode usar as informações do arquivo de manifesto 66 para evitar a solicitação dos segmentos de seção ausentes, para evitar o desperdício de largura de banda da rede, por exemplo 74.
[0058] Em alguns exemplos, as representações 68 podem ser separadas em conjuntos de adaptação. Ou seja, vários subconjuntos de representações 68 podem incluir respectivos conjuntos comuns de características, tais como codec, perfil e nível, resolução, número de visualizações, formato de arquivo para segmentos, informações de tipo de texto que podem identificar um idioma ou outras características do texto a ser exibido com a representação e/ou dados de áudio a serem decodificados e apresentados, por exemplo, por altofalantes, informações de ângulo de câmera que podem descrever um ângulo de câmera ou perspectiva de câmera do mundo real de uma cena para representações no conjunto de adaptação, informações de classificação que descreve a adequação de conteúdo a públicos particulares ou semelhantes.
[0059] O arquivo de manifesto 66 pode incluir dados indicativos dos subconjuntos de representações 68 correspondentes a conjuntos de adaptação particulares, bem como características comuns para os conjuntos de adaptação. O arquivo de manifesto 66 também pode incluir dados representativos de características individuais, tais como taxas de bits, para representações individuais de conjuntos de adaptação. Desta forma, um conjunto de adaptação pode prover uma adaptação simplificada da largura de banda da rede. As representações em um conjunto de adaptação podem ser indicadas usando elementos filho de um elemento do conjunto de adaptação do arquivo de manifesto 66.
[0060] Dispositivo servidor 60 inclui unidade de processamento de solicitação 70 e interface de rede 72. Em alguns exemplos, o dispositivo servidor 60 pode incluir uma pluralidade de interfaces de rede. Além disso, qualquer uma ou todas as características do dispositivo servidor 60 podem ser implementadas em outros dispositivos de uma rede de distribuição de conteúdo, como roteadores, pontes, dispositivos proxy, comutadores ou outros dispositivos. Em alguns exemplos, os dispositivos intermediários de uma rede de entrega de conteúdo podem armazenar em cache dados de conteúdo multimídia 64 e incluir componentes que estão em conformidade substancialmente com aqueles do dispositivo servidor 60. Em geral, a interface de rede 72 é configurada para enviar e receber dados através da rede 74.
[0061] A unidade de processamento de solicitação 70 está configurada para receber solicitações de rede de dispositivos cliente, como o dispositivo cliente 40, para dados do meio de armazenamento 62. Por exemplo, a unidade de processamento de solicitação 70 pode implementar o protocolo de transferência de hipertexto (HTTP) versão 1.1, conforme descrito em RFC 2616, “Hypertext Transfer Protocol - HTTP/1.1,” por R. Fielding et al, Network Working Group, IETF, junho de 1999. Isto é, a unidade de processamento de solicitação 70 pode ser configurada para receber HTTP GET ou solicitações GET parciais e prover dados de conteúdo multimídia 64 em resposta às solicitações. As solicitações podem especificar um segmento de uma das representações 68, por exemplo, usando uma URL do segmento. Em alguns exemplos, as solicitações também podem especificar um ou mais intervalos de bytes do segmento, compreendendo, assim, solicitações GET parciais. A unidade de processamento de solicitação 70 pode adicionalmente ser configurada para atender às solicitações HTTP HEAD para prover dados de cabeçalho de um segmento de uma das representações 68. Em qualquer caso, a unidade de processamento de solicitação 70 pode ser configurada para processar as solicitações para prover dados solicitados a um dispositivo de solicitação, como o dispositivo cliente 40.
[0062] Adicionalmente ou em alternativa, a unidade de processamento de solicitação 70 pode ser configurada para entregar dados de mídia por meio de um protocolo de broadcast ou multicast, tal como eMBMS. O dispositivo de preparação de conteúdo 20 pode criar segmentos DASH e/ou subsegmentos substancialmente da mesma maneira como descrito, mas o dispositivo servidor 60 pode entregar esses segmentos ou subsegmentos usando eMBMS ou outro protocolo de transporte de rede de broadcast ou multicast. Por exemplo, a unidade de processamento de solicitação 70 pode ser configurada para receber uma solicitação de adesão ao grupo multicast do dispositivo cliente 40. Ou seja, o dispositivo servidor 60 pode anunciar um endereço de protocolo de Internet (IP) associado a um grupo multicast para dispositivos clientes, incluindo o dispositivo cliente 40, associado a um conteúdo de mídia particular (por exemplo, um broadcast de um evento ao vivo). O dispositivo cliente 40, por sua vez, pode submeter uma solicitação para ingressar no grupo multicast. Esta solicitação pode ser propagada através da rede 74, por exemplo, roteadores que compõem a rede 74, de modo que os roteadores sejam obrigados a direcionar o tráfego destinado ao endereço IP associado ao grupo multicast para dispositivos clientes assinantes, como o dispositivo cliente 40.
[0063] Conforme ilustrado no exemplo da Figura 1, o conteúdo multimídia 64 inclui o arquivo de manifesto 66, que pode corresponder a uma descrição de apresentação de mídia (MPD). O arquivo de manifesto 66 pode conter descrições de diferentes representações alternativas 68 (por exemplo, serviços de vídeo com diferentes qualidades) e a descrição pode incluir, por exemplo, informações de codec, um valor de perfil, um valor de nível, uma taxa de bits e outras características descritivas de representações
68. O dispositivo cliente 40 pode recuperar a MPD de uma apresentação de mídia para determinar como acessar segmentos de representações 68.
[0064] Em particular, a unidade de recuperação 52 pode recuperar dados de configuração (não mostrados) do dispositivo cliente 40 para determinar as capacidades de decodificação do decodificador de vídeo 48 e capacidades de renderização da saída de vídeo 44. Os dados de configuração também podem incluir qualquer ou todas as preferências de idioma selecionado por um usuário do dispositivo cliente 40, uma ou mais perspectivas de câmera correspondentes às preferências de profundidade definidas pelo usuário do dispositivo cliente 40, e/ou uma preferência de classificação selecionada pelo usuário do dispositivo cliente 40. A unidade de recuperação 52 pode compreender, por exemplo, um navegador da web ou um cliente de mídia configurado para enviar HTTP GET e solicitações GET parciais. A unidade de recuperação 52 pode corresponder a instruções de software executadas por um ou mais processadores ou unidades de processamento (não mostradas) do dispositivo cliente 40. Em alguns exemplos, toda ou porções da funcionalidade descrita em relação à unidade de recuperação 52 pode ser implementada em hardware, ou uma combinação de hardware, software e/ou firmware, onde o hardware necessário pode ser provido para executar as instruções de software ou firmware.
[0065] A unidade de recuperação 52 pode comparar as capacidades de decodificação e renderização do dispositivo cliente 40 às características das representações 68 indicadas pela informação do arquivo de manifesto 66. A unidade de recuperação 52 pode inicialmente recuperar pelo menos uma porção do arquivo de manifesto 66 para determinar as características das representações 68.
Por exemplo, a unidade de recuperação 52 pode solicitar uma porção do arquivo de manifesto 66 que descreve as características de um ou mais conjuntos de adaptação. A unidade de recuperação 52 pode selecionar um subconjunto de representações 68 (por exemplo, um conjunto de adaptação) tendo características que podem ser satisfeitas pelas capacidades de codificação e renderização do dispositivo cliente 40. A unidade de recuperação 52 pode então determinar taxas de bits para representações no conjunto de adaptação, determinar um quantidade atualmente disponível de largura de banda de rede, e recuperar segmentos a partir de uma das representações tendo uma taxa de bits que pode ser satisfeita pela largura de banda de rede.
[0066] Em geral, representações de taxa de bits mais alta podem produzir reprodução de vídeo de qualidade superior, enquanto representações de taxa de bits mais baixa podem prover reprodução de vídeo de qualidade suficiente quando a largura de banda de rede disponível diminui. Por conseguinte, quando a largura de banda de rede disponível é relativamente alta, a unidade de recuperação 52 pode recuperar dados de representações de taxa de bits relativamente alta, enquanto quando a largura de banda de rede disponível é baixa, a unidade de recuperação 52 pode recuperar dados de representações de taxa de bits relativamente baixa. Desta maneira, o dispositivo cliente 40 pode transmitir dados de multimídia através da rede 74, enquanto também se adapta à mudança da disponibilidade de largura de banda da rede 74.
[0067] Adicionalmente ou em alternativa, a unidade de recuperação 52 pode ser configurada para receber dados de acordo com um protocolo de rede de broadcast ou multicast, como eMBMS ou multicast IP. Em tais exemplos, a unidade de recuperação 52 pode enviar uma solicitação para se juntar a um grupo de rede multicast associado a um conteúdo de mídia particular. Depois de se juntar ao grupo multicast, a unidade de recuperação 52 pode receber dados do grupo multicast sem mais solicitações emitidas para o dispositivo servidor 60 ou dispositivo de preparação de conteúdo 20. A unidade de recuperação 52 pode enviar uma solicitação para deixar o grupo multicast quando os dados do grupo multicast não são mais necessários, por exemplo, para parar a reprodução ou para mudar os canais para um grupo multicast diferente.
[0068] Como observado acima, a unidade de recuperação 52 do dispositivo cliente 40 pode determinar que o arquivo de manifesto 66 indica que um ou mais segmentos de uma ou mais das representações 68 são segmentos de seção ausentes. Em resposta, a unidade de recuperação 52 pode evitar a recuperação dos segmentos de seção ausentes, conforme indicado pelo arquivo de manifesto
66. Adicionalmente ou em alternativa, a unidade de recuperação 52 pode determinar que um segmento recuperado está marcado como um segmento de seção ausente. A unidade de recuperação 52 pode, no entanto, estender uma linha temporal de reprodução sem receber uma atualização para o arquivo de manifesto 66.
[0069] Em alguns exemplos, o dispositivo de preparação de conteúdo 20, o dispositivo servidor 60 e o dispositivo cliente 40 podem ser configurados de acordo com modificações para DASH conforme discutido abaixo:
5.3.9.7 Sinalização de seção ausente
5.3.9.7.1 Geral Em certos casos, uma seção contínua de tempo de uma Representação ou um Conjunto de Adaptação não é representada adequadamente, por exemplo, devido a erros na geração de conteúdo. No entanto, pelo menos no nível DASH, o conteúdo deve ser oferecido adequadamente, por exemplo, adicionando um Segmento de Seção Ausente ou incluindo conteúdo que é codificado, mas não representa o conteúdo de mídia principal real. O elemento MissingSection permite expressar tais seções que devem ser evitadas pelo cliente DASH, por exemplo, comutando para uma representação que não inclui essa seção ausente. O elemento MissingSection deve conter uma lista de elemento S, cada um dos quais descreve uma sequência de seções Ausentes contíguas. O elemento S contém um atributo @d opcional especificando a duração de MPD da seção Ausente e um atributo de tempo @t em que o valor do atributo @t menos o valor do @presentationTimeOffset especifica o tempo de início da MPD da seção ausente. A semântica dos atributos e elementos da Seção Ausente é provida em 5.3.9.7.2, Tabela XX. A sintaxe XML da Linha temporal de Segmento é provida em 5.3.9.7.3.
5.3.9.7.2 Semântica Tabela XX— Semântica do elemento SegmentTimeline Elemento ou nome Uso Descrição de Atributo MissingSection Especifica as sessões Ausentes da
Representação associada S 1 ...N Especifica uma sessão Ausente @t M Este valor deste atributo menos o valor de @presentationTimeOffset especifica o tempo de início da MDP, em unidades de @timescale, da primeira amostra na sessão Ausente.
O valor deste atributo deve ser igual ou maior do que a soma do tempo de apresentação mais anterior ao elemento S prévio e a soma das durações de sessão contígua. @d O Especifica a duração de seção Ausente em unidades do valor da @timescale.
Se não presente, a sessão Ausente dura até o fim do elemento S, o início do próximo elemento S, o fim do Período ou até a próxima atualização de MPD. Legenda: Para atributos: M=Mandatório, O = Opcional, OD = OD = Opcional com Valor Padrão, CM = Condicionalmente Mandatório Para elementos: <minOccurs> ... <maxOccurs> (N = não ligado) Elementos estão em negrito; atributos não estão em negrito e são precedidos por um @
5.3.9.7.3 XML · sintaxe <! – Segment Timeline--> <xs: complexType name = “MissingSectionType”> <xs: sequence> <xs: elemento name = “S” minOccurs = “1” maxOccurs = “unbounded”> <xs: complexType> <xs: attribute name = “t” type = “xs: unsignedLong” use = “required” /> <xs: attribute name = “d” type = “xs: unsignedLong” /> <xs: anyAttribute namespace = “##other” processContents = “lax”/> </ xs: complexType> </ xs: element> <xs: any namespace = “##other” processContents = “lax” minOccurs = “0” maxOccurs = “unbounded”/> </xs: sequence>
<xs: any Attribute namespace - '## other ”processContents =“ lax ”/> </ xs: complexType>
[0070] Assim, o dispositivo de preparação de conteúdo 20 e/ou dispositivo servidor 60 pode sinalizar um elemento MissingSection do arquivo de manifesto 66, que pode ser uma MPD. Da mesma forma, a unidade de recuperação 52 do dispositivo cliente 40 pode usar o elemento MissingSection do arquivo de manifesto 66 para determinar um ou mais segmentos (ou porções de segmentos) de uma ou mais das representações 68 que não devem ser recuperados. Ou seja, os segmentos ou porções dos mesmos podem corresponder o tempos de reprodução para os quais nenhum dado de mídia está disponível.
[0071] Adicionalmente ou em alternativa, em alguns exemplos, o dispositivo de preparação de conteúdo 20, o dispositivo servidor 60 e o dispositivo cliente 40 podem ser configurados de acordo com modificações no DASH conforme discutido abaixo.
[0072] A seguir é proposto o texto de especificação para MPEG-DASH ISO/IEC 23009-1, de acordo com o qual o dispositivo de preparação de conteúdo 20, o dispositivo servidor 60 e o dispositivo cliente 40 podem ser configurados: Um Segmento de Seção Ausente é definido com a finalidade de estender a Linha Temporal de Segmento, mesmo se os dados no Segmento não estiverem presentes ou estiverem apenas parcialmente presentes. O Segmento não pode conter quaisquer dados de mídia, ou seja, nem um Cabeçalho de Fragmento de Filme nem uma caixa de dados de mídia (mdat) podem estar presentes. Ele também pode conter apenas um subconjunto dos dados. Se o segmento não for um segmento de mídia válido e o provedor de conteúdo esperar que o cliente DASH sinalize a ausência de mídia para a lacuna, o segmento deve incluir uma marca principal 'miss'. O segmento pode conter também um 'emsg', por exemplo, para indicar uma expiração de validade de MPD. Além disso, para um Segmento de Seção Ausente, o seguinte deve conter: • uma única caixa de Índice de Segmento ('sidx') deve estar presente e os valores do Índice de Segmento devem descrever o tempo preciso da Linha Temporal de Segmento, ou seja: o earliest_presentation__time na caixa 'sidx' deve ser o valor de S@t conforme sinalizado na Linha Temporal de Segmento na MPD. o os campos Subsegment_duration na caixa 'sidx' devem ser o valor de S@d conforme sinalizado na Linha Temporal de Segmento na MPD. Nota: ao forçar esses valores, o cliente DASH é capaz de estender adequadamente a linha temporal de segmento, mesmo que nenhum dado de mídia real possa estar presente.
[0073] A seguir é proposto o texto de especificação para DASH-IF IOP, de acordo com o qual o dispositivo de preparação de conteúdo 20, o dispositivo servidor 60 e o dispositivo cliente 40 podem ser configurados: Se o cliente DASH receber um segmento com a marca principal 'miss', o cliente DASH deve usar a caixa Índice de Segmento ('sidx') para estender a linha temporal. Se o segmento não contiver todas as mídias conforme indicado no Índice do Segmento, o cliente DASH deve informar o decodificador de mídia sobre as informações ausentes.
[0074] Desta forma, o dispositivo de preparação de conteúdo 20 e/ou dispositivo servidor 60 pode sinalizar dados em uma caixa de índice de segmento (SIDX) de um segmento incluindo seções ausentes, os dados indicando um tempo de apresentação anterior e a duração das seções ausentes. Da mesma forma, o dispositivo cliente 40 pode determinar que a linha temporal de segmento deve ser estendida com base nas informações da caixa SIDX. Além disso, em alguns exemplos, o dispositivo cliente 40 pode recuperar dados de mídia alternativos para a seção ausente ou determinar que nenhum dado de mídia deve ser reproduzido para a seção ausente. Os dados de mídia alternativos podem ser, por exemplo, uma tela preta, uma ou mais mensagens de erro ou semelhantes.
[0075] A interface de rede 54 pode receber e prover dados de segmentos de uma representação selecionada para a unidade de recuperação 52, que por sua vez pode prover os segmentos para a unidade de desencapsulamento 50. A unidade de desencapsulamento 50 pode desencapsular elementos de um arquivo de vídeo em fluxos PES constituintes, desempacotar os fluxos PES para recuperar dados codificados e enviar os dados codificados para o decodificador de áudio 46 ou decodificador de vídeo 48, dependendo de se os dados codificados fazem parte de um fluxo de áudio ou vídeo, por exemplo, conforme indicado pelos cabeçalhos de pacote PES do fluxo. O decodificador de áudio 46 decodifica dados de áudio codificados e envia os dados de áudio decodificados para a saída de áudio 42, enquanto o decodificador de vídeo 48 decodifica dados de vídeo codificados e envia os dados de vídeo decodificados, que podem incluir uma pluralidade de visualizações de um fluxo, para a saída de vídeo 44.
[0076] Codificador de vídeo 28, decodificador de vídeo 48, codificador de áudio 26, decodificador de áudio 46, unidade de encapsulamento 30, unidade de recuperação 52 e unidade de desencapsulamento 50, cada uma pode ser implementada como qualquer um de uma variedade de conjunto de circuitos de processamento adequados, conforme aplicável, tal como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), conjunto de circuitos de lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Cada um dos codificadores de vídeo 28 e decodificadores de vídeo 48 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo combinado (CODEC). Da mesma forma, cada um dos codificadores de áudio 26 e decodificadores de áudio 46 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um CODEC combinado. Um aparelho incluindo codificador de vídeo 28, decodificador de vídeo 48, codificador de áudio 26, decodificador de áudio 46, unidade de encapsulamento 30, unidade de recuperação 52 e/ou unidade de desencapsulamento 50 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, como um telefone celular.
[0077] O dispositivo cliente 40, dispositivo servidor 60 e/ou dispositivo de preparação de conteúdo 20 podem ser configurados para operar de acordo com as técnicas desta divulgação. Para fins de exemplo, esta divulgação descreve essas técnicas com respeito ao dispositivo cliente 40 e dispositivo servidor 60. No entanto, deve ser entendido que o dispositivo de preparação de conteúdo 20 pode ser configurado para executar essas técnicas, em vez de (ou além de) dispositivo servidor 60.
[0078] A unidade de encapsulamento 30 pode formar unidades NAL compreendendo um cabeçalho que identifica um programa ao qual a unidade NAL pertence, bem como uma carga útil, por exemplo, dados de áudio, dados de vídeo ou dados que descrevem o transporte ou fluxo de programa ao qual a unidade NAL corresponde. Por exemplo, em H.264/AVC, uma unidade NAL inclui um cabeçalho de 1-byte e uma carga útil de tamanho variável. Uma unidade NAL incluindo dados de vídeo em sua carga útil pode compreender vários níveis de granularidade de dados de vídeo. Por exemplo, uma unidade NAL pode compreender um bloco de dados de vídeo, uma pluralidade de blocos, uma fatia de dados de vídeo ou uma imagem inteira de dados de vídeo. A unidade de encapsulamento 30 pode receber dados de vídeo codificados do codificador de vídeo 28 na forma de pacotes PES de fluxos elementares. A unidade de encapsulamento 30 pode associar cada fluxo elementar a um programa correspondente.
[0079] A unidade de encapsulamento 30 também pode montar unidades de acesso a partir de uma pluralidade de unidades NAL. Em geral, uma unidade de acesso pode compreender uma ou mais unidades NAL para representar um quadro de dados de vídeo, bem como dados de áudio correspondentes ao quadro, quando tais dados de áudio estão disponíveis. Uma unidade de acesso geralmente inclui todas as unidades NAL para uma instância de tempo de saída, por exemplo, todos os dados de áudio e vídeo para uma instância de tempo. Por exemplo, se cada visualização tem uma taxa de quadros de 20 quadros por segundo (fps), então cada instância de tempo pode corresponder a um intervalo de tempo de 0,05 segundos. Durante este intervalo de tempo, os quadros específicos para todas as visualizações da mesma unidade de acesso (a mesma instância de tempo) podem ser renderizados simultaneamente. Em um exemplo, uma unidade de acesso pode compreender uma imagem codificada em uma instância de tempo, que pode ser apresentada como uma imagem codificada primária.
[0080] Por conseguinte, uma unidade de acesso pode compreender todos os quadros de áudio e vídeo de uma instância temporal comum, por exemplo, todas as visualizações correspondentes ao tempo X. Esta divulgação também se refere a uma imagem codificada de uma determinada visualização como um "componente de visualização". Ou seja, um componente de visualização pode compreender uma imagem codificada (ou quadro) para uma visualização particular em um determinado tempo. Consequentemente, uma unidade de acesso pode ser definida como compreendendo todos os componentes de visualização de uma instância temporal comum. A ordem de decodificação das unidades de acesso não precisa ser necessariamente a mesma que a ordem de saída ou exibição.
[0081] Uma apresentação de mídia pode incluir uma descrição de apresentação de mídia (MPD), que pode conter descrições de diferentes representações alternativas (por exemplo, serviços de vídeo com qualidades diferentes) e a descrição pode incluir, por exemplo, informações de codec, um valor de perfil e um valor do nível. Uma MPD é um exemplo de um arquivo de manifesto, como o arquivo de manifesto 66. O dispositivo cliente 40 pode recuperar a MPD de uma apresentação de mídia para determinar como acessar fragmentos de filme de várias apresentações. Os fragmentos de filme podem estar localizados em caixas de fragmentos de filme (caixas moof) de arquivos de vídeo.
[0082] O arquivo de manifesto 66 (que pode compreender, por exemplo, uma MPD) pode anunciar a disponibilidade de segmentos de representações 68. Ou seja, a MPD pode incluir informações indicando o tempo do relógio de parede em que um primeiro segmento de uma das representações 68 torna-se disponível, bem como a informação que indica as durações dos segmentos dentro das representações 68. Desta forma, a unidade de recuperação 52 do dispositivo cliente 40 pode determinar quando cada segmento está disponível, com base no tempo de início, bem como nas durações dos segmentos que precedem um segmento particular.
[0083] Após a unidade de encapsulamento 30 ter montado as unidades NAL e/ou unidades de acesso em um arquivo de vídeo com base nos dados recebidos, a unidade de encapsulamento 30 passa o arquivo de vídeo para a interface de saída 32 para emissão. Em alguns exemplos, a unidade de encapsulamento 30 pode armazenar o arquivo de vídeo localmente ou enviar o arquivo de vídeo para um servidor remoto através da interface de saída 32, em vez de enviar o arquivo de vídeo diretamente para o dispositivo cliente 40. A interface de saída 32 pode compreender, por exemplo, um transmissor, um transceptor, um dispositivo para gravar dados em um meio legível por computador, como, por exemplo, uma unidade óptica, uma unidade de mídia magnética (por exemplo, unidade de disquete), uma porta de barramento serial universal (USB), uma interface de rede ou outra interface de saída. A interface de saída 32 emite o arquivo de vídeo para um meio legível por computador, como, por exemplo, um sinal de transmissão, um meio magnético, um meio óptico, uma memória uma unidade flash, ou outro meio legível por computador.
[0084] A interface de rede 54 pode receber uma unidade NAL ou unidade de acesso através da rede 74 e prover a unidade NAL ou unidade de acesso à unidade de desencapsulamento 50, através da unidade de recuperação 52. A unidade de desencapsulamento 50 pode desencapsular elementos de um arquivo de vídeo em fluxos PES constituintes, desempacotar os fluxos PES para recuperar dados codificados e enviar os dados codificados para o decodificador de áudio 46 ou decodificador de vídeo 48, dependendo de se os dados codificados são parte de um fluxo de áudio ou vídeo, por exemplo, conforme indicado pelos cabeçalhos de pacote PES do fluxo. O decodificador de áudio 46 decodifica dados de áudio codificados e envia os dados de áudio decodificados para a saída de áudio 42, enquanto o decodificador de vídeo 48 decodifica dados de vídeo codificados e envia os dados de vídeo decodificados, que podem incluir uma pluralidade de visualizações de um fluxo, para a saída de vídeo 44.
[0085] A Figura 2 é um diagrama de blocos que ilustra um conjunto exemplar de componentes da unidade de recuperação 52 da Figura 1 em maiores detalhes. Neste exemplo, a unidade de recuperação 52 inclui a unidade de middleware eMBMS 100, o cliente DASH 110 e o aplicativo de mídia 112.
[0086] Neste exemplo, a unidade de middleware eMBMS 100 inclui ainda a unidade de recepção eMBMS 106, cache 104 e unidade de servidor proxy 102. Neste exemplo, a unidade de recepção eMBMS 106 está configurada para receber dados via eMBMS, por exemplo, de acordo com Entrega de Arquivo sobre Transporte Unidirecional (FLUTE), descrito em T. Paila et al., “FLUTE - File Delivery over Unidirectional Transport”, Network Working Group, RFC 6726, Novembro de 2012, disponível em http://tools.ietf.org/html/rfc6726. Ou seja, a unidade de recepção eMBMS 106 pode receber arquivos via broadcast a partir de, por exemplo, dispositivo servidor 60, que pode atuar como um centro de serviço de broadcast/multicast (BM-SC).
[0087] À medida que a unidade de middleware eMBMS 100 recebe dados para arquivos, a unidade de middleware eMBMS pode armazenar os dados recebidos em cache 104. A cache 104 pode compreender um meio de armazenamento legível por computador, como memória flash, disco rígido, RAM ou qualquer outro meio de armazenamento adequado.
[0088] A unidade de servidor proxy 102 pode atuar como um servidor para o cliente DASH 110. Por exemplo, a unidade de servidor proxy 102 pode prover um arquivo MPD ou outro arquivo de manifesto para o cliente DASH 110. A unidade de servidor proxy 102 pode anunciar tempos de disponibilidade para segmentos no arquivo MPD, bem como hiperlinks dos quais os segmentos podem ser recuperados. Esses hiperlinks podem incluir um prefixo de endereço de hospedeiro local correspondente ao dispositivo cliente 40 (por exemplo, 127.0.0.1 para IPv4). Desta maneira, o cliente DASH 110 pode solicitar segmentos da unidade de servidor proxy 102 usando HTTP GET ou solicitações GET parciais. Por exemplo, para um segmento disponível no link http://127.0.0.1/rep1/seg3, o cliente DASH 110 pode construir uma solicitação GET HTTP que inclui uma solicitação para http://l27.0.0.1/rep1/seg3 e enviar a solicitação à unidade de servidor proxy 102. A unidade de servidor proxy 102 pode recuperar os dados solicitados do cache 104 e prover os dados ao cliente DASH 110 em resposta a tais solicitações.
[0089] A Figura 3 é um diagrama conceitual que ilustra elementos exemplares de conteúdo multimídia 120. O conteúdo multimídia 120 pode corresponder ao conteúdo multimídia 64 (Figura 1), ou outro conteúdo multimídia armazenado no meio de armazenamento 62. No exemplo da Figura 3, o conteúdo de multimídia 120 inclui descrição de apresentação de mídia (MPD) 122 e uma pluralidade de representações 124A-124N (representações 124). A representação 124A inclui dados de cabeçalho opcionais 126 e segmentos 128A-128N (segmentos 128), enquanto a representação 124N inclui dados de cabeçalho opcionais 130 e segmentos 132A-132N (segmentos 132). A letra N é usada para designar o último fragmento do filme em cada uma das representações 124 por uma questão de conveniência. Em alguns exemplos, pode haver diferentes números de fragmentos de filme entre as representações 124.
[0090] MPD 122 pode compreender uma estrutura de dados separada das representações 124. MPD 122 pode corresponder ao arquivo de manifesto 66 da Figura 1. Da mesma forma, as representações 124 podem corresponder às representações 68 da Figura 1. Em geral, MPD 122 pode incluir dados que geralmente descrevem características de representações 124, tais como características de codificação e renderização, conjuntos de adaptação, um perfil ao qual MPD 122 corresponde, informações de tipo de texto, informações de ângulo de câmera, informações de classificação, informações de modo de truque (por exemplo, informações indicativas de representações que incluem subsequências temporais) e/ou informações para recuperar períodos remotos (por exemplo, para inserção de anúncio direcionado em conteúdo de mídia durante a reprodução).
[0091] Os dados de cabeçalho 126, quando presentes, podem descrever características de segmentos 128, por exemplo, localizações temporais de pontos de acesso aleatórios (RAPs, também referidos como pontos de acesso de fluxo (SAPs)), que dos segmentos 128 inclui pontos de acesso aleatórios, desvios de byte para pontos de acesso aleatórios dentro dos segmentos 128, localizadores de recursos uniformes (URLs) de segmentos 128, ou outros aspectos dos segmentos 128. Os dados de cabeçalho 130,
quando presentes, podem descrever características semelhantes para os segmentos 132. Adicionalmente ou em alternativa, tais características podem ser totalmente incluídas na MPD 122.
[0092] Os segmentos 128, 132 incluem uma ou mais amostras de vídeo codificadas, cada uma das quais pode incluir quadros ou fatias de dados de vídeo. Cada uma das amostras de vídeo codificadas dos segmentos 128 pode ter características semelhantes, por exemplo, altura, largura e requisitos de largura de banda. Tais características podem ser descritas por dados de MPD 122, embora tais dados não sejam ilustrados no exemplo da Figura 3. A MPD 122 pode incluir características conforme descrito pela Especificação 3GPP, com a adição de quaisquer ou todas as informações sinalizadas descritas nesta divulgação.
[0093] Cada um dos segmentos 128, 132 pode ser associado a um localizador uniforme de recursos (URL) exclusivo. Assim, cada um dos segmentos 128, 132 pode ser recuperado independentemente usando um protocolo de rede de fluxo contínuo, como DASH. Desta forma, um dispositivo de destino, como o dispositivo cliente 40, pode usar uma solicitação GET HTTP para recuperar os segmentos 128 ou
132. Em alguns exemplos, o dispositivo cliente 40 pode usar solicitações GET HTTP parciais para recuperar intervalos de bytes específicos dos segmentos 128 ou 132.
[0094] De acordo com as técnicas desta divulgação, MPD 122 pode incluir um elemento MissingSection como discutido acima, para indicar que um ou mais dos segmentos 128 e/ou 132 são segmentos de seção ausentes. Se o segmento 128B for um segmento de seção ausente, por exemplo, o dispositivo cliente 40 pode, alternativamente, recuperar o segmento 132B, que tem um tempo de reprodução que se sobrepõe à seção ausente da representação 124A (isto é, segmento 128B). Neste exemplo, os segmentos 128B e 132B incluem dados de mídia com o mesmo tempo de reprodução, também referido aqui como tempo de apresentação. Assim, os dados de mídia do segmento 132B podem atuar como dados de mídia de substituição para o segmento 128B quando o segmento 128B inclui uma seção ausente (por exemplo, alguns ou todos os dados de mídia do segmento 128B estão ausentes e não podem ser recuperados). O dispositivo cliente 40 pode selecionar o segmento 132B como um segmento de substituição para o segmento 128B com base na representação 124N e na representação 124A estando no mesmo conjunto de adaptação, por exemplo.
[0095] A Figura 4 é um diagrama de blocos que ilustra elementos de um exemplo de arquivo de vídeo 150, que pode corresponder a um segmento de uma representação, como um dos segmentos 128, 132 da Figura 3. Cada um dos segmentos 128, 132 pode incluir dados que se adaptam substancialmente ao arranjo de dados ilustrado no exemplo da Figura 4. Pode-se dizer que o arquivo de vídeo 150 encapsula um segmento. Conforme descrito acima, os arquivos de vídeo de acordo com o formato de arquivo de mídia de base ISO e suas extensões armazenam dados em uma série de objetos, denominados "caixas". No exemplo da Figura 4, o arquivo de vídeo 150 inclui caixa de tipo de arquivo (FTYP) 152, caixa de filme (MOOV) 154, caixas de índice de segmento (SIDX) 162, caixas de fragmento de filme (MOOF) 164 e caixa de acesso aleatório de fragmento de filme
(MFRA) 166. Embora a figura 4 represente um exemplo de arquivo de vídeo, deve ser entendido que outros arquivos de mídia podem incluir outros tipos de dados de mídia (por exemplo, dados de áudio, dados de texto temporizado ou semelhantes) que são estruturados de forma semelhante aos dados do arquivo de vídeo 150, de acordo com o formato de arquivo de mídia de base ISO e suas extensões.
[0096] A caixa Tipo de Arquivo (FTYP) 152 geralmente descreve um tipo de arquivo para o arquivo de vídeo 150. A caixa de tipo de arquivo 152 pode incluir dados que identificam uma especificação que descreve um melhor uso para o arquivo de vídeo 150. A caixa de tipo de arquivo 152 pode alternativamente ser colocada antes da Caixa MOOV 154, caixas de fragmentos de filme 164 e/ou caixa MFRA 166.
[0097] Em alguns exemplos, um segmento, como o arquivo de vídeo 150, pode incluir uma caixa de atualização de MPD (não mostrada) antes da caixa FTYP 152. A caixa de atualização de MPD pode incluir informações indicando que uma MPD correspondente a uma representação incluindo o arquivo de vídeo 150 deve ser atualizada, juntamente com informações para atualizar a MPD. Por exemplo, a caixa de atualização de MPD pode prover um URI ou URL para um recurso a ser usado para atualizar a MPD. Como outro exemplo, a caixa de atualização de MPD pode incluir dados para atualizar a MPD. Em alguns exemplos, a caixa de atualização de MPD pode seguir imediatamente uma caixa de tipo de segmento (STYP) (não mostrada) do arquivo de vídeo 150, onde a caixa STYP pode definir um tipo de segmento para o arquivo de vídeo 150.
[0098] Caixa MOOV 154, no exemplo da Figura 4, inclui a caixa de cabeçalho de filme (MVHD) 156, caixa de seção ausente (MS) 157, caixa de faixa (TRAK) 158 e uma ou mais caixas de extensões do filme (MVEX) 160. Em geral, caixa MVHD 156 pode descrever características gerais do vídeo arquivo 150. Por exemplo, a caixa MVHD 156 pode incluir dados que descrevem quando o arquivo de vídeo 150 foi originalmente criado, quando o arquivo de vídeo 150 foi modificado pela última vez, uma escala de tempo para o arquivo de vídeo 150, uma duração de reprodução para arquivo de vídeo 150 ou outros dados que geralmente descrevem o arquivo de vídeo 150.
[0099] A caixa MS 157 pode incluir informações indicando que uma ou mais seções do arquivo de vídeo 150 não estão adequadamente representadas, por exemplo, devido a erros na geração de conteúdo. A caixa MS 157 permite que um dispositivo cliente, como o dispositivo cliente 40, evite tais seções, por exemplo, mudando para uma representação que não inclua essa seção ausente. A caixa MS 157 pode incluir uma lista de elementos S, cada um dos quais pode descrever uma sequência de seções ausentes contíguas. O elemento S pode conter um atributo @d opcional especificando a duração MPD da seção ausente e um atributo de tempo @t tendo um valor do qual o valor de @presentationTimeOffset pode ser subtraído para especificar o tempo de início da MPD da seção ausente. A caixa MS 157 pode ser incluída em um elemento SegmentTimeline (não mostrado) do arquivo de vídeo 150, que pode ser incluído na caixa MOOV 154.
[0100] A caixa TRAK 158 pode incluir dados para uma faixa de arquivo de vídeo 150. A caixa TRAK 158 pode incluir uma caixa de cabeçalho de faixa (TKHD) que descreve as características da faixa correspondentes à caixa TRAK
158. Em alguns exemplos, a caixa TRAK 158 pode incluir imagens de vídeo codificadas, enquanto em outros exemplos, as imagens de vídeo codificadas da faixa podem ser incluídas em fragmentos de filme 164, que podem ser referenciados por dados da caixa TRAK 158 e/ou caixas SIDX
162.
[0101] Em alguns exemplos, o arquivo de vídeo 150 pode incluir mais de uma faixa. Por conseguinte, a caixa MOOV 154 pode incluir um número de caixas TRAK igual ao número de faixas no arquivo de vídeo 150. A caixa TRAK 158 pode descrever características de uma faixa correspondente do arquivo de vídeo 150. Por exemplo, a caixa TRAK 158 pode descrever informações temporais e/ou espaciais para a faixa correspondente. Uma caixa TRAK semelhante à caixa TRAK 158 da caixa MOOV 154 pode descrever características de uma faixa de conjunto de parâmetros, quando a unidade de encapsulamento 30 (Figura 3) inclui uma faixa de conjunto de parâmetros em um arquivo de vídeo, como o arquivo de vídeo 150. A unidade de encapsulamento 30 pode sinalizar a presença de mensagens SEI de nível de sequência na faixa de conjunto de parâmetros dentro da caixa TRAK que descreve a faixa de conjunto de parâmetros.
[0102] Caixas MVEX 160 podem descrever características de fragmentos de filme correspondentes 164, por exemplo, para sinalizar que o arquivo de vídeo 150 inclui fragmentos de filme 164, além de dados de vídeo incluídos na caixa MOOV 154, se houver. No contexto de fluxo contínuo de dados de vídeo, imagens de vídeo codificadas podem ser incluídas em fragmentos de filme 164 em vez de na caixa MOOV 154. Consequentemente, todas as amostras de vídeo codificadas podem ser incluídas em fragmentos de filme 164, em vez de na caixa MOOV 154.
[0103] A caixa MOOV 154 pode incluir um número de caixas MVEX 160 igual ao número de fragmentos de filme 164 no arquivo de vídeo 150. Cada uma das caixas MVEX 160 pode descrever características de um dos fragmentos de filme 164 correspondente. Por exemplo, cada caixa MVEX pode incluir uma caixa de cabeçalho de extensão de filme (MEHD) que descreve uma duração temporal para um dos fragmentos de filme correspondentes 164.
[0104] Como observado acima, a unidade de encapsulamento 30 pode armazenar um conjunto de dados de sequência em uma amostra de vídeo que não inclui dados de vídeo codificados reais. Uma amostra de vídeo pode geralmente corresponder a uma unidade de acesso, que é uma representação de uma imagem codificada em um tempo específico. No contexto de AVC, a imagem codificada inclui uma ou mais unidades NAL VCL, que contêm as informações para construir todos os pixels da unidade de acesso e outras unidades não NAL VCL associadas, como mensagens SEI. Adequadamente, unidade de encapsulamento 30 pode incluir um conjunto de dados de sequência, que pode incluir mensagens SEI de nível de sequência, em um dos fragmentos de filme
164. A unidade de encapsulamento 30 pode sinalizar ainda a presença de um conjunto de dados de sequência e/ou mensagens SEI de nível de sequência como estando presentes em um dos fragmentos de filme 164 dentro de uma das caixas MVEX 160 correspondendo a um dos fragmentos do filme 164.
[0105] As caixas SIDX 162 são elementos opcionais do arquivo de vídeo 150. Ou seja, os arquivos de vídeo em conformidade com o formato de arquivo 3 GPP ou outros formatos de arquivo não incluem necessariamente as caixas SIDX 162. De acordo com o exemplo do formato de arquivo 3GPP, uma caixa SIDX pode ser usada para identificar um subsegmento de um segmento (por exemplo, um segmento contido no arquivo de vídeo 150). O formato de arquivo 3GPP define um subsegmento como "um conjunto independente de uma ou mais caixas de fragmento de filme consecutivas com caixa(s) de Dados de Mídia correspondente e uma Caixa de Dados de Mídia contendo dados referenciados por uma Caixa de Fragmentos de Filme deve seguir aquele fragmento de filme e preceder a próxima caixa de fragmento de filme contendo informações sobre a mesma faixa”. O formato de arquivo 3GPP também indica que uma caixa SIDX “contém uma sequência de referências a subsegmentos do (sub)segmento documentado pela caixa. Os subsegmentos referenciados são contíguos no tempo de apresentação. Da mesma forma, os bytes referidos por uma Caixa de Índice de Segmento são sempre contíguos dentro do segmento. O tamanho referenciado dá a contagem do número de bytes no material referenciado”.
[0106] Caixas SIDX 162 geralmente proveem informações representativas de um ou mais subsegmentos de um segmento incluído no arquivo de vídeo 150. Por exemplo, tais informações podem incluir tempos de reprodução em que subsegmentos começam e/ou terminam, desvios de bytes para os subsegmentos, se os subsegmentos incluem (por exemplo,
começam com) um ponto de acesso de fluxo (SAP), um tipo para o SAP (por exemplo, se o SAP é uma imagem de atualização de decodificador instantâneo (IDR), uma imagem de acesso aleatório limpa (CRA), uma imagem de acesso de link interrompido (BLA) ou semelhante), uma posição do SAP (em termos de tempo de reprodução e/ou desvio de byte) no subsegmento e semelhantes.
[0107] De acordo com as técnicas desta divulgação, se o arquivo de vídeo 150 incluir uma seção ausente, o arquivo de vídeo 150 pode incluir uma única caixa SIDX 162 tendo um elemento earliest_presentation_time tendo o valor de S@t conforme sinalizado no arquivo de manifesto (por exemplo, MPD) e um campo Subsegment_duration tendo o valor de S@d conforme sinalizado no arquivo de manifesto (por exemplo, MPD). Em alguns exemplos, o arquivo de vídeo 150 pode incluir apenas a caixa SIDX 162, sem a caixa MOOV 154 e/ou fragmentos de filme 164. Em outros exemplos, o arquivo de vídeo 150 pode incluir dados de mídia (por exemplo, fragmentos de filme 164) e uma ou mais caixas SIDX 162 sinalizando uma seção ausente para a qual nenhum fragmento de filme 164 está disponível.
[0108] Fragmentos de filme 164 podem incluir uma ou mais imagens de vídeo codificadas. Em alguns exemplos, os fragmentos de filme 164 podem incluir um ou mais grupos de imagens (GOPs), cada um dos quais pode incluir uma série de imagens de vídeo codificadas, por exemplo, quadros ou imagens. Além disso, conforme descrito acima, os fragmentos de filme 164 podem incluir conjuntos de dados de sequência em alguns exemplos. Cada um dos fragmentos de filme 164 pode incluir uma caixa de cabeçalho de fragmento de filme
(MFHD, não mostrado na Figura 4). A caixa MFHD pode descrever características do fragmento de filme correspondente, como um número de sequência para o fragmento de filme. Os fragmentos de filme 164 podem ser incluídos em ordem de número de sequência no arquivo de vídeo 150. Os fragmentos de filme 164 podem não estar presentes no arquivo de vídeo 150 quando o arquivo de vídeo 150 é um segmento de seção ausente.
[0109] A caixa MFRA 166 pode descrever pontos de acesso aleatórios dentro de fragmentos de filme 164 do arquivo de vídeo 150. Isso pode auxiliar na execução de modos de truque, como a execução de buscas em locais particulares (isto é, tempos de reprodução) dentro de um segmento encapsulado pelo arquivo de vídeo 150 A caixa MFRA 166 é geralmente opcional e não precisa ser incluída em arquivos de vídeo, em alguns exemplos. Da mesma forma, um dispositivo cliente, como o dispositivo cliente 40, não precisa necessariamente fazer referência à caixa MFRA 166 para decodificar e exibir corretamente os dados de vídeo do arquivo de vídeo 150. A caixa MFRA 166 pode incluir uma série de caixas de acesso aleatório de fragmento de faixa (TFRA) (não mostrado) igual ao número de faixas do arquivo de vídeo 150, ou em alguns exemplos, igual ao número de faixas de mídia (por exemplo, faixas sem dica) do arquivo de vídeo 150.
[0110] Em alguns exemplos, os fragmentos de filme 164 podem incluir um ou mais pontos de acesso de fluxo (SAPs), como imagens IDR. Da mesma forma, a caixa MFRA 166 pode prover indicações de locais dentro do arquivo de vídeo 150 dos SAPs. Consequentemente, uma subsequência temporal do arquivo de vídeo 150 pode ser formada a partir de SAPs do arquivo de vídeo 150. A subsequência temporal também pode incluir outras imagens, tais como quadros P e/ou quadros B que dependem de SAPs. Quadros e/ou fatias da subsequência temporal podem ser organizados dentro dos segmentos de modo que quadros/fatias da subsequência temporal que dependem de outros quadros/fatias da subsequência possam ser decodificados adequadamente. Por exemplo, no arranjo hierárquico de dados, os dados usados para predição para outros dados também podem ser incluídos na subsequência temporal. A caixa MFRA 166 pode não estar presente no arquivo de vídeo 150 quando o arquivo de vídeo 150 for um segmento de seção ausente
[0111] A Figura 5 é um diagrama conceitual que ilustra vários exemplos de cenários nos quais pode ocorrer perda de dados de mídia de um ou mais segmentos. Em vários exemplos, parte de um segmento pode ser perdida (e, portanto, não prover o conteúdo adequado), um segmento completo pode ser perdido ou vários segmentos podem ser perdidos. Em alguns casos, também pode acontecer que apenas a parte inicial de um segmento possa ser produzida. Alguns exemplos são mostrados na Figura 5
[0112] Em particular, a Figura 5 representa uma primeira sequência exemplar de segmentos 200 incluindo segmentos 202A-202H, nos quais não há perda real ou oculta. Figura 5 também representa uma segunda sequência exemplar de segmentos 204 incluindo segmentos 206A-206H, em que o segmento 206C inclui uma seção ausente 208 devido à perda de dados de mídia. Figura 5 também representa uma terceira sequência exemplar de segmentos 210 incluindo segmentos
212A-212H, em que há perda no final do segmento 212E, de modo que o segmento 212E inclui a seção ausente 214. Figura 5 também representa uma quarta sequência exemplar de segmentos 216 incluindo segmentos 218A-218H, em que há perda em uma fronteira de segmento antecipado do segmento 218D que inclui a seção ausente 220, que pode fazer com que o segmento 218D não comece em um tempo previsto. Figura 5 também representa uma quinta sequência exemplar de segmentos 222 incluindo os segmentos 224A-2224C e 224E-224H em que há uma perda resultando na seção ausente 226 no fronteira de segmento para um segmento ausente 228 após o segmento 224C e antes do segmento 224E. Figura 5 também representa uma sexta sequência exemplar de segmentos 230 incluindo segmentos 232A-232C, 232G e 232H, nos quais há uma perda de dados de mídia resultando na falta de seção 234 em múltiplos segmentos.
[0113] De acordo com as técnicas desta divulgação, um arquivo de manifesto pode incluir um elemento de Seção Ausente para sinalizar qualquer uma das seções ausentes 208, 214, 220, 226 e/ou 234 ausentes. Da mesma forma, o segmento 206C pode incluir dados (tais como uma caixa SIDX) para sinalizar a seção ausente 208; o segmento 212E pode incluir dados para sinalizar a seção ausente 214; e o segmento 218D pode incluir dados para sinalizar a seção ausente 220.
[0114] A Figura 6 é um fluxograma que ilustra um método exemplar para determinar que os dados de mídia em fluxo incluem uma seção ausente de acordo com as técnicas desta divulgação. O método da Figura 6 pode ser realizado, por exemplo, pela unidade de recuperação 52 do dispositivo cliente 40 da Figura 1, por exemplo. No entanto, deve ser entendido que outros dispositivos podem ser configurados para executar este ou um método semelhante de acordo com as técnicas desta divulgação.
[0115] Inicialmente, a unidade de recuperação 52 pode recuperar um arquivo de manifesto para uma apresentação de dados de mídia (250). O arquivo de manifesto pode ser, por exemplo, uma apresentação de mídia do DASH. Em outros exemplos, outros arquivos de manifesto para outros protocolos de fluxo contínuo, tal como Fluxo Contínuo ao Vivo de HTTP (HLS), Fluxo Contínuo Dinâmico de HTTP Adobe (HDS), Fluxo contínuo Suave da Microsoft (MSS) ou similar.
[0116] O arquivo de manifesto pode incluir dados indicando locais de rede (por exemplo, URLs) de segmentos de dados de mídia. Assim, a unidade de recuperação 52 pode usar o arquivo de manifesto para recuperar um ou mais dos segmentos da apresentação (252). Em particular, conforme explicado acima, a unidade de recuperação 52 pode determinar as capacidades de codificação e renderização do dispositivo cliente 40, bem como uma largura de banda de rede atualmente disponível, para selecionar um conjunto de adaptação e uma representação dentro do conjunto de adaptação, em seguida, determinar as URLs dos segmentos da representação selecionada e enviar solicitações para os segmentos.
[0117] Em alguns exemplos, o arquivo de manifesto pode incluir um elemento de seção ausente, conforme discutido acima. Em particular, o arquivo de manifesto pode incluir um ou mais elementos da Seção Ausente, cada um dos quais pode sinalizar um tempo de início e duração de um período correspondente de tempo de reprodução para o qual os dados de mídia não estão disponíveis. Adicionalmente ou em alternativa, um ou mais dos segmentos podem incluir dados indicando que o segmento inclui uma seção ausente. Por exemplo, o segmento pode incluir uma caixa de índice de segmento (SIDX) indicando um tempo de início e uma duração da seção ausente do segmento. Por conseguinte, usando o arquivo de manifesto e/ou os dados de um ou mais dos próprios segmentos, a unidade de recuperação 52 pode determinar que o segmento inclui uma seção ausente (254).
[0118] Em resposta à determinação de que o segmento inclui a seção ausente, e uso dos dados indicativos da seção ausente (por exemplo, um tempo de início e duração da seção ausente), a unidade de recuperação 52 pode estender a linha temporal de segmento (256) para considerar a seção ausente. Em particular, a unidade de recuperação 52 pode determinar que nenhum dado de mídia está disponível para a seção ausente e, assim, a unidade de recuperação 52 pode evitar a tentativa de recuperar dados de mídia adicionais para a seção ausente. Em alguns exemplos, a unidade de recuperação 52 pode recuperar dados de mídia de substituição alternativos para a seção ausente, como uma tela preta ou uma mensagem de erro.
[0119] A unidade de recuperação 52 pode prosseguir para recuperar segmentos subsequentes seguindo a seção ausente (258). A unidade de recuperação 52 também pode emitir dados de mídia dos segmentos recuperados (260). Em particular, a unidade de recuperação 52 pode emitir dados de mídia dos segmentos recuperados que estão fora da seção ausente. Em alguns casos, a unidade de recuperação 52 pode enviar os dados de mídia de substituição para a seção ausente.
[0120] Desta forma, o método da Figura 6 representa um exemplo de um método incluindo a determinação de que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados especificando um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar um primeiro conjunto de segmentos da apresentação, incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; e estender a linha temporal de segmento de acordo com a determinação.
[0121] Além disso, o método da Figura 6 também representa um exemplo de um método incluindo a recuperação de pelo menos uma porção de um primeiro segmento de uma representação de dados de mídia, a pelo menos porção do primeiro segmento incluindo dados indicando que o primeiro segmento inclui uma seção ausente que representa um período de tempo para o qual dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação após a seção ausente; estender a linha temporal de segmento de acordo com os dados da pelo menos porção do primeiro segmento; e emitir os dados de mídia do segundo segmento de acordo com a linha temporal de segmento estendida.
[0122] A Figura 7 é um fluxograma que ilustra um exemplo de um método para recuperar um arquivo de manifesto incluindo dados indicando que uma apresentação inclui uma seção ausente, de acordo com as técnicas desta divulgação. O método da Figura 7 pode ser realizado, por exemplo, pela unidade de recuperação 52 do dispositivo cliente 40 da Figura 1, por exemplo. No entanto, deve ser entendido que outros dispositivos podem ser configurados para executar este ou um método semelhante de acordo com as técnicas desta divulgação.
[0123] Inicialmente, a unidade de recuperação 52 pode recuperar um arquivo de manifesto para uma apresentação de dados de mídia (270). O arquivo de manifesto pode ser, por exemplo, uma apresentação de mídia do DASH. Em outros exemplos, outros arquivos de manifesto para outros protocolos de fluxo contínuo, como Fluxo Contínuo ao Vivo de HTTP (HLS), Fluxo Contínuo Dinâmico de HTTP Adobe (HDS), Fluxo Contínuo Suave da Microsoft (MSS) ou semelhantes.
[0124] O arquivo de manifesto pode incluir dados indicando locais de rede (por exemplo, URLs) de segmentos de dados de mídia. Assim, a unidade de recuperação 52 pode usar o arquivo de manifesto para recuperar um ou mais dos segmentos da apresentação. Em particular, conforme explicado acima, a unidade de recuperação 52 pode determinar as capacidades de codificação e renderização do dispositivo cliente 40, bem como uma largura de banda de rede atualmente disponível, para selecionar um conjunto de adaptação e uma representação dentro do conjunto de adaptação e, em seguida, determinar as URLs de segmentos da representação selecionada e enviar solicitações para os segmentos.
[0125] Além disso, neste exemplo, a unidade de recuperação 52 determina que o arquivo de manifesto inclui um elemento de seção ausente (272). Por exemplo, o elemento de Sessão Ausente pode sinalizar um tempo de início e uma duração de um período de tempo para o qual os dados de mídia não estão disponíveis. Assim, a unidade de recuperação 52 pode determinar o tempo de início da seção ausente (274) e uma duração da seção ausente (276) usando o arquivo de manifesto. O tempo de início pode ser indicado por um elemento S@t do arquivo de manifesto, enquanto a duração pode ser indicada por um elemento S@d do arquivo de manifesto.
[0126] A unidade de recuperação 52 pode então estender a linha temporal de segmento de acordo com o elemento de Seção Ausente do arquivo de manifesto (278). Embora não mostrado na Figura 7 explicitamente,
[0127] Desta forma, o método da Figura 7 representa um exemplo de um método incluindo a determinação de que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados especificando um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar um primeiro conjunto de segmentos da apresentação, incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; e estender a linha temporal de segmento de acordo com a determinação.
[0128] A Figura 8 é um fluxograma que ilustra um exemplo de um método para recuperar um segmento incluindo dados indicando que o segmento inclui uma seção ausente, de acordo com as técnicas desta divulgação. O método da Figura 8 pode ser realizado, por exemplo, pela unidade de recuperação 52 do dispositivo cliente 40 da Figura 1, por exemplo. No entanto, deve ser entendido que outros dispositivos podem ser configurados para executar este ou um método semelhante de acordo com as técnicas desta divulgação.
[0129] Inicialmente, a unidade de recuperação 52 pode recuperar um arquivo de manifesto para uma apresentação de dados de mídia (290). O arquivo de manifesto pode ser, por exemplo, uma apresentação de mídia do DASH. Em outros exemplos, outros arquivos de manifesto para outros protocolos de fluxo contínuo, como Fluxo Contínuo ao Vivo de HTTP (HLS), Fluxo Contínuo Dinâmico de HTTP Adobe (HDS), Fluxo Contínuo Suave da Microsoft (MSS) ou semelhantes.
[0130] O arquivo de manifesto pode incluir dados indicando locais de rede (por exemplo, URLs) de segmentos de dados de mídia. Assim, a unidade de recuperação 52 pode usar o arquivo de manifesto para recuperar segmentos da apresentação (292). Em particular, conforme explicado acima, a unidade de recuperação 52 pode determinar as capacidades de codificação e renderização do dispositivo cliente 40, bem como uma largura de banda de rede atualmente disponível, para selecionar um conjunto de adaptação e uma representação dentro do conjunto de adaptação e, em seguida, determinar as URLs de segmentos da representação selecionada e enviar solicitações GET HTTP ou Get parcial para os segmentos.
[0131] A unidade de recuperação 52 pode então determinar que um primeiro segmento nominal recuperado inclui uma indicação de uma seção ausente (294). Ou seja, o primeiro segmento pode ser recuperado após outros segmentos, mas é referido como "primeiro" nominalmente para se referir especificamente a um segmento com dados indicando que o segmento inclui uma seção ausente. O primeiro segmento pode incluir uma caixa SIDX indicando o tempo de início e a duração da seção ausente. A unidade de recuperação 52 pode determinar um subsegmento para o qual nenhuma mídia está disponível usando, por exemplo, um campo first_presentation_time e um campo subsegment_duration da caixa SIDX do primeiro segmento. O primeiro segmento pode incluir ainda uma marca principal de "ausência", para indicar que o primeiro segmento inclui a caixa SIDX sinalizando a seção ausente da mesma. Além disso, unidade de recuperação 52 pode extrair um elemento de mensagem de evento (emsg) do segmento, indicando a expiração do arquivo de manifesto. Assim, a unidade de recuperação 52 pode usar os dados do elemento emsg para recuperar um novo arquivo de manifesto válido.
[0132] A unidade de recuperação 52 pode usar a indicação da seção ausente para estender a linha temporal de segmento (296), ou seja, para evitar a tentativa de recuperar dados de mídia para a seção ausente e sem enviar dados de mídia reais do primeiro segmento para a seção ausente para, por exemplo, um decodificador de vídeo (tal como o decodificador de vídeo 48 da Figura 1). Em alguns exemplos, a unidade de recuperação 52 pode emitir dados de mídia de substituição, como uma tela preta ou mensagem de erro e, Adicionalmente ou em alternativa, emitir uma indicação da seção ausente para, por exemplo, decodificador de vídeo 48. Para obter os dados de mídia de substituição, unidade de recuperação 52 pode recuperar um segmento de uma representação diferente correspondente à seção ausente.
[0133] Alternativamente, a unidade de recuperação 52 pode determinar que um segmento de substituição de uma representação diferente inclui dados de mídia válidos tendo o mesmo tempo de apresentação que a ausência do primeiro segmento. Assim, a unidade de recuperação 52 pode recuperar o segmento de substituição em resposta à determinação de que o primeiro segmento inclui a seção ausente. A representação diferente pode estar dentro do mesmo conjunto de adaptação, mas tem, por exemplo, uma taxa de bits menor do que a representação que inclui o primeiro segmento. Nos casos em que a unidade de recuperação 52 recupera o segmento de substituição de uma representação diferente, a unidade de recuperação 52 também pode enviar os dados de mídia do segmento de substituição para estender a linha temporal de segmento.
[0134] Além disso, a unidade de recuperação 52 pode emitir dados de mídia dos segmentos que estão fora da seção ausente de acordo com a linha temporal de segmento estendida (298). Por exemplo, a unidade de recuperação 52 pode produzir dados de mídia tendo tempos de apresentação que precedem à seção ausente e os dados de mídia tendo tempos de apresentação após a seção ausente para o decodificador de vídeo 48, onde os dados de mídia podem ser incluídos no primeiro segmento ou um segundo segmento subsequente (em tempo de apresentação).
[0135] Desta forma, o método da Figura 8 representa um exemplo de um método incluindo a recuperação de pelo menos uma porção de um primeiro segmento de uma representação de dados de mídia, a pelo menos porção do primeiro segmento incluindo dados indicando que o primeiro segmento inclui uma seção ausente que representa um período de tempo para o qual dados de mídia não estão disponíveis, mas para os quais uma linha temporal de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação após a seção ausente; estender a linha temporal de segmento de acordo com os dados da pelo menos porção do primeiro segmento; e emitir os dados de mídia do segundo segmento de acordo com a linha temporal de segmento estendida.
[0136] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. A mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a um meio tangível, como mídia de armazenamento de dados ou mídia de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta forma, a mídia legível por computador geralmente pode corresponder a (1) mídia de armazenamento legível por computador tangível que seja não transitória ou (2) um meio de comunicação, tal como um sinal ou onda de portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que possa ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta divulgação. Um produto de programa de computador pode incluir um meio legível por computador.
[0137] A título de exemplo, e não como limitação, tal mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser usado para armazenar o código do programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disso, qualquer conexão é apropriadamente denominada meio legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, como infravermelho, rádio e micro- ondas, então o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio, tais como infravermelho, rádio e micro-ondas, estão incluídos na definição de meio. Deve ser entendido, no entanto, que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, ondas de portadoras, sinais ou outras mídias transitórias, mas são direcionados para mídias de armazenamento tangíveis não transitórios. Disco e disquete, conforme usado aqui, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde disquetes geralmente reproduzem dados magneticamente, enquanto discos reproduzem dados opticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo da mídia legível por computador.
[0138] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, conjunto de circuitos integrados de aplicação específica (ASICs), arranjos de lógica programáveis em campo (FPGAs) ou outro equivalente integrado ou conjunto de circuitos lógicos discretos. Por conseguinte, o termo "processador", conforme usado neste documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para a implementação das técnicas descritas neste documento. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida em módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais conjunto de circuitos ou elementos de lógica.
[0139] As técnicas desta divulgação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para enfatizar os aspectos funcionais dos dispositivos configurados para executar as técnicas divulgadas, mas não necessariamente requerem a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou providas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores, conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0140] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do escopo das seguintes reivindicações.
Claims (32)
1. Método para recuperação de dados de mídia, o método compreendendo: determinar que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados especificando um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar um primeiro conjunto de segmentos da apresentação, incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo; e estender a linha temporal de segmento de acordo com a determinação.
2. Método, de acordo com a reivindicação 1, em que o arquivo de manifesto compreende uma descrição de apresentação de mídia (MPD).
3. Método, de acordo com a reivindicação 1, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um elemento MissingSection do arquivo de manifesto.
4. Método, de acordo com a reivindicação 1, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que representa um tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
5. Método, de acordo com a reivindicação 4, que adicionalmente compreende determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis usando o valor do atributo, compreendendo subtrair um valor de um elemento de desvio de tempo de apresentação do valor do atributo para determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
6. Método, de acordo com a reivindicação 4, em que o atributo compreende um atributo @t.
7. Método, de acordo com a reivindicação 1, em que os dados que especificam o período de tempo durante o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que especifica a duração do período de tempo para o qual os dados de mídia não estão disponíveis.
8. Método, de acordo com a reivindicação 7, em que o atributo compreende um atributo @d.
9. Dispositivo para recuperar dados de mídia, o dispositivo compreendendo: uma memória configurada para armazenar dados de mídia; e um ou mais processadores implementados em conjunto de circuitos e configurados para: determinar que um arquivo de manifesto para uma apresentação dos dados de mídia inclui dados especificando um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recuperar um primeiro conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omitir a recuperação de dados de mídia com tempos de apresentação durante o período; e estender a linha temporal de segmento de acordo com a determinação.
10. Dispositivo, de acordo com a reivindicação 9, em que o arquivo de manifesto compreende uma descrição de apresentação de mídia (MPD).
11. Dispositivo, de acordo com a reivindicação 9, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um elemento MissingSection do arquivo de manifesto.
12. Dispositivo, de acordo com a reivindicação 9, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que representa um tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
13. Dispositivo, de acordo com a reivindicação 12, em que um ou mais processadores são adicionalmente configurados para determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis usando o valor do atributo, compreendendo subtrair um valor de um elemento de desvio de tempo de apresentação do valor do atributo para determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
14. Dispositivo, de acordo com a reivindicação 12, em que o atributo compreende um atributo @t.
15. Dispositivo, de acordo com a reivindicação 9, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que especifica uma duração do período de tempo para o qual os dados de mídia não estão disponíveis.
16. Dispositivo, de acordo com a reivindicação 15, em que o atributo compreende um atributo @d.
17. Meio de armazenamento legível por computador tendo instruções armazenadas no mesmo que, quando executadas, fazem com que um processador: determine que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados especificando um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; recupere um primeiro conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo;
recupere um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo; em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo: omita a recuperação de dados de mídia com tempos de apresentação durante o período; e estenda a linha temporal de segmento de acordo com a determinação.
18. Meio de armazenamento legível por computador, de acordo com a reivindicação 17, em que o arquivo de manifesto compreende uma descrição de apresentação de mídia (MPD).
19. Meio de armazenamento legível por computador, de acordo com a reivindicação 17, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um elemento MissingSection do arquivo de manifesto.
20. Meio de armazenamento legível por computador, de acordo com a reivindicação 17, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que representa um tempo de início do período de tempo para o qual os dados de mídia não são acessíveis.
21. Meio de armazenamento legível por computador, de acordo com a reivindicação 20, que adicionalmente compreende instruções que fazem com que o processador determine o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis usando o valor do atributo, compreendendo subtrair um valor de um elemento de desvio de tempo de apresentação do valor do atributo para determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
22. Meio de armazenamento legível por computador, de acordo com a reivindicação 20, em que o atributo compreende um atributo @t.
23. Meio de armazenamento legível por computador, de acordo com a reivindicação 17, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que especifica uma duração do período de tempo para o qual os dados de mídia não estão disponíveis.
24. Meio de armazenamento legível por computador, de acordo com a reivindicação 23, em que o atributo compreende um atributo @d.
25. Dispositivo para recuperar dados de mídia, o dispositivo compreendendo: meios para determinar que um arquivo de manifesto para uma apresentação de dados de mídia inclui dados especificando um período de tempo da apresentação para o qual os dados de mídia não estão disponíveis, mas para o qual uma linha temporal de segmento pode ser estendida; meios para recuperar um primeiro conjunto de segmentos da apresentação, incluindo dados de mídia tendo tempos de apresentação anteriores ao período de tempo; meios para recuperar um segundo conjunto de segmentos da apresentação incluindo dados de mídia tendo tempos de apresentação após o período de tempo;
meios para omitir a recuperação de dados de mídia tendo tempos de apresentação durante o período de tempo em resposta à determinação de que o arquivo de manifesto inclui os dados especificando o período de tempo; e meios para estender a linha temporal de segmento de acordo com a determinação em resposta à determinação de que o arquivo de manifesto inclui os dados que especificam o período de tempo.
26. Dispositivo, de acordo com a reivindicação 25, em que o arquivo de manifesto compreende uma descrição de apresentação de mídia (MPD).
27. Dispositivo, de acordo com a reivindicação 25, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um elemento MissingSection do arquivo de manifesto.
28. Dispositivo, de acordo com a reivindicação 25, em que os dados que especificam o período de tempo para o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que representa um tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
29. Dispositivo, de acordo com a reivindicação 28, que adicionalmente compreende meios para determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis usando o valor do atributo, compreendendo subtrair um valor de um elemento de desvio de tempo de apresentação do valor de o atributo para determinar o tempo de início do período de tempo para o qual os dados de mídia não estão disponíveis.
30. Dispositivo, de acordo com a reivindicação 28, em que o atributo compreende um atributo @t.
31. Dispositivo, de acordo com a reivindicação 25, em que os dados que especificam o período de tempo durante o qual os dados de mídia não estão disponíveis compreendem um atributo tendo um valor que especifica a duração do período de tempo durante o qual os dados de mídia não estão disponíveis.
32. Dispositivo, de acordo com a reivindicação 31, em que o atributo compreende um atributo @d.
DISPOSITIVO CLIENTE
DISPOSITIVO SERVIDOR
DISPOSITIVO DE PREPARAÇÃO DE SAÍDA DE SAÍDA DE
CONTEÚDO ÁUDIO VÍDEO 20 Petição 870200141787, de 10/11/2020, pág. 83/94
CONTEÚDO MULTIMÍDIA
FONTE FONTE
DE ÁUDIO DE VÍDEO ARQUIVO DE MANIFESTO DECODIFI- DECODIFI-
CADOR DE CADOR DE ÁUDIO 46 VÍDEO 48
REPRESENTAÇÃO
UNIDADE DE CODIFICA- CODIFICA- DESENCAPSU- DOR DE DOR DE LAMENTO 50
ÁUDIO VÍDEO 26 28 REPRESENTAÇÃO 1/8
UNIDADE DE
RECUPERAÇÃO 52
UNIDADE DE UNIDADE DE ENCAPSULA- PROCESSAMENRO MENTO 30 DE SLICITAÇÃO INTERFACE DE 70 SAÍDA
INTERFACE DE
SAÍDA INTERFACE DE
REDE
REDE
UNIDADE DE RECUPERAÇÃO
SERVIDOR
PROXI
CLIENTE DASH APLICATIVO
DE MÍDIA
UNIDADE DE
RECEPÇÃO DE
EMBMS
Petição 870200141787, de 10/11/2020, pág. 85/94
REPRESENTAÇÃO
DADOS DE
CABEÇALHO SEGMENTO SEGMENTO SEGMENTO
DESCRIÇÃO DE
APRESENTAÇÃO
DE MÍDIA 3/8
REPRESENTAÇÃO
DADOS DE
CABEÇALHO SEGMENTO SEGMENTO SEGMENTO
Petição 870200141787, de 10/11/2020, pág. 86/94
ARQUIVO DE VÍDEO
CAIXA MOOV
CAIXAS FRAGMENTOS
TIPO DE CAIXA
SIDX DE FILME
ARQUIVO MFRA 4/8
SEM PERDA (OU OCULTA) Petição 870200141787, de 10/11/2020, pág. 87/94
PERDA DENTRO DE UM SEGMENTO
PERDA NO FIM DE UM SEGMENTO 5/8
PERDA EM UMA FRONTEIRA DE SEGMENTO ANTECIPADA.
PRÓXIMO SEGMENTO NÃO
INICIA EM TEMPO PREDITO
PERDA DE FRONTEIRA DE
SEGMENTO
PERDA EM MÚLTIPLOS
SEGMENTOS
RECUPERAR ARQUIVO DE
MANIFESTO PARA APRESENTAÇÃO RECUPERAR SEGMENTO(S) DE
APRESENTAÇÃO
DETERMINAR QUE SEGMENTO
INCLUI SESSÃO AUSENTE
ESTENDER LINHA TEMPORAL
DE SEGMENTO
RECUPERAR SEGMENTOS
SUBSEQUENTES APÓS
SESSÃO AUSENTE
EMITIR DADOS DE MÍDIA DE
SEGMENTOS RECUPERADOS
RECUPERAR ARQUIVO DE
MANIFESTO PARA APRESENTAÇÃO
DETERMINAR QUE ARQUIVO DE
MANIFESTO INCLUI ELEMENTO DE
SESSÃO AUSENTE
DETERMINAR TEMPO DE INÍCIO
SESSÃO AUSENTE
DETERMINAR DURAÇÃO DE
SESSÃO AUSENTE
ESTENDER LINHA TEMPORAL DE
SEGMENTO DE ACORDO COM
ELEMENTO DE SESSÃO AUSENTE
RECUPERAR ARQUIVO DE
MANIFESTO PARA APRESENTAÇÃO
RECUPERAR SEGMENTOS
USANDO ARQUIVO DE MANIFESTO
DETERMINAR QUE PRIMEIRO
SEGMENTO INCLUI INDICAÇÃO
DE SESSÃO FALTANTE
ESTENDER LINHA TEMPORAL
DE SEGMENTO DE ACORDO
COM SESSÃO AUSENTE
DADOS DE MÍDIA DE SAÍDA DE
SEGMENTOS DE ACORDO COM A
LINHA DO TEMPO DO SEGMENTO
ESTENDIDO
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862670370P | 2018-05-11 | 2018-05-11 | |
US62/670,370 | 2018-05-11 | ||
US16/406,947 US11438647B2 (en) | 2018-05-11 | 2019-05-08 | Signaling missing sections of media data for network streaming in a manifest file |
US16/406,947 | 2019-05-08 | ||
PCT/US2019/031597 WO2019217733A1 (en) | 2018-05-11 | 2019-05-09 | Signaling, in a manifest file, missing sections of media data for network streaming |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020022899A2 true BR112020022899A2 (pt) | 2021-02-23 |
Family
ID=68464391
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020022899-0A BR112020022899A2 (pt) | 2018-05-11 | 2019-05-09 | sinalizar, em um arquivo de manifesto, seções ausentes de dados de mídia para rede de fluxo contínuo |
BR112020022891-5A BR112020022891A2 (pt) | 2018-05-11 | 2019-05-09 | sinalizar, em um segmento de mídia, seções ausentes de dados de mídia para streaming de rede |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020022891-5A BR112020022891A2 (pt) | 2018-05-11 | 2019-05-09 | sinalizar, em um segmento de mídia, seções ausentes de dados de mídia para streaming de rede |
Country Status (7)
Country | Link |
---|---|
US (2) | US11438647B2 (pt) |
EP (2) | EP3791600A1 (pt) |
CN (2) | CN112154672B (pt) |
BR (2) | BR112020022899A2 (pt) |
SG (2) | SG11202010458WA (pt) |
TW (2) | TW201947938A (pt) |
WO (2) | WO2019217733A1 (pt) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11438647B2 (en) * | 2018-05-11 | 2022-09-06 | Qualcomm Incorporated | Signaling missing sections of media data for network streaming in a manifest file |
US10986402B2 (en) | 2018-07-11 | 2021-04-20 | Qualcomm Incorporated | Time signaling for media streaming |
US10779017B2 (en) * | 2018-12-10 | 2020-09-15 | Warner Bros. Entertainment Inc. | Method and system for reducing drop-outs during video stream playback |
US11445270B2 (en) * | 2020-04-15 | 2022-09-13 | Comcast Cable Communications, Llc | Content information for manifest determination |
US20220038789A1 (en) * | 2020-08-03 | 2022-02-03 | Comcast Cable Communications, Llc | Video content processing systems and methods |
US11687386B2 (en) * | 2020-10-07 | 2023-06-27 | Tencent America LLC | MPD validity expiration processing model |
US20220156157A1 (en) * | 2020-11-17 | 2022-05-19 | At&T Intellectual Property I, L.P. | User-driven recovery of lost content |
US11962868B2 (en) * | 2020-11-30 | 2024-04-16 | Verizon Patent And Licensing Inc. | Detecting a quality issue associated with a video stream delivery |
US20240333545A1 (en) * | 2023-03-31 | 2024-10-03 | Adeia Guides Inc. | System and method for retrieving missing multicast or broadcast media segments using d2d communication |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8752102B2 (en) | 2008-01-03 | 2014-06-10 | Microsoft Corporation | Intelligent retransmission of data stream segments |
US9986009B2 (en) | 2010-10-06 | 2018-05-29 | Electronics And Telecommunications Research Institute | Apparatus and method for providing streaming content |
DE112011103642T5 (de) | 2010-11-02 | 2013-09-19 | Lg Electronics Inc. | Verfahren zum Senden/Empfangen von Medieninhalt und Vorrichtung zum Senden/Empfangen, die dieses verwendet |
EP2754300A1 (en) * | 2011-08-10 | 2014-07-16 | Telefonaktiebolaget LM Ericsson (PUBL) | Media stream handling |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9118744B2 (en) * | 2012-07-29 | 2015-08-25 | Qualcomm Incorporated | Replacing lost media data for network streaming |
US9699229B2 (en) * | 2014-01-16 | 2017-07-04 | Qualcomm Incorporated | Robust live operation of dash |
US9380097B2 (en) | 2014-04-01 | 2016-06-28 | Gamefly Israel Ltd. | Overcoming data loss in streaming video in IP networks |
US10298931B2 (en) | 2014-09-25 | 2019-05-21 | Microsoft Technology Licensing, Llc | Coupling sample metadata with media samples |
EP3257216B1 (en) | 2015-02-11 | 2021-01-27 | Expway | Method of handling packet losses in transmissions based on dash standard and flute protocol |
WO2016138493A1 (en) * | 2015-02-27 | 2016-09-01 | Sonic Ip, Inc. | Systems and methods for frame duplication and frame extension in live video encoding and streaming |
US10595087B2 (en) | 2015-07-14 | 2020-03-17 | DISH Technologies L.L.C. | Media content skipping |
EP3319327A4 (en) * | 2015-10-09 | 2019-01-02 | Sony Corporation | Information processing apparatus and information processing method |
EP3179688A1 (en) | 2015-12-11 | 2017-06-14 | Koninklijke KPN N.V. | Updating part of a manifest file on the basis of patches |
US20170278545A1 (en) | 2016-03-22 | 2017-09-28 | Sugarlock, Inc. | Media content manipulation |
US11617019B2 (en) * | 2016-07-28 | 2023-03-28 | Qualcomm Incorporated | Retrieving and accessing segment chunks for media streaming |
US20180103271A1 (en) | 2016-10-10 | 2018-04-12 | Qualcomm Incorporated | Systems and methods for signaling missing or corrupted video data |
US20180213294A1 (en) * | 2017-01-23 | 2018-07-26 | Ramp Holdings, Inc. | Recovering from gaps in video transmission for web browser-based players |
US10484726B2 (en) | 2017-06-02 | 2019-11-19 | Apple Inc. | Playlist error tags for delivery and rendering of streamed media |
CA3011330A1 (en) | 2017-07-14 | 2019-01-14 | Comcast Cable Communications, Llc | Reduced content manifest size |
US10681104B1 (en) | 2017-09-13 | 2020-06-09 | Amazon Technologies, Inc. | Handling media timeline offsets |
US10412425B2 (en) * | 2018-01-05 | 2019-09-10 | Facebook, Inc. | Processing gaps in audio and video streams |
US10771842B2 (en) | 2018-04-09 | 2020-09-08 | Hulu, LLC | Supplemental content insertion using differential media presentation descriptions for video streaming |
US11438647B2 (en) | 2018-05-11 | 2022-09-06 | Qualcomm Incorporated | Signaling missing sections of media data for network streaming in a manifest file |
-
2019
- 2019-05-08 US US16/406,947 patent/US11438647B2/en active Active
- 2019-05-08 US US16/406,956 patent/US11146852B2/en active Active
- 2019-05-09 BR BR112020022899-0A patent/BR112020022899A2/pt unknown
- 2019-05-09 WO PCT/US2019/031597 patent/WO2019217733A1/en active Application Filing
- 2019-05-09 EP EP19725608.4A patent/EP3791600A1/en active Pending
- 2019-05-09 WO PCT/US2019/031604 patent/WO2019217739A1/en active Application Filing
- 2019-05-09 SG SG11202010458WA patent/SG11202010458WA/en unknown
- 2019-05-09 EP EP19725612.6A patent/EP3791601A1/en active Pending
- 2019-05-09 CN CN201980031271.4A patent/CN112154672B/zh active Active
- 2019-05-09 SG SG11202010567TA patent/SG11202010567TA/en unknown
- 2019-05-09 BR BR112020022891-5A patent/BR112020022891A2/pt unknown
- 2019-05-09 CN CN201980031317.2A patent/CN112106382B/zh active Active
- 2019-05-10 TW TW108116253A patent/TW201947938A/zh unknown
- 2019-05-10 TW TW108116186A patent/TW201947937A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN112154672B (zh) | 2023-05-30 |
CN112106382B (zh) | 2022-08-09 |
TW201947937A (zh) | 2019-12-16 |
SG11202010567TA (en) | 2020-11-27 |
CN112154672A (zh) | 2020-12-29 |
US11146852B2 (en) | 2021-10-12 |
EP3791601A1 (en) | 2021-03-17 |
WO2019217733A1 (en) | 2019-11-14 |
US20190349629A1 (en) | 2019-11-14 |
CN112106382A (zh) | 2020-12-18 |
SG11202010458WA (en) | 2020-11-27 |
TW201947938A (zh) | 2019-12-16 |
WO2019217739A1 (en) | 2019-11-14 |
EP3791600A1 (en) | 2021-03-17 |
US11438647B2 (en) | 2022-09-06 |
US20190349630A1 (en) | 2019-11-14 |
BR112020022891A2 (pt) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230283863A1 (en) | Retrieving and accessing segment chunks for media streaming | |
US20210127182A1 (en) | Segment types as delimiters and addressable resource identifiers | |
BR112020022899A2 (pt) | sinalizar, em um arquivo de manifesto, seções ausentes de dados de mídia para rede de fluxo contínuo | |
BR112020015214A2 (pt) | inserção dinâmica de anúncio condicional | |
BR112019014070A2 (pt) | dados de sinalização para suporte de pré-busca para transmissão contínua de dados de mídia | |
BR112016022201B1 (pt) | Método para recuperar dados de mídia por um dispositivo cliente que tem um cliente de serviço de multicast de multimídia e um cliente de streaming adaptativo dinâmico sobre http, dispositivo cliente que tem um cliente de serviço de multicast de multimídia e um cliente de streaming adaptativo dinâmico sobre http, e, memória legível por computador | |
BR112013002686B1 (pt) | Método e dispositivo para recuperar dados de multimídia, método e dispositivo para enviar informação para dados de multimídia, e memória legível por computador | |
ES2818622T3 (es) | Entradas de muestra y acceso aleatorio | |
BR112020000307A2 (pt) | processamento de dados de mídia que utiliza trilhas de arquivo para conteúdo de web | |
US10834153B2 (en) | System level signaling of SEI tracks for media data streaming | |
BR112020000015A2 (pt) | processamento de mídia de dados usando um descritor genérico para caixas de formato de arquivo | |
US11564018B2 (en) | Random access at resync points of dash segments | |
ES2821382T3 (es) | Entradas de muestra y acceso aleatorio | |
US20210218976A1 (en) | Multiple decoder interface for streamed media data | |
US11184665B2 (en) | Initialization set for network streaming of media data | |
BR112020000195A2 (pt) | dados de mídia de processamento com o uso de formato de mídia omnidirecional | |
CN115244943B (zh) | 用于传输媒体数据的方法、设备和计算机可读存储介质 | |
BR112017027511B1 (pt) | Distribuição de middleware de métricas de qoe de cliente dash | |
BR112016016434B1 (pt) | Método de transmissão adaptativa dinâmica através de http, dispositivo para receber, a partir de um dispositivo de servidor, dados relacionados a dados de mídia de transmissão contínua dash, método e dispositivo de sinalização | |
BR112016022245B1 (pt) | Método e dispositivo de recuperar dados de mídia | |
BR112017018956B1 (pt) | Fluxo contínuo baseado em formato de arquivo com formatos dash baseados em lct |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B350 | Update of information on the portal [chapter 15.35 patent gazette] |