BR102022002344A2 - Validação cruzada de codificação de vídeo - Google Patents

Validação cruzada de codificação de vídeo Download PDF

Info

Publication number
BR102022002344A2
BR102022002344A2 BR102022002344-1A BR102022002344A BR102022002344A2 BR 102022002344 A2 BR102022002344 A2 BR 102022002344A2 BR 102022002344 A BR102022002344 A BR 102022002344A BR 102022002344 A2 BR102022002344 A2 BR 102022002344A2
Authority
BR
Brazil
Prior art keywords
stream
measurement
current
encoding
coding
Prior art date
Application number
BR102022002344-1A
Other languages
English (en)
Inventor
Chen Liu
Wenhao Zhang
Deliang Fu
Xiaobo Liu
Xuchang HUANGFU
Original Assignee
Hulu, LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hulu, LLC filed Critical Hulu, LLC
Publication of BR102022002344A2 publication Critical patent/BR102022002344A2/pt

Links

Images

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/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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/172Methods 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 picture, frame or field
    • 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/177Methods 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 a group of pictures [GOP]
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Em algumas modalidades, um método recebe um fluxo de codificação atual de um vídeo. Uma primeira medição para um fluxo de codificação de referência é selecionada para medir uma qualidade do fluxo de codificação de referência. O método compara uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência e informa se o fluxo de codificação atual é validado com base na comparação.

Description

VALIDAÇÃO CRUZADA DE CODIFICAÇÃO DE VÍDEO ANTECEDENTES
[001] Um serviço pode receber um vídeo de origem que será oferecido em seu serviço de entrega de vídeo. Antes de publicar o vídeo no serviço de entrega de vídeo, o serviço codifica o vídeo de origem em diferentes perfis. Por exemplo, os perfis podem representar diferentes combinações de taxa de bits e/ou qualidade.
[002] É possível que a versão codificada do vídeo de origem inclua erros de codificação. Se o vídeo com os erros de codificação for publicado, os erros poderão afetar negativamente a experiência de visualização. Consequentemente, o serviço pode monitorar o fluxo de codificação para determinar quais fluxos de codificação podem incluir erros de codificação antes de publicar o vídeo. Um método de monitoramento de erros no fluxo de codificação pode exigir que os usuários visualizem manualmente o fluxo de codificação do início ao fim para determinar se há algum erro de codificação. Por exemplo, um usuário pode assistir a um filme do início ao fim e verificar se algum erro pode ser visto. Os vídeos podem variar de 30 minutos a várias horas e cada vídeo também pode ser codificado em vários perfis. A verificação manual de cada vídeo codificado pode exigir um grande número de horas e é manualmente intensiva e lenta. Além disso, a validação está sujeita a erros humanos em que um usuário pode perder um erro de codificação ou o usuário pode perder um erro de codificação menos óbvio.
BREVE DESCRIÇÃO DOS DESENHOS
[003] Com relação à discussão a seguir e aos desenhos, ressaltase que os detalhes mostrados representam exemplos para fins de discussão ilustrativa e são apresentados para fornecer uma descrição dos princípios e aspectos conceituais da presente revelação. A este respeito, nenhuma tentativa é feita para mostrar detalhes de implementação além do que é necessário para uma compreensão fundamental da presente revelação. A discussão a seguir, em conjunto com os desenhos, torna evidente para aqueles versados na técnica como as modalidades de acordo com a presente revelação podem ser praticadas. Números de referência semelhantes ou iguais podem ser usados para identificar ou de outra forma se referir a elementos semelhantes ou iguais nos vários desenhos e descrições de suporte. Nos desenhos anexos:
[004] A figura 1 representa um sistema simplificado para codificar vídeos de acordo com algumas modalidades.
[005] A figura 2 representa um fluxograma simplificado de um método para codificar um vídeo de origem de acordo com algumas modalidades.
[006] A figura 3 representa um fluxograma simplificado de um método para realizar a validação cruzada na sequência linear do fluxo de codificação de acordo com algumas modalidades.
[007] A figura 4 representa um fluxograma simplificado de um método para realizar o processo de validação cruzada de acordo com algumas modalidades.
[008] A figura 5 representa um fluxograma simplificado de um método para realizar o processo de validação cruzada de acordo com algumas modalidades.
[009] A figura 6 representa um gráfico que mapeia a qualidade para quadros do vídeo de acordo com algumas modalidades.
[010] A figura 7 representa um exemplo do ajuste de acordo com algumas modalidades.
[011] A figura 8 representa um exemplo de aplicação de um limite de qualidade estático à lista de limites de qualidade de acordo com algumas modalidades.
[012] A figura 9 representa um exemplo de um processo para usar a validação local de acordo com algumas modalidades.
[013] A figura 10 representa um fluxograma simplificado de um método para analisar a qualidade do fluxo de codificação atual de acordo com algumas modalidades.
[014] A figura 11A representa um exemplo de detecção de erros de codificação de acordo com algumas modalidades.
[015] A figura 11B representa um exemplo de detecção de erros de codificação usando a lista de limites de acordo com algumas modalidades.
[016] A figura 12 representa um sistema de transmissão de vídeo em comunicação com vários dispositivos de cliente através de uma ou mais redes de comunicação de acordo com uma modalidade.
[017] A figura 13 representa uma vista diagramática de um aparelho para visualização de conteúdo de vídeo e anúncios.
DESCRIÇÃO DETALHADA
[018] São aqui descritas técnicas para um sistema de codificação. Na descrição a seguir, para fins de explicação, numerosos exemplos e detalhes específicos são apresentados para fornecer uma compreensão completa de algumas modalidades. Algumas modalidades, conforme definido pelas reivindicações, podem incluir alguns ou todos os recursos nestes exemplos sozinhos ou em combinação com outros recursos descritos abaixo e podem incluir ainda modificações e equivalentes dos recursos e conceitos descritos neste documento.
[019] Um sistema usa um processo de validação cruzada que valida automaticamente um fluxo de codificação. O processo de validação cruzada pode usar um fluxo de codificação de referência para validar de forma cruzada um fluxo de codificação atual quanto a erros. A referência pode incluir características semelhantes ao fluxo de codificação atual, o que melhora a validação porque variações na qualidade do fluxo de codificação de referência podem ser usadas para validar o fluxo de codificação atual. Por exemplo, o processo de validação cruzada pode usar informações de qualidade do fluxo de codificação de referência para determinar uma lista de limites de qualidade para o fluxo de codificação atual. O processo de validação cruzada pode ajustar as informações de qualidade do fluxo de codificação de referência com base em uma diferença entre o fluxo de codificação de referência e o fluxo de codificação atual. Por exemplo, o fluxo de codificação de referência pode ser para um perfil que está associado a uma menor taxa de bits e/ou qualidade. Um limite de qualidade delta pode considerar a diferença entre o perfil do fluxo de codificação atual e o perfil do fluxo de codificação de referência. Em seguida, os valores na lista de limites de qualidade podem ser ajustados pelo limite de qualidade delta, o que resulta em uma lista de limites de qualidade que são usados para validar o fluxo de codificação atual. O processo de validação cruzada pode verificar se há erros no fluxo de codificação atual com base na lista de limites de qualidade. Se forem encontrados erros, o processo de validação cruzada pode identificar partes do fluxo de codificação atual que tenham erros. Em seguida, o processo pode corrigir os erros, por exemplo, reprocessando as partes que apresentam erros de codificação.
[020] O processo de validação cruzada pode ser executado automaticamente para detectar os erros. A detecção automática pode economizar muitas horas manuais que eram necessárias para verificar visualmente os fluxos de codificação. Além disso, o uso do fluxo de codificação de referência pode melhorar o processo automático de verificação de erros, fornecendo informações de qualidade que podem ser mais precisas para prever se há erros no fluxo de codificação atual. Além disso, ao identificar partes do fluxo de codificação atual que apresentam erros, o reprocessamento do fluxo de codificação atual pode economizar recursos de computação, pois todo o fluxo de codificação atual não precisa ser reprocessado.
Visão geral do sistema
[021] A figura 1 representa um sistema simplificado 100 para codificar vídeos de acordo com algumas modalidades. O sistema 100 inclui um sistema de servidor 102 e um cliente 104. Embora um sistema de servidor 102 e um cliente 104 sejam mostrados, entende-se que vários clientes 104 e vários sistemas de servidor 102 podem ser usados. Por exemplo, o sistema de servidor 102 pode incluir vários servidores e pode se comunicar com vários clientes 104. Além disso, redes de entrega de conteúdo (CDNs) podem ser usadas para entregar vídeos a clientes 104 e não são mostradas.
[022] O sistema de servidor 102 pode incluir um sistema de entrega de vídeo 112 que facilita o envio de um fluxo de bits codificado de um vídeo para o cliente 104. Por exemplo, o sistema de entrega de vídeo 102 pode fornecer um serviço de entrega de vídeo que permite ao cliente 104 solicitar vídeos, como vídeos sob demanda ou vídeos ao vivo da televisão ao vivo. Conforme discutido acima, o sistema de entrega de vídeo 112 pode usar uma rede de entrega de conteúdo para entregar o fluxo de bits codificado do vídeo. Nesse caso, as versões codificadas do vídeo podem ser enviadas à rede de entrega de conteúdo para entrega ao cliente 104.
[023] O cliente 104 pode incluir vários dispositivos de computação, como smartphones, dispositivos de sala de estar, tablets, computadores pessoais, etc., que podem reproduzir um vídeo. O sistema de entrega de vídeo 112 pode fornecer um aplicativo que é exibido em uma interface no cliente 104. Uma conta de usuário pode se autenticar no aplicativo para acessar o serviço de entrega de vídeo. Então, o sistema de entrega de vídeo 112 pode receber uma solicitação de vídeo do cliente 104 e processar a solicitação de vídeo para permitir que o cliente 104 transmita o vídeo. Ao receber o fluxo de bits codificado, um decodificador 114 decodifica o fluxo de bits. Um reprodutor de mídia 116 pode reproduzir o fluxo de bits decodificado em uma interface de usuário no cliente 104.
[024] O sistema de servidor 102 inclui um codificador 106 que codifica um vídeo de origem. Por exemplo, um vídeo de origem pode ser recebido de uma fonte, como um provedor de conteúdo. O codificador 106 pode codificar o vídeo de origem em diferentes fluxos de bits codificados, que podem ser referidos como fluxos de codificação. Como se sabe, um vídeo pode ser codificado em vários perfis que correspondem a diferentes níveis, que podem ser diferentes níveis de taxas de bits e/ou qualidade. Em algumas modalidades, um vídeo de origem é codificado em uma progressão de perfil que inclui perfis que podem ser usados para um vídeo. Os perfis incluem diferentes níveis que são associados a uma característica, como taxa de bits e/ou característica de qualidade. A taxa de bits pode ser o número de bytes por segundo que podem ser enviados, e a característica de qualidade pode medir a qualidade de um vídeo. Uma resolução do vídeo pode estar relacionada à característica de qualidade, como uma resolução mais alta está associada a uma qualidade mais alta. O nível de um perfil na progressão de perfil pode ser determinado com base em como o vídeo é transcodificado para esse nível, como um vídeo pode ser transcodificado a 400 kilobytes por segundo (Kbps) e uma resolução de 270p. A resolução de 270p pode representar um número de pixels que é usado na resolução do vídeo.
[025] O codificador 106 pode emitir os fluxos de codificação para um monitor do fluxo de codificação 108, que pode validar os fluxos de codificação. Como será discutido em mais detalhes abaixo, o monitor do fluxo de codificação 108 pode realizar um processo de validação cruzada que valida o fluxo de codificação. Se o fluxo de codificação não for validado, o codificador 106 pode recodificar o vídeo usando diferentes parâmetros de codificação. Uma vez que o fluxo de codificação seja validado, o codificador 106 pode armazenar o fluxo de codificação em um armazenamento de vídeo 110. Por exemplo, o vídeo pode ser publicado e pode ser solicitado pelo cliente 104 após a publicação. Por exemplo, o cliente 104 pode solicitar um segmento de vídeo de um dos perfis com base nas condições atuais de reprodução. Em alguns exemplos, o cliente 104 pode usar um algoritmo de taxa de bits adaptável para selecionar o perfil para o vídeo com base na largura de banda disponível atual e outras condições de rede.
Processo de codificação
[026] A figura 2 representa um fluxograma simplificado 200 de um método para codificar um vídeo de origem de acordo com algumas modalidades. Em 202, o monitor do fluxo de codificação 108 recebe um fluxo de codificação atual de um vídeo de origem. O fluxo de codificação atual pode ser um fluxo de bits codificado que é emitido pelo codificador 106. Por exemplo, o codificador 106 pode codificar o vídeo de origem em vários perfis, tais como perfis que podem ser associados a diferentes combinações de taxa de bits e qualidade. Em algumas modalidades, vários perfis, como nove perfis, podem ser usados. Os perfis podem ser associados a taxas de bits de 200, 300, 400, 650, 1000, 1500, 2000, 2500 e 3200 Kbps, mas outras taxas de bits podem ser usadas. Em um exemplo, o codificador 106 pode codificar um perfil a 300 Kbps após codificar um perfil a 200 Kbps.
[027] Em 204, o monitor do fluxo de codificação 108 analisa o fluxo de codificação atual. A análise será descrita com mais detalhes a seguir.
[028] Em 206, o monitor do fluxo de codificação 108 determina se a validação do fluxo de codificação atual falhou. Se a validação falhou, em 208, o monitor do fluxo de codificação 108 pode ajustar os parâmetros de codificação. Por exemplo, o monitor do fluxo de codificação 108 pode analisar os erros no fluxo de codificação atual e determinar diferentes parâmetros de transcodificação com base nos erros. Por exemplo, o monitor do fluxo de codificação 108 pode produzir a diferença de qualidade entre o fluxo de codificação de referência e o fluxo de codificação atual. Esta diferença pode ser usada para ajustar os parâmetros de acordo. Por exemplo, uma grande diferença entre a qualidade do fluxo de codificação de referência e a qualidade do fluxo de codificação atual pode resultar em um ajuste maior dos parâmetros. Além disso, o monitor do fluxo de codificação 108 pode determinar a localização dos erros e fornecer a localização para o codificador 106, de modo que o codificador 106 possa apenas recodificar partes do vídeo de origem com base na localização dos erros (por exemplo, não todo o vídeo de origem).
[029] Em 210, se o fluxo de codificação atual não falhar na validação cruzada, em 210, o monitor do fluxo de codificação 108 armazena o fluxo de codificação atual para publicação.
Modalidades de validação cruzada
[030] A validação cruzada pode ser realizada na sequência linear do fluxo de codificação de diferentes maneiras. O seguinte descreve dois métodos para realizar a validação cruzada, mas outros métodos podem ser verificados. A figura 3 representa um fluxograma simplificado 300 de um método para realizar a validação cruzada na sequência linear do fluxo de codificação de acordo com algumas modalidades. Em 302, o monitor do fluxo de codificação 108 calcula uma medição de qualidade do fluxo de codificação atual. A medição de qualidade pode ser a qualidade média para todo o fluxo de codificação atual do perfil. Por exemplo, o monitor do fluxo de codificação 108 pode calcular a média de uma medição de qualidade, tal como uma razão de sinal em relação ao ruído de pico (PSNR), para cada quadro do fluxo de codificação atual. Outras medições também podem ser usadas, como uma razão de sinal em relação ao ruído de pico máximo de uma porção de quadros, todos os quadros, etc.
[031] Em 304, o monitor do fluxo de codificação 108 compara a medição de qualidade com um limite. O limite pode ser um limite de qualidade estático que não muda. Por exemplo, o limite de qualidade estático pode não mudar para partes do fluxo de codificação atual, como para uma parte de quadros ou quadro a quadro. Além disso, o limite pode não mudar em vários vídeos. Por exemplo, para o mesmo perfil de 300 Kbps, o mesmo limite de qualidade estático pode ser usado para todos os vídeos de origem que estão codificados para o perfil de 300 Kbps. Em alguns exemplos, uma razão de sinal em relação ao ruído de pico de 30 decibéis (dB) pode ser o limite de qualidade que é usado para este perfil.
[032] Em 306, o monitor do fluxo de codificação 108 determina se o fluxo de codificação atual falhou na validação. Caso contrário, em 312, o monitor do fluxo de codificação 108 emite informações indicando que a codificação foi um sucesso. O fluxo de codificação atual pode ser publicado neste ponto. Por exemplo, nenhuma validação adicional (por exemplo, a validação cruzada) pode ser realizada.
[033] Se o fluxo de codificação atual falhou na validação, em 308, o monitor do fluxo de codificação 108 executa um processo de validação cruzada. Uma razão quando o processo de validação cruzada é realizado após a primeira comparação com o limite estático é que o uso do limite estático pode ter uma alta razão de falsos alarmes. Pode haver uma alta razão de alarme falso porque a qualidade de uma codificação de vídeo pode variar ao longo do vídeo, dependendo das características do vídeo. Por exemplo, algumas partes do vídeo podem ter uma grande quantidade de movimento e algumas partes podem incluir principalmente objetos estáticos ou não ter muitos detalhes (por exemplo, uma tela preta). Os quadros com alto movimento podem ter uma qualidade inferior aos quadros com objetos estáticos. O limite estático pode ser definido em um valor que pode sinalizar erros de codificação que podem não ser erros reais, como um quadro com alto conteúdo de movimento que pode ser sinalizado como um erro, mas pode não ter erros de codificação. Por exemplo, os quadros com alto movimento podem ter uma qualidade inferior aos quadros com objetos estáticos. Em alguns exemplos, para um vídeo com grande ruído (por exemplo, um filme), a razão de sinal em relação ao ruído de pico pode ser em torno de 32 decibéis (dB) a 36 dB em geral. No entanto, para um desenho animado, a razão de sinal em relação ao ruído de pico pode ser em torno de 42 dB a 45 dB em geral. Portanto, se o limite estático for definido muito alto para a razão de sinal em relação ao ruído de pico, a maioria dos vídeos com alto ruído não passará na validação com o limite estático, mesmo que o vídeo não tenha erros de codificação. Além disso, se o limite estático for definido muito baixo para a razão de sinal em relação ao ruído de pico, alguns dos desenhos animados podem passar na validação, mesmo que os desenhos animados possam ter erros de codificação porque os desenhos animados naturalmente têm uma razão de sinal em relação ao ruído de pico mais alta. Assim, usando o limite estático, pode haver altos falsos positivos em certos tipos de vídeos. A validação cruzada usando uma codificação de referência semelhante pode superar esse problema porque o limite de qualidade varia com base nas características da referência.
[034] Anteriormente, quando o fluxo de codificação atual falhava na validação com o limite estático, normalmente, o vídeo era revisado manualmente, o que desperdiçava recursos. No entanto, em algumas modalidades, o monitor do fluxo de codificação 108 executa automaticamente o processo de validação cruzada quando a primeira validação falha.
[035] Em 310, o monitor do fluxo de codificação 108 determina se o fluxo de codificação atual passou na validação cruzada. O processo de validação cruzada será descrito com mais detalhes abaixo. Se a validação cruzada for aprovada, em 312, o monitor do fluxo de codificação 108 emite uma indicação de que o fluxo de codificação atual está codificado com sucesso sem erros. Em alguns casos, a validação cruzada pode validar o fluxo de codificação depois que ele falhou na primeira validação. Por exemplo, onde o fluxo de codificação atual pode falhar na primeira validação, mas passar na validação cruzada é quando o fluxo de codificação atual tem grande ruído, a razão de sinal em relação ao ruído de pico pode ser menor que o limite estático, mas no processo de validação cruzada, o fluxo de codificação atual pode passar porque o fluxo de codificação atual é comparado com um fluxo de codificação de referência que altera o limite com base nas características do fluxo de codificação de referência.
[036] Se o fluxo de codificação atual não passar na validação cruzada, em 314, o monitor do fluxo de codificação 108 emite uma falha, o que significa que erros de codificação são detectados. O processo de validação cruzada pode verificar o fluxo de codificação atual com mais detalhes para determinar se há erros. Além disso, se a validação cruzada falhar, a validação cruzada pode identificar locais no fluxo de codificação atual que apresentaram os erros, o que pode remover a necessidade de visualizar manualmente o vídeo para determinar onde ocorreram os erros. Além disso, o processo de validação cruzada pode fornecer parâmetros a serem usados ao recodificar o vídeo, como uma qualidade alvo a ser usada.
[037] O método de validação cruzada também pode ser usado como um processo autônomo. Por exemplo, a figura 4 representa um fluxograma simplificado 400 de um método para realizar o processo de validação cruzada de acordo com algumas modalidades. Em 402, o monitor do fluxo de codificação 108 recebe o fluxo de codificação atual o fluxo de codificação atual do codificador 106 sem que quaisquer outras verificações de validação sejam realizadas para erros de codificação. Em 404, o monitor do fluxo de codificação 108 executa o processo de validação cruzada. Em 406, o monitor do fluxo de codificação 108 determina se o fluxo de codificação atual passou no processo de validação cruzada. Em caso afirmativo, o monitor do fluxo de codificação 108 emite uma indicação de sucesso para a validação. Caso contrário, o monitor do fluxo de codificação 108 emite uma indicação de uma falha da validação. Assim, a primeira validação é removida do processo. Um motivo para não incluir a primeira verificação de validação com o limite estático é que os vídeos (por exemplo, desenhos animados conforme descrito acima) podem ter uma razão de sinal em relação ao ruído de pico mais alta e podem ultrapassar o limite estático, mas ainda apresentam erros de codificação. Embora os fluxos da sequência linear de codificação acima sejam descritos, outros fluxos que incorporam o processo de validação cruzada podem ser usados.
Processo de validação cruzada
[038] O processo de validação cruzada será agora descrito com mais detalhes. A figura 5 representa um fluxograma simplificado 500 de um método para realizar o processo de validação cruzada de acordo com algumas modalidades. Em 502, o monitor do fluxo de codificação 108 seleciona um fluxo de codificação de referência para a validação cruzada. O monitor do fluxo de codificação 108 pode determinar o fluxo de codificação de referência de diferentes maneiras. Em algumas modalidades, o monitor do fluxo de codificação 108 pode receber uma seleção de um fluxo de codificação de referência ou selecionar o fluxo de codificação de referência. Por exemplo, o monitor do fluxo de codificação 108 tenta determinar um fluxo de codificação de referência que inclui características semelhantes ao fluxo de codificação atual. Em algumas modalidades, o monitor do fluxo de codificação 108 pode comparar características do fluxo de codificação atual com características de possíveis fluxos de codificação de referência. O monitor do fluxo de codificação 108 pode então selecionar um fluxo de codificação de referência a partir de um conjunto de fluxos de codificação de referência que é considerado uma referência ideal (por exemplo, mais semelhante) ao fluxo de codificação atual. Em algumas modalidades, o monitor do fluxo de codificação 108 pode calcular uma pontuação para cada fluxo de codificação de referência com base nas características do fluxo. O fluxo de codificação de referência com uma pontuação mais semelhante ao fluxo de codificação atual pode ser selecionado. Em algumas modalidades, o monitor do fluxo de codificação 108 pode determinar um perfil para o fluxo de codificação atual. Se houver outro perfil que foi codificado anteriormente para o mesmo vídeo de origem, o monitor do fluxo de codificação 108 pode selecionar esse fluxo de codificação de referência. Por exemplo, se o perfil de 300 Kbps estiver sendo codificado, o monitor do fluxo de codificação 108 pode selecionar o perfil de 200 Kbps como o fluxo de codificação de referência. Espera-se que o fluxo de codificação para o perfil de 200 Kbps possa ter características semelhantes ao fluxo de codificação atual.
[039] Em alguns casos, o fluxo de codificação atual pode ser o primeiro fluxo de codificação que foi codificado para o vídeo de origem. O monitor do fluxo de codificação 108 pode selecionar um fluxo de codificação de referência de outro codificador que pode ser considerado confiável e teria muito pouco ou nenhum erro. Por exemplo, se o codificador para o fluxo de codificação atual estiver usando um primeiro protocolo, como H.265, o monitor do fluxo de codificação 108 pode selecionar um fluxo de codificação de referência de um protocolo de codificação mais estabelecido, como H.264. O protocolo H.264 tem sido usado de forma confiável por muitos anos, enquanto o protocolo H.265 é relativamente novo. O fluxo de codificação de referência do codificador H.264 pode ser mais confiável e pode haver confiança de que esse fluxo de codificação de referência não tenha muitos erros de codificação. Além disso, o monitor do fluxo de codificação 108 pode analisar o conteúdo dos fluxos para determinar um fluxo de codificação de referência que inclui conteúdo semelhante ao fluxo de codificação atual.
[040] Em 504, o monitor do fluxo de codificação 108 determina uma medição de qualidade para os quadros do fluxo de codificação de referência. Um quadro pode ser uma parte do vídeo, como uma imagem. A medição de qualidade pode fornecer informações para quantificar a qualidade dos quadros do vídeo. A medição de qualidade pode ser para cada quadro, vários quadros, todos os outros quadros, etc. A figura 6 representa um gráfico 600 que mapeia a qualidade para quadros do vídeo de acordo com algumas modalidades. Por exemplo, o gráfico 600 inclui uma medição de qualidade no eixo Y, como a razão de sinal em relação ao ruído de pico e a identificação de números de quadros no eixo X. Uma linha 602 mapeia a qualidade dos quadros. A medição de qualidade não é estática e varia para diferentes quadros. Também pode haver grandes diferenças na qualidade entre os quadros, como quando há muito movimento em um quadro, as cenas mudam, etc. O uso da variação na qualidade no fluxo de codificação de referência melhora a validação cruzada porque pode haver pontos onde a medição de qualidade do fluxo de codificação atual cai abaixo de um limite estático, mas os quadros nesse ponto não incluem erros de codificação. Em vez disso, os quadros podem ser associados a conteúdo que é codificado com qualidade inferior devido às características do vídeo.
[041] Com referência novamente à figura 5, em 506, o monitor do fluxo de codificação 108 calcula uma lista de limite de qualidade com base no fluxo de codificação de referência. A lista de limite de qualidade pode ser uma medição de qualidade ajustada à medição de qualidade inicial. O ajuste pode ser realizado com base em quaisquer diferenças entre o fluxo de codificação de referência e o fluxo de codificação atual. Por exemplo, o fluxo de codificação de referência pode ser baseado no perfil de 200 Kbps, enquanto o fluxo de codificação atual é baseado em um perfil de 300 Kbps. O perfil de 200 Kbps pode ser codificado com uma qualidade alvo que é diferente do perfil de 300 Kbps. Ou seja, o perfil de 300 Kbps pode ter uma qualidade superior ao perfil de 200 Kbps. A lista de limites de qualidade faz um ajuste com base nessas diferenças. A figura 7 representa um exemplo do ajuste de acordo com algumas modalidades. Por exemplo, a figura 7 representa um gráfico 700 de uma lista de limites de qualidade de acordo com algumas modalidades. O gráfico 700 inclui a medição de qualidade no eixo Y e os quadros no eixo X. Um limite de qualidade delta 702 representa um ajuste da medição de qualidade do fluxo de codificação de referência. Por exemplo, a medição de qualidade para o fluxo de codificação de referência é mostrada em 704. O resultado do ajuste da medição de qualidade com base no limite de qualidade delta é mostrado em 706. Como pode ser visto, a medição de qualidade para quadros é ajustada com base no limite de qualidade delta. Neste exemplo, a medição de qualidade de ajuste é aumentada em relação à medição de qualidade original, mas será entendido que a medição de qualidade ajustada pode ser ajustada em outras direções, como inferior. Ou seja, se o fluxo de codificação de referência for de um perfil de qualidade superior ao fluxo de codificação atual, então a medição de qualidade pode ser ajustada para ser menor.
[042] O limite de qualidade delta pode ser calculado com base nas diferenças entre o fluxo de codificação de referência e o fluxo de codificação atual. Em algumas modalidades, o limite de qualidade delta ∆quality_thresholdpode ser calculado pela função a seguir.
Figure img0001
A variável bitratecur pode ser a taxa de bits do perfil usado para codificar o fluxo de codificação atual e a variável bitrateref pode ser a taxa de bits do perfil para o fluxo de codificação de referência. A variável qualityref pode ser o nível de qualidade do perfil do fluxo de codificação de referência. Em algumas modalidades, bitratecur é a taxa de bits média do fluxo de codificação atual, bitrateref é a taxa de bits média do fluxo de codificação de referência, and qualityref é a qualidade média do fluxo de codificação de referência. O acima indica que o limite de qualidade delta é uma função da taxa de bits do fluxo de codificação atual, a taxa de bits do fluxo de codificação de referência e a qualidade do fluxo de codificação de referência. Um exemplo para a função f é mostrado abaixo, mas outros podem ser usados.
Figure img0002
[043] A função f(qualityref) pode representar um coeficiente de conversão de taxa de bits e a qualidade em uma faixa de qualidade diferente. O coeficiente de conversão pode converter uma alteração nos valores de taxa de bits em valores de alteração na medição de qualidade (taxa de bits para razão de sinal em relação ao ruído de pico). Por exemplo, uma mudança de dez por cento na taxa de bits pode ser uma mudança de 0,5 em dB para a razão de sinal em relação ao ruído de pico. Diferentes métodos de implementação da conversão de mudanças na taxa de bits para mudanças na qualidade podem ser verificados. A variável safe_factor representa o uso conservador do valor para ∆quality_threshold. Ou seja, o fator de segurança pode não ajustar a medição da qualidade de referência para sua conversão total. Por exemplo, o monitor do fluxo de codificação 108 pode definir o fator de segurança para 0,9 para capturar 90% da conversão, como em vez de ajustar o nível de limite de qualidade para a razão de sinal em relação ao ruído de pico para 100, o monitor do fluxo de codificação 108 ajusta o limite para razão de sinal em relação ao ruído de pico para 90.
[044] Além disso, o monitor do fluxo de codificação 108 pode aplicar um limite de qualidade estático (por exemplo, um limite ou grampo) à medição de qualidade ajustada. O limite de qualidade estático pode limitar o intervalo da lista de limites de qualidade. Por exemplo, se um determinado nível de qualidade for atendido por um quadro ou grupo de quadros, então esse nível de qualidade pode ser aceitável mesmo se o nível de qualidade da medição de qualidade ajustada ultrapassar o limite de qualidade estático. O monitor do fluxo de codificação 108 pode definir o limite de qualidade estático para 35dB para a razão de sinal em relação ao ruído de pico, mas outros valores podem ser usados. Por conseguinte, o monitor do fluxo de codificação 108 pode limitar quaisquer limites de qualidade que são para um quadro ou grupo de quadros que são superiores ao limite de qualidade estático ao valor do limite de qualidade estático.
[045] A figura 8 representa um exemplo de aplicação de um limite de qualidade estático à lista de limites de qualidade de acordo com algumas modalidades. Um gráfico 800-1 mostra um limite de qualidade estático e a relação com a lista de limite de qualidade ajustada em 706. Em 802, o limite de qualidade estático pode ser aplicado em todo o fluxo de codificação. O limite de qualidade estático pode ser definido em um valor predeterminado que é considerado um nível de qualidade aceitável. Em um gráfico 800-2, o limite de qualidade estático é aplicado à lista de limites de qualidade. Por exemplo, quaisquer medições que estejam acima do limite de qualidade estático podem ser ajustadas ao limite de qualidade estático. As áreas da lista de limites de qualidade que estavam acima do limite de qualidade estático são mostradas em 804-1,804-2 e 804-3. Esses valores para a lista de limites de qualidade foram ajustados para o limite de qualidade estático. Ao aplicar o limite de qualidade estático, o monitor do fluxo de codificação 108 pode determinar que alguns quadros que estão abaixo da lista de qualidade original podem não ser erros porque a qualidade dos quadros é suficiente. Por exemplo, o fluxo de codificação atual pode não atender ao nível de qualidade de referência original, mas pode estar acima do limite de qualidade estático.
[046] Com referência de novo à figura 5, em 508, o monitor do fluxo de codificação 108 executa a validação local do fluxo de codificação atual em um conjunto de quadros no fluxo de codificação atual. A validação local compara as medições de qualidade para um conjunto de quadros com os limites correspondentes para os quadros correspondentes na lista de limites de qualidade. A validação local pode ser realizada no nível do quadro para determinar localmente os quadros que podem incluir erros de codificação. O monitor do fluxo de codificação 108 pode comparar a lista de limite de qualidade com a qualidade de quadros no fluxo de codificação atual. Em algumas modalidades, o monitor do fluxo de codificação 108 pode usar uma janela deslizante para verificar a qualidade do fluxo de codificação atual. A janela deslizante pode ser definida para vários quadros, que podem estar entre um quadro e todo o vídeo. No entanto, em algumas modalidades, o monitor do fluxo de codificação 108 usa uma janela que é menor que todo o vídeo para identificar localmente alguns quadros com erros de codificação e alguns quadros sem erros de codificação. O tamanho da janela pode determinar a quantidade de recursos de computação usados. Por exemplo, um tamanho de janela menor pode realizar mais cálculos para analisar todo o fluxo de codificação do que um tamanho de janela maior. No entanto, o tamanho de janela maior pode ser menos sensível para distinguir onde os erros de codificação estão no nível do quadro. Por exemplo, uma janela deslizante de um ou dois quadros pode ser capaz de determinar os erros de codificação local por um ou dois quadros. No entanto, um tamanho de janela maior pode não ser capaz de determinar os erros de codificação para o quadro exato. Em 510, o monitor do fluxo de codificação 108 emite uma determinação de se o fluxo de codificação atual é validado. Diferentes métodos podem ser usados para determinar se o fluxo de codificação atual é validado e são descritos em mais detalhes abaixo.
[047] A figura 9 representa um exemplo 900 de um processo para usar a validação local de acordo com algumas modalidades. Os quadros do vídeo são mostrados em 902 e podem ser do primeiro quadro ao último quadro do fluxo de codificação atual. O monitor do fluxo de codificação 108 usa uma janela 904 para determinar os quadros a serem analisados na validação local. Neste exemplo, a janela 904 tem cinco quadros, mas o monitor do fluxo de codificação 108 pode usar números diferentes de quadros.
[048] No processo de validação cruzada, o monitor do fluxo de codificação 108 analisa os cinco quadros na janela 904 e, em seguida, desliza a janela pelos quadros do fluxo de codificação atual 902. Por exemplo, após analisar os cinco quadros em 906-1, o monitor do fluxo de codificação 108 desliza a janela 904 para 906-2 para analisar mais cinco quadros. Em algumas modalidades, o monitor do fluxo de codificação 108 desliza a janela 904 um quadro por vez, mas o monitor do fluxo de codificação 108 pode deslizar a janela 904 em diferentes números de quadros para análise. Na janela deslizante de quadro único, a janela 904 desliza para 906-3 e assim por diante até os últimos cinco quadros em 906-4.
[049] Em cada etapa de janela deslizante, o monitor do fluxo de codificação 108 calcula a qualidade local do fluxo de codificação atual e a qualidade local da lista de limite de qualidade para os quadros na janela atual 904. O monitor do fluxo de codificação 108 pode comparar as diferentes medições de qualidade e determinar se esses quadros falham na validação ou passam na validação. A medição de qualidade que é usada para os quadros na janela 904 pode ser medições diferentes, como qualidade média, qualidade máxima, qualidade mínima, etc. Além disso, a qualidade ponderada pode ser usada para representar a qualidade local, como:
Figure img0003
A qualidade ponderada pode pesar os quadros na janela 904 de maneira diferente. Por exemplo, o quadro do meio pode ter o peso mais alto para tornar a qualidade do quadro do meio a mais importante na janela 904. Outros métodos podem ser usados, como não usar qualquer ponderação, ponderar o primeiro quadro mais alto, etc.
[050] A figura 10 representa um fluxograma simplificado 1000 de um método para analisar a qualidade do fluxo de codificação atual de acordo com algumas modalidades. Em 1002, o monitor do fluxo de codificação 108 define as variáveis de uma variável P como 0, um tamanho de janela de um tamanho X, uma variável de "pontos de falha" igual a 0 e uma variável de "pontos de passagem" igual a 0. A variável de pontos de falha e a variável de pontos de passagem contam o número de falhas e sucessos durante a análise. A variável P é um identificador de quadro que identifica o quadro no vídeo. O monitor do fluxo de codificação 108 pode usar a variável P como o ponto inicial da janela deslizante 904.
[051] Em 1004, o monitor do fluxo de codificação 108 define a variável P para ser igual a P+1. Isso define a janela como o primeiro quadro do vídeo. Em cada análise subsequente, o monitor do fluxo de codificação 108 pode incrementar a janela ou pode deslizar a janela um quadro. Note-se que a janela pode ser movida mais de um quadro.
[052] Em 1006, o monitor do fluxo de codificação 108 determina se o tamanho da janela é maior que o final do vídeo. Ou seja, o monitor do fluxo de codificação 108 determina se a janela deslizante passou do final do vídeo. Neste caso, o processo de análise pode terminar e prosseguir para 1018, que será descrito mais adiante. Se a janela deslizante não atingiu o final do vídeo, em 1008, o monitor do fluxo de codificação 108 calcula a qualidade local dos quadros do quadro P ao quadro P + tamanho da janela no fluxo de codificação atual. Isso pode ser chamado de “qualidade atual”. Em 1010, o monitor do fluxo de codificação 108 calcula a qualidade dos quadros do quadro P ao quadro P + tamanho da janela na lista de limite de qualidade. Isso pode ser chamado de “limite de qualidade”. Consequentemente, o monitor do fluxo de codificação 108 mede a qualidade local na janela 904 para o fluxo de codificação atual e a lista de limite de qualidade.
[053] Em 1012, o monitor do fluxo de codificação 108 determina se a qualidade atual é menor que o limite de qualidade. Por exemplo, se a qualidade atual for menor que o limite de qualidade, então o monitor do fluxo de codificação 108 determina que a porção na janela 904 para o fluxo de codificação atual pode ter erros porque a qualidade é inferior a do fluxo de codificação de referência. Embora a análise acima seja determinada, outras comparações entre a qualidade atual e o limite de qualidade podem ser usadas, como usar uma ponderação do limite de qualidade.
[054] Se a qualidade atual não atender (por exemplo, for inferior) ao limite de qualidade, em 1014, o monitor do fluxo de codificação 108 incrementa o número de pontos de falha, como por um. Se a qualidade atual atender (por exemplo, for maior) do que o limite de qualidade, em 1016, o monitor do fluxo de codificação 108 incrementa o número de pontos de passagem. O processo reitera para 1004 onde a variável P é incrementada, que desliza a janela 904 por um número de quadros P.
[055] Eventualmente, o final do vídeo será alcançado pela janela 904 e, em 1018, o monitor do fluxo de codificação 108 determina se a validação cruzada falhou. Por exemplo, o monitor do fluxo de codificação 108 pode determinar se o número de pontos de falha atende (por exemplo, é maior) do que um limite. Por exemplo, o monitor do fluxo de codificação 108 pode contar o número de pontos de falha e apenas comparar o número de pontos de falha com um limite. Em algumas modalidades, uma razão de pontos de falha em relação aos pontos de passagem pode ser usada e é comparada com um limite, mas outros métodos podem ser usados. A razão pode considerar que pode haver apenas um pequeno número de erros de codificação com base no vídeo com base no número de comparações, e esses pequenos números de erros de codificação podem ser aceitáveis. O uso de apenas pontos de falha pode não considerar a duração do vídeo. Por exemplo, o monitor do fluxo de codificação 108 pode usar 100% como um limite de passagem, o que significa que se houver um ponto de falha, o monitor do fluxo de codificação 108 produzirá uma falha. Mas, outros cenários podem valorizar mais a pontualidade ou os recursos de cálculo do que a qualidade, como, por exemplo, pode haver pouco tempo para transcodificar novamente o fluxo de codificação atual porque o fluxo pode precisar ser publicado em breve. Para esses cenários, o monitor do fluxo de codificação 108 pode tolerar alguns erros, como um ou dois quadros com baixa qualidade, e o monitor do fluxo de codificação 108 pode definir esse limite de passagem para um número menor, como 99%.
[056] Em 1020, a validação cruzada não falhou e o monitor do fluxo de codificação 108 emite uma indicação de sucesso. Uma revisão adicional do fluxo de codificação atual pode não ser necessária, e o fluxo de codificação atual pode ser enviado para publicação (por exemplo, transmissão para um cliente). Em 1022, a validação cruzada falhou e o monitor do fluxo de codificação 108 pode emitir uma indicação de falha. O processamento adicional do fluxo de codificação atual pode então ser realizado. O monitor do fluxo de codificação 108 também pode emitir informações que podem ser úteis no reprocessamento do vídeo de origem, como a localização de erros e parâmetros ajustados.
[057] A figura 11A representa um exemplo de detecção de erros de codificação de acordo com algumas modalidades. Um gráfico 1100 mostra a qualidade no eixo Y e os quadros para o fluxo de codificação atual no eixo X. Uma linha 1101 mostra a qualidade do fluxo de codificação atual.
[058] Em 1102-1, a medição de qualidade cai para vários quadros. Isso pode indicar que há um problema de qualidade que é local para esses quadros. Como uma janela deslizante está sendo usada, os erros de codificação podem ser detectados localmente nesses quadros. Esses erros são mostrados em 1102-2 no fluxo de codificação atual, onde alguns dos quadros incluem erros de codificação indicados pelas caixas.
[059] A figura 11B representa um exemplo de detecção de erros de codificação usando a lista de limites de acordo com algumas modalidades. Um gráfico 1104 mostra a qualidade no eixo Y e os quadros para o fluxo de codificação atual no eixo X. Uma linha 1106 mostra a qualidade do fluxo de codificação atual e uma linha 1108 mostra a qualidade da lista de limites. A qualidade do fluxo de codificação atual pode não atender a lista de limites em um ponto mostrado em 1110. O monitor do fluxo de codificação 108 determina que este ponto no fluxo de codificação atual inclui um erro de codificação.
[060] O monitor do fluxo de codificação 108 pode emitir uma identificação dos quadros que podem incluir os erros de codificação. Além disso, o monitor do fluxo de codificação 108 pode emitir informações que podem ser usadas para ajustar os parâmetros de codificação. O monitor do fluxo de codificação 108 pode analisar os quadros identificados nesta faixa e determinar um ajuste. Por exemplo, se o monitor do fluxo de codificação 108 determinar que esses quadros têm um limite de bloco óbvio, o monitor do fluxo de codificação 108 poderia sugerir um filtro de desbloqueio pesado para este grupo de imagens (GOP) ou fragmento, ou se o monitor do fluxo de codificação 108 determinar que esses quadros têm ruído, o monitor do fluxo de codificação 108 poderia sugerir um filtro de ruído para eles. Outras sugestões incluem desvio adaptativo de amostra (SAO), nível de distorção de taxa (rd), configurações de busca de movimento, etc.
Conclusão
[061] Por conseguinte, o monitor do fluxo de codificação 108 executa automaticamente uma validação de um fluxo de codificação atual. O uso do fluxo de codificação de referência permite que um limite dinâmico seja usado. Isso melhora a validação e também permite que a validação reduza os falsos positivos e a quantidade de recursos de computação que são usados.
Exemplos de Modalidades
[062] Em algumas modalidades, um método que compreende: receber, por um dispositivo de computação, um fluxo de codificação atual de um vídeo; selecionar, pelo dispositivo de computação, um fluxo de codificação de referência com base em uma semelhança entre o fluxo de codificação de referência e o fluxo de codificação atual; selecionar, pelo dispositivo de computação, uma primeira medição para o fluxo de codificação de referência para medir uma qualidade do fluxo de codificação de referência; comparar, pelo dispositivo de computação, uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência; e informar, pelo dispositivo de computação, se o fluxo de codificação atual é validado com base na comparação.
[063] Em algumas modalidades, selecionar o fluxo de codificação de referência compreende: comparar uma primeira característica do fluxo de codificação atual com uma segunda característica do fluxo de codificação de referência; e determinar se deve ser usado o fluxo de codificação de referência como uma referência para o fluxo de codificação atual.
[064] Em algumas modalidades, selecionar o fluxo de codificação de referência compreende: comparar o fluxo de codificação atual com uma pluralidade de fluxos de codificação de referência; e selecionar o fluxo de codificação de referência a partir da pluralidade de fluxos de codificação de referência com base em uma semelhança com o fluxo de codificação atual.
[065] Em algumas modalidades, selecionar o fluxo de codificação de referência compreende: usar um fluxo de codificação de referência de outra codificação do vídeo em uma taxa de bits diferente.
[066] Em algumas modalidades, selecionar o fluxo de codificação de referência compreende: usar um fluxo de codificação de referência de outra codificação do vídeo usando um protocolo de codificação diferente daquele usado para codificar o fluxo de codificação atual.
[067] Em algumas modalidades, selecionar a primeira medição para o fluxo de codificação de referência compreende: determinar a primeira medição para pelo menos uma porção de quadros do fluxo de codificação de referência.
[068] Em algumas modalidades, selecionar a primeira medição para o fluxo de codificação de referência compreende: determinar a primeira medição para cada quadro no fluxo de codificação de referência.
[069] Em algumas modalidades, selecionar a primeira medição para o fluxo de codificação de referência compreende: ajustar uma terceira medição do fluxo de codificação de referência com base em uma diferença entre o fluxo de codificação de referência e o fluxo de codificação atual para determinar a primeira medição.
[070] Em algumas modalidades, a diferença compreende uma diferença em uma taxa de bits entre o fluxo de codificação de referência e o fluxo de codificação atual.
[071] Em algumas modalidades, a diferença compreende um coeficiente de conversão entre uma mudança em uma taxa de bits entre o fluxo de codificação de referência e o fluxo de codificação atual e uma mudança em uma medição de qualidade.
[072] Em algumas modalidades, o método compreende ainda: aplicar um limite estático à terceira medição para limitar um valor da primeira medição ao limite estático.
[073] Em algumas modalidades, a primeira medição compreende uma lista de limites para quadros do fluxo de codificação de referência e os limites na lista de limites são comparados com os respectivos quadros do fluxo de codificação atual.
[074] Em algumas modalidades, comparar a segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência compreende: usar uma janela deslizante para comparar a primeira medição para um primeiro conjunto de quadros no fluxo de codificação de referência e com a segunda medição para um primeiro conjunto de quadros correspondente no fluxo de codificação atual.
[075] Em algumas modalidades, a janela deslizante é movida para comparar a primeira medição para diferentes conjuntos de quadros no fluxo de codificação de referência e com a segunda medição para conjuntos diferentes de quadros correspondentes no fluxo de codificação atual.
[076] Em algumas modalidades, informar se o fluxo de codificação atual é validado compreende: contar um número de falhas ao comparar a primeira medição para conjuntos de quadros no fluxo de codificação de referência e a segunda medição para conjuntos de quadros correspondentes no fluxo de codificação atual; e informar um resultado para se o fluxo de codificação atual é validado com base no número de falhas.
[077] Em algumas modalidades, informar se o fluxo de codificação atual é validado compreende: identificar localmente um ou mais quadros onde é determinado que ocorreram erros de codificação no fluxo de codificação de referência com base na comparação.
[078] Em algumas modalidades, informar se o fluxo de codificação atual é validado compreende: determinar um parâmetro de codificação ajustado para codificar novamente um ou mais quadros do fluxo de codificação atual.
[079] Em algumas modalidades, um meio de armazenamento legível por computador não transitório contendo instruções que, quando executadas, controlam um sistema de computador para ser operável para: receber um fluxo de codificação atual de um vídeo; selecionar um fluxo de codificação de referência com base em uma semelhança entre o fluxo de codificação de referência e o fluxo de codificação atual; selecionar uma primeira medição para o fluxo de codificação de referência para medir uma qualidade do fluxo de codificação de referência; comparar uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência e informar se o fluxo de codificação atual é validado com base na comparação.
[080] Em algumas modalidades, selecionar o fluxo de codificação de referência compreende: comparar uma primeira característica do fluxo de codificação atual com uma segunda característica do fluxo de codificação de referência e determinar se deve ser usado o fluxo de codificação de referência como uma referência para o fluxo de codificação atual.
[081] Em algumas modalidades, um aparelho que compreende: um ou mais processadores de computador e um meio de armazenamento legível por computador não transitório compreendendo instruções que, quando executadas, controlam o um ou mais processadores de computador para serem operáveis para: receber um fluxo de codificação atual de um vídeo; selecionar um fluxo de codificação de referência com base em uma semelhança entre o fluxo de codificação de referência e o fluxo de codificação atual; selecionar uma primeira medição para o fluxo de codificação de referência para medir uma qualidade do fluxo de codificação de referência; comparar uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência e informar se o fluxo de codificação atual é validado com base na comparação.
Sistema
[082] Os recursos e aspectos aqui revelados podem ser implementados em conjunto com um sistema de transmissão de vídeo 1200 em comunicação com vários dispositivos clientes por meio de uma ou mais redes de comunicação, conforme mostrado na figura 12. Aspectos do sistema de transmissão de vídeo 1200 são descritos meramente para fornecer um exemplo de uma aplicação para permitir a distribuição e entrega de conteúdo preparado de acordo com a presente revelação. Deve ser verificado que a presente tecnologia não se limita a aplicações de transmissão de vídeo e pode ser adaptada para outras aplicações e mecanismos de entrega.
[083] Em uma modalidade, um provedor de programa de mídia pode incluir uma biblioteca de programas de mídia. Por exemplo, os programas de mídia podem ser agregados e fornecidos por meio de um sítio (por exemplo, sítio da rede, aplicativo ou navegador). Um usuário pode acessar o sítio ou aplicativo do provedor de programas de mídia e solicitar programas de mídia. O usuário pode estar limitado a solicitar apenas programas de mídia oferecidos pelo provedor de programas de mídia.
[084] No sistema 1200, os dados de vídeo podem ser obtidos de uma ou mais fontes, por exemplo, de uma fonte de vídeo 1210, para uso como entrada para um servidor de conteúdo de vídeo 1202. Os dados do vídeo de entrada podem compreender dados de vídeo baseados em quadros brutos ou editados em qualquer formato digital adequado, por exemplo, Moving Pictures Experts Group (MPEG)-1, MPEG-2, MPEG-4, VC-1, H.264 / Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC) ou outro formato. Em alternativa, um vídeo pode ser fornecido em formato não digital e convertido em formato digital usando um digitalizador e/ou transcodificador. Os dados do vídeo de entrada podem compreender videoclipes ou programas de vários tipos, por exemplo, episódios de televisão, filmes e outros conteúdos produzidos como conteúdo primário de interesse dos consumidores. Os dados de vídeo também podem incluir áudio ou apenas áudio pode ser usado.
[085] O sistema de transmissão de vídeo 1200 pode incluir um ou mais servidores de computador ou módulos 1202, 1204 e/ou 1207 distribuídos em um ou mais computadores. Cada servidor 1202, 1204, 1207 pode incluir ou pode ser acoplado operativamente a um ou mais armazenamentos de dados 1209, por exemplo, bancos de dados, índices, arquivos ou outras estruturas de dados. Um servidor de conteúdo de vídeo 1202 pode acessar um armazenamento de dados (não mostrado) de vários segmentos de vídeo. O servidor de conteúdo de vídeo 1202 pode servir os segmentos de vídeo conforme dirigido por um controlador de interface de usuário que se comunica com um dispositivo cliente. Conforme usado neste documento, um segmento de vídeo refere-se a uma porção definida de dados de vídeo baseados em quadros, tal como pode ser usado em uma sessão de transmissão de vídeo para ver um episódio de televisão, filme, performance ao vivo gravada ou outro conteúdo de vídeo.
[086] Em algumas modalidades, um servidor de publicidade em vídeo 1204 pode acessar um armazenamento de dados de vídeos relativamente curtos (por exemplo, anúncios em vídeo de 10 segundos, 30 segundos ou 60 segundos) configurados como publicidade para um determinado anunciante ou mensagem. A publicidade pode ser fornecida a um anunciante em troca de algum tipo de pagamento ou pode incluir uma mensagem promocional para o sistema 1200, uma mensagem de serviço público ou alguma outra informação. O servidor de publicidade em vídeo 1204 pode servir os segmentos de publicidade em vídeo conforme indicado por um controlador de interface de usuário (não mostrado).
[087] O sistema de transmissão de vídeo 1200 também pode incluir o sistema de servidor 102.
[088] O sistema de transmissão de vídeo 1200 pode incluir ainda um componente de integração e transmissão 1207 que integra conteúdo de vídeo e publicidade em vídeo em um segmento de transmissão de vídeo. Por exemplo, o componente de transmissão 1207 pode ser um servidor de conteúdo ou servidor de mídia de transmissão. Um controlador (não mostrado) pode determinar a seleção ou a configuração de publicidade na transmissão de vídeo com base em qualquer algoritmo ou processo adequado. O sistema de transmissão de vídeo 1200 pode incluir outros módulos ou unidades não representadas na figura 12, por exemplo, servidores administrativos, servidores de comércio, infraestrutura de rede, mecanismos de seleção de publicidade e assim por diante.
[089] O sistema de transmissão de vídeo 1200 pode se conectar a uma rede de comunicação de dados 1212. Uma rede de comunicação de dados 1212 pode compreender uma rede local (LAN), uma rede remota ampla (WAN), por exemplo, a Internet, uma rede telefônica, uma rede de telecomunicações celular sem fio (WCS) 1214 ou alguma combinação destas ou redes semelhantes.
[090] Um ou mais dispositivos cliente 1220 podem ficar em comunicação com o sistema de transmissão de vídeo 1200, através da rede de comunicação de dados 1212, rede de telecomunicações celular sem fio 1214 e/ou outra rede. Tais dispositivos cliente podem incluir, por exemplo, um ou mais computadores laptop 1220-1, computadores de mesa 1220-2, telefones celulares "inteligentes" 1220-3, dispositivos tablets 1220-4, televisores habilitados para rede 1220-5 ou combinações dos mesmos, através de um roteador 1218 para uma LAN, através de uma estação de base 1217 para uma rede de telecomunicações celular sem fio 1214 ou através de alguma outra conexão. Em operação, tais dispositivos cliente 1220 podem enviar e receber dados ou instruções para o sistema 1200, em resposta à entrada do usuário recebida dos dispositivos de entrada do usuário ou outra entrada. Em resposta, o sistema 1200 pode servir segmentos de vídeo e metadados do armazenamento de dados 1209 em resposta à seleção de programas de mídia para os dispositivos clientes 1220. Os dispositivos clientes 1220 podem emitir o conteúdo de vídeo do segmento de transmissão de vídeo em um reprodutor de mídia usando uma tela de exibição, projetor ou outro dispositivo de saída de vídeo e receber entrada do usuário para interagir com o conteúdo de vídeo.
[091] A distribuição de dados de áudio e vídeo pode ser implementada a partir do componente de transmissão 1207 para dispositivos cliente remotos através de redes de computadores, redes de telecomunicações e combinações de tais redes, usando vários métodos, por exemplo, transmissão. Na transmissão, um servidor de conteúdo transmite dados de áudio e vídeo continuamente para um componente de reprodutor de mídia operando pelo menos parcialmente no dispositivo cliente, que pode reproduzir os dados de áudio e vídeo simultaneamente com o recebimento dos dados de transmissão do servidor. Embora a transmissão seja discutida, outros métodos de entrega podem ser usados. O componente de reprodutor de mídia pode iniciar a reprodução dos dados de vídeo imediatamente após receber uma porção inicial dos dados do provedor de conteúdo. As técnicas tradicionais de transmissão usam um único provedor que entrega um fluxo de dados a um conjunto de usuários finais. Grande largura de banda e poder de processamento podem ser necessários para fornecer um único fluxo para um grande público, e a largura de banda necessária do provedor pode aumentar, à medida que o número de usuários finais aumenta.
[092] A mídia de transmissão pode ser entregue sob demanda ou ao vivo. A transmissão permite a reprodução imediata em qualquer ponto no arquivo. Os usuários finais podem pular o arquivo de mídia para iniciar a reprodução ou alterar a reprodução para qualquer ponto do arquivo de mídia. Assim, o usuário final não precisa esperar o carregamento do arquivo progressivamente. Normalmente, a mídia de transmissão é fornecida a partir de alguns servidores dedicados com recursos de grande largura de banda por meio de um dispositivo especializado que aceita solicitações de arquivos de vídeo e, com informações sobre o formato, largura de banda e estrutura desses arquivos, fornece apenas a quantidade de dados necessária para reproduzir o vídeo, na velocidade necessária para reproduzi-lo. Os servidores de mídia de transmissão também podem levar em conta a largura da banda de transmissão e os recursos do reprodutor de mídia no cliente de destino. O componente de transmissão 1207 pode se comunicar com o dispositivo cliente 1220 usando mensagens de controle e mensagens de dados para se ajustar às mudanças nas condições de rede, à medida que o vídeo é reproduzido. Essas mensagens de controle podem incluir comandos para habilitar funções de controle como avanço rápido, retrocesso rápido, pausa ou busca de uma parte específica do arquivo no cliente.
[093] Uma vez que o componente de transmissão 1207 transmite dados de vídeo apenas conforme necessário e na taxa que é necessária, o controle preciso sobre o número de fluxos servidos pode ser mantido. O espectador não poderá ver vídeos de alta taxa de dados em um meio de transmissão de taxa de dados mais baixa. No entanto, os servidores de transmissão de mídia (1) fornecem aos usuários acesso aleatório ao arquivo de vídeo, (2) permitem o monitoramento de quem está visualizando quais programas de vídeo e por quanto tempo são assistidos, (3) utilizam a largura de banda de transmissão de forma mais eficiente, pois apenas a quantidade de dados necessário para suportar a experiência de visualização é transmitido e (4) o arquivo de vídeo não é armazenado no computador do espectador, mas descartado pelo reprodutor de mídia, permitindo assim mais controle sobre o conteúdo.
[094] O componente de transmissão 1207 pode usar protocolos baseados em TCP, como HyperText Transfer Protocol (HTTP) e Real Time Messaging Protocol (RTMP). O componente de transmissão 1207 também pode fornecer difusões na rede ao vivo e várias difusões, o que permite que mais de um cliente sintonize um único fluxo, assim economizando largura de banda. Os reprodutores de mídia de transmissão não podem depender do carregamento de todo o vídeo para fornecer acesso aleatório a qualquer ponto do programa de mídia. Em vez disso, isso é feito usando mensagens de controle transmitidas do reprodutor de mídia para o servidor de mídia de transmissão. Outros protocolos usados para transmissão são HTTP live streaming (HLS) ou Dynamic Adaptive Streaming over HTTP (DASH). Os protocolos HLS e DASH fornecem vídeo por HTTP por meio de uma lista de reprodução de pequenos segmentos que são disponibilizados em uma variedade de taxas de bits, normalmente de uma ou mais redes de entrega de conteúdo (CDNs). Isso permite que um reprodutor de mídia alterne as taxas de bits e as fontes de conteúdo em uma base de segmento a segmento. A comutação ajuda a compensar as variações de largura de banda de rede e falhas de infraestrutura que podem ocorrer durante a reprodução do vídeo.
[095] A entrega de conteúdo de vídeo por transmissão pode ser realizada em vários modelos. Em um modelo, o usuário paga pela visualização de programas de vídeo, por exemplo, pagando uma taxa pelo acesso à biblioteca de programas de mídia ou parte de programas de mídia restritos, ou usando um serviço de pay-per-view. Em outro modelo amplamente adotado pela televisão aberta logo após sua criação, os patrocinadores pagam pela apresentação do programa de mídia em troca do direito de apresentar anúncios durante ou adjacente à apresentação do programa. Em alguns modelos, os anúncios são inseridos em horários predeterminados em um programa de vídeo, horários esses que podem ser chamados de “espaços de anúncio” ou “intervalos de anúncio”. Com transmissão de vídeo, o reprodutor de mídia pode ser configurado, de modo que o dispositivo cliente não possa reproduzir o vídeo sem também reproduzir anúncios predeterminados durante os espaços de anúncio designados.
[096] Com referência à figura 13, é ilustrada uma vista esquemática de um aparelho 1300 para visualização de conteúdo de vídeo e anúncios. Em modalidades selecionadas, o aparelho 1300 pode incluir um processador (CPU) 1302 acoplado operativamente a uma memória de processador 1304, que contém módulos funcionais codificados em binário para execução pelo processador 1302. Tais módulos funcionais podem incluir um sistema operacional 1306 para manipular funções do sistema como entrada/saída e acesso à memória, um navegador 1308 para exibir páginas da rede e reprodutor de mídia 1310 para reproduzir vídeo. A memória 1304 pode conter módulos adicionais não mostrados na figura 13, por exemplo, módulos para realizar outras operações descritas em outro lugar neste documento.
[097] Um barramento 1314 ou outro componente de comunicação pode suportar a comunicação de informações dentro do aparelho 1300. O processador 1302 pode ser um microprocessador especializado ou dedicado configurado ou operável para executar tarefas particulares de acordo com os recursos e aspectos aqui revelados executando código de software legível por máquina que define as tarefas específicas. A memória do processador 1304 (por exemplo, memória de acesso aleatório (RAM) ou outro dispositivo de armazenamento dinâmico) pode ser conectada ao barramento 1314 ou diretamente ao processador 1302 e armazenar informações e instruções a serem executadas por um processador 1302. A memória 1304 também pode armazenar variáveis temporárias ou outras informações intermediárias durante a execução de tais instruções.
[098] Um meio legível por computador em um dispositivo de armazenamento 1324 pode ser conectado ao barramento 1314 e armazenar informações e instruções estáticas para o processador 1302; por exemplo, o dispositivo de armazenamento (CRM) 1324 pode armazenar os módulos 1306, 1308, 1310 e 1312 quando o aparelho 1300 é desligado, a partir do qual os módulos podem ser carregados na memória do processador 1304 quando o aparelho 1300 é ligado. O dispositivo de armazenamento 1324 pode incluir um meio de armazenamento legível por computador não transitório contendo informações, instruções ou alguma combinação das mesmas, por exemplo, instruções que, quando executadas pelo processador 1302, fazem com que o aparelho 1300 seja configurado ou operável para executar uma ou mais operações de um método como descrito neste documento.
[099] Uma interface de comunicação 1316 também pode ser conectada ao barramento 1314. A interface de comunicação 1316 pode fornecer ou suportar comunicação de dados bidirecional entre o aparelho 1300 e um ou mais dispositivos externos, por exemplo, o sistema de transmissão 1200, opcionalmente através de um roteador/modem 1326 e uma conexão com ou sem fio. Em alternativa, ou adicionalmente, o aparelho 1300 pode incluir um transceptor 1318 conectado a uma antena 1329, através do qual o aparelho 1300 pode se comunicar sem fio com uma estação de base para um sistema de comunicação sem fio ou com o roteador/modem 1326. Em alternativa, o aparelho 1300 pode se comunicar com um sistema de transmissão de vídeo 1200 através de uma rede de área local, rede particular virtual ou outra rede. Em outra alternativa, o aparelho 1300 pode ser incorporado como um módulo ou componente do sistema 1200 e comunicar-se com outros componentes através do barramento 1314 ou por alguma outra modalidade.
[0100] O aparelho 1300 pode ser conectado (por exemplo, através do barramento 1314 e unidade de processamento gráfico 1320) a uma unidade de exibição 1328. Uma exibição 1328 pode incluir qualquer configuração adequada para exibir informações para um operador do aparelho 1300. Por exemplo, uma exibição 1328 pode incluir ou utilizar um monitor de cristal líquido (LCD), LCD com tela sensível ao toque (por exemplo, monitor capacitivo), monitor de diodo emissor de luz (LED), projetor ou outro dispositivo de exibição para apresentar informações a um usuário do aparelho 1300 em uma exibição visual.
[0101] Um ou mais dispositivos de entrada 1330 (por exemplo, um teclado alfanumérico, microfone, teclado numérico, controle remoto, controlador de jogo, câmera ou conjunto de câmeras) podem ser conectados ao barramento 1314 através de uma porta de entrada do usuário 1322 para comunicar informações e comandos ao aparelho 1300. Em modalidades selecionadas, um dispositivo de entrada 1330 pode fornecer ou suportar controle sobre o posicionamento de um cursor. Tal dispositivo de controle de cursor, também chamado de dispositivo apontador, pode ser configurado como um mouse, trackball, trackpad, tela sensível ao toque, teclas de direção do cursor ou outro dispositivo para receber ou rastrear o movimento físico e traduzir o movimento em sinais elétricos indicando o movimento do cursor. O dispositivo de controle do cursor pode ser incorporado na unidade de exibição 1328, por exemplo, usando uma tela sensível ao toque. Um dispositivo de controle do cursor pode comunicar informações de direção e seleções de comando para o processador 1302 e controlar o movimento do cursor no monitor 1328. Um dispositivo de controle de cursor pode ter dois ou mais graus de liberdade, por exemplo, permitindo que o dispositivo especifique posições de cursor em um plano ou espaço tridimensional.
[0102] Algumas modalidades podem ser implementadas em um meio de armazenamento legível por computador não transitório para uso por ou em conexão com o sistema de execução de instruções, aparelho, sistema ou máquina. O meio de armazenamento legível por computador contém instruções para controlar um sistema de computador para executar um método descrito por algumas modalidades. O sistema de computador pode incluir um ou mais dispositivos de computação. As instruções, quando executadas por um ou mais processadores de computador, podem ser configuradas ou operáveis para realizar o que é descrito em algumas modalidades.
[0103] Conforme usado na descrição deste documento e ao longo das reivindicações a seguir, "um" e "o" incluem referências plurais, a menos que o contexto indique claramente o contrário. Além disso, conforme usado na descrição aqui e em todas as reivindicações a seguir, o significado de "em" inclui "em" e "sobre", a menos que o contexto indique claramente o contrário.
[0104] A descrição acima ilustra várias modalidades juntamente com exemplos de como aspectos de algumas modalidades podem ser implementados. Os exemplos e modalidades acima não devem ser considerados as únicas modalidades e são apresentados para ilustrar a flexibilidade e as vantagens de algumas modalidades, conforme definido pelas reivindicações a seguir. Com base na revelação acima e nas reivindicações a seguir, outros arranjos, modalidades, implementações e equivalentes podem ser empregados sem se afastar do escopo deste documento, conforme definido pelas reivindicações.

Claims (20)

  1. Método, caracterizado pelo fato de que compreende: receber, por um dispositivo de computação, um fluxo de codificação atual de um vídeo; selecionar, pelo dispositivo de computação, uma primeira medição para um fluxo de codificação de referência para medir uma qualidade do fluxo de codificação de referência; comparar, pelo dispositivo de computação, uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência e informar, pelo dispositivo de computação, se o fluxo de codificação atual é validado com base na comparação.
  2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: selecionar o fluxo de codificação de referência com base em uma semelhança entre o fluxo de codificação de referência e o fluxo de codificação atual.
  3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a seleção do fluxo de codificação de referência compreende: comparar uma primeira característica do fluxo de codificação atual com uma segunda característica do fluxo de codificação de referência e determinar se deve ser usado o fluxo de codificação de referência como uma referência para o fluxo de codificação atual.
  4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a seleção do fluxo de codificação de referência compreende: comparar o fluxo de codificação atual com uma pluralidade de fluxos de codificação de referência e selecionar o fluxo de codificação de referência da pluralidade de fluxos de codificação de referência com base em uma semelhança com o fluxo de codificação atual.
  5. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a seleção do fluxo de codificação de referência compreende: usar um fluxo de codificação de referência de outra codificação do vídeo em uma taxa de bits diferente.
  6. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a seleção do fluxo de codificação de referência compreende: usar um fluxo de codificação de referência de outra codificação do vídeo usando um protocolo de codificação diferente daquele usado para codificar o fluxo de codificação atual.
  7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a seleção da primeira medição para o fluxo de codificação de referência compreende: determinar a primeira medição para pelo menos uma porção de quadros do fluxo de codificação de referência.
  8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a seleção da primeira medição para o fluxo de codificação de referência compreende: determinar a primeira medição para cada quadro no fluxo de codificação de referência.
  9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a seleção da primeira medição para o fluxo de codificação de referência compreende: ajustar uma terceira medição do fluxo de codificação de referência com base em uma diferença entre o fluxo de codificação de referência e o fluxo de codificação atual para determinar a primeira medição.
  10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a diferença compreende uma diferença em uma taxa de bits entre o fluxo de codificação de referência e o fluxo de codificação atual.
  11. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a diferença compreende um coeficiente de conversão entre uma mudança em uma taxa de bits entre o fluxo de codificação de referência e o fluxo de codificação atual e uma mudança em uma medição de qualidade.
  12. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda: aplicar um limite estático à terceira medição para limitar um valor da primeira medição ao limite estático.
  13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: a primeira medição compreende uma lista de limites para quadros do fluxo de codificação de referência e os limites na lista de limites são comparados com os respectivos quadros do fluxo de codificação atual.
  14. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a comparação da segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência compreende: usar uma janela deslizante para comparar a primeira medição para um primeiro conjunto de quadros no fluxo de codificação de referência e com a segunda medição para um primeiro conjunto de quadros correspondente no fluxo de codificação atual.
  15. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que a janela deslizante é movida para comparar a primeira medição para diferentes conjuntos de quadros no fluxo de codificação de referência e com a segunda medição para conjuntos diferentes de quadros correspondentes no fluxo de codificação atual.
  16. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que informar se o fluxo de codificação atual é validado compreende: contar um número de falhas ao comparar a primeira medição para conjuntos de quadros no fluxo de codificação de referência e a segunda medição para conjuntos de quadros correspondentes no fluxo de codificação atual e informar um resultado para se o fluxo de codificação atual é validado com base no número de falhas.
  17. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que informar se o fluxo de codificação atual é validado compreende: identificar localmente um ou mais quadros em que é determinado que ocorreram erros de codificação no fluxo de codificação de referência com base na comparação.
  18. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que informar se o fluxo de codificação atual é validado compreende: determinar um parâmetro de codificação ajustado para codificar de novo um ou mais quadros do fluxo de codificação atual.
  19. Meio de armazenamento legível por computador não transitório, caracterizado pelo fato de que contém instruções que, quando executadas, controlam um sistema de computador para ser operável para: receber um fluxo de codificação atual de um vídeo; selecionar uma primeira medição para um fluxo de codificação de referência para medir uma qualidade do fluxo de codificação de referência; comparar uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência e informar se o fluxo de codificação atual é validado com base na comparação.
  20. Aparelho, caracterizado pelo fato de que compreende: um ou mais processadores de computador e um meio de armazenamento legível por computador não transitório compreendendo instruções que, quando executadas, controlam o um ou mais processadores de computador para serem operáveis para: receber um fluxo de codificação atual de um vídeo; selecionar uma primeira medição para um fluxo de codificação de referência para medir uma qualidade do fluxo de codificação de referência; comparar uma segunda medição do fluxo de codificação atual com a primeira medição do fluxo de codificação de referência e informar se o fluxo de codificação atual é validado com base na comparação.
BR102022002344-1A 2021-03-31 2022-02-08 Validação cruzada de codificação de vídeo BR102022002344A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/218,888 2021-03-31
US17/218,888 US11622116B2 (en) 2021-03-31 2021-03-31 Cross-validation of video encoding

Publications (1)

Publication Number Publication Date
BR102022002344A2 true BR102022002344A2 (pt) 2022-10-04

Family

ID=80930054

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102022002344-1A BR102022002344A2 (pt) 2021-03-31 2022-02-08 Validação cruzada de codificação de vídeo

Country Status (5)

Country Link
US (1) US11622116B2 (pt)
EP (1) EP4068779A1 (pt)
JP (1) JP7342166B2 (pt)
KR (1) KR20220136102A (pt)
BR (1) BR102022002344A2 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230247205A1 (en) * 2022-01-31 2023-08-03 Sling TV L.L.C. Bandwidth management using dynamic quality factor adjustments
US20240251138A1 (en) * 2023-01-23 2024-07-25 T-Mobile Usa, Inc. Reference video quality measurement feedback

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484148B1 (ko) 2002-07-27 2005-04-18 삼성전자주식회사 개선된 비트율 제어 방법과 그 장치
US8582647B2 (en) * 2007-04-23 2013-11-12 Qualcomm Incorporated Methods and systems for quality controlled encoding
US8520075B2 (en) 2011-06-02 2013-08-27 Dialogic Inc. Method and apparatus for reduced reference video quality measurement
TWI549496B (zh) * 2014-05-08 2016-09-11 宏碁股份有限公司 行動電子裝置以及視訊補償方法
US11064204B2 (en) 2014-05-15 2021-07-13 Arris Enterprises Llc Automatic video comparison of the output of a video decoder
US20150334386A1 (en) 2014-05-15 2015-11-19 Arris Enterprises, Inc. Automatic video comparison of the output of a video decoder
WO2018140158A1 (en) * 2017-01-30 2018-08-02 Euclid Discoveries, Llc Video characterization for smart enconding based on perceptual quality optimization
US10917644B2 (en) * 2017-02-23 2021-02-09 Netflix, Inc. Iterative techniques for encoding video content
US10616590B1 (en) * 2018-05-16 2020-04-07 Amazon Technologies, Inc. Optimizing streaming video encoding profiles
US11695978B2 (en) * 2018-07-05 2023-07-04 Mux, Inc. Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
WO2020043280A1 (en) 2018-08-29 2020-03-05 Telefonaktiebolaget Lm Ericsson (Publ) Image fidelity measure
US11234034B2 (en) * 2018-11-02 2022-01-25 Netflix, Inc. Techniques for encoding a media title via multiple encoders
US10880354B2 (en) * 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US10841356B2 (en) * 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations

Also Published As

Publication number Publication date
US20220321892A1 (en) 2022-10-06
JP2022158941A (ja) 2022-10-17
KR20220136102A (ko) 2022-10-07
US11622116B2 (en) 2023-04-04
JP7342166B2 (ja) 2023-09-11
EP4068779A1 (en) 2022-10-05

Similar Documents

Publication Publication Date Title
US11363322B2 (en) Optimization of encoding profiles for media streaming
US11277620B1 (en) Adaptive transcoding of profile ladder for videos
BR102022002344A2 (pt) Validação cruzada de codificação de vídeo
US11218663B2 (en) Video chunk combination optimization
KR101569510B1 (ko) 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버
US9674100B2 (en) Dynamic adjustment to multiple bitrate algorithm based on buffer length
US11025987B2 (en) Prediction-based representation selection in video playback
CA3057894C (en) Video compression using down-sampling patterns in two phases
US20210152882A1 (en) Dynamic Multi-Content Delivery Network Selection During Video Playback
US9247315B2 (en) Disabling of multiple bitrate algorithm for media programs while playing advertisements
US9942582B2 (en) Dynamic seeking in video delivery systems
EP4171037A1 (en) Dynamic parameter adjustment for adaptive bitrate algorithm
Wilk et al. VAS: A video adaptation service to support mobile video
US11140060B2 (en) Dynamic variation of media segment durations for optimization of network round trip times
US20240212118A1 (en) Quality measurement between mismatched videos

Legal Events

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