BR112020022891A2 - sinalizar, em um segmento de mídia, seções ausentes de dados de mídia para streaming de rede - Google Patents
sinalizar, em um segmento de mídia, seções ausentes de dados de mídia para streaming de rede Download PDFInfo
- Publication number
- BR112020022891A2 BR112020022891A2 BR112020022891-5A BR112020022891A BR112020022891A2 BR 112020022891 A2 BR112020022891 A2 BR 112020022891A2 BR 112020022891 A BR112020022891 A BR 112020022891A BR 112020022891 A2 BR112020022891 A2 BR 112020022891A2
- Authority
- BR
- Brazil
- Prior art keywords
- segment
- data
- media data
- media
- representation
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 68
- 238000003860 storage Methods 0.000 claims description 31
- 238000011084 recovery Methods 0.000 description 66
- 239000012634 fragment Substances 0.000 description 43
- 230000006978 adaptation Effects 0.000 description 37
- 238000005538 encapsulation Methods 0.000 description 27
- 230000000875 corresponding effect Effects 0.000 description 26
- 238000002360 preparation method Methods 0.000 description 18
- 230000004044 response Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000009877 rendering Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 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
- 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
- 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
- 230000001413 cellular effect Effects 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
- 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/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
- 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
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
Abstract
sinalizar, em um segmento de mídia, seções ausentes de dados de mídia para streaming de rede. 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 circuitos e configurados 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 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 do tempo de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
Description
[0001] Este pedido reivindica o benefício do Pedido Provisório US nº 62/670.370, depositado em 11 de maio de 2018, e do Pedido US nº 16/406.956, depositado em 8 de maio de 2019, sendo que todo o conteúdo de cada um é aqui incorporado por referência.
[0002] Esta divulgação se refere ao transporte de dados de mídia codificados.
[0003] Capacidades de vídeo digital podem ser incorporadas a uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de difusão digital direta, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), laptops ou desktops, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, vídeo dispositivos de videogames, consoles de videogame, telefones celulares ou de 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, 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 a codificação dos dados de vídeo, os dados de vídeo podem ser empacotados para transmissão ou armazenamento. Os dados de vídeo podem ser agrupados em um arquivo de vídeo em conformidade com qualquer um de uma variedade de padrões, como o formato de arquivo de mídia de base da 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 streaming de rede, como Streaming Adaptativo Dinâmico sobre HTTP (DASH). Em alguns casos, os dados de mídia esperados dos segmentos podem não estar presentes devido a falhas em diferentes partes de um sistema de streaming. 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 do tempo de segmento em um dispositivo de recepção. Ou seja, o dispositivo de recepção pode recuperar dados de mídia com tempos de apresentação posterior à seção ausente e emitir os dados de mídia, sem emitir dados de mídia desejados para a seção ausente. Adicionalmente ou alternativamente, as seções ausentes podem ser sinalizadas em um arquivo de manifesto, de modo que os dispositivos de recepção possam evitar a solicitação das seções ausentes.
[0006] Em um exemplo, um método de 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 do tempo 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 com 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 do tempo 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 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 do tempo 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 de tempo; e estender a linha do tempo de segmento de acordo com a determinação.
[0008] Em outro exemplo, um meio de armazenamento legível por computador tem instruções armazenadas nele que, quando executadas, fazem um processador 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 do tempo 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 de tempo; e estender a linha do tempo 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 do tempo 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 do tempo 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 de recuperação de dados de mídia inclui 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 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 do tempo de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo 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 circuitos e configurados 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 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 do tempo de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
[0012] Em outro exemplo, um meio de armazenamento legível por computador tem instruções armazenadas nele que, quando executadas, fazem um processador 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 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 do tempo de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
[0013] Em outro exemplo, um dispositivo para recuperação de 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 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 do tempo de um segmento pode ser estendida; meios para recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; meios para estender a linha do tempo 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 do tempo de segmento estendida.
[0014] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetos, e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[0015] A FIG. 1 é um diagrama de blocos que ilustra um sistema de exemplo que implementa técnicas para streaming de dados de mídia em uma rede.
[0016] A FIG. 2 é um diagrama de blocos que ilustra um exemplo de conjunto de componentes de uma unidade de recuperação em mais detalhes.
[0017] A FIG. 3 é um diagrama conceitual que ilustra elementos de exemplo de conteúdo multimídia.
[0018] A FIG. 4 é um diagrama de blocos que ilustra elementos de um arquivo de vídeo de exemplo.
[0019] A FIG. 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 FIG. 6 é um fluxograma que ilustra um método de exemplo para determinar que os dados de mídia transmitidos por streaming incluem uma seção ausente, de acordo com as técnicas desta divulgação.
[0021] A FIG. 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 FIG. 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 streaming de rede, como Streaming Adaptativo Dinâmico sobre HTTP (DASH), Streaming ao Vivo HTTP (HLS), Streaming Suave Microsoft, ou semelhantes.
[0024] No caso de distribuição (ao vivo) linear, os segmentos esperados podem não estar necessariamente presentes devido a falhas em diferentes partes do sistema ponta a ponta. Uma boa visão geral dos casos de uso aparece na Seção 4.8 do Fórum de Indústria DASH, "Diretrizes para implementação: Pontos de interoperabilidade DASH-IF," Versão 4, 12 de dezembro de 2016, disponível em dashif.org/wp-content/uploads/2016/ 12/DASH-IF-IOP-v4.0-clean.pdf.
[0025] Um exemplo são as falhas de codificador/empacotador. Se um codificador/empacotador falhar por algum motivo, e um codificador/empacotador redundante começar a emitir 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 de codificador é um multicast de Protocolo de Datagrama de Usuário (UDP) TS MPEG-2 com segmentação virtual, como CableLabs EBP ou descritores de limite MPEG-2. Essa abordagem não usa protocolos multicast confiáveis. Um pacote UDP de tal implantação pode conter sete pacotes TS MPEG-2 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(s) representação(ões) restante(s) 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, então uma solicitação (por exemplo, uma solicitação HTTP GET 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 ao vivo principal de DASH de acordo com o DASH-IF IOP. A perda de um segmento faz com que a mensagem de evento (EMSG) e a informação de segmento não possam mais ser distribuídas 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 fornece 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 desta 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 de conjunto de adaptação como normalmente é feito. Usar SegmentTimeline no nível de conjunto de adaptação se aplicaria a todas as representações, o que seria incorreto caso a perda fosse específica para 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 exatamente 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 tamanhos de MPD grandes é a sobrecarga 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 comum no nível de conjunto de adaptação (que se aplica a todas as representações neste conjunto de adaptação). Isso permite um 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 alternativamente, 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 de modo que um cliente DASH possa 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, esse acréscimo 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 fornecerem 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 do tempo 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 um 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 é 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 um de formato de arquivo de mídia de base ISO, formato de arquivo de
Codificação de Vídeo Escalonável (SVC), formato de arquivo de Codificação de Vídeo Avançada (AVC), formato de arquivo de Projeto de Parceria de Terceira Geração, e/ou formato de arquivo de Codificação de Vídeo Multivistas (MVC), ou outros formatos de arquivo de vídeo semelhantes.
[0035] No streaming 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 fornecidos para streaming HTTP, porque uma operação GET parcial pode obter um ou mais fragmentos de filme individuais. Em um fragmento de filme, pode haver vários fragmentos de faixa de diferentes faixas. No streaming 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 fazer o download de informações de dados de mídia para apresentar um serviço de streaming a um usuário.
[0036] No exemplo de streaming de dados 3GPP usando streaming 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 multivistas e/ou escalonáveis) ou diferentes taxas de bits. O manifesto de tais representações pode ser definido em uma estrutura de dados de Descrição de Apresentação de Descrição (MPD). Uma apresentação de mídia pode corresponder a uma coleção estruturada de dados que é acessível a um dispositivo cliente de streaming HTTP. O dispositivo cliente de streaming HTTP pode solicitar e baixar informações de dados de mídia para apresentar um serviço de streaming 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 do 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 de 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, linguagem 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 correspondendo a um período particular do conteúdo multimídia e codificados de uma maneira particular.
[0038] As representações de um determinado período podem ser atribuídas a um grupo indicado por um atributo no MPD indicativo 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 dinâmica e perfeitamente entre essas representações, por exemplo, para realizar a adaptação de largura de banda. Por exemplo, cada representação de dados de vídeo para um determinado período 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. Dados de temporização 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, como um localizador de recurso uniforme (URL), nome de recurso uniforme (URN) ou identificador de recurso uniforme (URI).
O MPD pode fornecer os identificadores para cada segmento. Em alguns exemplos, o MPD também pode fornecer 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 específicos 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 FIG. 1 é um diagrama de blocos que ilustra um sistema de exemplo 10 que implementa técnicas para streaming de dados de mídia em uma rede. Neste exemplo, o sistema 10 inclui dispositivo de preparação de conteúdo 20, dispositivo de servidor 60 e dispositivo cliente 40. O dispositivo cliente 40 e o dispositivo de servidor 60 são acoplados comunicativamente pela rede 74, que pode incluir a Internet. Em alguns exemplos, o dispositivo de preparação de conteúdo 20 e o dispositivo de servidor 60 também podem ser acoplados pela rede 74 ou outra rede, ou podem ser acoplados diretamente comunicativamente. Em alguns exemplos, o dispositivo de preparação de conteúdo 20 e o dispositivo de servidor 60 podem compreender o mesmo dispositivo.
[0042] Dispositivo de preparação de conteúdo 20, no exemplo da FIG. 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 a serem codificados pelo codificador de áudio 26. Alternativamente, a fonte de áudio 22 pode compreender um meio de armazenamento que armazena dados de áudio previamente gravados, 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 de servidor 60 em todos os exemplos, mas pode armazenar conteúdo multimídia em um meio separado que é lido pelo dispositivo de 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 obter simultaneamente 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 de áudio e vídeo ao vivo, streaming, 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 simultaneamente 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 a 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 um carimbo de data/hora em cada quadro de áudio codificado que representa um momento 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 um carimbo de data/hora em cada quadro de vídeo codificado que representa um momento 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 um carimbo de data/hora e um quadro de vídeo compreendendo o mesmo carimbo de data/hora. 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 os carimbos de data/hora, 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 um carimbo de data/hora.
[0046] Em alguns exemplos, a fonte de áudio 22 pode enviar dados para o codificador de áudio 26 correspondendo a um momento 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 momento 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 um carimbo de data/hora.
[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 de outro. A unidade básica de dados de um fluxo elementar é um pacote de fluxo elementar empacotado (PES). Assim, os dados de vídeo codificados geralmente correspondem a streams 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 próximo padrão de Codificação de Vídeo de Alta Eficiência (HEVC), 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 de consumo de recursos do decodificador, como, por exemplo, memória e computação do decodificador, que estão relacionadas à 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 perfil), 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 da sintaxe no fluxo de bits, como o tamanho especificado das imagens decodificadas. O padrão H.264 também reconhece 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 de imagem multiplicada pelo número de imagens decodificadas por segundo). O padrão H.264 fornece 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 oferece suporte a 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 do 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. Definições de perfis e níveis podem ser úteis para 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 de buffer de imagem decodificada (DPB), tamanho de buffer 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 sub-macrobloco 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 FIG. 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 que compreendem 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, interagir 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 de 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, 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, conforme 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 a partir dos pacotes PES. Os segmentos de vídeo codificados podem ser organizados em unidades NAL, que fornecem uma representação de vídeo "amigável para a rede" que endereça aplicações como telefonia de vídeo, armazenamento, difusão ou streaming. 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] As unidades NAL não 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 de conjunto de parâmetros podem ser transmitidas em um canal diferente do que outras unidades NAL, como unidades NAL SEI.
[0055] As Informações de Aprimoramento Suplementar (SEI) podem 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 a 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. Além disso, a unidade de encapsulamento 30 pode formar um arquivo de manifesto, como um descritor de apresentação de mídia (MPD) que descreve as 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 fornecer 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, como uma interface de barramento serial universal (USB), um gravador ou gravador de CD ou DVD, uma interface para mídia de armazenamento magnético ou flash ou outras interfaces para armazenamento ou transmissão de dados de mídia. A unidade de encapsulamento 30 pode fornecer 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 de servidor 60 por meio de transmissão de rede ou mídia de armazenamento. No exemplo da FIG. 1, o dispositivo de servidor 60 inclui meio de armazenamento 62 que armazena vários conteúdos de 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, como streaming ao vivo, vários componentes do dispositivo de preparação de conteúdo 20 podem encontrar um erro, conforme 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 realizar 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 alternativamente, a unidade de encapsulamento 30 pode gerar o arquivo de manifesto 66 para incluir informações indicando os segmentos de seção ausentes, de modo que o dispositivo cliente 40 possa 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 de, por exemplo, rede 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 alto-falantes, informações de ângulo de câmera que podem descrever um ângulo de câmera ou perspectiva de câmera de mundo real de uma cena para representações no conjunto de adaptação, informações de classificação que descrevem o conteúdo adequadamente para públicos específicos, 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, como taxas de bits, para representações individuais de conjuntos de adaptação. Desta forma, um conjunto de adaptação pode fornecer uma adaptação simplificada da largura de banda de rede. As representações em um conjunto de adaptação podem ser indicadas usando elementos filho de um elemento de conjunto de adaptação do arquivo de manifesto 66.
[0060] O dispositivo de servidor 60 inclui unidade de processamento de solicitação 70 e interface de rede 72. Em alguns exemplos, o dispositivo de servidor 60 pode incluir uma pluralidade de interfaces de rede. Além disso, qualquer um ou todos os recursos do dispositivo de servidor 60 podem ser implementados 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 distribuição de conteúdo podem armazenar dados em cache de conteúdo multimídia 64, e incluir componentes que estão em substancialmente conformidade com aqueles do dispositivo de 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 dos dispositivos clientes, como 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, Grupo de Trabalho de Rede, IETF, junho de 1999. Ou seja, a unidade de processamento de solicitação 70 pode ser configurada para receber HTTP GET ou solicitações GET parciais e fornecer 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 ainda ser configurada para atender a solicitações HTTP HEAD para fornecer 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 fornecer os dados solicitados a um dispositivo solicitante, como o dispositivo cliente 40.
[0062] Adicionalmente ou alternativamente, a unidade de processamento de solicitação 70 pode ser configurada para fornecer dados de mídia por meio de um protocolo de difusão ou multicast, 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 de servidor 60 pode entregar esses segmentos ou subsegmentos usando eMBMS ou outro protocolo de transporte de rede de difusão ou multicast. Por exemplo, a unidade de processamento de solicitação 70 pode ser configurada para receber um pedido de adesão ao grupo de multicast do dispositivo cliente 40. Ou seja, o dispositivo de servidor 60 pode anunciar um endereço de protocolo de Internet (IP) associado a um grupo de multicast para dispositivos cliente, incluindo dispositivo cliente 40, associado a um conteúdo de mídia específico (por exemplo, uma difusão de um evento ao vivo). O dispositivo cliente 40, por sua vez, pode enviar uma solicitação para ingressar no grupo de multicast. Esta solicitação pode ser propagada por toda a rede 74, por exemplo, roteadores que constituem a rede 74, de modo que os roteadores sejam obrigados a direcionar o tráfego destinado ao endereço IP associado ao grupo de multicast para dispositivos clientes assinantes, como o dispositivo cliente 40.
[0063] Conforme ilustrado no exemplo da FIG. 1, o c 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 o 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 as capacidades de renderização da saída de vídeo 44. Os dados de configuração também podem incluir qualquer uma ou todas as preferências de idioma selecionadas 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 parte 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 fornecido para executar instruções para software ou firmware.
[0065] A unidade de recuperação 52 pode comparar as capacidades de decodificação e renderização do dispositivo cliente 40 com as 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) com 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 uma quantidade atualmente disponível de largura de banda de rede, e recuperar segmentos de uma das representações com uma taxa de bits que pode ser satisfeita pela largura de banda de rede.
[0066] Em geral, as representações de taxa de bits mais alta podem gerar reprodução de vídeo de qualidade superior, enquanto as representações de taxa de bits mais baixa podem fornecer 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 de rede 74.
[0067] Adicionalmente ou alternativamente, a unidade de recuperação 52 pode ser configurada para receber dados de acordo com um protocolo de rede de difusão ou multicast, como eMBMS ou multicast IP. Em tais exemplos, a unidade de recuperação 52 pode enviar um pedido para se juntar a um grupo de rede multicast associado a um determinado conteúdo de mídia. Depois de se juntar ao grupo de multicast, a unidade de recuperação 52 pode receber dados do grupo de multicast sem mais solicitações emitidas para o dispositivo de servidor 60 ou dispositivo de preparação de conteúdo 20. A unidade de recuperação 52 pode enviar um pedido para deixar o grupo de multicast quando os dados do grupo de multicast não forem mais necessários, por exemplo, para parar a reprodução ou para mudar os canais para um grupo de 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 alternativamente, 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 do tempo 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 de servidor 60 e o dispositivo cliente 40 podem ser configurados de acordo com modificações no DASH conforme discutido abaixo:
5.3.9.7 Sinalização de Seção Ausente
5.3.9.7.1 Geral
[0070] Em certos casos, uma seção contínua no tempo de uma Representação ou 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.
[0071] O elemento MissingSection permite expressar tais seções que devem ser evitadas pelo cliente DASH, por exemplo, mudando para uma Representação que não inclui tal seção Ausente.
[0072] O elemento MissingSection deve conter uma lista de S elementos, cada um dos quais descreve uma sequência de seções Ausentes contíguas. O elemento S contém um atributo @d opcional que especifica a duração do MPD da seção ausente e um atributo de tempo @t em que o valor do atributo @t menos o valor de @presentationTimeOffset especifica o tempo de início do MPD da seção ausente.
[0073] A semântica dos atributos e elementos para Seção Ausente é fornecida em 5.3.9.7.2, Tabela XX. A sintaxe XML da linha do tempo de segmento é fornecida em
5.3.9.7.3.
5.3.9.7.2 Semântica Tabela XX - Semântica de Elemento SegmentTimeline Nome de Atributo ou Uso Descrição Elemento MissingSection especifica todas as seções Ausentes da Representação associada S 1.. N especifica uma Seção Ausente @t M este valor deste atributo menos o valor de @presentationTimeOffset especifica o tempo de início do MPD, em unidades @timescale, da primeira amostra na seção Ausente. O valor deste atributo deve ser igual ou maior que a soma do tempo de apresentação mais antigo de elemento S anterior e a soma das durações de seções contíguas. @d O especifica a duração de seção Ausente em unidades do valor de @timescale. Se não estiver presente, a seção Ausente dura até o final do elemento S, o início do próximo elemento S, o final do período ou até a próxima atualização de MPD. Legenda: Para atributos: M = Obrigatório, O = Opcional, OD = Opcional com Valor Padrão, CM = Condicionalmente Obrigatório. Para elementos: <minOccurs>... <maxOccurs> (N = unbounded) Os elementos estão em negrito; os atributos não estão em negrito e são precedidos por @.
5.3.9.7.3 Sintaxe XML <!-- Segment Timeline --> <xs:complexType name=“MissingSectionType”> <xs:sequence>
<xs:element name=“S” minOccurs=“1” maxOccurs=“unbounded” > <xs:complexType> <xs:attribute name=“t” ype=“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:anyAttribute namespace=“##other” processContents=“lax”/> </xs:complexType>
[0074] Assim, o dispositivo de preparação de conteúdo 20 e/ou dispositivo de servidor 60 pode sinalizar um elemento MissingSection do arquivo de manifesto 66, que pode ser um 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 a tempos de reprodução para os quais nenhum dado de mídia está disponível.
[0075] Adicionalmente ou alternativamente, em alguns exemplos, o dispositivo de preparação de conteúdo 20, o dispositivo de servidor 60 e o dispositivo cliente 40 podem ser configurados de acordo com modificações no DASH conforme discutido abaixo.
[0076] O seguinte é o texto de especificação proposto para MPEG-DASH ISO/IEC 23009-1, de acordo com o qual o dispositivo de preparação de conteúdo 20, o dispositivo de servidor 60 e o dispositivo cliente 40 podem ser configurados:
[0077] Um segmento de seção ausente é definido com o propósito de estender a Linha do Tempo de Segmento, mesmo se os dados no Segmento não estiverem presentes ou estiverem apenas parcialmente presentes. O Segmento não pode conter 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 o período, o segmento deve incluir uma 'ausência' de marca principal. 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 do Tempo de Segmento, ou seja: o o earliest_presentation_time na caixa 'sidx' será o valor de S@t conforme sinalizado na Linha do Tempo de Segmento no MPD.
o os campos Subsegment_duration na caixa 'sidx' devem ser o valor de S@d conforme sinalizado na Linha do Tempo de Segmento no MPD.
[0078] Observação: ao forçar esses valores, o cliente DASH é capaz de estender adequadamente a Linha do Tempo de Segmento, embora nenhum dado de mídia real possa estar presente.
[0079] O seguinte é o texto de especificação proposto para DASH-IF IOP, de acordo com o qual o dispositivo de preparação de conteúdo 20, o dispositivo de servidor 60 e o dispositivo cliente 40 podem ser configurados:
[0080] Se o cliente DASH receber um segmento com a marca principal 'ausente', o cliente DASH deve usar a caixa Índice de Segmento ('sidx') para estender a linha do tempo. Se o segmento não contiver todas as mídias conforme indicado no Índice de Segmento, o cliente DASH deve informar o decodificador de mídia sobre as informações ausentes.
[0081] Desta forma, o dispositivo de preparação de conteúdo 20 e/ou dispositivo de 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 mais antigo e a duração das seções ausentes. Da mesma forma, o dispositivo cliente 40 pode determinar que a linha do tempo 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 alternativa 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.
[0082] A interface de rede 54 pode receber e fornecer dados de segmentos de uma representação selecionada para a unidade de recuperação 52, que pode, por sua vez, fornecer os segmentos para a unidade de descapsulação 50. A unidade de descapsulação 50 pode descapsular 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 se os dados codificados fazem parte de um áudio ou fluxo de 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.
[0083] 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 descapsulação 50, cada um pode ser implementado como qualquer um de uma variedade de circuitos de processamento adequados, conforme aplicável, como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicação (ASICs), matrizes de portas programáveis em campo
(FPGAs), circuitos lógicos discretos, 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 descapsulação 50 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, como um telefone celular.
[0084] O dispositivo cliente 40, dispositivo de 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 de 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 do) dispositivo de servidor
60.
[0085] 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.
[0086] 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.
[0087] Consequentemente, 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 vista como um "componente de vista". Ou seja, um componente de vista pode compreender uma imagem codificada (ou quadro) para uma vista particular em um determinado momento. Consequentemente, uma unidade de acesso pode ser definida como compreendendo todos os componentes de vista 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.
[0088] 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 de nível. Um MPD é um exemplo de arquivo de manifesto, como o arquivo de manifesto 66. O dispositivo cliente 40 pode recuperar o MPD de uma apresentação de mídia para determinar como acessar fragmentos de filme de várias apresentações. Fragmentos de filme podem estar localizados em caixas de fragmentos de filme (caixas de moof) de arquivos de vídeo.
[0089] O arquivo de manifesto 66 (que pode compreender, por exemplo, um MPD) pode anunciar a disponibilidade de segmentos de representações 68. Ou seja, o MPD pode incluir informações que indicam o tempo de relógio de parede em que um primeiro segmento de uma das representações 68 se torna disponível, bem como informações que indicam 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 determinado segmento.
[0090] Após a unidade de encapsulamento 30 ter montado 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 saída. 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 envia 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.
[0091] A interface de rede 54 pode receber uma unidade NAL ou unidade de acesso através da rede 74 e fornecer a unidade NAL ou unidade de acesso à unidade de descapsulação 50, através da unidade de recuperação 52. A unidade de descapsulação 50 pode descapsular 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 se os dados codificados fazem parte de um áudio ou fluxo de 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.
[0092] A FIG. 2 é um diagrama de blocos que ilustra um conjunto exemplar de componentes da unidade de recuperação 52 da FIG. 1 em maiores detalhes. Neste exemplo, a unidade de recuperação 52 inclui unidade de middleware eMBMS 100, cliente DASH 110 e aplicativo de mídia 112.
[0093] 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 através de eMBMS, por exemplo, de acordo com a Entrega de Arquivo sobre Transporte Unidirecional (FLUTE),
descrito em T. Paila et al., "FLUTE — File Delivery over Unidirectional Transport", Grupo de Trabalho de Rede, 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 através de difusão de, por exemplo, dispositivo de servidor 60, que pode atuar como um centro de serviço de difusão/multicast (BM-SC).
[0094] Como a unidade de middleware eMBMS 100 recebe dados para arquivos, a unidade de middleware eMBMS pode armazenar os dados recebidos no cache 104. O cache 104 pode compreender um meio de armazenamento legível por computador, como memória flash, um disco rígido, RAM ou qualquer outro meio de armazenamento adequado.
[0095] 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 fornecer 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 host 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 HTTP GET que inclui uma solicitação para http://127.0.0.1/rep1/seg3 e enviar a solicitação para unidade de servidor proxy 102. A unidade de servidor proxy 102 pode recuperar dados solicitados do cache 104 e fornecer os dados ao cliente DASH 110 em resposta a tais solicitações.
[0096] A FIG. 3 é um diagrama conceitual que ilustra elementos de exemplo de conteúdo multimídia 120. O conteúdo multimídia 120 pode corresponder ao conteúdo multimídia 64 (FIG. 1), ou outro conteúdo multimídia armazenado no meio de armazenamento 62. No exemplo da FIG. 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 de 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.
[0097] O MPD 122 pode compreender uma estrutura de dados separada das representações 124. O MPD 122 pode corresponder ao arquivo de manifesto 66 da FIG. 1. Da mesma forma, as representações 124 podem corresponder às representações 68 da FIG. 1. Em geral, MPD 122 pode incluir dados que geralmente descrevem características de representações 124, 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).
[0098] 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, deslocamento de bytes para aleatório pontos de acesso dentro dos segmentos 128, localizadores uniformes de recursos (URLs) dos 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 alternativamente, tais características podem ser totalmente incluídas no MPD 122.
[0099] 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 FIG. 3. O MPD 122 pode incluir características conforme descrito pela Especificação 3GPP, com a adição de qualquer ou todas as informações sinalizadas descritas nesta divulgação.
[0100] Cada um dos segmentos 128, 132 pode ser associado a um único localizador de recursos uniforme
(URL). Assim, cada um dos segmentos 128, 132 pode ser recuperado independentemente usando um protocolo de rede de streaming, como DASH. Desta forma, um dispositivo de destino, como o dispositivo cliente 40, pode usar uma solicitação HTTP GET para recuperar os segmentos 128 ou
132. Em alguns exemplos, o dispositivo cliente 40 pode usar solicitações HTTP GET parciais para recuperar intervalos de bytes específicos de segmentos 128 ou 132.
[0101] De acordo com as técnicas desta divulgação, 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 é 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 representação 124A estando no mesmo conjunto de adaptação, por exemplo.
[0102] A FIG. 4 é um diagrama de blocos que ilustra elementos de um arquivo de vídeo de exemplo 150,
que pode corresponder a um segmento de uma representação, como um dos segmentos 128, 132 da FIG. 3. Cada um dos segmentos 128, 132 pode incluir dados que se conformam substancialmente ao arranjo de dados ilustrado no exemplo da FIG. 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 FIG. 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 FIG. 4 representa um exemplo de um 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.
[0103] A caixa 152 de tipo de arquivo (FTYP) 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 fragmento de filme 164 e/ou caixa MFRA 166.
[0104] Em alguns exemplos, um segmento, como o arquivo de vídeo 150, pode incluir uma caixa de atualização
MPD (não mostrada) antes da caixa FTYP 152. A caixa de atualização de MPD pode incluir informações indicando que um MPD correspondente a uma representação incluindo o arquivo de vídeo 150 deve ser atualizado, juntamente com informações para atualizar o MPD. Por exemplo, a caixa de atualização do MPD pode fornecer um URI ou URL para um recurso a ser usado para atualizar o MPD. Como outro exemplo, a caixa de atualização do MPD pode incluir dados para atualizar o MPD. Em alguns exemplos, a caixa de atualização 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.
[0105] Caixa MOOV 154, no exemplo da FIG. 4, inclui a caixa de cabeçalho de filme (MVHD) 156, a caixa de seção ausente (MS) 157, a caixa de faixa (TRAK) 158 e uma ou mais caixas de extensão de filme (MVEX) 160. Em geral, a caixa MVHD 156 pode descrever características gerais do arquivo de vídeo 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 o arquivo de vídeo 150 ou outros dados que geralmente descrevem o vídeo arquivo 150.
[0106] A caixa 157 da MS pode incluir informações indicando que uma ou mais seções do arquivo de vídeo 150 não estão devidamente 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, trocando 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 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.
[0107] 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 pelos dados da caixa TRAK 158 e/ou caixas SIDX 162.
[0108] 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 (FIG. 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.
[0109] As 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 streaming 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. Por conseguinte, todas as amostras de vídeo codificadas podem ser incluídas em fragmentos de filme 164, em vez de na caixa MOOV 154.
[0110] A caixa MOOV 154 pode incluir uma série de caixas MVEX 160 iguais ao número de fragmentos de filme 164 no arquivo de vídeo 150. Cada uma das caixas MVEX 160 pode descrever as características de um correspondente dos fragmentos de filme 164. 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 o correspondente dos fragmentos de filme 164.
[0111] Conforme 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 momento 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 NAL não VCL associadas, como mensagens SEI. Por conseguinte, a 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 ainda sinalizar a presença de um conjunto de dados de sequência e/ou mensagens SEI de nível de sequência como estando presente em um dos fragmentos de filme 164 dentro de uma das caixas MVEX 160 correspondentes a um dos fragmentos de filme 164.
[0112] 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 3GPP, ou outros formatos de arquivo, não incluem necessariamente 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 caixas de Dados de Mídia correspondentes e uma Caixa de Dados de Mídia contendo dados referenciados por uma Caixa de Fragmentos de Filme deve seguir essa caixa de 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 fornece a contagem do número de bytes no material referenciado. ”
[0113] As caixas SIDX 162 geralmente fornecem 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 os subsegmentos começam e/ou terminam, desvios de bytes para os subsegmentos, se os subsegmentos incluem (por exemplo, inicia 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 quebrado (BLA) ou semelhante), uma posição do SAP (em termos de tempo de reprodução e/ou deslocamento de byte) no subsegmento, e semelhantes.
[0114] 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.
[0115] Os 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 FIG. 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. Fragmentos de filme 164 podem ser incluídos em ordem de número de sequência no arquivo de vídeo 150. 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.
[0116] 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 realizar buscas em locais temporais específicos (isto é, tempos de reprodução) dentro de um segmento encapsulado por arquivo de vídeo 150. O MFRA box 166 é geralmente opcional e não precisa ser incluído 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 um número de caixas de acesso aleatório de fragmento de faixa (TFRA) (não mostrado) igual ao número de faixa do arquivo de vídeo 150, ou em alguns exemplos, igual ao número de faixa de mídia (por exemplo, faixa sem dica) do arquivo de vídeo 150.
[0117] 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 fornecer indicações de locais dentro do arquivo de vídeo 150 dos SAPs. Por conseguinte, 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, como quadros P e/ou quadros B que dependem de SAPs. Quadros e/ou fatias da subsequência temporal podem ser arranjados 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 é um segmento de seção ausente.
[0118] A FIG. 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 fornecer 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 FIG. 5.
[0119] Em particular, a FIG. 5 representa um primeiro exemplo de sequência de segmentos 200 incluindo os segmentos 202A-202H, nos quais não há perda real ou oculta. A FIG. 5 também representa uma segunda sequência de exemplo 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. A FIG. 5 também representa uma terceira sequência de exemplo de segmentos 210 incluindo os segmentos 212A-212H, nos quais há perda no final do segmento 212E, de modo que o segmento 212E inclua a seção ausente 214. A FIG. 5 também representa uma quarta sequência de exemplo de segmentos 216 incluindo segmentos 218A-218H, em que há perda em um limite de segmento antecipado do segmento 218D que inclui a seção ausente 220, o que pode fazer com que o segmento 218D não comece em um tempo previsto. A FIG. 5 também representa um quinto exemplo de sequência de segmentos 222 incluindo segmentos 224A-2224C e 224E-224H em que há uma perda resultando na seção ausente 226 no limite do segmento para um segmento ausente 228 após o segmento 224C e antes do segmento 224E. A FIG. 5 também representa uma sexta sequência de exemplo de segmentos 230, incluindo segmentos 232A-232C, 232G e
232H, em que há uma perda de dados de mídia, resultando na falta de seção 234 em vários segmentos.
[0120] De acordo com as técnicas desta divulgação, um arquivo de manifesto pode incluir um elemento Seção Ausente para sinalizar qualquer uma das seções 208, 214, 220, 226 e/ou 234 ausentes. Da mesma forma, o segmento 206C pode incluir dados (como uma caixa SIDX) para sinalizar a seção 208 ausente; 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.
[0121] A FIG. 6 é um fluxograma que ilustra um método de exemplo para determinar que os dados de mídia transmitidos por streaming incluem uma seção ausente de acordo com as técnicas desta divulgação. O método da FIG. 6 pode ser realizada, por exemplo, pela unidade de recuperação 52 do dispositivo cliente 40 da FIG. 1, por exemplo. No entanto, deve ser entendido que outros dispositivos podem ser configurados para realizar este ou um método semelhante de acordo com as técnicas desta divulgação.
[0122] 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 streaming, como HTTP Streaming Ao Vivo (HLS), Streaming Dinâmico HTTP (HDS) Adobe, Streaming Suave Microsoft (MSS) ou semelhantes.
[0123] 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 e, em seguida, determinar as URLs de segmentos da representação selecionada, e enviar solicitações para os segmentos.
[0124] Em alguns exemplos, o arquivo de manifesto pode incluir um elemento Seção Ausente, conforme discutido acima. Em particular, o arquivo de manifesto pode incluir um ou mais elementos 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 alternativamente, 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).
[0125] Em resposta à determinação de que o segmento inclui a seção ausente, e usando os 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 do tempo de segmento (256) para levar em conta 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 alternativos de mídia de substituição para a seção ausente, como uma tela preta ou uma mensagem de erro.
[0126] A unidade de recuperação 52 pode prosseguir para recuperar os segmentos subsequentes seguindo a seção ausente (258). A unidade de recuperação 52 também pode enviar 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.
[0127] Desta forma, o método da FIG. 6 representa um exemplo de um método incluindo 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 do tempo 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 com 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 do tempo de segmento de acordo com a determinação.
[0128] Além disso, o método da FIG. 6 também representa um exemplo de um método incluindo 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 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 do tempo de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
[0129] A FIG. 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 FIG. 7 pode ser realizada, por exemplo, pela unidade de recuperação 52 do dispositivo cliente 40 da FIG. 1, por exemplo. No entanto, deve ser entendido que outros dispositivos podem ser configurados para realizar este ou um método semelhante de acordo com as técnicas desta divulgação.
[0130] 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 streaming, como HTTP Streaming Ao Vivo (HLS), Streaming Dinâmico HTTP (HDS) Adobe, Streaming Suave Microsoft (MSS) ou semelhantes.
[0131] 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.
[0132] Além disso, neste exemplo, a unidade de recuperação 52 determina que o arquivo de manifesto inclui um elemento Seção Ausente (272). Por exemplo, o elemento Seçã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 indicada 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.
[0133] A unidade de recuperação 52 pode, então, estender a linha do tempo de segmento de acordo com o elemento Seção Ausente do arquivo de manifesto (278). Embora não mostrado na FIG. 7 explicitamente,
[0134] Desta forma, o método da FIG. 7 representa um exemplo de um método incluindo 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 do tempo 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 com 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 do tempo de segmento de acordo com a determinação.
[0135] A FIG. 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 FIG. 8 pode ser realizada, por exemplo, pela unidade de recuperação 52 do dispositivo cliente 40 da FIG. 1, por exemplo. No entanto, deve ser entendido que outros dispositivos podem ser configurados para realizar este ou um método semelhante de acordo com as técnicas desta divulgação.
[0136] 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 streaming, como HTTP Streaming Ao Vivo (HLS), Streaming Dinâmico HTTP (HDS) Adobe, Streaming Suave Microsoft (MSS) ou semelhantes.
[0137] 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 HTTP GET ou GET parcial para os segmentos.
[0138] 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 earliest_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, a 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.
[0139] A unidade de recuperação 52 pode usar a indicação da seção ausente para estender a linha do tempo de segmento (296), isto é, 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 (como o decodificador de vídeo 48 da FIG. 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 alternativamente, 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, a unidade de recuperação 52 pode recuperar um segmento de uma representação diferente correspondente à seção ausente.
[0140] 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 com 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 do tempo de segmento.
[0141] Além disso, a unidade de recuperação 52 pode enviar dados de mídia dos segmentos que estão fora da seção ausente de acordo com a linha do tempo de segmento estendida (298). Por exemplo, a unidade de recuperação 52 pode emitir dados de mídia tendo tempos de apresentação anteriores à seção ausente e dados de mídia tendo tempos de apresentação posterior à 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).
[0142] Deste modo, o método da FIG. 8 representa um exemplo de um método incluindo 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 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 do tempo de um segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
[0143] 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 é não transitória ou (2) um meio de comunicação, como um sinal ou onda portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que pode 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.
[0144] 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 de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que pode ser usado para armazenar o código do programa desejado na forma de instruções ou estruturas de dados e que pode 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 website, 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 microondas, então o cabo coaxial, cabo de fibra ótica, par trançado, DSL ou tecnologias sem fio, 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 portadoras, sinais ou outros meios transitórios, mas são direcionadas para meios de armazenamento tangíveis não transitórios. Discos (disk e disc), conforme usado aqui, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete, disco blu-ray onde os discos (disk) geralmente reproduzem dados magneticamente, enquanto os discos (disc) reproduzem dados opticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo de meio legível por computador.
[0145] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados específicos de aplicação (ASICs), matrizes lógicas programáveis em campo (FPGAs) ou outros circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo "processador", conforme usado neste documento, pode referir-se 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 fornecida 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 circuitos ou elementos lógicos.
[0146] As técnicas desta divulgação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um monofone 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 aspectos funcionais de 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 fornecidas 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.
[0147] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do escopo das seguintes reivindicações.
Claims (33)
1. Método de recuperação de dados de mídia, o método compreendendo: 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 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 os quais uma linha do tempo de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
2. Método, de acordo com reivindicação 1, em que os dados incluídos no primeiro segmento compreendem dados de uma caixa de índice de segmento (SIDX) do segmento.
3. Método, de acordo com a reivindicação 1, em que os dados compreendem uma indicação de um início do período de tempo para o qual os dados de mídia não estão disponíveis e uma indicação de uma duração do período de tempo para o qual os dados de mídia não estão disponíveis.
4. Método, de acordo com a reivindicação 3, em que a indicação do início do período de tempo para o qual os dados de mídia não estão disponíveis compreende um valor de um elemento earliest_presentation_time, e em que a indicação da duração do período de tempo para o qual os dados de mídia são não disponível compreende um valor de um elemento Subsegment_duration.
5. Método, de acordo com a reivindicação 1, em que a representação compreende uma primeira representação, em que a seção ausente compreende uma seção ausente da primeira representação, o método compreendendo adicionalmente recuperar um terceiro segmento de uma segunda representação, a segunda representação sendo diferente da primeira representação, e o terceiro segmento tendo um tempo de reprodução que se sobrepõe à seção ausente da primeira representação.
6. Método, de acordo com a reivindicação 1, compreendendo adicionalmente recuperar dados de mídia pré- determinados para substituir o conteúdo de mídia principal desejado correspondente à seção ausente, em que os dados de mídia pré-determinados compreendem uma de uma tela preta ou uma ou mais mensagens de erro.
7. Método, de acordo com a reivindicação 1, em que os dados que indicam que o segmento inclui a seção ausente compreendem um elemento de mensagem de evento (emsg).
8. Método, de acordo com a reivindicação 7, em que o elemento emsg inclui dados que indicam uma expiração de validade de um arquivo de manifesto para a apresentação.
9. Método, de acordo com a reivindicação 1, compreendendo adicionalmente: determinar que o primeiro segmento inclui uma marca principal de "ausência"; e usar dados de uma caixa de índice de segmento (SIDX) do primeiro segmento para estender a linha do tempo de segmento.
10. Método, de acordo com a reivindicação 1, em que o primeiro segmento compreende um primeiro arquivo recuperável independentemente tendo um primeiro localizador de recurso uniforme (URL) exclusivo, e em que o segundo segmento compreende um segundo arquivo recuperável independentemente tendo um segundo URL exclusivo.
11. 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 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 os quais uma linha do tempo de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
12. Dispositivo, de acordo com reivindicação 11, em que os dados incluídos no primeiro segmento compreendem dados de uma caixa de índice de segmento (SIDX) do segmento.
13. Dispositivo, de acordo com a reivindicação 11, em que os dados compreendem uma indicação de um início do período de tempo para o qual os dados de mídia não estão disponíveis e uma indicação de uma duração 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 13, em que a indicação do início do período de tempo para o qual os dados de mídia não estão disponíveis compreende um valor de um elemento earliest_presentation_time, e em que a indicação da duração do período de tempo para o qual os dados de mídia são não disponível compreende um valor de um elemento Subsegment_duration.
15. Dispositivo, de acordo com a reivindicação 11, em que a representação compreende uma primeira representação, em que a seção ausente compreende uma seção ausente da primeira representação, e em que o um ou mais processadores são configurados adicionalmente para recuperar um terceiro segmento de uma segunda representação, a segunda representação sendo diferente da primeira representação, e o terceiro segmento tendo um tempo de reprodução que se sobrepõe à seção ausente da primeira representação.
16. Dispositivo, de acordo com a reivindicação 11, em que o um ou mais processadores são adicionalmente configurados para recuperar dados de mídia pré-determinados para substituir o conteúdo de mídia principal desejado correspondente à seção ausente, em que os dados de mídia pré-determinados compreendem uma de uma tela preta ou uma ou mais mensagens de erro.
17. Dispositivo, de acordo com a reivindicação 11, em que os dados que indicam que o segmento inclui a seção ausente compreendem um elemento de mensagem de evento (emsg).
18. Dispositivo, de acordo com a reivindicação 17, em que o elemento emsg inclui dados que indicam uma expiração de validade de um arquivo de manifesto para a apresentação.
19. Dispositivo, de acordo com a reivindicação 11, em que o um ou mais processadores são configurados adicionalmente para: determinar que o primeiro segmento inclui uma marca principal de "ausência"; e usar dados de uma caixa de índice de segmento (SIDX) do primeiro segmento para estender a linha do tempo de segmento.
20. Dispositivo, de acordo com a reivindicação 11, em que o primeiro segmento compreende um primeiro arquivo recuperável independentemente tendo um primeiro localizador de recurso uniforme (URL) exclusivo, e em que o segundo segmento compreende um segundo arquivo recuperável independentemente tendo um segundo URL exclusivo.
21. Meio de armazenamento legível por computador tendo instruções armazenadas nele que, quando executadas, fazem um processador: 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 os quais uma linha do tempo de segmento pode ser estendida; recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; estender a linha do tempo 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 do tempo de segmento estendida.
22. Meio de armazenamento legível por computador, de acordo com a reivindicação 21, em que os dados incluídos no primeiro segmento compreendem dados de uma caixa de índice de segmento (SIDX) do segmento.
23. Meio de armazenamento legível por computador, de acordo com a reivindicação 21, em que os dados compreendem uma indicação de um início do período de tempo para o qual os dados de mídia não estão disponíveis e uma indicação de 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 21, em que a representação compreende uma primeira representação, em que a seção ausente compreende uma seção ausente da primeira representação, compreendendo adicionalmente instruções para fazer o processador recuperar um terceiro segmento de uma segunda representação, a segunda representação sendo diferente da primeira representação, e o terceiro segmento tendo um tempo de reprodução que se sobrepõe à seção ausente da primeira representação.
25. Meio de armazenamento legível por computador, de acordo com a reivindicação 21, compreendendo adicionalmente instruções para fazer o processador recuperar dados de mídia pré-determinados para substituir o conteúdo de mídia principal desejado correspondente à seção ausente, em que os dados de mídia pré-determinados compreendem uma de uma tela preta ou uma ou mais mensagens de erro.
26. Meio de armazenamento legível por computador, de acordo com a reivindicação 21, em que os dados que indicam que o segmento inclui a seção ausente compreendem um elemento de mensagem de evento (emsg), em que o elemento emsg inclui dados que indicam um expiração de validade de um arquivo de manifesto para a apresentação.
27. Meio de armazenamento legível por computador, de acordo com a reivindicação 21, compreendendo adicionalmente instruções que fazem o processador: determinar que o primeiro segmento inclui uma marca principal de "ausência"; e usar dados de uma caixa de índice de segmento (SIDX) do primeiro segmento para estender a linha do tempo de segmento.
28. Dispositivo para recuperar dados de mídia, o dispositivo compreendendo: 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 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 os quais uma linha do tempo de segmento pode ser estendida; meios para recuperar dados de mídia de um segundo segmento tendo um tempo de apresentação posterior à seção ausente; meios para estender a linha do tempo 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 do tempo de segmento estendida.
29. Dispositivo, de acordo com reivindicação 28, em que os dados incluídos no primeiro segmento compreendem dados de uma caixa de índice de segmento (SIDX) do segmento.
30. Dispositivo, de acordo com a reivindicação 28, em que os dados compreendem uma indicação de um início do período de tempo para o qual os dados de mídia não estão disponíveis e uma indicação de uma duração do período de tempo para o qual os dados de mídia não estão disponíveis.
31. Dispositivo, de acordo com a reivindicação 28, compreendendo adicionalmente meios para recuperar dados de mídia pré-determinados para substituir o conteúdo de mídia principal desejado correspondente à seção ausente, em que os dados de mídia pré-determinados compreendem uma de uma tela preta ou uma ou mais mensagens de erro.
32. Dispositivo, de acordo com a reivindicação 28, em que os dados que indicam que o segmento inclui a seção ausente compreendem um elemento de mensagem de evento (emsg), em que o elemento emsg inclui dados que indicam uma expiração de validade de um arquivo de manifesto para a apresentação.
33. Dispositivo, de acordo com a reivindicação 28, compreendendo adicionalmente: meios para determinar que o primeiro segmento inclui uma marca principal de "ausência"; e meios para usar dados de uma caixa de índice de segmento (SIDX) do primeiro segmento para estender a linha do tempo de segmento.
EMITIR DADOS DE MÍDIA DE
SEGMENTOS DE ACORDO COM
LINHA DO TEMPO DE SEGMENTO
EXTENDIDO
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,956 | 2019-05-08 | ||
US16/406,956 US11146852B2 (en) | 2018-05-11 | 2019-05-08 | Signaling missing sections of media data for network streaming in a segment |
PCT/US2019/031604 WO2019217739A1 (en) | 2018-05-11 | 2019-05-09 | Signaling, in a media segment, missing sections of media data for network streaming |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020022891A2 true BR112020022891A2 (pt) | 2021-02-23 |
Family
ID=68464391
Family Applications (2)
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 |
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 |
Family Applications After (1)
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 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11438647B2 (pt) |
EP (2) | EP3791600A1 (pt) |
CN (2) | CN112154672B (pt) |
BR (2) | BR112020022891A2 (pt) |
SG (2) | SG11202010458WA (pt) |
TW (2) | TW201947937A (pt) |
WO (2) | WO2019217739A1 (pt) |
Families Citing this family (8)
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 |
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 |
WO2012060581A2 (ko) | 2010-11-02 | 2012-05-10 | 엘지전자 주식회사 | 미디어 콘텐트 송수신 방법 및 그를 이용한 송수신 장치 |
US20140173677A1 (en) | 2011-08-10 | 2014-06-19 | Telefonaktiebolaget L M 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 |
ES2865448T3 (es) * | 2015-02-11 | 2021-10-15 | Expway | Procedimiento de gestión de pérdidas de paquetes en transmisiones basadas en la norma dash y el protocolo flute |
US10715574B2 (en) * | 2015-02-27 | 2020-07-14 | Divx, Llc | 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 |
WO2017061299A1 (ja) | 2015-10-09 | 2017-04-13 | ソニー株式会社 | 情報処理装置および情報処理方法 |
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 EP EP19725608.4A patent/EP3791600A1/en active Pending
- 2019-05-09 BR BR112020022891-5A patent/BR112020022891A2/pt 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 SG11202010458WA patent/SG11202010458WA/en unknown
- 2019-05-09 SG SG11202010567TA patent/SG11202010567TA/en unknown
- 2019-05-09 CN CN201980031317.2A patent/CN112106382B/zh active Active
- 2019-05-09 WO PCT/US2019/031604 patent/WO2019217739A1/en active Application Filing
- 2019-05-09 WO PCT/US2019/031597 patent/WO2019217733A1/en active Application Filing
- 2019-05-09 BR BR112020022899-0A patent/BR112020022899A2/pt unknown
- 2019-05-10 TW TW108116186A patent/TW201947937A/zh unknown
- 2019-05-10 TW TW108116253A patent/TW201947938A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
TW201947937A (zh) | 2019-12-16 |
SG11202010567TA (en) | 2020-11-27 |
US20190349630A1 (en) | 2019-11-14 |
CN112154672B (zh) | 2023-05-30 |
CN112106382B (zh) | 2022-08-09 |
WO2019217733A1 (en) | 2019-11-14 |
TW201947938A (zh) | 2019-12-16 |
CN112106382A (zh) | 2020-12-18 |
US11438647B2 (en) | 2022-09-06 |
WO2019217739A1 (en) | 2019-11-14 |
CN112154672A (zh) | 2020-12-29 |
US11146852B2 (en) | 2021-10-12 |
SG11202010458WA (en) | 2020-11-27 |
US20190349629A1 (en) | 2019-11-14 |
BR112020022899A2 (pt) | 2021-02-23 |
EP3791601A1 (en) | 2021-03-17 |
EP3791600A1 (en) | 2021-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230283863A1 (en) | Retrieving and accessing segment chunks for media streaming | |
US11223883B2 (en) | Segment types as delimiters and addressable resource identifiers | |
BR112020022891A2 (pt) | sinalizar, em um segmento de mídia, seções ausentes de dados de mídia para streaming de rede | |
BR112020015214A2 (pt) | inserção dinâmica de anúncio condicional | |
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 | |
US20180176278A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
BR112020000307A2 (pt) | processamento de dados de mídia que utiliza trilhas de arquivo para conteúdo de web | |
US11843840B2 (en) | Random access at resync points of DASH segments | |
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 | |
KR20220157957A (ko) | 미디어 데이터의 네트워크 스트리밍을 위한 데이터의 청크들의 가용성의 결정 | |
BR112016022245B1 (pt) | Método e dispositivo de recuperar dados de mídia | |
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 | |
BR112017027511B1 (pt) | Distribuição de middleware de métricas de qoe de cliente dash | |
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] |