BR112020002205A2 - 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
BR112020002205A2
BR112020002205A2 BR112020002205-5A BR112020002205A BR112020002205A2 BR 112020002205 A2 BR112020002205 A2 BR 112020002205A2 BR 112020002205 A BR112020002205 A BR 112020002205A BR 112020002205 A2 BR112020002205 A2 BR 112020002205A2
Authority
BR
Brazil
Prior art keywords
division
partition
image
block
motion vector
Prior art date
Application number
BR112020002205-5A
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 BR112020002205A2 publication Critical patent/BR112020002205A2/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A presente invenção refere-se a um codificador de imagem, que inclui os circuitos e uma memória acoplada ao circuito. Os circuitos, em operação, executam uma operação de sintaxe da divisão, que inclui: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular (por exemplo, uma forma triangular) e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão; codificar a primeira divisão e a segunda divisão; e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits.

Description

Relatório Descritivo da Patente de Invenção para "CODIFI- CADOR DE IMAGEM, DECODIFICADOR DE IMAGEM, MÉTODO DE
CODIFICAÇÃO DE IMAGEM E MÉTODO DE DECODIFICAÇÃO DE IMAGEM". Campo Técnico
[001] A presente invenção refere-se à codificação de vídeo e, particularmente, aos 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 ba- se em um bloco de referência codificado/decodificado em um quadro atual. Técnica Antecedente
[002] Com o avanço da tecnologia de codificação de vídeo, de H.261 e MPEG-1 a H.264/AVC (codificação de vídeo avançada), MPEG-LA, H.265/HEVC (codificação de vídeo de alta eficiência) e H.266/VVC (codificação de vídeo versátil), há ainda uma necessidade constante de fornecer melhorias e otimizações à tecnologia de codifi- cação de vídeo para processar uma quantidade cada vez maior de da- dos de vídeo digital em várias aplicações. Esta divulgação refere-se a outros avanços, aprimoramentos e otimizações na codificação de ví- deo, particularmente, em conjunto com uma função de interprevisão ou uma função de intraprevisão, dividindo um bloco de imagem em uma pluralidade de divisões, que inclui pelo menos uma primeira divisão que tem uma forma não retangular (por exemplo, um triângulo) e uma segunda divisão. Sumário da Invenção
[003] De acordo com um aspecto, é fornecido um codificador de imagem que inclui circuitos e uma memória acoplada aos circuitos. Os circuitos, em operação, executam uma operação de sintaxe de divisão,
que inclui: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão; codificar a primeira divisão e a segunda divisão; e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits.
[004] Algumas implementações de modalidades da presente di- vulgação podem melhorar uma eficiência de codificação, podem ser simplesmente um processo de codificação/decodificação, podem ace- lerar uma velocidade do processo de codificação/decodificação, po- dem selecionar com eficiência componentes/operações apropriados usados na codificação e decodificação, como filtro apropriado, tama- nho de bloco, vetor de movimento, imagem de referência, bloco de re- ferência, etc.
[005] Os benefícios e vantagens adicionais das modalidades di- vulgadas serão evidentes a partir da especificação e dos desenhos. Os benefícios e/ou vantagens podem ser obtidos individualmente pe- las várias modalidades e características da especificação e desenhos, nem todos os quais precisam ser fornecidos para obter um ou mais desses benefícios e/ou vantagens.
[006] Deve-se entender que as modalidades gerais ou específi- cas podem ser implementadas como um sistema, um método, um cir- cuito integrado, um programa de computador, um meio de armazena- mento ou qualquer combinação seletiva dos mesmos. Breve Descrição dos Desenhos
[007] A figura 1 é um diagrama de blocos que ilustra uma confi- guração funcional de um codificador de acordo com uma modalidade; a figura 2 ilustra um exemplo de divisão de blocos; a figura 3 é uma tabela que indica as funções básicas de transformação de vários tipos de transformação;
a figura 4A ilustra um exemplo de uma forma de filtro usada em ALF (filtro de loop adaptável); a figura 4B ilustra outro exemplo de uma forma de filtro usada no ALF; a figura 4C ilustra outro exemplo de uma forma de filtro usada no ALF; a figura 5A ilustra 67 modos de intraprevisão utilizados em um exemplo de intraprevisão; a figura 5B é um fluxograma que ilustra um exemplo de um processo de correção de imagem de previsão realizado no processa- mento de OBMC (compensação de movimento de bloco sobreposto); a figura 5C é um diagrama conceitual que ilustra um exem- plo de um processo de correção de imagem de previsão realizado no processamento de OBMC; a figura 5D é um fluxograma que ilustra um exemplo de processamento FRUC (conversão de taxa de quadros); a figura 6 ilustra um exemplo de correspondência de padrão (correspondência bilateral) entre dois blocos ao longo de uma trajetória de movimento; a figura 7 ilustra um exemplo de correspondência de padrão (correspondência de padrão) entre um padrão na imagem atual e um bloco em uma figura de referência; a figura 8 ilustra um padrão que assume o movimento linear uniforme; a figura 9A ilustra um exemplo de derivação de um vetor de movimento de cada sub-bloco com base nos vetores de movimento de blocos próximos; a figura 9B ilustra um exemplo de um processo para derivar um vetor de movimento no modo de mesclagem; a figura 9C é um diagrama conceitual que ilustra um exem-
plo de processamento de DMVR (atualização de vetor de movimento dinâmico); a figura 9D ilustra um exemplo de um método de geração de imagem de previsão com o uso de um processo de correção de lu- minância realizado pelo processamento de LIC (compensação de ilu- minação local); a figura 10 é um diagrama de blocos que ilustra uma confi- guração funcional do decodificador de acordo com uma modalidade; a figura 11 é um fluxograma que ilustra um fluxo de proces- so geral de divisão de um bloco de imagem em uma pluralidade de divisões, que inclui pelo menos uma primeira divisão com uma forma não retangular (por exemplo, um triângulo) e uma segunda divisão e executando o processamento adicional de acordo com uma modalida- de; a figura 12 ilustra dois métodos de exemplo para dividir um bloco de imagem em uma primeira divisão com uma forma não retan- gular (por exemplo, um triângulo) e uma segunda divisão (também com uma forma não retangular nos exemplos ilustrados); a figura 13 ilustra um exemplo de um processo de suaviza- ção de limite envolvendo a ponderação dos primeiros valores de pixels de limite previstos com base na primeira divisão e dos segundos valo- res dos pixels de limite previstos com base na segunda divisão; a figura 14 ilustra três amostras adicionais de um processo de suavização de limite envolvendo a ponderação dos primeiros valo- res de pixels de limite previstos com base na primeira divisão e dos segundos valores dos pixels de limite previstos com base na segunda divisão; a figura 15 é uma tabela de parâmetros de amostra ("pri- meiros valores de índice") e conjuntos de informações respectivamen- te codificados pelos parâmetros;
a figura 16 é uma tabela que ilustra a banalização de parâ- metros (valores de índice); a figura 17 é um fluxograma que ilustra um processo para dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão que tem uma forma não retangular e uma segun- da divisão; a figura 18 ilustra exemplos de divisão de um bloco de ima- gem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular, que é um triângulo nos exemplos ilus- trados e uma segunda divisão; a figura 19 ilustra outros exemplos de divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular, que é um polígono com pelo menos cinco lados e ângulos nos exemplos ilustrados e uma segunda divisão; a figura 20 é um fluxograma que ilustra um processo de su- avização de limite envolvendo a ponderação dos primeiros valores de pixels de limite previstos com base na primeira divisão e dos segundos valores dos pixels de limite previstos com base na segunda divisão; a figura 21A ilustra um exemplo de um processo de suavi- zação de limite em que os pixels de limite para os quais os primeiros valores a serem ponderados são previstos com base na primeira divi- são e os segundos valores a serem ponderados são previstos com ba- se na segunda divisão; a figura 21B ilustra um exemplo de um processo de suavi- zação de limite em que os pixels de limite para os quais os primeiros valores a serem ponderados são previstos com base na primeira divi- são e os segundos valores a serem ponderados são previstos com ba- se na segunda divisão; a figura 21C ilustra um exemplo de um processo de suavi-
zação de limite em que os pixels de limite para os quais os primeiros valores a serem ponderados são previstos com base na primeira divi- são e os segundos valores a serem ponderados são previstos com ba- se na segunda divisão; a figura 21D ilustra um exemplo de um processo de suavi- zação de limite em que os pixels de limite para os quais os primeiros valores a serem ponderados são previstos com base na primeira divi- são e os segundos valores a serem ponderados são previstos com ba- se na segunda divisão; a figura 22 é um fluxograma que ilustra um método realiza- do no lado do codificador para dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma for- ma não retangular e uma segunda divisão, com base em um parâme- tro de divisão indicativo da divisão, e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits na codificação de entropia; a figura 23 é um fluxograma que ilustra um método realiza- do no lado do decodificador para analisar um ou mais parâmetros de um fluxo de bits, que inclui um parâmetro de divisão indicativo de divi- são de um bloco de imagem em uma pluralidade de divisões, que in- clui uma primeira divisão com uma forma não retangular e uma segun- da divisão; e dividir o bloco de imagem na pluralidade de divisões com base no parâmetro de divisão e decodificar a primeira e a segunda di- visão; a figura 24 é uma tabela de parâmetros de divisão de amostra ("primeiros valores de índice") que indicam respectivamente a divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma se- gunda divisão e conjuntos de informações que podem ser codificados em conjunto pelos parâmetros da divisão, respectivamente;
a figura 25 é uma tabela de combinações de amostras de um primeiro parâmetro e de um segundo parâmetro, um dos quais sendo um parâmetro de divisão indicativo da divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divi- são com uma forma não retangular e uma segunda divisão; 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; a figura 27 ilustra um exemplo de uma estrutura de codifi- cação em codificação escalável; a figura 28 ilustra um exemplo de uma estrutura de codifi- cação em codificação escalável; a figura 29 ilustra um exemplo de uma tela de exibição de uma página da web; a figura 30 ilustra um exemplo de uma tela de exibição de uma página da web; a figura 31 ilustra um exemplo de um smartphone; a figura 32 é um diagrama de blocos que ilustra um exem- plo de configuração de um smartphone Descrição das Modalidades
[008] De acordo com um aspecto, é fornecido um codificador de imagem que inclui circuitos e uma memória acoplada ao circuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma for- ma não retangular e uma segunda divisão; prever um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão; e codificar a primeira divisão com o uso do primeiro vetor de movimento e a segunda divisão com o uso do se- gundo vetor de movimento.
[009] De acordo com outro aspecto, a segunda divisão tem uma forma não retangular. De acordo com outro aspecto, a forma não re- tangular é um triângulo. De acordo com um aspecto adicional, a forma não retangular é selecionada de um grupo que consiste em um triân- gulo, um trapézio e um polígono com pelo menos cinco lados e ângu- los.
[0010] De acordo com outro aspecto, a previsão inclui a seleção do primeiro vetor de movimento de um primeiro conjunto de candidatos de vetor de movimento e a seleção do segundo vetor de movimento a partir de um segundo conjunto de candidatos de vetor de movimento. Por exemplo, o primeiro conjunto de candidatos de vetor de movimen- to pode incluir os vetores de movimento de divisões próximas à primei- ra divisão e o segundo conjunto de candidatos de vetor de movimento pode incluir os vetores de movimento de divisões próximas à segunda divisão. As divisões próximas à primeira divisão e as divisões próximas à segunda divisão podem estar fora do bloco de imagem do qual a primeira e a segunda divisão estão divididas. As divisões próximas po- dem ser uma ou ambas divisões espacialmente próximas e divisões próximas temporárias. O primeiro conjunto de candidatos de vetor de movimento pode ser igual ou diferente do segundo conjunto de candi- datos de vetor de movimento.
[0011] De acordo com outro aspecto, a previsão inclui selecionar um primeiro candidato de vetor de movimento a partir de um primeiro conjunto de candidatos de vetor de movimento e derivar o primeiro ve- tor de movimento ao adicionar uma primeira diferença de vetor de mo- vimento ao primeiro candidato de vetor de movimento e ao selecionar um segundo candidato de vetor de movimento e ao selecionar um se- gundo candidato de vetor de movimento de um segundo conjunto de candidatos de vetor de movimento e derivar o segundo vetor de movi- mento ao adicionar uma diferença de segundo vetor de movimento ao segundo candidato de vetor de movimento.
[0012] De acordo com outro aspecto, é fornecido um codificador de imagem, que inclui: um divisor que, em operação, recebe e divide uma imagem original em blocos; um somador que, em operação, re- cebe os blocos do divisor e as previsões de um controlador de previ- são e subtrai cada previsão do seu bloco correspondente para gerar um resíduo; um transformador que, em operação, realiza uma trans- formação nos resíduos emitidos do somador para emitir os coeficien- tes de transformação; um quantizador que, em operação, quantifica os coeficientes de transformação para gerar os coeficientes de transfor- mação quantizados; um codificador de entropia que, em operação, co- difica os coeficientes de transformação quantizados para gerar um flu- xo de bits; e o controlador de previsão acoplado a um interpreditor, um intrapreditor e uma memória, em que o interpreditor, em operação, ge- ra uma previsão de um bloco atual com base em um bloco de referên- cia em uma imagem de referência codificada e o preditor 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 previ- são, em operação, divide os blocos em uma pluralidade de divisões, que inclui uma primeira divisão que tem uma forma não retangular e uma segunda divisão; prevê um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão; e codifica a primeira divisão com o uso do primeiro vetor de movimento e a segunda divisão com o uso do segundo vetor de movi- mento.
[0013] De acordo com outro aspecto, é fornecido um método de codificação de imagem, que inclui, em geral, três etapas: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma pri- meira divisão com uma forma não retangular e uma segunda divisão; prever um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão; e codificar a primeira divisão com o uso do primeiro vetor de movimento e a segun- da divisão com o uso do segundo vetor de movimento.
[0014] De acordo com outro aspecto, é fornecido um decodificador de imagem que inclui circuitos e uma memória acoplada ao circuito. Os circuitos, em operação, executam: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão; prever um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movi- mento para a segunda divisão; e decodificar a primeira divisão com o uso do primeiro vetor de movimento e a segunda divisão com o uso do segundo vetor de movimento.
[0015] De acordo com outro aspecto, a segunda divisão tem uma forma não retangular. De acordo com outro aspecto, a forma não re- tangular é um triângulo. De acordo com um aspecto adicional, a forma não retangular é selecionada de um grupo que consiste em um triân- gulo, um trapézio e um polígono com pelo menos cinco lados e ângu- los.
[0016] De acordo com outro aspecto, é fornecido um decodificador de imagem que inclui: um decodificador de entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficien- tes de transformação quantizados; um quantizador e transformador inverso que, em operação, quantificam inversamente os coeficientes de transformação quantizados para obter os coeficientes de transfor- mação e transformam inversamente os coeficientes de transformação para obter resíduos; um somador que, em operação, adiciona os resí- duos gerados pelo quantizador inverso e transformador e as previsões emitidas por um controlador de previsão para reconstruir blocos; e o controlador de previsão acoplado a um interpreditor, um intrapreditor e uma memória, em que o interpreditor, em operação, gera uma previ- são de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o preditor, 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 divisões, que inclui uma primeira divisão que tem uma forma não retangular e uma segunda divisão; prevê um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão; e decodifica a primeira divisão com o uso do primeiro vetor de movimento e a segunda divisão com o uso do segundo vetor de movi- mento.
[0017] De acordo com outro aspecto, é fornecido um método de decodificação de imagem, que inclui, em geral, três etapas: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma pri- meira divisão com uma forma não retangular e uma segunda divisão; prever um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão; e decodificar a primeira divisão com o uso do primeiro vetor de movimento e a segun- da divisão com o uso do segundo vetor de movimento.
[0018] De acordo com um aspecto, é fornecido um codificador de imagem que inclui circuitos e uma memória acoplada ao circuito. Os circuitos, em operação, executam uma operação de suavização de li- mite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segunda divisão que é dividida a partir de um bloco de imagem. A operação de suavização de limite inclui: a pri- meira previsão dos primeiros valores de um conjunto de pixels da pri- meira divisão ao longo do limite, com o uso das informações da primei- ra divisão; a segunda previsão dos segundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informa- ções da segunda divisão; ponderar os primeiros valores e os segundos valores; e codificar a primeira divisão com o uso dos primeiros valores ponderados e dos segundos valores ponderados.
[0019] De acordo com outro aspecto, a forma não retangular é um triângulo. De acordo com outro aspecto, a forma não retangular é se- lecionada de um grupo que consiste em um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos. De acordo com ainda outro aspecto, a segunda divisão tem uma forma não retangular.
[0020] De acordo com outro aspecto, pelo menos uma da primeira previsão e da segunda previsão é um processo de interprevisão que prevê os primeiros valores e os segundos valores com base em uma divisão de referência em uma imagem de referência codificada. O pro- cesso de interprevisão pode prever os primeiros valores de pixels da primeira divisão, que inclui o conjunto de pixels e pode prever os se- gundos valores apenas do conjunto de pixels da primeira divisão.
[0021] De acordo com outro aspecto, pelo menos uma da primeira previsão e da segunda previsão é um processo de intraprevisão que prevê os primeiros valores e os segundos valores com base em uma divisão de referência codificada em uma imagem atual.
[0022] De acordo com outro aspecto, um método de previsão usa- do na primeira previsão é diferente de um método de previsão usado na segunda previsão.
[0023] De acordo com um aspecto adicional, um número do con- junto de pixels de cada linha ou coluna, para o qual os primeiros valo- res e os segundos são previstos, é um número inteiro. Por exemplo, quando o número do conjunto de pixels de cada linha ou coluna é qua- tro, pesos de 1/8, 1/4, 3/4 e 7/8 podem ser aplicados aos primeiros va- lores dos quatro pixels no conjunto, respectivamente, e pesos de 7/8, 3/4, 1/4 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 linha ou coluna é dois, pesos de 1/3 e 2/3 podem ser aplicados aos primeiros valores dos dois pixels do conjunto, respectivamente, e pesos de 2/3 e 1/3 podem ser aplicados aos segundos valores dos dois pixels no conjunto, respectivamente.
[0024] De acordo com outro aspecto, os pesos podem ser valores inteiros ou valores fracionários.
[0025] De acordo com outro aspecto, é fornecido um codificador de imagem, que inclui: um divisor que, em operação, recebe e divide uma imagem original em blocos; um somador que, em operação, re- cebe os blocos do divisor e as previsões de um controlador de previ- são e subtrai cada previsão do seu bloco correspondente para gerar um resíduo; um transformador que, em operação, realiza uma trans- formação nos resíduos emitidos do somador em coeficientes de trans- formação de saída; um quantizador que, em operação, quantifica os coeficientes de transformação para gerar os coeficientes de transfor- mação quantizados; um codificador de entropia que, em operação, co- difica os coeficientes de transformação quantizados para gerar um flu- xo de bits; e o controlador de previsão acoplado a um interpreditor, um intrapreditor e uma memória, em que o interpreditor, em operação, ge- ra uma previsão de um bloco atual com base em um bloco de referên- cia em uma imagem de referência codificada e o preditor 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 previ- são, em operação, executa uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que possui uma forma não retangular e uma segunda divisão que é dividida 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 divisão ao longo do limite, com o uso das informações da primeira divisão; a se- gunda previsão dos segundos valores do conjunto de pixels da primei- ra divisão ao longo do limite, com o uso das informações da segunda divisão; ponderar os primeiros valores e os segundos valores; e codifi-
car a primeira divisão com o uso dos primeiros valores ponderados e os segundos valores ponderados.
[0026] De acordo com outro aspecto, um método de codificação de imagem é fornecido para executar uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segunda divisão que é dividida a partir de um bloco de imagem. O método inclui, em geral, quatro etapas: a pri- meira previsão dos primeiros valores de um conjunto de pixels da pri- meira divisão ao longo do limite, com o uso das informações da primei- ra divisão; a segunda previsão dos segundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informa- ções da segunda divisão; ponderar os primeiros valores e os segundos valores; e codificar a primeira divisão com o uso dos primeiros valores ponderados e os segundos valores ponderados.
[0027] De acordo com um aspecto adicional, é fornecido um deco- dificador de imagem que inclui circuitos e uma memória acoplada aos circuitos. Os circuitos, em operação, executam uma operação de sua- vização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segunda divisão que é dividida a partir de um bloco de imagem. A operação de suavização de limite in- clui: a primeira previsão dos primeiros valores de um conjunto de pixels da primeira divisão ao longo do limite, com o uso das informa- ções da primeira divisão; a segunda previsão dos segundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informações da segunda divisão; ponderar os primeiros valores e os segundos valores; e decodificar a primeira divisão com o uso dos primeiros valores ponderados e os segundos valores ponderados.
[0028] De acordo com outro aspecto, a forma não retangular é um triângulo. De acordo com um aspecto adicional, a forma não retangular é selecionada de um grupo que consiste em um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos. De acordo com outro aspecto, a segunda divisão tem uma forma não retangular.
[0029] De acordo com outro aspecto, pelo menos uma da primeira previsão e da segunda previsão é um processo de interprevisão que prevê os primeiros valores e os segundos com base em uma divisã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 divisão, que inclui o conjunto de pixels e pode prever os segundos va- lores apenas do conjunto de pixels da primeira divisão.
[0030] De acordo com outro aspecto, pelo menos uma da primeira previsão e da segunda previsão é um processo intraprevisão que pre- vê os primeiros valores e os segundos com base em uma divisão de referência codificada em uma imagem atual.
[0031] De acordo com outro aspecto, é fornecido um decodificador de imagem que inclui: um decodificador de entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficien- tes de transformação quantizados; um quantizador inverso e transfor- mador que, em operação, quantificam inversamente os coeficientes de transformação quantizados para obter os coeficientes de transforma- ção e transformam inversamente os coeficientes de transformação pa- ra obter resíduos; um somador que, em operação, adiciona os resí- duos gerados pelo quantizador inverso e transformador e as previsões geradas por um controlador de previsão para reconstruir blocos; e o controlador de previsão acoplado a um interpreditor, um preditor e uma memória, em que o preditor 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 preditor 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, exe- cuta uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que possui uma forma não retangular e uma se- gunda divisão que é dividida 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 divisão ao longo do limite, com o uso das informações da primeira divisão; a segunda previsão dos se- gundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informações da segunda divisão; ponderar os primeiros valores e os segundos valores; e decodificar a primeira divi- são com o uso dos primeiros valores ponderados e os segundos valo- res ponderados.
[0032] De acordo com outro aspecto, um método de decodificação de imagem é fornecido para executar uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segunda divisão que é dividida a partir de um bloco de imagem. O método inclui, em geral, quatro etapas: a pri- meira previsão dos primeiros valores de um conjunto de pixels da pri- meira divisão ao longo do limite, com o uso das informações da primei- ra divisão; a segunda previsão dos segundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informa- ções da segunda divisão; ponderar os primeiros valores e os segundos valores; e decodificar a primeira divisão com o uso dos primeiros valo- res ponderados e os segundos valores ponderados.
[0033] De acordo com um aspecto, é fornecido um codificador de imagem que inclui circuitos e uma memória acoplada ao circuito. Os circuitos, em operação, executam uma operação de sintaxe da divisão, que inclui: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão; codificando a primeira divisão e a segunda divisão; e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits.
[0034] De acordo com outro aspecto, o parâmetro de divisão indi- ca que a primeira divisão possui uma forma de triângulo.
[0035] De acordo com outro aspecto, o parâmetro de divisão indi- ca que a segunda divisão tem uma forma não retangular.
[0036] De acordo com outro aspecto, o parâmetro de divisão indi- ca que a forma não retangular é a de um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos.
[0037] De acordo com outro aspecto, o parâmetro de divisão codi- fica em conjunto uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões. Por exemplo, a direção de divi- são pode incluir: de um canto superior esquerdo do bloco de imagem para um canto inferior direito e de um canto superior direito do bloco de imagem para um canto inferior esquerdo. O parâmetro de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimen- to da primeira divisão.
[0038] De acordo com outro aspecto, um ou mais parâmetros dife- rentes do parâmetro de divisão codificam uma direção de divisão apli- cada para dividir o bloco de imagem na pluralidade de divisões. O pa- râmetro que codifica a direção de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira divisão.
[0039] De acordo com outro aspecto, o parâmetro de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira divisão. O parâmetro de divisão pode codificar em conjunto um segundo vetor de movimento da segunda divisão.
[0040] De acordo com outro aspecto, um ou mais parâmetros dife- rentes do parâmetro de divisão podem codificar pelo menos um primei- ro vetor de movimento da primeira divisão.
[0041] De acordo com outro aspecto, um ou mais parâmetros são binarizados de acordo com um esquema de binarização que é selecio-
nado dependendo de um valor de pelo menos um dos um ou mais pa- râmetros.
[0042] De acordo com um aspecto adicional, é fornecido um codi- ficador de imagem que 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 do seu bloco correspondente para gerar um resíduo; um transformador que, em operação, realiza uma transformação nos resíduos emitidos do somador em coeficientes de transformação de saída; um quantizador que, em operação, quantifica os coeficientes de transformação para gerar os coeficientes de trans- formação quantizados; um codificador de 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 interpreditor, um intrapreditor e uma memória, em que o interpreditor, em operação, gera uma previsão de um bloco atual com base em um bloco de refe- rência em uma imagem de referência codificada e o preditor em ope- raçã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 previ- são, em operação, divide um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangu- lar e uma segunda divisão com base em um parâmetro de divisão indi- cativo da divisão e codifica a primeira divisão e a segunda divisão. O codificador de entropia, em operação, grava um ou mais parâmetros, que incluem o parâmetro de divisão, em um fluxo de bits.
[0043] De acordo com outro aspecto, é fornecido um método de codificação de imagem que inclui uma operação de sintaxe da divisão. O método inclui, em geral, três etapas: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão com base em um parâ-
metro de divisão indicativo da divisão; codificando a primeira divisão e a segunda divisão; e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits.
[0044] De acordo com outro aspecto, é fornecido um decodificador de imagem que inclui circuitos e uma memória acoplada ao circuito. Os circuitos, em operação, executam uma operação de sintaxe da di- visão, que inclui: analisar um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indicativo de divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão que tem uma forma não re- tangular e uma segunda divisão; dividir o bloco de imagem na plurali- dade de divisões com base no parâmetro de divisão; e decodificando a primeira divisão e a segunda divisão.
[0045] De acordo com outro aspecto, o parâmetro de divisão indi- ca que a primeira divisão possui uma forma de triângulo.
[0046] De acordo com outro aspecto, o parâmetro de divisão indi- ca que a segunda divisão tem uma forma não retangular.
[0047] De acordo com outro aspecto, o parâmetro de divisão indi- ca que a forma não retangular é a de um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos.
[0048] De acordo com outro aspecto, o parâmetro de divisão codi- fica em conjunto uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões. Por exemplo, a direção de divi- são inclui: de um canto superior esquerdo do bloco de imagem para um canto inferior direito e de um canto superior direito do bloco de imagem para um canto inferior esquerdo. O parâmetro de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira divisão.
[0049] De acordo com outro aspecto, um ou mais parâmetros dife- rentes do parâmetro de divisão codificam uma direção de divisão apli-
cada para dividir o bloco de imagem na pluralidade de divisões. O pa- râmetro que codifica a direção de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira divisão.
[0050] De acordo com outro aspecto, o parâmetro de divisão pode codificar em conjunto pelo menos um primeiro vetor de movimento da primeira divisão. O parâmetro de divisão pode codificar em conjunto um segundo vetor de movimento da segunda divisão.
[0051] De acordo com outro aspecto, um ou mais parâmetros dife- rentes do parâmetro de divisão podem codificar pelo menos um primei- ro vetor de movimento da primeira divisão.
[0052] De acordo com outro aspecto, os um ou mais parâmetros são binarizados de acordo com um esquema de binarização que é se- lecionado dependendo de um valor de pelo menos um dos um ou mais parâmetros.
[0053] De acordo com um aspecto adicional, é fornecido um deco- dificador de imagem que inclui: um decodificador de entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficientes de transformação quantizados; um quantizador inverso e transformador que, em operação, quantificam inversamente os coefi- cientes de transformação quantizados para obter os coeficientes de transformação e transformam inversamente os coeficientes de trans- formação para obter resíduos; um somador que, em operação, adicio- na os resíduos gerados pelo quantizador inverso e transformador e as previsões geradas por um controlador de previsão para reconstruir blocos; e o controlador de previsão acoplado a um interpreditor, um preditor e uma memória, em que o preditor 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 preditor em operação, ge- ra uma previsão de um bloco atual com base em um bloco de referên- cia decodificado em uma imagem atual. O decodificador de entropia,
em operação: analisa um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indi- cativo de divisão de um bloco de imagem em uma pluralidade de divi- sões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão; dividir o bloco de imagem na pluralidade de divi- sões com base no parâmetro de divisão; e decodificar a primeira divi- são e a segunda divisão.
[0054] De acordo com outro aspecto, é fornecido um método de decodificação de imagem que inclui uma operação de sintaxe da divi- são. O método inclui, em geral, três etapas: analisar um ou mais pa- râmetros de um fluxo de bits, em que os um ou mais parâmetros inclu- em um parâmetro de divisão indicativo de divisão de um bloco de ima- gem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão; dividir o bloco de imagem na pluralidade de divisões com base no parâmetro de divi- são; e decodificando a primeira divisão e a segunda divisão.
[0055] Nos desenhos, números de referência idênticos identificam elementos semelhantes. Os tamanhos e posições relativas dos ele- mentos nos desenhos não são necessariamente desenhados em es- cala.
[0056] A seguir, as modalidades serão descritas com referência aos desenhos. Observe que as modalidades descritas abaixo mostram cada um exemplo geral ou específico. Os valores numéricos, formas, materiais, componentes, o arranjo e a conexão dos componentes, eta- pas, a relação e ordem das etapas, etc., indicados nas seguintes mo- dalidades são meros exemplos e não se destinam a limitar o âmbito das reivindicações. Portanto, os componentes divulgados nas modali- dades a seguir, mas não recitados em nenhuma das reivindicações independentes que definem os conceitos inventivos mais amplos, po- dem ser entendidos como componentes opcionais.
[0057] As modalidades de um codificador e um decodificador se- rão descritas abaixo.
As modalidades são exemplos de um codificador e um decodificador aos quais os processos e/ou configurações apre- sentados na descrição dos aspectos da presente divulgação são apli- cáveis.
Os processos e/ou configurações também podem ser imple- mentados em um codificador e um decodificador diferente daqueles de acordo com as modalidades.
Por exemplo, em relação aos processos e/ou configurações aplicadas às modalidades, qualquer um dos se- guintes pode ser implementado: (1) Qualquer um dos componentes do codificador ou deco- dificador de acordo com as modalidades apresentadas na descrição dos aspectos da presente divulgação pode ser substituído ou combi- nado com outro componente apresentado em qualquer lugar na des- crição dos aspectos da presente divulgação. (2) No codificador ou decodificador de acordo com as mo- dalidades, podem ser feitas alterações discricionárias às funções ou processos executados por um ou mais componentes do codificador ou decodificador, 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 qualquer lugar da descrição dos aspectos da presente divulgação. (3) No método implementado pelo codificador ou decodifi- cador de acordo com as modalidades, podem ser feitas alterações dis- cricionárias, 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 apre- sentado em qualquer lugar da descrição dos aspectos da presente di- vulgação. (4) Um ou mais componentes incluídos no codificador ou decodificador de acordo com as modalidades podem ser combinados com um componente apresentado em qualquer lugar na descrição dos aspectos da presente divulgação, podem ser combinados com um componente que inclui uma ou mais funções apresentadas em qual- quer lugar da descrição dos aspectos da presente divulgação e pode ser combinada com um componente que implementa um ou mais pro- cessos implementados por um componente apresentado na descrição dos aspectos da presente divulgação. (5) Um componente que inclui uma ou mais funções do co- dificador ou do 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 com um componente apresentado em qualquer lugar na descrição dos aspectos da presente divulgação, com um componente que inclui uma ou mais funções apresentadas em qualquer lugar na descrição dos aspectos da presente divulgação, ou com um compo- nente que implemente um ou mais processos apresentados em qual- quer lugar na descrição dos aspectos da presente divulgação. (6) No método implementado pelo codificador ou decodifi- cador de acordo com as modalidades, qualquer um dos processos in- cluídos no método pode ser substituído ou combinado com um pro- cesso apresentado em qualquer lugar na descrição dos aspectos da presente divulgação ou com qualquer correspondente ou processo equivalente. (7) Um ou mais processos incluídos no método implemen- tado pelo codificador ou decodificador de acordo com as modalidades podem ser combinados com um processo apresentado em qualquer lugar na descrição dos aspectos da presente divulgação. (8) A implementação dos processos e/ou configurações apresentadas na descrição dos aspectos da presente divulgação não se limita ao codificador ou decodificador de acordo com as modalida-
des. Por exemplo, os processos e/ou configurações podem ser imple- mentados em um dispositivo usado para uma finalidade diferente do codificador de imagem em movimento ou do decodificador de imagem em movimento divulgado nas modalidades. Codificador
[0058] Primeiro, o codificador de acordo com uma modalidade se- rá descrito. A figura 1 é um diagrama de blocos que ilustra uma confi- guração funcional do codificador 100 de acordo com a modalidade. O codificador 100 é um codificador de imagem em movimento que codifi- ca um bloco de imagem em movimento pelo bloco.
[0059] Como ilustrado na figura 1, o codificador 100 é um disposi- tivo que codifica um bloco de imagens pelo bloco e inclui o divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de en- tropia 110, quantizador inverso 112, transformador inverso 114, soma- dor 116, memória de bloco 118, filtro de loop 120, memória de quadro 122, intrapreditor 124, interpreditor 126 e controlador de previsão 128.
[0060] O codificador 100 é realizado como, por exemplo, um pro- cessador e memória geral. Nesse caso, quando um programa de sof- tware armazenado na memória é executado pelo processador, o pro- cessador funciona como divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, loop filtro 120, intrapreditor 124, interpreditor 126 e controlador de previsão 128. Em alternativa, o codificador 100 pode ser realizado como um ou mais circuitos eletrôni- cos dedicados correspondentes ao divisor 102, subtrator 104, trans- formador 106, quantizador 108, codificador de entropia 110, quantiza- dor inverso 112, transformador inverso 114, somador 116, filtro de loop 120, intrapreditor 124, interpreditor 126 e controlador de previsão 128.
[0061] A seguir, cada componente incluído no codificador 100 será descrito.
Divisor
[0062] O divisor 102 divide cada imagem incluída em uma imagem em movimento inserida em blocos e envia cada bloco para o subtrator
104. Por exemplo, o divisor 102 primeiro divide uma imagem em blo- cos de tamanho fixo (por exemplo, 128 × 128). O bloco de tamanho fixo também pode ser chamado de unidade de árvore de codificação (CTU). O divisor 102, em seguida, divide cada bloco de tamanho fixo em blocos de tamanhos variáveis (por exemplo, 64 × 64 ou menor) com base, por exemplo, em quadtree recursivo e/ou divisão de bloco de árvore binária. O bloco de tamanho variável também pode ser refe- rido 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 diferenciar entre CU, PU e TU; todos ou alguns dos blocos em uma imagem podem ser processados por CU, PU ou TU.
[0063] A figura 2 ilustra um exemplo de divisão de blocos de acor- do com uma modalidade. Na figura 2, as linhas sólidas representam os limites dos blocos divididos por divisão em blocos de quadtree e as linhas tracejadas representam os limites dos blocos divididos por divi- são em blocos binários.
[0064] Aqui, o bloco 10 é um bloco quadrado de 128 × 128 pixels (bloco de 128 × 128). Este bloco 10 de 128 × 128 é primeiro dividido em quatro blocos quadrados de 64 × 64 (divisão de bloco de qua- dtree).
[0065] O bloco 64 × 64 superior esquerdo é dividido verticalmente em dois blocos 32 × 64 retangulares e o bloco 32 × 64 esquerdo é di- vidido verticalmente em dois blocos retângulo 16 × 64 (divisão de blo- co de árvore binária). Como resultado, o bloco 64 × 64 superior es- querdo é dividido em dois blocos 16 × 64 11 e 12 e um bloco 13 de 32 × 64.
[0066] O bloco 64 × 64 superior direito é dividido horizontalmente em dois retângulos 64 × 32, blocos 14 e 15 (divisão de bloco de árvore binária).
[0067] O bloco inferior esquerdo de 64 × 64 é primeiro dividido em quatro blocos quadrados de 32 × 32 (divisão de bloco de quadtree). O bloco superior esquerdo e o bloco inferior direito entre os quatro blocos 32 × 32 são divididos ainda mais. O bloco superior esquerdo 32 × 32 é dividido verticalmente em dois retângulos 16 × 32 e o bloco direito 16 × 32 é dividido horizontalmente ainda mais em dois blocos 16 × 16 (divi- são de bloco de árvore binária). O bloco inferior direito de 32 × 32 é dividido horizontalmente em dois blocos de 32 × 16 (divisão de bloco de árvore binária). Como resultado, o bloco 64 × 64 inferior esquerdo é dividido no bloco 16 × 32 16, dois blocos 16 × 16 17 e 18, dois blocos 32 × 32 19 e 20 e dois blocos 32 × 16 21 e 22.
[0068] O bloco inferior direito 64 × 64 23 não está dividido.
[0069] 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 qua- dtree recursiva e no bloco de árvore binária. Esse tipo de divisão tam- bém é chamado de divisão de árvore binária adicional de quadtree (QTBT).
[0070] Embora na figura 2 um bloco seja dividido em quatro ou dois blocos (divisão de bloco de árvore binária ou quadtree), a divisão não se limita a esses exemplos. Por exemplo, um bloco pode ser divi- dido em três blocos (divisão de blocos ternária). A divisão que inclui essa divisão de bloco ternária também é chamada de divisão de árvo- re de múltiplos tipos (MBT). Subtrator
[0071] O subtrator 104 subtrai um sinal de previsão (amostra de previsão, inserida a partir do controlador de previsão 128, a ser des- crito abaixo) de um sinal original (amostra original) por divisão de bloco por e inserido a partir do divisor 102. Em outras palavras, o subtrator 104 calcula os erros de previsão (também referidos como "resíduos") de um bloco a ser codificado (a partir daqui denominado "bloco atual"). O subtrator 104 emite os erros de previsão calculados (resíduos) para o transformador 106.
[0072] O sinal original é uma entrada de sinal no codificador 100 e é um sinal que representa uma imagem para cada imagem incluída em uma imagem em movimento (por exemplo, um sinal luma e dois sinais de croma). A seguir, um sinal representando uma imagem também é referido como uma amostra. Transformador
[0073] O transformador 106 transforma erros de previsão de do- mínio espacial em coeficientes de transformação de domínio de fre- quência e gera os coeficientes de transformação para o quantizador
108. Mais especificamente, o transformador 106 aplica, por exemplo, uma transformação discreta de cosseno discreta (DCT) predefinida ou transformação senoidal discreta (DST) em domínio espacial erros de previsão.
[0074] Observe que o transformador 106 pode selecionar de ma- neira adaptativa um tipo de transformação dentre uma pluralidade de tipos de transformação e pode transformar os erros de previsão em coeficientes de transformação com o uso de uma função de base de transformação correspondente ao tipo de transformação selecionado. Esse tipo de transformação também é chamado de transformação múl- tipla explícita (EMT) ou transformação múltipla adaptativa (AMT).
[0075] 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 da 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 in- terprevisão), bem como do modo intraprevisão.
[0076] As informações que indicam se é necessário aplicar EMT ou AMT (referido como, por exemplo, uma sinalização EMT ou uma sinalização AMT) e as informações que indicam o tipo de transforma- ção selecionado são normalmente sinalizadas no nível da CU. Obser- ve que a sinalização de tais informações não precisa ser executada no nível da CU e pode ser executada em outro nível (por exemplo, no ní- vel de sequência de bits, nível de imagem, nível de fatia, nível de blo- co, nível de bloco ou nível de CTU).
[0077] Além disso, o transformador 106 pode aplicar uma trans- formação secundária aos coeficientes de transformação (resultado da transformação). Essa transformação secundária também é referida como 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 a cada sub-bloco (por exemplo, cada sub-bloco 4 × 4) incluído no bloco dos coeficientes de transfor- mação correspondentes aos erros de intraprevisão. As informações que indicam se o NSST deve ser aplicado e as informações relaciona- das à matriz de transformação usadas no NSST são tipicamente sina- lizadas no nível da CU. Observe que a sinalização dessas informações não precisa ser executada no nível da CU e pode ser executada em outro nível (por exemplo, no nível da sequência, no nível da imagem, no nível da parte, no nível da fatia ou no nível da CTU).
[0078] Uma transformação separada ou uma transformação não separável pode ser aplicada no transformador 106. Uma transforma- ção separada é um método no qual uma transformação é executada várias vezes, executando separadamente uma transformação para ca- da direção, de acordo com o número de dimensões de entrada. Uma transformação não separável é um método de executar uma transfor-
mação coletiva na qual duas ou mais dimensões em uma entrada mul- tidimensional são coletivamente consideradas como uma dimensão única.
[0079] Em um exemplo de uma transformação não separável, quando a entrada é um bloco 4 × 4, o bloco 4 × 4 é considerado como uma matriz única, que inclui 16 componentes, e a transformação aplica um molde de transformação 16 × 16 à matriz.
[0080] Em um exemplo adicional de uma transformação não sepa- rável, após o bloco de entrada 4 × 4 ser considerado como uma única matriz que inclui 16 componentes, uma transformação que executa uma pluralidade de rotações Givens (por exemplo, uma Transforma- ção Hypercube-Givens) pode ser aplicada na matriz. Quantizador
[0081] O quantizador 108 quantiza os coeficientes de transforma- ção emitidos pelo transformador 106. Mais especificamente, o quanti- zador 108 varre, em uma ordem de varredura predeterminada, os coe- ficientes de transformação do bloco atual e quantiza os coeficientes de transformação digitalizados com base nos parâmetros de quantização (QP) correspondentes aos coeficientes de transformação. O quantiza- dor 108, em seguida, emite os coeficientes de transformação quanti- zados (a seguir denominados coeficientes quantizados) do bloco atual para o codificador de entropia 110 e o quantizador inverso 112.
[0082] Uma ordem de varredura predeterminada é uma ordem pa- ra quantificar/coeficientes de transformação de quantização inversa. Por exemplo, uma ordem de varredura predeterminada é definida co- mo ordem crescente de frequência (de baixa para alta frequência) ou ordem decrescente de frequência (de alta para baixa frequência).
[0083] Um parâmetro de quantização (QP) é um parâmetro que define um tamanho da etapa de quantização (largura de quantização). Por exemplo, se o valor do parâmetro de quantização aumentar, o ta-
manho da etapa de quantização também aumentará. Em outras pala- vras, se o valor do parâmetro de quantização aumentar, o erro de quantização aumentará. Codificador de entropia
[0084] O codificador de entropia 110 gera um sinal codificado (flu- xo de bits codificado) com base nos coeficientes quantizados, que são introduzidos no quantizador 108. Mais especificamente, por exemplo, o codificador de entropia 110 binariza coeficientes quantizados e a arit- mética codifica o sinal binário, para emitir um fluxo de bits ou sequên- cia compactado. Quantizador Inverso
[0085] O quantizador inverso 112 quantifica inversamente os coe- ficientes quantizados, que são introduzidos a partir do quantizador
108. Mais especificamente, o quantizador inverso 112 quantiza inver- samente, em uma ordem de varredura predeterminada, os coeficientes quantificados do bloco atual. O quantizador inverso 112, em seguida, gera os coeficientes de transformação quantizados inversos do bloco atual para o transformador inverso 114. Transformador Inverso
[0086] O transformador inverso 114 restaura erros de previsão (re- síduos) transformando inversamente os coeficientes de transformação, que são introduzidos a partir do quantizador inverso 112. Mais especi- ficamente, o transformador inverso 114 restaura os erros de previsão do bloco atual, aplicando 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.
[0087] Observe que, como tipicamente as informações são perdi- das na quantização, os erros de previsão restaurados não correspon- dem aos erros de previsão calculados pelo subtrator 104. Em outras palavras, os erros de previsão restaurados normalmente incluem erros de quantização. Adicionador
[0088] O adicionador 116 reconstrói o bloco atual somando erros de previsão, que são introduzidos a partir do transformador inverso 114, e amostras de previsão, que são inseridas a partir do controlador de previsão 128. O adicionador 116, em seguida, envia o bloco re- construído para bloquear a memória 118 e o filtro de loop 120. Um bloco reconstruído também é referido como um bloco decodificado lo- cal. Memória de bloco
[0089] A memória de bloco 118 é um armazenamento para arma- zenar blocos em uma imagem a ser codificada (referida como "imagem atual") para referência em previsão interna, por exemplo. Mais especi- ficamente, a memória de bloco 118 armazena a saída de blocos re- construídos do somador 116. Filtro de loop
[0090] O filtro de loop 120 aplica um filtro de loop aos blocos re- construídos pelo somador 116 e envia os blocos reconstruídos filtrados para a memória de quadro 122. Um filtro de loop é um filtro usado em um loop de codificação (filtro de loop) e inclui, por exemplo, um filtro de desbloqueio (DF), um deslocamento adaptativo de amostra (SAO) e um filtro de loop adaptativo (ALF).
[0091] No ALF, um filtro de erro mínimo quadrado para remover artefatos de compactação é aplicado. Por exemplo, um filtro dentre uma pluralidade de filtros é selecionado para cada sub-bloco 2 × 2 no bloco atual com base na direção e na atividade dos gradientes locais e é aplicado.
[0092] Mais especificamente, primeiro, cada sub-bloco (por exem- plo, cada sub-bloco 2 × 2) é categorizado em uma dentre uma plurali-
dade de classes (por exemplo, 15 ou 25 classes). A classificação do sub-bloco é baseada na direção e atividade do gradiente. Por exem- plo, o índice de classificação C é derivado com base na direcionalida- de do gradiente D (por exemplo, 0 a 2 ou 0 a 4) e na atividade do gra- diente 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 um dentre uma pluralidade de classes.
[0093] Por exemplo, a direcionalidade do gradiente D é calculada ao comparar os gradientes de uma pluralidade de direções (por exem- plo, as direções horizontal, vertical e duas diagonais). Além disso, por exemplo, a atividade de gradiente A é calculada ao somar os gradien- tes de uma pluralidade de direções e quantificando a soma.
[0094] O filtro a ser usado para cada sub-bloco é determinado dentre a pluralidade de filtros com base no resultado dessa categori- zação.
[0095] A forma do filtro a ser usada no ALF é, por exemplo, uma forma circular simétrica de filtro. As figuras 4A, 4B e 4C ilustram exemplos de formas de filtro usadas no ALF. A figura 4A ilustra um fil- tro de forma de diamante 5 × 5, a figura 4B ilustra um filtro em forma de diamante 7 × 7 e a figura 4C ilustra um filtro de forma de diamante 9 × 9. As informações que indicam a forma do filtro são normalmente sinalizadas no nível da imagem. Observe que a sinalização das infor- mações que indicam a forma do filtro não precisa ser executada no nível da imagem e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de bloco, nível de CTU ou nível de CU).
[0096] A ativação ou desativação do ALF pode ser determinada no nível da imagem ou da CU. Por exemplo, para luma, a decisão de apli- car ALF ou não pode ser tomada no nível da CU e, para croma, a de- cisão de aplicar ALF ou não pode ser tomada no nível da imagem. As informações que indicam se o ALF está ativado ou desativado são normalmente sinalizadas no nível da imagem ou no nível da CU. Ob- serve que a sinalização de informações que indicam se a ALF está ati- vada ou desativada não precisa ser executada no nível da imagem ou no nível da CU e pode ser executada em outro nível (por exemplo, no nível da sequência, no nível da fatia, no nível do bloco ou da CTU).
[0097] Os coeficientes definidos para a pluralidade de filtros sele- cionáveis (por exemplo, 15 ou 25 filtros) são tipicamente sinalizados no nível da imagem. Observe que a sinalização do conjunto de coefici- entes não precisa ser executada no nível da imagem e pode ser exe- cutada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de bloco, nível de CTU, nível da CU ou nível de sub-bloco). Memória de quadro
[0098] A memória de quadro 122 é um armazenamento para ar- mazenar imagens de referência usadas na interprevisão, por exemplo, e também é referida como um buffer de quadro. Mais especificamente, a memória de quadro 122 armazena blocos reconstruídos filtrados pe- lo filtro de loop 120. Intrapreditor
[0099] O intrapreditor 124 gera um sinal de previsão (sinal de in- traprevisão) ao intraprever o bloco atual com referência a um bloco ou blocos que estão na imagem atual como armazenados na memória do bloco 118 (também referido como intraprevisão de quadro). Mais es- pecificamente, o intrapreditor 124 gera um sinal de previsão por previ- são com referência às amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos próximos ao bloco atual e, em seguida, emite o sinal de previsão ao controlador de previsão 128.
[00100] Por exemplo, o intrapreditor 124 realiza a intraprevisão com o uso 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 direcional e uma pluralidade de modos de previsão direcional.
[00101] Um ou mais modos de previsão não direcional incluem, por exemplo, modo de previsão planar e modo de previsão CC definido no padrão H.265/HEVC.
[00102] 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. Observe que a pluralidade de modos de previsão direci- onal pode incluir ainda 32 modos de previsão direcional além dos 33 modos de previsão direcional (para um total de 65 modos de previsão direcional).
[00103] A figura 5A ilustra um total de 67 modos de intraprevisão usados em intraprevisão (dois modos de previsão não direcional e 65 modos de previsão direcional). As setas sólidas representam as 33 direções definidas no padrão H.265/HEVC e as setas tracejadas re- presentam as 32 direções adicionais. (Os dois modos de previsão "não direcionais" não estão ilustrados na figura 5A).
[00104] Em várias implementações, um bloco luma pode ser refe- renciado na intraprevisão do bloco croma. Ou seja, um componente croma do bloco atual pode ser previsto com base em um componente luma do bloco atual. Essa intraprevisão também é referida como previ- são do padrão linear de componente cruzado (CCLM). O modo de in- traprevisão do bloco croma que faz referência a um bloco luma (referi- do como, por exemplo, modo CCLM) pode ser adicionado como um dos modos de intraprevisão do bloco croma.
[00105] O intrapreditor 124 pode corrigir valores de pixel pós- intraprevisão com base em gradientes de pixel de referência horizon- tal/vertical. A intraprevisão acompanhada por esse tipo de correção também é chamada de combinação de intraprevisão dependente da posição (PDPC). As informações que indicam se a PDPC deve ser aplicada ou não (referida como, por exemplo, uma sinalização de PDPC) são normalmente sinalizadas no nível da CU. Observe que a sinalização dessas informações não precisa ser executada no nível da CU e pode ser executada em outro nível (por exemplo, no nível de se- quência, nível de imagem, nível de fatia, nível de bloco ou nível de CTU). Intepreditor
[00106] O interpreditor 126 gera um sinal de previsão (sinal de in- terprevisão) ao interprever o bloco atual com referência a um bloco ou blocos em uma imagem de referência, que é diferente da imagem atu- al e é armazenada na memória de quadro 122 (também chamada de interprevisão de quadros). A interprevisão é realizada pelo bloco atual ou pelo sub-bloco atual (por exemplo, pelo bloco 4 × 4) no bloco atual. Por exemplo, o interpreditor 126 realiza a estimativa de movimento em uma imagem de referência para o bloco atual ou o sub-bloco atual, pa- ra encontrar um bloco ou sub-bloco de referência na imagem de refe- rência que melhor corresponde ao bloco ou sub-bloco atual e para ob- ter as informações de movimento (por exemplo, um vetor de movimen- to) que compensem (ou preveja) o movimento ou a alteração do bloco ou sub-bloco de referência para o bloco ou sub-bloco atual. O inter- preditor 126 leva a compensação de movimento (ou previsão de mo- vimento) com base nas informações de movimento e gera um sinal de previsão do bloco ou sub-bloco atual com base nas informações de movimento. O interpreditor médio 126 então emite o sinal de interpre- visão gerado para o controlador de previsão 128.
[00107] A informação de movimento usada na compensação de movimento pode ser sinalizada de várias formas como o sinal de pre- visão. Por exemplo, um vetor de movimento pode ser sinalizado. Co- mo outro exemplo, uma diferença entre um vetor de movimento e um preditor de vetor de movimento pode ser sinalizada.
[00108] Observe que o sinal de interprevisão pode ser gerado com o uso das informações de movimento para um bloco próximo, além das informações de movimento para o bloco atual obtido a partir da estimativa de movimento. Mais especificamente, o sinal de interprevi- são pode ser gerado por sub-bloco no bloco atual ao calcular uma so- ma ponderada de um sinal de previsão com base em informações de movimento obtidas a partir da estimativa de movimento (na imagem de referência) e um sinal de previsão com base em informações de mo- vimento de um bloco próximo (na imagem atual). Essa interprevisão (compensação de movimento) também é chamada de compensação de movimento de bloco sobreposto (OBMC).
[00109] No modo de OBMC, as informações que indicam o tama- nho do sub-bloco para OBMC (referido como, por exemplo, tamanho do bloco OBMC) podem ser sinalizadas no nível da sequência. Além disso, as informações que indicam se o modo de OBMC deve ser apli- cado ou não (referido como, por exemplo, uma sinalização de OBMC) podem ser sinalizadas no nível da CU. Observe que a sinalização des- sas informações não precisa ser executada no nível de sequência e CU, e pode ser executada em outro nível (por exemplo, no nível da imagem, no nível da fatia, no nível do bloco, no nível da CTU ou no nível do sub-bloco).
[00110] A seguir, o modo de OBMC será descrito em mais detalhes. A figura 5B é um fluxograma e a figura 5C é um diagrama conceitual que ilustra um processo de correção de imagem de previsão realizado pelo processamento de OBMC.
[00111] Com referência à figura 5C, primeiro, uma imagem de pre- visão (Pred) é obtida através da compensação de movimento típica com o uso de um vetor de movimento (MV) atribuído ao bloco alvo (atual). Na figura 5C, uma seta "MV" aponta para a imagem de refe- rência, para indicar que o bloco atual na imagem atual está fazendo referência, a fim de obter uma imagem de previsão.
[00112] A seguir, uma imagem de previsão (Pred_L) é obtida apli- cando (reutilizando) um vetor de movimento (MV_L), que já foi deriva- do para o bloco esquerdo próximo codificado, no bloco alvo (atual), conforme indicado pela seta "MV_L" originada do bloco atual e apon- tando para a imagem de referência para obter a imagem de previsão Pred_L. Em seguida, as duas imagens de previsão Pred e Pred_L são sobrepostas para executar uma primeira passagem da correção da imagem de previsão, que em um aspecto tem o efeito de misturar a borda entre os blocos próximos.
[00113] Da mesma forma, uma imagem de previsão (Pred_U) é ob- tida ao aplicar (reutilizando) um vetor de movimento (MV_U), que já foi derivado para o bloco superior próximo codificado, ao bloco de destino (atual), conforme indicado pela seta "MV_U" do bloco atual e apontan- do para a imagem de referência para obter a imagem de previsão Pred_U. Em seguida, a imagem de previsão Pred_U é sobreposta à imagem de previsão resultante da primeira passagem (ou seja, Pred e Pred_L) para executar uma segunda passagem da correção da ima- gem de previsão, que em um aspecto tem o efeito de mesclar a borda entre o blocos próximos. O resultado da segunda passagem é a ima- gem de previsão final para o bloco atual, com bordas combinadas (su- avizadas) com seus blocos próximos.
[00114] Observe que o exemplo acima é de um método de correção de duas passagens com o uso dos blocos esquerdo e superior próxi- mos, mas o método pode ser um método de correção de três passa- gens ou passagem superior que também usa o bloco direito e/ou infe- rior próximo.
[00115] Observe que a região submetida à sobreposição pode ser toda a região de pixel do bloco e, alternativamente, pode ser uma regi- ão de limite parcial do bloco.
[00116] Observe que aqui, o processo de correção da imagem de previsão do OBMC é descrito como sendo baseado em uma única imagem de referência para derivar uma única imagem de previsão Pred, na qual as imagens de previsão adicionais Pred_L e Pred_U são sobrepostas, mas o mesmo processo pode ser aplicado a cada um de uma pluralidade de imagens de referência quando a imagem de previ- são é corrigida com base na pluralidade de imagens de referência. Nesse caso, depois que uma pluralidade de imagens de previsão cor- rigidas é obtida executando a correção de imagem do OBMC com ba- se na pluralidade de imagens de referência, respectivamente, a plura- lidade obtida de imagens de previsão corrigidas é ainda sobreposta para obter a imagem de previsão final.
[00117] Observe que, no OBMC, a unidade do bloco de destino po- de ser um bloco de previsão e, alternativamente, pode ser um sub- bloco obtido pela divisão adicional do bloco de previsão.
[00118] Um exemplo de método para determinar se é necessário implementar o processamento de OBMC é usar um obmc_flag, que é um sinal que indica se é necessário implementar o processamento de OBMC. Como um exemplo específico, o codificador pode determinar se o bloco alvo pertence a uma região que inclui o movimento compli- cado. O codificador define o obmc_flag com o valor "1" quando o bloco pertence a uma região, que inclui o movimento complicado e imple- menta o processamento de OBMC durante a codificação, e define o obmc_flag com o valor "0" quando o bloco não pertence a uma região que inclui o movimento complica e codifica o bloco sem implementar o processamento de OBMC. O decodificador alterna entre implementar o processamento de OBMC ou não, decodificando o obmc_flag gravado no fluxo (ou seja, a sequência compactada) e executar a decodificação de acordo com o valor da sinalização.
[00119] Observa-se que as informações de movimento podem ser derivadas no lado do decodificador sem serem sinalizadas pelo lado do decodificador. Por exemplo, um modo de mesclagem definido no padrão H.265/HEVC pode ser usado. Além disso, por exemplo, a in- formação de movimento pode ser derivada através da realização de estimativa de movimento no lado do decodificador. Nesse caso, o lado do decodificador pode executar a estimativa de movimento sem usar os valores de pixel do bloco atual.
[00120] Aqui, será descrito um modo para realizar a estimativa de movimento no lado do decodificador. Um modo para realizar a estima- tiva de movimento no lado do decodificador também é chamado de modo de derivação de vetor de movimento com correspondência de padrão (PMMVD) ou modo de conversão ascendente de taxa de qua- dros (FRUC).
[00121] Um exemplo de processamento de FRUC é ilustrado na figura 5D. Primeiro, uma lista de candidatos (uma lista de candidatos pode ser uma lista de mesclagem) de candidatos, cada um que inclui um vetor de movimento de previsão (MV), é gerada com referência a vetores de movimento de blocos codificados que se aproximam espa- cial ou temporalmente do bloco atual. Em seguida, o melhor MV can- didato é selecionado dentre a pluralidade de MVs candidatos registra- dos na lista de candidatos. Por exemplo, os 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.
[00122] Em seguida, um vetor de movimento para o bloco atual é derivado do vetor de movimento do candidato selecionado. Mais espe- cificamente, por exemplo, o vetor de movimento para o bloco atual é calculado como o vetor de movimento do candidato selecionado (o melhor MV candidato), como está. Em alternativa, o vetor de movimen- to para o bloco atual pode ser derivado pela correspondência de pa-
drão realizada na vizinhança de uma posição em uma imagem de refe- rência que corresponde ao vetor de movimento do candidato selecio- nado. Em outras palavras, quando a vizinhança do melhor MV candi- dato é pesquisada com o uso da correspondência de padrão em uma imagem de referência e valores de avaliação, e um MV com um me- lhor valor de avaliação é encontrado, o melhor MV candidato pode ser atualizado para o MV que tem a melhor avaliação valor, e o MV com o melhor valor de avaliação pode ser usado como o MV final para o blo- co atual. Uma configuração na qual o processamento para atualizar o MV com um valor de avaliação melhor não é implementado também é aceitável.
[00123] Os mesmos processos podem ser realizados nos casos em que o processamento é realizado em unidades de sub-blocos.
[00124] Um valor de avaliação pode ser calculado de várias manei- ras. 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 predetermi- nada (que pode estar em outra imagem de referência ou em um bloco próximo 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 usada como um valor de avaliação do vetor de movimento. Observe que o valor da avaliação pode ser calculado usando outras informações além da diferença.
[00125] Em seguida, a correspondência de padrão é descrita em detalhes. Primeiro, um MV candidato incluído em uma lista de candida- tos (por exemplo, uma lista de mesclagem) é selecionado como ponto de partida para a pesquisa por correspondência de padrão. A corres- pondência de padrão usada é a primeira correspondência de padrão ou a segunda correspondência de padrão. A primeira correspondência de padrão e a segunda correspondência de padrão também são cha-
madas de correspondência bilateral e correspondência de padrão, respectivamente.
[00126] Na primeira correspondência de padrão, a correspondência de padrão é realizada entre dois blocos em duas imagens de referên- cia diferentes, ambas ao longo da trajetória de movimento do bloco atual. Portanto, na primeira correspondência de padrão, para uma re- gião em uma imagem de referência, uma região em outra imagem de referência que esteja em conformidade com a trajetória de movimento do bloco atual é usada como região predeterminada para o cálculo acima descrito do valor de avaliação do candidato.
[00127] A figura 6 ilustra um exemplo de primeira correspondência de padrão (correspondência bilateral) entre dois blocos em duas ima- gens de referência ao longo de uma trajetória de movimento. Como ilustrado na figura 6, na primeira correspondência de padrão, dois ve- tores de movimento (MV0, MV1) são obtidos encontrando a melhor cor- respondência entre os dois blocos em duas imagens de referência di- ferentes (Ref0, Ref1) ao longo da trajetória de movimento do bloco atu- al (bloco Cur). Mais especificamente, pode ser obtida uma diferença 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 é dimensionado simetricamente por intervalos de tempo de exibição, em uma segunda imagem de referência codifi- cada (Ref1). Em seguida, a diferença pode ser usada para derivar um valor de avaliação para o bloco atual. Um MV candidato com o melhor valor de avaliação entre uma pluralidade de MV candidatos pode ser selecionado como o MV final.
[00128] Sob a suposição de 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 está temporalmente entre as du- as imagens de referência e a distância temporal da imagem atual para as duas imagens de referência é a mesma, a primeira correspondência de padrão deriva dois vetores de movimento bidirecionais espelhados.
[00129] Na segunda correspondência de padrão (correspondência de padrão), a correspondência de padrão é realizada entre um padrão na imagem atual (blocos próximos ao bloco atual na imagem atual; por exemplo, os blocos próximos superiores e/ou esquerdos) e um bloco em uma imagem de referência. Portanto, na segunda correspondência de padrão, um bloco próximo ao bloco atual na imagem atual é usado como a região predeterminada para o cálculo acima descrito do valor de avaliação do candidato.
[00130] A figura 7 ilustra um exemplo de correspondência de pa- drão (correspondência de padrão) entre um padrão na imagem atual e um bloco em uma figura de referência. Como ilustrado na figura 7, na segunda correspondência de padrão, um vetor de movimento do bloco atual é derivado pesquisando em uma imagem de referência (Ref0) para encontrar um bloco que melhor corresponda aos blocos próximos do bloco atual (bloco Cur) na imagem atual (Cur Pic). Mais especifica- mente, pode ser obtida uma diferença entre (i) uma imagem reconstru- ída de uma ou ambas as regiões superior e esquerda próximas codifi- cadas em relação ao bloco atual e (ii) uma imagem reconstruída das mesmas regiões em relação a uma posição de bloco especificada por um MV candidato em uma imagem de referência codificada (Ref0). Em seguida, a diferença pode ser usada para derivar um valor de avalia- ção para o bloco atual. Um MV candidato com o melhor valor de avali- ação entre uma pluralidade de MVs candidatos pode ser selecionado como o melhor MV candidato.
[00131] As informações que indicam se o modo FRUC deve ser aplicado ou não (referido como, por exemplo, uma sinalização FRUC) podem ser sinalizadas no nível da CU. Além disso, quando o modo FRUC é aplicado (por exemplo, quando o sinalização FRUC é definido como verdadeiro), as informações que indicam o método de corres- pondência aplicável ao padrão (por exemplo, correspondência do pri- meiro padrão ou correspondência do segundo padrão) podem ser si- nalizadas no nível da CU. Observe que a sinalização dessas informa- ções não precisa ser executada no nível da CU e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de bloco, nível de parte, nível de CTU ou nível de sub-bloco).
[00132] A seguir, são descritos métodos para derivar um vetor de movimento. Primeiro, é fornecida uma descrição de um modo para de- rivar um vetor de movimento com base em um padrão assumindo o movimento linear uniforme. Esse modo também é chamado de modo de fluxo óptico bidirecional (BIO).
[00133] A figura 8 ilustra um padrão que assume o movimento line- ar uniforme. Na figura 8, (vx, vy) indica um vetor de velocidade e τ0 e τ1 indicam distâncias temporais entre a imagem atual (Cur Pic) e duas imagens de referência (Ref0, Ref1), respectivamente. (MVx0, MVy0) in- dica um vetor de movimento correspondente à imagem de referência Ref0 e (MVx1, MVy1) indica um vetor de movimento correspondente à imagem de referência Ref1.
[00134] Aqui, sob a suposição de movimento linear uniforme exibido pelo vetor de velocidade (vx, vy), (MVx0, MVy0) e (MVx1, MVy1) são re- presentados como (vxτ0, vyτ0) e (-vxτ1, -vyτ1), respectivamente, e a se- guinte equação de fluxo óptico Equação 1 é dada. Matemática 1
[00135] Aqui, I(k) indica um valor luma da imagem de referência k (k
= 0, 1) após a compensação do movimento. A equação do fluxo óptico mostra que a soma de (i) a derivada no tempo do valor luma, (ii) o pro- duto da velocidade horizontal e o componente horizontal do gradiente espacial de uma imagem de referência e (iii) o produto da velocidade vertical e o componente vertical do gradiente espacial de uma imagem de referência são iguais a zero. Um vetor de movimento de cada bloco obtido de, por exemplo, uma lista de mesclagem pode ser corrigido pixel por pixel com base em uma combinação da equação de fluxo óp- tico e interpolação Hermite.
[00136] Observe que um vetor de movimento pode ser derivado no lado do decodificador com o uso de um método diferente de derivar um vetor de movimento com base em um padrão assumindo o movi- mento linear uniforme. Por exemplo, um vetor de movimento pode ser derivado para cada sub-bloco com base nos vetores de movimento dos blocos próximos.
[00137] A seguir, é fornecida uma descrição de um modo no qual um vetor de movimento é derivado para cada sub-bloco com base nos vetores de movimento dos blocos próximos. Esse modo também é chamado de modo de previsão de compensação de movimento afim.
[00138] A figura 9A ilustra um exemplo de derivação de um vetor de movimento de cada sub-bloco com base em vetores de movimento de blocos próximos. Na figura 9A, o bloco atual inclui 16 sub-blocos 4 × 4. Aqui, o vetor de movimento v0 do ponto de controle do canto superior esquerdo no bloco atual é derivado com base nos vetores de movi- mento dos sub-blocos próximos. Da mesma forma, o vetor de movi- mento v1 do ponto de controle do canto superior direito no bloco atual é derivado com base nos vetores de movimento dos blocos próximos. Então, com o uso dos dois vetores de movimento v0 e v1, o vetor de movimento (vx, vy) de cada sub-bloco no bloco atual é derivado usando a Equação 2 abaixo.
Matemática 2
[00139] Aqui, x e y são as posições horizontal e vertical do sub- bloco, respectivamente, e w é um coeficiente ponderado predetermi- nado.
[00140] Um modo de previsão de compensação de movimento afim pode incluir vários modos de diferentes métodos para derivar os veto- res de movimento dos pontos de controle do canto superior esquerdo e superior direito. As informações que indicam um modo de previsão de compensação de movimento afim (referido como, por exemplo, uma sinalização afim) podem ser sinalizadas no nível da CU. Observe- se que a sinalização de informações que indicam o modo de previsão de compensação de movimento afim não precisa ser executada no nível da CU e pode ser executada em outro nível (por exemplo, no ní- vel de sequência, nível de imagem, nível de fatia, nível de bloco, nível de CTU, ou sub-bloco). Controlador de Previsão
[00141] O controlador de previsão 128 seleciona o sinal de intrapre- visão (emitido a partir do intrapreditor 124) ou o sinal de previsão (emi- tido a partir do interpreditor 126) e envia o sinal de previsão seleciona- do para o subtrator 104 e o somador 116.
[00142] Como ilustrado na figura 1, em várias implementações, o controlador de previsão 128 pode emitir parâmetros de previsão, que são introduzidos no codificador de entropia 110. O codificador de en- tropia 110 pode gerar um fluxo de bits codificado (ou sequência) com base nos parâmetros de previsão, introduzidos a partir do controlador de previsão 128 e os coeficientes quantizado, introduzidos a partir do quantizador 108. Os parâmetros de previsão podem ser usados pelo decodificador, que recebe e decodifica o fluxo de bits codificado, para executar o mesmo processamento de previsão àquele realizado no intrapreditor 124, no interpreditor 126 e no controlador de previsão
128. A previsão os parâmetros podem incluir o sinal de previsão sele- cionado (por exemplo, vetores de movimento, tipo de previsão ou mo- do de previsão utilizado no intrapreditor 124 ou no interpreditor 126) ou qualquer índice, sinalização ou valor que seja baseado, ou seja, indi- cativo no processamento de previsão realizada no intrapreditor 124, no interpreditor 126 e no controlador de previsão 128.
[00143] A figura 9B ilustra um exemplo de um processo para derivar um vetor de movimento em uma imagem atual no modo de mescla- gem.
[00144] Primeiro, é gerada uma lista de MV de previsão, na qual os candidatos de MV de previsão são registrados. Os exemplos de candi- datos o MV de previsão incluem: MV de previsão espacialmente pró- ximo, que são os MVs de blocos codificados posicionados na vizi- nhança espacial do bloco de destino; MVs de previsão próximos tem- porariamente, que são os MVs de blocos em imagens de referência codificadas que próximos de um bloco no mesmo local que o bloco de destino; uma MV de previsão acoplada, que é uma MV gerada pela combinação dos valores de MV da MV de previsão espacialmente pró- ximo e o MV de previsão temporalmente próximo; e um MV de previ- são zero, que é um MV cujo valor é zero.
[00145] Em seguida, o MV do bloco de destino é determinado ao selecionar um MV de previsão dentre a pluralidade de MVs de previ- são registrados na lista de MV de previsão.
[00146] Além disso, em um codificador de comprimento variável, um merge_idx, que é um sinal indicando qual o MV de previsão é se- lecionado, é gravado e codificado no fluxo.
[00147] Observa-se que os MVs de previsão registrados na lista de
MV de previsão ilustrada na figura 9B constituem um exemplo. O nú- mero de MVs de previsão registrados na lista de MVs de previsão po- de ser diferente do número ilustrado na figura 9B, e os MVs de previ- são registrados na lista de MV 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 registradas na lista de MV de previsão podem incluir um ou mais tipos de MVs de previsão além e diferentes dos tipos for- necidos no exemplo na figura 9B.
[00148] O MV final pode ser determinado ao realizar o processa- mento de DMVR (atualização dinâmica do vetor de movimento dinâmi- co) (a ser descrito posteriormente) usando o MV do bloco de destino derivado no modo de mesclagem.
[00149] A figura 9C é um diagrama conceitual que ilustra um exem- plo de processamento DMVR para determinar uma MV.
[00150] Primeiro, o MV mais apropriado, que é configurado para o bloco atual (por exemplo, no modo de mesclagem), é considerado ser 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. Da mesma forma, de acordo com o MV candidato (L1), um pixel de referência é identifi- cado em uma segunda imagem de referência (L1), que é uma imagem codificada na direção de L1. Os pixels de referência são calculados como média para formar um padrão.
[00151] Em seguida, com o uso do padrão, são pesquisadas as re- giões próximas dos MVs candidatos das primeira e segunda imagens de referência (L0) e (L1), e o MV com o menor custo é determinado como o MV final. O valor do custo pode ser calculado, por exemplo, usando a diferença entre cada valor de pixel no padrão e cada valor de pixel nas regiões pesquisadas, com o uso dos MVs candidatos, etc.
[00152] Observe que a configuração e a operação dos processos descritos aqui são basicamente as mesmas no lado do codificador e no lado do decodificador, a serem descritas abaixo.
[00153] Qualquer processamento que não seja o descrito acima pode ser usado, desde que o processamento seja capaz de derivar o MV final pesquisando o ambiente do MV candidato.
[00154] A seguir, é fornecida uma descrição de um exemplo de mo- do que gera uma imagem de previsão (uma previsão) com o uso do processamento de LIC (compensação de iluminação local).
[00155] A figura 9D ilustra um exemplo de um método de geração de imagem de previsão com o uso de um processo de correção de lu- minância realizado pelo processamento de LIC.
[00156] Primeiro, a partir de uma imagem de referência codificada, é derivada uma MV para obter uma imagem de referência que corres- ponde ao bloco atual.
[00157] Em seguida, para o bloco atual, as informações que indi- cam como o valor da luminância mudou entre a imagem de referência e a imagem atual são obtidas, com base nos valores de pixel de lumi- nância da região de referência esquerda codificada e na região de re- ferência superior codificada na imagem atual, e com base nos valores de pixel de luminância nos mesmos locais na imagem de referência, conforme especificado pelo MV. As informações que indicam como o valor da luminância alterado são usadas para calcular um parâmetro de correção da luminância.
[00158] A imagem de previsão para o bloco atual é gerada ao reali- zar um processo de correção de luminância, que aplica o parâmetro de correção de luminância na imagem de referência na imagem de refe- rência especificada pelo MV.
[00159] Observe que o formato da(s) região(ões) de referência cir- cundantes ilustradas na figura 9D é apenas um exemplo; a região de referência circundante pode ter uma forma diferente.
[00160] Além disso, embora uma imagem de previsão seja gerada a partir de uma única imagem de referência neste exemplo, nos casos em que uma imagem de previsão é gerada a partir de uma pluralidade de imagens de referência, a imagem de previsão pode ser gerada após a execução de um processo de correção de luminância, confor- me descrito acima, nas imagens de referência obtidas a partir das imagens de referência.
[00161] Um exemplo de método para determinar se o processa- mento de LIC deve ser implementado está com o uso de um lic_flag, que é um sinal que indica se deve ser implementado o processamento de LIC. Como um exemplo específico, o codificador determina se o bloco atual pertence a uma região de mudança de luminância. O codi- ficador define o lic_flag com o valor "1" quando o bloco pertence a uma região de alteração de luminância e implementa o processamento de LIC ao codificar. O codificador define o lic_flag com o valor "0" quando o bloco não pertence a uma região de alteração de luminância e exe- cuta a codificação implementando o processamento de LIC. O decodi- ficador pode alternar entre implementar o processamento de LIC ou não, decodificando o lic_flag gravado no fluxo e executando a decodi- ficação de acordo com o valor da sinalização.
[00162] Um exemplo de um método diferente para determinar se o processamento de LIC deve ser implementado inclui discernir se foi determinado que o processamento de LIC foi implementado para um bloco circundante. Em um exemplo específico, quando o modo de mesclagem é usado no bloco atual, é determinado se o processamen- to de LIC foi aplicado na codificação do bloco codificado circundante, que foi selecionado ao derivar o MV no modo de mesclagem. Em se- guida, a determinação é usada para determinar ainda mais se deve implementar o processamento de LIC ou não para o bloco atual. Ob- serve que neste exemplo também, o mesmo se aplica ao processa-
mento realizado no lado do decodificador. Decodificador
[00163] Em seguida, será descrito um decodificador capaz de de- codificar uma saída de sinal codificado (fluxo de bits codificado) do co- dificador 100. A figura 10 é um diagrama de blocos que ilustra uma configuração funcional do decodificador 200 de acordo com uma mo- dalidade. O decodificador 200 é um decodificador de imagem em mo- vimento que decodifica um bloco de imagem em movimento pelo blo- co.
[00164] Como ilustrado na figura 10, o decodificador 200 inclui de- codificador de entropia 202, quantizador inverso 204, transformador inverso 206, adicionador 208, memória de bloco 210, filtro de loop 212, memória de quadro 214, memória de quadro 214, intrapreditor 216, interpreditor 218 e controlador de previsão 220.
[00165] O decodificador 200 é realizado como, por exemplo, um processador e memória geral. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o processador funciona como decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, filtro de loop 212, preditor 216, interpreditor 218 e controlador de previsão 220. Em alternativa, o decodificador 200 pode ser realizado como um ou mais circuitos eletrônicos dedicados correspondentes ao decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, so- mador 208, filtro de loop 212, preditor 216, interpreditor 218 e contro- lador de previsão 220.
[00166] A seguir, cada componente incluído no decodificador 200 será descrito. Decodificador de Entropia
[00167] O decodificador de entropia 202 decodifica por entropia um fluxo de bits codificado. Mais especificamente, por exemplo, o aritméti-
co do decodificador de entropia 202 decodifica um fluxo de bits codifi- cado em um sinal binário. O decodificador de entropia 202, em segui- da, debinariza o sinal binário. O decodificador de entropia 202 gera os coeficientes quantificados de cada bloco para o quantizador inverso
204. O decodificador de entropia 202 também pode emitir os parâme- tros de previsão, que podem ser incluídos no fluxo de bits codificado (ver a figura 1), para o intrapreditor 216, o interpreditor 218 e ao con- trolador de previsão 220 para que eles possam executar o mesmo processamento de previsão que é realizado no lado do codificador no intrapreditor 124, interpreditor 126 e controlador de previsão 128. Quantizador Inverso
[00168] O quantizador inverso 204 quantifica inversamente os coe- ficientes quantificados de um bloco a ser decodificado (a partir daqui denominado bloco atual), que são introduzidos a partir do decodifica- dor de entropia 202. Mais especificamente, quantizador inverso 204 quantiza inversa quantifica coeficientes quantificados do bloco atual com base em parâmetros de quantização correspondentes aos coefi- cientes quantizados. O quantizador inverso 204, em seguida, emite os coeficientes quantizados inversos (isto é, coeficientes de transforma- ção) do bloco atual para o transformador inverso 206. Transformador Inverso
[00169] O transformador inverso 206 restaura erros de previsão (re- síduos) por coeficientes de transformação de transformação inversa, que são introduzidos a partir do quantizador inverso 204.
[00170] Por exemplo, quando as informações analisadas de um flu- xo de bits codificado indicam a aplicação de EMT ou AMT (por exem- plo, quando a sinalização de AMT é definida como verdadeiro), o transformador inverso 206 transforma inversamente os coeficientes de transformação do bloco atual com base em informações que indicam o tipo de transformação analisado.
[00171] Além disso, por exemplo, quando a informação analisada de um fluxo de bits codificado indica a aplicação de NSST, o transfor- mador inverso 206 aplica uma transformação inversa secundária aos coeficientes de transformação. Adicionador
[00172] O adicionador 208 reconstrói o bloco atual ao somar erros de previsão, que são introduzidos a partir do transformador inverso 206, e amostras de previsão, que são uma entrada do controlador de previsão 220. O adicionador 208, em seguida, envia o bloco reconstru- ído para bloquear a memória 210 e o filtro de loop 212. Memória de Bloco
[00173] A memória de bloco 210 é um armazenamento para arma- zenar os blocos em uma imagem a ser decodificada (daqui em diante referida como uma imagem atual) para referência na intraprevisão. Mais especificamente, a memória de bloco 210 armazena a saída de blocos reconstruídos a partir do somador 208. Filtro de loop
[00174] O filtro de loop 212 aplica um filtro de loop aos blocos re- construídos pelo adicionador 208 e envia os blocos reconstruídos fil- trados para a memória de quadro 214 e, por exemplo, para um dispo- sitivo de exibição.
[00175] Quando as informações que indicam a habilitação ou a de- sabilitação do ALF analisado a partir de um fluxo de bits codificado in- dicam habilitadas, um filtro dentre uma pluralidade de filtros é selecio- nado com base na direção e atividade dos gradientes locais, e o filtro selecionado é aplicado ao bloco reconstruído. Memória de Quadro
[00176] A memória de quadro 214 é um armazenamento para ar- mazenar as imagens de referência usadas na interprevisão e também é referido como um buffer de quadro. Mais especificamente, a memó-
ria de quadro 214 armazena os blocos reconstruídos filtrados pelo filtro de loop 212. Intrapreditor
[00177] O intrapreditor 216 gera um sinal de previsão (sinal de in- traprevisão) pela intraprevisão com referência a um bloco ou blocos na imagem atual, conforme armazenado na memória do bloco 210. Mais especificamente, o intrapreditor 216 gera um sinal de previsão por in- traprevisão com referência às amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos próximos ao bloco atual e, em se- guida, emite o sinal de intraprevisão para o controlador de previsão
220.
[00178] Observa-se que quando um modo intraprevisão no qual um bloco croma é intrapredito a partir de um bloco luma é selecionado, o intrapreditor 216 pode prever o componente croma do bloco atual com base no componente luma do bloco atual.
[00179] Além disso, quando a informação indicando a aplicação de PDPC é analisada a partir de um fluxo de bits codificado (nos parâme- tros de previsão emitidos pelo decodificador de entropia 202, por exemplo), o intrapreditor 216 corrige os valores de pixel pós- intraprevisão com base nos gradientes de pixel de referência horizon- tal/vertical. Interpreditor
[00180] O interpreditor 218 prevê o bloco atual com referência a uma imagem de referência armazenada na memória de quadro 214. A interprevisão é realizada pelo bloco atual ou por sub-bloco (por exem- plo, pelo bloco 4 × 4) no bloco atual. Por exemplo, o interpreditor 218 gera um sinal de interprevisão do bloco ou sub-bloco atual com base na compensação de movimento com o uso das informações de movi- mento (por exemplo, um vetor de movimento) analisadas a partir de um fluxo de bits codificado (nos parâmetros de previsão emitidos pelo decodificador de entropia 202, por exemplo) e emite o sinal de inter- previsão para o controlador de previsão 220.
[00181] Quando a informação analisada do fluxo de bits codificado indica a aplicação do modo de OBMC, o interpreditor 218 gera o sinal de interprevisão com o uso das informações de movimento para um bloco próximo, além de informações de movimento para o bloco atual obtido a partir da estimativa de movimento.
[00182] Além disso, quando a informação analisada a partir do fluxo de bits codificado indica a aplicação do modo FRUC, o interpreditor 218 deriva as informações de movimento ao realizar uma estimativa de movimento de acordo com o método de correspondência de padrão (correspondência bilateral ou correspondência de padrão) analisada a partir do fluxo de bits codificado. O interpreditor 218 executa, em se- guida, a compensação de movimento (previsão) com o uso das infor- mações de movimento derivadas.
[00183] Além disso, quando o modo BIO deve ser aplicado, o inter- preditor 218 deriva um vetor de movimento com base em um padrão que assume o movimento linear uniforme. Além disso, quando a infor- mação analisada a partir do fluxo de bits codificado indica que o modo de previsão de compensação de movimento afim deve ser aplicado, o preditor 218 deriva um vetor de movimento de cada sub-bloco com ba- se nos vetores de movimento dos blocos próximos. Controlador de Previsão
[00184] O controlador de previsão 220 seleciona o sinal de intrapre- visão ou o sinal de interprevisão e emite o sinal de previsão seleciona- do para o somador 208. Em geral, a configuração, as funções e as operações do controlador de previsão 220, o interpreditor 21 e o intra- preditor 216 no lado do decodificador podem corresponder à configu- ração, às funções e às operações do controlador de previsão 128, do interpreditor 126 e do intrapreditor 124 no lado do codificador.
Divisão não retangular
[00185] No controlador de previsão 128 acoplado ao intrapreditor 124 e ao interpreditor 126 no lado do codificador (ver a figura 1), bem como no controlador de previsão 220 acoplado ao intrapreditor 216 e ao interpreditor 218 no lado do decodificador (ver a figura 10), até ago- ra as divisões (ou blocos ou sub-blocos de tamanho variável) obtidas da divisão de cada bloco, para o qual são obtidas as informações de movimento (por exemplo, vetores de movimento), são invariavelmente retangulares, como mostrado na figura 2. Os inventores descobriram que a geração de divisões com uma forma não retangular, como uma forma triangular, leva a uma melhoria 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 modalida- des serão descritas, nas quais pelo menos uma divisão dividida de um bloco de imagem para fins de previsão tem uma forma não retangular. Observe que essas modalidades são igualmente aplicáveis no lado do codificador (controlador de previsão 128 acoplado ao intrapreditor 124 e ao interpreditor 126) e no lado do decodificador (controlador de pre- visão 220 acoplado ao intrapreditor 216 e ao interpreditor 218) e po- dem ser implementadas no codificador da figura 1 ou similares, ou no decodificador da figura 10 ou similares.
[00186] A figura 11 é um fluxograma que ilustra um exemplo de um processo de divisão de um bloco de imagem em divisões que incluem pelo menos uma primeira divisão com uma forma não retangular (por exemplo, um triângulo) e uma segunda divisão, e que realiza o pro- cessamento adicional que inclui a codificação (ou decodificação) do bloco de imagens como uma combinação reconstruída da primeira e da segunda divisão.
[00187] Na etapa S1001, um bloco de imagem é dividido em divi- sões, que incluem uma primeira divisão com uma forma não retangular e uma segunda divisão, que pode ou não ter uma forma não retangu- lar. Por exemplo, como mostrado na figura 12, um bloco de imagem pode ser dividido de um canto superior esquerdo do bloco de imagem para um canto inferior direito do bloco de imagem para criar uma pri- meira divisão e uma segunda divisão, ambas com uma forma não re- tangular (por exemplo, um triângulo), ou um bloco de imagem pode ser dividido do canto superior direito do bloco de imagem para o canto in- ferior esquerdo do bloco de imagem para criar uma primeira divisão e uma segunda divisão, ambas com formato não retangular (por exem- plo, um triângulo). Vários exemplos de divisão não retangular serão descritos abaixo em referência às figuras 12 e 17-19.
[00188] Na etapa S1002, o processo prevê um primeiro vetor de movimento para a primeira divisão e prevê um segundo vetor de mo- vimento para a segunda divisão. Por exemplo, a previsão do primeiro e do segundo vetor de movimento pode incluir a seleção do primeiro ve- tor de movimento de um primeiro conjunto de candidatos de vetor de movimento e a seleção do segundo vetor de movimento a partir de um segundo conjunto de candidatos de vetor de movimento.
[00189] Na etapa S1003, um processo de compensação de movi- mento é realizado para obter a primeira divisão com o uso do primeiro vetor de movimento, que é derivado na etapa S1002 acima, e para ob- ter a segunda divisão com o uso do segundo vetor de movimento, que é derivado na etapa S1002 acima.
[00190] Na etapa S1004, um processo de previsão é realizado para o bloco de imagem como uma combinação (reconstruída) da primeira divisão e da segunda divisão. O processo de previsão pode incluir um processo de suavização de limite para suavizar o limite entre a primei- ra divisão e a segunda divisão. Por exemplo, o processo de suaviza- ção de limite pode envolver a ponderação dos primeiros valores dos pixels de limite previstos com base na primeira divisão e dos segundos valores dos pixels de limite previstos com base na segunda divisão. Várias implementações do processo de suavização de limite serão descritas abaixo em referência às figuras 13, 14, 20 e 21A-21D.
[00191] Na etapa S1005, o processo codifica ou decodifica o bloco de imagem com o uso de um ou mais parâmetros, que incluem um pa- râmetro de divisão indicativo da divisão do bloco de imagem na primei- ra divisão que tem uma forma não retangular e a segunda divisão. Como resumido em uma tabela da figura 15, por exemplo, o parâmetro de divisão ("o primeiro valor de índice") pode codificar em conjunto, por exemplo, uma direção de divisão aplicada na divisão (por exemplo, da parte superior esquerda para a parte inferior direita ou da parte superi- or direita para a parte inferior esquerda), como mostrado na figura 12), e o primeiro e o segundo vetor de movimento derivados na etapa S1002 acima. Os detalhes de tal operação de sintaxe da divisão en- volvendo um ou mais parâmetros, que incluem o parâmetro da divisão, serão descritos em detalhes abaixo em referência às figuras 15, 16 e 22 a 25.
[00192] A figura 17 é um fluxograma que ilustra um processo 2000 de dividir um bloco de imagem. Na etapa S2001, o processo divide uma imagem em uma pluralidade de divisões, que inclui uma primeira divisão que tem uma forma não retangular e uma segunda divisão, que pode ou não ter uma forma não retangular. Como mostrado na figura 12, um bloco de imagem pode ser dividido em uma primeira divisão com forma de triângulo e uma segunda divisão também com forma de triângulo. Existem inúmeros outros exemplos em que um bloco de imagem é dividido em uma pluralidade de divisões, que inclui uma primeira divisão e uma segunda divisão na qual pelo menos a primeira divisão tem uma forma não retangular. A forma não retangular pode ser um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos.
[00193] Por exemplo, como mostrado na figura 18, um bloco de imagem pode ser dividido em duas divisões de forma triangular; um bloco de imagem pode ser dividido em mais de duas divisões de forma triangular (por exemplo, três divisões de forma triangular); um bloco de imagem pode ser dividido em uma combinação de divisão(ões) de forma triangular e divisão(ões) de forma retangular; ou um bloco de imagem pode ser dividido em uma combinação de divisão(ões) em forma de triângulo e divisão(ões) em forma de polígono.
[00194] Como mostrado adicionalmente na figura 19, um bloco de imagem pode ser dividido em uma divisão em forma de L (forma de polígono) e uma divisão de forma retangular; um bloco de imagem po- de ser dividido em uma divisão de forma pentágono (polígono) e uma divisão de forma triangular; um bloco de imagem pode ser dividido em uma divisão em forma de hexágono (polígono) e uma divisão em for- ma de pentágono (polígono); ou um bloco de imagem pode ser dividi- do em várias divisões de forma de polígono.
[00195] Com referência à figura 17, na etapa S2002, o processo prevê um primeiro vetor de movimento para a primeira divisão, por exemplo, ao selecionar a primeira divisão de um primeiro conjunto de candidatos de vetor de movimento e prevê um segundo vetor de mo- vimento para a segunda divisão, por exemplo, ao selecionar a segun- da divisão de um segundo conjunto de candidatos de vetor de movi- mento. Por exemplo, o primeiro conjunto de candidatos de vetor de movimento pode incluir os vetores de movimento de divisões próximas à primeira divisão e o segundo conjunto de candidatos de vetor de movimento pode incluir os vetores de movimento de divisões próximas à segunda divisão. As divisões próximas podem ser uma ou ambas divisões espacialmente próximas e divisões próximas temporárias. Al- guns exemplos de divisões espacialmente próximas incluem uma divi- são localizada à esquerda, inferior esquerda, inferior, inferior direita,
direita, superior direita, superior ou superior esquerda da divisão que está sendo processada. Os exemplos de divisões próximas temporá- rias são divisões colocalizadas nas imagens de referência do bloco de imagens.
[00196] Em várias implementações, as divisões próximas à primeira divisão e as divisões próximas à segunda divisão podem estar fora do bloco de imagem do qual a primeira e a segunda divisão estão dividi- das. O primeiro conjunto de candidatos de vetor de movimento pode ser igual ou diferente do segundo conjunto de candidatos de vetor de movimento. Além disso, pelo menos um do primeiro conjunto de can- didatos de vetor de movimento e do segundo conjunto de candidatos de vetor de movimento pode ser um igual ao outro, o terceiro conjunto de candidatos de vetor de movimento preparado para o bloco de ima- gem.
[00197] Em algumas implementações, na etapa S2002, em respos- ta à determinação de que a segunda divisão, semelhante à primeira, também possui uma forma não retangular (por exemplo, um triângulo), o processo 2000 cria o segundo conjunto de candidatos de vetor de movimento (para a segunda divisão de forma não retangular) que in- clui os vetores de movimento de divisões próximas à segunda divisão exclusiva da primeira divisão (ou seja, exclusiva do vetor de movimen- to da primeira divisão). Por outro lado, em resposta à determinação de que a segunda divisão, diferente da primeira, tem uma forma retangu- lar, o processo 2000 cria o segundo conjunto de candidatos de vetor de movimento (para a segunda divisão de forma retangular) que inclui os vetores de movimento de divisões próximas à segunda divisão, in- clusive da primeira divisão.
[00198] Na etapa S2003, o processo codifica ou decodifica a primei- ra divisão com o uso do primeiro vetor de movimento derivado na eta- pa S2002 acima e codifica ou decodifica a segunda divisão com o uso do segundo vetor de movimento derivado na etapa S2002 acima.
[00199] Um processo de divisão de bloco de imagem, como o pro- cesso 2000 da figura 17, pode ser realizada por um codificador de imagem, como mostrado na figura 1, por exemplo, que inclui circuitos e uma memória acoplada aos circuitos. O circuito, em operação, exe- cuta: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma se- gunda divisão (etapa S2001); prever um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a se- gunda divisão (etapa S2002); e codificar a primeira divisão com o uso do primeiro vetor de movimento e a segunda divisão com o uso do se- gundo vetor de movimento (etapa S2003).
[00200] De acordo com outra modalidade, como mostrado na figura 1, é fornecido um codificador de imagem que inclui: um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um adicionador 104 que, em operação, recebe os blocos do divisor e as previsões de um controlador de previsão 128 e subtrai cada previ- são do seu bloco correspondente para produzir um resíduo; um trans- formador 106 que, em operação, realiza uma transformação nos resí- duos emitidos a partir do adicionador 104 em coeficientes de transfor- mação de saída; um quantizador 108 que, em operação, quantifica os coeficientes de transformação para gerar os coeficientes de transfor- mação quantizados; um codificador de 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 interpredi- tor 126, um intrapreditor 124 e uma memória 118, 122, em que o inter- preditor 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 codifi- cada e o intrapreditor 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 divisões, que inclui uma primeira divisão que tem uma forma não retangular e uma segunda divisão (a figura 17, etapa S2001); prevê um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão (etapa S2002); e codifica a primeira divisão com o uso do primeiro ve- tor de movimento e a segunda divisão com o uso do segundo vetor de movimento (etapa S2003).
[00201] De acordo com outra modalidade, um decodificador de imagem, como mostrado na figura 10, por exemplo, é fornecido, que inclui circuitos e uma memória acoplada aos circuitos. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangu- lar e uma segunda divisão (a figura 17, etapa S2001); prever um pri- meiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a segunda divisão (etapa S2002); e decodificar a primeira divisão com o uso do primeiro vetor de movimento e a segun- da divisão com o uso do segundo vetor de movimento (etapa S2003).
[00202] De acordo com uma modalidade adicional, um decodifica- dor de imagem como mostrado na figura 10 é fornecido que inclui: um decodificador de 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, quantifica inversamente os coeficientes de transformação quantizados para obter os coeficientes de transformação e transforma inversamente os coeficientes de transformação para obter resíduos; um adicionador 208 que, em operação, adiciona os resíduos emitidos a partir do quantizador inverso 204 e do transformador 206 e as previ- sões emitidas a partir de um controlador de previsão 220 para recons- truir blocos; e o controlador de previsão 220 acoplado a um interpredi-
tor 218, um intrapreditor 216 e uma memória 210, 214, em que o inter- preditor 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 deco- dificada e o intrapreditor 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 divisões, que inclui uma pri- meira divisão que tem uma forma não retangular e uma segunda divi- são (a figura 17, etapa S2001); prevê um primeiro vetor de movimento para a primeira divisão e um segundo vetor de movimento para a se- gunda divisão (etapa S2002); e decodifica a primeira divisão com o uso do primeiro vetor de movimento e a segunda divisão com o uso do segundo vetor de movimento (etapa S2003). Suavização de Limite
[00203] Como descrito acima na figura 11, a etapa S1004, de acor- do com várias modalidades, a realização de um processo de previsão para o bloco de imagem como uma combinação (reconstruída) da pri- meira divisão que tem uma forma não retangular e da segunda divisão pode envolver a aplicação de um processo de suavização de limite ao longo do limite entre a primeira divisão e a segunda divisão.
[00204] Por exemplo, a figura 21B ilustra um exemplo de um pro- cesso de suavização de limite envolvendo a ponderação dos primeiros valores de pixels de limite, que são previstos pela primeira vez com base na primeira divisão e segundos valores dos pixels de limite, que são previstos por segundo com base na segunda divisão.
[00205] A figura 20 é um fluxograma que ilustra um processo geral de suavização de limite 3000 envolvendo a ponderação dos primeiros valores dos pixels de limite previstos com base na primeira divisão e segundos valores dos pixels de limite previstos com base na segunda divisão, de acordo com uma modalidade. Na etapa S3001, um bloco de imagem é dividido em uma primeira divisão e uma segunda divisão ao longo de um limite em que pelo menos a primeira divisão tem uma forma não retangular, como mostrado na figura 21A ou nas figuras 12, 18 e 19 descritas acima.
[00206] Na etapa S3002, os primeiros valores (por exemplo, cor, luminância, transparência etc.) de um conjunto de pixels ("pixels de limite" na figura 21A) da primeira divisão ao longo do limite são previs- tos pela primeira vez, em que os primeiros valores são previstos pela primeira vez com o uso das informações da primeira divisão. Na etapa S3003, os segundos valores do (mesmo) conjunto de pixels da primei- ra divisão ao longo do limite são previstos em segundo lugar, em que os segundos valores são previstos em segundo lugar com o uso das informações da segunda divisão. Em alguma implementação, pelo menos uma da primeira previsão e da segunda previsão é um proces- so de interprevisão que prevê os primeiros valores e os segundos com base em uma divisão de referência em uma imagem de referência co- dificada. Com referência à figura 21D, em algumas implementações, o processo de previsão prevê os primeiros valores de todos os pixels da primeira divisão ("o primeiro conjunto de amostras"), que inclui o con- junto de pixels sobre os quais a primeira e a segunda divisão se so- brepõem, e prevê os segundos valores apenas o conjunto de pixels ("o segundo conjunto de amostras") sobre o qual a primeira e a segunda divisão se sobrepõem. Em outra implementação, pelo menos uma da primeira previsão e da segunda previsão é um processo intraprevisão que prevê os primeiros valores e os segundos com base em uma divi- são de referência codificada em uma imagem atual. Em algumas im- plementações, um método de previsão usado na primeira previsão é diferente de um método de previsão usado na segunda previsão. Por exemplo, a primeira previsão pode incluir um processo interprevisão e a segunda previsão pode incluir um processo intraprevisão. As infor-
mações usadas para a primeira previsão dos primeiros valores ou pre- ver os segundos valores podem ser vetores de movimento, direções intraprevisão, etc. da primeira ou da segunda divisão.
[00207] Na etapa S3004, os primeiros valores, previstos usando a primeira divisão, e os segundos valores, previstos usando a segunda divisão, são ponderados. Na etapa S3005, a primeira divisão é codifi- cada ou decodificada com o uso do primeiro e do segundo valor pon- derado.
[00208] A figura 21B ilustra um exemplo de uma operação de sua- vização de limite em que a primeira divisão e a segunda divisão se so- brepõem a cinco pixels (no máximo) de cada linha ou coluna. Ou seja, o número do conjunto de pixels de cada linha ou coluna, para o qual os primeiros valores são previstos com base na primeira divisão e os segundos são previstos com base na segunda divisão, são cinco no máximo. A figura 21C ilustra outro exemplo de uma operação de sua- vização de limite em que a primeira divisão e a segunda divisão se so- brepõem a três pixels (no máximo) de cada linha ou coluna. Ou seja, o número do conjunto de pixels de cada linha ou coluna, para o qual os primeiros valores são previstos com base na primeira divisão e os se- gundos valores são previstos com base na segunda divisão, são três no máximo.
[00209] A figura 13 ilustra outro exemplo de operação de suaviza- ção de limite, em que a primeira divisão e a segunda divisão se sobre- põem a quatro pixels (no máximo) de cada linha ou coluna. Ou seja, o número do conjunto de pixels de cada linha ou coluna, para o qual os primeiros valores são previstos com base na primeira divisão e os se- gundos são previstos com base na segunda divisão, são quatro no máximo. No exemplo ilustrado, pesos de 1/8, 1/4, 3/4 e 7/8 podem ser aplicados aos primeiros valores dos quatro pixels no conjunto, respec- tivamente, e pesos de 7/8, 3/4, 1/4 e 1/8 podem ser aplicados aos se-
gundos valores dos quatro pixels no conjunto, respectivamente.
[00210] A figura 14 ilustra exemplos adicionais de uma operação de suavização de limite em que a primeira divisão e a segunda divisão se sobrepõem a zero pixels de cada linha ou coluna (ou seja, não se so- brepõem), se sobrepõem a um pixel (no máximo) de cada linha ou ca- da coluna e se sobrepõem a dois pixels (no máximo) de cada linha ou coluna, respectivamente. No exemplo em que a primeira e a segunda divisão não se sobrepõem, pesos zero são aplicados. No exemplo em que a primeira e a segunda divisão se sobrepõem a um pixel de cada linha ou coluna, um peso de 1/2 pode ser aplicado aos primeiros valo- res dos pixels no conjunto previsto com base na primeira divisão e um peso de 1/2 pode ser aplicado aos segundos valores dos pixels no conjunto previsto com base na segunda divisão. No exemplo em que a primeira e a segunda divisão se sobrepõem a dois pixels de cada linha ou coluna, pesos de 1/3 e 2/3 podem ser aplicados aos primeiros valo- res dos dois pixels no conjunto previsto com base na primeira divisão, respectivamente, e pesos de 2/3 e 1/3 podem ser aplicados aos se- gundos valores dos dois pixels no conjunto previsto com base na se- gunda divisão, respectivamente.
[00211] De acordo com as modalidades descritas acima, o número de pixels no conjunto sobre o qual a primeira divisão e a segunda divi- são se sobrepõem é um número inteiro. Em outras implementações, o número de pixels sobrepostos no conjunto pode ser não inteiro e pode ser fracionário, por exemplo. Além disso, os pesos aplicados aos pri- meiro e segundo valores do conjunto de pixels podem ser fracionários ou inteiros, dependendo de cada aplicação.
[00212] Um processo de suavização de limite, como o processo 3000 da figura 20, pode ser realizado por um codificador de imagem, como mostrado na figura 1, por exemplo, que inclui circuitos e uma memória acoplada aos circuitos. Os circuitos, em operação, executam uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segun- da divisão que é dividida a partir de um bloco de imagem (a 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 divisão ao longo do limite, com o uso das informações da primeira divi- são (etapa S3002); a segunda previsão dos segundos valores do con- junto de pixels da primeira divisão ao longo do limite, com o uso das informações da segunda divisão (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e codificar a primeira divisão com o uso dos primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[00213] De acordo com outra modalidade, como mostrado na figura 1, é fornecido um codificador de imagem que inclui: um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um adicionador 104 que, em operação, recebe os blocos do divisor e as previsões de um controlador de previsão 128 e subtrai cada previ- são do seu bloco correspondente para produzir um resíduo; um trans- formador 106 que, em operação, realiza uma transformação nos resí- duos emitidos a partir do adicionador 104 em coeficientes de transfor- mação de saída; um quantizador 108 que, em operação, quantifica os coeficientes de transformação para gerar os coeficientes de transfor- mação quantizados; um codificador de 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 interpredi- tor 126, um intrapreditor 124 e uma memória 118, 122, em que o inter- preditor 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 codifi- cada e o intrapreditor 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, executa uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segun- da divisão que é dividida a partir de um bloco de imagem (a 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 divisão ao longo do limite, com o uso das informações da primeira divi- são (etapa S3002); os a segunda previsão dos segundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informações da segunda divisão (etapa S3003); ponderar os pri- meiros valores e os segundos valores (etapa S3004); e codificar a pri- meira divisão com o uso dos primeiros valores ponderados e os se- gundos valores ponderados (etapa S3005).
[00214] De acordo com outra modalidade, é fornecido um decodifi- cador de imagem, como mostrado na figura 10, por exemplo, que inclui circuitos e uma memória acoplada aos circuitos. Os circuitos, em ope- ração, executam uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangu- lar e uma segunda divisão que é dividida a partir de um bloco de ima- gem (a 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 divisão ao longo do limite, com o uso das informa- ções da primeira divisão (etapa S3002); a segunda previsão dos se- gundos valores do conjunto de pixels da primeira divisão ao longo do limite, com o uso das informações da segunda divisão (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e decodificar a primeira divisão com o uso dos primeiros valores ponde- rados e os segundos valores ponderados (etapa S3005).
[00215] De acordo com outra modalidade, é fornecido um decodifi- cador de imagem como mostrado na figura 10, que inclui: um decodifi-
cador de entropia 202 que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficientes de transformação quanti- zados; um quantizador inverso 204 e transformador 206 que, em ope- ração, quantifica inversamente os coeficientes de transformação quan- tizados para obter os coeficientes de transformação e transforma in- versamente os coeficientes de transformação para obter resíduos; um adicionador 208 que, em operação, adiciona os resíduos emitidos a partir do quantizador inverso 204 e do transformador 206 e previsões emitidas a partir de um controlador de previsão 220 para reconstruir blocos; e o controlador de previsão 220 acoplado a um interpreditor 218, um intrapreditor 216 e uma memória 210, 214, em que o interpre- ditor 218, em operação, gera uma previsão de um bloco atual com ba- se em um bloco de referência em uma imagem de referência decodifi- cada e o intrapreditor 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, executa uma operação de suavização de limite ao longo de um limite entre uma primeira divisão que tem uma forma não retangular e uma segun- da divisão que é dividida a partir de um bloco de imagem (a 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 divisão ao longo do limite, com o uso das informações da primeira divi- são (etapa S3002); a segunda previsão dos segundos valores do con- junto de pixels da primeira divisão ao longo do limite, com o uso das informações da segunda divisão (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e decodificar a primeira divisão com o uso dos primeiros valores ponderados e os segundos valores ponderados (etapa S3005). Codificação e Decodificação de entropia com o uso de sintaxe de pa- râmetro de divisão
[00216] Como descrito na figura 11, a etapa S1005, de acordo com várias modalidades, o bloco de imagem dividido em uma primeira divi- são que tem uma forma não retangular e uma segunda divisão pode ser codificada ou decodificada com o uso de um ou mais parâmetros, que incluem um parâmetro de divisão indicativo da divisão não retan- gular de o bloco de imagem. Em várias modalidades, esse parâmetro de divisão pode codificar em conjunto, por exemplo, uma direção de divisão aplicada à divisão (por exemplo, da parte superior esquerda para a parte inferior direita ou da parte superior direita para a parte in- ferior esquerda, consulte a figura 12) e os primeiro e segundo vetores de movimento previstos na etapa S1002, como será descrito mais de- talhadamente abaixo.
[00217] A figura 15 é uma tabela de parâmetros de divisão de amostra ("o primeiro valor de índice") e os conjuntos de informações codificados em conjunto pelos parâmetros de divisão, respectivamen- te. Os parâmetros da divisã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 divisão e uma segunda divisão, que são tri- ângulos (consulte a figura 12), o primeiro movimento vetor previsto pa- ra a primeira divisão (a figura 11, etapa S1002) e o segundo vetor de movimento previsto para a segunda divisão (a figura 11, etapa S1002). Especificamente, o parâmetro de divisão 0 codifica a direção da divi- são é do canto superior esquerdo ao canto inferior direito, o primeiro vetor de movimento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a se- gunda divisão.
[00218] O parâmetro 1 da divisão codifica a direção da divisão é do canto superior direito ao canto inferior esquerdo, o primeiro vetor de movimento é o "1º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "2°" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são.
O parâmetro de divisão 2 codifica a direção da divisão é do canto superior direito ao canto inferior esquerdo, o primeiro vetor de movi- mento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são.
O parâmetro de divisão 3 codifica a direção da divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de mo- vimento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "2°" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são.
O parâmetro de divisão 4 codifica a direção da divisão é do canto superior direito ao canto inferior esquerdo, o primeiro vetor de movi- mento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "3°" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são.
O parâmetro de divisão 5 codifica a direção da divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de mo- vimento é o "3°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são.
O parâmetro de divisão 6 codifica a direção da divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de mo-
vimento é o "4º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são.
[00219] A figura 22 é um fluxograma que ilustra um método 4000 realizado no lado do codificador. Na etapa S4001, o processo divide um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divi- são, com base em um parâmetro de divisão indicativo da divisão. Por exemplo, como mostrado na figura 15 descrito acima, o parâmetro de divisão pode indicar a direção da divisão de um bloco de imagem (por exemplo, do canto superior direito ao canto inferior esquerdo ou do canto superior esquerdo ao canto inferior direito). Na etapa S4002, o processo codifica a primeira divisão e a segunda divisão. Na etapa S4003, o processo grava um ou mais parâmetros, que incluem o pa- râmetro de divisão, em um fluxo de bits, que o lado do decodificador pode receber e decodificar para obter um ou mais parâmetros para executar o mesmo processo de previsão (como realizado no lado do codificador) para as primeira e segunda divisões no lado do decodifi- cador. Os um ou mais parâmetros, que incluem o parâmetro de divi- são, podem codificar em conjunto ou separadamente várias informa- ções, como a forma não retangular da primeira divisão, a forma da se- gunda divisão, a direção de divisão usada para dividir um bloco de imagem para obter o primeiro e segundas divisões, o primeiro vetor de movimento da primeira divisão, o segundo vetor de movimento da se- gunda divisão, etc.
[00220] A figura 23 é um fluxograma que ilustra um método 5000 realizado no lado do decodificador. Na etapa S5001, o processo anali- sa um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indicativo de divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divi- são. Os um ou mais parâmetros, que incluem o parâmetro de divisão analisado fora do fluxo de bits, podem codificar em conjunto ou sepa- radamente várias informações necessárias para o lado do decodifica- dor executar o mesmo processo de previsão que o realizado no lado do codificador, como a forma não retangular da primeira divisão, o formato da segunda divisão, a direção de divisão usada para dividir um bloco de imagem para obter a primeira e a segunda divisão, o primeiro vetor de movimento da primeira divisão, o segundo vetor de movimen- to da segunda divisão, etc. Na etapa S5002, o processo 5000 divide o bloco de imagem na pluralidade de divisões com base no parâmetro de divisão analisado fora do fluxo de bits. Na etapa S5003, o processo decodifica a primeira divisão e a segunda, como divididas no bloco de imagem.
[00221] A figura 24 é uma tabela de parâmetros de divisão de amostra ("o primeiro valor de índice") e conjuntos de informações codi- ficados em conjunto pelos parâmetros de divisão, respectivamente, de natureza semelhante à tabela de amostra descrita acima na figura 15. Na figura 24, os parâmetros da divisão ("os primeiros valores de índi- ce") variam de 0 a 6 e codificam em conjunto: o formato da primeira e da segunda divisão se separa de um bloco de imagem, a direção de dividir um bloco de imagem na primeira e na segunda divisão, o pri- meiro vetor de movimento previsto para a primeira divisão (a figura 11, etapa S1002) e o segundo vetor de movimento previsto para a segun- da divisão (a figura 11, etapa S1002). Especificamente, o parâmetro de divisão 0 codifica que nenhuma das primeira e segunda divisões tem uma forma triangular e, portanto, as informações de direção da divisão são "N/A", as informações do primeiro vetor de movimento são
"N/A" e as informações do segundo vetor de movimento são "N/A".
[00222] O parâmetro de divisão 1 codifica a primeira e a segunda divisão em triângulos, a direção da divisão é do canto superior esquer- do para o canto inferior direito, o primeiro vetor de movimento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de ve- tor de movimento para a primeira divisão e o segundo vetor de movi- mento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divisão. O parâme- tro de divisão 2 codifica a primeira e a segunda divisão em triângulos, a direção da divisão é do canto superior direito ao canto inferior es- querdo, o primeiro vetor de movimento é o "1º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "2°" vetor de movimento listado no segundo conjunto de candidatos de vetor de mo- vimento para a segunda divisão. O parâmetro de divisão 3 codifica a primeira e a segunda divisão em triângulos, a direção da divisão é do canto superior direito ao canto inferior esquerdo, o primeiro vetor de movimento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divi- são. O parâmetro de divisão 4 codifica a primeira e a segunda divisão em triângulos, a direção da divisão é do canto superior esquerdo ao canto inferior direito, o primeiro vetor de movimento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de mo- vimento para a primeira divisão e o segundo vetor de movimento é o "2°" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divisão. O parâmetro de divisão 5 codifica a primeira e a segunda divisão em triângulos, a direção da di- visão é do canto superior direito ao canto inferior esquerdo, o primeiro vetor de movimento é o "2°" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira divisão e o segundo vetor de movimento é o "3°" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a se- gunda divisão. O parâmetro de divisão 6 codifica a primeira e a segun- da divisão em triângulos, a direção da divisão é do canto superior es- querdo ao canto inferior direito, o primeiro vetor de movimento é o "3°" vetor de movimento listado no primeiro conjunto de candidatos de ve- tor de movimento para a primeira divisão e o segundo vetor de movi- mento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda divisão.
[00223] De acordo com algumas implementações, os parâmetros da divisã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 de um ou mais parâmetros. A figura 16 ilustra um esquema de binarização de amostra de binarização dos va- lores de índice (os valores dos parâmetros da divisão).
[00224] A figura 25 é uma tabela de combinações de amostras de um primeiro parâmetro e um segundo parâmetro, em que um dos quais é um parâmetro de divisão indicativo de divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divi- são com uma forma não retangular e uma segunda divisão. Nesse exemplo, o parâmetro de divisão pode ser usado para indicar a divisão de um bloco de imagem sem codificar em conjunto outras informa- ções, que são codificadas por um ou mais dos outros parâmetros.
[00225] No primeiro exemplo na figura 25, o primeiro parâmetro é usado para indicar um tamanho de bloco de imagem e o segundo pa- râmetro é usado como o parâmetro de divisão (uma bandeira) para indicar que pelo menos uma dentre uma pluralidade de divisões dividi- da em um bloco de imagem tem uma forma triangular. Essa combina-
ção dos primeiro e segundo parâmetros pode ser usada para indicar, por exemplo, 1) quando o tamanho do bloco de imagem é maior que 64 x 64, não há divisão de forma triangular ou 2) quando a proporção de largura e altura de um bloco de imagem for maior que 4 (por exem- plo, 64x4), não há divisão de forma triangular.
[00226] No segundo exemplo da figura 25, o primeiro parâmetro é usado para indicar um modo de previsão e o segundo parâmetro é usado como o parâmetro de divisão (uma sinalização) para indicar que pelo menos uma dentre uma pluralidade de divisões divididas em um bloco de imagem tem uma forma triangular. Essa combinação dos primeiro e segundo parâmetros pode ser usada para indicar, por exemplo, 1) quando um bloco de imagem é codificado no modo intra, não há divisão triangular.
[00227] No terceiro exemplo da figura 25, o primeiro parâmetro é usado como o parâmetro de divisão (uma bandeira) para indicar que pelo menos uma dentre uma pluralidade de divisões divididas em um bloco de imagem tem uma forma triangular e o segundo parâmetro é usado para indicar um modo de previsão. Essa combinação do primei- ro e do segundo parâmetros pode ser usada para indicar, por exemplo, 1) quando pelo menos uma dentre a pluralidade de divisões divididas de um bloco de imagem tem uma forma triangular, o bloco de imagem deve ser codificado.
[00228] No quarto exemplo da figura 25, o primeiro parâmetro indi- ca o vetor de movimento de um bloco próximo e o segundo parâmetro é usado como o parâmetro de divisão que indica a direção da divisão de um bloco de imagem em dois triângulos. Essa combinação dos primeiro e segundo parâmetros pode ser usada para indicar, por exemplo, 1) quando o vetor de movimento de um bloco próximo é uma direção diagonal, a direção da divisão do bloco de imagem em dois triângulos é do canto superior esquerdo para o canto inferior direito.
[00229] No quinto exemplo da figura 25, o primeiro parâmetro indica a direção intraprevisão de um bloco próximo e o segundo parâmetro é usado como o parâmetro de divisão que indica a direção da divisão de um bloco de imagem em dois triângulos. Essa combinação dos primei- ro e segundo parâmetros pode ser usada para indicar, por exemplo, 1) quando a direção intraprevisão de um bloco próximo é uma direção diagonal inversa, a direção da divisão do bloco de imagem em dois triângulos é do canto superior direito canto ao canto inferior esquerdo.
[00230] Deve ser entendido que as tabelas de um ou mais parâme- tros, que incluem o parâmetro de divisão e quais informações são co- dificadas em conjunto ou separadamente, como mostrado nas figuras 15, 24 e 25, são apresentados apenas como exemplos e inúmeras ou- tras maneiras de codificar, em conjunto ou separadamente, várias in- formações como parte da operação de sintaxe da divisão descrita aci- ma, estão dentro do escopo da presente divulgação. Por exemplo, o parâmetro de divisão pode indicar que a primeira divisão é um triângu- lo, um trapézio ou um polígono com pelo menos cinco lados e ângulos. O parâmetro de divisão pode indicar que a segunda divisão tem uma forma não retangular, como um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos. O parâmetro de divisão pode indicar uma ou mais informações sobre a divisão, como a forma não retangular da primeira divisão, a forma da segunda divisão (que pode ser não retangular ou retangular), a direção da divisão aplicada à divi- são um bloco de imagens em uma pluralidade de divisões (por exem- plo, de um canto superior esquerdo do bloco de imagens para um can- to inferior direito e de um canto superior direito do bloco de imagens para um canto inferior esquerdo). O parâmetro de divisão pode codifi- car conjuntamente as informações adicionais, como o primeiro vetor de movimento da primeira divisão, o segundo vetor de movimento da segunda divisão, tamanho do bloco de imagem, modo de previsão, o vetor de movimento de um bloco próximo, a direção de intraprevisão de um bloco próximo. Em alternativa, qualquer informação adicional pode ser codificada separadamente por um ou mais parâmetros dife- rentes do parâmetro de divisão.
[00231] Uma operação de sintaxe da divisão, como o processo 4000 da figura 22, pode ser realizada por um codificador de imagem, como mostrado na figura 1, por exemplo, que inclui circuitos e uma memória acoplada aos circuitos. Os circuitos, em operação, executam uma operação de sintaxe da divisão, que inclui: dividir um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divi- são com uma forma não retangular e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão (a figura 22, etapa S4001); codificar a primeira divisão e a segunda divisão (S4002); e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits (S4003).
[00232] De acordo com outra modalidade, como mostrado na figura 1, é fornecido um codificador de imagem que inclui: um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um adicionador 104 que, em operação, recebe os blocos do divisor e as previsões de um controlador de previsão 128 e subtrai cada previ- são do seu bloco correspondente para produzir um resíduo; um trans- formador 106 que, em operação, realiza uma transformação nos resí- duos emitidos a partir do adicionador 104 em coeficientes de transfor- mação de saída; um quantizador 108 que, em operação, quantifica os coeficientes de transformação para gerar os coeficientes de transfor- mação quantizados; um codificador de 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 interpredi- tor 126, um intrapreditor 124 e uma memória 118, 122, em que o inter- preditor 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 codifi- cada e o intrapreditor 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 divisões, que inclui uma pri- meira divisão que tem uma forma não retangular e uma segunda divi- são baseada em um parâmetro de divisão indicativo da divisão (a figu- ra 22, etapa S4001), e codifica a primeira divisão e a segunda (etapa S4002). O codificador de entropia 110, em operação, grava um ou mais parâmetros, que incluem o parâmetro de divisão, em um fluxo de bits (etapa S4003).
[00233] De acordo com outra modalidade, é fornecido um decodifi- cador de imagem, como mostrado na figura 10, por exemplo, que inclui circuitos e uma memória acoplada aos circuitos. Os circuitos, em ope- ração, executam uma operação de sintaxe da divisão, que inclui: ana- lisar um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indicativo de divi- são de um bloco de imagem em uma pluralidade de divisões, que in- clui uma primeira divisão que tem uma forma não retangular e uma segunda divisão (a figura 23, etapa S5001); dividir o bloco de imagem na pluralidade de divisões com base no parâmetro de divisão (S5002); e decodificar a primeira divisão e a segunda divisão (S5003).
[00234] De acordo com uma modalidade adicional, um decodifica- dor de imagem como mostrado na figura 10 é fornecido, que inclui: um decodificador de 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, quantifica inversamente os coeficientes de transformação quantizados para obter os coeficientes de transformação e transforma inversamente os coeficientes de transformação para obter resíduos;
um adicionador 208 que, em operação, adiciona os resíduos emitidos a partir do quantizador inverso 204 e do transformador 206 e previsões emitidas a partir de um controlador de previsão 220 para reconstruir blocos; e o controlador de previsão 220 acoplado a um interpreditor 218, um intrapreditor 216 e uma memória 210, 214, em que o interpre- ditor 218, em operação, gera uma previsão de um bloco atual com ba- se em um bloco de referência em uma imagem de referência decodifi- cada e o intrapreditor 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 de entropia 202, em operação: analisa um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indicativo de divisão de um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão (a figura 23, etapa S5001); divide o bloco de imagens na pluralidade de divisões com base no parâmetro de divisão (S5002); e decodifica a primeira divisão e a segunda divisão (S5003) em cooperação com o controlador de previsão 220 em algumas implementações. Implementações e Aplicações
[00235] Como descrito em cada uma das modalidades acima, cada bloco funcional ou operacional pode tipicamente ser realizado como uma MPU (unidade de microprocessamento) e memória, por exemplo. Além disso, os processos executados por cada um dos blocos funcio- nais podem ser realizados como uma unidade de execução de pro- grama, como um processador que lê e executa software (um progra- ma) gravado em uma mídia de gravação como ROM. O software pode ser distribuído. O software pode ser gravado em uma variedade de mídias de gravação, como memória semicondutora. Observe que cada bloco funcional também pode ser realizado como hardware (circuito dedicado).
[00236] O processamento descrito em cada uma das modalidades pode ser realizado via processamento integrado com o uso de um úni- co aparelho (sistema) e, em alternativa, pode ser realizado através do processamento descentralizado com o uso de uma pluralidade de apa- relhos. Além disso, o processador que executa o programa descrito acima pode ser um único processador ou uma pluralidade de proces- sadores. Em outras palavras, o processamento integrado pode ser realizado e, alternativamente, o processamento descentralizado.
[00237] As modalidades da presente divulgação não estão limitadas às modalidades exemplares acima; várias modificações podem ser feitas nas modalidades exemplares, cujos resultados também estão incluídos no escopo das modalidades da presente divulgação.
[00238] Em seguida, serão descritos 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) descrito em cada uma das mo- dalidades acima, bem como vários sistemas que implementam os exemplos de aplicação. Esse sistema pode ser caracterizado como incluindo um codificador de imagem que usa o método de codificação de imagem, um decodificador de imagem que usa o método de decodi- ficação de imagem ou um codificador-decodificador de imagem que inclui o codificador de imagem e o decodificador de imagem. Outras configurações desse sistema podem ser modificadas caso a caso. Exemplos de uso
[00239] A figura 26 ilustra uma configuração geral do sistema de fornecimento de conteúdo ex100 adequado para implementar um ser- viço de distribuição de conteúdo. A área na qual o serviço de comuni- cação é fornecido é dividida em células dos 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.
[00240] No sistema de fornecimento de conteúdo ex100, os disposi- tivos que incluem 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ços de inter- net ex102 ou à rede de comunicações ex104 e à rede de comunica- ções ex104 e às estações base ex106 a ex110. O sistema de forneci- mento de conteúdo ex100 pode combinar e conectar qualquer combi- nação dos dispositivos acima. Em várias implementações, os dispositi- vos podem ser conectados direta ou indiretamente juntos por meio de uma rede telefônica ou comunicação de campo próximo, em vez de através das estações base ex106 a ex110. Além disso, o servidor de transmissão ex103 pode ser conectado aos dispositivos que incluem 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 co- nectado a, por exemplo, um terminal em um ponto ativo no avião ex117 através do satélite ex116.
[00241] Observe que, em vez das estações base ex106 a ex110, os pontos de acesso sem fio ou pontos de acesso podem ser usados. O servidor de transmissão ex103 pode ser conectado à rede de comuni- cações ex104 diretamente em vez de via internet ex101 ou provedor de serviços de internet ex102 e pode ser conectado ao avião ex117 diretamente em vez de via satélite ex116.
[00242] A câmera ex113 é um dispositivo capaz de capturar ima- gens estáticas e vídeos, como uma câmera digital. O smartphone ex115 é um dispositivo de smartphone, telefone celular ou sistema de telefone pessoal (PHS) que pode operar sob os padrões do sistema de comunicações móveis dos sistemas 2G, 3G, 3,9G e 4G, bem como o sistema 5G de última geração.
[00243] O eletrodoméstico ex114 é, por exemplo, um refrigerador ou um dispositivo incluído em um sistema de cogeração com células a combustível domésticas.
[00244] No sistema de fornecimento de conteúdo ex100, um termi- nal que inclui uma função de captura de imagem e/ou vídeo é capaz, por exemplo, de transmissão ao vivo conectando-se ao servidor de transmissão ex103 através, por exemplo, da estação base ex106. Du- rante a transmissão ao vivo, um terminal (por exemplo, computador ex111, dispositivo de jogo ex112, câmera ex113, aparelho eletrodo- méstico ex114, smartphone ex115 ou avião ex117) pode executar o processamento de codificação descrito nas modalidades acima em conteúdo de imagem fixa ou vídeo capturado por um usuário através do terminal, pode multiplexar os dados de vídeo obtidos através dos dados de codificação e áudio obtidos pela codificação de áudio cor- respondente ao vídeo, e pode transmitir os dados obtidos para o servi- dor de transmissão ex103. Em outras palavras, o terminal funciona como o codificador de imagem de acordo com um aspecto da presente divulgação.
[00245] Os fluxos de servidor de transmissão ex103 transmitiram dados de conteúdo para clientes que solicitam o fluxo. Os exemplos de clientes incluem computador ex111, dispositivo de jogos ex112, câme- ra ex113, eletrodoméstico ex114, smartphone ex115 e terminais den- tro do avião ex117, capazes de decodificar os dados codificados des- critos acima. Os dispositivos que recebem os dados transmitidos de- codificam e reproduzem os dados recebidos. Em outras palavras, cada dispositivo pode funcionar como decodificador de imagem, de acordo com um aspecto da presente divulgação. Processamento descentralizado
[00246] O servidor de transmissão ex103 pode ser realizado como uma pluralidade de servidores ou computadores entre os quais tarefas como processamento, gravação e transmissão de dados são divididas. Por exemplo, o servidor de transmissão ex103 pode ser realizado co- mo uma rede de liberação de conteúdo (CDN) que transmite o conteú- do por meio de uma rede que conecta vários servidores de borda loca- lizados em todo o mundo. Em uma CDN, um servidor de borda fisica- mente próximo ao cliente é atribuído dinamicamente ao cliente. O con- teúdo é armazenado em cache e transmitido para o servidor de borda para reduzir o tempo de carregamento. No caso de, por exemplo, al- gum tipo de erro ou alteração na conectividade devido, por exemplo, a um aumento no tráfego, é possível transmitir dados de forma estável a altas velocidades, pois é possível evitar partes afetadas da rede, por exemplo, dividindo o processamento entre uma pluralidade de servido- res de borda ou alternando as tarefas de transmissão para um servidor de borda diferente e continuando a transmissão.
[00247] A descentralização não se limita apenas à divisão de pro- cessamento para a transmissão; a codificação dos dados capturados pode ser dividida entre e realizada pelos terminais, no lado do servidor ou em ambos. Em um exemplo, na codificação típica, o processamen- to é realizado em dois loops. O primeiro loop é para detectar quão complicada é a imagem quadro a quadro ou cena a cena, ou detectar a carga de codificação. O segundo loop é para o processamento que mantém a qualidade da imagem e melhora a eficiência da codificação. Por exemplo, é possível reduzir a carga de processamento dos termi- nais e melhorar a qualidade e a eficiência da codificação do conteúdo, fazendo com que os terminais executem o primeiro loop da codificação e com o lado do servidor que recebeu o conteúdo, execute o segundo loop da codificação. Nesse caso, após o recebimento de uma solicita- ção de decodificação, é possível que os dados codificados resultantes do primeiro loop realizado por um terminal sejam recebidos e reprodu- zidos em outro terminal aproximadamente em tempo real. Isso torna possível realizar transmissão suave e em tempo real.
[00248] Em outro exemplo, a câmera ex113 ou similar extrai uma quantidade de recurso de uma imagem, compacta dados relacionados à quantidade de recursos como metadados e transmite os metadados compactados para um servidor. Por exemplo, o servidor determina a significância de um objeto com base na quantidade do recurso e altera a precisão da quantização para executar a compactação adequada ao significado (ou significância do conteúdo) da imagem. Os dados da quantidade de recursos são particularmente eficazes para melhorar a precisão e a eficiência da previsão do vetor de movimento durante a segunda passagem de compactação realizada pelo servidor. Além dis- so, a codificação que possui uma carga de processamento relativa- mente baixa, como codificação de comprimento variável (VLC), pode ser manipulada pelo terminal e a codificação que possui uma carga de processamento relativamente alta, como codificação aritmética binária adaptativa ao contexto (CABAC), pode ser tratado pelo servidor.
[00249] Em ainda outro exemplo, há casos em que uma pluralidade de vídeos de aproximadamente a mesma cena é capturada por uma pluralidade de terminais em, por exemplo, um estádio, shopping center ou fábrica. Nesse caso, por exemplo, a codificação pode ser descen- tralizada dividindo as 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, por unidade. As unidades podem ser, por exemplo, grupos de figuras (GOP), figuras ou peças resultantes da divisão de uma figura. Isso torna possível reduzir o tempo de carregamento e obter transmissão mais próximo do tempo real.
[00250] Como os vídeos são aproximadamente da mesma cena, o gerenciamento e/ou instruções podem ser executadas pelo servidor para que os vídeos capturados pelos terminais possam ser referencia-
dos. Além disso, o servidor pode receber dados codificados dos termi- nais, alterar a relação de referência entre itens de dados ou corrigir ou substituir as próprias imagens e executar a codificação. Isso torna possível gerar um fluxo com maior qualidade e eficiência para os itens de dados individuais.
[00251] Além disso, o servidor pode transmitir os dados de vídeo após 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.
[00252] Dessa maneira, a codificação pode ser realizada por um terminal ou um ou mais servidores. Consequentemente, embora o dis- positivo que executa a codificação seja referido como "servidor" ou "terminal" na descrição a seguir, alguns ou todos os processos execu- tados pelo servidor podem ser executados pelo terminal e da mesma forma alguns ou todos os processos executados pelo terminal podem ser executados pelo servidor. Isso também se aplica aos processos de decodificação. 3D, multiângulo
[00253] Houve um aumento no uso de imagens ou vídeos combina- dos de imagens ou vídeos de diferentes cenas capturadas simultane- amente ou da mesma cena capturada de diferentes ângulos, por uma pluralidade de terminais, como a câmera ex113 e/ou o smartphone ex115. Os vídeos capturados pelos terminais são combinados com base, por exemplo, na relação posicional relativa obtida separadamen- te entre os terminais ou regiões em um vídeo com pontos de recurso correspondentes.
[00254] Além da codificação de imagens em movimento bidimensi- onais, 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 transmitir a imagem está- tica codificada para uma recepção terminal. Além disso, quando o ser- vidor pode obter a relação posicional relativa entre os terminais de captura de vídeo, além de imagens em movimento bidimensionais, o servidor pode gerar geometria tridimensional de uma cena com base no vídeo da mesma cena capturada de diferentes ângulos. O servidor pode codificar separadamente os dados tridimensionais gerados a par- tir de, por exemplo, uma nuvem de pontos e, com base no resultado do reconhecimento ou rastreamento de uma pessoa ou objeto usando 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 cap- turados por uma pluralidade de terminais.
[00255] Isso permite que o usuário desfrute de uma cena ao seleci- onar livremente os vídeos que correspondem aos terminais de captura de vídeo e permite que o usuário desfrute do conteúdo obtido extrain- do um vídeo em um ponto de vista selecionado a partir de dados tridi- mensionais reconstruídos a partir de uma pluralidade de imagens ou vídeos. Além disso, como no vídeo, o som pode ser gravado de ângu- los relativamente diferentes, e o servidor pode multiplexar o áudio de um ângulo ou espaço específico com o vídeo correspondente e trans- mitir o vídeo e o áudio multiplexados.
[00256] Nos últimos anos, o conteúdo que é um composto do mun- do real e do mundo virtual, como realidade virtual (VR) e realidade aumentada (AR), também se tornou popular. No caso de imagens VR, o servidor pode criar imagens a partir dos pontos de vista dos olhos esquerdo e direito e executar uma codificação que tolera a referência entre as duas imagens do ponto de vista, como codificação de visuali- zação múltipla (MVC) e, alternativamente, pode codifique as imagens como fluxos separados sem referência. Quando as imagens são deco- dificadas como fluxos separados, os fluxos podem ser sincronizados quando reproduzidos, de modo a recriar um espaço tridimensional vir- tual de acordo com o ponto de vista do usuário.
[00257] No caso de imagens de AR, o servidor sobrepõe informa- ções de objetos virtuais existentes em um espaço virtual às informa- ções da câmera que representam um espaço do mundo real, com ba- se em uma posição tridimensional ou movimento da perspectiva do usuário. O decodificador pode obter ou armazenar informações de ob- jetos virtuais e dados tridimensionais, gerar imagens bidimensionais com base no movimento da perspectiva do usuário e, em seguida, ge- rar dados sobrepostos conectando as imagens sem problemas. Em alternativa, o decodificador pode transmitir, ao servidor, o movimento da perspectiva do usuário, além de uma solicitação de informações sobre objetos virtuais. O servidor pode gerar dados sobrepostos com base em dados tridimensionais armazenados no servidor de acordo com o movimento recebido e codificar e transmitir os dados sobrepos- tos gerados para o decodificador. Observe que os dados sobrepostos incluem, além dos valores RGB, um valor α que indica transparência, e o servidor define o valor α para seções diferentes do objeto gerado a partir de dados tridimensionais para, por exemplo, 0, e pode executar a codificação enquanto essas seções são transparentes. Em alternati- va, o servidor pode definir o plano de fundo com um valor RGB prede- terminado, como uma chave de croma, e gerar dados nas quais outras áreas além do objeto são definidas como plano de fundo.
[00258] A decodificação de dados transmitidos de maneira seme- lhante pode ser realizada pelo cliente (isto é, os terminais), no lado do servidor, ou dividida entre eles. Em um exemplo, um terminal pode transmitir uma solicitação de recepção a um servidor, o conteúdo soli- citado pode ser recebido e decodificado por outro terminal, e um sinal decodificado pode ser transmitido para um dispositivo que possui um display. É possível reproduzir dados de alta qualidade de imagem des-
centralizando o processamento e selecionando o conteúdo adequa- damente, independente da capacidade de processamento do próprio terminal de comunicações. Ainda em outro exemplo, enquanto uma TV, por exemplo, recebe dados de imagem de tamanho grande, uma região de uma imagem, como um bloco obtido pela divisão da ima- gem, pode ser decodificada e exibida em um terminal pessoal ou ter- minais de um visualizador ou visualizadores da TV. Isso possibilita que os espectadores compartilhem uma visão geral, bem como cada es- pectador verifique sua área atribuída ou inspecione uma região com mais detalhes de perto.
[00259] Em situações em que uma pluralidade de conexões sem fio é possível a distâncias próximas, média e longa, em ambientes inter- nos ou externos, pode ser possível receber conteúdo sem problemas com o uso de um padrão de sistema de transmissão como o MPEG- DASH. O usuário pode alternar entre dados em tempo real enquanto seleciona livremente um decodificador ou aparelho de exibição, que inclui o terminal do usuário, displays dispostos em ambientes internos ou externos etc. Além disso, usando, por exemplo, as informações so- bre a posição do usuário, a decodificação pode ser realizada enquanto alterna qual terminal lida com a decodificação e qual terminal lida com a exibição do conteúdo. Isso possibilita mapear e exibir as informa- ções, enquanto o usuário está em movimento, na rota para um desti- no, na parede de um prédio próximo, no qual um dispositivo capaz de exibir conteúdo está incorporado ou em parte do solo. Além disso, também é possível alternar a taxa de bits dos dados recebidos com base na acessibilidade aos dados codificados em uma rede, como quando os dados codificados são armazenados em cache em um ser- vidor rapidamente acessível a partir do terminal de recepção ou quan- do os dados codificados são copiados para um servidor de borda em um serviço de liberação de conteúdo.
Codificação escalável
[00260] A troca de conteúdo será descrita com referência a um flu- xo escalá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 ter uma configuração na qual o conteúdo é alternado enquanto utiliza a esca- labilidade temporal e/ou espacial de um fluxo, que é alcançada por di- visão e codificação de camadas, como ilustrado na figura 27. Observe que pode haver uma pluralidade de fluxos individuais com o mesmo conteúdo, mas com qualidade diferente. Em outras palavras, ao de- terminar qual camada decodificar com base em fatores internos, como a capacidade de processamento no lado do decodificador, e fatores externos, como largura de banda de comunicação, o lado do decodifi- cador pode alternar livremente entre o conteúdo de baixa resolução e o conteúdo de alta resolução ao decodificar. Por exemplo, em um caso em que o usuário deseja continuar assistindo, por exemplo, em casa, em um dispositivo como uma TV conectada à Internet, um vídeo que o usuário assistia anteriormente no smartphone ex115 enquanto estava em movimento, o dispositivo pode simplesmente decodificar o mesmo fluxo em uma camada diferente, o que reduz a carga no servidor.
[00261] Além disso, além da configuração descrita acima, na qual a escalabilidade é alcançada como resultado das imagens serem codifi- cadas por camada, com a camada de aprimoramento acima da cama- da base, a camada de aprimoramento pode incluir metadados com ba- se em, por exemplo, informações estatísticas na imagem. O lado do decodificador pode gerar conteúdo de alta qualidade de imagem exe- cutando imagens de super-resolução em uma imagem na camada ba- se com base nos metadados. Imagens de super-resolução podem me- lhorar a relação SN, mantendo a resolução e/ou aumentando a resolu- ção. Os metadados incluem as informações para identificar um coefi-
ciente de filtro linear ou não linear, como usado no processamento de super-resolução, ou as informações que identificam um valor de parâ- metro no processamento de filtro, aprendizado de máquina ou método de mínimos quadrados usado no processamento de super-resolução.
[00262] Em alternativa, pode ser fornecida uma configuração na qual uma imagem é dividida em, por exemplo, ladrilhos de acordo com, por exemplo, o significado de um objeto na imagem. No lado do decodificador, apenas uma região parcial é decodificada, selecionando um bloco a ser decodificado. Além disso, ao armazenar um atributo do objeto (pessoa, carro, bola etc.) e uma posição do objeto no vídeo (co- ordenadas em imagens idênticas) como metadados, o lado do decodi- ficador pode identificar a posição de um objeto desejado com base em os metadados e determine quais blocos ou blocos incluem esse obje- to. Por exemplo, como ilustrado na figura 28, os metadados podem ser armazenados com o uso de uma estrutura de armazenamento de da- dos diferente dos dados de pixel, como uma mensagem de SEI (infor- mações de aprimoramento suplementar) no HEVC. Esses metadados indicam, por exemplo, a posição, o tamanho ou a cor do objeto princi- pal.
[00263] Os metadados podem ser armazenados em unidades de uma pluralidade de imagens, como fluxo, sequência ou unidades de acesso aleatório. O lado do decodificador pode obter, por exemplo, o horário em que uma pessoa específica aparece no vídeo e, ao ajustar as informações de tempo com as informações da unidade de imagem, pode identificar uma imagem na qual o objeto está presente e determi- nar a posição do objeto na imagem. Otimização de página da web
[00264] A figura 29 ilustra um exemplo de uma tela de exibição de uma página da web no computador ex111, por exemplo. A figura 30 ilustra um exemplo de uma tela de exibição de uma página da web no smartphone ex115, por exemplo. Como ilustrado na figura 29 e a figu- ra 30, uma página da web pode incluir uma pluralidade de links de imagens que são links para o conteúdo da imagem, e a aparência da página da web difere dependendo do dispositivo usado para visualizar a página da web. Quando uma pluralidade de links de imagem é visí- vel na tela, até que o usuário selecione explicitamente um link de ima- gem ou até que o link da imagem esteja no centro aproximado da tela ou que o link inteiro da imagem caiba na tela, o aparelho de exibição (decodificador) pode exibir, como os links das imagens, imagens está- ticas incluídas no conteúdo ou nas imagens; pode exibir vídeo como um gif animado com o uso de uma pluralidade de imagens estáticas ou imagens; ou pode receber apenas a camada base, decodificar e exibir o vídeo.
[00265] Quando um link de imagem é selecionado pelo usuário, o aparelho de exibição realiza a decodificação enquanto dá a maior prio- ridade à camada base. Observe que, se houver informações no código HTML da página da web indicando que o conteúdo é escalável, o apa- relho de exibição pode decodificar até a camada de aprimoramento. Além disso, para garantir a reprodução em tempo real, antes de fazer uma seleção ou quando a largura de banda é severamente limitada, o aparelho de exibição pode reduzir o atraso entre o momento em que a imagem principal é decodificada e o momento em que a imagem prin- cipal a imagem decodificada é exibida (ou seja, o atraso entre o início da decodificação do conteúdo e a exibição do conteúdo) decodificando e exibindo apenas imagens de referência direta (imagem I, imagem P, imagem B de referência direta). Além disso, o aparelho de exibição pode intencionalmente ignorar a relação de referência entre as ima- gens e decodificar grosseiramente todas as imagens B e P como ima- gens de referência direta e depois executar decodificação normal à medida que o número de imagens recebidas ao longo do tempo au-
menta. Condução Autônoma
[00266] Ao transmitir e receber os dados de imagens estáticas ou de vídeo, como informações de mapas bidimensionais ou tridimensio- nais para direção autônoma ou direção assistida de um automóvel, o terminal de recepção pode receber, além dos dados de imagem per- tencentes a uma ou mais camadas, informações sobre, por exemplo, o clima ou a construção de estradas como metadados e associe os me- tadados aos dados da imagem ao decodificar. Observe que os meta- dados podem ser atribuídos por camada e, alternativamente, podem simplesmente ser multiplexados com os dados da imagem.
[00267] Nesse caso, como o automóvel, o drone, o avião, etc., con- tendo o terminal de recepção é móvel, o terminal de recepção pode receber e executar a decodificação sem problemas, enquanto alterna entre as estações base entre as estações base ex106 a ex110, trans- mitindo as informações que indicam a posição de o terminal de recep- ção. Além disso, de acordo com a seleção feita pelo usuário, a situa- ção do usuário e/ou a largura de banda da conexão, o terminal de re- cepção pode selecionar dinamicamente até que ponto os metadados são recebidos ou até que ponto as informações do mapa, para exem- plo, é atualizado.
[00268] No sistema de fornecimento de conteúdo ex100, o cliente pode receber, decodificar e reproduzir, em tempo real, as informações codificadas transmitidas pelo usuário. Transmissão de Conteúdo Individual
[00269] No sistema de fornecimento de conteúdo ex100, além da alta qualidade de imagem, também é possível o conteúdo longo distri- buído por uma entidade de distribuição de vídeo, o fluxo unicast ou multicast de baixa qualidade de imagem e o conteúdo curto de um in- divíduo. É provável que esse conteúdo de indivíduos aumente ainda mais a popularidade. O servidor pode primeiro executar o processa- mento de edição no conteúdo antes do processamento da codificação, a fim de refinar o conteúdo individual. Isso pode ser alcançado usando a seguinte configuração, por exemplo.
[00270] Em tempo real, durante a captura de conteúdo de vídeo ou imagem, ou após a captura e acumulação do conteúdo, o servidor executa o processamento de reconhecimento com base nos dados brutos ou codificados, como processamento de erros de captura, pro- cessamento de busca de cenas, análise de significado e/ou processa- mento de detecção de objetos. Em seguida, com base no resultado do processamento de reconhecimento, o servidor, quando solicitado ou automaticamente, edita o conteúdo, exemplos dos quais incluem: cor- reção como foco e/ou correção de desfoque de movimento; remover cenas de baixa prioridade, como cenas com pouco brilho em compa- ração com outras fotos ou fora de foco; ajuste da borda do objeto; e ajuste do tom da cor. O servidor codifica os dados editados com base no resultado da edição. Sabe-se que vídeos excessivamente longos tendem a receber menos visualizações. Assim, para manter o conteú- do em um comprimento específico que se ajusta ao tamanho do vídeo original, o servidor pode, além das cenas de baixa prioridade descritas acima, cortar automaticamente cenas com baixo movimento, com base no processamento de imagens resultado. Como alternativa, o servidor pode gerar e codificar um resumo de vídeo com base no resultado de uma análise do significado de uma cena.
[00271] Pode haver casos em que o conteúdo individual possa in- cluir o conteúdo que viole direitos autorais, direitos morais, direitos de retratos etc. Essa instância pode levar a uma situação desfavorável para o criador, como quando o conteúdo é compartilhado além do es- copo pretendido pelo criador. Por conseguinte, antes da codificação, o servidor pode, por exemplo, editar imagens para desfocar rostos de pessoas na periferia da tela ou desfocar o interior de uma casa, por exemplo. Além disso, o servidor pode ser configurado para reconhecer os rostos de pessoas que não sejam uma pessoa registrada nas ima- gens a serem codificadas e, quando esses rostos aparecerem em uma imagem, podem aplicar um filtro de mosaico, por exemplo, ao rosto da pessoa. Em alternativa, como pré ou pós-processamento para codifi- cação, o usuário pode especificar, por motivos de direitos autorais, uma região de uma imagem que inclui uma pessoa ou uma região do plano de fundo a ser processada. O servidor pode processar a região especificada, substituindo, por exemplo, a região por uma imagem di- ferente ou desfocando a região. Se a região incluir uma pessoa, ela poderá ser rastreada na imagem em movimento, e a região da cabeça da pessoa poderá ser substituída por outra imagem à medida que a pessoa se mover.
[00272] Como existe uma demanda por visualização em tempo real do conteúdo produzido por indivíduos, que tende a ser pequeno em tamanho de dados, o decodificador primeiro recebe a camada base como a maior prioridade e executa decodificação e reprodução, embo- ra isso possa variar dependendo da largura de banda. Quando o con- teúdo é reproduzido duas ou mais vezes, como quando o decodifica- dor recebe a camada de aprimoramento durante a decodificação e re- produção da camada base e faz um loop da reprodução, o decodifica- dor pode reproduzir um vídeo de alta qualidade de imagem, que inclui a camada de aprimoramento. Se o fluxo for codificado usando essa codificação escalonável, o vídeo poderá ser de baixa qualidade quan- do estiver em um estado não selecionado ou no início do vídeo, mas poderá oferecer uma experiência na qual a qualidade da imagem do fluxo aumentará progressivamente de maneira inteligente. Isso não se limita apenas à codificação escalável; a mesma experiência pode ser oferecida configurando um único fluxo a partir de um fluxo de baixa qualidade reproduzido pela primeira vez e um segundo fluxo codificado com o uso do primeiro fluxo como referência. Outros Exemplos de Implementação e Aplicação
[00273] A codificação e decodificação podem ser executadas pelo LSI (circuito de integração em larga escala) ex500 (ver a figura 26), que normalmente é incluído em cada terminal. O LSI ex500 pode ser configurado de um único chip ou de uma pluralidade de chips. O sof- tware para codificação e decodificação de imagens em movimento po- de ser integrado a algum tipo de mídia de gravação (como CD-ROM, disco flexível ou disco rígido) legível por, por exemplo, o computador ex111 e a codificação e decodificação pode ser realizada com o uso do software. Além disso, quando o smartphone ex115 está 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 pelo LSI ex500 incluído no smartphone ex115.
[00274] Observe que o LSI ex500 pode estar configurado para bai- xar e ativar um aplicativo. Nesse caso, o terminal primeiro determina se é compatível com o esquema usado 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 baixa primeiro um codec ou software de aplicativo e, em seguida, ob- tém e reproduz o conteúdo.
[00275] Além do exemplo do sistema de fornecimento de conteúdo ex100 que usa 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 transmissão digital. O mesmo processamento de codificação e decodificação pode ser aplicado para transmitir e receber ondas de rádio de transmissão so-
brepostas com dados de áudio e vídeo multiplexados usando, por exemplo, um satélite, mesmo que isso seja voltado para multicast, en- quanto o unicast é mais fácil com o sistema de fornecimento de conte- údo ex100. Configuração de Hardware
[00276] A figura 31 ilustra mais detalhes do smartphone ex115 mos- trado 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 de e para a estação base ex110, a câmera ex465 capaz de capturar vídeo e imagens estáticas e exibe o ex458 que exibe dados decodificados, como o vídeo capturado pela câmera ex465 e o vídeo recebido pela antena ex450. O smartphone ex115 inclui ainda a interface do usuário ex466, como um painel de toque, a unidade de saída de áudio ex457, como um alto-falante para emitir voz ou outro áudio, a unidade de entrada de áudio ex456, como um microfone para entrada de áudio, a memória ex467 capaz de ar- mazenar os dados decodificados, como vídeo capturado ou imagens fixas, áudio gravado, vídeo recebido ou imagens fixas e correio, além de dados decodificados e slot ex464, que é uma interface para o SIM ex468 para autorizar o acesso a uma rede e vários dados. Observe que a memória externa pode ser usada em vez da memória ex467.
[00277] O controlador principal ex460, que controla de forma abrangente a tela ex458 e a interface do usuário ex466, o circuito de fonte de alimentação ex461, o controlador de entrada da interface do usuário ex462, o processador de sinal de vídeo ex455, a interface da câmera ex463, o controlador de exibição ex459, o modula- dor/demodulador ex452, o multiplexador/demodulador ex453, o sinal de áudio o processador ex454, o slot ex464 e a memória ex467 são conectados via barramento ex470.
[00278] Quando o usuário liga o botão liga/desliga do circuito de fonte de alimentação ex461, o smartphone ex115 é ligado em um es- tado operacional e cada componente é alimentado por uma bateria.
[00279] O smartphone ex115 executa o processamento, por exem- plo, de chamadas e transmissão de dados, com base no controle exe- cutado pelo controlador principal ex460, que inclui CPU, ROM e RAM. Ao fazer chamadas, um sinal de áudio gravado pela unidade de entra- da de áudio ex456 é convertido em um sinal de áudio digital pelo pro- cessador de sinal de áudio ex454, ao qual o processamento de espec- tro espalhado é aplicado pelo modulador/demodulador ex452 e con- versão digital-analógica e o processamento de conversão de frequên- cia é aplicado pelo transmissor/receptor ex451, e o sinal resultante é transmitido via antena ex450. Os dados recebidos são amplificados, convertidos em frequência e espectros de dispersão inversa converti- dos em analógico-digital processados pelo modulador/demodulador ex452, convertidos em um sinal de áudio analógico pelo processador de sinal de áudio ex454 e, em seguida, emitidos a partir da unidade de saída de áudio ex457. No modo de transmissão de dados, dados de texto, imagem fixa ou vídeo são transmitidos pelo controlador principal ex460 por meio do controlador de entrada da interface do usuário ex462, com base na operação da interface do usuário ex466 do corpo principal, por exemplo. O processamento de transmissão e recepção semelhante é realizado. No modo de transmissão de dados, ao enviar um vídeo, imagem fixa ou vídeo e áudio, o processador de sinal de vídeo ex455 codifica, através do método de codificação de imagem em movimento descrito nas modalidades acima, um sinal de vídeo arma- zenado na memória ex467 ou uma entrada de sinal de vídeo de câme- ra ex465 e transmite os dados de vídeo codificados para o multiplexa- dor/desmultiplexador ex453. O processador de sinal de áudio ex454 codifica um sinal de áudio gravado pela unidade de entrada de áudio ex456 enquanto a câmera ex465 está capturando um vídeo ou ima-
gem estática e transmite os dados de áudio codificados para o multi- plexador/desmultiplexador ex453. O multiplexador/desmultiplexador ex453 multiplexa os dados de vídeo codificados e os dados de áudio codificados com o uso de um esquema predeterminado, modula e converte os dados com o uso do modulador/demodulador (circuito mo- dulador/demodulador) ex452 e o transmissor/receptor ex451 e transmi- te o resultado pela antena ex450.
[00280] Quando o vídeo anexado a um e-mail ou bate-papo ou um vídeo vinculado a uma página da web é recebido, por exemplo, para decodificar os dados multiplexados recebidos pela antena ex450, o multiplexador/desmultiplexador ex453 desmultiplexa os dados multi- plexados para dividir os dados multiplexados em um fluxo de dados de vídeo e um fluxo de dados de áudio, fornece os dados de vídeo codifi- cados para o processador de sinal de vídeo ex455 via barramento sín- crono ex470 e fornece os dados de áudio codificados para o proces- sador de sinal de áudio ex454 via barramento síncrono ex470. O pro- cessador de sinal de vídeo ex455 decodifica o sinal de vídeo com o uso de um método de decodificação de imagem em movimento cor- respondente ao método de codificação de imagem em movimento descrito nas modalidades acima, e o vídeo ou uma imagem estática incluída no arquivo de imagem em movimento vinculada é exibida na exibição ex458 através do controlador de exibição ex459. O processa- dor de sinal de áudio ex454 decodifica o sinal de áudio e emite áudio da unidade de saída de áudio ex457. Como a transmissão em tempo real está se tornando cada vez mais popular, pode haver casos em que a reprodução do áudio seja socialmente inadequada, dependendo do ambiente do usuário. Consequentemente, como valor inicial, é pre- ferível uma configuração na qual apenas os dados de vídeo são repro- duzidos, isto é, o sinal de áudio não é reproduzido; o áudio pode ser sincronizado e reproduzido somente quando uma entrada, como quando o usuário clica nos dados do vídeo, é recebido.
[00281] Embora o smartphone ex115 tenha sido usado no exemplo acima, são possíveis três outras implementações: um terminal trans- ceptor que inclui um codificador e um decodificador; um terminal transmissor que inclui apenas um codificador; e um terminal receptor que inclui apenas um decodificador. Na descrição do sistema de transmissão digital, é dado um exemplo no qual dados multiplexados obtidos como resultado de dados de vídeo serem multiplexados com dados de áudio são recebidos ou transmitidos. Os dados multiplexa- dos, no entanto, podem ser dados de vídeo multiplexados com dados que não sejam dados de áudio, como dados de texto relacionados ao vídeo. Além disso, os próprios dados de vídeo, em vez dos dados mul- tiplexados, podem ser recebidos ou transmitidos.
[00282] Embora o controlador principal ex460, que inclui uma CPU, seja descrito como controle dos processos de codificação ou decodifi- cação, vários terminais geralmente incluem GPUs. Consequentemen- te, uma configuração é aceitável na qual uma grande área é processa- da ao mesmo tempo, utilizando a capacidade de desempenho da GPU por meio de memória compartilhada pela CPU e GPU, ou memória que inclui um endereço gerenciado para permitir o uso comum pelo CPU e GPU. Isso torna possível diminuir o tempo de codificação, man- ter a natureza em tempo real do fluxo e reduzir o atraso. Em particular, o processamento relacionado à estimativa de movimento, filtragem de desbloqueio, deslocamento adaptativo da amostra (SAO) e transfor- mação/quantização pode ser efetivamente realizado pela GPU em vez da CPU em unidades de imagens, por exemplo, de uma só vez.

Claims (48)

REIVINDICAÇÕES
1. Codificador de imagem, caracterizado pelo fato de que compreende: circuitos; e uma memória acoplada aos circuitos; em que o circuito, em operação, executa uma operação de sintaxe da divisão que inclui: dividir um bloco de imagem em uma pluralidade de divi- sões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão; codificar a primeira divisão e a segunda divisão; e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits.
2. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que o parâmetro de divisão indica que a primeira di- visão tem uma forma de triângulo.
3. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que o parâmetro de divisão indica que a segunda divisão tem uma forma não retangular.
4. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que o parâmetro de divisão indica a forma não re- tangular é um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos.
5. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que o parâmetro de divisão codifica conjuntamente uma direção de divisão aplicada para dividir o bloco de imagem na plu- ralidade de divisões.
6. Codificador, de acordo com a reivindicação 5, caracteri- zado pelo fato de que a direção de divisão inclui: de um canto superior esquerdo do bloco de imagem para um canto inferior direito e de um canto superior direito do bloco de imagem para um canto inferior es- querdo.
7. Codificador, de acordo com a reivindicação 5, caracteri- zado pelo fato de que o parâmetro de divisão codifica conjuntamente pelo menos um primeiro vetor de movimento da primeira divisão.
8. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que um ou mais parâmetros diferentes do parâmetro de divisão codificam uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões.
9. Codificador, de acordo com a reivindicação 8, caracteri- zado pelo fato de que o parâmetro que codifica a direção de divisão codifica conjuntamente pelo menos um primeiro vetor de movimento da primeira divisão.
10. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que o parâmetro de divisão codifica conjuntamente pelo menos um primeiro vetor de movimento da primeira divisão.
11. Codificador, de acordo com a reivindicação 10, caracte- rizado pelo fato de que o parâmetro de divisão codifica conjuntamente um segundo vetor de movimento da segunda divisão.
12. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que um ou mais parâmetros diferentes do parâmetro da divisão codificam pelo menos um primeiro vetor de movimento da primeira divisão.
13. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de que um ou mais parâmetros são binarizados de acordo com um esquema de binarização que é selecionado depen- dendo de um valor de pelo menos um dos um ou mais parâmetros.
14. Codificador de imagem, caracterizado pelo fato de que compreende:
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 do seu bloco correspondente para gerar um resíduo; um transformador que, em operação, realiza uma transfor- mação nos resíduos emitidos do somador para os coeficientes de transformação de saída; um quantizador que, em operação, quantifica os coeficien- tes de transformação para gerar os coeficientes de transformação quantizados; um codificador de 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 interpreditor, um preditor e uma memória, em que o preditor, 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 preditor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual; em que o controlador de previsão, em operação, divide um bloco de imagem em uma pluralidade de divisões, que inclui uma primeira divi- são com uma forma não retangular e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão; e codifica a primeira divisão e a segunda divisão; e o codificador de entropia, em operação, grava um ou mais parâmetros, que incluem o parâmetro de divisão, em um fluxo de bits.
15. Codificador, de acordo com a reivindicação 14, caracte- rizado pelo fato de que o parâmetro de divisão indica que a primeira divisão tem uma forma de triângulo.
16. Codificador, de acordo com a reivindicação 14, caracte- rizado pelo fato de que o parâmetro de divisão indica que a segunda divisão tem uma forma não retangular.
17. Codificador, de acordo com a reivindicação 14, caracte- rizado pelo fato de que o parâmetro de divisão codifica conjuntamente uma direção de divisão aplicada para dividir o bloco de imagem na plu- ralidade de divisões.
18. Codificador, de acordo com a reivindicação 17, caracte- rizado pelo fato de que o parâmetro de divisão codifica conjuntamente pelo menos um primeiro vetor de movimento da primeira divisão.
19. Codificador, de acordo com a reivindicação 18, caracte- rizado pelo fato de que o parâmetro de divisão codifica conjuntamente um segundo vetor de movimento da segunda divisão.
20. Codificador, de acordo com a reivindicação 14, caracte- rizado pelo fato de que um ou mais parâmetros diferentes do parâme- tro de divisão codificam uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões.
21. Método de codificação de imagem, que inclui uma ope- ração de sintaxe da divisão, caracterizada pelo fato de que compreen- de: dividir um bloco de imagem em uma pluralidade de divi- sões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão com base em um parâmetro de divisão indicativo da divisão; codificar a primeira divisão e a segunda divisão; e gravar um ou mais parâmetros, que incluem o parâmetro de divisão em um fluxo de bits.
22. Método, de acordo com a reivindicação 21, caracteriza- do pelo fato de que o parâmetro de divisão indica que a primeira divi- são tem uma forma de triângulo.
23. Método, de acordo com a reivindicação 21, caracteriza- do pelo fato de que o parâmetro de divisão indica que o segundo pa- râmetro tem uma forma não retangular.
24. Método, de acordo com a reivindicação 21, caracteriza- do pelo fato de que o parâmetro de divisão codifica conjuntamente uma ou mais de uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões, um primeiro vetor de movimen- to da primeira divisão e um segundo vetor de movimento da segunda divisão.
25. Decodificador de imagem, caracterizado pelo fato de que compreende: circuitos; uma memória acoplada ao circuito; em que o circuito, em operação, executa uma operação de sintaxe da divisão que inclui: analisar um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indi- cativo de divisão de um bloco de imagem em uma pluralidade de divi- sões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão; dividir o bloco de imagem na pluralidade de divisões com base no parâmetro de divisão; e decodificar a primeira divisão e a segunda divisão.
26. Decodificador, de acordo com a reivindicação 25, carac- terizado pelo fato de que o parâmetro de divisão indica que a primeira divisão tem uma forma de triângulo.
27. Decodificador, de acordo com a reivindicação 25, carac- terizado pelo fato de que o parâmetro de divisão indica que a segunda divisão tem uma forma não retangular.
28. Decodificador, de acordo com a reivindicação 25, carac-
terizado pelo fato de que o parâmetro de divisão indica a forma não retangular é um triângulo, um trapézio e um polígono com pelo menos cinco lados e ângulos.
29. Decodificador, de acordo com a reivindicação 25, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões.
30. Decodificador, de acordo com a reivindicação 29, carac- terizado pelo fato de que a direção de divisão inclui: de um canto supe- rior esquerdo do bloco de imagem para um canto inferior direito, e de um canto superior direito do bloco de imagem para um canto inferior esquerdo.
31. Decodificador, de acordo com a reivindicação 29, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te pelo menos um primeiro vetor de movimento da primeira divisão.
32. Decodificador, de acordo com a reivindicação 25, carac- terizado pelo fato de que um ou mais parâmetros diferentes do parâ- metro de divisão codificam uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões.
33. Decodificador, de acordo com a reivindicação 32, carac- terizado pelo fato de que o parâmetro que codifica a direção de divisão codifica conjuntamente pelo menos um primeiro vetor de movimento da primeira divisão.
34. Decodificador, de acordo com a reivindicação 25, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te pelo menos um primeiro vetor de movimento da primeira divisão.
35. Decodificador, de acordo com a reivindicação 34, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te um segundo vetor de movimento da segunda divisão.
36. Decodificador, de acordo com a reivindicação 25, carac-
terizado pelo fato de que um ou mais parâmetros diferentes do parâ- metro da divisão codificam pelo menos um primeiro vetor de movimen- to da primeira divisão.
37. Decodificador, de acordo com a reivindicação 25, carac- terizado pelo fato de que um ou mais parâmetros são binarizados de acordo com um esquema de binarização que é selecionado depen- dendo de um valor de pelo menos um dos um ou mais parâmetros.
38. Decodificador de imagem, caracterizado pelo fato de que compreende: um decodificador de entropia que, em operação, recebe e decodifica um fluxo de bits codificado para obter os coeficientes de transformação quantizados; um quantizador inverso e transformador que, em operação, quantificam inversamente os coeficientes de transformação quantiza- dos para obter os coeficientes de transformação e transformam inver- samente os coeficientes de transformação para obter resíduos; um somador que, em operação, adiciona os resíduos gera- dos pelo quantizador inverso e pelo transformador e as previsões ge- radas por um controlador de previsão para reconstruir blocos; e o controlador de previsão acoplado a um interpreditor, um intrapreditor e uma memória, em que o interpreditor, em operação, ge- ra uma previsão de um bloco atual com base em um bloco de referên- cia em uma imagem de referência decodificada e o intrapreditor, em operação, gera uma previsão de um bloco atual com base em um blo- co de referência decodificado em uma imagem atual; em que o decodificador de entropia, em operação, analisa um ou mais parâmetros de um fluxo de bits, em que o um ou mais parâme- tros incluem um parâmetro de divisão indicativo de divisão de um blo- co de imagem em uma pluralidade de divisões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão;
divide o bloco de imagem na pluralidade de divisões com base no parâmetro de divisão; e decodifica a primeira divisão e a segunda divisão.
39. Decodificador, de acordo com a reivindicação 38, carac- terizado pelo fato de que o parâmetro de divisão indica que a primeira divisão tem uma forma de triângulo.
40. Decodificador, de acordo com a reivindicação 38, carac- terizado pelo fato de que o parâmetro de divisão indica que a segunda divisão tem uma forma não retangular.
41. Decodificador, de acordo com a reivindicação 38, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões.
42. Decodificador, de acordo com a reivindicação 41, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te pelo menos um primeiro vetor de movimento da primeira divisão.
43. Decodificador, de acordo com a reivindicação 42, carac- terizado pelo fato de que o parâmetro de divisão codifica conjuntamen- te um segundo vetor de movimento da segunda divisão.
44. Decodificador, de acordo com a reivindicação 38, carac- terizado pelo fato de que um ou mais parâmetros diferentes do parâ- metro de divisão codificam uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de divisões.
45. Método de decodificação de imagem, que inclui uma operação de sintaxe da divisão, caracterizada pelo fato de que com- preende: analisar um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de divisão indi- cativo de divisão de um bloco de imagem em uma pluralidade de divi- sões, que inclui uma primeira divisão com uma forma não retangular e uma segunda divisão; dividir o bloco de imagem na pluralidade de divisões com base no parâmetro de divisão; e decodificar a primeira divisão e a segunda divisão.
46. Método, de acordo com a reivindicação 45, caracteriza- do pelo fato de que o parâmetro de divisão indica que a primeira divi- são tem uma forma de triângulo.
47. Método, de acordo com a reivindicação 45, caracteriza- do pelo fato de que o parâmetro de divisão indica que a segunda divi- são tem uma forma não retangular.
48. Método, de acordo com a reivindicação 45, caracteriza- do pelo fato de que o parâmetro de divisão inclui conjuntamente um ou mais de uma direção de divisão aplicada para dividir o bloco de ima- gem na pluralidade de divisões, um primeiro vetor de movimento da primeira divisão e um segundo vetor de movimento da segunda divi- são.
Petição 870200015373, de 31/01/2020, pág. 131/168
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 870200015373, de 31/01/2020, pág. 142/168 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 870200015373, de 31/01/2020, pág. 143/168
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 870200015373, de 31/01/2020, pág. 145/168
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 870200015373, de 31/01/2020, pág. 146/168
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 870200015373, de 31/01/2020, pág. 147/168 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
A O A 1 PARTIÇÃO MAIS 1/4 DO 3 VALOR DE AMOSTRA SOBREPOSTA DA 2 PARTIÇÃO
DIREITO
O O O 4 VALOR DE AMOSTRA SOBREPOSTA É 7/8 DO 4 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 A1
PARTIÇÃO
A
ESQUERDOS A 2 PARTIÇÃO
DIVIDIR DOS CANTOS
SUPERIORES DIREITOS
A PRIMEIRA E A SEGUNDA PARTIÇÕES SOBREPÕEM QUATRO AMOSTRAS
PARA CANTOS INFERIORES
Petição 870200015373, de 31/01/2020, pág. 148/168 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 O O 2 VALOR DE AMOSTRA SOBREPOSTA É 2/3 DO 2 VALOR DE AMOSTRA SOBREPOSTA DA 2A PARTIÇÃO A AMOSTRA SOBREPOSTA DA 1 PARTIÇÃO MAIS 1/3 DO 2O VALOR
A DE AMOSTRA SOBREPOSTA DA 2 PARTIÇÃO
A A 1 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 870200015373, de 31/01/2020, pág. 149/168
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 870200015373, de 31/01/2020, pág. 151/168
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 870200015373, de 31/01/2020, pág. 152/168 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 870200015373, de 31/01/2020, pág. 153/168
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 870200015373, de 31/01/2020, pág. 154/168
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 870200015373, de 31/01/2020, pág. 155/168 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 25/37
PODEM SER VETOR DE MOVIMENTO OU DIREÇÃO DE INTRAPREDIÇÃO) 1A PARTIÇÃO LIMITE 1A PARTIÇÃO
A 2A
PARTIÇÃO
A A1
PARTIÇÃO CINCO AMOSTRAS DE CADA COLUNA / FILA
A PRIMEIRA E A SEGUNDA PARTIÇÕES SOBREPÕEM CINCO AMOSTRAS
A A 1 PARTIÇÃO TRÊS AMOSTRAS DE CADA COLUNA / FILA
O SEGUNDO CONJUNTO
DE AMOSTRAS
O PRIMEIRO CONJUNTO
DE AMOSTRAS
Petição 870200015373, de 31/01/2020, pág. 158/168
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 870200015373, de 31/01/2020, pág. 159/168 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 870200015373, de 31/01/2020, pág. 160/168 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 870200015373, de 31/01/2020, pág. 161/168 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 870200015373, de 31/01/2020, pág. 162/168
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 870200015373, de 31/01/2020, pág. 164/168
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
BR112020002205-5A 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 BR112020002205A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762548719P 2017-08-22 2017-08-22
US62/548,719 2017-08-22
US201862698801P 2018-07-16 2018-07-16
US62/698,801 2018-07-16
PCT/JP2018/030061 WO2019039323A1 (en) 2017-08-22 2018-08-10 IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD

Publications (1)

Publication Number Publication Date
BR112020002205A2 true BR112020002205A2 (pt) 2020-07-28

Family

ID=65439077

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020002205-5A BR112020002205A2 (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 (9)

Country Link
US (3) US20200014947A1 (pt)
EP (1) EP3673657A4 (pt)
JP (3) JP2020532226A (pt)
KR (1) KR20200038944A (pt)
CN (2) CN110999306B (pt)
BR (1) BR112020002205A2 (pt)
MX (6) MX2020001888A (pt)
TW (2) TWI790273B (pt)
WO (1) WO2019039323A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018212110A1 (ja) * 2017-05-19 2018-11-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN108198145B (zh) * 2017-12-29 2020-08-28 百度在线网络技术(北京)有限公司 用于点云数据修复的方法和装置
US20190208211A1 (en) * 2018-01-04 2019-07-04 Qualcomm Incorporated Generated affine motion vectors
CN112602324A (zh) * 2018-06-22 2021-04-02 Op方案有限责任公司 块水平几何划分
US20200252608A1 (en) * 2019-02-05 2020-08-06 Qualcomm Incorporated Sub-partition intra prediction
US11272158B2 (en) * 2019-03-01 2022-03-08 Tencent America LLC Method and apparatus for point cloud compression
CN113615207A (zh) * 2019-03-21 2021-11-05 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
WO2020197086A1 (ko) * 2019-03-25 2020-10-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN113841408B (zh) * 2019-05-17 2024-02-06 北京字节跳动网络技术有限公司 用于视频处理的运动信息确定和存储
JP7332385B2 (ja) * 2019-08-05 2023-08-23 日本放送協会 イントラ予測装置、画像符号化装置、画像復号装置、及びプログラム
EP4008108A4 (en) 2019-09-01 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. ALIGNMENT OF PREDICTION WEIGHTS IN VIDEO ENCODING
WO2021054805A1 (ko) * 2019-09-20 2021-03-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN112136329A (zh) * 2019-09-24 2020-12-25 北京大学 视频编解码的方法和装置
WO2021068922A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Deblocking of blocks coded in geometry partition mode
US11240501B2 (en) * 2020-01-08 2022-02-01 Tencent America LLC L-type partitioning tree
US11523112B2 (en) * 2020-04-09 2022-12-06 Tencent America LLC Intra coding with L-type partitioning tree
CN112511835B (zh) * 2021-02-04 2021-05-14 睿迪纳(南京)电子科技有限公司 一种基于hevc的视频编码方法
CN113596474A (zh) * 2021-06-23 2021-11-02 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质
JP2023156061A (ja) * 2022-04-12 2023-10-24 Kddi株式会社 画像復号装置、画像復号方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090154567A1 (en) * 2007-12-13 2009-06-18 Shaw-Min Lei In-loop fidelity enhancement for video compression
CN105959688B (zh) * 2009-12-01 2019-01-29 数码士有限公司 用于解码高分辨率图像的方法
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
JP2012023597A (ja) * 2010-07-15 2012-02-02 Sony Corp 画像処理装置及び画像処理方法
KR101583200B1 (ko) * 2010-09-27 2016-01-07 엘지전자 주식회사 블록 분할 방법 및 복호화 장치
EP2664139A2 (en) * 2011-01-14 2013-11-20 Telefonaktiebolaget LM Ericsson (PUBL) A method for deblocking filter control and a deblocking filtering control device
CN107835419B (zh) * 2011-10-18 2021-05-14 株式会社Kt 视频信号解码方法
WO2014107709A2 (en) 2013-01-07 2014-07-10 Vid Scale, Inc. Enhanced deblocking filters for video coding
WO2015006884A1 (en) 2013-07-19 2015-01-22 Qualcomm Incorporated 3d video coding with partition-based depth inter coding
US9667996B2 (en) * 2013-09-26 2017-05-30 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US9872040B2 (en) 2014-01-02 2018-01-16 Qualcomm Incorporated Color index coding for palette-based video coding
EP3069322B1 (en) * 2014-03-20 2020-08-26 Huawei Technologies Co., Ltd. An apparatus and a method for associating a video block partitioning pattern to a video coding block
US10321158B2 (en) * 2014-06-18 2019-06-11 Samsung Electronics Co., Ltd. Multi-view image encoding/decoding methods and devices
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
CN109792519B (zh) * 2016-08-08 2023-06-23 Lg电子株式会社 基于帧内预测模式的图像处理方法及其装置

Also Published As

Publication number Publication date
TW201921942A (zh) 2019-06-01
TW202318874A (zh) 2023-05-01
EP3673657A1 (en) 2020-07-01
JP2024069604A (ja) 2024-05-21
JP2020532226A (ja) 2020-11-05
CN110999306A (zh) 2020-04-10
US11758166B2 (en) 2023-09-12
MX2023008128A (es) 2023-07-21
MX2023008131A (es) 2023-07-21
MX2023008129A (es) 2023-07-21
US20210409743A1 (en) 2021-12-30
WO2019039323A1 (en) 2019-02-28
MX2020001888A (es) 2020-03-24
KR20200038944A (ko) 2020-04-14
MX2023008130A (es) 2023-07-21
JP2023009237A (ja) 2023-01-19
MX2023008132A (es) 2023-07-21
JP7459218B2 (ja) 2024-04-01
TWI790273B (zh) 2023-01-21
CN115643399A (zh) 2023-01-24
EP3673657A4 (en) 2020-07-01
US20230362397A1 (en) 2023-11-09
CN110999306B (zh) 2022-09-16
US20200014947A1 (en) 2020-01-09

Similar Documents

Publication Publication Date Title
TWI836681B (zh) 影像編碼方法、影像解碼方法及非暫時性電腦可讀取媒體
TWI824963B (zh) 影像編碼器、影像解碼器及非暫時性電腦可讀取媒體
BR112020002205A2 (pt) codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
WO2018092868A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
BR112020026686A2 (pt) Sistema e método para codificação de vídeo
JPWO2018092869A1 (ja) 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
BR112020010935A2 (pt) dispositivo de codificação de imagem, dispositivo de decodificação de imagem, método de codificação de imagem, e método de decodificação de imagem
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
BR112020001579A2 (pt) codificador, decodificador, método de codificação, método de decodificação
BR112020013554A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112020000219A2 (pt) codificação, método de codificação, decodificador e método de decodificação
BR112021014711A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020021718A2 (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
BR112021001890A2 (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
BR122021025014A2 (pt) Codificador, decodificador e mídia legível por computador não transitória
BR112020019800A2 (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
TWI842652B (zh) 影像編碼器、影像解碼器及非暫時性電腦可讀取媒體
BR122022013319A2 (pt) Codificador, decodificador e meio legível por computador não transitório
BR112020019922A2 (pt) Codificador, decodificador, método de codificação, método de decodificação, e programa de compressão de imagem
TW202415064A (zh) 影像編碼器、影像解碼器及非暫時性電腦可讀取媒體

Legal Events

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