BR112016029138B1 - ADAPTIVE BIT RATE SEAMLESS TRANSFER FOR WIRELESS VIDEO - Google Patents

ADAPTIVE BIT RATE SEAMLESS TRANSFER FOR WIRELESS VIDEO Download PDF

Info

Publication number
BR112016029138B1
BR112016029138B1 BR112016029138-7A BR112016029138A BR112016029138B1 BR 112016029138 B1 BR112016029138 B1 BR 112016029138B1 BR 112016029138 A BR112016029138 A BR 112016029138A BR 112016029138 B1 BR112016029138 B1 BR 112016029138B1
Authority
BR
Brazil
Prior art keywords
bitrate
segment
video
encoding
encoded
Prior art date
Application number
BR112016029138-7A
Other languages
Portuguese (pt)
Other versions
BR112016029138A2 (en
Inventor
Chinh T. Cao
Inching Chen
Lei Shao
Yiting Liao
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/327,752 external-priority patent/US9699464B2/en
Application filed by Intel Corporation filed Critical Intel Corporation
Publication of BR112016029138A2 publication Critical patent/BR112016029138A2/en
Publication of BR112016029138B1 publication Critical patent/BR112016029138B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo

Abstract

TRANSFERÊNCIA CONTÍNUA DE TAXA DE BITS ADAPTATIVA PARA VÍDEO SEM FIO. São discutidas técnicas relacionadas à transmissão contínua de taxa de bits adaptativa para vídeo sem fio. Tais técnicas podem incluir a determinação de taxas de bits de candidato para a codificação de segmentos de um vídeo de origem. Um mínimo das taxas de bits de candidato pode ser selecionado e um segmento do vídeo de origem pode ser codificado com base na taxa de bits de codificação selecionada. O fluxo de bits codificado pode ser transmitido sem fio de um dispositivo transmissor para um dispositivo receptor, que pode decodificar o fluxo de bits e apresentar o vídeo decodificado para um usuário.ADAPTIVE BIT RATE SEAMLESS TRANSFER FOR WIRELESS VIDEO. Techniques related to adaptive bitrate streaming for wireless video are discussed. Such techniques may include determining candidate bitrates for encoding segments of a source video. A minimum of the candidate bitrates can be selected and a segment of the source video can be encoded based on the selected encoding bitrate. The encoded bitstream can be transmitted wirelessly from a transmitting device to a receiving device, which can decode the bitstream and present the decoded video to a user.

Description

REIVINDICAÇÃO DE PRIORIDADEPRIORITY CLAIM

[0001] Este pedido reivindica a prioridade do Pedido de patente no de série U.S. 14/327.752, intitulado “ADAPTIVE BITRATE STREAMING FOR WIRELESS VIDEO” e depositado em 10 de julho de 2014, que está aqui incorporado a título de referência, em sua totalidade.[0001] This application claims the priority of U.S. Serial Patent Application No. 14/327,752 entitled “ADAPTIVE BITRATE STREAMING FOR WIRELESS VIDEO” and filed on July 10, 2014, which is incorporated herein by reference, in its entirety.

HISTÓRICOHISTORIC

[0002] A transmissão contínua de conteúdo de vídeo (por exemplo, conteúdo da Internet, conteúdo localmente salvo ou similares) de um dispositivo móvel para uma televisão através de uma tecnologia de exibição sem fio está se tornando cada vez mais popular. Por exemplo, um canal de comunicações Wi-Fi pode ser usado para implantar tecnologia de Exibição Sem Fio (WiDi) e/ou Miracast para permitir que usuários transmitam de modo contínuo vídeos, filmes, fotos ou conteúdo exibido de um dispositivo móvel para uma televisão.[0002] Streaming video content (eg Internet content, locally saved content, or the like) from a mobile device to a television via wireless display technology is becoming increasingly popular. For example, a Wi-Fi communications channel can be used to deploy Wireless Display (WiDi) and/or Miracast technology to allow users to seamlessly stream videos, movies, photos or displayed content from a mobile device to a television. .

[0003] Em algumas implantações, capacidade de canal sem fio pode não ser um gargalo ou uma preocupação durante a transmissão de conteúdo de vídeo através de um canal sem fio. Entretanto, a transmissão contínua de conteúdo de vídeo a uma taxa de bits de codificação desnecessariamente alta através de um canal sem fio pode ocasionar diversos problemas como desperdício de largura de banda sem fio, ocasionando interferência no ambiente da transmissão, e reduzindo a vida útil de bateria do dispositivo móvel que transmite continuamente o conteúdo de vídeo. Em particular, a vida útil de bateria reduzida pode ser considerável e pode degradar a experiência de usuário para um usuário do dispositivo móvel e/ou da televisão. Em outras implantações, a capacidade de canal sem fio pode ser uma preocupação e a transmissão contínua de conteúdo de vídeo a uma taxa de bits inferior pode ser vantajosa para a utilização do canal de comunicações sem fio.[0003] In some deployments, wireless channel capacity may not be a bottleneck or concern when transmitting video content over a wireless channel. However, continuous transmission of video content at an unnecessarily high encoding bit rate over a wireless channel can lead to various problems such as wasting wireless bandwidth, causing interference in the transmission environment, and shortening the life of mobile device battery that continuously streams video content. In particular, the reduced battery life can be considerable and can degrade the user experience for a mobile device and/or television user. In other deployments, wireless channel capacity may be a concern, and streaming video content at a lower bit rate continuously may be advantageous for utilizing the wireless communications channel.

[0004] Soluções atuais de WiDi/Miracast podem definir uma taxa de bits de codificação de vídeo relativamente alta fixa (por exemplo, uma taxa de bits de codificação média de cerca de 9 megabits por segundo (Mbps) e uma taxa de bits de codificação máxima de cerca de 12 Mbps para vídeo com resolução de 1920x1080) para garantir que a transmissão não irá degradar a qualidade do conteúdo original (por exemplo, o conteúdo no dispositivo transmissor) seja qual for o conteúdo de vídeo transmitido de modo contínuo. Tais técnicas podem ocasionar uma vida útil de bateria curta durante transmissão contínua de vídeo tipo WiDi/Miracast. Foram propostas soluções para reduzir a taxa de bits de codificação, mas tais soluções podem não assegurar um vídeo de qualidade ou a qualidade de experiência de usuário no dispositivo de exibição receptor (por exemplo, uma televisão).[0004] Current WiDi/Miracast solutions can set a fixed relatively high video encoding bitrate (for example, an average encoding bitrate of about 9 megabits per second (Mbps) and an encoding bitrate maximum of about 12 Mbps for video with a resolution of 1920x1080) to ensure that the transmission will not degrade the quality of the original content (for example, the content on the transmitting device) whatever video content is streamed continuously. Such techniques can lead to short battery life during continuous streaming of WiDi/Miracast type video. Solutions have been proposed to reduce the encoding bit rate, but such solutions may not ensure quality video or quality user experience on the receiving display device (eg a television).

[0005] Como tal, técnicas existentes não fornecem transmissão contínua sem fio de conteúdo de vídeo com uma taxa de bits reduzida para melhorar a vida útil de bateria no dispositivo transmissor (por exemplo, um dispositivo móvel) e a apresentação de vídeo de alta qualidade no dispositivo receptor (por exemplo, uma televisão). Tais problemas podem se tornar alarmantes conforme o desejo de transmitir conteúdo de vídeo de um dispositivo transmissor para a apresentação de conteúdo de vídeo esteticamente agradável e de alta qualidade em um dispositivo receptor se torna ainda mais difundido.[0005] As such, existing techniques do not provide for wireless streaming of video content at a reduced bit rate to improve battery life in the transmitting device (e.g., a mobile device) and high quality video presentation on the receiving device (for example, a television). Such problems can become alarming as the desire to stream video content from a transmitting device for the presentation of high quality, aesthetically pleasing video content on a receiving device becomes even more pervasive.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0006] O material descrito no presente documento é ilustrado por meio de exemplo e não por meio de limitação nas Figuras anexas. Por uma questão de simplicidade e clareza da invenção, os elementos ilustrados nas Figuras não estão necessariamente em escala. Por exemplo, as dimensões de alguns elementos podem ser exageradas em relação a outros elementos para clareza. Adicionalmente, onde for considerado apropriado, os rótulos de referência foram repetidos dentre as Figuras para indicar ou elementos correspondentes ou análogos. Nas Figuras:[0006] The material described in this document is illustrated by way of example and not by way of limitation in the attached Figures. For the sake of simplicity and clarity of the invention, the elements illustrated in the Figures are not necessarily to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Additionally, where deemed appropriate, reference labels have been repeated within the Figures to indicate either corresponding or analogous elements. In the Figures:

[0007] a Figura 1 é um diagrama ilustrativo de um sistema exemplificador para a transmissão sem fio de conteúdo de vídeo;[0007] Figure 1 is an illustrative diagram of an exemplary system for wireless transmission of video content;

[0008] a Figura 2 ilustra um sistema exemplificador para a codificação de conteúdo de vídeo para a transmissão sem fio;[0008] Figure 2 illustrates an exemplary system for encoding video content for wireless transmission;

[0009] a Figura 3 ilustra um sistema exemplificador para a codificação de conteúdo de vídeo para a transmissão sem fio;[0009] Figure 3 illustrates an exemplary system for encoding video content for wireless transmission;

[0010] a Figura 4 é um fluxograma que ilustra um processo exemplificador para a codificação de conteúdo de vídeo para a transmissão sem fio;[0010] Figure 4 is a flow chart illustrating an exemplary process for encoding video content for wireless transmission;

[0011] a Figura 5 é um fluxograma que ilustra um processo exemplificador para a codificação de conteúdo de vídeo para a transmissão sem fio;[0011] Figure 5 is a flow chart illustrating an exemplary process for encoding video content for wireless transmission;

[0012] a Figura 6 é um digrama ilustrativo de um sistema exemplificativo;[0012] Figure 6 is an illustrative diagram of an exemplary system;

[0013] a Figura 7 é um digrama ilustrativo de um sistema exemplificador; e[0013] Figure 7 is an illustrative diagram of an exemplary system; It is

[0014] a Figura 8 ilustra um dispositivo exemplificador, totalmente disposto de acordo com pelo menos algumas implantações da presente revelação.[0014] Figure 8 illustrates an exemplary device fully arranged in accordance with at least some implementations of the present disclosure.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0015] Uma ou mais modalidades ou implantações serão descritas agora com referência às Figuras anexas. Embora configurações e disposições específicas sejam discutidas, deve ser entendido que isso é feito pra propósitos ilustrativos apenas. As pessoas versadas na técnica relevante reconhecerão que outras configurações e disposições podem ser empregados sem sair do espírito e escopo da descrição. Será também evidente aos versados na técnica relevante que técnicas e/ou disposições descritas no presente documento também podem ser empregadas em uma variedade de outros sistemas e aplicações que não sejam o que está descrito no presente documento.[0015] One or more embodiments or implementations will now be described with reference to the attached Figures. While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. Persons skilled in the relevant art will recognize that other configurations and arrangements may be employed without departing from the spirit and scope of the description. It will also be apparent to those skilled in the relevant art that techniques and/or arrangements described herein may also be employed in a variety of other systems and applications than what is described herein.

[0016] Embora a descrição a seguir estabeleça várias implantações que podem ser manifestadas em arquiteturas como arquiteturas de sistema-em-um-chip (SoC), por exemplo, implantação da técnicas e/ou disposições descritas no presente documento não estão restritas a arquiteturas e/ou sistemas de computação particulares e podem ser implantados por qualquer arquitetura e/ou sistema de computação para propósitos similares. Por exemplo, várias arquiteturas que empregam, por exemplo, chips e/ou pacotes de múltiplos circuitos integrados (IC), e/ou vários dispositivos de computação e/ou dispositivos de eletrônico de consumo (CE) como conversores de sinal, telefones inteligentes, etc., podem implantar a técnicas e/ou disposições descritas no presente documento. Adicionalmente, embora a descrição a seguir possa estabelecer numerosos detalhes específicos como implantações lógicas, tipos e interrelações de componentes de sistema, particionamento lógico/escolhas de integração, etc., a matéria reivindicada pode ser praticada sem tais detalhes específicos. Em outros casos, alguns materiais como, por exemplo, estruturas de controle e sequências completas de instrução de software, podem não ser mostrados em detalhes a fim de não obscurecer o material revelado no presente documento.[0016] While the following description sets out various deployments that can be manifested in architectures such as system-on-a-chip (SoC) architectures, for example, deployment of the techniques and/or arrangements described in this document are not restricted to architectures and/or particular computing systems and may be deployed by any architecture and/or computing system for similar purposes. For example, various architectures employing e.g. chips and/or multiple integrated circuit (IC) packages, and/or various computing devices and/or consumer electronics (CE) devices such as signal converters, smart phones, etc., may implement the techniques and/or arrangements described in this document. Additionally, although the following description may establish numerous specific details such as logical deployments, types and interrelationships of system components, logical partitioning/integration choices, etc., the claimed subject matter can be practiced without such specific details. In other cases, some material, such as control structures and complete software instruction sequences, may not be shown in detail in order not to obscure material disclosed herein.

[0017] O material revelado no presente documento pode ser implantado por hardware, firmware, software ou qualquer combinação dos mesmos. O material revelado no presente documento também pode ser implantado como instruções armazenadas em um meio legível por máquina, que pode ser lida e executada por um ou mais processadores. Uma mídia legível por máquina pode incluir qualquer mídia e/ou mecanismo para armazenar ou transmitir informações em uma forma legível por uma máquina (por exemplo, um dispositivo de computação). Por exemplo, um meio legível por máquina pode incluir memória de apenas leitura (ROM); memória de acesso aleatório (RAM); mídia de armazenamento em disco magnético; mídia de armazenamento óptico; dispositivos de memória flash; elétrica, óptica, acústica ou outras formas de sinais propagados (por exemplo, ondas transportadoras, sinais infravermelhos, sinais digitais, etc.), e outros.[0017] The material disclosed herein may be implanted by hardware, firmware, software or any combination thereof. The material disclosed herein may also be implemented as instructions stored on a machine-readable medium that can be read and executed by one or more processors. Machine-readable media can include any media and/or mechanism for storing or transmitting information in a machine-readable form (eg, a computing device). For example, a machine-readable medium may include read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustic or other forms of propagated signals (eg carrier waves, infrared signals, digital signals, etc.), and others.

[0018] As referências no relatório descritivo à “uma (1) implantação”, “uma implantação”, “uma implantação exemplificadora”, etc., indicam que a implantação descrita pode incluir um recurso, estrutura ou característica particular, mas toda modalidade pode incluir, ou não, necessariamente o recurso, estrutura ou característica particular. Além do mais, tais frases não se referem necessariamente à mesma implantação. Ademais, quando um recurso, estrutura ou característica particular for descrito em conjunto com uma modalidade, sugere-se que esteja dentro do conhecimento de um elemento versado na técnica executar tal recurso, estrutura ou característica em conjunto com outras implantações independente de estarem ou não explicitamente descritas no presente documento.[0018] References in the descriptive report to “one (1) deployment”, “one deployment”, “an exemplary deployment”, etc., indicate that the described deployment may include a particular feature, structure or characteristic, but every modality may include, or not necessarily include, the particular feature, structure or characteristic. Furthermore, such phrases do not necessarily refer to the same deployment. Furthermore, when a particular feature, structure or feature is described in conjunction with a modality, it is suggested that it is within the knowledge of a person skilled in the art to perform such feature, structure or feature in conjunction with other deployments regardless of whether or not they are explicitly stated. described in this document.

[0019] Métodos, dispositivos, aparelhos, plataformas computacionais e artigos são descritos no presente documento em relação à codificação de conteúdo de vídeo para a transmissão sem fio e, em particular, à seleção de uma taxa de bits de codificação para a codificação do conteúdo de vídeo.[0019] Methods, devices, apparatus, computing platforms and articles are described in this document in relation to the encoding of video content for wireless transmission and, in particular, the selection of an encoding bitrate for encoding the content of video.

[0020] Conforme descrito acima, pode ser vantajoso transmitir de modo contínuo conteúdo de vídeo como um vídeo de origem (por exemplo, conteúdo da Internet, conteúdo localmente salvo ou similares) de um dispositivo móvel para uma televisão através de tecnologia de exibição sem fio. Por exemplo, tal sistema pode proporcionar a usuários flexibilidade na apresentação e no compartilhamento de conteúdo. Além disso, conforme discutido, algumas técnicas existentes podem fornecer taxas de bits de codificação relativamente altas fixas que podem diminuir a vida útil de bateria no dispositivo transmissor e/ou ocasionar sobreuso ou esforço excessivo do canal de comunicações sem fio. Outras técnicas existentes pode reduzir taxas de bits de codificação ao custo de qualidade de vídeo diminuída que reduz a experiência de um usuário.[0020] As described above, it may be advantageous to stream video content such as a source video (e.g. Internet content, locally saved content or the like) from a mobile device to a television via wireless display technology. . For example, such a system can provide users with flexibility in presenting and sharing content. Furthermore, as discussed, some existing techniques can provide fixed relatively high encoding bitrates that can decrease battery life in the transmitting device and/or lead to overuse or overstrain of the wireless communications channel. Other existing techniques can reduce encoding bitrates at the cost of diminished video quality that reduces a user's experience.

[0021] Em algumas modalidades discutidas no presente documento, a codificação de conteúdo de vídeo para a transmissão sem fio pode incluir determinar taxas de bits de múltiplos candidatos para a codificação de um segmento de vídeo de origem. Por exemplo, as taxas de bits de candidato podem ser taxas de bits de candidato para a codificação do vídeo de origem com base em o codec local (por exemplo, o codec de vídeo local usado pelo dispositivo transmissor para codificação e pelo dispositivo receptor para decodificação). O codec local pode ser qualquer codec adequado como o codec baseado no padrão de Codificação de Vídeo Avançada (AVC) H.264/MPEG-4 ou no padrão de Codificação de Vídeo de Alta Eficiência (HEVC) ou similares. Uma parcela mínima das taxas de bits de candidato pode ser selecionada para a codificação do segmento e o segmento pode ser codificado com base no codec de vídeo local e na taxa de bits selecionada. O fluxo de bits codificado resultante pode ser transmitido para um dispositivo receptor para decodificação e eventual apresentação para um usuário.[0021] In some embodiments discussed in this document, encoding video content for wireless transmission may include determining bitrates of multiple candidates for encoding a source video segment. For example, candidate bitrates can be candidate bitrates for source video encoding based on the local codec (for example, the local video codec used by the sending device for encoding and the receiving device for decoding ). The local codec can be any suitable codec such as the codec based on the H.264/MPEG-4 Advanced Video Coding (AVC) standard or the High Efficiency Video Coding (HEVC) standard or the like. A minimal portion of the candidate bitrates can be selected for segment encoding and the segment can be encoded based on the local video codec and selected bitrate. The resulting encoded bitstream can be transmitted to a receiving device for decoding and eventual presentation to a user.

[0022] Em alguns exemplos, uma primeira taxa de bits de candidato pode ser determinada com base em uma taxa de bits do vídeo de origem modificada por um fator de escalonamento. Por exemplo, o vídeo de origem pode ser um vídeo de origem compactado que foi compactado com base em um codec de vídeo associado ao vídeo de origem. O codec de vídeo usado para compactar o vídeo de origem pode ser qualquer codec adequado como MPEG-2, padrão H.264/MPEG-4 AVC, o padrão HEVC, o padrão de Áudio e Vídeo (AVS), o codec de Windows Media Video ou similares. Por exemplo, o codec de vídeo local e o codec de vídeo associado à compactação do vídeo de origem podem ser diferentes. Uma taxa de bits associada ao vídeo de origem compactado pode ser determinada (por exemplo, através de uma interface de programação de aplicativo ou similares) e a taxa de bits determinada pode ser modificada por um fator de escalonamento para gerar a primeira taxa de bits de candidato. O fator de escalonamento pode ser um fator de escalonamento adaptativo baseado no codec de vídeo associado ao vídeo de origem compactado e no codec local.[0022] In some examples, a first candidate bitrate may be determined based on a source video bitrate modified by a scaling factor. For example, the source video can be compressed source video that has been compressed based on a video codec associated with the source video. The video codec used to compress the source video can be any suitable codec like MPEG-2, H.264/MPEG-4 AVC standard, HEVC standard, Audio and Video (AVS) standard, Windows Media codec Video or similar. For example, the local video codec and the video codec associated with the source video compression can be different. A bitrate associated with the compressed source video can be determined (e.g. through an application programming interface or the like) and the determined bitrate can be modified by a scaling factor to generate the first bitrate of candidate. The scaling factor can be an adaptive scaling factor based on the video codec associated with the compressed source video and the local codec.

[0023] Ademais, uma segunda taxa de bits de candidato pode ser determinada com base em uma taxa de bits média para o segmento codificado com o uso do codec local ou de um segmento previamente codificado (por exemplo, um segmento prévio no vídeo de origem codificado com o uso do codec local). Em alguns exemplos, um segmento previamente codificado pode ser usado para gerar uma taxa de bits de candidato para um segmento subsequente (por exemplo, um segmento atual). Tais exemplos podem fornecer taxas de bits de codificação de baixa latência e substancialmente em tempo real para codificação e transmissão do vídeo de origem. Em outros exemplos, o próprio segmento pode ser codificado (por exemplo, com base em uma taxa-alvo de bits anterior, uma taxa de bits padrão ou com base em outro parâmetro de codificação) e uma taxa de bits de candidato pode ser determinada para o segmento. Em tais exemplos, após a determinação de uma taxa de bits de codificação selecionada das taxas de bits de candidato, o segmento pode ser codificado (novamente) com base na taxa de bits selecionada. Tais exemplos podem fornecer precisão aumentada na seleção da taxa de bits de codificação ao custo de problemas de latência potencial na transmissão do conteúdo de vídeo para o dispositivo receptor.[0023] Furthermore, a second candidate bitrate can be determined based on an average bitrate for the segment encoded using the local codec or a previously encoded segment (for example, a previous segment in the source video encoded using the local codec). In some examples, a previously encoded segment can be used to generate a candidate bitrate for a subsequent segment (for example, a current segment). Such examples can provide low-latency, substantially real-time encoding bitrates for encoding and streaming the source video. In other examples, the segment itself may be encoded (for example, based on a previous target bitrate, a default bitrate, or based on another encoding parameter) and a candidate bitrate determined to the segment. In such examples, after determining a selected encoding bitrate from candidate bitrates, the segment may be encoded (again) based on the selected bitrate. Such examples can provide increased accuracy in encoding bitrate selection at the cost of potential latency issues in transmitting the video content to the receiving device.

[0024] Em alguns exemplos, uma terceira taxa de bits de candidato pode ser determinada com base em uma previsão de taxa de bits de codificação para o segmento codificado com o uso do codec local ou um segmento previamente codificado (por exemplo, um segmento prévio no vídeo de origem codificado com o uso do codec local). A previsão de taxa de bits de codificação pode ser baseada no fluxo de bits codificado do segmento ou do segmento previamente codificado, um índice médio de opinião desejado selecionado (MOS; por exemplo, uma medida de visão de um usuário de qualidade), limites de taxa de bits mínima e máxima selecionados e coeficientes de qualidade associados ao dispositivo receptor (por exemplo, com base na resolução do dispositivo receptor ou similares). A previsão de taxa de bits de codificação pode fornecer uma previsão de taxa de bits com base em MOS sem referência para a codificação do segmento. Conforme discutido em relação à segunda taxa de bits de candidato, a previsão de taxa de bits de codificação pode ser baseada em uma codificação do próprio segmento ou baseada em uma codificação de um segmento prévio do conteúdo de vídeo.[0024] In some examples, a third candidate bitrate may be determined based on an encoding bitrate prediction for the segment encoded using the local codec or a previously encoded segment (e.g., a previous segment in the source video encoded using the local codec). Encoding bitrate prediction can be based on the encoded bitstream of the segment or the previously encoded segment, a selected desired average opinion index (MOS; for example, a measure of a user's vision of quality), thresholds of selected minimum and maximum bitrate and quality coefficients associated with the receiving device (eg based on the resolution of the receiving device or similar). The encoding bitrate prediction can provide a MOS-based bitrate prediction without reference to the encoding of the segment. As discussed in connection with the second candidate bitrate, encoding bitrate prediction can be based on an encoding of the segment itself or based on an encoding of a previous segment of the video content.

[0025] Uma taxa de bits de codificação selecionada para o segmento pode ser determinada como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato. Ademais, o segmento pode ser codificado com o uso do codec de vídeo local e com base na taxa de bits de codificação selecionada. O fluxo de bits resultante pode ser transmitido sem fio para um dispositivo receptor, que pode decodificar o fluxo de bits para gerar quadros de vídeo para apresentação para um usuário. Tais técnicas podem fornecer taxas de bits reduzidas para transmitir o conteúdo de vídeo, o que pode economizar vida útil de bateria no dispositivo transmissor. Ademais, as técnicas discutidas no presente documento podem fornecer vídeo de alta qualidade com uma taxa de bits de codificação inferior e largura de banda sem fio exigida inferior e melhorar a solidez do desempenho de WiDi/Miracast sob interferência, aprimorando, assim, a experiência do usuário durante a transmissão contínua de vídeo.[0025] A selected encoding bitrate for the segment may be determined as a minimum of the first, second, and third candidate bitrates. Furthermore, the segment can be encoded using the local video codec and based on the selected encoding bitrate. The resulting bitstream can be transmitted wirelessly to a receiving device, which can decode the bitstream to generate video frames for presentation to a user. Such techniques can provide reduced bit rates for transmitting video content, which can save battery life on the transmitting device. Furthermore, the techniques discussed in this document can provide high quality video with a lower encoding bit rate and lower required wireless bandwidth and improve the robustness of WiDi/Miracast performance under interference, thus enhancing the user experience. user during streaming video.

[0026] A Figura 1 é um diagrama ilustrativo de um sistema exemplificador 100 para a transmissão sem fio de conteúdo de vídeo, disposto de acordo com pelo menos algumas implantações da presente revelação. Conforme mostrado na Figura 1, o sistema 100 pode incluir um dispositivo transmissor 101 e um dispositivo receptor 102 acoplado de modo comunicativo através do canal de comunicações sem fio 103. Em alguns exemplos, o dispositivo transmissor 101 pode transmitir, através do canal de comunicações sem fio 103, dados de vídeo codificados para o dispositivo receptor 102. O dispositivo receptor 102 pode receber os dados de vídeo codificados, decodificar os mesmos para gerar quadros de vídeo ou similares, e apresentar o vídeo decodificado para um usuário. Embora ilustrado com um único dispositivo transmissor 101 e um único dispositivo receptor 102 que se comunicam através de um único canal de comunicações sem fio 103, qualquer número de dispositivos transmissores, dispositivos receptores e/ou canais de comunicações sem fio pode ser empregado no sistema 100.[0026] Figure 1 is an illustrative diagram of an exemplary system 100 for wireless transmission of video content, arranged in accordance with at least some implementations of the present disclosure. As shown in Figure 1, the system 100 may include a transmitter device 101 and a receiver device 102 communicatively coupled over the wireless communications channel 103. In some examples, the transmitter device 101 may transmit over the wireless communications channel wire 103, encoded video data to the receiving device 102. The receiving device 102 can receive the encoded video data, decode it to generate video frames or the like, and present the decoded video to a user. Although illustrated with a single transmitter device 101 and a single receiver device 102 communicating over a single wireless communications channel 103, any number of transmitter devices, receiver devices, and/or wireless communications channels may be employed in the system 100 .

[0027] No exemplo ilustrado, dispositivo transmissor 101 é um tablet e o dispositivo receptor 102 é uma televisão. Entretanto, qualquer combinação de dispositivos adequados pode ser implantada através do sistema 100. Por exemplo, o dispositivo transmissor 101 pode incluir qualquer dispositivo adequado como um computador, um laptop, um ultrabook, um telefone inteligente, um tablet ou similares. Ademais, o dispositivo receptor 102 pode incluir qualquer dispositivo adequado como uma televisão, uma televisão inteligente, um computador, um laptop, um ultrabook, um telefone inteligente, um tablet ou similares. Em alguns exemplos, o dispositivo receptor 102 pode ser um decodificador ou um gravador digital ou similares. Em tais exemplos, o dispositivo receptor 102 pode não incluir uma tela , mas o dispositivo receptor 102 pode ser acoplado a uma tela para apresentação de conteúdo de vídeo. Em qualquer caso, o dispositivo transmissor 101 e/ou o dispositivo receptor 102 pode ser descrito como um dispositivo de computação conforme usado no presente documento. Ademais, o conteúdo de vídeo transmitido do dispositivo transmissor 101 para o dispositivo receptor 102 pode incluir qualquer conteúdo de vídeo adequado como um vídeo ou outro conteúdo transferido por download para o dispositivo transmissor 101 através da Internet ou de uma rede de área local ou similares, um arquivo de vídeo ou contentor de vídeo ou outro conteúdo de vídeo salvo em uma memória de dispositivo transmissor, uma transmissão contínua de dados de vídeo ou outras imagens que emulam a tela do dispositivo transmissor 101 (por exemplo, o dispositivo receptor 102 pode espelhar o conteúdo exibido através do dispositivo transmissor 101), fotografias transmitidas de modo contínuo do dispositivo transmissor 101 para o dispositivo receptor 102 ou similares. Em alguns exemplos, o dispositivo receptor 102 e o dispositivo transmissor 101 podem apresentar o mesmo conteúdo para um usuário ou usuários e, em outros exemplos, os mesmos podem apresentar conteúdo diferente.[0027] In the illustrated example, transmitter device 101 is a tablet and receiver device 102 is a television. However, any combination of suitable devices can be deployed through system 100. For example, transmitter device 101 can include any suitable device such as a computer, laptop, ultrabook, smart phone, tablet, or the like. Furthermore, the receiving device 102 can include any suitable device such as a television, a smart television, a computer, a laptop, an ultrabook, a smart phone, a tablet or the like. In some examples, receiver device 102 may be a set-top box or a digital recorder or the like. In such examples, receiver device 102 may not include a screen, but receiver device 102 may be coupled to a screen for displaying video content. In any case, the transmitting device 101 and/or the receiving device 102 can be described as a computing device as used herein. Furthermore, the video content transmitted from the transmitting device 101 to the receiving device 102 may include any suitable video content such as a video or other content downloaded to the transmitting device 101 over the Internet or a local area network or the like, a video file or container of video or other video content saved in a transmitting device's memory, a continuous stream of video data, or other images that emulate the screen of the transmitting device 101 (for example, the receiving device 102 may mirror the content displayed through the transmitter device 101), photographs continuously transmitted from the transmitter device 101 to the receiver device 102, or the like. In some examples, the receiving device 102 and the transmitting device 101 may present the same content to a user or users, and in other examples they may present different content.

[0028] O canal de comunicações sem fio 103 pode ser qualquer enlace sem fio adequado e as comunicações podem ser facilitadas através de qualquer protocolo(s) ou padrão (padrões) adequado(s). Em alguns exemplos, o canal de comunicações sem fio 103 é uma conexão Wi-Fi baseada em um padrão do Instituto de Engenheiros Elétricos e Eletrônicos (IEEE) 802.11 como o 802.11a/b/g/n/ac/ad ou similares. Em outros exemplos, o canal de comunicações sem fio 103 pode ser baseado em uma implantação de um padrão de interoperabilidade de Wi-Fi Multimedia (WMM). Em ainda outros exemplos, o canal de comunicações sem fio 103 pode fornecer comunicações com base em tecnologia de exibição sem fio (WiDi) e/ou com base na implantação de um padrão de difusão de tela sem fio como um padrão Miracast que usa conexões de direção Wi-Fi. Em uma modalidade, o canal de comunicações sem fio 103 faz parte de uma rede de área local sem fio (WLAN).[0028] Wireless communications channel 103 may be any suitable wireless link and communications may be facilitated via any suitable protocol(s) or standard(s). In some examples, wireless communications channel 103 is a Wi-Fi connection based on an Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard such as 802.11a/b/g/n/ac/ad or similar. In other examples, wireless communications channel 103 may be based on an implementation of a Wi-Fi Multimedia Interoperability (WMM) standard. In yet other examples, wireless communications channel 103 can provide communications based on wireless display technology (WiDi) and/or based on the deployment of a wireless screen broadcasting standard such as a Miracast standard that uses wireless connections. WiFi direction. In one embodiment, wireless communications channel 103 forms part of a wireless local area network (WLAN).

[0029] Conforme discutido no presente documento, pode ser vantajoso, mesmo em casos em que a largura de banda do canal de comunicações sem fio 103 não é um gargalo ou uma preocupação, limitar a taxa de bits para transmitir conteúdo de vídeo do dispositivo transmissor 101 para o dispositivo receptor 102. Por exemplo, tal limitação de largura de banda pode preservar a vida útil de bateria do dispositivo transmissor 101. Técnicas discutidas no presente documento podem reduzir a taxa de bits de vídeo transmitido enquanto fornece uma qualidade de vídeo e/ou qualidade de experiência (QoE) desejável para um usuário do sistema 100.[0029] As discussed in this document, it may be advantageous, even in cases where the bandwidth of the wireless communications channel 103 is not a bottleneck or a concern, to limit the bit rate for transmitting video content from the transmitting device 101 to the receiving device 102. For example, such bandwidth throttling can preserve the battery life of the transmitting device 101. Techniques discussed herein can reduce the bit rate of transmitted video while providing a higher video quality and/or or quality of experience (QoE) desirable for a system user 100.

[0030] Por exemplo, as técnicas discutidas no presente documento podem avaliar informações de conteúdo do vídeo de origem (por exemplo, taxa de bits, resolução, complexidade temporal ou similares) e exibem informações associadas ao dispositivo receptor 102 com base em uma ferramenta ou módulo de previsão de taxa de bits de índice médio de opinião (MOS) sem referência (NR) para reduzir a taxa de bits de codificação de vídeo exigida diferentemente para conteúdo de vídeo diferente enquanto alcança uma certa qualidade de vídeo desejada.[0030] For example, the techniques discussed herein can evaluate source video content information (e.g., bitrate, resolution, time complexity, or the like) and display information associated with the receiving device 102 based on a tool or No-Reference (NR) Average Opinion Index (MOS) Bitrate Prediction Module to reduce the differently required video encoding bitrate for different video content while achieving a certain desired video quality.

[0031] A Figura 2 ilustra um sistema exemplificador 200 para a codificação de conteúdo de vídeo para a transmissão sem fio, disposto de acordo com pelo menos algumas implantações da presente revelação. Em alguns exemplos, o sistema 200 pode ser implantado como uma porção do dispositivo transmissor 101. Conforme mostrado na Figura 2, o sistema 200 pode incluir um decodificador 202, um codificador 203, um módulo de previsão de taxa de bits de codificação 204, um módulo de determinação de taxa de bits média de segmento 205, um módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 e um módulo de seleção de taxa de bits 207. Conforme mostrado, o sistema 200 pode receber, obter ou conter (por exemplo, através de memória), o vídeo de origem 201. Além disso, conforme mostrado, em alguns exemplos, o sistema 200 pode receber, obter ou conter múltiplos vídeos de origem incluindo o vídeo de origem 201 e o vídeo de origem 221. Embora ilustrado com dois vídeos de origem 201, 221, qualquer número de vídeos de origem pode ser fornecido. Conforme discutido adicionalmente no presente documento, em alguns exemplos, o vídeo de origem 201 e o vídeo de origem 221 podem ter sido compactados com diferentes codecs de vídeo. No presente documento, a discussão de vídeo de origem irá usar o vídeo de origem 201 para propósitos exemplificadores; no entanto, as técnicas discutidas podem ser usadas com vídeo de origem 221 ou similares. O vídeo de origem 201 pode incluir qualquer conteúdo de vídeo adequado, como aqueles discutido no presente documento, para transmissão para o dispositivo receptor 102 obtido através de qualquer maneira adequada, como transferência por download através da Internet, como salvo em memória, através de um dispositivo de mídia de vídeo ou similares. Conforme discutido, o vídeo de origem 201 pode ser conteúdo de vídeo compactado de modo que o vídeo de origem 201 seja compactado através de um codec de vídeo. O codec de vídeo usado para compactar o vídeo de origem 201 pode ser descrita como um codec de vídeo associado ao vídeo de origem. Em vários exemplos, o codec de vídeo associado ao vídeo de origem pode ser baseado no padrão H.264/MPEG-4 AVC, no padrão HEVC, no Audio Vide Standard (AVS), no codec de Windows Media Video ou qualquer outro padrão adequado. Em alguns exemplos, o vídeo de origem 201 pode ser um arquivo de vídeo ou um contentor ou similares.[0031] Figure 2 illustrates an exemplary system 200 for encoding video content for wireless transmission, arranged in accordance with at least some implementations of the present disclosure. In some examples, system 200 may be deployed as a portion of transmitter device 101. As shown in Figure 2, system 200 may include a decoder 202, an encoder 203, an encoding bitrate prediction module 204, a segment average bitrate determination module 205, an encoded source video based bitrate determination module 206, and a bitrate selection module 207. As shown, the system 200 can receive, obtain, or contain (e.g., through memory), the source video 201. Furthermore, as shown, in some examples, the system 200 may receive, obtain, or contain multiple source videos including source video 201 and source video 221 Although illustrated with two source videos 201, 221, any number of source videos can be supplied. As further discussed herein, in some examples, source video 201 and source video 221 may have been compressed with different video codecs. In this document, the source video discussion will use source video 201 for exemplary purposes; however, the techniques discussed can be used with 221 or similar source video. Source video 201 may include any suitable video content, such as those discussed herein, for transmission to receiving device 102 obtained through any suitable manner, such as downloading over the Internet, as saved in memory, through a video media device or similar. As discussed, source video 201 may be compressed video content such that source video 201 is compressed using a video codec. The video codec used to compress the source video 201 can be described as a video codec associated with the source video. In many instances, the video codec associated with the source video can be based on the H.264/MPEG-4 AVC standard, the HEVC standard, the Audio Vide Standard (AVS), the Windows Media Video codec, or any other suitable standard. . In some examples, source video 201 may be a video file or a container or the like.

[0032] Conforme mostrado, o decodificador 202 pode receber o vídeo de origem 201 ou uma porção do mesmo. O decodificador 202 pode decodificar o vídeo de origem 201 com base no codec de vídeo associado ao vídeo de origem e o decodificador 202 pode transferir o conteúdo de vídeo decodificado ou uma porção decodificada do conteúdo de vídeo para o codificador 203. O codificador 203 pode receber o conteúdo de vídeo decodificado ou a porção decodificada do conteúdo de vídeo. O codificador 203 pode codificar um segmento do conteúdo de vídeo decodificado para gerar segmento codificado (ES) 208 (por exemplo, um fluxo de bits codificado para o segmento do vídeo de origem 201). O segmento do vídeo de origem 201 pode ser qualquer porção adequada do vídeo de origem 201 que tem qualquer número de quadros como 1 a 100 quadros, 1 a 300 quadros ou similares, ou qualquer duração de tempo do vídeo de origem 201 como 1 a 3 segundos ou similares. Conforme discutido, o codificador 203 pode codificar o conteúdo de vídeo decodificado com base em um codec de vídeo local (por exemplo, de modo que a transmissão do conteúdo de vídeo possa ser baseada no codec de vídeo local entre o dispositivo transmissor 101 e o dispositivo receptor 102). O codec de vídeo local pode ser determinado de qualquer maneira adequada como uma negociação entre o dispositivo transmissor 101 e o dispositivo receptor 102, um codec predeterminado, um codec com base em um padrão (por exemplo, WiDi e/ou Miracast) ou similares. Por exemplo, o decodificador 202 pode decodificar o vídeo de origem 201 com base em um primeiro codec de vídeo (por exemplo, um codec de vídeo associado ao vídeo de origem 201) e o codificador 203 pode codificar o conteúdo de vídeo decodificado (ou um segmento do mesmo) com base em um segundo codec de vídeo (por exemplo, um codec de vídeo local). Dessa forma, o decodificador 202 e o codificador 203 podem fornecer uma transcodificação do vídeo de origem 201 de um formato de compactação para outro formato de compactação. Ademais, em alguns exemplos, o segmento codificado 208 também pode ser fornecido como uma porção de fluxo de bits 216 (por exemplo, como uma porção de um fluxo de bits resultante para transmissão para o dispositivo receptor 102).[0032] As shown, decoder 202 may receive source video 201 or a portion thereof. Decoder 202 can decode source video 201 based on the video codec associated with the source video, and decoder 202 can transfer the decoded video content or a decoded portion of the video content to encoder 203. Encoder 203 can receive the decoded video content or the decoded portion of the video content. Encoder 203 may encode a segment of the decoded video content to generate encoded (ES) segment 208 (e.g., a bitstream encoded for source video segment 201). The segment of the source video 201 can be any suitable portion of the source video 201 that has any number of frames such as 1 to 100 frames, 1 to 300 frames or the like, or any time duration of the source video 201 such as 1 to 3 seconds or similar. As discussed, encoder 203 can encode the decoded video content based on a local video codec (e.g., so that transmission of the video content can be based on the local video codec between transmitting device 101 and device receiver 102). The local video codec can be determined in any suitable manner such as a negotiation between the transmitting device 101 and the receiving device 102, a predetermined codec, a standard based codec (eg WiDi and/or Miracast) or the like. For example, decoder 202 may decode source video 201 based on a first video codec (e.g., a video codec associated with source video 201), and encoder 203 may encode the decoded video content (or a segment) based on a second video codec (for example, a local video codec). In this way, the decoder 202 and encoder 203 can provide a transcoding of the source video 201 from one compression format to another compression format. Furthermore, in some examples, encoded segment 208 may also be provided as a portion of bitstream 216 (e.g., as a portion of a resulting bitstream for transmission to receiving device 102).

[0033] O módulo de previsão de taxa de bits de codificação 204 pode receber o segmento codificado 208 (por exemplo, um fluxo de bits para um segmento codificado do vídeo de origem 201), uma taxa de bits máxima e uma taxa de bits mínima (taxas de bits máx, mín) 209, um índice médio de opinião (MOS) 210 e dados de exibição 211. Por exemplo, as taxas de bits máxima e mínima 209 podem ser predefinidas por um padrão ou protocolo de compactação e/ou transmissão, predefinidas por um desenvolvedor de sistema ou heuristicamente determinadas pelo sistema 200 ou similares. As taxas de bits máxima e mínima 209 podem ser qualquer taxa de bits adequada que impõe limites para a transmissão de vídeo de qualidade e limite a largura de banda usada para transmissão. Por exemplo, a taxa de bits máxima pode ser 10 Mbps, 15 Mbps, 20 Mbps ou similares, e a taxa de bits mínima pode ser 1 Mbps, 2 Mbps, 5 Mbps ou similares.[0033] The encoding bitrate prediction module 204 can receive the encoded segment 208 (for example, a bitstream for an encoded segment of the source video 201), a maximum bitrate and a minimum bitrate (max, min bitrates) 209, an average opinion index (MOS) 210 and display data 211. For example, the maximum and minimum bitrates 209 may be predefined by a compression and/or transmission standard or protocol , either predefined by a system developer or heuristically determined by the system 200 or similar. The maximum and minimum bitrates 209 can be any suitable bitrate that imposes limits on quality video transmission and limits the bandwidth used for transmission. For example, the maximum bit rate can be 10 Mbps, 15 Mbps, 20 Mbps or the like, and the minimum bit rate can be 1 Mbps, 2 Mbps, 5 Mbps or the like.

[0034] Ademais, o MOS 210 pode ser qualquer índice médio de opinião adequado e pode ser predefinido por um padrão ou protocolo de compactação e/ou transmissão, predefinido por um desenvolvedor de sistema, heuristicamente determinado pelo sistema 200, ou definido por um usuário ou similares. Por exemplo, um usuário pode selecionar uma seleção de qualidade subjetiva (por exemplo, alta, média ou baixa qualidade) com base em uma interface de usuário apresentada para o usuário como uma barra deslizadora ou similares, que pode ser traduzida para um MOS. Por exemplo, o MOS 210 pode ser 3,5, 4,0, 4,5 ou 5,0 ou similares.[0034] Furthermore, the MOS 210 can be any suitable average opinion index and can be predefined by a compression and/or transmission standard or protocol, predefined by a system developer, heuristically determined by the system 200, or defined by a user or similar. For example, a user may select a subjective quality selection (eg high, medium, or low quality) based on a user interface presented to the user as a slider bar or the like, which can then be translated into a MOS. For example, MOS 210 can be 3.5, 4.0, 4.5 or 5.0 or similar.

[0035] Os dados de exibição 211 podem ser quaisquer dados de exibição adequados representativos de uma qualidade e/ou resolução de uma exibição de dispositivo receptor 102. Em alguns exemplos, os dados de exibição 211 podem ser um ou mais coeficientes de qualidade de exibição com base na exibição do dispositivo receptor 102. Por exemplo, uma solicitação de informações de exibição pode ser transmitida do dispositivo transmissor 101 para o dispositivo receptor 102 através do canal de comunicações sem fio 103. O dispositivo receptor 102 pode responder através do canal de comunicações sem fio 103 ao dispositivo transmissor 101 com informações de exibição que incluem, por exemplo, uma resolução da exibição, números de modelo ou outros dados associados ao dispositivo receptor 102 ou similares. Em uma modalidade, o dispositivo receptor 102 pode ser um WiDi sink e as informações de exibição podem ser comunicadas através de um protocolo de transmissão contínua em tempo real (RTSP; por exemplo, um protocolo de controle de rede projetado para controlar dispositivos de mídia). O sistema 200 pode receber as informações de exibição e pode determinar, com o uso de uma tabela de consulta, por exemplo, os dados de exibição 211. Por exemplo, os dados de exibição 211 podem incluir um ou mais coeficientes de qualidade de exibição dependentes de dispositivo receptor. Tais coeficientes de qualidade de exibição dependentes de dispositivo receptor podem se aproximar de uma qualidade de exibição do dispositivo receptor 102, por exemplo. Em alguns exemplos, o sistema 200 pode receber tais coeficientes de qualidade de exibição dependentes de dispositivo diretamente do dispositivo receptor 102 (por exemplo, de modo que uma tabela de consulta local ou técnica similar não seja necessária).[0035] Display data 211 can be any suitable display data representative of a quality and/or resolution of a display from receiving device 102. In some examples, display data 211 can be one or more display quality coefficients based on the display from the receiving device 102. For example, a request for display information may be transmitted from the transmitting device 101 to the receiving device 102 over the wireless communications channel 103. The receiving device 102 may respond over the communications channel wireless device 103 to transmitting device 101 with display information including, for example, a display resolution, model numbers, or other data associated with receiving device 102 or the like. In one embodiment, the receiving device 102 can be a WiDi sink and the display information can be communicated via a real-time streaming protocol (RTSP; e.g., a network control protocol designed to control media devices). . The system 200 may receive the display information and may determine, using a look-up table, for example, the display data 211. For example, the display data 211 may include one or more dependent display quality coefficients of receiving device. Such receiving device dependent display quality coefficients may approximate a receiving device display quality 102, for example. In some examples, system 200 may receive such device-dependent display quality coefficients directly from receiving device 102 (eg, so that a local look-up table or similar technique is not required).

[0036] O módulo de previsão de taxa de bits de codificação 204 pode, com base no segmento codificado 208, nas taxas de bits máxima e mínima 209, no MOS 210 e/ou nos dados de exibição 211, determinar uma previsão de taxa de bits de codificação para o segmento codificado 208 ou uma segmento do vídeo de origem 201 subsequente ao segmento codificado 208. A previsão de taxa de bits de codificação gerada pode ser fornecida para o módulo de seleção de taxa de bits 207 como taxa de bits de candidato (CBR) 212. Em alguns exemplos, o módulo de previsão de taxa de bits de codificação 204 do sistema 200 pode gerar taxa de bits de candidato 212 para um segmento atual do vídeo de origem 201 com base em um segmento previamente codificado do vídeo de origem 201. Em outros exemplos, o módulo de previsão de taxa de bits de codificação 204 do sistema 200 pode gerar taxa de bits de candidato 212 para um segmento atual do vídeo de origem 201 com base em uma codificação prévia do próprio segmento atual. Em tais exemplos, o segmento atual pode ser codificado (por exemplo, codificado uma segunda vez) com base em uma taxa de bits de codificação selecionada (por exemplo, taxa de bits de codificação selecionada 215). Tais exemplos podem fornecer uma seleção de taxa de bits mais precisa ao custo de latência potencial na transferência de porções do fluxo de bits 216. Em exemplos em que a taxa de bits de candidato 212 para um segmento atual do vídeo de origem 201 é baseada em um segmento previamente codificado, a latência aprimorada pode ser fornecida ao custo de seleção de taxa de bits potencialmente menos precisa.[0036] The encoding bit rate prediction module 204 can, based on the encoded segment 208, the maximum and minimum bit rates 209, the MOS 210 and/or the display data 211, determine a bit rate prediction encoding bits for the encoded segment 208 or a source video segment 201 subsequent to the encoded segment 208. The generated encoding bitrate prediction may be provided to the bitrate selection module 207 as candidate bitrate (CBR) 212. In some examples, the encoding bitrate prediction module 204 of the system 200 may generate candidate bitrate 212 for a current segment of the source video 201 based on a previously encoded segment of the source video. source 201. In other examples, encoding bitrate prediction module 204 of system 200 may generate candidate bitrate 212 for a current segment of source video 201 based on a prior encoding of the current segment itself. In such examples, the current segment may be encoded (eg, encoded a second time) based on a selected encoding bitrate (eg, selected encoding bitrate 215). Such examples may provide more accurate bitrate selection at the cost of potential latency in transferring portions of the bitstream 216. In examples where the candidate bitrate 212 for a current segment of the source video 201 is based on a pre-encoded segment, improved latency can be provided at the cost of potentially less accurate bitrate selection.

[0037] Em qualquer caso, o módulo de previsão de taxa de bits de codificação 204 pode determinar a taxa de bits de candidato 212 com base em uma análise de fluxo de bits de segmento codificado 208 que pode fornecer parâmetros de fluxo de bits de segmento como, por exemplo, um bit por pixel médio de segmento codificado 208, um parâmetro de quantificação médio de segmento codificado 208, uma taxa de quadro de codificação de segmento codificado 208, uma altura de vídeo de codificação de segmento codificado 208 ou similares. Ademais, a taxa de bits de candidato 212 pode ser baseada no índice médio de opinião predeterminado (por exemplo, MOS 210), nas taxas de bits máxima e mínima predeterminadas (por exemplo, taxas de bits máxima e mínima 209) e no(s) coeficiente(s) de qualidade de exibição associado(s) ao dispositivo receptor 102 (por exemplo, dados de exibição 211). Por exemplo, uma complexidade temporal pode ser determinada com base no segmento codificado 208 com ouso de qualquer técnica adequada. A complexidade temporal, os dados de exibição e os parâmetros de fluxo de bits de segmento podem ser fornecidos para um modelo de previsão de taxa de bits pré-treinado, o que pode gerar uma taxa de bits de candidato 212. Detalhes para uma determinação exemplificadora da taxa de bits de candidato 212 são discutidos no presente documento abaixo em relação à Figura 3[0037] In any case, the encoding bitrate prediction module 204 can determine the candidate bitrate 212 based on an analysis of encoded segment bitstream 208 that can provide segment bitstream parameters such as a 208 coded segment average bit per pixel, a 208 coded segment average quantization parameter, a 208 coded segment code frame rate, a 208 coded segment video height, or the like. Furthermore, the candidate bitrate 212 may be based on the predetermined average opinion rate (e.g., MOS 210), the predetermined maximum and minimum bitrates (e.g., maximum and minimum bitrates 209), and the ) display quality coefficient(s) associated with receiving device 102 (e.g., display data 211). For example, a time complexity can be determined based on the encoded segment 208 using any suitable technique. Temporal complexity, display data, and segment bitrate parameters can be provided to a pre-trained bitrate prediction model, which can generate a candidate bitrate 212. Details for an exemplary determination of the 212 candidate bit rate are discussed herein below in relation to Figure 3

[0038] Além disso, conforme mostrado na Figura 2, o módulo de determinação de taxa de bits média de segmento 205 pode receber o segmento codificado 208. O módulo de determinação de taxa de bits média de segmento 205 pode determinar uma taxa de bits média para o segmento codificado 208 e pode fornecer a taxa de bits média como a taxa de bits de candidato (CBR) 213 para o módulo de seleção de taxa de bits 207. Em uma modalidade, a taxa de bits de candidato 213 é o número de bits no segmento codificado 208 dividido pelo tempo de reprodução representado pelo segmento codificado 208. Em outra modalidade, a taxa de bits de candidato 213 (por exemplo, a taxa de bits média para o segmento codificado 208) é o número de bits no segmento codificado 208 dividido pelo número de pixels representados pelo segmento codificado 208. Como em relação ao módulo de previsão de taxa de bits de codificação 204, a taxa de bits de candidato 213 pode ser determinada com base no segmento codificado 208 para um segmento subsequente do vídeo de origem 201 ou para o próprio segmento codificado 208.[0038] Furthermore, as shown in Figure 2, the segment average bitrate determination module 205 can receive the encoded segment 208. The segment average bitrate determination module 205 can determine an average bitrate for the encoded segment 208 and may provide the average bitrate as the candidate bitrate (CBR) 213 to the bitrate selection module 207. In one embodiment, the candidate bitrate 213 is the number of bits in the encoded segment 208 divided by the playback time represented by the encoded segment 208. In another embodiment, the candidate bit rate 213 (e.g., the average bit rate for the encoded segment 208) is the number of bits in the encoded segment 208 divided by the number of pixels represented by the encoded segment 208. As with the encoding bitrate prediction module 204, the candidate bitrate 213 can be determined based on the encoded segment 208 for a subsequent segment of the encoding video. source 201 or to the coded segment itself 208.

[0039] Conforme mostrado, o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 pode receber o vídeo de origem 201 ou uma porção do mesmo. O módulo de determinação de taxa de bits baseado em vídeo de origem codificado 206 pode determinar uma taxa de bits de candidato (CBR) 214 com base no vídeo de origem codificado recebido 201. Por exemplo, o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 pode determinar uma taxa de bits para o vídeo de origem codificado e modificar a taxa de bits determinada por um fator de escalonamento para gerar a taxa de bits de candidato 214. Conforme discutido, o vídeo de origem codificado (por exemplo, o vídeo de origem 201 ou uma porção do mesmo) pode ser codificado com base em codec de vídeo usado de vídeo que é diferente do codec de vídeo usado para codificar o fluxo de bits 216 para transmissão para o dispositivo receptor 102. Em um exemplo, a taxa de bits do vídeo de origem codificado pode ser determinada pelo sistema 200 com o uso de uma interface de programação de aplicativo que pode acessar o conteúdo de vídeo codificado para determinar sua taxa de bits. A taxa de bits determinada pode ser modificada por um fator de escalonamento (por exemplo, multiplicada por um fator de escalonamento). Por exemplo, o fator de escalonamento pode aumentar ou diminuir a taxa de bits determinada para a taxa de bits de candidato determinada 214. O fator de escalonamento pode ser qualquer fator de escalonamento adequado para determinar a taxa de bits de candidato 214. Em alguns exemplos, o fator de escalonamento pode se encontrar na faixa de 50% a 75%, 75% a 125%, 90% a 100%, 125% a 150%, ou 175% a 225% ou similares.[0039] As shown, the encoded source video based bitrate determination module 206 may receive source video 201 or a portion thereof. The encoded source video based bitrate determination module 206 can determine a candidate bitrate (CBR) 214 based on the received encoded source video 201. For example, the encoded source video based bitrate determination module encoded source video 206 may determine a bitrate for the encoded source video and modify the determined bitrate by a scaling factor to generate candidate bitrate 214. As discussed, the encoded source video (e.g. , the source video 201 or a portion thereof) may be encoded based on the video codec used for the video that is different from the video codec used to encode the bitstream 216 for transmission to the receiving device 102. In one example , the bitrate of the encoded source video can be determined by the system 200 using an application programming interface that can access the encoded video content to determine its bitrate. The determined bitrate can be modified by a scaling factor (for example, multiplied by a scaling factor). For example, the scaling factor can increase or decrease the determined bitrate to the determined candidate bitrate 214. The scaling factor can be any scaling factor suitable for determining the candidate bitrate 214. In some examples , the scaling factor can be in the range of 50% to 75%, 75% to 125%, 90% to 100%, 125% to 150%, or 175% to 225% or similar.

[0040] Em alguns exemplos, o fator de escalonamento pode ser adaptativo com base no codec associado ao vídeo de origem codificado (por exemplo, o codec anteriormente usado para codificar o vídeo de origem compactado 201) e o codec usado para codificar o fluxo de bits 216 (por exemplo, o codec local usado pelo dispositivo transmissor 101 e pelo dispositivo receptor 102). Em alguns exemplos, a taxa de bits de candidato 214 pode fornecer uma taxa de bits mínima necessária para codificar o vídeo de origem 201, 221, de modo que o codec de vídeo local produza qualidade igual ou superior àquela do vídeo de origem 201, 221. Em alguns exemplos, o fator de escalonamento pode ser determinado com base em uma diferença (por exemplo, uma diferença de capacidade) entre o codec previamente usado para codificar o vídeo de origem e o codec usado para codificar o fluxo de bits 216. Por exemplo, se o vídeo de origem 201 tiver sido compactado com base em MPEG-2 a 12 Mbps, a taxa de bits de candidato 214 pode apenas precisar ser 6 Mbps se o codec local for um H.264. Em tais exemplos (por exemplo, codec de vídeo usado de vídeo de origem de MPEG-2 e codec de vídeo usado local de H.264), o fator de escalonamento pode, portanto, ser de cerca de 50% ou 60% ou similares. Tal fator de escalonamento pode ser fornecido devido ao fato de que o codec local, H.264 nesse exemplo, é codec de vídeo usado mais eficiente do que MPEG-2 com os mesmos recursos de codificação. Ademais, se o codec local e o codec de vídeo de origem usam o mesmo codec, a taxa de bits de candidato 214 pode ainda ser modificada com base em, por exemplo, diferentes recursos usados pelos codecs. Por exemplo, codec de vídeo usado pode permitir I-quadros apenas para arquivamento, I- e P-quadros para transmissão contínua em tempo real ou I-, P- e B-quadros para alta qualidade ou similares. Por exemplo, um vídeo de origem compactado em H.264 a 6 Mbps com B- quadros (por exemplo, I-, P- e B-quadros) pode precisar de uma taxa de bits de cerca de 12 Mbps para codificação com base em codec de vídeo usado local sem B quadros (por exemplo, com I- e P-quadros ou I-quadros apenas). Em tal exemplo, o fator de escalonamento pode, portanto, ser de cerca de 200% ou similares. Outras combinações podem estar disponíveis. Com o uso das técnicas discutidas no presente documento, uma taxa de bits de candidato para o vídeo de origem 201 (por exemplo, a taxa de bits de candidato 214 em um primeiro exemplo) e uma taxa de bits de candidato para o vídeo de origem 221 (por exemplo, a taxa de bits de candidato 214 em um segundo exemplo) podem, portanto, ser diferentes. Como tal, o fator de escalonamento pode ser adaptativo com base no codec de vídeo usado para compactar um vídeo de origem como o vídeo de origem 201, o vídeo de origem 221 ou similares.[0040] In some examples, the scaling factor may be adaptive based on the codec associated with the encoded source video (for example, the codec previously used to encode the 201 compressed source video) and the codec used to encode the stream. bits 216 (for example, the local codec used by sending device 101 and receiving device 102). In some examples, the candidate bitrate 214 may provide a minimum bitrate needed to encode the source video 201, 221 such that the local video codec produces the same or better quality than the source video 201, 221 In some examples, the scaling factor may be determined based on a difference (for example, a difference in capability) between the codec previously used to encode the source video and the codec used to encode the 216 bit stream. For example, if the source video 201 was MPEG-2 compressed at 12 Mbps, the candidate bitrate 214 may only need to be 6 Mbps if the local codec is an H.264. In such examples (eg video codec used from source video of MPEG-2 and video codec used local from H.264), the scaling factor can therefore be around 50% or 60% or similar . Such a scaling factor can be provided due to the fact that the local codec, H.264 in this example, is more efficient video codec used than MPEG-2 with the same encoding capabilities. Furthermore, if the local codec and the source video codec use the same codec, the candidate bitrate 214 may still be modified based on, for example, different resources used by the codecs. For example, video codec used may allow I-frames for archival only, I- and P-frames for real-time streaming or I-, P- and B-frames for high quality or similar. For example, an H.264 compressed source video at 6 Mbps with B-frames (eg I-, P- and B-frames) may need a bit rate of around 12 Mbps for encoding based on Used local video codec without B frames (eg with I- and P-frames or I-frames only). In such an example, the scaling factor might therefore be around 200% or similar. Other combinations may be available. Using the techniques discussed herein, a candidate bitrate for the source video 201 (e.g., candidate bitrate 214 in a first example) and a candidate bitrate for the source video 221 (e.g. candidate bitrate 214 in a second example) can therefore be different. As such, the scaling factor can be adaptive based on the video codec used to compress a source video such as 201 source video, 221 source video, or the like.

[0041] Conforme mostrado na Figura 2, o módulo de seleção de taxa de bits 207 pode receber as taxas de bits de candidato 212, 213, 214 e o módulo de seleção de taxa de bits 207 pode selecionar a taxa de bits de codificação selecionada 215 para a codificação de um segmento (por exemplo, ou do segmento associado ao segmento codificado 208 ou a um segmento subsequente ou diferente, conforme discutido). Por exemplo, o módulo de seleção de taxa de bits 207 pode selecionar uma taxa de bits mínima das taxas de bits de candidato 212, 213, 214 como as taxa de bits de codificação selecionada 215. Em uma modalidade, o módulo de seleção de taxa de bits 207 pode selecionar a taxa de bits mínima com o uso de um comutador 217 conforme ilustrado na Figura 2. Por exemplo, o comutador 217 pode ser conectado com base em um mínimo de taxas de bits de candidato 212, 213, 214 para transmitir o mínimo como a taxa de bits de codificação selecionada 215.[0041] As shown in Figure 2, the bitrate selection module 207 can receive the candidate bitrates 212, 213, 214 and the bitrate selection module 207 can select the selected encoding bitrate 215 for encoding a segment (e.g., either the segment associated with encoded segment 208 or a subsequent or different segment, as discussed). For example, the bit rate selection module 207 may select a minimum bit rate from candidate bit rates 212, 213, 214 as the selected encoding bit rates 215. In one embodiment, the rate selection module bit rate 207 may select the minimum bit rate using a switch 217 as illustrated in Figure 2. For example, switch 217 may be connected based on a minimum bit rate candidate 212, 213, 214 to transmit the minimum as the selected encoding bitrate 215.

[0042] O codificador 203 pode receber a taxa de bits de codificação selecionada 215 e pode codificar conteúdo de vídeo de origem decodificado com base na taxa de bits de codificação selecionada 215 para gerar o fluxo de bits 216, que pode ser fornecido para o dispositivo receptor 102. Conforme discutido, o dispositivo receptor 102 pode receber o fluxo de bits 216 e o dispositivo receptor 102 pode decodificar o fluxo de bits 216 para gerar quadros de vídeo para apresentação para um usuário. O codificador 203 pode codificar qualquer porção de conteúdo de vídeo de origem decodificado com base na taxa de bits de codificação selecionada 215. Em uma modalidade, o codificador 203 pode codificar conteúdo de vídeo de origem associada ao segmento codificado 208 com base na taxa de bits de codificação selecionada 215. Em outra modalidade, o codificador 203 pode codificar conteúdo de vídeo de origem associado a outro segmento do vídeo de origem 201 com base na taxa de bits de codificação selecionada 215. Por exemplo, o segmento codificado baseado na taxa de bits de codificação selecionada 215 pode ser um segmento subsequente em relação ao segmento codificado 208. Em algumas modalidades, a totalidade ou o restante do vídeo de origem 201 pode ser codificado com base na taxa de bits de codificação selecionada 215.[0042] The encoder 203 can receive the selected encoding bitrate 215 and can encode decoded source video content based on the selected encoding bitrate 215 to generate the bitstream 216, which can be delivered to the device receiver 102. As discussed, receiver device 102 may receive bitstream 216 and receiver device 102 may decode bitstream 216 to generate video frames for display to a user. Encoder 203 may encode any portion of decoded source video content based on selected encoding bitrate 215. In one embodiment, encoder 203 may encode source video content associated with encoded segment 208 based on bitrate selected encoding bitrate 215. In another embodiment, the encoder 203 may encode source video content associated with another segment of the source video 201 based on the selected encoding bitrate 215. For example, the encoded segment based on the selected bitrate Selected encoding bitrate 215 may be a subsequent segment relative to encoded segment 208. In some embodiments, all or the remainder of the source video 201 may be encoded based on the selected encoding bitrate 215.

[0043] A Figura 3 ilustra um sistema exemplificador 300 para a codificação de conteúdo de vídeo para a transmissão sem fio, disposto de acordo com pelo menos algumas implantações da presente revelação. Em alguns exemplos, o sistema 300 pode ser implantado como uma porção do dispositivo transmissor 101. Conforme mostrado na Figura 3, o sistema 300 pode incluir o decodificador 202, o codificador 203, o módulo de previsão de taxa de bits de codificação 204, o módulo de determinação de taxa de bits média de segmento 205, o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206, o módulo de seleção de taxa de bits 207, um módulo de índice médio de opinião 301, um módulo de taxa de bits máxima e mínima 302 e um módulo de informações de exibição 303. Ademais, o módulo de informações de exibição 303 pode incluir um módulo de parâmetros de exibição 304 e uma tabela de consulta (LUT) de coeficientes de qualidade de exibição 305, o módulo de previsão de taxa de bits de codificação pode incluir um módulo de modelagem de função 306, um módulo de análise de fluxo de bits 307, um módulo de complexidade temporal 308 e um módulo de previsão de taxa de bits 309, o módulo de determinação de taxa de bits média de segmento 205 pode incluir um módulo de análise de fluxo de bits 310 e um módulo de cálculo de média de segmento 311, e o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 pode incluir um módulo de taxa de bits de vídeo de origem e um módulo de modificação de fator de escalonamento 313.[0043] Figure 3 illustrates an exemplary system 300 for encoding video content for wireless transmission, arranged in accordance with at least some implementations of the present disclosure. In some examples, system 300 may be deployed as a portion of transmitter device 101. As shown in Figure 3, system 300 may include decoder 202, encoder 203, encoding bitrate prediction module 204, segment average bitrate determination module 205, the encoded source video based bitrate determination module 206, the bitrate selection module 207, an opinion average index module 301, a maximum and minimum bit rate 302 and a display information module 303. Furthermore, the display information module 303 may include a display parameters module 304 and a display quality coefficient look-up table (LUT) 305, the encoding bitrate prediction module may include a 306 function modeling module, a 307 bitstream analysis module, a 308 time complexity module, and a 309 bitrate prediction module, the 309 bitrate prediction module. segment averaging bitrate determination 205 may include a bitstream analysis module 310 and a segment averaging module 311, and the encoded source video based bitrate determination module 206 may include a source video bitrate module and a 313 scaling factor modification module.

[0044] Conforme mostrado, o decodificador 202 pode receber o vídeo de origem 201 e/ou o vídeo de origem 221 ou uma porção ou porções do mesmo e o decodificador 202 pode decodificar o vídeo de origem 201 com base no codec de vídeo associado ao vídeo de origem e transferir o conteúdo de vídeo decodificado ou uma porção decodificada do conteúdo de vídeo para o codificador 203. O codificador 203 pode receber o conteúdo de vídeo decodificado ou a porção decodificada do conteúdo de vídeo e o codificador 203 pode codificar um segmento do conteúdo de vídeo decodificado para gerar o segmento codificado (ES) 208. Detalhes associados ao vídeo de origem 201, ao vídeo de origem 221, ao decodificador 202, ao codificador 203 e ao segmento codificado 208 foram discutidos em relação à Figura 2 e não serão repetidos por uma questão de brevidade.[0044] As shown, decoder 202 may receive source video 201 and/or source video 221 or a portion or portions thereof, and decoder 202 may decode source video 201 based on the video codec associated with the source video and transfer the decoded video content or a decoded portion of the video content to the encoder 203. The encoder 203 can receive the decoded video content or the decoded portion of the video content and the encoder 203 can encode a segment of the decoded video content to generate encoded (ES) segment 208. Details associated with source video 201, source video 221, decoder 202, encoder 203, and encoded segment 208 have been discussed with reference to Figure 2 and will not be discussed further. repeated for the sake of brevity.

[0045] Além disso, conforme mostrado, o módulo de índice médio de opinião 301 pode determinar, armazenar e/ou transmitir o MOS 210, que pode incluir quaisquer informações adequadas conforme discutido no presente documento. Por exemplo, o módulo de índice médio de opinião 301 pode fornecer funcionalidade (por exemplo, através de uma interface de programação de aplicativo ou similares) para que um desenvolvedor de sistema e/ou um usuário ajuste o MOS 210 e/ou uma memória para armazenar um MOS atual. De modo similar, o módulo de taxa de bits máxima e mínima (taxa de bits máx, mín) 302 pode determinar, armazenar e/ou transmitir taxas de bits máxima e mínima (BRs máx, mín) 209, que podem incluir quaisquer informações adequadas conforme discutido no presente documento. Por exemplo, o módulo de taxa de bits máxima e mínima pode fornecer funcionalidade (por exemplo, através de uma interface de programação de aplicativo ou similares) para que um desenvolvedor de sistema e/ou um usuário ajuste as taxas de bits máxima e mínima 209 e/ou uma memória para armazenar taxas de bits máxima e mínima (BRs máx, mín) 209.[0045] Furthermore, as shown, the average opinion rating module 301 may determine, store and/or transmit the MOS 210, which may include any appropriate information as discussed herein. For example, the average opinion index module 301 can provide functionality (e.g., through an application programming interface or the like) for a system developer and/or a user to tune the MOS 210 and/or a memory to store a current MOS. Similarly, the maximum and minimum bitrate (max, min bitrate) module 302 may determine, store and/or transmit maximum and minimum bitrates (max, min BRs) 209, which may include any suitable information as discussed in this document. For example, the maximum and minimum bitrate module may provide functionality (eg, through an application programming interface or the like) for a system developer and/or user to adjust the maximum and minimum bitrates 209 and/or a memory to store maximum and minimum bitrates (max, min BRs) 209.

[0046] O módulo de informações de exibição pode determinar e/ou gerar dados de exibição (DD) 211 conforme mostrado. Por exemplo, o módulo de parâmetros de exibição 304 pode obter parâmetros ou informações de exibição (por exemplo, informações de resolução) do dispositivo receptor 102. Em uma modalidade, o dispositivo receptor 102 é um WiDi sink e os parâmetros de exibição podem ser comunicados do dispositivo receptor 102 através de um protocolo de transmissão contínua em tempo real (RTSP). Os parâmetros de exibição podem ser transferidos para LUT de coeficientes de qualidade de exibição 305, que pode determinar coeficientes dependentes de dispositivo receptor com base nos parâmetros de exibição. Por exemplo, os coeficientes pode indicar uma qualidade associada à exibição do (ou associada ao) dispositivo receptor 102. Em uma modalidade, os coeficientes de qualidade incluem dois coeficientes para uso pelo módulo de previsão de taxa de bits de codificação 204 para a geração de taxa de bits de candidato 212, conforme discutido adicionalmente no presente documento. Em alguns exemplos, os coeficientes de qualidade podem ser recebidos diretamente do dispositivo receptor 102 e, em tais exemplos, a LUT de coeficientes de qualidade de exibição 305 pode não ser necessária.[0046] The display information module can determine and/or generate display data (DD) 211 as shown. For example, display parameter module 304 may obtain parameters or display information (e.g., resolution information) from receiving device 102. In one embodiment, receiving device 102 is a WiDi sink and display parameters may be communicated from the receiving device 102 via a real-time streaming protocol (RTSP). The display parameters may be passed to Display Quality Coefficients LUT 305, which may determine receiving device dependent coefficients based on the display parameters. For example, the coefficients can indicate a quality associated with the display of (or associated with) the receiving device 102. In one embodiment, the quality coefficients include two coefficients for use by the encoding bitrate prediction module 204 for generating candidate bitrate 212, as discussed further herein. In some examples, the quality coefficients may be received directly from the receiving device 102, and in such examples, the display quality coefficients LUT 305 may not be required.

[0047] Conforme mostrado, o módulo de análise de fluxo de bits 307 do módulo de previsão de taxa de bits de codificação 204 pode receber o segmento codificado 208 (por exemplo, o fluxo de bits codificado para um segmento do vídeo de origem 201). O módulo de análise de fluxo de bits 307 pode determinar parâmetros de fluxo de bits de segmento associados ao segmento codificado 208. Por exemplo, os parâmetros de fluxo de bits de segmento podem incluir bits por pixel médio, parâmetro de quantificação média, taxa de quadro de codificação ou altura de vídeo de codificação. Em alguns exemplos, os parâmetros de fluxo de bits de segmento podem ser dados de tamanho de quadro, dados de tipo de quadro, dados de resolução de quadro ou dados de taxa de bits. O módulo de análise de fluxo de bits 307 pode transferir os parâmetros de fluxo de bits de segmento para o módulo de modelagem de função 306 e para o módulo de complexidade temporal 308.[0047] As shown, the bitstream analysis module 307 of the encoding bitrate prediction module 204 can receive the encoded segment 208 (for example, the encoded bitstream for a segment of the source video 201) . Bitstream analysis module 307 may determine segment bitstream parameters associated with encoded segment 208. For example, segment bitstream parameters may include average bits per pixel, average quantization parameter, frame rate encoding or encoding video height. In some examples, segment bitstream parameters may be frame size data, frame type data, frame resolution data, or bit rate data. The bitstream analysis module 307 may transfer the segment bitstream parameters to the function modeling module 306 and to the time complexity module 308.

[0048] O módulo de complexidade temporal 308 pode determinar uma complexidade temporal associada ao segmento codificado 208 com base pelo menos em parte nos parâmetros de fluxo de bits de segmento recebidos. O módulo de complexidade temporal 308 pode determinar a complexidade temporal com o uso de qualquer técnica ou técnicas adequadas. Por exemplo, a complexidade temporal pode ser baseada na Equação (1) da seguinte forma: em que TC pode ser a complexidade temporal, fTC pode ser uma função para determinar TC, f_parameters pode ser os parâmetros de fluxo de bits de segmento, mean(BitsP) pode ser o bits por pixel médio, SF pode ser um fator de escalonamento de cerca de 40, c pode ser uma constante de cerca de 0,87, mean(QPP) pode ser o parâmetro de quantificação média, fps pode ser a taxa de quadro de codificação e f_h pode ser a altura de vídeo de codificação. Embora descrito em relação à altura de vídeo, f_h, outras informações ou dados associados ao tamanho de quadro ou vídeo podem ser usados. Em vários exemplos, a altura de vídeo, a largura de vídeo, a razão de aspecto de vídeo, ou combinação dos mesmos podem ser usados.[0048] Time complexity module 308 may determine a time complexity associated with coded segment 208 based at least in part on received segment bitstream parameters. Time complexity module 308 can determine time complexity using any suitable technique or techniques. For example, time complexity can be based on Equation (1) as follows: where TC can be the time complexity, fTC can be a function to determine TC, f_parameters can be the segment bitstream parameters, mean(BitsP) can be the average bits per pixel, SF can be a scaling factor of about 40, c may be a constant of about 0.87, mean(QPP) may be the average quantization parameter, fps may be the encoding frame rate, and f_h may be the encoding video height. While described in relation to video height, f_h, other information or data associated with video or frame size may be used. In various examples, video height, video width, video aspect ratio, or combination thereof can be used.

[0049] Conforme mostrado, a complexidade temporal pode ser transferida para o módulo de modelagem de função 306 e para o módulo de previsão de taxa de bits 309. O módulo de modelagem de função 306 pode fornecer um conteúdo (por exemplo, o vídeo de origem através dos parâmetros de fluxo de bits de segmento e complexidade temporal) e o dispositivo (por exemplo, dispositivo receptor 102 através dos dados de exibição 211) baseado em modelo para prever uma taxa de bits de vídeo. Por exemplo, o modelo pode ser um modelo linear e/ou não linear pré-treinado. Por exemplo, um treinamento do modelo pode ser fornecido como um ajuste não linear de parâmetros com base em um conjunto de treinamento de clipes de vídeo conforme mostrado na Equação (2) e/ou como um ajuste linear conforme mostrado na Equação (3) e com base em um teste conforme mostrado na Equação (4): em que v pode ser parâmetros ou coeficientes de modelagem de função para prever a taxa de bits de codificação, bitrate pode ser a taxa de bits de um clipe de vídeo de treinamento, e MOS pode ser o índice médio de opinião do clipe de vídeo de treinamento. em que a e b podem ser coeficiente angular e interceptação em y que corresponde a vi respectivamente e TCtraining pode ser a complexidade temporal do conjunto de treinamento. em que vi_test pode ser um vi previsto para vídeo de teste de entrada.[0049] As shown, the temporal complexity can be transferred to the function modeling module 306 and to the bit rate prediction module 309. The function modeling module 306 can provide content (for example, the video of source via segment bitrate and time complexity parameters) and device (e.g. receiver device 102 via display data 211) model-based to predict a video bit rate. For example, the model can be a pre-trained linear and/or non-linear model. For example, a training model can be provided as a non-linear fit of parameters based on a training set of video clips as shown in Equation (2) and/or as a linear fit as shown in Equation (3) and based on a test as shown in Equation (4): where v can be function modeling parameters or coefficients to predict the encoding bitrate, bitrate can be the bitrate of a training video clip, and MOS can be the average opinion index of the training video clip. training. where a and b can be the slope and y-intercept that correspond to vi respectively and TCtraining can be the time complexity of the training set. where vi_test can be a predicted vi for input test video.

[0050] Em alguns exemplos, o treinamento do módulo de modelagem de função 306 pode ser realizado offline (por exemplo, antes de um tempo de execução em relação ao vídeo de origem 201) e o módulo de modelagem de função 306 pode ser salvo através de memória para implantação. Conforme mostrado, o módulo de previsão de taxa de bits 306 pode receber parâmetros do módulo de modelagem de função 306 e a complexidade temporal do módulo de complexidade temporal 308. O módulo de previsão de taxa de bits 306 pode determinar a taxa de bits de candidato 212 com base em uma previsão de taxa de bits de codificação com o uso de qualquer técnica ou técnicas adequadas. Em um exemplo, o módulo de previsão de taxa de bits 306 pode determinar a taxa de bits de candidato 212 com base em uma previsão de taxa de bits de codificação determinada pela Equação (5) da seguinte forma: em que e_bitrate pode ser a previsão de taxa de bits de codificação, desired_MOS pode ser MOS 210, b_max e b_min podem ser as taxas de bits máxima e mínima, respectivamente das taxas de bits máxima e mínima 209, e b pode ser uma constante de cerca de 3,7.[0050] In some examples, the training of the function modeling module 306 can be performed offline (for example, before a runtime with respect to the source video 201) and the function modeling module 306 can be saved via of memory for deployment. As shown, the bit rate prediction module 306 can receive parameters from the function shaping module 306 and the time complexity from the time complexity module 308. The bit rate prediction module 306 can determine the candidate bit rate 212 based on an encoding bitrate prediction using any suitable technique or techniques. In one example, the bitrate prediction module 306 can determine the candidate bitrate 212 based on an encoding bitrate prediction determined by Equation (5) as follows: where e_bitrate can be the predicted encoding bitrate, desired_MOS can be MOS 210, b_max and b_min can be the maximum and minimum bitrates respectively of maximum and minimum bitrates 209, and b can be a constant of about of 3.7.

[0051] Conforme mostrado na Figura 3 e conforme discutido no presente documento, a previsão de taxa de bits de codificação conforme descrito pode ser fornecida para o módulo de seleção de taxa de bits 207 como a taxa de bits de candidato 212.[0051] As shown in Figure 3 and as discussed herein, the encoding bitrate prediction as described may be provided to the bitrate selection module 207 as the candidate bitrate 212.

[0052] Ademais, o módulo de análise de fluxo de bits 310 do módulo de determinação de taxa de bits média de segmento 205 pode receber o segmento codificado 208 conforme mostrado. O módulo de análise de fluxo de bits 310 pode determinar uma taxa de bits média para o segmento codificado 208 e/ou um bit por pixel médio para o segmento codificado 208. Ademais, o módulo de cálculo de média de segmento 311 pode determinar uma taxa de bits média para o segmento codificado 208. Em alguns exemplos, os módulos de análise de fluxo de bits 307, 310 podem ser implantados separadamente (conforme mostrado) e, em outros exemplos, os mesmos podem ser implantados juntos. Ademais, em alguns exemplos, o módulo de cálculo de média de segmento 311 pode ser eliminado e o cálculo de média discutido pode ser fornecido pelo módulo de análise de fluxo de bits 310.[0052] Furthermore, the bitstream analysis module 310 of the segment average bitrate determination module 205 can receive the coded segment 208 as shown. The bitstream analysis module 310 can determine an average bit rate for the encoded segment 208 and/or an average bit per pixel for the encoded segment 208. Furthermore, the segment averaging module 311 can determine a rate average bit rate for encoded segment 208. In some examples, the bitstream analysis modules 307, 310 may be deployed separately (as shown), and in other examples they may be deployed together. Furthermore, in some examples, the segment averaging module 311 may be eliminated and the discussed averaging may be provided by the bitstream analysis module 310.

[0053] Conforme discutido, em alguns exemplos, a taxa de bits de candidato 213 pode ser fornecida como uma taxa de bits média para o segmento codificado 208. Em tais exemplos, o módulo de análise de fluxo de bits 310 ou o módulo de cálculo de média de segmento 311 pode fornecer a taxa de bits média (e o outro módulo pode ser eliminado, caso seja desejado). Em outros exemplos, uma dentre a taxa de bits de candidato 212 ou a taxa de bits de candidato 213 pode ser eliminada (antes de alcançar o módulo de seleção de taxa de bits 207) com base em uma limitação realizada pelo módulo de análise de fluxo de bits 307 e/ou pelo módulo de análise de fluxo de bits 310. Por exemplo, um bit por pixel médio pode ser determinado para o segmento codificado 208. O bits por pixel médio pode ser comparado a um limite para determinar se a taxa de bits de candidato 212 ou a taxa de bits de candidato 213 pode ser fornecida para o módulo de seleção de taxa de bits 207. Por exemplo, se o bits por pixel médio for maior que (ou igual a) o limite, a taxa de bits de candidato 212 pode ser fornecida (e a taxa de bits de candidato 213 pode ser eliminada) e, se o bits por pixel médio for menor que (ou igual a) o limite, a taxa de bits de candidato 212 pode ser fornecida (e a taxa de bits de candidato 213 pode ser eliminada). Em tais exemplos, o módulo de seleção de taxa de bits 207 pode, para um segmento particular, selecionar entre duas taxas de bits de candidato (por exemplo, a taxa de bits de candidato 214 e uma dentre a taxa de bits de candidato 212 ou a taxa de bits de candidato 213) e não três, conforme ilustrado na Figura 3. Tais técnicas são discutidas adicionalmente no presente documento em relação à Figura 4.[0053] As discussed, in some examples, the candidate bitrate 213 may be provided as an average bitrate for the encoded segment 208. In such examples, the bitstream analysis module 310 or the calculation module segment average module 311 can provide the average bit rate (and the other module can be dropped if desired). In other examples, one of the candidate bitrate 212 or the candidate bitrate 213 may be dropped (before reaching the bitrate selection module 207) based on a throttling performed by the flow analysis module. bitrate 307 and/or by bitstream analysis module 310. For example, an average bit per pixel can be determined for the encoded segment 208. The average bits per pixel can be compared to a threshold to determine whether the bit rate candidate bits 212 or candidate bitrate 213 can be provided to bitrate selection module 207. For example, if the average bits per pixel is greater than (or equal to) the threshold, the bitrate candidate bitrate 212 may be given (and candidate bitrate 213 may be dropped), and if the average bits per pixel is less than (or equal to) the threshold, candidate bitrate 212 may be given (and candidate bitrate 213 may be dropped). In such examples, bitrate selection module 207 may, for a particular segment, select between two candidate bitrates (e.g., candidate bitrate 214 and one of candidate bitrate 212 or the candidate bitrate 213) and not three, as illustrated in Figure 3. Such techniques are discussed further herein in relation to Figure 4.

[0054] Conforme mostrado na Figura 3, o módulo de taxa de bits de vídeo de origem 312 do módulo de determinação de taxa de bits de vídeo de origem codificado 206 pode receber o vídeo de origem 201 ou a porção do mesmo. Por exemplo, o módulo de determinação de taxa de bits de vídeo de origem codificado 206 pode receber um vídeo de origem compactado (por exemplo, codificado) de modo que o vídeo de origem seja compactado com base em codec de vídeo usado de vídeo associado ao vídeo de origem 201 (por exemplo, antes de transferir por download, no momento do armazenamento em memória, no momento de captura ou similares; e diferente do codec de vídeo usado pelo codificador 203 ou igual ao codec de vídeo usado pelo codificador 203, mas com diferentes recursos implantados). O módulo de taxa de bits de vídeo de origem 312 pode determinar uma taxa de bits do vídeo de origem compactado com base em uma taxa de bits média ou similares. O módulo de taxa de bits de vídeo de origem 312 pode transferir a taxa de bits determinada do vídeo de origem compactado para o módulo de modificação de fator de escalonamento 313. O módulo de modificação de fator de escalonamento 313 pode modificar a taxa de bits determinada por um fator de escalonamento conforme discutido no presente documento. Por exemplo, o fator de escalonamento pode ser baseado em uma diferença entre o codec usado para compactar o vídeo de origem compactado e o codec local usado para codificar o fluxo de bits 216. Conforme discutido, o fator de escalonamento pode, portanto, ser adaptativa com base na qualidade do codec usado para compactar o vídeo de origem compactado e/ou na qualidade do codec local usado para codificar o fluxo de bits 216. Por exemplo, dois vídeos de origem compactados com o uso de diferentes codecs podem ter diferentes fatores de escalonamento conforme determinado pelo módulo de modificação de fator de escalonamento 313. A taxa de bits determinada pode ser modificada pelo fator de escalonamento de qualquer maneira adequada. Em uma modalidade, o fator de escalonamento (positivo ou negativo nesse exemplo) é adicionado à taxa de bits determinada. Em outra modalidade, o fator de escalonamento é multiplicado pela taxa de bits determinada (por exemplo, a taxa de bits determinada é modificada por x%, em que x é o fator de escalonamento).[0054] As shown in Figure 3, the source video bitrate module 312 of the encoded source video bitrate determining module 206 can receive the source video 201 or the portion thereof. For example, the encoded source video bitrate determination module 206 may receive a compressed (e.g. encoded) source video such that the source video is compressed based on the video codec used of the associated video. source video 201 (e.g., before downloading, at the time of storage in memory, at the time of capture, or the like; and different from the video codec used by the encoder 203 or the same as the video codec used by the encoder 203, but with different resources deployed). The source video bitrate module 312 may determine a compressed source video bitrate based on an average bitrate or the like. The source video bitrate module 312 can transfer the determined bitrate of the compressed source video to the scaling factor modification module 313. The scaling factor modification module 313 can modify the determined bitrate by a scaling factor as discussed in this document. For example, the scaling factor can be based on a difference between the codec used to compress the compressed source video and the local codec used to encode the 216 bit stream. As discussed, the scaling factor can therefore be adaptive based on the quality of the codec used to compress the compressed source video and/or the quality of the local codec used to encode the 216 bitstream. For example, two source videos compressed using different codecs may have different compression factors. scaling as determined by scaling factor modification module 313. The determined bit rate may be modified by the scaling factor in any suitable manner. In one embodiment, the scaling factor (positive or negative in this example) is added to the determined bit rate. In another embodiment, the scaling factor is multiplied by the determined bitrate (for example, the determined bitrate is modified by x%, where x is the scaling factor).

[0055] O módulo de seleção de taxa de bits 207 pode receber as taxas de bits de candidato 212, 213, 214 ou a taxa de bits de candidato 214 e uma dentre as taxas de bits de candidato 212, 213 (conforme discutido) e o módulo de seleção de taxa de bits 207 pode determinar a taxa de bits de codificação selecionada 215 para a codificação de um segmento do vídeo de origem 201 (por exemplo, para a codificação de um segmento decodificado de conteúdo de vídeo de modo que o segmento seja igual ao segmento representado pelo segmento codificado 208 ou diferente do segmento representado pelo segmento codificado 208). Por exemplo, o módulo de seleção de taxa de bits 207 pode selecionar uma taxa de bits mínima das taxas de bits de candidato recebidas como a taxa de bits de codificação selecionada 215. Em uma modalidade, o módulo de seleção de taxa de bits 207 pode selecionar uma taxa de bits mínima com base no comutador 215 conforme discutido no presente documento.[0055] Bitrate selection module 207 may receive candidate bitrates 212, 213, 214 or candidate bitrate 214 and one of candidate bitrates 212, 213 (as discussed) and the bitrate selection module 207 can determine the selected encoding bitrate 215 for encoding a segment of the source video 201 (e.g., for encoding a decoded segment of video content so that the segment is equal to the segment represented by coded segment 208 or different from the segment represented by coded segment 208). For example, the bitrate selection module 207 can select a minimum bitrate from the received candidate bitrates as the selected encoding bitrate 215. In one embodiment, the bitrate selection module 207 can select a minimum bit rate based on switch 215 as discussed herein.

[0056] O codificador 203 pode receber a taxa de bits de codificação selecionada 215 e pode codificar o vídeo de origem 201 (por exemplo, o conteúdo de vídeo decodificado com base na taxa de bits de codificação selecionada 215) para gerar o fluxo de bits 216, que pode ser fornecido para o dispositivo receptor 102. Conforme discutido, o fluxo de bits 216 pode ser codificado com o uso de codec de vídeo usado de vídeo local. O codec de vídeo local pode ser determinado com base em um padrão, uma negociação entre o dispositivo transmissor 101 e o dispositivo receptor 102 ou similares. O dispositivo receptor 102 pode receber o fluxo de bits 216 e decodificar o fluxo de bits 216 para gerar quadros de vídeo para apresentação para um usuário. O codificador 203 pode codificar qualquer porção de conteúdo de vídeo decodificado com base na taxa de bits de codificação selecionada 215. Em uma modalidade, o codificador 203 pode codificar conteúdo de vídeo associada ao segmento codificado 208 com base na taxa de bits de codificação selecionada 215. Em outra modalidade, o codificador 203 pode codificar conteúdo de vídeo associado a outro segmento do vídeo de origem 201 com base na taxa de bits de codificação selecionada 215. Por exemplo, o segmento codificado baseado na taxa de bits de codificação selecionada 215 pode ser um segmento subsequente em relação ao segmento codificado 208. Em algumas modalidades, a totalidade ou o restante do vídeo de origem 201 pode ser codificado com base na taxa de bits de codificação selecionada 215.[0056] The encoder 203 can receive the selected encoding bitrate 215 and can encode the source video 201 (for example, the decoded video content based on the selected encoding bitrate 215) to generate the bitstream 216, which may be provided to receiving device 102. As discussed, bitstream 216 may be encoded using the video codec used from local video. The local video codec may be determined based on a standard, a negotiation between transmitter device 101 and receiver device 102, or the like. Receiving device 102 may receive bitstream 216 and decode bitstream 216 to generate video frames for display to a user. Encoder 203 may encode any portion of the decoded video content based on the selected encoding bitrate 215. In one embodiment, encoder 203 may encode video content associated with the encoded segment 208 based on the selected encoding bitrate 215 In another embodiment, the encoder 203 may encode video content associated with another segment of the source video 201 based on the selected encoding bitrate 215. For example, the encoded segment based on the selected encoding bitrate 215 may be a subsequent segment relative to the encoded segment 208. In some embodiments, all or the remainder of the source video 201 may be encoded based on the selected encoding bitrate 215.

[0057] A Figura 4 é um fluxograma que ilustra um processo exemplificador 400 para a codificação de conteúdo de vídeo para a transmissão sem fio, disposto de acordo com pelo menos algumas implantações da presente revelação. O processo 400 pode incluir uma ou mais operações 401 a 415 conforme ilustrado na Figura 4. O processo 400 pode formar pelo menos parte de um processo de codificação de vídeo. A título de exemplo não limitador, o processo 400 pode formar pelo menos parte de um conteúdo de vídeo de processo de codificação de vídeo conforme realizado pelos dispositivos 101 ou 800 ou pelos sistemas 200, 300, 600 ou 700 conforme discutido no presente documento.[0057] Figure 4 is a flow chart illustrating an exemplary process 400 for encoding video content for wireless transmission, arranged in accordance with at least some implementations of the present disclosure. Process 400 can include one or more operations 401 to 415 as illustrated in Figure 4. Process 400 can form at least part of a video encoding process. By way of non-limiting example, process 400 may form at least part of a video content video encoding process as performed by devices 101 or 800 or systems 200, 300, 600, or 700 as discussed herein.

[0058] Em alguns exemplos, o processo 400 pode ser implantado mesmo quando uma capacidade de canal sem fio não for um gargalo ou uma preocupação. Ademais, o processo 400 pode ser baseado no preditor de taxa de bits sem referência (NR) (por exemplo, o módulo de previsão de taxa de bits de codificação 204). Em alguns exemplos, a previsão de taxa de bits de codificação pode ser pulada ou ignorada quando o bit per pixel médio de segmento estiver abaixo de um limite específico (por exemplo, conforme discutido em relação à operação de decisão 409). Em outros exemplos, a previsão de taxa de bits de codificação e a taxa de bits média de segmento podem ser fornecidos para seleção conforme discutido em relação às taxas de bits de candidato 212 e 213. Em tais exemplos, quando o pulo tiver ocorrido (de modo que apenas a taxa de bits de candidato 213 seja fornecida), a taxa de bits de candidato 213 provavelmente (ou necessariamente) seria menor que o candidato 212 de modo que um pulo ou determinação forneçam o mesmo resultado. Tal pulo e/ou determinação de uma taxa de bits média de segmento pode fornecer predições de taxa de bits aprimoradas em casos em que a previsão de taxa de bits de codificação possa ter limitações como, por exemplo, na avaliação de segmentos que consistem em quadros estáticos com um número extremamente pequeno de bits (por exemplo, quadros preto e branco).[0058] In some examples, process 400 may be deployed even when a wireless channel capacity is not a bottleneck or concern. Furthermore, process 400 may be based on unreferenced (NR) bitrate predictor (e.g., coding bitrate predictor module 204). In some examples, the encoding bitrate prediction may be skipped or ignored when the segment average bit per pixel is below a specific threshold (for example, as discussed in connection with decision operation 409). In other examples, the predicted encoding bitrate and average segment bitrate may be provided for selection as discussed in relation to candidate bitrates 212 and 213. In such examples, when the hop has occurred (from so that only the candidate bitrate 213 is given), the candidate bitrate 213 would likely (or necessarily) be less than the candidate 212 so that a jump or determination would give the same result. Such hopping and/or determination of a segment average bitrate can provide improved bitrate predictions in cases where encoding bitrate prediction may have limitations, for example, in evaluating segments consisting of frames. static with an extremely small number of bits (for example, black and white frames).

[0059] Ademais, conforme discutido, uma determinação de taxa de bits baseada em vídeo de origem codificado pode ser realizada com base em uma taxa de bits de vídeo de origem compactado modificada por um fator de escalonamento. Tais técnicas podem ser vantajosas quando o vídeo de origem 201 for um conteúdo de vídeo de Internet que tem uma qualidade de vídeo relativamente baixa ou conteúdo de vídeo local que tem qualidade de vídeo relativamente alta (por exemplo, qualidade baixa ou alta em comparação à qualidade de H.264 AVC ou HEVC). Para ambos os casos, o fluxo de bits de qualidade de vídeo alcançável 216 (por exemplo, vídeo codificado para transmissão) é determinado amplamente pela taxa de bits e pela resolução do vídeo de origem 201. Se o vídeo de origem 201 tiver alta taxa de bits e MOS superior ao MOS desejado (por exemplo, MOS 210), a previsão de taxa de bits de MOS NR de codificação discutida pode ser usada para reduzir a taxa de bits de codificação significativamente. Entretanto, se o vídeo de origem 201 tiver uma taxa de bits baixa ou muito baixa, então o uso de uma taxa de bits de codificador alta (por exemplo, a taxa de bits de codificação selecionada 215) pode ser um desperdício e não aprimoraria o MOS da apresentação de vídeo no dispositivo receptor 102. Em tais casos, conforme discutido, um fator de escalonamento (por exemplo, modificar a taxa de bits do vídeo de origem por um fator de escalonamento) pode ser usado para determinar a taxa de bits para codificação (por exemplo, a taxa de bits de codificação selecionada 215). Por exemplo, o fator de escalonamento (por exemplo, x) pode ser ajustado de modo adaptativo com base na diferença entre desempenho de codec local e de origem conforme discutido.[0059] Furthermore, as discussed, a bitrate determination based on encoded source video can be performed based on a compressed source video bitrate modified by a scaling factor. Such techniques may be advantageous when the source video 201 is Internet video content that has relatively low video quality or local video content that has relatively high video quality (e.g., low or high quality compared to high quality). of H.264 AVC or HEVC). For both cases, the achievable video quality bitstream 216 (e.g., broadcast encoded video) is determined largely by the bitrate and resolution of the source video 201. If the source video 201 has a high bitrate, bits and MOS greater than the desired MOS (for example, MOS 210), the encoding MOS bitrate prediction discussed can be used to reduce the encoding bitrate significantly. However, if the source video 201 has a low or very low bitrate, then using a high encoder bitrate (e.g., the selected encoding bitrate 215) might be wasteful and would not improve the MOS of the video presentation on the receiving device 102. In such cases, as discussed, a scaling factor (e.g., modifying the source video bit rate by a scaling factor) can be used to determine the bit rate to encoding (for example, the selected encoding bitrate 215). For example, the scaling factor (eg x) can be adaptively adjusted based on the difference between local and source codec performance as discussed.

[0060] Novamente com referência à Figura 4, o processo 400 pode começar na operação 401, “Definir Taxas de Bits Mín e Máx para Codificação Local”, em que uma taxa de bits mínima e uma taxa de bits máxima podem ser definidas ou determinadas conforme discutido no presente documento. Por exemplo, as taxas de bits máxima e mínima 209 podem ser definidas ou determinadas através do módulo de taxa de bits máxima e mínima 302 do sistema 300.[0060] Again with reference to Figure 4, process 400 can start at operation 401, "Set Min and Max Bit Rates for Local Encoding", in which a minimum bit rate and a maximum bit rate can be set or determined as discussed in this document. For example, the maximum and minimum bitrates 209 can be set or determined through the maximum and minimum bitrate module 302 of the system 300.

[0061] O processo 400 pode continuar na operação 402, “Definir MOS Desejado para Codificação Local”, em que um índice médio de opinião desejado (MOS) pode ser definido ou determinado conforme discutido no presente documento. Por exemplo, o índice médio de opinião 210 pode ser definido ou determinado através do módulo de índice médio de opinião 301.[0061] Process 400 may continue to operation 402, “Set Desired MOS for Local Coding”, in which a desired mean opinion index (MOS) may be defined or determined as discussed herein. For example, the average opinion rating 210 can be defined or determined using the average opinion rating module 301.

[0062] O processo 400 pode continuar na operação 403, “Obter Informações de Exibição de Receptor”, em que informações de exibição para um receptor (por exemplo, o dispositivo receptor 102) podem ser obtidas ou recebidas conforme discutido no presente documento. Por exemplo, o módulo de parâmetros de exibição 304 do módulo de informações de exibição 303 pode obter ou receber informações de exibição (por exemplo, informações de resolução de exibição) para o dispositivo receptor 102.[0062] Process 400 may continue to operation 403, "Get Receiver Display Information", in which display information for a receiver (eg, receiver device 102) may be obtained or received as discussed herein. For example, display parameter module 304 from display information module 303 may obtain or receive display information (e.g., display resolution information) for receiving device 102.

[0063] O processo 400 pode continuar na operação 404, “Determinar Coeficientes Dependentes de Dispositivo”, em que os coeficientes dependentes de dispositivo como os coeficientes de qualidade de exibição podem ser determinados conforme discutido no presente documento. Por exemplo, os dados de exibição 211 incluindo coeficientes de qualidade de exibição podem ser determinados através da tabela de consulta de coeficientes de qualidade de exibição 305 do módulo de informações de exibição 303.[0063] Process 400 may continue to operation 404, "Determine Device Dependent Coefficients", wherein device dependent coefficients such as display quality coefficients may be determined as discussed herein. For example, the display data 211 including display quality coefficients can be determined through the display quality coefficient lookup table 305 of the display information module 303.

[0064] O processo 400 pode continuar na operação 405, “Obter Fluxo de Bits de Segmento de Vídeo Localmente Codificado”, em que um fluxo de bits de um segmento de vídeo localmente codificado pode ser obtido e/ou determinado conforme discutido no presente documento. Por exemplo, o decodificador 202 pode decodificar um segmento do vídeo de origem 201 (com base em codec de vídeo usado de vídeo associado ao vídeo de origem compactado) e o codificador 203 pode codificar o segmento com base em codec de vídeo usado de vídeo local conforme discutido.[0064] Process 400 may continue at operation 405, "Get Bitstream of Locally Encoded Video Segment", in which a bitstream of a locally encoded video segment can be obtained and/or determined as discussed herein . For example, decoder 202 can decode a segment of source video 201 (based on video codec used from video associated with compressed source video) and encoder 203 can encode segment based on video codec used from local video as discussed.

[0065] O processo 400 pode continuar na operação 406, “Realizar Análise de Fluxo de Bits”, em que uma análise de fluxo de bits pode ser realizada com base no fluxo de bits associado ao segmento de vídeo conforme discutido no presente documento. Por exemplo, o módulo de análise de fluxo de bits 307 do módulo de previsão de taxa de bits de codificação 204 pode realizar uma análise de fluxo de bits com base no segmento codificado 208 para gerar parâmetros de fluxo de bits de segmento incluindo um bit por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.[0065] Process 400 may continue at operation 406, "Perform Bitstream Analysis", in which a bitstream analysis may be performed based on the bitstream associated with the video segment as discussed herein. For example, the bitstream analysis module 307 of the encoding bitrate prediction module 204 can perform a bitstream analysis based on the encoded segment 208 to generate segment bitstream parameters including one bit per segment average pixel, a segment average quantization parameter, a segment encoding frame rate, or a segment encoding video height.

[0066] O processo 400 pode continuar na operação 407, “Coletar Taxa de Bits de Conteúdo de Vídeo de Origem”, em que uma taxa de bits de conteúdo de vídeo de origem pode ser coletada ou determinada conforme discutido no presente documento. Por exemplo, o módulo de taxa de bits de vídeo de origem 312 do módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 pode receber o vídeo de origem 201 (por exemplo, o vídeo de origem compactado) ou uma porção do mesmo e o módulo de taxa de bits de vídeo de origem 312 pode determinar uma taxa de bits para o vídeo de origem codificado com o uso do codec de vídeo associado à compactação do vídeo de origem.[0066] Process 400 may continue to operation 407, "Collect Source Video Content Bitrate", wherein a source video content bitrate may be collected or determined as discussed herein. For example, source video bitrate module 312 of encoded source video based bitrate determination module 206 may receive source video 201 (e.g., compressed source video) or a portion of same, and source video bitrate module 312 may determine a bitrate for source video encoded using the video codec associated with the source video's compression.

[0067] O processo 400 pode continuar na operação 408, “Ajustar por meio de Fator de Escalonamento para Determinar CBR”, em que a taxa de bits para o vídeo de origem compactado pode ser ajustada por um fator de escalonamento conforme discutido no presente documento. Por exemplo, o módulo de modificação de fator de escalonamento 313 do módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 pode modificar a taxa de bits por um fator de escalonamento para gerar taxa de bits de candidato 214. Conforme discutido, o fator de escalonamento pode ser baseado de modo adaptativo no codec de vídeo associado à compactação do vídeo de origem.[0067] Process 400 may continue at operation 408, “Adjust by Scaling Factor to Determine CBR”, in which the bit rate for the compressed source video may be adjusted by a scaling factor as discussed in this document . For example, the scaling factor modification module 313 of the encoded source video based bitrate determination module 206 can modify the bitrate by a scaling factor to generate candidate bitrate 214. As discussed, the scaling factor can be adaptively based on the video codec associated with the source video compression.

[0068] O processo 400 pode continuar da operação 406 conforme discutido na operação de decisão 409, “Bits por Pixel Médio de Segmento < Limite?”, em que um bit por pixel médio do segmento pode ser comparado a um limite. Conforme mostrado, se os bits por pixel médio para o segmento forem menores que um limite (ou menores ou iguais em algumas implantações), o processo 400 pode continuar na operação 410 e, se os bits por pixel médio para o segmento forem maiores ou iguais ao limite (ou maiores em algumas implantações), o processo 400 pode continuar na operação 413.[0068] Process 400 may continue from operation 406 as discussed in decision operation 409, "Segment Average Bits Per Pixel < Threshold?", in which a segment average bit per pixel may be compared to a threshold. As shown, if the average bits per pixel for the segment is less than a threshold (or less than or equal in some deployments), process 400 may continue at operation 410, and if the average bits per pixel for the segment is greater than or equal to the limit (or greater in some deployments), process 400 can continue at operation 413.

[0069] O processo 400 pode continuar, assim, na operação 410, “Determinar Complexidade Temporal”, em que uma complexidade temporal para o segmento pode ser determinada conforme discutido no presente documento. Por exemplo, o módulo de complexidade temporal 308 do módulo de previsão de taxa de bits de codificação 204 pode determinar a complexidade temporal com base na Equação (1) ou similares.[0069] Process 400 may thus continue at operation 410, "Determine Temporal Complexity", in which a temporal complexity for the segment may be determined as discussed herein. For example, the time complexity module 308 of the encoding bitrate prediction module 204 can determine the time complexity based on Equation (1) or the like.

[0070] O processo 400 pode continuar na operação 411, “Determinar Coeficientes de Modelagem de Função”, em que os coeficientes de modelagem de função podem ser determinados com base nos coeficientes dependentes de dispositivo determinados através da operação 404 e na complexidade temporal determinada através da operação 410. Por exemplo, os coeficientes de modelagem de função podem fornecer coeficientes para um modelo de previsão de taxa de bits pré-treinado, que pode gerar uma previsão de taxa de bits dependente do conteúdo do segmento (por exemplo, a complexidade temporal) e uma qualidade da exibição de receptor (por exemplo, os coeficientes dependentes de dispositivo de qualidade).[0070] Process 400 may continue at operation 411, "Determine Function Shaping Coefficients", in which the function modeling coefficients may be determined based on the device-dependent coefficients determined through operation 404 and the time complexity determined through of operation 410. For example, the function modeling coefficients can provide coefficients for a pre-trained bitrate prediction model, which can generate a bitrate prediction dependent on the segment content (for example, the temporal complexity ) and a quality of the receiver display (for example, the quality device-dependent coefficients).

[0071] O processo 400 pode continuar na operação 412, “Determinar Previsão de Taxa de Bits de Codificação como CBR”, em que uma previsão de taxa de bits de codificação pode ser determinada com base nos coeficientes de modelagem de função determinados através da operação 411, nas taxas de bits mínima e máxima determinadas através da operação 401 e no MOS desejado determinado através da operação 402. Por exemplo, o módulo de previsão de taxa de bits 309 do módulo de previsão de taxa de bits de codificação 204 pode determinar a taxa de bits de candidato 212 com base na Equação (5) ou similares.[0071] Process 400 may continue to operation 412, "Determine Encoding Bitrate Prediction as CBR", in which an encoding bitrate prediction may be determined based on the function shaping coefficients determined through operation 411, at the minimum and maximum bit rates determined through operation 401, and at the desired MOS determined through operation 402. For example, the bitrate prediction module 309 of the encoding bitrate prediction module 204 can determine the candidate bit rate 212 based on Equation (5) or the like.

[0072] Conforme discutido, nos exemplos em que os bits por pixel médio de segmento são menores que um limite (ou menores ou iguais ao limite), o processo 400 pode continuar da operação de decisão 409 para a operação 413, “Usar Bits Médio de Segmento como CBR”, em que os bits médios do segmento (ou uma taxa de bits média para o segmento) podem ser usados como a taxa de bits de candidato. Conforme discutido, em alguns exemplos, a operação de decisão 409 e a operação 413 podem fornecer um pulo ou um desvio das operações 410 a 412. Por exemplo, tal pulo pode ocorrer quando os bits por pixel médio de segmento forem menores que um limite (ou menores ou iguais ao limite). Em tais exemplos, o modelo de previsão de taxa de bits de codificação discutido pode não fornecer resultados úteis como em cenários de taxa de bits baixa ou muito baixa (por exemplo, segmentos de quadros preto e branco estáticos ou similares). Por exemplo, o módulo de cálculo de média de segmento 311 ou o módulo de análise de fluxo de bits 310 pode fornecer uma taxa de bits de candidato 213 como os bits médios do segmento.[0072] As discussed, in examples where the segment average bits per pixel are less than a threshold (or less than or equal to the threshold), process 400 may continue from decision operation 409 to operation 413, “Use Average Bits as CBR”, where the average bits of the segment (or an average bitrate for the segment) can be used as the candidate bitrate. As discussed, in some examples, decision operation 409 and operation 413 can provide a jump or branch from operations 410 to 412. For example, such a jump can occur when the segment average bits per pixel is less than a threshold ( or less than or equal to the limit). In such examples, the discussed encoding bitrate prediction model may not provide useful results as in low or very low bitrate scenarios (eg, static black and white frame segments or the like). For example, the segment averaging module 311 or the bitstream analysis module 310 may provide a candidate bitrate 213 as the average bits of the segment.

[0073] O processo 400 pode continuar na operação 414, “Determinar Mínimo de Taxas de Bits de Candidato”, em que um mínimo das taxas de bits de candidato pode ser determinado. Por exemplo, o módulo de seleção de taxa de bits 207 pode determinar um mínimo das taxas de bits de candidato. Conforme discutido, no exemplo do processo 400, a operação 414 pode ser usada para selecionar o mínimo da taxa de bits de candidato fornecida pela operação 408 e de uma taxa de bits de candidato fornecida pela operação 412 ou de uma taxa de bits de candidato fornecida pela operação 413 (dependendo da decisão na operação de decisão 409). Tal implantação de pulo pode fornecer menos computações e tempos de processamento menores, por exemplo.[0073] Process 400 may continue at operation 414, "Determine Minimum Candidate Bitrates", wherein a minimum of candidate bitrates may be determined. For example, bitrate selection module 207 may determine a minimum of candidate bitrates. As discussed, in process example 400, operation 414 can be used to select the minimum of a candidate bit rate provided by operation 408 and a candidate bit rate provided by operation 412 or a candidate bit rate provided by by the 413 operation (depending on the decision in the 409 decision operation). Such a leap deployment might provide fewer computations and shorter processing times, for example.

[0074] Em outras modalidades, conforme discutido no presente documento, a operação de decisão 409 pode ser pulada e uma taxa de bits de candidato fornecida pela operação 412 e uma taxa de bits de candidato fornecida pela operação 413 (junto com uma taxa de bits de candidato fornecida pela operação 408) podem ser fornecidas para a determinação de um mínimo das taxas de bits de candidato na operação 414.[0074] In other embodiments, as discussed herein, the decision operation 409 may be skipped and a candidate bitrate provided by operation 412 and a candidate bitrate provided by operation 413 (along with a bitrate provided by operation 408) may be provided for determining a minimum of the candidate bitrates in operation 414.

[0075] O processo 400 pode continuar na operação 415, “Definir Taxa de Bits de Codificação e Codificar Segmento”, em que uma taxa de bits de codificação pode ser definida e um segmento pode ser codificado. Por exemplo, o módulo de seleção de taxa de bits 207 pode definir a taxa de bits de codificação selecionada 215 para o codificador 203 para codificar um segmento do vídeo de origem (decodificado) 201. Conforme discutido, em alguns exemplos, a taxa de bits selecionada pode ser usada para codificar um segmento subsequente ao segmento atualmente sendo avaliado e, em outros exemplos, a taxa de bits selecionada pode ser usada para codificar o próprio segmento atual no presente momento.[0075] Process 400 may continue to operation 415, "Set Encoding Bitrate and Encode Segment", in which an encoding bitrate can be set and a segment can be encoded. For example, bitrate selection module 207 may set the selected encoding bitrate 215 to encoder 203 for encoding a segment of source (decoded) video 201. As discussed, in some examples, the bitrate selected bitrate can be used to encode a segment subsequent to the segment currently being evaluated, and in other examples the selected bit rate can be used to encode the current segment itself at the present time.

[0076] As operações do processo 400 podem ser repetidas qualquer número de vezes em série ou em paralelo para qualquer número de segmentos de um vídeo de origem e/ou para qualquer número de vídeos de origem. Conforme discutido, vários vídeos de origem podem ter sido compactados com o uso de diferentes codecs de vídeo, o que pode influenciar o fator de escalonamento implantado através da operação 408.[0076] The operations of process 400 may be repeated any number of times serially or in parallel for any number of segments of a source video and/or for any number of source videos. As discussed, multiple source videos may have been compressed using different video codecs, which may influence the scaling factor implemented via the 408 operation.

[0077] A Figura 5 é um fluxograma que ilustra um processo exemplificador 500 para a codificação de conteúdo de vídeo para a transmissão sem fio, disposto de acordo com pelo menos algumas implantações da presente revelação. O processo 500 pode incluir uma ou mais operações 501 a 505 conforme ilustrado na Figura 5. O processo 500 pode formar pelo menos parte de um processo de codificação de vídeo. A título de exemplo não limitador, o processo 500 pode formar pelo menos parte de um processo de codificação de vídeo conforme realizado pelos dispositivos 101 ou 800 ou pelos sistemas 200, 300, 600 ou 700 conforme discutido no presente documento. Ademais, o processo 500 será descrito no presente documento com referência ao sistema 600 da Figura 6.[0077] Figure 5 is a flowchart illustrating an exemplary process 500 for encoding video content for wireless transmission, arranged in accordance with at least some implementations of the present disclosure. Process 500 can include one or more operations 501 to 505 as illustrated in Figure 5. Process 500 can form at least part of a video encoding process. By way of non-limiting example, process 500 may form at least part of a video encoding process as performed by devices 101 or 800 or by systems 200, 300, 600 or 700 as discussed herein. Furthermore, process 500 will be described herein with reference to system 600 of Figure 6.

[0078] A Figura 6 é um diagrama ilustrativo de um sistema exemplificador 600, disposto de acordo com pelo menos algumas implantações da presente revelação. Por exemplo, o sistema 600 pode ser um sistema de criptação de vídeo do dispositivo 101 ou similares. Conforme mostrado na Figura 6, o sistema 600 pode incluir um ou mais dispositivo de imageamento 602, uma antena 602, uma ou mais unidades de processamento 620 incluindo conjunto de circuito de lógica 630, um ou mais processadores 603, um ou mais armazenamentos de memória 604 e um dispositivo de exibição 605. Ademais, o conjunto de circuito de lógica 630 pode incluir o decodificador 202, o decodificador 202, o módulo de previsão de fluxo de bits de codificação 205, o módulo de determinação de taxa de bits média de segmento 205, o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 e o módulo de seleção de taxa de bits 207. Conforme ilustrado, o(s) dispositivo(s) de imageamento 601, a antena 602, a(s) unidade(s) de processamento 620, o conjunto de circuito de lógica 630, o decodificador 202, o decodificador 202, o processador(es) 603, o(s) armazenamento(s) de memória 604 e/ou o dispositivo de exibição 605 podem ter a capacidade de comunicação entre si.[0078] Figure 6 is an illustrative diagram of an exemplary system 600, arranged in accordance with at least some implementations of the present disclosure. For example, system 600 may be a video encryption device 101 system or the like. As shown in Figure 6, system 600 may include one or more imaging devices 602, an antenna 602, one or more processing units 620 including logic circuitry 630, one or more processors 603, one or more memory stores 604 and a display device 605. Furthermore, the logic circuitry 630 may include the decoder 202, the decoder 202, the encoding bitstream prediction module 205, the segment average bitrate determination module 205, the encoded source video-based bitrate determination module 206, and the bitrate selection module 207. As illustrated, the imaging device(s) 601, the antenna 602, the ) processing unit(s) 620, logic circuitry 630, decoder 202, decoder 202, processor(s) 603, memory store(s) 604, and/or display device 605 can have the ability to communicate with each other.

[0079] Conforme mostrado, em alguns exemplos, o sistema 600 pode incluir a antena 602. A antena 602 pode ser configurada para transmitir ou receber um fluxo de bits codificado de dados de vídeo, por exemplo. Adicionalmente, em alguns exemplos, o sistema 600 pode incluir o dispositivo de exibição 605. O dispositivo de exibição 605 pode ser configurado para apresentar dados de vídeo como o vídeo de origem decodificado 201. Conforme mostrado, em alguns exemplos, o conjunto de circuito de lógica 630 pode ser implantado através da(s) unidade(s) de processamento 620. A(s) unidade(s) de processamento 620 pode incluir lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral ou similares. O sistema 600 também pode incluir processador(es) opcional (opcionais) 603, que pode incluir, de modo similar, lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral ou similares. Em alguns exemplos, o conjunto de circuito de lógica 630 pode ser implantado através de hardware, hardware dedicado de codificação de vídeo ou similares, e o(s) processador(es) 603 pode implantar software de propósito geral, sistemas operacionais ou similares, através, por exemplo, de uma unidade de processamento central de múltiplos núcleos (CPU). Além disso, o(s) armazenamento(s) de memória 604 pode ser qualquer tipo de memória como memória volátil (por exemplo, Memória de Acesso Aleatório Estática (SRAM), Memória de Acesso Aleatório Dinâmica (DRAM), etc.) ou memória não volátil (por exemplo, memória flash, etc.), e assim em diante. Em um exemplo não limitador, o(s) armazenamento(s) de memória 604 pode ser implantado por memória tipo cache. Em alguns exemplos, o conjunto de circuito de lógica 630 pode acessar armazenamento(s) de memória 604 (para a implantação de um armazenamento temporário de quadro de vídeo, por exemplo). Em outros exemplos, o conjunto de circuito de lógica 630 e/ou a(s) unidade(s) de processamento 620 pode incluir armazenamentos de memória (por exemplo, cache ou similares) para a implantação de um armazenamento temporário de quadro de vídeo ou similares. Por exemplo, o(s) armazenamento(s) de memória 604 pode armazenar quaisquer dados de vídeo como o vídeo de origem 201 (por exemplo, o vídeo de origem compactado), o vídeo de origem decodificado, o segmento codificado 208, o fluxo de bits 216, as taxas de bits de candidato 212, 213, 214, as taxas de bits máxima e mínima 209, o MOS 210, os dados de exibição 211, a taxa de bits de codificação selecionada 215 ou quaisquer outros dados utilizados ou gerados conforme discutido no presente documento.[0079] As shown, in some examples, system 600 may include antenna 602. Antenna 602 may be configured to transmit or receive an encoded bitstream of video data, for example. Additionally, in some examples, system 600 may include display device 605. Display device 605 may be configured to display video data as decoded source video 201. As shown, in some examples, the display circuitry Logic 630 may be implemented via processing unit(s) 620. Processing unit(s) 620 may include application-specific integrated circuit (ASIC) logic, graphics processor(s) , general purpose processor(s) or similar. System 600 may also include optional (optional) processor(s) 603, which may similarly include application-specific integrated circuit (ASIC) logic, graphics processor(s), purpose-built processor(s). general or similar. In some examples, logic circuitry 630 may be implemented via hardware, dedicated video encoding hardware, or the like, and processor(s) 603 may deploy general purpose software, operating systems, or the like, via , for example, a multi-core central processing unit (CPU). Furthermore, the memory store(s) 604 can be any type of memory such as volatile memory (e.g., Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), etc.) or memory non-volatile (e.g. flash memory, etc.), and so on. In a non-limiting example, the memory store(s) 604 may be implemented by caching memory. In some examples, logic circuitry 630 may access memory store(s) 604 (for implementing a video frame buffer, for example). In other examples, logic circuitry 630 and/or processing unit(s) 620 may include memory stores (e.g., cache or the like) for implementing a video frame buffer or similar. For example, the memory store(s) 604 can store any video data such as the source video 201 (e.g., the compressed source video), the decoded source video, the encoded segment 208, the stream bitrate 216, candidate bitrates 212, 213, 214, maximum and minimum bitrates 209, MOS 210, display data 211, selected encoding bitrate 215, or any other data used or generated as discussed in this document.

[0080] Em alguns exemplos, o codificador 100 implantado através do conjunto de circuito de lógica 630 pode incluir um armazenamento temporário de quadro (por exemplo, através da(s) unidade(s) de processamento 620 ou do(s) armazenamento(s) de memória 604) e de uma unidade de processamento gráfico (por exemplo, através da(s) unidade(s) de processamento 620). A unidade de processamento gráfico pode ser acoplada de modo comunicativo ao armazenamento temporário de quadro, por exemplo. A unidade de processamento gráfico pode incluir o codificador 100 conforme implantado através do conjunto de circuito de lógica 630 e/ou dos vários módulos conforme discutido no presente documento. Por exemplo, a unidade de processamento gráfico pode incluir o decodificador 202, o decodificador 202, o módulo de previsão de fluxo de bits de codificação 205, o módulo de determinação de taxa de bits média de segmento 205, o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 e o módulo de seleção de taxa de bits 207, conforme mostrado. Os módulos ilustrados podem ser implantados para realizar qualquer uma das operações conforme discutido no presente documento.[0080] In some examples, encoder 100 deployed via logic circuitry 630 may include frame buffering (e.g., via processing unit(s) 620 or frame storage(s) ) of memory 604) and a graphics processing unit (e.g., via processing unit(s) 620). The graphics processing unit may be communicatively coupled to the frame buffer, for example. The graphics processing unit may include encoder 100 as implemented through logic circuitry 630 and/or the various modules as discussed herein. For example, the graphics processing unit may include the decoder 202, the decoder 202, the encoding bitstream prediction module 205, the segment average bitrate determination module 205, the bits based on encoded source video 206 and the bitrate selection module 207, as shown. The illustrated modules can be deployed to perform any of the operations as discussed in this document.

[0081] Em alguns exemplos, a antena 602 do sistema 2000 pode ser configurada para transmitir um fluxo de bits codificado de dados de vídeo como o fluxo de bits 216. Conforme discutido, o fluxo de bits codificado pode incluir dados de vídeo codificados com o uso de codec de vídeo usado local como o codec H.264 AVC ou o codec HEVC ou similares.[0081] In some examples, antenna 602 of system 2000 may be configured to transmit an encoded bitstream of video data as bitstream 216. As discussed, the encoded bitstream may include encoded video data with the Use local used video codec like H.264 AVC codec or HEVC codec or similar.

[0082] Novamente com referência à discussão da Figura 5, o processo 500 pode começar na operação 501, “Determinar uma Primeira Taxa de Bits de Candidato para Codificar um Segmento de um Vídeo de Origem, com o Uso de um primeiro codec de Vídeo, como uma Taxa de Bits para o Vídeo de Origem Codificado com o Uso de um segundo codec de vídeo modificado por um Fator de Escalonamento”, em que uma primeira taxa de bits de candidato para a codificação de um segmento de um vídeo de origem, com o uso de um primeiro codec de vídeo, pode ser determinada de modo que a primeira taxa de bits de candidato seja uma taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento. Por exemplo, o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 conforme implantado através do conjunto de circuito de lógica 630 pode receber um vídeo de origem compactado ou uma porção do mesmo de modo que a compactação seja realizada com o uso de um codec associado a uma compactação do vídeo de origem (por exemplo, o segundo codec de vídeo) e o módulo de determinação de taxa de bits baseada em vídeo de origem codificado 206 pode determinar a taxa de bits para o vídeo de origem compactado e modificar a mesma por um fator de escalonamento conforme discutido no presente documento para gerar a primeira taxa de bits de candidato. A primeira taxa de bits pode ser determinada para a codificação do segmento com o uso de um codec de vídeo local (por exemplo, o primeiro codec de vídeo). Por exemplo, o fator de escalonamento pode ser baseado em uma qualidade do codec de vídeo associado à compactação do vídeo de origem de modo que, para uma maior diferença de qualidade entre os codecs de vídeo, pode ser usado um maior fator de escalonamento.[0082] Again with reference to the discussion of Figure 5, process 500 may begin at operation 501, “Determine a First Candidate Bitrate for Encoding a Segment of a Source Video, Using a First Video codec, as a Bitrate for Source Video Encoded Using a Second Video Codec Modified by a Scaling Factor”, wherein a first candidate bitrate for encoding a segment of a source video, with using a first video codec, may be determined such that the first candidate bitrate is a bitrate for source video encoded using a second video codec modified by a scaling factor. For example, encoded source video-based bitrate determination module 206 as deployed through logic circuitry 630 may receive a compressed source video or a portion thereof such that compression is performed using of a codec associated with a compression of the source video (e.g., the second video codec) and the encoded source video-based bitrate determination module 206 can determine the bitrate for the compressed source video and modify it by a scaling factor as discussed in this document to generate the first candidate bitrate. The first bitrate can be determined for encoding the segment using a local video codec (for example, the first video codec). For example, the scaling factor can be based on a video codec quality associated with the source video compression so that for a greater quality difference between video codecs, a larger scaling factor can be used.

[0083] Por exemplo, uma taxa de bits de candidato pode ser determinada para a codificação, com o uso do primeiro codec de vídeo, um segundo segmento de um segundo vídeo de origem de modo que a taxa de bits de candidato compreenda uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento. Em uma modalidade, se o segundo codec de vídeo e o terceiro codec de vídeo forem diferentes, os fatores de escalonamento determinados também são diferentes. Por exemplo, quando uma primeira diferença de qualidade entre o primeiro codec de vídeo e o segundo codec de vídeo é maior que uma segunda diferença de qualidade entre o primeiro codec de vídeo e o terceiro codec de vídeo, o fator de escalonamento para o segmento codificado com o uso do segundo codec de vídeo é maior que o fator de escalonamento para o segmento codificado com o uso do terceiro codec de vídeo.[0083] For example, a candidate bitrate may be determined for encoding, using the first video codec, a second segment of a second source video such that the candidate bitrate comprises a rate of bits for the second source video encoded using a third video codec modified by a second scaling factor. In one embodiment, if the second video codec and the third video codec are different, the determined scaling factors are also different. For example, when a first quality difference between the first video codec and the second video codec is greater than a second quality difference between the first video codec and the third video codec, the scaling factor for the encoded segment using the second video codec is greater than the scaling factor for the segment encoded using the third video codec.

[0084] O processamento pode continuar na operação 502, “Determinar uma Segunda Taxa de Bits de Candidato para Codificar o Segmento do Vídeo de Origem, com o Uso o primeiro codec de Vídeo, como uma Taxa de Bits Média para o Segmento ou um Segmento Prévio do Vídeo de Origem Codificado com o Uso do primeiro codec de Vídeo”, em que uma segunda taxa de bits de candidato para a codificação do segmento do vídeo de origem, com o uso do primeiro codec de vídeo, pode ser determinada de modo que a segunda taxa de bits de candidato seja uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo. Em uma modalidade, o segmento prévio é usado e o segmento prévio é imediatamente anterior ao segmento no vídeo de origem. Por exemplo, o módulo de determinação de taxa de bits média de segmento 205 conforme implantado através do conjunto de circuito de lógica 630 pode receber um segmento codificado com o uso de um codec local (por exemplo, o primeiro codec de vídeo) e o módulo de determinação de taxa de bits média de segmento 205 conforme implantado através do conjunto de circuito de lógica 630 pode determinar uma taxa de bits média baseada no segmento codificado recebido como a segunda taxa de bits de candidato.[0084] Processing may continue at operation 502, “Determine a Second Candidate Bitrate to Encode the Source Video Segment, Using the First Video Codec, as an Average Bitrate for the Segment or a Segment Source Video Preview Encoded Using First Video codec", wherein a second candidate bitrate for encoding the source video segment using the first video codec may be determined such that the second candidate bitrate is an average bitrate for at least one of the source video segment encoded using the first video codec or a previous source video segment encoded using the first video codec . In one embodiment, the pre-segment is used and the pre-segment is immediately preceding the segment in the source video. For example, segment averaging bitrate determination module 205 as deployed via logic circuitry 630 may receive a segment encoded using a local codec (e.g., the first video codec) and the module Segment average bitrate determination device 205 as implemented through logic circuitry 630 may determine an average bitrate based on the received encoded segment as the second candidate bitrate.

[0085] O processamento pode continuar na operação 503, “Determinar uma Terceira Taxa de Bits de Candidato para Codificar o Segmento do Vídeo de Origem, com o Uso do primeiro codec de Vídeo, como uma Previsão de Taxa de Bits de Codificação para o Segmento ou para o Segmento Prévio Codificado com o Uso do primeiro codec de Vídeo”, em que a terceira taxa de bits de candidato para a codificação do segmento do vídeo de origem, com o uso do primeiro codec de vídeo, pode ser determinada de modo que a terceira taxa de bits de candidato seja uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo. Por exemplo, o módulo de previsão de taxa de bits de codificação 204 conforme implantado através do conjunto de circuito de lógica 630 pode receber um segmento codificado com o uso de um codec local (por exemplo, o primeiro codec de vídeo) e o módulo de previsão de taxa de bits de codificação 204 conforme implantado através do conjunto de circuito de lógica 630 pode determinar uma previsão de taxa de bits com base no segmento codificado e/ou em outros dados para determinar a terceira taxa de bits de candidato como a previsão de taxa de bits de codificação. Por exemplo, a previsão de taxa de bits de codificação pode ser baseada pelo menos em parte em um dentre um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada ou um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio conforme discutido no presente documento.[0085] Processing may continue at operation 503, “Determine a Third Candidate Bitrate to Encode the Source Video Segment, Using the First Video Codec, as a Prediction of Encoding Bitrate for the Segment or for Previous Segment Encoded Using First Video codec”, wherein the third candidate bitrate for encoding the source video segment using first video codec may be determined such that the third candidate bitrate is an encoding bitrate prediction for at least one of the segment encoded using the first video codec or the previous segment encoded using the first video codec. For example, the encoding bitrate prediction module 204 as deployed via logic circuitry 630 may receive a segment encoded using a local codec (e.g., the first video codec) and the encoding module encoding bitrate prediction 204 as implemented through logic circuitry 630 may determine a bitrate prediction based on the encoded segment and/or other data to determine the third candidate bitrate as the prediction of encoding bitrate. For example, the encoding bitrate prediction may be based at least in part on one of a predetermined average opinion rating, a predetermined maximum bitrate, a predetermined minimum bitrate, or a display quality coefficient associated with a wireless transmission receiving device as discussed herein.

[0086] Em alguns exemplos, a determinação da previsão de taxa de bits de codificação pode incluir a análise de um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, para determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento e para gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado. Em uma modalidade, os parâmetros de fluxo de bits de segmento incluem pelo menos um dentre um bit por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento. Em alguns exemplos, a previsão de taxa de bits é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio conforme discutido no presente documento. Por exemplo, o coeficiente de qualidade de exibição associado ao dispositivo receptor pode ser determinado com o uso de uma tabela de consulta baseada em informações de resolução recebidas do dispositivo receptor.[0086] In some examples, determining the encoding bitrate prediction may include analyzing a bitstream of the segment encoded using the first video codec or the previous segment encoded using the first video codec to determine segment bitstream parameters, to determine a temporal complexity based on the segment bitstream parameters, and to generate a bitrate prediction based on temporal complexity and a predefined bitrate prediction model -trained. In one embodiment, the segment bitstream parameters include at least one of a segment average bit per pixel, a segment average quantization parameter, a segment encoding frame rate, or a segment encoding video height. . In some examples, the bitrate prediction is additionally based on a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, and a display quality coefficient associated with a device receiving the wireless transmission. as discussed in this document. For example, the display quality coefficient associated with the receiving device can be determined using a look-up table based on resolution information received from the receiving device.

[0087] O processamento pode continuar na operação 504, “Selecionar uma Taxa de Bits de Codificação para o Segmento como um Mínimo da Primeira, da Segunda e da Terceira Taxa de Bits de Candidato”, em que uma taxa de bits de codificação para o segmento do vídeo de origem pode ser selecionada como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato. Por exemplo, o módulo de seleção de taxa de bits 207 conforme implantado através do conjunto de circuito de lógica 630 pode receber a primeira, a segunda e a terceira taxas de bits de candidato e selecionar um mínimo das mesmas como uma taxa de bits de codificação selecionada. Conforme discutido, em alguns exemplos, o módulo de seleção de taxa de bits 207 conforme implantado através do conjunto de circuito de lógica 630 pode receber três taxas de bits de candidato. Em outros exemplos, a segunda ou a terceira taxas de bits de candidato pode ser pulada e o módulo de seleção de taxa de bits 207 conforme implantado através do conjunto de circuito de lógica 630 pode selecionar um mínimo da primeira taxa de bits de candidato e da segunda ou da terceira taxas de bits de candidato para fornecer a taxa de bits de codificação selecionada.[0087] Processing may continue at operation 504, “Select an Encoding Bitrate for the Segment as a Minimum of the First, Second, and Third Candidate Bitrate,” where an encoding bitrate for the source video segment can be selected as a minimum of the first, second and third candidate bitrates. For example, the bitrate selection module 207 as deployed through logic circuitry 630 can receive the first, second, and third candidate bitrates and select a minimum of them as an encoding bitrate. selected. As discussed, in some examples, the bitrate selection module 207 as deployed through logic circuitry 630 can receive three candidate bitrates. In other examples, the second or third candidate bitrate may be skipped and the bitrate selection module 207 as implemented through logic circuitry 630 may select a minimum of the first candidate bitrate and the second or third candidate bitrate to provide the selected encoding bitrate.

[0088] O processamento pode continuar na operação 505, “Codificar, com o Uso do primeiro codec de Vídeo, o Segmento baseado na Taxa de Bits de Codificação Selecionada”, em que o segmento do vídeo de origem pode ser codificado com o uso do primeiro codec de vídeo e com base na taxa de bits de codificação selecionada. Por exemplo, o decodificador 202 conforme implantado através do conjunto de circuito de lógica 630 pode codificar um segmento de um vídeo de origem com base na taxa de bits de codificação selecionada.[0088] Processing can continue at operation 505, “Encode, Using the First Video Codec, the Segment Based on the Selected Encoding Bit Rate”, in which the source video segment can be encoded using the first video codec and based on selected encoding bitrate. For example, decoder 202 as implemented through logic circuitry 630 can encode a segment of a source video based on the selected encoding bitrate.

[0089] Ademais, o fluxo de bits do segmento codificado pode ser fornecido para um dispositivo receptor, que pode decodificar o fluxo de bits e apresentar um vídeo para um usuário. Por exemplo, o decodificador 202 conforme implantado através do conjunto de circuito de lógica 630 pode fornecer o fluxo de bits codificado (por exemplo, codificado com base na taxa de bits de codificação selecionada) para a antena 602 para a transmissão sem fio para um dispositivo receptor.[0089] Furthermore, the bitstream of the encoded segment can be provided to a receiving device, which can decode the bitstream and present a video to a user. For example, decoder 202 as implemented through logic circuitry 630 can deliver the encoded bitstream (e.g., encoded based on the selected encoding bitrate) to antenna 602 for wireless transmission to a device. receiver.

[0090] As operações do processo 500 podem ser repetidas qualquer número de vezes em série ou em paralelo para qualquer número de segmentos de um vídeo de origem e/ou para qualquer número de vídeos de origem.[0090] The operations of process 500 may be repeated any number of times serially or in parallel for any number of segments of a source video and/or for any number of source videos.

[0091] Vários componentes dos sistemas descritos no presente documento podem ser implantados em software, firmware e/ou hardware e/ou qualquer combinação dos mesmos. Por exemplo, vários componentes dos dispositivos 101 ou 800 ou dos sistemas 200, 300, 600 ou 700 podem ser fornecidos, pelo menos em parte, por hardware de um Sistema em um Chip (SoC) computacional como pode ser encontrado em um sistema computacional como, por exemplo, um telefone inteligente. Os versados na técnica podem reconhecer que sistemas descritos no presente documento podem incluir componentes adicionais que não foram descritos nas Figuras correspondentes. Por exemplo, os sistemas discutidos no presente documento podem incluir componentes adicionais como módulos multiplexadores ou demultiplexadores de fluxo de bits e similares que não foram descritos no interesse de clareza.[0091] Various components of the systems described in this document may be implemented in software, firmware and/or hardware and/or any combination thereof. For example, various components of devices 101 or 800 or systems 200, 300, 600 or 700 may be provided, at least in part, by hardware of a computational System on a Chip (SoC) as might be found in a computational system such as , for example, a smart phone. Those skilled in the art will recognize that systems described herein may include additional components that are not described in the corresponding Figures. For example, the systems discussed herein may include additional components such as bitstream multiplexers or demultiplexers modules and the like that have not been described in the interest of clarity.

[0092] Embora a implantação dos processos exemplificadores discutidos no presente documento possa incluir a realização de todas as operações mostradas na ordem ilustrada, a presente revelação não se limita a esse aspecto e, em vários exemplos, a implantação dos processos exemplificadores no presente documento pode incluir apenas um subconjunto das operações mostradas, das operações realizadas em uma ordem diferente daquela ilustrada ou das operações adicionais.[0092] While deployment of the exemplary processes discussed herein may include performing all of the operations shown in the illustrated order, the present disclosure is not limited to that aspect, and in various examples, deployment of the exemplary processes herein may include only a subset of the operations shown, operations performed in a different order than illustrated, or additional operations.

[0093] Além disso, qualquer uma ou mais das operações discutidas no presente documento podem ser realizadas em resposta a instruções fornecidas por um ou mais produtos de programa de computador. Tais produtos de programa podem incluir mídia portadora de sinal que fornece instruções que, quando executadas por, por exemplo, um processador, podem fornecer a funcionalidade descrita no presente documento. Os produtos de programa de computador podem ser fornecidos em qualquer forma dentre um ou mais meios legíveis por máquina. Dessa forma, por exemplo, um processador incluindo uma ou mais unidade(s) de processamento gráfico ou núcleo(s) de processador pode realizar um ou mais dos blocos dos processos exemplificadores no presente documento em resposta ao código de programa e/ou instruções ou conjunto de instruções conduzidos para o processador por um ou mais meios legíveis por máquina. Em geral, um meio legível por máquina pode conduzir software sob a forma de código de programa e/ou instruções ou conjunto de instruções que podem fazer com que qualquer um dos dispositivos e/ou sistemas descritos no presente documento implantem pelo menos porções dos dispositivos 101 ou 800 ou dos sistemas 200, 300, 600 ou 700, ou qualquer outro módulo ou componente conforme discutido no presente documento.[0093] Furthermore, any one or more of the operations discussed herein may be performed in response to instructions provided by one or more computer program products. Such program products may include signal-carrying media that provide instructions that, when executed by, for example, a processor, can provide the functionality described herein. Computer program products may be provided in any form on one or more machine-readable media. Thus, for example, a processor including one or more graphics processing unit(s) or processor core(s) can perform one or more of the blocks of the exemplary processes herein in response to program code and/or instructions or set of instructions conveyed to the processor by one or more machine-readable media. In general, a machine-readable medium can carry software in the form of program code and/or instructions or instruction sets that can cause any of the devices and/or systems described herein to implant at least portions of the devices 101 or 800 or Systems 200, 300, 600 or 700, or any other module or component as discussed herein.

[0094] Conforme usado em qualquer implantação descrita no presente documento, o termo “módulo” se refere a qualquer combinação de lógica de software, lógica de firmware, lógica de hardware e/ou conjunto de circuitos configurado para fornecer a funcionalidade descrita no presente documento. O software pode ser incorporado como um pacote de software, código e/ou conjunto de instruções ou instruções, e “hardware”, conforme usado em qualquer implantação descrita no presente documento, pode incluir, por exemplo, unicamente ou em qualquer combinação, conjunto de circuitos ligado por fio, conjunto de circuitos programável, conjunto de circuitos de estado de máquina, conjunto de circuitos de função fixa, conjunto de circuitos de unidade de execução e/ou firmware que armazena instruções executadas por conjunto de circuitos programável. Os módulos podem, coletiva ou individualmente, ser concretizados como conjunto de circuitos que faz parte de um sistema maior, por exemplo, um circuito integrado (IC), sistema em chip (SoC), e assim em adiante.[0094] As used in any deployment described in this document, the term "module" refers to any combination of software logic, firmware logic, hardware logic, and/or circuitry configured to provide the functionality described in this document . The software may be incorporated as a software package, code and/or set of instructions or instructions, and "hardware", as used in any deployment described herein, may include, for example, solely or in any combination, a set of hardwired circuitry, programmable circuitry, state machine circuitry, fixed-function circuitry, execution unit circuitry, and/or firmware that stores instructions executed by the programmable circuitry. Modules can, collectively or individually, be realized as circuitry that forms part of a larger system, for example, an integrated circuit (IC), system on chip (SoC), and so on.

[0095] A Figura 7 é um diagrama ilustrativo de um sistema exemplificador 700, disposto de acordo com pelo menos algumas implantações da presente revelação. Em várias implantações, o sistema 700 pode ser um sistema de mídia, embora o sistema 700 não seja limitado a esse contexto. Por exemplo, o sistema 700 pode ser incorporado a um computador pessoal (PC), computador do tipo laptop, computador do tipo ultralaptop, computador do tipo tablet, elemento sensível ao toque, computador portátil, computador de mão, computador do tipo palmtop, assistente digital pessoal (PDA), telefone celular, combinação telefone celular/PDA, televisão, dispositivo inteligente (por exemplo, telefone inteligente, computador do tipo tablet inteligente ou televisão inteligente), dispositivo de internet móvel (MID), dispositivo de troca de mensagens, dispositivo de comunicação de dados, câmeras (por exemplo, câmeras do tipo aponte e dispare, câmeras de grande aproximação, câmeras de reflexo de lente única digital (DSLR)), e assim em diante.[0095] Figure 7 is an illustrative diagram of an exemplary system 700, arranged in accordance with at least some implementations of the present disclosure. In many deployments, System 700 can be a media system, although System 700 is not limited to that context. For example, the 700 system can be incorporated into a personal computer (PC), laptop computer, ultralaptop computer, tablet computer, touch element, portable computer, handheld computer, palmtop computer, assistant personal digital (PDA), mobile phone, combination cell phone/PDA, television, smart device (e.g. smart phone, smart tablet computer or smart television), mobile internet device (MID), messaging device, data communication device, cameras (for example, point-and-shoot cameras, close-up cameras, digital single-lens reflex (DSLR) cameras), and so on.

[0096] Em várias implantações, o sistema 700 inclui uma plataforma 702 acoplada a um visor 720. A plataforma 702 pode receber conteúdo a partir de um dispositivo de conteúdo como dispositivo(s) de serviços de conteúdo 730 ou dispositivo(s) de distribuição de conteúdo 740 ou outras fontes de conteúdo similares. Um controlador de navegação 750 que inclui um ou mais recursos de navegação pode ser usado para interagir com, por exemplo, a plataforma 702 e/ou o visor 720. Cada um desses componentes é descrito em maiores detalhes abaixo.[0096] In various deployments, system 700 includes a platform 702 coupled to a display 720. Platform 702 may receive content from a content device such as content services device(s) 730 or distribution device(s) 740 content sources or other similar content sources. A navigation controller 750 that includes one or more navigation features can be used to interact with, for example, the platform 702 and/or the display 720. Each of these components is described in more detail below.

[0097] Em várias implantações, a plataforma 702 pode incluir qualquer combinação de um conjunto de chips 705, um processador 710, uma memória 712, uma antena 713 um armazenamento 714, um subsistema de gráficos 715, aplicações 716 e/ou rádio 718. O conjunto de chips 705 pode fornecer intercomunicação entre o processador 710, a memória 712, o armazenamento 714, os subsistema de gráficos 715, as aplicações 716 e/ou o rádio 718. Por exemplo, o conjunto de chips 705 pode incluir um adaptador de armazenamento (não mostrado) com capacidade para fornecer intercomunicação com o armazenamento 714.[0097] In various deployments, the platform 702 may include any combination of a chip set 705, a processor 710, a memory 712, an antenna 713, a storage 714, a graphics subsystem 715, applications 716 and/or a radio 718. Chipset 705 can provide intercommunication between processor 710, memory 712, storage 714, graphics subsystems 715, applications 716, and/or radio 718. storage (not shown) capable of providing intercom with the 714 storage.

[0098] O processador 710 pode ser implantado conforme um processador de um Computador com um Conjunto Complexo de Instruções (CISC) ou um Computador com um Conjunto Reduzido de Instruções (RISC), processadores com um conjunto compatível de instruções x86, de múltiplos núcleos, ou qualquer outro microprocessador ou unidade de processamento central (CPU). Em várias implantações, o processador 710 pode ser um processador(s) núcleo duplo, processador(s) móvel(s) de núcleo duplo e assim por diante.[0098] The 710 processor can be deployed as a processor of a Complex Instruction Set Computer (CISC) or a Reduced Instruction Set Computer (RISC), processors with an x86 compatible instruction set, multiple cores, or any other microprocessor or central processing unit (CPU). In various deployments, the 710 processor can be dual-core processor(s), dual-core mobile processor(s), and so on.

[0099] A memória 712 pode ser implantada como um dispositivo de memória volátil como, sem limitação, uma Memória de Acesso Randômico (RAM), uma Memória de Acesso Randômico Dinâmico (DRAM) ou uma RAM estática (SRAM).[0099] Memory 712 may be deployed as a volatile memory device such as, without limitation, Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), or Static RAM (SRAM).

[00100] O armazenamento 714 pode ser implantado como um dispositivo de armazenamento não volátil como, sem limitação, uma unidade de disco magnético, unidade de disco óptico, uma unidade de fita, um dispositivo de armazenamento interno, um dispositivo de armazenamento fixado, uma memória flash, uma SDRAM alimentada por bateria (DRAM sincronizada) e/ou um dispositivo de armazenamento de acesso à rede. Em várias implantações, o armazenamento 714 pode incluir tecnologia para aumentar o desempenho de armazenamento de proteção melhorada para mídia digital valorosa quando múltiplos discos rígidos são incluídos, por exemplo.[00100] Storage 714 may be deployed as a non-volatile storage device such as, without limitation, a magnetic disk drive, optical disk drive, a tape drive, an internal storage device, a fixed storage device, a flash memory, a battery-backed SDRAM (synchronized DRAM), and/or a network access storage device. In many deployments, 714 storage can include technology to increase storage performance and enhance protection for valuable digital media when multiple hard drives are included, for example.

[00101] O subsistema de gráficos 715 pode realizar o processamento de imagens como imagem fixa ou vídeo para o visor. O subsistema de gráficos 715 pode ser uma unidade de processamento gráfico (GPU) ou uma unidade de processamento visual (VPU), por exemplo. Uma interface analógica ou digital pode ser usada para acoplar subsistema de gráficos 715 e o visor 720 de forma comunicativa. Por exemplo, a interface pode ser qualquer Interface de Multimídia de Alta Duração, DisplayPort, HDMI sem fio e/ou técnicas compatíveis de HD sem fio. O subsistema de gráficos 715 pode ser integrado ao processador 710 ou ao conjunto de chips 705. Em algumas implantações, o subsistema de gráficos 715 pode ser uma placa independente acoplada de forma comunicativa ao conjunto de chips 705.[00101] The graphics subsystem 715 can perform image processing as still image or video for the display. Graphics subsystem 715 can be a graphics processing unit (GPU) or a visual processing unit (VPU), for example. An analog or digital interface may be used to communicatively couple graphics subsystem 715 and display 720. For example, the interface can be any High Durability Multimedia Interface, DisplayPort, Wireless HDMI and/or Wireless HD compatible techniques. Graphics subsystem 715 may be integrated with processor 710 or chipset 705. In some deployments, graphics subsystem 715 may be a standalone card communicatively coupled to chipset 705.

[00102] As técnicas de processamento de gráficos e/ou vídeo descritas neste documento podem ser implantadas em várias arquiteturas de hardware. Por exemplo, a funcionalidade de gráficos e/ou vídeo pode ser integrada a um conjunto de chips. Alternativamente, um processador discreto de gráficos e/ou vídeo pode ser usado. Como ainda outra implantação, as funções de gráficos e ou vídeo podem ser fornecidas por um processador de propósito geral que inclui um processador de múltiplos núcleos. Em modalidades adicionais, as funções podem ser implantadas em um dispositivo consumidor de eletrônicos.[00102] The graphics and/or video processing techniques described in this document can be deployed on various hardware architectures. For example, graphics and/or video functionality can be built into a chip set. Alternatively, a discrete graphics and/or video processor can be used. As yet another implementation, graphics and or video functions may be provided by a general purpose processor that includes a multi-core processor. In additional embodiments, the functions may be implemented in an electronics consumer device.

[00103] O rádio 718 pode incluir um ou mais rádios com capacidade para transmitir e receber sinais com o uso de várias técnicas apropriadas de comunicação sem fio. Tais técnicas podem envolver comunicações através de uma ou mais redes sem fio. Exemplos de redes sem fio incluem (mas sem limitação) redes sem fio de área local (WLANs), redes sem fio de área pessoal (WPANs), rede sem fio de área metropolitana (WMANs), redes de celular e redes de satélite. Ao comunicar-se através de tais redes, o rádio 718 pode operar de acordo com um ou mais padrões aplicáveis em qualquer versão.[00103] The 718 radio may include one or more radios capable of transmitting and receiving signals using various appropriate wireless communication techniques. Such techniques may involve communications over one or more wireless networks. Examples of wireless networks include (but are not limited to) wireless local area networks (WLANs), wireless personal area networks (WPANs), wireless metropolitan area networks (WMANs), cellular networks, and satellite networks. When communicating over such networks, the 718 radio may operate in accordance with one or more applicable standards in any version.

[00104] Em várias implantações, o visor 720 pode incluir qualquer tipo de monitor de televisão ou visor. O visor 720 pode incluir, por exemplo, uma tela de visor de computador, um visor de tela sensível ao toque, um monitor de vídeo, um dispositivo semelhante à televisão e/ou uma televisão. O visor 720 pode ser digital e/ou analógico. Em várias implantações, o visor 720 pode ser um visor holográfico. Além disso, o visor 720 pode ser uma superfície transparente que pode receber uma projeção visual. Tais projeções podem transmitir várias formas de informações, imagens e/ou objetos. Por exemplo, tais projeções podem ser uma sobreposição visual para uma aplicação de realidade móvel aumentada (MAR). Sob o controle de um ou mais aplicações de software 716, a plataforma 702 pode exibir a interface de usuário 722 no visor 720.[00104] In various deployments, the display 720 may include any type of television monitor or display. Display 720 may include, for example, a computer display screen, a touch screen display, a video monitor, a television-like device, and/or a television. Display 720 can be digital and/or analog. In many deployments, the 720 display can be a holographic display. Furthermore, the display 720 can be a transparent surface that can receive a visual projection. Such projections can transmit various forms of information, images and/or objects. For example, such projections could be a visual overlay for a Mobile Augmented Reality (MAR) application. Under the control of one or more software applications 716, platform 702 may display user interface 722 on display 720.

[00105] Em várias implantações, o(s) dispositivo(s) de serviços de conteúdo 730 pode ser acolhido por qualquer serviço nacional, internacional e/ou independente e, dessa forma, ser acessíveis à plataforma 702 através da Internet, por exemplo. O(s) dispositivo(s) de serviços de conteúdo 730 pode ser acoplado à plataforma 702 e/ou ao visor 720. A plataforma 702 e/ou o(s) dispositivo(s) de serviços de conteúdo 730 podem ser acoplados à rede 760 para comunicar (por exemplo, enviar e/ou receber) informações de mídia para e a partir da rede 760. O(s) dispositivo(s) de distribuição de conteúdo 740 pode também ser acoplado à plataforma 702 e/ou ao visor 720.[00105] In various deployments, the content services device(s) 730 may be hosted by any national, international and/or independent service and thus be accessible to the platform 702 via the Internet, for example. The content services device(s) 730 may be coupled to the platform 702 and/or the display 720. The platform 702 and/or the content services device(s) 730 may be coupled to the network 760 to communicate (e.g., send and/or receive) media information to and from network 760. Content delivery device(s) 740 may also be coupled to platform 702 and/or display 720 .

[00106] Em várias implantações, o(s) dispositivo(s) de serviços de conteúdo 730 pode incluir uma caixa de televisão a cabo, computador pessoal, rede, telefone, dispositivos de Internet habilitada ou aparelhos com capacidade para distribuir informações digitais e/ou conteúdo e qualquer outro dispositivo similar com capacidade para comunicar conteúdo de modo unidirecional ou de modo bidirecional entre os fornecedores de conteúdo e a plataforma 702 e/ou o visor 720 através de rede 760 ou diretamente. Pode ser observado que o conteúdo pode ser comunicado de modo unidirecional e/ou de modo bidirecional e a partir de qualquer um dos componentes no sistema 700 e em um fornecedor de conteúdo através de rede 760. Exemplos de conteúdo podem incluir quaisquer informações de mídia, incluindo, por exemplo, vídeo, música, informações médicas e sobre jogos e assim por diante.[00106] In various deployments, the content services device(s) 730 may include a cable television box, personal computer, network, telephone, Internet-enabled devices, or appliances capable of distributing digital information and/or or content and any other similar device capable of communicating content unidirectionally or bidirectionally between content providers and platform 702 and/or display 720 over network 760 or directly. It can be seen that content can be communicated unidirectionally and/or bidirectionally and from any of the components in system 700 and a content provider over network 760. Examples of content can include any media information, including, for example, video, music, medical and gaming information, and so on.

[00107] O(s) dispositivo(s) de serviços de conteúdo 730 pode receber conteúdo como programação de TV a cabo que inclui informações de mídia, informações digitais e/ou outro conteúdo. Exemplos de fornecedores de conteúdo podem incluir quaisquer fornecedores de conteúdo de televisão a cabo ou satélite ou rádio ou Internet. Os exemplos fornecidos não se destinam a limitar as implantações de acordo com a presente revelação de maneira alguma.[00107] The content services device(s) 730 can receive content such as cable TV programming that includes media information, digital information, and/or other content. Examples of content providers could include any cable or satellite television or radio or Internet content providers. The examples provided are not intended to limit deployments in accordance with the present disclosure in any way.

[00108] Em várias implantações, a plataforma 702 pode receber sinais de controle a partir do controlador de navegação 750 que tem um ou mais recursos de navegação. Os recursos de navegação do controlador 750 podem ser usados para interagir com a interface de usuário 722, por exemplo. Em modalidades, o controlador de navegação 750 pode ser um dispositivo apontador que pode ser um componente de hardware de computador (especificamente, um dispositivo de interface humana) que permite a um usuário inserir dados espaciais (por exemplo, contínuos e multidimensionais) em um computador. Muitos sistemas como as interfaces gráficas de usuário (GUI) e televisões e monitores permitem ao usuário controlar e fornecer dados ao computador ou televisão com o uso de gestos físicos.[00108] In various deployments, the platform 702 may receive control signals from the navigation controller 750 that has one or more navigation capabilities. The navigation features of controller 750 can be used to interact with user interface 722, for example. In embodiments, the navigation controller 750 can be a pointing device which can be a computer hardware component (specifically, a human interface device) that allows a user to input spatial (e.g., continuous and multidimensional) data into a computer. . Many systems such as graphical user interfaces (GUI) and televisions and monitors allow the user to control and provide data to the computer or television using physical gestures.

[00109] Movimentos de recursos de navegação do controlador 750 podem ser replicados em um visor (por exemplo, visor 720) por movimentos de um ponteiro, cursor, anéis de focagem ou outros indicadores visuais exibidos no visor. Por exemplo, sob o controle das aplicações de software 716, os recursos de navegação localizados no controlador de navegação 750 podem ser mapeados para os recursos de navegação virtual exibidos na interface de usuário 722, por exemplo. Em modalidades, o controlador 750 pode não ser um componente separado, mas pode ser integrado à plataforma 702 e/ou ao visor 720. A presente revelação, entretanto, não se limita aos elementos ou ao contexto apresentados ou aqui descritos.[00109] Movements of navigation features of the 750 controller can be replicated on a display (for example, display 720) by movements of a pointer, cursor, focusing rings or other visual indicators displayed on the display. For example, under the control of software applications 716, navigation features located in navigation controller 750 can be mapped to virtual navigation features displayed on user interface 722, for example. In embodiments, controller 750 may not be a separate component, but may be integrated with platform 702 and/or display 720. The present disclosure, however, is not limited to the elements or context presented or described herein.

[00110] Em várias implantações, acionadores (não mostrado) podem incluir tecnologia para habilitar usuários a instantaneamente ligar e desligar a plataforma 702 como uma televisão com o toque de um botão após a inicialização, quando habilitado, por exemplo. Lógica de programa pode permitir à plataforma 702 transmitir conteúdo aos adaptadores de mídia ou outro(s) dispositivo(s) de serviços de conteúdo 730 ou dispositivo(s) de distribuição de conteúdo 740 mesmo quando a plataforma é “desligada”. Além disso, o conjunto de chips 705 pode incluir suporte de hardware e/ou software para áudio com som surround 5.1 e/ou áudio com som surround 7.1 de alta definição, por exemplo. Os acionadores podem incluir um acionador de gráficos para plataformas gráficas integradas. Em modalidades, o acionador de gráficos pode compreender uma placa de gráficos Expressa de componente de interconexão periférica (PCI).[00110] In various deployments, triggers (not shown) may include technology to enable users to instantly turn the 702 platform on and off such as a television at the touch of a button upon startup, when enabled, for example. Program logic may allow the platform 702 to stream content to media adapters or other content serving device(s) 730 or content delivery device(s) 740 even when the platform is "powered off". In addition, chipset 705 may include hardware and/or software support for 5.1 surround sound audio and/or high definition 7.1 surround sound audio, for example. Triggers can include a graphics trigger for integrated graphics platforms. In embodiments, the graphics driver may comprise a Component Peripheral Interconnect (PCI) Express graphics card.

[00111] Em várias implantações, qualquer um ou mais dos componentes mostrados no sistema 700 podem ser integrados. Por exemplo, a plataforma 702 e o(s) dispositivo(s) de serviços de conteúdo 730 podem ser integrados, ou a plataforma 702 e o(s) dispositivo(s) de distribuição de conteúdo 740 podem ser integrados, ou a plataforma 702, o(s) dispositivo(s) de serviços de conteúdo 730 e o(s) dispositivo(s) de distribuição de conteúdo 740 podem ser integrados, por exemplo. Em várias modalidades, a plataforma 702 e o visor 720 podem ser uma unidade integrada. O visor 720 e o(s) dispositivo(s) de serviço de conteúdo 730 podem ser integrados ou o visor 720 e o(s) dispositivo(s) de distribuição de conteúdo 740 podem ser integrados, por exemplo. Esses exemplos não se destinam a limitar a presente revelação.[00111] In various deployments, any one or more of the components shown in the 700 system can be integrated. For example, platform 702 and content serving device(s) 730 may be integrated, or platform 702 and content delivery device(s) 740 may be integrated, or platform 702 , the content services device(s) 730 and the content delivery device(s) 740 may be integrated, for example. In various embodiments, platform 702 and display 720 can be an integrated unit. Display 720 and content serving device(s) 730 may be integrated, or display 720 and content delivery device(s) 740 may be integrated, for example. These examples are not intended to limit the present disclosure.

[00112] Em várias modalidades, o sistema 700 pode ser implantado como um sistema sem fio, um sistema com fio ou uma combinação de ambos. Quando implantado como um sistema sem fio, o sistema 700 pode incluir componentes e interfaces apropriadas para comunicação através de um meio compartilhada sem fio, como uma ou mais antenas, transmissores, receptores, transceptores, amplificadores, filtros, lógica de controle e assim por diante. Um exemplo de meio compartilhado sem fio pode incluir porções de um espectro sem fio, como o espectro RF e assim por diante. Quando implantado como um sistema com fio, o sistema 700 pode incluir componentes e interfaces adaptados para comunicação através meio de comunicações com fio, como entrada/saída (I/O) de adaptadores, conectores físicos para conectar o adaptador I/O a um meio de comunicações com fio correspondente, uma placa de interface de rede (NIC), controlador de disco, controlador de vídeo, controlador de áudio e semelhantes. Exemplos de meio de comunicações com fio podem incluir um fio, cabo, filetes de metal, placa de circuito impresso (PCB), painel traseiro, malha de comutação, material semicondutor, fio de par trançado, cabo coaxial, fibras ópticas e assim por diante.[00112] In various embodiments, the 700 system can be deployed as a wireless system, a wired system, or a combination of both. When deployed as a wireless system, system 700 may include components and interfaces appropriate for communicating over a shared wireless medium, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, and so on. . An example of a wireless shared medium might include portions of a wireless spectrum, such as the RF spectrum and so on. When deployed as a wired system, system 700 can include components and interfaces adapted for communicating over wired communications media, such as input/output (I/O) adapters, physical connectors for connecting the I/O adapter to a wired wired communications port, a network interface card (NIC), disk controller, video controller, audio controller, and the like. Examples of wired communications media may include a wire, cable, metal fillet, printed circuit board (PCB), backplane, switching fabric, semiconductor material, twisted pair wire, coaxial cable, fiber optics, and so on. .

[00113] A plataforma 702 pode estabelecer um ou mais canais físicos ou lógicos para comunicar informações. As informações podem incluir informações de mídia e controle de informações. Informações de mídia podem se referir a quaisquer dados que representem conteúdos destinados a um usuário. Exemplos de conteúdo podem incluir, por exemplo, dados de uma conversação com voz, videoconferência, vídeo de transmissão contínua, mensagem por correio eletrônico (“e-mail”), mensagem por correio de voz, símbolos alfanuméricos, gráficos, imagem, vídeo, texto e assim por diante. Os dados de uma conversação de voz podem ser, por exemplo, informações de discurso, períodos de silêncio, ruído de fundo, ruído de conforto, tons e assim por diante. O controle de informações pode se referir a quaisquer dados que representam comandos, instruções ou palavras de controle destinados a um sistema automatizado. Por exemplo, o controle de informações pode ser usado para encaminhar as informações de mídia através de um sistema ou instruir um nó a processar as informações de mídia de uma maneira predeterminada. As modalidades, entretanto, não se limitam aos elementos ou ao contexto mostrado ou descrito na Figura 7.[00113] The platform 702 can establish one or more physical or logical channels to communicate information. Information may include media information and control information. Media information can refer to any data representing content intended for a user. Examples of content may include, for example, data from a voice conversation, video conference, streaming video, electronic mail (“email”) message, voicemail message, alphanumeric symbols, graphics, image, video, text and so on. Data from a voice conversation can be, for example, speech information, silence periods, background noise, comfort noise, tones, and so on. Control information can refer to any data representing commands, instructions, or control words intended for an automated system. For example, information control can be used to route media information through a system or instruct a node to process media information in a predetermined manner. The modalities, however, are not limited to the elements or context shown or described in Figure 7.

[00114] Conforme descrito acima, o sistema 700 pode ser moldado em vários estilos físicos ou fatores de forma. A Figura 8 ilustra implantações de um dispositivo 800 de pequeno fator de forma no qual o sistema 800 pode ser moldado. Em modalidades, por exemplo, o dispositivo 800 pode ser implantado como um dispositivo de computação móvel que tem recursos sem fio. Um dispositivo de computação móvel pode se referir a qualquer dispositivo que tem um sistema de processamento e uma fonte de energia ou suprimento, como uma ou mais baterias, por exemplo.[00114] As described above, the 700 system can be molded into various physical styles or form factors. Figure 8 illustrates deployments of a small form factor device 800 into which system 800 can be molded. In embodiments, for example, device 800 can be deployed as a mobile computing device that has wireless capabilities. A mobile computing device can refer to any device that has a processing system and an energy source or supply, such as one or more batteries, for example.

[00115] Conforme descrito acima, exemplos de um dispositivo de computação móvel podem incluir um computador pessoal (PC), computador do tipo laptop, computador do tipo ultralaptop, computador do tipo tablet, elemento sensível ao toque, computador portátil, computador de mão, computador do tipo palmtop, assistente digital pessoal (PDA), telefone celular, combinação telefone celular/PDA, televisão, dispositivo inteligente (por exemplo, telefone inteligente, computador do tipo tablet inteligente ou televisão inteligente), dispositivo de internet móvel (MID), dispositivo de troca de mensagens, dispositivo de comunicação de dados, câmeras (por exemplo, câmeras do tipo aponte e dispare, câmeras de grande aproximação, câmeras de reflexo de lente única digital (DSLR)), e assim em diante.[00115] As described above, examples of a mobile computing device may include a personal computer (PC), laptop computer, ultralaptop computer, tablet computer, touch element, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA), cell phone, combination cell phone/PDA, television, smart device (e.g., smart phone, smart tablet computer, or smart television), mobile internet device (MID), messaging device, data communication device, cameras (for example, point-and-shoot cameras, close-up cameras, digital single-lens reflex (DSLR) cameras), and so on.

[00116] Exemplos de um dispositivo de computação móvel também podem incluir computadores que são montados para serem usados junto ao corpo por uma pessoa, tais como um computador de pulso, computador de dedo, computador de anel, computador de óculos, computador de cinto, computador de braçadeira, computadores de sapato, computadores de vestuário e outros computadores para serem usados junto ao corpo. Em várias modalidades, por exemplo, um dispositivo de computação móvel pode ser implantado como um telefone inteligente com capacidade de executar aplicações de computador assim como comunicações de voz e/ou comunicações de dados. Embora algumas modalidades possam ser descritas com um dispositivo de computação móvel implantado como um telefone inteligente como exemplo, pode ser observado que outras modalidades também podem ser implantadas com o uso de outros dispositivos móveis de computação sem fio. As modalidades não são limitadas nesse contexto.[00116] Examples of a mobile computing device may also include computers that are mounted to be worn on the body by a person, such as a wrist computer, finger computer, ring computer, eyeglass computer, belt computer, armband computers, shoe computers, apparel computers, and other body-worn computers. In various embodiments, for example, a mobile computing device can be deployed such as a smart phone capable of running computer applications as well as voice communications and/or data communications. While some embodiments may be described with a mobile computing device deployed as a smart phone as an example, it can be seen that other embodiments may also be deployed using other mobile wireless computing devices. Modalities are not limited in this context.

[00117] Conforme mostrado na Figura 8, o dispositivo 800 pode incluir um compartimento 802, um visor 804, um dispositivo de entrada/saída (I/O) 806 e uma antena 808. O dispositivo 800 também pode incluir recursos de navegação 812. O visor 804 pode incluir qualquer unidade de exibição adequada para exibir a informações adequadas para um dispositivo de computação móvel. O dispositivo I/O 806 pode incluir qualquer dispositivo I/O adequado para inserir informações em um dispositivo de computação móvel. Exemplos de dispositivo I/O 806 podem incluir um teclado alfanumérico, um teclado numérico, um elemento sensível ao toque, teclas de ação, botões, comutadores, comutadores de duas posições, microfones, alto-falantes, dispositivo de reconhecimento de voz e software e assim por diante. As informações também podem ser inseridas no dispositivo 800 por meio do microfone (não mostrado). Tais informações podem ser digitalizadas por um dispositivo de reconhecimento de voz (não mostrado). As modalidades não são limitadas nesse contexto.[00117] As shown in Figure 8, the device 800 may include a housing 802, a display 804, an input/output (I/O) device 806 and an antenna 808. The device 800 may also include navigation features 812. Display 804 can include any display unit suitable for displaying information suitable for a mobile computing device. I/O device 806 can include any I/O device suitable for inputting information into a mobile computing device. Examples of I/O device 806 may include an alphanumeric keyboard, a numeric keyboard, a touch sensitive element, action keys, buttons, switches, two-position switches, microphones, speakers, speech recognition device and software and so on. Information can also be entered into the 800 device via the microphone (not shown). Such information can be scanned by a voice recognition device (not shown). Modalities are not limited in this context.

[00118] Várias modalidades podem ser implantadas com o uso de elementos de hardware, elementos de software ou uma combinação de ambos. Exemplos de elementos de hardware podem incluir processadores, microprocessadores, circuitos, elementos de circuito (por exemplo, transistores, resistores, capacitores, indutores e assim por diante), circuitos integrados, circuitos integrados de aplicação específica (ASIC), dispositivos lógicos programáveis (PLD), processadores de sinal digital (DSP), arranjo de portas programável em campos (FPGA), portas lógicas, registradores, dispositivo semicondutor, chips, microchips, chipsets e assim por diante. Os exemplos de software podem incluir componentes de software, programas, aplicativos, programas de computador, programas de aplicativo, programas de sistema, programas de máquina, software de sistema operacional, middleware, firmware, módulos de software, rotinas, sub-rotinas, funções, métodos, procedimentos, interfaces de software, interfaces de programa de aplicativo (API), conjuntos de instruções, código de computação, código de computador, segmentos de código, segmentos de código de computador, palavras, valores, símbolos ou qualquer combinação dos mesmos. Determinar se uma modalidade é implantada com o uso de elementos de hardware e/ou elementos de software pode variar de acordo com qualquer quantidade de fatores, como taxa computacional desejada, níveis de potência, tolerâncias de calor, orçamento de ciclo de processamento, taxas de dados de entrada, taxas de dados de saída, recursos de memória, velocidades de barramento de dados e outras restrições de projeto ou desempenho.[00118] Several modalities can be implemented using hardware elements, software elements or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (for example, transistors, resistors, capacitors, inductors, and so on), integrated circuits, application-specific integrated circuits (ASIC), programmable logic devices (PLD ), digital signal processors (DSP), field-programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chipsets, and so on. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions , methods, procedures, software interfaces, application program interfaces (API), instruction sets, computer code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof . Determining whether a modality is deployed using hardware elements and/or software elements can vary based on any number of factors such as desired compute rate, power levels, heat tolerances, processing cycle budget, input data, output data rates, memory resources, data bus speeds, and other design or performance constraints.

[00119] Um ou mais aspectos de pelo menos uma modalidade podem ser implantados por instruções representativas armazenadas em um meio legível por máquina que representa várias lógicas no processador, que, quando lidas por uma máquina, fazem com que a máquina fabrique lógica para desempenhar as técnicas descritas no presente documento. Tais representações conhecidas como “núcleos de IP” podem ser armazenadas em um meio legível por máquina, tangível e fornecidas a vários clientes ou instalações de fabricação para carregar para as máquinas de fabricação que, de fato, fazem a lógica ou o processador.[00119] One or more aspects of at least one embodiment can be implemented by representative instructions stored on a machine-readable medium that represent various logic in the processor, which, when read by a machine, cause the machine to manufacture logic to perform the techniques described in this document. Such representations known as “IP cores” can be stored on a machine-readable, tangible medium and provided to various customers or manufacturing facilities to upload to the manufacturing machines that actually make the logic or processor.

[00120] Embora determinados recursos apresentados neste documento sejam descritos em relação a várias implantações, essa descrição não se destina a ser entendida em um sentido limitador. Portanto, várias modificações das implantações descritas neste documento, assim como outras implantações que são evidentes àqueles versados na técnica, aos quais a presente revelação diz respeito, são consideradas como situadas dentro do espírito e do escopo da presente revelação.[00120] While certain features presented in this document are described in relation to various deployments, this description is not intended to be understood in a limiting sense. Therefore, various modifications of the deployments described herein, as well as other deployments that are apparent to those skilled in the art, to which the present disclosure pertains, are considered to be within the spirit and scope of the present disclosure.

[00121] Os exemplos a seguir pertencem às modalidades adicionais.[00121] The following examples pertain to additional modalities.

[00122] Em uma ou mais primeiras modalidades, um método implantado por computador para a codificação de conteúdo de vídeo para a transmissão sem fio compreende determinar uma primeira, uma segunda e uma terceira taxas de bits de candidato para a codificação, com o uso de um primeiro codec de vídeo, de um segmento de um vídeo de origem, em que a primeira taxa de bits de candidato compreende a taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento, em que a segunda taxa de bits de candidato compreende uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo, e em que a terceira taxa de bits de candidato compreende uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo, selecionar uma taxa de bits de codificação para o segmento do vídeo de origem como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato, e codificar, com o uso do primeiro codec de vídeo, o segmento do vídeo de origem com base na taxa de bits de codificação selecionada.[00122] In one or more first embodiments, a computer-implemented method for encoding video content for wireless transmission comprises determining a first, a second, and a third candidate bitrate for encoding, using a first video codec of a segment of a source video, wherein the first candidate bitrate comprises the bitrate for the source video encoded using a second video codec modified by a scaling factor , wherein the second candidate bitrate comprises an average bitrate for at least one of a source video segment encoded using the first video codec or a previous source video segment encoded using the first video codec, and wherein the third candidate bitrate comprises an encoding bitrate prediction for at least one of the segment encoded using the first video codec or the previous segment encoded using the first codec video, select an encoding bitrate for the source video segment as a minimum of the first, second, and third candidate bitrates, and encode, using the first video codec, the video segment based on the selected encoding bitrate.

[00123] Além das primeiras modalidades, o método compreende adicionalmente determinar uma quarta taxa de bits de candidato para a codificação, com o uso do primeiro codec de vídeo, de um segundo segmento de um segundo vídeo de origem, em que a quarta taxa de bits de candidato compreende uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento, e em que o fator de escalonamento é diferente do segundo fator de escalonamento.[00123] In addition to the first embodiments, the method further comprises determining a fourth candidate bit rate for encoding, using the first video codec, a second segment of a second source video, where the fourth bit rate candidate bits comprises a bit rate for the second source video encoded using a third video codec modified by a second scaling factor, and where the scaling factor is different from the second scaling factor.

[00124] Além das primeiras modalidades, o primeiro codec de vídeo é um codec de vídeo local associado à transmissão sem fio e em que o segundo codec de vídeo é associado a uma compactação do vídeo de origem.[00124] In addition to the first embodiments, the first video codec is a local video codec associated with wireless transmission and the second video codec is associated with a compression of the source video.

[00125] Além das primeiras modalidades, a previsão de taxa de bits de codificação é baseada pelo menos em parte em um dentre um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada ou um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.[00125] In addition to the first embodiments, the encoding bitrate prediction is based at least in part on one of a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, or a predetermined quality coefficient display associated with a device receiving the wireless transmission.

[00126] Além das primeiras modalidades, a determinação da terceira taxa de bits de candidato baseada na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, para determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento e para gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado.[00126] In addition to the first embodiments, determining the third candidate bitrate based on the coding bitrate prediction comprises analyzing a bitstream of the segment encoded using the first video codec or the previous segment encoded with the using the first video codec to determine segment bitstream parameters, to determine a temporal complexity based on the segment bitstream parameters, and to generate a bitrate prediction based on temporal complexity and a data model. pre-trained bitrate prediction.

[00127] Além das primeiras modalidades, a determinação da terceira taxa de bits de candidato baseada na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado, em que os parâmetros de fluxo de bits de segmento compreendem pelo menos um dentre bits por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.[00127] In addition to the first embodiments, determining the third candidate bitrate based on the coding bitrate prediction comprises analyzing a bitstream of the segment encoded using the first video codec or the previous segment encoded with the using the first video codec to determine segment bitstream parameters, determine a temporal complexity based on the segment bitstream parameters, and generate a bitrate prediction based on temporal complexity and a prediction model a pre-trained bitrate parameter, wherein the segment bitstream parameters comprise at least one of segment average bits per pixel, a segment average quantization parameter, a segment encoding frame rate, or a segment height. segment encoding video.

[00128] Além das primeiras modalidades, a determinação da terceira taxa de bits de candidato com base na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado, em que a geração da previsão de taxa de bits é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e um coeficiente de qualidade de exibição associada a um dispositivo receptor da transmissão sem fio.[00128] In addition to the first embodiments, determining the third candidate bitrate based on the encoding bitrate prediction comprises analyzing a bitstream of the encoded segment using the first video codec or the previous segment encoded with using the first video codec to determine segment bitstream parameters, determine a temporal complexity based on the segment bitstream parameters, and generate a bitrate prediction based on temporal complexity and a data model pre-trained bitrate prediction, wherein the bitrate prediction generation is additionally based on a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, and a display quality coefficient associated with a device receiving the wireless transmission.

[00129] Além das primeiras modalidades, a determinação da terceira taxa de bits de candidato com base na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado, em que a geração da previsão de taxa de bits é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e um coeficiente de qualidade de exibição associada a um dispositivo receptor da transmissão sem fio, e em que o coeficiente de qualidade de exibição associado ao dispositivo receptor é determinado com o uso de uma tabela de consulta baseada em informações de resolução recebidas do dispositivo receptor.[00129] In addition to the first embodiments, determining the third candidate bitrate based on the encoding bitrate prediction comprises analyzing a bitstream of the encoded segment using the first video codec or the previous segment encoded with using the first video codec to determine segment bitstream parameters, determine a temporal complexity based on the segment bitstream parameters, and generate a bitrate prediction based on temporal complexity and a data model pre-trained bitrate prediction, wherein the bitrate prediction generation is additionally based on a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, and a display quality coefficient associated with a receiving device of the wireless transmission, and wherein the display quality coefficient associated with the receiving device is determined using a look-up table based on resolution information received from the receiving device.

[00130] Além das primeiras modalidades, a segunda taxa de bits de candidato e a terceira taxa de bits de candidato são determinadas com base no segmento prévio do vídeo de origem, e em que o segmento prévio é imediatamente anterior ao segmento do vídeo de origem.[00130] In addition to the first embodiments, the second candidate bitrate and the third candidate bitrate are determined based on the previous segment of the source video, and where the previous segment is immediately preceding the segment of the source video .

[00131] Além das primeiras modalidades, o método compreende adicionalmente transmitir sem fio um fluxo de bits resultante gerado através da codificação do segmento para um dispositivo receptor.[00131] In addition to the first embodiments, the method further comprises wirelessly transmitting a resultant bit stream generated by coding the segment to a receiving device.

[00132] Em uma ou mais segundas modalidades, um sistema para a codificação de conteúdo de vídeo para a transmissão sem fio compreende uma memória configurada para armazenar dados de vídeo e uma unidade de processamento acoplada à memória, em que a unidade de processamento compreende conjunto de circuitos de determinação de taxa de bits baseada em vídeo de origem codificado configurado para determinar uma primeira taxa de bits de candidato para a codificação, com base em um primeiro codec de vídeo, de um segmento de um vídeo de origem, em que a primeira taxa de bits de candidato compreende uma taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento, conjunto de circuitos de determinação de taxa de bits média de segmento configurado para determinar uma segunda taxa de bits de candidato para a codificação, com base no primeiro codec de vídeo, do segmento do vídeo de origem, em que a segunda taxa de bits de candidato compreende uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo, conjunto de circuitos de previsão de taxa de bits de codificação configurado para determinar uma terceira taxa de bits de candidato para a codificação, com base no primeiro codec de vídeo, do segmento do vídeo de origem, em que a terceira taxa de bits de candidato compreende uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo, conjunto de circuitos de seleção de taxa de bits configurado para selecionar uma taxa de bits de codificação para o segmento do vídeo de origem como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato, e conjunto de circuitos de codificador configurado para codificar, com base no primeiro codec de vídeo, o segmento do vídeo de origem com base na taxa de bits de codificação selecionada.[00132] In one or more second embodiments, a system for encoding video content for wireless transmission comprises a memory configured to store video data and a processing unit coupled to the memory, wherein the processing unit comprises a set of coded source video-based bitrate determination circuitry configured to determine a first candidate bitrate for encoding, based on a first video codec, a segment of a source video, where the first candidate bitrate comprises a bitrate for source video encoded using a second video codec modified by a scaling factor, segment average bitrate determination circuitry configured to determine a second rate candidate bitrate for encoding, based on the first video codec, the source video segment, wherein the second candidate bitrate comprises an average bitrate for at least one of the encoded source video segment using the first video codec or a previous segment of source video encoded using the first video codec, encoding bitrate prediction circuitry configured to determine a third candidate bitrate for encoding , based on the first video codec of the source video segment, wherein the third candidate bitrate comprises an encoding bitrate prediction for at least one of the segment encoded using the first video codec or the previous segment encoded using the first video codec, bitrate selection circuitry configured to select an encoding bitrate for the source video segment as a minimum of the first, second, and third candidate bitrates, and encoder circuitry configured to encode, based on the first video codec, the source video segment based on the selected encoding bitrate.

[00133] Além das segundas modalidades, o conjunto de circuitos de determinação de taxa de bits baseada em vídeo de origem codificado é adicionalmente configurado para determinar uma quarta taxa de bits de candidato para a codificação, com o uso do primeiro codec de vídeo, de um segundo segmento de um segundo vídeo de origem, em que a quarta taxa de bits de candidato compreende uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento, e em que o fator de escalonamento é diferente do segundo fator de escalonamento.[00133] In addition to the second embodiments, the bitrate determination circuitry based on encoded source video is further configured to determine a fourth candidate bitrate for encoding, using the first video codec, of a second segment of a second source video, wherein the fourth candidate bitrate comprises a bitrate for the second source video encoded using a third video codec modified by a second scaling factor, and in that the scaling factor is different from the second scaling factor.

[00134] Além das segundas modalidades, o primeiro codec de vídeo é um codec de vídeo local associado à transmissão sem fio e em que o segundo codec de vídeo é associado a uma compactação do vídeo de origem.[00134] In addition to the second embodiments, the first video codec is a local video codec associated with wireless transmission and the second video codec is associated with a compression of the source video.

[00135] Além das segundas modalidades, a previsão de taxa de bits de codificação é baseada pelo menos em parte em um dentre um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada ou um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.[00135] In addition to the second embodiments, the encoding bitrate prediction is based at least in part on one of a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, or a predetermined quality coefficient display associated with a device receiving the wireless transmission.

[00136] Além das segundas modalidades, o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para determinar a terceira taxa de bits de candidato compreende o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado.[00136] In addition to the second embodiments, the encoding bitrate prediction circuitry that is configured to determine the third candidate bitrate comprises the encoding bitrate prediction circuitry that is configured to analyze a bitstream of the segment encoded using the first video codec or the previous segment encoded using the first video codec to determine segment bitstream parameters, determine a time complexity based on the bitstream parameters segment, and generate a bitrate prediction based on temporal complexity and a pre-trained bitrate prediction model.

[00137] Além das segundas modalidades, o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para determinar a terceira taxa de bits de candidato compreende o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado, em que os parâmetros de fluxo de bits de segmento compreendem pelo menos um dentre bits por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.[00137] In addition to the second embodiments, the encoding bitrate prediction circuitry that is configured to determine the third candidate bitrate comprises the encoding bitrate prediction circuitry that is configured to analyze a bitstream of the segment encoded using the first video codec or the previous segment encoded using the first video codec to determine segment bitstream parameters, determine a time complexity based on the bitstream parameters segment, and generating a bitrate prediction based on temporal complexity and a pretrained bitrate prediction model, wherein the segment bitstream parameters comprise at least one of the average bits per pixel of the segment. segment, a segment average quantization parameter, a segment encoding frame rate, or a segment encoding video height.

[00138] Além das segundas modalidades, o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para determinar a terceira taxa de bits de candidato compreende o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado, em que a previsão de taxa de bits gerada é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e em um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.[00138] In addition to the second embodiments, the encoding bitrate prediction circuitry that is configured to determine the third candidate bitrate comprises the encoding bitrate prediction circuitry that is configured to analyze a bitstream of the segment encoded using the first video codec or the previous segment encoded using the first video codec to determine segment bitstream parameters, determine a time complexity based on the bitstream parameters segment, and generating a bitrate prediction based on temporal complexity and a pre-trained bitrate prediction model, wherein the generated bitrate prediction is additionally based on a predetermined average opinion index, a predetermined maximum bit rate, a predetermined minimum bit rate, and a display quality coefficient associated with a device receiving the wireless transmission.

[00139] Além das segundas modalidades, o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para determinar a terceira taxa de bits de candidato compreende o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré- treinado, em que a previsão de taxa de bits gerada é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e em um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio, em que o sistema compreende adicionalmente uma tabela de consulta que compreende o coeficiente de qualidade de exibição associado a informações de resolução do dispositivo receptor.[00139] In addition to the second embodiments, the encoding bitrate prediction circuitry that is configured to determine the third candidate bitrate comprises the encoding bitrate prediction circuitry that is configured to analyze a bitstream of the segment encoded using the first video codec or the previous segment encoded using the first video codec to determine segment bitstream parameters, determine a time complexity based on the bitstream parameters segment, and generating a bitrate prediction based on temporal complexity and a pre-trained bitrate prediction model, wherein the generated bitrate prediction is additionally based on a predetermined average opinion index, a predetermined maximum bit rate, a predetermined minimum bit rate, and a display quality coefficient associated with a device receiving the wireless transmission, the system further comprising a look-up table comprising the associated display quality coefficient the resolution information of the receiving device.

[00140] Além das segundas modalidades, a segunda taxa de bits de candidato e a terceira taxa de bits de candidato são determinadas com base no segmento prévio do vídeo de origem, e em que o segmento prévio é imediatamente anterior ao segmento do vídeo de origem.[00140] In addition to the second embodiments, the second candidate bitrate and the third candidate bitrate are determined based on the previous segment of the source video, and where the previous segment is immediately preceding the segment of the source video .

[00141] Além das segundas modalidades, a segunda taxa de bits de candidato e a terceira taxa de bits de candidato são baseadas no segmento prévio do vídeo de origem, e em que o segmento prévio é imediatamente anterior ao segmento do vídeo de origem.[00141] In addition to the second embodiments, the second candidate bitrate and the third candidate bitrate are based on the previous segment of the source video, and where the previous segment is immediately preceding the segment of the source video.

[00142] Além das segundas modalidades, o sistema compreende pelo menos uma porção de um computador, um laptop, um ultrabook, um telefone inteligente ou um tablet.[00142] In addition to the second embodiments, the system comprises at least a portion of a computer, a laptop, an ultrabook, a smart phone or a tablet.

[00143] Em uma ou mais terceiras modalidades, um sistema para a codificação de conteúdo de vídeo para transmissão sem fio compreende uma memória configurada para armazenar dados de vídeo e uma unidade de processamento acoplada à memória, em que a unidade de processamento compreende meios para determinar uma primeira, uma segunda e uma terceira taxas de bits de candidato para a codificação, com o uso de um primeiro codec de vídeo, de um segmento de um vídeo de origem, em que a primeira taxa de bits de candidato compreende a taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento, em que a segunda taxa de bits de candidato compreende uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo, e em que a terceira taxa de bits de candidato compreende uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo, meios para selecionar uma taxa de bits de codificação para o segmento do vídeo de origem como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato, e meios para codificar, com o uso do primeiro codec de vídeo, o segmento do vídeo de origem com base na taxa de bits de codificação selecionada.[00143] In one or more third embodiments, a system for encoding video content for wireless transmission comprises a memory configured to store video data and a processing unit coupled to the memory, wherein the processing unit comprises means for determining a first, second, and third candidate bitrate for encoding, using a first video codec, a segment of a source video, wherein the first candidate bitrate comprises the bitrate of bits for source video encoded using a second video codec modified by a scaling factor, wherein the second candidate bitrate comprises an average bitrate for at least one of the encoded source video segments using the first video codec or a previous segment of source video encoded using the first video codec, and wherein the third candidate bitrate comprises an encoding bitrate prediction for at least one of the segment encoded using the first video codec or the previously encoded segment using the first video codec, means for selecting an encoding bitrate for the source video segment as a minimum of the first, second and second of the third candidate bitrate, and means for encoding, using the first video codec, the source video segment based on the selected encoding bitrate.

[00144] Além das terceiras modalidades, a unidade de processamento compreende adicionalmente meios para determinar uma quarta taxa de bits de candidato para a codificação, com o uso do primeiro codec de vídeo, de um segundo segmento de um segundo vídeo de origem, em que a quarta taxa de bits de candidato compreende uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento, e em que o fator de escalonamento é diferente do segundo fator de escalonamento.[00144] In addition to the third embodiments, the processing unit further comprises means for determining a fourth candidate bit rate for encoding, using the first video codec, a second segment of a second source video, where the fourth candidate bitrate comprises a bitrate for the second source video encoded using a third video codec modified by a second scaling factor, and wherein the scaling factor is different from the second scaling factor .

[00145] Além das terceiras modalidades, os meios para determinar a primeira, a segunda e a terceira taxas de bits de candidato compreendem meios para analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, meios para determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e meios para gerar uma previsão de taxa de bits como a terceira taxa de bits de candidato com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado.[00145] In addition to the third embodiments, the means for determining the first, second and third candidate bit rates comprise means for analyzing a bit stream of the encoded segment using the first video codec or the previous segment encoded with using the first video codec to determine segment bitstream parameters, means for determining a temporal complexity based on the segment bitstream parameters, and means for generating a bitrate prediction as the third bitrate candidate data based on temporal complexity and a pre-trained bitrate prediction model.

[00146] Além das terceiras modalidades, os meios para determinar a primeira, a segunda e a terceira taxas de bits de candidato compreendem meios para analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, meios para determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e meios para gerar uma previsão de taxa de bits como a terceira taxa de bits de candidato com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado, em que os parâmetros de fluxo de bits de segmento compreendem pelo menos um dentre bits por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.[00146] In addition to the third embodiments, the means for determining the first, second and third candidate bit rates comprise means for analyzing a bit stream of the encoded segment using the first video codec or the previous segment encoded with using the first video codec to determine segment bitstream parameters, means for determining a temporal complexity based on the segment bitstream parameters, and means for generating a bitrate prediction as the third bitrate based on temporal complexity and a pre-trained bitrate prediction model, wherein the segment bitstream parameters comprise at least one of segment average bits per pixel, a segment average quantization parameter , a segment encoding frame rate, or a segment encoding video height.

[00147] Em uma ou mais quartas modalidades, um meio legível por máquina compreende uma pluralidade de instruções que, em resposta à execução em um dispositivo de computação, fazem com que o dispositivo de computação codifique conteúdo de vídeo para a transmissão sem fio mediante a determinação de uma primeira, uma segunda e uma terceira taxas de bits de candidato para a codificação, com o uso de um primeiro codec de vídeo, de um segmento de um vídeo de origem, em que a primeira taxa de bits de candidato compreende a taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento, em que a segunda taxa de bits de candidato compreende uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo, e em que a terceira taxa de bits de candidato compreende uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo, selecionar uma taxa de bits de codificação para o segmento do vídeo de origem como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato, e codificar, com o uso do primeiro codec de vídeo, o segmento do vídeo de origem com base na taxa de bits de codificação selecionada.[00147] In one or more fourth embodiments, a machine-readable medium comprises a plurality of instructions that, in response to execution on a computing device, cause the computing device to encode video content for wireless transmission over the determining a first, second, and third candidate bitrate for encoding, using a first video codec, a segment of a source video, wherein the first candidate bitrate comprises the rate bitrate for source video encoded using a second video codec modified by a scaling factor, wherein the second candidate bitrate comprises an average bitrate for at least one of the source video segments encoded using the first video codec or a previous segment of the source video encoded using the first video codec, and wherein the third candidate bitrate comprises an encoding bitrate prediction for at least one among the segment encoded using the first video codec or the previously encoded segment using the first video codec, select an encoding bitrate for the source video segment as a minimum of the first, second, and third candidate bitrate, and encode, using the first video codec, the source video segment based on the selected encoding bitrate.

[00148] Além das quartas modalidades, o meio legível por máquina compreende adicionalmente instruções que fazem com que o dispositivo de computação codifique conteúdo de vídeo para a transmissão sem fio mediante a determinação de uma quarta taxa de bits de candidato para a codificação, com o uso do primeiro codec de vídeo, de um segundo segmento de um segundo vídeo de origem, em que a quarta taxa de bits de candidato compreende uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento, e em que o fator de escalonamento é diferente do segundo fator de escalonamento.[00148] In addition to the fourth embodiments, the machine-readable medium further comprises instructions that cause the computing device to encode video content for wireless transmission by determining a fourth candidate bitrate for encoding, with the using the first video codec, a second segment of a second source video, wherein the fourth candidate bitrate comprises a bitrate for the second source video encoded using a third video codec modified by a second scaling factor, and wherein the scaling factor is different from the second scaling factor.

[00149] Além das quartas modalidades, a previsão de taxa de bits de codificação é baseada pelo menos em parte em um dentre um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada ou um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.[00149] In addition to the fourth embodiments, the encoding bitrate prediction is based at least in part on one of a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, or a predetermined quality coefficient display associated with a device receiving the wireless transmission.

[00150] Além das quartas modalidades, a determinação da terceira taxa de bits de candidato baseada na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, para determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento e para gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado.[00150] In addition to the fourth embodiments, determining the third candidate bitrate based on the encoding bitrate prediction comprises analyzing a bitstream of the segment encoded using the first video codec or the previous segment encoded with the using the first video codec to determine segment bitstream parameters, to determine a temporal complexity based on the segment bitstream parameters, and to generate a bitrate prediction based on temporal complexity and a data model. pre-trained bitrate prediction.

[00151] Além das quartas modalidades, a determinação da terceira taxa de bits de candidato baseada na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado, em que os parâmetros de fluxo de bits de segmento compreendem pelo menos um dentre bits por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.[00151] In addition to the fourth embodiments, determining the third candidate bitrate based on the encoding bitrate prediction comprises analyzing a bitstream of the segment encoded using the first video codec or the previous segment encoded with the using the first video codec to determine segment bitstream parameters, determine a temporal complexity based on the segment bitstream parameters, and generate a bitrate prediction based on temporal complexity and a prediction model a pre-trained bitrate parameter, wherein the segment bitrate parameters comprise at least one of segment average bits per pixel, a segment average quantization parameter, a segment encoding frame rate, or a segment height. segment encoding video.

[00152] Além das quartas modalidades, a determinação da terceira taxa de bits de candidato com base na previsão de taxa de bits de codificação compreende analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento, determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento, e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado, em que a geração da previsão de taxa de bits é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e um coeficiente de qualidade de exibição associada a um dispositivo receptor da transmissão sem fio.[00152] In addition to the fourth embodiments, determining the third candidate bitrate based on the encoding bitrate prediction comprises analyzing a bitstream of the encoded segment using the first video codec or the previous segment encoded with using the first video codec to determine segment bitstream parameters, determine a temporal complexity based on the segment bitstream parameters, and generate a bitrate prediction based on temporal complexity and a data model pre-trained bitrate prediction, wherein the bitrate prediction generation is additionally based on a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate, and a display quality coefficient associated with a device receiving the wireless transmission.

[00153] Em uma ou mais quintas modalidades, pelo menos um meio legível por máquina pode incluir uma pluralidade de instruções que, em resposta à execução em um dispositivo de computação, faz com que o dispositivo de computação execute um método de acordo com qualquer uma das modalidades acima.[00153] In one or more fifth embodiments, the at least one machine-readable medium may include a plurality of instructions that, in response to execution in a computing device, cause the computing device to execute a method in accordance with any one of the above modalities.

[00154] Em uma ou mais sextas modalidades, um aparelho pode incluir meios para executar um método de acordo com qualquer uma das modalidades acima.[00154] In one or more sixth embodiments, an apparatus may include means for performing a method according to any of the above embodiments.

[00155] Será entendido que as modalidades não se limitam às modalidades aqui descritas, mas podem ser praticadas com modificação e alteração sem que se afaste do escopo das reivindicações anexas. Por exemplo, as modalidades acima podem incluir combinação específica de recursos. Entretanto, as modalidades acima não se limitam a esses aspecto e, em várias implantações, as modalidades acima podem incluir a realização apenas de um subconjunto de tais recursos, a realização de uma ordem diferente ordem de tais recursos, a realização de uma combinação diferente de tais recursos e/ou a realização de recursos adicionais além daqueles recursos explicitamente mencionados. O escopo das modalidades deveria, portanto, ser determinado com referência às reivindicações anexas, em conjunto com o escopo de coincidentes completo aos quais tais reivindicações são designadas.[00155] It will be understood that the modalities are not limited to the modalities described herein, but can be practiced with modification and alteration without departing from the scope of the appended claims. For example, the above modalities may include specific combination of features. However, the above embodiments are not limited to these aspects, and in various deployments, the above embodiments may include performing only a subset of such features, performing a different order of such features, performing a different combination of such features, such features and/or the realization of additional features beyond those features explicitly mentioned. The scope of embodiments should, therefore, be determined with reference to the appended claims, together with the full scope of coincidences to which such claims are assigned.

Claims (15)

1. Método implantado por computador para a codificação de conteúdo de vídeo para a transmissão sem fio, o método caracterizado por compreender: determinar uma primeira, uma segunda e uma terceira taxas de bits de candidato para a codificação, com o uso de um primeiro codec de vídeo, de um segmento de um vídeo de origem, em que a primeira taxa de bits de candidato é uma taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento, em que a segunda taxa de bits de candidato é uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo, e em que a terceira taxa de bits de candidato é uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo; selecionar uma taxa de bits de codificação para o segmento do vídeo de origem como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato; e codificar, com o uso do primeiro codec de vídeo, o segmento do vídeo de origem com base na taxa de bits de codificação selecionada.1. A computer-implemented method for encoding video content for wireless transmission, the method comprising: determining a first, second, and third candidate bitrate for encoding using a first codec of a segment of a source video, where the first candidate bitrate is a bitrate for the source video encoded using a second video codec modified by a scaling factor, where the second candidate bitrate is an average bitrate for at least one of the source video segment encoded using the first video codec or a previous source video segment encoded using the first video codec , and wherein the third candidate bitrate is an encoding bitrate prediction for at least one of the segment encoded using the first video codec or the previous segment encoded using the first video codec; selecting an encoding bitrate for the source video segment as a minimum of the first, second, and third candidate bitrates; and encoding, using the first video codec, the source video segment based on the selected encoding bitrate. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: determinar uma quarta taxa de bits de candidato para a codificação, com o uso do primeiro codec de vídeo, de um segundo segmento de um segundo vídeo de origem, em que a quarta taxa de bits de candidato compreende uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento, e em que o fator de escalonamento é diferente do segundo fator de escalonamento.2. Method according to claim 1, characterized in that it further comprises: determining a fourth candidate bit rate for encoding, using the first video codec, a second segment of a second source video , wherein the fourth candidate bitrate comprises a bitrate for the second source video encoded using a third video codec modified by a second scaling factor, and wherein the scaling factor is different from the second scaling factor. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a previsão de taxa de bits de codificação é baseada pelo menos em parte em um dentre um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada ou um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.3. Method according to claim 1, characterized in that the encoding bit rate prediction is based at least in part on one of a predetermined average opinion index, a predetermined maximum bit rate, a predetermined minimum bit or display quality coefficient associated with a device receiving the wireless transmission. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação da terceira taxa de bits de candidato baseada na previsão de taxa de bits de codificação compreende: analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento; determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento; e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado.4. Method according to claim 1, characterized in that the determination of the third candidate bit rate based on the coding bit rate prediction comprises: analyzing a bit stream of the coded segment using the first codec of video or the previous encoded segment using the first video codec to determine segment bitstream parameters; determining a time complexity based on the segment bitstream parameters; and generating a bitrate prediction based on temporal complexity and a pre-trained bitrate prediction model. 5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que os parâmetros de fluxo de bits de segmento compreendem pelo menos um dentre bits por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.5. Method according to claim 4, characterized in that the segment bitstream parameters comprise at least one of bits per segment average pixel, a segment average quantization parameter, a coding frame rate segment or a segment encoding video height. 6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a geração da previsão de taxa de bits é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.6. Method, according to claim 4, characterized in that the generation of the bit rate prediction is additionally based on a predetermined average opinion index, a predetermined maximum bit rate, a predetermined minimum bit rate and a display quality coefficient associated with a device receiving the wireless transmission. 7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que o coeficiente de qualidade de exibição associado ao dispositivo receptor é determinado com o uso de uma tabela de consulta com base em informações de resolução recebidas a partir do dispositivo receptor.7. Method according to claim 6, characterized in that the display quality coefficient associated with the receiving device is determined using a look-up table based on resolution information received from the receiving device. 8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a segunda taxa de bits de candidato e a terceira taxa de bits de candidato são determinadas com base no segmento prévio do vídeo de origem, e em que o segmento prévio é imediatamente anterior ao segmento do vídeo de origem.8. Method according to claim 1, characterized in that the second candidate bitrate and the third candidate bitrate are determined based on the previous segment of the source video, and in which the previous segment is immediately preceding the source video segment. 9. Sistema para a codificação de conteúdo de vídeo para transmissão sem fio, o sistema caracterizado por compreender: uma memória configurada para armazenar dados de vídeo; e uma unidade de processamento acoplada à memória, em que a unidade de processamento compreende: conjunto de circuitos de determinação de taxa de bits baseada em vídeo de origem codificado configurado para determinar uma primeira taxa de bits de candidato para a codificação, com base em um primeiro codec de vídeo, de um segmento de um vídeo de origem, em que a primeira taxa de bits de candidato é uma taxa de bits para o vídeo de origem codificado com o uso de um segundo codec de vídeo modificado por um fator de escalonamento; conjunto de circuitos de determinação de taxa de bits média de segmento configurado para determinar uma segunda taxa de bits de candidato para a codificação, com base no primeiro codec de vídeo, do segmento do vídeo de origem, em que a segunda taxa de bits de candidato é uma taxa de bits média para pelo menos um dentre o segmento do vídeo de origem codificado com o uso do primeiro codec de vídeo ou um segmento prévio do vídeo de origem codificado com o uso do primeiro codec de vídeo; conjunto de circuitos de previsão de taxa de bits de codificação configurado para determinar uma terceira taxa de bits de candidato para a codificação, com base no primeiro codec de vídeo, do segmento do vídeo de origem, em que a terceira taxa de bits de candidato é uma previsão de taxa de bits de codificação para pelo menos um dentre o segmento codificado com o uso do primeiro codec de vídeo ou o segmento prévio codificado com o uso do primeiro codec de vídeo; conjunto de circuitos de seleção de taxa de bits configurado para selecionar uma taxa de bits de codificação para o segmento do vídeo de origem como um mínimo da primeira, da segunda e da terceira taxas de bits de candidato; e conjunto de circuitos de codificador configurado para codificar, com base no primeiro codec de vídeo, o segmento do vídeo de origem com base na taxa de bits de codificação selecionada.9. System for encoding video content for wireless transmission, the system characterized by comprising: a memory configured to store video data; and a memory-coupled processing unit, the processing unit comprising: bitrate determination circuitry based on encoded source video configured to determine a first candidate bitrate for encoding based on a first video codec of a segment of a source video, wherein the first candidate bitrate is a bitrate for source video encoded using a second video codec modified by a scaling factor; segment average bitrate determination circuitry configured to determine a second candidate bitrate for encoding, based on the first video codec, of the source video segment, where the second candidate bitrate is an average bit rate for at least one of the source video segment encoded using the first video codec or a previous source video segment encoded using the first video codec; encoding bitrate prediction circuitry configured to determine a third candidate bitrate for encoding, based on the first video codec, of the source video segment, where the third candidate bitrate is an encoding bitrate prediction for at least one of the segment encoded using the first video codec or the previous segment encoded using the first video codec; bitrate selection circuitry configured to select an encoding bitrate for the source video segment as a minimum of the first, second, and third candidate bitrates; and encoder circuitry configured to encode, based on the first video codec, the source video segment based on the selected encoding bitrate. 10. Sistema, de acordo com a reivindicação 9, caracterizado pelo fato de que o conjunto de circuitos de determinação de taxa de bits baseada em vídeo de origem codificado é adicionalmente configurado para determinar uma quarta taxa de bits de candidato para a codificação, com o uso do primeiro codec de vídeo, de um segundo segmento de um segundo vídeo de origem, em que a quarta taxa de bits de candidato compreende uma taxa de bits para o segundo vídeo de origem codificado com o uso de um terceiro codec de vídeo modificado por um segundo fator de escalonamento, e em que o fator de escalonamento é diferente do segundo fator de escalonamento.10. System according to claim 9, characterized in that the encoded source video-based bitrate determination circuitry is further configured to determine a fourth candidate bitrate for encoding, with the using the first video codec, a second segment of a second source video, wherein the fourth candidate bitrate comprises a bitrate for the second source video encoded using a third video codec modified by a second scaling factor, and wherein the scaling factor is different from the second scaling factor. 11. Sistema, de acordo com a reivindicação 9, caracterizado pelo fato de que o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para determinar uma terceira taxa de bits de candidato compreende o conjunto de circuitos de previsão de taxa de bits de codificação que é configurado para: analisar um fluxo de bits do segmento codificado com o uso do primeiro codec de vídeo ou do segmento prévio codificado com o uso do primeiro codec de vídeo para determinar parâmetros de fluxo de bits de segmento; determinar uma complexidade temporal com base nos parâmetros de fluxo de bits de segmento; e gerar uma previsão de taxa de bits com base na complexidade temporal e em um modelo de previsão de taxa de bits pré-treinado.11. System according to claim 9, characterized in that the coding bitrate prediction circuitry that is configured to determine a third candidate bitrate comprises the bitrate prediction circuitry encoding bits that is configured to: analyze a segment bitstream encoded using the first video codec or the previous segment encoded using the first video codec to determine segment bitstream parameters; determining a time complexity based on the segment bitstream parameters; and generating a bitrate prediction based on temporal complexity and a pre-trained bitrate prediction model. 12. Sistema, de acordo com a reivindicação 11, caracterizado pelo fato de que os parâmetros de fluxo de bits de segmento compreendem pelo menos um dentre bits por pixel médio do segmento, um parâmetro de quantificação média do segmento, uma taxa de quadro de codificação do segmento ou uma altura de vídeo de codificação do segmento.12. System according to claim 11, characterized in that the segment bitstream parameters comprise at least one of the segment average bits per pixel, a segment average quantization parameter, a coding frame rate segment or a segment encoding video height. 13. Sistema, de acordo com a reivindicação 11, caracterizado pelo fato de que a previsão de taxa de bits gerada é adicionalmente baseada em um índice médio de opinião predeterminado, uma taxa de bits máxima predeterminada, uma taxa de bits mínima predeterminada e um coeficiente de qualidade de exibição associado a um dispositivo receptor da transmissão sem fio.13. System according to claim 11, characterized in that the generated bitrate prediction is additionally based on a predetermined average opinion index, a predetermined maximum bitrate, a predetermined minimum bitrate and a predetermined coefficient of display quality associated with a device receiving the wireless transmission. 14. Aparelho, caracterizado por compreender meios para executar o método conforme definido na reivindicação 1.14. Apparatus, characterized in that it comprises means for performing the method as defined in claim 1. 15. Armazenamento legível por máquina incluindo instruções legíveis por máquina que, quando executadas em um dispositivo de computação, caracterizado por fazer com que o dispositivo de computação realize o método conforme definido na reivindicação 1.15. Machine-readable storage including machine-readable instructions that, when executed on a computing device, cause the computing device to perform the method as defined in claim 1.
BR112016029138-7A 2014-07-10 2015-05-05 ADAPTIVE BIT RATE SEAMLESS TRANSFER FOR WIRELESS VIDEO BR112016029138B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/327,752 US9699464B2 (en) 2014-07-10 2014-07-10 Adaptive bitrate streaming for wireless video
US14/327,752 2014-07-10
PCT/US2015/029298 WO2016007215A1 (en) 2014-07-10 2015-05-05 Adaptive bitrate streaming for wireless video

Publications (2)

Publication Number Publication Date
BR112016029138A2 BR112016029138A2 (en) 2017-08-22
BR112016029138B1 true BR112016029138B1 (en) 2023-06-13

Family

ID=

Similar Documents

Publication Publication Date Title
EP3167616B1 (en) Adaptive bitrate streaming for wireless video
US9661329B2 (en) Constant quality video coding
US8928678B2 (en) Media workload scheduler
US10951914B2 (en) Reliable large group of pictures (GOP) file streaming to wireless displays
TWI513316B (en) Transcoding video data
EP3123720A1 (en) Scalable video encoding rate adaptation based on perceived quality
US9549188B2 (en) Golden frame selection in video coding
US11924478B2 (en) Multiple transcode engine systems and methods
KR20210067788A (en) Electronic apparatus, system and control method thereof
CN107736026B (en) Sample adaptive offset coding
CN112312140A (en) Content and quantization adaptive coding structure decisions for video coding
US20210400334A1 (en) Method and apparatus for loop-playing video content
US10356439B2 (en) Flexible frame referencing for display transport
BR112016029138B1 (en) ADAPTIVE BIT RATE SEAMLESS TRANSFER FOR WIRELESS VIDEO
CN107743707B (en) Low bit rate video coding and decoding
US10104373B2 (en) Content based video encoding for wireless display
US11716480B2 (en) Selectable transcode engine systems and methods
BR112016029992B1 (en) GOLDEN FRAME SELECTION IN VIDEO ENCODING
Jillani et al. Exploiting spatio-temporal characteristics of human vision for mobile video applications