BR112020002254A2 - codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem - Google Patents

codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem Download PDF

Info

Publication number
BR112020002254A2
BR112020002254A2 BR112020002254-3A BR112020002254A BR112020002254A2 BR 112020002254 A2 BR112020002254 A2 BR 112020002254A2 BR 112020002254 A BR112020002254 A BR 112020002254A BR 112020002254 A2 BR112020002254 A2 BR 112020002254A2
Authority
BR
Brazil
Prior art keywords
partition
image
motion vector
values
block
Prior art date
Application number
BR112020002254-3A
Other languages
English (en)
Inventor
Kiyofumi Abe
Jing Ya LI
Takahiro Nishi
Tadamasa Toma
Ryuichi KANOH
Chong Soon Lim
Ru Ling LIAO
Hai Wei Sun
Sughosh Pavan SHASHIDHAR
Han Boon Teo
Original Assignee
Panasonic Intellectual Property Corporation Of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corporation Of America filed Critical Panasonic Intellectual Property Corporation Of America
Publication of BR112020002254A2 publication Critical patent/BR112020002254A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods 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
    • H04N19/198Methods 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 including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Abstract

Um codificador de imagem refere-se a, incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular (por exemplo, um formato triangular), e uma segunda partição, que são divididas a partir de um bloco de imagem. A operação de suavização de limite inclui a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, a utilização da informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.

Description

Relatório Descritivo da Patente de Invenção para "CODIFICADOR DE IMAGEM, DECODIFICADOR DE IMAGEM,
MÉTODO DE CODIFICAÇÃO DE IMAGEM E MÉTODO DE DECODIFICAÇÃO DE IMAGEM". Campo Técnico
[001] Essa descrição refere-se à codificação de vídeo e, particularmente, a sistemas, componentes e métodos de codificação e decodificação de vídeo, para realizar uma função de interprevisão para construir um bloco atual, com base em um quadro de referência ou uma função de intraprevisão para construir um bloco atual, com base em um bloco de referência codificado/decodificado em um quadro atual. Técnica Fundamental
[002] Com o avanço da tecnologia de codificação de vídeo, a partir de H.261 e MPEG-1 até H.264/AVC (Advanced Video Coding), MPEG- LA, H.265/HEVC (High Efficiency Video Coding) e H.266/VVC (Versatile Video Codec), ainda permanece a necessidade constante de se fornecer aperfeiçoamentos e otimizações na tecnologia de codificação de vídeo para processar uma quantidade cada vez maior de dados de vídeo digital em várias aplicações. Essa descrição se refere a avanços, aperfeiçoamentos e otimizações adicionais na codificação de vídeo, particularmente, com relação a uma função de interprevisão ou uma função de intraprevisão, dividindo um bloco de imagem em uma pluralidade de partições incluindo pelo menos uma primeira partição possuindo um formato não retangular (por exemplo, um triângulo) e uma segunda partição. Sumário da Invenção
[003] De acordo com um aspecto, um codificador de imagem é fornecido incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, possuindo um formato não retangular e uma segunda partição, que são divididas em um bloco de imagem. A operação de suavização de limite inclui a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; ponderando os primeiros valores e os segundos valores; e codificando a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[004] Algumas implementações da modalidade da presente descrição podem aperfeiçoar uma eficiência de codificação, podem ser simplesmente um processo de codificação/decodificação, pode acelerar uma velocidade de processo de codificação/decodificação, pode selecionar, de forma eficiente, componentes/operações adequados utilizados na codificação e decodificação, tal como um filtro, tamanho de bloco, vetor de movimento, imagem de referência, bloco de referência adequado, etc.
[005] Benefícios e vantagens adicionais das modalidades descritas se tornarão aparentes a partir da especificação e dos desenhos. Os benefícios e/ou vantagens podem ser obtidos individualmente pelas várias modalidades e características da especificação e desenhos, nem todos os quais precisam ser fornecidos a fim de se obter um ou mais de tais benefícios e/ou vantagens.
[006] Deve-se notar que as modalidades gerais ou específicas podem ser implementadas como um sistema, um método, um circuito integrado, um programa de computador, um meio de armazenamento, ou qualquer combinação seletiva dos mesmos. Breve Descrição dos Desenhos
[007] A figura 1 é um diagrama em bloco ilustrando uma configuração funcional de um codificador, de acordo com uma modalidade.
[008] A figura 2 ilustra um exemplo de divisão de bloco.
[009] A figura 3 é uma tabela indicando as funções de base de transformação de vários tipos de transformação.
[010] A figura 4A ilustra um exemplo de um formato de filtro utilizado em ALF (adaptive loop filter).
[011] A figura 4B ilustra outro exemplo de um formato de filtro utilizado em ALF.
[012] A figura 4C ilustra outro exemplo de um formato de filtro utilizado em ALF.
[013] A figura 5A ilustra 67 modos de intraprevisão utilizados em um exemplo de intraprevisão.
[014] A figura 5B é um fluxograma ilustrando um exemplo de um processo de correção de imagem de previsão realizado no OBMC (overlapped block motion compensation).
[015] A figura 5C é um diagrama conceitual ilustrando um exemplo de um processo de correção de imagem de previsão realizado no processamento OBMC.
[016] A figura 5D é um fluxograma ilustrando um exemplo de processamento FRUC (frame rate up conversion);
[017] A figura 6 ilustra um exemplo de combinação de padrão (combinação bilateral) entre dois blocos ao longo de uma trajetória de movimento.
[018] A figura 7 ilustra um exemplo de uma combinação de padrão (template matching) entre um gabarito na imagem atual e um bloco em uma imagem de referência.
[019] A figura 8 ilustra um modelo que assume o movimento linear uniforme.
[020] A figura 9A ilustra um exemplo de derivação de um vetor de movimento de cada sub-bloco, com base nos vetores de movimento dos blocos vizinhos.
[021] A figura 9B ilustra um exemplo de um processo para derivar um vetor de movimento no modo de mistura.
[022] A figura 9C é um diagrama conceitual ilustrando um exemplo de processamento DMVR (dynamic motion vector refreshing).
[023] A figura 9D ilustra um exemplo de um método de geração de imagem de previsão utilizando um processo de correção de luminescência realizado pelo processamento (local illumination compensation).
[024] A figura 10 é um diagrama em bloco ilustrando uma configuração funcional do decodificador, de acordo com uma modalidade.
[025] A figura 11 é um fluxograma ilustrando um fluxo de processo geral de divisão de um bloco de imagem em uma pluralidade de partições incluindo pelo menos uma primeira partição possuindo um formato não retangular (por exemplo, um triângulo) e uma segunda partição e realizando o processamento adicional, de acordo com uma modalidade.
[026] A figura 12 ilustra dois métodos ilustrativos de divisão de um bloco de imagem em uma primeira partição possuindo um formato não retangular (por exemplo, um triângulo) e uma segunda partição (também possuindo um formato não retangular nos exemplos ilustrados).
[027] A figura 13 ilustra um exemplo de um processo de suavização limítrofe envolvendo a ponderação dos primeiros valores dos pixels limítrofes prevista com base na primeira partição e segundos valores de pixels limítrofes previstos com base na segunda partição.
[028] A figura 14 ilustra três amostras adicionais de um processo de suavização de limite envolvendo a ponderação de primeiros valores de pixels limítrofes previstos com base na primeira partição e segundos valores de pixels limítrofes previstos com base na segunda partição.
[029] A figura 15 é uma tabela de parâmetros de amostra ("primeiros valores de índice") e conjuntos de informação respectivamente codificados pelos parâmetros.
[030] A figura 16 é uma tabela ilustrando a banalização de parâmetros (valores de índice).
[031] A figura 17 é um fluxograma ilustrando um processo de divisão de um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição.
[032] A figura 18 ilustra exemplos de divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição possuindo um formato não retangular, que é um triângulo nos exemplos ilustrados, e uma segunda partição.
[033] A figura 19 ilustra exemplos adicionais de divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular, que é um polígono com pelo menos cinco ângulos nos exemplos ilustrados, e uma segunda partição.
[034] A figura 20 é um fluxograma ilustrando um processo de suavização de limite envolvendo a ponderação dos primeiros valores de pixels limítrofes previstos com base na primeira partição e segundos valores de pixels limítrofes previstos com base na segunda partição.
[035] A figura 21A ilustra um exemplo de um processo de suavização de limite, no qual os pixels limítrofes, para os quais os primeiros valores são ponderados, são previstos com base na primeira partição e os segundos valores a serem ponderados são previstos com base na segunda partição.
[036] A figura 21B ilustra um exemplo de um processo de suavização de limite, no qual os pixels limítrofes, para os quais os primeiros valores a serem ponderados são previstos com base na primeira partição e os segundos valores a serem ponderados são previstos com base na segunda partição.
[037] A figura 21C ilustra um exemplo de um processo de suavização de limite, no qual os pixels limítrofes, para os quais os primeiros valores a serem ponderados são previstos com base na primeira partição e os segundos valores a serem ponderados, são previstos com base na segunda partição.
[038] A figura 21D ilustra um exemplo de um processo de suavização de limite, no qual os pixels limítrofes, para os quais os primeiros valores a serem ponderados são previstos com base na primeira partição e os segundos valores a serem ponderados são previstos com base na segunda partição.
[039] A figura 22 é um fluxograma ilustrando um método realizado no lado do codificador de divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição, com base em um parâmetro de partição indicativo da divisão, e escrever um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits na codificação por entropia.
[040] A figura 23 é um fluxograma ilustrando um método realizado no lado do decodificador de análise, de um ou mais parâmetros a partir de um fluxo de bits, que inclui um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição, que possui um formato não retangular, e uma segunda partição, e divisão do bloco de imagem na pluralidade de partições com base no parâmetro de partição, e decodificação da primeira partição e da segunda partição.
[041] A figura 24 é uma tabela de parâmetros de partição ilustrativos ("primeiros valores de índice") que indicam,
respectivamente, a divisão de um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, e configura a informação que pode ser codificada em conjunto pelos parâmetros de partição, respectivamente.
[042] A figura 25 é uma tabela de combinações de amostra de um primeiro parâmetro e um segundo parâmetro, um dos quais sendo um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição.
[043] A figura 26 ilustra uma configuração geral de um sistema de fornecimento de conteúdo para implementar um serviço de distribuição de conteúdo.
[044] A figura 27 ilustra um exemplo de uma estrutura de codificação na codificação escalonável.
[045] A figura 28 ilustra um exemplo de uma estrutura de codificação na codificação escalonável.
[046] A figura 29 ilustra um exemplo de uma tela de exibição de uma página da rede.
[047] A figura 30 ilustra um exemplo de uma tela de exibição de uma página da rede.
[048] A figura 31 ilustra um exemplo de um smartphone.
[049] A figura 32 é um diagrama em bloco ilustrando um exemplo de configuração de um smartphone. Descrição das Modalidades
[050] De acordo com um aspecto, um codificador de imagem é fornecido incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza: a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; a previsão de um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e a codificação da primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[051] De acordo com um aspecto adicional, a segunda partição possui um formato não retangular. De acordo com outro aspecto, o formato não retangular é um triângulo. De acordo com um aspecto adicional, o formato não retangular é selecionado a partir de um grupo que consiste de um triângulo um trapezoide, um polígono com pelo menos cinco lados e ângulos.
[052] De acordo com outro aspecto, a previsão inclui selecionar o primeiro vetor de movimento a partir de um primeiro conjunto de candidatos a vetor de movimento e selecionar o segundo vetor de movimento a partir de um segundo conjunto de candidatos a vetor de movimento. Por exemplo, o primeiro conjunto de candidatos a vetor de movimento pode incluir vetores de movimento de partições vizinhas à primeira partição, e o segundo conjunto de candidatos a vetor de movimento pode incluir vetores de movimento de partições vizinhas à segunda partição. As partições vizinhas à primeira partição e as partições vizinhas à segunda partição podem estar fora do bloco de imagem de onde a primeira partição e a segunda partição são divididas. As partições vizinhas podem ser uma ou ambas as partições espacialmente vizinhas e partições vizinhas temporárias. O primeiro conjunto de candidatos a vetor de movimento pode ser igual a ou diferente do segundo conjunto de candidatos a vetor de movimento.
[053] De acordo com outro aspecto, a previsão inclui selecionar um primeiro candidato a vetor de movimento a partir de um primeiro conjunto de candidatos a vetor de movimento e derivar o primeiro vetor de movimento pela adição de uma primeira diferença de vetor de movimento ao primeiro candidato a vetor de movimento, e selecionar um segundo candidato a vetor de movimento a partir de um segundo conjunto de candidatos a vetor de movimento e derivar o segundo vetor de movimento pela adição de uma segunda diferença de vetor de movimento ao segundo candidato a vetor de movimento.
[054] De acordo com outro aspecto, um codificador de imagem é fornecido, incluindo: um divisor, que, em operação, recebe e divide uma imagem original em blocos; um somador que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador que, em operação, realiza uma transformação nos resíduos enviados a partir do somador para enviar os coeficientes de transformação; um quantizador que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e um controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão, em operação, divide os blocos em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; prevê um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição, utilizando o segundo vetor de movimento.
[055] De acordo com outro aspecto, um método de codificação de imagem é fornecido, método esse que inclui geralmente três etapas: divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; previsão de um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codificação da primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[056] De acordo com outro aspecto, um decodificador de imagem é fornecido e inclui um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; a previsão de um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e a decodificação da primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[057] De acordo com um aspecto adicional, a segunda partição possui um formato não retangular. De acordo com outro aspecto, o formato não retangular é um triângulo. De acordo com um aspecto adicional, o formato não retangular é selecionado a partir de um grupo que consiste de um triângulo, um trapezoide e um polígono com pelo menos cinco lados e ângulos.
[058] De acordo com outro aspecto, um decodificador de imagem é fornecido e inclui um decodificador por entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter coeficientes de transformação quantizados; um quantizador inverso e transformador que, em operação, quantiza de forma inversa os coeficientes de transformação quantizados para obter coeficientes de transformação e a transformação inversa dos coeficientes de transformação para obter resíduos; um somador que, em operação, adiciona os resíduos enviados do quantizador inverso e do transformador e previsões enviadas de um controlador de previsão para reconstruir os blocos; e o controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O controlador de previsão, em operação, divide um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição; prevê um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e decodifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[059] De acordo com outro aspecto, um método de decodificação de imagem é fornecido, incluindo geralmente três etapas: dividir um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; prever um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e decodificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[060] De acordo com um aspecto, um codificador de imagem é fornecido e inclui um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem. A operação de suavização de limite inclui a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informação da segunda partição; ponderando os primeiros valores e os segundos valores; e codificando a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[061] De acordo com um aspecto adicional, o formato não retangular é um triângulo. De acordo com outro aspecto, o formato não retangular é selecionado a partir de um grupo que consiste de um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos. De acordo com outro aspecto, a segunda partição possui um formato não retangular.
[062] De acordo com outro aspecto, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de interprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada. O processo de interprevisão pode prever os primeiros valores de pixels da primeira partição, incluindo o conjunto de pixels e pode prever os segundos valores de apenas o conjunto de pixels da primeira partição.
[063] De acordo com outro aspecto, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de intraprevisão que prevê os primeiros valores e os segundos valores, com base em uma partição de referência codificada em uma imagem atual.
[064] De acordo com outro aspecto, um método de previsão utilizando na primeira previsão é diferente de um método de previsão utilizado na segunda previsão.
[065] De acordo com um aspecto adicional, vários conjuntos de pixels de cada fileira ou cada coluna, para o qual os primeiros valores e segundos valores são previstos, é um inteiro. Por exemplo, quando o número de conjuntos de pixels, de cada fileira ou cada coluna for igual a quatro, pesos de 1/8, ¼, ¾ e 7/8 podem ser aplicados aos primeiros valores dos quatro pixels no conjunto, respectivamente, e pesos de 7/8, ¾, ¼ e 1/8 podem ser aplicados aos segundos valores dos quatro pixels no conjunto, respectivamente. Como outro exemplo, quando o número do conjunto de pixels de cada fileira ou cada coluna for igual a dois, pesos de 1/3 e 2/3 podem ser aplicados aos primeiros valores dos dois pixels no conjunto, respectivamente, e os pesos de 2/3 e 1/3 podem ser aplicados aos segundos valores de dois pixels no conjunto, respectivamente.
[066] De acordo com outro aspecto, os pesos podem ser valores inteiros ou podem ser valores fracionados.
[067] De acordo com outro aspecto, um codificador de imagem é fornecido e inclui um divisor que, em operação, recebe e divide uma imagem original em blocos; um somador que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão, e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador que, em operação, realiza uma transformação nos resíduos enviados a partir do somador para enviar coeficientes de transformação; um quantizador que, em operação, quantiza os coeficientes de transformação para gerar coeficientes de transformação quantizados; um codificador por entropia que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e o controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual, com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem. A operação de suavização de limite inclui a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo de um limite, utilizando a informação da primeira partição; segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; ponderação dos primeiros valores e dos segundos valores; e codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[068] De acordo com outro aspecto, um método de codificação de imagem é fornecido para realizar uma operação de suavização de limite ao longo de um limite entre uma primeira partição que possui um formato não retangular e uma segunda partição, que são divididas a partir de um bloco de imagem. O método inclui geralmente quatro etapas: primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição; segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informação da segunda partição; ponderação dos primeiros valores e dos segundos valores; e codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[069] De acordo com um aspecto adicional, um decodificador de imagem é fornecido e inclui um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição que possui um formato não retangular e uma segunda partição, que são divididas a partir de um bloco de imagem. A operação de suavização de limite inclui a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição; segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; ponderando os primeiros valores e segundos valores; e decodificando a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[070] De acordo com outro aspecto, o formato não retangular é um triângulo. De acordo com um quarto aspecto, o formato não retangular é selecionado a partir de um grupo que consiste de um triângulo, um trapezoide e um polígono com pelo menos cinco lados e ângulos. De acordo com outro aspecto, a segunda partição possui um formato não retangular.
[071] De acordo com outro aspecto, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de interprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada. O processo de interprevisão pode prever os primeiros valores de pixels da primeira partição, incluindo o conjunto de pixels, e pode prever os segundos valores de apenas o conjunto de pixels da primeira partição.
[072] De acordo com outro aspecto, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de intraprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência codificada em uma imagem atual.
[073] De acordo com outro aspecto, um decodificador de imagem é fornecido incluindo um decodificador por entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter coeficientes de transformação quantizados; um quantizador inverso e transformado que, em operação, quantiza de forma inversa os coeficientes de transformação quantizados para obter os coeficientes de transformação e a transformação inversa dos coeficientes de transformação para obter os coeficientes de transformação e a transformação inversa dos coeficientes de transformação para obter resíduos; um somador que, em operação, soma os resíduos enviados a partir do quantizador inverso e transformador e previsões enviadas a partir de um controlador de previsão para reconstruir blocos; e o controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O controlador de previsão, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular e uma segunda partição, que são divididas a partir de um bloco de imagem. A operação de suavização de limite inclui a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição; a segunda previsão dos segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informação da segunda partição; ponderando os primeiros valores e os segundos valores; e decodificando a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[074] De acordo com outro aspecto, um método de decodificação de imagem é fornecido para realizar uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem. O método inclui geralmente quatro etapas: a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição; segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; ponderação dos primeiros valores e segundos valores; e decodificação da primeira partição utilizando os primeiros valores ponderados e segundos valores ponderados.
[075] De acordo com um aspecto, um codificador de imagem é fornecido incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de sintaxe de partição incluindo a divisão de um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição, com base em um parâmetro de partição indicativo da divisão; a codificação da primeira partição e da segunda partição; e a escrita de um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits.
[076] De acordo com um aspecto adicional, o parâmetro de partição indica que a primeira partição possui um formato triangular.
[077] De acordo com outro aspecto, o parâmetro de partição indica que a segunda partição possui um formato não retangular.
[078] De acordo com outro aspecto, o parâmetro de partição indica que o formato não retangular é um dentre um triângulo, um trapezoide e um polígono com pelo menos cinco lados e ângulos.
[079] De acordo com outro aspecto, o parâmetro de partição codifica em conjunto uma direção de divisão aplicada para dividir o bloco de imagem em uma pluralidade de partições. Por exemplo, a direção de divisão pode incluir: de um canto superior esquerdo do bloco de imagem até um canto inferior direito do mesmo, e de um canto superior direito do bloco de imagem para um canto inferior esquerdo do mesmo. O parâmetro de partição pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira partição.
[080] De acordo com outro aspecto, os um ou mais parâmetros, além do parâmetro de partição, codificam uma direção de divisão aplicada à divisão do bloco de imagem na pluralidade de partições. O parâmetro que codifica a direção de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira partição.
[081] De acordo com outro aspecto, o parâmetro de partição pode decodificar em conjunto pelo menos um vetor de movimento da primeira partição. O parâmetro de partição pode codificar em conjunto um segundo vetor de movimento da segunda partição.
[082] De acordo com outro aspecto, os um ou mais parâmetros, além do parâmetro de partição, podem codificar pelo menos um primeiro vetor de movimento da primeira partição.
[083] De acordo com outro aspecto, os um ou mais parâmetros são binarizados, de acordo com um esquema de binarização que é selecionado dependendo de um valor de pelo menos um dos um ou mais parâmetros.
[084] De acordo com um aspecto adicional, um codificador de imagem é fornecido e inclui um divisor que, em operação, recebe e divide uma imagem original em blocos; um somador que, em operação, recebe os blocos do divisor e as previsões de um controlador de previsão, e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador que, em operação, realiza uma transformação nos resíduos enviados do somador para enviar os coeficientes de transformação; um quantizador que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e o controlador de previsão acoplado a um interprevisor, um intraprevisor e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão, em operação, divide um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão, e codifica a primeira partição e a segunda partição. O codificador por entropia, em operação, escreve um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits.
[085] De acordo com outro aspecto, um método de codificação de imagem, incluindo uma operação de sintaxe de partição, é fornecido. O método inclui geralmente três etapas: dividir um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição com base em um parâmetro de partição, indicativa da divisão; codificar a primeira partição e a segunda partição; e escrever um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits.
[086] De acordo com outro aspecto, um decodificador de imagem é fornecido incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de sintaxe de partição incluindo analisar um ou mais parâmetros a partir de um fluxo de bits, onde os um ou mais parâmetros incluem um parâmetro de partição que indica a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; dividir o bloco de imagem na pluralidade de partições com base no parâmetro de partição; e decodificar a primeira partição e a segunda partição.
[087] De acordo com um aspecto adicional, o parâmetro de partição indica que a primeira partição possui um formato triangular.
[088] De acordo com outro aspecto, o parâmetro de partição indica que a segunda partição possui um formato não retangular.
[089] De acordo com outro aspecto, o parâmetro de partição indica que o formato não retangular é um triângulo, um trapezoide e um polígono com pelo menos cinco lados e ângulos.
[090] De acordo com outro aspecto, o parâmetro de partição codifica em conjunto uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de partições. Por exemplo, a direção de divisão inclui, de um canto superior esquerdo do bloco de imagem para um canto inferior direito do mesmo, e de um canto superior direito do bloco de imagem para um canto inferior esquerdo do mesmo. O parâmetro de partição pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira partição.
[091] De acordo com outro aspecto, os um ou mais parâmetros, além do parâmetro de partição, codificam uma direção de divisão aplicada à divisão do bloco de imagem na pluralidade de partições. O parâmetro codificando a direção de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira partição.
[092] De acordo com outro aspecto, o parâmetro de partição pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira partição. O parâmetro de partição pode codificar em conjunto um segundo vetor de movimento da segunda partição.
[093] De acordo com outro aspecto, os um ou mais parâmetros, além do parâmetro de partição, podem codificar pelo menos um primeiro vetor de movimento da primeira partição.
[094] De acordo com outro aspecto, os um ou mais parâmetros são binarizados de acordo com um esquema de binarização que é selecionado dependendo de um valor de pelo menos um ou mais parâmetros.
[095] De acordo com um aspecto adicional, um decodificador de imagem é fornecido incluindo um decodificador por entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter coeficientes de transformação quantizados; um quantizador inverso e transformador que, em operação, quantiza de forma inversa os coeficientes de transformação quantizados para obter coeficientes de transformação e transforma de forma inversa os coeficientes de transformação para obter resíduos; um somador que, em operação, adiciona os resíduos enviados a partir do quantizador inverso e o transformador e previsões enviados a partir de um controlador de previsão para reconstruir os blocos; e o controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência, em uma imagem de referência decodificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O decodificador por entropia, em operação, analisa um ou mais parâmetros a partir de um fluxo de bits, onde os um ou mais parâmetros incluem um parâmetro de partição que indica a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; divide o bloco de imagem na pluralidade de partições com base no parâmetro de partição; e decodifica a primeira partição e a segunda partição.
[096] De acordo com outro aspecto, um método de decodificação de imagem, incluindo uma operação de sintaxe de partição, é fornecido. O método inclui geralmente três etapas: análise de um ou mais parâmetros a partir de um fluxo de bits, onde os um ou mais parâmetros incluem um parâmetro de partição que indica a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição; dividindo o bloco de imagem na pluralidade de partições com base no parâmetro de partição; e a decodificação da primeira partição e da segunda partição.
[097] Nos desenhos, números de referência idênticos identificam elementos similares. Os tamanhos e posições relativos dos elementos nos desenhos não estão necessariamente em escala.
[098] Doravante, as modalidades serão descritas com referência aos desenhos. Nota-se que as modalidades descritas abaixo ilustram, cada uma, um exemplo geral ou específico. Os valores numéricos, formatos, materiais, componentes, a disposição e conexão dos componentes, etapas, a relação e ordem das etapas, etc., indicados nas modalidades a seguir, são meramente ilustrativos e não devem limitar o escopo das concretizações. Portanto, esses componentes descritos nas modalidades a seguir, mas não mencionados em qualquer uma das concretizações que definem os conceitos inventivos mais amplos, podem ser compreendidos como componentes opcionais.
[099] As modalidades de um codificador e de um decodificador serão descritas abaixo. As modalidades são exemplos de um codificador e um decodificador aos quais os processos e/ou configurações apresentados na descrição dos aspectos da presente descrição são aplicáveis. Os processos e/ou configurações também podem ser implementados em um codificador e um decodificador, diferentes dos de acordo com as modalidades. Por exemplo, com referência aos processos e/ou configurações, como aplicados às modalidades, qualquer um dos seguintes pode ser implementado:
[100] (1) Qualquer um dos componentes do codificador ou do decodificador, de acordo com as modalidades apresentadas na descrição dos aspectos da presente descrição, pode ser substituído ou combinado com outro componente apresentado em outro local na descrição dos aspectos da presente descrição.
[101] (2) No codificador ou no decodificador, de acordo com as modalidades, mudanças discricionárias podem ser realizadas às funções ou aos processos realizados por um ou mais componentes do codificador ou decodificador, tal como adição, substituição, remoção, etc. das funções ou processos. Por exemplo, qualquer função ou processo pode ser substituído ou combinado com outra função ou processo apresentado em outro local na descrição dos aspectos da presente descrição.
[102] (3) No método implementado pelo codificador ou pelo decodificador, de acordo com as modalidades, mudanças discricionárias podem ser realizadas, tal como adição, substituição e remoção de um ou mais dos processos incluídos no método. Por exemplo, qualquer processo no método pode ser substituído ou combinado com outro processo apresentado em outro local na descrição dos aspectos da presente descrição.
[103] (4) Um ou mais componentes incluídos no codificador ou decodificador, de acordo com as modalidades, podem ser combinados com um componente apresentado em outro local na descrição dos aspectos da presente descrição, podem ser combinados com um componente incluindo uma ou mais funções apresentadas em outro lugar na descrição dos aspectos da presente descrição, e podem ser combinados com um componente que implemente um ou mais processos implementados por um componente apresentado na descrição dos aspectos da presente descrição.
[104] (5) Um componente incluindo uma ou mais funções do codificador ou decodificador, de acordo com as modalidades, ou um componente que implementa um ou mais processos do codificador ou do decodificador, de acordo com as modalidades, pode ser combinado ou substituído por um componente apresentado em outro local na descrição dos aspectos da presente descrição, com um componente incluindo uma ou mais funções apresentadas em qualquer lugar na descrição dos aspectos da presente descrição, ou com um componente que implementa um ou mais processos apresentados em outro lugar na descrição dos aspectos da presente descrição.
[105] (6) No método implementado pelo codificador ou decodificador, de acordo com as modalidades, qualquer um dos processos incluídos no método pode ser substituído ou combinado com um processo apresentado em outro lugar na descrição dos aspectos da presente descrição ou com qualquer processo correspondente ou equivalente.
[106] (7) Um ou mais processos incluídos no método implementado pelo codificador ou decodificador, de acordo com as modalidades, podem ser combinados com um processo apresentado em qualquer outro lugar na descrição dos aspectos da presente descrição.
[107] (8) A implementação dos processos e/ou configurações apresentada na descrição dos aspectos da presente descrição não está limitada ao codificador ou ao decodificador, de acordo com as modalidades. Por exemplo, os processos e/ou configurações podem ser implementados em um dispositivo utilizado para uma finalidade diferente de mover o codificador de imagem ou o decodificador de imagem em movimento descritos nas modalidades. Codificador
[108] Primeiro, o codificador, de acordo com uma modalidade, será descrito. A figura 1 é um diagrama em bloco ilustrando uma configuração funcional do codificador 100, de acordo com a modalidade. O codificador 100 é um codificador de imagem em movimento que codifica uma imagem em movimento, bloco por bloco.
[109] Como ilustrado na figura 1, o codificador 100 é um dispositivo que codifica uma imagem, bloco por bloco, e inclui um divisor 102, um subtrator 104, um transformador 106, um quantizador 108, um codificador por entropia 110, um quantizador inverso 112, um transformador inverso 114, um somador 116, uma memória em bloco 118, um filtro de circuito 120, uma memória de quadro 122, um intraprevisor 124, um interprevisor 126 e um controlador de previsão
128.
[110] O codificador 100 é realizado, por exemplo, como um processador genérico e memória. Nesse caso, quando um programa de software, armazenado na memória, é executado pelo processador, o processador funciona como um divisor 102, um subtrator 104, um transformador 106, um quantizador 108, um codificador por entropia 110, um quantizador inverso 112, um transformador inverso 114, um somador 116, um filtro de circuito 120, um intraprevisor 124, um interprevisor 126, e um controlador de previsão 128. Alternativamente, o codificador 100 pode ser realizado como um ou mais circuitos eletrônicos dedicados correspondentes ao divisor 102, subtrator 104, transformador 106, quantizador 108, codificador por entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro de circuito 120, intraprevisor 124, interprevisor 126 e controlador de previsão 128.
[111] Doravante, cada componente incluído no codificador 100 será descrito. Divisor
[112] O divisor 102 divide cada imagem incluída em uma imagem em movimento registrada em blocos, e envia cada bloco para o subtrator
104. Por exemplo, o divisor 102 primeiro divide uma imagem em blocos de um tamanho fixo (por exemplo, 128 x 128). O bloco de tamanho fixo também pode ser referido como unidade de árvore de codificação (CTU). O divisor 102, então, divide cada bloco de tamanho fixo em blocos de tamanhos variáveis (por exemplo, 64 x 64 ou menor) com base, por exemplo, na divisão de quadtree recursiva e/ou bloco de árvore binária. O bloco de tamanho variável também pode ser referido como uma unidade de codificação (CU), uma unidade de previsão (PU), ou uma unidade de transformação (TU). Em várias implementações, pode não haver necessidade de se diferenciar entre CU, PU e TU; todos os alguns dos blocos em uma imagem a ser processada por CU, PU ou TU.
[113] A figura 2 ilustra um exemplo de divisão de bloco, de acordo com uma modalidade. Na figura 2, as linhas sólidas representam limites de bloco dos blocos divididos por divisão de bloco quadtree, e as linhas tracejadas representam limites de bloco dos blocos divididos pela divisão de bloco de árvore binária.
[114] Aqui, o bloco 10 é um bloco quadrado de 128 x 128 pixels (128 x 128 block). Esse bloco de 128 x 128 10 é primeiramente dividido em quatro blocos quadrados de 64 x 64 (divisão de bloco quadtree).
[115] O bloco superior esquerdo de 64 x 64 é adicionalmente dividido verticalmente em dois blocos retangulares de 32 x 64, e o bloco esquerdo de 32 x 64 é adicionalmente dividido verticalmente em dois blocos retangulares de 16 x 64 (divisão de bloco de árvore binária). Como resultado disso, o bloco superior esquerdo de 64 x 64 é dividido em dois blocos de 16 x 64 11 e 12 e um bloco de 32 x 64 13.
[116] O bloco superior direito de 64 x 64 é dividido horizontalmente em dois blocos retangulares de 64 x 32 14 e 15 (divisão de bloco de árvore binário).
[117] O bloco inferior esquerdo de 64 x 64 é primeiramente dividido em quatro blocos quadrados de 32 x 32 (divisão de bloco quadtree). O bloco superior esquerdo e o bloco inferior direito, entre os quatro blocos de 32 x 32 são adicionalmente divididos. O bloco superior esquerdo 32 x 32 é verticalmente dividido em dois blocos retangulares de 16 x 32 e o bloco direito de 16 x 32 é adicionalmente dividido horizontalmente em dois blocos 16 x 16 (divisão de bloco de árvore binária). O bloco inferior direito 32 x 32 é horizontalmente dividido em dois blocos de 32 x 16 (divisão de bloco de árvore binária). Como resultado disso, o bloco inferior esquerdo de 64 x 64 é dividido em um bloco de 16 x 32 16, dois blocos de 16 x 16 17 e 18, dois blocos de 32 x 32 19 e 20, e dois blocos de 32 x 16 21 e 22.
[118] O bloco inferior direito de 64 x 64 não é dividido.
[119] Como descrito acima, na figura 2, o bloco 10 é dividido em 13 blocos de tamanho variável 11 a 23 com base na divisão de bloco de árvore binária e quadtree recursiva. Esse tipo de divisão também é referido como a divisão de quadtree mais árvore binária (QTBT).
[120] Enquanto na figura 2 um bloco é dividido em quatro ou dois blocos (divisão de bloco quadtree ou de árvore binária), a divisão não está limitada a esses exemplos. Por exemplo, um bloco pode ser dividido em três blocos (divisão de bloco ternário). A divisão que inclui tal divisão de bloco ternário também é referida como uma divisão de árvore de múltiplos tipos (MBT). Subtrator
[121] O subtrator 104 subtrai um sinal de previsão (amostra de previsão, registrada a partir do controlador de previsão 128, a ser descrita abaixo) a partir de um sinal original (amostra original) por bloco dividido por e registrado a partir do divisor 102. Em outras palavras, o subtrator 104 calcula erros de previsão (também referidos como "resíduos") de um bloco a ser codificado (doravante referido como "bloco atual"). O subtrator 104, então, envia os erros de previsão calculados (resíduos) para o transformador 106.
[122] O sinal original é um sinal registrado no codificador 100, e é um sinal representando uma imagem para cada imagem incluída em uma imagem em movimento (por exemplo, um sinal de luminescência e dois sinais de crominância). Doravante, um sinal que representa uma imagem também é referido como uma amostra. Transformador
[123] O transformador 106 transforma os erros de previsão de domínio espacial em coeficientes de transformação de domínio de frequência, e envia os coeficientes de transformação para o quantizador
108. Mais especificamente, o transformador 106 aplica, por exemplo, uma transformação de cosseno discreto predefinida (DCT) ou transformação de seno discreto (DST) em erros de previsão de domínio especial.
[124] Nota-se que o transformador 106 pode selecionar, de forma adaptativa, um tipo de transformação dentre uma pluralidade de tipos de transformação, e erros de previsão de transformação em coeficientes de transformação pela utilização de uma função de base de transformação correspondendo ao tipo de transformação selecionado. Esse tipo de transformação também é referido como uma transformação de múltiplos núcleos explícita (EMT) ou transformação múltipla adaptativa (AMT).
[125] Os tipos de transformação incluem, por exemplo, DCT-II, DCT-V, DCT-VIII, DST-I e DST-VII. A figura 3 é um gráfico indicando as funções de base de transformação para cada tipo de transformação. Na figura 3, N indica o número de pixels de entrada. Por exemplo, a seleção de um tipo de transformação, dentre a pluralidade de tipos de transformação, pode depender do tipo de previsão (intraprevisão e interprevisão), além do modo de intraprevisão.
[126] A informação que indica se aplica EMT ou AMT (referida como, por exemplo, um indicador EMT ou um indicador AMT) e a informação que indica o tipo de transformação selecionado é tipicamente sinalizada no nível de CU. Nota-se que a sinalização de tal informação não precisa ser realizada no nível de CU e pode ser realizada em outro nível (por exemplo, no nível de sequência de bit, nível de imagem, nível de fatia, nível de tile, ou nível de CTU).
[127] Ademais, o transformador 106 pode aplicar uma transformação secundária aos coeficientes de transformação (resultado da transformação). Tal transformação secundária também é referida como a transformação secundária adaptativa (AST) ou transformação secundária não separável (NSST). Por exemplo, o transformador 106 aplica uma transformação secundária para cada sub-bloco (por exemplo, cada sub-bloco de 4 x 4) incluída no bloco dos coeficientes de transformação correspondente aos erros de intraprevisão. A informação que indica se aplica NSST, e informação relacionada à matriz de transformação utilizada em NSST, também é tipicamente sinalizada no nível de CU. Nota-se que a sinalização de tal informação não precisa ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de tile, ou nível de CTU).
[128] Uma transformação separada ou uma transformação não separável pode ser aplicada ao transformador 106. Uma transformação separada é um método no qual uma transformação é realizada várias vezes pela realização em separado de uma transformação para cada direção, de acordo com o número de dimensões registrado. Uma transformação não separável é um método para realizar uma transformação coletiva na qual duas ou mais dimensões em um registro multidimensional são consideradas coletivamente como uma dimensão singular.
[129] Em um exemplo de uma transformação não separável, quando a entrada é um bloco de 4 x 4, o bloco de 4 x 4 é considerada como um conjunto singular incluindo 16 componentes, e a transformação aplica a uma matriz de transformação de 16 x 16 ao conjunto.
[130] Em um exemplo adicional de uma transformação não separável, depois que o bloco de 4 x 4 registrado é considerado como um único conjunto que inclui 16 componentes, uma transformação realiza uma pluralidade de rotações Givens (por exemplo, Hypercube- Givens Transform) e pode ser aplicada ao conjunto. Quantizador
[131] O quantizador 108 quantiza os coeficientes de transformação enviados a partir do transformador 106. Mais especificamente, o quantizador 108 digitaliza, em uma ordem de digitalização predeterminada, os coeficientes de transformação do bloco atual, e quantiza os coeficientes de transformação digitalizados com base nos parâmetros de quantização (QP) correspondendo aos coeficientes de transformação. O quantizador 108, então, envia os coeficientes de transformação quantizados (doravante referidos como coeficientes quantizados) do bloco atual para o codificador por entropia 110 e o quantizador inverso 112.
[132] Uma ordem de digitalização predeterminada é uma ordem de coeficientes de quantização/transformação de quantização inversa. Por exemplo, uma ordem de digitalização predeterminada é definida como a ordem ascendente de frequência (de frequência baixa para alta) ou ordem descendente de frequência (de frequência alta para baixa).
[133] Um parâmetro de quantização (QP) é um parâmetro que define um tamanho de etapa de quantização (largura de quantização). Por exemplo, se o valor do parâmetro de quantização aumentar, o tamanho da etapa de quantização também aumenta. Em outras palavras, se o valor do parâmetro de quantização aumentar, o erro de quantização aumenta. Codificação por Entropia
[134] O codificador por entropia 110 gera um sinal codificado (fluxo de bits codificado) com base nos coeficientes quantizados, que são registrados a partir do quantizador 108. Mais especificamente, por exemplo, o codificador por entropia 110 binariza os coeficientes quantizados e codifica de forma aritmética o sinal binário, para enviar um fluxo de bits comprimido ou sequência. Quantizador Inverso
[135] O quantizador inverso 112 quantiza de forma inversa os coeficientes quantizados, que são registrados a partir do quantizador
108. Mais especificamente, o quantizador inverso 112 quantiza de forma inversa, em uma ordem de digitalização predeterminada, os coeficientes quantizados do bloco atual. O quantizador inverso 112, então, envia os coeficientes de transformação quantizados de forma inversa do bloco atual para o transformador inverso 114. Transformador Inverso
[136] O transformador inverso 114 restaura os erros de previsão (residuais) pela transformação inversa dos coeficientes de transformação, que são registrados a partir do quantizador inverso 112. Mais especificamente, o transformador inverso 114 restaura os erros de previsão do bloco atual pela aplicação de uma transformação inversa correspondente à transformação aplicada pelo transformador 106 nos coeficientes de transformação. O transformador inverso 114, então, envia os erros de previsão restaurados para o somador 116.
[137] Nota-se que, visto que, tipicamente, a informação é perdida em quantização, os erros de previsão restaurados não combinam com os erros de previsão calculados pelo subtrator 104. Em outras palavras, os erros de previsão restaurados incluem tipicamente erros de quantização. Somador
[138] O somador 116 reconstrói o bloco atual pela soma dos erros de previsão, que são registrados a partir do transformador inverso 114, e amostras de previsão, que são registradas a partir do controlador de previsão 128. O somador 116, então, envia, o bloco reconstruído para a memória de bloco 118 e filtro de circuito 120. Um bloco reconstruído também é referido como um bloco decodificado local. Memória de Bloco
[139] A memória de bloco 118 é o armazenamento para armazenar blocos em uma imagem a ser codificada (referida como uma "imagem atual") para referência na intraprevisão, por exemplo. Mais especificamente, a memória de bloco 118 armazena os blocos reconstruídos enviados a partir do somador 116. Filtro de Circuito
[140] O filtro de circuito 120 aplica um filtro de circuito a blocos reconstruídos pelo somador 116, e envia os blocos reconstruídos filtrados à memória de quadro 122. Um filtro de circuito é um filtro utilizado em um circuito de codificação (filtro em circuito) e inclui, por exemplo, um filtro de desbloqueio (DF, um desvio adaptativo de amostra (SAO) e um filtro de circuito adaptativo (ALF).
[141] Em ALF, pelo menos um filtro de erro quadrado para remover artefatos de compressão é aplicado. Por exemplo, um filtro dentre uma pluralidade de filtros é selecionado para cada sub-bloco de 2 x 2 no bloco atual, com base na direção e na atividade de gradientes locais, e é aplicado.
[142] Mais especificamente, primeiro, cada sub-bloco (por exemplo, cada sub-bloco de 2 x 2) é categorizado em uma dentre uma pluralidade de classes (por exemplo, 15 ou 25 classes). A classificação do sub-bloco é baseada na direcionalidade e atividade do gradiente. Por exemplo, o índice de classificação C é derivado com base na direcionalidade de gradiente D (por exemplo, de 0 a 2 ou de 0 a 4) e atividade de gradiente A (por exemplo, 0 a 4) (por exemplo, C = 5D + A). Então, com base no índice de classificação C, cada sub-bloco é categorizado em uma dentre uma pluralidade de classes.
[143] Por exemplo, a direcionalidade de gradiente D é calculada pela comparação de ingredientes de uma pluralidade de direções (por exemplo, as direções horizontal, vertical e duas direções diagonais). Adicionalmente, por exemplo, a atividade de gradiente A é calculada pela soma de gradientes de uma pluralidade de direções e a quantização da soma.
[144] O filtro a ser utilizado para cada sub-bloco é determinado dentre a pluralidade de filtros com base no resultado de tal categorização.
[145] O formato de filtro a ser utilizado em ALF é, por exemplo, um formato de filtro simétrico circular. As figuras 4A, 4B e 4C ilustram exemplos de formatos de filtro utilizados em ALF. A figura 4A ilustra um filtro de formato de diamante de 5 x 5, a figura 4B ilustra um filtro em formato de diamante de 7 x 7, e a figura 4C ilustra um filtro em formato de diamante de 9 x 9. A informação que indica o formato de filtro é tipicamente sinalizada no nível de imagem. A informação que indica o formato de filtro é tipicamente sinalizada no nível de imagem. Nota-se que a sinalização da informação que indica o formato do filtro não precisa ser realizada no nível de imagem, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de tile, nível de CTU ou nível de CU).
[146] Ativar ou desativar ALF pode ser determinado no nível de imagem ou nível CU. Por exemplo, para luminescência, a decisão de se aplicar ALF ou não pode ser tomada no nível de CU e, para crominância, a decisão de se aplicar ALF ou não pode ser tomada no nível de imagem. A informação que indica se ALF está ativado ou desativado é tipicamente sinalizada no nível de imagem ou nível de CU. Nota-se que a sinalização da informação, que indica se ALF está ativado ou desativado, não precisa ser realizada no nível de imagem ou nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de tile ou nível CTU).
[147] Os coeficientes apresentados para a pluralidade de filtros selecionáveis (por exemplo, 15 ou 25 filtros) são tipicamente sinalizados no nível de imagem. Nota-se que a sinalização do conjunto de coeficientes não precisa ser realizada no nível de imagem, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de tile, nível de CTU, nível de CU, ou nível de sub-bloco). Memória de Quadro
[148] A memória de quadro 122 é o armazenador para armazenar imagens de referência utilizadas na interprevisão, por exemplo, e também é referida como um armazenador de quadro. Mais especificamente, a memória de quadro 122 armazena os blocos reconstruídos filtrados pelo filtro de circuito 120. Intraprevisor
[149] O intraprevisor 124 gera um sinal de previsão (sinal de intraprevisão) pela intraprevisão do bloco atual com referência a um bloco ou blocos que estão na imagem atual como armazenados na memória de bloco 118 (também referida como previsão intraquadro). Mais especificamente, o intraprevisor 124 gera um sinal de intraprevisão pela intraprevisão com referência às amostras (por exemplo, valores de luminescência e/ou crominância) de um bloco ou blocos vizinhos do bloco atual, e, então, envia o sinal de intraprevisão para o controlador de previsão 128.
[150] Por exemplo, o intraprevisor 124 realiza a intraprevisão pela utilização de um modo dentre uma pluralidade de modos de intraprevisão predefinidos. Os modos de intraprevisão incluem tipicamente um ou mais modos de previsão não direcionais e uma pluralidade de modos de previsão direcional.
[151] Os um ou mais modos de previsão não direcional incluem, por exemplo, um modo de previsão plana e modo de previsão DC definidos no padrão H.265/HEVC.
[152] A pluralidade de modos de previsão direcional inclui, por exemplo, os 33 modos de previsão direcional definidos no padrão H.265/HEVC. Nota-se que a pluralidade de modos de previsão direcional pode incluir adicionalmente 32 modos de previsão direcional em adição aos 33 modos de previsão direcional (para um total de 65 modos de previsão direcional).
[153] A figura 5A ilustra um total de 67 modos de intraprevisão utilizados na intraprevisão (dois modos de previsão não direcional e 65 modos de previsão direcional). As setas sólidas representam 33 direções definidas no padrão H.265/HEVC, e as setas tracejadas representam as 32 direções adicionais. (Os dois modos de previsão "não direcional" não são ilustrados na figura 5A).
[154] Em várias implementações, um bloco de luminescência pode ser referido na intraprevisão de bloco de crominância. Isso é, um componente de crominância do bloco atual pode ser previsto com base em um componente de luminescência do bloco atual. Tal intraprevisão também é referida como uma previsão de modelo linear de componente cruzado (CCLM). O modo de intraprevisão de bloco de crominância que faz referência a um bloco de luminescência (referido como, por exemplo, o modo CCLM) pode ser adicionado como um dos modos de intraprevisão de bloco de crominância.
[155] O intraprevisor 124 pode corrigir valores de pixel pós intraprevisão com base nos gradientes de pixel de referência horizontal/vertical. A intraprevisão, acompanhada desse tipo de correção também é referida como uma combinação de intraprevisão dependente de posição (PDPC). A informação que indica se aplica PDPC ou não (referido como, por exemplo, um indicador PDPC) é tipicamente sinalizada no nível de CU. Nota-se que a sinalização dessa informação não precisa ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de tile ou nível de CTU). Interprevisor
[156] O interprevisor 126 gera um sinal de previsão (sinal de interprevisão) pela interprevisão do bloco atual com referência a um bloco ou blocos em uma imagem de referência, que é diferente da imagem de referência e é armazenado na memória de quadro 122 (também referida como previsão interquadro). A interprevisão é realizada por bloco atual ou por sub-bloco atual (por exemplo, por bloco de 4 x 4) no bloco atual. Por exemplo, o interprevisor 126 realiza a estimativa de movimento em uma imagem de referência para o bloco atual ou sub-bloco atual, para encontrar um bloco ou sub-bloco de referência na imagem de referência que melhor combina com o bloco ou sub-bloco atual, e para obter informação de movimento (por exemplo, um vetor de movimento) que compense (ou preveja) o movimento ou mudança do bloco ou sub-bloco de referência para o bloco ou sub-bloco atual. O interprevisor 126, então, realiza a compensação de movimento (ou previsão de movimento) com base na informação de movimento, e gera um sinal de interprevisão do bloco ou sub-bloco atual com base na informação de movimento. O interprevisor 126, então, envia o sinal de interprevisão gerado para o controlador de previsão 128.
[157] A informação de movimento utilizada na compensação de movimento pode ser sinalizada de várias formas como o sinal de interprevisão. Por exemplo, um vetor de movimento pode ser sinalizado. Como outro exemplo, uma diferença entre um vetor de movimento e um previsor de vetor de movimento pode ser sinalizada.
[158] Nota-se que o sinal de interprevisão pode ser gerado utilizando-se a informação de movimento para um bloco vizinho em adição à informação de movimento para o bloco atual, obtida a partir da estimativa de movimento. Mais especificamente, o sinal de interprevisão pode ser gerado por sub-bloco no bloco atual, pelo cálculo de uma soma ponderada de um sinal de previsão com base na informação de movimento obtida a partir da estimativa de movimento (na imagem de referência) e um sinal de previsão, com base na informação de movimento de um bloco vizinho (na imagem atual). Tal interprevisão (compensação de movimento) também é referida como uma compensação de movimento de bloco sobreposto (OBMC).
[159] No modo OBMC, a informação que indica o tamanho do sub- bloco para OBMC (referido como, por exemplo, o tamanho de bloco OBMC) pode ser sinalizada no nível de sequência. Adicionalmente, a informação que indica se aplica o modo OBMC ou não (referido como, por exemplo, um indicador OBMC) pode ser sinalizada no nível de CU. Nota-se que a sinalização de tal informação não precisa ser realizada no nível de sequência e no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de imagem, nível de fatia, nível de tile, nível de CTU ou nível de sub-bloco).
[160] Doravante, o modo OBMC será descrito em maiores detalhes. A figura 5B é um fluxograma e a figura 5C é um diagrama conceitual ilustrando um processo de correção de imagem de previsão realizado pelo processamento OBMC.
[161] Com referência à figura 5C, primeiro, uma imagem de previsão (Pred) é obtida através da compensação de movimento típica utilizando um vetor de movimento (MV) designado para o bloco alvo (atual). Na figura 5C, uma seta "MV" aponta para a imagem de referência, para indicar qual bloco atual na imagem atual está sendo referido a fim de obter uma imagem de previsão.
[162] A seguir, uma imagem de previsão (Pred_L) é obtida pela aplicação (reutilização) de um vetor de movimento (MV_L), que já foi derivado do bloco esquerdo vizinho codificado, para o bloco alvo (atual), como indicado por uma seta "MV_L" originando do bloco atual e apontando para a imagem de referência, para obter a imagem de previsão Pred_L. Então, duas imagens de previsão Pred e Pred_L são sobrepostas para realizar uma primeira passagem de correção da imagem de previsão, que, em um aspecto, apresenta um efeito de mistura da borda entre os blocos vizinhos.
[163] De forma similar, uma imagem de previsão (Pred_U) é obtida pela aplicação (reutilização) de um vetor de movimento (MV_U), que já foi derivado do bloco superior vizinho codificado, para o bloco alvo (atual), como indicado por uma seta "MV_U" originando do bloco atual e apontando para a imagem de referência para obter a imagem de previsão Pred_U. Então, a imagem de previsão Pred_U é sobreposta à imagem de previsão resultando da primeira passagem (isso é, Pred e Pred_L) para realizar uma segunda passagem de correção da imagem de previsão, que, em um aspecto, apresenta um efeito de mistura da borda entre os blocos vizinhos. O resultado da segunda passagem é a imagem de previsão final para o bloco atual, com as bordas misturadas (suavizadas) com seus blocos vizinhos.
[164] Nota-se que o exemplo acima é de um método de correção de duas passagens utilizando os blocos esquerdo e superior vizinhos, mas o método pode ser um método de correção de três ou mais passagens que também utiliza o bloco direito e/ou inferior vizinho.
[165] Nota-se que a região sujeita à sobreposição pode ser toda a região de pixel do bloco e, alternativamente, pode ser uma região limítrofe de bloco parcial.
[166] Nota-se que aqui o processo de correção de imagem de previsão de OBMC é descrito como sendo baseado em uma única imagem de referência para derivar uma imagem de previsão singular Pred, à qual as imagens de previsão adicionais Pred_L e Pred_U são sobrepostas, mas o mesmo processo pode se aplicar a cada uma dentre a pluralidade de imagens de referência quando a imagem de previsão é corrigida com base na pluralidade de imagens de referência. Em tal caso, depois que uma pluralidade de imagens de previsão corrigidas é obtida pela realização da correção de imagem de OBMC, com base na pluralidade de imagens de referência, respectivamente, a pluralidade de imagens de previsão corrigidas obtidas é adicionalmente sobreposta para obter a imagem de previsão final.
[167] Nota-se que, em OBMC, a unidade de bloco alvo pode ser um bloco de previsão e, alternativamente, pode ser um sub-bloco obtido pela divisão adicional do bloco de previsão.
[168] Um exemplo de um método para determinar se implementa o processamento OBMC é utilizar um obmc_flag, que é um sinal que indica se implementa o processamento OBMC. Como um exemplo específico, o codificador pode determinar se o bloco alvo pertence a uma região incluindo o movimento complicado. O codificador configura o indicador obmc para um valor igual a "1" quando o bloco pertence a uma região incluindo o movimento complicado e implementa o processamento OBMC durante a codificação, e configura obmc_flag para um valor igual a "0" quando o bloco não pertence a uma região incluindo o movimento de complicação e codifica o bloco sem implementar o processamento OBMC. O decodificador comuta entre a implementação do processamento OBMC ou não pela decodificação de obmc_flag escrito no fluxo (isso é, sequência comprimida) e a realização da decodificação de acordo com o valor de indicador.
[169] Nota-se que a informação de movimento pode ser derivada no lado do decodificador sem ser sinalizada a partir do lado do codificador. Por exemplo, um modo de mistura definido no padrão H.265/HEVC pode ser utilizado. Adicionalmente, por exemplo, a informação de movimento pode ser derivada pela realização da estimativa de movimento no lado do decodificador. Nesse caso, o lado do decodificador pode realizar a estimativa de movimento sem utilizar os valores de pixel do bloco atual.
[170] Aqui, um modo para realizar a estimativa de movimento no lado do decodificador será descrito. Um modo para realizar a estimativa de movimento no lado do decodificador também é referido como um modo de derivação de vetor de movimento combinado por padrão (PMMVD) ou o modo de conversão ascendente de taxa de quadro (FRUC).
[171] Um exemplo do processamento FRUC é ilustrado na figura 5D. Primeiro, uma lista de candidatos (uma lista de candidatos pode ser uma lista de mistura), cada um incluindo um vetor de movimento de previsão (MV), é gerada com referência aos vetores de movimento dos blocos codificados, que são vizinhos espaciais ou temporais do bloco atual. A seguir, o melhor candidato a MV é selecionado dentre a pluralidade de candidatos a MV registrados na lista de candidatos. Por exemplo, valores de avaliação para os MVs candidatos incluídos na lista de candidatos são calculados e um MV candidato é selecionado com base nos valores de avaliação calculados.
[172] A seguir, um vetor de movimento para o bloco atual é derivado do vetor de movimento do candidato selecionado. Mais especificamente, por exemplo, o vetor de movimento para o bloco atual é calculado como o vetor de movimento do candidato selecionado (o melhor candidato a MV), como está. Alternativamente, o vetor de movimento para o bloco atual pode ser derivado pela combinação de padrão realizada nas proximidades de uma posição em uma imagem de referência correspondente ao vetor de movimento do candidato selecionado. Em outras palavras, quando a vizinhança do melhor candidato a MV é pesquisada utilizando-se a combinação de padrão em uma imagem de referência e valores de avaliação, e um MV, apresentando um melhor valor de avaliação, for encontrado, o melhor candidato a MV pode ser atualizado para MV possuindo o melhor valor de avaliação, e o MV possuindo o melhor valor de avaliação pode ser utilizado como o MV final para o bloco atual. Uma configuração na qual o processamento para atualizar MV apresentando um melhor valor de avaliação não é implementado, também é aceitável.
[173] Os mesmos processos podem ser realizados em casos nos quais o processamento é realizado em unidades de sub-blocos.
[174] Um valor de avaliação pode ser calculado de várias formas. Por exemplo, uma imagem reconstruída de uma região em uma imagem de referência correspondente a um vetor de movimento é comparada com uma imagem reconstruída de uma região predeterminada (que pode estar em outra imagem de referência ou em um bloco vizinho na imagem atual, por exemplo, como descrito abaixo), e uma diferença nos valores de pixel entre as duas imagens reconstruídas pode ser calculada e utilizada como um valor de avaliação do vetor de movimento. Nota-se que o valor de avaliação pode ser calculado pela utilização de algumas outras informações em adição à diferença.
[175] A seguir, a combinação de padrão é descrita em detalhes. Primeiro, um MV candidato incluído em uma lista de candidatos (por exemplo, uma lista de mistura) é selecionado como o ponto de partida para a pesquisa por combinação de padrão. A combinação de padrão utilizada é a primeira combinação de padrão ou a segunda combinação de padrão. A primeira combinação de padrão e a segunda combinação de padrão também são referidas como a combinação bilateral e a combinação de gabarito, respectivamente.
[176] Na primeira combinação de padrão, a combinação de padrão é realizada entre dois blocos em duas imagens de referência diferentes, que estão ambas ao longo da trajetória de movimento do bloco atual. Portanto, na primeira combinação de padrão, para uma região em uma imagem de referência, uma região em outra imagem de referência, que se conforma à trajetória de movimento do bloco atual, é utilizada como a região predeterminada para o cálculo descrito acima do valor de avaliação do candidato.
[177] A figura 6 ilustra um exemplo da primeira combinação de padrão (combinação bilateral) entre dois blocos nas duas imagens de referência ao longo de uma trajetória de movimento. Como ilustrado na figura 6, na primeira combinação de padrão, dois vetores de movimento (MV0, MV1) são derivados pela descoberta da melhor combinação entre os dois blocos em duas imagens de referência diferentes (Ref0, Ref1)_ ao longo da trajetória de movimento do bloco atual (Cur block). Mais especificamente, uma diferença pode ser obtida entre (i) uma imagem reconstruída em uma posição especificada por um MV candidato em uma primeira imagem de referência codificada (Ref0), e (ii) uma imagem reconstruída em uma posição especificada pelo MV candidato, que é escalonado simetricamente de acordo com os intervalos de tempo de exibição, em uma segunda imagem de referência codificada (Ref1). Então, a diferença pode ser utilizada para derivar um valor de avaliação para o bloco atual. Um MV candidato possuindo o melhor valor de avaliação, entre uma pluralidade de MVs candidatos, pode ser selecionado como o MV final.
[178] Considerando-se a trajetória de movimento contínuo, os vetores de movimento (MV0, MV1) apontando para os dois blocos de referência são proporcionais às distâncias temporais (TD0, TD1) entre a imagem atual (Cur Pic) e as duas imagens de referência (Ref0, Ref1). Por exemplo, quando a imagem atual se encontra temporalmente entre as duas imagens de referência, e a distância temporal da imagem atual para as duas imagens de referência é igual, a primeira combinação de padrão deriva dois vetores de movimento bidirecional espelhados.
[179] Na segunda combinação de padrão (combinação de gabarito), a combinação de padrão é realizada entre um gabarito na imagem atual (blocos vizinhos ao bloco atual na imagem atual; por exemplo, os blocos vizinhos superior e/ou esquerdo) e um bloco em uma imagem de referência. Portanto, na segunda combinação de padrão, um bloco vizinho do bloco atual na imagem atual é utilizado como a região predeterminada para o cálculo descrito acima do valor de avaliação de candidato.
[180] A figura 7 ilustra um exemplo de combinação de padrão (combinação de gabarito) entre um gabarito na imagem atual e um bloco em uma imagem de referência. Com ilustrado na figura 7, na segunda combinação de padrão, um vetor de movimento do bloco atual é derivado pela busca em uma imagem de referência (Ref0) para encontrar um bloco que melhor combine os blocos vizinhos do bloco atual (Cur block) na imagem atual (Cur Pic). Mais especificamente, uma diferença pode ser obtida entre (i) uma imagem reconstruída de uma ou ambas as regiões superior e esquerda vizinhas codificadas com relação ao bloco atual, e (ii) uma imagem reconstruída das mesmas regiões com relação a uma posição de bloco especificada por um MV candidato em uma imagem de referência codificada (Ref0). Então, a diferença pode ser utilizada para derivar um valor de avaliação para o bloco atual. Um MV candidato possuindo o melhor valor de avaliação dentre uma pluralidade de MVs candidatos pode ser selecionado como o melhor MV candidato.
[181] A informação indicando se aplica o modo FRUC ou não (referido como, por exemplo, um indicador FRUC) pode ser sinalizada no nível CU. Adicionalmente, quando o modo FRUC é aplicado (por exemplo, quando o indicador FRUC é configurado como verdadeiro), a informação indicando o método de combinação aplicável a padrão (por exemplo, primeira combinação de padrão ou segunda combinação de padrão) pode ser sinalizada no nível de CU. Nota-se que a sinalização de tal informação não precisa ser realizada no nível CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de tile, nível de CTU ou nível de sub-bloco).
[182] A seguir, os métodos de derivação de um vetor de movimento são descritos. Primeiro, uma descrição é fornecida de um modo de derivação de um vetor de movimento com base em um modelo assumindo o movimento linear uniforme. Esse modo também é referido como um modo de fluxo ótico bidirecional (BIO).
[183] A figura 8 ilustra um modelo que assume o movimento linear uniforme. Na figura 8, (vx, vy) denota um vetor de velocidade, e 0 e 1 denotam as distâncias temporais entre a imagem atual (Cur Pic) e duas imagens de referência (Ref0, Ref1), respectivamente. (MVx0, MVy0) denota um vetor de movimento correspondendo à imagem de referência Ref0, e (MVx1, MVy1) denota um vetor de movimento correspondendo à imagem de referência Ref1.
[184] Aqui, considerando-se o movimento linear uniforme exibido pelo vetor de velocidade (vx, vy), (MVx0, MVy0) e (MVx1, MVy1) são representados como (vx0, vy0) e (-vx1, -vy, 1), respectivamente, e a equação de fluxo ótico a seguir (Equação 1) é fornecida. Matemática 1 I(k)/t + xI(k)x + yI(k)/y = 0 (1)
[185] Aqui, I(k) denota um valor de luminescência a partir da imagem de referência k (k = 0, 1), depois da compensação de movimento. A equação de fluxo ótico ilustra que a soma de (i) o tempo derivativo do valor de luminescência, (ii) o produto da velocidade horizontal e do componente horizontal do gradiente espacial de uma imagem de referência, e (iii) o produto da velocidade vertical e do componente vertical do gradiente espacial de uma imagem de referência, é igual a zero. Um vetor de movimento de cada bloco obtido a partir, por exemplo, de uma lista de mistura pode ser corrigido, pixel por pixel, com base em uma combinação da equação de fluxo ótico e interpolação Hermite.
[186] Nota-se que um vetor de movimento pode ser derivado no lado do decodificador utilizando um método diferente de derivação de um vetor de movimento com base em um modelo, assumindo o movimento linear uniforme. Por exemplo, um vetor de movimento pode ser derivado para cada sub-bloco com base em vetores de movimento de blocos vizinhos.
[187] A seguir, uma descrição é fornecida de um modo no qual um vetor de movimento é derivado para cada sub-bloco com base nos vetores de movimento dos blocos vizinhos. Esse modo também é referido como um modo de previsão de compensação de movimento afim.
[188] A figura 9A ilustra um exemplo de derivação de um vetor de movimento de cada sub-bloco com base nos vetores de movimento dos blocos vizinhos. Na figura 9A, o bloco atual inclui 16 sub-blocos de 4 x
4. Aqui, o vetor de movimento v0 do ponto de controle de canto superior esquerdo no bloco atual é derivado com base em vetores de movimento dos sub-blocos vizinhos. De forma similar, o vetor de movimento v1 do ponto de controle de canto superior direito no bloco atual é derivado com base nos vetores de movimento dos blocos vizinhos. Então, utilizando os dois vetores de movimento v0 e v1, o vetor de movimento (vx, vy) de cada sub-bloco no bloco atual é derivado utilizando-se a Equação 2 abaixo. Matemática 2
[189] Aqui, x e y são posições horizontal e vertical do sub-bloco, respectivamente, e w é um coeficiente ponderado predeterminado.
[190] Um modo de previsão de compensação de movimento affine pode incluir vários modos de métodos diferentes de derivação de vetores de movimento dos pontos de controle do canto superior esquerdo e superior direito. A informação que indica um modo de previsão de compensação de movimento afim (referido, por exemplo, como um indicador afim) pode ser sinalizada no nível de CU. Nota-se que a sinalização da informação indicando o modo de previsão de compensação de movimento afim não precisa ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de tile, nível de CTU ou nível de sub-bloco). Controlador de Previsão
[191] O controlador de previsão 128 seleciona o sinal de intraprevisão (enviado a partir do intraprevisor 124) ou sinal de interprevisão (enviado a partir do interprevisor 126), e envia o sinal de previsão selecionado para o subtrator 104 e o somador 116.
[192] Como ilustrado na figura 1, em várias implementações, o controlador de previsão 128 pode enviar parâmetros de previsão, que são registrados no codificador por entropia 110. O codificador por entropia 110 pode gerar um fluxo de bits codificados (ou sequência) com base nos parâmetros de previsão, registrados a partir do controlador de previsão 128, e os coeficientes quantizados registrados a partir do quantizador 108. Os parâmetros de previsão podem ser utilizados pelo decodificador, que recebe e decodifica o fluxo de bits codificados, para realizar o mesmo processamento de previsão que o realizado no intraprevisor 124, interprevisor 126 e controlador de previsão 128. Os parâmetros de previsão podem incluir o sinal de previsão selecionado (por exemplo, vetores de movimento, tipo de previsão ou modo de previsão empregado no intraprevisor 124 ou interprevisor 126), ou qualquer índice, indicador, ou valor que seja baseado em ou indicativo do processamento de previsão realizado no intraprevisor 124, interprevisor 126 e controlador de previsão 128.
[193] A figura 9B ilustra um exemplo de um processo de derivação de um vetor de movimento em uma imagem atual no modo de mistura.
[194] Primeiro, uma lista de MVs de previsão é gerada, na qual os candidatos a MV de previsão são registrados. Exemplos de candidatos a MV de previsão incluem MV de previsão espacialmente vizinho, que são os MVs dos blocos codificados posicionados em proximidade espacial do bloco alvo; MVs de previsão temporalmente vizinhos, que são MVs de blocos nas imagens de referência codificadas que são vizinhos de um bloco na mesma localização que o bloco alvo; um MV de previsão acoplado, que é um MV gerado pela combinação de valores de MV do MV de previsão espacialmente vizinho e o MV de previsão temporalmente vizinho; e um MV de previsão igual a zero, que é um MV cujo valor é igual a zero.
[195] A seguir, o MV do bloco alvo é determinado pela seleção de um MV de previsão a partir da pluralidade de MVs de previsão registrados na lista de MVs de previsão.
[196] Adicionalmente, em um codificador de comprimento variável, um merge_idx, que é um sinal indicando qual MV de previsão é selecionado, é escrito e codificado no fluxo.
[197] Nota-se que os MVs de previsão registrados na lista de MVs de previsão, ilustrados na figura 9B, constituem um exemplo. O número de MVs de previsão registrados na lista de MVs de previsão pode ser diferente do número ilustrado na figura 9B, e os MVs de previsão registrados na lista de MVs de previsão podem omitir um ou mais dos tipos de MVs de previsão fornecidos no exemplo na figura 9B, e os MVs de previsão registrados na lista de MVs de previsão podem incluir um ou mais tipos de MVs de previsão além de e diferentemente dos tipos fornecidos no exemplo na figura 9B.
[198] O MV final pode ser determinado pela realização do processamento DMVR (atualização de vetor de movimento dinâmico) (a ser descrito posteriormente) pela utilização do MV do bloco alvo derivado no modo de mistura.
[199] A figura 9C é um diagrama conceitual ilustrando um exemplo do processamento DMVR para determinar um MV.
[200] Primeiro, o MV mais adequado, que é determinado para o bloco atual (por exemplo, no modo de mistura) é considerado o MV candidato. Então, de acordo com o MV candidato (L0), um pixel de referência é identificado em uma primeira imagem de referência (L0) que é uma imagem codificada na direção L0. De forma similar, de acordo com o MV candidato (L1), um pixel de referência é identificado em uma segunda imagem de referência (L1), que é uma imagem codificada na direção L1. Os pixels de referência têm, então, sua média realizada para formarem um gabarito.
[201] A seguir, utilizando-se o gabarito, as regiões circundantes dos MVs candidatos das primeira e segunda imagens de referência (L0) e (L1) são pesquisadas, e o MV com o menor custo é determinado como o MV final. O valor de custo pode ser calculado, por exemplo, utilizando- se a diferença entre cada valor de pixel no gabarito e cada valor de pixel nas regiões buscadas, utilizando-se os MVs candidatos, etc.
[202] Nota-se que a configuração e operação dos processos descritos aqui são fundamentalmente iguais em ambos o lado de codificador e o lado de decodificador, a serem descritos abaixo.
[203] Qualquer processamento além do processamento descrito acima pode ser utilizado, desde que o processamento possa derivar o MV final pela busca pelas cercanias do MV candidato.
[204] A seguir, uma descrição é fornecida de um exemplo de um modo que gere uma imagem de previsão (uma previsão) utilizando o processamento LIC (compensação de iluminação local).
[205] A figura 9D ilustra um exemplo de um método de geração de imagem de previsão utilizando um processo de correção de luminescência realizado pelo processamento LIC.
[206] Primeiro, de uma imagem de referência codificada, um MV é derivado para obter uma imagem de referência correspondente ao bloco atual.
[207] A seguir, para o bloco atual, a informação indicando como o valor de luminescência alterado entre a imagem de referência e a imagem atual é obtido, com base nos valores de pixel de luminescência da região de referência esquerda vizinha codificada e a região de referência superior vizinha codificada na imagem atual, e com base nos valores de pixel de luminescência nas mesmas localizações na imagem de referência que o especificado pelo MV. A informação indicando como o valor de luminescência mudou é utilizada para calcular um parâmetro de correção de luminescência.
[208] A imagem de previsão para o bloco atual é gerada pela realização de um processo de correção de luminescência, que aplica o parâmetro de correção de luminescência na imagem de referência à imagem de referência especificada pelo MV.
[209] Nota-se que o formato das regiões de referência circundantes ilustradas na figura 9D é apenas um exemplo; a região de referência circundante pode ter um formato diferente.
[210] Adicionalmente, apesar de uma imagem de previsão ser gerada a partir de uma única imagem de referência nesse exemplo, em casos nos quais uma imagem de previsão é gerada a partir de uma pluralidade de imagens de referência, a imagem de previsão pode ser gerada depois da realização de um processo de correção de luminescência, como descrito acima, nas imagens de referência obtidas a partir das imagens de referência.
[211] Um exemplo de um método para determinar se implementa o processamento LIC é utilizar um lic_flag, que é um sinal que indica se implementa o processamento LIC. Como um exemplo específico, o codificador determina se o bloco atual pertence a uma região da mudança de luminescência. O codificador configura lic_flag a um valor de "0" quando o bloco não pertence a uma região de mudança de luminescência, e realiza a codificação implementando o processamento LIC. O decodificador pode comutar entre implementar o processamento LIC ou não pela decodificação de lic_flag escrito no fluxo e realizar a decodificação de acordo com o valor do indicador.
[212] Um exemplo de um método diferente de determinação de se implementa o processamento LIC inclui discernir se o processamento LIC foi determinado como tendo sido implementado para um bloco circundante. Em um exemplo específico, quando o modo de mistura for utilizado no bloco atual, é determinado se o processamento LIC foi aplicado na codificação do bloco codificado circundante, que foi selecionado quando da derivação de MV no modo de mistura. Então, a determinação é utilizada para determinar adicionalmente se implementa o processamento LIC ou não no bloco atual. Nota-se que nesse exemplo também, o mesmo se aplica ao processamento realizado no lado do decodificador. Decodificador
[213] A seguir, um decodificador capaz de decodificar um sinal codificado (fluxo de bits codificado), enviado a partir do codificador 100, será descrito. A figura 10 é um diagrama em bloco ilustrando uma configuração funcional do decodificador 200, de acordo com uma modalidade. O decodificador 200 é um decodificador de imagem em movimento que decodifica uma imagem em movimento, bloco por bloco.
[214] Como ilustrado na figura 10, o decodificador 100 inclui o decodificador por entropia 202, o quantizador inverso 204, o transformador inverso 206, o somador 208, a memória de bloco 210, o filtro de circuito 212, a memória de quadro 214, o intraprevisor 216, o interprevisor 218, e o controlador de previsão 220.
[215] O decodificador 200 é realizado como, por exemplo, um processador genérico e uma memória. Nesse caso, quando um programa de software armazenado na memória é executado pelo processador, o processador funciona como o decodificador por entropia 202, o quantizador inverso 204, o transformador inverso 206, o somador 208, o filtro de circuito 212, o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220. Alternativamente, o decodificador 200 pode ser realizado como um ou mais circuitos eletrônicos dedicados, correspondendo ao decodificador por entropia 202, ao quantizador inverso 204, ao transformador inverso 206, ao somador 208, ao filtro de circuito 212, ao intraprevisor 216, ao interprevisor 218 e ao controlador de previsão 220.
[216] Doravante, cada componente incluído no decodificador 200 será descrito. Decodificador por Entropia
[217] O decodificador por entropia 202 decodifica por entropia um fluxo de bits codificado. Mais especificamente, por exemplo, o decodificador por entropia 202 decodifica aritmeticamente um fluxo de bits codificados em um sinal binário. O decodificador por entropia 202, então, desbinariza o sinal binário. O decodificador por entropia 202 envia os coeficientes quantizados de cada bloco para o quantizador inverso 204. O decodificador por entropia 202 também pode enviar os parâmetros de previsão, que podem ser incluídos no fluxo de bits codificados (ver figura 1), para o intraprevisor 216, o interprevisor 218, e o controlador de previsão 220, de modo que possa realizar o mesmo processamento de previsão que o realizado no lado de codificador no intraprevisor 124, interprevisor 126 e controlador de previsão 128. Quantizador Inverso
[218] O quantizador inverso 204 quantiza de forma inversa os coeficientes quantizados de um bloco a ser decodificado (doravante referido como um bloco atual), que são registrados a partir do decodificador por entropia 202. Mais especificamente, o quantizador inverso 204 quantiza de forma inversa os coeficientes quantizados do bloco atual com base nos parâmetros de quantização correspondentes aos coeficientes quantizados. O quantizador inverso 204, então, envia os coeficientes quantizados inversos (isso é, coeficientes de transformação) do bloco atual para o transformador inverso 206. Transformador Inverso
[219] O transformador inverso 206 restaura os erros de previsão (resíduos) pela transformação inversa dos coeficientes de transformação, que são registrados a partir do quantizador inverso 204.
[220] Por exemplo, quando a informação analisada a partir de um fluxo de bits codificado indica a aplicação de EMT ou AMT (por exemplo, quando o indicador AMT é considerado verdadeiro), o transformador inverso 206 transforma de forma inversa os coeficientes de transformação do bloco atual com base na informação que indica o tipo de transformação analisado.
[221] Ademais, por exemplo, quando a informação analisada de um fluxo de bits codificado indicar a aplicação de NSST, o transformador inverso 206 aplica uma transformação inversa secundária aos coeficientes de transformação. Somador
[222] O somador 208 reconstrói o bloco atual pela soma dos erros de previsão, que são registrados a partir do transformador inverso 206, e amostras de previsão, que é uma entrada do controlador de previsão
220. O somador 208, então, envia o bloco reconstruído para a memória do bloco 210 e o filtro de circuito 212. Memória de Bloco
[223] A memória de bloco 210 é o armazenador para armazenar os blocos em uma imagem a ser decodificada (doravante referida como uma imagem atual) para referência na intraprevisão. Mais especificamente, a memória de bloco 210 armazena os blocos reconstruídos enviados a partir do somador 208. Filtro de Circuito
[224] O filtro de circuito 212 aplica um filtro de circuito aos blocos reconstruídos pelo somador 208, e envia os blocos reconstruídos filtrados para a memória de quadro 214 e, por exemplo, para um dispositivo de exibição.
[225] Quando a informação que indica a ativação ou desativação do ALF analisado, a partir de um fluxo de bits codificado, indicar ativado, um filtro dentre uma pluralidade de filtros é selecionado com base na direção e atividade dos gradientes locais, e o filtro selecionado é aplicado ao bloco reconstruído. Memória de Quadro
[226] A memória de quadro 214 é o armazenamento para armazenar as imagens de referência utilizadas na interprevisão, e também referida como um armazenamento de quadro. Mais especificamente, a memória de quadro 214 armazena os blocos reconstruídos filtrados pelo filtro de circuito 212. Intraprevisor
[227] O intraprevisor 216 gera um sinal de previsão (sinal de intraprevisão) pela intraprevisão com referência a um bloco ou blocos na imagem atual, como armazenados na memória de bloco 210. Mais especificamente, o intraprevisor 216 gera um sinal de intraprevisão pela intraprevisão com referência às amostras (por exemplo, valores de luminescência e/ou crominância) de um bloco ou blocos vizinhos do bloco atual, e, então, envia o sinal de intraprevisão para o controlador de previsão 220.
[228] Nota-se que, quando o modo de intraprevisão, no qual um bloco de crominância é intraprevisto a partir de um bloco de luminescência, é selecionado, o intraprevisor 216 pode prever o componente de crominância do bloco atual com base no componente de luminescência do bloco atual.
[229] Ademais, quando a informação indicando a aplicação de PDPC é analisada a partir de um fluxo de bits codificados (nos parâmetros de previsão enviados a partir do decodificador por entropia 202, por exemplo), o intraprevisor 216 corrige os valores de pixel pós intraprevisão com base nos gradientes de pixel de referência horizontal/vertical. Interprevisor
[230] O interprevisor 218 prevê o bloco atual com referência a uma imagem de referência armazenada na memória de quadro 214. O interprevisor é realizado por bloco atual ou por sub-bloco (por exemplo, por bloco 4 x 4) no bloco atual. Por exemplo, o interprevisor 218 gera um sinal de interprevisão do bloco ou sub-bloco atual com base na compensação de movimento utilizando a informação de movimento (por exemplo, um vetor de movimento) analisado a partir de um fluxo de bits codificados (nos parâmetros de previsão enviados a partir do decodificador por entropia 202, por exemplo), e envia o sinal de interprevisão para o controlador de previsão 220.
[231] Quando a informação analisada a partir do fluxo de bits codificados indicar a aplicação do modo OBMC, o interprevisor 218 gera o sinal de interprevisão, utilizando a informação sobre movimento para um bloco vizinho, em adição à informação de movimento para o bloco atual obtida a partir da estimativa de movimento.
[232] Ademais, quando a informação analisada a partir do fluxo de bits codificados indicar a aplicação do modo FRUC, o interprevisor 218 deriva a informação de movimento pela realização da estimativa de movimento, de acordo com o método de combinação de padrão (combinação bilateral ou combinação de gabarito) analisado a partir do fluxo de bits codificados. O interprevisor 218, então, realiza a compensação de movimento (previsão) utilizando a informação de movimento derivada.
[233] Ademais, quando o modo BIO deve ser aplicado, o interprevisor 218 deriva um vetor de movimento com base em um modelo assumindo o movimento linear uniforme. Adicionalmente, quando a informação analisada a partir do fluxo de bits codificados indica que o modo de previsão de compensação de movimento afim deve ser aplicado, o interprevisor 218 deriva um vetor de movimento de cada sub-bloco com base nos vetores de movimento dos blocos vizinhos. Controlador de Previsão
[234] O controlador de previsão 220 seleciona o sinal de intraprevisão ou o sinal de interprevisão e envia o sinal de previsão selecionado para o somador 208. Em geral, a configuração, funções e operações do controlador de previsão 220, do interprevisor 218 e do intraprevisor 216, no lado do decodificador, podem corresponder à configuração, funções e operações do controlador de previsão 128, do interprevisor 126 e do intraprevisor 124 no lado do codificador. Partição Não Retangular
[235] No controlador de previsão 128 acoplado ao intraprevisor 124 e ao interprevisor 126 no lado do codificador (ver figura 1), além de no controlador de previsão 220 acoplado ao intraprevisor 216 e ao interprevisor 218 no lado do decodificador (ver figura 10), as partições a seguir (ou blocos ou sub-blocos de tamanho variável) obtidas a partir da divisão de cada bloco, para o qual a informação de movimento (por exemplo, vetores de movimento) é obtida, são invariavelmente retangulares, como ilustrado na figura 2. Os inventores descobriram que gerar partições possuindo um formato não retangular, tal como um formato triangular, resulta em um aperfeiçoamento na qualidade da imagem e na eficiência da codificação, dependendo do conteúdo de uma imagem em uma imagem em várias implementações. Abaixo, várias modalidades serão descritas, nas quais pelo menos uma partição dividida de um bloco de imagem para fins de previsão possui um formato não retangular. Nota-se que essas modalidades são igualmente aplicáveis ao lado de codificador (controlador de previsão 128 acoplado ao intraprevisor 124 e interprevisor 126) e ao lado do decodificador (controlador de previsão 220 acoplado ao intraprevisor 216 e ao interprevisor 218), e pode ser implementado no codificador da figura 1 ou similares, ou no decodificador da figura 10 ou similares.
[236] A figura 11 é um fluxograma ilustrando um exemplo de um processo de divisão de um bloco de imagem em partições incluindo pelo menos uma primeira partição possuindo um formato não retangular (por exemplo, triangular) e uma segunda partição, e realizando o processamento adicional incluindo codificação (ou decodificação) do bloco de imagem como uma combinação reconstruída das primeira e segunda partições.
[237] Na etapa S1001, um bloco de imagem é dividido em partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, que pode ou não ter um formato não retangular. Por exemplo, como ilustrado na figura 12, um bloco de imagem pode ser dividido a partir de um canto superior esquerdo do bloco de imagem para um canto inferior direito do bloco de imagem para criar uma primeira partição e uma segunda partição, ambas possuindo um formato não retangular (por exemplo, um triângulo), ou um bloco de imagem pode ser dividido a partir de um canto superior direito do bloco de imagem para um canto inferior esquerdo do bloco de imagem para criar uma primeira partição e uma segunda partição, ambas possuindo um formato não retangular (por exemplo, um triângulo). Vários exemplos da partição não retangular serão descritos abaixo com referência às figuras 12 e de 17 a 19.
[238] Na etapa S1002, o processo prevê um primeiro vetor de movimento para a primeira partição e prevê um segundo vetor de movimento para a segunda partição. Por exemplo, a previsão dos primeiro e segundo vetores de movimento pode incluir a seleção do primeiro vetor de movimento a partir de um primeiro conjunto de candidatos a vetor de movimento e a seleção do segundo vetor de movimento a partir de um segundo conjunto de candidatos a vetor de movimento.
[239] Na etapa S1003, um processo de compensação de movimento é realizado para obter a primeira partição utilizando o primeiro vetor de movimento, que é derivado na etapa S1002 acima, e para obter a segunda partição utilizando o segundo vetor de movimento, que é derivado na etapa S1002 acima.
[240] Na etapa S1004, um processo de previsão é realizado para o bloco de imagem como uma combinação (reconstruída) da primeira partição e da segunda partição. O processo de previsão pode incluir um processo de suavização de limite para suavizar o limite entre a primeira partição e a segunda partição. Por exemplo, o processo de suavização de limite pode envolver realizar a média dos primeiros valores de pixels limítrofes previstos com base na primeira partição e dos segundos valores de pixels de limite previstos com base na segunda partição. Várias implementações do processo de suavização de limite serão descritas abaixo com referência às figuras 13, 14, 20 e 21A-21D.
[241] Na etapa S1005, o processo codifica ou decodifica o bloco de imagens utilizando um ou mais parâmetros incluindo um parâmetro de partição indicativo da divisão do bloco de imagem na primeira partição possuindo um formato não retangular e na segunda partição.
Como resumido na tabela da figura 15, por exemplo, o parâmetro de partição ("o primeiro valor de índice") pode codificar em conjunto, por exemplo, uma direção dividida aplicada à divisão (por exemplo, do canto superior esquerdo para o canto inferior direito ou do canto superior direito para o canto inferior esquerdo, como ilustrado na figura 12), e os primeiro e segundo vetores de movimento derivados na etapa S1002 acima. Detalhes de tal operação de sintaxe de partição envolvendo os um ou mais parâmetros incluindo o parâmetro de partição serão descritos em detalhes abaixo com referência às figuras 15, 16 e 22 a
25.
[242] A figura 17 é um fluxograma ilustrando um processo 2000 de divisão de um bloco de imagem. Na etapa S2001, o processo divide uma imagem em uma pluralidade de partições incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição, que pode ou não possuir um formato não retangular. Como ilustrado na figura 12, um bloco de imagem pode ser dividido em uma primeira partição possuindo um formato triangular e uma segunda partição possuindo também um formato triangular. Existem inúmeros outros exemplos nos quais um bloco de imagem é dividido em uma pluralidade de partições, incluindo uma primeira partição e uma segunda partição, das quais pelo menos a primeira partição possui um formato não retangular. O formato não retangular pode ser um triângulo, trapezoide, e um polígono com pelo menos cinco lados e ângulos.
[243] Por exemplo, como ilustrado na figura 18, um bloco de imagem pode ser dividido em duas partições de formato triangular; um bloco de imagem pode ser dividido em mais de duas partições de formato triangular (por exemplo, três partições de formato triangular); um bloco de imagem pode ser dividido em uma combinação de partições de formato triangular e partições de formato retangular; ou um bloco de imagem pode ser dividido em uma combinação de partições de formato triangular e partições de formato poligonal.
[244] Como adicionalmente ilustrado na figura 19, um bloco de imagem pode ser dividido em uma partição em formato de L (formato poligonal) e uma partição em formato retangular; um bloco de imagem pode ser dividido em uma partição de formato pentagonal (polígono) e uma partição em formato triangular; um bloco de imagem pode ser dividido em uma partição de formato hexagonal (polígono) e uma partição de formato pentagonal (polígono); ou um bloco de imagem pode ser dividido em múltiplas partições de formato poligonal.
[245] Com referência novamente à figura 17, na etapa S2002, o processo prevê um primeiro vetor de movimento para a primeira partição, por exemplo, pela seleção da primeira partição de um primeiro conjunto de candidatos a vetor de movimento, e prevê um segundo vetor de movimento para a segunda partição, por exemplo, pela seleção da segunda partição a partir de um segundo conjunto de candidatos a vetor de movimento. Por exemplo, o primeiro conjunto de candidatos a vetor de movimento pode incluir os vetores de movimento das partições vizinhas da primeira partição, e o segundo conjunto de candidatos a vetor de movimento pode incluir vetores de movimento de partições vizinhas à segunda partição. As partições vizinhas podem ser uma ou ambas as partições espacialmente vizinhas e partições temporalmente vizinhas. Alguns exemplos de partições espacialmente vizinhas incluem uma partição localizada no canto esquerdo, inferior esquerdo, inferior, inferior direito, direito, superior direito, ou superior esquerdo da partição que está sendo processada. Exemplos das partições temporalmente vizinhas são localizadas junto às partições nas imagens de referência do bloco de imagem.
[246] Em várias implementações, as partições vizinhas à primeira partição e as partições vizinhas à segunda partição podem estar fora do bloco de imagem a partir do qual a primeira partição e a segunda partição são divididas. O primeiro conjunto de candidatos a vetor de movimento pode ser igual a ou diferente do segundo conjunto de candidatos a vetor de movimento. Adicionalmente, pelo menos um dentre o primeiro conjunto de candidatos a vetor de movimento e o segundo conjunto de candidatos a vetor de movimento pode ser igual ao outro terceiro conjunto de candidatos a vetor de movimento preparado para o bloco de imagem.
[247] Em algumas implementações, na etapa S2002, em resposta à determinação de que a segunda partição, similar à primeira partição, também possui um formato não retangular (por exemplo, um triângulo), o processo 2000 cria o segundo conjunto de candidatos a vetor de movimento (para a segunda partição do formato não retangular) que inclui vetores de movimento de partições vizinhas à segunda partição exclusiva da primeira partição (isso é, exclusiva do vetor de movimento da primeira partição). Por outro lado, em resposta à determinação de que a segunda partição, diferentemente da primeira partição, possui um formato retangular, o processo 2000 cria o segundo conjunto de candidatos a vetor de movimento (para a segunda partição do formato retangular) que inclui vetores de movimento de partições vizinhas à segunda partição inclusive da primeira partição.
[248] Na etapa S2003, o processo codifica ou decodifica a primeira partição utilizando o primeiro vetor de movimento derivado na etapa S2002 acima, e codifica ou decodifica a segunda partição utilizando o segundo vetor de movimento derivado na etapa S2002 acima.
[249] Um processo de divisão de bloco de imagem, como o processo 2000 da figura 17, pode ser realizado por um codificador de imagem, como ilustrado na figura 1, por exemplo, que inclui o conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza a divisão de um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (etapa S2001); prevendo um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e a codificação da primeira partição utilizando o primeiro vetor de movimento e o segundo vetor de movimento utilizando o segundo vetor de movimento (etapa S2003).
[250] De acordo com outra modalidade, como ilustrado na figura 1, um codificador de imagem é fornecido incluindo um divisor 102 que, em operação, recebe e divide uma imagem original nos blocos; um somador 104 que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão 128, e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador 106 que, em operação, realiza uma transformação nos resíduos enviados a partir do somador 104 para enviar os coeficientes de transformação; um quantizador 108 que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia 110 que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e o controlador de previsão 128 acoplado a um interprevisor 126, a um intraprevisor 124, e a uma memória 118, 122, onde o interprevisor 126, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor 124, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão 128, em operação, divide os blocos em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (figura 17, etapa S2001); prevê um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003).
[251] De acordo com outra modalidade, um decodificador de imagem, como ilustrado na figura 10, por exemplo, é fornecido incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza a divisão de um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (figura 17, etapa S2001); a previsão de um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e a decodificação da primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003).
[252] De acordo com uma modalidade adicional, um decodificador de imagem, como ilustrado na figura 10 é fornecido incluindo um decodificador por entropia 202 que, em operação, recebe e decodifica um fluxo de bits codificados para obter os coeficientes de transformação quantizados; um quantizador inverso 204 e um transformador 206 que, em operação, quantizam de forma inversa os coeficientes de transformação quantizados para obter os coeficientes de transformação e transformam de forma inversa os coeficientes de transformação para obter resíduos; e o somador 208 que, em operação, adiciona os resíduos enviados a partir do quantizador inverso 204 e o transformador 206 e previsões enviadas a partir de um controlador de previsão 220 para reconstruir os blocos; e o controlador de previsão 220 acoplado a um interprevisor 218, a um intraprevisor 216 e a uma memória 210, 214, onde o interprevisor 218, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor 216, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O controlador de previsão 220, em operação, divide um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição possuindo um formato não retangular e uma segunda partição (figura 17, etapa S2001); prevê um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e decodifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003). Suavização de Limite
[253] Como descrito acima na figura 11, a etapa S1004, de acordo com várias modalidades, realizando um processo de previsão para o bloco de imagem como uma combinação (reconstruída) da primeira partição possuindo um formato não retangular e a segunda partição pode envolver a aplicação de um processo de suavização de limite ao longo do limite entre a primeira partição e a segunda partição.
[254] Por exemplo, a figura 21B ilustra um exemplo de um processo de suavização de limite envolvendo a ponderação de primeiros valores e pixels limítrofes, que são primeiramente previstos com base na primeira partição, e os segundos valores dos pixels limítrofes, que são previstos em segundo lugar com base na segunda partição.
[255] A figura 20 é um fluxograma ilustrando um processo de suavização de limite geral 3000 envolvendo a ponderação dos primeiros valores dos pixels limítrofes previstos primeiro, com base na primeira partição, e dos segundos valores de pixels limítrofes previstos em segundo lugar, com base na segunda partição, de acordo com uma modalidade. Na etapa S3001, um bloco de imagem é dividido em uma primeira partição e uma segunda partição ao longo de um limite, no qual pelo menos a primeira partição possui um formato não retangular, como ilustrado na figura 21A ou nas figuras 12, 18 e 19 descritas acima.
[256] Na etapa S3002, os primeiros valores (por exemplo, cor, luminescência, transparência, etc.) de um conjunto de pixels ("pixels limítrofes" na figura 21A) da primeira partição, ao longo do limite, são previstos primeiro, onde os primeiros valores são previstos primeiro utilizando-se a informação da primeira partição.
Na etapa S3003, os segundos valores do (mesmo) conjunto de pixels da primeira partição ao longo do limite, são previstos em segundo lugar, onde os segundos valores são previstos em segundo lugar utilizando-se a informação da segunda partição.
Em alguma implementação, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de interprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada.
Com referência à figura 21D, em algumas implementações, o processo de previsão prevê os primeiros valores de todos os pixels da primeira partição ("o primeiro conjunto de amostras"), incluindo o conjunto de pixels através do qual a primeira partição e a segunda partição se sobrepõem, e prevê os segundos valores apenas do conjunto de pixels ("o segundo conjunto de amostras"), através do qual as primeira e segunda partições se sobrepõem.
Em outra implementação, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de intraprevisão que prevê os primeiros valores e segundos valores com base em uma partição de referência codificada em uma imagem atual.
Em algumas implementações, um método de previsão utilizado na primeira previsão é diferente de um método de previsão utilizado na segunda previsão.
Por exemplo, a primeira previsão pode incluir um processo de interprevisão e a segunda previsão pode incluir um processo de intraprevisão.
A informação utilizada para prever primeiro os primeiros valores ou para prever em segundo lugar os segundos valores pode ser vetores de movimento, direções de interprevisão, etc. da primeira ou segunda partição.
[257] Na etapa S3004, os primeiros valores, previstos utilizando- se a primeira partição, e os segundos valores, previstos utilizando-se a segunda partição, são ponderados. Na etapa S3005, a primeira partição é codificada ou decodificada utilizando-se os primeiro e segundo valores ponderados.
[258] A figura 21B ilustra um exemplo de uma operação de suavização de limite na qual a primeira partição e a segunda partição se sobrepõem a cinco pixels (no máximo) de cada fileira ou cada coluna. Isso é, o número de conjuntos de pixels de cada fileira ou cada coluna, para o qual os primeiros valores são previstos com base na primeira partição e os segundos valores são previstos com base na segunda partição, é igual a 5 no máximo. A figura 21C ilustra outro exemplo de uma operação de suavização de limite na qual a primeira partição e a segunda partição se sobrepõem a três pixels (no máximo) de cada fileira ou cada coluna. Isso é, o número de conjuntos de pixels de cada fileira ou cada coluna, para o qual os primeiros valores são previstos com base na primeira partição e os segundos valores são previstos com base na segunda partição, é igual a três no máximo.
[259] A figura 13 ilustra outro exemplo da operação de suavização de limite na qual a primeira partição e a segunda partição se sobrepõem a quatro pixels (no máximo) de cada fileira e cada coluna. Isso é, o número de conjuntos de pixels de cada fileira ou cada coluna, para o qual os primeiros valores são previstos com base na primeira partição e os segundos valores são previstos com base na segunda partição, é igual a 4 no máximo. No exemplo ilustrado, os pesos de 1/8, 1/4 3/4 e 7/8 podem ser aplicados aos primeiros valores de quatro pixels no conjunto, respectivamente, e os pesos de 7/8, 3/4 1/4 e 1/8 podem ser aplicados aos segundos valores dos quatro pixels no conjunto, respectivamente.
[260] A figura 14 ilustra exemplos adicionais de uma operação de suavização de limite, na qual a primeira partição e a segunda partição se sobrepõem a zero pixels de cada fileira ou cada coluna (isso é, não se sobrepõem), se sobrepõem a um pixel (no máximo) de cada fileira ou cada coluna, e se sobrepõem a dois pixels (no máximo) de cada fileira ou cada coluna, respectivamente. No exemplo no qual as primeira e segunda partições não se sobrepõem, pesos iguais a zero são aplicados. No exemplo no qual as primeira e segunda partições se sobrepõem a um pixel de cada fileira ou cada coluna, um peso de 1/2 pode ser aplicado aos primeiros valores de pixels no conjunto previsto com base na primeira partição, e um peso de 1/2 pode ser aplicado aos segundos valores de pixels no conjunto previsto com base na segunda partição. No exemplo no qual as primeira e segunda partições se sobrepõem a dois pixels de cada fileira ou cada coluna, os pesos de 1/3 e 2/3 podem ser aplicados aos primeiros valores de dois pixels no conjunto previsto, com base na primeira partição, respectivamente, e os pesos de 2/3 e 1/3 podem ser aplicados aos segundos valores dos dois pixels no conjunto previsto, com base na segunda partição, respetivamente.
[261] De acordo com as modalidades descritas aqui, o número de pixels no conjunto através do qual a primeira partição e a segunda partição se sobrepõem é um inteiro. Em outras implementações, o número de pixels sobrepostos no conjunto pode ser não inteiro e pode ser fracionado, por exemplo. Além disso, os pesos aplicados aos primeiro e segundo valores do conjunto de pixels podem ser fracionados ou inteiros dependendo de cada aplicação.
[262] Um processo de suavização de limite, como o processo 3000 da figura 20, pode ser realizado por um codificador de imagem, como ilustrado na figura 1 por exemplo, que inclui um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos,
em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição que possui um formato não retangular e uma segunda partição, que são divididas de um bloco de imagem (figura 20, etapa S3001). A operação de suavização de limite inclui a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição (etapa S3002); a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição (etapa S3003); a ponderação dos primeiros valores e segundos valores (etapa S3004); e codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[263] De acordo com outra modalidade, como ilustrado na figura 1, um codificador de imagem é fornecido incluindo um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um somador 104 que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão 128, e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador 106 que, em operação, realiza uma transformação dos resíduos enviados do somador 104 para enviar os coeficientes de transformação; um quantizador 108 que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia 110 que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e o controlador de previsão 128 acoplado a um interprevisor 126, a um intraprevisor 124 e a uma memória 118, 122, onde o interprevisor 126, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor 124, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão 128, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, possuindo um formato não retangular e uma segunda partição, que são divididas de um bloco de imagem (figura 20, etapa S3001). A operação de suavização de limite inclui a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição (etapa S3002); a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição (etapa S3003); a ponderação dos primeiros valores e segundos valores (etapa S3004); e a codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[264] De acordo com outra modalidade, um decodificador de imagem é fornecido, como ilustrado na figura 10, por exemplo, incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, possuindo um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem (figura 20, etapas S3001). A operação de suavização de limite inclui a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição (etapa S3002); a segunda previsão dos segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição (etapa S3003); a ponderação dos primeiros valores e dos segundos valores (etapa S3004); e a decodificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[265] De acordo com outra modalidade, um decodificador de imagem, como ilustrado na figura 10, é fornecido incluindo um decodificador por entropia 202 que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficientes de transformação quantizados; um quantizador inverso 204 e transformador 206 que, em operação, quantiza de forma inversa os coeficientes de transformação para obter resíduos; um somador 208 que, em operação, adiciona os resíduos enviados do quantizador inverso 204 e do transformador 206 e previsões enviadas a partir de um controlador de previsão 220 para reconstruir blocos; e o controlador de previsão 220 acoplado a um interprevisor 218, a um intraprevisor 216 e a uma memória 210, 214, onde o interprevisor 218, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor 216, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O controlador de previsão 220, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem (figura 20, etapa S3001). A operação de suavização de limite inclui a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição (etapa S3002); a segunda previsão de segundos valores do conjunto de pixels da primeira partição, ao longo do limite, utilizando informação da segunda partição (etapa S3003); a ponderação dos primeiros valores e dos segundos valores (etapa S3004); e a decodificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005). Codificação e Decodificação por Entropia utilizando a Sintaxe de Parâmetro de Partição
[266] Como descrito na figura 11, a etapa S1005, de acordo com as várias modalidades, a divisão de bloco de imagem em uma primeira partição, possuindo um formato não retangular e uma segunda partição pode ser codificada ou decodificada utilizando-se um ou mais parâmetros que incluem um parâmetro de partição que indica a divisão não retangular do bloco de imagem. Em várias modalidades, tal parâmetro de partição pode codificar em conjunto, por exemplo, uma direção de divisão aplicada à divisão (por exemplo, do canto superior esquerdo para o inferior direito ou do superior direito para o inferior esquerdo, ver figura 12) e o primeiro e segundo vetores de movimento previstos na etapa S1002, como será mais completamente descrito abaixo.
[267] A figura 15 é uma tabela dos parâmetros de partição ilustrativos ("o primeiro valor de índice") e conjuntos de informações codificados em conjunto pelos parâmetros de partição, respectivamente. Os parâmetros de partição ("os primeiros valores de índice") variam de 0 a 6 e codificam em conjunto a direção da divisão de um bloco de imagem em uma primeira partição e uma segunda partição, ambas as quais são triângulos (ver figura 12), o primeiro vetor de movimento previsto para a primeira partição (figura 11, etapa S1002), e o segundo vetor de movimento previsto para a segunda partição (figura 11, etapa S1002). Especificamente, o parâmetro de partição 0 codifica a direção de divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
[268] O parâmetro de partição 1 codifica a direção de divisão do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "primeiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O parâmetro de partição 2 codifica a direção de divisão do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O parâmetro de partição 3 codifica a direção de divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O parâmetro de partição 4 codifica a direção de divisão do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "terceiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O parâmetro de partição 5 codifica a direção de divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "terceiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O parâmetro de partição 6 codifica a direção de divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "quarto"
vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
[269] A figura 22 é um fluxograma ilustrando um método 4000 realizado no lado do codificador. Na etapa S4001, o processo divide um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, com base em um parâmetro de partição que indica a divisão. Por exemplo, como ilustrado na figura 15 descrita acima, o parâmetro de partição pode indicar a direção de divisão de um bloco de imagem (por exemplo, do canto superior direito para o canto inferior esquerdo, ou do canto superior esquerdo para o canto inferior direito). Na etapa S4002, o processo codifica a primeira partição e a segunda partição. Na etapa S4003, o processo escreve um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits, que o lado do decodificador pode receber e decodificar para obter os um ou mais parâmetros para realizar o mesmo processo de previsão (como realizado no lado do codificador) para as primeira e segunda partições no lado do decodificador. Um ou mais parâmetros, incluindo o parâmetro de partição, podem codificar em conjunto ou em separado, várias partes da informação, tal como o formato não retangular da primeira partição, o formato da segunda partição, a direção de divisão utilizada para dividir um bloco de imagem para obter as primeira e segunda partições, o primeiro vetor de movimento da primeira partição, o segundo vetor de movimento da segunda partição, etc.
[270] A figura 23 é um fluxograma ilustrando um método 5000 realizado no lado do decodificador. Na etapa S5001, o processo analisa um ou mais parâmetros de um fluxo de bits, onde os um ou mais parâmetros incluem um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição. Os um ou mais parâmetros incluindo o parâmetro de partição analisado do fluxo de bits podem codificar, em conjunto ou em separado, várias partes da informação, necessárias para o lado do decodificador realizar o mesmo processo de previsão que o realizado no lado do codificador, tal como o formato não retangular da primeira partição, o formato da segunda partição, a direção de divisão utilizada para dividir um bloco de imagem para obter as primeira e segunda partições, o primeiro vetor de movimento da primeira partição, o segundo vetor de movimento da segunda partição, etc. Na etapa S5002, o processo 5000 divide o bloco de imagem na pluralidade de partições com base no parâmetro de partição analisado do fluxo de bits. Na etapa S5003, o processo decodifica a primeira partição e a segunda partição, como divididas a partir do bloco de imagem.
[271] A figura 24 é uma tabela de parâmetros de partição de amostra ("o primeiro valor de índice") e os conjuntos de informação codificados em conjunto pelos parâmetros de partição, respectivamente, similares em natureza à tabela de amostra descrita acima na figura 15. Na figura 24, os parâmetros de partição ("os primeiros valores de índice") variam de 0 a 6 e codificam em conjunto o formato das primeira e segunda partições divididas a partir de um bloco de imagem, a direção de divisão de um bloco de imagem nas primeira e segunda partições, o primeiro vetor de movimento previsto para a primeira partição (figura 11, etapa S1002) e o segundo vetor de movimento previsto para a segunda partição (figura 11, etapa S1002). Especificamente, o parâmetro de partição 0 codifica que nenhuma das primeira e segunda partições possui um formato triangular, e, dessa forma, a informação de direção dividida é "N/A", a primeira informação de vetor de movimento é "N/A", e a segunda informação de vetor de movimento é "N/A".
[272] O parâmetro de partição 1 codifica as primeira e segunda partições como triângulos, a direção de divisão é do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor e movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 2 codifica as primeira e segunda partições como triângulos, a direção de divisão é do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "primeiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 3 codifica as primeira e segunda partições como triângulos, a direção de divisão é do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 4 codifica as primeira e segunda partições como triângulos, a direção de divisão é do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 5 codifica as primeira e segunda partições como triângulos, a direção de divisão é do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "terceiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 6 codifica as primeira e segunda partições como triângulos, a direção de divisão é do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "terceiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
[273] De acordo com algumas implementações, os parâmetros de partição (valores de índice) podem ser binarizados de acordo com algumas implementações, os parâmetros de partição (valores de índice) podem ser binarizados de acordo com um esquema de binarização, que é selecionado dependendo de um valor de pelo menos um ou um ou mais parâmetros. A figura 16 ilustra um esquema de binarização de amostras da binarização de valores de índice (os valores de parâmetro de partição).
[274] A figura 25 é uma tabela de combinações de amostras de um primeiro parâmetro e de um segundo parâmetro, onde um dos quais é um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição. Nesse exemplo, o parâmetro de partição pode ser utilizado para indicar a divisão de um bloco de imagem sem codificar em conjunto outra informação, que é codificada por um ou mais dos outros parâmetros.
[275] No primeiro exemplo da figura 25, o primeiro parâmetro é utilizado para indicar um tamanho de bloco de imagem, o segundo parâmetro é utilizado como o parâmetro de partição (um indicador) para indicar que pelo menos uma dentre uma pluralidade de partições divididas a partir de um bloco de imagem possui um formato triangular. Tal combinação de primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando o tamanho de bloco de imagem é superior a 64 x 64, não há partição de formato triangular, ou 2) quando a razão de largura e altura de um bloco de imagem é superior a 4 (por exemplo, 64 x 4), não há partição em formato triangular.
[276] No segundo exemplo da figura 25, o primeiro parâmetro é utilizado para indicar um modo de previsão, e o segundo parâmetro é utilizado como o parâmetro de partição (um indicador) para indicar que pelo menos uma dentre uma pluralidade de partições divididas a partir de um bloco de imagem possui um formato triangular. Tal combinação do primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando um bloco de imagem é codificado em intramodo, não há partição triangular.
[277] No terceiro exemplo da figura 25, o primeiro parâmetro é utilizado como o parâmetro de partição (um indicador) para indicar que pelo menos uma dentre uma pluralidade de partições divididas a partir de um bloco de imagem possui um formato triangular, e o segundo parâmetro é utilizado para indicar um modo de previsão. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar um modo de previsão. Tal combinação de primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando pelo menos uma dentre a pluralidade de partições divididas a partir de um bloco de imagem possui um formato triangular, o bloco de imagem deve ser intercodificado.
[278] No quarto exemplo da figura 25, o primeiro parâmetro indica o vetor de movimento de um bloco vizinho, e o segundo parâmetro é utilizado como o parâmetro de partição que indica a direção de divisão de um bloco de imagem em dois triângulos. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando o vetor de movimento de um bloco vizinho é uma direção diagonal, a direção de divisão do bloco de imagem em dois triângulos é do canto superior esquerdo para o canto inferior direito.
[279] No quinto exemplo da figura 25, o primeiro parâmetro indica a direção de intraprevisão de um bloco vizinho, e o segundo parâmetro é utilizado como o parâmetro de partição, que indica a direção de divisão de um bloco de imagem em dois triângulos. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando a direção de intraprevisão de um bloco vizinho é uma direção diagonal inversa, a direção de divisão do bloco de imagem em dois triângulos é do canto superior direito para o canto inferior esquerdo.
[280] Deve-se compreender que as tabelas de um ou mais parâmetros, incluindo o parâmetro de partição e que informação é codificada de forma conjunta ou separada, como ilustrado nas figuras 15, 24 e 25, são apresentadas como exemplos apenas e inúmeras outras formas de codificação, em conjunto ou separadamente, das várias informações, como parte da operação de sintaxe de partição descritas acima, estão dentro do escopo da presente descrição. Por exemplo, o parâmetro de partição pode indicar a primeira partição como um triângulo, um trapezoide, ou um polígono com pelo menos cinco lados e ângulos. O parâmetro de partição pode indicar que a segunda partição possui um formato não retangular, tal como um triângulo, um trapezoide, e um polígono, com pelo menos cinco lados e ângulos. O parâmetro de partição pode indicar uma ou mais partes de informação sobre a divisão, tal como o formato não retangular da primeira partição,
o formato da segunda partição (que pode ser não retangular ou retangular), a direção de divisão aplicada à divisão de um bloco de imagem em uma pluralidade de partições (por exemplo, com canto superior esquerdo do bloco de imagem para um canto inferior direito da mesma, e de um canto superior direito do bloco de imagem para um canto inferior esquerdo da mesma). O parâmetro de partição pode codificar em conjunto informação adicional, tal como o primeiro vetor de movimento da primeira partição, o segundo vetor de movimento da segunda partição, o tamanho do bloco de imagem, o modo de previsão, o vetor de movimento de um bloco vizinho, a direção de intraprevisão de um bloco vizinho, etc. Alternativamente, qualquer uma dentre as informações adicionais pode ser codificada separadamente por um ou mais parâmetros além do parâmetro de partição.
[281] Uma operação de sintaxe de partição, como o processo 4000 da figura 22, pode ser realizada por um codificador de imagem, como ilustrado na figura 1, por exemplo, incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de sintaxe de partição incluindo a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão (figura 22, etapa S4001); a codificação da primeira partição e da segunda partição (S4002); e a escrita de um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits (S4003).
[282] De acordo com outra modalidade, como ilustrado na figura 1, um codificador de imagem é fornecido incluindo um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um somador 104 que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão 128, e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador 106 que, em operação, realiza uma transformação nos resíduos enviados a partir do somador 104 para enviar os coeficientes de transformação; um quantizador 108 que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia 110 que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e o controlador de previsão 128 acoplado a um interprevisor 126, a um intraprevisor 124, e a uma memória 118, 122, onde o interprevisor 126, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor 124, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão 128, em operação, divide um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, com base em um parâmetro de partição indicativo da divisão (figura 22, etapa S4001), e codifica a primeira partição e a segunda partição (etapa S4002). O codificador por entropia 110, em operação, escreve um ou mais parâmetros incluindo o parâmetro de partição em um fluxo de bits (etapa S4003).
[283] De acordo com outra modalidade, um decodificador de imagem é fornecido, como ilustrado na figura 10, por exemplo, incluindo um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de sintaxe de partição incluindo a análise de um ou mais parâmetros a partir de um fluxo de bits, onde os um ou mais parâmetros incluem um parâmetro de partição que indica a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (figura 23,
etapa S5001); divide o bloco de imagem na pluralidade de partições com base no parâmetro de partição (S5002); e decodifica a primeira partição e a segunda partição (S5003).
[284] De acordo com uma modalidade adicional, um decodificador de imagem, como ilustrado na figura 10, é fornecido incluindo um decodificador por entropia 202 que, em operação, recebe e decodifica um fluxo de bits codificados para obter os coeficientes de transformação quantizados; um quantizador inverso 204 e transformador 206 que, em operação, quantizam de forma inversa os coeficientes de transformação, quantizados para obter os coeficientes de transformação e transformam de forma inversa os coeficientes de transformação para obter resíduos; um somador 208 que, em operação, adiciona os resíduos enviados a partir do quantizador inverso 204 e transformador 206 e previsões enviadas a partir de um controlador de previsão 220 para os blocos de reconstrução; e o controlador de previsão 220 acoplado a um interprevisor 218, a um intraprevisor 216 e a uma memória 210, 214, onde o interprevisor 218, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor 216, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O decodificador por entropia 202, em operação analisa um ou mais parâmetros a partir de um fluxo de bits, onde um ou mais parâmetros incluem um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (figura 23, etapa S5001); divide o bloco de imagem em uma pluralidade de partições com base no parâmetro de partição (S5002); e decodifica a primeira partição e a segunda partição (S5003) em cooperação com o controlador de previsão 220 em algumas implementações.
Implementações e Aplicações
[285] Como descrito em cada uma das modalidades acima, cada bloco funcional ou operacional pode ser tipicamente realizado como uma MPU (unidade de microprocessamento) e memória, por exemplo. Ademais, os processos realizados por cada um dos blocos funcionais podem ser realizados como uma unidade de execução de programa, tal como um processador que lê e executa software (um programa) gravado em um meio de gravação, tal como ROM. O software pode ser distribuído. O software pode ser gravado em uma variedade de meios de gravação, tal como memória semicondutora. Nota-se que cada bloco funcional também pode ser realizado como hardware (circuito dedicado).
[286] O processamento descrito em cada uma das modalidades pode ser realizado através de processamento integrado utilizando-se um aparelho singular (sistema) e, alternativamente, pode ser realizado através do processamento descentralizado utilizando uma pluralidade de aparelhos. Ademais, o processador que executa o programa descrito acima pode ser um processador singular ou uma pluralidade de processadores. Em outras palavras, o processamento integrado pode ser realizado e, alternativamente, o processamento descentralizado pode ser realizado.
[287] As modalidades da presente descrição não estão limitadas às modalidades ilustrativas acima; várias modificações podem ser feitas às modalidades ilustrativas, os resultados das quais também são incluídos no escopo das modalidades da presente descrição.
[288] A seguir, exemplos de aplicação do método de codificação de imagem em movimento (método de codificação de imagem) e o método de decodificação de imagem em movimento (método de decodificação de imagem), descritos em cada uma das modalidades acima, serão descritos, além de vários sistemas que implementam os exemplos de aplicação. Tal sistema pode ser caracterizado como incluindo um codificador de imagem que emprega o método de codificação de imagem, um decodificador de imagem que emprega o método de decodificação de imagem, ou um codificador-decodificador de imagem que inclui ambos o codificador de imagem e o decodificador de imagem. Outras configurações de tal sistema podem ser modificadas, caso a caso. Exemplos de Utilização
[289] A figura 26 ilustra uma configuração geral do sistema de fornecimento de conteúdo ex100 adequado para implementação de um serviço de distribuição de conteúdo. A área na qual o serviço de comunicação é fornecido é dividida em células de tamanhos desejados, e as estações base ex106, ex107, ex108, ex109 e ex110, que são estações sem fio fixas no exemplo ilustrado, estão localizadas nas respectivas células.
[290] No sistema de fornecimento de conteúdo ex100, os dispositivos incluindo o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, e o smartphone ex115 são conectados à Internet ex101 através do provedor de serviço de Internet ex102, ou rede de comunicações ex104, e estações base ex106 a ex110. O sistema de fornecimento de conteúdo ex100 pode combinar e conectar qualquer combinação dos dispositivos acima. Em várias implementações, os dispositivos podem ser diretamente ou indiretamente conectados juntos através de uma rede de telefonia ou comunicação de campo próximo, em vez de através das estações base ex106 a ex110. Adicionalmente, o sequenciamento do servidor ex103 pode ser conectado a dispositivos incluindo o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, e o smartphone ex115 através, por exemplo, da Internet ex101. O servidor de transmissão ex103 também pode ser conectado, por exemplo, a um terminal em um ponto de acesso no avião ex117 através do satélite ex116.
[291] Nota-se que em vez de estações base ex106 a ex110, os pontos de acesso sem fio ou ponto de acessos podem ser utilizados. O servidor de transmissão ex103 pode ser conectado à rede de comunicações ex104 diretamente, em vez de através da Internet ex101, ou provedor de serviços de Internet ex102, e pode ser conectado à aeronave ex117 diretamente, em vez de através do satélite ex116.
[292] A câmera ex113 é um dispositivo capaz de capturar imagens estáticas ou de vídeo, tal como uma câmera digital. O smartphone ex115 é um dispositivo tipo smartphone, um telefone celular, ou telefone do sistema handphone pessoal (PHS) que pode operar sob os padrões de sistema de comunicações móvel dos sistemas 2G, 3G, 3,9G e 4G, além do sistema de próxima geração 5G.
[293] Eletrodomésticos ex114, por exemplo, são um refrigerador ou um dispositivo incluído em um sistema de geração conjunta de célula de combustível doméstico.
[294] No sistema de fornecimento de conteúdo ex100, um terminal, incluindo uma função de captura de imagem e/ou vídeo pode, por exemplo, transmitir ao vivo através da conexão com o servidor de transmissão ex103 através, por exemplo, da estação base ex106. Quando da transmissão ao vivo, um terminal (por exemplo, um computador ex111, um dispositivo de jogos ex112, uma câmera ex113, um eletrodoméstico ex114, um smartphone ex115 ou aeronave ex117 pode realizar o processamento de codificação descrito nas modalidades acima no conteúdo de imagem estática ou vídeo, capturado por um usuário através do terminal, pode multiplexar os dados de vídeo obtidos através da codificação e dados de áudio obtidos pela codificação de áudio, correspondendo ao vídeo, e pode transmitir os dados obtidos para o servidor de transmissão ex103. Em outras palavras, o terminal funciona como o codificador de imagem, de acordo com um aspecto da presente descrição.
[295] O servidor de transmissão ex103 transmite os dados de conteúdo transmitidos para os clientes que solicitam a transmissão. Exemplos de cliente incluem o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, o smartphone ex115 e os terminais dentro da aeronave ex117, que podem decodificar os dados codificados descritos acima. Os dispositivos que recebem os dados transmitidos decodificam e reproduzem os dados recebidos. Em outras palavras, os dispositivos podem funcionar, cada um, como o decodificador de imagem, de acordo com um aspecto da presente descrição. Processamento Descentralizado
[296] O servidor de transmissão ex103 pode ser realizado como uma pluralidade de servidores ou computadores entre os quais as tarefas, tal como processamento, gravação e transmissão de dados, são divididas. Por exemplo, o servidor de transmissão ex103 pode ser realizado como uma rede de distribuição de conteúdo (CDN) que transmite o conteúdo através de uma rede que conecta múltiplos servidores de borda localizados por todo o mundo. Em uma CDN, um servidor de borda fisicamente próximo do cliente é dinamicamente designado para o cliente. O conteúdo é armazenado temporariamente e transmitido para o servidor de borda para reduzir os tempos de carga. No caso, por exemplo, de algum tipo de erro ou mudança na conectividade decorrente, por exemplo, de um pico no tráfego, é possível se transmitir os dados de forma estável em altas velocidades, visto que é possível se evitar partes afetadas da rede, por exemplo, pela divisão do processamento entre uma pluralidade de servidores de borda, ou comutando as tarefas de transmissão para um servidor de borda diferente e continuando com a transmissão.
[297] A descentralização não está limitada a apenas à divisão de processamento para a transmissão; a codificação de dados capturados pode ser dividida entre e realizada pelos terminais, no lado do servidor, ou ambos. Em um exemplo, na codificação típica, o processamento é realizado em dois circuitos. O primeiro circuito serve para detectar quão complicada a imagem está, quadro por quadro, ou cena por cena, ou detectar a carga de codificação. O segundo circuito serve como processamento que mantém a qualidade de imagem e aperfeiçoa a eficiência de codificação. Por exemplo, é possível se reduzir a carga de processamento dos terminais e aperfeiçoar a qualidade e eficiência de codificação do conteúdo fazendo com que os terminais realizem o primeiro circuito de codificação e fazendo com que o lado do servidor, que recebeu o conteúdo, realize o segundo circuito de codificação. Em tal caso, mediante o recebimento de uma solicitação de decodificação, é possível que os dados codificados resultantes do primeiro circuito realizado por um terminal sejam recebidos e reproduzidos em outro terminal, quase que em tempo real. Isso possibilita a realização da transmissão suave em tempo real.
[298] Em outro exemplo, a câmera ex113 ou similar extrai uma quantidade de características de uma imagem, comprime dados relacionados com a quantidade de características como metadados, e transmite os metadados comprimidos para um servidor. Por exemplo, o servidor determina a significância de um objeto com base na quantidade de características e mudanças na precisão de quantização de acordo para realizar a compressão adequada para o significado (ou significância de conteúdo) da imagem. Os dados de quantidade de características são particularmente eficientes no aperfeiçoamento da precisão e eficiência da previsão de vetor de movimento durante a segunda passagem de compressão realizada pelo servidor. Ademais, a codificação que possui uma carga de processamento relativamente baixa, tal como codificação de comprimento variável (VLC), pode ser manuseada pelo terminal, e a codificação que possui uma carga de processamento relativamente alta, tal como a codificação aritmética binária adaptativa de contexto (CABAC), pode ser manuseada pelo servidor.
[299] Em outro exemplo, existem casos nos quais uma pluralidade de vídeos aproximadamente da mesma cena é capturada por uma pluralidade de terminais, por exemplo, um estádio, um shopping center, ou fábrica. Em tal caso, por exemplo, a codificação pode ser descentralizada pela divisão de tarefas de processamento entre a pluralidade de terminais que capturaram os vídeos e, se necessário, outros terminais que não capturaram os vídeos, e o servidor, com base em unidade. As unidades podem ser, por exemplo, grupos de imagens (GOP), imagens ou tiles resultando da divisão de uma imagem. Isso possibilita reduzir os tempos de carregamento e alcançar as transmissões que estão mais próximas em tempo real.
[300] Visto que os vídeos são aproximadamente da mesma cena, o gerenciamento e/ou instruções podem ser realizados pelo servidor, de modo que os vídeos capturados pelos terminais possam ser referidos de forma cruzada. Ademais, o servidor pode receber dados codificados dos terminais, alterar a relação de referência entre os itens de dados, ou corrigir ou substituir as imagens propriamente ditas e, então, realizar a codificação. Isso possibilita a geração de um fluxo com qualidade e eficiência aumentadas para itens individuais de dados.
[301] Adicionalmente, o servidor pode transmitir dados de vídeo depois de realizar a transcodificação para converter o formato de codificação dos dados de vídeo. Por exemplo, o servidor pode converter o formato de codificação de MPEG para VP (por exemplo, VP9), e pode converter H.264 em H.265.
[302] Dessa forma, a codificação pode ser realizada por um terminal ou um ou mais servidores. De acordo, apesar de o dispositivo que realiza a codificação ser referido como um "servidor" ou "terminal" na descrição a seguir, alguns ou todos os processos realizados pelo servidor podem ser realizados pelo terminal, e, da mesma forma, alguns ou todos os processos realizados pelo terminal podem ser realizados pelo servidor. Isso também se aplica aos processos de decodificação. Múltiplos Ângulos, 3D
[303] Houve um aumento na utilização de imagens ou vídeos combinados a partir de imagens ou vídeos de cenas diferentes capturadas simultaneamente, ou da mesma cena capturada a partir de diferentes ângulos, por uma pluralidade de terminais, tal como a câmera ex113 e/ou o smartphone ex115. Vídeos capturados pelos terminais são combinados com base, por exemplo, na relação de posição relativa obtida separadamente entre os terminais, ou regiões em um vídeo possuindo pontos de características coincidentes.
[304] Em adição à codificação de imagens em movimento bidimensionais, o servidor pode codificar uma imagem estática com base na análise de cena de uma imagem em movimento, automaticamente ou em um momento especificado pelo usuário, e transmite a imagem estática codificada para um terminal de recepção. Adicionalmente, quando o servidor pode obter a relação de posição relativa entre os terminais de captura de vídeo, em adição às imagens em movimento bidimensionais, o servidor pode gerar a geometria tridimensional de uma cena com base no vídeo da mesma cena, capturado a partir de ângulos diferentes. O servidor pode codificar separadamente os dados tridimensionais gerados a partir, por exemplo, de uma nuvem e, com base em um resultado do reconhecimento ou rastreamento de uma pessoa ou objeto utilizando dados tridimensionais, pode selecionar ou reconstruir e gerar um vídeo a ser transmitido para um terminal de recepção, a partir de vídeos capturados por uma pluralidade de terminais.
[305] Isso permite que o usuário desfrute de uma cena pela seleção livre de vídeos correspondentes aos terminais de captura de vídeo, e permite que o usuário desfrute do conteúdo obtido pela extração de um vídeo em um ponto de vista selecionado, a partir de dados tridimensionais, reconstruídos a partir de uma pluralidade de imagens ou vídeos. Adicionalmente, como com o vídeo, som pode ser gravado a partir de ângulos relativamente diferentes, e o servidor pode multiplexar áudio a partir de um ângulo específico ou espaço com o vídeo correspondente, e transmitir o vídeo e áudio multiplexados.
[306] Recentemente, o conteúdo, que é um composto do mundo real e de um mundo virtual, tal como um conteúdo de realidade virtual (VR) e realidade aumentada (AR), também tem se tornado popular. No caso de imagens VR, o servidor pode criar imagens a partir dos pontos de vista de ambos os olhos, esquerdo e direito, e realizar a codificação que tolere a referência entre as imagens de dois pontos de vista, tal como a codificação de múltiplas visualizações (MVC) e, alternativamente, pode codificar as imagens como fluxos separados sem referência. Quando as imagens são decodificadas com fluxos separados, os fluxos podem ser sincronizados quando reproduzidos, de modo a recriar um espaço tridimensional virtual, de acordo com o ponto de vista do usuário.
[307] No caso de imagens AR, o servidor sobrepõe a informação de objeto virtual existente em um espaço virtual à informação de câmera que representa um espaço no mundo real, com base em uma posição tridimensional ou movimento da perspectiva do usuário. O decodificador pode obter ou armazenar informação de objeto virtual e dados tridimensionais, gerar imagens bidimensionais com base no movimento a partir da perspectiva do usuário, e, então, gerar dados sobrepostos pela conexão contínua das imagens. Alternativamente, o decodificador pode transmitir, para o servidor, o movimento a partir da perspectiva do usuário em adição a uma solicitação por informação de objeto virtual. O servidor pode gerar dados sobrepostos com base nos dados tridimensionais armazenados no servidor, de acordo com o movimento recebido, e codificar e transmitir os dados sobrepostos gerados para o decodificador. Nota-se que os dados sobrepostos incluem, em adição aos valores RGB, um valor  indicando transparência, e o servidor configura o valor  para seções além do objeto gerado a partir dos dados tridimensionais para, por exemplo, 0, e pode realizar a codificação enquanto essas seções estão transparentes. Alternativamente, o servidor pode configurar o plano de fundo para um valor RGB predeterminado, tal como uma chave de crominância, e gerar dados nos quais áreas, além do objeto, são configuradas como plano de fundo.
[308] A decodificação de dados transmitidos de forma similar pode ser realizada pelo cliente (isso é, os terminais), no lado do servidor, ou dividida entre os mesmos. Em um exemplo, um terminal pode transmitir uma solicitação de recepção para um servidor, o conteúdo solicitado pode ser recebido e decodificado por outro terminal, e um sinal decodificado pode ser transmitido para um dispositivo possuindo um monitor. É possível se reproduzir dados de alta qualidade de imagem pelo processamento de descentralização e seleção adequada de conteúdo independentemente da capacidade de processamento do terminal de comunicações propriamente dito. Em outro exemplo, enquanto uma TV, por exemplo, está recebendo dados de imagem que são grandes em tamanho, uma região de uma imagem, tal como um tile obtido pela divisão da imagem, pode ser decodificada e exibida em um terminal pessoal ou terminais de um espectador ou espectadores da TV. Isso possibilita que os espectadores compartilhem visualizações em tela grande além de permitir que cada espectador verifique sua área designada, ou inspecione uma região em maiores detalhes.
[309] Em situações nas quais uma pluralidade de conexões sem fio é possível através de curtas, médias e longas distâncias, internamente ou externamente, pode ser possível se receber continuamente o conteúdo utilizando um padrão de sistema de transmissão, tal como MPEG-DASH. O usuário pode comutar entre dados em tempo real, enquanto seleciona livremente um decodificador ou aparelho de exibição, incluindo o terminal do usuário, monitores dispostos internamente ou externamente, etc. Ademais, utilizando-se, por exemplo, a informação sobre a posição do usuário, é possível se realizar a decodificação enquanto se comuta entre qual terminal manuseia a decodificação e qual terminal manuseia a exibição de conteúdo. Isso possibilita o mapeamento e exibição da informação, enquanto o usuário está em movimento para um destino, perto da parede de um edifício próximo, no qual um dispositivo capaz de exibir o conteúdo está embutido, ou em parte do solo. Ademais, é possível também se comutar a taxa de bits dos dados recebidos com base na acessibilidade aos dados codificados em uma rede, tal como quando os dados codificados são armazenados temporariamente em um servidor rapidamente acessível a partir de um terminal de recepção, ou quando dados codificados são copiados em um servidor de borda em um serviço de distribuição de conteúdo. Codificação Escalonável
[310] A comutação de conteúdo será descrita com referência ao fluxo escalonável, ilustrado na figura 27, que é codificado por compressão através da implementação do método de codificação de imagem em movimento, descrito nas modalidades acima. O servidor pode possuir uma configuração na qual o conteúdo é comutado enquanto faz uso da capacidade de escalonamento temporal e/ou espacial de um fluxo, que é alcançada pela divisão e codificação das camadas, como ilustrado na figura 27. Nota-se que pode haver uma pluralidade de fluxos individuais que apresentam o mesmo conteúdo, mas apresentam qualidade diferente. Em outras palavras, pela determinação de que camada decodificar, com base em fatores internos, tal como capacidade de processamento no lado do decodificar, e fatores externos, tal como largura de banda de comunicação, o lado de decodificador pode comutar livremente entre conteúdo de baixa resolução e conteúdo de alta resolução, enquanto está decodificando. Por exemplo, em um caso no qual o usuário deseja continuar a assistir, por exemplo, em casa, em um dispositivo tal como a TV conectada à Internet, a um vídeo que o usuário estava assistindo anteriormente no smartphone ex115 enquanto estava em movimento, o dispositivo pode simplesmente decodificar a mesma transmissão para uma camada diferente, o que reduz a carga de lado de servidor.
[311] Adicionalmente, em adição à configuração descrita acima, na qual a capacidade de escalonamento é alcançada como resultado das imagens sendo codificadas por camada, com a camada de aperfeiçoamento estando acima da camada de base, a camada de aperfeiçoamento pode incluir metadados com base, por exemplo, na informação estatística sobre a imagem. O lado do decodificador pode gerar conteúdo de alta qualidade de imagem pela realização da criação de imagem de super-resolução em uma imagem na camada de base, com base nos metadados. A criação de imagem de super-resolução pode aperfeiçoar a razão de SN, enquanto mantém a resolução e/ou aumenta a resolução. Os metadados incluem informação para identificar um coeficiente de filtro linear ou não linear, como utilizado no processamento de super-resolução, ou informação identificando um valor de parâmetro no processamento de filtro, aprendizado de máquina, ou método de quadrados médios utilizado no processamento de super-resolução.
[312] Alternativamente, uma configuração pode ser fornecida, na qual uma imagem é dividida, por exemplo, em tiles de acordo com, por exemplo, o significado de um objeto na imagem. No lado do decodificador, apenas uma região parcial é decodificada pela seleção de um tile para decodificar. Adicionalmente, pelo armazenamento de um atributo do objeto (pessoa, carro, bola, etc.) e uma posição do objeto no vídeo (coordenadas nas imagens idênticas) como metadados, o lado do decodificador pode identificar a posição de um objeto desejado com base nos metadados e determinar qual tile ou tiles incluem esse objeto. Por exemplo, como ilustrado na figura 28, os metadados podem ser armazenados utilizando-se uma estrutura de armazenamento de dados diferente dos dados de pixel, tal como uma mensagem SEI (informação de aperfeiçoamento suplementar) em HEVC. Esses metadados indicam, por exemplo, a posição, tamanho, ou cor do objeto principal.
[313] Os metadados podem ser armazenados em unidades de uma pluralidade de imagens, tal como uma transmissão, sequência ou unidades de acesso randômico. O lado do decodificador pode, por exemplo, obter o momento no qual uma pessoa específica aparece no vídeo, e pelo encaixe da informação de tempo com a informação de unidade de imagem, pode identificar uma imagem na qual o objeto está presente, e pode determinar a posição do objeto na imagem. Otimização de Página de Rede
[314] A figura 29 ilustra um exemplo de uma tela de exibição de uma página de rede no computador ex111, por exemplo. A figura 30 ilustra um exemplo de uma tela de exibição de uma página da rede no smartphone ex115, por exemplo. Como ilustrado na figura 29 e na figura 30, uma página da rede pode incluir uma pluralidade de links de imagem que são links para o conteúdo de imagem, e o surgimento da página de rede difere dependendo do dispositivo utilizado para visualizar a página da rede. Quando uma pluralidade de links de imagem é visualizável na tela, até que o usuário selecione explicitamente um link de imagem, ou até que o link de imagem esteja no centro aproximado da tela ou todo o link de imagem encaixe na tela, o aparelho de exibição (decodificador) pode exibir, como os links de imagem, imagens estáticas incluídas no conteúdo ou imagens I; pode exibir vídeo, tal como um gif animado, utilizando uma pluralidade de imagens estáticas ou imagens I; ou pode receber apenas a camada de base, e decodificar e exibir o vídeo.
[315] Quando um link de imagem é selecionado pelo usuário, o aparelho de exibição realiza a decodificação enquanto fornece a maior prioridade para a camada de base. Nota-se que existe informação no código HTML da página da rede indicando que o conteúdo é escalonável, o aparelho de exibição pode decodificar até a camada de aperfeiçoamento. Adicionalmente, a fim de se garantir a reprodução em tempo real, antes de uma seleção ser feita ou quando a largura de banda é severamente limitada, o aparelho de exibição pode reduzir o retardo entre o momento no qual a imagem dianteira é decodificada e o momento no qual a imagem decodificada é exibida (isso é, o retardo entre o início da decodificação de conteúdo até a exibição de conteúdo) pela decodificação e exibição apenas das imagens de referência dianteiras (imagem I, imagem P, imagens B de referência dianteira). Adicionalmente ainda, o aparelho de exibição pode ignorar propositadamente a relação de referência entre as imagens, e decodificar de forma bruta todas as imagens B e P como imagens de referência dianteiras, e, então, realizar a decodificação normal à medida que o número de imagens recebidas com o tempo aumenta. Acionamento Autônomo
[316] Quando da transmissão e recepção de dados de imagem estática ou vídeo, tal como informação de mapa bi- ou tridimensional para o acionamento autônomo ou acionamento assistido de um automóvel, o terminal de recepção pode receber, em adição aos dados de imagem pertencentes a uma ou mais camadas, informação, por exemplo, sobre o clima ou construções na estrada como metadados, e associar os metadados aos dados de imagem depois da decodificação. Nota-se que os metadados podem ser designados por camada e, alternativamente, podem simplesmente ser multiplexados com os dados de imagem.
[317] Em tal caso, visto que o automóvel, drone, aeronave, etc. contendo o terminal de recepção é móvel, o terminal de recepção pode receber e realizar de forma contínua a decodificação, enquanto comuta entre as estações base, dentre as estações base ex106 a ex110, pela transmissão de informação indicando a posição do terminal de recepção. Ademais, de acordo com a seleção realizada pelo usuário, a situação do usuário e/ou a largura de banda da conexão, o terminal de recepção pode selecionar dinamicamente até que ponto os metadados são recebidos, ou até que ponto a informação de mapa, por exemplo, é atualizada.
[318] No sistema de fornecimento de conteúdo ex100, o cliente pode receber, decodificar e reproduzir, em tempo real, a informação codificada transmitida pelo usuário. Transmissão de Conteúdo Individual
[319] No sistema de fornecimento de conteúdo ex100, em adição ao conteúdo longo de alta qualidade de imagem distribuído por uma entidade de distribuição de vídeo, a transmissão por unidifusão ou multidifusão do conteúdo curto de baixa qualidade de imagem a partir de um indivíduo também é possível. Tal conteúdo de indivíduos deve aumentar ainda mais em popularidade. O servidor pode realizar primeiro o processamento de edição sobre o conteúdo antes do processamento de codificação, a fim de refinar o conteúdo individual. Isso pode ser alcançado utilizando-se a configuração a seguir, por exemplo.
[320] Em tempo real, enquanto se captura o conteúdo de vídeo ou imagem, ou depois que o conteúdo foi capturado e acumulado, o servidor realiza o processamento de reconhecimento com base em dados brutos ou dados codificados, tal como o processamento de erro de captura, processamento de busca por cena, análise de significado e/ou processamento de detecção de objeto, Então, com base no resultado do processamento de reconhecimento, o servidor, quando avisado ou automaticamente, edita o conteúdo, exemplos dos quais incluem a correção, tal como correção de foco e/ou manchas de movimento; remoção de cenas de baixa prioridade, tal como cenas que apresentam pouco brilho em comparação com outras imagens, ou imagens fora de foco; ajuste de borda de objeto, e ajuste de tom de cor. O servidor codifica os dados editados com base no resultado da edição. É sabido que vídeos excessivamente longos tendem a receber menos visualizações. De acordo, a fim de manter o conteúdo dentro de um comprimento específico que escalona com o comprimento do vídeo original, o servidor pode, em adição às cenas de baixa prioridade descritas acima, retirar automaticamente as cenas com baixo movimento, com base em um resultado de processamento de imagem. Alternativamente, o servidor pode gerar e codificar um vídeo compilado com base em um resultado de uma análise do significado de uma cena.
[321] Pode haver casos nos quais o conteúdo individual pode incluir conteúdo que infringe direitos autorais, direitos morais, direitos de imagem, etc. Tal caso pode resultar em uma situação desfavorável para o criador, tal como quando o conteúdo é compartilhado além do escopo destinado pelo criador. De acordo, antes da codificação, o servidor pode, por exemplo, editar as imagens de modo a desfocar o rosto das pessoas na periferia da tela ou desfocar o interior de uma casa, por exemplo. Adicionalmente, o servidor pode ser configurado para reconhecer as faces das pessoas além de uma pessoa registrada nas imagens a serem codificadas, e quando tais rostos aparecem em uma imagem, pode aplicar um filtro mosaico, por exemplo, ao rosto da pessoa. Alternativamente, como o pré ou pós-processamento para codificação, o usuário pode especificar, por questões de direitos autorais, uma região de uma imagem incluindo uma pessoa ou uma região do plano de fundo a ser processada. O servidor pode processar a região especificada, por exemplo, substituindo a região com uma imagem diferente, ou desfocando a região. Se a região incluir uma pessoa, a pessoa pode ser monitorada na imagem em movimento, e a região da cabeça da pessoa pode ser substituída por outra imagem à medida que a pessoa se move.
[322] Visto que existe uma demanda por visualização em tempo real do conteúdo produzido por indivíduos, que tende a ser reduzido em tamanho de dados, o decodificador primeiro recebe a camada de base como a prioridade mais alta, e realiza a decodificação e reprodução, apesar de isso poder diferir dependendo da largura de banda. Quando o conteúdo é reproduzido duas ou mais vezes, tal como quando o decodificador recebe a camada de aperfeiçoamento durante a decodificação e reprodução da camada de base, e realiza o circuito de reprodução, o decodificador pode reproduzir um vídeo de alta qualidade de imagem incluindo a camada de aperfeiçoamento. Se o fluxo for codificado utilizando-se tal codificação escalonável, o vídeo pode ter baixa qualidade quando em um estado não selecionado ou no início do vídeo, mas pode oferecer uma experiência na qual a qualidade de imagem do fluxo aumenta progressivamente de uma forma inteligente. Isso não está limitado a apenas a codificação escalonável; a mesma experiência pode ser oferecida pela configuração de um único fluxo a partir de um fluxo de baixa qualidade reproduzido pela primeira vez e um segundo fluxo codificado utilizando-se o primeiro fluxo como uma referência. Outra Implementação e Exemplos de Aplicação
[323] A codificação e decodificação podem ser realizadas por LSI (conjunto de circuitos de integração de grande escala) ex500 (ver figura 26), que é tipicamente incluído em cada terminal. LSI ex500 pode ser configurado a partir de um único chip ou uma pluralidade de chips. Software para codificar e decodificar imagens em movimento pode ser integrado a algum tipo de meio de gravação (tal como CD-ROM, um disco flexível, ou um disco rígido) que é legível por, por exemplo, um computador ex111, e a codificação e decodificação podem ser realizadas utilizando-se o software. Adicionalmente, quando o smartphone ex115 é equipado com uma câmera, os dados de vídeo obtidos pela câmera podem ser transmitidos. Nesse caso, os dados de vídeo são codificados por LSI ex500 incluído no smartphone ex115.
[324] Nota-se que LSI ex500 pode ser configurado para descarregar e ativar um aplicativo. Em tal caso, o primeiro terminal determina se é compatível com o esquema utilizado para codificar o conteúdo, ou se é capaz de executar um serviço específico. Quando o terminal não é compatível com o esquema de codificação do conteúdo, ou quando o terminal não é capaz de executar um serviço específico, o terminal primeiro descarrega um codec ou software de aplicativo e, então, obtém e reproduzir o conteúdo.
[325] Além do exemplo do sistema de fornecimento de conteúdo ex100 que utiliza a Internet ex101, pelo menos o codificador de imagem em movimento (codificador de imagem) ou o decodificador de imagem em movimento (decodificador de imagem) descrito nas modalidades acima pode ser implementado em um sistema de difusão digital. O mesmo processamento de codificação e processamento de decodificação pode ser aplicado para transmitir e receber ondas de rádio de difusão sobrepostas aos dados de áudio e vídeo multiplexados utilizando, por exemplo, um satélite, apesar de isso ser direcionado para a multidifusão, ao passo que a unidifusão é mais fácil com o sistema de fornecimento de conteúdo ex100. Configuração de Hardware
[326] A figura 31 ilustra detalhes adicionais do smartphone ex115 ilustrado na figura 26. A figura 32 ilustra um exemplo de configuração do smartphone ex115. O smartphone ex115 inclui a antena ex450 para transmitir e receber ondas de rádio para e da estação base ex110, câmera ex465 capaz de capturar vídeo e imagens estáticas, e o monitor ex458 que exibe os dados decodificados, tal como vídeo capturado pela câmera ex465 e vídeo recebido pela antena ex450. O smartphone ex115 inclui adicionalmente a interface de usuário ex466, tal como um painel de toque, uma unidade de saída de áudio ex457, tal como um alto falante para enviar fala ou outro áudio, unidade de entrada de áudio ex456, tal como um microfone para entrada de áudio, memória ex467 capaz de armazenar os dados decodificados, tal como vídeo ou imagens estáticas capturados, áudio gravado, vídeo ou imagens estáticas recebidos, e correio, além de dados decodificados, e partição ex464, que é uma interface para SIM ex468 para autorizar o acesso a uma rede e vários dados. Nota-se que a memória externa pode ser utilizada no lugar a memória ex467.
[327] O controlador principal ex460, que controla de forma profunda o monitor ex458 e a interface de usuário ex466, o circuito de suprimento de energia ex461, o controlador de entrada de interface ex462, o processador de sinal de vídeo ex455, a interface de câmera ex463, o controlador de exibição ex459, o modulador/demodulador ex452, o multiplexador/desmultiplexador ex453, o processador de sinal de áudio ex454, a partição ex464, e a memória ex467 são conectados através do barramento ex470.
[328] Quando o usuário liga o botão de energia do circuito de suprimento de energia ex461, o smartphone ex115 é energizado para um estado operacional, e cada componente é suprido com energia de um pacote de baterias.
[329] O smartphone ex115 realiza o processamento, por exemplo, para chamadas e transmissão de dados, com base no controle realizado pelo controlador principal ex460, que inclui uma CPU, uma ROM e uma RAM. Quando realizando chamadas, um sinal de áudio gravado pela unidade de entrada de áudio ex456 é convertido em um sinal de áudio digital pelo processador de sinal de áudio ex454, ao qual o processamento de espectro de espalhamento é aplicado pelo modulador/demodulador ex452 e a conversão de digital para analógica, e o processamento de conversão de frequência é aplicado pelo transmissor/receptor ex451, e o sinal resultante é transmitido através da antena ex450. Os dados recebidos são amplificados, convertidos em frequência, e convertidos de analógicos em digitais, processados pelo espectro de espalhamento inverso pelo modulador/demodulador ex452, convertidos em um sinal de áudio analógico pelo processador de sinal de áudio ex454, e, então, enviados a partir da unidade de saída de áudio ex457. No modo de transmissão de dados, dados de texto, imagem estática ou vídeo são transmitidos pelo controlador principal ex460 através do controlador de entrada de interface de usuário ex462, com base na operação da interface de usuário ex466 do corpo principal, por exemplo. O processamento de transmissão e recepção similar é realizado. No modo de transmissão de dados, quando do envio de um vídeo, imagem estática ou vídeo e áudio, o processador de sinal de vídeo ex455 codifica por compressão, através do método de codificação de imagem em movimento descrito nas modalidades acima, um sinal de vídeo armazenado na memória ex467 ou um sinal de vídeo registrado a partir da câmera ex465, e transmite os dados de vídeo codificados para o multiplexador/desmultiplexador ex453. O processador de sinal de áudio ex454 codifica um sinal de áudio gravado pela unidade de registro de áudio ex456, enquanto que a câmera ex465 está capturando um vídeo ou imagem estática, e transmite os dados de áudio codificados para o multiplexador/desmultiplexador ex453. O multiplexador/desmultiplexador ex453 multiplexa os dados de vídeo codificados e os dados de áudio codificados utilizando um esquema predeterminado, modula e converte os dados utilizando o modulador/demodulador (circuito de modulador/demodulador) ex452 e o transmissor/receptor ex451, e transmite o resultado através da antena ex450.
[330] Quando o vídeo anexado a um e-mail ou um chat, ou um vídeo conectado a partir de uma página da rede, é recebido, por exemplo, a fim de decodificar os dados multiplexados recebidos através da antena ex450, o multiplexador/desmultiplexador ex453 desmultiplexa os dados multiplexados para dividir os dados multiplexados em um fluxo de bits de dados de vídeo e um fluxo de bits de dados de áudio, supre os dados de vídeo codificados para o processador de sinal de vídeo ex455 através do barramento sincronizado ex470, e supre os dados de áudio codificados para o processador de sinal de áudio ex454 através do barramento sincronizado ex470. O processador de sinal de vídeo ex455 decodifica o sinal de vídeo utilizando um método de decodificação de imagem em movimento correspondendo ao método de codificação de imagem em movimento descrito nas modalidades acima, e vídeo ou uma imagem estática incluído no arquivo de imagem em movimento conectado é exibido no monitor ex458 através do controlador de exibição ex459. O processador de sinal de áudio ex454 decodifica o sinal de áudio e envia o áudio da unidade de saída de áudio ex457. Visto que a transmissão em tempo real está se tornando cada vez mais popular, pode haver casos nos quais a reprodução do áudio pode ser socialmente inadequada, dependendo do ambiente do usuário. De acordo, como um valor inicial, uma configuração na qual apenas os dados de vídeo são reproduzidos, isso é, o sinal de áudio não é reproduzido, é preferível que o áudio possa ser sincronizado e reproduzido apenas quando uma entrada, tal como quando o usuário clica nos dados de vídeo, é recebida.
[331] Apesar de o smartphone ex115 ter sido utilizado no exemplo acima, três outras implementações são concebíveis: um terminal transceptor, incluindo ambos um codificador e um decodificador; um terminal transmissor incluindo apenas um codificador; e um terminal receptor incluindo apenas um decodificador. Na descrição do sistema de difusão digital, um exemplo é fornecido no qual os dados multiplexados, obtidos como resultado de os dados de vídeo terem sido multiplexados com dados de áudio, são recebidos ou transmitidos. Os dados multiplexados, no entanto, podem ser dados de vídeo multiplexados com dados além dos dados de áudio, tal como dados de texto relacionados com o vídeo. Adicionalmente, os dados de vídeo propriamente ditos, em vez de dados multiplexados, podem ser recebidos ou transmitidos.
[332] Apesar de o controlador principal ex460, incluindo uma CPU, ser descrito como controlando os processos de codificação ou decodificação, vários terminais incluem frequentemente GPUs. De acordo, uma configuração é aceitável na qual uma grande área é processada de uma vez, fazendo-se uso da capacidade de desempenho da GPU através da memória compartilhada pela CPU e GPU, ou a memória incluindo um endereço que é gerenciado de modo a permitir a utilização comum pela CPU e GPU. Isso possibilita o encurtamento do tempo de codificação, a manutenção da natureza de tempo real do fluxo, e redução do retardo. Em particular, o processamento relacionado com a estimativa de movimento, filtragem de desbloqueio, desvio adaptativo de amostra (SAO), e transformação/quantização, pode ser efetivamente realizado pela GPU em vez de pela CPU em unidades de imagens, por exemplo, todas de uma vez.

Claims (38)

REIVINDICAÇÕES
1. Codificador de imagem, caracterizado pelo fato de compreender: um conjunto de circuitos; e uma memória acoplada ao conjunto de circuitos; onde o conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem, a operação de suavização de limite compreendendo: uma primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
2. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de o formato não retangular ser um triângulo.
3. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de o formato não retangular ser selecionado a partir de um grupo que consiste de um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
4. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de a segunda partição possuir um formato não retangular.
5. Codificador, de acordo com a reivindicação 1,
caracterizado pelo fato de pelo menos uma dentre a primeira previsão e a segunda previsão ser um processo de interprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada.
6. Codificador, de acordo com a reivindicação 5, caracterizado pelo fato de o processo de interprevisão prever os primeiros valores de pixels da primeira partição, incluindo o conjunto de pixels e prever os segundos valores e apenas o conjunto de pixels da primeira partição.
7. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de uma dentre a primeira previsão e a segunda previsão ser um processo de intraprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência codificada em uma imagem atual.
8. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de um método de previsão utilizado na primeira previsão ser diferente de um método de previsão utilizado na segunda previsão.
9. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de um número de conjuntos de pixels de cada fileira ou cada coluna, para o qual os primeiros valores e os segundos valores são previstos, ser um inteiro.
10. Codificador, de acordo com a reivindicação 9, caracterizado pelo fato de, quando o número de conjuntos de pixels de cada fileira ou cada coluna for igual a quatro, pesos de 1/8, 1/4, 3/4 e 7/8 serem aplicados aos primeiros valores dos quatro pixels no conjunto, respectivamente, e os pesos de 7/8, 3/4, 1/4 e 1/8 serem aplicados aos segundos valores dos quatro pixels no conjunto, respectivamente.
11. Codificador, de acordo com a reivindicação 9, caracterizado pelo fato de, quando o número de conjuntos de pixels de cada fileira ou cada coluna for igual a 2, pesos de 1/3 e 2/3 serem aplicados aos primeiros valores dos dois pixels no conjunto, respectivamente, e pesos de 2/3 e 1/3 serem aplicados aos segundos valores dos dois pixels no conjunto, respectivamente.
12. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de pelo menos parte dos pesos ser de valores inteiros.
13. Codificador, de acordo com a reivindicação 1, caracterizado pelo fato de pelo menos parte dos pesos ser de valores fracionados.
14. Codificador de imagem, caracterizado pelo fato de compreender: um divisor que, em operação, recebe e divide uma imagem original em blocos; um somador que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão, e subtrai cada previsão de seu bloco correspondente para enviar um resíduo; um transformador que, em operação, realiza uma transformação nos resíduos enviados a partir do somador para os coeficientes de transformação de saída; um quantizador que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia que, em operação, codifica os coeficientes de transformação quantizados para gerar um fluxo de bits; e o controlador de previsão acoplado a um interprevisor, a um intraprevisor, e a uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência, em uma imagem de referência codificada, e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual; onde o controlador de previsão, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição que possui um formato não retangular e uma segunda partição, que são divididas a partir de um bloco de imagem, a operação de suavização de limite incluindo: a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
15. Codificador, de acordo com a reivindicação 14, caracterizado pelo fato de o formato não retangular ser um triângulo.
16. Codificador, de acordo com a reivindicação 14, caracterizado pelo fato de a segunda partição possuir um formato não retangular.
17. Método de codificação de imagem para realizar uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem, caracterizado pelo fato de compreender: a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
18. Método, de acordo com a reivindicação 17, caracterizado pelo fato de o formato não retangular ser um triângulo.
19. Método, de acordo com a reivindicação 17, caracterizado pelo fato de a segunda partição possuir um formato não retangular.
20. Decodificador de imagem, caracterizado pelo fato de compreender: um conjunto de circuitos; uma memória acoplada ao conjunto de circuitos; onde o conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição; que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem, a operação de suavização de limite incluindo: a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a decodificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
21. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de o formato não retangular ser um triângulo.
22. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de o formato não retangular ser selecionado a partir de um grupo que consiste de um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
23. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de a segunda partição possuir um formato não retangular.
24. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de pelo menos uma dentre a primeira previsão e a segunda previsão ser um processo de interprevisão que prevê os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada.
25. Decodificador, de acordo com a reivindicação 24, caracterizado pelo fato de o processo de interprevisão prever os primeiros valores de pixels da primeira partição, incluindo o primeiro conjunto de pixels e prever os segundos valores apenas do conjunto de pixels da primeira partição.
26. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de pelo menos uma dentre a primeira previsão e a segunda previsão ser um processo de intraprevisão que prevê os primeiros valores e os segundos valores com base na partição de referência codificada em uma imagem atual.
27. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de um método de previsão, utilizado na primeira previsão, ser diferente de um método de previsão utilizando na segunda previsão.
28. Decodificador, de acordo com a reivindicação 20,
caracterizado pelo fato de um número de conjuntos de pixels de cada fileira ou cada coluna, para o qual os primeiros valores e os segundos valores são previstos, ser um número inteiro.
29. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de, quando o número de conjuntos de pixels de cada fileira ou cada coluna for igual a quatro, os pesos de 1/8, 1/4, 3/4 e 7/8 serem aplicados aos primeiros valores dos quatro pixels no conjunto, respectivamente, e os pesos de 7/8, 3/4, 1/4 e 1/8 serem aplicados aos segundos valores dos quatro pixels no conjunto, respectivamente.
30. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de o número de conjuntos de pixels de cada fileira ou cada coluna ser igual a dois, os pesos de 1/3 e 2/3 serem aplicados aos primeiros valores dos dois pixels no conjunto, respectivamente, e os pesos de 2/3 e 1/3 serem aplicados aos segundos valores de dois pixels no conjunto, respectivamente.
31. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de pelo menos alguns dos pesos serem valores inteiros.
32. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de alguns dos pesos serem valores fracionados.
33. Decodificador de imagem, caracterizado pelo fato de compreender: um decodificador por entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficientes de transformação quantizados; um quantizador e transformador inverso que, em operação, quantiza de forma inversa os coeficientes de transformação quantizados para obter os coeficientes de transformação e transforma de forma inversa os coeficientes de transformação para obter resíduos;
um somador que, em operação, adiciona os resíduos enviados a partir do quantizador e transformador inverso e previsões enviadas a partir de um controlador de previsão para os blocos reconstruídos; e o controlador de previsão acoplado a um interprevisor, a um intraprevisor, e a uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual; onde o controlador de previsão, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem, a operação de suavização de limite incluindo: a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição; uma segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a decodificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
34. Decodificador, de acordo com a reivindicação 33, caracterizado pelo fato de o formato não retangular ser um triângulo.
35. Decodificador, de acordo com a reivindicação 33, caracterizado pelo fato de a segunda partição possuir um formato não retangular.
36. Método de decodificação de imagem para realizar uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem, caracterizado pelo fato de compreender: a primeira previsão de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição; a segunda previsão de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição; a ponderação dos primeiros valores e dos segundos valores; e a decodificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
37. Método, de acordo com a reivindicação 36, caracterizado pelo fato de o formato não retangular ser um triângulo.
38. Método, de acordo com a reivindicação 36, caracterizado pelo fato de a segunda partição possuir um formato não retangular.
Petição 870200015730, de 03/02/2020, pág. 122/170
DIVISOR TRANSFORMADOR QUANTIZADOR CODIFICADOR
DE ENTROPIA
QUANTIZADOR
INVERSO 1/37
TRANSFORMADOR
INVERSO
CONTROLADOR
DE PREDIÇÃO INTRA- MEMÓRIA
PREDITOR DE BLOCO INTER- MEMÓRIA
DE
FILTRO
PREDITOR DE LOOP
QUADRO
PARAMETROS DE PREDIÇÃO
TIPO DE TRANSFORMADA FUNÇÃO DE BASE
ONDE
ONDE
0: PLANO
INÍCIO
OBTER MV DE BLOCO ESQUERDO VIZINHO OBTER IMAGEM DE PREDIÇÃO POR MV_L
CORRIGIR IMAGEM DE PREDIÇÃO POR SOBREPOSIÇÃO PONDERADA DE Pred_L
OBTER MV DE BLOCO SUPERIOR VIZINHO OBTER IMAGEM DE PREDIÇÃO POR MV_U
CORRIGIR IMAGEM DE PREDIÇÃO POR SOBREPOSIÇÃO PONDERADA DE Pred_U
FIM
IMAGEM DE REFERÊNCIA IMAGEM CORRENTE
BLOCO SUPERIOR
VIZINHO
BLOCO CORRENTE
BLOCO ESQUERDO
VIZINHO
IMAGEM
DE PREDIÇÃO
FINAL
INÍCIO
INICIAR LOOP DE PROCESSAMENTO DE FRUC GERAR LISTA DE MVs CANDIDATOS
SELECIONAR MELHOR MV CANDIDATO
PESQUISAR VIZINHANÇA DE MELHOR
MV CANDIDATO
TERMINAR LOOP DE PROCESSAMENTO DE FRUC
FIM
DE MOVIMENTO
TRAJETÓRIA
BLOCO CORRENTE
CORRENTE
IMAGEM
BLOCO CORRENTE
CORRENTE
IMAGEM
MODELO
IMAGEM CORRENTE (IMAGEM B)
IMAGEM DE REFERÊNCIA
IMAGEM CORRENTE CODIFICADA Petição 870200015730, de 03/02/2020, pág. 133/170 12/37
MESCLAR
LISTA DE PREDITOR PREDITOR PREDITOR PREDITOR
DE MV DE MV DE MV DE MV PREDITOR PREDITOR PREDITOR
PREDITORES DE MV DE MV
ESPACIALMENTE ESPACIALMENTE ESPACIALMENTE ESPACIALMENTE DE MV DE MV VIZINHO 1 VIZINHO 2 VIZINHO 3 VIZINHO 4 COMBINADO 5 COMBINADO 6 ZERO 7
CANDIDATO
SELECIONAR UM PREDITOR DE MV DA LISTA DE PREDITORES DE MV E DESIGNAR COMO MV PARA BLOCO CORRENTE
Petição 870200015730, de 03/02/2020, pág. 134/170
MODELO GERADO COM BASE EM PIXEL DE REFERÊNCIA DE MV CANDIDATO (L0) E PIXEL DE REFERÊNCIA DE MV CANDIDATO (L1) 13/37
MV CANDIDATO (L0)
MV CANDIDATO (L1)
BLOCO CORRENTE
PRIMEIRA IMAGEM IMAGEM DE REFERÊNCIA SEGUNDA IMAGEM DE REFERÊNCIA (L0) DE REFERÊNCIA (L1)
IMAGEM DE REFERÊNCIA IMAGEM CORRENTE
BLOCO CORRENTE
CIRCUNDAR
REGIÕES DE
REFERÊNCIA
PARA CORREÇÃO
DE LUMINÂNCIA
CALCULAR
PARÂMETRO
DE CORREÇÃO
DE LUMINÂNCIA
PROCESSAMENTO
DE CORREÇÃO
DE LUMINÂNCIA
IMAGEM DE REFERÊNCIA IMAGEM DE PREDIÇÃO
Petição 870200015730, de 03/02/2020, pág. 136/170
DECODIFICADOR QUANTIZADOR TRANSFORMADOR FILTRO
DE ENTROPIA INVERSO INVERSO DE LOOP 15/37
CONTROLADOR
DE PREDIÇÃO INTRA- MEMÓRIA
PREDITOR DE BLOCO INTER- MEMÓRIA
PREDITOR DE
QUADRO
PARÂMETROS DE PREDIÇÃO
INÍCIO Petição 870200015730, de 03/02/2020, pág. 137/170
DIVIDIR UM BLOCO DE IMAGEM EM PARTIÇÕES QUE INCLUEM UMA PRIMEIRA PARTIÇÃO QUE TEM UMA FORMA NÃO RETANGULAR E UMA SEGUNDA PARTIÇÃO, A QUAL PODE OU NÃO TER UMA FORMA NÃO RETANGULAR (FIGURAS 12 & 17-19) PREDIZER UM PRIMEIRO VETOR DE MOVIMENTO PARA A PRIMEIRA PARTIÇÃO (POR EXEMPLO, COMO SELECIONADO DE UM PRIMEIRO CONJUNTO DE CANDIDATOS DE VETOR DE MOVIMENTO) E UM SEGUNDO VETOR DE MOVIMENTO PARA A SEGUNDA PARTIÇÃO (POR EXEMPLO, COMO SELECIONADO DE UM SEGUNDO CONJUNTO DE CANDIDATOS DE VETOR DE MOVIMENTO)
EXECUTAR UM PROCESSO DE COMPENSAÇÃO DE MOVIMENTO PARA OBTER A PRIMEIRA PARTIÇÃO UTILIZANDO O
PRIMEIRO VETOR DE MOVIMENTO E OBTER A SEGUNDA PARTIÇÃO UTILIZANDO O SEGUNDO VETOR DE MOVIMENTO 16/37 EXECUTAR UM PROCESSO DE PREDIÇÃO PARA O BLOCO DE IMAGEM COMO UMA COMBINAÇÃO (RECONSTRUÍDA) DA PRIMEIRA PARTIÇÃO E DA SEGUNDA PARTIÇÃO (POR EXEMPLO, PONDERANDO PIXELS AO LONGO DE UM LIMITE SOBREPOSTO ENTRE A PRIMEIRA PARTIÇÃO E A SEGUNDA PARTIÇÃO (FIGURAS 13, 14, 20 & 21))
CODIFICAR OU DECODIFICAR O BLOCO DE IMAGEM UTILIZANDO UM OU MAIS PARÂMETROS QUE INCLUEM UM
PARÂMETRO DE PARTIÇÃO INDICATIVO DA DIVISÃO DO BLOCO DE IMAGEM NA PRIMEIRA PARTIÇÃO QUE TEM A FORMA NÃO RETANGULAR E NA SEGUNDA PARTIÇÃO, EM QUE O PARÂMETRO DE PARTIÇÃO PODE JUNTAMENTE CODIFICAR, POR EXEMPLO, UMA DIREÇÃO DE DIVISÃO APLICADA NA DIVISÃO E O PRIMEIRO E SEGUNDO VETORES DE MOVIMENTO (FIGURAS 15, 16 & 22-25)
FIM
Petição 870200015730, de 03/02/2020, pág. 138/170 O 1O VALOR DE AMOSTRA SOBREPOSTA É 1/8 DO 1O VALOR DE AMOSTRA SOBREPOSTA DA 1A PARTIÇÃO MAIS 7/8 DO 1O VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO O 2O VALOR DE AMOSTRA SOBREPOSTA É 1/4 DO 2O VALOR DE AMOSTRA SOBREPOSTA DA 1A PARTIÇÃO MAIS 3/4 DO 2O VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO O 3O VALOR DE AMOSTRA SOBREPOSTA É 3/4 DO 3O VALOR DE AMOSTRA SOBREPOSTA DA 1A PARTIÇÃO MAIS 1/4 DO 3O VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO
DIREITO O 4O VALOR DE AMOSTRA SOBREPOSTA É 7/8 DO 4O VALOR DE AMOSTRA SOBREPOSTA DA 1A PARTIÇÃO MAIS 1/8 DO 4O VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO
DIVIDIR DOS CANTOS
SUPERIORES ESQUERDOS
PARA CANTOS INFERIORES 17/37 A 1A
PARTIÇÃO
ESQUERDOS A 2A PARTIÇÃO
DIVIDIR DOS CANTOS
SUPERIORES DIREITOS
A PRIMEIRA E A SEGUNDA PARTIÇÕES SOBREPÕEM QUATRO AMOSTRAS
PARA CANTOS INFERIORES
Petição 870200015730, de 03/02/2020, pág. 139/170 O 1O VALOR DE AMOSTRA SOBREPOSTA É 1/3 DO 1O VALOR DE O VALOR DE AMOSTRA SOBREPOSTA É METADE AMOSTRA SOBREPOSTA DA 1A PARTIÇÃO MAIS 2/3 DO 1O VALOR
A DO VALOR DE AMOSTRA SOBREPOSTA DA 1 DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO
PARTIÇÃO MAIS METADE DO VALOR DE O 2O VALOR DE AMOSTRA SOBREPOSTA É 2/3 DO 2O VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO AMOSTRA SOBREPOSTA DA 1A PARTIÇÃO MAIS 1/3 DO 2O VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO A 1A PARTIÇÃO A 1A PARTIÇÃO A 1A PARTIÇÃO 18/37 A 2A PARTIÇÃO A 2A PARTIÇÃO A 2A PARTIÇÃO
A PRIMEIRA E A SEGUNDA A PRIMEIRA E A SEGUNDA PARTIÇÕES A PRIMEIRA E A SEGUNDA PARTIÇÕES
PARTIÇÕES NÃO SOBREPÕEM SOBREPÕEM UMA AMOSTRA SOBREPÕEM DUAS AMOSTRAS
A direção de Petição 870200015730, de 03/02/2020, pág. 140/170
O primeiro valor divisão do bloco O vetor de movimento da primeira partição O vetor de movimento da segunda de índice de imagem em partição dois triângulos Do canto superior esquerdo O segundo vetor de movimento na primeira lista O primeiro vetor de movimento na segunda lista para canto inferior direito de predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento Do canto superior direito O primeiro vetor de movimento na primeira lista O segundo vetor de movimento na segunda lista para canto inferior esquerdo de predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento Do canto superior direito O segundo vetor de movimento na primeira lista O primeiro vetor de movimento na segunda lista para canto inferior esquerdo de predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento 19/37 Do canto superior esquerdo O segundo vetor de movimento na primeira lista O segundo vetor de movimento na segunda lista para canto inferior direito de predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento Do canto superior direito O segundo vetor de movimento na primeira lista O terceiro vetor de movimento na segunda lista para canto inferior esquerdo de predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento Do canto superior esquerdo O terceiro vetor de movimento na primeira lista O primeiro vetor de movimento na segunda lista para canto inferior direito de predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento Do canto superior esquerdo O quarto vetor de movimento na primeira lista de O primeiro vetor de movimento na segunda lista para canto inferior direito predição de candidatos de vetor de movimento de predição de candidatos de vetor de movimento
ÍNDICE BINARIZAÇÃO
Petição 870200015730, de 03/02/2020, pág. 142/170
INÍCIO
DIVIDIR UM BLOCO DE IMAGEM EM UMA PLURALIDADE DE
PARTIÇÕES QUE INCLUI UMA PRIMEIRA PARTIÇÃO QUE TEM UMA FORMA NÃO RETANGULAR E UMA SEGUNDA PARTIÇÃO,
A QUAL PODE OU NÃO TER UMA FORMA NÃO RETANGULAR
PREDIZER UM PRIMEIRO VETOR DE MOVIMENTO PARA A PRIMEIRA PARTIÇÃO (POR EXEMPLO, COMO SELECIONADO DE UM PRIMEIRO CONJUNTO DE CANDIDATOS DE VETOR DE MOVIMENTO) E UM SEGUNDO VETOR DE 21/37 MOVIMENTO PARA A SEGUNDA PARTIÇÃO (POR EXEMPLO, COMO
SELECIONADO DE UM SEGUNDO CONJUNTO DE CANDIDATOS DE VETOR DE MOVIMENTO)
CODIFICAR OU DECODIFICAR A PRIMEIRA PARTIÇÃO UTILIZANDO
O PRIMEIRO VETOR DE MOVIMENTO E A SEGUNDA PARTIÇÃO
UTILIZANDO O SEGUNDO VETOR DE MOVIMENTO
FIM
Petição 870200015730, de 03/02/2020, pág. 143/170 22/37
DUAS PARTIÇÕES MAIS DO QUE COMBINAÇÃO DE COMBINAÇÃO DE
DE FORMA DUAS PARTIÇÕES PARTIÇÕES DE PARTIÇÕES DE FORMA
TRIANGULAR DE FORMA TRIANGULAR E
FORMA TRIANGULAR
TRIANGULAR DE POLÍGONO
E RETANGULAR
Petição 870200015730, de 03/02/2020, pág. 144/170
UMA PARTIÇÃO UMA PARTIÇÃO EM
EM FORMA DE FORMA DE POLÍGONO
PENTÁGONO 23/37
UMA PARTIÇÃO EM UMA PARTIÇÃO UMA PARTIÇÃO EM UMA PARTIÇÃO EM
FORMA DE L EM FORMA DE FORMA DE HEXÁGONO FORMA DE POLÍGONO
PENTÁGONO
INÍCIO Petição 870200015730, de 03/02/2020, pág. 145/170
DIVIDIR UM BLOCO DE IMAGEM EM UMA PRIMEIRA PARTIÇÃO E UMA SEGUNDA PARTIÇÃO AO LONGO DE UM LIMITE, EM QUE PELO MENOS A PRIMEIRA PARTIÇÃO TEM UMA FORMA NÃO RETANGULAR
PREDIZER PRIMEIROS VALORES DE UM CONJUNTO DE PIXELS DA PRIMEIRA PARTIÇÃO AO LONGO DO LIMITE, EM QUE OS PRIMEIROS VALORES SÃO PREDITOS PRIMEIRO UTILIZANDO
INFORMAÇÕES DA PRIMEIRA PARTIÇÃO
PREDIZER SEGUNDOS VALORES DO CONJUNTO DE PIXELS EM QUE OS SEGUNDOS VALORES 24/37
SÃO PREDITOS SEGUNDO UTILIZANDO INFORMAÇÕES DA SEGUNDA PARTIÇÃO
PONDERAR OS PRIMEIROS VALORES E OS SEGUNDOS VALORES
CODIFICAR OU DECODIFICAR A PRIMEIRA PARTIÇÃO UTILIZANDO OS PRIMEIROS
PONDERADOS E OS SEGUNDO VALORES PONDERADOS
Petição 870200015730, de 03/02/2020, pág. 146/170 AO CONJUNTO DE PIXELS,
A 2 PARTIÇÃO PREDITO UTILIZANDO AS PIXELS DE LIMITE INFORMAÇÕES DA 1A PARTIÇÃO E 2A PARTIÇÃO (AS INFORMAÇÕES
PODEM SER VETOR DE MOVIMENTO 25/37 OU DIREÇÃO DE INTRAPREDIÇÃO) 1A PARTIÇÃO LIMITE 1A PARTIÇÃO
A A2
PARTIÇÃO A 1A
PARTIÇÃO CINCO AMOSTRAS DE CADA COLUNA / FILA
A PRIMEIRA E A SEGUNDA PARTIÇÕES SOBREPÕEM CINCO AMOSTRAS
A 1A PARTIÇÃO TRÊS AMOSTRAS DE CADA COLUNA / FILA
O SEGUNDO CONJUNTO
DE AMOSTRAS
O PRIMEIRO CONJUNTO
DE AMOSTRAS
Petição 870200015730, de 03/02/2020, pág. 149/170
INÍCIO
DIVIDIR UM BLOCO DE IMAGEM EM UMA PLURALIDADE DE PARTIÇÕES QUE INCLUI UMA
PRIMEIRA PARTIÇÃO QUE TEM UMA FORMA NÃO RETANGULAR E UMA SEGUNDA PARTIÇÃO, A QUAL PODE OU NÃO TER UMA FORMA NÃO RETANGULAR, COM BASE EM
UM PARÂMETRO DE PARTIÇÃO INDICATIVO DA DIVISÃO
CODIFICAR A PRIMEIRA PARTIÇÃO E A SEGUNDA PARTIÇÃO 28/37
ESCREVER UM OU MAIS PARÂMETROS QUE INCLUEM O PARÂMETRO DE PARTIÇÃO EM UM FLUXO DE BITS, EM QUE UMA OU MAIS DA FORMA DE PARTIÇÃO NÃO RETANGULAR (POR EXEMPLO, TRIÂNGULO), UMA DIREÇÃO DE DIVISÃO APLICADA PARA DIVIDIR O BLOCO DE IMAGEM NA PLURALIDADE DE PARTIÇÕES, UM PRIMEIRO VETOR DE MOVIMENTO DA PRIMEIRA PARTIÇÃO, E UM SEGUNDO VETOR DE MOVIMENTO DA SEGUNDA PARTIÇÃO
PODEM SER JUNTAMENTE CODIFICADOS PELO PARÂMETRO DE PARTIÇÃO OU
SEPARADAMENTE CODIFICADOS PELOS UM OU MAIS PARÂMETROS OUTROS QUE
O PARÂMETRO DE PARTIÇÃO
FIM
INÍCIO Petição 870200015730, de 03/02/2020, pág. 150/170 ANALISAR UM OU MAIS PARÂMETROS DE UM FLUXO DE BITS, EM QUE OS UM OU MAIS
PARÂMETROS INCLUEM UM PARÂMETRO DE PARTIÇÃO INDICATIVO DE DIVISÃO DE UM
BLOCO DE IMAGEM EM UMA PLURALIDADE DE PARTIÇÕES QUE INCLUI UMA PRIMEIRA
PARTIÇÃO QUE TEM UMA FORMA NÃO RETANGULAR E UMA SEGUNDA PARTIÇÃO EM QUE UMA OU MAIS DA FORMA DE PARTIÇÃO NÃO RETANGULAR (POR EXEMPLO, TRIÂNGULO), UMA DIREÇÃO DE DIVISÃO APLICADA PARA DIVIDIR O BLOCO DE IMAGEM NA PLURALIDADE DE PARTIÇÕES, UM PRIMEIRO VETOR DE MOVIMENTO DA PRIMEIRA PARTIÇÃO, E UM SEGUNDO VETOR DE MOVIMENTO DA SEGUNDA PARTIÇÃO PODEM
SER JUNTAMENTE CODIFICADOS PELO PARÂMETRO DE PARTIÇÃO OU SEPARADAMENTE
CODIFICADOS PELOS UM OU MAIS PARÂMETROS OUTROS QUE O PARÂMETRO DE 29/37
PARTIÇÃO
DIVIDIR O BLOCO DE IMAGEM NA PLURALIDADE DE PARTIÇÕES COM BASE NO
PARÂMETRO DE PARTIÇÃO
DECODIFICAR A PRIMEIRA PARTIÇÃO E A SEGUNDA PARTIÇÃO
FIM
O primeiro valor A forma de duas partições A direção de divisão O vetor de movimento O vetor de movimento divididas do bloco do bloco de imagem de índice da primeira partição da segunda partição de imagem em dois triângulos
Petição 870200015730, de 03/02/2020, pág. 151/170 Forma não triangular
O segundo vetor de movimento O primeiro vetor de movimento Do canto superior esquerdo Forma triangular na primeira lista de predição de na segunda lista de predição de para canto inferior direito candidatos de vetor de movimento candidatos de vetor de movimento
O primeiro vetor de movimento O segundo vetor de movimento Forma triangular Do canto superior direito para na primeira lista de predição na segunda lista de predição de canto inferior esquerdo de candidatos de vetor candidatos de vetor de movimento de movimento O segundo vetor de movimento Do canto superior direito para na primeira lista de predição O primeiro vetor de movimento na Forma triangular 30/37 canto inferior esquerdo de candidatos de vetor de segunda lista de predição de movimento candidatos de vetor de movimento
O segundo vetor de movimento O segundo vetor de movimento na Forma triangular Do canto superior esquerdo na primeira lista de predição de segunda lista de predição de para canto inferior direito candidatos de vetor candidatos de vetor de movimento de movimento O segundo vetor de movimento O terceiro vetor de movimento na Do canto superior direito na primeira lista de predição segunda lista de predição de Forma triangular para canto inferior esquerdo de candidatos de vetor de candidatos de vetor movimento de movimento O terceiro vetor de movimento O primeiro vetor de movimento na Forma triangular Do canto superior esquerdo na primeira lista de predição de segunda lista de predição de para canto inferior direito candidatos de vetor candidatos de vetor de movimento de movimento
Primeiro parâmetro Segundo parâmetro Exemplo Petição 870200015730, de 03/02/2020, pág. 152/170 Tamanho de bloco 1) Quando o tamanho de bloco é maior do que 64x64, Um sinalizador para indicar que pelo não existe partição de formar triangular. menos uma de partições plurais divididas de um bloco de imagem é de forma triangular 2) Quando a razão de largura e altura é maior do que 4 (por exemplo, 64x4), não existe partição de formar triangular. Modo de predição Um sinalizador para indicar que pelo 1) Quando um bloco de imagem é codificado em intramodo, menos uma de partições plurais não existe partição de formar triangular divididas de um bloco de imagem é de forma triangular Um sinalizador para indicar que Modo de predição 31/37 1) Quando pelo menos uma de partições plurais divididas pelo menos uma de partições de um bloco de imagem é de forma triangular, o bloco plurais divididas de um bloco de imagem deve ser intercodificado de imagem é de forma triangular 1) O vetor de movimento do bloco vizinho está na direção O vetor de movimento A direção de divisão de um bloco diagonal, a direção de divisão o bloco de imagem em dois de bloco vizinho de imagem em dois triângulos triângulos é do canto superior esquerdo para canto inferior direito.
1) A direção de intrapredição de bloco vizinho é uma direção A direção de intrapredição A direção de divisão de um bloco diagonal inversa, a direção de divisão do bloco de imagem em de bloco vizinho de imagem em dois triângulos dois triângulos é do canto superior direito para canto inferior esquerdo.
AVIÃO Petição 870200015730, de 03/02/2020, pág. 153/170
SATÉLITE
SERVIDOR DE FLUXO
COMPUTADOR 32/37
DISPOSITIVO DE JOGOS
REDE
INTERNET DE
COMUNICAÇÕES
CÂMERA
UTENSÍLIO
DOMÉSTICO
PROVEDOR DE SERVIÇO SMARTPHONE
DE INTERNET
MELHORAMENTO
CAMADA DE BASE
CAMADA DE
TEMPORAL
CAMADA
Petição 870200015730, de 03/02/2020, pág. 155/170
CAMADA UNIDADE DE ACESSO
TEMPORAL
FATIA
CAMADA DE
MELHORAMENTO 34/37
CAMADA DE BASE
CONTROLADOR
DISPLAY DE DISPLAY CIRCUITO DE FONTE PARA CADA
DE ALIMENTAÇÃO COMPONENTE
CONTROLADOR TRANSMISSOR / MODULADOR /
RECEPTOR PRINCIPAL
DEMODULADOR
MEMÓRIA
FENDA MULTIPLEXADOR /
DEMULTIPLEXADOR
INTERFACE
PROCESSADOR DE DE CÂMERA CÂMERA
SINAL DE VÍDEO
UNIDADE DE
ENTRADA DE ÁUDIO
CONTROLADOR
PROCESSADOR DE ENTRADA INTERFACE
DE SINAL DE DE INTERFACE
UNIDADE DE ÁUDIO DE USUÁRIO
DE USUÁRIO
SAÍDA DE ÁUDIO
BR112020002254-3A 2017-08-22 2018-08-10 codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem BR112020002254A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762548684P 2017-08-22 2017-08-22
US62/548,684 2017-08-22
US201862698810P 2018-07-16 2018-07-16
US62/698,810 2018-07-16
PCT/JP2018/030064 WO2019039324A1 (en) 2017-08-22 2018-08-10 IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD

Publications (1)

Publication Number Publication Date
BR112020002254A2 true BR112020002254A2 (pt) 2020-08-04

Family

ID=65439065

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020002254-3A BR112020002254A2 (pt) 2017-08-22 2018-08-10 codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem

Country Status (11)

Country Link
US (3) US10869051B2 (pt)
EP (1) EP3673651A4 (pt)
JP (2) JP7102508B2 (pt)
KR (1) KR20200038947A (pt)
CN (7) CN115150613B (pt)
AU (2) AU2018320382B2 (pt)
BR (1) BR112020002254A2 (pt)
CA (1) CA3072997A1 (pt)
MX (6) MX2020001889A (pt)
TW (4) TWI824963B (pt)
WO (1) WO2019039324A1 (pt)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101905830B1 (ko) 2016-11-15 2018-10-08 울산과학기술원 국부 냉각 마취 장치, 국부 냉각 마취 장치의 제어 방법 및 국부 냉각 마취 장치의 냉각 온도 조절기
KR20180131352A (ko) 2017-05-30 2018-12-10 주식회사 리센스메디컬 의료용 냉각 장치
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
KR102517065B1 (ko) 2017-12-29 2023-04-03 주식회사 리센스메디컬 냉각발생장치
JP6808889B2 (ja) * 2018-03-29 2021-01-06 日本放送協会 画像符号化装置、画像復号装置、及びプログラム
CN114983672A (zh) 2018-04-27 2022-09-02 雷森斯医疗有限公司 冷却装置和冷却方法
US11695967B2 (en) * 2018-06-22 2023-07-04 Op Solutions, Llc Block level geometric partitioning
EP3828447B1 (en) 2018-07-25 2022-04-13 NOK Corporation Sealing device
US11666479B2 (en) 2018-08-19 2023-06-06 Recensmedical, Inc. Device for cooling anesthesia by chilled fluidic cooling medium
EP3888360A1 (en) * 2018-11-30 2021-10-06 InterDigital VC Holdings, Inc. Triangle and multi-hypothesis combination for video coding and decoding
US20220070475A1 (en) * 2018-12-18 2022-03-03 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording media storing bitstream
KR20230019266A (ko) * 2018-12-21 2023-02-07 삼성전자주식회사 삼각 예측 모드를 이용하는 영상 부호화 장치 및 영상 복호화 장치, 및 이에 의한 영상 부호화 방법 및 영상 복호화 방법
GB2580326A (en) * 2018-12-28 2020-07-22 British Broadcasting Corp Video encoding and video decoding
US20200213595A1 (en) * 2018-12-31 2020-07-02 Comcast Cable Communications, Llc Methods, Systems, And Apparatuses For Adaptive Processing Of Non-Rectangular Regions Within Coding Units
JP2022537426A (ja) * 2019-06-21 2022-08-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 幾何学的分割モードのためのクロマサンプル重みの導出
CN113055685B (zh) * 2019-06-24 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN110289909A (zh) * 2019-06-28 2019-09-27 华南理工大学 基于光流法的室外可见光通信目标信号源追踪提取方法
WO2021062772A1 (zh) * 2019-09-30 2021-04-08 Oppo广东移动通信有限公司 预测方法、编码器、解码器及计算机存储介质
GB2588406B (en) * 2019-10-22 2022-12-07 British Broadcasting Corp Video encoding and video decoding
KR102340263B1 (ko) 2020-05-25 2021-12-16 김수철 자동폴딩 에어간판
USD968627S1 (en) 2020-08-07 2022-11-01 Recensmedical, Inc. Medical cooling device
USD968626S1 (en) 2020-08-07 2022-11-01 Recensmedical, Inc. Medical cooling device
USD977633S1 (en) 2020-08-07 2023-02-07 Recensmedical, Inc. Cradle for a medical cooling device
US11689715B2 (en) 2020-09-28 2023-06-27 Tencent America LLC Non-directional intra prediction for L-shape partitions
US20220109863A1 (en) * 2020-10-02 2022-04-07 Tencent America LLC Method and apparatus for video coding
CN114982228A (zh) * 2020-10-16 2022-08-30 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
TW202339504A (zh) * 2022-03-18 2023-10-01 聯發科技股份有限公司 幾何分割模式及合併候選重排
WO2024035939A1 (en) * 2022-08-12 2024-02-15 Beijing Dajia Internet Information Technology Co., Ltd Method and apparatus for cross-component prediction for video coding

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771667B1 (ko) * 2006-05-10 2007-11-01 김일동 이동식 포집기
EP2050279B1 (en) * 2006-08-02 2018-08-29 Thomson Licensing Adaptive geometric partitioning for video decoding
MX2009003333A (es) 2006-09-29 2009-05-12 Thomson Licensing Intra prediccion geometrica.
US7756348B2 (en) * 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
BRPI0818344A2 (pt) * 2007-10-12 2015-04-22 Thomson Licensing Métodos e aparelhos para codificação e decodificação de vídeo de partições de modo bi-preditivo geometricamente particionadas
JP2012089905A (ja) * 2009-01-13 2012-05-10 Hitachi Ltd 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法
CN102648631B (zh) * 2009-12-01 2016-03-30 数码士控股有限公司 用于编码/解码高分辨率图像的方法和设备
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
EP2375754A1 (en) * 2010-04-09 2011-10-12 Mitsubishi Electric R&D Centre Europe B.V. Weighted motion compensation of video
CN102845062B (zh) * 2010-04-12 2015-04-29 高通股份有限公司 用于几何运动分割的定点实施方案
TWI600318B (zh) * 2010-05-18 2017-09-21 Sony Corp Image processing apparatus and image processing method
JP2012023597A (ja) 2010-07-15 2012-02-02 Sony Corp 画像処理装置及び画像処理方法
KR101681303B1 (ko) * 2010-07-29 2016-12-01 에스케이 텔레콤주식회사 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
US9338476B2 (en) * 2011-05-12 2016-05-10 Qualcomm Incorporated Filtering blockiness artifacts for video coding
US9883203B2 (en) * 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
HUE040137T2 (hu) * 2013-03-15 2019-02-28 Qualcomm Inc Predikátor mélységtérkép-intrakódoláshoz
WO2015006884A1 (en) 2013-07-19 2015-01-22 Qualcomm Incorporated 3d video coding with partition-based depth inter coding
CN105794210B (zh) * 2013-12-06 2019-05-10 联发科技股份有限公司 视频编码系统中用于边界像素的运动补偿预测方法及装置
US9756359B2 (en) * 2013-12-16 2017-09-05 Qualcomm Incorporated Large blocks and depth modeling modes (DMM'S) in 3D video coding
US9609343B1 (en) * 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
CN103957415B (zh) * 2014-03-14 2017-07-11 北方工业大学 基于屏幕内容视频的cu分割方法和装置
US10136161B2 (en) * 2014-06-24 2018-11-20 Sharp Kabushiki Kaisha DMM prediction section, image decoding device, and image coding device
US10097838B2 (en) * 2014-10-13 2018-10-09 Futurewei Technologies, Inc. System and method for depth map coding for smooth depth map area
JP6664819B2 (ja) * 2014-11-14 2020-03-13 ホアウェイ・テクノロジーズ・カンパニー・リミテッド デジタル画像のブロックのマスクベースの処理のためのシステムおよび方法
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) * 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)

Also Published As

Publication number Publication date
CN115118992A (zh) 2022-09-27
TW202304203A (zh) 2023-01-16
CN115118995B (zh) 2024-02-06
CN115118994B (zh) 2024-02-06
TW202332271A (zh) 2023-08-01
AU2018320382A1 (en) 2020-02-27
CN115118992B (zh) 2024-02-06
CN115118996A (zh) 2022-09-27
TWI781076B (zh) 2022-10-11
CN115150613A (zh) 2022-10-04
CN115118993A (zh) 2022-09-27
AU2018320382B2 (en) 2023-02-02
EP3673651A1 (en) 2020-07-01
AU2023202734A1 (en) 2023-05-18
US10869051B2 (en) 2020-12-15
MX2020001889A (es) 2020-03-24
MX2023008313A (es) 2023-07-24
MX2023008311A (es) 2023-07-24
JP2020532227A (ja) 2020-11-05
KR20200038947A (ko) 2020-04-14
US20210058636A1 (en) 2021-02-25
US11876991B2 (en) 2024-01-16
CN115118994A (zh) 2022-09-27
TW201921929A (zh) 2019-06-01
EP3673651A4 (en) 2020-07-01
JP7102508B2 (ja) 2022-07-19
CN115150613B (zh) 2024-02-06
TWI770254B (zh) 2022-07-11
TW202239202A (zh) 2022-10-01
TWI824963B (zh) 2023-12-01
MX2023008312A (es) 2023-07-24
US20240114160A1 (en) 2024-04-04
CN115118993B (zh) 2024-02-06
MX2023008310A (es) 2023-07-24
CN111034197B (zh) 2022-07-12
CN111034197A (zh) 2020-04-17
CN115118995A (zh) 2022-09-27
WO2019039324A1 (en) 2019-02-28
US20200007882A1 (en) 2020-01-02
CA3072997A1 (en) 2019-02-28
MX2023008321A (es) 2023-07-24
JP2022125243A (ja) 2022-08-26
TWI801319B (zh) 2023-05-01

Similar Documents

Publication Publication Date Title
BR112020002254A2 (pt) codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
JP7179832B2 (ja) 画像符号化装置
TWI790273B (zh) 影像編碼器、影像解碼器、影像編碼方法及影像解碼方法(二)
JP7086240B2 (ja) 画像復号装置及び復号方法
BR112020026686A2 (pt) Sistema e método para codificação de vídeo
BR112021001156A2 (pt) sistema e método para codificação de vídeo
BR112020000876A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação, e método de decodificação
BR112021014711A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020001579A2 (pt) codificador, decodificador, método de codificação, método de decodificação
BR112020000219A2 (pt) codificação, método de codificação, decodificador e método de decodificação
BR112020021718A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112021001245A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112021001890A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112020019800A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021000616A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021011019A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020016755A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
TWI836681B (zh) 影像編碼方法、影像解碼方法及非暫時性電腦可讀取媒體
WO2019225346A1 (ja) 符号化装置、復号装置、符号化方法、復号方法及びピクチャ圧縮プログラム
TW202415064A (zh) 影像編碼器、影像解碼器及非暫時性電腦可讀取媒體

Legal Events

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