BR112017010007B1 - Aparelho adaptado para gerar um conjunto de coeficientes de transformada, método para gerar um conjunto de coeficientes de transformada, aparelho adaptado para decodificar um bloco de um quadro, e método para reconstruir um bloco de um quadro - Google Patents
Aparelho adaptado para gerar um conjunto de coeficientes de transformada, método para gerar um conjunto de coeficientes de transformada, aparelho adaptado para decodificar um bloco de um quadro, e método para reconstruir um bloco de um quadro Download PDFInfo
- Publication number
- BR112017010007B1 BR112017010007B1 BR112017010007-0A BR112017010007A BR112017010007B1 BR 112017010007 B1 BR112017010007 B1 BR 112017010007B1 BR 112017010007 A BR112017010007 A BR 112017010007A BR 112017010007 B1 BR112017010007 B1 BR 112017010007B1
- Authority
- BR
- Brazil
- Prior art keywords
- rotational symmetry
- block
- mask
- blocks
- pair
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/196—Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
A presente invenção se refere a um aparelho, métodos, para gerar um conjunto de coeficientes de transformada para conversão em código de um bloco em um quadro ou porção do mesmo, que compreende: um codificador de mídia acoplado a uma interface de da-dos adaptada para receber um quadro ou porção da mesma, em que o codificador de mídia é adaptado para: selecionar uma máscara de simetria rotacional para o bloco a partir de uma pluralidade de máscaras de simetria rotacional que define uma pluralidade de diferentes simetrias rotacionals em um espaço multidimensional que tem um tamanho e um formato como o bloco; dividir o bloco em duas porções complementares com base na máscara de simetria rotacional; gerar um par de blocos de simetria rotacional em que cada um tem uma das duas porções complementares; e computar pelo menos um coeficiente de transformada para pelo menos um membro do par de blocos de simetria rotacional.
Description
[0001] A presente invenção, em algumas modalidades da mesma, refere-se a sistemas e métodos para imagem digital e/ou compressão de vídeo e, mais especificamente, mas não de modo exclusivo, a sistemas e métodos para gerar um conjunto de coeficientes de transformada para processar um bloco de uma imagem digital.
[0002] As imagens digitais, tais como imagens estáticas obtidas por uma câmera digital, e vídeo digital, exigem recursos de memória significativos quando armazenados de uma maneira não comprimida, representada por um conjunto de dados completo. A transmissão do conjunto de dados completo que representa as imagens e/ou o vídeo digitais exigiria recursos de rede significativos, tal como largura de banda de conexão. O vídeo é especialmente problemático, visto que um único vídeo pode incluir milhares de quadros individuais. O armazenamento e/ou a transmissão do conjunto de dados completo para cada imagem pode não ser possível em muitos casos, ou de outro modo sobrecarregar o processamento e os recursos de rede.
[0003] Ademais, conforme a qualidade e as capacidades de reso lução se aprimoram tanto em câmeras (estática e vídeo) quanto em telas de visor, a quantidade de dados gerados por imagem continua a aumentar. Os aplicativos com base em vídeo que funcionam em dispositivos móveis (por exemplo, telefones inteligentes e computadores de tipo tablet) que contam com a transmissão do vídeo geram uma grande quantidade de tráfego de rede, que é especialmente problemá- tico para redes sem fio.
[0004] Diferentes soluções para compressão de imagens digitais estáticas e vídeo digital foram desenvolvidas, a fim de reduzir o tamanho dos dados de imagem e vídeo, e através disso reduzir os recursos de armazenamento e os recursos de rede necessários.
[0005] Por exemplo, Sullivan et al., "Overview of the High Efficien cy Video Coding (HEVC) Standard" IEEE Transações em Circuitos e Sistemas para Tecnologia de Vídeo, volume 22, No 12, dezembro de 2012, descreve "A codificação de vídeo de alta eficiência (HEVC) está sendo atualmente preparada como o mais novo padrão de codificação de vídeo do Grupo de Peritos em Codificação de Vídeo ITU-T e do Grupo de Peritos em Filmes ISO/IEC. O objetivo principal do esforço de padronização de HEVC é permitir um desempenho de compressão significativamente aprimorado em relação a padrões existentes na faixa de 50% de redução de taxa de bits para uma qualidade de vídeo perceptiva igual."
[0006] O objetivo da presente invenção é fornecer uma tecnologia de compressão de vídeo aprimorada.
[0007] Esse objetivo é alcançado através da solução fornecida nas concretizações independentes. As implantações vantajosas são adici-onalmente definidas nas respectivas concretizações dependentes.
[0008] De acordo com um primeiro aspecto, um aparelho adaptado para gerar um conjunto de coeficientes de transformada para codificar um bloco em um quadro ou uma porção do mesmo compreende: um codificador de mídia acoplado a uma interface de dados adaptada para receber um quadro ou uma porção da mesma, o codificador de mídia é adaptado para: selecionar uma máscara de simetria rotacional para o bloco dentre uma pluralidade de máscaras de simetria rotacional que definem uma pluralidade de diferentes simetrias rotacionais em um espaço multidimensional que tem um tamanho e um formato conforme o bloco; dividir o bloco para duas porções complementares com base na máscara de simetria rotacional; gerar um par de blocos de simetria rotacional sendo que cada um tem uma das porções complementares; e computar pelo menos um coeficiente de transformada para pelo menos um membro do par de blocos de simetria rotacional.
[0009] De acordo com um segundo aspecto, um método para ge rar um conjunto de coeficientes de transformada de um bloco em um quadro ou uma porção do mesmo compreende: selecionar uma máscara de simetria rotacional de uma biblioteca de máscara de simetria rotacional que compreende uma pluralidade de diferentes máscaras de simetria rotacional que definem uma pluralidade de diferentes simetrias rotacionais em um espaço multidimensional que tem um tamanho e um formato conforme o bloco; dividir o bloco para duas porções complementares com base na máscara de simetria rotacional; gerar um par de blocos de simetria rotacional sendo que cada um tem uma das porções complementares; e computar pelo menos um coeficiente de transformada para cada membro do par de blocos de simetria rotacio- nal. O método pode ser configurado para operar um aparelho de acordo com o primeiro aspecto.
[00010] De acordo com um terceiro aspecto, um aparelho adaptado para decodificar um bloco de um quadro ou uma porção da mesma, compreende: um decodificador de mídia acoplado a uma interface de dados adaptada para receber pelo menos um coeficiente de transformada que representa pelo menos um membro de um par de blocos de simetria rotacional, e um sinal que representa uma máscara de simetria de rotação selecionada associada, sendo que a máscara de simetria de rotação define uma simetria rotacional em um espaço multidimensional que tem um tamanho e um formato como um bloco de um quadro ou uma porção da mesma, o decodificador de mídia é adapta- do para: computar o par de blocos de simetria rotacional com base em transformada inversa do pelo menos um coeficiente de transformada recebido, sendo que cada membro do par de blocos de simetria rotaci- onal tem uma de duas porções complementares; e reconstruir um bloco a partir das duas porções complementares com base na máscara de simetria rotacional. Um aparelho de acordo com o terceiro aspecto pode ser adaptado para decodificar um bloco de um quadro ou uma porção do mesmo codificada por um aparelho de acordo com o primeiro aspecto.
[00011] De acordo com um quarto aspecto, um método para reconstruir um bloco de um quadro ou uma porção da mesma compreende: receber pelo menos um coeficiente de transformada que representa pelo menos um membro de um par de blocos de simetria rotaci- onal, e um sinal que representa uma máscara de simetria de rotação selecionada associada, a máscara de simetria de rotação que define uma simetria rotacional em um espaço multidimensional que tem um tamanho e um formato como um bloco de um quadro ou uma porção da mesma; computar o par de blocos de simetria rotacional com base em transformada inversa do pelo menos um coeficiente de transformada recebido, sendo que cada membro do par de blocos de simetria rotacional tem uma de duas porções complementares; e reconstruir um bloco a partir das duas porções complementares com base na máscara de simetria rotacional. Um método de acordo com o quarto aspecto pode ser adaptado para operar um aparelho de acordo com o terceiro aspecto.
[00012] De acordo com um quinto aspecto, um programa de computador é configurado para realizar um método de acordo com um dos aspectos anteriores quando executado em um computador. O programa de computador pode ser configurado para uso por um codificador de mídia para codificar um bloco em um quadro ou uma porção do mesmo, sendo que o código de programa compreende: instruções para selecionar uma máscara de simetria rotacional de uma biblioteca de máscara de simetria rotacional que compreende uma pluralidade de diferentes máscaras de simetria rotacional que definem uma pluralidade de diferentes simetrias rotacionais em um espaço multidimensional que tem um tamanho e um formato conforme o bloco; instruções para dividir o bloco para duas porções complementares com base na máscara de simetria rotacional; instruções para gerar um par de blocos de simetria rotacional sendo que cada um tem uma das porções complementares; e instruções for computar pelo menos um coeficiente de transformada para cada membro do par de blocos de simetria rotacio- nal.
[00013] A título de clareza, os detalhes do aparelho de codificação, do método de codificação e/ou produto de programa de computador de codificação são descritos no presente documento. Para cada função e/ou estrutura de codificação descrita, uma função e/ou uma estrutura de decodificação correspondente está implícita. A título de brevidade e clareza, a descrição das funções de decodificação e/ou dos elementos estruturais que correspondem à função de decodificação e/ou ao elemento estrutural descritos são omitidos. A título de clareza, o termo codificador de mídia também se refere ao método e ao produto de programa de computador. Por exemplo, a frase "o codificador de mídia é adaptado" também significa que o método adicionalmente compreende e que o produto de programa de computador adicionalmente compreende instruções para tal.
[00014] Todos os aspectos aprimoram o desempenho de sistema aprimorando-se eficiência e/ou reduzindo-se exigências de recurso (por exemplo, memória e/ou processador) para compressão de imagens e/ou vídeo.
[00015] Em uma primeira implantação possível do aparelho de acordo com o primeiro aspecto, o codificador de mídia é adaptado para gerar cada membro do par de blocos de simetria rotacional através de uma das duas porções complementares e um espelho bidimensional (2D) da respectiva porção adicionada para formar o tamanho e o formato do bloco.
[00016] Em uma segunda forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com a primeira forma de implantação, a pluralidade de máscaras de simetria rotacional está em uma biblioteca de máscaras de simetria rotacio- nal; em que o codificador de mídia é adaptado para selecionar a biblioteca de máscara de simetria rotacional de uma pluralidade de bibliotecas de máscara de simetria rotacional com base pelo menos em um dentre um tamanho e um formato do bloco.
[00017] A seleção em etapas pode reduzir a faixa de busca, reduzindo-se o tamanho do conjunto para seleção em cada etapa, reduzindo-se os recursos e/ou as computações para a seleção. A seleção da máscara de uma biblioteca (ou subconjunto de máscara) ao invés de ser a partir de um conjunto maior de máscaras candidatas reduz a quantidade de bits codificados que são utilizados para sinalizar para um decodificador a máscara selecionada, e/ou reduzir a complexidade de computação e/ou as fontes de memória e/ou os recursos de processador.
[00018] Em uma terceira forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para selecionar a biblioteca de máscara de simetria rotacional de uma pluralidade de bibliotecas de máscara de simetria rotacional com base em preferência de compressão para o bloco.
[00019] As preferências de compressão podem ajudar em uma seleção de máscara quando os parâmetros de compressão envolvem certas trocas, por exemplo, uma diminuição de tamanho em troca de diminuição de qualidade. As máscaras com medidas de complexidade estimada menores são estimadas para exigir menos recursos (por exemplo, processador e/ou memória).
[00020] Em uma quarta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, a preferência de compressão é selecionada dentre um grupo que consiste em uma preferência de complexidade de compressão, uma preferência de qualidade de compressão e uma preferência de tamanho de compressão.
[00021] Em uma quinta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para gerar automaticamente a biblioteca de máscara de simetria rotacional com o pré-processamento de dados de vídeo que consiste no quadro ou na porção dos mesmos e para selecionar a pluralidade de diferentes máscaras de simetria rotacional de um repositório de diferentes máscaras de simetria rotacional de acordo com pelo menos um dentre um produto do pré-processamento para preferência de complexidade de compressão, preferência de tamanho de compressão e preferência de qualidade de compressão.
[00022] A quantidade de máscaras na biblioteca gerada pode ser menor do que gerar todas as permutações possíveis, visto que apenas as máscaras que satisfazem os critérios de compressão são incluídas.
[00023] O pré-processamento dos dados de vídeo pode aprimorar o desempenho do codificador. As computações pesadas de recurso podem ser realizadas antecipadamente, ao invés de durante a compressão. Os dados que servem como a base para seleção de máscara podem estar prontos, para permitir uma seleção mais rápida de máscara durante o processo de compressão de bloco, ao invés de realizar o cálculo de seleção de máscara durante o processo de compressão.
[00024] Em uma sexta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para gerar automaticamente a biblioteca de máscara de simetria rotacional de acordo com um membro de um grupo que consiste em preferências para uma complexidade de compressão de bloco, um tamanho de compressão de bloco e uma qualidade de compressão de bloco.
[00025] Em uma sétima forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para selecionar a biblioteca de máscara de simetria rotacional de uma pluralidade de bibliotecas de máscara de simetria rotacional com base em uma classificação de dados de vídeo que compreende o quadro ou a porção do mesmo.
[00026] Os dados de vídeo pré-classificados aprimoram um desempenho de sistema, visto que as máscaras podem ser selecionadas de modo mais eficiente e/ou com o uso de menos recursos com base na classificação.
[00027] Em uma oitava forma de implantação possível do aparelho de acordo com o primeiro aspecto, ou de acordo com qualquer uma das formas de implantação anteriores, o espaço multidimensional é um espaço bidimensional, em que a pluralidade de diferentes máscaras de simetria rotacional compreende uma pluralidade de matrizes em que cada uma define uma linha diferente que se liga a bordas opostas do espaço bidimensional para dividir o espaço bidimensional em duas porções complementares.
[00028] A máscara de simetria rotacional pode ser adaptada para dividir espaços multidimensionais e/ou dados, que fornece a integração dos sistemas e/ou do método descrito no presente documento com diferentes padrões de imagem e/ou vídeo com base em espaço multidimensional.
[00029] Em uma nona forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, cada uma dentre a pluralidade de diferentes máscaras de simetria rotacional é mapeada em um arranjo hierárquico de acordo com um ângulo de uma respectiva linha em relação a uma borda do espaço bidimensional; em que o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional em uma seleção de máscara iterativa de pelo menos algumas dentre a pluralidade de diferentes máscaras de simetria rotacional em uma ordem definida de acordo com o arranjo hierárquico.
[00030] O arranjo hierárquico pode reduzir o tempo de processamento e/ou os recursos para identificar a melhor máscara.
[00031] Em uma décima forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, a pluralidade de diferentes máscaras de simetria rotacional são máscaras retangulares que têm um tamanho e um formato conforme o bloco.
[00032] Processar blocos retangulares aprimora a compatibilidade dos sistemas e/ou dos métodos descritos no presente documento com padrões que permitam um particionamento do quadro (ou subáreas do mesmo) em blocos retangulares.
[00033] Em uma décima primeira forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para codificar o pelo menos um coeficiente de transformada com o uso de pelo menos um previsor espa- cial adaptado para pelo menos uma das duas porções complementares do bloco.
[00034] A codificação com base em previsores aprimora a eficiência de sistema e/ou utiliza menos recursos.
[00035] Em uma décima segunda forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para codificar o pelo menos um coeficiente de transformada com o uso de pelo menos um previsor temporal adaptado para pelo menos uma das duas porções complementares do bloco.
[00036] Em uma décima terceira forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, o codificador de mídia é adaptado para codificar pelo menos um coeficiente de transformada de cada um do par de blocos de simetria rotacional com o uso de um previsor espacial em relação à respectiva uma das duas porções complementares.
[00037] Em uma décima quarta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, o codificador de mídia é adaptado para codificar pelo menos um coeficiente de transformada de cada um do par de blocos de simetria rotacional com o uso de um vetor de movimento em relação à respectiva uma das duas porções complementares.
[00038] Em uma décima quinta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para codificar o pelo menos um coeficiente de transformada com o uso de um modelo de contexto de entropia adap- tado para a máscara de simetria rotacional.
[00039] Em uma décima sexta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para selecionar a máscara de simetria ro- tacional com base em um resultado de um processo de transformação e/ou uma estimativa de um resultado de um processo de transformação aplicado em pelo menos um dos dois blocos simétricos ro- tacionais.
[00040] A seleção de máscara com base em resultado e/ou resultado estimado aprimora a eficiência de sistema e/ou utiliza menos recursos.
[00041] Em uma décima sétima forma de implantação possível do aparelho de acordo com o primeiro aspecto, ou de acordo com qualquer uma das implantações anteriores, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um resultado e/ou uma estimativa de um resultado de pelo menos um dentre um processo de quantização e um processo de codificação aplicado no pelo menos um coeficiente de transformada em pelo menos um membro do par de blocos de simetria rotacional.
[00042] Em uma décima oitava forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, cada uma dentre a pluralidade de diferentes máscaras de simetria rotacional está associada a uma medida de taxa estimada indicativa de uma quantidade de bits transmitida quando uma certa respectiva máscara dentre a pluralidade de máscaras é aplicada em um bloco exemplificativo que tem o tamanho e o formato.
[00043] A medição de taxa pode ser armazenada com cada máscara, o que permite uma seleção rápida da máscara com base no valor de medida de taxa estimada. A medição de taxa pode ser calculada antecipadamente para cada máscara, ao invés de ser recalculada durante um tempo de funcionamento, e através disso reduz as computações exigidas para a seleção.
[00044] Em uma décima nona forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, cada uma dentre a pluralidade de diferentes máscaras de simetria rotacional está associada a uma medida de complexidade estimada indicativa de uma complexidade computacional de aplicar uma certa respectiva máscara dentre a pluralidade de máscaras em um bloco exemplificativo que tem o tamanho e o formato.
[00045] A seleção de máscara com base em uma medição de complexidade estimada aprimora a eficiência de sistema e/ou utiliza menos recursos.
[00046] Em uma vigésima forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, cada uma dentre a pluralidade de diferentes máscaras de simetria rotacional está associada a uma medida de distorção estimada indicativa de um artefato de compressão emanada da aplicação de uma certa respectiva máscara dentre a pluralidade de máscaras em um bloco exemplificativo que tem o tamanho e o formato.
[00047] As máscaras com medidas de distorção estimada menores são estimadas para exigir menos recursos (por exemplo, processador e/ou memória) enquanto alcançam o artefato de compressão alvo.
[00048] Em uma vigésima primeira forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para selecionar a máscara de sime- tria rotacional de acordo com um padrão de valores de pixel no bloco.
[00049] A seleção com base no padrão de valores de pixel produz duas porções complementares nas quais os pixels em cada respectiva porção são similares uns aos outros, por exemplo, intensidade e/ou cor similares.
[00050] Em uma vigésima segunda forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um classificador estatístico gerado por uma análise de resultados de registros de conjunto de treinamento de aplicar pelo menos algumas dentre a pluralidade de diferentes máscaras de simetria rotacional.
[00051] O classificador estatístico pode aprimorar a seleção da máscara com base em predição de um resultado que inclui múltiplos resultados desejados diferentes.
[00052] Em uma vigésima terceira forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores do primeiro, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um conteúdo extraído de pelo menos um dos blocos vizinhos espaciais do bloco e blocos vizinhos temporais do bloco.
[00053] Opcionalmente, os vizinhos incluem os blocos anteriormente processados. Os blocos anteriormente processados podem ser usados como previsores para uma seleção da máscara para o bloco que é atualmente processado.
[00054] Em uma vigésima quarta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o conteúdo extraído é de acordo com um padrão de valores de pixel em pelo menos um dentre os blocos vizinhos espacial e temporal.
[00055] Os blocos vizinhos que contêm padrões de pixel similares usados como previsores aprimoram o desempenho de sistema e/ou exigem menos recursos.
[00056] Em uma vigésima quinta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, o codificador de mídia é adaptado para selecionar uma máscara de simetria rotacional e é realizado com base em informações associadas a pelo menos um dos blocos vizinhos espaciais do bloco e blocos vizinhos temporais do bloco.
[00057] Em uma vigésima sexta forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, as informações associadas a pelo menos um dentre o grupo que consiste em blocos vizinhos espaciais e temporais é referente a predição.
[00058] Em uma vigésima sétima forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, o codificador de mídia é adaptado para selecionar uma máscara de simetria rotacio- nal e é realizado com base em preferência de compressão para o bloco.
[00059] Em uma vigésima oitava forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, a preferência de compressão é selecionada dentre um grupo que consiste em: uma preferência de complexidade de compressão, uma preferência de qualidade de compressão, e uma preferência de tamanho de compressão.
[00060] Em uma vigésima nona forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, cada membro do par de blocos de simetria rotacional é representado por uma matriz que tem valores 2D espelhados ao redor de uma diagonal principal.
[00061] Em uma trigésima forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, a máscara de simetria ro- tacional é adaptada para definir uma linha que liga bordas opostas de um retângulo para dividir um bloco retangular para duas porções complementares espelhadas em 2D.
[00062] A propriedade de espelho fornece uma compressão eficiente do bloco.
[00063] Em uma trigésima primeira forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das implantações anteriores, uma pluralidade de linhas que ligam bordas opostas do retangular são adaptadas para formar uma biblioteca de máscara de simetria rotacional.
[00064] Em uma trigésima segunda forma de implantação possível do aparelho de acordo com o primeiro aspecto sendo assim, ou de acordo com qualquer uma das formas de implantação anteriores, a interface de dados é adicionalmente adaptada para receber pelo menos um coeficiente de transformada que representa pelo menos um membro de um par de blocos de simetria rotacional, e um sinal que representa uma máscara de simetria de rotação selecionada associada, a máscara de simetria de rotação que define uma simetria rotacio- nal em um espaço multidimensional que tem um tamanho e um formato como um bloco de um quadro ou uma porção da mesma; e o codificador de mídia é adicionalmente adaptado para: computar o par de blocos de simetria rotacional com base em transformada inversa do pelo menos um coeficiente de transformada recebido, sendo que cada membro do par de blocos de simetria rotacional tem uma de duas porções complementares; e reconstruir um bloco a partir das duas porções complementares, com base na máscara de simetria rotacional.
[00065] A menos que seja definido de outra maneira, todos os termos técnicos e/ou científicos usados no presente documento têm o mesmo significado conforme comumente conhecido por uma pessoa de habilidade comum na técnica a qual a invenção pertence. Embora os métodos e os materiais similares ou equivalentes aos mesmos descritos no presente documento pode ser usado na prática ou em testes de modalidades da invenção, em que os métodos e/ou os materiais exemplificativos são descritos abaixo. Em caso de conflito, o relatório descritivo da patente, inclusive as definições, irá controlar. Além disso, os materiais, os métodos e os exemplos são apenas ilustrativos e não se destinam a ser necessariamente limitantes.
[00066] Algumas modalidades da invenção são descritas no presente documento, apenas a título de exemplo, em referência aos desenhos anexos. Agora, em referência específica aos desenhos em detalhes, é salientado que as particularidades mostradas são a título de exemplo e com finalidades de discussão ilustrativa de modalidades da invenção. Em relação a isso, a descrição tomada com os desenhos torna aparente aos versados na técnica como as modalidades da invenção podem ser praticadas.
[00067] A Figura 1 é um fluxograma de um método para gerar um conjunto de coeficientes de transformada para codificar e/ou processar um bloco em um quadro, de acordo com algumas modalidades da presente invenção;
[00068] A Figura 2 é um diagrama de blocos da parte de transformada de um codificador de mídia adaptado para gerar um conjunto de coeficientes de transformada para codificar e/ou processar um bloco em um quadro, de acordo com algumas modalidades da presente invenção;
[00069] A Figura 3 é um diagrama esquemático que retrata alguns exemplos de máscaras de simetria rotacional simples, de acordo com algumas modalidades da presente invenção;
[00070] A Figura 4 é um diagrama esquemático que retrata a seleção de uma máscara de simetria rotacional para um bloco, de acordo com algumas modalidades da presente invenção;
[00071] As Figuras 5A a 5C são diagramas esquemáticos que retratam um espelhamento 2D de pixel para definir as máscaras de simetria rotacional, de acordo com algumas modalidades da presente invenção;
[00072] As Figuras 6A a 6C são alguns exemplos de bibliotecas de máscara de simetria rotacional, de acordo com algumas modalidades da presente invenção;
[00073] A Figura 7 é um diagrama esquemático que retrata graficamente o arranjo hierárquico de máscaras de simetria rotacional, de acordo com algumas modalidades da presente invenção;
[00074] A Figura 8 é um diagrama esquemático que retrata a geração e/ou a representação da máscara de simetria rotacional, de acordo com algumas modalidades da presente invenção;
[00075] A Figura 9 é uma lista de variedades de critérios e/ou métodos computadorizados para selecionar uma máscara de simetria ro- tacional para dividir o bloco, de acordo com algumas modalidades da presente invenção;
[00076] A Figura 10 é um diagrama de blocos de um sistema exemplificativo para compressão e descompressão de imagem que incorpora um codificador/decodificador de coeficiente com base na Fi- gura 1 e/ou na Figura 2, de acordo com algumas modalidades da presente invenção;
[00077] A Figura 11 é um fluxograma de um método para decodificar um conjunto de coeficientes de transformada que codifica um bloco em um quadro, de acordo com algumas modalidades da presente invenção; e
[00078] As Figuras 12A a 12I incluem uma imagem e gráficos de resultados experimentais de executar os métodos e/ou os sistemas descritos no presente documento.
[00079] Um aspecto de algumas modalidades da presente invenção se refere a métodos e/ou sistemas para gerar um conjunto de coeficientes de transformada para codificar um bloco de um quadro ou uma porção da mesma, sendo que a codificação realizada em duas porções complementares obtidas dividindo-se o bloco com base em uma certa máscara de simetria rotacional selecionada. Os métodos e/ou sistemas reduzem o tamanho (por exemplo, a quantidade de bits) exigido para armazenar e/ou transmitir o bloco, aprimorando-se a taxa de compressão do bloco, sem uma redução significativa em qualidade de imagem. Qualquer redução de qualidade de imagem está dentro de limites aceitáveis predefinidos e/ou similar a redução de qualidade de imagem com o uso de métodos padrão sem o método descrito no presente documento, por exemplo, a razão de ruído para sinal de pico (PSNR) pode ser usada como uma medição de objetivo para definir uma qualidade de imagem.
[00080] Conforme descrito no presente documento o termo quadro ou imagem as vezes se refere a uma porção do quadro ou uma porção da imagem. Os coeficientes de transformada podem ser calculados para todo o quadro (e/ou imagem), e/ou para uma porção do quadro (e/ou imagem), por exemplo, os coeficientes de transformada são cal- culados para fatias e/ou recortes, que são subpartes do quadro, por exemplo, conforme definido pelo padrão de compressão.
[00081] Os métodos e/ou sistemas incluem um codificador para codificar o bloco, selecionando-se uma máscara de simetria rotacional adequada para o bloco, dividindo-se o bloco para duas porções complementares com base na máscara, gerando-se um par de blocos de simetria rotacional a partir de cada uma das porções, e computando-se o coeficiente (ou os coeficientes) de transformada para um ou ambos os blocos de simetria rotacional.
[00082] Os métodos e/ou sistemas incluem um decodificador para decodificar os coeficientes de transformada e reconstruir o bloco. Os coeficientes de transformada são decodificados para reconstruir o par de blocos de simetria rotacional. Cada membro do par é convertido de volta (por exemplo, com base em cálculos de transformada inversa) para a respectiva uma das duas porções complementares. As duas porções complementares são conectadas novamente em conjunto para formar o bloco, guiado pela máscara de simetria rotacional.
[00083] A título de clareza, os detalhes do codificador são descritos no presente documento. Para cada função e/ou estrutura de codificação descrita, uma função e/ou uma estrutura de decodificação correspondente está implícita. A título de brevidade e clareza, as funções de decodificação e/ou os elementos estruturais que correspondem à função de codificação e/ou ao elemento estrutural são omitidos da descrição.
[00084] Opcionalmente, a máscara é selecionada para dividir o bloco para duas porções complementares que são mais bem comprimidas em comparação com uma compressão de todo bloco, ou em comparação com uma compressão de um método de divisão padrão para o bloco (por exemplo, quatro quadrados, por exemplo, conforme definido nos padrões de codificação de vídeo de alta eficiência (HEVC) e/ou H.265).
[00085] Opcionalmente, a máscara é selecionada para dividir o bloco com base em um ou mais recursos visuais na imagem do bloco. O bloco pode conter diferentes tipos de conteúdo separados pelos recursos visuais, por exemplo, uma linha ou borda inclinada retratada por todo bloco. A máscara pode dividir o bloco substancialmente ao longo do recurso visual para gerar duas porções complementares que são cada uma mais homogênea em relação a outra (isto é, cada uma geralmente retrata um dos tipos de conteúdo) que seriam formadas quando o bloco divide em um local que não seja os recursos visuais, por exemplo, em quatros blocos iguais conforme especificado pelo padrão HEVC.
[00086] Opcionalmente, diferentes máscaras são selecionadas para diferentes blocos. As máscaras podem ser independentemente selecionadas para os blocos, por exemplo, com base no conteúdo no bloco. A compressão de cada bloco é aprimorada através da seleção de máscara customizada.
[00087] Cada respectiva máscara aplicada a cada respectivo bloco está associada a o conjunto de coeficientes de transformada calculados para o respectivo bloco. Por exemplo, a máscara usada para cada bloco é transmitida juntamente com os coeficientes de transformada calculados, e/ou um sinal que indica qual máscara (por exemplo, de uma biblioteca de possíveis máscaras) está associada aos coeficientes de transformada é transmitido.
[00088] A máscara tem a propriedade de ser simétrica de modo ro- tacional. Opcionalmente, a máscara define a divisão do bloco em duas porções complementares de maneira que o formato do bloco e a divisão são invariantes abaixo de 180 graus de giro do bloco em relação ao centro do bloco. A máscara pode ser uma máscara binária (conforme descrito no presente documento). A simetria rotacional permite o cálculo de coeficientes de transformação ortogonal em duas dimensões usando um método de transformação ortogonal adequado, por exemplo, uma transformada discreta de cosseno (DCT) 2D. Os coeficientes de transformação ortogonal são comprimidos de modo mais eficiente em comparação com coeficientes de transformação não ortogonal.
[00089] Cada uma das duas porções complementares retém a topologia bidimensional do conteúdo de imagem original na respectiva parte do bloco, permitindo uma reconstrução da mesma imagem.
[00090] Antes de explicar pelo menos uma modalidade da invenção em detalhes, deve ser entendido que a invenção não é necessariamente limitada em sua aplicação aos detalhes de construção e o arranjo dos componentes e/ou métodos definidos na descrição a seguir e/ou ilustrada nos desenhos e/ou nos exemplos. A invenção é capaz de outras modalidades ou de ser praticada ou realizada em várias maneiras.
[00091] A presente invenção pode ser um sistema, um método, e/ou um produto de programa de computador. O produto de programa de computador pode incluir um meio de armazenamento legível por computador (ou meios) que tem instruções de programa legíveis por computador no mesmo para fazer com que um processador realize os aspectos da presente invenção.
[00092] O meio de armazenamento legível por computador pode ser um dispositivo tangível que pode reter e armazenar instruções para uso por um dispositivo de execução de instrução. O meio de armazenamento legível por computador pode ser, por exemplo, mas não limitadamente, um dispositivo de armazenamento eletrônico, um dispositivo de armazenamento magnético, um dispositivo de armazenamento óptico, um dispositivo de armazenamento eletromagnético, um dispositivo de armazenamento de semicondutor, ou qualquer combinação adequada do que foi citado acima. Uma lista não exaustiva de exem- plos mais específicos do meio de armazenamento legível por computador inclui o que é posto a seguir: um disquete de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória somente de leitura (ROM), uma memória somente de leitura programável e passível de apagamento (EPROM ou memória Flash), uma memória de acesso aleatório estático (SRAM), uma memória apenas de leitura de disco compacto portátil (CD-ROM), um disco versátil digital (DVD), um cartão de memória, um disquete, e qualquer combinação adequada do que foi citado acima. Um meio de armazenamento legível por computador, conforme usado no presente documento, não deve ser interpretado como sendo sinais transitórios por si só, tal como ondas de rádio ou outras ondas eletromagnéticas que propagam li-vremente, ondas eletromagnéticas que propagam através de uma guia de onda ou outros meios de transmissão (por exemplo, pulsos de luz que passam através de um cabo de fibra óptica), ou sinais elétricos transmitidos através de um fio.
[00093] As instruções de programa legíveis por computador descritas no presente documento podem ser transferidas por download para os respectivos dispositivos de computação/processamento de um meio de armazenamento legível por computador ou para um computador externo ou um dispositivo de armazenamento externo por meio de uma rede, por exemplo, a Internet, uma rede de área local, uma rede de área ampla e/ou uma rede sem fio. A rede pode compreender cabos de transmissão de cobre, fibras de transmissão óptica, transmissão sem fio, roteadores, firewalls, comutadores, computadores de porta de comunicação e/ou servidores de borda. Um cartão de adaptador de rede ou uma interface de rede em cada dispositivo de computa- ção/processamento recebe instruções de programa legíveis por computador da rede e encaminha as instruções de programa legíveis por computador para armazenamento em um meio de armazenamento legível por computador no respectivo dispositivo de computa- ção/processamento.
[00094] As instruções de programa legíveis por computador para realizar as operações da presente invenção podem ser instruções de montador, instruções de arquitetura definida por instrução (ISA), instruções de máquina, instruções dependentes de máquina, microcódi- go, instruções de firmware, dados de ajuste de estado, ou um código de fonte ou um código de objeto gravado em qualquer combinação de uma ou mais linguagens de programação, inclusive uma linguagem de programação orientada a objeto tal como Smalltalk, C++ ou semelhantes, e linguagens de programação processuais convencionais, tais como a linguagem de programação "C" ou linguagens de programação similares. As instruções de programa legíveis por computador podem executar inteiramente no computador do usuário, parcialmente no computador do usuário, como um pacote de software autônomo, parcialmente no computador do usuário e parcialmente em um computador remoto ou inteiramente no computador remoto ou no servidor. No último cenário, o computador remoto pode ser conectado ao computador do usuário através de qualquer tipo de rede, inclusive uma rede de área local (LAN) ou uma rede de área ampla (WAN), ou a conexão pode ser feita em um computador externo (por exemplo, através da Internet com o uso de um Provedor de Serviço de Internet). Em algumas modalidades, um conjunto de circuitos eletrônicos que inclui, por exemplo, um conjunto de circuitos lógicos programáveis, matrizes de porta programáveis em campo (FPGA), matrizes lógicas programáveis (PLA) pode executar as instruções de programa legíveis por computador utilizando-se as informações de estado das instruções de programa legíveis por computador a fim de personalizar o conjunto de circuitos eletrônicos, a fim de realizar os aspectos da presente invenção.
[00095] Os aspectos da presente invenção são descritos no presente documento em referência às ilustrações de fluxograma e/ou aos diagramas de blocos de métodos, aparelhos (sistemas), e produtos de programa de computador de acordo com as modalidades da invenção. Será entendido que cada bloco das ilustrações de fluxograma e/ou dos diagramas de bloco, e as combinações de blocos nas ilustrações de fluxograma e/ou nos diagramas de bloco, podem ser implantados através de instruções de programa legíveis por computador.
[00096] Essas instruções de programa legíveis por computador pode ser fornecidas para um processador de um computador de finalidade geral, um computador de finalidade especial, ou outro aparelho de processamento de dados programável para produzir uma máquina, de maneira que as instruções, que executam por meio do processador do computador ou outro aparelho de processamento de dados programável, criam meios para implantar as funções/os atos especificados no fluxograma e/ou no bloco ou nos blocos de diagrama de blocos. Essas instruções de programa legíveis por computador podem também ser armazenadas em um meio de armazenamento legível por computador que pode direcionar um computador, um aparelho de processamento de dados programável, e/ou outros dispositivos para funcionarem de uma maneira em particular, de maneira que o meio de armazenamento legível por computador que tem instruções armazenadas no mesmo compreende um artigo de fabricação inclusive instruções que implan-tam os aspectos da função/do ato especificado no fluxograma e/ou no bloco ou nos blocos de diagrama de blocos.
[00097] As instruções de programa legíveis por computador podem também ser carregadas em um computador, outro aparelho de processamento de dados programável, ou outro dispositivo para causar uma série de etapas operacionais a serem realizadas no computador, outro aparelho programável ou outro dispositivo para produzir um pro- cesso implantado por computador, de maneira que as instruções que executam no computador, outro aparelho programável, ou outro dispositivo implantam as funções/os atos especificados no fluxograma e/ou no bloco ou nos blocos de diagrama de blocos.
[00098] O fluxograma e os diagramas de blocos nas Figuras ilustram a arquitetura, a funcionalidade, e a operação de possíveis implantações de sistemas, métodos e produtos de programa de computador de acordo com várias modalidades da presente invenção. Em relação a isso, cada bloco no fluxograma ou diagramas de blocos podem representar um módulo, segmento ou uma porção de instruções, que compreende uma ou mais instruções executáveis para implantar a função lógica especificada (ou as funções lógicas especificadas. Em algumas implantações alternativas, as funções observadas no bloco podem ocorrer fora da ordem observada nas Figuras. Por exemplo, dois blocos mostrados sucessivamente podem, de fato, ser executa-dos substancialmente de modo concomitante, ou os blocos podem as vezes ser executados na ordem reversa, dependendo da funcionalidade envolvida. Também será observado que cada bloco dos diagramas de blocos e/ou da ilustração de fluxograma, e as combinações de blocos nos diagramas de blocos e/ou da ilustração de fluxograma, podem ser implantados através de sistemas com base em hardware de finalidade especial que realiza as funções ou os atos especificados ou realiza combinações de hardware de finalidade especial e instruções de computador.
[00099] Agora é feita uma referência à Figura 1, que é um fluxo- grama de um método para gerar um conjunto de coeficientes de transformada para codificar um bloco em um quadro, de acordo com algumas modalidades da presente invenção. Também será feita uma referência à Figura 2, que é um diagrama de blocos da parte de transformada de um codificador de mídia 202 adaptado para gerar um conjun- to de coeficientes de transformada para codificar um bloco em um quadro, de acordo com algumas modalidades da presente invenção. O codificador de mídia da Figura 2 é configurado para realizar um ou mais blocos do método da Figura 1. O método da Figura 1 realizado pelo codificador de mídia da Figura 2 aprimora um desempenho de compressão das imagens digitais, em formato de vídeo e/ou estático, sem diminuir significativamente uma qualidade de imagem, por exemplo, conforme descrito em referência às Figuras 12A a 12I. É observado que o codificador 202 pode servir como um decodificador de coeficiente, além das funções de codificação descritas ou ao invés das mesmas. As funções de decodificação têm como base as funções de codificação descritas, mas são omitidas a título de clareza e brevidade.
[000100] É observado que no interesse de clareza e brevidade, o codificador de mídia 202 é descrito em referência a elementos e/ou métodos para um cálculo dos coeficientes de transformada (conforme descrito no presente documento). O codificador de mídia 202 pode incluir e/ou estar em comunicação com outros componentes de codificação, por exemplo, o codificador/decodificador de imagem 1004 da Figura 10.
[000101] O codificador de mídia 202 inclui um ou mais processadores 204 em comunicação com uma ou mais memórias 206 (ou outros tipos de meios de armazenamento legíveis por computador) que armazenam instruções de programa para uma execução pelos processadores 204. A memória 206 pode armazenar dados para uso durante um processamento, conforme descrito no presente documento. O codificador de mídia 202 pode ser implantado como módulos de software implantados em programas de software de compressão de imagem existentes, como um chip que é integrado ao hardware existente para compressão de imagem, uma caixa separada que pluga em dispositivos existentes a fim de aprimorar uma compressão de imagem, ou quaisquer combinações dos mesmos. Os processadores 204 podem realizar as etapas do método com base em técnicas de processamento paralelo, um único processador pode ser usado, e/ou o processador (ou os processadores) pode ser remotamente localizado. Um processamento paralelo pode ser usado para as várias máscaras candidatas no conjunto predefinido de máscaras de simetria rotacional a fim de selecionar a melhor máscara para dividir o bloco. Uma ou mais das memórias 206 pode ser remotamente localizada.
[000102] O codificador de mídia 202 aprimora um desempenho de sistema aprimorando-se a eficiência e/ou reduzindo-se as exigências de recurso (por exemplo, memória e/ou processador) para compressão de imagens e/ou vídeo.
[000103] Em 102, um quadro e/ou um bloco é recebido. O codificador de mídia 202 é acoplado a uma interface de dados de entrada 208 adaptada para receber um quadro 210 e/ou um bloco (ou os blocos) do quadro. O quadro 210 pode ser recebido como uma imagem digital estática, ou como parte de um vídeo que inclui múltiplos quadros. Quando o quadro 210 é recebido do vídeo, as técnicas de compressão entre imagens podem ser aplicadas, conforme descrito no presente documento.
[000104] O codificador de mídia 202 é adaptado para designar um bloco particionado no quadro. Opcionalmente, um módulo designador de bloco 212A contém instruções de programa para o codificador de mídia 202 realizar a designação conforme descrito no presente documento.
[000105] O quadro pode ser dividido em múltiplos blocos, por exemplo, com base em um padrão de vídeo e/ou de imagem estática, por exemplo, HEVC, Moving Picture Experts Group (MPEG), e Joint Photographic Experts Group (JPEG).
[000106] Os blocos podem ter um tamanho padrão, por exemplo, 64x64 pixels, 32x32 pixels, 16x16 pixels, 8x8 pixels, 4x4 pixels ou outros tamanhos.
[000107] Os blocos podem ser quadrados (LxL pixels) ou retângulos (MxN pixels).
[000108] Os blocos podem representar dados de luma e/ou chroma.
[000109] Em 104, uma máscara simétrica rotacional é selecionada. Um módulo de seletor de máscara 212B contém instruções de programa para o codificador de mídia 202 realizar a seleção de máscara conforme descrito no presente documento.
[000110] Opcionalmente, a máscara de simetria rotacional tem uma simetria rotacional de ordem 2 (as vezes chamada no presente documento de C2, denotando que a simetria rotacional é válida para 360 / 2 = 180 graus) em relação ao centro do bloco da máscara.
[000111] Agora é feita uma referência à Figura 3, que retrata diagramas esquemáticos de alguns exemplos de máscaras de simetria rota- cional, de acordo com algumas modalidades da presente invenção, por exemplo, em um trapezoide de ângulo reto 302, um triângulo de ângulo reto 304, um retângulo 306 e um quadrado 308.
[000112] Agora, em referência a Figura 1, o codificador de mídia é adaptado para selecionar uma máscara de simetria rotacional para o bloco designado a partir de múltiplas máscaras de simetria rotacional que definem múltiplas simetrias rotacionais em um espaço multidimensional que tem um tamanho e um formato conforme o bloco.
[000113] Agora é feita uma referência à Figura 4, que é um diagrama esquemático que retrata a seleção de uma certa máscara de simetria rotacional 402 para um bloco 404 em um quadro 406, de acordo com algumas modalidades da presente invenção. O quadro 406 contém uma imagem de uma casa. O bloco 404 contém uma porção do telhado da casa, e outra porção de céu. A máscara 402 é selecionada de um conjunto de múltiplas máscaras disponíveis 410, com base em uma certa medição de preferência de compressão (por exemplo, taxa- distorção) e/ou o limite de recurso visual e/ou a borda que separa melhor o céu da casa. Como é aparente mediante inspeção visual das máscaras não selecionadas, a aplicação de qualquer uma das outras máscaras pode resultar em mais céu sendo contido na porção de telhado, e mais telhado contido na porção de céu, em comparação com o uso de máscara 402. A divisão do bloco 404 pela máscara 402 aprimora a compressão de imagem em comparação com a compressão de todo bloco 404 através de uma partição padrão 408 ou por outra máscara.
[000114] Agora, em referência a Figura 2, a máscara de simetria ro- tacional pode ser selecionada a partir de múltiplas máscaras armazenadas em uma biblioteca de máscaras de simetria rotacional 212F, opcionalmente armazenadas na memória 206 e armazenadas em outro meio de armazenamento legível por computador em comunicação com processor 204.
[000115] A biblioteca 212F pode armazenar múltiplas bibliotecas diferentes de máscaras de simetria rotacional. Cada biblioteca pode ter como base um tamanho e/ou um formato do bloco. Por exemplo, uma biblioteca para máscaras de blocos de tamanho 16x16 pixels, e outra biblioteca para blocos de tamanho 8x8 pixels.
[000116] Opcionalmente, as diferentes máscaras de simetria rotacio- nal são máscaras quadradas (isto é, LxL pixels) que têm um tamanho e um formato conforme o bloco. Alternativamente, as diferentes máscaras de simetria rotacional são máscaras retangulares (isto é, MxN pixels) que têm um tamanho e um formato conforme o bloco.
[000117] A máscara de simetria rotacional é adaptada para definir uma linha que liga bordas opostas de um retângulo ou um quadrado, para dividir um bloco retangular ou quadrado correspondente em duas porções complementares espelhadas 2D. Diferentes linhas podem ser definidas com base na condição de espelhamento bidimensional. A linha pode ser linear ou ter outras formas, por exemplo, degrau ou outros formatos arbitrários. A linha pode ser inclinada em qualquer ângulo ou parte do mesmo de 0 a 359 graus. A propriedade de espelho 2D fornece uma compressão eficiente do bloco.
[000118] Agora, é feita uma referência às Figuras 5A a 5C que são diagramas esquemáticos que retratam um espelhamento 2D de pixel para definir as máscaras de simetria rotacional, de acordo com algumas modalidades da presente invenção.
[000119] A Figura 5A retrata o conceito de espelho 2D geral. Um bloco 502 de tamanho 8 pixels por 8 pixels é mostrado por finalidades exemplificativas. As regiões A e B são separadas por uma linha virtual 504 posicionada horizontalmente através do meio do bloco 502. Os pixels que têm o mesmo número na região A e na região B são espelhos 2D um do outro. O espelhamento 2D de pixel pode ser generalizado para um retângulo MxN: quando pixel (m, n) está na região A, então o pixel (M-1-m, N-1-n) está na região B.
[000120] É entendido que o conceito de espelho 2D pode ser aplicado a outro quadrado ou outros blocos retangulares de diferentes tamanhos. É entendido que o conceito de espelho 2D pode ser retratado para outras linhas virtuais desenhadas em diferentes inclinações, por exemplo, verticalmente, sendo que a região A e B são definidas e separadas por uma linha virtual posicionada verticalmente através do meio do bloco 502.
[000121] Múltiplas linhas diferentes que ligam bordas opostas do bloco 502 e cruzam o ponto de centro do bloco 502 são adaptadas para formar uma biblioteca de máscara de simetria rotacional, conforme retratado nas Figuras 5B e 5C. Cada linha individual define uma máscara individual. Cada linha divide o bloco 502 em duas porções complementares: região A e região B.
[000122] Opcionalmente, as diferentes máscaras de simetria rotacio- nal são definidas por uma respectiva matriz (por exemplo, cada posição de pixel é representada por um local na matriz). Cada matriz define uma separação diferente de regiões A e B, por exemplo, uma linha que liga as bordas opostas do espaço bidimensional, para dividir o espaço bidimensional em duas porções complementares.
[000123] É observado que outros espaços dimensionais podem ser usados, por exemplo, três, quatro ou mais dimensões. A máscara de simetria rotacional é definida para dividir o respectivo espaço multidimensional, por exemplo, um plano para dividir um espaço tridimensional.
[000124] É observado que quando a linha passa através de um local de uma amostra, não há necessidade para subamostragem, visto que a amostra completa pode ser atribuída a região A e ser removida da região B. Os recursos de computação (por exemplo, processador e/ou memória) podem ser reduzidos pela adição na região A e remoção da região B, ao invés de, por exemplo, realizar o conjunto completo de cálculos para cada respectiva região.
[000125] Agora é feita uma referência às Figuras 6A a 6C, que são alguns exemplos de bibliotecas de máscara de simetria rotacional, de acordo com algumas modalidades da presente invenção. A Figura 6A é um exemplo de uma biblioteca de máscaras para dividir um bloco de tamanho 32x32 pixels. A Figura 6B é um exemplo de uma biblioteca de máscaras para dividir um bloco de tamanho 16x16 pixels. A Figura 6C é um exemplo de uma biblioteca de máscaras para dividir um bloco de tamanho 8x8.
[000126] As bibliotecas de máscara de simetria rotacional das Figuras 6A a 6C têm como base uma linha inclinada, que divide o bloco em duas regiões trapezoidais, representadas por uma região escura 602 da máscara (por exemplo, azul) e uma região clara (604) da máscara (por exemplo, vermelha). Cada marca na biblioteca tem uma inclinação levemente diferente da linha. Juntamente, todas as máscaras definem todas as diferentes permutações da linha inclinada no bloco. Com base no corte de linha inclinada, existem 2x(L-1) diferentes maneiras para particionar o quadrado de tamanho LxL.
[000127] Na Figura 6B, as máscaras 606A e 606B têm linhas paralelas através das mesmas, que representa a remoção de máscaras 606A e 606B do conjunto de 32 máscaras, para formar o conjunto de 30 máscaras com base na equação no parágrafo anterior. As duas máscaras são duplas de máscaras existentes devido a simetria de espelho e, portanto, podem ser removidas do conjunto gerado. De modo similar, na Figura 6C, duas máscaras duplas são mostradas com linhas paralelas, que representa a remoção das máscaras redundantes do conjunto.
[000128] Opcionalmente, cada uma das diferentes máscaras de simetria rotacional (que podem ser armazenadas como uma ou mais bibliotecas) é mapeada em um arranjo hierárquico. O arranjo hierárquico pode reduzir o tempo de processamento e/ou os recursos para identificar a melhor máscara.
[000129] Cada biblioteca pode ser independentemente mapeada, as máscaras de cada respectiva biblioteca podem ser mapeadas no arranjo hierárquico. Alternativamente, uma ou mais bibliotecas são mapeadas juntamente com base no mesmo arranjo hierárquico. As máscaras em cada biblioteca são mapeadas com base no mesmo arranjo hierárquico comum.
[000130] O conjunto de máscaras é dividido em seções deslocadas separadas. O arranjo hierárquico pode ser de acordo com um ângulo da linha em relação a uma borda do espaço bidimensional, por exemplo, um arranjo hierárquico pode mapear as linhas da Figura 6A a 6C, por exemplo, no grupo de 0 a 60 graus, 61 a 120 graus e 121 a 180 graus. O arranjo hierárquico pode continuar a mapear 181 a 240 graus, 241 a 300 graus e 301 a 360 graus, quando a linha é simétrica e/ou não-simétrica. O arranjo hierárquico pode ser colocado em camadas, por exemplo, o grupo de 0 a 60 graus é adicionalmente subdividido nos grupos 0 a 15, 16 a 30, 31 a 45 e 46 a 60 graus.
[000131] Agora é feita uma referência à Figura 7 que é um diagrama esquemático que retrata graficamente o arranjo hierárquico, de acordo com algumas modalidades da presente invenção.
[000132] O círculo dividido 702 retrata graficamente um exemplo de um arranjo hierárquico para uma biblioteca de máscara 706. A biblioteca 706 inclui máscaras de linha inclinada para um bloco de tamanho 16x16, conforme descrito em referência à Figura 6B. O círculo 702 é dividido em regiões 704A-H, em que cada um representa 45 graus de inclinação de linha. O arranjo hierárquico é simplificado devido a natureza simétrica das máscaras de linha inclinada, agrupando juntamente os setores 704A com 704E (mostrado como os setores 708C), 704B com 704F (mostrado como os setores 708B), 704C com 704G (mostrado como os setores 708A), e 704D com 704H (mostrado como os setores 708D). Cada setor 708A a 708D inclui 8 ou 7 máscaras com ângulos de inclinação de linha abrangidos pela respectiva faixa de ângulo.
[000133] Opcionalmente, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional em uma seleção de máscara iterativa de pelo menos parte das diferentes máscaras de simetria ro- tacional em uma ordem definida de acordo com o arranjo hierárquico. Por exemplo, em relação à Figura 7, a busca é realizada dentre as 4 partições representativas 708A a 708D que têm um ângulo central definido pela equação 22,5+45k, sendo que k = 0, 1, 2, 3, e uma abrangência de 45 graus. A seção pode ser selecionada com base em um menor custo calculado por uma função adequada, por exemplo, uma medição de distorção de taxa mínima. A máscara na seção selecionada pode ser selecionada de maneira similar. Quando o arranjo hierárquico inclui níveis adicionais, os níveis adicionais podem ser buscados de uma maneira iterativa até que uma máscara seja identificada.
[000134] Agora é feita uma referência à Figura 8, que é uma esquemática que retrata a geração e/ou a representação da máscara de simetria rotacional, de acordo com algumas modalidades da presente invenção. Opcionalmente, uma biblioteca de máscaras é gerada, com base em diferentes permutações no bloco que contém a máscara.
[000135] Para finalidades exemplificativas, uma geração de máscara para blocos de tamanho LxL é descrita, que pode ser estendida para o caso MxN. A máscara pode ser gerada começando do canto esquerdo superior, avançando no sentido do centro do bloco. A combinação de movimentos pode ser espelhada em 2D a fim de obter o padrão de máscara restante do centro do bloco para a parte inferior direita.
[000136] A máscara pode ser representada por uma representação binária para cada movimento. Cada movimento é horizontal (isto é, da esquerda para direita) ou vertical (isto é, do topo para o fundo), representado por 1 (por exemplo, um passo para a direita) ou 0 (por exemplo, um passo para baixo). A representação de máscara binária pode ser transmitida como está, ou ser adicionalmente comprimida. A representa binária fornece uma transmissão eficiente (isto é, em termos de utilização de recurso de processador e/ou memória) da máscara, por exemplo, do codificador para o decodificador.
[000137] Cada permutação no conjunto pode ser definida por um total de 2xL movimentos.
[000138] A máscara 802 é representada pelo padrão binário 804. A máscara 806 é representada pelo padrão binário 808.
[000139] Agora é feita uma referência à Figura 9, que é uma lista (por exemplo, fluxograma) de métodos computarizados para selecio- nar uma máscara de simetria rotacional e/ou uma biblioteca de máscara para dividir o bloco, de acordo com algumas modalidades da presente invenção. A máscara e/ou a biblioteca de máscara pode ser gerada (por exemplo, antecipada e/ou dinamicamente) com base nos blocos, ao invés de e/ou além de ser selecionada. O codificador de mídia 202 é adaptado para realizar um ou mais blocos do método. Um ou mais blocos do método pode ser realizado para seleção de máscara. Os blocos podem ser realizados em qualquer ordem e/ou simultaneamente.
[000140] O um ou mais métodos de seleção descritos no presente documento (executado sequencialmente e/ou em paralelo, opcionalmente em combinação) pode ser usado como uma base para seleção de uma certa máscara em uma biblioteca de máscaras. Alternativa ou adicionalmente, os métodos de seleção podem ser usados para primeiro selecionar uma certa biblioteca de máscara de múltiplas bibliotecas de máscara, e/ou um subconjunto de máscaras da biblioteca. A certa máscara pode ser selecionada da biblioteca selecionada e/ou do subconjunto selecionado. A seleção em etapas e/ou hierárquica pode reduzir a faixa de busca, reduzindo-se o tamanho do conjunto para seleção em cada etapa, reduzindo recursos e/ou as computações para a seleção.
[000141] A seleção da máscara de uma biblioteca (ou subconjunto de máscara) ao invés de a partir de um conjunto maior de máscaras candidatas reduzir a quantidade de bits codificados que são utilizados para sinalizar para um decodificador a máscara selecionada, e/ou reduzir a complexidade de computação e/ou as fontes de memória e/ou os recursos de processador.
[000142] Opcionalmente, em 902, a biblioteca e/ou a máscara é selecionada com base no tamanho e/ou no formato do bloco. A máscara pode ser selecionada de dentro da biblioteca selecionada conforme descrito no presente documento.
[000143] Alternativa ou adicionalmente, em 904, o codificador de mídia é adaptado para selecionar a máscara rotacional e/ou uma biblioteca de máscara de simetria rotacional a partir de múltiplas máscaras de simetria rotacional e/ou bibliotecas de máscara com base em preferência de compressão para qualquer um ou mais dentre, mas não limitadamente, a lista a seguir: bloco, fatia, recorte, quadro e sequência.
[000144] A preferência de compressão inclui um ou mais parâmetros que define um desempenho de compressão do bloco quando uma certa máscara é aplicada. A preferência de compressão pode ser definida por máscara e/ou por biblioteca de máscara.
[000145] A preferência de compressão pode ser estimada, por exemplo, com base em dados estatísticos anteriormente coletados para a máscara e/ou a biblioteca. Alternativamente, a preferência de compressão pode ser calculada, por exemplo, aplicando-se uma ou mais das máscaras candidatas no bloco.
[000146] As preferências de compressão podem ajudar em uma seleção de máscara quando os parâmetros de compressão envolvem certas trocas, por exemplo, uma diminuição de tamanho em troca de diminuição de qualidade.
[000147] A preferência de compressão é selecionada de um ou mais do que é posto a seguir, individualmente ou em combinação: * Preferência de complexidade de compressão: uma medida que se refere a recursos de processamento para realizar a compressão com base na máscara, por exemplo, a quantidade de computações, os recursos de processador e/ou os recursos de memória. A medida pode ser dependente do computador específico que executa o método; * Preferência de qualidade de compressão (por exemplo, distorção de imagem): a compressão com base na máscara é uma operação com perdas, resultando em uma qualidade visual menor do bloco. A qualidade mais baixa pode ou não ser visualmente discernível pelo olho humano. A preferência de qualidade de compressão pode ser determinada com base em uma medida relacionada à perda de informação devido a compressão com base na máscara, por exemplo, a razão de ruído para sinal de pico (PSNR) e/ou a similaridade estrutural (SSIM); e * Preferência de tamanho de compressão: o tamanho (por exemplo, a quantidade de bits) do bloco após uma compressão com base na máscara selecionada.
[000148] Opcionalmente, o codificador de mídia é adaptado para au-tomaticamente gerar a biblioteca de máscara de simetria rotacional de acordo com um membro de um grupo que consiste em preferências para: uma complexidade de compressão de bloco, um tamanho de compressão de bloco, e uma qualidade de compressão de bloco. A biblioteca de máscara gerada conheceu os critérios de preferência de compressão, o que permite uma seleção fácil e/ou rápida da biblioteca. A quantidade de máscaras na biblioteca gerada pode ser menor do que gerar todas as permutações possíveis, visto que apenas as máscaras que satisfazem os critérios de compressão são incluídas.
[000149] Cada máscara pode ser associada à preferência de compressão, por exemplo, armazenado, colocado em contiguidade, e/ou marcado com os valores de preferência de compressão. Cada máscara pode ser associada a uma ou mais medidas para calcular a preferência de complexidade de compressão, a preferência de qualidade de compressão e/ou a preferência de tamanho de compressão.
[000150] Opcionalmente, cada uma das diferentes máscaras de simetria rotacional está associada a uma medida de complexidade estimada indicativa de uma complexidade computacional de aplicar a respectiva máscara em um bloco exemplificativo que tem o tamanho e o formato da respectiva máscara. As máscaras com medidas de complexidade estimada menores são estimadas para exigir menos recursos (por exemplo, processador e/ou memória). A seleção de máscara com base em resultado estimado aprimora a eficiência de sistema e/ou utiliza menos recursos.
[000151] Opcionalmente, cada uma das diferentes máscaras de simetria rotacional está associada a uma medida de distorção estimada indicativa de um nível de distorção de compressão emanado da aplicação da respectiva máscara em um bloco exemplificativo que tem o tamanho e o formato da respectiva máscara. A medida de distorção estimada ajuda a selecionar a máscara com base na troca de compressão com perdas, por exemplo, para selecionar a máscara que tem um nível de distorção de compressão visualmente indistinguível que também produz uma compressão maior da imagem. As máscaras com medidas de distorção estimada menores são estimadas para exigir menos recursos (por exemplo, processador e/ou memória) enquanto alcançam o nível de distorção de compressão alvo.
[000152] Opcionalmente, o codificador de mídia é adaptado para selecionar uma máscara de simetria rotacional com base em preferência de compressão para o bloco. Opcionalmente, a preferência de compressão é selecionada de uma ou mais dentre: uma preferência de complexidade de compressão, uma preferência de qualidade de compressão, e uma preferência de tamanho de compressão.
[000153] Alternativa ou adicionalmente, em 906, a seleção de máscara tem como base os dados de vídeo pré-processados que incluem o quadro recebido. O pré-processamento dos dados de vídeo pode ser realizado pelo codificador de mídia, por outro computador conectado ao codificador de mídia, ou por outro computador independente do codificador de mídia (por exemplo, remotamente localizado). Os dados processados podem ser transmitidos para o codificador de mídia inde- pendentemente do quadro, e/ou com o quadro (por exemplo, marcado no quadro).
[000154] O pré-processamento pode ter como base um ou mais recursos identificados do conteúdo dos quadros do vídeo, por exemplo, distribuição estatística de padrões de pixel, bordas, intensidade de pixel e cores de pixel. Os dados de vídeo podem ser pré-classificados com base nos resultados de pré-processamento. A classificação pode ter como base os recursos identificados para permitir uma seleção da máscara e/ou uma biblioteca de máscara. Os dados de vídeo pré- classificados aprimoram um desempenho de sistema, visto que as máscaras podem ser selecionadas de modo mais eficiente e/ou com o uso de menos recursos com base na classificação.
[000155] Opcionalmente, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional e/ou uma biblioteca de máscara de múltiplas máscaras de simetria rotacional candidatas e/ou bibliotecas de máscara, com base na classificação dos dados de vídeo. Por exemplo, o pré-processamento pode identificar que o vídeo contém quadros que tem muitas linhas retas, por exemplo, imagens de casas, carros ou outras estruturas artificiais. Os dados de vídeo podem ser classificados como contendo linhas retas. Uma biblioteca de máscara de linhas retas (isto é, ângulos diferentes) pode ser selecionada. Em outro exemplo, o pré-processamento pode identificar que o vídeo contém quadros que tem muitas linhas curvas, por exemplo, imagens de árvore, galhos e terreno de terra. Os dados de vídeo podem ser classificados como contendo linhas curvas. Uma biblioteca de máscara de linhas curvas (isto é, linhas de degrau com base em discretização de curvas podem ser selecionadas).
[000156] O pré-processamento de conteúdo pode fornecer informações para codificar com base em predição, conforme descrito no presente documento.
[000157] Opcionalmente, o codificador de mídia é adaptado para au-tomaticamente gerar a máscara de simetria rotacional e/ou uma biblioteca de máscara com base nos dados de vídeo pré-processados. As diferentes máscaras de simetria rotacional podem ser selecionadas de um repositório de máscara de diferentes máscaras de simetria rotacio- nal de acordo com um ou mais parâmetros de compressão: um resultado do pré-processamento para preferência de complexidade de compressão, preferência de tamanho de compressão e/ou preferência de qualidade de compressão. Os parâmetros de compressão podem ser pré-calculados a partir dos dados de vídeo.
[000158] O pré-processamento dos dados de vídeo pode aprimorar o desempenho do codificador. As computações pesadas de recurso podem ser realizadas antecipadamente, ao invés de durante a compressão. Os dados que servem como a base para seleção de máscara podem ser prontos, para permitir uma seleção mais rápida de máscara durante o processo de compressão de bloco, ao invés de realizar o cálculo de seleção de máscara durante o processo de compressão.
[000159] Alternativa ou adicionalmente, em 908, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um resultado de um processo de transformação e/ou uma estimativa de um resultado de um processo de transformação aplicado na pelo menos uma das duas porções complementares. A seleção de máscara com base em resultado e/ou resultado estimado aprimora a eficiência de sistema e/ou utiliza menos recursos.
[000160] O resultado do processo de transformação pode incluir o tamanho (por exemplo, quantidade e/ou soma de absoluto de coeficientes de transformada que estão acima de um certo limiar) de uma ou ambas as porções complementares após o processo de transformação. A máscara que resulta no menor tamanho da porção após o processo de transformação pode ser selecionada. O tamanho pode ser calculado para uma ou ambas as porções, tal como a soma do tamanho de ambas as porções.
[000161] A estimativa de um resultado de um processo de transformação pode incluir a soma de diferença absoluta (SAD) dos dados residuais que são a entrada para o processo de transformação.
[000162] A estimativa do resultado de um processo de transformação pode incluir a soma de absoluto do primeiro, do segundo e/ou os derivativos de ordem maior ao longo das direções horizontal e/ou vertical dos dados residuais.
[000163] A estimativa pode ter como base os valores de porções codificadas anteriormente com o uso da mesma máscara.
[000164] O resultado do processo de transformação pode ser estimado por um processo de transformação conhecido, por exemplo, o processo (ou os processos) de transformação definido (ou definidos) pelo padrão de compressão.
[000165] Alternativa ou adicionalmente, em 910, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um resultado e/ou uma estimativa de um resultado de um processo de quantização e/ou um processo de codificação de entropia aplicado em os coeficientes de transformada para pelo menos um membro do par de blocos de simetria rotacional.
[000166] A máscara que resulta no menor tamanho da porção após a quantização e/ou o processo de codificação de entropia pode ser selecionado, por exemplo, a quantidade de coeficientes não zero após uma quantização, e/ou o tamanho em bits gerados, respectivamente. O tamanho pode ser calculado para uma ou ambas as porções, tal como a soma do tamanho de ambas as porções.
[000167] A estimativa pode ter como base valores de porções quan- tizadas e/ou codificadas por entropia com o uso da mesma máscara.
[000168] Alternativa ou adicionalmente, em 912, o codificador de mí- dia é adaptado para selecionar a máscara de simetria rotacional de acordo com um padrão de valores de pixel no bloco. O padrão de valores de pixel pode ser extraído do bloco, por exemplo, através de métodos de segmentação de imagem, tal como métodos para localizar fronteiras e/ou bordas, por exemplo, com base em limiares de intensidade, detecção de borda ou outros métodos adequados. O padrão de valor de pixel pode incluir a direção de uma linha identificada no bloco, e/ou um padrão da linha (ou curva). O padrão de pixel extraído pode ser colocado em contiguidade com uma certa máscara de simetria, por exemplo, com base em uma função de menor custo para identificar a máscara com o padrão mais similar ao padrão de pixel extraído, tal como colocar em contiguidade as máscaras que têm a mesma direção e/ou o mesmo padrão como a linha identificada do bloco. A seleção com base no padrão de valores de pixel produz duas porções complementares nas quais os pixels em cada respectiva porção são similares uns aos outros, por exemplo, intensidade e/ou cor similares.
[000169] Por exemplo, em relação à Figura 4, a borda entre o telhado e o céu no bloco 404 é extraída com base em um método de detecção de borda. A borda detectada é mapeada para a máscara 402 com base em uma função de custo. O padrão na máscara 402 é o padrão mais similar à borda extraída, da biblioteca de máscara.
[000170] Alternativa ou adicionalmente, em 914, a máscara de simetria rotacional é selecionada com base em uma medida de taxa estimada indicativa de uma quantidade de bits transmitida quando a certa máscara rotacional é aplicada a um bloco exemplificativo que tem o tamanho e/ou formato do bloco sendo processado. Uma quantidade menor de bits representa uma compressão mais eficiente com a certa máscara. Cada uma das diferentes máscaras de simetria rotacional está associada à medida de taxa estimada indicativo da quantidade de bits transmitida quando a máscara é aplicada em um bloco exemplifi- cativo que tem o tamanho e o formato.
[000171] A medição de taxa pode ser armazenada com cada máscara, o que permite uma seleção rápida da máscara com base no valor de medida de taxa estimada. A medição de taxa pode ser calculada antecipadamente para cada máscara, ao invés de ser recalculada durante um tempo de funcionamento, através disso reduz as computações exigidas para a seleção. A medição de taxa pode ser calculada com base no bloco exemplificativo, que pode ser um bloco predefinido com base em uma média (ou outra medida) de uma amostra anterior de blocos. O bloco exemplificativo pode ser selecionado de uma biblio-teca de blocos com base em uma similaridade ao bloco sendo processado, por exemplo, com base em uma função de custo.
[000172] Alternativa ou adicionalmente, em 916, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um classificador estatístico. O classificador estatístico é gerado por uma análise de resultados de registros de conjunto de treinamento de aplicar pelo menos parte das diferentes máscaras de simetria rotacional. Os resultados (que podem ser ponderados) podem incluir, por exemplo, as métricas de desempenho de compressão (por exemplo, tamanho, complexidade, qualidade), utilização de recurso de processador e utilização de memória. O classificador estatístico pode aprimorar a seleção da máscara com base em predição de um resultado que inclui múltiplos resultados desejados diferentes.
[000173] O conjunto de treinamento pode ser obtido com base em um histórico de quadros reais que foram processados pelo sistema. Alternativamente, o conjunto de treinamento pode ser obtido com base em uma predição de tipos de quadros que serão processados, por exemplo, um canal de natureza pode treinar um classificador com vídeos de natureza.
[000174] Os resultados da classificação podem ser usados como entradas para adicionalmente treinar e atualizar o classificador.
[000175] O classificador estatístico pode ser treinado com base em métodos de aprendizado supervisionado e/ou aprendizado não supervisionado.
[000176] O classificador pode ser aplicado ao próprio bloco, para classificar pixels no bloco em um dentre dois grupos. Os dois grupos podem ser divididos com base em uma restrição de simetria rotacional da máscara de simetria rotacional. A máscara é selecionada para entrar em contiguidade com o arranjo dos dois grupos no bloco. Cada porção das duas porções complementares produz a partir da divisão do bloco com o uso da máscara inclui pixels do respectivo grupo.
[000177] Alternativa ou adicionalmente, em 918, o codificador de mídia é adaptado para selecionar a máscara de simetria rotacional com base em um conteúdo extraído de blocos vizinhos espaciais e/ou temporais do bloco. Os vizinhos podem ser blocos intraimagem e/ou inte- rimagem. Os blocos espaciais podem ser vizinhos do bloco em uma, muitas ou todas as direções em relação ao bloco. Os blocos vizinhos temporais podem ser de um bloco vizinho em quadros anteriores (por exemplo, mais cedo no tempo) e/ou quadros subsequentes (por exemplo, posteriormente). Os blocos podem ser vizinhos diretos, ou localizados dois ou mais blocos (ou quadros) de distância. Os blocos vizinhos que contêm padrões de pixel similares usados como previso- res aprimoram o desempenho de sistema e/ou exigem menos recur-sos.
[000178] Opcionalmente, os vizinhos incluem os blocos anteriormente processados. Os blocos anteriormente processados podem ser usados como previsores para uma seleção da máscara para o bloco que é atualmente processado. Opcionalmente, a seleção da máscara de simetria rotacional é realizado com base em informações associa- das a blocos vizinhos espaciais e/ou temporais do bloco. Opcionalmente, as informações associadas aos blocos vizinhos espaciais e/ou temporais são relacionadas a predição. Por exemplo, as informações podem incluir dados para reduzir a diferença entre o bloco atual sendo processado e um ou mais dos vizinhos, sendo que as informações redundantes são deixadas de fora. A máscara pode ser selecionada com base em dados de diferença.
[000179] Opcionalmente, o conteúdo extraído é de acordo com um padrão de valores de pixel nos blocos vizinhos espaciais e/ou temporais. O padrão de pixel do bloco vizinho pode agir como um previsor para seleção da máscara no bloco atual. Por exemplo, o padrão de pixel inclui uma fronteira e/ou borda entre um telhado e o céu (conforme discutido em referência à Figura 4). A borda entre o telhado e o céu continua através de muitos blocos vizinhos.
[000180] A codificação com base em previsores aprimora a eficiência de sistema e/ou utiliza menos recursos.
[000181] Agora, em referência a Figura 1, em 106, o bloco é dividido em duas porções complementares com base na máscara de simetria rotacional. Opcionalmente, um módulo divisor de bloco 212C contém instruções de programa para o codificador de mídia 202 realizar a divisão de bloco conforme descrito no presente documento.
[000182] Em 108, é gerado um par de blocos de simetria rotacional, sendo que cada um tem uma das porções complementares. Opcionalmente, um módulo gerador de par 212D contém instruções de programa para o codificador de mídia 202 realizar a geração de par conforme descrito no presente documento.
[000183] O codificador de mídia é adaptado para gerar cada membro do par de blocos de simetria rotacional com base em uma das duas porções complementares e outra porção adicionada para formar um bloco que tem um tamanho e/ou formato do bloco.
[000184] Opcionalmente, a porção adicionada é um espelho 2D da porção, do qual o bloco de simetria rotacional é construído.
[000185] Opcionalmente, a porção adicionada é um espelho 2D da porção do qual o bloco de simetria rotacional é construído, mas adicionado com um sinal negativo. Nesse caso o bloco de simetria rotacional contém duas porções antissimétricas.
[000186] Opcionalmente, a porção adicionada inclui um preenchi mento com uma sequência predefinida, por exemplo, todos zeros.
[000187] Opcionalmente, a porção adicionada é gerada com base em um giro de 180 graus da porção, do qual o bloco de simetria rota- cional é construído.
[000188] Opcionalmente, a dimensão da porção adicionada tem como base a dimensão da porção complementar, por exemplo, bidimensional.
[000189] Cada membro do par gerado de blocos de simetria rotacio- nal é representado por uma matriz que tem valores 2D espelhados ao redor de uma diagonal principal ou outro padrão de linha de corte com base na máscara selecionada.
[000190] Em 110, um ou mais coeficientes de transformada para um ou ambos os membros do par de blocos de simetria rotacional são computados. Opcionalmente, os coeficientes de transformada são calculados para cada um dos blocos de simetria rotacional. Opcionalmente, um módulo de cálculo de coeficiente 212E contém instruções de programa para o codificador de mídia 202 realizar o cálculo de coeficiente de transformada conforme descrito no presente documento.
[000191] O cálculo dos coeficientes de transformada pode ser realizado com base em um ou mais métodos de cálculo com base em padrão, com base em uma ou mais técnicas de codificação, e/ou com base em métodos proprietários. Um exemplo de uma técnica de codificação inclui uma transformada de discreta de cosseno bidimensional (DCT), que pode ser calculada, por exemplo, com base em dois DCTs rápidos separáveis aplicados ao longo de cada dimensão, por exemplo, quando os blocos de simetria rotacional são representados como matrizes, a DCT 2D pode ser calculada ao longo de fileiras e então das colunas, ou ao longo das colunas e então ao longo das fileiras. Outros exemplos de métodos de transformada incluem: transformada discreta de seno 2D (DST), e outro esquema de transformada ortogonal e/ou ortonormal que mantém a condição de espelhamento, por exemplo: Tp,q(M-m-1,N-n-1) = (-1)(p+q)Tp,q(m,n), sendo que, {Tp,q (m,n)} é a base de transformação 2D; (m,n) é o local de pixel, m=0,1,...,M-1; n=0,1,...,N-1; p e q são as frequência espaciais: p=0,1,...,M-1; q=0,1,...,N-1; p+q é par ou ímpar para o caso de simetria e antissimetria, respectivamente.
[000192] Um exemplo de uma técnica de codificação com base padrão é o padrão HEVC e/ou H.265 para transformada integral e/ou transformada inversa.
[000193] Opcionalmente, um conjunto de transformada ortogonal de coeficientes é calculado para cada uma das duas porções complementares quando a porção 2D espelhada é adicionada com um sinal negativo (isto é, antissimetria). O conjunto para as funções de transformada simétricas e antissimétricas para um cálculo dos coeficientes de transformada pode ser diferente. Quando computa os coeficientes de transformada, a respectiva função de transformada simétrica e antissimétrica é usada.
[000194] Opcionalmente, o codificador de mídia é adaptado para codificar o coeficiente (ou os coeficientes) de transformada com o uso de um ou mais previsores espaciais adaptados para a respectiva porção da máscara de simetria rotacional. A transformada pode ser calculada para o bloco preditivo, para um vetor preditivo, para um erro preditivo, e/ou para um resíduo preditivo. O resíduo de predição pode ser calculado para blocos temporais e/ou espaciais (isto é, blocos inter e/ou in- traimagem) com base na diferença entre a porção no bloco de simetria rotacional sendo processado e o bloco de predição correspondente.
[000195] Opcionalmente, o codificador de mídia é adaptado para codificar o coeficiente (ou os coeficientes) de transformada usando um ou mais previsores temporais adaptados para a respectiva porção da máscara de simetria rotacional. Alternativa ou adicionalmente, o codificador de mídia é adaptado para codificar o coeficiente (ou os coeficientes) de transformada de cada um dos blocos de simetria rotacional com o uso de um previsor espacial referentes à respectiva porção correspondente. Alternativa ou adicionalmente, o codificador de mídia é adaptado para codificar o coeficiente (ou os coeficientes) de transformada de cada um do par de blocos de simetria rotacional com o uso de um vetor de movimento referente à respectiva porção correspondente. O vetor de movimento pode ser usado para calcular a predição temporal.
[000196] É observado que os coeficientes de transformada podem ser calculados com base em um método para todos os coeficientes de transformada, diferentes métodos para diferentes coeficientes de transformada (ou conjuntos de coeficientes de transformada), e/ou uma combinação de métodos.
[000197] Opcionalmente, o codificador de mídia é adaptado para codificar o coeficiente (ou os coeficientes) de transformada com o uso de um modelo de contexto de entropia adaptado para a máscara de simetria rotacional. O modelo de contexto de entropia pode ser definido com base em conhecimento da máscara selecionada, para codificar os coeficientes de transformada com compressão de dados sem perda, por exemplo, com base em codificação de Huffman e/ou codificação aritmética. Visto que as características de entropia da máscara são conhecidas pelo codificador com antecedência, um código mais simples pode ser calculado.
[000198] O modelo de contexto de entropia pode ser um modelo projetado de modo proprietário, e/ou um modelo com base em padrão, por exemplo, o esquema de Codificação Aritmética Binária Adaptativa de Contexto (CABAC), tal como CABAC de H.265/HEVC, H.264/MPEG-4, ou outros padrões.
[000199] Em 112, os coeficientes de transformada calculados são fornecidos para um processamento, armazenamento e/ou uma transmissão adicionais. Opcionalmente, uma interface de entrada e saída 214 acoplada ao codificador de mídia 202 é adaptado para fornecer os coeficientes de transformada 216 calculados, conforme descrito no presente documento.
[000200] Opcionalmente, em 114, os blocos 102 a 112 são repetidos para outros blocos no quadro. Os blocos 102 a 112 podem ser repetidos para outros quadros. É observado que os blocos de um certo quadro podem ser processados em paralelo.
[000201] Agora é feita uma referência à Figura 10, que é um diagrama de blocos de um sistema exemplificativo 1000 para compressão e descompressão de imagem que incorpora um codifica- dor/decodificador de coeficiente 1002, de acordo com algumas modalidades da presente invenção. O codificador/decodificador 1002 pode incluir a parte de transformada do codificador de mídia 202 conforme descrito em referência à Figura 2, uma variante do codificador 202 (por exemplo, sem processador 204, usando o processador de outro codifi- cador/decodificador), e/ou outra implantação do método da Figura 1. A integração do codificador 1002 no sistema 1000 aprimora a eficiência de codificação das imagens e/ou do vídeo, que aprimora um desempenho em geral do sistema 1000, por exemplo, aprimorando-se o desempenho de compressão, reduzindo-se exigências de recurso de processador, exigências de transmissor/receptor, e/ou exigências de memória. A integração do codificador 1002 no sistema 1000 permite uma qualidade de imagem maior, uma resolução de imagem maior e/ou uma quantidade maior de imagens a ser processada usando os mesmos recursos.
[000202] O codificador/decodificador de coeficiente 1002 pode ser implantado em dispositivos e/ou sistemas associados às imagens e/ou aos vídeos digitais, por exemplo, em uma câmera digital, em uma televisão (por exemplo, TV de alta definição), em uma câmera de vídeo digital, em uma unidade de difusão de televisão, em um telefone inteligente (ou outro dispositivo móvel), em um navegador da Web, em um software de computador para ver e/ou editar imagens e/ou vídeos, em dispositivos de rede (para aprimorar o desempenho de rede), em um aplicativo de conversa em tempo real (por exemplo, chat de vídeo, conferência de vídeo, e sistemas de telepresença). A implantação do codificador/decodificador 1002 pode aprimorar o desempenho do dispositivo e/ou do sistema reduzindo-se as exigências de recurso (por exemplo, memória), por exemplo, permitir que mais retratos e/ou vídeos sejam salvos em uma memória, permitir que retratos e/ou vídeos com qualidade e/ou resolução maiores sejam salvos, e diminuir o tamanho de cada retrato e/ou vídeo e assim permitir uma transmissão mais rápida do retrato e/ou do vídeo apor uma conexão de rede.
[000203] O codificador/decodificador 1002 é integrado a um codifica- dor/decodificador de imagem 1004 configurado para codificar e/ou decodificar imagens e/ou vídeo através de compressão e/ou descompressão. O codificador/decodificador 1004 pode ter como base um padrão (por exemplo, HVEC, MPEG-4, JPEG) e/ou ter como base um ou mais protocolos proprietários. O codificador/decodificador de coeficiente 1002 pode ser integrado ao codificador/decodificador de imagem 1004, por exemplo, como um chip ou outro elemento (ou elementos) de hardware que é integrado no hardware do codificador/decodificador 1004, como um chip ou outro elemento de hardware que pluga no co- dificador/decodificador 1004, como módulos de software externos, como módulos de software integrados no código do codifica- dor/decodificador 1004 e/ou combinações dos mesmos.
[000204] O codificador/decodificador de imagem 1004 pode incluir componentes de codificação e/ou decodificação, por exemplo, um ou mais dentre: quantização (por exemplo, por um módulo de quantiza- ção), varredura de coeficiente (por exemplo, por um módulo de varredura de coeficiente), codificação de entropia (por exemplo, por um módulo de codificação de entropia), predições intra e/ou interimagem (por exemplo, por um módulo de predição).
[000205] O sistema 1000 inclui uma interface de dados 1006 acoplada ao codificador/decodificador de imagem 1004, configurado para receber uma ou mais imagens, por exemplo, de um gerador de imagem 1008, de um transmissor/receptor 1010 (por exemplo, uma interface de rede, cabo de televisão, transceptor sem fio), e/ou de uma memória 1012 que armazena imagens na mesma.
[000206] As imagens recebidas são processadas pelo codifica- dor/decodificador de imagem 1004, sendo que os coeficientes de transformada são gerados para um ou mais blocos de um ou mais quadros de imagem conforme descrito em referência à Figura 1 e/ou Figura 2.
[000207] As imagens comprimidas podem ser armazenadas na memória 1012 e/ou transmitidas com o uso do transmissor/receptor 1010.
[000208] Ao decodificar, as imagens podem ser recuperadas do ar-mazenamento na memória 1012, e/ou recebida do transmis- sor/receptor 1010. A decodificação ocorre pelo codifica- dor/decodificador de imagem 1004, com a decodificação dos coeficientes de transformada pelo codificador/decodificador de coeficiente 1002 conforme descrito no presente documento. A imagem decodificada pode ser exibida em um visor 1014, transmitida por um transmis- sor/receptor 1010 e/ou armazenada na memória 1012.
[000209] Agora é feita uma referência à Figura 11, que é um fluxo- grama de um método para reconstruir um bloco em um quadro de um conjunto de coeficientes de transformada, de acordo com algumas modalidades da presente invenção. O método da Figura 11 tem como base o método da Figura 1 e é complementar ao mesmo. O método da Figura 1 retrata transformar um bloco, que é transformada inversa com base no método da Figura 11. O método da Figura 11 pode ser realizado pela parte de transformada 202 da Figura 2 de um codificador de mídia configurado para agir como uma parte de transformada inversa de um decodificador de meio. A transformada inversa pode ser realizada pelos respectivos módulos de transformada, e/ou por outros módulos configurados para realizar um ou mais dentre os componentes de processamento de transformada inversa.
[000210] Em 1102, o coeficiente (ou os coeficientes) de transformada que representa (ou representam) um ou mais membros de um par de blocos de simetria rotacional é recebido (ou são recebidos). É observado que em alguns casos, um ou mais blocos de simetria rotacional sem quaisquer coeficientes pode ser recebido, e/ou não recebido (por exemplo, os blocos sem coeficientes podem ser evitados), por exemplo, um sinal que representa nenhum coeficiente de transformada que representa blocos de simetria rotacional pode ser recebido. Alternativa ou adicionalmente, é observado que em alguns casos, apenas um coeficiente é recebido em todo bloco (por exemplo, o coeficiente de DC).
[000211] Um sinal que representa uma máscara de simetria rotacio- nal selecionada associada pode ser recebido ou considerado como conhecida quando a mesma não é recebida deliberadamente (por exemplo, a máscara é deduzida da direção do previsor). A máscara de simetria rotacional define uma simetria rotacional em um espaço multidimensional que tem o tamanho e/ou formato como o bloco decodificado de um quadro.
[000212] Em 1104, o par de blocos de simetria rotacional é computado com base nos coeficientes de transformada recebidos. Cada membro do par de blocos de simetria rotacional inclui uma de duas porções complementares.
[000213] Em 1106, cada porção das duas porções complementares é extraída de cada respectivo membro do par de blocos de simetria rotacional.
[000214] Em 1108, um bloco é reconstruído a partir das duas porções complementares. A reconstrução pode ser guiada com base na máscara de simetria rotacional. Alternativamente, o bloco é reconstruído a partir das porções sem a máscara, guiada com base em formar um bloco quadrado ou retangular, por exemplo, ajustar as duas porções juntamente como peças de quebra-cabeça.
[000215] Opcionalmente, o bloco é designado no quadro.
[000216] Em 1112, o bloco decodificado é fornecido para um processamento adicional, armazenamento adicional e/ou é transmitido. O quadro pode ser reconstruído a partir dos blocos reconstruídos. O quadro pode ser exibido em uma tela, por exemplo, como parte de um vídeo.
[000217] Agora, é feita uma referência às Figuras 12A a 12I, que incluem uma imagem e gráficos de resultados experimentais de executar os métodos e/ou os sistemas descritos no presente documento. Os gráficos demonstram um aprimoramento em desempenho usando os sistemas e/ou os métodos descritos no presente documento, em relação à compressão de imagem com o uso de métodos com base em padrões de compressão. Os experimentos têm como base quadros individuais que usam métodos de codificação intraquadro.
[000218] Os experimentos são realizados conforme a seguir:
[000219] Um quadro de cada sequência de vídeo YUV é obtido. Vários tamanhos de quadro são usados, conforme definido por diferentes padrões, inclusive: formato intermediário comum (CIF), um quarto de CIF (QCIF), e alta definição (HD). Cada quadro é particionado uniformemente em blocos de um tamanho fixo NxN, inclusive tamanhos de 8x8, 16x16 e 32x32 pixels.
[000220] Uma biblioteca de máscara de simetria rotacional que contém 2x(N-1) orientações de linha diferentes é gerada para seleção de máscara e aplicação.
[000221] Esquemas de transformação integral, escalonamento e quantização são aplicados, com base no padrão H.265.
[000222] A varredura de coeficiente é realizada subdividindo-se a matriz NxN dos coeficientes de transformada em 4x4 submatrizes de coeficientes de transformada. A varredura de coeficiente é realizada usando uma varredura em ziguezague em cada matriz 4x4 embora evite os coeficientes zero.
[000223] Os coeficientes de transformada são codificados com base no padrão H.264 CAVLC, que também definiu sinais para o modo de predição, o tipo de máscara e o tipo MB (definido no presente documento como o bloco codificado que foi selecionado (isto é, o bloco NxN padrão ou o bloco dividido nas duas porções complementares conforme descrito no presente documento).
[000224] O bloco de intrapredição para os blocos NxN tem como base 4 modos; vertical (V), horizontal (H), DC (isto é, planar) (D) e plano (P). Os membros de codificação do par de blocos de simetria rotacio- nal têm como base intraprevisores separados e/ou comuns. Os intra- previsores comuns incluem os 4 intra modos; V, H, D e P. Os intrapre- visores separados incluem os 16 intra modos com base em permutações de combinações dos 4 intra modos; VV, VH, e PP.
[000225] A decisão de codificar um certo bloco com base em nos métodos de codificação NxN padrão, ou aplicar uma máscara de simetria rotacional e codificar o par de blocos de simetria rotacional ( conforme descrito no presente documento) foi com base em uma função de custo de distorção de taxa (RD) definida como: SSE + lambda*Bits, sendo que: SSE denota a soma de um quadrado do erro entre o bloco reconstruído e o bloco de entrada, lambda denota um termo dependente de um parâmetro de quantização (Qp), e Bits denota a quantidade de bits codificados no bloco que incluem os bits de sinalização. A decisão de codificação é também feita com base no percentual de coeficientes não zero (representado nos gráficos por PerNZ Coef).
[000226] Os resultados são sumarizados conforme a seguir:
[000227] Uma redução em taxa de bits de até 15% para a mesma PSNR é mostrada. Para 35 quadros de sequência QCIF, divididos em blocos de tamanho 16x16, uma redução média de cerca de 7% em taxa de bits para uma faixa de PSNR de 35 a 45 dB foi alcançado. Para 10 quadros de sequência de tamanho maior, divididos em blocos de tamanho 16x16, uma redução média de cerca de 7,5% foi alcançada.
[000228] A Figura 12A é uma imagem exemplificativa (isto é, quadro) sendo processado de acordo com os sistemas e/ou métodos descritos no presente documento como parte do experimento descrito no presente documento. A imagem corresponde ao 10o quadro de uma sequência CIF de nome akiyo.cif. O quadro CIF tem um tamanho de 352x288 pixels. O quadro é particionado uniformemente em blocos com base em um quadrado com NxN blocos, sendo que N=16 pixels (um bloco exemplificativo é retratado por 1202). O quadro é codificado usando Qp=30. Uma biblioteca de máscara de simetria rotacional que contém 2(N-1) = 30 orientações de linha diferentes fornece uma base para seleção de máscaras para dividir o bloco. Os blocos que têm máscaras selecionadas associadas com orientação de linha são retratados nas Figuras, por exemplo, o bloco com máscara 1204. Em muitos casos, a linha de máscara segue a borda no bloco. Os blocos para os quais nenhuma máscara foi selecionada foram codificados como um único bloco NxN, e retratado na imagem sem a máscara, por exemplo, bloco 1202.
[000229] Os gráficos das Figuras 12B-I incluem resultados experimentais com base no processamento da Figura 12A.
[000230] A Figura 12B é um gráfico que retrata um aprimoramento em termos de taxa de bits para todo o quadro da Figura 12A quando as máscaras são selecionadas para dividir o bloco em duas porções complementares para codificar, sobre a imagem de codificação da Figura 12A usando blocos de transformação NxN padrão, no mesmo nível de qualidade de objetivo (representado por PSNR). O gráfico retrata o percentual de aprimoramento de taxa de bits como uma função de PSNR. É observado que um aprimoramento em taxa de bits acima de 10% foi alcançado para a imagem da Figura 12A usando os sistemas e/ou os métodos descritos no presente documento.
[000231] A Figura 12C é um gráfico que retrata um aprimoramento em termos de coeficientes por não zero (PerNZ) para todo o quadro da Figura 12A quando as máscaras são selecionadas para dividir o bloco em duas porções complementares para codificar, sobre a imagem de codificação da Figura 12A usando blocos de transformação NxN padrão, no mesmo nível de qualidade de objetivo (representado por PSNR). A quantidade dos coeficientes de transformada que não são zero após uma quantização é usada para estimar a quantidade de bits codificados para codificar os coeficientes de transformada. É observado que a medição de coeficiente não zero não inclui a sobrecarga de bits de sinalização (por exemplo, modo de predição, modo de seleção de máscara, e tipo MB). O gráfico demonstra um aprimoramento em termos de percentual dos coeficientes de transformada não zero de cerca de 15% usando os sistemas e/ou os métodos descritos no presente documento.
[000232] A Figura 12D é um gráfico que retrata Y-PSNR como uma função de taxa de bits, para o esquema de processamento C2 e para o esquema de processamento NxN. O esquema de processamento C2 é os métodos e/ou sistemas descritos no presente documento com base seja na seleção de máscara e geração das duas porções complementares para o bloco de transformação, seja na codificação do bloco NxN usando métodos padrão. A seleção da codificação com base em máscara ou a codificação com base em bloco NxN é com base em uma certa medida que está associada a cada partição com base em máscara e cada bloco NxN. O esquema de processamento de NxN tem como base o método padrão para codificar cada bloco como um único bloco NxN. O gráfico demonstra que o método C2 alcançou uma taxa de bits menor do que o método NxN, para o mesmo valor PSNR, que representa uma qualidade aprimorada para a mesma taxa de bits.
[000233] A Figura 12E é um gráfico que retrata Y-PSNR como uma função do percentual dos coeficientes de transformada não zero para todo o quadro, com base no método C2 e no método NxN. O gráfico retrata um desempenho de compressão aprimorado com base no método C2 (isto é, os sistemas e/ou métodos descritos no presente documento), em termos de percentual menor dos coeficientes de transformada não zero para a mesma PSNR, que representa uma qualidade aprimorada para o mesmo percentual de coeficientes de transformada não zero.
[000234] A Figura 12F é um histograma que retrata uma frequência da aplicação do modo intrapredição para o caso padrão NxN. No eixo geométrico X, 1 denota nenhuma predição, 2 denota predição vertical, 3 denota predição horizontal, 4 denota predição de DC e 5 denota predição de plano.
[000235] A Figura 12G é um histograma que retrata uma frequência da aplicação do modo intrapredição para o esquema C2 dos métodos e/ou sistemas descritos no presente documento, para 16 modos de previsor separados: 1 denota nenhuma predição, 2 denota predição VV, 3 denota predição VH, 4 denota predição VD, 5 denota predição VP, 6 denota predição HV, 17 denota predição PP.
[000236] A Figura 12H é um histograma que retrata uma frequência da aplicação de cada máscara da biblioteca de 30 máscaras de simetria rotacional.
[000237] A Figura 12I é um gráfico que retrata a razão de três variáveis como uma função de Qp.
[000238] A linha 1214 denota o percentual de blocos para os quais o método C2 foi selecionado ao invés do método NxN padrão para os blocos da imagem. Por exemplo, em Qp = 30, cerca de 35% dos blocos no quadro foram codificados com base no método C2 (com base na seleção de máscara e codificação das duas porções complementares), enquanto o restante (cerca de 65%) foi codificado como um único bloco 16x16.
[000239] A linha 1212 denota o percentual de bits do quadro que foram codificados com base no método C2. Por exemplo, em Qp=30, cerca de 45% dos bits no quadro foram codificados com base no método C2.
[000240] A linha 1210 denota o percentual dos coeficientes de transformada por não zero do quadro que foram codificados com o uso do método C2. Por exemplo, em Qp=30, mais de 45% dos coeficientes de transformada por não zero no quadro foram codificados com o uso do método C2.
[000241] As descrições das várias modalidades da presente inven- ção foram apresentadas para finalidades de ilustração, mas não se destinam a serem exaustivas ou limitadas às modalidades reveladas. Muitas modificações e variações serão aparentes para aqueles de habilidade comum na técnica sem fugir do escopo e do espírito das modalidades descritas. A terminologia usada no presente documento foi escolhida para explicar melhor os princípios das modalidades, a aplicação prática ou um aprimoramento técnico sobre tecnologias encontradas no mercado, ou para permitir que outros de habilidade comum na técnica entendam as modalidades reveladas no presente documento.
[000242] É esperado que durante a vida de uma patente que amadurece a partir desse pedido de patente, muitos decodificadores de imagem e/ou codificadores de imagem relevantes serão desenvolvidos e o escopo do termo codificador se destina a incluir todas as novas tecnologias a priori.
[000243] Conforme usado no presente documento, o termo "cerca de" se refere a ± 10%.
[000244] Os termos "compreende", "que compreende", "inclui", "que inclui", "tem" e seus conjugados significam "inclusive, mas não limitadamente". Esse termo abrange os termos "consiste em" e "consiste essencialmente em".
[000245] A frase "consiste essencialmente em" significa que a composição ou o método pode incluir ingredientes e/ou etapas adicionais, mas apenas se os ingredientes e/ou as etapas adicionais não alteram materialmente as características básicas e inovadoras do método ou da composição reivindicado.
[000246] Conforme usado no presente documento, a forma singular "um", "uma" e "o" incluem referências no plural a menos que o contexto claramente dite de outra maneira. Por exemplo, o termo "um composto" ou "pelo menos um composto" pode incluir uma pluralidade de compostos, inclusive misturas dos mesmos.
[000247] A palavra "exemplificativo" é usada no presente documento para significar "que serve como um exemplo, caso ou ilustração". Qualquer modalidade descrita como "exemplificativa" não deve ser interpretada necessariamente como preferencial ou vantajosa sobre outras modalidades e/ou de modo a excluir a incorporação de recursos de outras modalidades.
[000248] A palavra "opcionalmente" é usada no presente documento para significar "é fornecido em algumas modalidades e não fornecido em outras modalidades". Qualquer modalidade em particular da invenção pode incluir uma pluralidade de recursos "opcionais" a menos que tais recursos entrem em conflito.
[000249] No decorrer deste pedido de patente, várias modalidades dessa invenção podem ser apresentadas em um formato de faixa. Deve ser entendido que a descrição em formato de faixa é meramente a título de conveniência e brevidade e não deve ser interpretada como uma limitação inflexível no escopo da invenção. Consequentemente, a descrição de uma faixa deve ser considerada a ter revelado especificamente todas as subfaixas possíveis assim como os valores numéricos individuais nessa faixa. Por exemplo, a descrição de uma faixa tal como de 1 a 6 deve ser considerada de modo a ter revelado especificamente as subfaixas tal como de 1 a 3, de 1 a 4, de 1 a 5, de 2 a 4, de 2 a 6, de 3 a 6 etc., assim como números individuais nessa faixa, por exemplo, 1, 2, 3, 4, 5 e 6. Isso se aplica independente da amplitude da faixa.
[000250] Sempre que uma faixa numérica é indicada no presente documento, a mesma se destina a incluir qualquer numeral citado (fracionado ou inteiro) na faixa indicada. As frases "variando/varia entre" um primeiro número indicado e um segundo número indicado e "na faixa de" um primeiro número indicado "até" um segundo número indicado são usados no presente documento de modo intertrocável e se destinam a incluir o primeiro e o segundo números indicados e todos os numerais fracionados e inteiros entre os mesmos.
[000251] É apreciado que certos recursos da invenção, que são, a título de clareza, descritos no contexto de modalidades separadas, podem também ser fornecidos em combinação em uma única modalidade. Pelo contrário, vários recursos da invenção, que são, a título de brevidade, descritos no contexto de uma única modalidade, podem também ser fornecidos separadamente ou em qualquer subcombina- ção adequada ou como adequada em qualquer outra modalidade descrita da invenção. Certos recursos descritos no contexto de várias modalidades não devem ser considerados recursos essenciais dessas modalidades, a menos que a modalidade seja inoperante sem esses elementos.
[000252] Embora a invenção tenha sido descrita em conjunto com as modalidades específicas da mesma, é evidente que muitas alternativas, modificações e variações serão aparentes para aqueles versados na técnica. Consequentemente, a mesma se destina a englobar todas as tais alternativas, modificações e variações que sejam abrangidas pelo espírito e escopo amplo das concretizações anexas.
[000253] Todas as publicações, patentes e pedidos de patente mencionados neste relatório descritivo estão no presente documento incorporados em sua totalidade a título de referência no relatório descritivo, na mesma extensão como se cada publicação, patente ou pedido de patente individual fosse específica e individualmente indicado como sendo incorporado no presente documento a título de referência. Além disso, uma citação ou identificação de qualquer referência neste pedido de patente não deve ser interpretada como uma admissão de que tal referência está disponível como técnica anterior para a presente invenção. Na medida em que cabeçalhos de seção são usados, os mesmos não devem ser interpretados como necessariamente limitantes.
Claims (22)
1. Aparelho adaptado para gerar um conjunto de coeficientes de transformada (216) para conversão em código de um bloco em um quadro (210) ou porção do mesmo, caracterizado pelo fato de que compreende: um codificador de mídia (202) acoplado a uma interface de dados (208) adaptada para receber (102) um quadro (210) ou porção da mesma, o dito codificador de mídia (202) é adaptado para: selecionar (104) uma máscara de simetria rotacional (402) para o dito bloco de uma pluralidade de máscaras de simetria rotacio- nal que definem uma pluralidade de diferentes simetrias rotacionais em um espaço multidimensional que possui um tamanho e um formato como o dito bloco; dividir (106) o dito bloco em duas porções complementares com base na dita máscara de simetria rotacional (402); gerar (108) um par de blocos de simetria rotacional em que cada possui uma das ditas duas porções complementares; e computar (110) pelo menos um coeficiente de transformada (216) para pelo menos um membro do dito par de blocos de simetria rotacional.
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para gerar cada membro do dito par de blocos de simetria rotacional (108) por uma das ditas duas porções complementares e um espelho bidimensional (2D) da respectiva porção adicionada para formar tamanho e formato do dito bloco.
3. Aparelho, de acordo a reivindicação 1 ou 2, caracterizado pelo fato de que a dita pluralidade de máscaras de simetria rotaci- onal está em uma biblioteca de máscaras de simetria rotacional (212F); em que o dito codificador de mídia (202) é adaptado para sele- cionar a dita biblioteca de máscara de simetria rotacional (212F) de uma pluralidade de bibliotecas de máscara de simetria rotacional (212F) com base em pelo menos um dentre um tamanho e um formato do dito bloco.
4. Aparelho, de acordo com a reivindicação 3, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar a dita biblioteca de máscara de simetria rotacional (212F) de uma pluralidade de bibliotecas de máscara de simetria rotacional com base em preferência de compressão (904) para o dito bloco.
5. Aparelho, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar a dita biblioteca de máscara de simetria rotacional (212F) de uma pluralidade de bibliotecas de máscara de simetria rota- cional com base em uma classificação de um dado de vídeo que compreende o dito quadro (210) ou porção dos mesmos.
6. Aparelho, de acordo com qualquer uma das reivindicações 3 a 5, caracterizado pelo fato de que o dito espaço multidimensional é um espaço bidimensional, em que a dita pluralidade de diferentes máscaras de simetria rotacional compreende uma pluralidade de matrizes, cada define uma linha diferente que une bordas opostas do dito espaço bidimensional para dividir o dito espaço bidimensional em duas porções complementares (106).
7. Aparelho, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para codificar o dito pelo menos um coeficiente de transformada (216) usando pelo menos um previsor espacial adaptado para pelo menos uma das ditas duas porções complementares do dito bloco.
8. Aparelho, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para codificar o dito pelo menos um coeficiente de transformada (216) usando pelo menos um previsor temporal adaptado para pelo menos uma das ditas duas porções complementares do dito bloco.
9. Aparelho, de acordo com qualquer uma das reivindicações 1 a 8, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para codificar pelo menos um dos ditos coeficientes de transformada (216) de cada um do dito par de blocos de simetria rotacional usando um previsor espacial relacionado à respectiva uma das ditas duas porções complementares.
10. Aparelho, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para codificar pelo menos um dos ditos coeficientes de transformada (216) de cada um do dito par de blocos de simetria rotacional usando um vetor de movimento relacionado à uma respectiva das ditas duas porções complementares.
11. Aparelho, de acordo com qualquer uma das reivindicações 1 a 10, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar a dita máscara de simetria rotaci- onal com base em um resultado de um processo de transformação (908) e/ou uma estimativa de um resultado de um processo de transformação aplicado em pelo menos um dos ditos dois blocos simétricos rotativos.
12. Aparelho, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar a dita máscara de simetria rotaci- onal com base em um resultado e/ou uma estimativa de um resultado de pelo menos um dentre um processo de quantização (910) e um processo de conversão em código aplicado no dito pelo menos um coeficiente de transformada (216) para pelo menos um membro do dito par de blocos de simetria rotacional.
13. Aparelho, de acordo com qualquer uma das reivindicações 1 a 12, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar a dita máscara de simetria rotaci- onal de acordo com um padrão de valores de pixel (912) no dito bloco.
14. Aparelho, de acordo com qualquer uma das reivindicações 1 a 13, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar a dita máscara de simetria rotaci- onal com base em conteúdo extraído de pelo menos um de blocos vizinhos espaciais do dito bloco e blocos vizinhos temporais do dito bloco (918).
15. Aparelho, de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar uma máscara de simetria rotaci- onal que é realizada com base em informações associadas com pelo menos um de blocos vizinhos espaciais do dito bloco e blocos vizinhos temporais do dito bloco.
16. Aparelho, de acordo com a reivindicação 15, caracterizado pelo fato de que a dita informação associada a pelo menos um dos grupos que consistem em blocos vizinhos temporais e espaciais são relacionados à previsão.
17. Aparelho, de acordo com qualquer uma das reivindicações 1 a 16, caracterizado pelo fato de que o dito codificador de mídia (202) é adaptado para selecionar uma máscara de simetria rotaci- onal que é realizada com base em preferência de compressão para o dito bloco (904).
18. Aparelho, de acordo com qualquer uma das reivindicações 1 a 17, caracterizado pelo fato de que a dita máscara de simetria rotacional é adaptada para definir uma linha que une as bordas opostas de um retângulo para dividir um bloco retangular em duas por- ções complementares de espelho bidimensional.
19. Aparelho, de acordo com qualquer uma das reivindicações 1 a 18, caracterizado pelo fato de que: a interface de dados (208) é ainda adaptada para receber pelo menos um coeficiente de transformada (216) que representa pelo menos um membro de um par de blocos de simetria rotacional, e um sinal que representa uma máscara de simetria de rotação (402) selecionada associada, a máscara de simetria de rotação (402) define uma simetria rotacional em um espaço multidimensional que possui um tamanho e um formato como um bloco de um quadro (210) ou porção do mesmo; e o codificador de mídia (202) é ainda adaptado para: computar o par de blocos de simetria rotacional (1104) com base em transformada inversa do dito pelo menos um coeficiente de transformada recebido (216), cada membro do par de blocos de simetria rotacional possuindo uma das duas porções complementares; e reconstruir um bloco das duas porções complementares (1108), com base na máscara de simetria rotacional.
20. Método para gerar um conjunto de coeficientes de transformada de um bloco em um quadro (210) ou porção do mesmo, caracterizado pelo fato de que compreende etapas de: selecionar (104) uma máscara de simetria rotacional de uma biblioteca de máscara de simetria rotacional (212F) que compreende uma pluralidade de diferentes máscaras de simetria rotacional que define uma pluralidade de diferentes simetrias rotacionais em um espaço multidimensional que possui um tamanho e um formato como o dito bloco; dividir (106) o dito bloco em duas porções complementares com base na dita máscara de simetria rotacional; gerar (108) um par de blocos de simetria rotacional cada possuindo uma das ditas duas porções complementares; e computar (110) pelo menos um coeficiente de transformada (216) para cada membro do dito par de blocos de simetria rotacional, em que o método é, em particular, configurado para operar um aparelho conforme definido em qualquer uma das reivindicações 1 a 19.
21. Aparelho adaptado para decodificar um bloco de um quadro (210) ou porção do mesmo, caracterizado pelo fato de que compreende: um decodificador de mídia acoplado a uma interface de dados adaptada para receber pelo menos um coeficiente de transformada (216) que representa pelo menos um membro de um par de blocos de simetria rotacional, e um sinal que representa uma máscara de simetria de rotação (402) selecionada associada à máscara de simetria de rotação (402) define uma simetria rotacional em um espaço multidimensional que possui um tamanho e um formato como um bloco de um quadro (210) ou porção do mesmo, o decodificador de mídia é adaptado para: computar o par de blocos de simetria rotacional (1104) com base em transformada inversa do dito pelo menos um coeficiente de transformada recebido (216), cada membro do par de blocos de simetria rotacional possui uma de duas porções complementares; e reconstruir um bloco das duas porções complementares (1108) com base na máscara de simetria rotacional; em que o aparelho é, em particular, adaptado para decodificar um bloco de um quadro (210) ou uma porção do mesmo decodificado por um aparelho conforme definido em qualquer uma das reivindicações 1 a 19.
22. Método para reconstruir um bloco de um quadro (210) ou porção do mesmo caracterizado pelo fato de que compreende etapas de: receber (1102) pelo menos um coeficiente de transformada (216) que representa pelo menos um membro de um par de blocos de simetria rotacional, e um sinal que representa uma máscara de simetria de rotação (402) selecionada associada, a máscara de simetria de rotação (402) define uma simetria rotacional em um espaço multidimensional que possui um tamanho e um formato como um bloco de um quadro (210) ou porção do mesmo; computar (1104) o par de blocos de simetria rotacional com base em transformada inversa do dito pelo menos um coeficiente de transformada recebido (216), cada membro do par de blocos de simetria rotacional possui uma das duas porções complementares; e reconstruir (1108) um bloco das duas porções complementares com base na máscara de simetria rotacional; em que o método é, em particular, adaptado para operar um aparelho conforme definido na reivindicação 21.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/074639 WO2016074745A1 (en) | 2014-11-14 | 2014-11-14 | Systems and methods for processing a block of a digital image |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112017010007A2 BR112017010007A2 (pt) | 2018-01-02 |
BR112017010007B1 true BR112017010007B1 (pt) | 2023-04-11 |
Family
ID=51900444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112017010007-0A BR112017010007B1 (pt) | 2014-11-14 | 2014-11-14 | Aparelho adaptado para gerar um conjunto de coeficientes de transformada, método para gerar um conjunto de coeficientes de transformada, aparelho adaptado para decodificar um bloco de um quadro, e método para reconstruir um bloco de um quadro |
Country Status (7)
Country | Link |
---|---|
US (2) | US10742976B2 (pt) |
EP (1) | EP3207699B1 (pt) |
JP (1) | JP6496821B2 (pt) |
KR (2) | KR102012906B1 (pt) |
CN (1) | CN107005702B (pt) |
BR (1) | BR112017010007B1 (pt) |
WO (1) | WO2016074745A1 (pt) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107005702B (zh) * | 2014-11-14 | 2020-10-16 | 华为技术有限公司 | 用于处理数字图像的块的***和方法 |
EP3207700B1 (en) * | 2014-11-14 | 2020-01-08 | Huawei Technologies Co., Ltd. | Systems and methods for mask based processing of a block of a digital image |
WO2016074744A1 (en) * | 2014-11-14 | 2016-05-19 | Huawei Technologies Co., Ltd. | Systems and methods for processing a digital image |
WO2018141385A1 (en) | 2017-02-02 | 2018-08-09 | Huawei Technologies Co., Ltd. | Image and video processing apparatuses and methods |
CN110876083B (zh) * | 2018-08-29 | 2021-09-21 | 浙江大学 | 指定参考图像的方法及装置及处理参考图像请求的方法及装置 |
CN113344092B (zh) * | 2021-06-18 | 2022-10-11 | 中科迈航信息技术有限公司 | Ai的图像识别方法及终端装置 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69225365T2 (de) * | 1991-08-30 | 1998-11-19 | Fuji Xerox Co Ltd | Bildsignalkodierungsvorrichtung |
JPH0783478B2 (ja) * | 1992-01-30 | 1995-09-06 | 松下電器産業株式会社 | 画像符号化装置 |
JP3196906B2 (ja) * | 1992-08-21 | 2001-08-06 | 富士ゼロックス株式会社 | 画像信号の符号化装置 |
JPH0787493A (ja) | 1993-09-14 | 1995-03-31 | Oki Electric Ind Co Ltd | フレーム内挿方法 |
EP2129133A3 (en) * | 1995-08-29 | 2012-02-15 | Sharp Kabushiki Kaisha | Video coding device and video decoding device with a motion compensated interframe prediction |
CN1158875C (zh) | 1996-01-29 | 2004-07-21 | 松下电器产业株式会社 | 数字图像像素填补法及用该法的数字图像编码与解码装置 |
JP2008109700A (ja) | 1997-11-05 | 2008-05-08 | Sony Corp | ディジタル信号変換方法およびディジタル信号変換装置 |
EP1788814A3 (en) | 1997-11-05 | 2008-10-15 | Sony Corporation | Simplified motion detection within a video transcoding scheme operating resolution conversion |
US8050329B2 (en) * | 1998-06-26 | 2011-11-01 | Mediatek Inc. | Method and apparatus for generic scalable shape coding |
JP2002325170A (ja) * | 2001-04-24 | 2002-11-08 | Canon Inc | 画像処理装置及びその方法並びにプログラムコード、記憶媒体 |
JP4147789B2 (ja) | 2002-03-07 | 2008-09-10 | ソニー株式会社 | 画像処理装置および画像処理方法、並びにプログラムおよび記録媒体 |
JP4025570B2 (ja) * | 2002-04-03 | 2007-12-19 | 日本電信電話株式会社 | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、動画像復号プログラム、動画像符号化プログラムを記録した記録媒体、動画像復号プログラムを記録した記録媒体 |
JP2004297416A (ja) | 2003-03-26 | 2004-10-21 | Monolith Co Ltd | 対応点情報圧縮方法および装置 |
JP2006094053A (ja) * | 2004-09-22 | 2006-04-06 | Fuji Photo Film Co Ltd | フォトムービー作成方法および装置、並びにフォトムービー作成プログラム |
US7756348B2 (en) | 2006-10-30 | 2010-07-13 | Hewlett-Packard Development Company, L.P. | Method for decomposing a video sequence frame |
CN101771868B (zh) * | 2008-12-31 | 2016-03-02 | 华为技术有限公司 | 对图像的量化处理方法及装置 |
JP2012089905A (ja) | 2009-01-13 | 2012-05-10 | Hitachi Ltd | 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法 |
KR20110045949A (ko) * | 2009-10-28 | 2011-05-04 | 삼성전자주식회사 | 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치 |
EP2942960A1 (en) * | 2009-12-01 | 2015-11-11 | HUMAX Holdings Co., Ltd. | Apparatus for decoding high-resolution images |
JP5456907B2 (ja) * | 2009-12-04 | 2014-04-02 | トムソン ライセンシング | テクスチャー・パターン適応式の分割ブロック変換 |
WO2011088593A1 (en) * | 2010-01-25 | 2011-07-28 | Thomson Licensing | Method and device for encoding of an image block and method and device for decoding of an image block |
US8879632B2 (en) * | 2010-02-18 | 2014-11-04 | Qualcomm Incorporated | Fixed point implementation for geometric motion partitioning |
CN102215396A (zh) | 2010-04-09 | 2011-10-12 | 华为技术有限公司 | 一种视频编解码方法和*** |
EP2559248A2 (en) | 2010-04-12 | 2013-02-20 | Qualcomm Incorporated | Fixed point implementation for geometric motion partitioning |
US9020043B2 (en) * | 2010-05-10 | 2015-04-28 | Google Inc. | Pathway indexing in flexible partitioning |
JP5590390B2 (ja) | 2010-07-15 | 2014-09-17 | ソニー株式会社 | 画像処理装置および方法 |
CN102957907B (zh) * | 2011-08-31 | 2016-06-29 | 华为技术有限公司 | 一种变换块位置信息的获取方法和模块 |
KR102344178B1 (ko) | 2011-11-11 | 2021-12-29 | 지이 비디오 컴프레션, 엘엘씨 | 분할 코딩을 이용한 효과적인 예측 |
US9179162B2 (en) * | 2011-12-02 | 2015-11-03 | Futurewei Technologies, Inc. | Image transform zero coefficient selection and zero-skip transmission for arbitrary shape transform coding |
CN110365993B (zh) | 2012-06-01 | 2021-08-06 | 威勒斯媒体国际有限公司 | 算术解码装置、图像解码装置、算术编码装置以及图像编码装置 |
WO2014109826A1 (en) | 2012-11-13 | 2014-07-17 | Intel Corporation | Video codec architecture for next generation video |
US20140307780A1 (en) | 2013-04-11 | 2014-10-16 | Mitsubishi Electric Research Laboratories, Inc. | Method for Video Coding Using Blocks Partitioned According to Edge Orientations |
CN105393541B (zh) * | 2013-07-19 | 2018-10-12 | 华为技术有限公司 | 使用基于深度的块分割编解码纹理块的方法和装置 |
WO2015142070A1 (ko) * | 2014-03-19 | 2015-09-24 | 삼성전자 주식회사 | 경계 필터링을 수반한 비디오 부호화 및 비디오 복호화 방법 및 장치 |
US20180176559A1 (en) * | 2014-03-19 | 2018-06-21 | Samsung Electronics Co., Ltd. | Method for performing filtering at partition boundary of block related to 3d image |
US9584814B2 (en) * | 2014-05-15 | 2017-02-28 | Intel Corporation | Content adaptive background foreground segmentation for video coding |
CN107005702B (zh) * | 2014-11-14 | 2020-10-16 | 华为技术有限公司 | 用于处理数字图像的块的***和方法 |
EP3207700B1 (en) * | 2014-11-14 | 2020-01-08 | Huawei Technologies Co., Ltd. | Systems and methods for mask based processing of a block of a digital image |
WO2016074744A1 (en) * | 2014-11-14 | 2016-05-19 | Huawei Technologies Co., Ltd. | Systems and methods for processing a digital image |
KR101618795B1 (ko) | 2014-11-28 | 2016-05-12 | 주식회사 폴라리언트 | 이동체의 3차원 자세 및 위치 인식 장치 |
-
2014
- 2014-11-14 CN CN201480083420.9A patent/CN107005702B/zh active Active
- 2014-11-14 WO PCT/EP2014/074639 patent/WO2016074745A1/en active Application Filing
- 2014-11-14 KR KR1020177015872A patent/KR102012906B1/ko active IP Right Grant
- 2014-11-14 EP EP14798877.8A patent/EP3207699B1/en active Active
- 2014-11-14 KR KR1020197023960A patent/KR102138650B1/ko active IP Right Grant
- 2014-11-14 JP JP2017525965A patent/JP6496821B2/ja active Active
- 2014-11-14 BR BR112017010007-0A patent/BR112017010007B1/pt active IP Right Grant
-
2017
- 2017-05-12 US US15/594,234 patent/US10742976B2/en active Active
-
2020
- 2020-01-23 US US16/750,880 patent/US11153564B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR102012906B1 (ko) | 2019-08-21 |
US10742976B2 (en) | 2020-08-11 |
EP3207699B1 (en) | 2021-06-09 |
US11153564B2 (en) | 2021-10-19 |
WO2016074745A1 (en) | 2016-05-19 |
BR112017010007A2 (pt) | 2018-01-02 |
US20200162732A1 (en) | 2020-05-21 |
KR20170084213A (ko) | 2017-07-19 |
CN107005702A (zh) | 2017-08-01 |
US20170251210A1 (en) | 2017-08-31 |
KR20190098276A (ko) | 2019-08-21 |
KR102138650B1 (ko) | 2020-07-28 |
JP6496821B2 (ja) | 2019-04-10 |
EP3207699A1 (en) | 2017-08-23 |
CN107005702B (zh) | 2020-10-16 |
JP2018501696A (ja) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112017010160B1 (pt) | Aparelho e método para gerar uma pluralidade de coeficientes de transformada, método para codificar um quadro, aparelho e método para decodificar um quadro e meio legível por computador | |
ES2863275T3 (es) | Transformaciones geométricas para filtros para la codificación de video | |
US10602186B2 (en) | Systems and methods for mask based processing of a block of a digital image | |
ES2907510T3 (es) | Descomposición de datos residuales durante la codificación, decodificación y reconstrucción de señales en una jerarquía escalonada | |
US10616603B2 (en) | Methods and apparatuses for encoding and decoding digital images through superpixels | |
US11153564B2 (en) | Systems and methods for processing a block of a digital image | |
BR112014009431B1 (pt) | Método para codificar dados de vídeo, aparelho para codificar vídeo e memória legível por computador | |
BR112020025145A2 (pt) | filtro de desbloqueio para fronteiras de subpartição causadas por ferramenta de codificação de subpartição intra | |
BR122023021035A2 (pt) | Método de compactação do vetor de movimento, meio de armazenamento legível por computador não transitório, codificador, decodificador e meio de armazenamento | |
US10742979B2 (en) | Nonlinear local activity for adaptive quantization | |
BR112017010163B1 (pt) | Aparelho para a geração de um conjunto de coeficientes de transformada de um bloco em um quadro ou uma porção do mesmo, método para a geração de um conjunto de coeficientes de um bloco em um quadro ou uma porção do mesmo e meio de armazenamento legível por computador | |
JP2019134457A (ja) | デジタル画像のブロックを処理するためのシステムおよび方法 | |
BR112021010422A2 (pt) | Método de codificação de imagem baseado em transformada secundária e dispositivo para o mesmo | |
BR122022006273B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
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 14/11/2014, OBSERVADAS AS CONDICOES LEGAIS |