BR112017017072B1 - Método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de transmissão em fluxo contínuo de dispositivos de comunicação na rede, dispositivo de comunicação em uma rede, e mídia não transitória legível por computador - Google Patents

Método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de transmissão em fluxo contínuo de dispositivos de comunicação na rede, dispositivo de comunicação em uma rede, e mídia não transitória legível por computador Download PDF

Info

Publication number
BR112017017072B1
BR112017017072B1 BR112017017072-8A BR112017017072A BR112017017072B1 BR 112017017072 B1 BR112017017072 B1 BR 112017017072B1 BR 112017017072 A BR112017017072 A BR 112017017072A BR 112017017072 B1 BR112017017072 B1 BR 112017017072B1
Authority
BR
Brazil
Prior art keywords
bandwidth
data
session
data session
network
Prior art date
Application number
BR112017017072-8A
Other languages
English (en)
Other versions
BR112017017072A2 (pt
Inventor
Mary-Luc Champel
Charline Taibi
Remi Houdaille
Original Assignee
Interdigital Vc Holdings, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Interdigital Vc Holdings, Inc filed Critical Interdigital Vc Holdings, Inc
Publication of BR112017017072A2 publication Critical patent/BR112017017072A2/pt
Publication of BR112017017072B1 publication Critical patent/BR112017017072B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

distribuição de largura de banda em uma rede. a presente invenção se refere à troca de parâmetros entre dispositivos de comunicação de uma rede que descreve suas sessões de dados respectivas e a aplicação, em um dispositivo de comunicação, de um algoritmo de distribuição de largura de banda usando os parâmetros de troca para alocar largura de banda para uma ou mais sessões de dados na rede.

Description

CAMPO DA TÉCNICA
[001] A presente invenção se refere a um método e dispositivo para distribuição de largura de banda em uma rede. Particularmente, mas não exclusivamente, a invenção se refere à distribuição de largura de banda para clientes de transmissão em fluxo contínuo (streaming) adaptável.
FUNDAMENTOS DA INVENÇÃO
[002] As tecnologias adaptáveis HTTP são usadas para a distribuição de dados audiovisuais na Internet. Tais tecnologias possibilitam que um dispositivo cliente receba vídeo na forma de pequenos segmentos sucessivos, frequentemente referidos como pedaços. Cada segmento é solicitado através do protocolo HTTP e pode existir em diferentes variantes (chamadas representações), que permitem que o dispositivo cliente escolha a qualquer momento uma taxa de bit apropriada correspondente as restrições de rede e dispositivo.
[003] Entre os protocolos de transmissão em fluxo contínuo adaptáveis (HAS) que já são usados, os mais famosos são o Streaming Live HTTP (HLS) da Apple, o Streaming Smooth Silverlight (SSS) da Microsoft, o Streaming Dynamic HTTP de Adobe e o Streaming Adaptive Dynamic sobre HTTP (DASH) iniciado por 3GPP dentro do grupo SA4 e desenvolvido por MPEG.
[004] MPEG-DASH (também conhecido como DASH, Streaming Adaptive Dynamic sobre HTTP, ISSO/IEC 23009) define uma solução completa para a distribuição de conteúdo sobre redes com as capacidades de variação de tempo (largura de banda).
[005] Durante a reprodução de conteúdo de uma sessão de dados, um cliente MPEG-DASH solicita pedaços de conteúdo de um servidor e usa seu conhecimento das condições de rede, suas próprias restrições, e a lista de representações disponíveis do mesmo conteúdo (usualmente o mesmo conteúdo com diferentes fluxos de bits de codificação) para solicitar a representação mais apropriada. A duração do pedaço é usualmente ajustada para alguns segundos, desse modo permitindo que os clientes DASH comutem para uma representação para outra a cada poucos segundos para adaptar dinamicamente as condições de rede. Quando está disponível largura de banda baixa, os clientes DASH solicitam pedaços de fluxo de bit baixo e podem solicitar pedaços de fluxo de bit maiores se uma largura de banda maior for disponibilizada.
[006] Esta lista de representações disponível para um determinado conteúdo está descrita em um arquivo claro (MPD, Descrição de Apresentação de Mídia) que é recuperado por um cliente DASH. Após analisar o MPD os clientes DASH descobrem as URLs de onde solicitar os pedaços de conteúdo. O MPD também permite que o cliente descubra a informação de representação (tais como representações de largura de banda) de modo a realizar adaptação dinâmica comutando entre todas as representações quando as condições de rede o exigem.
[007] Tipicamente quando os aspectos dinâmicos de DASH são usados, o conteúdo é distribuído sobre HTTP e TCP, TCP é um protocolo amigável de largura de banda onde todas as condições TCP tentam eventualmente compartilhar a largura de banda de rede geral entre os mesmos. Infelizmente, outros protocolos tais como UDP podem ser menos amigável roubando toda largura de banda do TCP. Além do mais, mesmo entre conexões TCP diferentes é difícil assegurar uma divisão fixa e desigual de banda larga; que é problemática quando alguns dispositivos realmente requerem mais banda larga do que outros. Por exemplo, um cliente DASH executando um fluxo UltraHD em uma TV mestre na sala requer mais largura de banda do que um cliente DASH que executa um fluxo HD em um telefone móvel. Mas se ambos funcionarem ao mesmo tempo e se a largura de banda de rede geral não for suficiente para acomodar ambos, o mecanismo de adaptação do cliente DASH irá gerar um voo sobre a largura de banda entre os dois clientes, resultando uma qualidade degradada para ambos os clientes. Conforme esperado, quanto mais os clientes DASH competem, mais crítica é a situação. Além disso, em uma implementação DASH tradicional, um cliente DASH não está ciente da presença de outros clientes DASH competindo com ele pela mesma disponibilidade de largura de banda de rede. Tudo que um cliente DASH pode ver é uma disponibilidade mito variada de largura de banda devido aos diversos consumos de larguras de banda de rede por outro(s) cliente(s) DASH.
[008] A presente invenção foi concebida com o acima exposto em mente.
SUMÁRIO DA INVENÇÃO
[009] Em uma forma geral, a invenção diz respeito à troca de parâmetros entre os dispositivos de comunicação da rede que descreve suas sessões de dados respectivos (sessões de tráfego ou sessões de trafego de dados) e a aplicação, em um dispositivo de comunicação, de um algoritmo de distribuição de largura de banda usando os parâmetros de troca para alocar largura de banda para uma ou mais sessões de dados na rede.
[010] De acordo com um primeiro aspecto da invenção, é fornecido um método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de dispositivos de comunicação na rede, o método compreendendo pelo menos em um dispositivo de comunicação: aplicar um algoritmo de distribuição de largura de banda usando pelo menos um parâmetro de largura de banda para fornecer uma largura de banda alocada para uma sessão de dados a ser executada ou sendo executada no dito dispositivo de comunicação, e qualquer outra sessão de dados a ser executada ou sendo executada por outros dispositivos de comunicação na rede, o pelo menos um parâmetro de largura de banda sendo obtido de mensagens de informação trocadas entre o dito dispositivo de comunicação e pelo menos outro dispositivo de comunicação da rede e sendo indicativa da largura de banda requerida para um sessão de dados a ser executada no dispositivo de comunicação da qual a mensagem de informação correspondente é enviada.
[011] Em uma ou mais modalidades o dispositivo de comunicação é configurado para transmissão em fluxo contínuo adaptável, por exemplo, de acordo com MPEG-DASH.
[012] Em modalidades uma largura de banda alocada é determinada para cada sessão de dados a ser executada na rede. A largura de banda alocada pode ser em alguns casos largura de banda zero.
[013] Em modalidades, a mensagem de informação sinaliza a sessão de dados correspondente a ser executada ou sendo executada.
[014] O pelo menos um parâmetro em uma mensagem de informação respectiva inclui um ou mais do que se segue: dados de prioridade representativos de um nível de prioridade da sessão de dados correspondente; dados de duração de pedaço representativos do tempo de duração de um segmento de dados da sessão de dados correspondente; e dados de largura de banda representativos de pelo menos uma largura de banda operável da sessão de dados correspondente.
[015] Em algumas modalidades, a mensagem de informação contém algoritmo de distribuição de largura de banda representativos de um algoritmo de distribuição de largura de banda selecionada a ser usada para fornecer a largura de banda alocada.
[016] Em uma modalidade, o algoritmo de distribuição de largura de banda compreende dividir a largura de banda disponível em partes iguais para alocar cada sessão de dados tendo um nível maior de prioridade com respeito ao nível de prioridade de outras sessões de dados a serem executadas ou em execução.
[017] O conteúdo de dados de cada sessão de dados pode ter uma pluralidade de representações correspondente e uma ou mais das representações é selecionada de acordo com a largura de banda alocada pela divisão da largura de banda disponível, a representação selecionada que corresponde à representação que requer a largura de banda maior que está dentro da largura de banda alocada.
[018] Em uma modalidade, no caso onde a largura de banda requerida para a representação selecionada é menor do que a largura de banda alocada, pelo menos parte da largura de banda remanescente é realocada para uma sessão de dados da prioridade maior para a qual a mensagem de informação correspondente foi enviada antes das outras mensagens de informação para outras sessões de dados da prioridade maior.
[019] Em uma modalidade, no caso onde a largura de banda requerida para a representação selecionada é menor do que a largura de banda alocada, pelo menos parte da largura de banda remanescente é alocada para uma sessão de dados de um nível de prioridade seguinte. A alocação para uma sessão de dados para uma prioridade menor é baseada pelo menos em um de: o nível de prioridade da sessão de dados; o tempo de transmissão da mensagem de informação correspondente; e a hora de início da sessão de dados.
[020] Em uma modalidade, o algoritmo de distribuição de largura de banda compreende alocar a largura de banda máxima possível para uma sessão de dados que tem o nível maior de prioridade comparado à prioridade de outras sessões de dados e para a qual a mensagem de informação correspondente foi enviada antes as outras mensagens de informação para outras sessões de dados da prioridade maior, a largura de banda máxima possível correspondendo a uma representação do conteúdo da sessão de dados que requer a maior largura de banda com respeito a outras representações do mesmo conteúdo, dentro da largura de banda disponível.
[021] Em uma modalidade, o algoritmo de distribuição de largura de banda compreende alocar a largura de banda máxima possível para pelo menos uma sessão de dados com base no nível de prioridade da sessão de dados e o tempo de emissão da mensagem de informação correspondente. Em particular, a largura de banda máxima possível é alocada para um sessão de dados de prioridade maior para a qual a mensagem de informação correspondente foi enviada antes das outras mensagens de informação para outras sessões de dados da mesma prioridade. A largura de banda máxima possível corresponde a uma representação do conteúdo da sessão de dados que requer a largura de banda maior com respeito a outras representações do mesmo conteúdo, dentro da largura de banda disponível.
[022] Em uma modalidade, o algoritmo de distribuição de largura de banda compreende alocar a largura de banda correspondente a uma representação da sessão de dados de conteúdo que requer a menor largura de banda.
[023] Em uma modalidade o método pode também incluir alocar qualquer largura de banda disponível remanescente para uma sessão de dados para possibilitar um nível maior de representação em pelo menos um do nível de prioridade da sessão de dados, do tempo de transmissão da mensagem de informação correspondente e do tempo de início da sessão de dados.
[024] Em uma modalidade, dentro de um determinado nível de prioridade a largura de banda disponível remanescente é alocada para uma sessão de dados com base pelo menos em um do tempo de transmissão da mensagem de informação para a sessão de dados correspondente e o tempo de início da sessão de dados.
[025] Em uma modalidade, as mensagens de informação são enviadas para e recebidas de um endereço de multidifusão (multicast) fixo para encaminhar para os outros dispositivos de comunicação.
[026] Em uma modalidade, as mensagens de informação são trocadas por meio de um dispositivo base central.
[027] Em uma modalidade, o mesmo algoritmo de alocação de largura de banda é usado por todos os dispositivos de comunicação iniciando uma sessão de dados. Em uma modalidade, o algoritmo de alocação de largura de banda é selecionado de acordo com pelo menos um de um nível de prioridade alocado para cada algoritmo de alocação de largura de banda e o número de dispositivos de comunicação selecionando cada algoritmo de largura de banda.
[028] De acordo com um segundo aspecto da invenção, é fornecido um dispositivo de comunicação que compreende uma interface de comunicação para trocar mensagens de informação com um ou mais dispositivos de comunicação em uma mesma rede, cada mensagem de informação compreendendo pelo menos um parâmetro de largura de banda indicativo da largura de banda requerida para uma sessão de dados a ser executada ou sendo executada no dispositivo de comunicação do qual a mensagem de informação correspondente é enviada e um ou mais processadores configurados para aplicar um algoritmo de distribuição de largura de banda usando o pelo menos um parâmetro de largura de banda para fornecer uma largura de banda alocada para uma sessão de dados a ser executada ou em execução no dito dispositivo de comunicação. Em algumas modalidades, o algoritmo de distribuição de largura de banda é aplicado usando pelo menos um parâmetro de largura de banda para fornecer uma largura de banda alocada para cada sessão de dados a ser executada ou em execução na rede. Cada sessão de dados pode ter uma mensagem de informação correspondente.
[029] O um ou mais processadores do dispositivo de comunicação podem ser configurados para realizar qualquer uma das etapas das modalidades do primeiro aspecto da invenção.
[030] A presença de um método de informação correspondente de um dispositivo de comunicação em algumas modalidades da invenção indica uma sessão de dados em curso (em execução) ou uma sessão de dados a ser iniciada (a executar) naquele dispositivo de comunicação.
[031] Um aspecto da invenção fornece um método para distribuir largura de banda disponível de uma rede entre uma pluralidade de sessões de dados de respectivos dispositivos de comunicação na rede, o método compreendendo, para um dispositivo de comunicação na rede, transmitir uma mensagem de informação para outros dispositivos de comunicação na rede; receber uma mensagem de informação de pelo menos um dos outros dispositivos de comunicação na rede; em que cada mensagem de informação contém pelo menos um parâmetro indicativo da largura de banda requerida para uma sessão de dados no dispositivo de comunicação correspondente; e aplicar um algoritmo de distribuição de largura de banda para fornecer uma largura de banda alocada para a sessão de dados do dito dispositivo de comunicação, em que o pelo menos um parâmetro de cada mensagem de informação é usado pelo algoritmo de distribuição de largura de banda.
[032] Em modalidades da invenção. As mensagens de informação são recebidas de outros dispositivos de comunicação iniciando ou tendo uma sessão de dados em curso.
[033] De acordo com um aspecto da invenção, é fornecido um método para distribuir largura de banda disponível de uma rede entre uma pluralidade de sessões de dados de dispositivos de comunicação na rede, o método compreendendo: aplicar um algoritmo de distribuição de largura de banda para fornecer uma largura de banda alocada para cada sessão de dados a ser executada ou sendo executada pelos dispositivos de comunicação da rede; em que o algoritmo de distribuição de largura de banda compreende alocar a largura de banda máxima requerida para pelo menos uma sessão de dados de um nível maior de prioridade comparado a outras sessões de dados e para a qual uma mensagem de informação correspondente sinaliza que a sessão de dados foi enviada antes de outras mensagens de informação para outras sessões de dados do mesmo nível de prioridade, a largura de banda máxima requerida da sessão de dados correspondendo a uma representação do conteúdo da sessão de dados requerendo a largura de banda maior, com respeito a outras representações do mesmo conteúdo, dentro da largura de banda disponível.
[034] De acordo com um aspecto da invenção, é fornecido um dispositivo de comunicação que compreende um ou mais processadores configurados para: aplicar um algoritmo de distribuição de largura de banda para fornece uma largura de banda alocada para cada sessão de dados a ser executada ou em execução pelos dispositivos de comunicação das redes; em que o algoritmo de distribuição de largura de banda compreende alocar a largura de banda máxima possível para pelo menos uma sessão de dados em ordem de nível de prioridade e para a qual a mensagem de informação correspondente sinaliza que a sessão de dados foi enviada antes de outras mies para outras sessões de dados do mesmo nível de prioridade, a largura de banda máxima possível da sessão de dados correspondendo a uma representação do conteúdo da sessão de dados requerendo a maior largura de banda, com respeito a outras representações do mesmo conteúdo, dentro da largura de banda disponível.
[035] Em uma modalidade, dentro de um determinado nível de prioridade a largura de banda remanescente é alocada para outras sessões de dados com base em pelo menos um do nível de prioridade da sessão de dados, no tempo de transmissão da mensagem de informação para a sessão de dados correspondente e na hora de início da sessão de dados.
[036] Em uma modalidade, dentro de um determinado nível de prioridade uma maior parte da largura de banda é alocada para pelo menos uma sessão de dados para a qual a mensagem de informação correspondente foi enviada antes das outras mensagens de informação para outras sessões de dados da mesma prioridade.
[037] Em uma modalidade, em que dentro de um determinado nível de prioridade menor a largura de banda que corresponde a uma representação do conteúdo da sessão de dados que requer a menor largura de banda é alocada para pelo menos uma sessão de dados.
[038] Em uma modalidade, o método inclui ou o dispositivo é configurado para realocar qualquer largura de banda disponível remanescente para uma sessão de dados no determinado nível de prioridade menor para possibilitar um nível maior de representação com base pelo menos em um nível de prioridade da sessão de dados, no tempo de transmissão da mensagem de informação correspondente e hora do início da sessão de dados.
[039] Em uma modalidade, o método inclui ou o dispositivo é configurado para dividir a largura de banda remanescente em partes iguais para alocação para cada das sessões de dados em um determinado nível de prioridade menor.
[040] Em uma modalidade, uma representação do conteúdo de dados é selecionada para cada sessão de dados de acordo com a parte igual da largura de banda alocada, a representação selecionada sendo a representação que requer a largura de banda maior que é menor do que ou igual à parte da largura de banda alocada.
[041] Em uma modalidade, o método inclui no caso onde a largura de banda requerida para a representação selecionada é menor do que ou igual à parte igual da largura de banda alocada, pelo menos parte da largura de banda remanescente é realocada para uma sessão de dados do determinado nível de prioridade para a qual a mensagem de informação correspondente foi enviada antes das outras mensagens de informação para as sessões de dados da determinada prioridade.
[042] Em uma modalidade, pelo menos um parâmetro de largura de banda para o algoritmo de distribuição de largura de banda é obtido das mensagens de informação trocadas entre os dispositivos de comunicação da rede e sendo indicativas da largura de banda remanescente para a sessão de dados para serem executadas ou em execução no dispositivo de comunicação do qual a mensagem de informação correspondente é enviada.
[043] Um aspecto da invenção fornece um método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de dispositivos de comunicação na rede, o método compreendendo: aplicar um algoritmo de distribuição de largura de banda para fornecer uma largura de banda alocada para cada sessão de dados a ser executada ou sendo executada pelos dispositivos de comunicação da rede; em que o algoritmo de distribuição de largura de banda compreende dividir a largura de banda disponível em partes iguais para alocação para cada das sessões de dados que possua um nível de prioridade maior.
[044] Um aspecto da invenção fornece um dispositivo de comunicação que compreende um ou mais processadores configurados para: aplicar um algoritmo de distribuição de largura de banda para fornecer uma largura de banda alocada para cada sessão de dados a ser executada ou em execução pelos dispositivos de comunicação da rede; em que o algoritmo de distribuição de largura de banda compreende dividir a largura de banda disponível em partes iguais para alocação para cada das sessões de dados que possua um nível de prioridade maior, o conteúdo de dados de cada sessão de dados tem uma pluralidade de representações correspondente e em que uma das representações é selecionada para cada sessão de dados de acordo com a parte igual da largura de banda alocada, a representação selecionada sendo a representação que requer a largura de banda maior que é menor do que ou igual à parte da largura de banda alocada.
[045] Em uma modalidade, no caso onde a largura de banda requerida para a representação selecionada é menos do que ou igual à parte da largura de banda alocada, pelo menos parte da largura de banda remanescente é realocada para uma sessão de dados da prioridade maior para a qual a mensagem de informação correspondente sinalizando a sessão de dados foi enviada antes das outras mensagens de informação para sessões de dados da prioridade maior.
[046] Em uma modalidade, no caso onde a largura de banda requerida para a representação selecionada é menor do que ou igual à parte da largura de banda alocada, pelo menos parte da largura de banda remanescente é alocada para outra sessão de dados com base pelo menos em um de: nível de prioridade da sessão de dados, tempo de transmissão de uma mensagem de informação correspondente sinalizando a sessão de dados; e o tempo de início da sessão de dados.
[047] Em uma modalidade, dentro de um determinado nível de prioridade a largura de banda remanescente é alocada com base em pelo menos um de tempo de transmissão de uma mensagem de informação sinalizando a sessão de dados correspondente, e o tempo de início da sessão de dados.
[048] Em uma modalidade, dentro de um determinado nível de prioridade uma parte maior da largura de banda é alocada para pelo menos uma sessão de dados para a qual uma mensagem de informação correspondente sinalizando a sessão de dados foi enviada antes das outras mensagens de informação para outras sessões de dados da mesma prioridade.
[049] Em uma modalidade, dentro de um determinado nível de prioridade a largura de banda correspondente a uma representação do conteúdo da sessão de dados que requer a menor largura de banda é alocada para pelo menos uma sessão de dados.
[050] Em uma modalidade, o método inclui ou o dispositivo é configurado para realocar qualquer largura de banda disponível remanescente para uma sessão de dados no determinado nível de prioridade menor para possibilitar um nível maior de representação com base pelo menos em um do nível de prioridade da sessão de dados, do tempo de transmissão da mensagem de informação correspondente e do tempo de início da sessão de dados.
[051] Em uma modalidade, pelo menos um parâmetro de largura de banda para o algoritmo de distribuição de largura de banda é obtido das mensagens de informação trocadas entre os dispositivos de comunicação da rede e sendo indicativas da largura de banda requerida para uma sessão de dados para serem executadas ou em execução no dispositivo de comunicação do qual a mensagem de informação correspondente é enviada.
[052] Em uma modalidade, as mensagens de informação são trocadas por meio de um dispositivo base central.
[053] Em uma modalidade, o mesmo algoritmo de alocação de largura de banda é usado por todos os dispositivos de comunicação iniciando ou executando uma sessão de dados.
[054] Em uma modalidade, o algoritmo de alocação de largura de banda é determinado de acordo com pelo menos um de um nível de prioridade alocado para cada algoritmo de alocação de largura de banda e o número de dispositivos de comunicação selecionando cada algoritmo de largura de banda.
[055] De acordo com um aspecto da invenção, é fornecido um método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de dispositivos de comunicação na rede, o método compreendendo: aplicar um algoritmo de distribuição de largura de banda para fornecer uma largura de banda alocada para uma ou mais sessões de dados a serem executadas ou sendo executadas por dispositivos de comunicação da rede; em que o algoritmo de distribuição de largura de banda compreende alocar para uma ou mais sessões de dados a largura de banda correspondente a uma representação do conteúdo de dados da respectiva sessão de dados que requer a menor largura de banda.
[056] Um aspecto da invenção fornece um dispositivo de comunicação que compreende um ou mais processadores configurados para: aplicar um algoritmo de distribuição de largura de banda para fornecer uma largura de banda alocada para cada sessão de dados a ser executada ou em execução pelos dispositivos de comunicação da rede; em que o algoritmo de distribuição de largura de banda compreende alocar, para uma ou mais sessões de dados, a largura de banda correspondente a uma representação do conteúdo de dados da respectiva sessão de dados que requer a menor largura de banda.
[057] Em uma modalidade, o método inclui ou o dispositivo está configurado para realocar qualquer largura de banda disponível remanescente para uma sessão de dados, para possibilitar um nível maior de representação, a sessão de dados selecionada com base pelo menos em um do nível de prioridade da sessão de dados, do tempo de transmissão de uma mensagem de informação correspondente sinalizando a sessão de dados e o tempo de início da sessão de dados.
[058] Em uma modalidade, dentro de um determinado nível de prioridade, a largura de banda disponível remanescente é alocada para outras sessões de dados com base pelo menos em um do nível de prioridade da sessão de dados, do tempo de transmissão da mensagem de informação para a sessão de dados correspondente e do tempo de início da sessão de dados.
[059] Em uma modalidade, pelo menos um parâmetro de largura de banda para o algoritmo de distribuição de largura de banda é obtido das mensagens de informação trocadas entre os dispositivos de comunicação da rede sinalizando a sessão de dados correspondente e sendo indicativas da largura de banda requerida para uma sessão de dados a ser executada ou sendo executada no dispositivo de comunicação do qual a mensagem de informação correspondente é enviada.
[060] Alguns processos implementados por elementos da invenção podem ser implementados por computador. Portanto, tais elementos podem tomar a forma de uma modalidade inteiramente em hardware, uma modalidade inteiramente em software (incluindo firmware, software residente, microprocessador-código, etc.) ou uma modalidade que combina aspectos em software e hardware que possam ser geralmente aqui referidos como um “circuito”, “módulo” ou “sistema”. Além disso, tais elementos podem tomar a forma de um produto de programa de computador incorporado em qualquer meio tangível de expressão com código de programa usável por computador incorporado no meio.
[061] Como os elementos da presente invenção podem ser implementados em software, a presente invenção pode ser incorporada como código legível por computador para fornecer para um aparelho programável ou qualquer meio portador adequado. Um meio portador tangível pode compreender um meio de armazenamento tal como um disquete, um CONTEÚDO DE DADOS-ROM, um drive de disco rígido, um dispositivo de fita magnética ou um dispositivo de memória em estado sólido e similar. Um maio portador transiente pode incluir um sinal tal como um sinal elétrico, um sinal eletrônico, um sinal óptico, um sinal acústico ou um sinal eletromagnético, por exemplo, um sinal de microondas ou RF.
BREVE DESCRIÇÃO DOS DESENHOS
[062] As modalidades da invenção serão agora descritas apenas a título de exemplo, e com referência aos desenhos que se seguem, nos quais:
[063] A Figura 1 é um diagrama em bloco esquemático de um sistema de comunicação de dados no qual uma ou mais modalidades da invenção podem ser implementadas;
[064] A Figura 2 é um diagrama em bloco esquemático de um dispositivo de comunicação de acordo com uma modalidade da invenção;
[065] A Figura 3 é um fluxograma das etapas de um método de distribuição de largura de banda de acordo com uma modalidade da invenção.
DESCRIÇÃO DETALHADA
[066] A Figura 1 é um diagrama em bloco esquemático de um sistema de comunicação de dados no qual uma ou mais modalidades da invenção podem ser implementadas.
[067] O sistema de comunicação de dados 1 compreende uma pluralidade de dispositivos de servidor S1, S2, uma pluralidade de dispositivos cliente C1, C2 e C3 e um dispositivo de porta GW.
[068] Os dispositivos cliente C1, C2 e C3 são conectados a uma rede local N1. A rede local N1 pode ser uma Rede de Área Local (LAN), tal como, por exemplo, uma rede sem fio (por exemplo, WiFi 1 802.lla ou b ou g), ou rede Ethernet, ou uma rede mista composta de várias redes diferente. A rede local N1 é conectada a uma rede de Área Ampla (WAN) rede N2 (tal como a Internet) por meio da porta GW.
[069] Cada dispositivo cliente C1 a C3 é configurado para estabelecer uma ou mais sessões de dados (tais como uma sessão de transmissão em fluxo contínuo de taxa fixa, uma sessão de transmissão em fluxo contínuo adaptável (por exemplo, HAS), uma sessão de dados em massa) conectando um ou mais dos servidores remotos S1, S2 por meio da rede WAN N2. Uma sessão de dados pode também ser referida como uma sessão de tráfego, uma sessão de tráfego de dados ou uma sessão. O dispositivo cliente C1, C2, C3 pode ser um dispositivo de comunicação configurado para receber e decodificar um fluxo de bits para suprir dados tais como dados multimídia no dispositivo cliente. Em particular os dispositivo clientes C1 a C3 são adaptados para implementar protocolo MPEG-DASH em uma transmissão em fluxo contínuo adaptável. No exemplo ilustrado, C1 é um computador laptop, C2 é um monitor HD e C3 é um smartphone.
[070] Durante a reprodução de conteúdo, um dispositivo cliente C1, C2 ou C3 pode solicitar pedaços de conteúdo de um servidor S1 ou S2 e pode usar conhecimento das condições de rede N1, suas próprias restrições, e as listas de representações disponíveis do mesmo conteúdo (usualmente o mesmo conteúdo cm diferentes taxas de bit de codificação) para solicitar a apresentação mais apropriada. Uma duração de pedaço pode ser ajustada para alguns segundos, desse modo permitindo que os clientes C1 a C3 comutem de uma representação para outra a cada poucos segundos para adaptar dinamicamente para condições de rede.
[071] A lista de representações disponíveis para um determinado conteúdo está descrita em um arquivo manifesto (MPD, Descrição de Apresentação de Mídia) recuperado pelo dispositivo cliente C1 a C3. Após analisar o MPD o dispositivo cliente pode descobrir as URLs de onde solicitar os pedaços de conteúdo. O MPD pode também possibilitar que o cliente C1 a C3 descubra informação (tal como solicitações de largura de banda) sobre as representações de modo que possa realizar adaptação dinâmica comutando entre todas as representações quando as condições de rede o exigem.
[072] A Figura 2 é um diagrama em bloco que ilustra um dispositivo cliente 100 de acordo com uma modalidade da invenção. O dispositivo cliente 100 pode em algumas modalidades ser um dispositivo de mídia portátil, um telefone móvel, um tablet, um laptop, um HDTV, etc. Deve ser apreciado que o dispositivo cliente 100 pode não compreender todos os elementos para entregar o conteúdo de mídia recebido, mas apenas alguns subelementos para demultiplexação e decodificação do conteúdo de mídia e pode contar apenas com um dispositivo externo para entregar o conteúdo decodificado para o usuário final.
[073] O dispositivo cliente 100 compreende: uma interface LAN (Rede de Área Local) 110 (com ou sem fio, tal como Wi- Fi, Ethernet, etc.) para conectar à rede local N1; um módulo de comunicação 120 compreendendo uma interface de gerenciamento 121 em associação a um barramento de comunicação de gerenciamento implementando um paradigma publicar / subscrever (por exemplo, Serviço de Distribuição de Dados (DDS), Serviço de Mensagem Java (JMS), Qeo, não representado nos desenhos) por meio do que o dispositivo pode enviar mensagens de informação para e receber mensagens de informação de todos os dispositivos C1 a C3 da rede local N1 e da porta GW. A mensagem de informação pode ser, por exemplo, uma mensagem persistente, de modo que possa ser coletada por qualquer dispositivo da rede (mesmo se o dispositivo não estiver conectado à rede N1 no momento do envio). Por exemplo, uma mensagem pode, por exemplo, ser ou coletada por um serviço de fundo funcionando na interface de gerenciamento 121 do dispositivo ou pode ser armazenada pelo barramento de comunicação de gerenciamento como uma mensagem de longa data a ser recuperada pela interface de gerenciamento 121 (por exemplo, periodicamente ou quando necessário). O módulo de comunicação também compreende uma interface de aplicação 122 por meio da qual as mensagens de controle e de dados associadas a uma determinada sessão são enviadas e recebidas pelo dispositivo.
[074] O módulo de comunicação 120 contém pilhas de protocolo para comunicação com os servidores S1, S2. Em particular, o módulo de comunicação 120 compreende uma pilha TCP/IP conforme bem conhecida na técnica. Deve ser apreciado, contudo, que pode ser usado qualquer tipo de rede e/ou dispositivo de comunicação para habilitar os dispositivos C1 a C3 a se comunicarem com os servidores S1, S2.
[075] O dispositivo cliente 100 também compreende memória 150, um controlador de memória 145 e um conjunto de circuitos de processamento 140 compreendendo uma ou mais unidades de processamento (CPU(s)). A uma ou mais unidades de processamento 140 executa vários programas de software e/ou ajustes de instruções armazenadas na memória 150 para realizar várias funções para o dispositivo cliente 100 e para processar dados.
[076] Os componentes de software armazenados a memória incluem um módulo de alocação de largura de banda (ou ajuste de instruções) 151 para alocar largura de banda de acordo com modalidades da invenção. Outros módulos podem ser incluídos tal como um módulo de sistema de operação 152 para controlar tarefas de sistema geral (por exemplo, gerenciamento de energia, gerenciamento de memória) e para facilitar a comunicação entre os vários componentes de hardware e software do dispositivo cliente 100.
[077] Além disso, dependendo do tipo, os dispositivos C1 a C3 podem também compreender um módulo de transmissão em fluxo contínuo adaptável (que seleciona continuamente o pedaço na taxa de bit que melhor combina com as restrições da rede e suas próprias restrições), um reprodutor de vídeo adaptado para decodificar e entregar o conteúdo multimídia, um isolador configurado para isolar os pedaços recebidos do servidor antes de sua transmissão para o reprodutor de vídeo, etc. (os ditos módulos não estando representados na Figura 2).
[078] Um barramento interno B é fornecido para conectar os vários módulos e todos os dispositivos bem conhecidos daqueles versados na técnica para realizar as funcionalidades do dispositivo cliente genérico.
[079] Na Figura 2 será apreciado que os módulos ilustrados correspondem aos módulos funcionais, que podem ou não corresponder às unidades físicas distinguíveis. Por exemplo, uma pluralidade de tais módulos pode ser associada em um único componente ou circuito, ou corresponder às funcionalidades de software. Além disso, um módulo pode ser potencialmente composto de entidades físicas ou funcionalidades de software separadas.
[080] Um módulo funcional pode ser implementado como um circuito de hardware compreendendo, por exemplo, os circuitos VLSI ou arranjos de porta, condutores semicondutores distintos tais como chips lógicos, transições, etc. Um módulo pode ser também implementado em um dispositivo de hardware programável tais como arranjos de porta de campo programável, lógico de arranjo programável, dispositivos lógicos programáveis ou similar. Além disso, os módulos podem ser também implementados como uma combinação de software e um ou mais dispositivos de hardware. Por exemplo, um módulo pode ser incorporado na combinação de um processador que opera um conjunto de dados operacionais. Além disso, um módulo pode ser implementado na combinação de uma comunicação de sinal eletrônico por meio do conjunto de circuitos de transmissão.
[081] Em modalidades da invenção os dispositivos clientes C1, C2 e C3 trocam parâmetros descrevendo suas respectivas sessões de dados. Embora ainda usando um algoritmo de adaptação DASH típico para a representação desejada de conteúdo de dados, cada cliente pode então usar o conhecimento de outras sessões de dados para impedir que ele próprio, em alguns casos, tome muita largura de banda, de modo que uma parcela justa da largura de banda de rede possa ser obtida cooperativamente.
[082] Um método de distribuição de largura de banda disponível na rede N1, de acordo com uma modalidade da invenção, será descrito com referência à Figura 3. O método da Figura 3 pode ser implementado por qualquer um dos dispositivos clientes C1 a C3 para compartilhar a largura de banda disponível na rede N1. Em algumas modalidades da invenção, a quantidade total de largura de banda disponível de N1 a ser compartilhada entre os dispositivos clientes C1 a C3 pode ser sinalizada a partir de um dispositivo central. Por exemplo, o dispositivo de porta GW tem uma boa visão das propriedades reais do link de acesso, e pode também alocar largura de banda para diferentes tipos de tráfego de dados e pode, portanto, quanta largura de banda está disponível para sessões de dados. Em outras modalidades da invenção, os dispositivos clientes C1 a C3 tipicamente estimam a largura de banda geral, por exemplo, monitorando a velocidade na qual recebem um determinado número dos últimos pacotes ou pedaços que solicitaram do servidor.
[083] Na etapa S310 o dispositivo cliente C1 envia uma mensagem de informação para os outros dispositivos clientes C2, C3 na rede N1. A mensagem de informação contém parâmetros indicativos da largura de banda requerida de uma sessão de dados a ser ou iniciada ou já em curso no dispositivo cliente C1. Na etapa S310 o dispositivo cliente C1 também recebe de qualquer um dos outros dispositivos clientes C2 e/ou C3 que pretendam iniciar uma sessões de dados (ou tendo uma sessão em curso) uma mensagem de informação contendo parâmetros indicativos da largura de banda requerida de uma sessão de dados a ser iniciada ou em curso no dispositivo cliente C2 ou C3. Deve ser apreciado que não há nenhuma ordem particular para a recepção ou transmissão das mensagens de largura de banda e outros dispositivos podem transmitir suas respectivas mensagens de informação antes, depois ou em sincronia com a transmissão da mensagem de informação do cliente C1.
[084] Em uma modalidade particular da invenção, sempre que um novo dispositivo cliente para a rede envia sua mensagem de informação, todos os dispositivos clientes que recebem a mesma irão enviar sua mensagem de informação em uma resposta à mesma. Desse modo, todos os dispositivos clientes conhecem todos os dispositivos clientes na rede.
[085] Os parâmetros trocados entre os dispositivos clientes nas mensagens de informação incluem para cada dispositivo cliente uma lista de solicitações de largura de banda que estão relacionadas às representações de conteúdo que estão prontos para entregar, a duração dos seguimentos DASH para essas representações, uma prioridade de serviço (com respeito a outros clientes), e, em alguns casos, sua representação preferida de largura de banda.
[086] Exemplos de parâmetros contidos na mensagem de informação incluem: dados de prioridade representativos de um nível de prioridade ou classificação da sessão de dados correspondente; dados de duração de pedaço representativos do tempo de duração de um segmento de dados da sessão de dados correspondente; e dados de preferência de largura de banda representativos de uma largura de banda preferida da sessão de dados correspondente.
[087] A troca de informação de solicitação de largura de banda entre os dispositivos clientes habilita os dispositivos clientes a terem uma visão de outras sessões de dados participantes (e seu desempenho em termos de solicitações de largura de banda e prioridade de serviço).
[088] Para enviar mensagens de informação de um dispositivo cliente, por exemplo, C1 da rede N1 para outros clientes, por exemplo, C2, C3 da rede N1 no caso onde os dispositivos clientes inicialmente não se conhecem, podem ser usados os dois modos de troca que se seguem: ■ sistema de mensagem de multidifusão
[089] Nesse modo de troca, todos os dispositivos clientes enviam regularmente sua mensagem de informação para um endereço de multidifusão de IP fixo e todos os dispositivos clientes listados no mesmo endereço de multidifusão de IP fixo. Ao fazê-lo, os dispositivos clientes podem a qualquer momento descobrir a presença de todos os outros dispositivos clientes que também implementam os algoritmos de distribuição de largura de banda e podem receber suas preferências de informação de serviço. O endereço de multidifusão de IP pode ser enviado no dispositivo cliente ou pode ser configurado pelo usuário (usando a mesma multidifusão em todos os dispositivos). A mensagem de informação é enviada regularmente por cada dispositivo cliente na comunicação de multidifusão para sinalizar para outros dispositivos clientes que ainda estão executando e no caso de um novo dispositivo cliente ter se juntado à rede (outros dispositivos clientes não possuem nenhum meio de saber disso). Em outra modalidade, um novo dispositivo cliente na rede sinaliza sua chegada ao endereço de multidifusão e todos os outros dispositivos clientes na rede podem então enviar sua mensagem de informação diretamente para o novo dispositivo cliente em unicast ou no canal de comunicação de multidifusão. ■ recolha e redistribuição de mensagem centralizada
[090] Nesse modo de troca, é usado um dispositivo central para trocar as mensagens de informação. Por exemplo, em um ambiente de rede doméstica tradicional, todos os dispositivos executando um cliente DASH compartilham a mesma porta. Nessa modalidade de troca de mensagem de informação, todos os dispositivos clientes c1 a C3 enviam sua mensagem de informação para a porta GW e a porta GW redistribui a informação de cada dispositivo para todos os outros dispositivos usando comunicações para cada dispositivo. A vantagem desse modo de coleta de mensagem centralizado é que não requer que os dispositivos clientes enviem regularmente sua mensagem de informação em um canal de comunicação de multidifusão e como a porta GW sabe a qualquer momento sobre o funcionamento de todos os clientes DASH pode facilmente atualizar todos os clientes DASH no caso em que um novo cliente chega ou um cliente DASH saiu. Os inconvenientes desse modo é que requer um mecanismo extra na porta doméstica enquanto o outro modo requer apenas mecanismo extra no próprio dispositivo cliente.
[091] Na etapa S320 o dispositivo cliente C1 aplica um algoritmo de alocação de largura de banda ao algoritmo para fornecer largura de banda alocada da largura de banda disponível de N1 para a sessão de dados do dispositivo cliente C1. O algoritmo de distribuição de largura de banda usa os parâmetros de largura de banda contidos nas mensagens de informação entre os dispositivos clientes.
[092] Os dispositivos clientes da rede N1, que têm uma sessão de dados cada, aplicam um algoritmo de alocação de largura de banda comum para determinar uma largura de banda alocada da largura de banda disponível para a sessão de dados do cliente particular e as sessões de dados de outros dispositivos clientes participantes. Aplicando um algoritmo comum conformando a um conjunto comum de regras as computações dos diferentes clientes podem fornecer resultados consistentes. As sessões de dados DASH são classificadas por meio de critérios comuns descritos nos algoritmos de largura de banda em conformidade com as mis da presente invenção e cada dispositivo cliente estima a largura de banda alocada para outras sessões de dados de classificação maior na lista antes de poderem computar a largura de banda para usar para sua própria sessão de dados.
[093] Em uma modalidade da invenção um ou mais dos algoritmos de largura de banda podem estar disponíveis para serem selecionados:
[094] Um primeiro algoritmo de distribuição de largura de banda aqui referido como “compartilhamento uniforme entre os serviços de prioridade maior” o algoritmo visa compartilhar de maneira uniforme a largura de banda entre os dispositivos clientes que possuem sessões de dados com a prioridade de serviço maior. O cliente com prioridade de serviço maior compartilha a maior quantidade possível de largura de banda disponível de acordo com as exigências de largura de banda de representação das sessões de dados. A largura de banda remanescente, se houver, é então compartilhada de maneira uniforme entre as sessões de dados com a prioridade de serviço maior - por exemplo, com base no tempo de envio da mensagem de informação para a sessão de dados, e/ou no na hora do início da sessões de dados. A largura de banda remanescente se houver, (novamente), é então compartilhada entre os clientes com a segunda prioridade de serviço maior da mesma maneira que foi feito para os clientes com a prioridade de serviço maior. E assim por diante, até que não haja nenhuma largura de banda disponível.
[095] Um segundo algoritmo de distribuição de largura de banda aqui referido como “o vencedor leva tudo” visa na determinada largura de banda máxima possível para a sessão de dados com a prioridade de serviço maior com base no primeiro a chegar / primeiro a servir. O primeiro a chegar se refere a sessões de dados de classificação maior para a qual a seção de informação correspondente foi enviada anteriormente. A largura de banda remanescente, se houver, é então compartilhada entre as sessões de dados com a segunda prioridade de serviço maior. E assim por diante, até que não haja largura de banda disponível.
[096] Um terceiro algoritmo de distribuição de largura de banda aqui referido como ”todos são servidos” o algoritmo visa como assegurar que todas as sessões de dados sejam alocadas sua largura de banda mínima requerida com as sessões de dados de prioridade de serviço maior sendo servidas primeiro. A largura de banda remanescente, se houver, é usada para as sessões de dados anteriormente alocadas sua largura de banda máxima requerida para representações com larguras de banda maiores. Os serviços de prioridade de serviço maior são servidos primeiro. E assim por diante, até que não haja nenhuma largura de banda disponível.
[097] Em algumas modalidades da invenção, as mensagens de informação trocadas podem conter dados de distribuição de algoritmo de largura de banda representativos de um algoritmo de distribuição de largura de banda selecionada para ser usada para fornecer a largura de banda alocada.
[098] A Tabela 1 fornece um exemplo de como uma mensagem de informação pode ser gerada a partir de informação / atributos do MPD acessado no momento por um cliente DAS. ( “tipo”: “objeto” “propriedades”:{ “id”: { “tipo”: “cadeia”, “descrição”: “Identificador único da sessão. Pode ser o endereço IP do dispositivo, seguido de um identificador de sessão único no dispositivo.” } “representação de Largura de bandas”: { “tipo”: “arranjo”, “descrição”: “Lista de largura de banda necessária para representações disponíveis para tempo de reprodução atual. Pedido por valores crescentes”, “itens”: { “tipo”: “inteiro”, “descrição”: “O atributo @largura de banda de uma informação de representação recuperada de MPD). Observe que o cliente pode também adicionar alguma margem de largura de banda extra para melhor acomodar com flutuações futuras.” } }, “duração de segmento”: { “tipo”: “inteiro”, “descrição”: “A duração do segmento(s) de carga atual(s), em milissegundos (informação recuperada de MPD).” }, “largura de banda preferida do cliente”: { “tipo”: “inteiro”, “descrição”: “A @largura de banda para a representação do cliente tentaria solicitar se reproduz isoladamente (informação recuperada do MPD).”, }, “prioridade de serviço”:{ “tipo”: “inteiro”, “descrição”: “Essa representa a prioridade de uma sessão streaming. A alocação da largura de banda é fornecida primeiro para os serviços de prioridade maior.”, “mínima”: 1, “máxima”: 4 } “distribuição de Largura de banda preferida No Esquema”: 1 “tipo”: “inteiro”, “descrição”: “Essa representa o algoritmo de distribuição de largura de banda preferido para um cliente DASH.”, } } }
Tabela 1: Mensagem de informação de cliente DASH
[099] Em uma possível modalidade da invenção, os valores de Prioridade de serviço na Tabela 1 se referem a: 1. Serviço Premium (por exemplo, distribuição UHD, distribuição HD para aparelhos de TV com tela grande,...) 2. Serviço de Alta Qualidade (por exemplo, distribuição HD para telas de tamanho médio,...) 3. Serviço de Qualidade Normal (por exemplo, distribuição HD para dispositivos móveis,...) 4. Serviço de Baixa Qualidade (por exemplo, conteúdo de baixa qualidade em dispositivos móveis,...). 100.
[0100] O parâmetro do “Esquema de Distribuição de largura de banda preferida” na Tabela 1 identifica o algoritmo usado para computar como a largura de banda é compartilhada entre os clientes.
[0101] Em algumas modalidades da invenção, os dispositivos de comunicação podem adicionar alguma margem de largura de banda extra às larguras de banda descritas no MPD para representações particulares do conteúdo de dados da sessão de dados. Por exemplo, se o MPD descreve três representações com as larguras de banda seguintes (8Mbit/s. 6 Mbit/s & 2 Mbit/s) a tabela de larguras de banda preferidas escolhidas pelo cliente (e enviadas para outros cliente na mensagem de informação) poderia ser 6,5 Mbit/s & 2,2 Mbit/s).
[0102] Os algoritmos de distribuição de largura de banda de acordo com modalidades da invenção serão descritos em maior detalhe no que se segue.
[0103] O primeiro algoritmo de distribuição de largura de banda, de acordo com uma modalidade da invenção, aqui referido como “compartilhamento alinhado entre os serviços de prioridade maior” ajusta para compartilhar a largura de banda entre as sessões de dados da prioridade maior para fornecer a qualidade maior possível para as sessões de prioridade maior com base na largura de banda disponível. Algumas sessões de dados são impedidas de obter largura de banda suficiente para executar, se não houver largura de banda suficiente disponível para acomodar as sessões de dados de todos os dispositivos clientes. O algoritmo de distribuição de largura de banda é realizado no dispositivo cliente.
[0104] As sessões de dados são classificadas em ordem de prioridade usando critérios comuns. Um dispositivo cliente computa a largura de banda alocada para qualquer uma das sessões classificada maior na lista antes de ser capaz de computar a largura de banda para usar para sua própria sessão de dados.
[0105] Para a(s) primeira(s) sessão(s) de dados com prioridade de serviço maior, a largura de banda a ser alocada para uma sessão de dados é computada como um compartilhamento alinhado da largura de banda total disponível. Então, para as sessões de dados remanescentes, das prioridades de serviço altas para as prioridades de serviço baixas, a computação faz um compartilhamento da largura de banda remanescente (subtraindo a largura de banda real alocada para sessões anteriores da largura de banda total disponível).
[0106] Dentro de cada nível de prioridade, se não houver largura de banda remanescente suficiente disponível, as sessões de dados são selecionadas dentro de uma determinada classificação de prioridade de acordo com os temos de início das sessões de dados - sessões de dados anteriores tendo largura de banda alocada antes das sessões de dados posteriores.
[0107] Em um determinado nível de prioridade, os dispositivos clientes tentam tomar um compartilhamento “igual” da largura de banda disponível. Portanto, para cada sessão de dados a largura de banda disponível é dividida pelo número de sessões no mesmo nível de prioridade. Como cada sessão de dados é compelida a um conjunto limitado de representações do conteúdo de dados, os clientes escolhem uma representação que tenha uma largura de banda logo abaixo do compartilhamento computado da largura de banda.
[0108] Pode ser observado que os clientes de uma prioridade menor pode apenas ser largura de banda alocada quando os processos deixam alguma largura de banda não usada após sessões de prioridade maior terem sido servidas.
[0109] No caso ode um novo dispositivo cliente tendo uma sessão de dados com prioridade maior une a rede das sessões de dados existentes são prováveis a menor largura de banda realocada se não houver largura de banda suficiente para acomodar a sessão de dados dos novos dispositivos clientes. Em alguns casos, uma sessão de dados existente pode ter sua alocação removida em favor de uma sessão de dados de prioridade maior.
[0110] Como o compartilhamento entre as sessões de dados do mesmo no é feito de forma igual (por exemplo, no caso onde dois dispositivos clientes possuam sessões de dados no nível de prioridade maior cada das duas sessões de dados é alocada metade da largura de banda total) mesmo quando as necessidades largura de banda do cliente são desiguais, é possível que após a alocação inicial da largura de banda ter sido feita, alguma largura de banda ainda está disponível. Por exemplo, um dispositivo cliente pode ser inicialmente alocado uma largura de banda de 10MB/s. A melhor representação do seu conteúdo de dados para a sessão de dados que pode ser acomodada em uma largura de banda de 10Mb/s isto é, a maior solicitação de largura de banda menor do que ou igual a 10Mb/s é 8Mb/S. Os 2Mb/s remanescentes da largura de banda podem então ser realocados para outra sessão de dados. Nesse caso, toda largura de banda remanescente é distribuída entre as sessões de dados de prioridade maior das sessões de dados remanescentes (com base em primeiro a chegar primeiro a servir para sessões de dados da mesma prioridade de serviço) mesmo se eventualmente significar que alguns clientes obteriam mais do que um compartilhamento uniforme da largura de banda dentro de uma determinada classificação de prioridade. Quando a largura de banda remanescente foi realocada para as sessões de prioridade maior, qualquer largura de banda remanescente adicional pode ser alocada para sessões de dados de menor prioridade.
[0111] A vantagem desse modo de alocação de largura de banda é que para o dispositivo cliente com sessões de dados nos níveis de serviço de prioridade maior a sessões de dados é provável que seja executada com a qualidade maior possível compartilhada entre todas as sessões de prioridade maior (nenhuma sessão de prioridade menor poderia realmente roubar largura de banda das sessões de prioridade maior). A sessões de dados pode ser executada em sua qualidade maior embora o compartilhamento da largura de banda alocada seja menor do que a largura de banda requerida para a representação de melhor qualidade. Os clientes de serviço de prioridade menor receberiam largura de banda em um modo de melhor esforço. Provavelmente só haveria largura de banda suficiente, se alguma, para as sessões de prioridade menor que habilitariam as mesmas a executar uma representação de qualidade menor no conteúdo de dados.
[0112] Um exemplo da lógica para o primeiro modo de alocação de largura de banda realizada no dispositivo cliente está indicado na Tabela 2. // cliente DASH na_recepção (Descrição de sessão) { se Descrição de sessão.id não em todas as sessões então // o recém-chegado precisa conhecer nossa informação enviar_parâmetro (todas as sessões[minha_sessão_id]) // Essa sessão é nova, observe seu tempo de início tempos_início_sessão[descrição de sessão id] = agora () e se // armazenar informação de sessão para uso futuro Todas_sessões [descrição de sessão id] = Descrição de sessão } // Uso de informação de sessão no algoritmo de adaptação, para todos colaboradores // clientes selecionar_representação () { // etapa 1: executar algoritmo como se o cliente estivesse sozinho representação_escolhida - computar representação_com_algoritomo_normal () todas_sessões [minha_sessão_id] . Largura de banda preferida do Cliente = representação_escolhida.obter_lb() se algo_mudou_na_minha_sessão () então enviar_parâmetro (todas as sessões [minha_sessão_id]) e se // etapa 2: executar parte cooperativa Largura de banda_remanescente = Capacidade de ligação para p em 4...1 // escanear prioridades em ordem decrescente fazer lista_sessão = obter_sessão_com_prioridade (p) listar_sessão . de acordo_com_classe_contrária_para_tempos_de início() contar = lista_de sessão . extensão para sessão na lista_de sessão fazer alocada = sessão.Largura de banda preferida pelo cliente i = sessão.representação de Larguras de banda.índice_de (alocadas) // procurar uma representação que se ajuste a um compartilhamento distribuído uniformemente. embora alocado >largura de banda _remanescente / contar e i >0 fazer i -= 1 alocado = sessão.representação de Larguras de banda [i] fim embora se alocado > largura de banda_remanescente então // nenhuma representação para compartilhamento de largura de banda disponível sessão.alocada_índice = -1 se não largura de banda_remanescente -= alocada sessão.allocada_índice = i fim se contar -= 1 fim para // Agora todas as sessões da mesma prioridade p tentaram compartilhar uniformemente a // largura de banda. A largura de banda remanescente será agora compartilhada entre // clientes com prioridade p com base no primeiro a chegar / primeiro a servir. Lista_de sessão_ classificada_de acordo_com_tempos_ de início() // favorecer sessões mais antigas aperfeiçoamento_feito = Verdadeiro enquanto aperfeiçoamento_feito e largura de banda_remanescente > 0 fazer aperfeiçoamento_feito = Falso para sessão na lista_de sessão fazer se sessão.alocada_índice < sessão.representação larguras de banda.extensão - 1 // ainda não máxima então próxima_taxa de bit = sessão.representação de larguras de banda{sessão.alocada_índice +1] se sessão.alocada_índice == -1 então taxa de bit_atual = 0 caso contrário taxa de bit_atual = sessão. representação de larguras de banda[sessão.alocada_índice] fim se se (a próxima_taxa de bit = taxa de bit_atual) < largura de banda_remanescente então // essa sessão pode obter uma largura de banda com mais taxa de bit sessão.alocada_índice += 1 largura de banda_remanescente -= taxa de bit_seguinte - taxa de bit_atual aperfeiçoamento_feito = Verdadeiro fim se fim se fim para fim enquanto fim para retornar obter_representação_para_nível(todas_as sessões[minha_sessão_id].alocada_índice) }
Tabela 2: Receber lado lógico para modo de algoritmo de largura de banda 1
[0113] O segundo algoritmo de distribuição de largura de banda, de acordo com uma modalidade da invenção, aqui referido como “o vencedor leva tudo” visa fornecer a qualidade maior possível para sessões de prioridade alta, com base no primeiro a chegar primeiro a ser servido. O primeiro dispositivo cliente para enviar sua primeira mensagem de informação, sinalizando a possível ordem dos dispositivos clientes na sua presença de rede, irá receber a largura de banda máxima requerida para a sessão de dados que deseja iniciar. A largura de banda máxima requerida corresponde à largura de banda requerida para a representação de melhor qualidade do conteúdo de dados da sessão de dados com respeito a outras representações do mesmo conteúdo, que é menor do que ou igual à apresentação de largura de banda disponível.
[0114] Os dispositivos clientes que possuem sessões de dados de uma prioridade menor pode apenas receber largura de banda quando o processo de distribuição de largura de banda deixa parte de largura de banda não usada após a alocação para todas as sessões de prioridade maior tiver sido realizado. Do mesmo modo, se um cliente de serviço de prioridade maior enviar uma mensagem de informação após um dispositivo cliente com uma sessão de dados da mesma prioridade alta já tiver sido alocada a maior parte da largura de banda, o ultimo cliente a chegar é improvável que receba a solicitação de largura de banda máxima para sua sessão de dados (nenhuma largura de banda será levada do primeiro cliente a chegar).
[0115] A vantagem desse modo é que as sessões de dados com prioridade maior de dispositivos clientes irão sempre receber sua qualidade máxima possível com base no primeiro a chegar primeiro a ser servido. Os dispositivos clientes com sessões de dados de prioridade maior realizando alocação de largura de banda após não ser deixada largura de banda suficiente para os mesmos ou clientes de serviço com prioridade menor receberão largura de banda de acordo com um modo de melhor esforço.
[0116] Um exemplo da lógica para o segundo modo de alocação de largura de banda realizado no dispositivo cliente está estabelecido na Tabela 3. // cliente DASH na_recepção (Descrição de sessão) { se Descrição de sessão.id não em todas as sessões então // O recém-chegado precisa conhecer nossa informação enviar_parâmetro (todas as sessões[minha_sessão_id]) // Essa sessão é nova, observe seu tempo de início tempos_início_sessão[descrição de sessão id] = agora () e se // armazenar informação de sessão para uso futuro Todas_sessões [descrição de sessão id] = Descrição de sessão } // Uso de informação de sessão no algoritmo de adaptação, // para todos os clientes colaboradores selecionar_representação () { // etapa 1: executar algoritmo como se o cliente estivesse sozinho representação_escolhida=computar_representação_com_algoritmo_normal( ) todas_as sessões(minha_sessão_id).Largura de banda preferida por cliente- representação_escolhida.obter_lb() se alguma coisa_mudou_na_minha_sessão() então enviar_parâmetro (todas as sessões[minha_sessão_id]) fim se // etapa 2: fornecer largura de banda máxima para o maior número de clientes, iniciar com aqueles de prioridade maior. largura de banda-remanescente = Capacidade de ligação para p em 4...1 // loop nas prioridades de serviço em ordem decrescente fazer lista_de sessão = obter_sessões_com_prioridade (p) selecionar_lista_de sessão_de acordo_com_tempos_ de início () para sessão na lista_de sessão fazer se largura de banda_remanescente > sessão.Largura de banda preferida por cliente então // há largura de banda suficiente para representação máxima de sessão.alocada_índice = sessão.Larguras de banda.índice_de (sessão.Largura de banda preferida por cliente) // representação escolhida é preferida largura de banda_remanescente -= sessão.Largura de banda preferida por cliente do contrário sessão.alocada_índice - = // largura de banda insuficiente para representação preferida fim se fim para fim para // nesse ponto, é fornecida largura de banda suficiente, todas as sessões receberam // sua representação preferida, começando com sessões de serviço // de alta prioridade e começando com sessões anteriores dentro de cada sessão // de prioridade. Se a largura de banda total não for suficiente, as sessões de prioridade maior (e todas as anteriores dentro da mesma prioridade de serviço) são servidas primeiro. // etapa 3: distribuir largura de banda remanescente (até que seja exaurida entre todos os clientes, começando com aquelas de prioridade maior aperfeiçoamento_feito = Verdadeiro embora largura de banda_remanescente > 0 e aperfeiçoamento feito fazer aperfeiçoamento_feito = Falso para p em 4...1 // loop nas prioridades de serviço em ordem decrescente fazer lista_de sessão = obter_sessões_com_prioridade (p) classificar_lista_de sessão_de acordo_com_tempos_de_início() para sessão na lista_de sessão fazer 1. = sessão.alocada_índice se i < sessão.representação de larguras de banda.extensão - 1 // ainda não atualização_de largura de banda máxima = sessão.reprodução de larguras de banda [i+1] - sessão.representação de Larguras de banda[i] se largura de banda_remanescente > atualização_de largura de banda então// há largura de banda suficiente para // atualizar para próxima representação Aperfeiçoamento feito = Verdade sessão_alocada_índice +=1 largura de banda_remanescente -= atualização_largura de banda fim se fim se fim para fim para fim enquanto retorna obter_representação_para_nível (todas_as sessões[minha_sessão_id].alocadas_índice) } Tabela 3: Lado receptor lógico para modo de alocação de largura de banda 2
[0117] O terceiro algoritmo de distribuição de largura de banda, de acordo com uma modalidade da invenção, aqui referido como “todos são servidos” se propõe a fornecer largura de banda para todas as sessões de dados dos dispositivos clientes, desde que seja largura de banda suficiente, fornecendo largura de banda suficiente para executar sua representação de largura de banda mínima requerida para a sessão de dados isto é, a largura de banda correspondente à representação que requer a menor largura de banda comparada a outras representações. Se não houver largura de banda suficiente para servir todas as sessões de dados dos dispositivos clientes, é tomada uma decisão priorizando sessões de dados de acordo com prioridade de serviço e então com base no primeiro a chegar primeiro a ser servido entre os clientes com o mesmo nível de prioridade.
[0118] Qualquer largura de banda remanescente é então distribuída entre as sessões de dados dos dispositivos clientes com base na prioridade de serviço no modo primeiro a chegar primeiro a ser servido (com base no tempo de transmissão da respectiva mensagem de informação) de modo que as sessões de dados de prioridade maior possam ter representações de melhor qualidade do que a representação mínima de largura de banda do conteúdo de dados.
[0119] A vantagem desse modo é que, desde que haja largura de banda suficiente para todos os clientes, todos os clientes são capazes de executar uma representação do seu conteúdo de dados. Os clientes com serviço de prioridade maior são prováveis que tenham a oportunidade de executar uma representação fornecendo uma melhor qualidade do que sua representação de largura de banda mínima disponível.
[0120] Um exemplo da lógica para o terceiro modo de alocação de largura de banda executada no dispositivo cliente está estabelecido na Tabela 4. // cliente DASH na_recepção (Descrição de sessão) { se Descrição de sessão.id não em todas as sessões então // O recém-chegado precisa conhecer nossa informação enviar_parâmetro (todas as sessões[minha_sessão_id]) // Essa sessão é nova, observe seu tempo de início tempos_início_sessão[descrição de sessão id] = agora () e se // armazenar informação de sessão para uso futuro Todas_sessões [descrição de sessão id] = Descrição de sessão } // Uso de informação de sessão no algoritmo de adaptação, // para todos os clientes colaboradores selecionar_representação () { // etapa 1: executar algoritmo como se o cliente estivesse sozinho representaçãp_escolhida-computar_representação_com_algoritmo_normal() todas_as sessões[minha sessão_id] . Largura de banda preferida por cliente- representação_escolhida.obter)largura de banda() se alguma coisa mudou_na_minha_sessão() então enviar_parâmetro(todas_as sessões[minha sessão_id]) e se // etapa 2: fornecer largura de banda mínima para um número máximo de clientes, começando // com aqueles com prioridade maior. largura de banda_remanescente - Capacidade de ligação para p em 4...1//loop nas prioridades de serviço em ordem decrescente fazer lista_de sessão = obter_sessões_com_prioridade(p) classificar.lista_de sessão_de acordo_com_tempos_de início() para sessão na lista_de sessão fazer se largura de banda_remanescente > sessão.representação de largura de banda [0] então sessão.alocada_índice = 0 // representação escolhida é a primeira // (largura de banda mínima) largura de banda_remanescente -= sessão.representação de Larguras de banda[0] caso contrário sessão.alocada_índice = -1 // nenhuma representação fim se fim para fim para // nesse ponto, desde que seja largura de banda suficiente, todas as sessões foram // alocadas sua largura de banda mínima, começando com o serviço de prioridade maior // sessões e começando com sessões mais antigas dentro de cada sessão de prioridade. // Se a largura de banda total não for suficiente, as sessões de prioridade maior (e as sessões mais antigas // aquelas dentro da mesma prioridade de serviço) são servidas primeiro. // etapa 3: a distribuição de largura de banda remanescente (até que seja exaurida) entre todos os aperfeiçoamentos feitos = Verdade embora a largura de banda_remanescente >0 e aperfeiçoamento_feito fazer aperfeiçoamento_feito = Falso para p em 4...1 // loop nas prioridades de serviço na ordem decrescente fazer classificação.de lista_de sessão_de acordo_com_tempos_de início() para sessão na lista_de sessão fazer i= sessão.alocada_índice se i < sessão.representação de Largura de banda_extensão - 1 // ainda não atualizar_largura de banda máxima = sessão.reprodução de Larguras de banda {i+1) - sessão.representação de Largura de banda [i] se a largura de banda_remanescente . atualização_de largura de banda então // há largura de banda suficiente para // atualizar para a próxima representação Aperfeiçoamento_feito = Verdade sessão.alocada_indice += 1 fim se fim se fim para fim para e enquanto retornar obter_representação_para_nível (todas_as sessões[minha_sessão_id].alocadas_índice) }
Tabela 4: Lado receptor lógico para módulo de alocação de largura de banda
[0121] Todos os dispositivos clientes informam os outros dispositivos clientes sobre seu esquema de distribuição de largura de banda preferido. Os dados indicativos do algoritmo de distribuição de largura de banda podem ser incluídos na mensagem de informação transmitida de um dispositivo cliente para os outros dispositivos clientes da rede N1.
[0122] Em alguns casos pode haver um conflito entre a escolha de algoritmo de largura de banda.
[0123] Isso pode ser solucionado de maneiras diferentes tais como: ■ é selecionado o algoritmo de distribuição de largura de banda indicado pela maioria nas mensagens de informação ■ todos os dispositivos clientes estão cientes de uma lista priorizada comum dos esquemas de distribuição de largura de banda e ganha o de prioridade maior ■ é selecionado o algoritmo de distribuição de largura de banda indicado na primeira mensagem de informação transmitida
[0124] Os três modos diferentes de distribuição de largura de banda serão ilustrados nos exemplos que se seguem.
[0125] Se considerarmos dois dispositivos clientes C1 e C2 tendo próximas sessões de dados com as preferências que se seguem: Cliente C1 envia a mensagem de informação correspondente para sua sessões de dados antes do cliente C2: representação C1.2 = 10 Mbit/s representação C1.1 = 8 Mbit/s representação C1.0 = 4 Mbit/s prioridade_serviço = Premium Cliente C2: representação C2.1 = 6 Mbit/s representação C2.0 = 2 Mbit/s prioridade_serviço = Premium
[0126] Usando os três modos diferentes de alocação de largura de banda com uma largura de banda total disponível de 14 Mbit/s na rede N1, a distribuição da largura de banda seria como se segue: ■ Modo 1 - compartilhamento uniforme: Todas as sessões de dados são de prioridade maior de modo que a largura de banda disponível de 14Mbit/s é inicialmente distribuída de maneira uniforme entre as duas sessões de dados de C1 e C2, isto é, 7Mbit/s cada.
[0127] Para o cliente C1 a maior exigência de largura de banda que é menor do que ou igual a 7Mbit/s correspondendo à representação C1.0 - o cliente 1 é, portanto, inicialmente alocado uma largura de banda de 4Mbit/s.
[0128] Para o cliente C2 a maior exigência de largura de banda que é menor do que ou igual a 7Mbit/s é 6 Mbit/s correspondendo à representação C2.1 - o cliente C1 é, portanto, inicialmente alocado uma largura de banda de 6Mbit/s, correspondendo a sua representação de melhor qualidade.
[0129] 4Mbit/s da largura de banda disponível permanece. A mesma é alocada para o cliente C1 porque o cliente C1 enviou sua mensagem de informação antes do cliente C2. Isso habilita o aumento da largura de banda alocada para o cliente C1 para 8Mbit/s correspondendo a representação de melhor qualidade C1.1.
[0130] Em suma, a alocação da largura de banda disponível é como se segue: Cliente C1 => C1.1 (BMbit/s); Cliente C2 => C2.1 (6Mbit/s); largura de banda remanescente = 0 Mbit/s; Nenhuma largura de banda de sobra para alocar para sessões de dados de nível de prioridade mais baio ou para oferecer para outros dispositivos clientes se unindo à rede posteriormente. ■ Modo 2 = O vencedor leva tudo: Cliente C1 é alocado 10Mbit/s correspondendo a sua exigência de largura de banda máxima para sua representação de melhor qualidade C1.2 porque foi o primeiro a enviar a mensagem de informação. 4Mbit/s de largura de banda permanecem para serem alocados para o cliente C2. A exigência de largura de banda menor do que ou igual a 4Mbit/s é 2 Mbit/s correspondendo à representação de qualidade menor C2.0.
[0131] Em suma, a alocação da largura de banda disponível é como se segue: Cliente C1 => C1.2; Cliente C2 => C2.0; largura de banda remanescente = 2Mbit/s. A largura de banda restante a ser alocada para as sessões de dados de nível de prioridade menor de outros dispositivos clientes de acordo com qualquer mofo de alocação de largura de banda ou de acordo com tempo de início de sessões de dados. ■ Modo 3 - Todos são servidos: Alocar a exigência de largura de banda menor de cada cliente C1 e C2, respectivamente 4Mbi/s e 2 Mbit/s (C2.0) deixa uma largura de banda remanescente de 8Mbit/s habilitando ambas as sessões de dados a subirem para uma representação de melhor qualidade pelo aumento da alocação de largura de banda- C1.1 (8Mbit/s) para o cliente C1 e - C2.1 (6Mbit/s).
[0132] Em suma, a alocação da largura de banda disponível é como se segue: Cliente C1 => C1.1; Cliente C2 => C2.1; largura de banda remanescente = 0Mbit/s
[0133] Se então um terceiro elemento se unir à rede para uma sessão de dados com as preferências que se seguem: Cliente C3: representação C3.2 = 5 Mbit/s representação C3.1 = 3 Mbit/s representação C3.0 = 2 Mbit/s prioridade_de serviço = Premium
[0134] Usando os três modos diferentes de alocação de largura de banda, com uma largura de banda total de 14 Mbit/s, a distribuição de largura de banda seria como se segue: ■ Modo 1: Compartilhamento uniforme: Todas as sessões de dados são de prioridade maior de modo que a largura de banda disponível de 14Mbit/s é inicialmente distribuída de maneira uniforme entre três sessões de dados de C1, C2 e C3, isto é, 4.66 Mbit/s cada. O cliente C1 é, portanto, alocado 4 Mbit/s (serviço C1.0) porque essa é a única representação com uma largura de banda menor do que 4.66 Mbit/s O cliente C2 é, portanto, alocado 2 Mbit/s (serviço C2.0) porque essa é a única representação com uma largura de banda menor do que 4.66 Mbit/s O cliente C3 é, portanto, alocado 3 Mbit/s (serviço C3.1) porque essa é a melhor representação com uma largura de banda menor do que 4.66 Mbit/s 5 Mbit/s de largura de banda permanecem. O cliente C1 que era o primeiro na rede é alocado 4Mbit/s da largura de banda remanescente em uma base primeiro a chegar primeiro a ser servido porque o cliente C1 foi a primeiro a enviar uma mensagem de informação para sua sessões de dados que o habilitou a ter uma representação C1.1 melhorada em um largura de banda de 8Mbit/s Em suma, a alocação da largura de banda disponível é como se segue: Cliente C1 => C1.1 (8Mbit/s); Cliente C2 => C2.0 (2Mbit/s); Cliente C3 =>C3.1 (3Mbit/s); largura de banda remanescente = 1 Mbit/s ■ Modo 2: O vencedor leva tudo: Cliente C1 é alocado 10Mbit/s correspondendo a sua exigência de largura de banda máxima para sua representação de melhor qualidade C1.2 porque foi o primeiro a enviar a mensagem de informação. 4Mbit/s de largura de banda permanecem para serem compartilhados entre as sessões de dados dos dispositivos clientes C2 e C3. A sessões de dados do dispositivo cliente C2 é alocada uma largura de banda de 2Mbit/s para uma representação de C2.0 embora o dispositivo cliente C3 seja também alocado uma largura de banda de 2Mbit/s para uma representação de C2.0.
[0135] Em suma, a alocação da largura de banda disponível é como se segue: Cliente C1 => C1.2; Cliente C2 => C2.0; Cliente C3 => C3.0; largura de banda remanescente = 0 Mbit/s ■ Modo 3 - Todos são servidos: Alocando a exigência de largura de banda menor de cada cliente C1, C2 e C3, respectivamente, 4Mbit/s (C1.0) 2 Mbit/s (C2.0) e 2Mbit/s (C3.0) deixa uma largura de banda remanescente de 6Mbit/s que habilita as sessões de dados dos dispositivos clientes C1 e C3 a subirem para uma representação de melhor qualidade aumentando a alocação de largura de banda - C1.1 (8Mbit/s) para o cliente C1 e - C3,1 (3Mbit/s) para o dispositivo cliente C3 Cliente C1 => C1.1 (8Mbit/s); Cliente C2 => C2.0 (2 Mbit/s); Cliente C3 =. C3.1 (3Mbit/s) largura de banda remanescente = 1 Mbit/s
[0136] Na etapa S330, a largura de banda é alocada para a sessão de dados habilitando a sessão de dados a ser executada na etapa S340.
[0137] As modalidades da presente invenção fornecem um mecanismo de mensagem que permite que os clientes, tais como clientes DSH em uma rede descubram sobre sessões de dados próximas ou em curso de outros clientes na rede e suas exigências de conteúdo preferido. Desse modo, pode ser alcançado um compartilhamento mais justo de largura de banda disponível habilitando os clientes a se beneficiarem de um serviço melhor do que se tivessem que lutar sobre a mesma largura de banda de rede juntos. As modalidades da invenção podem ser aplicadas antes das sessões de dados iminentes serem iniciadas, enquanto as sessões de dados estão em curso, por exemplo, habilitando a largura de banda ser realocada para as sessões de dados em curso quando uma nova sessão de dados inicia na rede ou quando uma sessão de dados em curso na rede termina.
[0138] Apesar de a presente invenção ter sido descrita acima com referência a modalidades específicas, a presente invenção não se limita às modalidades específicas, e serão claras para aquele versado na técnica modificações que se encontram dentro do escopo da presente invenção.
[0139] Por exemplo, embora os exemplos acima tenham sido descritos com respeito a MPEG-DASH deve ser apreciado que a invenção pode ser aplicada a qualquer transmissão em fluxo contínuo adaptável ou ambiente de downloading de dados.
[0140] Muitas modificações e variações adicionais serão sugeridas para aqueles versados na técnica ao se referirem às modalidades ilustrativas acima, que são fornecidas a título apenas de exemplo e que não pretendem limitar o escopo da invenção, o que é determinado apenas pelas reivindicações em anexo. Em particular, os recursos diferentes das diferentes modalidades podem ser intercambiadas, onde apropriado.

Claims (18)

1. Método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de transmissão em fluxo contínuo de dispositivos de comunicação na rede, o método CARACTERIZADO pelo fato de que compreende, em um dispositivo de comunicação dentre os dispositivos de comunicação: receber, em uma interface de gerenciamento do dispositivo de comunicação, mensagens de informação incluindo parâmetros de largura de banda a partir de outros dispositivos de comunicação na rede, cada mensagem de informação sendo indicativa de uma largura de banda requerida para que uma sessão de dados seja executada ou esteja em execução em um dispositivo respectivo dentre os outros dispositivos de comunicação a partir do qual a mensagem de informação correspondente é enviada; aplicar, por um processador do dispositivo de comunicação, um algoritmo de distribuição de largura de banda determinado armazenado em uma memória do dispositivo de comunicação usando pelo menos um parâmetro de largura de banda recebido a partir dos outros dispositivos de comunicação na rede para determinar uma largura de banda para alocação ao dispositivo de comunicação para a sessão de dados, o dito algoritmo de distribuição de largura de banda determinado sendo determinado a partir de uma pluralidade de algoritmos de distribuição de largura de banda com base em pelo menos uma dentre as mensagens de informação e uma lista de algoritmos de distribuição de largura de banda priorizados.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o pelo menos um parâmetro em cada mensagem de informação respectiva compreende pelo menos um dentre: dados de prioridade representativos de um nível de prioridade de uma sessão de dados correspondente; dados de duração de pedaço representativos de um tempo de duração de um segmento de dados da sessão de dados correspondente; e dados de largura de banda representativos de pelo menos uma largura de banda operável da sessão de dados correspondente.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a mensagem de informação compreende dados de algoritmo de distribuição de largura de banda representativos do algoritmo de distribuição de largura de banda determinado para ser usado para fornecer a largura de banda para alocação.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o algoritmo de distribuição de largura de banda compreende dividir a largura de banda disponível em compartilhamentos iguais para alocação a cada uma das sessões de dados com um nível maior de prioridade.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que um conteúdo de dados de cada sessão de dados tem uma pluralidade de representações correspondente e em que uma das representações é selecionada de acordo com o compartilhamento igual da largura de banda para alocação, uma representação selecionada sendo uma representação que requer uma maior largura de banda que é menor do que ou igual ao compartilhamento igual da largura de banda para alocação.
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que, quando a largura de banda requerida para a representação selecionada for menor do que ou igual ao compartilhamento da largura de banda para alocação, pelo menos parte de uma largura de banda remanescente é realocada para uma sessão de dados da maior prioridade para a qual a mensagem de informação correspondente foi enviada antes de outras mensagens de informação para sessões de dados da maior prioridade.
7. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que, quando a largura de banda requerida para a representação selecionada é menor do que o compartilhamento igual da largura de banda para alocação, pelo menos parte de uma largura de banda remanescente é alocada para uma sessão de dados de um nível de prioridade menor em pelo menos um dentre: um nível de prioridade da sessão de dados; um tempo de transmissão da mensagem de informação correspondente; e um tempo de início da sessão de dados.
8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o algoritmo de distribuição de largura de banda determinado compreende alocar uma largura de banda máxima possível para pelo menos uma sessão de dados em ordem de um nível de prioridade e para a qual uma mensagem de informação correspondente foi enviada antes de outras mensagens de informação para outras sessões de dados de uma mesma prioridade, uma largura de banda máxima possível correspondendo a uma representação de um conteúdo da sessão de dados requerendo uma maior largura de banda com relação a outras representações do mesmo conteúdo, dentro de uma largura de banda disponível.
9. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o algoritmo de distribuição de largura de banda determinado compreende alocar a largura de banda correspondente a uma representação de um conteúdo da sessão de dados requerendo uma menor quantidade de largura de banda no dispositivo de comunicação.
10. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente realocar qualquer largura de banda remanescente disponível para uma sessão de dados para habilitar um nível de representação maior com base em pelo menos um dentre um nível de prioridade da sessão de dados, um tempo de transmissão da mensagem de informação correspondente e um tempo de início da sessão de dados.
11. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que dentro de um dado nível de prioridade, a largura de banda remanescente disponível é alocada com base em pelo menos um dentre um tempo de transmissão da mensagem de informação para a sessão de dados correspondente e um tempo de início da sessão de dados.
12. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as mensagens de informação são enviadas para e recebidas de um endereço de multidifusão fixo para encaminhar para o dispositivo de comunicação e os outros dispositivos de comunicação.
13. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as mensagens de informação são trocadas por meio de um dispositivo base central.
14. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o mesmo algoritmo de alocação de largura de banda é usado pelo dispositivo de comunicação e pelos outros dispositivos de comunicação começando ou executando uma sessão de dados.
15. Método, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o algoritmo de alocação de largura de banda é determinado de acordo com pelo menos um dentre um nível de prioridade alocado para cada algoritmo de alocação de largura de banda e um número de dispositivos de comunicação selecionando cada algoritmo de largura de banda.
16. Dispositivo de comunicação em uma rede, CARACTERIZADO pelo fato de que compreende: uma interface de comunicação para trocar mensagens de informação com um ou mais outros dispositivos de comunicação em uma mesma rede, cada mensagem de informação compreendendo pelo menos um parâmetro de largura de banda indicativo de uma largura de banda requerida para uma sessão de dados de transmissão em fluxo contínuo a ser iniciada no dispositivo de comunicação respectivo a partir do qual a mensagem de informação correspondente é enviada; uma memória para armazenar uma pluralidade de algoritmos de distribuição de largura de banda; e um ou mais processadores para: aplicar um algoritmo de distribuição de largura de banda determinado usando o pelo menos um parâmetro de largura de banda recebido a partir dos outros dispositivos de comunicação para determinar uma largura de banda para alocação ao dito dispositivo de comunicação para uma sessão de dados, o dito algoritmo de distribuição de largura de banda determinado sendo determinado a partir de uma pluralidade de algoritmos de distribuição de largura de banda com base em pelo menos uma das mensagens de informação e uma lista de algoritmos de distribuição de largura de banda priorizados.
17. Dispositivo de comunicação, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de que o pelo menos um ou mais processadores são configurados para: obter o pelo menos um parâmetro de largura de banda a partir de mensagens de informação trocadas entre dispositivos de comunicação da rede e indicativas da largura de banda requerida para a sessão de dados de transmissão em fluxo contínuo, e em que o pelo menos um parâmetro de largura de banda compreende pelo menos um dentre: dados de prioridade representativos de um nível de prioridade da sessão de dados correspondente; dados de duração de pedaço representativos de um tempo de duração de um segmento de dados da sessão de dados correspondente; e dados de largura de banda representativos de pelo menos uma largura de banda operável da sessão de dados correspondente.
18. Mídia não transitória legível por computador, CARACTERIZADA pelo fato de que compreende um método compreendendo as etapas de: receber, em uma interface de gerenciamento de um dispositivo de comunicação, mensagens de informação incluindo parâmetros de largura de banda a partir de outros dispositivos de comunicação em uma rede, as mensagens de informação sendo indicativas de uma largura de banda requerida para que uma sessão de dados seja executada ou esteja em execução em um dispositivo respectivo dentre os dispositivos de comunicação a partir do qual a mensagem de informação correspondente é enviada; e aplicar, por um processador do dispositivo de comunicação, um algoritmo de distribuição de largura de banda determinado armazenado em uma memória do dispositivo de comunicação usando pelo menos um parâmetro de largura de banda recebido a partir dos outros dispositivos de comunicação para obter largura de banda para alocação ao dispositivo de comunicação para uma sessão de dados, o dito algoritmo de distribuição de largura de banda determinado sendo determinado a partir de uma pluralidade de algoritmos de distribuição de largura de banda com base em pelo menos uma das mensagens de informação e uma lista de algoritmos de distribuição de largura de banda priorizados.
BR112017017072-8A 2015-02-11 2016-02-05 Método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de transmissão em fluxo contínuo de dispositivos de comunicação na rede, dispositivo de comunicação em uma rede, e mídia não transitória legível por computador BR112017017072B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15305200.6 2015-02-11
EP15305200.6A EP3057266A1 (en) 2015-02-11 2015-02-11 Distribution of bandwidth in a network
PCT/EP2016/052532 WO2016128326A1 (en) 2015-02-11 2016-02-05 Distribution of bandwidth in a network

Publications (2)

Publication Number Publication Date
BR112017017072A2 BR112017017072A2 (pt) 2018-04-10
BR112017017072B1 true BR112017017072B1 (pt) 2024-01-23

Family

ID=52629491

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017017072-8A BR112017017072B1 (pt) 2015-02-11 2016-02-05 Método para distribuir largura de banda disponível em uma rede entre uma pluralidade de sessões de dados de transmissão em fluxo contínuo de dispositivos de comunicação na rede, dispositivo de comunicação em uma rede, e mídia não transitória legível por computador

Country Status (13)

Country Link
US (1) US10833944B2 (pt)
EP (2) EP3057266A1 (pt)
JP (2) JP6646264B2 (pt)
KR (1) KR102494603B1 (pt)
CN (1) CN107251487B (pt)
AU (2) AU2016218082B2 (pt)
BR (1) BR112017017072B1 (pt)
CA (1) CA2976416C (pt)
MX (1) MX2017010346A (pt)
MY (1) MY192122A (pt)
RU (1) RU2017131416A (pt)
TW (2) TWI716221B (pt)
WO (1) WO2016128326A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3057266A1 (en) * 2015-02-11 2016-08-17 Thomson Licensing Distribution of bandwidth in a network
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service
US11334387B2 (en) * 2019-05-28 2022-05-17 Micron Technology, Inc. Throttle memory as a service based on connectivity bandwidth
CN111679615B (zh) * 2020-07-01 2021-10-15 无锡中微亿芯有限公司 内部集成具有不同位宽连线的片上网络的fpga装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092395B2 (en) * 1998-03-09 2006-08-15 Lucent Technologies Inc. Connection admission control and routing by allocating resources in network nodes
CA2343751A1 (en) * 1998-07-27 2000-02-10 Webtv Networks, Inc. Remote computer access
US7006530B2 (en) * 2000-12-22 2006-02-28 Wi-Lan, Inc. Method and system for adaptively obtaining bandwidth allocation requests
JP2002026986A (ja) * 2000-07-10 2002-01-25 Matsushita Electric Ind Co Ltd データ伝送装置、データ伝送方法および記録媒体
JP3756054B2 (ja) * 2000-10-16 2006-03-15 シャープ株式会社 ネットワーク通信方法、ネットワーク通信装置及び情報機器
US7023979B1 (en) * 2002-03-07 2006-04-04 Wai Wu Telephony control system with intelligent call routing
US7493407B2 (en) * 2002-08-14 2009-02-17 Drs Technical Services, Inc. Method and apparatus for controlling the allocation of bandwidth of a network access point to an application having a message transmitted on the network
WO2006081454A2 (en) * 2005-01-26 2006-08-03 Internet Broadcasting Corporation Layered multicast and fair bandwidth allocation and packet prioritization
US7630401B2 (en) 2005-04-28 2009-12-08 Sony Corporation Bandwith management in a network
BRPI0520404A2 (pt) 2005-07-14 2009-09-29 Ericsson Telefon Ab L M método de localizar geograficamente um nó de extremidade em uma rede de comunicação de dados de pacote, produto de programa de computador, e, nó de rede
US7564852B2 (en) * 2005-07-20 2009-07-21 Cortina Systems, Inc. Intelligent bandwidth allocation for ethernet passive optical networks
US8521955B2 (en) 2005-09-13 2013-08-27 Lsi Corporation Aligned data storage for network attached media streaming systems
JP4188368B2 (ja) * 2005-09-28 2008-11-26 韓國電子通信研究院 イーサネット受動光加入者網(EPON)においてQoS保障のための帯域割当装置及び方法
US8149771B2 (en) * 2006-01-31 2012-04-03 Roundbox, Inc. Reliable event broadcaster with multiplexing and bandwidth control functions
CN100583820C (zh) 2006-09-11 2010-01-20 思华科技(上海)有限公司 内容分发网络的路由系统及方法
EP1950893A1 (en) * 2007-01-24 2008-07-30 Siemens Aktiengesellschaft Method and system for allocating bandwidth
US7945205B1 (en) 2007-10-05 2011-05-17 At&T Mobility Ii Llc System and method for optimization of network delivery of streaming data
CN101184021B (zh) 2007-12-14 2010-06-02 成都市华为赛门铁克科技有限公司 一种实现流媒体缓存置换的方法、设备及系统
JP2009188655A (ja) * 2008-02-05 2009-08-20 Hitachi Ltd 通信制御方法、情報処理システム、情報処理装置及びプログラム
JP4900272B2 (ja) * 2008-02-13 2012-03-21 三菱電機株式会社 衛星通信地球局
AU2009335146B2 (en) 2008-12-31 2012-12-20 Apple Inc. Method for streaming multimedia data over a non-streaming protocol
US20120102162A1 (en) * 2010-10-22 2012-04-26 Fujitsu Network Communications, Inc. Dynamic bandwidth adjustment for multiple service support
US8595374B2 (en) 2010-12-08 2013-11-26 At&T Intellectual Property I, L.P. Method and apparatus for capacity dimensioning in a communication network
JP5728274B2 (ja) * 2011-04-05 2015-06-03 沖電気工業株式会社 動的通信帯域割当方法、動的通信帯域割当プログラム、ponシステム及び局側終端装置
US8902744B2 (en) * 2011-05-06 2014-12-02 Infinera Corporation Bandwidth advertisement model for shared mesh protection
US9413637B2 (en) 2012-10-22 2016-08-09 Avaya Inc. Architecture for virtualization and distribution of routing information used in a transport network
EP2879339A1 (en) * 2013-11-27 2015-06-03 Thomson Licensing Method for distributing available bandwidth of a network amongst ongoing traffic sessions run by devices of the network, corresponding device.
EP3057266A1 (en) * 2015-02-11 2016-08-17 Thomson Licensing Distribution of bandwidth in a network

Also Published As

Publication number Publication date
MY192122A (en) 2022-07-28
TW201630386A (zh) 2016-08-16
TW202017341A (zh) 2020-05-01
CA2976416A1 (en) 2016-08-18
KR20170116035A (ko) 2017-10-18
US10833944B2 (en) 2020-11-10
MX2017010346A (es) 2017-12-07
TWI716221B (zh) 2021-01-11
JP2020061764A (ja) 2020-04-16
WO2016128326A1 (en) 2016-08-18
JP2018511209A (ja) 2018-04-19
EP3257197B1 (en) 2021-04-07
RU2017131416A (ru) 2019-03-11
AU2016218082A1 (en) 2017-08-24
BR112017017072A2 (pt) 2018-04-10
AU2020257112B2 (en) 2022-08-18
AU2016218082B2 (en) 2020-07-23
EP3057266A1 (en) 2016-08-17
JP6646264B2 (ja) 2020-02-14
CN107251487B (zh) 2022-06-14
RU2017131416A3 (pt) 2019-07-24
JP6993399B2 (ja) 2022-01-13
KR102494603B1 (ko) 2023-02-02
CA2976416C (en) 2023-09-26
AU2020257112A1 (en) 2020-11-19
CN107251487A (zh) 2017-10-13
RU2019143459A (ru) 2020-02-03
US20180048526A1 (en) 2018-02-15
EP3257197A1 (en) 2017-12-20

Similar Documents

Publication Publication Date Title
AU2020257112B2 (en) Distribution of bandwidth in a network
US9712408B2 (en) Bandwidth management in a content distribution network
Sweha et al. Angelcast: cloud-based peer-assisted live streaming using optimized multi-tree construction
US20180309694A1 (en) Method for distributing available bandwidth of a network amongst ongoing traffic sessions run by devices of the network, corresponding device
EP3207686B1 (en) Adaptive bit rates during broadcast transmission in distributed content delivery networks
US10382344B2 (en) Generating and/or receiving at least one packet to facilitate, at least in part, network path establishment
Ganesan et al. QoS-aware multicast for crowdsourced 360 live streaming in SDN aided NG-EPON
US9083617B2 (en) Reducing latency of at least one stream that is associated with at least one bandwidth reservation
WO2019034591A1 (en) FLOW CONTROL SYSTEM FOR USE IN A NETWORK
US11973814B2 (en) Method and controller for audio and/or video content delivery
RU2804870C2 (ru) Способ и устройство для распределения полосы в сети
Thinh et al. Sdn–based dynamic bandwidth allocation for multiple video-on-demand players over http
Azgin et al. Cooperative delivery techniques to support video-on-demand service in IPTV networks
EP3035618B1 (en) Integrated bandwidth and storage reservation

Legal Events

Date Code Title Description
B25G Requested change of headquarter approved

Owner name: THOMSON LICENSING (FR)

B25A Requested transfer of rights approved

Owner name: INTERDIGITAL VC HOLDINGS, INC. (US)

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 05/02/2016, OBSERVADAS AS CONDICOES LEGAIS