BR112017018324B1 - METHOD FOR MANAGING AN INITIAL TIME OF MEDIA CONTENT ON A RECEIVING DEVICE, COMPUTER READABLE NON-TRANSIENT MEMORY AND RECEIVING DEVICE - Google Patents

METHOD FOR MANAGING AN INITIAL TIME OF MEDIA CONTENT ON A RECEIVING DEVICE, COMPUTER READABLE NON-TRANSIENT MEMORY AND RECEIVING DEVICE Download PDF

Info

Publication number
BR112017018324B1
BR112017018324B1 BR112017018324-2A BR112017018324A BR112017018324B1 BR 112017018324 B1 BR112017018324 B1 BR 112017018324B1 BR 112017018324 A BR112017018324 A BR 112017018324A BR 112017018324 B1 BR112017018324 B1 BR 112017018324B1
Authority
BR
Brazil
Prior art keywords
time
processor
delay
media content
protocol stack
Prior art date
Application number
BR112017018324-2A
Other languages
Portuguese (pt)
Other versions
BR112017018324A2 (en
Inventor
Gordon Kent Walker
Thomas Stockhammer
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/049,974 external-priority patent/US10298647B2/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112017018324A2 publication Critical patent/BR112017018324A2/en
Publication of BR112017018324B1 publication Critical patent/BR112017018324B1/en

Links

Abstract

COMPENSAÇÃO DE RETARDO PARA FLUXO CONTÍNUO COM TAXA DE BITS ADAPTATIVA A BROADCAST. Os sistemas, métodos e aparelhos das diversas modalidades permitem o gerenciamento do tempo inicial de conteúdo de meios em um aparelho receptor de meios. O processador do aparelho receptor pode receber conteúdo de meios rotulados com o tempo de transmissão de um aparelho remetente. O processador pode determinar o retardo de construção de serviços do conteúdo de meios do conteúdo de meios. O processador pode determinar o deslocamento de tempo do conteúdo de meios com base no retardo de construção de serviços. O processador pode entregar o conteúdo de meios a um cliente de meios em fluxo contínuo no aparelho receptor que utiliza o deslocamento de tempo.DELAY COMPENSATION FOR CONTINUOUS STREAM WITH BROADCAST ADAPTIVE BIT RATE. The systems, methods and apparatus of the various embodiments allow management of the initial time of media content in a media receiving apparatus. The processor of the receiving device can receive content from media labeled with the transmission time of a sending device. The processor may determine the service construction delay of the media content of the media content. The processor may determine the time offset of the media content based on the service construction delay. The processor may deliver media content to a media client in a continuous stream at the receiving apparatus using time shifting.

Description

PEDIDOS CORRELATOSRELATED ORDERS

[0001] Este pedido reivindica o benefício de prioridade para o pedido provisório norte-americano No. 62/121 303, intitulado “Compensação de Retardo para Fluxo Contínuo com Taxa de Bits Adaptativa a Broadcast”, depositado a 26 de fevereiro de 2015, e para o pedido provisório norte-americano No. 62/126 089, intitulado “Compensação de Retardo para Fluxo Contínuo com Taxa de Bits Adaptativa de Broadcast”, depositado a 27 de fevereiro de 2015, o conteúdo inteiro de ambos os pedidos sendo por este incorporado à guisa de referência.[0001] This application claims the benefit of priority to North American provisional application No. 62/121 303, entitled “Delay Compensation for Continuous Stream with Broadcast Adaptive Bitrate”, filed on February 26, 2015, and to North American Provisional Application No. 62/126,089, entitled “Delay Compensation for Continuous Streaming with Adaptive Broadcast Bitrate”, filed on February 27, 2015, the entire contents of both applications being hereby incorporated as a reference.

ANTECEDENDESBACKGROUND

[0002] O fluxo contínuo com taxa de bits adaptativa é uma técnica utilizada em fluxo contínuo de dados de mídia (tais como vídeo, áudio e outros dados multimídia) através de uma rede de comunicações. Exemplos de técnicas de fluxo contínuo com taxa de bits adaptativa incluem Fluxo Contínuo Adaptativo Dinâmico através do Protocolo de Transferência de Hiper-Texto (HTTP)(DASH) Fluxo Contínuo Dinâmico Adobe para Flash, Fluxo Contínuo ao Vivo HTTP (“HLS”) Apple e Fluxo Contínuo Suave Microsoft. O DASH é um fluxo contínuo adaptativo ao suporte do padrão de fluxo contínuo que utiliza o protocolo HTTP. Em uma variante do DASH, os intervalos entre mídias podem ser compostos por um ou mais pedaços em camadas, e cada pedaço em camadas adicional acrescentado a um pedaço de cab base pode aumentar a qualidade da apresentação de meios para esse intervalo entre mídias. Cada apresentação de mídia pode ser codificada utilizando-se um codificador Escalonável de modo quede modo que cada intervalo entre mídias inclua um pedaço de camada base e um ou mais pedaços de camada aperfeiçoada.[0002] Adaptive bitrate streaming is a technique used to continuously stream media data (such as video, audio and other multimedia data) over a communications network. Examples of adaptive bitrate streaming techniques include Dynamic Adaptive Streaming over the Hyper-Text Transfer Protocol (HTTP)(DASH), Adobe Dynamic Streaming for Flash, Apple HTTP Live Streaming (“HLS”), and Microsoft Smooth Continuous Flow. DASH is adaptive streaming supporting the streaming standard using the HTTP protocol. In a variant of DASH, intermedia gaps may be composed of one or more layered chunks, and each additional layered chunk added to a base cab chunk can increase the media presentation quality for that intermedia gap. Each media presentation can be encoded using a Scalable encoder so that each media gap includes a base layer chunk and one or more enhanced layer chunks.

[0003] Dados de conteúdo (conteúdo de mídia, por exemplo) postos em fluxo contínuo são recebidos e renderizados em um aparelho receptor por um aplicativo de cliente, tal como um cliente de mídia em fluxo contínuo. Entre outros retardos, os dados de conteúdo recebidos podem estar sujeitos a retardos devidos ao processamento dos dados de conteúdo pela pilha de protocolos do aparelho receptor. Embora o aparelho receptor possa ser configurado para antecipar um determinado nível de retardo, se houver mais ou menos retardo do que o antecipado, o desempenho do cliente de mídia em fluxo contínuo pode ser afetado de maneira adversa. Por exemplo, o cliente de mídia em fluxo contínuo pode começar a apresentação de dados de conteúdo, ou o cliente de mídia em fluxo contínuo pode lançar, ou cedo demais ou tarde demais. Quando o cliente de mídia em fluxo contínuo começa a apresentar os dados de conteúdo cedo demais, disso podem resultar baias de apresentação devidas à falta de dados suficientes para a apresentação suave do conteúdo. Quando o cliente de mídia em fluxo contínuo começa apresentar os dados de conteúdo tarde demais, o cliente de mídia em fluxo contínuo pode, entre outras coisas, retardar a apresentação dos dados de conteúdo por mais tempo que o estritamente necessário, deteriorando o desempenho de alteração de canal e aumentando a latência total desnecessariamente.[0003] Content data (media content, for example) streamed is received and rendered on a receiving device by a client application, such as a streaming media client. Among other delays, received content data may be subject to delays due to processing of the content data by the protocol stack of the receiving device. Although the receiving device can be configured to anticipate a certain level of delay, if there is more or less delay than anticipated, the performance of the streaming media client may be adversely affected. For example, the streaming media client may start presenting content data, or the streaming media client may launch either too early or too late. When the streaming media client starts presenting content data too soon, presentation stalls may result due to a lack of sufficient data for smooth presentation of the content. When the streaming media client starts presenting content data too late, the streaming media client may, among other things, delay the presentation of content data longer than strictly necessary, deteriorating switching performance of channel and increasing total latency unnecessarily.

SUMÁRIOSUMMARY

[0004] As diversas modalidades incluem métodos que podem ser implementados em um aparelho receptor para gerenciar o tempo inicial do conteúdo de mídia. Diversas modalidades podem incluir receber, pelo processador do aparelho receptor, conteúdo de mídia rotulado com um tempo de transmissão de um aparelho remetente, determinar, pelo processador, pelo processador, o retardo de construção de serviço do conteúdo de mídia, determinar pelo processador, o deslocamento de tempo do conteúdo de mídia com base no retardo de construção de serviço, e entregar, pelo processador, o conteúdo de mídia a um cliente de mídia em fluxo contínuo que utiliza o deslocamento de tempo.[0004] Various embodiments include methods that can be implemented on a receiving device to manage the start time of media content. Various embodiments may include receiving, by the processor of the receiving device, media content labeled with a transmission time from a sending device, determining, by the processor, the service construction delay of the media content, determining, by the processor, the time shifting of the media content based on the service construction delay, and delivering, by the processor, the media content to a streaming media client that utilizes the time shifting.

[0005] Algumas modalidades, podem incluir também, determinar, pelo processador, o tempo inicial do conteúdo de mídia com base no deslocamento de tempo determinado, em que entregar, pelo processador, o conteúdo de mídia a um cliente de mídia em fluxo contínuo que utiliza o deslocamento de tempo inclui entregar, pelo processador, o conteúdo de mídia ao cliente de mídia em fluxo contínuo, com base no tempo inicial. Algumas modalidades podem incluir também determinar, pelo processador, o retardo de pilha de protocolos do conteúdo de mídia.[0005] Some embodiments may also include determining, by the processor, the starting time of the media content based on the determined time offset, wherein delivering, by the processor, the media content to a streaming media client that uses time shifting includes delivering, by the processor, the media content to the streaming media client, based on the initial time. Some embodiments may also include determining, by the processor, the protocol stack delay of the media content.

[0006] Em algumas modalidades, determinar o retardo de pilha de protocolos do conteúdo de mídia pode incluir determinar, pelo processador, o tempo local do aparelho receptor, e comparar, pelo processador, o tempo de transmissão com o tempo local do aparelho receptor. Em tais modalidades, determinar o deslocamento de tempo do conteúdo de mídia pode incluir determinar o deslocamento de tempo com base no retardo de pilha de protocolos.[0006] In some embodiments, determining the protocol stack delay of the media content may include determining, by the processor, the local time of the receiving device, and comparing, by the processor, the transmission time with the local time of the receiving device. In such embodiments, determining the time offset of the media content may include determining the time offset based on protocol stack delay.

[0007] Em algumas modalidades, determinar, pelo processador, de construção de serviço do conteúdo de mídia pode incluir determinar o retardo de construção de serviço, com base no tempo de apresentação de camada de transporte do conteúdo de mídia. Algumas modalidades podem incluir também receber, pelo processador uma solicitação da faixa de bytes do conteúdo de mídia, em que determinar o retardo de construção de serviço do conteúdo de mídia pode incluir determinar o retardo de construção de serviço com base em um retardo de construção de serviço para a faixa de bytes solicitada do conteúdo de mídia.[0007] In some embodiments, determining, by the processor, service construction of the media content may include determining the service construction delay, based on the transport layer presentation time of the media content. Some embodiments may also include receiving by the processor a request for the byte range of the media content, wherein determining the service construction delay of the media content may include determining the service construction delay based on a service construction delay. service for the requested byte range of media content.

[0008] Em algumas modalidades, em resposta a uma solicitação de um aplicativo de cliente à camada de transporte de uma pilha de protocolos de conteúdo de mídia que chega antes do conteúdo de mídia solicitado esteja completamente presente em um buffer de transporte, a camada de transporte da pilha de protocolos pode interpretar a solicitação como uma solicitação de entrega de faixa de bytes do conteúdo de mídia solicitado. Em algumas modalidades, determinar o tempo inicial do conteúdo de mídia, com base no deslocamento de tempo determinado pode incluir determinar a soma do retardo de pilha de protocolos determinado do conteúdo de mídia e do tempo de apresentação da camada de transporte. Em algumas modalidades, o retardo de pilha de protocolos do conteúdo de mídia pode incluir um tempo de retardo devido ao processamento no conteúdo de mídia pela pilha de protocolos no aparelho receptor.[0008] In some embodiments, in response to a request from a client application to the transport layer of a media content protocol stack that arrives before the requested media content is completely present in a transport buffer, the transport layer protocol stack transport may interpret the request as a request for delivery of the byte range of the requested media content. In some embodiments, determining the start time of the media content based on the determined time offset may include determining the sum of the determined protocol stack delay of the media content and the transport layer presentation time. In some embodiments, the protocol stack delay of the media content may include a delay time due to processing in the media content by the protocol stack at the receiving apparatus.

[0009] Em algumas modalidades, determinar o retardo de pilha de protocolos do conteúdo de mídia pode incluir determinar o retardo de pilha de protocolos depois que uma parte de conteúdo de mídia do conteúdo de mídia é processada pela camada de transporte da pilha de protocolos do apresentar. Em algumas modalidades,, determinar o retardo de pilha de protocolos do conteúdo de mídia pode incluir recuperar um valor de retardo de pilha de protocolos predeterminado da memória do aparelho receptor. Em algumas modalidades, determinar o tempo inicial do conteúdo de mídia pode incluir modificar, pelo processador, a descrição de apresentação de mídia do conteúdo de mídia com base no deslocamento de tempo e determinar, pelo processador, o tempo inicial do conteúdo de mídia com base na apresentação de descrição de mídia modificada.[0009] In some embodiments, determining the protocol stack delay of the media content may include determining the protocol stack delay after a media content portion of the media content is processed by the transport layer of the protocol stack of the media content. to present. In some embodiments, determining the stack delay of the media content may include retrieving a predetermined stack delay value from the memory of the receiving apparatus. In some embodiments, determining the starting time of the media content may include modifying, by the processor, the media presentation description of the media content based on the time offset and determining, by the processor, the starting time of the media content based on in the modified media description presentation.

[0010] Em algumas modalidades, determinar o tempo inicial do conteúdo de mídia pode incluir modificar, pelo processador, o tempo local do aparelho receptor com base no deslocamento de tempo e determinar, pelo processador, o tempo inicial do conteúdo de mídia com base no tempo local modificado. Em algumas modalidades, o conteúdo de mídia pode incluir uma parte de cabeçalho rotulada com o tempo de transmissão do aparelho remetente. Algumas modalidades podem incluir também criar, pelo processador, um cronômetro com base no deslocamento de tempo determinado, em que entregar, pelo processador, o conteúdo de mídia a um cliente de mídia em fluxo contínuo que utiliza o deslocamento de tempo, pode incluir entregar, pelo processador, o conteúdo de mídia ao cliente de mídia em fluxo contínuo em resposta à expiração do cronômetro.[0010] In some embodiments, determining the starting time of the media content may include modifying, by the processor, the local time of the receiving device based on the time offset and determining, by the processor, the starting time of the media content based on the modified local time. In some embodiments, the media content may include a header portion labeled with the transmission time of the sending device. Some embodiments may also include creating, by the processor, a timer based on the given time offset, wherein delivering, by the processor, the media content to a streaming media client that utilizes the time offset, may include delivering, by the processor, the media content to the media client streams in response to the timer expiring.

[0011] Outras modalidades podem incluir um aparelho receptor que inclui uma memória, um circuito de receptor e um processador acoplado à memória e ao circuito de receptor e configurado com instruções executáveis por processador para executar as operações dos métodos descritos acima. Outras modalidades podem incluir um aparelho receptor que inclui dispositivos para desempenhar instruções dos métodos descritos acima. Outras modalidades podem incluir mídia de armazenamento passíveis de leitura por computador nos quais são armazenadas instruções executáveis por processador configuradas para fazer com que o processador de um aparelho receptor execute as operações dos métodos descritos acima.[0011] Other embodiments may include a receiving apparatus that includes a memory, a receiver circuit, and a processor coupled to the memory and the receiver circuit and configured with processor-executable instructions to perform the operations of the methods described above. Other embodiments may include a receiving apparatus that includes devices for carrying out instructions of the methods described above. Other embodiments may include computer-readable storage media on which processor-executable instructions configured to cause the processor of a receiving apparatus to perform the operations of the methods described above are stored.

DESCRIÇÃO RESUMIDA DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0012] Os desenhos anexos, que são aqui incorporados e constituem parte deste relatório, mostram exemplos das diversas modalidades e, juntamente com a descrição geral apresentada acima e a descrição detalhada apresentada em seguida servem para explicar os recursos das diversas modalidades.[0012] The attached drawings, which are incorporated herein and constitute part of this report, show examples of the various modalities and, together with the general description presented above and the detailed description presented below, serve to explain the features of the various modalities.

[0013] As Figuras 1A e 1B são diagramas de blocos de sistemas de comunicação adequados para utilização com as diversas modalidades.[0013] Figures 1A and 1B are block diagrams of communication systems suitable for use with the various modalities.

[0014] A Figura 2 é um diagrama de blocos da pilha de protocolos de um cliente de mídia em fluxo contínuo adequado para utilização com as diversas modalidades.[0014] Figure 2 is a block diagram of the protocol stack of a streaming media client suitable for use with the various modalities.

[0015] A Figura 3 é um diagrama de blocos de um sistema de comunicação adequado para utilização com as diversas modalidades.[0015] Figure 3 is a block diagram of a communication system suitable for use with the various modalities.

[0016] A Figura 4A mostra relações de valores que podem ser utilizados para determinar o tempo inicial de disponibilidade de conteúdo de acordo com diversas modalidades.[0016] Figure 4A shows relationships of values that can be used to determine the initial time of content availability according to different modalities.

[0017] A Figura 4B é um diagrama de feixes de chamada que mostra um método para gerenciar o tempo inicial de conteúdo de mídia em um aparelho receptor.[0017] Figure 4B is a call beam diagram showing a method for managing the initial timing of media content at a receiving apparatus.

[0018] A Figura 5 é um diagrama de fluxos de processamento que mostra um método pata gerenciar o tempo inicial de conteúdo de mídia em um aparelho receptor, de acordo com diversas modalidades.[0018] Figure 5 is a processing flow diagram showing a method for managing the initial timing of media content on a receiving device, according to various embodiments.

[0019] A Figura 6 é um diagrama de componentes de um aparelho receptor exemplar adequado para utilização com as diversas modalidades.[0019] Figure 6 is a component diagram of an exemplary receiving apparatus suitable for use with the various modalities.

[0020] A Figura 7 é um diagrama de componentes de um servidor exemplar adequado para utilização com as diversas modalidades.[0020] Figure 7 is a component diagram of an exemplary server suitable for use with the various modalities.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0021] As diversas modalidades serão descritas em detalhe com referência aos desenhos anexos. Onde quer que seja possível, os mesmos números de referência serão utilizados em todos os desenhos para referir-se as mesmas peças ou peças semelhantes. As referências feitas a desenhos e implementações específicos são para fins de ilustração e não são destinadas a limitar o alcance das diversas modalidades ou das reivindicações.[0021] The various embodiments will be described in detail with reference to the attached drawings. Wherever possible, the same reference numbers will be used in all drawings to refer to the same or similar parts. References made to specific designs and implementations are for illustration purposes and are not intended to limit the scope of the various embodiments or the claims.

[0022] Conforme aqui utilizados, os termos “aparelho de recepção” e “aparelho receptor” são aqui utilizados de maneira intercambiável para RSRP a qualquer um ou todos os telefones celulares, telefones inteligentes, tocadores de multimídia pessoais ou móveis, assistente de dados pessoais (PDAs), computadores laptop, computadores tablet, smartbooks, computadores palm-top, receptores de email eletrônico sem fio, telefones celulares habilitados Internet multimídia, controladores de jogos sem fio, computadores pessoais, conversores set-top-box de televisão, televisões, receptores de televisão a cabo e aparelhos eletrônicos pessoais semelhantes que incluem um processador e uma memória e um conjunto de circuitos programáveis para receber e apresentar conteúdo de mídia.[0022] As used herein, the terms “receiving apparatus” and “receiving apparatus” are used interchangeably herein to RSRP any or all cellular telephones, smart telephones, personal or mobile multimedia players, personal data assistant (PDAs), laptop computers, tablet computers, smartbooks, palm-top computers, wireless e-mail receivers, Internet multimedia enabled cell phones, wireless game controllers, personal computers, television set-top box converters, televisions, cable television receivers and similar personal electronic devices that include a processor and memory and programmable circuitry for receiving and presenting media content.

[0023] As diversas modalidades são aqui descritas utilizando-se o termo “servidor de conteúdos” para referir-se a qualquer aparelho de computação capaz de funcionar como um provedor de dados de conteúdo, tal como um servidor de trocas-mestre, um servidor da Web, um servidor de e-mails, um servidor de documentos ou qualquer outro tipo de servidor. Um servidor de conteúdos pode ser um aparelho de computação dedicado ou um aparelho de computação que inclui um componente de servidor (que executa um aplicativo que pode fazer com que o aparelho de computação funcione como um servidor, por exemplo). Um componente de servidor (um aplicativo de servidor, por exemplo) pode ser um componente de servidor de função completa ou um componente de servidor leve ou secundário (um aplicativo de servidor leve ou secundário, por exemplo) que configurado para prover serviços de sincronização entre os banco de dados dinâmicos entre os aparelhos móveis. Um servidor leve ou servidor secundário pode ser uma versão reduzida da funcionalidade do tipo de servidor que pode ser implementada em um aparelho receptor, permitindo assim que o aparelho receptor funcione como um servidor de Internet apenas na medida necessária para proporcionar a funcionalidade aqui descrita.[0023] The various embodiments are described here using the term “content server” to refer to any computing device capable of functioning as a content data provider, such as a master exchange server, a server Web server, an email server, a document server or any other type of server. A content server can be a dedicated computing device or a computing device that includes a server component (which runs an application that can make the computing device function as a server, for example). A server component (a server application, for example) may be a full-function server component or a lightweight or secondary server component (a lightweight or secondary server application, for example) that is configured to provide synchronization services between dynamic databases between mobile devices. A lightweight server or secondary server may be a scaled-down version of server-type functionality that may be implemented on a receiving device, thereby allowing the receiving device to function as an Internet server only to the extent necessary to provide the functionality described herein.

[0024] Em um esquema de distribuição de broadcast de conteúdo típico, o aplicativo de cliente de um aparelho receptor antecipa tipicamente a recepção de objetos de mídia, faixa de bytes ou primeiro de dados, em um tempo de chegada esperado. O tempo de chegada esperado é tipicamente refletido em uma Descrição de apresentação de mídia (MPD) ou outra descrição de dados que é incluída ou transmitida com os dados de conteúdo ou em uma sinalização separada que fornece informações para o cliente de mídia em fluxo contínuo para fluxo contínuo adaptativo de conteúdo. Entre outras coisas, a MPD pode descrever a relação entre uma linha de tempo de apresentação e entre um “relógio de parede” (isto é, um tempo que pode ser estabelecido no cliente de mídia em fluxo contínuo com dispositivos de broadcast ou unicast). A relação entre a linha de tempo e o tempo de apresentação pode ser estabelecida por outros métodos também.[0024] In a typical content broadcast distribution scheme, the client application of a receiving device typically anticipates the reception of media objects, byte range or first data, at an expected arrival time. The expected arrival time is typically reflected in a Media Presentation Description (MPD) or other data description that is included or transmitted with the content data or in a separate signaling that provides information to the streaming media client to adaptive continuous flow of content. Among other things, MPD can describe the relationship between a presentation timeline and a “wall clock” (that is, a time that can be established in the streaming media client with broadcast or unicast devices). The relationship between the timeline and presentation time can be established by other methods as well.

[0025] As relações de tempo entre o tempo de chegada esperado e a linha de tempo de apresentação apresentadas na MPD (ou outro método de entrega) podem ser utilizadas para calcular a linha de tempo de apresentação. As relações de tempo podem refletir, apresentadas na MPD, entre outras coisas, uma ou mais suposições sobre retardos no sistema de distribuição no interior do aparelho de recepção. Se houver mais ou menos retardo do que o comportamento esperado do sistema de broadcast e do aparelho receptor, o cliente de mídia em fluxo contínuo de um aparelho de recepção pode lançar ou começar a apresentação de dados de conteúdo cedo demais ou tarde demais. Quando o cliente de mídia em fluxo contínuo começa a apresentar conteúdo cedo demais, disso podem resultar baias de apresentação, e a apresentação de dados de conteúdo tarde demais retarda a apresentação de conteúdo por mais tempo que o estritamente necessário, provocando a deterioração do desempenho de troca de canais.[0025] The timing relationships between the expected arrival time and the presentation timeline presented in the MPD (or other delivery method) can be used to calculate the presentation timeline. The time relationships may reflect, presented in the MPD, among other things, one or more assumptions about delays in the distribution system within the receiving apparatus. If there is more or less delay than the expected behavior of the broadcast system and the receiving device, the streaming media client of a receiving device may launch or begin presenting content data too early or too late. When the streaming media client starts serving content too soon, presentation stalls can result, and presenting content data too late delays content delivery for longer than strictly necessary, causing deterioration in streaming media performance. changing channels.

[0026] Para resolver estas limitações em esquemas, sistemas, métodos e aparelhos de distribuição de broadcasts de conteúdo convencional, os esquemas, solicitação de descoberta de sistemas, métodos e aparelhos das diversas modalidades gerenciam retardos de transmissão de conteúdo de mídia para um aparelho receptor determinando e compensando um retardo de pilha de protocolos que possa surgir no aparelho receptor. O aparelho receptor pode calcular o deslocamento de tempo entre o tempo de transmissão (o tempo de radiação) dos dados de conteúdo ou d e parte dos dados de conteúdo do aparelho remetente e o tempo em que os dados de conteúdo emergem de uma parte da pilha de protocolos (o “tempo de emergência”) do aparelho receptor. Com base no deslocamento de tempo calculado, o aparelho receptor pode determinar o tempo inicial de disponibilidade do dados de conteúdo ou de uma parte dos dados de conteúdo. Este tempo inicial de disponibilidade calculado pode ser análogo ao “tempo de disponibilidade de segmento”, conforme pode ser utilizado em DASH para um aplicativo de cliente DASH que renderiza segmentos. Em algumas modalidades, a infra-estrutura de transmissão (um servidor de conteúdos, por exemplo) pode rotular os dados de conteúdo ou uma parte dos dados de conteúdo com os tempos de radiação determinado (isto é, o tempo em que a parte dos dados de conteúdo é transmitida pelo servidor de conteúdos). Em algumas modalidades,, o tempo de irradiação pode ser o tempo atual do remetente (SCT), conforme descrito no Bloco de Construção de Transporte de Codificação em Camadas (LCT) padrão proposto, Solicitação de Comentários (RFC) 5651 < htpp://tools.ietf.org/html/rfc5651 > outubro de 2009.[0026] To address these limitations in conventional content broadcast distribution schemes, systems, methods and apparatus, the schemes, discovery request systems, methods and apparatus of the various embodiments manage media content transmission delays to a receiving apparatus determining and compensating for a protocol stack delay that may arise in the receiving device. The receiving apparatus may calculate the time offset between the transmission time (radiation time) of the content data or part of the content data of the sending apparatus and the time at which the content data emerges from a portion of the stack. protocols (the “emergency time”) of the receiving device. Based on the calculated time offset, the receiving device can determine the initial availability time of the content data or a part of the content data. This calculated initial availability time can be analogous to the “segment availability time” as might be used in DASH for a DASH client application that renders segments. In some embodiments, the transmission infrastructure (a content server, for example) may label the content data or a portion of the content data with determined radiation times (i.e., the time at which the portion of the data content is transmitted by the content server). In some embodiments, the irradiation time may be the sender current time (SCT), as described in the proposed standard Layered Coding Transport (LCT) Building Block, Request for Comments (RFC) 5651 < htpp:// tools.ietf.org/html/rfc5651 > October 2009.

[0027] Diversas modalidades podem ser implementadas em aparelhos receptores de mídia que podem funcionar dentro de diversos sistemas de comunicação 100A e 100B, dois exemplos dos quais são mostrados nas Figuras 1A e 1B. Com referência à Figura 1, um aparelho receptor 102 pode comunicar-se com uma rede de comunicações 108, que pode incluir uma estação base 104, um ponto de acesso 106 e um servidor de conteúdos 110. A estação base 104 pode comunicar-se com a rede de comunicações 108 através de um link de comunicação cabeado ou sem fio 114, e o ponto de acesso 106 pode comunicar-se com a rede de comunicações através de um link de comunicação cabeado ou sem fio 118. Os links de comunicação 114 e 118 podem incluir links de transporte de retorno de fibra ótica, links de transporte de retorno de microonda e outros links de comunicação. Em algumas modalidades, a rede de comunicações 108 pode incluir uma rede de comunicações de telefonia móvel.[0027] Various embodiments can be implemented in media receiving devices that can function within various communication systems 100A and 100B, two examples of which are shown in Figures 1A and 1B. Referring to Figure 1, a receiving apparatus 102 may communicate with a communications network 108, which may include a base station 104, an access point 106, and a content server 110. The base station 104 may communicate with the communications network 108 via a wired or wireless communications link 114, and the access point 106 may communicate with the communications network via a wired or wireless communications link 118. The communications links 114 and 118 may include fiber optic return transport links, microwave return transport links, and other communication links. In some embodiments, the communications network 108 may include a mobile telephone communications network.

[0028] O aparelho receptor 102 pode comunicar- se com a estação base 104 através de um link de comunicação sem fio 112 e com o ponto de acesso 106 através de um link de comunicação 116. Em algumas modalidades, o link de comunicação sem fio 112 pode incluir uma transmissão de broadcast ou multicast, e o link de comunicação sem fio 116 pode incluir uma transmissão de unicast. Em algumas modalidades, a transmissão de unicast pode ser opcional. O servidor de conteúdo 110 pode ser um servidor de aplicativos, um servidor de mídia ou outro nó de rede ou elemento de rede configurado para fornecer dados de conteúdo a um aplicativo de cliente 102a, como, por exemplo, o aparelho receptor 112. O servidor de conteúdos 110 pode comunicar-se com a rede de comunicações através de um link de comunicação cabeado ou sem fio 120. O aparelho receptor 102 pode enviar solicitações de dados de conteúdo, tais como conteúdo de vídeo, áudio ou multimídia, ao servidor de conteúdos 110 através da rede de comunicações 108 solicitando a entrega dos dados de conteúdo ao aplicativo de cliente 102a. Em resposta, o servidor de conteúdo 110 pode colocar em fluxo contínuo os dados de conteúdo solicitados para o aparelho receptor 102 através de um ou mais links de comunicação sem fio ou cabeados 120. Em algumas modalidades, o aparelho receptor 102 pode receber os dados de conteúdo solicitados através de uma única interface (através de uma interface de comunicação celular ou através de uma interface de comunicação Wi-Fi, por exemplo). Em algumas modalidades, o aparelho receptor 102 pode receber os dados de conteúdo através de várias interfaces (através de interfaces de comunicação Wi-Fi e celulares, por exemplo), e o aparelho receptor 102 pode receber vários fluxos paralelos através de várias interfaces de rede.[0028] The receiving apparatus 102 may communicate with the base station 104 via a wireless communication link 112 and with the access point 106 via a communication link 116. In some embodiments, the wireless communication link 112 may include a broadcast or multicast transmission, and the wireless communication link 116 may include a unicast transmission. In some embodiments, unicast transmission may be optional. The content server 110 may be an application server, a media server, or other network node or network element configured to provide content data to a client application 102a, such as the receiving device 112. The server content server 110 may communicate with the communications network via a wired or wireless communication link 120. The receiving device 102 may send requests for content data, such as video, audio, or multimedia content, to the content server 110 through the communications network 108 requesting delivery of the content data to the client application 102a. In response, the content server 110 may stream the requested content data to the receiving apparatus 102 over one or more wireless or wired communication links 120. In some embodiments, the receiving apparatus 102 may receive the data from content requested through a single interface (through a cellular communication interface or through a Wi-Fi communication interface, for example). In some embodiments, the receiving device 102 may receive the content data through multiple interfaces (through Wi-Fi and cellular communication interfaces, for example), and the receiving device 102 can receive multiple parallel streams through multiple network interfaces. .

[0029] A rede de comunicações 108 suportar comunicações utilizando uma ou mais tecnologias de rádio- acesso, e cada um dos links de comunicação sem fio 112 e 116 podem incluir conexões celulares que podem ser feitas através de links de comunicação sem fio bidirecionais que utilizam uma ou mais tecnologias de rádio-acesso. Exemplos de tecnologias de rádio-acesso, podem incluir Evolução de Longo Prazo (LTE) 3GPP, Inter-operacionalidade Mundial para Acesso a Microonda (WiMax), Acesso Múltiplo por Divisão de Código (CDMA), Acesso Múltiplo por Divisão de Tempo (TDMA), CDMA de banda larga (WCDMA), Sistema Global para Mobilidade (GSM), um protocolo de rádio-acesso na família de protocolos 802.11 do Instituto de Engenheiros Elétricos e Eletrônicos (IEEE) (Wi-Fi, por exemplo), Comissão de Sistemas de Televisão Avançados (ATS) 3.0, Rádio-Difusão de Vídeo Digital (DVB)-T2, e outras tecnologias de rádio- acesso. Embora os links de comunicação 112, 116 sejam mostrados como links únicos, cada um dos links de comunicação pode incluir uma série de frequências ou bandas de frequência, cada uma das quais pode incluir um série de canais lógicos.[0029] The communications network 108 supports communications utilizing one or more radio access technologies, and each of the wireless communications links 112 and 116 may include cellular connections that may be made via bidirectional wireless communications links utilizing one or more radio access technologies. Examples of radio access technologies may include 3GPP Long Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WiMax), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA) , Wideband CDMA (WCDMA), Global System for Mobility (GSM), a radio access protocol in the Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol family (Wi-Fi, for example), Systems Commission Advanced Television (ATS) 3.0, Digital Video Broadcasting (DVB)-T2, and other radio access technologies. Although the communication links 112, 116 are shown as single links, each of the communication links may include a series of frequencies or frequency bands, each of which may include a series of logical channels.

[0030] Com referência à Figura 1B, em uma configuração de rede alternativa, a estação base 104 pode comunicar-se com um aparelho receptor 122 através do link de comunicação 112 e um ponto de acesso 124 pode comunicar- se com o aparelho receptor 222 através de um link de comunicação cabeado ou sem fio 126. O aparelho receptor 102 pode comunicar-se com o ponto de acesso 124 através de um link de comunicação sem fio 128, que pode incluir transmissões de multicast e/ou unicast. O aparelho receptor 222 pode ser configurado para receber dados de conteúdo do servidor de conteúdos 110, por exemplo, por meio da estação base 104, e o ponto de acesso 124 pode ser configurado para transmitir dados de conteúdo recebidos por meio do aparelho receptor 122 para o aparelho receptor. Assim, os dados de conteúdo podem passar através de um salto intermediário por meio do aparelho receptor 122 e do ponto de acesso 124, por meio de uma transmissão de curto alcance, tal como Wi-Fi, por exemplo. A passagem dos dados de conteúdo através de tal salto intermediário pode ser referida como “redistribuição”.[0030] Referring to Figure 1B, in an alternative network configuration, the base station 104 may communicate with a receiving device 122 via communication link 112 and an access point 124 may communicate with the receiving device 222 via a wired or wireless communication link 126. The receiving apparatus 102 may communicate with the access point 124 via a wireless communication link 128, which may include multicast and/or unicast transmissions. The receiving apparatus 222 may be configured to receive content data from the content server 110, for example, via the base station 104, and the access point 124 may be configured to transmit content data received via the receiving apparatus 122 to the receiving device. Thus, content data can pass through an intermediate hop via the receiving device 122 and the access point 124, via a short-range transmission, such as Wi-Fi, for example. Passing the content data through such an intermediate hop can be referred to as “redistribution”.

[0031] A Figura 2 mostra uma pilha de protocolos 200 de um cliente de mídia em fluxo contínuo (o aplicativo de cliente 102a das Figuras 1A e 1B, por exemplo) adequada para implementar as diversas modalidades. Com referência às Figuras 1A-2 um aparelho receptor (o aparelho receptor 102, por exemplo) pode receber dados de conteúdo 202 da camada física (“camada PHY”) 204. A camada PHY pode estabelecer um tempo local de receptor 204a (um tempo de “relógio de parede” de receptor, por exemplo). A camada PHY pode fornecer também uma indicação de tempo local 220, tal como um “tique” ou outra comercialização informacional, a camadas mais elevadas da pilha de protocolos 200. O processador do aparelho receptor pode derivar um tempo (Tempo Universal Coordenado (UTC), por exemplo) do tique da camada física. A camada física pode ser também rotulada diretamente com uma indicação de tempo (UTC, por exemplo).[0031] Figure 2 shows a protocol stack 200 of a streaming media client (the client application 102a of Figures 1A and 1B, for example) suitable for implementing the various embodiments. Referring to Figures 1A-2, a receiving apparatus (receiving apparatus 102, for example) may receive content data 202 from the physical layer ("PHY layer") 204. The PHY layer may establish a receiver local time 204a (a time “wall clock” receiver, for example). The PHY layer may also provide a local time indication 220, such as a “tick” or other informational announcement, to higher layers of the protocol stack 200. The processor of the receiving device may derive a time (Coordinated Universal Time (UTC) , for example) of the physical layer tick. The physical layer can also be directly labeled with a time indication (UTC, for example).

[0032] Os dados de conteúdo 202 podem incluir uma descrição de apresentação de mídia (MPD) ou outra descrição de mídia que pode ser incluída nos dados de conteúdo, tal como na parte de cabeçalho dos dados de conteúdo ou em alguma outra parte dos dados de conteúdo. A MPD pode descrever informações sobre os dados de conteúdo de modo a permitir que o processador que está executando um aplicativo de cliente (o aplicativo de cliente 102a, por exemplo) processe e renderize os dados de conteúdo. Entre outras coisas, a MPD pode descrever a relação entre a linha de tempo de apresentação e um relógio de parede (o tempo que pode ser estabelecido pela camada PHY 204, por exemplo). A MPD pode incluir também informações de temporização, tais como um ou mais tempos de retardo pressupostos pelo remetente e gravados na MPD. A MPD pode incluir também um tempo de transmissão ou tempo de irradiação do remetente dos dados de conteúdo. Informações de temporização podem ser também incorporadas em cabeçalhos de extensão de um protocolo de transporte, tal como Entrega de Arquivos através de Transporte Unidirecional (FLUTE) ou Objeto em Tempo Real através de Transporte Unidirecional (ROUTE).[0032] The content data 202 may include a media presentation description (MPD) or other media description that may be included in the content data, such as in the header portion of the content data or in some other part of the data of content. The MPD may describe information about the content data in a manner that allows the processor running a client application (the client application 102a, for example) to process and render the content data. Among other things, the MPD can describe the relationship between the presentation timeline and a wall clock (the time that can be established by the PHY layer 204, for example). The MPD may also include timing information, such as one or more delay times assumed by the sender and recorded in the MPD. The MPD may also include a transmission time or irradiation time of the sender of the content data. Timing information can also be incorporated into extension headers of a transport protocol, such as File Delivery over One-Way Transport (FLUTE) or Real-Time Object over One-Way Transport (ROUTE).

[0033] A camada física 204 pode enviar dados de conteúdo a uma camada de controle de acesso a máquina 206 tal como a camada de controle de acesso a mídia (MAC). A camada MAC 206 pode enviar os dados de conteúdo a uma camada de protocolo de funcionamento em rede 208 para decodificar os dados de conteúdo de um protocolo de transporte de rede (o protocolo Internet (IP), o protocolo de datagrama de usuário (UDP) ou outro protocolo de transporte de rede semelhante, por exemplo) uma pilha IP/UDP. A camada de protocolo de funcionamento em rede 208 pode enviar os dados de conteúdo a uma camada de transporte 210 (a camada de protocolo de entrega de arquivos, que pode incluir correção antecipada de erros (FEC)(camada de aplicativos (AL)-FEC, por exemplo). A camada de transporte 210 pode enviar dados de conteúdo a um aplicativo de cliente 212, que pode interpretar a codificação dos dados de conteúdo de acordo com, por exemplo, um formato de arquivos de mídia base (BMFF), por exemplo, da Organização Internacional para Padronização (ISO), ou o Formato de Transporte de Mídia (MMT) do Grupo de Especialista em Imagens em Movimento (MPEG). O aplicativo de cliente 212 pode enviar os dados de conteúdo a um circuito de codificação/decodificação (CODEC) 214 para decodificação e renderização.[0033] The physical layer 204 may send content data to a machine access control layer 206 such as the media access control (MAC) layer. The MAC layer 206 may send the content data to a networking protocol layer 208 to decode the content data from a network transport protocol (the Internet Protocol (IP), the User Datagram Protocol (UDP) or other similar network transport protocol, for example) an IP/UDP stack. The networking protocol layer 208 may send the content data to a transport layer 210 (the file delivery protocol layer, which may include early error correction (FEC) (application layer (AL)-FEC). , for example). Transport layer 210 may send content data to a client application 212, which may interpret the encoding of the content data according to, for example, a base media file format (BMFF), e.g. example, from the International Organization for Standardization (ISO), or the Media Transport Format (MMT) from the Moving Picture Specialist Group (MPEG). The client application 212 may send the content data to an encoding/coding circuit. decoding (CODEC) 214 for decoding and rendering.

[0034] Os dados de conteúdo emergem da camada de transporte 210 com um retardo 218 resultando da camada de transporte 210 com retardo 218 resultante, por exemplo, do retardo dentro da camada MAC 206 e/ou da camada física (PHY) 204 (um retardo de armazenador ou retardo de processamento de dados semelhante, por exemplo). Em algumas modalidades, o retardo 218 pode incluir também o retardo introduzido por distribuição ou redistribuição intermediária, tal como quando o aparelho de cliente recebe (ou busca) dados de um adaptador de rede (o aparelho receptor 222, por exemplo) que pode introduzir algum retardo de distribuição desconhecido do conteúdo de dados.[0034] Content data emerges from the transport layer 210 with a delay 218 resulting from the transport layer 210 with delay 218 resulting from, for example, the delay within the MAC layer 206 and/or the physical layer (PHY) 204 (a storage delay or similar data processing delay, for example). In some embodiments, delay 218 may also include delay introduced by intermediate distribution or redistribution, such as when the client device receives (or fetches) data from a network adapter (the receiving device 222, for example) which may introduce some unknown distribution delay of data content.

[0035] O(s) retardo(s) pode/podem fazer com que o tempo de chegada dos dados de conteúdo difira do das informações de temporização (um tempo de retardo, por exemplo), na MPD. Além disto, o tempo derivado da camada física (camada PHY 204 pelo aparelho receptor pode ser relativamente preciso, mas pode não refletir qualquer retardo introduzido à medida que os dados de conteúdo transitam pela pilha de protocolos. Os retardos 218 pode propagar-se à medida que os dados de conteúdo se movem através da pilha de protocolos 200 e podem resultar na entrega dos dados de conteúdo ao aplicativo de cliente 212 em um tempo diferente (isto é, um tempo posterior do que o aplicativo de cliente 212 pode esperar com base nas informações na MPD, por exemplo).[0035] The delay(s) may/may cause the arrival time of the content data to differ from that of the timing information (a delay time, for example) in the MPD. Furthermore, timing derived from the physical layer (PHY layer 204) by the receiving apparatus may be relatively accurate, but may not reflect any delay introduced as content data passes through the protocol stack. The delays 218 may propagate as that the content data moves through the protocol stack 200 and may result in the content data being delivered to the client application 212 at a different time (i.e., a later time than the client application 212 may expect based on the information in the MPD, for example).

[0036] De modo a determinar o retardo da pilha de protocolos, a camada PHY 204 pode fornecer uma indicação 220 do tempo local (o tempo local/tempo de relógio de parede 204a do aparelho receptor, por exemplo), que o processador do aparelho receptor pode comparar com o tempo de irradiação (isto é, tempo de transmissão dos dados de conteúdo). A diferença entre o tempo de irradiação de um recurso de dados (o último byte de uma faixa de bytes, por exemplo) e o tempo de relógio de parede do aparelho receptor (que pode ser estabelecido por meio da camada física) pode indicar o grau de retardo da pilha de protocolos provocado pelo processamento dos dados de conteúdo pela pilha de protocolos 200. Assim, o apresentar pode determinar automaticamente o retardo da pilha de protocolos.[0036] In order to determine the delay of the protocol stack, the PHY layer 204 may provide an indication 220 of the local time (the local time/wall clock time 204a of the receiving device, for example), which the device's processor receiver can compare with the irradiation time (i.e. content data transmission time). The difference between the irradiation time of a data resource (the last byte of a range of bytes, for example) and the wall clock time of the receiving device (which can be established through the physical layer) can indicate the degree of protocol stack delay caused by the processing of the content data by the protocol stack 200. Thus, the presenter can automatically determine the protocol stack delay.

[0037] Além disto, ou alternativamente, o processador do aparelho receptor pode chamar novamente o valor de retardo da pilha de protocolos que pode ser armazenado na memória do aparelho receptor. Por exemplo, o aparelho receptor pode ser configurado com um valor predeterminado do retardo da pilha de protocolos que foi determinado para a implementação específica da pilha de protocolos no aparelho receptor. Em algumas modalidades, o valor de retardo predeterminado da pilha de protocolos pode ser derivado da verificação de uma pilha de protocolos específica implementada em um aparelho receptor específico. O valor de retardo predeterminado da pilha de protocolos pode ser armazenado na memória do aparelho receptor e pode ser consultado e recuperado pelo processador do aparelho receptor. O valor de retardo predeterminado da pilha de protocolos pode ser atualizado, por exemplo, em uma construção revisada da pilha de protocolos que pode ser enviada ao aparelho receptor.[0037] In addition, or alternatively, the processor of the receiving device may recall the delay value from the protocol stack that may be stored in the memory of the receiving device. For example, the receiving apparatus may be configured with a predetermined protocol stack delay value that has been determined for the specific implementation of the protocol stack in the receiving apparatus. In some embodiments, the predetermined delay value of the protocol stack may be derived by checking a specific protocol stack implemented in a specific receiving apparatus. The predetermined delay value of the protocol stack may be stored in the memory of the receiving apparatus and may be queried and retrieved by the processor of the receiving apparatus. The predetermined delay value of the protocol stack may be updated, for example, in a revised construction of the protocol stack that may be sent to the receiving device.

[0038] A Figura 3 é um diagrama de blocos de um sistema de comunicação 300 adequado para utilização com as diversas modalidades. Em algumas modalidades, os elementos da Figura 3 podem ser semelhantes aos elementos do servidor 110 ou do aparelho receptor 102, conforme descrito com referência às Figuras 1A, 1B e 2.[0038] Figure 3 is a block diagram of a communication system 300 suitable for use with the various modalities. In some embodiments, the elements of Figure 3 may be similar to elements of the server 110 or the receiving apparatus 102 as described with reference to Figures 1A, 1B and 2.

[0039] Com referência às Figuras 1A-3, o codificador de mídia 302 pode receber dados de conteúdo 350 que foram ou serão solicitados por um aparelho receptor (o aparelho receptor 102, por exemplo) ou por um aplicativo de cliente no aparelho receptor (o aplicativo de cliente 102a, por exemplo). O codificador de mídia 302 pode codificar os dados de conteúdo e enviar os dados de conteúdo codificados 352 a um segmentador 304. O segmentador pode dividir os dados de conteúdo codificados em um ou mais segmentos. O segmentador pode também gravar a MPD de acordo com o Tempo atual do Remetente (SCT). Tipicamente, a MPD pode estar em um objeto geral separado dos dados de conteúdo (um segmento, por exemplo), embora a MPD e os dados de conteúdo possam ser entregues a um aparelho receptor por meio de uma sessão comum (uma sessão ROUTE, por exemplo) e/ou podem ser entregues em uma faixa de bytes comum.[0039] Referring to Figures 1A-3, media encoder 302 may receive content data 350 that has been or will be requested by a receiving apparatus (the receiving apparatus 102, for example) or by a client application on the receiving apparatus ( client application 102a, for example). The media encoder 302 may encode the content data and send the encoded content data 352 to a segmenter 304. The segmenter may divide the encoded content data into one or more segments. The segmenter can also record the MPD according to the Sender Current Time (SCT). Typically, the MPD may be in a general object separate from the content data (a segment, for example), although the MPD and content data may be delivered to a receiving device through a common session (a ROUTE session, for example). example) and/or may be delivered in a common byte range.

[0040] O segmentador 310 pode fornecer faixas de bytes cientes de mídia 356 e outras informações 354 que podem incluir um IP de destino de qualidade de serviço (QoS) de tempo a uma camada de protocolo de rede de remetente 306 (IP/UDP de remetente, por exemplo). A camada de protocolo de rede de remetente 306 pode fornecer faixas de bytes cientes de mídia codificadas utilizando um protocolo de transporte de rede 360 (codificadas utilizando-se IP, UDP e outro protocolo de transporte de rede tal como ROUTE ou FLUTE, por exemplo) e outras informações 358, que incluem um tique de quadro de correção antecipada de erros (FEC) 362, a um encapsulador 308. O encapsulador 308 pode enviar o tique de quadro FEC 362 a um programador 310 e pode fornecer faixas de bytes cientes de mídia 364 encapsuladas para transporte de rede utilizando, por exemplo, um protocolo de encapsulador de fluxos genéricos (GSE), a um compositor de banda base 312.[0040] The segmenter 310 may provide media-aware byte ranges 356 and other information 354 that may include a destination IP quality of service (QoS) time to a sender network protocol layer 306 (sender IP/UDP, for example). The sender network protocol layer 306 may provide media-aware byte tracks encoded using a network transport protocol 360 (encoded using IP, UDP, and another network transport protocol such as ROUTE or FLUTE, for example) and other information 358, including a forward error correction (FEC) frame tick 362, to an encapsulator 308. The encapsulator 308 may forward the FEC frame tick 362 to a scheduler 310 and may provide media-aware byte tracks 364 encapsulated for network transport using, for example, a generic stream encapsulator (GSE) protocol, to a baseband composer 312.

[0041] O programador 310 pode enviar atribuições de camada física 368 ao compositor de banda base 312. O programador pode também determinar o tempo de transmissão (isto é, tempo de irradiação) dos dados de conteúdo. Em algumas modalidades, o tempo de transmissão pode ser definido ou em um primeiro byte dos dados de conteúdo ou no último byte dos dados de conteúdo. O tempo de transmissão pode ser o tempo atual do remetente (SCT). Em algumas modalidades, o tempo de transmissão dos dados de conteúdo pode coincidir com o tempo mais recente apresentado nas informações de QoS de tempo 354. O programador 310 pode fornecer também informações de adaptação de taxa 366 (informações de realimentação, por exemplo) ao codificador de mídia 302. Em algumas modalidades, o programador 310 pode determinar o tempo de transmissão que é utilizado para rotular os dados de conteúdo antes da transmissão.[0041] The programmer 310 may send physical layer assignments 368 to the baseband composer 312. The programmer may also determine the transmission time (i.e., irradiation time) of the content data. In some embodiments, the transmission time may be set to either a first byte of the content data or the last byte of the content data. The transmission time can be the sender current time (SCT). In some embodiments, the transmission time of the content data may coincide with the most recent time presented in the timing QoS information 354. The scheduler 310 may also provide rate adaptation information 366 (feedback information, for example) to the encoder. of media 302. In some embodiments, scheduler 310 may determine the transmission time that is used to label content data prior to transmission.

[0042] O compositor de banda base 312 pode enviar a um transmissor 314 os dados de conteúdo que estão prontos para transporte 370, assim como uma descrição de banda base dos dados de conteúdo. O transmissor 314 pode transmitir dados de conteúdo 372 a um aparelho receptor. Imediatamente antes ou no tempo de transmissão dos dados de conteúdo 372, o transmissor 314 pode rotular (codificar, por exemplo) uma parte dos dados de conteúdo com o tempo de transmissão (o tempo atual do remetente (SCT), por exemplo). O valor do tempo de transmissão pode ser fornecido pelo programador 310 e pode ser codificado pelo programador 310 e pelo remetente 306. Em algumas modalidades, o remetente pode estabelecer estes campos ao criar o transporte, de modo que o tamanho dos dados de conteúdo transmitidos não seja alterado pela aplicação do rótulo.[0042] Baseband composer 312 may send to a transmitter 314 content data that is ready for transport 370, as well as a baseband description of the content data. Transmitter 314 may transmit content data 372 to a receiving apparatus. Immediately before or at the transmission time of the content data 372, the transmitter 314 may label (encode, for example) a portion of the content data with the transmission time (the sender's current time (SCT), for example). The transmission time value may be provided by the scheduler 310 and may be encoded by the scheduler 310 and the sender 306. In some embodiments, the sender may establish these fields when creating the transport, so that the size of the transmitted content data does not is changed by applying the label.

[0043] Em algumas modalidades, o tempo de transmissão pode ser codificado sob uma forma de cabeçalho dos dados de conteúdo (ou sob a forma de cabeçalho de uma parte dos dados de conteúdo, tal como um segmento). Em algumas modalidades, o tempo de transmissão pode ser codificado em uma parte de cabeçalho EXT_TIME ROUTE. Em algumas modalidades, o tempo de cabeçalho pode ser definido como o primeiro byte de uma parte dos dados de conteúdo (de um segmento, por exemplo). Em algumas modalidades, o tempo de cabeçalho pode ser definido no último byte de uma parte dos dados de conteúdo (de um segmento, por exemplo). Por exemplo, o último byte de um segmento pode ser pode ser rotulado (codificado, por exemplo) com um SCT que corresponde ao tempo de irradiação do segmento ou de uma faixa de bytes (MDE).[0043] In some embodiments, the transmission time may be encoded in a header form of the content data (or in the header form of a portion of the content data, such as a segment). In some embodiments, the transmission time may be encoded in an EXT_TIME ROUTE header portion. In some embodiments, the header time may be defined as the first byte of a piece of content data (of a segment, for example). In some embodiments, the header time may be set to the last byte of a piece of content data (of a segment, for example). For example, the last byte of a segment can be labeled (encoded, for example) with an SCT that corresponds to the irradiation time of the segment or a byte range (MDE).

[0044] No aparelho receptor, os elementos de recepção da pilha de protocolos podem receber os dados de conteúdo no aparelho receptor. Os elementos de recepção podem incluir a camada física e a camada MAC (PHY/MAC de receptor 316, por exemplo), que podem ser semelhantes a camada PHY 204 e a camada MAC 206, descritas com referência à Figura 2. A PHY/MAC de receptor 316 pode enviar faixas de bytes ou objetos cientes de mídia 374 que são rotulados com um tempo de transmissão a uma camada de protocolo de rede de receptor 318 (IP/UDP de receptor, por exemplo). A camada de protocolo de rede de receptor 318 pode enviar dados de conteúdo 378 a camadas mais elevadas a uma pilha de protocolos do aparelho receptor e finalmente a um aplicativo de cliente ( aplicativo de cliente 102a, por exemplo).[0044] At the receiving apparatus, the receiving elements of the protocol stack can receive the content data at the receiving apparatus. The receiving elements may include the physical layer and the MAC layer (receiver PHY/MAC 316, for example), which may be similar to the PHY layer 204 and the MAC layer 206, described with reference to Figure 2. The PHY/MAC receiver 316 may send byte ranges or media-aware objects 374 that are labeled with a transmission time to a receiver network protocol layer 318 (receiver IP/UDP, for example). The receiver network protocol layer 318 may send content data 378 to higher layers to a protocol stack of the receiving device and ultimately to a client application (client application 102a, for example).

[0045] A PHY/MAC de receptor 316 pode enviar também uma indicação do tempo derivado localmente (o tempo de relógio de parede, por exemplo) 376 a um comparador, o que pode ser uma operação de comparação executada pelo processador do aparelho receptor. A camada de protocolo de rede de receptor 318 pode fornecer uma indicação do tempo de irradiação de dados de conteúdo 384 (o rótulo EXT_TIME, por exemplo) ao comparador 380. O comparador 380 pode comparar o tempo derivado localmente (o tempo de relógio de parede, por exemplo) e o tempo de irradiação dos dados de conteúdo de modo a determinar o retardo de pilha de protocolos 382 da pilha de protocolos do aparelho receptor. Por exemplo, o comparador 380 pode determinar o retardo de pilha de protocolos quando o tempo derivado localmente 376 for maior que a indicação do tempo de irradiação de dados de conteúdo 384. Utilizando o retardo de pilha de protocolos 382, o processador do aparelho receptor pode determinar o tempo de deslocamento, que o processador do aparelho receptor pode utilizar para compensar o retardo determinado da pilha de protocolos. Em algumas modalidades, o processador do aparelho receptor pode ajustar o tempo de relógio de parede local do aparelho receptor. Em algumas modalidades, o processador do aparelho receptor pode ajustar e/ou regravar dois ou mais parâmetros de mMPD, de acordo com o tempo de deslocamento determinado.[0045] The receiver PHY/MAC 316 may also send a locally derived time indication (wall clock time, for example) 376 to a comparator, which may be a comparison operation performed by the receiving device's processor. Receiver network protocol layer 318 may provide an indication of the irradiation time of content data 384 (the EXT_TIME label, for example) to comparator 380. Comparator 380 may compare the locally derived time (the wall clock time , for example) and the irradiation time of the content data in order to determine the protocol stack delay 382 of the protocol stack of the receiving apparatus. For example, the comparator 380 may determine the protocol stack delay when the locally derived time 376 is greater than the content data irradiation time indication 384. Using the protocol stack delay 382, the processor of the receiving apparatus may determine the offset time, which the processor of the receiving device can use to compensate for the delay determined by the protocol stack. In some embodiments, the processor of the receiving apparatus may adjust the local wall clock time of the receiving apparatus. In some embodiments, the processor of the receiving device can adjust and/or re-record two or more mMPD parameters, according to the determined travel time.

[0046] Além disto, ou alternativamente, o processador do aparelho receptor pode chamar novamente o valor de retardo de pilha de protocolos que pode estar armazenado na memória do aparelho receptor. Por exemplo, o aparelho receptor pode ser configurado com um valor predeterminado do retardo de pilha de protocolos que foi determinado para a implementação específica da pilha de protocolos no aparelho receptor. Em algumas modalidades, o valor de retardo predeterminado da pilha de protocolos pode ser derivado da verificação de uma pilha de protocolos específica implementada em um aparelho receptor específico. O valor de retardo predeterminado da pilha de protocolos pode ser armazenado na memória do aparelho receptor e pode ser consultado pelo processador do aparelho receptor.[0046] Additionally, or alternatively, the processor of the receiving apparatus may recall the protocol stack delay value that may be stored in the memory of the receiving apparatus. For example, the receiving apparatus may be configured with a predetermined protocol stack delay value that has been determined for the particular implementation of the protocol stack in the receiving apparatus. In some embodiments, the predetermined protocol stack delay value may be derived by checking a particular protocol stack implemented in a particular receiving apparatus. The predetermined protocol stack delay value may be stored in the memory of the receiving apparatus and may be queried by the processor of the receiving apparatus.

[0047] A Figura 4A mostra relações 400 entre valores que podem ser utilizados para determinar o tempo inicial de disponibilidade de dados de conteúdo (o tempo inicial de disponibilidade de segmento, por exemplo) de acordo com diversas modalidades.[0047] Figure 4A shows relationships 400 between values that can be used to determine the initial availability time of content data (the initial segment availability time, for example) according to various embodiments.

[0048] Com referência às Figuras 1A-4A, o processador de um aparelho receptor (o aparelho receptor 102, por exemplo) pode determinar o tempo inicial de disponibilidade de conteúdo 408 (o tempo inicial de disponibilidade de segmento, por exemplo) de acordo com relações entre diversos valores de tempo. As relações dos diversos valores de tempo podem ser definidas, por exemplo, em uma MPD incluída em ou transmitida com dados de conteúdo ou em outra descrição semelhante ou conexa.[0048] Referring to Figures 1A-4A, the processor of a receiving apparatus (the receiving apparatus 102, for example) may determine the initial content availability time 408 (the initial segment availability time, for example) in accordance with with relationships between different time values. The relationships of the various time values may be defined, for example, in an MPD included in or transmitted with content data or in another similar or related description.

[0049] Conforme descrito acima, um aparelho remetente pode rotular dados de conteúdo a serem enviados a aparelhos receptores com um tempo de radiação 402 (isto é, tempo de transmissão). O tempo de vôo 412 representa o tempo de trânsito dos dados de conteúdo do aparelho remetente para o aparelho receptor. O aparelho receptor pode determinar um tempo local 404 do aparelho receptor (tempo de relógio de parede, por exemplo), da camada física de uma pilha de protocolos no aparelho receptor (a camada PHY 204, por exemplo), por exemplo.[0049] As described above, a sending apparatus may label content data to be sent to receiving apparatuses with a radiation time 402 (i.e., transmission time). The flight time 412 represents the transit time of the content data from the sending apparatus to the receiving apparatus. The receiving apparatus may determine a local time 404 of the receiving apparatus (wall clock time, for example), from the physical layer of a protocol stack in the receiving apparatus (the PHY layer 204, for example), for example.

[0050] à medida que os dados de conteúdo são processados pela pilha de protocolos do aparelho receptor, os dados de conteúdo podem incorrer em determinados retardos, tais como um retardo PHY/MAC de receptor 414 e/ou um retardo devido a outras partes da pilha de protocolos 416 antes do tempo de chegada 406 dos dados de conteúdo ao topo da pilha de protocolos (a camada de transporte 210 tal como ROUTE ou FLUTE, por exemplo). A combinação do retardo PHY/MAC de receptor 414 e do retardo de outras partes da pilha de protocolos 416 pode ser representada como um retardo específico de implementação de implementação. Um retardo relacionado com construção de serviços 420 pode ser também imposto aos dados de conteúdo em seguida ao tempo de chegada 406 dos dados de conteúdo ao topo da pilha de protocolos. O retardo relacionado com construção de serviços 420 pode incluir um tempo de espera para permitir que uma quantidade suficiente dos dados de conteúdo chegue e sejam armazenadas no aparelho receptor de modo a permitir a repetição suave dos dados de conteúdo. O tempo inicial de disponibilidade de conteúdo 408 pode ser determinado como uma quantidade estática de tempo depois do tempo de relógio de parede de receptor 404. A diferença estática entre o relógio de parede de receptor no tempo inicial de disponibilidade de conteúdo 422 pode ser também determinada como a soma do retardo específico de implementação 418 e do retardo relacionado com construção de serviços 420.[0050] As the content data is processed by the protocol stack of the receiving apparatus, the content data may incur certain delays, such as a receiver PHY/MAC delay 414 and/or a delay due to other parts of the protocol stack 416 before the arrival time 406 of the content data at the top of the protocol stack (the transport layer 210 such as ROUTE or FLUTE, for example). The combination of the receiver PHY/MAC delay 414 and the delay of other parts of the protocol stack 416 can be represented as an implementation implementation-specific delay. A service construction related delay 420 may also be imposed on the content data following the arrival time 406 of the content data at the top of the protocol stack. The service construction related delay 420 may include a waiting time to allow a sufficient amount of the content data to arrive and be stored in the receiving apparatus to allow smooth replay of the content data. The initial content availability time 408 may be determined as a static amount of time after the receiver wall clock time 404. The static difference between the receiver wall clock and the initial content availability time 422 may also be determined as the sum of the specific implementation delay 418 and the delay related to service construction 420.

[0051] Em algumas modalidades, o retardo específico de implementação 418 pode ser determinado pelo processador de um aparelho receptor comparando-se o tempo de irradiação dos dados de conteúdo e/ou tempo de relógio de parede de receptor 404. Além disto, ou alternativamente, o processador do aparelho receptor pode chamar novamente um valor de retardo de pilha de protocolos que pode estar armazenado na memória do aparelho receptor, e pode utilizar o valor de retardo predeterminado da pilha de protocolos como o retardo específico de implementação 418.[0051] In some embodiments, implementation-specific delay 418 may be determined by the processor of a receiving device by comparing the content data irradiation time and/or receiver wall clock time 404. Additionally, or alternatively , the processor of the receiving apparatus may recall a protocol stack delay value that may be stored in the memory of the receiving apparatus, and may use the predetermined protocol stack delay value as the implementation-specific delay 418.

[0052] Para determinar o tempo inicial de disponibilidade de conteúdo 408, o processador do aparelho receptor pode receber pelo menos dois do retardo específico de implementação 418, do retardo relacionado com construção de serviços 420 e/ou da diferença estática entre o relógio de parede de receptor e o tempo inicial de disponibilidade de conteúdo 422 podem ser incluída, por exemplo, em uma MPD dos dados de conteúdo. O retardo específico de implementação 418 pode ser determinado pelo processador do aparelho receptor, tal como comparando-se o tempo de irradiação dos dados de conteúdo e o tempo de relógio de parede de receptor 404 ou utilizando-se um valor de retardo de pilha de protocolos predeterminado.[0052] To determine the initial content availability time 408, the processor of the receiving device may receive at least two of the implementation-specific delay 418, the service construction-related delay 420 and/or the static difference between the wall clock of receiver and initial content availability time 422 may be included, for example, in an MPD of the content data. The specific implementation delay 418 may be determined by the processor of the receiving apparatus, such as by comparing the content data irradiation time and the receiver wall clock time 404 or by using a protocol stack delay value. predetermined.

[0053] Com base no tempo inicial de disponibilidade de conteúdo 408 o tempo de entrega ou busca 426 dos dados de conteúdo pode ser determinado pelo processador do aparelho receptor. O tempo de entrega ou busca 426 dos dados de conteúdo pode ser baseado no modo de renderização/repetição dos dados de conteúdo. Por exemplo, se a camada de transporte da pilha de protocolos (a camada de transporte 210, por exemplo) está fornecendo (isto é, entregando) faixas de bytes ou eventos de entrega de mídia (MDEe) dos dados de conteúdo ao aplicativo de cliente (o aplicativo de cliente 212, por exemplo), o aplicativo de cliente tipicamente não necessita esperar tanto quanto o tempo inicial de disponibilidade de conteúdo para começar a renderizar as faixas de bytes dos dados de conteúdo. O processador do aparelho receptor pode determinar um tempo de entrega de faixa de bytes 424 aplicando um valos de deslocamento de faixa de bytes, tal como o @tbdByteRangeOffsetTime 430. Se a camada de transporte da pilha de protocolos estiver entregando segmentos dos dados de conteúdo ao aplicativo de cliente, o processador do aparelho receptor pode utilizar o tempo inicial de disponibilidade de conteúdo 408 como o tempo de entrega/busca de partes de conteúdo 426 para que o aplicativo de cliente busque (solicite de um armazenador, por exemplo) partes (segmentos, por exemplo) de conteúdo.[0053] Based on the initial content availability time 408, the delivery or fetching time 426 of the content data can be determined by the processor of the receiving device. The delivery or fetching time 426 of the content data may be based on the rendering/replay mode of the content data. For example, if the transport layer of the protocol stack (the transport layer 210, for example) is providing (i.e., delivering) byte ranges or media delivery events (MDEe) of content data to the client application (client application 212, for example), the client application typically does not need to wait as long as the initial content availability time to begin rendering the byte ranges of content data. The processor of the receiving device may determine a byte range delivery time 424 by applying a byte range offset value, such as @tbdByteRangeOffsetTime 430. If the transport layer of the protocol stack is delivering segments of the content data to the client application, the processor of the receiving device may use the initial content availability time 408 as the delivery/fetch time for pieces of content 426 for the client application to fetch (request from a store, for example) pieces (segments , for example) of content.

[0054] Em algumas modalidades, se vários aplicativos de cliente ou vários aparelhos de receptor exigirem sincronização de modo que os vários aplicativos de cliente/aparelhos de recepção renderizem os dados de conteúdo de maneira substancialmente simultânea, o processador do aparelho receptor pode adicionar um valor adicional, tal como @suggestedPresentationDeley 433, de modo a determinar um tempo de busca ao nível de segmento sincronizado por vários aparelhos 428 para cada cliente de mídia em fluxo contínuo.[0054] In some embodiments, if multiple client applications or multiple receiving apparatus require synchronization such that the multiple client applications/receiving apparatus render content data substantially simultaneously, the processor of the receiving apparatus may add a value additional, such as @suggestedPresentationDeley 433, in order to determine a segment-level seek time synchronized across multiple devices 428 for each streaming media client.

[0055] Alternativamente, o tempo de entrega de faixa de bytes 424 pode incluir um tempo no qual a camada de transporte (a camada de transporte 210, por exemplo) pode entregar o MDE ou faixa de bytes ao cliente de mídia em fluxo contínuo (o aplicativo de cliente 212, por exemplo).[0055] Alternatively, the byte range delivery time 424 may include a time in which the transport layer (the transport layer 210, for example) can deliver the MDE or byte range to the streaming media client ( client application 212, for example).

[0056] De modo a determinar o tempo de entrega de faixa de bytes 424, o processador pode determinar um retardo de construção de serviços 432, tal como um retardo tal como um retardo relacionado com construção de serviços para entrega de ponto de acesso de representação (RAP) de MDE. Em algumas modalidades, a camada de transporte só pode enviar um MDE ou faixa de bytes marcada com um RAP, que pode ser uma indicação sintática de que a faixa de bytes ou MDE pode ser processado de maneira produtiva pelo cliente de mídia em fluxo contínuo.[0056] In order to determine the byte range delivery time 424, the processor may determine a service construction delay 432, such as a delay such as a delay related to service construction for representation access point delivery. (RAP) of MDE. In some embodiments, the transport layer may only send an MDE or byte range marked with a RAP, which may be a syntactical indication that the byte range or MDE can be productively processed by the streaming media client.

[0057] A Figura 4B é um diagrama de fluxos de chamadas que mostra comunicações em um método 400A para gerenciar o tempo inicial de conteúdo de mídia em um aparelho receptor de acordo com diversas modalidades. Os fluxos de chamadas do método 400A podem ser implementados pelo processador de um aparelho receptor sem fio (o aparelho receptor sem fio 102 da Figura 1, por exemplo).[0057] Figure 4B is a call flow diagram showing communications in a method 400A for managing the initial timing of media content at a receiving apparatus according to various embodiments. The call flows of method 400A may be implemented by the processor of a wireless receiving apparatus (the wireless receiving apparatus 102 of Figure 1, for example).

[0058] Um aplicativo 448 pode enviar uma solicitação de serviço 460 de dados de conteúdo a uma camada de serviço 446, e a camada de serviço 446 pode enviar uma solicitação 462 de fluxo IP a camadas física e MAC (PHY/MAC 440, por exemplo) da pilha de protocolos de um aparelho receptor. As camadas física e MAC 440 podem começar a receber dados de conteúdo e podem entregar os dados de conteúdo, tais como datagramas IP 464, até a pilha para cima ao longo da pilha de protocolos a uma camada de transporte 442. A camada de transporte 442 pode postar (tornar disponíveis, por exemplo) um ou mais seguimentos de inicialização (ISs) e uma MPD associada aos dados de conteúdo (ISs e MPD 466, por exemplo). Um cliente de mídia em fluxo contínuo (o cliente de eventos de dados de mídia (MDE) 444, por exemplo) pode buscar 468 o(s) segmento(s) de inicialização e a MPD que é disponibilizada pela camada de transporte.[0058] An application 448 may send a content data service request 460 to a service layer 446, and the service layer 446 may send an IP stream request 462 to physical and MAC layers (PHY/MAC 440, e.g. example) of the protocol stack of a receiving device. The physical and MAC layers 440 may begin receiving content data and may deliver the content data, such as IP datagrams 464, up the stack along the protocol stack to a transport layer 442. The transport layer 442 may post (make available, for example) one or more initialization segments (ISs) and an MPD associated with the content data (ISs and MPD 466, for example). A streaming media client (the media data event (MDE) client 444, for example) may fetch 468 the initialization segment(s) and MPD that is made available by the transport layer.

[0059] A camada de transporte 442 pode receber uma solicitação de dados de conteúdo (uma solicitação de um primeiro segmento de mídia 470, por exemplo) e pode interpretar a solicitação de dados de conteúdo 470 como uma solicitação para enviar faixas de bytes ou MDEs (eventos de entrega de mídia) no tempo mais precoce possível, cuja determinação é descrita em seguida. Em resposta à solicitação de dados de conteúdo 470, a camada de transporte 442 pode enviar uma confirmação da solicitação (Resposta de OK (200) 472, por exemplo) ao cliente de mídia em fluxo contínuo 444. A camada de transporte 442 pode enviar então ao cliente de mídia em fluxo contínuo 444 faixas de bytes ou MDEs em um tempo de entrega determinado (o tempo de entrega de faixa de bytes 424, por exemplo).[0059] Transport layer 442 may receive a request for content data (a request for a first media segment 470, for example) and may interpret the request for content data 470 as a request to send byte ranges or MDEs (media delivery events) at the earliest possible time, the determination of which is described below. In response to the content data request 470, the transport layer 442 may send an acknowledgment of the request (OK(200) response 472, for example) to the streaming media client 444. The transport layer 442 may then send to the streaming media client 444 byte ranges or MDEs in a given delivery time (the 424 byte range delivery time, for example).

[0060] De modo a determinar o tempo no qual uma faixa de bytes ou MDE pode ser enviada da camada de transporte 442 ao cliente de mídia em fluxo contínuo 444, o processador do aparelho receptor pode calcular um retardo relacionado com construção de serviços para cada faixa de bytes da mídia ou MDE (o retardo relacionado com construção de serviços para a entrega RAP de MDE 432, por exemplo). Por exemplo, os dados de conteúdo podem incluir duas indicações de tempo. A primeira indicação de tempo pode ser uma indicação no tempo de transmissão (isto é, tempo de irradiação) ou faixa de bytes ou MDE, que pode ser codificada em uma parte de cabeçalho EXT_TIME ROUTE. A segunda indicação de tempo pode ser um tempo de apresentação de camada de transporte, que é uma indicação no tempo de transmissão dos dados de conteúdo mais um retardo relacionado com serviço específico da faixa de bytes ou MDE que pode ser codificada em uma parte de cabeçalho EXT_ROUTE_PRESENTATION_TIME ROUTE.[0060] In order to determine the time at which a byte track or MDE may be sent from the transport layer 442 to the streaming media client 444, the processor of the receiving apparatus may calculate a service construction related delay for each byte track of the media or MDE (the service construction related delay for RAP delivery of MDE 432, for example). For example, the content data may include two time indications. The first time indication may be an indication on the transmission time (i.e., radiation time) or byte track or MDE, which may be encoded in an EXT_TIME ROUTE header portion. The second time indication may be a transport layer presentation time, which is an indication on the transmission time of the content data plus a service-related delay specific to the byte track or MDE that may be encoded in an EXT_ROUTE_PRESENTATION_TIME ROUTE header portion.

[0061] Em algumas modalidades, o processador pode subtrair a primeira indicação de tempo da segunda indicação de tempo. O processador pode subtrair o valor de EXT_TIME do tempo de apresentação de camada de transporte (valor, por exemplo, (EXT_ROUTE_PRESENTATION_TIME)) de modo a determinar um retardo relacionado com serviço específico da faixa de bytes ou MDE (o retardo relacionado com construção de serviços para a entrega RAP MDE 432, por exemplo).[0061] In some embodiments, the processor may subtract the first time indication from the second time indication. The processor may subtract the value of EXT_TIME from the transport layer presentation time (e.g. value, (EXT_ROUTE_PRESENTATION_TIME)) in order to determine a byte range-specific service-related delay or MDE (the service construction-related delay for delivery RAP MDE 432, for example).

[0062] De modo a determinar o tempo no qual a camada de transporte pode enviar a faixa de bytes ou MDE ao cliente de mídia em fluxo contínuo (o tempo de entrega de faixa de bytes 424 específico da faixa de bytes ou MDE, por exemplo), o processador pode adicionar um retardo específico de implementação (tal como o retardo específico de implementação 418, como, por exemplo, o retardo de pilha de protocolos total) e o retardo relacionado com serviços específico da faixa de bytes ou MDE. Assim, o processador pode determinar o tempo no qual a camada de transporte pode entregar um MDE ou faixa de bytes ao cliente de mídia em fluxo contínuo, que pode ser relativa ao EXT_TIME do MDE ou faixa de bytes específica.[0062] In order to determine the time in which the transport layer can send the byte strip or MDE to the streaming media client (the byte strip 424 delivery time specific to the byte strip or MDE, e.g. ), the processor may add implementation-specific delay (such as implementation-specific delay 418, such as full protocol stack delay) and byte range-specific service-related delay or MDE. Thus, the processor can determine the time in which the transport layer can deliver an MDE or byte range to the streaming media client, which can be relative to the EXT_TIME of the specific MDE or byte range.

[0063] Além disto, ou alternativamente, o processador pode adicionar o retardo específico de implementação (o retardo específico de implementação 418 ou o retardo de pilha de protocolos total, por exemplo) e o valor de tempo de apresentação de camada de transporte (EXT_ROUTE_PRESENTATION_TIME) de modo a calcular o tempo de entrega da faixa de bytes/MDE.[0063] In addition, or alternatively, the processor may add the implementation specific delay (implementation specific delay 418 or total protocol stack delay, for example) and the transport layer presentation time value (EXT_ROUTE_PRESENTATION_TIME) in order to calculate the delivery time of the byte stream/MDE.

[0064] Utilizando o tempo de entrega de faixa de bytes determinado, a camada de transporte 442 pode enviar faixas de bytes ou MDEs 474 ao cliente de mídia em fluxo contínuo. O cliente de mídia em fluxo contínuo pode enviar a fileira de blocos/MDE 474 a um CODEC 450 (o CODEC 214, por exemplo) como mídias compactadas sincronizadas precocemente 476. O CODEC 450 pode processar as mídias compactadas sincronizadas precocemente 476 (as faixas de bytes ou MDEs, por exemplo) e pode enviar tais dados de conteúdo processados (as mídias não compactadas sincronizadas precocemente 478, por exemplo) a uma camada de apresentação 452.[0064] Using the determined byte strip delivery time, the transport layer 442 can send byte strips or MDEs 474 to the streaming media client. The streaming media client may send the block/MDE row 474 to a CODEC 450 (the CODEC 214, for example) as early-synchronized compressed media 476. The CODEC 450 may process the early-synchronized compressed media 476 (the streams of bytes or MDEs, for example) and may send such processed content data (early synchronized uncompressed media 478, for example) to a presentation layer 452.

[0065] A Figura 5 mostra um método 500 para gerenciar o retardo de transmissão de conteúdo de mídia para um aparelho receptor de acordo com diversas modalidades. O método 500 pode ser implementado pelo processador de um aparelho receptor (o aparelho receptor sem fio 102 da Figura 1, por exemplo).[0065] Figure 5 shows a method 500 for managing the transmission delay of media content to a receiving device according to various embodiments. Method 500 may be implemented by the processor of a receiving device (the wireless receiving device 102 of Figure 1, for example).

[0066] No bloco 502, um aparelho remetente (um servidor de conteúdos 110, por exemplo) pode rotular dados de conteúdo com um tempo de irradiação (transmissão, por exemplo) e, no bloco 504, o aparelho remetente pode marcar uma camada física com uma indicação de tempo (pode apresentar um tique de camada física ou outra indicação de tempo de modo a permitir que o aparelho receptor estabeleça um tempo local/de relógio de parede, por exemplo). A rotulação dos dados de conteúdo com o tempo de irradiação pode ser efetuada pela camada de transporte da pilha de protocolos do aparelho remetente, e a marcação da camada física com a indicação de tempo pode ser efetuada pela camada física da pilha de protocolos do aparelho remetente ou do remetente. O aparelho remetente pode enviar então os dados de conteúdo rotulados a um aparelho de recepção (o aparelho receptor 102, por exemplo) por meio de uma pilha de transmissão e recepção definida do aparelho receptor.[0066] In block 502, a sending device (a content server 110, for example) can label content data with an irradiation time (transmission, for example) and, in block 504, the sending device can tag a physical layer with a time indication (may have a physical layer tick or other time indication to allow the receiving device to establish a local/wall clock time, for example). The labeling of content data with the irradiation time can be performed by the transport layer of the sending device's protocol stack, and the marking of the physical layer with the time indication can be performed by the physical layer of the sending device's protocol stack or the sender. The sending apparatus may then send the labeled content data to a receiving apparatus (the receiving apparatus 102, for example) via a defined transmit and receive stack of the receiving apparatus.

[0067] No bloco 506, o aparelho receptor pode receber os dados de conteúdo rotulados com o tempo de irradiação, como, por exemplo, na camada física da pilha de protocolos no aparelho receptor ( camada PHY 204, por exemplo). No bloco 508, o aparelho receptor pode receber uma indicação de tempo por meio da camada física da pilha de protocolos.[0067] In block 506, the receiving device can receive content data labeled with the irradiation time, as, for example, in the physical layer of the protocol stack in the receiving device (PHY layer 204, for example). In block 508, the receiving apparatus may receive a time indication through the physical layer of the protocol stack.

[0068] No bloco 510, o processador do aparelho receptor pode processar os dados de conteúdo recebidos na pilha de protocolos do aparelho receptor. No bloco 512, o processador do aparelho de indicação de recepção pode estabelecer um tempo local do aparelho receptor (um relógio de parede local ou relógio de parede de receptor, por exemplo) a partir de informações fornecidas pela pilha de protocolos, por exemplo. Em algumas modalidades, a camada física da pilha de protocolos do aparelho receptor pode estabelecer o tempo local do aparelho receptor com base na marcação na camada física da indicação de tempo do aparelho remetente.[0068] In block 510, the processor of the receiving device may process the content data received in the protocol stack of the receiving device. In block 512, the receiver indication apparatus processor may establish a local time of the receiving apparatus (a local wall clock or receiver wall clock, for example) from information provided by the protocol stack, for example. In some embodiments, the physical layer of the protocol stack of the receiving device may establish the local time of the receiving device based on the physical layer marking of the time indication of the sending device.

[0069] No bloco 514, o processador do aparelho receptor pode recuperar o tempo de irradiação do rótulo dos dados de conteúdo.[0069] In block 514, the processor of the receiving device may recover the label irradiation time of the content data.

[0070] No bloco 516, o processador pode comparar o tempo de irradiação recuperado com o tempo local estabelecido do aparelho receptor e pode determinar um retardo de pilha de protocolos com base na comparação.[0070] In block 516, the processor may compare the recovered irradiation time with the established local time of the receiving apparatus and may determine a protocol stack delay based on the comparison.

[0071] No bloco 518, o processador pode determinar um deslocamento de tempo com base na comparação do tempo de irradiação recuperado com o tempo local estabelecido do aparelho receptor. Em algumas modalidades, o processador pode criar um cronômetro com base no deslocamento de tempo determinado. O processador pode utilizar o cronômetro determinado para determinar o tempo para entregar o conteúdo de mídia ao cliente de mídia em fluxo contínuo.[0071] In block 518, the processor may determine a time offset based on comparing the recovered irradiation time with the established local time of the receiving apparatus. In some embodiments, the processor may create a timer based on the given time offset. The processor may use the given timer to determine the time to deliver the media content to the streaming media client.

[0072] No bloco opcional 520, o processador pode modificar um ou mais valores da MPD dos dados de conteúdo utilizando o deslocamento de tempo determinado. No bloco opcional 502, o processador pode ajustar o tempo local do aparelho receptor utilizando o deslocamento de tempo domínio do tempo.[0072] In optional block 520, the processor may modify one or more MPD values of the content data using the determined time offset. In optional block 502, the processor may adjust the local time of the receiving device using the time domain time shift.

[0073] No bloco 524, o processador pode determinar que um cliente de mídia em fluxo contínuo (ou aplicativo de cliente 212 e o cliente de mídia em fluxo contínuo 444, por exemplo) está solicitando faixas de bytes ou MDEs. Por exemplo, a camada de transporte da pilha de protocolos (a camada de transporte 210 e a camada de transporte 442, por exemplo) pode interpretar uma solicitação de dados de conteúdo como uma solicitação para enviar faixas de bytes ou MDEs no tempo mais precoce possível.[0073] In block 524, the processor may determine that a streaming media client (or client application 212 and streaming media client 444, for example) is requesting byte ranges or MDEs. For example, the transport layer of the protocol stack (transport layer 210 and transport layer 442, for example) may interpret a request for content data as a request to send byte ranges or MDEs at the earliest possible time. .

[0074] No bloco 526, o processador pode determinar um tempo de entrega de faixas de bytes (o tempo de entrega de faixas de bytes 424, por exemplo) tal como um tempo no qual a camada de transporte pode entregar um MDE ou faixa de bytes ao cliente de mídia em fluxo contínuo. Em algumas modalidades, o processador pode determinar o tempo de entrega de faixa de bytes adicionando um retardo específico de implementação (o retardo específico de implementação 218, que pode ser o retardo de pilha de protocolos total, por exemplo) e um retardo relacionado com serviço específico da faixa de bytes ou MDE (o retardo relacionado com construção de serviços para a entrega RAP MDE 430, por exemplo). Além disto, ou alternativamente, o processador pode calcular o tempo de entrega da faixa de bytes/MDE adicionando o retardo específico de implementação (isto é, o retardo específico de implantação 418) e um valor de tempo de apresentação de camada de transporte (EXT_ROUTE_PRESENTATION_TIME).[0074] In block 526, the processor may determine a byte range delivery time (the byte range delivery time 424, for example) such as a time at which the transport layer can deliver an MDE or byte range. bytes to the streaming media client. In some embodiments, the processor may determine the byte range delivery time by adding an implementation-specific delay (implementation-specific delay 218, which may be the total protocol stack delay, for example) and a service-related delay. specific to the byte range or MDE (the delay related to building services for RAP MDE 430 delivery, for example). In addition, or alternatively, the processor may calculate the byte range/MDE delivery time by adding the implementation specific delay (i.e., deployment specific delay 418) and a transport layer presentation time value (EXT_ROUTE_PRESENTATION_TIME ).

[0075] No bloco 528, o processador pode entregar uma faixa de bytes ou MDE ao cliente de mídia em fluxo contínuo utilizando o tempo de entrega de faixa de bytes. Utilizando o tempo de entrega de faixa de bytes, por exemplo, o processador pode entregar dados de conteúdo (uma faixa de bytes ou MDE, por exemplo) a uma interface de aplicativo de cliente (a uma interface ROUTE/DAS, por exemplo) como faixas de bytes/MDEs em fluxo contínuo. Em algumas modalidades, o processador pode determinar que o cronômetro criado com base no deslocamento de tempo determinado expirou. Em tais modalidades, o processador pode entregar o conteúdo de mídia ao cliente de mídia em fluxo contínuo em resposta à expiração do cronômetro (em resposta à determinação de que o cronômetro expirou, por exemplo).[0075] In block 528, the processor may deliver a byte strip or MDE to the streaming media client using the byte strip delivery time. Using byte range delivery time, for example, the processor can deliver content data (a byte range or MDE, for example) to a client application interface (to a ROUTE/DAS interface, for example) as streams of bytes/MDEs. In some embodiments, the processor may determine that the timer created based on the given time offset has expired. In such embodiments, the processor may deliver the media content to the streaming media client in response to the expiration of the timer (in response to determining that the timer has expired, for example).

[0076] As diversas modalidades podem ser implementadas em qualquer um de diversos aparelhos receptores, um exemplo dos quais é mostrado na Figura 6. Por exemplo, o aparelho receptor 600 pode incluir um processador 602 acoplado a memórias internas 604 e 606. As mídias internas 604 e 606 podem ser memórias voláteis ou não voláteis e podem ser também memórias segurar e/ou criptografadas ou memórias inseguras e/ou não criptografadas, ou qualquer combinação delas. O processador 602 pode ser também acoplado a um monitor com tela sensível ao toque 612, tal como uma tela sensível ao toque resistiva-detectora, tela sensível ao toque capacitiva- detectora, tela sensível ao toque detectora infravermelha ou semelhante. Além disto, o monitor do aparelho receptor 600 não precisa ter capacidade de tela sensível ao toque. O aparelho receptor 600 pode ter um ou mais transceptores de rádio-sinais 608 (Peanut®, luetooth®, Zigbee®, Wi-Fi, radiofrequência (RF), por exemplo) e antenas 610, para envio e recepção, acopladas entre si e/ou ao processador 602. O aparelho receptor 600 pode incluir uma interface de rede celular tal como um chip de modem sem fio 612, que permite comunicação por meio de uma rede de dados celular (CDMA, TDMA, GSM, PCS, 3G, 4G, LTE, ATSC 3.0, DVD-T2 ou qualquer outro tipo de rede de dados celular ou de broadcast, por exemplo) e é acoplada ao processador 602. A interface de conexão com aparelhos periféricos 618 pode ser configurada de maneira singular para aceitar um tipo de conexão ou configurada de maneira múltipla para aceitar diversos tipo de conexões de comunicação físicas, comuns ou patenteadas, tais como USB, FireWire, Thunderbolt, ou CI. A interface de conexão com aparelhos periféricos 618 pode ser também acoplada a uma porta de conexão com aparelhos periféricos configurada de maneira semelhante. O aparelho receptor 600 pode incluir também alto-falantes 614 para fornecer saídas de áudio. O aparelho receptor 600 pode incluir um alojamento 620 construído de plástico, metal ou de uma combinação de materiais, para conter todos ou alguns cós componentes aqui discutidos. O aparelho receptor 600 pode incluir uma fonte de alimentação 622 acoplada ao processador 602, tal como uma bateria descartável ou recarregável. A bateria recarregável pode ser também acoplada à porta de conexão com aparelhos periféricos para receber uma corrente de carregamento de uma fonte externa ao aparelho receptor 600. O aparelho receptor 600 pode incluir também um botão físico 624 para receber entradas de usuário e um botão de energia 626 para ligar e desligar o aparelho receptor 600.[0076] The various embodiments may be implemented in any of a number of receiving devices, an example of which is shown in Figure 6. For example, the receiving device 600 may include a processor 602 coupled to internal memories 604 and 606. The internal media 604 and 606 may be volatile or non-volatile memories and may also be secure and/or encrypted memories or insecure and/or unencrypted memories, or any combination thereof. The processor 602 may also be coupled to a touchscreen monitor 612, such as a resistive-sensing touchscreen, capacitive-sensing touchscreen, infrared sensing touchscreen, or the like. Furthermore, the monitor of the receiving apparatus 600 does not need to have touch screen capability. The receiving device 600 may have one or more radio signal transceivers 608 (Peanut®, luetooth®, Zigbee®, Wi-Fi, radio frequency (RF), for example) and antennas 610, for sending and receiving, coupled together and /or to the processor 602. The receiving apparatus 600 may include a cellular network interface such as a wireless modem chip 612, which allows communication over a cellular data network (CDMA, TDMA, GSM, PCS, 3G, 4G , LTE, ATSC 3.0, DVD-T2 or any other type of cellular or broadcast data network, for example) and is coupled to the processor 602. The peripheral device connection interface 618 can be uniquely configured to accept a type or multiple configured to accept various types of common or proprietary physical communications connections, such as USB, FireWire, Thunderbolt, or CI. The peripheral device connection interface 618 can also be coupled to a similarly configured peripheral device connection port. The receiving apparatus 600 may also include speakers 614 to provide audio outputs. The receiving apparatus 600 may include a housing 620 constructed of plastic, metal, or a combination of materials, to contain all or some of the components discussed herein. The receiving apparatus 600 may include a power source 622 coupled to the processor 602, such as a disposable or rechargeable battery. The rechargeable battery may also be coupled to the peripheral device connection port to receive a charging current from a source external to the receiving device 600. The receiving device 600 may also include a physical button 624 for receiving user input and a power button 626 to turn the receiving apparatus 600 on and off.

[0077] As diversas modalidades podem ser também implementadas em qualquer um de diversos aparelhos servidores comercialmente disponíveis, tais como o servidor 700 mostrado na Figura 7. Tal servidor 700 inclui tipicamente um processador 701 acoplado a uma memória volátil 702 e a uma memória não volátil de grande capacidade, tal como a unidade de disco 704. O servidor 700 pode incluir também uma unidade de disco flexível, uma unidade de disco compacto (CD) ou DVD 706 acopladas ao processador 701. O servidor 700 pode incluir também portas de acesso a redes 703 acopladas ao processador 701 para estabelecer conexões de interface de rede para estabelecer conexões de interface de rede com uma rede 707 tal como uma rede de área local acoplada a outros computadores e servidores de sistema de broadcast à Internet, à rede telefônica comutada pública e/ou a uma rede de dados celular (CDMA, TDMA, GSM, PCS, 3G, 4G, LTE ou qualquer outro tipo de rede de dados celular, por exemplo).[0077] The various embodiments can also be implemented on any of a number of commercially available server devices, such as the server 700 shown in Figure 7. Such server 700 typically includes a processor 701 coupled to a volatile memory 702 and a non-volatile memory large capacity, such as disk drive 704. Server 700 may also include a floppy disk drive, compact disk (CD) or DVD drive 706 coupled to processor 701. Server 700 may also include access ports to networks 703 coupled to processor 701 to establish network interface connections to a network 707 such as a local area network coupled to other computers and broadcast system servers to the Internet, the public switched telephone network, and /or to a cellular data network (CDMA, TDMA, GSM, PCS, 3G, 4G, LTE or any other type of cellular data network, for example).

[0078] Os processadores 602 e 702 podem ser qualquer microprocessador, microcomputador programável ou vários chips de processador que possam ser configurados por instruções (aplicativos) de software para executar diversas funções, inclusive as funções das diversas modalidades descritas acima. Em alguns aparelhos, podem ser apresentados vários processadores, tais como um processador dedicado a funções de comunicações sem fio e um processador dedicado a executar outros aplicativos. Tipicamente, os aplicativos de software podem ser armazenados na memória interna 604, 606, 702, 704 antes de serem acessados e carregados nos processadores 602 e 701. Os processadores 702 e 701 podem incluir memória interna suficiente para armazenar instruções de software de aplicativo. Em muitos aparelhos, a memória interna pode ser uma memória volátil ou não volátil, tal como uma memória flash ou uma mistura de ambas. Para as finalidades desta descrição, uma referência geral a memória refere-se a uma memória acessível pelos processadores 602 e 701, inclusive memória interna ou memória removível conectada no aparelho e memória dentro dos processadores 602 e 701 propriamente ditos.[0078] Processors 602 and 702 may be any microprocessor, programmable microcomputer, or various processor chips that can be configured by software instructions (applications) to perform various functions, including the functions of the various embodiments described above. In some devices, multiple processors may be featured, such as a processor dedicated to wireless communications functions and a processor dedicated to running other applications. Typically, software applications may be stored in internal memory 604, 606, 702, 704 before being accessed and loaded into processors 602 and 701. Processors 702 and 701 may include internal memory sufficient to store application software instructions. In many devices, the internal memory may be volatile or non-volatile memory, such as flash memory, or a mixture of both. For the purposes of this description, a general reference to memory refers to a memory accessible by processors 602 and 701, including internal memory or removable memory connected to the apparatus and memory within the processors 602 and 701 themselves.

[0079] As descrições de método e os diagramas de fluxos de processamento precedentes são apresentados meramente como exemplos ilustrativos e não pretendem exigir ou implicar que as operações de diversas modalidades devem ser executadas na ordem apresentada. Conforme será entendido pelos versados na técnica, a ordem das operações nas modalidades precedentes podem ser qualquer ordem. Palavras como “em seguida”, etc., não se destinam a limitar a ordem das operações. Estas palavras são simplesmente utilizadas para orientar o leitor através da descrição dos métodos. Além disto, qualquer referência a elementos de reivindicação no singular, utilizando-se os artigos “um/a”, “o/a(s)” não deve ser interpretada como limitando o elemento ao singular.[0079] The preceding method descriptions and processing flow diagrams are presented merely as illustrative examples and are not intended to require or imply that the operations of various embodiments must be performed in the order presented. As will be understood by those skilled in the art, the order of operations in the foregoing embodiments may be any order. Words like “next,” etc., are not intended to limit the order of operations. These words are simply used to guide the reader through the description of the methods. Furthermore, any reference to claim elements in the singular, using the articles “a/a”, “the/the(s)” should not be interpreted as limiting the element to the singular.

[0080] Os diversos blocos, componentes, circuitos e operações de algoritmos lógicos ilustrativos descritos em conexão com as modalidades aqui reveladas podem ser implementados como hardware eletrônico, software de computador ou combinações de ambos. Para ilustrar claramente esta intercambialidade de hardware e software, diversos componentes, blocos, configurações, módulos, circuitos e operações ilustrativos foram descritos acima geralmente em termos de sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software depende da aplicação específica e das restrições de desenho impostas ao sistema como um todo. Os versados na técnica podem implementar a funcionalidade descrita de maneiras variáveis para cada aplicação específica, mas tais decisões de implementação não devem ser interpretadas como provocando um afastamento do alcance das reivindicações.[0080] The various blocks, components, circuits and operations of illustrative logical algorithms described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software or combinations of both. To clearly illustrate this interchangeability of hardware and software, several illustrative components, blocks, configurations, modules, circuits and operations have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the system as a whole. Those skilled in the art may implement the described functionality in varying ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the claims.

[0081] O hardware utilizado para implementar as diversas lógicas, blocos lógicos, componentes e circuitos lógicos ilustrativos descritos em conexão com as modalidades aqui reveladas pode ser implementado ou executado com um processador de propósito geral, um processador de sinais digitais (DSP), um circuito integrado específico de aplicativo (ASIC), um arranjo de portas programável no campo (FPGA) ou outro aparelho lógico programável (PLD), porta discreta ou lógica de transistor, componentes de hardware discretos ou qualquer combinação deles projetada para desempenhar as funções aqui descritas. Um processador de propósito geral pode ser um microprocessador, mas alternativamente, o processador pode ser qualquer processador, controlador, micro-controlador ou máquina de estado comercialmente disponível. Um processador pode ser também implementado como uma combinação de aparelhos de computação, como, por exemplo, uma combinação de DSP e microprocessador, uma série de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo de DSP ou qualquer outra configuração que tal. Alternativamente, algumas etapas ou métodos podem ser executados por um conjunto de circuitos que é específico de uma dada função.[0081] The hardware used to implement the various logics, logic blocks, components and illustrative logic circuits described in connection with the embodiments disclosed herein can be implemented or executed with a general purpose processor, a digital signal processor (DSP), a application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein . A general purpose processor may be a microprocessor, but alternatively, the processor may be any commercially available processor, controller, microcontroller or state machine. A processor may also be implemented as a combination of computing devices, such as, for example, a combination of DSP and microprocessor, a series of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration as such. Alternatively, some steps or methods may be performed by a set of circuits that is specific to a given function.

[0082] Em uma ou mais modalidades, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinações deles. Se implementadas em software, as funções podem ser armazenadas como uma ou mais instruções ou código executáveis por processador em um meio de armazenamento passível de leitura por computador não transitório ou meio de armazenamento passível de leitura por processador não transitório. As etapas de método ou algoritmo aqui reveladas podem ser corporificadas em um componente de software executável por processador que pode residir em um meio passível de leitura por computador ou passível de leitura por processador não transitório. Os meios de armazenamento passíveis de leitura por computador ou passíveis de leitura por processador não transitório podem ser quaisquer meios de armazenamento que possam ser acessados por um computador ou um processador. A título de exemplo e não de limitação, tais meios de armazenamento passíveis de leitura por computador ou passíveis de leitura por processador não transitórios podem incluir RAM, ROM, EEPROM, Memória FLASH, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético ou outros aparelhos de armazenamento magnético ou qualquer outro meio que possa ser utilizado para armazenar código de programa desejado sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Disco, conforme aqui utilizado, inclui disco compacto (CD), disco de laser, disco óptico, disco versátil digital (DVD), disco flexível, e disco blu-ray, onde disco (disks) reproduzem usualmente dados magneticamente, enquanto discos (discs) reproduzem usualmente dados opticamente com lasers, combinações dos elementos acima são também incluídas dentro do alcance dos meios passíveis de leitura por computador e passíveis de leitura por processador não transitórios. Além disto, as operações de método ou algoritmo, podem residir como uma ou qualquer combinação ou conjunto de códigos e/ou instruções em um meio de armazenamento passível de leitura por processador não transitório e/ou meio de armazenamento passível de leitura por computador, que podem ser incorporados a um produto de programa de computador.[0082] In one or more embodiments, the described functions can be implemented in hardware, software, firmware or any combinations thereof. If implemented in software, functions may be stored as one or more processor-executable instructions or code on a non-transitory computer-readable storage medium or non-transitory processor-readable storage medium. The method or algorithm steps disclosed herein may be embodied in a processor-executable software component that may reside on a computer-readable or non-transient processor-readable medium. Computer-readable or non-transient processor-readable storage media may be any storage media that can be accessed by a computer or processor. By way of example and not limitation, such non-transitory computer-readable or processor-readable storage media may include RAM, ROM, EEPROM, FLASH memory, CD-ROM or other optical disk storage, disk storage magnetic or other magnetic storage devices or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), flexible disc, and Blu-ray disc, where discs usually reproduce data magnetically, while discs ) usually reproduce data optically with lasers, combinations of the above elements are also included within the range of non-transient computer-readable and processor-readable media. In addition, method or algorithm operations may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable storage medium and/or computer-readable storage medium, which may be incorporated into a computer program product.

[0083] A descrição precedente das modalidades reveladas é apresentada para permitir que qualquer pessoa versada na técnica fabrique ou utilize a presente invenção. Diversas modificações nestas modalidades serão prontamente evidentes aos versados na técnica, e os princípios genéricos aqui definidos podem ser aplicados a algumas modalidades sem que se abandone o alcance das reivindicações. Assim, as reivindicações não pretendem estar limitadas às modalidades aqui mostradas, mas devem receber o mais amplo alcance compatível com as reivindicações seguintes e com os princípios e recursos inéditos aqui revelados.[0083] The preceding description of the disclosed embodiments is presented to allow any person skilled in the art to manufacture or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to some embodiments without departing from the scope of the claims. Accordingly, the claims are not intended to be limited to the embodiments shown herein, but are to be given the broadest scope compatible with the following claims and the novel principles and features disclosed herein.

Claims (11)

1. Método (500) para gerenciar um tempo inicial de conteúdo de mídia em um aparelho receptor, caracterizado pelo fato de que compreende: receber (506), por um processador do aparelho receptor, conteúdo de mídia rotulado com um tempo de transmissão a partir de um aparelho remetente; receber, pelo processador, uma solicitação (474) para uma faixa de byte do conteúdo de mídia; determinar, pelo processador, um retardo de construção de serviços (432) para a faixa de byte requisitada com base no tempo de transmissão a partir do aparelho remetente e um tempo de apresentação de camada de transporte, o tempo de apresentação de camada de transporte sendo uma indicação do tempo de transmissão mais um retardo relacionado de serviço específico para o intervalo de byte; determinar, pelo processador, um retardo de pilha de protocolo da faixa de byte pela: determinação, pelo processador, de um tempo local do aparelho receptor; e comparar, pelo processador, do tempo de transmissão com o tempo local do aparelho receptor; determinar (526), pelo processador, um deslocamento de tempo (424) da faixa de byte com base no retardo de construção de serviços e retardo de pilha de protocolo; e entregar (528), pelo processador, a faixa de byte a um cliente de mídia em fluxo contínuo utilizando o deslocamento de tempo (424).1. Method (500) for managing an initial time of media content on a receiving device, characterized in that it comprises: receiving (506), by a processor of the receiving device, media content labeled with a transmission time from from a sending device; receiving, by the processor, a request (474) for a byte range of media content; determine, by the processor, a service construction delay (432) for the requested byte range based on the transmission time from the sending apparatus and a transport layer presentation time, the transport layer presentation time being an indication of the transmission time plus a related service delay specific to the byte range; determining, by the processor, a byte range protocol stack delay by: determining, by the processor, a local time of the receiving apparatus; and compare, by the processor, the transmission time with the local time of the receiving device; determining (526), by the processor, a time offset (424) of the byte range based on the service construction delay and protocol stack delay; and delivering (528), by the processor, the byte range to a streaming media client using time shifting (424). 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: determinar, pelo processador, um tempo inicial do conteúdo de mídia com base no deslocamento de tempo determinado, em que entregar, pelo processador, o conteúdo de mídia a um cliente de mídia em fluxo contínuo utilizando o retardo de construção de serviços ajustado compreende: entregar, pelo processador, o conteúdo de mídia ao cliente de mídia em fluxo contínuo, com base no tempo inicial.2. The method of claim 1, further comprising: determining, by the processor, a starting time of the media content based on the determined time offset, wherein delivering, by the processor, the media content to a streaming media client using the adjusted service construction delay comprises: delivering, by the processor, the media content to the streaming media client based on the starting time. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que, em resposta a uma solicitação de um aplicativo de cliente a uma camada de transporte de uma pilha de protocolos para o conteúdo de mídia que chega antes que o conteúdo de mídia solicitado esteja completamente presente em um armazenador de transporte, a camada de transporte da pilha de protocolos interpreta a solicitação como uma solicitação para entrega da faixa de bytes do conteúdo de mídia solicitado.3. The method of claim 1, wherein, in response to a request from a client application to a transport layer of a protocol stack for media content arriving before the media content requested is completely present in a transport store, the transport layer of the protocol stack interprets the request as a request for delivery of the requested byte range of media content. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o retardo de pilha de protocolos do conteúdo de mídia compreende um tempo de retardo devido ao processamento do conteúdo de mídia por uma pilha de protocolos do aparelho receptor.4. Method according to claim 1, characterized in that the protocol stack delay of the media content comprises a delay time due to the processing of the media content by a protocol stack of the receiving device. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar um retardo de pilha de protocolos do conteúdo de mídia compreende determinar o retardo de pilha de protocolos depois que uma parte de conteúdo de mídia do conteúdo de mídia é processada por uma camada de transporte de uma pilha de protocolos do aparelho receptor.5. The method of claim 1, wherein determining a protocol stack delay of the media content comprises determining the protocol stack delay after a media content portion of the media content is processed by a transport layer of a protocol stack of the receiving device. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar um retardo de pilha de protocolos do conteúdo de mídia compreende recuperar um valor de retardo de pilha de protocolos predeterminado de uma memória do aparelho receptor.6. The method of claim 1, wherein determining a protocol stack delay of the media content comprises retrieving a predetermined protocol stack delay value from a memory of the receiving apparatus. 7. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que determinar um tempo inicial do conteúdo de mídia compreende: modificar, pelo processador, uma descrição de apresentação de mídia do conteúdo de mídia, com base no deslocamento de tempo; e determinar, pelo processador, um tempo inicial do conteúdo de mídia, com base na descrição da apresentação de mídia modificada.7. The method of claim 2, wherein determining an initial time of the media content comprises: modifying, by the processor, a media presentation description of the media content, based on the time offset; and determining, by the processor, a starting time of the media content, based on the description of the modified media presentation. 8. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que determinar um tempo inicial do conteúdo de mídia compreende: modificar, pelo processador, um tempo local do aparelho receptor com base no deslocamento de tempo; e determinar, pelo processador, um tempo inicial do conteúdo de mídia com base no tempo local modificado.8. The method of claim 2, wherein determining a starting time of the media content comprises: modifying, by the processor, a local time of the receiving apparatus based on the time offset; and determining, by the processor, a starting time of the media content based on the modified local time. 9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: criar, pelo processador, um cronômetro, com base no deslocamento de tempo determinado; em que entregar, pelo processador, o conteúdo de mídia a um cliente de mídia em fluxo contínuo que utiliza o deslocamento de tempo compreende entregar, pelo processador, o conteúdo de mídia ao cliente de mídia em fluxo contínuo em resposta à expiração do cronômetro.9. Method, according to claim 1, characterized by the fact that it additionally comprises: creating, by the processor, a timer, based on the determined time offset; wherein delivering, by the processor, the media content to a streaming media client utilizing time shifting comprises delivering, by the processor, the media content to the streaming media client in response to the expiration of the timer. 10. Memória não transitória legível por computador (604) contendo instruções executáveis por computador configuradas para fazer com que um processador (602) de um aparelho receptor (600) realize as etapas, a referida memória caracterizada pelo fato de que compreende: receber conteúdo de mídia rotulado com um tempo de transmissão a partir de um aparelho remetente; receber uma solicitação (474) para uma faixa de byte do conteúdo de mídia; determinar um retardo de construção de serviços para a faixa de byte requisitada com base no tempo de transmissão a partir do aparelho remetente e um tempo de apresentação de camada de transporte, o tempo de apresentação de camada de transporte sendo uma indicação do tempo de transmissão mais um retardo relacionado de serviço específico para a faixa de byte; determinar um retardo de pilha de protocolo do intervalo de byte pela: determinação de um tempo local do aparelho receptor; e comparar o tempo de transmissão com o tempo local do aparelho receptor; determinar um deslocamento de tempo da faixa de byte com base no retardo de construção de serviços e retardo de pilha de protocolo; e entregar a faixa de byte a um cliente de mídia em fluxo contínuo utilizando o deslocamento de tempo (424).10. Non-transitory computer-readable memory (604) containing computer-executable instructions configured to cause a processor (602) of a receiving apparatus (600) to perform steps, said memory characterized by the fact that it comprises: receiving content from media labeled with a transmission time from a sending device; receiving a request (474) for a byte range of media content; determine a service construction delay for the requested byte range based on the transmission time from the sending device and a transport layer presentation time, the transport layer presentation time being an indication of the longest transmission time. a service related delay specific to the byte range; determining a byte range protocol stack delay by: determining a local time of the receiving apparatus; and compare the transmission time with the local time of the receiving device; determining a byte range time offset based on service construction delay and protocol stack delay; and delivering the byte range to a streaming media client using time shifting (424). 11. Aparelho receptor (600), caracterizado pelo fato de que compreende: meios para receber conteúdo de mídia rotulado com um tempo de transmissão de um aparelho remetente; meios para determinar um retardo de construção de serviços (432) para a faixa de byte requisitada com base no tempo de transmissão a partir do aparelho remetente e um tempo de apresentação de camada de transporte, o tempo de apresentação de camada de transporte sendo uma indicação do tempo de transmissão mais um retardo relacionado de serviço específico para a faixa de byte; meios para determinar um retardo de pilha de protocolo do intervalo de byte pela: determinação, pelo processador, de um tempo local do aparelho receptor; e comparar, pelo processador, o tempo de transmissão com o tempo local do aparelho receptor; meios para determinar um deslocamento de tempo (424) da faixa de byte com base no retardo de construção de serviços e retardo de pilha de protocolo; e meios para entregar a faixa de byte a um cliente de mídia em fluxo contínuo utilizando o deslocamento de tempo.11. Receiving apparatus (600), characterized in that it comprises: means for receiving media content labeled with a transmission time from a sending apparatus; means for determining a service construction delay (432) for the requested byte range based on the transmission time from the sending apparatus and a transport layer presentation time, the transport layer presentation time being an indication transmission time plus a related service delay specific to the byte range; means for determining a byte range protocol stack delay by: determining, by the processor, a local time of the receiving apparatus; and compare, by the processor, the transmission time with the local time of the receiving device; means for determining a time offset (424) of the byte range based on service construction delay and protocol stack delay; and means for delivering the byte range to a streaming media client using time shifting.
BR112017018324-2A 2015-02-26 2016-02-23 METHOD FOR MANAGING AN INITIAL TIME OF MEDIA CONTENT ON A RECEIVING DEVICE, COMPUTER READABLE NON-TRANSIENT MEMORY AND RECEIVING DEVICE BR112017018324B1 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562121303P 2015-02-26 2015-02-26
US62/121,303 2015-02-26
US201562126089P 2015-02-27 2015-02-27
US62/126,089 2015-02-27
US15/049,974 US10298647B2 (en) 2015-02-26 2016-02-22 Delay compensation for broadcast adaptive bitrate streaming
US15/049,974 2016-02-22
PCT/US2016/019045 WO2016137935A1 (en) 2015-02-26 2016-02-23 Delay compensation for broadcast adaptive bitrate streaming

Publications (2)

Publication Number Publication Date
BR112017018324A2 BR112017018324A2 (en) 2018-04-17
BR112017018324B1 true BR112017018324B1 (en) 2024-07-02

Family

ID=

Similar Documents

Publication Publication Date Title
JP6455741B2 (en) Streaming with video orientation adjustment (CVO)
TWI668982B (en) Method and server device for transport interface for multimedia and file transport, and computer-readable storage medium for recording related instructions thereon
US10298647B2 (en) Delay compensation for broadcast adaptive bitrate streaming
TW201729601A (en) Deadline signaling for streaming of media data
BR112015031512B1 (en) MEDIATE DELIVERY OF CONTENT VIA ONE OR MORE SERVICES
EP2837138A1 (en) Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
JP2016506682A (en) Method for supporting DASH through device timing and broadcast
KR102486847B1 (en) Link-aware streaming adaptation
US10097319B2 (en) Method and apparatus for re-transmitting MMT packet and method and apparatus for requesting MMT packet re-transmission
CN107251561A (en) Equipment is adjusted to the availability time started of the DASH by broadcast
US10701408B2 (en) Devices and methods for transmitting/receiving data in communication system
JP6553166B2 (en) Method and apparatus for receiving media packets in a multimedia system
EP3072302B1 (en) A method, node and computer programe for providing live content streaming.
JP6976276B2 (en) Devices and methods for managing buffers for rate pacing
BR112017018324B1 (en) METHOD FOR MANAGING AN INITIAL TIME OF MEDIA CONTENT ON A RECEIVING DEVICE, COMPUTER READABLE NON-TRANSIENT MEMORY AND RECEIVING DEVICE
US10880586B2 (en) Method and device for transmitting and receiving MMTP packet
KR20160000722A (en) Method and appratus for transmitting and receiving multimedia content using hybrid network in a communication system