BR112017018552B1 - aproximação para remodelagem de sinal - Google Patents

aproximação para remodelagem de sinal Download PDF

Info

Publication number
BR112017018552B1
BR112017018552B1 BR112017018552A BR112017018552A BR112017018552B1 BR 112017018552 B1 BR112017018552 B1 BR 112017018552B1 BR 112017018552 A BR112017018552 A BR 112017018552A BR 112017018552 A BR112017018552 A BR 112017018552A BR 112017018552 B1 BR112017018552 B1 BR 112017018552B1
Authority
BR
Brazil
Prior art keywords
lut
function
adaptive
remodeling
video
Prior art date
Application number
BR112017018552A
Other languages
English (en)
Other versions
BR112017018552A2 (pt
Inventor
Su Guan-Ming
Chou Hsuan-Ting
Kamballur Kottayil Navaneeth
Wang Qiuwei
Original Assignee
Dolby Laboratories Licensing Corp
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 Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Publication of BR112017018552A2 publication Critical patent/BR112017018552A2/pt
Publication of BR112017018552B1 publication Critical patent/BR112017018552B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/1887Methods 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 variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/179Methods 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 scene or a shot
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing 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 for generating different versions
    • 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/47205End-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 manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

aproximação para remodelagem de sinal a presente invenção refere-se a valores estatísticos que são calculados com base em imagens de origem recebidas. uma função de remodelagem adaptativa é selecionada para uma ou mais imagens de origem, com base nos um ou mais valores estatísticos. uma porção de conteúdo de vídeo de origem é remodelada de maneira adaptativa, com base na função de remodelagem adaptativa selecionada, para gerar uma porção de conteúdo de vídeo remodelado. a porção de conteúdo de vídeo de origem é representada pelas uma ou mais imagens de origem. uma aproximação de um inverso da função de remodelagem adaptativa é selecionada. o conteúdo de vídeo remodelado e um conjunto de parâmetros de remodelagem adaptativa que definem a aproximação do inverso da função de remodelagem adaptativa selecionada são codificados um sinal de vídeo remodelado. o sinal de vídeo remodelado pode ser processado por um dispositivo receptor a jusante para gerar uma versão de imagens de origem reconstruída, por exemplo, para apresentação em um dispositivo de exibição.

Description

APROXIMAÇÃO PARA REMODELAGEM DE SINAL
REFERÊNCIA REMISSIVA A PEDIDOS CORRELATOS [001]A presente invenção reivindica o benefício do pedido de patente provisório US n° 62/136.402, depositado em 20 de março de 2015, e do pedido de patente provisório US n° 62/199.391, depositado em 31 de julho de 2015, que estão aqui incorporados a título de referência em sua totalidade.
TECNOLOGIA [002]A presente invenção refere-se, de modo geral, ao processamento de imagens e, em particular, à codificação, decodificação e representação de dados de vídeo.
ANTECEDENTES [003]Dados de vídeo, conforme fornecidos por dispositivos a montante para dispositivos a jusante, podem suportar uma variedade de faixas dinâmicas, espaços de cor, etc. As faixas dinâmicas podem variar de níveis de brilho de 10.000 candelas por metro quadrado (10.000 nits), 12.000 candelas por metro quadrado (12.000 nits), ou ainda mais em um alto padrão, a níveis de brilho de 100 candelas por metro quadrado (100 nits), 300 candelas por metro quadrado (300 nits), 600 candelas por metro quadrado (600 nits), etc., em um baixo padrão. Os espaços de cor podem incluir, sem limitação, espaços de cor lineares, espaços de cor não lineares, espaços de cor perceptualmente quantizados, etc.
[004]Além disso, metadados relacionados a parâmetros operacionais usados para codificação de dados de vídeo por dispositivos a montante podem ser necessários para que os dispositivos a montante gerem parâmetros operacionais usados para a decodificação de sinais de vídeo gerados pelos dispositivos a montante. A quantidade de metadados que os dispositivos a jusante necessitariam para operações de codificação de qualidade relativamente alta poderia ser muito grande para serem transmitidos a e/ou processados por muitos dos dispositivos a montante.
Petição 870170063697, de 29/08/2017, pág. 11/108
2/67 [005]As abordagens descritas nesta seção são abordagens que poderiam ser buscadas, mas não necessariamente abordagens que foram previamente concebidas ou buscadas. Portanto, exceto onde indicado em contrário, não deverá ser considerado que qualquer uma das abordagens descritas nesta seção se qualifica como uma técnica anterior em virtude de sua inclusão nesta seção. De maneira similar, os problemas identificados em relação a uma ou mais abordagens não devem ser tomados como sendo reconhecidos em qualquer técnica anterior, com base nessa seção, exceto onde indicado em contrário.
BREVE DESCRIÇÃO DOS DESENHOS [006]A presente invenção é ilustrada a título de exemplo, e não a título de limitação, nas figuras dos desenhos em anexo, e nas quais números de referência similares se referem a elementos similares, e nos quais:
[007]A Figura 1A ilustra um codificador de vídeo;
[008]A Figura 1B ilustra um decodificador de vídeo;
[009]A Figura 2 ilustra um método exemplificador de aproximação de uma função de remodelagem;
[010]As Figuras 3A e 3B ilustram fluxos de processamento exemplificadores para aproximação de uma LUT (tabela de pesquisa) alvo;
[011]As Figuras de 4A a 4C ilustram algoritmos exemplificadores para classificação de imagens;
[012]As Figuras 5A e 5B ilustram fluxos de processamento exemplificadores para remodelagem de maneira adaptativa e mapeamento inverso; e [013]A Figura 6 ilustra uma plataforma de hardware exemplificadora na qual um computador ou um dispositivo de computação, conforme descrito na presente invenção, pode ser implementado.
DESCRIÇÃO DAS MODALIDADES EXEMPLIFICADORAS [014]Modalidades exemplificadoras relacionadas à codificação, decodificaPetição 870170063697, de 29/08/2017, pág. 12/108
3/67 ção e representação de dados de vídeo são aqui descritas. Na descrição a seguir, para fins de explicação, numerosos detalhes específicos são apresentados, a fim de se fornecer um entendimento completo da presente invenção. Será aparente, entretanto, que a presente invenção pode ser praticada sem estes detalhes específicos. Em outros casos, estruturas e dispositivos bem conhecidos não são descritos em detalhes exaustivos, para evitar confundir ou obscurecer desnecessariamente a presente invenção.
[015]Modalidades exemplificadoras são aqui descritas de acordo com o seguinte esquema:
1. VISÃO GERAL
2. CODIFICAÇÃO DE CONTEÚDO DE VÍDEO REMODELADO DE MANEIRA ADAPTATIVA
3. DECODIFICAÇÃO DE CONTEÚDO DE VÍDEO REMODELADO DE MANEIRA ADAPTATIVA
4. FUNÇÕES DE POTÊNCIA PARA REMODELAGEM ADAPTATIVA
5. FUNÇÕES DE APROXIMAÇÃO RELACIONADAS À REMODELAGEM ADAPTATIVA
6. EXEMPLO DE FLUXOS DE PROCESSAMENTO
7. OTIMIZAÇÕES EM TEMPO REAL
8. MECANISMOS DE IMPLEMENTAÇÃO - VISÃO GERAL DO HARDWARE
9. EQUIVALENTES, EXTENSÕES, ALTERNATIVAS E OUTROS
1. Visão geral [016]Esta visão geral apresenta uma descrição básica de alguns aspectos de uma modalidade exemplificadora da presente invenção. Deve-se observar que essa visão geral não é um resumo extenso e exaustivo de aspectos da modalidade exemplificadora. Além disso, deve-se observar que esta visão geral não se destina a ser entendida como identificando quaisquer aspectos ou elementos particularmente signiPetição 870170063697, de 29/08/2017, pág. 13/108
4/67 ficativos da modalidade exemplificadora, nem como uma descrição de qualquer escopo da modalidade exemplificadora específica, nem da invenção de modo geral. Esta visão geral apresenta simplesmente alguns conceitos que se referem à modalidade exemplificadora em formato condensado e simplificado, e deve ser entendida como um mero prelúdio conceitual para uma descrição mais detalhada das modalidades exemplificadoras que segue abaixo.
[017]Sem o uso de remodelagem adaptativa, como descrito aqui, um codec de vídeo atribui palavras-código a uma profundidade de bit relativamente baixa (por exemplo, sinais de vídeo de 8 bits em dois canais, sinais de vídeo de 10 bits em um canal único, etc.) podendo dessa forma não preservar os detalhes visuais do conteúdo do vídeo de origem (por exemplo, um conteúdo de vídeo codificado por referência, conteúdo de vídeo codificado por referência a PQ (quantizador perceptual), etc.) originalmente codificado com palavras-código disponíveis a uma profundidade relativamente alta. Por exemplo, um codec (por exemplo, um codec de gama-domínio, etc.), que não utiliza remodelagem adaptativa, como descrito aqui, pode superalocar palavras-código para subfaixas de alta luminância (por exemplo, porções claras, realces, etc.) e subalocar palavras-código para uma subfaixa de baixa luminância (por exemplo, porções escuras, áreas escuras, etc.). Como resultado, os detalhes visuais do conteúdo do vídeo de origem perceptualmente codificado podem ser desnecessariamente perdidos com o uso dessas outras técnicas.
[018]Um codec de vídeo que implementa técnicas de remodelagem adaptativa, conforme descrito na presente invenção, aloca palavras-código disponíveis a uma profundidade específica de bit (por exemplo, 8 bits, etc.) de uma forma que preserva os detalhes visuais em uma ampla variedade de conteúdos de vídeo de origem. Em algumas modalidades, um codec de vídeo seleciona/determina valores de parâmetro específicos (por exemplo, valores exponenciais em funções de potência, coeficientes angulares em quantização linear, pivôs em quantização linear por partes,
Petição 870170063697, de 29/08/2017, pág. 14/108
5/67 etc.) com base em resultados de análise do conteúdo de imagem transferido por quadros de imagem (por exemplo, em uma cena, etc.) no conteúdo do vídeo de origem. Se o conteúdo de imagem compreende mais porções em realce ou mais níveis de luminância, os valores de parâmetro podem ser selecionados/determinados para fazer com que mais níveis de luminância representados na subfaixa de alta luminância estejam disponíveis para as operações de codificação e decodificação. Se o conteúdo de imagem compreende menos porções em realce ou menos níveis de luminância, os valores de parâmetro podem ser selecionados/determinados para fazer com que menos níveis de luminância representados na subfaixa de alta luminância estejam disponíveis para as operações de codificação e decodificação. De modo similar, se o conteúdo de imagem compreende mais porções escuras ou mais níveis de luminância, o parâmetro pode ser selecionado/determinado para fazer com que mais níveis de luminância representados na subfaixa de baixa luminância estejam disponíveis para operações de codificação ou decodificação. Se o conteúdo de imagem compreende menos porções escuras ou menos níveis de luminância, os valores de parâmetro podem ser selecionados/determinados para fazer com que menos níveis de luminância representados na subfaixa de baixa luminância estejam disponíveis para as operações de codificação e decodificação.
[019]As técnicas aqui descritas podem ser usadas para suportar operações de codificação (por exemplo, codificação, decodificação, transcodificação, etc.) para sinais de vídeo (por exemplo, fluxos de bits (bitstreams) codificados, etc.) que compreendem uma única camada, ou mais de uma camada (por exemplo, duas camadas, múltiplas camadas, uma combinação de uma camada base e uma ou mais camadas de aprimoramento, etc.). Essas técnicas podem ser implementadas por software, hardware, uma combinação de software e hardware, e podem ser adotadas por uma variedade de dispositivos de computação, dispositivos multimídia, dispositivos móveis, etc. Ao menos algumas das técnicas podem ser reunidas sob a forma de
Petição 870170063697, de 29/08/2017, pág. 15/108
6/67 um ou mais perfis de características técnicas (por exemplo, um perfil móvel, um perfil de tablet, um perfil de sistema de entretenimento doméstico, etc.), que podem ser liberados, de forma independente ou combinada, a outros fornecedores, desenvolvedores, fabricantes, etc.
[020]Um codec de vídeo que implementa as técnicas descritas aqui, para remodelagem adaptativa do sinal de vídeo, pode ser usado para suportar um ou mais aplicativos de vídeo retrocompatíveis, aplicativos de vídeo não retrocompatíveis, etc. Exemplos de sistemas com tal codec de vídeo podem incluir, mas não se limitam apenas a qualquer um dentre: um codec de 12 bits de camada única, um codec de 8 bits de camada dupla, um codec de múltiplas camadas, um codec de remodelagem não retrocompatível, um codec retrocompatível, um codec que implementa um conjunto de configurações/requisitos/opções em codificação avançada de vídeo (AVC), um codec que implementa um conjunto de configurações/requisitos/opções em codificação de vídeo de alta eficiência (HEVC), etc.
[021]Alguns exemplos de codecs de remodelagem não retrocompatíveis são descritos no pedido de patente PCT/US2014/031716, depositado em 25 de março de 2014, de propriedade do cessionário do presente pedido, estando o conteúdo do mesmo aqui incorporado a título de referência para todos os propósitos como se totalmente apresentado aqui. Alguns exemplos de codecs de remodelagem retrocompatíveis são descritos no pedido de patente PCT/US2012/062932, depositado em 1 de novembro de 2012, de propriedade do cessionário do presente pedido, estando o conteúdo do mesmo aqui incorporado a título de referência para todos os propósitos como se totalmente apresentado aqui.
[022]Em algumas modalidades, um sistema codec conforme descrito aqui implementa um método de aproximação de curva para aproximar uma função de remodelagem arbitrária, com o uso de um número limitado de polinômios que minimizam um erro global máximo. Adicional, opcional ou alternativamente, o sistema
Petição 870170063697, de 29/08/2017, pág. 16/108
7/67 de codec pode implementar um algoritmo de seleção de parâmetro adaptativo para determinar ou escolher os parâmetros de remodelagem adaptativa usados em conjunto com a função de remodelagem, para se obter uma qualidade perceptual melhor do que a que seria possível de outro modo.
[023]Um pacote de vídeo de origem para um programa de mídia pode ter um tamanho de arquivo relativamente grande, já que o pacote de vídeo de origem pode compreender um conteúdo de vídeo de origem com resolução espacial relativamente alta (por exemplo, 4k, 8k, etc.), uma faixa dinâmica relativamente grande, e gamut de cores relativamente amplo. Em algumas modalidades, o conteúdo do vídeo de origem que foi codificado em um sinal de vídeo com profundidade de bit relativamente alta (por exemplo, um sinal de vídeo de 12 bits, um sinal de vídeo de 14+ bits, etc.) pode ser transcodificado em um conteúdo de vídeo codificado com um tamanho muito menor, com base, ao menos em parte, em remodelagem adaptativa de sinal.
[024]Por exemplo, o conteúdo de origem pode ser codificado em um sinal de vídeo PQ de 12 bits, com palavras-código de origem que correspondem a valores relacionados a luminância ou valores relacionados a croma (por exemplo, fixas, remodeladas de maneira não adaptativa, etc.) de imagem a imagem, de cena a cena, de programa de mídia a programa de mídia, etc.
[025]O termo PQ, como usado aqui, refere-se à quantização perceptual da amplitude de luminância. O sistema visual humano responde a níveis crescentes de luz de uma forma bastante não linear. A capacidade humana de ver um estímulo é afetada pela luminância daquele estímulo, pelo tamanho do estímulo, pelas frequências espaciais que compõem o estímulo, e pelo nível de luminância ao qual os olhos se adaptam no momento específico em que o estímulo é visto. Em uma modalidade, uma função do quantizador perceptual mapeia os níveis de cinza de entrada linear para produzir níveis de cinza que melhor correspondam a limiares de sensibilidade de contraste no sistema
Petição 870170063697, de 29/08/2017, pág. 17/108
8/67 visual humano. Funções de mapeamento por PQ (ou EOTFs) exemplificadoras são descritas em SMPTE ST 2084:2014 High Dynamic Range EOTF of Mastering Reference Displays, que está aqui integralmente incorporado, por referência, onde dado um tamanho fixo de estímulo para cada nível de luminância (isto é, o nível de estímulo), um estágio mínimo de contraste visível naquele nível de luminância é selecionado, de acordo com o nível de adaptação mais sensível e com a frequência espacial mais sensível (de acordo com modelos HVS). Em comparação com a curva gama tradicional, que representa a curva de resposta de um dispositivo físico de tubo de raios catódicos (CRT) e que pode, coincidentemente, ter uma similaridade muito aproximada em relação a como o sistema visual humano responde, uma curva PQ imita a verdadeira resposta visual do sistema visual humano usando um modelo funcional relativamente simples.
[026]O conteúdo de origem codificado no sinal de vídeo PQ de 12 bits pode ter uma faixa dinâmica relativamente alta, como uma faixa dinâmica de até 12.000 nits, etc. Em contrapartida, o conteúdo de vídeo codificado pode ser codificado em um sinal de vídeo de 10 bits com palavras-código remodeladas de maneira adaptativa, que não correspondem necessariamente a valores fixos relacionados à luminância ou relacionados à croma, de imagem a imagem, de cena a cena, de programa de mídia a programa de mídia, etc. As palavras-código remodeladas de maneira adaptativa em um espaço de palavra-código de 10 bits podem ser (por exemplo, de maneira adaptativa) mapeadas nas palavras-código de origem em um espaço de palavra-código de 12 bits, com base em uma função de remodelagem adaptativa que pode variar de imagem a imagem, de cena a cena, de programa de mídia a programa de mídia, etc. Como resultado, o conteúdo de vídeo codificado, enquanto é codificado em um sinal de 10 bits, pode suportar uma faixa dinâmica relativamente alta, mesmo até a faixa dinâmica completa suportada pelo conteúdo do vídeo de origem, que é codificado em um sinal de 12 bits. A função de remodelagem adaptativa pode ser representada por uma ou mais curvas de quantização, tabelas de pesquisa (LUTs), mapeamentos de palavras-código, etc.
Petição 870170063697, de 29/08/2017, pág. 18/108
9/67 [027]Em algumas modalidades, algumas ou todas as curvas de quantização, tabelas de pesquisa (LUTs), mapeamentos de palavras-código, etc., que representam a função de remodelagem adaptativa usada por um dispositivo a montante para executar a remodelagem adaptativa do sinal do vídeo de origem, podem ser transmitidas como metadados da composição, com o conteúdo de vídeo codificado sendo codificado no sinal de 10 bits do dispositivo a montante (por exemplo, um codificador de vídeo, um transcodificador de vídeo, etc.) direta ou indiretamente para os dispositivos receptores a jusante (por exemplo, um decodificador de vídeo, um transcodificador de vídeo, etc.). A função de remodelagem adaptativa, conforme representada pelas curvas de quantização, tabelas de pesquisa (LUTs), mapeamentos de palavras-código, etc., pode ser usada pelos dispositivos receptores a jusante para reconstruir uma versão do conteúdo do vídeo de origem a partir do conteúdo de vídeo codificado. Por exemplo, as palavras-código remodeladas de maneira adaptativa no conteúdo de vídeo codificado podem ser mapeadas de modo inverso, com base na função de remodelagem adaptativa ou um inverso da mesma, em um conjunto de palavras-código (por exemplo, em um espaço de palavras-código de 12 bits, etc.) equivalente às palavras-código de origem que estavam no conteúdo do vídeo de origem.
[028]Os metadados de composição, que incluem uma representação da função de remodelagem adaptativa, podem ser grandes demais para serem transmitidos e/ou processados por dispositivos a jusante. Dispositivos a jusante com dificuldades para processar quantidades relativamente grandes de metadados (por exemplo, relacionadas a processamento de vídeo, como metadados de composição, etc.) podem incluir, mas não se limitam apenas a qualquer um dentre: dispositivos móveis, dispositivos compactos, dispositivos de computação com recursos relativamente limitados para processamento de vídeo, dispositivos de computação que incorporam módulos de sistema em chip (SoC) com recursos relativamente limitados para processamento de
Petição 870170063697, de 29/08/2017, pág. 19/108
10/67 vídeo, dispositivos de computação que incorporam formatos de sinal de vídeo, implementações, designs, hardware, software, firmware, etc., que suportam a transmissão/recepção de quantidades de metadados relativamente pequenas, etc.
[029]Com o uso das técnicas descritas aqui, uma função de remodelagem adaptativa pode ser aproximada através de um número limitado de funções matemáticas simples, como polinômios, segmentos lineares por partes (PWL), etc. Em uma modalidade exemplificadora não limitadora, uma função de remodelagem adaptativa é aproximada através de um número limitado (por exemplo, 4, 8, 12, um número inteiro positivo diferente e maior que um, etc.) de funções polinomiais (por exemplo, linear, 2a ordem, etc.), com um número limitado de bits para cada coeficiente e com erros de aproximação minimizados. A minimização de erros de aproximação na aproximação da função de remodelagem adaptativa com o número limitado de funções polinomiais leva à minimização de erros no mapeamento inverso, que é executado com base na aproximação da função de remodelagem adaptativa com o número limitado de funções polinomiais.
[030]A remodelagem adaptativa pode ser executada em vários sinais de vídeo e/ou conteúdo de vídeo de muitas formas diferentes. Em particular, as técnicas aqui descritas são aplicáveis para a aproximação de qualquer função de remodelagem adaptativa, incluindo, mas não de limitando a uma LUT arbitrária.
[031]Em algumas modalidades exemplificadoras, mecanismos como os aqui descritos fazem parte de um sistema de processamento de mídia, incluindo, mas não se limitando a qualquer um dentre: um dispositivo portátil, uma máquina de jogos, uma televisão, um laptop, um netbook, um tablet, um telefone celular, um leitor de livros digitais, um terminal de ponto de vendas (POS), um computador de mesa, um quiosque de computador (autoatendimento), ou vários outros tipos de terminais e unidades de processamento de mídia.
[032]Várias modificações das modalidades preferenciais e dos princípios e rePetição 870170063697, de 29/08/2017, pág. 20/108
11/67 cursos genéricos aqui descritos serão prontamente evidentes aos versados na técnica. Dessa forma, a revelação não pretende se limitar às modalidades mostradas, mas deve concordar com o escopo mais amplo, consistente com os princípios e recursos aqui descritos.
2. Codificação de conteúdo de vídeo remodelado de maneira adaptativa [033]A Figura 1A ilustra um codificador de vídeo exemplificador 102 que pode ser usado como um dispositivo a montante para fornecer um sinal de vídeo de saída (ou um sinal de vídeo remodelado) codificado com o conteúdo de vídeo remodelado de maneira adaptativa para dispositivos a jusante (um deles podendo ser, por exemplo, um decodificador de vídeo 152 da Figura 1B, etc.). O codificador de vídeo (102) pode ser implementado a um ou mais dispositivos de computação. Em algumas modalidades, o codificador de vídeo (102) compreende um decodificador de conteúdo de origem 104, um remodelador de conteúdo adaptativo 106, um codificador de conteúdo remodelado 108, etc.
[034]Em algumas modalidades, o decodificador de conteúdo de origem (104) compreende um software, hardware, uma combinação de hardware e software, etc., configurados para receber um ou mais sinais de vídeo de origem (por exemplo, fluxos de bits codificados, etc.), e decodificar os sinais de vídeo de origem em um conteúdo de vídeo de origem. Em algumas modalidades, o conteúdo de vídeo de origem é decodificado a partir de um sinal de vídeo de camada única, codificado com o conteúdo de vídeo de origem em uma camada única. Em algumas modalidades, o conteúdo de vídeo de origem é decodificado a partir de um sinal de vídeo codificado de múltiplas camadas, codificado com o conteúdo de vídeo de origem em mais de uma camada (por exemplo, uma camada base e uma ou mais camadas de aprimoramento, etc.).
[035]Em algumas modalidades, o remodelador de conteúdo adaptativo (106) compreende um software, hardware, uma combinação de software e hardware, etc.,
Petição 870170063697, de 29/08/2017, pág. 21/108
12/67 configurados para executar operações de remodelagem adaptativa no conteúdo de vídeo de origem para gerar um conteúdo de vídeo remodelado. Um ou ambos dentre o conteúdo de vídeo de origem ou o conteúdo remodelado podem ser usados em um ou mais dentre aplicativos de vídeo com compatibilidade retroativa (BC), aplicativos de vídeo sem compatibilidade retroativa (NBC), etc.
[036]Em algumas modalidades, o remodelador de conteúdo adaptativo (106) é configurado para selecionar e aplicar uma função de remodelagem, para remodelar palavras-código de origem em uma ou mais imagens, uma ou mais cenas, etc., representadas no conteúdo de vídeo de origem em palavras-código remodeladas, em uma ou mais imagens correspondentes, uma ou mais cenas correspondentes, etc., representadas no conteúdo de vídeo remodelado. Segundo as técnicas aqui descritas, a seleção da função de remodelagem e/ou dos parâmetros de remodelagem adaptativa usados na função de remodelagem é feita de modo adaptativo, com base no conteúdo real das imagens, cenas, etc., conforme representado no conteúdo de vídeo de origem. Adicional, opcional ou alternativamente, a seleção da função de remodelagem e/ou dos parâmetros de remodelagem adaptativa usados na função de remodelagem pode ser feita de maneira adaptativa, enquanto essas imagens, cenas, etc., estão sendo processadas pelo codificador de vídeo (102).
[037]O remodelador de conteúdo adaptativo (106) pode, mas não se limita a ser configurado para usar funções de potência direta, como funções de remodelagem. O remodelador de conteúdo adaptativo (106) pode ser configurado para determinar se uma imagem contém grandes áreas claras suaves, grandes áreas negras escuras, etc., se uma imagem é uma imagem de meio-tom, etc. Com base nessa determinação, parâmetros de remodelagem adaptativa, como valores exponenciais das funções de potência direta, etc., podem ser selecionados.
[038]Em algumas modalidades, o remodelador de conteúdo adaptativo (106) aplica operações de remodelagem adaptativa em palavras-código de origem no contePetição 870170063697, de 29/08/2017, pág. 22/108
13/67 údo de vídeo de origem diretamente, com base em uma função de remodelagem adaptativa selecionada com parâmetros selecionados de remodelagem adaptativa.
[039]Em algumas modalidades, uma função de remodelagem adaptativa pode ser representada por uma LUT que compreende uma pluralidade de registros, onde cada um deles mapeia uma palavra-código de origem em um conjunto de palavras-código de origem disponíveis, usadas para codificar o conteúdo de vídeo de origem para uma palavra-código remodelada em um conjunto disponível de palavras-código remodeladas usado para codificar o conteúdo de vídeo remodelado. Uma primeira LUT usada para remodelar uma ou mais primeiras imagens no conteúdo de vídeo de origem pode ser diferente de uma segunda LUT usada para remodelar uma ou mais segundas imagens no conteúdo de vídeo de origem. Em algumas modalidades, o conjunto de palavras-código de origem disponível pode permanecer igual tanto para as primeiras imagens como para as segundas imagens. Por exemplo, se o remodelador de conteúdo adaptativo (106) determinar que as primeiras imagens são imagens claras suaves, então a LUT, ou a função de remodelagem adaptativa que a LUT representa, pode ter um número relativamente grande de palavras-código remodeladas disponíveis correspondendo a valores de luminância clara. Como resultado, artefatos como contornos/faixas podem ser reduzidos ou evitados, mesmo quando o conteúdo de vídeo remodelado for codificado em um sinal de vídeo remodelado (por exemplo, sinal de vídeo de 8 bits em duas camadas, sinal de vídeo de 10 bits em camada única, etc.) com uma profundidade de bit menor que um sinal de vídeo de origem (por exemplo, sinal de vídeo de 12 bits, sinal de vídeo de 14+ bits, etc.). Por outro lado, se o remodelador de conteúdo adaptativo (106) determinar que as segundas imagens são imagens escuras suaves (mas não uma imagem preta pura), então a LUT ou a função de remodelagem adaptativa que a LUT representa, pode ter um número relativamente grande de palavras-código remodeladas disponíveis que correspondem a valores de luminânPetição 870170063697, de 29/08/2017, pág. 23/108
14/67 cia escura. Como resultado, os detalhes da imagem em áreas escuras podem ser preservados no conteúdo de vídeo remodelado codificado no sinal de vídeo remodelado. Em algumas modalidades, o remodelador de conteúdo adaptativo (106) aplica operações de remodelagem adaptativa a palavras-código de origem no conteúdo de vídeo de origem baseado em uma LUT, sendo que a LUT pode ser gerada com base em uma função de remodelagem adaptativa selecionada, ou a própria LUT pode ser considerada como uma função de remodelagem adaptativa selecionada.
[040]Em algumas modalidades, o remodelador de conteúdo adaptativo (106) determina uma aproximação de uma LUT (alvo) que representa, ou que é equivalente a, uma função de remodelagem. Por exemplo, o remodelador de conteúdo adaptativo (106) pode, mas não se limita apenas a, se aproximar da LUT através de polinômios com coeficientes especificamente determinados, para minimizar erros entre o mapeamento representado pelos polinômios e o mapeamento representado pela LUT alvo. Em algumas modalidades, o remodelador de conteúdo adaptativo (106) aplica operações de remodelagem adaptativa a palavras-código de origem no conteúdo de vídeo de origem com base em polinômios que se aproximam da LUT alvo, ou uma função de remodelagem representada pela LUT.
[041]Independentemente do modo como o codificador de vídeo (102) pode aplicar as operações de remodelagem adaptativa (por exemplo, com base em uma função de remodelagem, como uma função analítica ou não analítica ou uma função analítica por partes, com base em uma LUT que pode ou não representar uma função analítica, com base em uma aproximação de LUT que pode ou não ser gerada com base em uma função analítica, etc.), o codificador de vídeo (102) pode ser configurado para gerar um ou mais tipos de parâmetros de remodelagem adaptativa e transmitir ao menos um dentre os um ou mais tipos de parâmetros de remodelagem adaptativa para dispositivos receptores a jusante.
[042]Em algumas modalidades, o remodelador de conteúdo adaptativo (106)
Petição 870170063697, de 29/08/2017, pág. 24/108
15/67 é configurado para determinar uma aproximação de LUT (alvo) (ou de LUT com pesquisa invertida (backward LUT)) que represente um inverso de uma função de remodelagem. Metadados de composição que definem a aproximação de LUT alvo e que representam o inverso da função de remodelagem podem ser gerados e transmitidos como parte dos metadados totais transmitidos no sinal de vídeo remodelado pelo codificador de vídeo (102) para dispositivos receptores a jusante, como um decodificador de vídeo 152 da Figura 1B, etc.
[043]Em algumas modalidades, o decodificador de vídeo (152) pode ser configurado para receber ou reconstruir a aproximação de LUT alvo que representa o inverso da função de remodelagem, com base nos metadados de composição decodificados/extraídos do sinal de vídeo remodelado. O decodificador de vídeo (152) pode ser configurado para aplicar operações de mapeamento inverso ao conteúdo de vídeo remodelado originado do codificador de vídeo, na forma decodificada do sinal de vídeo remodelado com o uso da aproximação de LUT alvo, independentemente se o remodelador de conteúdo adaptativo (106) aplica operações de remodelagem adaptativa às palavras-código de origem no conteúdo de vídeo de origem com base em uma função de remodelagem, ou alternativamente, com base em uma LUT com pesquisa direta que representa a função de remodelagem, ou alternativamente, com base em uma aproximação de LUT com pesquisa direta.
[044]Adicional, opcional ou alternativamente, em algumas modalidades, o remodelador de conteúdo adaptativo (106) é configurado para gerar metadados de composição que definem uma LUT alvo que representa o inverso de uma função de remodelagem, e transmitir os metadados de composição como parte dos metadados totais transmitidos no sinal de vídeo remodelado pelo codificador de vídeo (102) para dispositivos receptores a jusante, como um decodificador de vídeo 152 da Figura 1B, etc. Em algumas modalidades, o decodificador de vídeo (152) pode ser configurado para receber ou reconstruir a LUT alvo com base nos metadados de composição
Petição 870170063697, de 29/08/2017, pág. 25/108
16/67 decodificados/extraídos a partir do sinal de vídeo remodelado. O decodificador de vídeo (152) pode ser configurado para aplicar operações de mapeamento inverso ao conteúdo de vídeo remodelado originado do codificador de vídeo, na forma decodificada do sinal de vídeo remodelado com o uso da LUT alvo, independentemente se o remodelador de conteúdo adaptativo (106) aplica operações de remodelagem adaptativa às palavras-código de origem no conteúdo de vídeo de origem com base em uma função de remodelagem, ou alternativamente, com base em uma LUT com pesquisa direta que representa a função de remodelagem, ou alternativamente, com base em uma aproximação de LUT com pesquisa direta.
[045]Adicional, opcional ou alternativamente, em algumas modalidades, o remodelador de conteúdo adaptativo (106) é configurado para gerar metadados de composição que definem um inverso de uma função de remodelagem, e transmitir os metadados de composição como parte dos metadados totais transmitidos no sinal de vídeo remodelado pelo codificador de vídeo (102) para dispositivos receptores a jusante, como um decodificador de vídeo 152 da Figura 1B, etc. Em algumas modalidades, o decodificador de vídeo (152) pode ser configurado para receber ou reconstruir o inverso da função de remodelagem com base nos metadados de composição decodificados/extraídos a partir do sinal de vídeo remodelado. O decodificador de vídeo (152) pode ser configurado para aplicar operações de mapeamento inverso ao conteúdo de vídeo remodelado originado do codificador de vídeo, na forma decodificada do sinal de vídeo remodelado com o uso do inverso da função de remodelagem, independentemente se o remodelador de conteúdo adaptativo (106) aplica operações de remodelagem adaptativa às palavras-código de origem no conteúdo de vídeo de origem com base em uma função de remodelagem, ou alternativamente, com base em uma LUT com pesquisa direta que representa a função de remodelagem, ou alternativamente, com base em uma aproximação de LUT com pesquisa direta.
[046]Em algumas modalidades, o codificador de conteúdo remodelado (108)
Petição 870170063697, de 29/08/2017, pág. 26/108
17/67 compreende um software, hardware, uma combinação de software e hardware, etc., configurados para codificar o conteúdo de vídeo remodelado em um sinal de vídeo remodelado (por exemplo, um sinal de vídeo de 8 bits em duas camadas, codificado com o sinal de vídeo remodelado, um sinal de vídeo de 10 bits em camada única, codificado com o sinal de vídeo remodelado, etc.). Adicional, opcional ou altemativamente, em algumas modalidades, o codificador de vídeo (102), ou o codificador de conteúdo remodelado nele contido, produz metadados que compreendem alguns ou todos os parâmetros operacionais usados nas operações do codificador de vídeo (102) como parte do sinal de vídeo remodelado para um dispositivo a jusante (por exemplo, um decodificador de vídeo 152 da Figura 1B, etc.). Os parâmetros operacionais nos metadados transmitidos para dispositivos a jusante incluem, mas não se limitam a qualquer um dentre: metadados de composição que compreendem parâmetros de remodelagem adaptativa que definem funções de remodelagem ou inversos das mesmas, metadados de composição que definem LUTs que representam funções de remodelagem ou inversos das mesmas, metadados de composição que definem aproximações de uma ou mais funções de remodelagem ou inversos das funções de remodelagem, um ou mais parâmetros de mapeamento de tons, parâmetros de recorte, valores exponenciais usados em funções de potência para compressão gama, parâmetros de mapeamento inverso, LUTs, valores de pivô em funções lineares por partes (PWL), parâmetros de quantização não linear, parâmetros de quantização não linear (NLQ), etc. Os metadados podem fazer parte de dados transmitidos em camadas contendo conteúdo de vídeo codificado, ou em um subfluxo de bits separado de um fluxo de vídeo total, por exemplo, como parte de informações suplementares de aprimoramento (SEI) ou outros portadores de metadados disponíveis no fluxo de bits de vídeo. Um subfluxo de bits exemplificador pode ser um fluxo de unidade de processamento de referência (RPU) desenvolvido pela Dolby Laboratories, Inc.
[047]Como usado aqui, o termo profundidade de bit refere-se ao número de
Petição 870170063697, de 29/08/2017, pág. 27/108
18/67 bits fornecidos em um espaço de codificação que fornece palavras-código disponíveis para codificar ou quantizar dados de imagem; um exemplo de baixa profundidade de bit é 8 bits; um exemplo de alta profundidade de bit é 12 bits ou mais.
[048]Como usado aqui, o conteúdo de vídeo pode compreender uma sequência de imagens ou quadros. Como usado aqui, uma imagem de origem pode se referir a uma imagem, como uma imagem referente a uma cena captada por um dispositivo de captura de imagem de alto padrão, uma imagem de referência codificada, uma imagem codificada referente a PQ, etc. Uma imagem de origem pode compreender palavras-código disponíveis em um espaço de palavra-código com uma profundidade de bit relativamente grande.
[049]Uma imagem como uma imagem de origem, uma imagem remodelada, uma imagem reconstruída, etc., pode estar em qualquer espaço de cor. Por exemplo, uma imagem de origem pode ser uma um imagem de 12+ bits em um espaço de cor YCbCr, em um espaço de cor RGB, em um espaço de cor XYZ, em um espaço de cor YDzDx, em um espaço de cor IPT, etc. Em um exemplo, cada pixel representado em uma imagem compreende palavras-código para todos os canais (por exemplo, canais RGB, canais luma e croma, canais XYZ, canais YDzDx, canais IPT, etc.) definidos para um espaço de cor (por exemplo, um espaço de cor YCbCr, um espaço de cor RGB, um espaço de cor XYZ, um espaço de cor YDzDx, um espaço de cor IPT, etc.). Cada palavra-código compreende palavras-código sobreamostradas ou subamostradas para um ou mais dentre os canais no espaço de cor. Em uma modalidade exemplificadora, o codificador de vídeo (102) está configurado para executar uma transformação de espaço de cor relacionada a uma imagem em um primeiro espaço de cor (por exemplo, um espaço de cor RGB, etc.) para um segundo espaço de cor diferente (por exemplo, um espaço de cor YCbCr, etc.).
[050]Em uma modalidade exemplificadora, o codificador de vídeo (102) é configurado para subamostrar ou sobreamostrar uma imagem em um primeiro forPetição 870170063697, de 29/08/2017, pág. 28/108
19/67 mato de amostragem (por exemplo, em um formato de amostragem de 4:4:4, etc.) para um segundo formato de amostragem diferente (por exemplo, em um formato de amostragem de 4:2:0, etc.).
[051]Exemplos de um codificador de vídeo que implementa remodelagem de sinal e outras operações inclui, mas não se limita apenas a qualquer um dentre: um ou mais codecs de 12 bits em camada única, um ou mais codecs de 8 bits em duas camadas, um ou mais codecs de múltiplas camadas, um ou mais codecs de remodelagem não retrocompatíveis, um ou mais codecs retrocompatíveis, um ou mais codecs que implementam um conjunto de configurações/requisitos/opções em AVC, um ou mais codecs que implementam um conjunto de configurações/requisitos/opções em HEVC, H.264/AVC/HEVC, MPEG-2, VP8, VC-1, etc.
3. Decodificação de conteúdo de vídeo remodelado de maneira adaptativa [052]A Figura 1B ilustra um decodificador de vídeo exemplificador 152 que pode ser usado como um dispositivo a jusante para processar um sinal de vídeo de entrada (ou um sinal de vídeo remodelado) codificado com o conteúdo de vídeo remodelado de maneira adaptativa a partir de dispositivos a montante (um deles podendo ser, por exemplo, um codificador de vídeo 102 da Figura 1A, etc.). O decodificador de vídeo (152) pode ser implementado a um ou mais dispositivos de computação. Em algumas modalidades, o decodificador de vídeo (152) compreende um decodificador de conteúdo remodelado 154, um mapeador inverso 156, um gerenciador de exibição 158, etc.
[053]Em algumas modalidades, o decodificador de conteúdo remodelado (154) compreende um software, hardware, uma combinação de hardware e software, etc., configurados para receber um ou mais sinais de vídeo de entrada (por exemplo, fluxos de bits codificados, etc.), e decodificar os sinais de vídeo de entrada em um conteúdo de vídeo remodelado. Em algumas modalidades, o conteúdo de vídeo remodelado é decodificado a partir de um sinal de vídeo de camada única (por
Petição 870170063697, de 29/08/2017, pág. 29/108
20/67 exemplo, um sinal de vídeo de 10 bits em canal único, etc.) codificado com o conteúdo de vídeo remodelado em uma camada única. Em algumas modalidades, o conteúdo de vídeo remodelado é decodificado a partir de um sinal de vídeo codificado em múltiplas camadas (por exemplo, um sinal de vídeo codificado em duas camadas), codificado com o conteúdo de vídeo remodelado em mais de uma camada (por exemplo, uma camada de base e uma ou mais camadas de aprimoramento, etc.).
[054]Em algumas modalidades, o mapeador inverso (156) compreende um software, hardware, uma combinação de hardware e software, etc., configurados para executar operações de mapeamento inverso no conteúdo de vídeo remodelado para gerar uma versão reconstruída do conteúdo de vídeo de origem, usado por um dispositivo a montante para gerar um conteúdo de vídeo remodelado. Um ou ambos dentre o conteúdo de vídeo reconstruído ou o conteúdo remodelado podem ser usados em um ou mais dentre aplicativos de vídeo com compatibilidade retroativa (BC), aplicativos de vídeo sem compatibilidade retroativa (NBC), etc.
[055]Em algumas modalidades, uma função de remodelagem foi selecionada de maneira adaptativa por um dispositivo a montante (por exemplo, o codificador de vídeo 102 da Figura 1A, etc.) para remodelar palavras-código de origem em uma ou mais imagens, uma ou mais cenas, etc., representadas no conteúdo de vídeo de origem em palavras-código remodeladas em uma ou mais imagens correspondentes, uma ou mais cenas correspondentes, etc., representadas no conteúdo de vídeo remodelado. Segundo as técnicas aqui descritas, a seleção da função de remodelagem e/ou dos parâmetros de remodelagem adaptativa usados na função de remodelagem é feita de modo adaptativo, com base no conteúdo real das imagens, cenas, etc., conforme representado no conteúdo de vídeo de origem.
[056]Exemplos de funções de remodelagem podem incluir, mas não se limitam apenas a funções de potência direta, etc. Os parâmetros de remodelagem
Petição 870170063697, de 29/08/2017, pág. 30/108
21/67 adaptativa usados em uma função de remodelagem aplicada para remodelar uma imagem no dispositivo a montante podem ser determinados/selecionados pelo dispositivo a montante, com base em se a imagem contém grandes áreas claras suaves, grandes áreas pretas escuras, etc., se uma imagem é uma imagem em meio-tom, etc.
[057]Em algumas modalidades, o conteúdo de vídeo remodelado recebido pelo decodificador de vídeo (152) é gerado através da aplicação, pelo dispositivo a montante, de operações de remodelagem adaptativa em palavras-código de origem no conteúdo de vídeo de origem diretamente, com base em uma função de remodelagem adaptativa com parâmetros selecionados de remodelagem adaptativa.
[058]Em algumas modalidades, o conteúdo de vídeo remodelado recebido pelo decodificador de vídeo (152) é gerado pelo dispositivo a montante com base em uma LUT (por exemplo, uma LUT com pesquisa direta, etc.), que pode ou não ser gerada com base em uma função de remodelagem adaptativa selecionada.
[059]Em algumas modalidades, o conteúdo de vídeo remodelado recebido pelo decodificador de vídeo (152) é gerado pelo dispositivo a montante com base em uma aproximação de LUT (alvo) que representa ou é equivalente a uma função de remodelagem. A aproximação pode ou não ser baseada em polinômios.
[060]Independentemente do modo como o conteúdo de vídeo remodelado recebido pelo decodificador de vídeo (152) é gerado pelo dispositivo a montante, pelo decodificador de vídeo (152), ou pelo mapeador inverso (156) nele contido, ele pode ser configurado para obter parâmetros de remodelagem adaptativa através de decodificação dos metadados de composição que são transmitidos como parte dos metadados transferidos no sinal de vídeo de entrada recebido pelo decodificador de vídeo (152).
[061]Em algumas modalidades, com base nos parâmetros de remodelagem adaptativa decodificados, o mapeador inverso (156) está configurado para determinar
Petição 870170063697, de 29/08/2017, pág. 31/108
22/67 uma aproximação de uma LUT (alvo) (ou de uma LUT com pesquisa invertida) que representa um inverso de uma função de remodelagem (por exemplo, uma função de remodelagem usada pelo dispositivo a montante para realizar remodelagem adaptativa em uma ou mais imagens, etc.). O decodificador de vídeo (152), ou o mapeador inverso (156) nele contido, pode ser configurado para gerar uma versão reconstruída do conteúdo de vídeo de origem (usado pelo dispositivo a montante para gerar o conteúdo de vídeo remodelado recebido pelo decodificador de vídeo 152) mediante aplicação de operações de mapeamento inverso no conteúdo de vídeo remodelado originado do codificador de vídeo na forma decodificada, a partir do sinal de vídeo remodelado com o uso da aproximação da LUT alvo, independentemente se o dispositivo a montante aplica operações de remodelagem adaptativa a palavras-código de origem no conteúdo de vídeo de origem com base em uma função de remodelagem, ou, alternativamente, com base em uma LUT com leitura direta que representa a função de remodelagem ou, alternativamente, com base em uma aproximação da LUT com pesquisa direta.
[062]Em algumas modalidades, o gerenciador de exibição (158) compreende um software, um hardware, uma combinação de hardware e software, etc., configurados para realizar operações de processamento de vídeo, como operações de gerenciamento de exibição, etc., na versão reconstruída do conteúdo de vídeo de origem. As operações de gerenciamento de exibição podem incluir, mas não se limitam apenas a qualquer uma dentre: operações de mapeamento de tons, operações de recorte, operações de adaptação de gama de cores, etc. Algumas dessas ou todas essas operações podem ser específicas para o dispositivo. Através dessas operações, as imagens representadas na versão reconstruída do conteúdo de vídeo de origem podem ser apresentadas por um dispositivo de exibição, que pode fazer parte do mesmo dispositivo que inclui o decodificador de vídeo (152), podendo operar em conjunto com o decodificador de vídeo (152), etc.
[063]Em uma modalidade exemplificadora, o decodificador de vídeo (152) é
Petição 870170063697, de 29/08/2017, pág. 32/108
23/67 configurado para sobreamostrar ou subamostrar uma imagem em um primeiro formato de amostragem (por exemplo, em um formato de amostragem de 4:2:0, etc.) para um segundo formato de amostragem diferente (por exemplo, em um formato de amostragem de 4:4:4, etc.).
[064]Exemplos de um decodificador de vídeo que implementa mapeamento inverso, remodelagem de sinal inversa e outras operações inclui, mas não se limita apenas a qualquer um dentre: um ou mais codecs de 12 bits em camada única, um ou mais codecs de 8 bits em duas camadas, um ou mais codecs de múltiplas camadas, um ou mais codecs de remodelagem não retrocompatíveis, um ou mais codecs retrocompatíveis, um ou mais codecs que implementam um conjunto de configurações/requisitos/opções em AVC, um ou mais codecs que implementam um conjunto de configurações/requisitos/opções em HEVC, H.264/AVC/HEVC, MPEG-2, VP8, VC-1, etc.
4. Funções de potência para remodelagem adaptativa [065]Em algumas modalidades, a remodelagem adaptativa pode ser executada de maneira eficaz com funções de potência, por exemplo, em sinais de vídeo que suportam faixas dinâmicas estendidas (EDR) (por exemplo, de até 6.000 nits, 12.000 nits, 20.000+ nits, etc.). Funções de potência podem ser usadas para comprimir um sinal de vídeo de origem com uma taxa de bits relativamente alta, como um sinal de vídeo de 12+ bits perceptualmente quantizado (PQ), etc., em um sinal de vídeo remodelado de maneira adaptativa com uma taxa de bits relativamente baixa, como um sinal de vídeo de 8 bits ou 10 bits remodelado de maneira adaptativa, etc. Parâmetros otimizados de remodelagem adaptativa podem ser selecionados com base, ao menos em parte, no conteúdo do sinal de vídeo de origem, para reduzir ou apresentar artefatos visuais no sinal de vídeo remodelado de maneira adaptativa. A seleção desses parâmetros de remodelagem adaptativa otimizados pode ser feita automaticamente através de um dispositivo a montante para uma imagem atual, uma cena atual, etc., conforme reprePetição 870170063697, de 29/08/2017, pág. 33/108
24/67 sentado no sinal de vídeo de origem, à medida que a imagem atual, a cena atual, etc., está sendo processada e remodelada de maneira adaptativa/comprimida pelo dispositivo a montante em uma imagem, uma cena, etc., representada no sinal de vídeo remodelado de maneira adaptativa. Alguns exemplos de remodelagem adaptativa com funções de potência são descritos no pedido de patente PCT/US2014/031716, depositado em 25 de março de 2014, de propriedade do cessionário do presente pedido, estando o conteúdo do mesmo aqui incorporado a título de referência para todos os propósitos como se totalmente apresentado aqui.
[066]Em uma modalidade exemplificadora, uma remodelagem adaptativa é realizada por um dispositivo a montante, como um codificador de vídeo, etc., com uma função de potência direta, da seguinte forma:
s{ = Arredondamento((cY - cY L χν; +c[) (1) ^H~^L onde α representa um valor exponencial; v-t representa palavras-código de origem (por exemplo, palavras-código de origem de luminância, etc.) decodificadas a partir de um sinal de vídeo de origem que está sendo remodelado pelo codificador de vídeo; s, representa palavras-código remodeladas de maneira adaptativa (por exemplo, palavras-código de luminância adaptadas/mapeadas) adaptadas/mapeadas a partir de v com a função de potência direta; Arredondamento (...) representa uma função de arredondamento; C[ e CH são valores mínimos e máximos, respectivamente, das palavras-código modeladas de maneira adaptativa (por exemplo, palavras-código de luminância adaptadas/mapeadas, etc.); vYL e vYH são valores mínimos e máximos, respectivamente, das palavras-código de origem (por exemplo, palavras-código de origem de luminância, etc.). Adicional, opcional ou alternativamente, em algumas modalidades, uma função de recorte pode ser usada para garantir que qualquer palavra-código fora da faixa (por exemplo, fora da faixa [ C[, CY H ], etc.) após uma compressão com perdas ainda possa ser mapeada de modo inverso por um dispositivo receptor a jusante, como um decodificador de vídeo, etc., para a palaPetição 870170063697, de 29/08/2017, pág. 34/108
25/67 vra-código de origem reconstruída válida mais próxima.
[067]O mapeamento inverso pode ser realizado através de um dispositivo receptor a jusante, como um decodificador de vídeo, etc., com uma função de potência inversa da seguinte forma:
s _C Y
V = (ή - VY \ + νΥγ (2)
CH - CY onde representa palavras-código de origem reconstruídas (por exemplo, palavras-código de origem de luminância reconstruídas, etc.) mapeadas de modo inverso a partir de palavras-código remodeladas, decodificadas a partir de um sinal de vídeo remodelado de maneira adaptativa, que foi remodelado por um dispositivo a montante, como o codificador de vídeo no presente exemplo.
[0068]Em algumas modalidades, nas funções de potência direta e inversa no decodificador, e CY H podem ser ajustados da seguinte forma:
CY = 0 (3)
CY H = effective_codewords - 1 (4) onde o símbolo effective_codewords representa o número de palavras-código disponíveis para representar as palavras-código remodeladas de maneira adaptativa (por exemplo, 511 de um sinal de vídeo de 8 bits em camada dupla, 1023 em um sinal de vídeo de 10 bits em camada única, etc.).
[069]Uma função de remodelagem ou um inverso da mesma, como uma função de potência direta, uma função de potência inversa, etc., pode ser representada sob a forma de uma LUT, como uma LUT unidimensional (1D-LUT), etc. As técnicas aqui descritas podem usar uma LUT que representa, ou que é gerada com base em uma função de remodelagem ou um inverso da mesma, como uma LUT alvo para aproximação com um número limitado de polinômios de segunda ordem. Em algumas modalidades, os coeficientes podem ser números de ponto fixo com precisão limitada, por exemplo, para satisfazer as restrições específicas de dispositivo, restrições específicas de módulo (por exemplo, restrições relacionadas a SoC,
Petição 870170063697, de 29/08/2017, pág. 35/108
26/67 etc.), etc.
[070]Tome como exemplo uma função de potência como aquela mostrada na expressão (1) ou (2), um expoente (por exemplo, α na função de potência direta da expressão (1), 1/α na função de potência inversa da expressão (2), etc.) pode ser maior que um (1), tornando a função de potência uma função convexa, ou pode ser menor que um (1), tornando a função de potência uma função côncava. Esses valores alfa diferentes criam dificuldades para aproximar uma LUT alvo gerada com base na função de potência.
[071]Em várias modalidades, um ou mais algoritmos podem ser usados individualmente ou em combinação na aproximação da LUT alvo. Em um exemplo, um primeiro algoritmo, designado como um algoritmo de busca direta, pode ser usado para aproximar a função de potência de valores de palavra-código pequenos para valores de palavra-código grandes (ou da esquerda para a direita) ao longo de um eixo de coordenada horizontal que representa valores de palavra-código de entrada (onde um eixo de coordenada vertical representa os valores de palavra-código mapeados). Para uso na presente invenção, os valores de palavras-código de entrada em uma LUT, como a LUT alvo, etc., pode se referir a chaves em pares chave-valor da LUT, ao passo que os valores de palavra-código mapeados na LUT podem se referir a valores nos pares chave-valor da LUT. Em outro exemplo, um segundo algoritmo, designado como um algoritmo de busca invertida, pode ser usado para aproximar a função de potência de valores de palavra-código grandes para valores de palavra-código pequenos (ou da direita para a esquerda) ao longo do eixo de coordenada horizontal. Em um exemplo adicional, tanto o primeiro como o segundo algoritmos que podem ser usados que resultam de um desses algoritmos (por exemplo, gerando menos erros de aproximação, uma convergência mais rápida, etc.) podem ser usados para aproximar a função de potência.
[072]Deve-se observar que uma função de remodelagem adaptativa pode ou
Petição 870170063697, de 29/08/2017, pág. 36/108
27/67 não ser uma função de potência direta. Adicional, opcional ou alternativamente, um inverso de uma função de remodelagem pode ou não ser uma função de potência inversa. Em algumas modalidades, um inverso de uma função de remodelagem, como descrito aqui, é representado por uma LUT com pesquisa invertida otimizada (designada como BL()) que pode ser derivada ou deduzida a partir de qualquer função de remodelagem arbitrária. A função de remodelagem pode ser usada por um dispositivo a montante, como um codificador de vídeo, etc., para executar a remodelagem adaptativa. Em algumas modalidades, a função de remodelagem adaptativa pode ser representada por uma LUT com pesquisa direta (designada como FL()). Uma LUT com pesquisa direta otimizada (ou BL() ótima) pode ser usada por um dispositivo a jusante, como um codificador de vídeo, etc., para executar mapeamento inverso.
[073]Para cada valor de palavra-código remodelada, Sc, usado no conteúdo de vídeo remodelado, todos os pixels (por exemplo, em uma imagem, em imagens da mesma cena, etc.) que têm o mesmo valor de palavra-código remodelada Sc no conteúdo de vídeo remodelado são agrupados. Com base nesses pixels no conteúdo de vídeo remodelado, um conjunto de valores de palavras-código de origem ví correspondentes no conteúdo de vídeo de origem que foram remodelados ou mapeados para Sc são, então, determinados ou identificados, da seguinte forma:
a(sc) = {i IFL(i) = sj (5) [074]Para cada valor de palavra-código Sc, se seu conjunto de valores de palavra-código de origem ví correspondente não for vazio, então a média de todos os valores de palavra-código de origem coletados no conjunto é coletada ou calculada. A média de todos os valores de palavra-código de origem coletados, correspondentes a cada valor de palavra-código Sc, pode ser usada para construir a BL ótima (Sc), da seguinte forma,
Σ v, ie sc)
I ω )I
BL(s„) = (6) onde I ®(sc )I representa o número de valores de palavra-código de origem
Petição 870170063697, de 29/08/2017, pág. 37/108
28/67 coletados no conjunto da expressão (5) acima.
[075]Em algumas modalidades, a BL ótima (Sc) na expressão (6) pode ser usada como uma LUT alvo a ser aproximada (por exemplo, por polinômios, etc.).
5. Funções de aproximação relacionadas à remodelagem adaptativa [076]A Figura 2 ilustra um método exemplificador de aproximação de uma função de remodelagem. Um ou mais dispositivos de computação, um ou mais módulos ao menos parcialmente implementados no hardware em um dispositivo de computação, etc., podem executar esse método. Por exemplo, um módulo de aproximação de LUT em um dispositivo de processamento de vídeo, como um módulo de remodelagem adaptativa em um codificador de vídeo, um módulo de mapeamento inverso em um decodificador de vídeo, etc., pode executar algumas das ou todas as ações no método da Figura 2.
[077]No bloco 202, o módulo de aproximação de LUT inicia a aproximação de uma LUT alvo ao definir um limiar de erro inicial t.
[078]No bloco 204, o módulo de aproximação de LUT determina se uma condição de continuidade do módulo deve ser cumprida. Se sim, então os polinômios usados para aproximar a LUT alvo devem satisfazer uma restrição segundo a qual uma curva por partes formada pelos polinômios é contínua na ordem 0; quaisquer dois segmentos curvos, conforme representados por dois polinômios vizinhos da curva por partes, se unem um ao outro. Por outro lado, se a condição de continuidade não deve ser cumprida, tal restrição não precisa ser satisfeita pelos polinômios (polinômios vizinhos podem ou não se juntar um ao outro). A ativação ou desativação dessa restrição de continuidade pode depender do conteúdo. Em um exemplo, o módulo de aproximação de LUT pode determinar que uma imagem ou uma cena contém um conteúdo de imagem suave. Em resposta a essa determinação, a restrição de continuidade pode ser executada na aproximação da LUT alvo para operações de remodelagem ou mapeamento inverso em tal imagem ou cena. Isto pode impedir a ocorrência de artefatos
Petição 870170063697, de 29/08/2017, pág. 38/108
29/67 como faixas no conteúdo de imagem relativamente suave. Em outro exemplo, o módulo de aproximação de LUT pode determinar que uma imagem ou cena contém um conteúdo de imagem com variação relativamente alta (por exemplo, em termos de diferenças e variações de valores de luminância ou valores de croma, etc.). Em resposta a essa determinação, a restrição de continuidade pode não ser executada na aproximação da LUT alvo para operações de remodelagem ou mapeamento inverso em tal imagem ou cena, pois artefatos como faixas de cor são menos prováveis de ocorrer em um conteúdo de imagem com variação relativamente alta.
[079]Em algumas modalidades, o módulo de aproximação de LUT pode selecionar um conjunto de regras de parada, entre um ou mais conjuntos diferentes de regras de parada, a serem aplicadas na operação de aproximação com base no fato de que a condição ou restrição de continuidade deve ou não ser executada. Em resposta ao fato de que a condição de continuidade não deve ser executada, no bloco 206, o módulo de aproximação de LUT pode ser configurado para selecionar um primeiro conjunto de regras de parada. Por outro lado, em resposta ao fato de que a condição de continuidade deve ser executada, no bloco 208, o módulo de aproximação de LUT pode ser configurado para selecionar um segundo conjunto de regras de parada.
[080]Uma regra de parada pode se referir a uma regra (ou uma parte de uma regra complexa) usada para determinar, ao menos em parte, se se deve ou não finalizar uma aproximação de um segmento, parar ou terminar um cálculo ou operação específica, passar para um cálculo ou operação diferente, etc., na aproximação da LUT alvo. Em algumas modalidades, as regras de parada podem conter não apenas um detector de limiar, mas também um detector de borda crescente, detector de comprimento mínimo/máximo de segmento, etc. As regras de parada (por exemplo, uma combinação específica de regras de parada, etc.) podem ser usadas para produzir melhor precisão de ajuste ao finalizar a aproximação de um
Petição 870170063697, de 29/08/2017, pág. 39/108
30/67 segmento, do que simplesmente usar um detector de limiar com base em um limiar de erro total.
[081]Em várias modalidades, regras de parada diferentes podem ser adotadas com base nos tipos de imagem, tipos de função de remodelagem, etc. Por exemplo, para funções de remodelagem representadas por curvas de difícil aproximação através de polinômios, pode-se adotar uma regra de parada relativamente relaxante. Para imagens relativamente suaves, pode-se adotar uma regra de parada relativamente estringente. Em algumas modalidades, uma regra de parada pode ser equivalente a uma redução em graus de liberdade nas operações de aproximação. Quanto mais graus de liberdade (por exemplo, um grau de liberdade, dois graus de liberdade, etc.) uma regra de parada representar, maior será a distorção que uma aproximação de uma LUT alvo, gerada em parte com base na regra de parada, poderá gerar. O erro de aproximação pode ser minimizado se nenhuma regra de parada ou uma regra de parada relativamente relaxante for usada. Entretanto, a aproximação pode compreender segmentos curvos que não se encontram em suas extremidades, e pode ou não ser apropriada para tipos de imagem específicos (por exemplo, imagens relativamente suaves, imagens relativamente não suaves, etc.).
[082]Em uma implementação exemplificadora, a Regra Número 1 é definida conforme exposto a seguir:
(prev_error_condition && curr_error_condition) || max_custom_length_condition (7) onde x&& ydenota uma lógica booleana e de xe y, x || ydenota uma lógica booleana ou de x e y, prev_error_condition representa um predicado indicando se o último erro de ajuste é menor que um limiar de erro aplicável (por exemplo, um limiar de erro padrão t, um limiar de erro ajustado 0,75t, um limiar ajustado adicional, etc.); curr_error_condition representa um predicado indicando se o erro de ajuste atual é menor que o limiar de erro aplicável; e max_custom_length_condition representa um
Petição 870170063697, de 29/08/2017, pág. 40/108
31/67 predicado indicando se um segmento atingiu um comprimento máximo predefinido.
[083]Em uma implementação exemplificadora, a Regra Número 2 é definida conforme exposto a seguir:
(curr_error_condition && min_custom_length_condition) || max_custom_length_condition (8) onde min_custom_length_condition é um predicado indicando se um segmento atingiu um comprimento mínimo predefinido.
[084]Em uma implementação exemplificadora, a Regra Número 3 é definida conforme exposto a seguir:
curr_error_condition && min_custom_length_condition (9) [085]Em algumas modalidades, a busca direta e a busca invertida podem usar o mesmo conjunto de regras de parada. Em algumas outras modalidades, a busca direta e a busca invertida podem usar conjuntos de regras de parada diferentes. Em algumas modalidades, conforme ilustrado no bloco 206 da Figura 2, quando a condição de continuidade NÃO é cumprida, a Regra No. 1 é selecionada tanto para a busca direta como para a busca invertida. Em algumas modalidades, conforme ilustrado no bloco 208 da Figura 2, quando a condição de continuidade NÃO é cumprida, a Regra No.1 é selecionada para a busca direta, ao passo que a Regra No. 2 é selecionada para a busca invertida.
[086]No bloco 210, o módulo de aproximação de LUT realiza a aproximação da LUT alvo com um algoritmo de busca direta. Os resultados da aproximação da LUT alvo com o algoritmo de busca direta podem ser salvos na memória no bloco 212.
[087]No bloco 214, o módulo de aproximação de LUT realiza a aproximação da LUT alvo com um algoritmo de busca invertida.
[088]Em algumas modalidades, a aproximação de uma LUT alvo no algoritmo de busca direta ou no algoritmo de busca invertida inclui as seguintes etapas. Depois que
Petição 870170063697, de 29/08/2017, pág. 41/108
32/67 um limiar de erro inicial t é definido para um ou mais algoritmos, os polinômios de 2a ordem são ajustados a segmentos de uma função de remodelagem ou um inverso da mesma, conforme representado pela LUT alvo. O ajuste dos polinômios de 2a ordem aos segmentos pode ser realizado de segmento a segmento, por exemplo, da esquerda para a direita, no algoritmo de busca direta, ou da direita para a esquerda, no algoritmo de busca invertida. Cada segmento pode ser determinado ou escolhido de tal modo que o erro de ajuste entre aquele segmento e um polinômio de aproximação correspondente não excede o limiar de erro t. Se o número de segmentos for igual a um número máximo determinado para o número de polinômios de 2a ordem, então o ajuste da curva atinge a extremidade com sucesso. Por outro lado, se o número de segmentos for menor do que o número máximo determinado para o número de polinômios de 2a ordem, então o limiar de erro t (por exemplo, t = 0,75t, etc.) é reduzido; as etapas anteriormente mencionadas são repetidas para o limiar de erro reduzido, até que o número de segmentos seja igual ao número máximo determinado para o número de polinômios de 2a ordem.
[089]No bloco 216, o módulo de aproximação de LUT determina se a aproximação da LUT alvo com o algoritmo de busca invertida gera um erro maior do que a aproximação da LUT alvo com o algoritmo de busca direta.
[090]Em resposta ao fato de que a aproximação da LUT alvo com o algoritmo de busca invertida gera um erro maior do que a aproximação da LUT alvo com o algoritmo de busca direta, no bloco 218, o módulo de aproximação de LUT escolhe a aproximação da LUT alvo com o algoritmo de busca direta como a aproximação da LUT alvo (por exemplo, final, etc.).
[091]Em resposta ao fato de que a aproximação da LUT alvo com o algoritmo de busca invertida não gera um erro maior do que a aproximação da LUT alvo com o algoritmo de busca direta, no bloco 220, o módulo de aproximação de LUT escolhe a aproximação da LUT alvo com o algoritmo de busca invertida como a aproximação da LUT alvo (por exemplo, final, etc.).
Petição 870170063697, de 29/08/2017, pág. 42/108
33/67 [092]No bloco 222, o módulo de aproximação de LUT finaliza as operações para aproximar a LUT alvo.
[093]Foi descrito que uma aproximação de uma LUT alvo, que representa ou que é gerada com base em uma função de remodelagem arbitrária, pode ser realizada com uma busca direta seguida de uma busca invertida. Isso é somente para propósitos de ilustração. Em várias modalidades, uma aproximação de uma LUT alvo, que representa ou que é gerada com base em uma função de remodelagem arbitrária, pode ser realizada com uma busca, como uma busca direta, mas não com uma busca invertida, como uma busca invertida mas não com uma busca direta. Adicional, opcional e alternativamente, uma aproximação de uma LUT alvo, que representa ou que é gerada com base em uma função de remodelagem arbitrária, pode ser realizada com uma busca invertida seguida de uma busca direta. Portanto, estas e outras variações de aproximação de uma LUT alvo, que representa ou que é gerada com base em uma função de remodelagem arbitrária, podem ser usadas de acordo com as técnicas aqui descritas.
[094]A Figura 3A ilustra um fluxo de processamento exemplificador para aproximar uma LUT alvo. Um ou mais dispositivos de computação, um ou mais módulos, ao menos parcialmente implementados no hardware em um dispositivo de computação, etc., podem executar esse método. Por exemplo, um módulo de aproximação de LUT em um dispositivo de processamento de vídeo, como um módulo de remodelagem adaptativa em um codificador de vídeo, um módulo de mapeamento inverso em um decodificador de vídeo, etc., pode executar parte do ou todo o fluxo de processamento da Figura 3A.
[095]No bloco 302, o fluxo de processamento começa pela inicialização de uma ou mais variáveis relacionadas a um pivô, indicadores de processamento, variáveis relacionadas à convergência, como um número máximo (por exemplo, 20, 30, 40, 50, 60, etc.) ou iterações em um circuito externo, um limite superior de erro de busca t (por
Petição 870170063697, de 29/08/2017, pág. 43/108
34/67 exemplo, inicializado ao limiar de erro máximo t, etc.), um sinal (designado como found_CC) para indicar se uma aproximação válida é encontrada em uma iteração (por exemplo, inicializada como falso, etc.), etc. O número máximo de iterações, o limite superior do erro de busca t, etc., são restrições de convergência que têm por objetivo minimizar distorções, e que podem assumir valores diferentes (por exemplo, um sistema configurável, usuário-substituível, sintonizável com base em estatísticas coletadas com um conjunto de imagens de treinamento, etc.) em várias modalidades. Em algumas modalidades, quanto maior o número de iterações, mais o fluxo de processamento tentará minimizar a distorção na aproximação da função de remodelagem. Em algumas modalidades, o limite superior de erro de busca t fornece um limite para a distorção, onde a aproximação da função de remodelagem é convergida (por exemplo, com iterações no ou abaixo do número máximo de iterações, etc.).
[096]No bloco 304, o fluxo de processamento entra no circuito externo com um sinalizador de convergência converge_iter que foi inicializado como falso (0) no bloco 302. Mais especificamente, no bloco 304, determina-se se o sinalizador de convergência converge_iter é ajustado para verdadeiro (1).
[097]Em resposta ao fato de que o sinalizador de convergência converge_iter é ajustado para verdadeiro, no bloco 306, o fluxo de processamento retorna ao ponto de pivô, os melhores conjuntos de coeficientes para os polinômios que se aproximam da LUT alvo. O fluxo de processamento termina no bloco 308.
[098]Em resposta ao fato de que o sinalizador de convergência converge_iter é ajustado para falso, o fluxo de processamento reinicializa um ou mais parâmetros do circuito interno, como um sinalizador do circuito interno converge para falso, o sinalizador found_CC para falso, uma variável num_pivot (por exemplo, indicando o número atual de pivôs, etc.) para um (1), etc., e entra em um circuito interno com o sinalizador de circuito interno converge reinicializado para falso (0). Mais especificamente, no bloco 310, o fluxo de processamento determina se o sinalizador de circuito interno
Petição 870170063697, de 29/08/2017, pág. 44/108
35/67 converge está ajustado para verdadeiro (1).
[099]Em resposta ao fato de que o sinalizador de circuito interno converge está ajustado para falso, o fluxo de processamento inicializa um sinalizador de processamento found_one_seg para falso (0), inicializa uma contagem de iteração de circuito interno iter_cnt para um (1), e segue para a realização de um segundo fluxo de processamento para adicionar um novo segmento que é aproximado por um polinômio, e segue para o bloco 332 do segundo fluxo de processamento ilustrado na Figura 3B. O segundo fluxo de processamento é repetido até que o sinalizador de circuito interno converge seja definido como verdadeiro no bloco 310.
[0100]Em resposta ao fato de que o sinalizador de circuito interno converge é ajustado para verdadeiro, no bloco 314, o fluxo de processamento determina se o número de iterações no circuito externo, conforme indicado por um contador de iteração de circuito externo Out_iter_cnt, excede um número máximo de iterações do circuito externo, conforme indicado por um valor configurado (por exemplo, constante, etc.) MAX_OUT_CNT.
[0101]Em resposta ao fato de que o número de iterações no circuito externo excede o número máximo de iterações no circuito externo, no bloco 316, o sinalizador de convergência converge_iter é ajustado para verdadeiro (1), e o fluxo de processamento segue para o bloco 304.
[0102]Em resposta ao fato de que o número de iterações no circuito externo não excede o número máximo de iterações do circuito externo, no bloco 318, o fluxo de processamento determina se o número de pivôs (por exemplo, atual, etc.,), conforme indicado pela variável num_pivot, excede um número máximo de pivôs (por exemplo, um máximo de nove pivôs se o número máximo de pivôs de polinômios for oito, um máximo de dez pivôs se o número máximo de polinômios for nove, etc.), conforme indicado por um valor configurado (por exemplo, constante, etc.) MAX_NUM_PIVOT.
Petição 870170063697, de 29/08/2017, pág. 45/108
36/67 [0103]Em resposta ao fato de que o número de pivôs não excede o número máximo de pivôs, no bloco 320, o limite superior de erro de busca, designado como max_error, é reduzido (por exemplo, max_error = 0,75 max_error, etc.), e o fluxo de processamento segue para o bloco 304.
[0104]Em resposta ao fato de que o número de pivôs excede o número máximo de pivôs, no bloco 316, o sinalizador de convergência converge_iter é ajustado para verdadeiro (1), e o fluxo de processamento segue para o bloco 304.
[0105]A Figura 3B ilustra um segundo fluxo de processamento exemplificador que pode ser invocado no bloco 310 da Figura 3A, em resposta ao fato de que o sinalizador de convergência convergence é falso. Um ou mais dispositivos de computação, um ou mais módulos, ao menos parcialmente implementados em hardware em um dispositivo de computação, etc., pode executar esse método. Por exemplo, um módulo de aproximação de LUT em um dispositivo de processamento de vídeo, como um módulo de remodelagem adaptativa em um codificador de vídeo, um módulo de mapeamento inverso em um decodificador de vídeo, etc., pode executar parte do ou todo o fluxo de processamento da Figura 3B.
[0106]No bloco 332, o segundo fluxo de processamento determina se o sinalizador de processamento found_one_seg está ajustado para verdadeiro (1). Em resposta ao fato de que o sinalizador de processamento found_one_seg está ajustado para falso, o segundo fluxo de processamento ajusta o limite inferior e o limite superior para o segmento candidato, e então segue para o bloco 346.
[0107]Em algumas modalidades, o ajuste do limite inferior e do limite superior para um segmento candidato inclui o ajuste da distância horizontal entre o limite inferior e o limite superior, para que o segmento candidato seja o valor atual da contagem de iteração de circuito interno iter_cnt. Como resultado, em situações com múltiplas iterações de circuito interno, desde que o sinalizador found_one_seg permaneça como falso (0), o segmento candidato aumenta de comprimento, conPetição 870170063697, de 29/08/2017, pág. 46/108
37/67 forme a contagem de iteração de circuito interno iter_cnt é incrementada de uma iteração interna para a próxima.
[0108]Por outro lado, em resposta ao fato de que o indicador de processamento found_one_seg está ajustado para verdadeiro, o segundo fluxo de processamento segue para o bloco 334. Contudo, antes de seguir do bloco 334 para o bloco 332, o segundo fluxo de processamento primeiro determina se o número de pivôs, conforme indicado pela variável num_pivot, excede o número máximo de pivôs representado pelo valor configurado MAX_NUM_PIVOT. Em resposta ao fato de que o número de pivôs excede o número máximo de pivôs, o sinalizador found_CC é ajustado para falso (0), e o sinalizador de circuito interno converge é ajustado para verdadeiro (1).
[0109]No bloco 334, o segundo fluxo de processamento prossegue para determinar se o sinalizador found_CC está ajustado para verdadeiro (1). Em resposta ao fato de que o sinalizador found_CC está ajustado para falso (0), o segundo fluxo de processamento retorna para o bloco 310 no fluxo de processamento da Figura 3A. Por outro lado, em resposta ao fato de que o sinalizador found_CC está ajustado para verdadeiro (1), no bloco 336, o segundo fluxo de processamento determina se um valor de direção de busca indica uma busca direta ou uma busca invertida. Em resposta ao fato de que o valor de direção de busca indica uma busca invertida, no bloco 338, o segundo fluxo de processamento reordena ou inverte os registros em uma lista gerada de pontos de pivô, os registros em uma lista de coeficientes, etc., e então segue para o bloco 340. Em resposta ao fato de que o valor de direção de busca indica uma busca direta, o segundo fluxo de processamento segue diretamente para o bloco 340, sem reordenar ou inverter os registros na lista gerada de pontos de pivô, os registros na lista de coeficientes, etc.
[0110]No bloco 340, o segundo fluxo de processamento reconstrói uma LUT gerada, com base em polinômios definidos pelos registros contidos na lista gerada de
Petição 870170063697, de 29/08/2017, pág. 47/108
38/67 pontos de pivô, os registros contidos na lista de coeficientes, etc., e calcula um erro máximo max_diff entre a LUT alvo e a LUT gerada. No bloco 342, o segundo fluxo de processamento determina se o erro máximo max_diff não é maior que um erro máximo prévio melhor prev_best_max_error.
[0111]Em resposta ao fato de que o erro máximo max_diff não é maior que um erro máximo prévio melhor prev_best_max_error, os registros contidos na lista gerada de pontos de pivô, os registros contidos na lista gerada de coeficientes, etc., são salvos como os melhores pontos de pivô atuais, os melhores coeficientes atuais, etc., e o segundo fluxo de processamento segue para o bloco 310 no fluxo de processamento da Figura 3A.
[0112]Em resposta ao fato de que o erro máximo max_diff é maior que um erro máximo prévio melhor prev_best_max_error, os registros contidos na lista gerada de pontos de pivô, os registros contidos na lista gerada de coeficientes, etc., não são salvos como os melhores pontos de pivô atuais, os melhores coeficientes atuais, etc., e o segundo fluxo de processamento segue para o bloco 310 no fluxo de processamento da Figura 3A.
[0113]No bloco 346, o segundo fluxo de processamento determina se um sinalizador de condição de continuidade continuity_condition está ajustado para falso (0) ou se a variável num_pivot é um (1). Quando o sinalizador continuity_condition está ajustado para falso, a condição de continuidade ou a restrição de continuidade não é cumprida, conforme discutido anteriormente. Quando o sinalizador continuity_condition está ajustado para verdadeiro (1), a condição de restrição ou a restrição de continuidade é cumprida, conforme discutido anteriormente.
[0114]Em resposta ao fato de que a condição é cumprida e a variável num_pivot não é um, o segundo fluxo de processamento segue para o bloco 348. Em algumas modalidades, a variável num_pivot foi inicializada até um (1) antes do fluxo de processamento da Figura 3A entrar no circuito interno representado pelo bloco 310 a
Petição 870170063697, de 29/08/2017, pág. 48/108
39/67 partir do bloco 304, e então, dentro do circuito interno, aumentada em incrementos de um, cada vez que um novo segmento (por exemplo, válido, etc.) aproximado por um polinômio é determinado ou selecionado. Dessa forma, quando a variável num_pivot não for um, o segundo fluxo de processamento no bloco 346 está lidando com uma iteração na qual ao menos um segmento, aproximado por ao menos um polinômio, foi determinado/selecionado.
[0115]Em algumas modalidades, uma LUT, como uma LUT alvo, uma LUT não alvo, etc., que mapeia valores de palavras-código de entrada (por exemplo, como chaves em pares chave-valor da LUT, etc.) para valores de palavras-código mapeadas (por exemplo, valores nos pares chave-valor na LUT, etc.) podem ser representados em um sistema de coordenadas (por exemplo, um sistema de coordenadas cartesianas, etc.) no qual o eixo horizontal representa os valores das palavras-código de entrada e o eixo vertical representa os valores das palavras-código mapeadas. O último polinômio usado na aproximação do último segmento da LUT alvo pode ser usado para calcular um valor de código de entrada em um registro seguinte na LUT alvo (por exemplo, um ponto de dados seguinte após o último segmento no sistema de coordenadas, etc.). Uma combinação do valor de código de entrada no próximo registro e seu valor de palavra-código mapeada calculado, correspondente ao último polinômio, pode ser usado como um ponto de referência (pivô) para o segmento candidato, com o propósito de cumprir a condição ou restrição de continuidade.
[0116]No bloco 348, o segundo fluxo de processamento centraliza um segmento atual (por exemplo, o segmento candidato, etc.) em relação ao ponto de referência (pivô) que é gerado, ao menos em parte, a partir do último polinômio que aproxima o último segmento. A centralização do segmento candidato no bloco 348 pode ser realizada pela transformação (por exemplo, conversão, etc.) do sistema de coordenadas em um novo sistema de coordenadas, no qual um ou ambos dentre os novos valores de coordenadas horizontal e vertical do ponto de referência é zero. No bloco 350,
Petição 870170063697, de 29/08/2017, pág. 49/108
40/67 o segundo fluxo de processamento determina se o número de pontos de dados no segmento candidato não é menor que três (3). Em resposta ao fato de que o número de pontos de dados no segmento candidato não é menor que três (3), no bloco 352, o segundo fluxo de processamento gera um polinômio de 2a ordem para aproximar o segmento candidato baseado nos pontos de dados no segmento candidato da LUT alvo. Em resposta ao fato de que o número de pontos de dados no segmento candidato é menor que três (3), no bloco 354, o segundo fluxo de processamento gera um polinômio de 1a ordem para aproximar o segmento candidato baseado nos pontos de dados no segmento candidato da LUT alvo. No bloco 356, o segundo fluxo de processamento deriva analiticamente coeficientes de um polinômio atual (por exemplo, no sistema de coordenadas antes que este se transforme no novo sistema de coordenadas, etc.) para aproximar o segmento candidato ou do polinômio de 1a ordem ou do polinômio de 2a ordem (por exemplo, derivado com o novo sistema de coordenadas, etc.) ao transformar inversamente o novo sistema de coordenadas de volta ao sistema de coordenadas.
[0117]No bloco 346, em resposta ao fato de que a condição de continuidade não é cumprida na aproximação da LUT alvo, ou que a variável num_pivot é um, o segundo fluxo de processamento segue para o bloco 358. O segundo fluxo de processamento executa operações similares nos blocos 358, 360 e 362, bem como operações nos blocos 350, 352 e 354.
[0118]Conforme mostrado na Figura 3B, o segundo fluxo de processamento segue para o bloco 364 a partir de um dos blocos 356, 360 ou 362. No bloco 364, o segundo fluxo de processamento determina se o limite superior do segmento atual, designado como próximo ponto de pivô, é o último ponto (de dados) possível ou último registro na LUT alvo. Em resposta ao fato de que o limite superior do segmento atual é o último ponto (de dados) ou o último registro possível na LUT alvo, o segundo fluxo de processamento finaliza o segmento atual, ajusta o sinalizador found_one_seg para
Petição 870170063697, de 29/08/2017, pág. 50/108
41/67 verdadeiro (1), o sinalizador converge para verdadeiro (1), o sinalizador found_CC para falso (0) etc., e segue para o bloco 332.
[0119]Em resposta ao fato de que o limite superior do segmento atual não é o último ponto (de dados) ou registro possível na LUT alvo, o segundo fluxo de processamento determina se o segmento atual (ou o segmento candidato) satisfaz a regra de parada (por exemplo, zero, uma ou mais dentre a Regra 1, Regra 2, Regra 3, etc.) definida para as operações de aproximação. Em resposta ao fato de que o segmento atual (ou segmento candidato) satisfaz a regra de parada, no bloco 372, o segundo fluxo de processamento aumenta a variável num_pivot em um, ajusta o sinalizador found_one_seg para verdadeiro (1), o sinalizador found_CC para falso (0), etc., e segue para o bloco 332. Por outro lado, em resposta ao fato de que o segmento atual (ou o segmento candidato) não satisfaz a regra da parada, no bloco 372, o segundo fluxo de processamento ajusta o sinalizador found_one_seg para falso (0), o sinalizador found_CC para falso (0), e segue para o bloco 332.
[0120]Antes que o segundo fluxo de processamento siga para o bloco 332 a partir de qualquer um dentre os blocos 368, 372 e 374, a contagem de iteração de circuito interno iter_cnt é aumentada em um. Quando o sinalizador found_one_seg permanece como falso, como no caso do bloco 374, o comprimento do segmento candidato para a próxima iteração aumentará conforme a contagem de iteração do circuito interno iter_cnt é incrementada no início da próxima iteração. O segmento candidato mais longo será aproximado na próxima iteração por um polinômio nos blocos 352, 354, 360, ou 362, conforme discutido acima.
[0121]A remodelagem adaptativa de acordo com as técnicas aqui descritas pode ser realizada com uma ou mais dentre uma variedade de funções de remodelagem ou inversos da mesma, LUTs representando funções analíticas ou não analíticas, etc. No caso do uso de funções de potência, as técnicas podem ser empregadas para selecionar especificamente os parâmetros de remodelagem adaptaPetição 870170063697, de 29/08/2017, pág. 51/108
42/67 tiva, como valores exponenciais para as funções de potência, etc., para melhorar a qualidade perceptual.
[0122]Em algumas modalidades, um conteúdo de vídeo como o conteúdo de vídeo de origem, conteúdo de vídeo intermediário, conteúdo de vídeo de saída, etc., pode ser codificado em um espaço de cor não linear, como um espaço de cor perceptualmente quantizado (PQ), etc. O espaço de cor PQ pode compreender um conjunto de palavras-código PQ disponíveis para codificar o conteúdo de vídeo. As diferentes palavras-código PQ no espaço de cor PQ podem não ser escalonadas linearmente com valores de luminância, mas podem, sim, corresponder a passos de quantização variáveis em valores de luminância. Por exemplo, o espaço de cor PQ pode alocar mais palavras-código em regiões com valor de luminância escura e menos palavras-código nas regiões com valor de luminância clara. Alguns exemplos de espaços de cor PQ, transformações, mapeamentos, funções de transferência, etc., são descritos em SMPTE ST 2084:2014 High Dynamic Range EOTF of Mastering Reference Displays, que está aqui integralmente incorporado, por referência.
[0123]As técnicas aqui descritas podem ser usadas para modelagem adaptativa do conteúdo de vídeo de entrada (por exemplo, um conteúdo de vídeo de origem, conteúdo de vídeo codificado por PQ, conteúdo de vídeo com um conjunto relativamente grande de palavras-código disponíveis), conteúdo de vídeo remodelado codificado com uma função de remodelagem (por exemplo, uma função de potência direta, etc.) compreendendo um conjunto relativamente limitado de palavras-código remodeladas que podem, então, ser transmitidas em um sinal de vídeo com profundidade relativamente baixa.
[0124]Um conjunto relativamente limitado de palavras-código remodeladas, como descrito aqui, pode distribuir mais palavras-código em regiões com altos valores de luminância para imagens claras relativamente suaves, cenas claras relativamente suaves, etc., como imagens que compreendem grandes áreas com características
Petição 870170063697, de 29/08/2017, pág. 52/108
43/67 visuais claras (por exemplo, um céu, janelas, metal polido, aviões, carros, etc.). A distribuição de mais palavras-código nas regiões com altos valores de luminância na função de remodelagem reduz ou evita artefatos visuais, como faixas de cor, etc., naquelas imagens, cenas, etc. Em algumas modalidades, valores exponenciais relativamente grandes podem ser selecionados para funções de remodelagem (por exemplo, diretas, etc.) representadas por funções de potência direta. Um valor exponencial relativamente grande (por exemplo, 1,6, 1,7, um valor relativamente grande no qual artefatos como faixas são eliminados, etc.) para uma função de potência direta fornece relativamente mais palavras-código para a remodelagem de partes do conteúdo de vídeo representando áreas claras. Por outro lado, o inverso (por exemplo, funções de potência inversas, etc.) (por exemplo, diretas, etc.) das funções de remodelagem pode usar valores de expoente relativamente pequenos que são o inverso dos valores de expoente em funções de potência direta, com o propósito de reconstruir uma versão do conteúdo de vídeo pré-remodelado baseado em um sinal de vídeo modelado de maneira adaptativa, modelado com as funções de potência direta, com valores de expoente relativamente grandes.
[0125]Um conjunto relativamente limitado de palavras-código remodeladas, como descrito aqui, pode distribuir mais palavras-código em regiões com baixos valores de luminância para imagens relativamente escuras, cenas relativamente escuras, etc., como imagens que compreendem grandes características visuais escuras (por exemplo, sombras, um céu estrelado, noites, ambientes internos com pouca luz etc.). A distribuição de mais palavras-código nas regiões com baixos valores de luminância na função de remodelagem ajuda a preservar detalhes ou características da imagem naquelas imagens, cenas, etc. Em algumas modalidades, valores exponenciais relativamente pequenos podem ser selecionados para funções de remodelagem (por exemplo, diretas, etc.) representadas por funções de potência direta. Um valor exponencial relativamente grande (por exemplo, 1,6, 1,0, um valor relativamente
Petição 870170063697, de 29/08/2017, pág. 53/108
44/67 grande no qual artefatos como faixas são preservados, etc.) para uma função de potência direta fornece relativamente mais palavras-código para a remodelagem de partes do conteúdo de vídeo representando áreas claras. Por outro lado, o inverso (por exemplo, funções de potência inversas, etc.) (por exemplo, diretas, etc.) das funções de remodelagem pode usar valores de expoente relativamente altos que são o inverso dos valores de expoente em funções de potência direta, com o propósito de reconstruir uma versão do conteúdo de vídeo pré-remodelado baseado em um sinal de vídeo modelado de maneira adaptativa, modelado com as funções de potência direta, com valores de expoente relativamente pequenos.
[0126]Para outras imagens, cenas, etc., que representam a maioria dos objetos ou características em meio-tom, as palavras-código remodeladas podem ser distribuídas de modo mais uniforme em termos de valores de luminância. Por exemplo, uma função de potência direta pode usar um valor de expoente de 1,3, 1,4, etc.
[0127]Deve-se notar que os valores exponenciais mencionados são apenas para propósitos de ilustração. Quando forem usadas funções de potência em ao menos uma parte de uma função de remodelagem, esses e outros valores exponenciais podem ser adotados com base em uma variedade de fatores, incluindo, mas não se limitando a tipos de imagem, etc. Adicional, opcional ou alternativamente, funções, relações, etc., diferentes das funções de potência podem ser usadas em ao menos uma parte de uma função de remodelagem. Para essas outras funções, os valores de expoente mencionados e outros valores de expoente podem ser adotados.
[0128]Uma ou mais dentre uma variedade de algoritmos de processamento podem ser implementados, de acordo com as técnicas descritas na presente invenção, para determinar se uma imagem, cena, etc., tem áreas claras potenciais propensas a gerar artefatos como contornos/faixas em uma versão reconstruída da
Petição 870170063697, de 29/08/2017, pág. 54/108
45/67 imagem, cena, etc. Em algumas modalidades, cada imagem na imagem, cena, etc., pode ser dividida em múltiplos blocos NxN não sobrepostos (compreendendo NxN pixels, onde N é um número inteiro positivo, como 2, 4, 6, 8, 16, etc.). Em cada um dentre alguns ou todos os blocos, os valores mínimos, máximos, médios, etc., dentro do bloco podem ser determinados/calculados. A Figura 4A ilustra um algoritmo exemplificador para determinar se essa imagem (ou quadro), cena, etc., compreende áreas claras suaves. A diferença entre os valores máximo e mínimo em um bloco pode ser calculada e comparada com um limiar de diferença (designado como Te). Se a diferença for menor do que o limiar (Te), o bloco pode ser classificado como um bloco suave potencialmente propenso a artefatos como faixas. Adicional, opcional ou alternativamente, para quantificar ou identificar áreas claras, o valor médio do bloco pode ser comparado com um limiar de valor médio (designado como Tb). Se o valor médio exceder o limiar (Tb), o bloco pode ser classificado como um bloco claro. O número de blocos claros suaves em uma imagem, cena, etc., pode ser determinado com base na análise precedente da imagem, cena, etc. Se o número de blocos claros suaves em uma imagem constituir mais que uma certa porcentagem (designada como Pb) do número total de blocos, então a imagem (ou quadro de imagem) pode ser considerada como uma imagem com áreas claras suaves.
[0129]Um ou mais dentre uma variedade de algoritmos de processamento de imagem pode ser implementado, de acordo com as técnicas aqui descritas, para determinar se uma imagem (ou quadro), cena, etc., tem áreas escuras relativamente grandes. A Figura 4B ilustra um exemplo de tal algoritmo. Em algumas modalidades, é determinado o número total de pixels escuros - entre alguns dos ou todos os pixels em uma imagem, cena, etc. - que têm valores de luminância menores que um limiar de luminância (designado como Td). Se o número total de pixels escuros for superior ao limiar de porcentagem (designado como Pd), a imagem, cena, etc., é classificada como apresentando áreas escuras grandes.
Petição 870170063697, de 29/08/2017, pág. 55/108
46/67 [0130]A Figura 4C ilustra outro exemplo para determinar se uma imagem (ou quadro), cena, etc., tem áreas escuras relativamente grandes. Uma diferença entre os valores máximo e mínimo em um bloco pode ser calculada. Se a diferença for 0, ou alternativamente, em algumas modalidades, menor do que um limiar de diferença pequeno, o bloco pode ser classificado como um bloco preto puro e ignorado. Por outro lado, se a diferença for diferente de zero, ou alternativamente, em algumas modalidades, não inferior a um limiar de diferença pequeno, o bloco é classificado como um bloco preto não puro. O valor médio do bloco pode ser comparado com um segundo limiar de valor médio (designado como Ts). Adicional, opcional ou alternativamente, um valor de desvio padrão no bloco pode também ser calculado e comparado com um limiar de desvio padrão (designado como Tstd). Se o valor médio for menor do que o segundo limiar de valor médio (Ts) e o valor de desvio padrão for menor que o limiar de desvio padrão (Tstd), o bloco pode ser classificado como um bloco escuro suave. Uma área escura suave pode, então, ser identificada como uma área que compreende ao menos um certo número (por exemplo, oito, dez, dezesseis, um número inteiro positivo diferente maior que dois, etc.) de blocos escuros suaves que são conectados dentre ou entre o certo número de blocos escuros suaves. A maior área escura suave em uma imagem pode ser determinada entre zero, uma ou mais áreas escuras suaves identificadas a partir da imagem. Se o número de blocos escuros suaves na maior área escura suave da imagem puder conter mais que uma certa porcentagem (designada como Pbd) do número total de blocos, então a imagem (ou quadro de imagem) pode ser considerada como uma imagem com áreas escuras suaves.
[0131]Em algumas modalidades, um codec, conforme descrito aqui, pode pré-computar uma pluralidade de LUTs candidatas em diferentes conjuntos de parâmetros de remodelagem adaptativa. Por exemplo, em modalidades nas quais as funções de remodelagem são baseadas em funções de potência, cada conjunto candidato de parâmetros de remodelagem adaptativa pode incluir um limite superior de uma faixa
Petição 870170063697, de 29/08/2017, pág. 56/108
47/67 dinâmica suportada por um sinal de vídeo de origem, um limite inferior da faixa dinâmica suportado pelo sinal de vídeo de origem, um valor exponencial, etc.; uma LUT candidata correspondente pode ser pré-calculada com base, ao menos em parte, naquele conjunto candidato de parâmetros de remodelagem adaptativa. Da mesma forma, uma LUT candidata que representa um inverso de uma função de remodelagem candidata pode ser pré-calculada com base em um conjunto candidato de parâmetros de remodelagem adaptativa. Adicional, opcional ou alternativamente, um ou mais conjuntos candidatos de polinômios, juntamente com um ou mais conjuntos de coeficientes polinomiais candidatos, pivôs, etc. correspondentes, podem ser pré-calculados para aproximar uma ou mais LUTs alvo que podem representar uma função de remodelagem e um inverso da mesma. Alguns ou todos dentre os anteriormente mencionados como pré-calculados podem ser salvos na memória. Por exemplo, valores alfa candidatos a serem calculados podem incluir, mas não se limitam somente a qualquer um dentre: 0,5, 0,6, 0,7, 0,8, 0,9, 1,0, 1,1, 1,2, 1,3, 1,4, 1,5, 1,6, 1,7, 1,8, 1,9, etc. Observe que um valor alfa de 1,0 pode não precisar de uma LUT, já que uma função de remodelagem nesse caso é uma função linear. Em algumas modalidades, LUTs candidatas podem incluir LUTs com passos de quantização diferentes (por exemplo, representados por pares de valores de palavras-código vizinhos, etc.). Durante o tempo de execução, quando uma imagem está sendo remodelada em um codificador ou mapeada de modo inverso em um decodificador, com base em estatísticas calculadas baseadas no conteúdo real da imagem, uma LUT candidata (ou polinômios candidatos com coeficientes polinomiais candidatos, pivôs, etc.) pode ser selecionada dentre uma pluralidade de LUTs, como a LUT (ou polinômios com coeficientes polinomiais, pivôs, etc.) com o propósito de aplicar uma remodelagem adaptativa ou mapeamento inverso correspondente.
[0132]Em algumas modalidades, alguns dos ou todos os coeficientes polinomiais, pivôs, etc., de acordo com as técnicas aqui descritas, podem ser expressos
Petição 870170063697, de 29/08/2017, pág. 57/108
48/67 em um certo número de bytes, como quatro bytes (por exemplo, 1 byte para um número inteiro e 3 bytes para um ponto fracionário, etc.).
[0133]A LUT (ou os polinômios com coeficientes polinomiais, pivôs, etc.) podem ser adaptativamente determinados de imagem a imagem, de cena a cena, etc.
6. Exemplo de fluxos de processamento [0134]A Figura 5A ilustra um fluxo de processamento exemplificador. Em algumas modalidades, um ou mais dispositivos ou componentes de computação podem executar este fluxo de processamento. No bloco 502, um codificador de vídeo (por exemplo, o 102 da Figura 1A) recebe uma sequência de imagens de origem; o codificador de vídeo (102) calcula um ou mais valores estatísticos com base em uma ou mais imagens de origem em uma sequência de imagens de origem.
[0135]No bloco 504, o codificador de vídeo (102) seleciona, com base nos um ou mais valores estatísticos, uma função de remodelagem adaptativa para as uma ou mais imagens de origem.
[0136]No bloco 506, o codificador de vídeo (102) remodela de maneira adaptativa, com base, ao menos em parte, na função de remodelagem adaptativa selecionada, uma porção do conteúdo de vídeo de origem para gerar uma porção de conteúdo de vídeo remodelado, sendo que a porção de conteúdo de vídeo de origem é representada pelas uma ou mais imagens de origem.
[0137]No bloco 508, o codificador de vídeo (102) gera uma aproximação de um inverso da função de remodelagem adaptativa selecionada.
[0138]No bloco 510, o codificador de vídeo (102) codifica o conteúdo de vídeo remodelado e um conjunto de parâmetros de remodelagem adaptativa que definem a aproximação do inverso da função de remodelagem adaptativa selecionada em um sinal de vídeo remodelado.
[0139]Em uma modalidade, a porção de conteúdo de vídeo remodelado compreende uma ou mais imagens remodeladas.
Petição 870170063697, de 29/08/2017, pág. 58/108
49/67 [0140]Em uma modalidade, as uma ou mais imagens de origem formam uma cena.
[0141]Em uma modalidade, os um ou mais valores estatísticos incluem ao menos um dentre um valor máximo, um valor mínimo, um valor médio, um valor de mediana, um valor médio, um valor de desvio padrão, etc., conforme determinado com base nas palavras-código de origem nas uma ou mais imagens de origem.
[0142]Em uma modalidade, ao menos uma dentre a função de remodelagem adaptativa selecionada ou o inverso da função de remodelagem adaptativa selecionada compreende uma ou mais dentre funções analíticas, funções não analíticas, tabelas de pesquisa (LUTs), funções sigmoides, funções de potência, funções por partes, etc.
[0143]Em uma modalidade, a aproximação do inverso da função de remodelagem adaptativa selecionada é representada por um conjunto de polinômios.
[0144]Em uma modalidade, um número total de polinômios no conjunto de polinômios é limitado abaixo de um limiar numérico.
[0145]Em uma modalidade, coeficientes para polinômios no conjunto de polinômios são determinados com base na minimização de diferenças entre os valores dados pelos polinômios e os valores dados em uma tabela de pesquisa alvo (LUT) que representa o inverso da função de remodelagem adaptativa selecionada.
[0146]Em uma modalidade, o codificador de vídeo (102) é adicionalmente configurado para selecionar uma condição de continuidade, para gerar o conjunto de polinômios com base em um tipo de função determinada para o inverso da função de remodelagem adaptativa selecionada.
[0147]Em uma modalidade, o conjunto de polinômios é predeterminado antes que as uma ou mais imagens de origem sejam processadas para remodelagem adaptativa.
[0148]Em uma modalidade, o conjunto de polinômios é determinado dinamicamente enquanto as uma ou mais imagens de origem estão sendo processadas para
Petição 870170063697, de 29/08/2017, pág. 59/108
50/67 remodelagem adaptativa.
[0149]Em uma modalidade, o codificador de vídeo (102) é adicionalmente configurado para classificar as uma ou mais imagens de origem como uma das imagens que compreende áreas claras suaves, imagens que compreendem áreas escuras suaves, ou imagens de meio-tom.
[0150]Em uma modalidade, a porção de conteúdo de vídeo de origem é adaptativamente remodelada na porção de conteúdo de vídeo remodelado para um ou mais canais em uma pluralidade de canais de um espaço de cor.
[0151]Em uma modalidade, os um ou mais canais incluem um canal relacionado à luminância.
[0152]Em uma modalidade, o sinal de vídeo remodelado é um dentre um sinal de vídeo de 8 bits em dois canais ou um sinal de vídeo de 10 bits em um canal único.
[0153]Em uma modalidade, o sinal de vídeo remodelado é gerado por ao menos um dentre: um codificador para codificação avançada de vídeo (AVC), um codificador de MPEG-2 (Moving Picture Experts Group - grupo de especialistas em imagens com movimento), ou um codificador de HEVC (High Efficiency Video Coding - codificação de vídeo de alta eficiência).
[0154]Em uma modalidade, a sequência de imagens de origem é perceptualmente codificada.
[0155]Em uma modalidade, a porção de conteúdo de vídeo de origem é adaptativamente remodelada na porção de conteúdo de vídeo remodelado sem o uso de qualquer aproximação da função de remodelagem adaptativa selecionada.
[0156]A Figura 5B ilustra um fluxo de processamento exemplificador. Em algumas modalidades, um ou mais dispositivos ou componentes de computação podem executar este fluxo de processamento. No bloco 552, um decodificador de vídeo (por exemplo, o 152 da Figura 1A) recupera o conteúdo de vídeo remodelado e um conjunto de parâmetros de remodelagem adaptativa relacionados a um inverso de uma
Petição 870170063697, de 29/08/2017, pág. 60/108
51/67 função de remodelagem adaptativa a partir de um sinal de vídeo remodelado, sendo que o conteúdo de vídeo remodelado é gerado por um dispositivo a montante com base, ao menos em parte, na função de remodelagem adaptativa.
[0157]No bloco 504, o decodificador de vídeo (152) mapeia, de modo inverso e com base, ao menos em parte, no inverso da função de remodelagem adaptativa, uma porção do conteúdo de vídeo remodelado para gerar uma porção de conteúdo de vídeo reconstruído.
[0158]No bloco 506, o decodificador de vídeo (152) gera, com base, ao menos em parte, na porção de conteúdo de vídeo reconstruído, uma sequência de imagens reconstruídas, sendo que a sequência de imagens reconstruídas representa uma versão reconstruída de uma sequência de imagens de origem usada pelo dispositivo a montante para gerar o conteúdo de vídeo remodelado.
[0159]Em uma modalidade, o decodificador de vídeo (152) também é configurado para apresentar a pluralidade de imagens reconstruídas em um sistema de exibição.
[0160]Em uma modalidade, o decodificador de vídeo (152) também é configurado para: estabelecer uma aproximação de uma tabela de pesquisa alvo (LUT) que representa o inverso da função de modelação adaptativa, com base, ao menos em parte, no conjunto de parâmetros de remodelagem adaptativa relacionados a um inverso de uma função de remodelagem adaptativa a partir de um sinal de vídeo remodelado; etc.
[0161]Em várias modalidades exemplificadoras, um codificador, um decodificador, um transcodificador, um sistema, um aparelho, ou um ou mais dentre outros dispositivos de computação executa qualquer um dos ou uma parte dos métodos anteriormente mencionados, conforme descrito. Em uma modalidade, uma mídia de armazenamento não transitório legível por computador armazena instruções de software que, quando executadas por um ou mais processadores, leva à execução de um método, conforme descrito aqui.
Petição 870170063697, de 29/08/2017, pág. 61/108
52/67 [0162]Observe que, embora modalidades separadas sejam discutidas na presente invenção, qualquer combinação de modalidades e/ou modalidades parciais aqui discutidas podem ser combinadas para formar modalidades adicionais.
7. Otimizações em tempo real [0163]Conforme discutido anteriormente, o método para gerar uma aproximação por partes de uma função de remodelagem usando polinômios de segunda ordem pode ser resumido da seguinte forma: Dado um ponto de partida, uma busca é realizada para identificar um segmento ao longo da curva de remodelagem. Se um conjunto de condições de término for satisfeito, é então estabelecido um ponto de pivô e é iniciada uma nova busca até que toda a curva tenha sido segmentada. Este processo pode ser subdividido da seguinte forma: (1) calcular os coeficientes polinomiais para cada segmento para pontos de pivô candidatos, (2) determinar um erro de aproximação para cada candidato, e (3) se o erro de aproximação for menor do que um limiar alvo, declarar, então, o segmento como válido e definir um ponto de pivô para aquele segmento. (4) Quando todos os segmentos tiverem sido identificados, o processo pode ser repetido com o uso de um limiar alvo menor para melhorar a precisão dos polinômios de aproximação.
[0164]De um ponto de vista computacional, a etapa (1) é a mais demorada, seguida pela etapa (4). Como é de conhecimento dos inventores, algumas modalidades podem exigir uma implementação em tempo real, mesmo à custa de potencial redução da precisão. Nesta seção, diversas melhorias são apresentadas para essas implementações em tempo real. As melhorias podem ser divididas em duas classes: a) um método mais rápido para calcular os coeficientes polinomiais dentro de cada segmento, sem perda da precisão, e b) um método mais rápido para convergir, ou seja, reduzir o número total de iterações necessário para identificar os melhores segmentos de aproximação (de acordo com algum critério).
Solução polinomial rápida sem restrição de continuidade [0165]Considerar, sem perda de generalidade, o p-ésimo segmento de uma
Petição 870170063697, de 29/08/2017, pág. 62/108
53/67 curva aproximada por um polinômio de segunda ordem Vp,i = mp,0 + mp,1 · Sp,i + mp,2 · (Sp,i )2 , (1 0) onde sp,i denota o i-ésimo valor de pixel remodelado da faixa dinâmica padrão (ou inferior) (SDR ou LDR) correspondente ao p-ésimo segmento polinomial. Deixar que o ví seja o valor de pixel de alta faixa dinâmica (HDR) original colocalizado correspondente. Deixar que o v pi seja o pixel de HDR previsto colocalizado corres pondente. Deixar que o p-ésimo segmento do polinômio tenha uma faixa de valores de
SDR de Sp,l (L) a Sp,H (H), onde L é o índice de pivô baixo e Hé o índice de pivô alto no p-ésimo segmento atual (por uma questão de simplicidade, o índice p é retirado do L e de H). Em uma modalidade, os parâmetros (mp,j, para j=0, 1, e 2) do polinômio na equação (10) podem ser calculados usando-se a solução de quadrados mínimos da seguinte forma.
0166]A Equação (10) pode ser reescrita na forma de vetor-matriz, como:
VpL ' '1 Sp,L s2 Ί ò p.L
V p.L+1 1 Sp,L+1 s 2 òp ,L+1 mp 0
Vp,L+2 = 1 Sp,L+2 s 2 sp,L+2 mp1
mp 2
Vp,H _ 1 Sp ,H s 2 sp,H _
ou V p = S pM p , (11) com uma solução de quadrados mínimos dada por m p = ((S p)T (S p))-1((S p )T v p), onde ' Vp,L Vp,L+1 Vp,L+2 Vp,H denota um vetor dos pixels de HDR originais. Para facilitar a discussão, uma matriz Bp e um vetor ap também são definidos como:
Bp = (Sp )T (S p), (12)
Petição 870170063697, de 29/08/2017, pág. 63/108
54/67 e
ap = (S p)T Vp, (13)
em que
^p ,00 bp,01 bp,02
B p = ^p ,10 bp,11 bp,12
_bp, 20 bp,21 bp,22
= (S p )T (S p) Sp ,L Sp ,L Sp,L+1 Sp,L+1 Sp ,L+2 Sp,L+2
1 sp ,H Sp,H Sp,L Sp,L+1 Sp,L+2 s 2,l s 2 sp,L+1 Sp,L+2 Sp,H p,H [0167]Para a matriz Bp, cada um de seus elementos pode ser calculado como:
H b,.«, = Σ1 i=L bp,01
H = bp,10 = Σ Sp,í i=L
H bp,20 = bp,11 = bp,02 = Σ (sp,i) i=L (14)
H bp,21 = bp,12 = Σ (sp,i ) i=L
H bp.22 = Σ (Spi )4 i=L [0168]Para o vetor ap, dado ap,0 ap,1 ap,2 = (Sp )TVp
1 1 1
Sp,L s 7 Sp,L+1 s2 Sp,L+1 Sp,L+2 s2 Sp,L+2
Sp,H p,H Vp,L Vp,L+1 Vp,L+2 cada elemento pode ser calculado como
Petição 870170063697, de 29/08/2017, pág. 64/108
55/67 ap ,0 = Σ Vp ,i aP .1 Σ(ípjVpJ), (15) ap.2 = Σ (( SP .i Ι' VPJ ) [0169]A partir da equação (14), o cálculo dos elementos da matriz Bp exige o cálculo dos fatores:
Σ stp.i, k = 0, 1,2, 3, 4. (16) [0170]Entretanto, os valores sPi são finitos, ou seja, dentro de [0,1] se normalizados, ou dentro de [0, 2profund/dadedeb/t-1] se não normalizados, logo, em uma modalidade, o tempo de cálculo para resolver a equação (11) pode ser melhorado com o uso de tabelas de pesquisa (LUTs) pré-calculadas, conforme descrito a seguir.
[0171]Deixar que o e(beta) denote valores pré-calculados da equação (16) da seguinte forma:
, (17)
Máx.
Máx.
Máx.
Máx.
onde os índices /, j para β[/,ί] situam-se na faixa de /= [0, Max] e j=[0, 4], e Max denota o valor de pixel máximo possível em uma sequência de vídeo específica.
[0172]A partir da LUT acima, para qualquer valor p entre sl e sh, a matriz Bp pode ser calculada da seguinte forma bp,00 = H - L + 1 bp, 01 = bp ,10 = Ph ,1 - Pl-1,1 bp ,20 = bp,11 = bp,02 = Ph ,2 - Pl-1,2 (1 8) bp,21 = bp,12 = PH ,3 - PL-1,3 bp ,22 = PH ,4 - PL-1,4 [0173]Quando o pivô mais baixo é 0, pode-se substituir o L=0 na equação (14)
Petição 870170063697, de 29/08/2017, pág. 65/108
56/67 e calcular a matriz Bp usando-se bp ,00 = H +1 bp ,01 — bp ,10 — βΗ ,1 bp,20 — bp ,11 — bp,02 — βΗ ,2 (19) bp ,21 — bp ,12 — βΗ ,3 bp ,22 — βΗ ,4 [0174]Seguindo o mesmo processo para a LUT beta, pode-se também definir uma LUT alfa (α) (Max+1) x 4 da seguinte forma
Vo 50V0 50V0S
2 33 %+% SoVo+SjVj 50V0+51V1*0^0
2 2 3 3 3 zZ=V0+V1+V2 S0V0 +5^ +S2V2 5ovo +5i Vi +52v2 50 Vo + + S2V2 (20)
Máx. Máx. Máx. Máx
[0175]Então, os elementos do vetor ap podem ser calculados em termos de LUT alfa da seguinte forma:
ap,0 — aH ,0 - aL-1,0 ap ,1 — aH ,1 - aL-1,1 (21 ) ap ,2 aH ,2 aL-1,2 [0176]Para L=0, a equação (21) pode ser simplificada como ap,0 — aH ,0 ap ,1 — ap ,10 — aH ,1 (21 b) ap ,2 — aH ,2 [0177]Em resumo, a Tabela 1 mostra, em pseudocódigo, as etapas para um cálculo mais rápido dos coeficientes polinomiais:
Tabela 1: Solução rápida para parâmetros de polinômio, sem restrição de continuidade
1. No nível de sequência, criar uma LUT β
2. Em cada quadro, criar uma LUT α
Petição 870170063697, de 29/08/2017, pág. 66/108
57/67
3. Para cada segmento.
a. Calcular a matriz Bp através do uso das equações (18) ou (19)
b. Calcular o vetor ap através do uso das equações (21) ou (21 b)
c. Resolver m p = (B p)-1 a p
Solução polinomial rápida com restrição de continuidade [0178]Sob a restrição de continuidade, o ponto de partida do p-ésimo polinômio é forçado a ser conectado ao ponto de término do p-1-ésimo polinômio, de modo que as partes conectadas sejam continuas. Deixar que o Sp-i denote o valor de
SDR final para o p-1-ésimo segmento. Então, o valor de HDR previsto correspon dente pode ser calculado da seguinte forma:
Λ Z\ 2 v p-1 = mp-1,0 + mp-1,1 · Sp-1 + mp-1,2 (Sp-1) . (22) [0179]Sob a restrição de que, se spi = sp-1 deve haver um único valor previsto, vp-1, o polinômio de previsão pode ser derivado da seguinte forma:
(vpi - vp-1) = mtp,1 (sp,i - sp-1) + mtp,2 (sp,i - sp-1)2(23) que, como descrito anteriormente, pode ser expresso como:
m P,l m P,2 ^p^((Sp}T(Sp}r\(Sp}TNp}(24) [0180]Observe que, durante uma busca de segmento direta, o p-1-ésimo segmento se encontra antes do p-ésimo segmento, de modo que o ponto final do segmento p-1 deve coincidir com o ponto inicial do p-ésimo segmento; entretanto, durante uma busca de segmento inversa, o p-1-ésimo segmento se encontra depois do p-ésimo segmento; sendo assim, o ponto inicial do segmento p-1 deve coincidir com o ponto final do p-ésimo segmento.
[0181]Dada a equação (24), seguindo uma abordagem similar como a descrita anteriormente, pode-se provar que uma solução para esta equação pode ser derivada seguindo as etapas da Tabela 2.
Tabela 2: Solução rápida para parâmetros de polinômio com restrição de continuidade
Petição 870170063697, de 29/08/2017, pág. 67/108
58/67
1. No nível de sequência, criar uma LUT β
2. Para cada quadro, em cada início de aproximação de segmento, criar
a1 Ό’
_a2 _ _0_
3. Aproximação direta • Para a p-ésimo segmento atual, deixar que o L denote o ponto baixo conhecido • Para i = L,..., H • Calcular a matriz Bp, bp ,11 = βΗ ,2 - β.-1,2 bp ,12 = bp ,21 = β Η ,3 — β-1,3 bp ,22 = βΗ ,4 — β.-1,4 • Calcular o vetor ap, Deixar que Hdenote um ponto final candidato. Deixar que v/?, seja o valor de HDR estimado do ponto final do segmento anterior, então, θηονο ^velho + “Vi) S(Hí~L) (Vp,i ~ Tp-1) onde vpi é o valor de HDR correspondente ao valor SDR spi, e s(H—L) é o (Hi-L)-ésimo valor SDR.
4. Aproximação Inversa • Para o pésimo segmento atual, deixar que o H denote o ponto alto conhecido.
• Para i = H,... L • Calcular a matriz Bp, bp ,11 = βΗ ,2 — β—1,2 bp ,12 = bp ,21 = — (βΗ ,3 — β.—1,3) bp ,22 = βΗ ,4 — β—1,4
Petição 870170063697, de 29/08/2017, pág. 68/108
59/67 • Calcular o vetor ap; deixar que o /./denote um ponto inicial candidato. Deixar que o Vp-i seja o valor de HDR calculado a partir do ponto inicial do segmento direto, e então, atualizar, θηονο ^velho+ S(H-Li)(Vpíi ^p-1) onde vp,t é o valor de HDR correspondente ao valor SDR spie s(H_ é o (/-/-/_/)-ésimo valor SDR.
5. mp = Bp 1ap
Condições de término adaptativo para convergência mais rápida [0182]Conforme descrito anteriormente, o algoritmo de aproximação trabalha buscando continuamente segmentos de polinômio. Ele tem início em um ponto de partida e, então, tenta pontos finais candidatos ao longo da curva; se as condições de término forem satisfeitas em qualquer ponto na curva, o algoritmo define aquele ponto como o fim do pivô e, então, inicia uma nova busca. Conforme descrito anteriormente, as condições de término de qualquer segmento são:
Regra n° 1:
(preverrorcondition && curr_error_condition) || max_custom_length_condition [0183]Ou seja, ou
i. existe uma borda crescente entre dois detectores de limiar consecutivos, isto é, o erro de ajuste atual é menor do que o limiar de erro, e um ajuste usando um ponto a menos produz um erro menor que o limiar, ou ii. o segmento é mais longo que um comprimento máximo predefinido.
Regra n°2:
(currerrorcondition && mincustomlengthcondition) || max_custom_length_condition
Petição 870170063697, de 29/08/2017, pág. 69/108
60/67 [0184]Ou seja, ou
i. o erro de ajuste atual é menor que o limiar de erro, e os segmentos devem ter ao menos um comprimento mínimo predefinido, ou ii. o segmento é mais longo que um comprimento máximo predefinido.
Regra n° 3:
curr_error_condition && min_custom_length_condition [0185]Ou seja:
i. o erro de ajuste atual é menor que o limiar de erro, e ii. o segmento satisfaz um comprimento mínimo predefinido.
[0186]Em uma modalidade, o limiar de erro começa a partir de um valor fixo e, no final de cada iteração, ele é reduzido k vezes (k < 1, por exemplo, k = 0,75). A busca continua até que um número máximo de iterações (n) seja alcançado.
[0187]Em uma modalidade, dado um limiar de erro original (ésimo), em cada iteração o limiar é reduzido por uma porcentagem fixa (por exemplo, ésimo = k*ésimo, k < 1). Considerando o pior cenário, no qual a solução ótima tem erro zero, com uma redução de erro por k em cada iteração, dadas n iterações, essa estratégia garante a produção de uma solução que é, ao menos, kn mais próxima da ótima. A Tabela 3 apresenta um método exemplificador para ajustar o erro alvo de acordo com outra modalidade, que proporciona uma convergência subótima mais rápida.
Tabela 3: Ajuste de limiar de erro adaptativo .Definir um limiar de erro inicial th (por exemplo, th = 0,005).
2. Ajustar os polinômios de 2a ordem aos segmentos um a um, da esquerda para a direta (pesquisa direta) ou da direita para a esquerda (pesquisa invertida); cada segmento é escolhido de tal modo que o erro de ajuste não deve exceder o ésimo limiar.
3. Manter um registro do erro mínimo encontrado após cada ajuste da curva como eft.
4. Definir um novo erro alvo como k*efit onde k < 1, (por exemplo, k = 0,5)
Petição 870170063697, de 29/08/2017, pág. 70/108
61/67 [0188]Observou-se que valores maiores de k melhoram o desempenho de erro, mas à custa da velocidade.
[0189]Observou-se também que, para alguns quadros, o erro converge para um valor constante. Então, prosseguir com iterações não agrega nenhum valor em termos de desempenho de erro. Esse cenário pode ser evitado acrescentando-se mais uma condição de término;
Regra n° 4:
i. Finalizar se o melhor erro na iteração anterior (por exemplo, em (t-1)) é igual (dentro de um limiar) ao melhor erro na iteração atual (por exemplo, efit (t)) (por exemplo, (t) - efit (t-1))| < ésimo2).
[0190]A condição de término adicionada faz com que o algoritmo interrompa a busca por iterações adicionais, se se constatar que não há melhora no desempenho de redução de limiar de erro. Observou-se que a adição dessa condição não insere nenhum artefato visual significativo após a aplicação da função de remodelagem inversa na imagem.
Construção da LUT de remodelagem com pesquisa invertida [0191]Uma LUT com pesquisa invertida permite que um decodificador realize mapeamento inverso, ou seja, mapeie valores remodelados de entrada (SDR) para valores de HDR originais. Uma vez que múltiplos valores de HDR podem ser mapeados em um valor SDR único, em uma modalidade, sem limitação, o valor de HDR médio é selecionado. A Tabela 4 descreve em pseudocódigo a rápida construção de uma LUT de remodelagem com pesquisa invertida.
______Tabela 4 - Construção de uma LUT de remodelagem com pesquisa invertida // Deixar que o HDR_to_SDR seja a LUT direta que converte HDR em SDR.
// Inicializar o conjunto de histograma para (i= 0; i < SDRmax; i++) hist[i] = 0; // SDRmax é a intensidade máxima de SDR // Inicializar a LUT com pesquisa invertida
Petição 870170063697, de 29/08/2017, pág. 71/108
62/67 para (i= 0; i < SDRmax; i++) SDR_to_HDR[i] = 0; //Formar um histograma e uma tabela cumulativa Para k=0; k < HDRmax; k++) {
sdr = HDR_to_SDR[k]; hist[sdr]++;
SDR_to_HDR[sdr] += k;
} //Usar o histograma para atualizar a LUT com pesquisa invertida para (sdr = 0; sdr < SDRmax; sdr++) { SDR_to_HDR[sdr] = SDR_to_HDR[sdr]/hist[sdr]; // Usar o valor médio }
8. Mecanismos de implementação - visão geral de hardware [0192]De acordo com uma modalidade, as técnicas descritas aqui são implementadas por um ou mais dispositivos de computação com finalidades especiais. Os dispositivos de computação para propósitos especiais podem ser conectados eletricamente para executar as técnicas, ou podem incluir dispositivos eletrônicos digitais, como um ou mais circuitos integrados para aplicação específica (ASICs) ou matrizes de porta programável em campo (FPGAs) que são persistentemente programados para executar as técnicas, ou podem incluir um ou mais processadores de hardware de uso geral programados para executar as técnicas de acordo com instruções de programa em um firmware, uma memória, outro armazenamento, ou uma combinação dos mesmos. Tais dispositivos de computação para propósitos especiais podem também combinar lógica personalizada conectada com fio, ASICS, FPGAs com programação personalizada para executar as técnicas. Os dispositivos de computação para propósitos especiais podem ser sistemas de computador de
Petição 870170063697, de 29/08/2017, pág. 72/108
63/67 mesa, sistemas de computador portáteis, dispositivos portáteis, dispositivos de rede, ou qualquer outro dispositivo que incorpore uma lógica conectada com fio e/ou lógica de programa para implementar as técnicas.
[0193]Por exemplo, a Figura 6 é um diagrama de blocos que ilustra um sistema de computador 600, na qual uma modalidade exemplificadora da invenção pode ser implementada. O sistema de computador 600 inclui um barramento 602 ou outro mecanismo de comunicação para comunicar informações, e um processador de hardware 604 acoplado ao barramento 602 para processar informações. O processador de hardware 604 pode ser, por exemplo, um microprocessador de uso geral.
[0194]O sistema de computador 600 também inclui uma memória principal 606, como uma memória de acesso aleatório (RAM) ou outro dispositivo de armazenamento dinâmico, acoplado ao barramento 602 para armazenar informações e instruções a serem executadas pelo processador 604. A memória principal 606 também pode ser usada para armazenar variáveis temporárias ou outras informações intermediárias durante a execução de instruções a serem executadas pelo processador 604. Tais instruções, quando armazenadas numa mídia de armazenamento não transitório acessível ao processador 604, tornam o sistema de computador 600 um instrumento para propósitos especiais que é personalizado para executar operações especificadas nas instruções.
[0195]O sistema de computador 600 também inclui uma memória somente de leitura (ROM) 608 ou outro dispositivo de armazenamento estático acoplado ao barramento 602 para armazenar informações estáticas e instruções para o processador 604. Um dispositivo de armazenamento 610, como um disco magnético ou disco óptico, é fornecido e acoplado ao barramento 602 para armazenar informações e instruções.
[0196]O sistema de computador 600 pode ser acoplado através de um barramento 602 a uma tela 612, como uma tela de cristal líquido, para exibir informações a um usuário de computador. Um dispositivo de entrada 614, incluindo teclas alfaPetição 870170063697, de 29/08/2017, pág. 73/108
64/67 numéricas e outras, é acoplado ao barramento 602 para transmitir informações e seleções de comando ao processador 604. Outro tipo de dispositivo de entrada de usuário é o controle de cursor 616, como um mouse, uma trackball, ou teclas de direção de cursor para transmitir informações e seleções de comando ao processador 604, e para controlar o movimento do cursor na tela 612. Este dispositivo de entrada tipicamente tem dois graus de liberdade em dois eixos, um primeiro eixo (por exemplo, x) e um segundo eixo (por exemplo, y), que permitem que o dispositivo especifique posições em um plano.
[0197]O sistema de computador 600 pode implementar as técnicas aqui descritas usando uma lógica personalizada conectada com fio, um ou mais ASICs ou FPGAs, um firmware e/ou uma lógica de programa que, em combinação com o sistema de computador, faz com que ou programa o sistema de computador 600 para ser uma máquina para propósitos especiais. De acordo com uma modalidade, as técnicas da presente invenção são executadas pelo sistema de computador 600 em resposta à execução, pelo processador 604, de uma ou mais sequências das uma ou mais instruções contidas na memória principal 606. Tais instruções podem ser lidas na memória principal 606 de outra mídia de armazenamento, como o dispositivo de armazenamento 610. A execução das sequências de instruções contidas na memória principal 606 faz com que o processador 604 execute as etapas de processamento aqui descritas. Em modalidades alternativas, um conjunto de circuitos conectados com fio pode ser usado em lugar de ou em combinação com instruções de software.
[0198]O termo mídia de armazenamento, para uso na presente invenção, refere-se a qualquer mídia de armazenamento não transitório e/ou instruções que fazem com que uma máquina opere de um modo específico. Tal mídia de armazenamento pode compreender uma mídia não volátil e/ou mídia volátil. Uma mídia não volátil inclui, por exemplo, discos ópticos ou magnéticos, como o dispositivo de
Petição 870170063697, de 29/08/2017, pág. 74/108
65/67 armazenamento 610. Uma mídia volátil inclui uma memória dinâmica, como a memória principal 606. Formas comuns de mídia de armazenamento incluem, por exemplo, um disquete, um disco flexível, um disco rígido, uma unidade de estado sólido, uma fita magnética, ou qualquer outra mídia de armazenamento de dados magnéticos, um CD-ROM, qualquer outra mídia de armazenamento de dados ópticos, qualquer mídia física com padrões de furos, uma RAM, uma PROM, e uma EPROM, uma FLASH-EPROM, uma NVRAM, qualquer outro chip ou cartucho de memória.
[0199]A mídia de armazenamento é diferente da mídia de transmissão, mas pode ser usada em conjunto com a mesma. A mídia de transmissão participa da transferência de informações entre as mídias de armazenamento. Por exemplo, a mídia de transmissão inclui cabos coaxiais, fios de cobre e fibras óticas, incluindo os fios que compreendem o barramento 602. A mídia de transmissão também pode assumir a forma de ondas acústicas ou luminosas, como aquelas geradas durante transmissões de dados por ondas de rádio e infravermelho.
[0200]Várias formas de mídia podem estar envolvidas no transporte de uma ou mais sequências das uma ou mais instruções para execução pelo processador 604. Por exemplo, as instruções podem inicialmente ser transportadas em um disco magnético ou uma unidade de estado sólido de um computador remoto. O computador remoto pode carregar as instruções em sua memória dinâmica e enviar as instruções através de uma linha telefônica usando um modem. Um modem local para sistema de computador 600 pode receber os dados na linha telefônica e usar um transmissor infravermelho para converter os dados em um sinal infravermelho. Um detector de infravermelho pode receber os dados transmitidos no sinal infravermelho e o um conjunto de circuitos adequado pode colocar os dados no barramento 602. O barramento 602 transmite os dados para a memória principal 606, da qual o processador 604 recupera e executa as instruções. As instruções recebidas pela mePetição 870170063697, de 29/08/2017, pág. 75/108
66/67 mória principal 606 podem, opcionalmente, ser armazenadas no dispositivo de armazenamento 610 antes ou após sua execução pelo processador 604.
[0201]O sistema de computador 600 também inclui uma interface de comunicação 618 acoplada ao barramento 602. A interface de comunicação 618 fornece um acoplamento de comunicação de dados bidirecional a um link de rede 620 que está conectado a uma rede local 622. Por exemplo, a interface de comunicação 618 pode ser um cartão de rede digital de serviços integrados (ISDN), um modem por cabo, um modem de satélite, ou um modem para fornecer uma conexão de comunicação de dados a um tipo correspondente de linha telefônica. Como outro exemplo, a interface de comunicação 618 pode ser um cartão de rede de área local (LAN) para fornecer uma conexão de comunicação de dados para uma LAN compatível. Links sem fio podem também ser implementados. Em qualquer tal implementação, a interface de comunicação 618 envia e recebe sinais elétricos, eletromagnéticos ou ópticos que transmitem fluxos de dados digitais que representam diversos tipos de informação.
[0202]O link de rede 620 fornece tipicamente comunicação de dados através de uma ou mais redes para outros dispositivos de dados. Por exemplo, o link de rede 620 pode fornecer uma conexão através de rede local 622 a um computador hospedeiro 624, ou a um equipamento de dados operado por um provedor de serviço de internet (ISP) 626. O ISP 626, por sua vez, fornece serviços de comunicação de dados através da rede mundial de comunicação de dados por pacote, comumente denominada Internet 628. Tanto a rede local 622 como a Internet 628 usam sinais elétricos, eletromagnéticos ou ópticos que transmitem fluxos de dados digitais. Os sinais através das várias redes e os sinais no link de rede 620 e através da interface de comunicação 618, que transmitem os dados digitais para o sistema de computador 600 e a partir dele 600, são formas exemplificadoras de mídia de transmissão.
[0203]O sistema de computador 600 pode enviar mensagens e receber daPetição 870170063697, de 29/08/2017, pág. 76/108
67/67 dos, incluindo um código de programa, através de rede(s), um link de rede 620 e uma interface de comunicação 618. No exemplo da Internet, um servidor 630 pode transmitir um código solicitado 630 para um aplicativo através da Internet 628, ISP 626, rede local 622 e interface de comunicação 618.
[0204]O código recebido pode ser executado pelo processador 604 conforme recebido, e/ou armazenado no dispositivo de armazenamento 610, ou outro armazenamento não volátil para execução posterior.
9. Equivalentes, extensões, alternativas e variados [0205]No relatório descritivo anteriormente mencionado, as modalidades exemplificadoras da presente invenção foram descritas com referência a numerosos detalhes específicos que podem variar de implementação para implementação. Portanto, o indicador único e exclusivo do que é a invenção, e é pretendido pelo requerente que seja a invenção, é o conjunto de reivindicações que resultam deste pedido, na forma específica na qual tais reivindicações resultam, incluindo qualquer correção subsequente. Em quaisquer definições explicitamente descritas aqui para termos contidos em tais reivindicações deve prevalecer o significado de tais termos conforme usados nas reivindicações. Consequentemente, nenhuma limitação, elemento, propriedade, característica, vantagem ou atributo que não esteja expressamente recitado em uma reivindicação deve limitar o escopo de tal reivindicação de qualquer modo. O relatório descritivo e os desenhos são, consequentemente, considerados como sendo ilustrativos ao invés de restritivos.
Petição 870170063697, de 29/08/2017, pág. 77/108

Claims (20)

  1. REIVINDICAÇÕES
    1. Método, CARACTERIZADO pelo fato de compreender:
    calcular um ou mais valores estatísticos com base em uma ou mais imagens de origem em uma sequência de imagens de origem;
    selecionar, com base nos um ou mais valores estatísticos, uma função de remodelagem adaptativa para as uma ou mais imagens de origem, a função de remodelagem adaptativa mapeando palavras-código de origem para palavras-código remodeladas;
    remodelar de maneira adaptativa, com base, ao menos em parte, na função de remodelagem adaptativa selecionada, uma porção de conteúdo de vídeo de origem para gerar uma porção de conteúdo de vídeo remodelado, a porção de conteúdo de vídeo de origem sendo representada pelas uma ou mais imagens de origem;
    gerar uma aproximação de um inverso da função de remodelagem adaptativa selecionada, que compreende:
    determinar uma tabela de pesquisa (LUT) alvo compreendendo pares chave-valor representando o inverso da função de remodelagem adaptativa selecionada;
    gerar uma primeira aproximação da LUT alvo realizando uma busca direta a partir de chaves pequenas para chaves grandes nos pares chave-valor da LUT;
    gerar uma segunda aproximação da LUT alvo realizando uma busca invertida a partir de chaves grandes para chaves pequenas nos pares chave-valor da LUT; e selecionar um dentre a primeira aproximação e a segunda aproximação pela comparação de erros de aproximação respectivamente gerados pela busca direta e pela busca invertida;
    Petição 870190020308, de 27/02/2019, pág. 59/64
  2. 2/6 codificar o conteúdo de vídeo remodelado e um conjunto de parâmetros de remodelagem adaptativa que definem a aproximação do inverso da função de remodelagem adaptativa selecionada em um sinal de vídeo remodelado.
    em que a aproximação do inverso da função de remodelagem adaptativa selecionada é representada por um conjunto de polinômios de segunda ordem, que o método compreendendo ainda:
    determinar uma condição de continuidade para aproximar a LUT alvo;
    com base na condição de continuidade, selecionar uma primeira regra de parada para a busca direta usada para aproximar a LUT alvo, e uma segunda regra de parada para a busca invertida usada para aproximar a LUT alvo;
    gerar a primeira aproximação com base, ao menos em parte, na primeira regra de parada; e gerar a segunda aproximação com base, ao menos em parte, na segunda regra de parada.
    2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a porção do conteúdo de vídeo remodelado compreende uma ou mais imagens remodeladas.
  3. 3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as uma ou mais imagens formam uma cena.
  4. 4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a LUT alvo é uma LUT com pesquisa invertida ótima gerada por médias de valores de palavra-código de origem que são mapeados para cada valor de palavra-código remodelada em uma pluralidade de valores de palavra-código remodelada, que são usados para remodelar o conteúdo do vídeo de origem.
  5. 5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os um ou mais valores estatísticos incluem ao menos um dentre um valor máximo, um valor mínimo, um valor médio, um valor de mediana, um valor médio, ou um
    Petição 870190020308, de 27/02/2019, pág. 60/64
    3/6 valor de desvio padrão, conforme determinado com base nas palavras-código de origem nas uma ou mais imagens de origem.
  6. 6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que ao menos uma dentre a função de remodelagem adaptativa selecionada ou o inverso da função de remodelagem adaptativa selecionada compreende uma ou mais dentre funções analíticas, funções não analíticas, tabelas de pesquisa (LUTs), funções sigmoides, funções de potência, ou funções por partes.
  7. 7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os coeficientes para polinômios no conjunto de polinômios são determinados com base na minimização de diferenças entre valores dados pelos polinômios e valores dados em uma tabela de pesquisa alvo (LUT) que representa o inverso da função de remodelagem adaptativa selecionada.
  8. 8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de compreender ainda selecionar uma condição de continuidade para gerar o conjunto de polinômios com base em um tipo de função determinada para o inverso da função de remodelagem adaptativa selecionada.
  9. 9. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o conjunto de polinômios é determinado de maneira dinâmica enquanto a uma ou mais imagens de origem são processadas para remodelagem adaptativa.
  10. 10. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de compreender ainda classificar a uma ou mais imagens de origem como um dentre imagens que compreendem áreas claras suaves, imagens que compreendem áreas escuras suaves, ou imagens de meio-tom.
  11. 11. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a função de remodelagem adaptativa é aproximada usando-se dois ou mais polinômios de segunda ordem e calculando-se os coeficientes mp do p-ésimo polinômio, e compreende:
    Petição 870190020308, de 27/02/2019, pág. 61/64
    4/6 determinar uma primeira tabela de pesquisa (LUT) beta com base em uma função dos valores remodelados para valores pixel na sequência de imagens de origem;
    determinar uma segunda tabela de pesquisa (LUT) alfa com base em uma função dos valores de pixel originais em uma imagem de origem e os valores de pixel remodelados;
    determinar uma matriz Bp com base na primeira LUT;
    determinar um vetor ap com base na segunda LUT; e calcular os coeficientes mp do p-ésimo polinômio como B^a^.
  12. 12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que, para um elemento /3[k,j] da primeira LUT:
    /3[Zc,y] = 1, para k=Q< k< Max, j=Q, /3[k,j] = Σ^=ο s/, para 0 < k < Max, 1 < j < 4, onde Max denota o valor de pixel máximo dos pixels remodelados sz correspondentes aos pixels vz de uma imagem de origem na sequência de imagens de origem.
  13. 13. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que, para um elemento α [k,j] da segunda LUT, para 0 < j < 3, a[kj] = 2^=0 vfs/, para 0 < k < Max, onde Max denota o valor de pixel máximo dos pixels remodelados sz correspondentes aos pixels vz de uma imagem de origem na sequência de imagens de origem.
  14. 14. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que gerar uma LUT para uma função de remodelagem invertida compreende:
    gerar de um histograma de valores remodelados com base na função de remodelagem direta;
    gerar uma tabela cumulativa, em que um registro na tabela cumulativa compreende a soma dos valores de pixel originais mapeados para o mesmo valor remodelado; e
    Petição 870190020308, de 27/02/2019, pág. 62/64
    5/6 gerar a LUT para a função de remodelagem invertida com base no histograma dos valores remodelados e na tabela cumulativa.
  15. 15. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a função de remodelagem adaptativa é aproximada com o uso de dois ou mais polinômios de segunda ordem, e pontos de pivô para os dois ou mais polinômios são selecionados de acordo com um método iterativo.
  16. 16. Método, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o método iterativo compreende ainda:
    definir um limiar de erro inicial;
    ajustar segmentos da função de remodelagem adaptativa de modo que um erro de ajuste de cada um do um ou mais polinômios com um segmento correspondente na função de remodelagem adaptativa não exceda o limiar de erro inicial;
    determinar um mínimo para todos os erros de ajuste em todos os segmentos da função de remodelagem adaptativa; e repetir o processo de ajuste para um novo limiar de erro, em que o novo limiar de erro é menor que o mínimo de todos os erros de ajuste.
  17. 17. Método, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de compreender ainda terminar o método iterativo quando o mínimo de todos os erros de ajuste na iteração atual for igual, dentro de um limiar, ao mínimo de todos os erros de ajuste na iteração anterior.
  18. 18. Método para reconstruir vídeo usando um processador, em um decodificador, o método CARACTERIZADO pelo fato de compreender:
    recuperar conteúdo de vídeo remodelado e um conjunto de parâmetros de remodelagem adaptativa que definem um conjunto de polinômios de segunda ordem que se aproximam de um inverso de uma função de remodelagem adaptativa a partir de um sinal de vídeo remodelado, o inverso da função de remodelagem adaptativa mapeando palavras-código remodeladas para palavras-código de origem reconsPetição 870190020308, de 27/02/2019, pág. 63/64
    6/6 truídas;
    o conteúdo de vídeo remodelado sendo gerado por um dispositivo a montante com base, ao menos em parte, na função de remodelagem adaptativa, em que a função de remodelagem adaptativa é selecionada conforme o método definido na reivindicação 1;
    mapear de modo inverso, com base, ao menos em parte, no conjunto de polinômios de segunda ordem que se aproxima do inverso da função de remodelagem adaptativa, uma porção do conteúdo de vídeo remodelado para gerar uma porção de conteúdo de vídeo reconstruído;
    gerar, com base, ao menos em parte, na porção de conteúdo de vídeo reconstruído, uma sequência de imagens reconstruídas, a sequência de imagens reconstruídas representando uma versão reconstruída de uma sequência de imagens de origem usada pelo dispositivo a montante para gerar o conteúdo de vídeo remodelado.
  19. 19. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de compreender ainda renderizar a pluralidade de imagens reconstruídas em um sistema de exibição.
  20. 20. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de compreender ainda:
    estabelecer, com base, ao menos em parte, no conjunto de parâmetros de remodelagem adaptativa relacionados à aproximação do inverso da função de remodelagem adaptativa a partir do sinal de vídeo remodelado, uma aproximação de uma tabela de pesquisa (LUT) alvo que representa o inverso da função de remodelagem adaptativa.
BR112017018552A 2015-03-20 2016-03-17 aproximação para remodelagem de sinal BR112017018552B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562136402P 2015-03-20 2015-03-20
US201562199391P 2015-07-31 2015-07-31
PCT/US2016/022772 WO2016153896A1 (en) 2015-03-20 2016-03-17 Signal reshaping approximation

Publications (2)

Publication Number Publication Date
BR112017018552A2 BR112017018552A2 (pt) 2018-04-24
BR112017018552B1 true BR112017018552B1 (pt) 2019-10-22

Family

ID=55640936

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017018552A BR112017018552B1 (pt) 2015-03-20 2016-03-17 aproximação para remodelagem de sinal

Country Status (8)

Country Link
US (1) US10080026B2 (pt)
EP (1) EP3272123B1 (pt)
JP (1) JP6374614B2 (pt)
KR (1) KR101844732B1 (pt)
CN (1) CN107409221B (pt)
BR (1) BR112017018552B1 (pt)
RU (1) RU2666234C1 (pt)
WO (1) WO2016153896A1 (pt)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107771392B (zh) * 2015-06-30 2021-08-31 杜比实验室特许公司 用于高动态范围图像的实时内容自适应感知量化器
US10609395B2 (en) * 2015-07-28 2020-03-31 Vid Scale, Inc. High dynamic range video coding architectures with multiple operating modes
US10778983B2 (en) 2015-09-23 2020-09-15 Dolby Laboratories Licensing Corporation Preserving texture/noise consistency in video codecs
JP6609708B2 (ja) * 2015-09-23 2019-11-20 アリス エンタープライジズ エルエルシー 高ダイナミックレンジ映像データの再形成および適応のためのシステムおよび方法
EP3151562B1 (en) 2015-09-29 2020-06-17 Dolby Laboratories Licensing Corporation Feature based bitrate allocation in non-backward compatible multi-layer codec via machine learning
US10311558B2 (en) 2015-11-16 2019-06-04 Dolby Laboratories Licensing Corporation Efficient image processing on content-adaptive PQ signal domain
US10223774B2 (en) * 2016-02-02 2019-03-05 Dolby Laboratories Licensing Corporation Single-pass and multi-pass-based polynomial approximations for reshaping functions
CN108885783B (zh) 2016-03-23 2022-02-15 杜比实验室特许公司 编码和解码可逆制作质量单层视频信号
EP3453175B1 (en) * 2016-05-04 2022-03-02 InterDigital VC Holdings, Inc. Method and apparatus for encoding/decoding a high dynamic range picture into a coded bistream
AU2017339463B2 (en) * 2016-10-05 2020-09-03 Dolby Laboratories Licensing Corporation Source color volume information messaging
EP3306563B1 (en) * 2016-10-05 2022-01-12 Dolby Laboratories Licensing Corporation Inverse luma/chroma mappings with histogram transfer and approximation
US10264287B2 (en) 2016-10-05 2019-04-16 Dolby Laboratories Licensing Corporation Inverse luma/chroma mappings with histogram transfer and approximation
JP7037584B2 (ja) 2017-06-16 2022-03-16 ドルビー ラボラトリーズ ライセンシング コーポレイション 効率的なエンド・ツー・エンドシングルレイヤー逆ディスプレイマネジメント符号化
WO2019023202A1 (en) * 2017-07-24 2019-01-31 Dolby Laboratories Licensing Corporation REVERSE MONOCANAL MAPPING FOR IMAGE / VIDEO PROCESSING
EP3659339B1 (en) 2017-07-24 2021-09-01 Dolby Laboratories Licensing Corporation Single-channel inverse mapping for image/video processing
US10609372B2 (en) 2017-09-29 2020-03-31 Dolby Laboratories Licensing Corporation Up-conversion to content adaptive perceptual quantization video signals
EP3753253A1 (en) * 2018-02-14 2020-12-23 Dolby Laboratories Licensing Corporation Image reshaping in video coding using rate distortion optimization
US10609424B2 (en) 2018-03-09 2020-03-31 Dolby Laboratories Licensing Corporation Single-layer progressive coding for supporting multi-capability HDR composition
WO2019217751A1 (en) 2018-05-11 2019-11-14 Dolby Laboratories Licensing Corporation High-fidelity full reference and high-efficiency reduced reference encoding in end-to-end single-layer backward compatible encoding pipeline
RU2691082C1 (ru) * 2018-09-18 2019-06-10 федеральное государственное бюджетное образовательное учреждение высшего образования "Донской государственный технический университет" (ДГТУ) Способ тоновой аппроксимации палитры монохромного полутонового изображения
WO2020061172A1 (en) 2018-09-19 2020-03-26 Dolby Laboratories Licensing Corporation Automatic display management metadata generation for gaming and/or sdr+ contents
WO2020068666A1 (en) * 2018-09-24 2020-04-02 Dolby Laboratories Licensing Corporation Image denoising in sdr to hdr image conversion
EP3861729A1 (en) * 2018-10-03 2021-08-11 Dolby Laboratories Licensing Corporation Reducing banding artifacts in backward-compatible hdr imaging
RU2703933C1 (ru) * 2018-11-08 2019-10-22 федеральное государственное бюджетное образовательное учреждение высшего образования "Кемеровский государственный университет" (КемГУ) Способ идентификации мультисинусоидальных цифровых сигналов
JP7299982B2 (ja) 2018-12-18 2023-06-28 ドルビー ラボラトリーズ ライセンシング コーポレイション 拡張標準ダイナミックレンジビデオ(sdr+)における機械学習ベースのダイナミックコンポージング
US11647188B2 (en) * 2019-01-04 2023-05-09 Interdigital Vc Holdings, Inc. Inverse mapping simplification
WO2020180120A1 (ko) * 2019-03-05 2020-09-10 엘지전자 주식회사 Lmcs에 기반한 영상 코딩 방법 및 그 장치
KR102491959B1 (ko) * 2019-03-11 2023-01-27 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
US20220132110A1 (en) * 2019-03-23 2022-04-28 Lg Electronics Inc. Filtering-based video or image coding comprising mapping
EP3734588B1 (en) 2019-04-30 2022-12-07 Dolby Laboratories Licensing Corp. Color appearance preservation in video codecs
US20220301124A1 (en) 2019-08-15 2022-09-22 Dolby Laboratories Licensing Corporation Efficient user-defined sdr-to-hdr conversion with model templates
TWI812874B (zh) 2019-10-01 2023-08-21 美商杜拜研究特許公司 張量乘積之b平滑曲線預測子
EP4046383A1 (en) 2019-10-17 2022-08-24 Dolby Laboratories Licensing Corporation Adjustable trade-off between quality and computation complexity in video codecs
US20230039038A1 (en) * 2019-11-27 2023-02-09 Dolby Laboratories Licensing Corporation Rate-control-aware reshaping in hdr imaging
US11838531B2 (en) 2019-12-06 2023-12-05 Dolby Laboratories Licensing Corporation Cascade prediction
EP4107946B1 (en) * 2020-02-19 2023-11-22 Dolby Laboratories Licensing Corporation Joint forward and backward neural network optimization in image processing
CN110996131B (zh) * 2020-03-02 2020-11-10 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机设备及存储介质
US11516429B2 (en) * 2020-04-22 2022-11-29 Grass Valley Limited System and method for image format conversion using 3D lookup table approximation
WO2021216767A1 (en) * 2020-04-22 2021-10-28 Dolby Laboratories Licensing Corporation Iterative optimization of reshaping functions in single-layer hdr image codec
US20230308667A1 (en) 2020-08-06 2023-09-28 Dolby Laboratories Licensing Corporation Adaptive streaming with false contouring alleviation
EP4197190A1 (en) * 2020-08-17 2023-06-21 Dolby Laboratories Licensing Corporation Picture metadata for high dynamic range video
JP7472403B2 (ja) 2020-10-02 2024-04-22 ドルビー ラボラトリーズ ライセンシング コーポレイション Sdrからhdrへのアップコンバートのための適応的ローカルリシェーピング
KR20220053102A (ko) * 2020-10-21 2022-04-29 삼성디스플레이 주식회사 하이 다이내믹 레인지 후-처리 장치, 및 이를 포함하는 표시 장치
EP4245035A1 (en) 2020-11-11 2023-09-20 Dolby Laboratories Licensing Corporation Wrapped reshaping for codeword augmentation with neighborhood consistency
EP4285590A1 (en) 2021-01-27 2023-12-06 Dolby Laboratories Licensing Corporation Image enhancement via global and local reshaping
TW202232960A (zh) * 2021-02-03 2022-08-16 圓剛科技股份有限公司 網路資訊傳輸方法及網路資訊傳輸系統
EP4341903A1 (en) 2021-05-21 2024-03-27 Dolby Laboratories Licensing Corporation Patch-based reshaping and metadata for volumetric video
EP4352964A1 (en) 2021-06-08 2024-04-17 Dolby Laboratories Licensing Corporation Chained reshaping function optimization
WO2023022956A1 (en) 2021-08-16 2023-02-23 Dolby Laboratories Licensing Corporation Applying minimum and average distance constraint in video streaming
WO2023033991A1 (en) 2021-08-30 2023-03-09 Dolby Laboratories Licensing Corporation Reshaper for learning-based image/video coding
WO2023096728A1 (en) 2021-11-29 2023-06-01 Dolby Laboratories Licensing Corporation Denoising for sdr-to-hdr local reshaping
WO2023150074A1 (en) 2022-02-01 2023-08-10 Dolby Laboratories Licensing Corporation Beta scale dynamic display mapping
CN116468992B (zh) * 2023-06-20 2023-08-22 北京天图万境科技有限公司 一种重复校正性监督空间识别与还原方法与装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2009620C1 (ru) 1991-06-18 1994-03-15 Плешивцев Василий Алексеевич Устройство адаптивного восстановления телевизионного сигнала
US5612900A (en) * 1995-05-08 1997-03-18 Kabushiki Kaisha Toshiba Video encoding method and system which encodes using a rate-quantizer model
US7023580B2 (en) 2001-04-20 2006-04-04 Agilent Technologies, Inc. System and method for digital image tone mapping using an adaptive sigmoidal function based on perceptual preference guidelines
JP5249784B2 (ja) 2006-01-23 2013-07-31 マックス−プランク−ゲゼルシャフト・ツア・フェルデルング・デア・ヴィッセンシャフテン・エー・ファオ 高ダイナミックレンジコーデック
JP5203503B2 (ja) * 2008-04-16 2013-06-05 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビット深度スケーラビリティ
WO2010105036A1 (en) * 2009-03-13 2010-09-16 Dolby Laboratories Licensing Corporation Layered compression of high dynamic range, visual dynamic range, and wide color gamut video
TWI559779B (zh) 2010-08-25 2016-11-21 杜比實驗室特許公司 擴展影像動態範圍
WO2012147018A2 (en) * 2011-04-28 2012-11-01 Koninklijke Philips Electronics N.V. Apparatuses and methods for hdr image encoding and decoding
UA116082C2 (uk) 2011-09-27 2018-02-12 Конінклійке Філіпс Н.В. Пристрій та спосіб для перетворення динамічного діапазону зображень
TWI575933B (zh) 2011-11-04 2017-03-21 杜比實驗室特許公司 階層式視覺動態範圍編碼中之層分解技術
EP2936814B1 (en) 2013-03-26 2018-03-14 Dolby Laboratories Licensing Corporation Encoding perceptually-quantized video content in multi-layer vdr coding
CN106488246B (zh) * 2013-06-17 2019-06-11 杜比实验室特许公司 用于增强动态范围信号的分层编码的自适应整形的方法
US9936199B2 (en) 2014-09-26 2018-04-03 Dolby Laboratories Licensing Corporation Encoding and decoding perceptually-quantized video content
US10419762B2 (en) 2015-03-02 2019-09-17 Dolby Laboratories Licensing Corporation Content-adaptive perceptual quantizer for high dynamic range images

Also Published As

Publication number Publication date
CN107409221A (zh) 2017-11-28
US10080026B2 (en) 2018-09-18
US20180020224A1 (en) 2018-01-18
KR20170118207A (ko) 2017-10-24
JP6374614B2 (ja) 2018-08-15
CN107409221B (zh) 2019-06-14
WO2016153896A1 (en) 2016-09-29
KR101844732B1 (ko) 2018-04-02
EP3272123A1 (en) 2018-01-24
EP3272123B1 (en) 2019-06-19
BR112017018552A2 (pt) 2018-04-24
RU2666234C1 (ru) 2018-09-06
JP2018511223A (ja) 2018-04-19

Similar Documents

Publication Publication Date Title
BR112017018552B1 (pt) aproximação para remodelagem de sinal
US10701375B2 (en) Encoding and decoding reversible production-quality single-layer video signals
US11310537B2 (en) Linear encoder for image/video processing
JP6182644B2 (ja) 階層的vdr符号化における層分解
JP7299982B2 (ja) 拡張標準ダイナミックレンジビデオ(sdr+)における機械学習ベースのダイナミックコンポージング
CN107771392B (zh) 用于高动态范围图像的实时内容自适应感知量化器
BR112015024172B1 (pt) Método, sistema e meio de armazenamento legível por computador
BR122021018508B1 (pt) Método realizado em um dispositivo de imagem e dispositivo de imagem
JP2018509067A (ja) ほぼ視覚的無損失なビデオ再圧縮
CN108141599B (zh) 在视频编解码器中保留纹理/噪声一致性
JP7391214B2 (ja) Hdr画像化におけるレート制御認識リシェーピング
JP2022542312A (ja) 電気-光伝達関数変換及び信号適法化
WO2021223540A1 (zh) 一种高动态范围hdr视频的处理方法、编码设备和解码设备
JP2017506443A (ja) カラー/グレーの小さい差異を保持する画像処理方法
EP4173297A1 (en) Image prediction for hdr imaging in open-loop codecs

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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