BR102021021089A2 - Método, mídia não transitória legível por computador e sistema - Google Patents

Método, mídia não transitória legível por computador e sistema Download PDF

Info

Publication number
BR102021021089A2
BR102021021089A2 BR102021021089-3A BR102021021089A BR102021021089A2 BR 102021021089 A2 BR102021021089 A2 BR 102021021089A2 BR 102021021089 A BR102021021089 A BR 102021021089A BR 102021021089 A2 BR102021021089 A2 BR 102021021089A2
Authority
BR
Brazil
Prior art keywords
data
cache
transfer rate
determining
transferring
Prior art date
Application number
BR102021021089-3A
Other languages
English (en)
Inventor
Nikita I. Tkachov
Original Assignee
Disney Enterprises, 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 Disney Enterprises, Inc. filed Critical Disney Enterprises, Inc.
Publication of BR102021021089A2 publication Critical patent/BR102021021089A2/pt

Links

Images

Classifications

    • 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/10Architectures or entities
    • H04L65/1059End-user terminal functionalities specially adapted for real-time communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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
    • H04L65/1095Inter-network session transfer or sharing
    • 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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8549Creating video summaries, e.g. movie trailer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A presente invenção refere-se a técnicas para armazenar temporariamente dados por meio de redes de largura de banda alta. Uma primeira parte de dados é transferida (505) para um armazenamento temporário em uma primeira velocidade de transferência. A primeira parte de dados é liberada (510) do armazenamento temporário. Ao determinar (515) que dados estão sendo transferidos em uma segunda velocidade de transferência maior que a primeira velocidade de transferência, é determinado para usar um cache para uma ou mais partes subsequentes de dados, e uma segunda parte de dados é transferida para o cache. Ao determinar (520) que o armazenamento temporário está vazio, a segunda parte de dados é liberada do cache.

Description

MÉTODO, MÍDIA NÃO TRANSITÓRIA LEGÍVEL POR COMPUTADOR E SISTEMA Antecedentes
[001] Alguns sistemas transferem mídias em segmentos distintos. Cada segmento é então liberado sequencial m ente. Entretanto, se a velocidade de transferência mudar substancialmente, um dispositivo de fluxo contínuo pode selecionar uma taxa de bits não ideal para o(s) próximo(s) segmento(s). Quando conexões intermitentes e esporádicas são perdidas, o(s) próximo(s) segmento(s) pode(m) falhar para transferência a tempo, causando carga em memória temporária e perdas de sinal na saída de mídia.
Breve Descrição dos Desenhos
[002] A fim de que a maneira na qual os aspectos relatados acima são alcançados possa ser entendida em detalhes, uma descrição mais particular de modalidades descritas neste documento, resumida acima, pode ser dada por meio de referência para os desenhos anexos.
[003] É para ser notado, entretanto, que os desenhos anexos ilustram modalidades típicas e por esta razão não devem ser considerados como limitantes; outras modalidades igualmente efetivas são consideradas.
[004] A figura 1 representa um sistema incluindo um dispositivo de fluxo contínuo configurado para adaptativamente armazenar temporariamente dados por meio de conexões de rede com largura de banda dinâmica, de acordo com algum as modalidades reveladas neste documento.
[005] A figura 2 representa um sistema incluindo um dispositivo de fluxo contínuo configurado para utilizar armazenamentos temporários e cache para dinamicamente armazenar temporariamente dados por meio de conexões de rede com largura de banda dinâmica, de acordo com algum as modalidades reveladas neste documento.
[006] A figura 3 é um fluxograma ilustrando um método de responder dinamicamente à mudança de conectividade de rede, de acordo com algum as modalidades reveladas neste documento.
[007] A figura 4 é um fluxograma ilustrando um método para transferir em fluxo contínuo segmentos de mídia em condições de redes dinâmicas, de acordo com algumas modalidades reveladas neste documento.
[008] A figura 5 é um fluxograma ilustrando um método para transferir dados em condições de redes dinâmicas, de acordo com algum as modalidades reveladas neste documento.
[009] As figuras 6A e 6B são diagramas de blocos de um dispositivo de computação configurado para transmitir dados em condições de redes dinâmicas, de acordo com algum as modalidades reveladas neste documento.
Descrição Detalhada
[010] Em uma variedade de sistemas, dados são transferidos e armazenados temporariamente em memória para liberação imediata ou subsequente. Por exemplo, para transferir dados de vídeo, o vídeo pode ser transferido para um armazenamento temporário em memória, e enviados para exibição a partir do armazenamento temporário. Usar um armazenamento temporário permite ao sistema pré-transferir alguns dados antes de serem exibidos, a fim de impedir gaguices ou pausas na saída. Por exemplo, alguns sistemas transfere m mídias em segmentos distintos, armazenando cada segmento no armazenamento temporário. Cada segmento é então liberado sequencialmente do armazenamento temporário.
[011] Alguns sistemas utilizam soluções de taxas de bits adaptáveis para melhorar o processo de fluxo contínuo. Em tais sistemas, a plataforma de fluxo contínuo oferece o fluxo em uma variedade de taxas de bits (por exemplo, dez megabits por segundo, quinze megabits por segundo e outros mais). O dispositivo de fluxo contínuo então pode selecionar qual taxa de bits para transferência com base nas suas próprias condições de rede. Por exemplo, o dispositivo de fluxo contínuo pode medir a velocidade na qual o arquivo de vídeo está sendo transferido a fim de determinar a taxa de bits apropriada a ser solicitada ao transferir a próxima parte do vídeo.
[012] Entretanto, se a velocidade de transferência mudar substancial m ente, o dispositivo de fluxo contínuo pode selecionar uma taxa de bits não ideal para o(s) próximo(s) segmento(s). Por exemplo, o dispositivo pode utilizar ordinariamente uma primeira conexão de rede para transferir a mídia, mas pode receber conectividade intermitente com velocidades muito mais altas. Se estas velocidades mais altas forem usadas para selecionar a próxima taxa de bits, o dispositivo selecionará uma taxa de bits mais alta que pode não ser sustentada na velocidade de conexão original.
[013] Modalidades da presente revelação fornecem sistemas, dispositivos e métodos para responder à conectividade dinâmica e variável a fim de melhorar as operações de dispositivos usando as redes dinâmicas para transferir ou carregar dados. Na presente revelação, fluxo contínuo de mídia é usado em alguns exemplos. Entretanto, é para ser entendido que modalidades da presente revelação são prontamente aplicáveis a uma grande variedade de usos envolvendo transferir ou carregar dados.
[014] Em algum as modalidades, dispositivos de computação podem transferir (ou carregar) dados usando uma conexão de rede em uma velocidade inicial. Quando largura de banda aumentada está disponível (na mesma conexão ou em uma segunda conexão de rede), os dispositivos podem utilizar este surto de velocidade para transferir (ou carregar) dados adicionais além daqueles que ele transferiria de outro modo no intervalo de tempo. Em uma modalidade, se o dispositivo estivesse utilizando uma taxa de bits inicial, qualidade, ou outro indicador da quantidade de dados sendo transferidos ou carregados, o dispositivo continuaria a usar a mesma taxa de bits a fim de assegurar que o processo não seria interrompido quando a velocidade conexão mais alta estivesse disponível por mais tempo.
[015] Por exemplo, dispositivos móveis podem utilizar conexões 4G para transferir segmentos de mídia em um ambiente de fluxo contínuo. O dispositivo pode selecionar qual taxa de bits a ser usada para transferir com base na velocidade (também referida como largura de banda) da conexão 4G. De modo crescente, redes de velocidades mais altas (tais como 5G de milímetro) têm sido implementadas. Estas redes frequentemente fornece m largura de banda muito alta, mas com conectividade esporádica e intermitente. Por exemplo, conexões 5G de milímetro frequente mente exigem linha de visão para a torre, o que faz com que esta conexão de largura de banda alta seja instável e temporária. Assim, esta conectividade de velocidade mais alta não deve ser utilizada ao determinar qual taxa de bits a ser solicitada para segmentos subsequentes. Além disso, como o armazenamento temporário de memória frequentemente é razoavelmente limitado, a conexão de alta velocidade pode ser desperdiçada porque o armazenamento temporário ficará cheio muito rapidamente.
[016] Em modalidades da presente revelação, dispositivos de fluxo contínuo podem tirar proveito desta conectividade intermitente ao alocar um cache separado ou ao aumentar temporariamente o tamanho do armazenamento temporário a fim de permitir que dados adicionais sejam transferidos usando a conexão de alta velocidade. Isto permite ao dispositivo tirar proveito da conectividade intermitente de alta velocidade, o que reduz interrupções no fluxo e melhora a operação do sistema de fluxo contínuo total.
[017] A figura 1 representa um sistema 100 incluindo um Dispositivo de Fluxo Contínuo 105 configurado para adaptativamente armazenar temporariamente dados por meio de conexões de rede com largura de banda dinâmica, de acordo com algumas modalidades reveladas neste documento. Na modalidade ilustrada, um Dispositivo de Fluxo Contínuo 105 é acoplado de forma comunicativa a um Servidor de Conteúdo 115 por meio de uma ou mais redes 110A-110B. Em uma modalidade, as Redes 110 fornece m conectividade sem fio. Em pelo menos uma modalidade, o Dispositivo de Fluxo Contínuo 105 é um dispositivo móvel, tal como um telefone inteligente, tablet, laptop ou outro dispositivo que possa utilizar redes sem fio para transferir ou carregar dados.
[018] Em algum as modalidades, as Redes 110A-B podem ser associadas com largura de banda diferente ou com outras características. Por exemplo, em uma modalidade, a Rede 110A pode ser uma rede celular 4G ou 3G com largura de banda relativamente limitada (e por esta razão velocidades de transferência relativamente limitadas), enquanto que a Rede 110B é uma rede de largura de banda maiortal como uma conexão WiFI ou uma rede 5G.
[019] Embora as duas redes 110A-B esteja m representadas para clareza conceitual, modalidades da presente revelação podem ser utilizadas com qualquer número de redes distintas, incluindo uma única rede. Por exemplo, modalidades da presente revelação podem ser usadas para permitir que o Dispositivo de Fluxo Contínuo 105 responda às condições de redes dinâmicas à medida que ele desloca entre três ou mais redes. De modo similar, modalidades reveladas neste documento podem ser usadas para permitir que o Dispositivo de Fluxo Contínuo 105 responda às condições de deslocamento em uma única conexão de rede.
[020] Em uma modalidade, a Rede de largura de banda maior 110B pode ser relativamente esporádica ou intermitente em que ela não está disponível com segurança para o Dispositivo de Fluxo Contínuo 105. Entretanto, quando disponível, a Rede 110B pode ser usada para transferir quantidades significativas de dados em tempos curtos, por causa da maior largura de banda. Em algumas modalidades, o Dispositivo de Fluxo Contínuo 105 ordinariamente pode transferir dados (por exemplo, dados de vídeo) do servidor de conteúdo 115 por meio da rede 110A. Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 faz isso usando lógica de taxa de bits adaptativa para selecionar qual variante de taxa de bits deve solicitar do servidor de conteúdo 115 com base, pelo menos em parte, na largura de banda disponível ou velocidade de transferência por meio da rede 110A.
[021] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 armazena temporariamente estes dados transferidos em um armazenamento temporário em memória. A mídia é então liberada desse armazenamento temporário. Em muitas modalidades, o armazenamento temporário tem um tamanho relativamente limitado. Assim, o Dispositivo de Fluxo Contínuo 105 tipicamente transfere partes dos dados (por exemplo, segmentos de mídia) por meio da rede 110A exatamente antes de serem necessários para liberação/exibição.
[022] Em uma modalidade, se o Dispositivo de Fluxo Contínuo 105 determinar que conectividade de largura de banda maior está disponível (por exemplo, via Rede 110B), ele pode responder dinamicamente para tirar proveito destas velocidades mais altas. Em uma modalidade, o Dispositivo de Fluxo Contínuo 105 determina que esta velocidade mais alta está disponível com base em determinar que a conexão corrente do dispositivo está classificada ou identificada como uma conexão de alta velocidade predefinida. Por exemplo, quando conectado por meio da rede 110A a conectividade do Dispositivo de Fluxo Contínuo 105 pode ser classificada como "4G", enquanto que por meio da Rede 110B é classificada como "5G".
[023] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 identifica a conexão mais rápida ao avaliar quão rapidamente os dados estão sendo transferidos corrente mente do servidor de conteúdo 115 ou de outras fontes. Por exemplo, em tal modalidade, o Dispositivo de Fluxo Contínuo 105 monitora sua velocidade de transferência corrente (por exemplo, para o segmento ou parte corrente de dados), assim como velocidades de transferência históricas em uma janela deslizante (por exemplo, durante os últimos sessenta segundos, ou durante os últimos dez segmentos ou partes de dados). Se a velocidade de transferência corrente exceder esta velocidade histórica por algum critério predefinido, o Dispositivo de Fluxo Contínuo 105 pode determinar que ele está e m uma conexão de largura de banda alta. E m modalidades, este critério pode incluir um multiplicador de limite (por exemplo, pelo menos duas vezes tão rápido), uma velocidade mínima (por exemplo, pelo menos uma centena de megabits por segundo), um aumento de limite (por exemplo, pelo menos cinquenta megabits por segundo mais rápido que a velocidade histórica) e outros mais.
[024] Em pelo menos uma modalidade, o Dispositivo de Fluxo Contínuo 105 pode identificar a conexão de largura de banda alta com base em conexões anteriores. Por exemplo, em tal modalidade, o Dispositivo de Fluxo Contínuo 105 pode utilizar serviços de localização para identificar e registrar sua localização corrente sempre que a Rede de largura de banda alta 110B estiver disponível. Subsequente m ente, com base na localização ou movimento corrente do Dispositivo de Fluxo Contínuo 105, o Dispositivo de Fluxo Contínuo 105 pode determinar que a Rede 110B provavelmente estará disponível em algum ponto no futuro (por exemplo, dentro de dez segundos ou de algum outro tempo predefinido). Em resposta, o Dispositivo de Fluxo Contínuo 105 pode começar a se preparar para a conexão de velocidade mais alta, tal como discutido a seguir.
[025] Em uma modalidade, quando o Dispositivo de Fluxo Contínuo 105 determina que ele está usando a conexão de largura de banda mais alta, ele começa a transferir dados do servidor de conteúdo 115 para um cache ou armazenamento temporário ilimitado. Em algum as modalidades, este cache fica localizado em uma memória secundária, referida comumente como " memória auxiliar" ou "armazenamento" do Dispositivo de Fluxo Contínuo 105 (por exemplo, uma unidade rígida (HD), unidade de estado sólido (SSD), ROM, memória flash, mídia de armazenamento fixa ou removível e outras mais), enquanto que o armazenamento temporário original fica localizado em memória primária, referida comumente como "memória principal" ou de forma abreviada simplesmente como "memória", do Dispositivo de Fluxo Contínuo 105 (por exemplo, em memória de acesso aleatório (RAM)). Tal como tipicamente usado e conhecido na técnica, o termo "memória" pode se referir ao que é descrito neste documento como "memória prim ária", enquanto que o termo "armazenamento" pode se referir ao que é descrito neste documento como "memória secundária". De uma maneira geral, uma memória primária é acoplada diretamente à(s) unidade(s) de processamento do sistema (por exemplo, RAM), permitindo tempos de acesso menores. Entretanto, este acoplamento direto frequentemente exige que a memória primária seja limitada relativamente em tamanho. Em contraste, memória secundária tipicamente é desprovida de tal acesso direto, resultando em tempos de acesso maiores, quando comparados aos da memória primária. Entretanto, a memória secundária de uma maneira geral pode ser significativamente maior que a memória primária. Em outra modalidade, se espaço suficiente estiver disponível em memória primária (por exemplo, em um sistema de memória alta), o Dispositivo de Fluxo Contínuo 105 pode expandir o tamanho do armazenamento temporário de memória, ou estabelecer um segundo armazenamento ou cache temporário em memória prim ária.
[026] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 transfere dados para este cache na mesma taxa de bits que estava sendo usada anteriormente para transferir os dados. Por exemplo, se o Dispositivo de Fluxo Contínuo 105 estava usando originalmente um fluxo de taxa de bits de dez megabits por segundo do servidor de conteúdo 115, o Dispositivo de Fluxo Contínuo 105 continuará a solicitar o fluxo de dez megabits, mesmo que a Rede 110B seja capaz de suportar taxas de bits muito mais altas.
[027] Ao transferir estes dados para o cache ilimitado, o Dispositivo de Fluxo Contínuo 105 pode tirar proveito da velocidade alta e transferir dados adicionais além daqueles que ele poderia transferir de outro modo. Por exemplo, em vez de armazenar temporariamente uma quantidade limitada de dados (por exemplo, os próximos sessenta segundos de vídeo, ou os próximos cinco segmentos), o Dispositivo de Fluxo Contínuo 105 pode continuar a transferir tanto dos dados quanto ele pode para o cache usando a Rede mais rápida 110B.
[028] Em uma modalidade, quando o armazenamento temporário de memória original ficar vazio (por exemplo, todos os segmentos transferidos anteriormente foram liberados), o Dispositivo de Fluxo Contínuo 105 começará a liberar dados do cache. Isto pode incluir transferir os dados para memória e liberá-los da memória, ou enviá-los diretamente do armazenamento.
[029] Em algumas modalidades, o Dispositivo de Fluxo Contínuo 105 pode continuar a transferir dados para o cache(em vez de para o armazenamento temporário original) até que algum critério predefinido esteja satisfeito. Isto pode incluir determinar que o Dispositivo de Fluxo Contínuo 105 retornou para a Rede original 110A. Por exemplo, o Dispositivo de Fluxo Contínuo 105 pode verificar a etiqueta ou classificação de sua conexão corrente. Em outra modalidade, o Dispositivo de Fluxo Contínuo 105 pode continuar a monitorar velocidades de transferência, tal como discutido acima, para detectar a queda de volta para a conectividade original (por exemplo, ao comparar a velocidade corrente a uma janela deslizante de velocidades históricas durante os últimos N segmentos ou segundos).
[030] Em uma modalidade, o Dispositivo de Fluxo Contínuo 105 então pode continuar a enviar dados do cache até que ele fique vazio (por exemplo, até que todos os dados transferidos tenham sido liberados). Em uma modalidade, o Dispositivo de Fluxo Contínuo 105 pode retornar para o padrão de fluxo contínuo original (por exemplo, transferir alguma quantidade de dados para o armazenamento temporário) quando o cache estiver próximo de vazio (por exemplo, quando a quantidade de dados deixada de ser liberada do cache estiver abaixo de um limite predefinido).
[031] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 está carregando ou transferindo em fluxo contínuo a partir de um conjunto predefinido de dados. Por exemplo, os segmentos ou partes de dados podem todos corresponder a um dado episódio, filme, podcast ou outra mídia. Em uma modalidade, se o Dispositivo de Fluxo Contínuo 105 transferir todos os dados disponíveis para o cache antes de a Rede 110B ser perdida (por exemplo, se o episódio total tiver sido transferido), ele pode parar de transferir dados adicionais e simplesmente enviar os dados do cache.
[032] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 pode manter este cache de transferido para permitir que o Dispositivo de Fluxo Contínuo 105 libere a mídia subsequente m ente, mesmo se toda conectividade de rede estiver perdida. Em outra modalidade, o Dispositivo de Fluxo Contínuo 105 pode permitir acesso ao cache somente enquanto a sessão de fluxo contínuo permanece ativa. Em tal modalidade, se o usuário sair do fluxo, o Dispositivo de Fluxo Contínuo 105 pode eliminar os dados armazenados em cache ou de outro modo marcar os dados como indisponíveis, e exigir do Dispositivo de Fluxo Contínuo 105 retransmitir a mídia.
[033] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 é configurado para transferir dados adicionais de outros fluxos ao completar um primeiro fluxo. Por exemplo, se o Dispositivo de Fluxo Contínuo 105 estiver transferindo em fluxo contínuo um dado episódio de um show, o Dispositivo de Fluxo Contínuo 105 pode começar a transferir o próximo episódio se o dado episódio tiver completado a transferência. Isto pode permitir ao Dispositivo de Fluxo Contínuo 105 recuperar antecipadamente dados adicionais. Em uma modalidade, o Dispositivo de Fluxo Contínuo 105 pode usar qualquer lógica adequada para determinar qual fluxo de dados deve transferir. Por exemplo, em uma modalidade, o Dispositivo de Fluxo Contínuo 105 ou o Servidor de Conteúdo 115 utiliza uma sequência predefinida ou lista de mídias (por exemplo, uma lista de episódios), e solicita/fornece o próximo. Em outra modalidade, o Dispositivo de Fluxo Contínuo 105 ou o Servidor de Conteúdo 115 utiliza outra lógica de personalização usada para sugerir mídias para usuários a fim de selecionar os próximos dados para transferência.
[034] Em pelo menos uma modalidade, o Dispositivo de Fluxo Contínuo 105 pode rastrear se mídias pré-transferidas foram realmente consumidas. Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 faz isso ao monitorar quais dados ou segmentos foram realmente liberados do cache. O Dispositivo de Fluxo Contínuo 105 pode transmitir esta inform ação para o Servidor de Conteúdo 115 ou para outros sistemas. Isto permite ao Servidor de Conteúdo 115 (ou a outros sistemas) lembrar onde o usuário parou em um dado fluxo com base na mídia que foi realmente liberada, tal como o oposto a com base unicamente nos dados que foram transferidos. Lógica similar pode ser aplicada para modalidades onde o Dispositivo de Fluxo Contínuo 105 recupera antecipadamente episódios ou mídias subsequentes.
[035] Em algum as modalidades, o Dispositivo de Fluxo Contínuo 105 pode recuperar antecipadamente outras mídias definidas além de ou em vez de transferir mídias do fluxo para o cache. Por exemplo, o Dispositivo de Fluxo Contínuo 105 pode usar a Rede de largura de banda alta 110B para transferir anúncios ou outras mídias predefinidas para o cache, além de ou em vez de recuperar antecipadamente segmentos das mídias solicitadas. Isto pode permitir ao Dispositivo de Fluxo Contínuo 105 liberar de forma ininterrupta estes dados. Por exemplo, em um ambiente de fluxo contínuo ao vivo, podem existir mídias que não podem ser pré-transferidas para o cache. Entretanto, o Dispositivo de Fluxo Contínuo 105 pode usar a conexão de largura de banda alta para pré-transferir anúncios ou outras mídias para o cache. Estes dados então podem ser liberados de modo apropriado mais tarde. Em uma modalidade, o Dispositivo de Fluxo Contínuo 105 pode monitorar quais anúncios ou outras mídias foram realmente liberados/consumidos, e transmitir esta inform ação para o Servidor de Conteúdo 115 ou para outros sistemas.
[036] Em pelo menos uma modalidade, o Dispositivo de Fluxo Contínuo 105 pode usar seletivamente a Rede de largura de banda alta 110B para transferir outros dados ou variantes que de outro modo não seriam transferidos. Por exemplo, embora o Dispositivo de Fluxo Contínuo 105 esteja transferindo em fluxo contínuo dados em uma primeira taxa de bits na conexão original, o Dispositivo de Fluxo Contínuo 105 pode transferir um ou mais segmentos em uma taxa de bits mais alta para o cache quando a Rede 110B está disponível. Como outro exemplo, se o Dispositivo de Fluxo Contínuo 105 estiver transferindo em fluxo contínuo mídia somente de áudio, o Dispositivo de Fluxo Contínuo 105 pode transferir algum vídeo associado para o cache quando a conexão de largura de banda alta está disponível.
[037] Em algum as modalidades, à medida que o Dispositivo de Fluxo Contínuo 105 transfere dados para o cache, o cache pode crescer ou expandir tal como necessário. Isto é, o cache é ilimitado. Por exemplo, embora algum tamanho inicial possa ser definido quando o cache é criado, o Dispositivo de Fluxo Contínuo 105 pode permitir ao cache crescer à medida que dados são transferidos, até que algum máximo predefinido tenha sido alcançado ou até que o armazenamento tenha esgotado o espaço. Ao utilizar armazenamentos temporários ilimitados para a conectividade de alta largura de banda esporádica, o Dispositivo de Fluxo Contínuo 105 pode melhorar significativamente o ambiente fluxo contínuo.
[038] A figura 2 representa um sistema 200 incluindo um Dispositivo de Fluxo Contínuo 105 configurado para utilizar armazenamentos e caches temporários para dinamicamente armazenar temporariamente dados por meio de conexões de rede com largura de banda dinâmica, de acordo com algum as modalidades reveladas neste documento. Na modalidade ilustrada, o Dispositivo de Fluxo Contínuo 105 transfere os segmentos de mídia 215 de um servidor de conteúdo 115. Tal como ilustrado, estes Segmentos 215 são partes sequenciais de dados em um fluxo de mídia predefinido, e são transferidos e liberados em sequência.
[039] Na modalidade ilustrada, o Dispositivo de Fluxo Contínuo 105 inclui um Armazenamento Temporário 205 e um Cache 210. Em pelo menos uma modalidade, o Armazenamento Temporário 205 fica localizado em memória, enquanto que o Cache 210 fica localizado em armazenamento. Em algum as modalidades, o Cache 210 pode simplesmente corresponder ao espaço adicional em memória. Ainda em outra modalidade, o Cache 210 não é uma estrutura de dados distinta, mas é implementada ao expandir a capacidade no Armazenamento Temporário 205.
[040] Em uma modalidade, o Armazenamento Temporário 205 tem um tamanho limitado (tipicamente fixado). Na modalidade ilustrada, o Armazenamento Temporário 205 é configurado para armazenar três Segmentos 215. Em algum as modalidades da presente revelação, o Cache 210 é maior e é configurado para armazenar dados adicionais. Na modalidade ilustrada, o Cache 210 armazena sete Segmentos 215. Em pelo menos uma modalidade, o Cache 210 pode ser expandido dinamicamente à medida que dados são transferidos. Por exemplo, se uma conexão de largura de banda alta permanecer disponível após o cache ficar cheio, o Dispositivo de Fluxo Contínuo 105 pode expandir o cache para permitir que ele cresça e armazene mais Segmentos 215.
[041] Em modalidades, o Dispositivo de Fluxo Contínuo 105 pode transferir Segmentos 215 para o Armazenamento Temporário 205 durante uso normal. À medida que Segmentos 215 são liberados do Armazenamento Temporário 205, eles são eliminados ou de outro modo marcados como "consumidos", permitindo ao Dispositivo de Fluxo Contínuo 105 transferir um segmento 215 subsequente para o Armazenamento Temporário 205. Na modalidade ilustrada, ao determinar que uma conexão de largura de banda alta está disponível, o Dispositivo de Fluxo Contínuo 105 começa a transferir segmentos 215 subsequentes para o Cache 210. Isto é, o Dispositivo de Fluxo Contínuo 105 pode transferir Segmentos 215 que ainda não tenha m sido recuperados (independente de se eles tenha m sido liberados) para o Cache 210, em vez de para o Armazenamento Temporário 205.
[042] Uma vez que o último Segmento 215 no Armazenamento Temporário 205 tenha sido liberado (o Segmento 215C na modalidade ilustrada), o Dispositivo de Fluxo Contínuo 105 começa a liberar segmentos 215 subsequentes do Cache 210. Em algum as modalidades, isto inclui transferir os segmentos 215 sequencialmente do Cache210 para o Armazenamento Temporário 205 ou para outra parte de memória, e então os liberar da memória.
[043] Em uma modalidade, desde que a conexão de largura de banda alta permaneça disponível, o Dispositivo de Fluxo Contínuo 105 continua a transferir Segmentos 215 para o Cache 210. Se a conexão de largura de banda alta não estiver mais disponível e o Dispositivo de Fluxo Contínuo 105 reverter para usar a conexão inicial, o Dispositivo de Fluxo Contínuo 105 pode pausar transferência até que todos (ou quase todos) os dados no Cache 210 sejam consumidos.
[044] Por exemplo, quando o Dispositivo de Fluxo Contínuo 105 determina que uma quantidade predefinida de dados permanece no Cache 210 (por exemplo, três ou mais Segmentos 215 a ser liberados), o Dispositivo de Fluxo Contínuo 105 pode iniciar o processo de fluxo contínuo original para transferir segmentos 215 subsequentes para o Armazenamento Temporário 205. Se a conexão de largura de banda alta se tornar disponível mais uma vez, o Dispositivo de Fluxo Contínuo 105 de novo pode começar a transferir dados para o Cache 210. Isto permite ao Dispositivo de Fluxo Contínuo 105 fazer transição de forma ininterrupta entre conexões com largura de banda/velocidade diferente.
[045] A figura 3 é um fluxograma ilustrando um método 300 de responder dinamicamente à mudança de conectividade de rede, de acordo com algum as modalidades reveladas neste documento. Em uma modalidade, o método 300 é executado por um dispositivo de fluxo contínuo (tal como o Dispositivo de Fluxo Contínuo 105). O método 300 começa no bloco 305, onde o dispositivo de fluxo contínuo transfere dados (por exemplo, segmentos de mídia) em uma velocidade inicial para um armazenamento temporário (por exemplo, em memória). Por exemplo, o dispositivo de fluxo contínuo pode transferir em fluxo contínuo segmentos para um armazenamento temporário por meio de uma primeira conexão sem fio associada com uma primeira largura de banda/velocidade. Em algum as modalidades, o dispositivo de fluxo contínuo adicionalmente está transferindo dados associados com uma taxa de bits inicial (por exemplo, um fluxo de dez megabits).
[046] O método 300 então continua para o bloco 310, onde o dispositivo de fluxo contínuo determina se uma conexão por rajada está disponível. Em modalidades, a conexão por rajada é uma conexão de velocidade mais alta ou de largura de banda relativamente maior que se torna disponível para o dispositivo de fluxo contínuo. Por exemplo, a conexão por rajada pode corresponder a uma conexão 5G. Em outra modalidade, a conexão por rajada pode corresponder a velocidades de transferência mais altas na mesma conexão original.
[047] Em uma modalidade, o dispositivo de fluxo contínuo determina se conectividade intermitente está disponível com base na etiqueta ou classificação indicada pela conectividade corrente. Em outra modalidade, o dispositivo de fluxo contínuo compara a velocidade de transferência corrente ou mais recente à velocidade de transferência histórica (por exemplo, nos cinco segmentos ou sessenta segundos anteriores). Se a velocidade corrente exceder um limite predefinido, quando comparada à velocidade original (ou no abstrato, sem comparação à velocidade inicial), o dispositivo de fluxo contínuo pode determinar que conectividade intermitente está disponível.
[048] Se conectividade intermitente não estiver disponível, o método 300 retorna para o bloco 305. Neste modo, o dispositivo de fluxo contínuo continua a transferir dados por meio do armazenamento temporário, tal como normal. Se o dispositivo de fluxo contínuo determinar que conectividade intermitente está disponível, o método 300 continua para o bloco 315, onde o dispositivo de fluxo contínuo cria um cache para ser usado para transferir dados por meio da conectividade intermitente (ou determina para começar a usar um cache pré-existente). Em uma modalidade, isto inclui alocar algum a parte de memória ou armazenamento para os dados. Em uma modalidade, o cache é maior que o armazenamento temporário (ou será ilimitado e poderá crescer tal como necessário).
[049] O método 300 então continua para o bloco 320, onde o dispositivo de fluxo contínuo começa a transferir dados (por exemplo, segmentos subsequentes da mídia) para o cache usando a conectividade intermitente. Em modalidades, porque a conectividade intermitente está associada com velocidades ou larguras de banda mais altas, o dispositivo de fluxo contínuo pode transferir segmentos adicionais imediatamente, em vez de esperar até exatamente antes de eles serem necessários para liberação. Em pelo menos uma modalidade, o dispositivo de fluxo contínuo continua a transferir dados associados com o mesmo fluxo ou taxa de bits. Isto é, se o dispositivo de fluxo contínuo estava transferindo um dado fluxo, variante ou taxa de bits, o dispositivo de fluxo contínuo pode continuar a usar o mesmo fluxo, variante ou taxa de bits ao transferir para o cache. Isto permite ao dispositivo de fluxo contínuo mudar de forma ininterrupta para trás e para frente entre o armazenamento temporário e cache (e entre a conexão inicial e a conexão por rajada).
[050] No bloco 325, o dispositivo de fluxo contínuo determina se a conexão por rajada ainda está disponível. Se assim, o método 300 retorna para o bloco 320. Neste modo, o dispositivo de fluxo contínuo pode continuar a transferir dados na velocidade mais alta até que a conectividade intermitente não esteja mais disponível, ou que algum outro critério esteja satisfeito. Tal como discutido acima, este critério pode incluir determinar se a mídia total (por exemplo, o show inteiro) foi transferida e outros mais. Em pelo menos uma modalidade, o dispositivo de fluxo contínuo pode ser habilitado para transferir uma quantidade máxima predefinida de dados para o cache. Por exemplo, com base em licenciamento ou em algum outro critério, o dispositivo de fluxo contínuo pode ser autorizado para pré-transferir uma quantidade predefinida de dados (por exemplo, até cinquenta segmentos ou dez minutos).
[051] Retornando para o bloco 325, se o dispositivo de fluxo contínuo determinar que conectividade intermitente não está mais disponível, o método 300 retorna para o bloco 305 para transferir dados para o armazenamento temporário usando a conectividade inicial. Em pelo menos uma modalidade, em vez de começar i mediatamente a transferir em fluxo contínuo na taxa inicial, o dispositivo de fluxo contínuo pode esperar até que o cache esteja vazio (ou quase vazio), tal como discutido acima.
[052] Vantajosa m ente, o método 300 permite que o dispositivo de fluxo contínuo mude suavemente entre modos diferentes de conectividade enquanto que aproveitando ao máximo a conectividade intermitente temporária para pré-transferir dados para um cache.
[053] A figura 4 é um fluxograma ilustrando um método 400 para transferir em fluxo contínuo segmentos de mídia em condições de redes dinâmicas, de acordo com algumas modalidades reveladas neste documento. Em uma modalidade, o método 400 é executado por um dispositivo de fluxo contínuo (por exemplo, o Dispositivo de Fluxo Contínuo 105). Em uma modalidade, o método 400 corresponde a transferir em fluxo contínuo segmentos de mídia especificamente (tal como comparado a dados mais genéricos), e fornece detalhe adicional para tal modalidade. O método 400 começa no bloco 405, onde o dispositivo de fluxo contínuo seleciona uma taxa de bits de segmento para transferir em fluxo contínuo.
[054] Por exemplo, usando lógica de taxa de bits adaptativa, o dispositivo de fluxo contínuo pode determinar qual taxa de bits deve utilizar com base, em parte, na largura de banda disponível ou velocidade de transferência corrente no dispositivo de fluxo contínuo. Tal como usado neste documento, uma dada taxa de bits alternativa mente pode ser referida como uma "variante", um "fluxo" e outros mais. Em modalidades, selecionar uma taxa de bits compreende selecionar uma versão ou variante particular da mídia a ser transferida. Embora taxas de bits mais altas frequentemente esteja m associadas com vídeo/áudio de qualidade mais alta, elas também exige m maior largura de banda para transferência com segurança. Assim, o dispositivo de fluxo contínuo pode selecionar uma taxa de bits que assegura fluxo contínuo confiável na qualidade mais alta possível.
[055] No bloco 410, o dispositivo de fluxo contínuo transfere segmento(s) da mídia associada com a taxa de bits selecionada para um armazenamento temporário. Tal como discutido acima, estes segmentos armazenados temporariamente são então liberados sequencial m ente. No bloco 415, o dispositivo de fluxo contínuo determina se ele terminou de transferir a mídia. Por exemplo, se o dispositivo de fluxo contínuo estiver transferindo em fluxo contínuo um filme, o dispositivo de fluxo contínuo pode determinar se o último segmento de mídia no filme foi transferido. Se assim, o método 400 termina no bloco 420. Isto é, na modalidade ilustrada, neste modo, o dispositivo de fluxo contínuo interromperá transferência quando ele tiver terminado o fluxo corrente se ele ainda estiver usando a conexão inicial.
[056] Se o dispositivo de fluxo contínuo determinar que ele não terminou de transferir em fluxo contínuo a mídia, o método 400 continua para o bloco 425. No bloco 425, o dispositivo de fluxo contínuo determina se uma conexão por rajada está disponível, tal como discutido acima. Se conectividade intermitente não estiver disponível, o método 400 retorna para o bloco 410. Neste modo, o dispositivo de fluxo contínuo pode continuar a transferir dados na taxa de bits selecionada inicial por meio da conectividade inicial. Se o dispositivo de fluxo contínuo determinar que conectividade intermitente está disponível, o método 400 continua para o bloco 430.
[057] No bloco 430, o dispositivo de fluxo contínuo transfere segmento(s) subsequente(s) da mídia para um cache. Em uma modalidade, este cache pode ficar localizado em armazenamento ou em qualquer localização adequada. O cache pode ser maior que o armazenamento temporário, associado com um tamanho ilimitado ou não restringido, ou ambos. Na modalidade ilustrada, embora estes segmentos possam ser transferidos em uma velocidade de transferência mais alta (por causa da maior largura de banda da conexão por rajada), o dispositivo de fluxo contínuo continua a transferir segmentos na mesma taxa de bits/variante. Isto assegura que, se a conectividade intermitente for perdida repentinamente (por exemplo, por causa de sua natureza transitória e instável), os segmentos subsequentes podem ser transferidos usando a conexão original sem interrupção.
[058] No bloco 435, o dispositivo de fluxo contínuo determina se ele terminou de transferir a mídia selecionada (por exemplo, o episódio ou filme que está sendo transferido em fluxo contínuo). Se não, o método 400 continua para o bloco 445. Se o dispositivo de fluxo contínuo tiver terminado de transferir a mídia corrente, o método 400 prossegue para o bloco 440, onde o dispositivo de fluxo contínuo identifica a próxima mídia. Em uma modalidade, o dispositivo de fluxo contínuo faz isso ao consultar o servidor ou provedor de conteúdo. O servidor de conteúdo então pode determinar qual mídia deve ser transferida em fluxo contínuo a seguir (por exemplo, usando uma sequência definida de mídia, usando algoritmos preditivos para sugerir mídias para o usuário e outros m ais). Isto permite ao dispositivo de fluxo contínuo pré-armazenar em cache mídias para o próximo fluxo que o usuário pode querer ver. O método 400 então continua para o bloco 445.
[059] No bloco 445, o dispositivo de fluxo contínuo determina se a conectividade intermitente ainda está disponível. Se assim, o método 400 retorna para o bloco 430 para continuar a transferir segmentos para o cache na velocidade aumentada. Se a conectividade intermitente não estiver mais disponível, o método 400 retorna para o bloco 410 para continuar a transferir em fluxo contínuo usando a conexão original. Em pelo menos uma modalidade, tal como discutido acima, o dispositivo de fluxo contínuo pode pausar transferência até que o cache tenha sido consumido.
[060] Adicional m ente, em algum as modalidades, se o dispositivo de fluxo contínuo tiver começado a transferir um fluxo de mídia separado (por exemplo, o próximo episódio em uma série), o método 400 pode terminar, em vez de continuar a transferir segmentos da próxima mídia, a não ser que o dispositivo de fluxo contínuo tenha realmente começado a consumir a próxima mídia. Isto é, a não ser que o usuário tenha terminado a primeira mídia e começado a liberar a segunda, o dispositivo de fluxo contínuo não continuará a transferir a segunda mídia na conectividade inicial.
[061] A figura 5 é um fluxograma ilustrando um método 500 para transferir dados em condições de redes dinâmicas, de acordo com algumas modalidades reveladas neste documento. O método 500 começa no bloco 505, onde um dispositivo (porexemplo, um Dispositivo de Fluxo Contínuo 105) transfere uma primeira parte de dados para um armazenamento temporário em uma primeira velocidade de transferência. No bloco 510, o dispositivo libera, do armazenamento temporário, a primeira parte de dados. O método 500 então continua para o bloco 515 onde, ao determinar que o dispositivo está transferindo dados em uma segunda velocidade de transferência maior que a primeira velocidade de transferência, o dispositivo determina para usar um cache para uma ou mais partes subsequentes de dados e transfere uma segunda parte de dados para o cache. No bloco 520, ao determinar que o armazenamento temporário está vazio, o dispositivo libera a segunda parte de dados do cache.
[062] A figura 6A é um diagrama de blocos de um Dispositivo de Computação 600A configurado para transferir dados em condições de redes dinâmicas, de acordo com algum as modalidades reveladas neste documento. Em uma modalidade, o Dispositivo de Computação 600A é um Dispositivo de Fluxo Contínuo 105. Embora representado como um dispositivo físico, em modalidades, o Dispositivo de Computação 600A pode ser implementado como um dispositivo ou serviço virtual, ou através de diversos dispositivos (por exemplo, em um ambiente de nuvem). Tal como ilustrado, o Dispositivo de Computação 600A inclui um Processador 605, a Memória 610, o Armazenamento 615, a Interface de Entrada/Saída 620 e uma Interface de Rede 625. Na modalidade ilustrada, o Processador 605 recupera e executa instruções de programação armazenadas na Memória 610, assim como armazena e recupera dados de aplicação residindo no Armazenamento 615. O Processador 605 de uma maneira geral é representativo de uma única CPU, uma GPU, uma CPU e uma GPU, múltiplas CPUs, múltiplas GPUs, uma única CPU ou GPU tendo múltiplos núcleos de processamento e outros mais. A Memória 610 de uma maneira geral é incluída para ser representativa de uma memória de acesso aleatório. O Armazenamento 615 pode ser qualquer combinação de componentes de memória ou de armazenamento, incluindo (mas não limitado a isto) unidades de disco, dispositivos de armazenamento baseados em flash e outros mais, e pode incluir dispositivos de armazenamento fixos, dispositivos de armazenamento removíveis ou uma combinação de ambos, tais como unidades de disco fixas, placas de memória removíveis, caches, armazenamento ótico, armazenamento conectado à rede (NAS), ou redes de áreas de armazenamentos (SAN).
[063] Em algum as modalidades, os Dispositivos de Entrada/Saída 635 (tais como um mouse, um teclado, um monitor, uma tela sensível ao toque, etc.) são conectados por meio da(s) Interface(s) de Entrada/Saída 620. Além disso, por meio da Interface de Rede 625, o Dispositivo de Computação 600A pode ser acoplado de forma comunicativa a um ou mais outros dispositivos e componentes (diretamente ou indireta m ente), tais como servidores de conteúdo, por meio de uma ou mais redes.
[064] Na modalidade ilustrada, o Armazenamento 615 inclui um Cache de Dados 650A. Em modalidades, o Cache de Dados 650A de uma maneira geral é usado para armazenar partes de dados que são transferidos em uma velocidade de rajada, tal como discutido acima. Em algum as modalidades, o Cache de Dados 650A é ilimitado, em que ele pode ser expandido para armazenar qualquer quantidade de dados. Por exemplo, desde que a conexão por rajada esteja disponível, o Dispositivo de Computação 600A pode continuar a transferir segmentos para o Cache de Dados 650A, expandindo o mesmo tal como necessário.
[065] Tal como ilustrado, a Memória 610 inclui um Armazenamento Temporário de Dados 645. Uma Aplicação de Fluxo Contínuo 640 está representada como residindo no Armazenamento 615. Embora representada como software, em modalidades, a funcionalidade da Aplicação de Fluxo Contínuo 640 pode ser implementada usando hardware, software ou uma combinação de hardware e software. A Memória 610 pode ser usada para armazenar temporariamente a Aplicação de Fluxo Contínuo 640 enquanto o processador executa as instruções da Aplicação de Fluxo Contínuo 640 durante tempo de execução. Em uma modalidade, o Armazenamento Temporário de Dados 645 é fixado em tamanho. A Aplicação de Fluxo Contínuo 640 de uma maneira geral é configurada para executar uma ou mais modalidades reveladas neste documento. Por exemplo, a Aplicação de Fluxo Contínuo 640 pode transferir dados, por exemplo, de um servidor de conteúdo, para o Armazenamento Temporário de Dados 645 quando conectividade usual está disponível. Quando velocidades de rajada estão disponíveis, a Aplicação de Fluxo Contínuo 640 pode começar a transferir dados em fluxo contínuo para o Cache de Dados 650A.
[066] A figura 6B é um diagrama de blocos de um Dispositivo de Computação 600B alternativo configurado a transferir dados em condições de redes dinâmicas, de acordo com algum as modalidades reveladas neste documento. Na modalidade ilustrada, em vez de usar o Armazenamento 615 para hospedar o cache, o Dispositivo de Computação 600B inclui ambos de o Armazenamento Temporário de Dados 645 e o Cache de Dados 650B na Memória 610. Em uma modalidade, a Aplicação de Fluxo Contínuo 640 pode transferir dados para o Armazenamento Temporário de Dados 645 tal como discutido acima. Quando velocidades de rajada estão disponíveis, na modalidade ilustrada, a Aplicação de Fluxo Contínuo 640 transfere dados para o Cache de Dados 650B na Memória 610. Isto é, em vez de alocar um cache no Armazenamento 615, o sistema aloca um cache na Memória 610. Em pelo menos uma modalidade, em vez de alocar um Cache de Dados 650B separado, a Aplicação de Fluxo Contínuo 640 em vez disso pode aumentar o tamanho do Armazenamento Temporário de Dados 645 à medida que novos dados são transferidos na velocidade de rajada.
[067] Em uma modalidade, a Aplicação de Fluxo Contínuo 640 transfere dados para o Cache de Dados 650B até que a conectividade intermitente não esteja mais disponível. Em algum as modalidades, se o Cache de Dados 650B alcançar um tamanho predefinido (isto é, se uma quantidade predefinida de dados já tiver sido transferida para o Cache de Dados 650B), a Aplicação de Fluxo Contínuo 640 pode alocar outro cache em Armazenamento 615 para continuar a transferir dados.
[068] Na corrente revelação, referência é feita para várias modalidades. Entretanto, deve ser entendido que a presente revelação não está limitada às modalidades específicas descritas. Em vez disso, qualquer combinação dos recursos e elementos seguintes, se relacionada com modalidades diferentes ou não, é considerada para implementar e praticar os preceitos fornecidos neste documento. Adicional m ente, quando elementos das modalidades são descritos na forma de "pelo menos um de A e B", será entendido que modalidades incluindo o elemento A exclusiva mente, incluindo o elemento B exclusivamente e incluindo os elementos A e B são todas consideradas. Além disso, embora algum as modalidades possa m alcançar vantagens em relação a outras possíveis soluções ou em relação à técnica anterior, se uma vantagem particular é alcançada ou não por uma dada modalidade não é limitação da presente revelação. Assim, os aspectos, recursos, modalidades e vantagens revelados neste documento são meramente ilustrativos e não são considerados como elementos ou limitações das reivindicações anexas exceto onde relatado explicita mente em uma(s) reivindicação(ões). Igualmente, referência para "a invenção" não deve ser interpretada como uma generalização de qualquer matéria em questão inventiva revelada neste documento e não deve ser considerada para ser um elemento ou limitação das reivindicações anexas exceto onde relatado explicita mente em uma(s) reivindicação(ões).
[069] Tal como será percebido por uma pessoa versada na técnica, modalidades descritas neste documento podem ser incorporadas como um sistema, método ou produto de programa de computador. Portanto, modalidades podem ter a forma de uma modalidade totalmente de hardware, uma modalidade totalmente de software (incluindo firmware, software residente, microcódigo, etc.) ou uma modalidade combinando aspectos de software e de hardware que de uma maneira geral podem todos ser referidos neste documento como um "circuito"," módulo" ou "sistema". Além disso, modalidades descritas neste documento podem ter a forma de um produto de programa de computador incorporado em uma ou mais mídias legíveis por computador tendo código de programa legível por computador incorporado às mesmas.
[070] Código de programa incorporado em uma mídia legível por computador pode ser transmitido usando qualquer mídia apropriada, incluindo, mas não limitado a isto, sem fio, com fio, cabo de fibra ótica, RF, etc., ou qualquer combinação adequada dos indicados acima.
[071] Código de programa de computador para executar operações para modalidades da presente revelação pode ser gravado em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada a objetos tal como Java, Smalltalk, C++ ou algo semelhante e linguagens de programação processual convencional, tais como a linguagem de programação "C" ou linguagens de programação similares. O código de programa pode executar total mente no computador do usuário, parcialmente no computador do usuário, como um pacote de software autônomo, parcialmente no computador do usuário e parcialmente em um computador remoto ou totalmente no computador ou servidor remoto. No último cenário, o computador remoto pode ser conectado ao computador do usuário por meio de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede de área ampla (WAN), ou a conexão pode ser feita para um computador externo (por exemplo, por meio da Internet usando um Provedor de Serviços de Internet).
[072] Aspectos da presente revelação são descritos neste documento com referência para ilustrações de fluxogramas ou diagramas de blocos de métodos, aparelhos (sistemas) e produtos de programas de computador de acordo com modalidades da presente revelação. Será entendido que cada bloco das ilustrações de fluxogramas ou diagramas de blocos, e combinações de blocos nas ilustrações de fluxogramas ou diagramas de blocos, pode ser implementado por meio de instruções de programa de computador. Estas instruções de programa de computador podem ser fornecidas para um processador de um computador de uso geral, computador de uso especial ou de outro aparelho de processamento de dados programável para produzir uma máquina, de tal maneira que as instruções, as quais executa m por meio do processador do computador ou de outro aparelho de processamento de dados programável, criam meios para implementar as funções/procedimentos especificados no(s) bloco(s) das ilustrações de fluxogramas ou diagramas de blocos.
[073] Estas instruções de program a de computador também podem ser armazenadas em uma mídia legível por computador que pode direcionar um computador, outro aparelho de processamento de dados programável ou outro dispositivo para funcionar em um modo particular, de tal maneira que as instruções armazenadas na mídia legível por computador produze m um artigo de fabricação incluindo instruções que implementam a função/procedimento especificado no(s) bloco(s) das ilustrações de fluxogramas ou diagramas de blocos.
[074] As instruções de programa de computador também podem ser carregadas em um computador, outro aparelho de processamento de dados programável ou outro dispositivo para fazer com que uma série de etapas operacionais seja executada no computador, outro aparelho programável ou outro dispositivo para produzir um processo implementado por computador de tal maneira que as instruções que executa m no computador, outro aparelho de processamento de dados programável ou outro dispositivo fornece m processos para implementar as funções/procedimentos especificados no(s) bloco(s) das ilustrações de fluxogramas ou diagramas de blocos.
[075] As ilustrações de fluxogramas e diagramas de blocos nas figuras ilustram a arquitetura, funcionalidade e operação de implementações possíveis de sistemas, métodos e produtos de program as de computador de acordo com várias modalidades da presente revelação. Neste aspecto, cada bloco nas ilustrações de fluxogramas ou diagramas de blocos pode representar um módulo, segmento ou parte de código, o qual compreende uma ou mais instruções executáveis para implementar a(s) função(s) lógica(s) especificada(s). Também deve ser notado que, em algum as implementações alternativas, as funções notadas no bloco podem ocorrer fora da ordem indicada nas figuras. Por exemplo, dois blocos mostrados em sucessão, de fato, podem ser executados substancialmente de forma concorrente, ou os blocos algum as vezes podem ser executados na ordem inversa ou fora de ordem, dependendo da funcionalidade envolvida. Também deve ser notado que cada bloco dos diagramas de blocos ou ilustrações de fluxogramas, e combinações de blocos nos diagramas de blocos ou ilustrações de fluxogramas, pode ser implementado por meio de sistemas baseados em hardware de uso especial que executa m as funções ou procedimentos especificados, ou por combinações de hardware de uso especial e instruções de computador.
[076] Embora o exposto anteriormente esteja direcionado para modalidades da presente revelação, outras e modalidades adicionais da revelação podem ser imaginadas sem divergir do escopo básico da mesma, e o escopo da mesma é determinado pelas reivindicações que se segue m.

Claims (21)

  1. Método, caracterizado pelo fato de que compreende: transferir (505), por um dispositivo, uma primeira parte de dados para um armazenamento temporário em uma primeira velocidade de transferência;
    liberar (510), do armazenamento temporário, a primeira parte de dados;
    ao determinar (515) que o dispositivo está transferindo dados em uma segunda velocidade de transferência maior que a primeira velocidade de transferência:
    determinar para usar um cache para uma ou mais partes subsequentes de dados; e
    transferir uma segunda parte de dados para o cache; e
    ao determinar (520) que o armazenamento temporário está vazio, liberar a segunda parte de dados do cache.
  2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:
    ao determinar que o dispositivo não está mais transferindo dados na segunda velocidade de transferência:
    transferir uma terceira parte de dados para o armazenamento temporário.
  3. Método de acordo com a reivindicação 1, caracterizado pelo fato de que as primeira e segunda partes de dados são de uma pluralidade de partes de dados associados com um primeiro fluxo de dados, o método compreendendo adicional m ente:
    ao determinar que o dispositivo está transferindo dados na segunda velocidade de transferência, transferir todas as partes subsequentes de dados da pluralidade de partes de dados para o cache.
  4. Método de acordo com a reivindicação 3, caracterizado pelo fato de que compreende adicionalmente:
    ao determinar que todas da pluralidade de partes de dados foram transferidas para o cache:
    identificar um segundo fluxo de dados com base pelo menos em parte no primeiro fluxo de dados; e
    transferir pelo menos uma parte de dados associados com o segundo fluxo de dados para o cache.
  5. Método de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo transfere a primeira parte de dados usando uma primeira rede, e em que determinar que o dispositivo está transferindo dados na segunda velocidade de transferência compreende determinar que o dispositivo começou a transferir dados usando uma segunda rede.
  6. Método de acordo com a reivindicação 1, caracterizado pelo fato de que determinar que o dispositivo está transferindo dados na segunda velocidade de transferência compreende determinar que a segunda velocidade de transferência excede um limite predefinido, quando comparada à primeira velocidade de transferência.
  7. Método de acordo com a reivindicação 6, caracterizado pelo fato de que determinar que a segunda velocidade de transferência excede um limite predefinido compreende comparar a segunda velocidade de transferência com velocidades de transferência históricas usando uma janela deslizante.
  8. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a segunda parte de dados é transferida para o cache na segunda velocidade de transferência, e em que a primeira parte de dados e a segunda parte de dados são ambas associadas com uma primeira taxa de bits de uma pluralidade de taxas de bits.
  9. Mídia não transitória legível por computador, caracterizada pelo fato de que contém código de programa de computador que, quando executado pela operação de um ou mais processadores de computador (605), executa uma operação compreendendo:
    Transferir (505), por um dispositivo, uma primeira parte de dados para um armazenamento temporário em uma primeira velocidade de transferência;
    Liberar (510), do arm azenamento temporário, a primeira parte de dados;
    ao determinar (515) que o dispositivo está transferindo dados em uma segunda velocidade de transferência maior que a primeira velocidade de transferência:
    determinar para usar um cache para uma ou mais partes subsequentes de dados; e transferir uma segunda parte de dados para o cache; e
    ao determinar (520) que o arm azenamento temporário está vazio, liberar a segunda parte de dados do cache.
  10. Mídia legível por computador de acordo com a reivindicação 9, caracterizada pelo fato de que a operação compreende adicional m ente:
    ao determinar que o dispositivo não está mais transferindo dados na segunda velocidade de transferência:
    transferir uma terceira parte de dados para o armazenamento temporário.
  11. Mídia legível por computador de acordo com a reivindicação 9, caracterizada pelo fato de que as primeira e segunda partes de dados são de uma pluralidade de partes de dados associados com um primeiro fluxo de dados, a operação compreendendo adicional m ente:
    ao determinar que o dispositivo está transferindo dados na segunda velocidade de transferência, transferir todas as partes subsequentes de dados da pluralidade de partes de dados para o cache.
  12. Mídia legível por computador de acordo com a reivindicação 11, caracterizada pelo fato de que a operação compreende adicional m ente:
    ao determinar que todas da pluralidade de partes de dados foram transferidas para o cache:
    identificar um segundo fluxo de dados com base pelo menos em parte no primeiro fluxo de dados; e
    transferir pelo menos uma parte de dados associados com o segundo fluxo de dados para o cache.
  13. Mídia legível por computador de acordo com a reivindicação 9, caracterizada pelo fato de que o dispositivo transfere a primeira parte de dados usando uma primeira rede, e em que determinar que o dispositivo está transferindo dados na segunda velocidade de transferência compreende determinar que o dispositivo começou a transferir dados usando uma segunda rede.
  14. Mídia legível por computador de acordo com a reivindicação 9, caracterizada pelo fato de que determinar que o dispositivo está transferindo dados na segunda velocidade de transferência compreende determinar que a segunda velocidade de transferência excede um limite predefinido, quando comparada à primeira velocidade de transferência.
  15. Sistema, caracterizado pelo fato de que compreende:
    um ou mais processadores (605) de computador; e
    uma mídia de armazenamento contendo um programa que quando executado pelo um ou mais processadores (605) de computador executa uma operação, a operação compreendendo:
    transferir (505), pelo sistema, uma primeira parte de dados para um armazenamento temporário em uma primeira velocidade de transferência;
    liberar (510), do armazenamento temporário, a primeira parte de dados;
    ao determinar (515) que o sistema está transferindo dados em uma segunda velocidade de transferência maior que a primeira velocidade de transferência:
    determinar para usar um cache para uma ou mais partes subsequentes de dados; e
    transferir uma segunda parte de dados para o cache; e
    ao determinar (520) que o armazenamento temporário está vazio, liberar a segunda parte de dados do cache.
  16. Sistema de acordo com a reivindicação 15, caracterizado pelo fato de que a operação compreende adicional m ente:
    ao determinar que o sistema não está mais transferindo dados na segunda velocidade de transferência:
    transferir uma terceira parte de dados para o armazenamento temporário.
  17. Sistema de acordo com a reivindicação 15, caracterizado pelo fato de que as primeira e segunda partes de dados são de uma pluralidade de partes de dados associados com um primeiro fluxo de dados, a operação compreendendo adicional m ente:
    ao determinar que o sistema está transferindo dados na segunda velocidade de transferência, transferir todas as partes subsequentes de dados da pluralidade de partes de dados para o cache.
  18. Sistema de acordo com a reivindicação 17, caracterizado pelo fato de que a operação compreende adicional m ente:
    ao determinar que todas da pluralidade de partes de dados foram transferidas para o cache:
    identificar um segundo fluxo de dados com base pelo menos em parte no primeiro fluxo de dados; e
    transferir pelo menos uma parte de dados associados com o segundo fluxo de dados para o cache.
  19. Sistema de acordo com a reivindicação 15, caracterizado pelo fato de que transfere a primeira parte de dados usando uma primeira rede, e em que determinar que o sistema está transferindo dados na segunda velocidade de transferência compreende determinar que o sistema começou a transferir dados usando uma segunda rede.
  20. Sistema de acordo com a reivindicação 15, caracterizado pelo fato de que compreende adicional mente uma memória (610), em que o armazenamento temporário é uma parte alocada da memória, e em que o cache é uma parte alocada da mídia de armazenamento.
  21. Método, caracterizado pelo fato de que compreende:
    Transferir (505), por um dispositivo, uma primeira parte de dados para um arm azenamento temporário em uma primeira velocidade de transferência;
    Liberar (510), do armazenamento temporário, a primeira parte de dados;
    ao determinar (515) que o dispositivo está transferindo dados em uma segunda velocidade de transferência maior que a primeira velocidade de transferência:
    expandir um tamanho do armazenamento temporário; e
    transferir uma segunda parte de dados para o armazenamento temporário.
BR102021021089-3A 2020-11-04 2021-10-21 Método, mídia não transitória legível por computador e sistema BR102021021089A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/089,317 US11178198B1 (en) 2020-11-04 2020-11-04 Buffering data on high bandwidth networks
US17/089,317 2020-11-04

Publications (1)

Publication Number Publication Date
BR102021021089A2 true BR102021021089A2 (pt) 2022-05-17

Family

ID=78332667

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102021021089-3A BR102021021089A2 (pt) 2020-11-04 2021-10-21 Método, mídia não transitória legível por computador e sistema

Country Status (6)

Country Link
US (3) US11178198B1 (pt)
EP (1) EP3996356B1 (pt)
JP (2) JP2022075540A (pt)
KR (1) KR102543019B1 (pt)
CN (1) CN114449335A (pt)
BR (1) BR102021021089A2 (pt)

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194609A1 (en) * 2001-06-18 2002-12-19 Tran Thanh T. Video client with dynamically allocable video buffer for efficiently streaming video
CN100431359C (zh) 2002-06-21 2008-11-05 汤姆森许可贸易公司 把节目无线地下载到移动终端的方法
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
WO2009149100A1 (en) 2008-06-06 2009-12-10 Amazon Technologies, Inc. Client side stream switching
US20120054362A1 (en) * 2010-08-31 2012-03-01 Canon Kabushiki Kaisha Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
JP2012080417A (ja) 2010-10-04 2012-04-19 Pioneer Electronic Corp ストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体
DE102011017387A1 (de) 2010-12-17 2012-06-21 Epcos Ag Thermoelektrisches Modul und Verwendung eines thermoelektrischen Moduls
US8769144B2 (en) * 2011-05-19 2014-07-01 Mobitv, Inc. Contextually aware client buffer thresholds
JP5966265B2 (ja) * 2011-07-15 2016-08-10 株式会社リコー データ転送装置及び画像形成システム
US8396983B1 (en) 2012-03-13 2013-03-12 Google Inc. Predictive adaptive media streaming
US9462021B2 (en) * 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US9300734B2 (en) * 2012-11-21 2016-03-29 NETFLIX Inc. Multi-CDN digital content streaming
US20140369329A1 (en) * 2013-06-18 2014-12-18 Qualcomm Incorporated Lte and external wifi bandwidth aggregation
US10933209B2 (en) * 2013-11-01 2021-03-02 Georama, Inc. System to process data related to user interactions with and user feedback of a product while user finds, perceives, or uses the product
US9680957B2 (en) 2014-08-11 2017-06-13 Harman International Industries, Incorporated Adaptive bandwidth consumption optimization for wireless data connections
WO2016032907A1 (en) 2014-08-26 2016-03-03 Opanga Networks, Inc. Systems and methods for conditional download using idle network capacity
WO2016038611A1 (en) * 2014-09-08 2016-03-17 Liveu Ltd. Methods and systems for managing bonded communications across multiple communication networks
US20160198016A1 (en) 2015-01-05 2016-07-07 Onavo Mobile Ltd. Techniques for network resource caching using partial updates
US10277638B2 (en) * 2015-04-14 2019-04-30 Nokia Of America Corporation Providing bonded services at a non-anchor node
WO2016172252A1 (en) * 2015-04-20 2016-10-27 Shoelace Wireless, Inc. Systems for improved mobile internet speed and security
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US20180239729A1 (en) * 2017-02-20 2018-08-23 Intel Corporation Increasing media agnostic universal serial bus (ma usb) throughput using multiple parallel tcp connections
US10448283B2 (en) * 2017-08-07 2019-10-15 T-Mobile Usa, Inc. Dynamic predictive buffering
US10587716B2 (en) 2017-10-26 2020-03-10 Rovi Guides, Inc. Systems and methods for optimizing allocation of bandwidth for pre-caching media content
TWI690202B (zh) * 2018-12-28 2020-04-01 瑞昱半導體股份有限公司 用於控制媒體播放器中之串流緩衝器的方法與相關的緩衝裝置
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
US11570660B2 (en) * 2020-03-18 2023-01-31 Connectify, Inc. Management of data communication connections

Also Published As

Publication number Publication date
EP3996356A1 (en) 2022-05-11
US20220141274A1 (en) 2022-05-05
KR20220060487A (ko) 2022-05-11
CN114449335A (zh) 2022-05-06
US11979446B2 (en) 2024-05-07
US20230239334A1 (en) 2023-07-27
US11627174B2 (en) 2023-04-11
US11178198B1 (en) 2021-11-16
EP3996356B1 (en) 2024-05-08
JP2023156441A (ja) 2023-10-24
KR102543019B1 (ko) 2023-06-13
JP2022075540A (ja) 2022-05-18

Similar Documents

Publication Publication Date Title
US20180314450A1 (en) Data read/write command control method and system, and storage device in nvme over fabric architecture
JP5652971B2 (ja) デジタルコンテンツの配布のための適応型ストリーミング
US7644230B1 (en) Dynamic load management of network memory
US10540296B2 (en) Thresholding task control blocks for staging and destaging
CN110048968B (zh) 一种域名带宽调整方法及装置
US20170094319A1 (en) Adaptive streaming for digital content distribution
US10740241B2 (en) Method and devices for managing cache
US20120195362A1 (en) System and Method for Managing Cache Storage in Adaptive Video Streaming System
CN110022268B (zh) 一种数据传输控制方法、装置及存储介质
US11089099B2 (en) Technologies for managing data object requests in a storage node cluster
BR102021003482A2 (pt) Pré-armazenamento em cache seletivo de fluxos de mídia
US8473676B2 (en) Controlling replication of data among storage devices
US11481145B2 (en) Dynamically throttling host write data rate
CN113315810B (zh) 一种在线音频播放方法及设备
WO2022206244A1 (en) Reduced bandwidth consumption via generative adversarial networks
BR102021021089A2 (pt) Método, mídia não transitória legível por computador e sistema
JP2013200868A (ja) 動的に適応されるキャッシュ格納のためのシステム
US10097637B2 (en) Grid distributed cache
CN115686855A (zh) 缓存数据的访问调度方法、处理器、电子设备及存储介质
BR112021016687A2 (pt) Recuperação adaptativa de objetos do armazenamento remoto
WO2006126143A2 (en) Caching for low power consumption grid peer-to-peer devices
CN116017062A (zh) 一种视频播放方法、装置、电子设备及存储介质
CN117478965A (zh) 点播p2p的播放缓存方法、装置、设备及存储介质
JP2015026260A (ja) データ処理装置、プログラム及びデータ処理方法

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]