BR112019019379A2 - implementação eficiente de filtro bilateral conjunto - Google Patents

implementação eficiente de filtro bilateral conjunto Download PDF

Info

Publication number
BR112019019379A2
BR112019019379A2 BR112019019379A BR112019019379A BR112019019379A2 BR 112019019379 A2 BR112019019379 A2 BR 112019019379A2 BR 112019019379 A BR112019019379 A BR 112019019379A BR 112019019379 A BR112019019379 A BR 112019019379A BR 112019019379 A2 BR112019019379 A2 BR 112019019379A2
Authority
BR
Brazil
Prior art keywords
image
depth
volume
splatting
pixel
Prior art date
Application number
BR112019019379A
Other languages
English (en)
Inventor
Karel Riemens Abraham
Gerard Bernard Barenbrug Bart
Original Assignee
Ultra D Cooeperatief U A
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 Ultra D Cooeperatief U A filed Critical Ultra D Cooeperatief U A
Publication of BR112019019379A2 publication Critical patent/BR112019019379A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration using non-spatial domain filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20028Bilateral filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

um circuito integrado e método implementado por computador são fornecidos para estimar um mapa de profundidade de uma imagem utilizando um filtro bilateral conjunto com complexidade computacional reduzida. para essa finalidade, os dados de imagem de uma imagem são acessados também como dados de profundidade de um mapa de profundidade de gabarito. um filtro bilateral conjunto é, então, aplicado ao mapa de profundidade de gabarito utilizando os dados de imagem como um termo de faixa no filtro bilateral conjunto, obtendo, assim, um mapa de profundidade de imagem adaptada como saída. a aplicação do filtro bilateral conjunto compreende inicializar um volume de soma de profundidades ponderadas e um volume de soma de pesos como estruturas de dados vazias respectivas em uma memória, realizando uma operação de splatting para abastecer os ditos volumes, realizando uma operação de fatiamento para obter um volume de profundidade de imagem adaptada, e realizando uma operação de interpolação para obter um valor de profundidade de imagem adaptada do mapa de profundidade de imagem adaptada para cada pixel na imagem. em comparação com os métodos conhecidos de estimativa de mapa de profundidade a partir de uma imagem utilizando um filtro bilateral conjunto, uma complexidade computacional reduzida é obtida.

Description

Relatório Descritivo da Patente de Invenção para IMPLEMENTAÇÃO EFICIENTE DE FILTRO BILATERAL CONJUNTO.
Campo da Invenção [1] A invenção refere-se a um circuito integrado configurado para estimar um mapa de profundidade a partir de uma imagem utilizando um filtro bilateral conjunto. A invenção refere-se ainda a um método para estimar um mapa de profundidade a partir de uma imagem utilizando um filtro bilateral conjunto, e a um meio legível por computador compreendendo dados transitórios ou não transitórios que representam instruções dispostas para fazer com que um sistema de processador realize o método.
Técnica Anterior [2] Os dispositivos de exibição, tal como televisores, tablets e smartphones podem compreender um monitor em 3D para fornecer a um usuário uma percepção de profundidade quando observando o conteúdo em tal dispositivo. Para essa finalidade, tais monitores em 3D podem, sozinhos ou juntamente com óculos usados pelo usuário, fornecer ao usuário diferentes imagens em cada olho, de modo a fornecer ao usuário uma percepção de profundidade com base em estereoscopia.
[3] Os monitores em 3D exigem tipicamente conteúdo que contém a informação de profundidade. A informação de profundidade pode ser fornecida implicitamente no conteúdo em 3D. Por exemplo, no caso de conteúdo estereoscópico, também referido de forma abreviada como conteúdo estéreo, a informação de profundidade é fornecida pelas diferenças entre uma imagem esquerda e uma imagem direita. A informação de profundidade também pode ser fornecida explicitamente no conteúdo em 3D. Por exemplo, no conteúdo em 3D codificado no chamado formato de imagem + profundidade, a informação de profundidade é fornecida por um mapa de profundidade que pode compre
Petição 870190093124, de 18/09/2019, pág. 70/108
2/31 ender valores de profundidade, valores de disparidade e/ou valores de mudança paraláctica, com cada um dos ditos valores indicando a distância que os objetos na imagem possuem na direção da câmera.
[4] Uma grande quantidade de conteúdo que está atualmente disponível, por exemplo, filmes, programas de televisão, imagens, etc., é conteúdo 2D. Tal conteúdo precisa ser convertido em 3D a fim de permitir sua apresentação em 3D em um monitor 3D. A conversão em 3D pode compreender a geração de um mapa de profundidade para uma imagem em 2D, por exemplo, para cada imagem em 2D de um vídeo 2D. Em geral, esse processo é referido como conversão de 2D em 3D, e pode envolver criar o mapa de profundidade manualmente. Por exemplo, uma ferramenta de software rodando em uma estação de trabalho pode oferecer a um usuário profissional a possibilidade de adicionar profundidade às imagens em 2D desenhando-se mapas de profundidade utilizando-se uma caneta digital. O mapa de profundidade também pode ser gerado automaticamente. Por exemplo, um dispositivo pode estimar a distância entre os objetos na imagem em 2D e a câmera e, com base nisso, gerar um mapa de profundidade para a imagem em 2D.
[5] Um exemplo de geração automática de um mapa de profundidade é conhecido a partir de U.S. 8.447.141, que descreve um método para gerar um mapa de profundidade para uma imagem utilizando informação monocular. O método compreende gerar um primeiro mapa de profundidade para a imagem que fornece um perfil de profundidade global, e que pode ser um gabarito genérico simples, tal como uma inclinação. Ademais, um segundo mapa de profundidade é gerado e baseado nos valores de profundidade do primeiro mapa de profundidade e valores de cor e/ou luminescência da imagem. A geração do segundo mapa de profundidade pode envolver aplicar um filtro bilateral conjunto ao primeiro mapa de profundidade, utilizando infor
Petição 870190093124, de 18/09/2019, pág. 71/108
3/31 mação de faixa da imagem. Deve-se dizer que como resultado disso, objetos se tornarão mais distintos a partir do perfil de profundidade global.
[6] Efetivamente, U.S. 8.447.141 utiliza o filtro bilateral conjunto para adaptar o gabarito genérico fornecido pelo mapa de profundidade ao conteúdo real da imagem.
[7] No entanto, a implementação de um filtro bilateral conjunto é computacionalmente complexo. A publicação A fast approximation of the bilateral filter using a signal processing approach, por Paris et al., International Journal of Computer Vision 81.1, 2009, pp. 24-52 descreve uma aproximação do filtro bilateral conjunto que é considerado menos complexo em termos computacionais. Desvantajosamente, a aproximação descrita do filtro bilateral ainda é relativamente complexa em termos computacionais, e, dessa forma, não é bem adequado para a implementação econômica em dispositivos de consumidor, por exemplo, em um circuito integrado.
Sumário da Invenção [8] Um dos objetivos da invenção é obter um circuito integrado configurado para estimar um mapa de profundidade de uma imagem utilizando um filtro bilateral conjunto, que é menos complexo em termos computacionais do que a aproximação descrita por Paris et al.
[9] Um primeiro aspecto da invenção fornece um circuito integrado configurado para estimar um mapa de profundidade de uma imagem, na qual o circuito integrado é definido pela reivindicação 1. Um aspecto adicional da invenção fornece um método implementado por computador para estimar um mapa de profundidade a partir de uma imagem, onde o método é definido pela reivindicação 14.
[10] Essencialmente, o circuito integrado implementa o filtro bilateral conjunto em uma solução mais aproximada, mas de uma forma diferente de Paris et al. Uma das diferenças vantajosas é que Paris et
Petição 870190093124, de 18/09/2019, pág. 72/108
4/31 al realizam primeiro uma interpolação e, então, uma operação de fatiamento, com a última envolvendo divisão. A divisão em Paris et al. é, dessa forma, realizada nos dados tendo sido interpolados de volta para resolução total. O circuito integrado como reivindicado realiza uma operação de fatiamento nos volumes reduzidos, com uma resolução muito reduzida. Por exemplo, se os volumes de, por exemplo, 18x12 x 18 (altura x largura x faixa) forem utilizados, apenas 3.888 operações de divisão, por exemplo, em uma imagem de 480 x 270 (129.600 operações de divisão). Descobriu-se que a redução de qualidade na realização da operação de fatiamento nos volumes reduzidos é muito limitada. No entanto, visto que as operações de divisão são computacionalmente complexas de se implementar, o peso da computação na realização do filtro bilateral conjunto é muito reduzido. Isso permite que a operação de união seja realizada em software, o que resulta, ainda, em flexibilidade com relação à sua implementação.
[11] É notado que o mapa de profundidade, que é utilizado como entrada, pode ser um mapa de profundidade de gabarito, e, dessa forma, corresponder a um perfil de profundidade genérica predeterminado, tal como uma inclinação, ou um perfil de profundidade genérico que é selecionado a partir de uma lista de diferentes perfis de profundidade genérico, que melhor coincidir com o conteúdo da imagem. No entanto, em geral, o mapa de profundidade pode ser qualquer mapa de profundidade que se beneficie de ser ainda adaptado à imagem.
[12] É notado ainda que os volumes podem ser volumes tridimensionais, por exemplo, sendo constituídos por versões reduzidas de duas dimensões espaciais da imagem e uma versão reduzida da dimensão de faixa de um dos componentes da imagem, por exemplo, o componente de luminescência. Alternativamente, os volumes podem compreender duas ou mais dimensões de faixa, que podem corresponder a dois ou mais dos componentes da imagem, por exemplo, os
Petição 870190093124, de 18/09/2019, pág. 73/108
5/31 componentes de luminescência e um ou mais componentes de crominância de uma imagem YUV, ou os componentes coloridos individuais de uma imagem RGB, etc.
[13] Opcionalmente, o subsistema de processamento compreende um circuito de hardware específico de aplicativo e um microprocessador configurável pelo software, onde:
- o circuito de hardware específico de aplicativo é configurado para realizar a operação de splatting e a operação de interpelação; e
- o microprocessador é configurado pelo software para, durante a operação do circuito integrado, realizar a operação de fatiamento.
[14] Esse aspecto da invenção é baseado na visão de que, enquanto a operação de splatting e a operação de interpelação são ambas ainda relativamente complexas em termos de computação, a operação de fatiamento foi reduzida de forma significativa em termos de complexidade em comparação com Paris et al., pela operação apenas nos volumes reduzidos. Como tal, a operação de fatiamento pode ser realizada em software, resultando em flexibilidade, ao passo que a operação de splatting e a operação de interpelação podem ser realizadas em hardware em vista da eficiência geralmente maior de uma implementação de hardware versus software.
[15] Opcionalmente, o circuito de hardware específico de aplicativo compreende uma tabela de filtro para armazenar os pesos de splatting utilizados na operação de splatting e/ou os pesos de interpelação utilizados na operação de interpelação. No caso de a operação de splatting e da operação de interpelação serem operações de hardware, os ditos pesos podem ser armazenados em uma tabela de filtro do circuito de hardware, que pode ser uma memória de leitura apenas ou uma memória de acesso randômico. Isso permite que os
Petição 870190093124, de 18/09/2019, pág. 74/108
6/31 ditos pesos sejam prontamente acessíveis por hardware das operações respectivas.
[16] Opcionalmente, a tabela de filtro é carregada com os pesos de splatting utilizados na operação de splatting e os pesos de interpelação utilizados na operação de interpelação antes de realizar a operação respectiva. No caso de diferentes pesos serem utilizados para a operação de splatting em vez de para a operação de interpelação, esses pesos podem estar localizados dentro da tabela de filtro antes de a operação respectiva ser realizada, por exemplo, pelo microprocessador. Dessa forma, o hardware da tabela de filtro é reutilizado e não implementado separadamente para ambos o hardware da operação de splatting e o hardware da operação de interpelação. É notado que em adição a ou no lugar de reutilizar o hardware da tabela de filtro entre a operação de splatting e de interpelação, em geral, também pode haver a reutilização de hardware para determinar a posição relativa de uma amostra dentro de um compartimento entre a operação de splatting e a operação de interpelação.
[17] Opcionalmente, os pesos de splatting utilizados na operação de splatting e os pesos de interpelação utilizados na operação de interpelação são iguais. Esse aspecto da invenção é baseado na visão de que os mesmos pesos podem ser utilizados para realizar a operação de splatting como que para realizar a operação de interpelação visto que ambas são operações essencialmente similares que, no presente contexto, também operam, por um lado, na imagem, e por outro lado, em um volume multidimensional que possui dimensões reduzidas com relação às duas dimensões especiais e à dimensão de faixa da imagem. Pela utilização dos mesmos pesos, a implementação de ambas as operações é consideravelmente mais eficiente.
[18] Opcionalmente, os pesos de splatting utilizados na operação de splatting e os pesos de interpelação utilizados na operação de
Petição 870190093124, de 18/09/2019, pág. 75/108
7/31 interpolação representam uma interpolação linear com relação ao sistema de coordenadas da imagem. Os pesos são, dessa forma, escolhidos de modo que uma interpolação linear seja aplicada aos dados nos volumes respectivos da operação de splatting e na operação de interpolação ao longo de cada uma das dimensões dos volumes. Por exemplo, para um volume tridimensional, uma interpolação trilinear pode ser utilizada, enquanto que para um volume tetradimensional, por exemplo, possuindo duas dimensões de faixa, uma interpolação tetralinear pode ser utilizada. A interpolação linear foi considerada bem adequada para a operação de splatting e a operação de interpolação. Alternativamente, uma interpolação de ordem superior pode ser utilizada em cada dimensão, incluindo, mas não limitado a uma interpolação cúbica.
[19] Opcionalmente, o microprocessador é configurado por software para, durante a operação do circuito integrado, aplicar uma filtragem temporal ao volume de soma de profundidades ponderadas e o volume de soma dos pesos antes de realizar a operação de fatiamento. A filtragem temporal é frequentemente aplicada a mapas de profundidade para garantir a estabilidade temporal. Em vez de ou em adição à aplicação de tal filtragem temporal ao mapa de profundidade, os volumes que são utilizados para gerar o mapa de profundidade propriamente ditos podem ser temporariamente filtrados. Isso tem sido responsável pelo rendimento de um mapa de profundidade temporalmente mais estável, enquanto computacionalmente eficiente para implementar no tamanho relativamente reduzido dos volumes, em comparação com uma imagem. Por exemplo, um volume típico de 18 x 12 x 18 contém 3.888 valores de dados a serem filtrados, ao passo que uma imagem de 480 x 270 contém 129.600 valores de dados a serem filtrados. Devido à filtragem especificamente aplicada aos volumes, uma implementação de software é possível. Vantajosamente, descobriu-se
Petição 870190093124, de 18/09/2019, pág. 76/108
8/31 que aplicar um filtro de Resposta a Impulso Infinito (IIR) ao volume de soma de profundidades ponderadas aperfeiçoa a estabilidade temporal do mapa de profundidade resultante no caso dos chamados shot-cuts, sem a necessidade de se ter o processamento de shot-cut dedicado, por exemplo, envolvendo detectores de shot-cut dedicados. A filtragem temporal pode, por exemplo, ser um filtro de resposta a impulso infinito de ordem superior, e pode ser implementado como parte de outras operações (não linear) nos dados de volume.
[20] Opcionalmente, o microprocessador é configurado pelo software para, durante a operação do circuito integrado, aplicar uma filtragem temporal ao volume de profundidade de imagem adaptada. Tal filtragem temporal oferece reduções comparáveis em complexidade computacional em comparação com a filtragem de uma imagem real, como descrito com relação à filtragem do volume de soma de profundidades ponderadas ou volume de soma de pesos. A filtragem temporal pode ser do mesmo tipo que o descrito com relação à filtragem do volume de soma de profundidades ponderadas ou volume de soma de pesos.
[21] Opcionalmente, o subsistema de processamento é configurado para, depois de realizar a operação de splatting, realizar a convolução do volume de soma de profundidades ponderadas com um núcleo Gaussiano. Descobriu-se que tal convolução aperfeiçoa a qualidade do mapa de profundidade.
[22] Opcionalmente, o mapa de profundidade de gabarito possui uma resolução espacial reduzida com relação à imagem, por exemplo, possuindo duas dimensões espaciais que correspondem a duas dimensões espaciais do volume da soma das profundidades ponderadas e o volume da soma dos pesos. O mapa de profundidade de gabarito, então, pode ser interpolado utilizando-se os mesmos pesos que os utilizados na operação de splatting.
Petição 870190093124, de 18/09/2019, pág. 77/108
9/31 [23] Opcionalmente, o filtro bilateral conjunto é aplicado apenas aos dados de luminescência da imagem. Opcionalmente, o filtro bilateral conjunto é aplicado aos dados de luminescência e dados de crominância da imagem. No último caso, os volumes podem ser volumes pentadimensionais possuindo três dimensões de faixa, por exemplo, uma dimensão Y, U e V.
[24] Opcionalmente, o circuito integrado é, ou faz parte de um conjunto de portas programável em campo ou um sistema em chip. O circuito integrado pode ser parte de um dispositivo, tal como um dispositivo de exibição ou uma caixa de decodificação, mas também outros dispositivos nos quais possa ser utilizado para converter vídeo em 2D em vídeo em 3D pela estimativa do mapa de profundidade.
[25] Um aspecto adicional da invenção fornece um meio legível por computador compreendendo dados transitórios ou não transitórios que representam instruções dispostas para fazer com que um sistema de processador realize o método.
[26] Será apreciado pelos versados na técnica que dois ou mais dentre as modalidades implementações e/ou aspectos da invenção, mencionados acima, podem ser combinados de qualquer forma considerada útil.
[27] Modificações e variações do método que correspondem às modificações e variações descritas do circuito integrado podem ser realizadas pelos versados na técnica com base na presente descrição. Breve Descrição dos Desenhos [28] Esses e outros aspectos da invenção são aparentes a partir de e serão elucidados com referência às modalidades descritas posteriormente aqui. Nos desenhos, [29] A figura 1 ilustra de forma esquemática um circuito integrado que é configurado para estimar um mapa de profundidade de uma imagem de uma forma computacionalmente eficiente;
Petição 870190093124, de 18/09/2019, pág. 78/108
10/31 [30] A figura 2 ilustra a relação entre uma imagem e um volume que pode ser utilizada para calcular os valores de peso e de profundidade ponderados durante uma operação de splatting e que pode manter os valores de profundidade para uma operação de interpolação;
[31] A figura 3A ilustra um exemplo simplificado de uma operação de splatting;
[32] A figura 3B ilustra um exemplo detalhado ilustrando o endereçamento de compartimento e pesos associados para ambas a operação de splatting e a operação de interpolação;
[33] A figura 4 ilustra vários aspectos da operação de splatting;
[34] As figuras de 5 a 7 ilustram vários aspectos da operação de interpolação;
[35] A figura 8 ilustra um método de estimativa de um mapa de profundidade de uma imagem; e [36] A figura 9 ilustra um meio legível por computador compreendendo instruções para fazer com que um sistema de processadores realize o método.
[37] Deve-se notar que os itens que possuem as mesmas referências numéricas em figuras diferentes, possuem as mesmas características estruturais e as mesmas funções, ou são os mesmos sinais. Onde a função e/ou a estrutura de tal item foi explicada, não há necessidade de se reproduzir a explicação na descrição detalhada.
Lista de referências e abreviações [38] A lista a seguir de referências e abreviações é fornecida para facilitar a interpretação dos desenhos e não deve ser considerada limitadora das reivindicações.
010 dados de imagem
020 dados de entrada de volume de profundidade
022 dados de saída de profundidade
024 dados de profundidade de gabarito
Petição 870190093124, de 18/09/2019, pág. 79/108
11/31 dados de profundidade de gabarito interpelados soma dos dados de volume de pesos soma dos dados de volume de profundidade ponderada dados de índice de peso e volume dados de peso subsistema de processamento do circuito integrado interface de entrada de dados de imagem interface de entrada de dados de volume de profundidade interface de saída de dados de profundidade interface de saída de dados de volume bloco de splatting bloco de ponderação bloco de interpelação bloco de interpelação 2D lógica de controle imagem dimensão horizontal dimensão vertical mapeamento da parte clara da imagem mapeamento do fundo escuro da imagem representação de volume de imagem dimensão horizontal dimensão vertical dimensão de faixa dimensão (horizontal, vertical ou faixa) série de amostras de profundidade intervalo de acúmulo de splat função de peso intervalo de compartimento compartimento de borda
Petição 870190093124, de 18/09/2019, pág. 80/108
12/31
444 compartimento de não borda
500 método para estimar o mapa de profundidade a partir da imagem
510 acessar dados de imagem
520 acessar dados de profundidade
530 aplicar filtro bilateral conjunto
540 inicializar volumes
550 operação de splatting
560 operação de fatiamento
570 operação de interpolação
600 meio legível por computador
610 instruções representando dados não transitórios. Descrição Detalhada das Modalidades [39] A figura 1 ilustra de forma esquemática um subsistema de processamento 100 de um circuito integrado que é configurado para estimar um mapa de profundidade a partir de uma imagem de uma forma computacionalmente eficiente. O subsistema de processamento 100 é ilustrado como um diagrama em bloco funcional, e pode ser consubstanciado por componentes, tal como um microprocessador, um circuito de hardware específico de aplicativo e uma ou mais memórias locais. O circuito integrado pode compreender outros componentes que não são ilustrados na figura 1, incluindo, mas não limitado a outros microprocessadores, um sistema de barramento, outras memórias, etc. Em geral, o circuito integrado pode ser implementado como, ou como parte de um conjunto de porta programável em campo (FPGA), ou um Sistema em Chip (SoC) ou de qualquer outra forma adequada.
[40] O subsistema de processamento 100 é ilustrado para compreender uma interface de entrada de dados de imagem 110 através da qual os dados de imagem 010 podem ser lidos a partir de uma
Petição 870190093124, de 18/09/2019, pág. 81/108
13/31 memória, por exemplo, através da comunicação de Acesso à Memória Direta (DMA). Por exemplo, os dados de imagem podem ser dados de entrada de luminescência Yin. A esse respeito, é notado que a interface de entrada de dados de imagem 110 e outras interfaces do subsistema de processamento 100 podem compreender ou podem ser conectadas a uma memória local que age como o armazenador, rotulado Buf por toda a figura 1.
[41] O subsistema de processamento 100 é ainda ilustrado para compreender uma interface de entrada de dados de volume de profundidade 120 através da qual os dados de volume de profundidade 020 podem ser lidos a partir da memória, e uma interface de saída de dados de profundidade 122 através da qual os dados de profundidade 022 podem ser escritos na memória. O subsistema de processamento 100 é ilustrado ainda para compreender interfaces de saída de dados de volume respectivas 130, 132 para escrever a soma de dados de volume de pesos 030 e a soma de dados de volume de profundidade ponderada 032 na memória.
[42] Outros blocos funcionais do subsistema de processamento 100 incluem um bloco de splatting 140 que se comunica com as interfaces de saída de dados de volume 130, 132, um bloco de interpelação 160 que se comunica com as interfaces de dados de profundidade 120, 122, um bloco de ponderação 150 que se comunica com a interface de entrada de dados de imagem 110 e fornece dados de peso e índice de volume 052 para o bloco de splatting 140 e o bloco de interpelação 160, um bloco de interpelação 2D 170 que recebe dados de profundidade de gabarito 024 da lógica de controle 180 e dados de peso 054 do bloco de ponderação 150 e fornece dados de profundidade de gabarito interpelados 026 para o bloco de splatting 140.
[43] Em uma modalidade, o subsistema de processamento 100, como ilustrado na figura 1, pode ser implementado como um circuito
Petição 870190093124, de 18/09/2019, pág. 82/108
14/31 de hardware específico de aplicativo. Ainda, um microprocessador separado (não ilustrado na figura 1) pode ser fornecido no circuito integrado que é configurado para realizar uma operação de fatiamento, como discutido ainda também. Para essa finalidade, o microprocessador pode ter acesso à memória, por exemplo, através de DMA. Alternativamente, a operação de fatiamento também pode ser implementada pelo circuito de hardware específico de aplicativo.
[44] A operação do subsistema de processamento 100 e seus blocos funcionais será explicada ainda com referência às figuras de 2 a 7. A esse respeito, é notado que na figura 1 denota um armazenador local ou uma interface que é associada com uma representação de dados multidimensional volumétrica, como explicado com referência à figura 2.
[45] A figura 2 ilustra a relação entre uma imagem 200 e um volume 300, com tal tipo de volume sendo utilizado para acumular os valores de pesos e valores de profundidade ponderada durante uma operação de splatting e mantendo o valor de profundidade de pixels da imagem 200 para uma operação de interpelação. O volume 300 é ilustrado como apresentando três dimensões. A dimensão X 310 pode corresponder ao eixo geométrico horizontal 210 da imagem 200. A dimensão Y 320 pode corresponder ao eixo geométrico vertical 220 da imagem 200. A dimensão I 330 pode corresponder à dimensão de faixa da imagem, por exemplo, de um componente de imagem da imagem 200, tal como, mas não limitado a um componente de luminescência. O volume 300 pode possuir um tamanho que é subamostrado com relação às dimensões espaciais e as dimensões de faixa da imagem 200. Por exemplo, enquanto a imagem 200 pode apresentar dimensões espaciais de 480 pixels por 270 linhas (X, Y) e uma dimensão de faixa de 8 bits (I) que define uma faixa de 256 valores, o volume 300 pode apresentar dimensões de 18 x 12 x 18 (X, Y, I), isso é,
Petição 870190093124, de 18/09/2019, pág. 83/108
15/31 χ 12 (X, Y) para as dimensões espaciais 310, 320 e 18 (I) para a dimensão de faixa 330.
[46] As células do volume 300 podem representar compartimentos. Durante uma operação de splatting, tais compartimentos podem definir intervalos de acúmulo para o acúmulo de informação de profundidade da imagem 200. Aqui, os compartimentos utilizados no acúmulo de um valor de peso ou de profundidade ponderado associado com um pixel em particular são selecionados como uma função da coordenada espacial do pixel e seu valor de faixa. Por exemplo, os valores de luminescência da imagem 200 podem determinar a coordenada do compartimento ao longo da dimensão I 330 do volume 300, visto que a informação de profundidade do conteúdo de imagem escura pode ser acumulada nos compartimentos inferiores do volume 300, como ilustrado pela seta 260, ao passo que a informação de profundidade do conteúdo claro da imagem pode ser acumulada em compartimentos mais altos do volume 300, como ilustrado pela seta 250. Ainda, a localização espacial do conteúdo de imagem pode definir a localização do compartimento ao longo das dimensões espaciais 310, 320 do volume 300. De acordo, a combinação da coordenada espacial e o valor de faixa de um pixel da imagem 200, isso é, a coordenada do pixel no sistema de coordenada 3D (pelo menos) da imagem, pode determinar em qual dos compartimentos do volume 300 um valor de peso ou um valor de profundidade ponderada está acumulado durante uma operação de splatting, ou quais compartimentos mantêm o valor de profundidade de um pixel para a interpolação por uma operação de interpelação.
[47] Essa determinação dos compartimentos pode envolver essencialmente mapear o valor de coordenada espacial e de faixa de pixel para uma coordenada no espaço de coordenada de volume e com base na posição relativa nos compartimentos de identificação de
Petição 870190093124, de 18/09/2019, pág. 84/108
16/31 volume a serem utilizados durante splatting e interpelação. Efetivamente, durante splatting, os compartimentos adjacentes podem ser identificados para determinar para quais compartimentos o pixel contribui com base em sua pegada de splatting (com a contribuição sendo o acúmulo do valor de peso ou valor de profundidade ponderada), enquanto que, durante a interpelação, compartimentos adjacentes podem ser identificados para determinar entre quais compartimentos a interpelação deve ser realizada com base na posição relativa do pixel dentro de um volume. Para essa finalidade, uma função de mapeamento pode ser utilizada mapeando a coordenada espacial do pixel e o valor de faixa para uma coordenada no espaço de coordenadas de volume, com a última coordenada, então, indicando diretamente os compartimentos adjacentes.
[48] Devido à subamostragem, múltiplos pixels da imagem 200 podem contribuir para um único compartimento de volume 300, visto que seus valores de profundidade podem, pelo menos em parte, ser acumulados no compartimento singular. Inversamente, um pixel singular pode contribuir com vários compartimentos de volume 300 visto que suas coordenadas no sistema de coordenadas de volume pode se encontrar entre várias células do volume 300. Como tal, quando do acúmulo do valor de profundidade de pixel no volume 300, o valor de profundidade pode precisar ser ponderado para compensar pela contribuição para várias células do volume 300. Isso também é referido como splatting.
[49] A figura 3A ilustra tal operação de splatting ao longo de uma única dimensão K 400. Essa dimensão K pode ser a dimensão horizontal (X), o vertical (Y) ou luminescência (I). Para essa explicação, a dimensão K 400 é considerada para representar a dimensão de luminescência I. Primeiro, essa dimensão é dividida em compartimentos 440, por exemplo, pela subamostragem da dimensão de lumines
Petição 870190093124, de 18/09/2019, pág. 85/108
17/31 cência I, por exemplo, de 256 valores (8 bit, 0 a 255) até dezesseis compartimentos de largura 16. Como é conhecido per se, cada compartimento é um elemento de armazenamento que pode manter um valor em particular ou uma soma de valores acumulados. É notado que para fins de ilustração, e, em particular para aperfeiçoar a visibilidade das figuras, na figura 3A, e a seguir, uma compartimentalização é ilustrada e envolve apenas doze compartimentos no total: dez compartimentos normais [1] a [10] e dois chamados compartimentos de borda [0] e [11] serão explicados com a referência adicional à figura 3B.
[50] A seguir é ilustrada a operação de splatting com referência a uma operação de histograma. Um histograma convencional pode ser obtido como segue: para cada pixel de uma imagem, pode ser determinado dentro de qual compartimento singular seu valor de luminescência se encontra. Então, o valor desse compartimento pode ser incrementado, por exemplo, por 1. Como resultado disso, a posição relativa do valor de luminescência, com relação ao intervalo de luminescência associado com o compartimento, pode ser irrelevante. Por exemplo, se um compartimento definir um intervalo de luminescência de [0....7] para acúmulo, todos os valores de luminescência que se encontram dentro desse compartimento podem causar um mesmo incremento, isso é, por 1, independentemente de se o valor de luminescência se encontra dentro de um centro do compartimento (por exemplo, valores de luminescência 3 e 4) ou em uma borda do compartimento (por exemplo, valores de luminescência de 0 e 7).
[51] Técnicas de splatting podem ser utilizadas para obter uma representação de histograma melhor, por exemplo, mais precisa. Isso é, a posição relativa de um valor de luminescência dentro de um compartimento pode ser levada em consideração pela ponderação. Em tais técnicas de splatting, a contribuição do pixel sendo splat pode
Petição 870190093124, de 18/09/2019, pág. 86/108
18/31 ser determinada pela designação explícita ou implícita de uma pegada para a coordenada do pixel ao longo da dimensão de luminescência, por exemplo, para o valor de luminescência. Um acúmulo pelo splatting pode ser realizado como segue: para um valor de luminescência de um pixel, é determinado para quais compartimentos adjacentes o pixel contribui, com contribuição fazendo referência a um compartimento que se encontra pelo menos em parte dentro da pegada do pixel. Os valores nos compartimentos adjacentes podem, então, ser incrementados pelos pesos respectivos que dependem da posição relativa do valor de luminescência com relação aos dois compartimentos. Por exemplo, quando o valor de luminescência cai de forma centralizada dentro de um compartimento presente, a contribuição para esse compartimento pode ser alta, ao passo que a contribuição para o compartimento anterior (inferior) ou o próximo compartimento (superior) pode ser baixa. De forma similar, quando um valor de luminescência se encontra entre dois compartimentos, a distribuição para cada compartimento pode ser metade do valor alto.
[52] A ponderação dependente de posição mencionada acima pode consubstanciar tal contribuição com base em pegada para os compartimentos. É notado que visto que a ponderação só define uma contribuição para um compartimento dentro de um intervalo em particular, esse intervalo também pode ser considerado como representando o intervalo de acúmulo do compartimento particular. Por exemplo, o intervalo de acúmulo do compartimento presente (ou atual) pode ser considerado para incluir o compartimento presente enquanto também estende a meio caminho para dentro do compartimento anterior e próximo compartimento. Dessa forma, começando a meio caminho no compartimento anterior, a contribuição para o presente compartimento pode aumentar lentamente de zero para um máximo de forma centralizada dentro do presente compartimento e, então, reduzindo lentamen
Petição 870190093124, de 18/09/2019, pág. 87/108
19/31 te até zero a meio caminho do próximo compartimento.
[53] Como resultado do uso da operação de splatting, os valores acumulados nos compartimentos podem representar uma representação mais precisa de um histograma.
[54] Em uma implementação específica e eficiente da operação de splatting, a pegada é considerada como contribuindo no máximo com dois compartimentos adjacentes, por exemplo, com um tamanho que corresponde ao tamanho de um compartimento ou menor. Nesse caso, um pixel contribui no máximo com um compartimento [n] e um compartimento [n + 1], com n sendo um índice de compartimento ou coordenada no sistema de coordenadas do volume. O primeiro compartimento pode, a seguir, ser referido como compartimento presente e o segundo compartimento pode ser referido como o próximo compartimento.
[55] Uma implementação particularmente específica e eficiente define os intervalos de acúmulo dos compartimentos, tal como a contribuição de um pixel dentro do presente compartimento serve apenas para o compartimento presente o próximo compartimento. Essa implementação, no entanto, pode ser considerada como possuindo um desvio de meio compartimento, onde se compreendería, intuitivamente, que se encontra o pixel. Isso é, nessa implementação específica, uma contribuição máxima para um compartimento não é obtida no meio do compartimento, mas em seu limite mais inferior. Uma razão para a definição dos compartimentos dessa forma, é permitir a maior reutilização de hardware entre a operação de splatting e a operação de interpolação, por exemplo, quando da consideração do cálculo e armazenamento de pesos e/ou do cálculo das posições relativas com relação a um compartimento.
[56] Como um exemplo, considere-se na figura 3A o caso de um valor de luminescência pO, que é um valor de luminescência no lado
Petição 870190093124, de 18/09/2019, pág. 88/108
20/31 esquerdo do compartimento [5]. Essa posição relativa pode contribuir com um peso alto para o compartimento [5], de acordo com a função de ponderação 430 (linha pontilhada estando em/perto do máximo) e uma altura baixa para o compartimento [6] (linha tracejada estando em/perto de zero). A seguir, considera-se o caso de um valor de luminescência p1, que está no meio do compartimento [5]. Essa posição relativa pode contribuir com um peso igual (metade do peso alto) para os compartimentos [5] e [6]. Finalmente, considera-se o caso de um valor de luminescência p2 no lado direito do compartimento [5]. Essa posição relativa pode contribuir um peso baixo para o compartimento [5] e um peso alto para o compartimento [6]. De acordo, a posição relativa do valor de luminescência pode determinar o peso pelo qual o valor de luminescência é acumulado no compartimento atual e próximo. O exemplo da figura 3A, dessa forma, ilustra um desvanecimento linear de uma contribuição máxima para o compartimento [5] para uma contribuição máxima para o compartimento [6], dependendo do valor de luminescência.
[57] Será apreciado que nessa implementação específica e eficiente na qual um pixel, possuindo um valor de luminescência dentro do presente compartimento, contribui apenas para o compartimento atual e o próximo compartimento, o intervalo de acúmulo associado com o compartimento [5] pode ser o intervalo que abrange o compartimento [5] e seus compartimento anterior, por exemplo, o intervalo que corresponde à linha pontilhada que cobre os compartimentos [4] e [5] na figura 3A. Da mesma forma, o intervalo de acúmulo associado com o compartimento [6] pode ser o intervalo que abrange o compartimento [6] e seu compartimento anterior, por exemplo, o intervalo que corresponde à linha tracejada cobrindo os compartimentos [5] e [6] na figura 3A.
[58] A figura 3B ilustra mais detalhes de uma modalidade simi
Petição 870190093124, de 18/09/2019, pág. 89/108
21/31 lar, mas aplicada ao acúmulo dos valores de profundidade ponderados e os pesos nos volumes respectivos, isso é, o volume de soma de profundidade ponderada e volume de soma dos pesos mencionados acima.
[59] Nesse exemplo, ambos os volumes possuem um tamanho máximo fixo de 18 x 12 x 18 compartimentos (X, Y, I) independentemente do tamanho da imagem, enquanto que o número real de compartimentos pode variar. Isso é, um parâmetro sizeBinK pode ser utilizado na operação de splatting para definir o tamanho de um compartimento de não borda 444 e, dessa forma, determinar quantos compartimentos são utilizados. Esse tamanho que pode ser uma potência de 2 para reduzir a complexidade da implementação. O tamanho dos dois compartimentos na borda de uma dimensão edgeBinK pode variar para permitir qualquer valor do tamanho de dimensão. A figura 3B ilustra um compartimento de borda inferior 442. Por exemplo, se a largura de imagem for de 480 e sizeBinX for selecionado como sendo igual a 32, pode haver 14 compartimentos de não borda e 2 compartimentos de borda, cada um possuindo uma largura de (480 - 14*32)/2=16. Em outro exemplo, se a altura da imagem for igual a 270 e sizeBinY for igual a 32, a largura de cada um dos compartimentos de borda pode ser de (270 - 8*32)/2 = 7. Como tal, o uso dos compartimentos de borda permite que os compartimentos de não borda possuam um tamanho igual a uma potência de 2, simplificando, dessa forma, a complexidade de implementação. Isso é, a normalização na aritmética de ponto fixo pode ser realizada por uma operação de mudança simples. Ainda, utilizar dois compartimentos de borda (na extremidade superior e inferior) tem demonstrado melhores resultados de filtro visto que os compartimentos de borda coincidem com as bordas da imagem. Pode, dessa forma, ser desejável se ter os compartimentos de borda de um determinado tamanho propositalmente. Por exemplo, descobriu-se que
Petição 870190093124, de 18/09/2019, pág. 90/108
22/31 os compartimentos de borda tendo a metade do tamanho de um compartimento de não borda regular podem ser preferidos, enquanto apresentam no mínimo 1A do tamanho de compartimento regular e no máximo % do tamanho de compartimento regular.
[60] A figura 3B ilustra ainda um exemplo do endereçamento de compartimento e pesos associados para ambas splatting e interpelação de profundidade. Para facilitar a compreensão, a figura 3B ilustra uma dimensão singular apenas. Essa dimensão pode ser X, Y da posição de imagem, ou a dimensão de faixa. Especificamente, a figura 3B ilustra a posição 410 das amostras de profundidade nas posições de índice indicadas [0]...[12], por exemplo, correspondendo às posições das amostras ao longo de uma linha no mapa de profundidade de entrada, por exemplo, como obtido a partir dos dados de profundidade de gabarito 024 da figura 1. Para cada posição de índice, um intervalo de acumulo de splat correspondente 420, um peso determinado por uma função de peso 430 para splatting e a interpolação de perfil de profundidade (indicado pela referência numérica 170 na figura 1), e um intervalo de compartimento 440 são ilustrados. A figura 3B deve ser interpretada como segue. Para uma posição de índice fornecida, por exemplo, a posição de índice [7], um intervalo de acúmulo é definido sendo denotado pela mesma referência numérica [7], além de uma função de peso correspondente 430 que é ilustrada no mesmo estilo de linha que o intervalo de acúmulo [7]. A função de peso 430 representa um peso f que transita de forma linear de 0 a partir das bordas do intervalo de acumulo [7] para 1 no centro do intervalo de acúmulo [7]. Dentro do mesmo intervalo de acúmulo [7], também um peso 1-f é ilustrado que, na metade esquerda do intervalo de acúmulo [7], representa um peso para a amostra de profundidade [6] em seu intervalo de acúmulo de meia sobreposição [6], e na metade direita do intervalo de acúmulo [7] representa um peso para a amostra de profundidade
Petição 870190093124, de 18/09/2019, pág. 91/108
23/31 [8] em seu intervalo de acúmulo de meia sobreposição [8].
[61] Pode ser observado que os intervalos de acúmulo e os pesos são selecionados de modo que, para uma posição determinada p ao longo da dimensão ilustrada, os compartimentos do volume de soma de pesos podem ser acumulados de acordo com SW[x] + = f e SW[x+1] + = (1-f), ao passo que os compartimentos do volume de soma de profundidades ponderadas podem ser acumulados de acordo com SWD[x] + = f*dp e SWD[x+1] + = (1 -f)*dp. Aqui, a posição p determina o compartimento x, sendo [6] nesse exemplo, e o valor de profundidade dp é obtido pela interpolação de perfil de profundidade (170 na figura 1) do mapa de profundidade D de acordo com dp = (1f) * D[x] + f*D[x+1]. É notado que isso é apenas para uma dimensão singular; tipicamente, o endereçamento dos compartimentos sendo baseado em dimensões espaciais X, Y e uma ou mais dimensões de faixa I da imagem, e, dessa forma, depende tipicamente também dos dados de imagem propriamente ditos.
[62] É notado que os pesos f e (1-f) podem ser computados como valores de ponto fixo com expressões normalizadas. Por exemplo, no caso de 3 bits depois do ponto binário, o valor de 8 representa 1 e, dessa forma, f é uma fixa [0..8]. Em um exemplo específico, se for assumido que dp = (f-1)*D[x] + f* D[x+1] deve ser computado, com D[x] sendo igual a 24, D[x+1] sendo igual a 8 e f sendo igual a 6, dp pode ser computado como ((8-6)*24 + 6*8)/8 = 96/8 - 12. A divisão por 8 é uma etapa de normalização. Esse exemplo também é ilustrado na tabela da figura 5 na posição Y 10. Nessa e em outras figuras e por todo o texto, wny e wpy representam os valores de ponto fixo de f e (1-f) antes dessa normalização.
[63] Em uma modalidade específica e eficiente, o peso máximo pode corresponder ao tamanho dos compartimentos, por exemplo, 8 para um tamanho de compartimento igual a 8. De acordo, cada etapa
Petição 870190093124, de 18/09/2019, pág. 92/108
24/31 no valor de luminescência resulta em uma etapa no peso para cada um dos dois compartimentos adjacentes. De forma similar, cada etapa na (x ou y) posição resulta em uma etapa no peso para cada um dos dois compartimentos adjacentes respectivos.
[64] A figura 4 ilustra a operação de splatting abastecendo as soma de profundidades ponderadas (SWD) e soma dos pesos (SW) ao longo de uma única dimensão. Nesse exemplo, o eixo geométrico vertical Y é escolhido, com o tamanho dos compartimentos sendo igual a 8 (sizeBinY) e o primeiro compartimento possuindo um tamanho igual a 4 (edgeBinY). positionY é simplesmente o número da linha. A tabela na figura 4 ilustra a interpolação com relação às linhas em binY com o índice 1. O factorY é a posição relativa de uma linha dentro de um compartimento. Com base no valor de factorY, dois pesos wpy e wny são derivados, e se relacionam com os pesos complementares f e 1-f, como descrito para a figura 3B, mas agora expressos como um peso wny para o próximo compartimento e como um peso wpy para o compartimento presente, com próximo e presente fazendo referência a dois compartimentos consecutivos e espacialmente adjacentes. Splatting é essencialmente uma função de redução de amostragem pela qual uma entrada de alta resolução é transformada em uma saída de baixa resolução. Nesse exemplo, todas as linhas dentro de binY número 1 possuem um valor de profundidade de entrada igual a 20. Dependendo da posição da linha, o peso gradualmente muda do compartimento 1 para o compartimento 2. Como tal, no número de linha 4 (que é a primeira linha no compartimento 1), o valor completo é acumulado no compartimento 1 e nenhum valor é adicionado ao compartimento 2, que é ilustrado na figura 4 pelas duas setas. No número de linha 8 (metade do caminho do compartimento), 50% do valor é adicionado ao compartimento 1 e 50% do valor é adicionado ao compartimento 2. Dessa forma, um desvanecimento li
Petição 870190093124, de 18/09/2019, pág. 93/108
25/31 near entre os compartimentos é alcançado. Utilizando-se os pesos, as células do volume SW (soma dos pesos) só acumula os pesos aplicados, ao passo que as células do volume SWD (soma das profundidades ponderadas) acumula o valor de profundidade multiplicado pelo peso (profundidade ponderada).
[65] Em suma, a operação de splatting pode envolver, para cada pixel na imagem, determinar uma coordenada do pixel no sistema de coordenadas da imagem, por exemplo, na forma de uma coordenada (X, Y, I), uma coordenada (X, Y, R, G, B) ou uma coordenada (X, Y, I, U, V). Na última, (I, U, V) se refere aos componentes de um sinal YUV, com o componente Y (luminescência) sendo referido como I (Intensidade) para distinguir da dimensão espacial Y. Pode, então, ser determinado quais células adjacentes no volume de soma de pesos representam intervalos de acúmulo associados com o pixel. Um valor de profundidade do pixel pode ser obtido a partir do mapa de profundidade, possivelmente utilizando a interpolação se o mapa de profundidade possuir uma resolução espacial inferior do que a imagem. Para cada uma das células adjacentes, um peso pode ser obtido para ponderar o valor de profundidade. O peso pode ser (pré)calculado com base em uma posição relativa do pixel com relação ao intervalo de acúmulo de uma célula respectiva como indicado pela coordenada. O valor de profundidade pode, então, ser ponderado pelo peso e acumulado na célula respectiva do volume de soma de profundidades ponderadas, com o peso propriamente dito sendo acumulado em uma célula correspondente do volume de soma de pesos.
[66] É notado que para uma dimensão singular, uma interpolação linear exige 2 valores. De forma similar, para duas dimensões, uma interpolação bilinear exige 4 valores. Para o volume de 3 dimensões, uma interpolação trilinear utiliza 8 valores. Os pesos podem ser valores pré-calculados como uma função da posição relativa de uma
Petição 870190093124, de 18/09/2019, pág. 94/108
26/31 amostra dentro de um compartimento. No caso de o mapa de profundidade possuir uma resolução espacial reduzida com respeito à imagem, e em particular, a mesma resolução espacial reduzida como o volume da soma de profundidades ponderadas e o volume de soma de pesos, o mapa de profundidade pode ser interpolado antes da operação de splatting na resolução de imagem utilizando os mesmos pesos que os utilizados na operação de splatting. Isso é ilustrado na figura 1 pelo bloco de ponderação 150 que fornece dados de peso 054 para o bloco de interpolação 2D 170 que interpola o gabarito de profundidade para a resolução de imagem.
[67] Tendo realizado a operação de splatting, uma operação de fatiamento pode ser realizada para obter um volume de profundidade de imagem adaptada. Esta operação pode ser executada por um microprocessador configurado por software, o qual não é mostrado explicitamente na figura 1 mas que pode ter acesso à memória, isto é, via comunicação DMA. A operação de fatiamento pode compreender, para cada célula do volume de soma de profundidades ponderadas e célula correspondente da soma de pesos, dividindo os valores acumulados de profundidade ponderadas por pesos acumulados. Como um resultado desta divisão, cada bin novo contém um valor de profundidade de imagem adaptada com o volume global que representa um volume um volume de profundidade de imagem adaptada.
[68] Tendo realizado a operação de fatiamento, uma operação de interpolação pode ser executada para obter um valor de profundidade de imagem adaptada do mapa de profundidade de imagem adaptada para cada pixel na imagem. Esta operação de interpolação pode compreender identificar as células adjacentes no volume de profundidade de imagem adaptada com base nas ditas células que representam intervalos de acúmulo para o pixel no volume de soma de profundidades ponderadas com base na coordenada do pixel, e aplicando
Petição 870190093124, de 18/09/2019, pág. 95/108
27/31 um filtro de interpolação às células adjacentes do volume de profundidade de imagem adaptada, onde o filtro de interpolação compreende, para cada uma das células, um peso que é determinado com base na posição relativa do pixel com relação ao intervalo de acúmulo de uma célula respectiva, como indicado pela coordenada. Em outras palavras, a posição de um pixel, como determinado por sua coordenada espacial e seus valores de faixa, pode determinar os compartimentos a serem utilizados na interpolação, ao passo que a posição relativa de um pixel em um compartimento pode determinar os pesos de interpolação. Os pesos podem ser pré-calculados. Em particular, os pesos podem ser os mesmos pesos que os utilizados também na operação de splatting, e/ou um mesmo circuito de hardware pode ser utilizado para armazenar ou calcular os pesos.
[69] A figura 5 ilustra a operação de interpolação de uma forma similar à da figura 4 para a operação de splatting. Aqui, os pesos são utilizados para interpolar um valor de profundidade de saída do volume de profundidade de imagem adaptada. Como pode ser observado quando se comparar a figura 5 com a figura 4, as mesmas alturas são utilizadas para uma posição relativa em particular dentro de um compartimento. Isso é ilustrado na figura 1, pelo bloco de ponderação 150 que fornece o mesmo peso e dados de índice de volume 052 para o bloco de interpolação 160 quanto ao bloco de splatting 140. A parte direita da tabela ilustra como os pesos são aplicados a valores de profundidade de entrada 24 e 8. Por exemplo, a interpolação na posição Y 7 resulta em ((5 x 24 + 3 x 8))/8 = 18.
[70] A figura 6 ilustra graficamente as duas alturas utilizadas nas figuras 4 e 5, isso é, o valor de wpy e wpy no eixo geométrico vertical, como uma função do número de linha Y no eixo geométrico horizontal. O peso wpy é aplicado ao valor presente, ao passo que a altura wny é aplicado ao próximo valor. A figura 7 corresponde à
Petição 870190093124, de 18/09/2019, pág. 96/108
28/31 figura 6, mas ilustra, ainda, a saída de interpolação como obtida entre os valores de profundidade de entrada 24 e 8 como ilustrado na figura 5 - pode ser observado que os pesos são calculados de modo a fornecer um desvanecimento linear entre os valores de profundidade de entrada. Em adição ao desvanecimento linear, funções de interpolação de ordem superior também podem ser utilizadas, por exemplo, interpelações cúbicas ou de junção.
[71] Em geral, é notado que o tamanho dos compartimentos na dimensão X ou Y dos volumes descritos pode sempre ser uma potência de 2, visto que, nesse caso, a interpolação, sendo por exemplo, uma interpolação trilinear de ponto fixo, pode utilizar uma operação de mudança para normalização, o que resulta em uma redução substancial de custo de hardware. Isso pode resultar em um número variável de compartimentos que são necessários dependendo do tamanho da imagem. Com a alteração no tamanho do compartimento, o desempenho de filtro pode ser influenciado. No entanto, experiências mostram que isso não impacta de forma significativa o desempenho visual. Ademais, utilizando-se um número variável de compartimentos em vez de um número fixo de compartimentos não afeta de forma significativa o projeto de hardware. O tamanho de um compartimento na dimensão X ou Y pode ser especificado por um parâmetro de hardware, enquanto a análise de que valor selecionar pode ser deixada, por exemplo, para o software de um microprocessador.
[72] Será apreciado que, em geral, o subsistema de processamento pode ser fornecido separadamente do circuito integrado descrito, por exemplo, em outro tipo de SoC.
[73] Dados podem ser fornecido sem um meio legível por computador que define o subsistema de processamento na forma de netlists e/ou sintetizáveis RTL. O meio legível por computador, e, dessa forma, os dados armazenados no mesmo, pode ser transitório ou
Petição 870190093124, de 18/09/2019, pág. 97/108
29/31 não transitório. Por exemplo, o subsistema de processamento pode ser fornecido como um núcleo sintetizável, por exemplo, em uma linguagem de descrição de hardware tal como Verilog ou VHDL, ou como netlists de nível de porta genérica fornecendo uma representação algébrica Booleana da função lógica do bloco IP RTC implementada como portas genéricas ou células padrão específicas de processo.
[74] O termo mapa se refere a dados dispostos em fileiras e colunas. Ademais, o adjetivo profundidade deve ser compreendido como indicando a profundidade das partes de uma imagem de câmera. Portanto, o mapa de profundidade pode ser constituído por valores de profundidade, mas, também, por exemplo, por valores de disparidade ou valores de mudança paraláctica. Essencialmente, o mapa de profundidade pode, dessa forma, constituir um mapa de disparidade ou um mapa de mudança paraláctica. Aqui, o termo disparidade se refere a uma diferença na posição de um objeto quando percebido com um olho esquerdo ou um olho direito do usuário. O termo mudança paraláctica se refere a um deslocamento do objeto entre duas vistas de modo a fornecer a dita disparidade para o usuário. Disparidade e mudança paraláctica são geralmente correlacionadas de forma negativa com distância ou profundidade. Dispositivo e métodos para a conversão entre todos os tipos acima de mapas e/ou valores são conhecidos.
[75] A figura 8 ilustra um método implementado por computador 500 para estimar um mapa de profundidade de uma imagem. O método 500 é ilustrado compreendendo, em uma operação intitulada ACCESSING IMAGE DATA, acessar 510 dados de imagem da imagem, em uma operação intitulada ACCESSING DEPTH DATA, acessar 520 os dados de profundidade de um mapa de profundidade de gabarito, em uma operação intitulada APPLYING JOINT BILATERAL FILTER, aplicar 530 um filtro bilateral conjunto ao mapa de profundidade
Petição 870190093124, de 18/09/2019, pág. 98/108
30/31 de gabarito utilizando os dados de imagem como um termo de faixa no filtro bilateral conjunto, obtendo, assim, um mapa de profundidade de imagem adaptada como saída, onde aplicar o filtro bilateral conjunto compreende, em uma operação intitulada INITIALIZING VOLUMES, inicializar 540 um volume de soma de profundidades ponderadas e um volume da soma dos pesos como estruturas vazias de dados respectivas em uma memória, em uma operação intitulada SPLATTING OPERATION, realizar 550 uma operação de splatting para abastecer os ditos volumes, em uma operação intitulada SLICING OPERATION, realizar 560 uma operação de fatiamento para obter um volume de profundidade de imagem adaptada e em uma operação intitulada INTERPOLATION OPERATION, realizar 570 uma operação de interpelação para obter um valor de profundidade de imagem adaptada do mapa de profundidade de imagem adaptada para cada pixel na imagem. Será apreciado que a operação acima pode ser realizada em qualquer ordem adequada, por exemplo, consecutivamente, simultaneamente, ou uma combinação de ambas, sujeita a, onde aplicável, uma ordem em particular necessária, por exemplo, por relações de entrada/saída. Por exemplo, as operações 510 e 520 podem ser realizadas em paralelo ou sequencialmente.
[76] O método 500 pode ser implementado em um sistema de processador, por exemplo, em um computador como um método implementado por computador, como hardware dedicado, ou como uma combinação de ambos. Como também ilustrado na figura 9, as instruções para o computador, por exemplo, código executável, podem ser armazenadas em um meio legível por computador 600, por exemplo, na forma de uma série 610 de marcas físicas legíveis por máquina e/ou como uma série de elementos possuindo propriedades ou valores elétricos diferentes, por exemplo, magnéticos ou óticos. O código executável pode ser armazenado de uma forma transitória ou não transitó
Petição 870190093124, de 18/09/2019, pág. 99/108
31/31 ria. Exemplos de meios legíveis por computador incluem dispositivos de memória, dispositivos de armazenamento ótico, circuitos integrados, servidores, software online, etc. A figura 9 ilustra um disco ótico 600.
[77] Deve-se notar que as modalidades mencionadas acima ilustram em vez de limitar a invenção, e que essas pessoas versadas na técnica poderão projetar muitas modalidades alternativas.
[78] Nas reivindicações, quaisquer sinais de referência localizados entre parênteses não devem ser considerados como limitadores da reivindicação. O uso do verbo compreender e suas conjugações não exclui a presença dos elementos ou etapas além dos mencionados em uma reivindicação. O artigo um ou uma antecedendo um elemento não exclui a presença de uma pluralidade de tais elementos. A invenção pode ser implementada por meio de hardware compreendendo vários elementos distintos, e por meio de um computador programado adequadamente. Na reivindicação de dispositivo enumerando vários meios, vários desses meios podem ser consubstanciados por um e o mesmo item de hardware. O mero fato de determinadas medições serem mencionadas em reivindicações dependentes mutuamente diferentes não indica que uma combinação dessas medidas não possa ser utilizada de forma vantajosa.

Claims (15)

  1. REIVINDICAÇÕES
    1. Circuito integrado configurado para estimar um mapa de profundidade de uma imagem, o circuito integrado compreendendo ou sendo conectado a uma memória, o circuito integrado sendo caracterizado pelo fato de compreender:
    uma interface de dados de imagem configurada para acessar os dados de imagem da imagem;
    uma interface de dados de profundidade configurada para acessar os dados de profundidade de um mapa de profundidade de gabarito, o mapa de profundidade de gabarito representando um gabarito que deve ser adaptado aos dados de imagem;
    um subsistema de processamento configurado para aplicar um filtro bilateral conjunto ao mapa de profundidade de gabarito utilizando dados de imagem como um termo de faixa no filtro bilateral conjunto, obtendo, assim, um mapa de profundidade de imagem adaptada como saída;
    onde o subsistema de processamento é configurado para implementar o filtro bilateral conjunto por:
    inicialização de um volume de soma de profundidades ponderadas e um volume de soma de pesos como estruturas de dados vazias respectivas na memória, cada um dos ditos volumes compreendendo:
    duas dimensões espaciais representando uma versão reduzida de duas dimensões espaciais dos dados de imagem; e pelo menos uma dimensão de faixa representando uma versão reduzida de uma dimensão de faixa de um componente de imagem dos dados de imagem;
    onde as células dos ditos volumes definem compartimentos em um sistema de coordenadas da imagem que é definido com relação a duas dimensões espaciais da imagem e a dimensão de faixa
    Petição 870190093124, de 18/09/2019, pág. 101/108
  2. 2/7 dos dados de imagem;
    realizar uma operação de splatting para abastecer os ditos volumes, onde a operação de splatting compreende, para cada pixel na imagem:
    identificar compartimentos adjacentes no volume de soma de profundidade ponderada ao qual o pixel contribui para a operação de splatting com base em uma coordenada de pixels no sistema de coordenadas da imagem, a coordenada indicando uma posição relativa do pixel com relação aos compartimentos de cada um dos ditos volumes;
    obter um valor de profundidade do pixel do mapa de profundidade de gabarito;
    para cada um dos compartimentos adjacentes;
    obter um peso de splatting para ponderar o valor de profundidade, onde o peso de splatting determina uma contribuição do pixel para um compartimento respectivo e é determinado com base na posição relativa do pixel com relação ao compartimento respectivo;
    ponderar o valor de profundidade pelo peso de splatting;
    acumular o valor de profundidade ponderado no compartimento respectivo do volume de soma de profundidades ponderadas, e acumular o peso de splatting em um compartimento correspondente do volume de soma de pesos;
    realizar uma operação de fatiamento para obter um volume de profundidade de imagem adaptada, para cada compartimento do volume de soma de profundidades ponderadas e o compartimento correspondente do volume de soma de pesos, pela divisão dos valores de profundidade ponderada acumulados pelos pesos acumulados;
    realizar uma operação de interpelação para obter um valor de profundidade de imagem adaptada do mapa de profundidade de imagem adaptada para cada pixel na imagem, onde a operação de
    Petição 870190093124, de 18/09/2019, pág. 102/108
  3. 3/7 interpolação compreende:
    com base na coordenada do pixel no sistema de coordenadas da imagem, identificar os compartimentos adjacentes no volume de profundidade de imagem adaptada, com base no pixel contribuir para os compartimentos correspondentes do volume da soma de profundidade ponderada durante a operação de splatting;
    aplicar um filtro de interpolação aos compartimentos adjacentes do volume de profundidade de imagem adaptada, onde o filtro de interpolação compreende, para cada um dos compartimentos adjacentes, um peso de interpolação que é determinado com base na posição relativa do pixel com relação ao compartimento respectivo.
    2. Circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de o subsistema de processamento compreender um circuito de hardware específico de aplicativo e um microprocessador configurado por software, no qual:
    o circuito de hardware específico de aplicativo é configurado para realizar a operação de splatting e a operação de interpolação; e o microprocessador é configurado por software para, durante a operação do circuito integrado, realizar a operação de fatiamento.
    3. Circuito integrado, de acordo com a reivindicação 2, caracterizado pelo fato de o circuito de hardware específico de aplicativo compreender uma tabela de filtro para armazenar os pesos de splatting utilizados na operação de splatting e/ou os pesos de interpolação utilizados na operação de interpolação.
  4. 4. Circuito integrado, de acordo com a reivindicação 3, caracterizado pelo fato de a tabela de filtro ser carregada com pesos de splatting utilizados na operação de splatting e os pesos de interpolação utilizados na operação de interpolação antes de realizar a operação respectiva.
    Petição 870190093124, de 18/09/2019, pág. 103/108
    4/7
  5. 5. Circuito integrado, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de os pesos de splatting utilizados na operação de splatting e os pesos de interpolação utilizados na operação de interpolação serem iguais.
  6. 6. Circuito integrado, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de os pesos de splatting utilizados na operação de splatting e os pesos de interpolação utilizados na operação de interpolação representarem uma interpolação linear com relação ao sistema de coordenadas da imagem.
  7. 7. Circuito integrado, de acordo com qualquer uma das reivindicações 2 a 6, dependente da reivindicação 2, caracterizado pelo fato de o microprocessador ser configurado por software para, durante a operação do circuito integrado, aplicar uma filtragem temporal ao volume da soma de profundidades ponderadas e ao volume de soma de pesos antes de realizar a operação de fatiamento.
  8. 8. Circuito integrado, de acordo com a reivindicação 7, caracterizado pelo fato de a filtragem temporal ser um primeiro filtro de resposta a impulso finito ou filtro de resposta a impulso finito de ordem superior.
  9. 9. Circuito integrado, de acordo com qualquer uma das reivindicações 1 a 8, caracterizado pelo fato de o subsistema de processamento ser configurado para, depois de realizar a operação de splatting, realizar a convolução do volume da soma das profundidades ponderadas com um núcleo Gaussiano.
  10. 10. Circuito integrado, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de o circuito integrado ser ou fazer parte de um conjunto de porta programável em campo.
  11. 11. Circuito integrado, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de o circuito integrado ser ou fazer parte de um sistema em chip.
    Petição 870190093124, de 18/09/2019, pág. 104/108
    5/7
  12. 12. Dispositivo, caracterizado pelo fato de compreender o circuito integrado, como definido em qualquer uma das reivindicações 1 a 11.
  13. 13. Dispositivo, de acordo com a reivindicação 12, caracterizado pelo fato de ser um dispositivo de exibição ou uma caixa de decodificação.
  14. 14. Método implementado por computador para estimar um mapa de profundidade a partir de uma imagem, o método sendo caracterizado pelo fato de compreender:
    acessar dados de imagem da imagem;
    acessar dados de profundidade de um mapa de profundidade de gabarito, o mapa de profundidade de gabarito representando um gabarito que deve ser adaptado aos dados de imagem;
    aplicar um filtro bilateral conjunto ao mapa de profundidade de gabarito utilizando os dados de imagem como um termo de faixa no filtro bilateral conjunto, obtendo, assim, um mapa de profundidade de imagem adaptada como saída, onde aplicar o filtro bilateral conjunto compreende:
    inicializar um volume de soma de profundidades ponderadas e um volume de soma de pesos como estruturas de dados vazias respectivas em uma memória, cada um dos ditos volumes compreendendo:
    duas dimensões espaciais representando uma versão reduzida de duas dimensões espaciais dos dados de imagem; e pelo menos uma dimensão de faixa representando uma versão reduzida de uma dimensão de faixa de um componente de imagem dos dados de imagem;
    onde as células dos ditos volumes definem compartimentos em um sistema de coordenadas da imagem que é definido com relação a duas dimensões espaciais da imagem e à dimensão de faixa de
    Petição 870190093124, de 18/09/2019, pág. 105/108
    6/7 dados de imagem;
    realizar uma operação de splatting para abastecer os ditos volumes, onde a operação de splatting compreende, para cada pixel na imagem:
    identificar os compartimentos adjacentes no volume de soma de profundidade ponderada para o qual o pixel contribui na operação de splatting com base na coordenada do pixel no sistema de coordenadas da imagem, a coordenada sendo indicativa da posição relativa do pixel com relação aos compartimentos de cada um dos ditos volumes;
    obter um valor de profundidade do pixel a partir do mapa de profundidade de gabarito;
    para cada um dos compartimentos adjacentes:
    obter um peso de splatting para ponderar o valor de profundidade, onde o peso de splatting determina uma contribuição do pixel para um compartimento respectivo e é determinado com base na posição relativa do pixel com relação ao compartimento respectivo, ponderar o valor de profundidade pelo peso de splatting;
    acumular o valor de profundidade ponderada no compartimento respectivo do volume de soma de profundidades ponderadas e acumulando o peso de splatting em um compartimento correspondente do volume de soma de pesos;
    realizar uma operação de fatiamento para obter um volume de profundidade de imagem adaptada, para cada compartimento do volume de soma de profundidades ponderadas e compartimento correspondente do volume da soma de pesos, dividindo os valores de profundidade ponderado acumulados pelos pesos acumulados;
    realizar uma operação de interpolação para obter um valor de profundidade de imagem adaptada do mapa de profundidade de imagem adaptada para cada pixel na imagem, onde a operação de
    Petição 870190093124, de 18/09/2019, pág. 106/108
    7/7 interpolação compreende:
    com base na coordenada do pixel no sistema de coordenadas da imagem, identificar compartimentos adjacentes no volume de profundidade de imagem adaptada com base no pixel contribuindo para os compartimentos correspondentes do volume de soma de profundidades ponderadas durante a operação de splatting;
    aplicar um filtro de interpolação aos compartimentos adjacentes do volume de profundidade de imagem adaptada, onde o filtro de interpolação compreende, para cada um dos compartimentos adjacentes, um peso de interpolação que é determinado com base na posição relativa do pixel com relação ao compartimento respectivo.
  15. 15. Meio legível por computador caracterizado pelo fato de que compreende dados transitórios ou não transitórios representando instruções dispostas para fazer com que um sistema de processador realize o método, como definido na reivindicação 14.
BR112019019379A 2017-04-13 2018-04-04 implementação eficiente de filtro bilateral conjunto BR112019019379A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17166455.0A EP3389265A1 (en) 2017-04-13 2017-04-13 Efficient implementation of joint bilateral filter
PCT/EP2018/058604 WO2018189010A1 (en) 2017-04-13 2018-04-04 Efficient implementation of joint bilateral filter

Publications (1)

Publication Number Publication Date
BR112019019379A2 true BR112019019379A2 (pt) 2020-05-05

Family

ID=58632767

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019019379A BR112019019379A2 (pt) 2017-04-13 2018-04-04 implementação eficiente de filtro bilateral conjunto

Country Status (12)

Country Link
US (1) US11216962B2 (pt)
EP (2) EP3389265A1 (pt)
JP (1) JP7094299B2 (pt)
KR (1) KR102464876B1 (pt)
CN (1) CN110506418B (pt)
BR (1) BR112019019379A2 (pt)
CA (1) CA3056371C (pt)
ES (1) ES2928563T3 (pt)
IL (1) IL269868B (pt)
RU (1) RU2767512C2 (pt)
TW (1) TWI762617B (pt)
WO (1) WO2018189010A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11501413B2 (en) * 2020-11-17 2022-11-15 Adobe Inc. Kernel reshaping-powered splatting-based efficient image space lens blur

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2317336A1 (en) * 2000-09-06 2002-03-06 David Cowperthwaite Occlusion resolution operators for three-dimensional detail-in-context
RU2215326C2 (ru) * 2001-06-29 2003-10-27 Самсунг Электроникс Ко., Лтд. Иерархическое основанное на изображениях представление неподвижного и анимированного трехмерного объекта, способ и устройство для использования этого представления для визуализации объекта
KR100574974B1 (ko) * 2004-02-26 2006-05-02 삼성전자주식회사 암호화된 방송 데이터를 위한 제한수신기능과복제방지기능을 구비하는 장치 및 방법
KR20080114324A (ko) * 2007-06-27 2008-12-31 엘지이노텍 주식회사 카메라 모듈, 이의 검사 장치 및 검사 방법
EP2184713A1 (en) * 2008-11-04 2010-05-12 Koninklijke Philips Electronics N.V. Method and device for generating a depth map
WO2010084460A1 (en) * 2009-01-20 2010-07-29 Nxp B.V. Image processing using a bilateral grid
WO2010134890A1 (en) 2009-05-21 2010-11-25 Esa Group Pte Ltd System and method for testing and managing camera modules
US8988461B1 (en) * 2011-01-18 2015-03-24 Disney Enterprises, Inc. 3D drawing and painting system with a 3D scalar field
CN102055996B (zh) 2011-02-23 2013-01-23 南京航空航天大学 基于空间逐层扫描的真三维立体显示系统及其显示方法
US8754829B2 (en) * 2012-08-04 2014-06-17 Paul Lapstun Scanning light field camera and display
TW201432622A (zh) * 2012-11-07 2014-08-16 Koninkl Philips Nv 產生一關於一影像之深度圖
CN103927717B (zh) 2014-03-28 2017-03-15 上海交通大学 基于改进型双边滤波的深度图像恢复方法
US8988317B1 (en) * 2014-06-12 2015-03-24 Lytro, Inc. Depth determination for light field images
US9838679B2 (en) 2015-07-28 2017-12-05 Viavi Solutions Inc. Distance to fault measurements in cable TV networks
CN106210713A (zh) 2016-08-30 2016-12-07 昆山软龙格自动化技术有限公司 一种手机摄像头模组多模组同时测试装置

Also Published As

Publication number Publication date
CN110506418B (zh) 2021-05-25
WO2018189010A1 (en) 2018-10-18
CA3056371C (en) 2024-04-02
CN110506418A (zh) 2019-11-26
US11216962B2 (en) 2022-01-04
RU2767512C2 (ru) 2022-03-17
RU2019136258A (ru) 2021-05-13
JP2020518892A (ja) 2020-06-25
ES2928563T3 (es) 2022-11-21
CA3056371A1 (en) 2018-10-18
TWI762617B (zh) 2022-05-01
US20210192760A1 (en) 2021-06-24
EP3389265A1 (en) 2018-10-17
EP3610645B1 (en) 2022-07-13
TW201837863A (zh) 2018-10-16
KR102464876B1 (ko) 2022-11-07
KR20190135527A (ko) 2019-12-06
IL269868B (en) 2022-03-01
EP3610645A1 (en) 2020-02-19
RU2019136258A3 (pt) 2021-05-13
JP7094299B2 (ja) 2022-07-01

Similar Documents

Publication Publication Date Title
CN103096106B (zh) 图像处理设备和方法
CN108986195B (zh) 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法
Kähler et al. Hierarchical voxel block hashing for efficient integration of depth images
US8902229B2 (en) Method and system for rendering three dimensional views of a scene
CN107967707B (zh) 用于处理图像的设备和方法
US10424269B2 (en) Flexible addressing for a three dimensional (3-D) look up table (LUT) used for gamut mapping
JP5872579B2 (ja) 画像処理装置
US10964288B2 (en) Automatically adapt user interface color scheme for digital images and video
BR112019019379A2 (pt) implementação eficiente de filtro bilateral conjunto
Díaz Iriberri et al. Depth-enhanced maximum intensity projection
US10679373B2 (en) Dual mode depth estimator
Balabanian et al. Temporal styles for time-varying volume data
US8982120B1 (en) Blurring while loading map data
KR101978176B1 (ko) 영상 처리 장치 및 방법
de Dinechin et al. Presenting COLIBRI VR, an Open-Source Toolkit to Render Real-World Scenes in Virtual Reality
CN115239883A (zh) 图像处理方法和装置、电子设备、计算机可读存储介质
CN115391469A (zh) 电子地图的斑马线显示方法、设备和计算机可读存储介质
WO2021245262A1 (en) Multi-channel extended depth-of-field method for automated digital cytology
WO2023235273A1 (en) Layered view synthesis system and method
CN108133475A (zh) 一种局部聚焦模糊图像的检测方法
CN109410224A (zh) 一种图像分割方法、系统、装置及存储介质
US9137519B1 (en) Generation of a stereo video from a mono video
CN111506680A (zh) 地形数据生成、渲染方法及装置、介质、服务器、终端
Hofsetz Image-based rendering of range data with depth uncertainty
Srinivasan et al. Integrating volume morphing and visualization

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]