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

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

Info

Publication number
BR112021001890A2
BR112021001890A2 BR112021001890-5A BR112021001890A BR112021001890A2 BR 112021001890 A2 BR112021001890 A2 BR 112021001890A2 BR 112021001890 A BR112021001890 A BR 112021001890A BR 112021001890 A2 BR112021001890 A2 BR 112021001890A2
Authority
BR
Brazil
Prior art keywords
range
block
relative pixel
pixel position
value
Prior art date
Application number
BR112021001890-5A
Other languages
English (en)
Inventor
Jing Ya LI
Ru Ling LIAO
Chong Soon Lim
Han Boon Teo
Hai Wei Sun
Kiyofumi Abe
Takahiro Nishi
Tadamasa Toma
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 BR112021001890A2 publication Critical patent/BR112021001890A2/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

"CODIFICADOR, DECODIFICADOR, MÉTODO DE CODIFICAÇÃO E MÉTODO DE DECODIFICAÇÃO" A presente invenção refere-se a: dispositivos de codificação/decodificação - onde o codificador (100) inclui um conjunto de circuitos e uma memória conectada ao conjunto de circuitos; e a métodos de codificação e decodificação. O conjunto de circuitos deriva um valor absoluto de uma soma de valores de gradiente na primeira e segunda faixas; deriva, como um primeiro parâmetro, uma soma total dos valores absolutos das somas dos valores de gradiente derivados, respectivamente, para os pares de posições relativas de pixel; deriva um valor de diferença de pixel entre os valores de pixel na primeira e segunda faixas; inverte, ou mantém, um sinal de mais ou menos do valor de diferença de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente indicando a soma dos valores de gradiente na primeira e segunda faixas; deriva, como um segundo parâmetro, uma soma total dos valores de diferença de pixel, cada um possuindo o sinal de mais ou menos invertido, ou mantido, os valores de diferença de pixel derivados, respectivamente, para as posições relativas de pixel; e gera uma imagem de predição utilizando os primeiro e segundo parâmetros.

Description

Relatório Descritivo da Patente de Invenção para "CODIFI- CADOR, DECODIFICADOR, MÉTODO DE CODIFICAÇÃO E MÉTO- DO DE DECODIFICAÇÃO". Campo Técnico
[001] A presente descrição refere-se à codificação de vídeo, e se refere, por exemplo, a sistemas, elementos constituintes, métodos, etc. na codificação (dispositivos) e decodificação (dispositivos) de vídeos. Antecedentes da Técnica
[002] A tecnologia de codificação de vídeo tem sido desenvolvida a partir de H.261 e MPEG-1 para H.264/AVC (Codificação de Vídeo Avançada), MPEG-LA, H.265/HEVC (Codificação de Vídeo de Alta Efi- ciência), e H.266/VVC (Codec de Vídeo Versátil). Com esse desenvol- vimento, é sempre necessário se aperfeiçoar e otimizar a tecnologia de codificação de vídeo a fim de processar dados de vídeo digital, a quantidade dos quais tem aumentado em vários tipos de aplicações.
[003] Deve-se notar que a Literatura de Não Patente 1 se refere a um exemplo de um padrão convencional relacionado com a tecnologia de codificação de vídeo descrita acima. Lista de Citação Literatura de Não Patente
[004] NPL 1: H.265 (ISO/IEC 23008-2 HEVC)/HEVC (Codificação de Vídeo de Alta Eficiência) Sumário da Invenção Problemas Técnicos
[005] Com referência ao método de codificação como descrito acima, propostas para novos métodos têm sido buscadas para se au- mentar a eficiência da codificação, aumentar a qualidade de imagem, reduzir a quantidade de processamento, reduzir as escalas de circuito, realizar a seleção adequada, etc. de um elemento, que é uma imagem de referência, um bloco de referência, ou similar, ou uma operação.
[006] A presente descrição fornece, por exemplo, uma configura- ção ou um método que pode contribuir para pelo menos um dentre o aumento da eficiência de codificação, o aumento da qualidade de ima- gem, a redução da quantidade de processamento, a redução na esca- la de circuito, a seleção adequada, etc. de um elemento, ou uma ope- ração. Deve-se notar que a presente descrição pode englobar possí- veis configurações ou métodos que podem contribuir para vantagens, além das vantagens descritas acima. Solução para o Problema
[007] Por exemplo, um codificador de acordo com um aspecto da presente descrição inclui um conjunto de circuitos e uma memória co- nectada ao conjunto de circuitos. O conjunto de circuitos deriva um valor absoluto de uma soma de valores de gradiente, que indica um valor absoluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira fai- xa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel sendo de- terminada de forma comum e com relação à primeira faixa e à segun- da faixa; deriva, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas dos valores de gradiente derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; deriva um valor de diferença de pixel, que indica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa, e um valor de pixel na posição relativa de pixel na se- gunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel; inverte, ou mantém, um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; deri- va, como um segundo parâmetro, uma soma total dentre uma plurali- dade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos invertido ou mantido, a pluralidade de valores de dife- rença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para codificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
[008] Algumas das implementações das modalidades, de acordo com a presente descrição, podem aperfeiçoar a eficiência da codifica- ção; simplificar um processo de codificação/decodificação; aumentar uma velocidade de codificação/decodificação; e selecionar eficiente- mente os componentes/operações adequados a serem utilizados para codificação e decodificação, tal como filtros, tamanhos de bloco, veto- res de movimento, imagens de referência, blocos de referência ade- quados, etc.
[009] Benefícios e vantagens adicionais, de acordo com um ou mais aspectos da presente descrição, se tornarão aparentes a partir da Especificação e dos Desenhos. Esses benefícios e vantagens são obteníveis pelas características descritas em algumas modalidades, na Especificação e nos Desenhos. No entanto, nem sempre é necessário se fornecer todas as características para se obter uma ou mais das vantagens e/ou efeitos.
[0010] Deve-se notar que esses aspectos gerais ou específicos podem ser implementados como um sistema, um método, um circuito integrado, um programa de computador, um meio de gravação, ou qualquer combinação dos mesmos. Efeitos Vantajosos da Invenção
[0011] Uma configuração ou um método, de acordo com um as- pecto da presente descrição, pode contribuir para, por exemplo, pelo menos um dentre o aumento na eficiência de codificação, o aumento na qualidade de imagem, a redução na quantidade de processamento, a redução na escala de circuito, a seleção adequada, etc. de um ele- mento, ou uma operação. É notado que a configuração ou o método, de acordo com o aspecto, pode contribuir com vantagens além das vantagens mencionadas acima. Descrição dos Desenhos
[0012] A figura 1 é um diagrama em bloco ilustrando uma configu- ração funcional de um codificador, de acordo com uma modalidade;
[0013] A figura 2 é um fluxograma indicando um exemplo de um processo de codificação geral realizado pelo codificador;
[0014] A figura 3 é um diagrama conceitual ilustrando um exemplo da divisão de bloco;
[0015] A figura 4A é um diagrama conceitual ilustrando um exem- plo de uma configuração de fatia;
[0016] A figura 4B é um diagrama conceitual ilustrando um exem- plo de uma configuração de tile;
[0017] A figura 5A é um gráfico indicando as funções básicas de transformação para vários tipos de transformação;
[0018] A figura 5B é um diagrama conceitual ilustrando transfor- mações espacialmente variáveis ilustrativas (SVT);
[0019] A figura 6A é um diagrama conceitual ilustrando um exem- plo de um formato de filtro utilizado em um filtro de circuito adaptativo (ALF);
[0020] A figura 6B é um diagrama conceitual ilustrando outro exemplo de um formato de filtro utilizado em um ALF;
[0021] A figura 6C é um diagrama conceitual ilustrando outro exemplo de um formato de filtro utilizado em um ALF;
[0022] A figura 7 é um diagrama em bloco indicando um exemplo de uma configuração específica de um filtro de circuito que funciona como um filtro de desbloqueio (DBF);
[0023] A figura 8 é um diagrama conceitual indicando um exemplo de um filtro de desbloqueio possuindo uma característica de filtragem simétrica com relação a um limite de bloco;
[0024] A figura 9 é um diagrama conceitual para ilustrar um limite de bloco no qual um processo de filtro de desbloqueio é realizado;
[0025] A figura 10 é um diagrama conceitual indicando exemplos de valores de Bs;
[0026] A figura 11 é um fluxograma ilustrando um exemplo de um processo realizado por um processador de previsão do codificador;
[0027] A figura 12 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador;
[0028] A figura 13 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador;
[0029] A figura 14 é um diagrama conceitual ilustrando sessenta e sete modos de intraprevisão utilizados na intraprevisão em uma moda- lidade;
[0030] A figura 15 é um fluxograma ilustrando um fluxo de proces- samento básico ilustrativo de interprevisão;
[0031] A figura 16 é um fluxograma ilustrando um exemplo de de- rivação de vetores de movimento;
[0032] A figura 17 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento;
[0033] A figura 18 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento;
[0034] A figura 19 é um fluxograma ilustrando um exemplo de in- terprevisão no intermodo normal;
[0035] A figura 20 é um fluxograma ilustrando um exemplo de in- terprevisão no modo de mistura;
[0036] A figura 21 é um diagrama conceitual para ilustrar um exemplo de um processo de derivação de vetor de movimento no mo- do de mistura;
[0037] A figura 22 é um fluxograma ilustrando um exemplo do pro- cesso de conversão ascendente de taxa de quadro (FRUC);
[0038] A figura 23 é um diagrama conceitual para ilustrar um exemplo de combinação de padrão (combinação bilateral) entre dois blocos ao longo de uma trajetória de movimento;
[0039] A figura 24 é um diagrama conceitual para ilustrar um exemplo de combinação de padrão (combinação de gabarito) entre um gabarito em uma imagem atual e um bloco em uma imagem de refe- rência;
[0040] A figura 25A é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco com base nos vetores de movimento de uma pluralidade de blocos vi- zinhos;
[0041] A figura 25B é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco no modo afim no qual três pontos de controle são utilizados;
[0042] A figura 26A é um diagrama conceitual para ilustrar um mo- do de mistura afim;
[0043] A figura 26B é um diagrama conceitual para ilustrar um mo- do de mistura afim no qual dois pontos de controle são utilizados;
[0044] A figura 26C é um diagrama conceitual para ilustrar um modo de mistura afim no qual três pontos de controle são utilizados;
[0045] A figura 27 é um fluxograma ilustrando um exemplo de um processo no modo de mistura afim;
[0046] A figura 28A é um diagrama conceitual para ilustrar um in- termodo afim no qual dois pontos de controle são utilizados;
[0047] A figura 28B é um diagrama conceitual para ilustrar um in- termodo afim no qual três pontos de controle são utilizados;
[0048] A figura 29 é um fluxograma ilustrando um exemplo de um processo no intermodo afim;
[0049] A figura 30A é um diagrama conceitual para ilustrar um in- termodo afim no qual um bloco atual possui três pontos de controle e um bloco vizinho possui dois pontos de controle;
[0050] A figura 30B é um diagrama conceitual para ilustrar um in- termodo afim no qual um bloco atual possui dois pontos de controle e um bloco vizinho possui três pontos de controle;
[0051] A figura 31A é um fluxograma ilustrando um processo de modo de mistura incluindo o refinamento do vetor de movimento de decodificador (DMVR);
[0052] A figura 31B é um diagrama conceitual para ilustrar um exemplo de um processo DMVR;
[0053] A figura 32 é um fluxograma ilustrando um exemplo de ge- ração de uma imagem de previsão;
[0054] A figura 33 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão;
[0055] A figura 34 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão;
[0056] A figura 35 é um fluxograma ilustrando um exemplo de um processo de correção de imagem de predição realizado por um pro- cesso de compensação de movimento de bloco sobreposto (OBMC);
[0057] A figura 36 é um diagrama conceitual para ilustrar um exemplo de um processo de correção de imagem de predição realiza- do por um processo OBMC;
[0058] A figura 37 é um diagrama conceitual para ilustrar a gera- ção de duas imagens de previsão triangulares;
[0059] A figura 38 é um diagrama conceitual para ilustrar um mo- delo assumindo-se um movimento linear uniforme;
[0060] A figura 39 é um diagrama conceitual para ilustrar um exemplo de um método de geração de imagem de predição utilizando um processo de correção de luminescência realizado por um processo de compensação de iluminação local (LIC);
[0061] A figura 40 é um diagrama em bloco ilustrando um exemplo de montagem do codificador;
[0062] A figura 41 é um diagrama em bloco ilustrando uma confi- guração funcional de um decodificador, de acordo com uma modalida- de;
[0063] A figura 42 é um fluxograma ilustrando um exemplo de um processo de decodificação geral realizado pelo decodificador;
[0064] A figura 43 é um fluxograma ilustrando um exemplo de um processo realizado por um processador de previsão do decodificador;
[0065] A figura 44 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do decodificador;
[0066] A figura 45 é um fluxograma ilustrando um exemplo de in- terprevisão no intermodo normal no decodificador;
[0067] A figura 46 é um diagrama em bloco ilustrando um exemplo de montagem do decodificador;
[0068] A figura 47 é um fluxograma indicando um primeiro exem- plo específico de um processo de decodificação com base no BIO, de acordo com uma modalidade;
[0069] A figura 48 é um diagrama conceitual ilustrando um exem- plo de cálculo de valores de gradiente horizontal, de acordo com a modalidade;
[0070] A figura 49 é um diagrama conceitual ilustrando um exem-
plo de cálculo de valores de gradiente vertical, de acordo com a moda- lidade;
[0071] A figura 50 é um fluxograma indicando uma operação reali- zada por um codificador, de acordo com a modalidade;
[0072] A figura 51 é um fluxograma indicando uma operação reali- zada por um decodificador, de acordo com a modalidade;
[0073] A figura 52 é um diagrama em bloco ilustrando uma confi- guração geral de um sistema fornecendo conteúdo para implementar um serviço de distribuição de conteúdo;
[0074] A figura 53 é um diagrama conceitual ilustrando um exem- plo de uma estrutura de codificação na codificação escalonável;
[0075] A figura 54 é um diagrama conceitual ilustrando um exem- plo de uma estrutura de codificação na codificação escalonável;
[0076] A figura 55 é um diagrama conceitual ilustrando um exem- plo de uma tela de exibição de uma página da rede;
[0077] A figura 56 é um diagrama conceitual ilustrando um exem- plo de uma tela de exibição de uma página da rede;
[0078] A figura 57 é um diagrama em bloco ilustrando um exemplo de um smartphone;
[0079] A figura 58 é um diagrama em bloco ilustrando um exemplo de uma configuração de um smartphone. Descrição das Modalidades Ilustrativas
[0080] Recentemente, a codificação de vídeo, utilizando um fluxo óptico bidirecional, tem sido estudada. O fluxo óptico bidirecional tam- bém é referido como BIO ou BDOF. Por exemplo, no fluxo óptico bidi- recional, uma imagem de previsão, possuindo um valor previsto ajus- tado para cada pixel, é gerada utilizando-se um parâmetro derivado com base em um valor de pixel de uma imagem de referência para ca- da bloco, e um valor de gradiente de uma imagem de referência para o bloco.
[0081] Um codificador tem muitas chances de poder gerar uma imagem de predição altamente precisa utilizando o fluxo óptico bidire- cional. Da mesma forma, um decodificador tem muitas chances de po- der gerar uma imagem de predição altamente precisa utilizando o fluxo óptico bidirecional.
[0082] Por exemplo, o codificador codifica uma imagem de dife- rença entre uma imagem de predição e uma imagem original. O deco- dificador, então, decodifica a imagem de diferença e adiciona a ima- gem de diferença e a imagem de predição para gerar uma imagem re- construída. O uso da imagem de predição altamente precisa permite a redução na quantidade de códigos ou imagem de referência. Em ou- tras palavras, o uso do fluxo óptico bidirecional fornece uma alta pos- sibilidade de redução da quantidade de códigos de um vídeo.
[0083] Por outro lado, o parâmetro para uso no fluxo óptico bidire- cional é derivado com base no valor de pixel e em um valor de gradi- ente em cada posição de pixel em uma imagem de referência. Por es- sa razão, visto que o parâmetro a ser utilizado para o fluxo óptico bidi- recional é derivado, a computação realizada para cada posição de pixel pode aumentar a quantidade de computação.
[0084] Por essa razão, por exemplo, um codificador, de acordo com um aspecto da presente descrição, inclui um conjunto de circuitos e uma memória conectada ao conjunto de circuitos. O conjunto de cir- cuitos deriva um valor absoluto de uma soma de valores de gradiente que indica um valor absoluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, pa- ra cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel sendo determinada de forma comum e com relação à primeira faixa e à segunda faixa; deriva, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas de valores de gradiente derivados, respectivamente, da pluralidade de pares das po- sições relativas de pixel; deriva um valor de diferença de pixel que in- dica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa, e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel; inverte ou mantém um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a plurali- dade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a so- ma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; deriva, como um segundo parâmetro, uma soma total de uma plurali- dade de valores de diferença de pixel, cada um possuindo um sinal de mais ou menos invertido, ou mantido, a pluralidade de valores de dife- rença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para codificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
[0085] Dessa forma, o codificador pode reduzir a multiplicação substancial que exige uma quantidade grande de computação nas computações realizadas para as posições relativas de pixel, e derivar a pluralidade de parâmetros para gerar a imagem de predição com uma pequena quantidade de computação. De acordo, o codificador pode reduzir a quantidade de processamento na codificação.
[0086] Adicionalmente, por exemplo, para cada um dentre a plura-
lidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa é um valor horizontal de gra- diente na posição relativa de pixel na primeira faixa, e o valor de gradi- ente na posição relativa de pixel na segunda faixa é um valor de gradi- ente horizontal na posição relativa de pixel na segunda faixa.
[0087] Dessa forma, o codificador é capaz de derivar a pluralidade de parâmetros utilizando os valores de gradiente horizontais com uma pequena quantidade de computação.
[0088] Adicionalmente, por exemplo, o conjunto de circuitos deriva o primeiro parâmetro de acordo com a Expressão (4.1) descrita poste- riormente, e o segundo parâmetro de acordo com a Expressão (4.2) descrita posteriormente, onde:  denota um conjunto da pluralidade de pares de posições relativas de pixel; [i, j] denota cada uma das posi- ções relativas de pixel incluídas na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralidade de pares de posi- ções relativas de pixel, Ix0 denota um valor de gradiente horizontal em uma posição relativa de pixel na primeira faixa, e Ix1 denota um valor de gradiente horizontal em uma posição relativa de pixel na segunda faixa; I0 denota um valor de pixel na posição relativa de pixel na primei- ra faixa; I1 denota um valor de pixel na posição relativa de pixel na se- gunda faixa; abs(Ix1 + Ix0) denota um valor absoluto de Ix1 + Ix0; e o sinal (Ix1 + Ix0) denota um sinal de mais ou menos de Ix1 + Ix0.
[0089] Dessa forma, o codificador pode derivar adequadamente a pluralidade de parâmetros utilizando os valores de pixel e os valores de gradiente horizontal.
[0090] Adicionalmente, por exemplo, para cada um dentre a plura- lidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa é um valor de gradiente ver- tical na posição relativa de pixel na primeira faixa, e o valor de gradien- te na posição relativa de pixel na segunda faixa é um valor de gradien-
te vertical na posição relativa de pixel na segunda faixa.
[0091] Dessa forma, o codificador pode derivar a pluralidade de parâmetros utilizando os valores de gradiente vertical com uma pe- quena quantidade de computação.
[0092] Adicionalmente, por exemplo, o conjunto de circuitos deriva o primeiro parâmetro, de acordo com a Expressão (4.1) descrita poste- riormente, e o segundo parâmetro, de acordo com a Expressão (4.2) descrita posteriormente, onde:  denota um conjunto da pluralidade de pares de posições relativas de pixel; [i, j] denota cada uma das posi- ções relativas de pixel incluídas na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralidade de pares de posi- ções relativas de pixel, Iy0 denota um valor de gradiente vertical em uma posição relativa de pixel na primeira faixa e Iy1 denota um valor de gradiente vertical em uma posição relativa de pixel na segunda faixa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda fai- xa; abs (Iy1 + Iy0) denota um valor absoluto de Iy1 + Iy0; e o sinal (Iy1 + Iy0) denota um sinal de mais ou menos de Iy1 + Iy0.
[0093] Dessa forma, o codificador pode derivar adequadamente a pluralidade de parâmetros utilizando os valores de pixel e os valores de gradiente vertical.
[0094] Adicionalmente, por exemplo, o conjunto de circuitos deriva, para cada um dentre a pluralidade de pares de posições relativas de pixel, um valor absoluto de uma soma de gradientes horizontais, que indica um valor absoluto de uma soma de um valor de gradiente hori- zontal na posição relativa de pixel na primeira faixa, e um valor de gra- diente horizontal na posição relativa de pixel na segunda faixa, e deri- va uma soma total de uma pluralidade de valores absolutos de somas de valores de gradiente horizontal derivados, respectivamente, para a pluralidade de pares das posições relativas de pixel; deriva, para cada um dentre a pluralidade de pares de posições relativas de pixel, um valor absoluto de uma soma de gradientes verticais, que indica um va- lor absoluto de uma soma de um valor de gradiente vertical na posição relativa de pixel na primeira faixa, e um valor de gradiente vertical na posição relativa de pixel na segunda faixa, e deriva uma soma total de uma pluralidade de valores absolutos das somas de valores de gradi- ente vertical derivados, respectivamente, para a pluralidade de pares de posições relativas de pixel; quando a soma total da pluralidade de valores absolutos das somas de valores de gradiente horizontal for maior do que a soma total da pluralidade de valores absolutos das somas de valores de gradiente vertical, para cada um dentre a plurali- dade de pares de posições relativas de pixel, aplica o valor de gradien- te horizontal na posição relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa; e aplica o valor de gradiente horizontal na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na segunda faixa; e quando a soma total da pluralidade de valores absolutos das somas dos valores de gradiente horizontal não for maior do que a soma total da pluralidade de valores absolutos das somas de valores de gradiente vertical, para cada um dentre a pluralidade de pares de posições rela- tivas de pixel; aplica o valor de gradiente vertical na posição relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa; e aplica o valor de gradiente vertical na posição relativa de pixel na segunda faixa ao valor de gradiente na posição re- lativa de pixel na segunda faixa.
[0095] Dessa forma, o codificador pode aplicar os valores de gra- diente horizontal, ou valores de gradiente vertical, à derivação da plu- ralidade de parâmetros, com base na comparação entre a soma total relacionada com os valores de gradiente horizontal e a soma total re- lacionada com os valores de gradiente vertical. Em outras palavras, o codificador pode aplicar os valores de gradiente possuindo uma gran- de influência na derivação da pluralidade de parâmetros.
[0096] Adicionalmente, por exemplo, o conjunto de circuitos deriva um terceiro parâmetro utilizando o primeiro parâmetro como um de- nominador e o segundo parâmetro como um numerador; e gera a ima- gem de predição utilizando o terceiro parâmetro.
[0097] Dessa forma, o codificador pode gerar aproximadamente a imagem de previsão, utilizando os parâmetros derivados com base nas relações entre a pluralidade de parâmetros.
[0098] Adicionalmente, por exemplo, o conjunto de circuitos deriva, para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa utilizando um filtro de três saídas que possui um conjunto de coeficien- te de filtro de [-1, 0, 1].
[0099] Dessa forma, o codificador pode derivar o valor de gradien- te em cada posição de pixel de forma simples e adequada.
[00100] Adicionalmente, por exemplo, o bloco atual é um sub-bloco definido como possuindo um tamanho de 4 x 4 pixels em uma unidade de codificação, e o conjunto de circuitos deriva o primeiro parâmetro e o segundo parâmetro com base em sub-bloco.
[00101] Dessa forma, o codificador pode gerar de forma adequada a imagem de previsão, utilizando a pluralidade de parâmetros definida pelo tamanho de 4 x 4 pixels.
[00102] Adicionalmente, por exemplo, um decodificador, de acordo com um aspecto da presente descrição, inclui o conjunto de circuitos e a memória conectada ao conjunto de circuitos. O conjunto de circuitos deriva um valor absoluto de uma soma de valores de gradiente, que indica um valor absoluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, pa- ra cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel sendo determinada de forma comum e com relação à primeira faixa e à segunda faixa; deriva, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos de somas de valores de gra- diente derivados, respectivamente, para a pluralidade de pares de po- sições relativas de pixel; deriva um valor de diferença de pixel que in- dica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa, e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel; inverte ou mantém um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a plurali- dade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a so- ma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; deriva, como um segundo parâmetro, uma soma total de uma plurali- dade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos invertido ou mantido, a pluralidade de valores de dife- rença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para decodificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
[00103] Dessa forma, o decodificador pode reduzir a multiplicação substancial que exige uma grande quantidade de computação nas computações realizadas para as posições respectivas de pixel, e deri- var a pluralidade de parâmetros para gerar a imagem de predição com uma quantidade de computação reduzida. De acordo, o decodificador pode reduzir a quantidade de processamento na decodificação.
[00104] Adicionalmente, por exemplo, para cada um dentre a plura- lidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa é um valor de gradiente hori- zontal na posição relativa de pixel na primeira faixa, e o valor de gradi- ente na posição relativa de pixel na segunda faixa é um valor de gradi- ente horizontal na posição relativa de pixel na segunda faixa.
[00105] Dessa forma, o decodificador pode derivar a pluralidade de parâmetros utilizando os valores de gradiente horizontal com uma quantidade de computação reduzida.
[00106] Adicionalmente, por exemplo, o conjunto de circuitos deriva o primeiro parâmetro de acordo com a Expressão (4.1), descrita poste- riormente, e o segundo parâmetro de acordo com a Expressão (4.2), descrita posteriormente, onde  denota um conjunto da pluralidade de pares de posições relativas de pixel; [i, j] denota cada uma das posi- ções relativas de pixel na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralidade de pares de posições relati- vas de pixel, Ix0 denota um valor de gradiente horizontal em uma posi- ção relativa de pixel na primeira faixa, e Ix1 denota um valor de gradi- ente horizontal em uma posição relativa de pixel na segunda faixa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda fai- xa; abs (Ix1 + Ix0) denota um valor absoluto de Ix1 + Ix0 e o sinal (Ix1 + Ix0) denota um sinal de mais ou menos de Ix1 + Ix0.
[00107] Dessa forma, o decodificador pode derivar de forma ade- quada a pluralidade de parâmetros utilizando os valores de pixel e os valores de gradiente horizontal.
[00108] Adicionalmente, por exemplo, para cada um dentre a plura- lidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa é um valor de gradiente ver- tical na posição relativa de pixel na primeira faixa, e o valor de gradien- te na posição relativa de pixel na segunda faixa é um valor de gradien- te vertical na posição relativa de pixel na segunda faixa.
[00109] Dessa forma, o decodificador pode derivar a pluralidade de parâmetros utilizando os valores de gradiente vertical com uma pe- quena quantidade de computação.
[00110] Adicionalmente, por exemplo, o conjunto de circuitos deriva o primeiro parâmetro, de acordo com a Expressão (4.5) e o segundo parâmetro, de acordo com a Expressão (4.6), onde  denota um con- junto da pluralidade de pares de posições relativas de pixel; [i, j] deno- ta cada uma das posições relativas de pixel incluídas na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralida- de de pares de posições relativas de pixel, Iy0 denota um valor de gra- diente vertical e uma posição relativa de pixel na primeira faixa e Iy1 denota um valor de gradiente vertical em uma posição relativa de pixel na segunda faixa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda faixa; abs (Iy1 + Iy0) denota um valor absoluto de Iy1 + Iy0; e o sinal (Iy1 + Iy0) denota um sinal de mais ou menos de Iy1 + Iy0.
[00111] Dessa forma, o decodificador pode derivar, adequadamen- te, a pluralidade de parâmetros utilizando os valores de pixel e os valo- res de gradiente vertical.
[00112] Adicionalmente, por exemplo, o conjunto de circuitos deriva, para cada um dentre a pluralidade de pares de posições relativas de pixel, um valor absoluto de uma soma de gradientes horizontais que indica um valor absoluto de uma soma de um valor de gradiente hori-
zontal na posição relativa de pixel na primeira faixa, e um valor de gra- diente horizontal na posição relativa de pixel na segunda faixa, e deri- va uma soma total de uma pluralidade de valores absolutos das somas de valores de gradiente horizontal derivados, respectivamente, para a pluralidade de pares de posições relativas de pixel; deriva, para cada um dentre a pluralidade de pares de posições relativas de pixel, um valor absoluto de uma soma de gradientes verticais, que indica um va- lor absoluto de uma soma de um valor de gradiente vertical na posição relativa de pixel na primeira faixa, e um valor de gradiente vertical na posição relativa de pixel na segunda faixa, e deriva uma soma total de uma pluralidade de valores absolutos das somas dos valores de gradi- ente vertical derivados, respectivamente, para a pluralidade de pares de posições relativas de pixel; quando a soma total da pluralidade de valores absolutos das somas dos valores de gradiente horizontal for maior do que a soma total da pluralidade de valores absolutos das somas de valores de gradiente vertical, para cada um dentre a plurali- dade de pares de posições relativas de pixel; aplica o valor de gradien- te horizontal na posição relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa; e aplica o valor de gradiente horizontal na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na segunda faixa; e quando a soma total da pluralidade de valores absolutos das somas de valores de gradiente horizontal não for superior à soma total da plurali- dade de valores absolutos das somas dos valores de gradiente verti- cal, para cada um dentre a pluralidade de posições relativas de pixel, aplica o valor de gradiente vertical na posição relativa de pixel na pri- meira faixa ao valor de gradiente na posição relativa de pixel na pri- meira faixa; e aplica o valor de gradiente vertical na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na segunda faixa.
[00113] Dessa forma, o decodificador pode aplicar os valores de gradiente horizontal ou os valores de gradiente vertical à derivação da pluralidade de parâmetros com base na comparação entre a soma to- tal relacionada com os valores de gradiente horizontal e a soma total relacionada com os valores de gradiente vertical. Em outras palavras, o decodificador pode aplicar os valores de gradiente possuindo uma grande influência à derivação da pluralidade de parâmetros.
[00114] Adicionalmente, por exemplo, o conjunto de circuitos deriva um terceiro parâmetro utilizando o primeiro parâmetro como um de- nominador e o segundo parâmetro como um numerador; e gera a ima- gem de predição utilizando o terceiro parâmetro.
[00115] Dessa forma, o decodificador pode gerar, adequadamente, a imagem de previsão, utilizando os parâmetros derivados com base nas relações entre a pluralidade de parâmetros.
[00116] Adicionalmente, por exemplo, o conjunto de circuitos deriva, para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa, utilizando um filtro de três saídas que possui um conjunto de coeficien- tes de filtro de [-1, 0, 1].
[00117] Dessa forma, o decodificador pode derivar o valor de gradi- ente em cada posição de pixel de forma simples e adequada.
[00118] Adicionalmente, por exemplo, o bloco atual é um sub-bloco definido como possuindo um tamanho de 4 x 4 pixels em uma unidade de codificação, e o conjunto de circuitos deriva o primeiro parâmetro e o segundo parâmetro com base em sub-bloco.
[00119] Dessa forma, o decodificador pode gerar adequadamente a imagem de previsão, utilizando a pluralidade de parâmetros definidos pelo tamanho de 4 x 4 pixels.
[00120] Adicionalmente, por exemplo, um método de codificação,
de acordo com um aspecto da presente descrição, inclui derivar um valor absoluto de uma soma de valores de gradiente que indica um valor absoluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa dentre uma pluralidade de pares de posições relativas de pixel, a primeira fai- xa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel sendo de- terminada de forma comum e com relação à primeira faixa e à segun- da faixa; derivando, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas de valores de gradi- ente derivados, respectivamente, para a pluralidade de pares de posi- ções relativas de pixel; derivando um valor de diferença de pixel que indica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel; invertendo ou mantendo um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; derivando, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos invertido, ou mantido, a pluralidade de valores de diferença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gerando uma imagem de predi-
ção a ser utilizada par codificar o bloco atual utilizando o primeiro pa- râmetro e o segundo parâmetro.
[00121] Dessa forma, se torna possível a redução da multiplicação substancial que exige uma grande quantidade de computação nas computações realizadas para as posições respetivas de pixel, e a deri- vação da pluralidade de parâmetros para gerar a imagem de predição com uma pequena quantidade de computação. De acordo, se torna possível a redução da quantidade de processamento na codificação.
[00122] Adicionalmente, por exemplo, um método de decodificação, de acordo com um aspecto da presente descrição, inclui derivar um valor absoluto de uma soma de valores de gradiente, que indica um valor absoluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira fai- xa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel sendo de- terminada de forma comum e com relação à primeira faixa e à segun- da faixa, derivando, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas dos valores de gradi- ente derivados, respectivamente, para a pluralidade de pares das po- sições relativas de pixel; derivando um valor de diferença de pixel, que indica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa, e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel; invertendo, ou mantendo, um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pares das posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indi- ca a soma do valor de gradiente na posição relativa de pixel na primei- ra faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; derivando, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos invertido, ou mantido, a pluralidade de valores de diferença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gerando uma imagem de predi- ção a ser utilizada para decodificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
[00123] Dessa forma, se torna possível a redução da multiplicação substancial que exige uma grande quantidade de computação nas computações realizadas para as posições respectivas de pixel, e a de- rivação da pluralidade de parâmetros para gerar a imagem de predição com uma pequena quantidade de computação. De acordo, se torna possível a redução da quantidade de processamento na decodificação.
[00124] Alternativamente, um codificador, de acordo com um aspec- to da presente descrição, é um codificador que codifica um vídeo utili- zando uma imagem de previsão. O codificador inclui um divisor, um intraprevisor, um interprevisor, um transformador, um quantizador, e um codificador por entropia.
[00125] O divisor divide uma imagem atual a ser codificada, incluída no vídeo, em uma pluralidade de blocos. O intraprevisor realiza a in- traprevisão para gerar uma imagem de predição para um bloco atual, a ser codificado, na imagem atual, utilizando uma imagem de referência na imagem atual. O interprevisor realiza a interprevisão para gerar uma imagem de predição para um bloco atual a ser codificado, utili- zando uma imagem de referência em uma imagem de referência, dife- rente da imagem atual.
[00126] O transformador transforma um sinal de erro de previsão entre (i) a imagem de predição gerada pelo intraprevisor ou a imagem de predição gerada pelo interprevisor e (ii) a imagem do bloco atual, para gerar um sinal de coeficiente de transformação do bloco atual. O quantizador quantiza o sinal de coeficiente de transformação. O codifi- cador por entropia codifica o sinal de coeficiente de transformação quantizado.
[00127] Adicionalmente, for exemplo, o interprevisor deriva um valor absoluto de uma soma de valores de gradiente, que indica um valor absoluto de uma soma de um valor de gradiente em uma posição rela- tiva de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência para um bloco atual, a se- gunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel sendo de- terminada de forma comum, com relação à primeira faixa e à segunda faixa; deriva, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas de valores de gradiente derivados, respectivamente, para a pluralidade de pares de posições relativas de pixel; deriva um valor de diferença de pixel, que indica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa, e um valor de pixel na posição relativa de pixel na se- gunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel; inverte ou mantém um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pares, dos pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; deriva, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o si- nal de mais ou menos invertido, ou mantido, a pluralidade de valores de diferença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para codificar o bloco atual utilizando o primeiro parâ- metro e o segundo parâmetro.
[00128] Alternativamente, por exemplo, um decodificador, de acor- do com um aspecto da presente descrição é um decodificador que de- codifica um vídeo utilizando uma imagem de previsão. O decodificador inclui um decodificador por entropia, um quantizador inverso, um trans- formador inverso, um intraprevisor, um interprevisor, e um somador (reconstrutor).
[00129] O decodificador por entropia decodifica um sinal de coefici- ente de transformação de um bloco atual a ser decodificado em uma imagem atual a ser decodificada no vídeo. O quantizador inverso quantiza de forma inversa o sinal do coeficiente de transformação quantizado. O transformador inverso transforma de forma inversa o sinal de coeficiente de transformação para obter um sinal de erro de previsão do bloco atual.
[00130] O intraprevisor realiza a intraprevisão para gerar a imagem de predição para um bloco atual a ser decodificado, utilizando uma imagem de referência em uma imagem atual a ser decodificada. O in- terprevisor realiza a interprevisão para gerar uma imagem de predição para um bloco atual a ser decodificado, utilizando uma imagem de re- ferência em uma imagem de referência diferente da imagem atual. O somador adiciona o sinal de erro de previsão e a imagem de predição gerada pelo intraprevisor, ou a imagem de predição gerada pelo inter-
previsor, para reconstruir uma imagem do bloco atual.
[00131] Adicionalmente, por exemplo, o interprevisor deriva um va- lor absoluto de uma soma de valores de gradiente, que indica um valor absoluto de uma soma de um valor de gradiente em uma posição rela- tiva de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência para um bloco atual, a se- gunda faixa incluindo um segundo bloco de referência para o bloco atual, a pluralidade de pares de posições relativas de pixel determina- da de forma comum e com relação à primeira faixa e à segunda faixa; deriva, como um primeiro parâmetro, uma soma total de uma plurali- dade de valores absolutos das somas dos valores de gradiente deriva- da, respectivamente, para a pluralidade de pares de posições relativas de pixel; deriva um valor de diferença de pixel, que indica uma diferen- ça entre um valor de pixel na posição relativa de pixel na primeira fai- xa, e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel; inverte, ou mantém, um sinal de mais ou menos do valor de dife- rença de pixel derivado para cada um dentre a pluralidade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do valor de gradi- ente na posição relativa de pixel na primeira faixa, e o valor de gradi- ente na posição relativa de pixel na segunda faixa; deriva, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos inver- tido, ou mantido, a pluralidade de valores de diferença de pixel deriva- dos, respectivamente, da pluralidade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para decodificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
[00132] Adicionalmente, esses aspectos gerais ou específicos po- dem ser implementados utilizando-se um sistema, um aparelho, um método, um circuito integrado, um programa de computador, ou um meio de gravação legível por computador não transitório, tal como CD- ROM, ou qualquer combinação de sistemas, aparelhos, métodos, cir- cuitos integrados, programas de computador, ou meio de gravação legível por computador.
[00133] Doravante, as modalidades serão descritas com referência aos desenhos. Note-se que as modalidades descritas abaixo ilustram, cada uma, um exemplo geral ou específico. Os valores numéricos, os formatos, os materiais, os componentes, a disposição e conexão dos componentes, etapas, e a relação e ordem das etapas, etc., indicados nas modalidades a seguir, são meramente ilustrativos, e não devem limitar o escopo das reivindicações.
[00134] As modalidades de um codificador e de um decodificador serão descritas abaixo. As modalidades são exemplos de um codifica- dor e de um decodificador aos quais os processos e/ou configurações, apresentados na descrição dos aspectos da presente descrição, são aplicáveis. Os processos e/ou configurações também podem ser im- plementados em um codificador e em um decodificador, diferentes dos apresentados de acordo com as modalidades. Por exemplo, conside- rando-se os processos e/ou configurações como aplicados às modali- dades, qualquer um dos seguintes pode ser implementado:
[00135] (1) Quando um dos componentes do codificador ou do de- codificador, de acordo com as modalidades apresentadas na descrição dos aspectos da presente descrição, podem ser substituídos ou com- binados com outros componentes apresentados em outro local na descrição dos aspectos da presente descrição.
[00136] (2) No codificador, ou no decodificador, de acordo com as modalidades, mudanças discricionárias podem ser realizadas às fun- ções ou processos realizados por um ou mais componentes do codifi- cador ou do decodificador, tal como adição, substituição, remoção, etc., das funções ou processos. Por exemplo, qualquer função ou pro- cesso pode ser substituído ou combinado com outra função ou outro processo apresentado em outro local na descrição dos aspectos da presente descrição.
[00137] (3) Nos métodos implementados pelo codificador, ou pelo decodificador, de acordo com as modalidades, as mudanças discricio- nárias podem ser realizadas, tal como adição, substituição e remoção de um ou mais dos processos incluídos no método. Por exemplo, qualquer processo no método pode ser substituído ou combinado com outro processo apresentado em outro local na descrição dos aspectos da presente descrição.
[00138] (4) Um ou mais componentes incluídos no codificador, ou no decodificador, de acordo com as modalidades, podem ser combi- nados com um componente apresentado em outro local na descrição dos aspectos da presente descrição, podem ser combinados com um componente incluindo uma ou mais funções apresentadas em outro local na descrição dos aspectos da presente descrição e podem ser combinados com um componente que implementa um ou mais pro- cessos implementados por um componente apresentado na descrição dos aspectos da presente descrição.
[00139] (5) Um componente incluindo uma ou mais funções do codi- ficador, 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 por um componente apresentado em outro local na des- crição dos aspectos da presente descrição, com um componente inclu-
indo uma ou mais funções apresentadas em outro local na descrição dos aspectos da presente descrição, ou por um componente que im- plemente um ou mais processos apresentados em outro local na des- crição dos aspectos da presente descrição.
[00140] (6) Nos métodos implementados pelo codificador, ou pelo decodificador, de acordo com as modalidades, qualquer um dos pro- cessos incluídos no método pode ser substituído ou combinado com um processo apresentado em outro local na descrição dos aspectos da presente descrição, ou com qualquer processo correspondente ou equivalente.
[00141] (7) Um ou mais processos incluídos nos métodos imple- mentados pelo codificador, ou pelo decodificador, de acordo com as modalidades, pode ser combinado com um processo apresentado em outro local na descrição dos aspectos da presente descrição.
[00142] (8) A implementação dos processos e/ou configurações apresentados na descrição dos aspectos da presente descrição não está limitada ao codificador, ou ao decodificador, de acordo com as modalidades. Por exemplo, os processos e/ou configurações podem ser implementados em um dispositivo utilizado para uma finalidade diferente do codificador de imagem em movimento ou decodificador de imagem em movimento descritos nas modalidades. Codificador
[00143] Primeiro, um codificador, de acordo com uma modalidade, será descrito. A figura 1 é um diagrama em bloco ilustrando uma con- figuração funcional do codificador 100, de acordo com a modalidade. O codificador 100 é um codificador de vídeo que codifica um vídeo em unidades de um bloco.
[00144] Como ilustrado na figura 1, o codificador 100 é um aparelho que codifica uma imagem em unidades de um bloco, e inclui o divisor 102, o subtraidor 104, o transformador 106, o quantizador 108, o codi-
ficador por entropia 110, o quantizador inverso 112, o transformador inverso 114, o somador 116, a memória de bloco 118, o filtro de circui- to 120, a memória de quadro 122, o intraprevisor 124, o interprevisor 126 e o controlador de previsão 128.
[00145] O codificador 100 é implementado, por exemplo, como um processador genérico e uma memória. Nesse caso, quando um pro- grama de software armazenado na memória é executado pelo proces- sador, o processador funciona como o divisor 102, o subtraidor 104, o transformador 106, o quantizador 108, o codificador por entropia 110, o quantizador inverso 112, o transformador inverso 114, o somador 116, o filtro de circuito 120, o intraprevisor 124, o interprevisor 126 e o controlador de previsão 128. Alternativamente, o codificador 100 pode ser implementado como um ou mais circuitos eletrônicos dedicados que correspondem ao divisor 102, subtraidor 104, transformador 106, quantizador 108, codificador por entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro de circuito 120, intraprevisor 124, interprevisor 126 e controlador de previsão 128.
[00146] Doravante, um fluxo geral de processos realizado pelo codi- ficador 100 é descrito, e, então, cada um dos elementos constituintes incluídos no codificador 100 será descrito. Fluxo Geral do Processo de Codificação
[00147] A figura 2 é um fluxograma indicando um exemplo de um processo de codificação geral realizado pelo codificador 100.
[00148] Primeiro, o divisor 102 do codificador 100 divide cada uma das imagens incluídas em uma imagem de entrada, que é um vídeo, em uma pluralidade de blocos possuindo um tamanho fixo (por exem- plo, 128 x 128 pixels) (Etapa Sa_1). O divisor 102, então, seleciona um padrão de divisão para o bloco de tamanho fixo (também referido co- mo um formato de bloco) (Etapa Sa_2). Em outras palavras, o divisor 102 divide, adicionalmente, o bloco de tamanho fixo em uma pluralida-
de de blocos que formam o padrão de divisão selecionado. O codifica- dor 100 realiza, para cada um dentre a pluralidade de blocos, Etapas Sa_3 a Sa_9 para o bloco (que é um bloco atual a ser codificado).
[00149] Em outras palavras, um processador de previsão, que inclui todos ou parte do intraprevisor 124, do intraprevisor 126 e do controla- dor de previsão 128 gera um sinal de previsão (também referido como um bloco de previsão) do bloco atual a ser codificado (também referido como um bloco atual) (Etapa Sa_3).
[00150] A seguir, o subtraidor 104 gera uma diferença entre o bloco atual e um bloco de previsão como um residual de previsão (também referido como um bloco de diferença) (Etapa Sa_4).
[00151] A seguir, o transformador 106 transforma o bloco de dife- rença e o quantizador 108 quantiza o resultado, para gerar uma plura- lidade de coeficientes quantizados (Etapa Sa_5). Deve-se notar que o bloco possuindo a pluralidade de coeficientes quantizados também é referido como um bloco de coeficiente.
[00152] A seguir, o codificador por entropia 110 codifica (especifi- camente, codifica por entropia) o bloco de coeficiente e um parâmetro de previsão relacionado com a geração de um sinal de previsão para gerar um sinal codificado (Etapa Sa_6). Deve-se notar que o sinal co- dificado também é referido como uma sequência de bits codificados, uma sequência de bits comprimidos, ou uma sequência.
[00153] A seguir, o quantizador inverso 112 realiza a quantização inversa do bloco de coeficientes e o transformador inverso 114 realiza a transformação inversa do resultado, para restaurar uma pluralidade de residuais de previsão (isso é, um bloco de diferença) (Etapa Sa_7).
[00154] A seguir, o somador 116 adiciona o bloco de previsão ao bloco de diferença restaurado para reconstruir o bloco atual como uma imagem reconstruída (também referido como um bloco reconstruído ou um bloco de imagem decodificado) (Etapa Sa_8). Dessa forma, a ima-
gem reconstruída é gerada.
[00155] Quando a imagem reconstruída é gerada, o filtro de circuito 120 realiza a filtragem da imagem reconstruída como necessário (Eta- pa Sa_9).
[00156] O codificador 100, então, determina se a codificação de to- da a imagem foi encerrada (Etapa Sa_10). Quando da determinação de que a codificação ainda não foi encerrada (Não na Etapa Sa_10), os processos da Etapa Sa_2 são executados repetidamente.
[00157] Apesar de o codificador 100 selecionar um padrão de divi- são para um bloco de tamanho fixo, e codificar cada bloco de acordo com o padrão de divisão no exemplo descrito acima, deve-se notar que cada bloco pode ser codificado de acordo com um padrão corres- pondente dentre uma pluralidade de padrões de divisão. Nesse caso, o codificador 100 pode avaliar um custo para cada um dentre a plurali- dade de padrões de divisão e, por exemplo, pode selecionar o sinal codificado obtenível pela codificação de acordo com o padrão de divi- são, que resulta no menor custo como um sinal codificado que é envi- ado.
[00158] Como ilustrado, os processos nas Etapas Sa_1 a Sa_10 são realizados sequencialmente pelo codificador 100. Alternativamen- te, dois ou mais dos processos podem ser realizados em paralelo, os processos podem ser reordenados, etc. Divisor
[00159] O divisor 102 divide cada uma das imagens incluídas em um vídeo de entrada em uma pluralidade de blocos, e envia cada blo- co para o subtraidor 104. Por exemplo, o divisor 102 primeiro divide uma imagem em blocos de um tamanho fixo (por exemplo, 128, x 128). Outros tamanhos fixos de bloco podem ser usados. O bloco de tamanho fixo também é referido como uma unidade de árvore de codi- ficação (CTU). O divisor 102, então, divide cada bloco de tamanho fixo em blocos de tamanhos variáveis (por exemplo, 64 x 64 ou menor), com base na divisão de bloco de quadtree recursiva e/ou árvore biná- ria. Em outras palavras, o divisor 102 seleciona um padrão de divisão. O bloco de tamanho variável também é referido como uma unidade de codificação (CU), uma unidade de previsão (PU), ou uma unidade de transformação (TU). Deve-se notar que, em vários tipos de exemplos de processamento, não há necessidade de se diferenciar entre CU, PU e TU; todos ou alguns dos blocos em uma imagem podem ser pro- cessados em unidades de uma CU, de uma PU ou de uma TU.
[00160] A figura 3 é um diagrama conceitual ilustrando um exemplo de divisão de bloco, de acordo com uma modalidade. Na figura 3, as linhas sólidas representam limites de bloco dos blocos divididos por divisão de bloco quadtree, e as linhas tracejadas representam os limi- tes de bloco dos blocos divididos por divisão de bloco de árvore biná- ria.
[00161] No presente documento, o bloco 10 é um bloco quadrado possuindo 128 x 128 pixels (bloco de 128 x 128). Esse bloco de 128 x 128 10 é primeiramente dividido em quatro blocos quadrados de 64 x 64 (divisão de bloco quadtree).
[00162] O bloco superior esquerdo de 64 x 64 é adicionalmente di- vidido verticalmente em dois blocos retangulares de 32 x 64, e o bloco esquerdo de 32 x 64 é adicionalmente dividido verticalmente em dois blocos retangulares de 16 x 64 (divisão de bloco de árvore binária). Como resultado disso, o bloco superior esquerdo de 64 x 64 é dividido em dois blocos de 16 x 64 11 e 12 e um bloco de 32 x 64 13.
[00163] O bloco superior direito de 64 x 64 é dividido horizontalmen- te em dois blocos retangulares de 64 x 32 14 e 15 (divisão de bloco de árvore binária).
[00164] O bloco inferior esquerdo de 64 x 64 é primeiramente divi- dido em quatro blocos quadrados de 32 x 32 (divisão de bloco qua-
dtree). O bloco superior esquerdo e o bloco inferior direito, dentre os quatro blocos de 32 x 32, são adicionalmente divididos. O bloco supe- rior esquerdo de 32 x 32 é verticalmente dividido em dois blocos re- tangulares de 16 x 32, e o bloco direito de 16 x 32 é adicionalmente dividido horizontalmente em dois blocos de 16 x 16 (divisão de bloco de árvore binária). O bloco inferior direito de 32 x 32 é horizontalmente dividido em dois blocos de 32 x 16 (divisão de bloco de árvore binária). Como resultado disso, o bloco inferior esquerdo de 64 x 64 é dividido em um bloco de 16 x 32 16, dois blocos de 16 x 16 17 e 18, dois blo- cos de 32 x 32 19 e 20, e dois blocos de 32 x 16 21 e 22.
[00165] O bloco inferior direito de 64 x 64 23 não é dividido.
[00166] Como descrito acima, na figura 3, o bloco 10 é dividido em treze blocos de tamanho variável 11 a 23 com base na divisão de blo- co quadtree recursiva e de árvore binária. Esse tipo de divisão também é referido como divisão quadtree mais árvore binária (QTBT).
[00167] Deve-se notar que, na figura 3, um bloco é dividido em qua- tro ou dois blocos (divisão de bloco quadtree ou de árvore binária), mas a divisão não está limitada a esses exemplos. Por exemplo, um bloco pode ser dividido em três blocos (divisão de bloco ternário). A divisão incluindo tal divisão de bloco ternário também é referida como divisão de árvore de múltiplos tipos (MBT). Estrutura de Imagem: Fatia/Tile
[00168] Uma imagem pode ser configurada em unidades de uma ou mais fatias ou tiles a fim de decodificar a imagem em paralelo. A ima- gem configurada em unidades de uma ou mais fatias ou tiles pode ser configurada pelo divisor 102.
[00169] As fatias são unidades de codificação básica incluídas em uma imagem. Uma imagem pode incluir, por exemplo, uma ou mais fatias. Adicionalmente, uma fatia inclui uma ou mais unidades de árvo- re de codificação sucessivas (CTU).
[00170] A figura 4A é um diagrama conceitual ilustrando um exem- plo de uma configuração de fatia. Por exemplo, uma imagem inclui CTUs de 11 x 8, e é dividida em quatro fatias (fatias de 1 a 4). A fatia 1 inclui dezesseis CTUs, a fatia 2 inclui vinte e uma CTUs, a fatia 3 inclui vinte e nova CTUs, e a fatia 4 inclui vinte e duas CTUs. No presente documento, cada CTU na imagem pertence a uma das fatias. O forma- to de cada fatia é um formato obtenível pela divisão da imagem hori- zontalmente. Um limite de cada fatia não precisa coincidir com uma extremidade da imagem, e pode coincidir com qualquer um dos limites entre as CTUs na imagem. A ordem de processamento das CTUs em uma fatia (uma ordem de codificação ou uma ordem de decodificação) é, por exemplo, uma ordem de varredura raster. Uma fatia inclui infor- mação de cabeçalho e dados codificados. As características da fatia podem ser descritas na informação de cabeçalho. As características incluem um endereço de CTU de uma CTU superior na fatia, um tipo de fatia, etc.
[00171] Um tile é uma unidade de uma região retangular incluída em uma imagem. Cada um dos tiles pode receber um número referido como TileId na ordem de varredura raster.
[00172] A figura 4B é um diagrama conceitual indicando um exem- plo de uma configuração de tile. Por exemplo, uma imagem inclui CTUs de 11 x 8 e é dividida em quatro tiles de regiões retangulares (tiles de 1 a 4). Quando os tiles são utilizados, a ordem de processa- mento das CTUs é alterada da ordem de processamento, no caso no qual nenhum tile foi utilizado. Quando nenhum tile é utilizado, as CTUs em uma imagem são processadas na ordem de varredura raster. Quando os tiles são utilizados, pelo menos uma CTU em cada um dos tiles é processada na ordem de varredura raster. Por exemplo, como ilustrado na figura 4B, a ordem de processamento das CTUs incluídas no tile 1 é a ordem que começa na extremidade esquerda da primeira fileira de tile 1 na direção da extremidade direita da primeira fileira do tile 1 e, então, começa na extremidade esquerda da segunda fileira do tile 1 na direção da extremidade direita da segunda fileira do tile 1.
[00173] Deve-se notar que um tile pode incluir uma ou mais fatias, e uma fatia pode incluir um ou mais tiles. Subtraidor
[00174] O subtraidor 104 subtrai um sinal de previsão (amostra de previsão que é registrada a partir do controlador de previsão 128 indi- cado abaixo) de um sinal original (amostra original) em unidades de um bloco registrado a partir do divisor 102 e dividido pelo divisor 102. Em outras palavras, o subtraidor 104 calcula os erros de previsão (também referidos como residuais) de um bloco a ser codificado (dora- vante também referido como um bloco atual). O subtraidor 104, então, envia os erros de previsão calculados (residuais) para o transformador
106.
[00175] O sinal original é um sinal que foi registrado no codificador 100 e representa uma imagem de cada imagem incluída em um vídeo (por exemplo, um sinal de luminescência e dois sinais de crominância). Doravante, um sinal, que representa uma imagem, também é referido como uma amostra. Transformador
[00176] O transformador 106 transforma os erros de previsão em domínio espacial em coeficientes de transformação em domínio de frequência, e envia os coeficientes de transformação para o quantiza- dor 108. Mais especificamente, o transformador 106 aplica, por exem- plo, uma transformação de cosseno discreta definida (DCT) ou uma transformação de seno discreta (DST) aos erros de previsão no domí- nio espacial. A DCT ou DST definida pode ser pré-definida.
[00177] Deve-se notar que o transformador 106 pode selecionar, de forma adaptativa, um tipo de transformação dentre uma pluralidade de tipos de transformação, e transformar erros de previsão em coeficien- tes de transformação pela utilização de uma função básica de trans- formação que corresponde ao tipo de transformação selecionado. Es- se tipo de transformação também é referido como transformação ex- plícita de múltiplos núcleos (EMT) ou transformação múltipla adaptati- va (AMT).
[00178] Os tipos de transformação incluem, por exemplo, DCT-II, DCT-V, DCT-VIII, DST-I e DST-VII. A figura 5A é um gráfico indicando as funções básicas de transformação para os tipos de transformação ilustrativos. Na figura 5A, 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 de um tipo de previsão (uma dentre a intraprevisão e a interprevisão), e pode depender de um modo de intraprevisão.
[00179] A informação indicando se aplica tal EMT ou AMT (referida, por exemplo, como um indicador EMT ou um indicador AMT) e a in- formação que indica o tipo de transformação selecionado é normal- mente sinalizada no nível de CU. Deve-se notar que a sinalização de tal informação não precisa, necessariamente, ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de se- quência de bit, no nível de imagem, no nível de fatia, no nível de tile, ou no nível de CTU).
[00180] Adicionalmente, o transformador 106 pode transformar no- vamente os coeficientes de transformação (resultado da transforma- ção). Tal nova transformação também é referida como transformação secundária adaptativa (AST), ou transformação secundária não sepa- rável (NSST). Por exemplo, o transformador 106 realiza a nova trans- formação em unidades de um sub-bloco (por exemplo, sub-bloco de 4 x 4) incluídas em um bloco de coeficientes de transformação corres- pondendo a um erro de intraprevisão. A informação que indica se apli-
ca NSST e a informação relacionada com uma matriz de transforma- ção, para uso na NSST, são normalmente sinalizadas no nível da CU. Deve-se notar que a sinalização de tal informação não precisa, neces- sariamente, ser realizada no nível de CU, e pode ser realizada em ou- tro nível (por exemplo, no nível de sequência, no nível de imagem, no nível de fatia, no nível de tile ou no nível de CTU).
[00181] O transformador 106 pode usar uma transformação separá- vel e uma transformação não separável. Uma transformação separável é um método no qual uma transformação é realizada várias vezes pela realização, em separado, de uma transformação para cada uma dentre as várias direções, de acordo com o número de dimensões das entra- das. Uma transformação não separável é um método de realização de uma transformação coletiva, na qual duas ou mais dimensões nas en- tradas multidimensionais são coletivamente consideradas uma única dimensão.
[00182] Em um exemplo de uma transformação não separável, quando uma entrada é um bloco de 4 x 4, o bloco de 4 x 4 é conside- rado uma matriz singular incluindo dezesseis elementos, e a transfor- mação aplica uma matriz de transformação de 16 x 16 à matriz.
[00183] Em outro exemplo de uma transformação não separável, um bloco de entrada de 4 x 4 é considerado uma matriz singular inclu- indo dezesseis elementos, e, então, uma transformação (transforma- ção do hypercubo dado), na qual a revolução dada realizada na matriz várias vezes pode ser realizada.
[00184] Na transformação, no transformador 106, os tipos de bases a serem transformadas no domínio de frequência, de acordo com as regiões em uma CU, podem ser comutados. Exemplos incluem trans- formações espacialmente variáveis (SVT). Na SVT, como ilustrado na figura 5B, as CUs são divididas em duas regiões iguais, horizontal- mente ou verticalmente, e apenas uma das regiões é transformada no domínio de frequência. Um tipo básico de transformação pode ser con- figurado para cada região. Por exemplo, DST7 e DST8 são utilizadas. Nesse exemplo, apenas uma dessas duas regiões na CU é transfor- mada, e a outra não é transformada. No entanto, ambas essas regiões podem ser transformadas. Adicionalmente, o método de divisão não está limitado à divisão em duas regiões iguais, e pode ser mais flexí- vel. Por exemplo, a CU pode ser dividida em quatro regiões iguais, ou a informação que indica a divisão pode ser codificada separadamente e pode ser sinalizada da mesma forma que a divisão de CU. Deve-se notar que SVT também é referida como uma transformação de sub- bloco (SBT). Quantizador
[00185] O quantizador 108 quantiza os coeficientes de transforma- ção enviados a partir do transformador 106. Mais especificamente, o quantizador 108 digitaliza, em uma ordem de varredura determinada, os coeficientes de transformação do bloco atual, e quantiza os coefici- entes de transformação digitalizados com base nos parâmetros de quantização (QP) correspondentes aos coeficientes de transformação. O quantizador 108, então, envia os coeficientes de transformação quantizados (doravante também referidos como coeficientes quantiza- dos) do bloco atual para o codificador por entropia 110 e o quantizador inverso 112. A ordem de varredura determinada pode ser predetermi- nada.
[00186] Uma ordem de varredura determinada é uma ordem para quantizar/quantizar de forma inversa os coeficientes de transformação. Por exemplo, uma ordem de varredura determinada pode ser definida como a ordem ascendente de frequência (da frequência baixa para a alta) ou como a ordem descendente de frequência (da frequência alta para baixa).
[00187] Um parâmetro de quantização (QP) é um parâmetro que define uma etapa de quantização (largura de quantização). Por exem- plo, quando o valor de parâmetro de quantização aumenta, a etapa de quantização também aumenta. Em outras palavras, quando o valor do parâmetro de quantização aumenta, o erro de quantização aumenta.
[00188] Adicionalmente, uma matriz de quantização pode ser utili- zada para a quantização. Por exemplo, vários tipos de matrizes de quantização podem ser utilizados de forma correspondente aos tama- nhos de transformação de frequência, tal como 4 x 4 e 8 x 8, os modos de previsão, tal como a intraprevisão e a interprevisão, e componentes de pixel, tal como componentes de pixel de luminescência e crominân- cia. Deve-se notar que quantização significa a digitalização de valores amostrados em intervalos determinados de forma correspondente aos níveis determinados. Nesse campo técnico, a quantização pode ser referida utilizando-se outras expressões, tal como arredondamento e escalonamento, e pode usar o arredondamento e o escalonamento. Os intervalos e níveis determinados podem ser predeterminados.
[00189] Os métodos utilizando matrizes de quantização incluem um método que utiliza uma matriz de quantização que foi configurada dire- tamente no lado do codificador e um método utilizando uma matriz de quantização que foi configurada como um padrão (matriz padrão). No lado do codificador, uma matriz de quantização adequada para as ca- racterísticas de uma imagem pode ser configurada pela configuração direta de uma matriz de quantização. Esse caso, no entanto, apresen- ta uma desvantagem de aumentar uma quantidade de codificação pa- ra a codificação da matriz de quantização.
[00190] Existe um método de quantização de um coeficiente de alta frequência e um coeficiente de baixa frequência sem utilizar uma ma- triz de quantização. Deve-se notar que esse método é equivalente a um método utilizando uma matriz de quantização (matriz plana) cujos coeficientes apresentam o mesmo valor.
[00191] A matriz de quantização pode ser especificada utilizando- se, por exemplo, um conjunto de parâmetros de sequência (SPS), ou um conjunto de parâmetros de imagem (PPS). O SPS inclui um parâ- metro que é utilizado para uma sequência, e o PPS inclui um parâme- tro que é utilizado para uma imagem. Cada um dentre o SPS e o PPS pode ser simplesmente referido como um conjunto de parâmetros. Codificador por Entropia
[00192] O codificador por entropia 110 gera um sinal codificado (sequência de bits codificados) com base nos coeficientes quantizados que foram registrados a partir do quantizador 108. Mais especifica- mente, o codificador por entropia 110, por exemplo, binariza os coefi- cientes quantizados, e codifica aritmeticamente o sinal binário, e envia uma sequência de bits comprimidos, ou sequência. Quantizador Inverso
[00193] O quantizador inverso 112 quantiza de forma inversa os coeficientes quantizados que foram registrados a partir do quantizador
108. Mais especificamente, o quantizador inverso 112 quantiza de forma inversa, em uma ordem de varredura determinada, os coeficien- tes quantizados do bloco atual. O quantizador inverso 112, então, en- via os coeficientes de transformação quantizados de forma inversa do bloco atual para o transformador inverso 114. A ordem de varredura determinada pode ser predeterminada. Transformador Inverso
[00194] O transformador inverso 114 restaura os erros de previsão (residuais) pela transformação inversa dos coeficientes de transforma- ção que foram registrados a partir do quantizador inverso 112. Mais especificamente, o transformador inverso 114 restaura os erros de previsão do bloco atual pela aplicação de uma transformação inversa que corresponde à transformação aplicada pelo transformador 106 aos coeficientes de transformação. O transformador inverso 114, então,
envia os erros de previsão restaurados para o somador 116.
[00195] Deve-se notar que visto que a informação é perdida na quantização, os erros de previsão restaurados não coincidem com os erros de previsão calculados pelo subtraidor 104. Em outras palavras, os erros de previsão restaurados incluem, normalmente, os erros de quantização. Somador
[00196] O somador 116 reconstrói o bloco atual pela adição de er- ros de previsão que foram registrados a partir do transformador inver- so 114 e amostras de previsão que foram registradas a partir do con- trolador de previsão 128. O somador 116, então, envia o bloco recons- truído para a memória de bloco 118 e o filtro de circuito 120. Um bloco reconstruído também é referido como um bloco decodificado local. Memória de Bloco
[00197] A memória de bloco 118 é, por exemplo, o armazenador para armazenar blocos em uma imagem a ser codificada (doravante referida como uma imagem atual) que é referida na intraprevisão. Mais especificamente, a memória de bloco 118 armazena os blocos recons- truídos enviados a partir do somador 116. Memória de Quadro
[00198] A memória de quadro 122 é, por exemplo, o armazenador para armazenar imagens de referência para uso na interprevisão, e também é referida como um armazenador de quadro. Mais especifi- camente, a memória de quadro 122 armazena os blocos reconstruí- dos, filtrados pelo filtro de circuito 120. Filtro de Circuito
[00199] O filtro de circuito 120 aplica um filtro de circuito a blocos reconstruídos pelo somador 116, e envia os blocos reconstruídos fil- trados para a memória de quadro 122. Um filtro de circuito é um filtro utilizado em um circuito de codificação (filtro em circuito) e inclui, por exemplo, um filtro de desbloqueio (DF ou DBF), um desvio adaptativo de amostra (SAO), e um filtro de circuito adaptativo (ALF).
[00200] Em um ALF, um filtro de erro de quadrado médio, para re- moção de artefatos de compressão, é aplicado. Por exemplo, um filtro selecionado dentre uma pluralidade de filtros, com base na direção e atividade dos gradientes locais, é aplicado para cada um dos sub- blocos de 2 x 2 no bloco atual.
[00201] Mais especificamente, primeiro, cada sub-bloco (por exem- plo, cada sub-bloco de 2 x 2) é categorizado em uma dentre uma plu- ralidade de classes (por exemplo, quinze ou vinte e cinco classes). A classificação do sub-bloco é baseada na direcionalidade e atividade do gradiente. Por exemplo, o índice de classificação C (por exemplo, C = 5D + A) é derivado com base na direcionalidade do gradiente D (por exemplo, de 0 a 2 ou de 0 a 4) e atividade de gradiente A (por exem- plo, de 0 a 4). Então, com base no índice de classificação C, cada sub- bloco é categorizado em uma dentre uma pluralidade de classes.
[00202] Por exemplo, a direcionalidade de gradiente D é calculada pela comparação dos gradientes de uma pluralidade de direções (por exemplo, as direções horizontal, vertical e duas direções diagonais). Ademais, por exemplo, a atividade de gradiente A é calculada pela adição de gradientes de uma pluralidade de direções e quantização do resultado da adição.
[00203] O filtro a ser utilizado para cada sub-bloco é determinado dentre a pluralidade de filtros com base no resultado de tal categoriza- ção.
[00204] O formato de filtro a ser utilizado em um ALF é, por exem- plo, um formato de filtro simétrico circular. As figuras de 6A a 6C ilus- tram exemplos de formatos de filtro utilizados em ALFs. A figura 6A ilustra um filtro em formato de diamante de 5 x 5, a figura 6B ilustra um filtro em formato de diamante de 7 x 7 e a figura 6C ilustra um filtro em formato de diamante de 9 x 9. A informação indicando o formato de filtro é normalmente sinalizada no nível de imagem. Deve-se notar que a sinalização de tal informação indicando o formato de filtro não preci- sa, necessariamente, ser realizada no nível de imagem, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de tile, nível de CTU ou nível de CU).
[00205] O LIGAR ou DESLIGAR do ALF é determinado, por exem- plo, no nível de imagem ou nível de CU. Por exemplo, a decisão de se aplica o ALF, ou não, à luminescência pode ser tomada no nível de CU, e a decisão de se aplica o ALF, ou não, à crominância pode ser tomada no nível de imagem. A informação indicando o LIGAR ou DESLIGAR do ALF é normalmente sinalizada no nível de imagem ou nível de CU. Deve-se notar que a sinalização da informação indicando o LIGAR ou DESLIGAR do ALF não precisa, necessariamente, ser realizada no nível de imagem ou nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de tile, ou nível de CTU).
[00206] O conjunto de coeficientes para a pluralidade de filtros se- lecionáveis (por exemplo, quinze ou vinte e cinco filtros) é normalmen- te sinalizado no nível de imagem. Deve-se notar que a sinalização do conjunto de coeficientes não precisa, necessariamente, ser realizada no nível de imagem, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de tile, nível de CTU, nível de CU ou nível de sub-bloco). Filtro de Circuito > Filtro de Desbloqueio
[00207] Em um filtro de desbloqueio, o filtro de circuito 120 realiza um processo de filtro em um limite de bloco em uma imagem recons- truída de modo a reduzir a distorção que ocorre no limite de bloco.
[00208] A figura 7 é um diagrama em bloco ilustrando um exemplo de uma configuração específica do filtro de circuito 120 que funciona como um filtro de desbloqueio.
[00209] O filtro de circuito 120 inclui o determinador de limite 1201; o determinador de filtro 1203; o executor de filtragem 1205; o determi- nador de processo 1208; o determinador de característica de filtro 1207; e os comutadores 1202, 1204 e 1206.
[00210] O determinador de limite 1201 determina se um pixel a ser filtrado por desbloqueio (isso é, um pixel atual) está presente em torno de um limite de bloco. O determinador de limite 1201, então, envia o resultado da determinação para o comutador 1202 e o determinador de processamento 1208.
[00211] No caso no qual o determinador de limite 1201 determinou que um pixel atual está presente em torno de um limite de bloco, o comutador 1202 envia uma imagem não filtrada para o comutador
1204. No caso oposto, no qual o determinador de limite 1201 determi- nou que nenhum pixel atual está presente em torno de um limite de bloco, o comutador 1202 envia uma imagem não filtrada para o comu- tador 1206.
[00212] O determinador de filtro 1203 determina se realiza a filtra- gem de desbloqueio do pixel atual, com base no valor de pixel de pelo menos um pixel circundante localizado em torno do pixel atual. O de- terminador de filtro 1203, então, envia o resultado da determinação para o comutador 1204 e o determinador de processamento 1208.
[00213] No caso no qual o determinador de filtro 1203 determinou a realização da filtragem de desbloqueio do pixel atual, o comutador 1204 envia a imagem não filtrada, obtida através do comutador 1202, para o executor de filtragem 1205. No caso oposto, no qual o determi- nador de filtro 1203 determinou a não realização da filtragem de des- bloqueio do pixel atual, o comutador 1204 envia a imagem não filtrada, obtida através do comutador 1202, para o comutador 1206.
[00214] Quando da obtenção da imagem não filtrada através dos comutadores 1202 e 1204, o executor de filtragem 1206 executa, para o pixel atual, a filtragem de desbloqueio com a característica de filtro determinada pelo determinador de característica de filtro 1207. O exe- cutor de filtragem 1205, então, envia o pixel filtrado para o comutador
1206.
[00215] Sob o controle do determinador de processamento 1208, o comutador 1206 envia, seletivamente, um pixel que não foi filtrado por desbloqueio e um pixel que foi filtrado por desbloqueio pelo executor de filtragem 1205.
[00216] O determinador de processamento 1208 controla o comu- tador 1206 com base nos resultados das determinações realizadas pelo determinador de limite 1201 e o determinador de filtro 1203. Em outras palavras, o determinador de processamento 1208 faz com que o comutador 1206 envie o pixel que foi filtrado por desbloqueio quando o determinador de limite 1201 determinar que o pixel atual está pre- sente em torno do limite de bloco e o determinador de filtro 1203 de- terminar a realização da filtragem de desbloqueio do pixel atual. Adici- onalmente, além do caso acima, o determinador de processamento 1208 faz com que o comutador 1206 envie o pixel que não foi filtrado por desbloqueio. Uma imagem filtrada é enviada a partir do comutador 1206 pela repetição do envio de um pixel dessa forma.
[00217] A figura 8 é um diagrama conceitual indicando um exemplo de um filtro de desbloqueio possuindo uma característica de filtragem simétrica com relação a um limite de bloco.
[00218] Em um processo de filtro de desbloqueio, um dos dois fil- tros de desbloqueio, possuindo características diferentes, isso é, um filtro forte e um filtro fraco, é selecionado utilizando-se os valores de pixel e os parâmetros de quantização. No caso do filtro forte, os pixels p0 a p2 e os pixels q0 a q2 estão presentes através de um limite de bloco, como ilustrado na figura 8, os valores de pixel dos pixels res-
pectivos q0 a q2 são alterados em valores de pixel q'0 a q'2 pela reali- zação, por exemplo, das computações de acordo com as expressões abaixo. q'0 = (p1 + 2 x p0 + 2 x q0 + 2 x q1 + q2 + 4)/8 q'1 = (p0 + q0 + q1 + q2 + 2)/4 q'2 = (p0 + q0 + q1 + 3 x q2 + 2 x q3 + 4)/8
[00219] Deve-se notar que, nas expressões acima, p0 a p2 e q0 a q2 são os valores de pixel dos pixels respectivos p0 a p2 e dos pixels q0 a q2. Adicionalmente, q3 é o valor de pixel do pixel vizinho q3 loca- lizado no lado oposto do pixel q2 com relação ao limite de bloco. Adi- cionalmente, no lado direito de cada uma das expressões, os coefici- entes que são multiplicados com os valores de pixel respectivos dos pixels a serem utilizados para a filtragem de desbloqueio são coefici- entes de filtro.
[00220] Adicionalmente, na filtragem de desbloqueio, uma redução pode ser realizada de modo que os valores de pixel calculados não sejam configurados além de um valor limite. No processo de redução, os valores de pixel calculados, de acordo com as expressões acima, são reduzidos para um valor obtido de acordo com "um valor de pixel de computação +/- 2 x um valor limite" utilizando o valor limite determi- nado com base em um parâmetro de quantização. Dessa forma, é possível se evitar a suavização excessiva.
[00221] A figura 9 é um diagrama conceitual para ilustrar um limite de bloco no qual um processo de filtro de desbloqueio é realizado. A figura 10 é um diagrama conceitual indicando exemplos de valores Bs.
[00222] O limite de bloco no qual o processo de filtro de desblo- queio é realizado, por exemplo, é um limite entre as unidades de pre- visão (PU) possuindo blocos de 8 x 8 pixels, como ilustrado na figura 9, ou um limite entre as unidades de transformação (TU). O processo de filtro de desbloqueio pode ser realizado em unidades de quatro filei-
ras ou quatro colunas. Primeiro, os valores de resistência de limite (Bs) são determinados como indicado na figura 10 para o bloco P e o bloco Q ilustrados na figura 9.
[00223] De acordo com os valores Bs na figura 10, se realiza os processos de filtro de desbloqueio dos limites de bloco pertencentes à mesma imagem utilizando-se resistências diferentes será determinado. O processo de filtro de desbloqueio para um sinal de crominância é realizado quando um valor Bs for igual a 2. O processo de filtro de desbloqueio para um sinal de luminescência é realizado quando um valor BS for igual a 1 ou mais e uma condição determinada for satisfei- ta. A condição determinada pode ser predeterminada. Deve-se notar que as condições para se determinar os valores Bs não estão limita- das a essas indicadas na figura 10, e um valor Bs pode ser determina- do com base em outro parâmetro. Processador de Previsão (Intraprevisor, Interprevisor, Controlador de Previsão)
[00224] A figura 11 é um fluxograma ilustrando um exemplo de um processo realizado pelo processador de previsão do codificador 100. Deve-se notar que o processador de previsão inclui todos ou parte dos seguintes elementos constituintes: intraprevisor 124; interprevisor 126 e controlador de previsão 128.
[00225] O processador de previsão gera uma imagem de predição de um bloco atual (Etapa Sb_1). Essa imagem de predição também é referida como um sinal de previsão ou um bloco de previsão. Deve-se notar que o sinal de previsão, por exemplo, é um sinal de intraprevisão ou um sinal de interprevisão. Especificamente, o processador de pre- visão gera a imagem de predição do bloco atual utilizando uma ima- gem reconstruída que já foi obtida através da geração de um bloco de previsão, a geração de um bloco de diferença, a geração de um bloco de coeficiente, a restauração de um bloco de diferença, e a geração de um bloco de imagem decodificada.
[00226] A imagem reconstruída pode ser, por exemplo, uma ima- gem em uma imagem de referência, ou uma imagem de um bloco co- dificado em uma imagem atual que é a imagem incluindo o bloco atual. O bloco codificado na imagem atual é, por exemplo, um bloco vizinho do bloco atual.
[00227] A figura 12 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador
100.
[00228] O processador de previsão gera uma imagem de predição utilizando um primeiro método (Etapa Sc_1a), gera uma imagem de predição utilizando um segundo método (Etapa Sc_1b), e gera uma imagem de predição utilizando um terceiro método (Etapa Sc_1c). O primeiro método, o segundo método e o terceiro método podem ser métodos mutuamente diferentes para gerar uma imagem de previsão. Cada um dos primeiro a terceiro métodos pode ser um método de in- terprevisão, um método de intraprevisão, ou outro método de previsão. A imagem reconstruída descrita acima pode ser utilizada nesses mé- todos de previsão.
[00229] A seguir, o processador de previsão seleciona qualquer um dentre uma pluralidade de métodos de previsão gerados nas Etapas Sc_1a, Sc_1b e Sc_1c (Etapa Sc_2). A seleção da imagem de previ- são, que é a seleção de um método ou de um modo para obtenção de uma imagem de predição final, pode ser realizada pelo cálculo de um custo para cada uma das imagens de previsão geradas e com base no custo. Alternativamente, a seleção da imagem de predição pode ser feita com base em um parâmetro que é utilizado em um processo de codificação. O codificador 100 pode transformar a informação para identificar uma imagem de predição selecionada, um método ou um modo em um sinal codificado (também referido como uma sequência de bits codificados). A informação pode ser, por exemplo, um indicador ou similar. Dessa forma, o decodificador pode gerar uma imagem de predição de acordo com o método ou o modo selecionado com base na informação no codificador 100. Deve-se notar que, no exemplo ilus- trado na figura 12, o processador de previsão seleciona qualquer uma das imagens de previsão depois que as imagens de previsão são ge- radas utilizando-se os métodos respectivos. No entanto, o processador de previsão pode selecionar um método ou um modo com base em um parâmetro para uso no processo de codificação descrito acima, antes da geração de imagens de previsão, e pode gerar uma imagem de predição de acordo com o método ou modo selecionado.
[00230] Por exemplo, o primeiro método e o segundo método po- dem ser intraprevisão e interprevisão, respectivamente, e o processa- dor de previsão pode selecionar uma imagem de predição final para um bloco atual a partir das imagens de previsão geradas de acordo com os métodos de previsão.
[00231] A figura 13 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador
100.
[00232] Primeiro, o processador de previsão gera uma imagem de predição utilizando a intraprevisão (Etapa Sd_1a) e gera uma imagem de predição utilizando a interprevisão (Etapa Sd_1b). Deve-se notar que a imagem de predição gerada pela intraprevisão também é referi- da como uma imagem de intraprevisão, e a imagem de predição gera- da pela interprevisão também é referida como uma imagem de inter- previsão.
[00233] A seguir, o processador de previsão avalia cada uma dentre a imagem de intraprevisão e a imagem de interprevisão (Etapa Sd_2). Um custo pode ser utilizado na avaliação. Em outras palavras, o pro- cessador de previsão calcula o custo C para cada uma dentre a ima-
gem de intraprevisão e a imagem de interprevisão. O custo C pode ser calculado de acordo com uma expressão de um modelo de otimização R-D, por exemplo, C = D +  x R. Nessa expressão, D indica uma dis- torção de codificação de uma imagem de previsão, e é representado como, por exemplo, uma soma de diferenças absolutas entre o valor de pixel de um bloco atual e o valor de pixel de uma imagem de previ- são. Adicionalmente, R indica uma quantidade de codificação prevista de uma imagem de previsão, especificamente, a quantidade de codifi- cação necessária para se codificar a informação de movimento para gerar uma imagem de previsão, etc. Adicionalmente,  indica, por exemplo, um multiplicador de acordo com o método de multiplicador Lagrange.
[00234] O processador de previsão, então, seleciona a imagem de predição para a qual o menor custo C foi calculado dentre a imagem de intraprevisão e a imagem de interprevisão, como a imagem de pre- dição final para o bloco atual (Etapa Sd_3). Em outras palavras, o mé- todo de previsão ou o modo para gerar a imagem de predição para o bloco atual é selecionado. Intraprevisor
[00235] O intraprevisor 124 gera um sinal de previsão (sinal de in- traprevisão) pela realização da intraprevisão (também referida como previsão intraquadro) do bloco atual por referência a um bloco ou blo- cos na imagem atual e armazenado na memória de bloco 118. Mais especificamente, o intraprevisor 124 gera um sinal de intraprevisão pela realização da intraprevisão por referência às amostras (por exemplo, valores de luminescência e/ou crominância) de um bloco ou blocos vizinhos do bloco atual, e, então, envia o sinal de intraprevisão para o controlador de previsão 128.
[00236] Por exemplo, o intraprevisor 124 realiza a intraprevisão pela utilização de um modo dentre uma pluralidade de modos de intraprevi-
são que foram definidos. Os modos de intraprevisão incluem um ou mais modos de previsão não direcional e uma pluralidade de modos de previsão direcional. Os modos definidos podem ser predefinidos.
[00237] Os um ou mais modos de previsão não direcionais incluem, por exemplo, o modo de previsão plana e o modo de previsão DC de- finidos no padrão H.265/codificação de vídeo de alta eficiência (HEVC).
[00238] A pluralidade de modos de previsão direcional inclui, por exemplo, os trinta e três modos de previsão definidos no padrão H.265/HEVC. Deve-se notar que a pluralidade de modos de previsão direcional pode incluir, adicionalmente, trinta e dois modos de previsão direcional em adição aos trinta e três modos de previsão direcional (para um total de sessenta e cinco modos de previsão direcional). A figura 14 é um diagrama conceitual ilustrando sessenta e sete modos de intraprevisão no total que podem ser utilizados na intraprevisão (dois modos de previsão não direcional e sessenta e cinco modos de previsão direcional). As setas sólidas representam as trinta e três dire- ções definidas no padrão H.265/HEVC, e as setas tracejadas repre- sentam as trinta e duas direções adicionais (os dois modos de previ- são não direcional não são ilustrados na figura 14).
[00239] Em vários tipos de exemplos de processamento, um bloco de luminescência pode ser referido na intraprevisão de um bloco de crominância. Em outras palavras, um componente de crominância do bloco atual pode ser previsto com base em um componente de lumi- nescência do bloco atual. Tal intraprevisão também é referida como uma previsão de modelo linear de componente cruzado (CCLM). O modo de intraprevisão para um bloco de crominância, no qual tal bloco de luminescência é referido (também referido como, por exemplo, um modo CCLM) pode ser adicionado como um dos modos de intraprevi- são para os blocos de crominância.
[00240] O intraprevisor 124 pode corrigir os valores de pixel intra- previstos com base nos gradientes de pixel de referência horizon- tal/vertical. A intraprevisão acompanhada por esse tipo de correção também é referida como a combinação de intraprevisão dependente de posição (PDPC). A informação que indica se aplica PDPC (referida como, por exemplo, um indicador PDPC), ou não, é normalmente sina- lizada no nível de CU. Deve-se notar que a sinalização de tal informa- ção não precisa, necessariamente, ser realizada no nível de CU, e po- de ser realizada em outro nível (por exemplo, no nível de sequência, no nível de imagem, no nível de fatia, no nível de tile ou no nível de CTU). Interprevisor
[00241] O interprevisor 126 gera um sinal de previsão (sinal de in- terprevisão) pela realização da interprevisão (também referida como previsão de interquadro) do bloco atual por 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. A interprevisão é reali- zada em unidades de um bloco atual ou de um sub-bloco atual (por exemplo, um bloco de 4 x 4) no bloco atual. Por exemplo, o interprevi- sor 126 realiza a estimativa de movimento em uma imagem de refe- rência para o bloco atual ou o sub-bloco atual, e descobre um bloco de referência ou um sub-bloco de referência que melhor coincide com o bloco atual ou sub-bloco atual. O interprevisor 126, então, obtém a in- formação de movimento (por exemplo, um vetor de movimento) que compensa um movimento ou uma mudança do bloco de referência ou sub-bloco de referência para o bloco atual ou sub-bloco atual. O inter- previsor 126 gera um sinal de interprevisão do bloco ou sub-bloco atu- al pela realização da compensação de movimento (ou previsão de mo- vimento) com base na informação de movimento. O interprevisor 126 envia o sinal de interprevisão gerado para o controlador de previsão
128.
[00242] A informação de movimento utilizada na compensação de movimento pode ser sinalizada como sinais de interprevisão de várias formas. Por exemplo, um vetor de movimento pode ser sinalizado. Como outro exemplo, a diferença entre um vetor de movimento e um previsor de vetor de movimento pode ser sinalizado. Fluxo Básico de Interprevisão
[00243] A figura 15 é um fluxograma ilustrando um fluxo de proces- samento básico ilustrativo de interprevisão.
[00244] Primeiro, o interprevisor 126 gera um sinal de previsão (Etapas Se_1 a Se-3). A seguir, o subtraidor 104 gera uma diferença entre um bloco atual e uma imagem de predição como um residual de previsão (Etapa Se_4).
[00245] No presente documento, na geração da imagem de previ- são, o interprevisor 126 gera a imagem de predição através da deter- minação de um vetor de movimento (MV) do bloco atual (Etapas Se_1 e Se_2) e a compensação de movimento (Etapa Se_3). Adicionalmen- te, na determinação de um MV, o interprevisor 126 determina o MV através da seleção de um candidato a vetor de movimento (candidato a MV) (Etapa Se_1) e derivação de um MV (Etapa Se_2). A seleção do candidato a MV é realizada, por exemplo, pela seleção de pelo me- nos um candidato a MV a partir de uma lista de candidatos a MV. Al- ternativamente, na derivação de um MV, o interprevisor 126 pode se- lecionar, adicionalmente, pelo menos um candidato a MV a partir do pelo menos um candidato a MV, e determinar o pelo menos um candi- dato a MV selecionado como o MV para o bloco atual. Alternativamen- te, o interprevisor 126 pode determinar o MV para o bloco atual pela realização da estimativa em uma região de imagem de referência es- pecificada por cada um dos pelo menos um candidato a MV. Deve-se notar que a estimativa em uma região de imagem de referência pode ser referida como a estimativa de movimento.
[00246] Adicionalmente, apesar de as Etapas Se_1 a Se_3 serem realizadas pelo interprevisor 126 no exemplo descrito acima, um pro- cesso que é, por exemplo, a Etapa Se_1, Etapa Se_2, ou similares, pode ser realizado por outro elemento constituinte incluído no codifica- dor 100. Fluxo de Derivação de Vetor de Movimento
[00247] A figura 16 é um fluxograma ilustrando um exemplo de de- rivação de vetores de movimento.
[00248] O interprevisor 126 deriva um MV de um bloco atual em um modo para codificar a informação de movimento (por exemplo, um MV). Nesse caso, por exemplo, a informação de movimento é codifi- cada como um parâmetro de previsão, e é sinalizada. Em outras pala- vras, a informação de movimento codificada é incluída em um sinal codificado (também referido como uma sequência de bits codificados).
[00249] Alternativamente, o interprevisor 126 deriva um MV em um modo no qual a informação de movimento não é codificada. Nesse ca- so, nenhuma informação de movimento é incluída em um sinal codifi- cado.
[00250] No presente documento, os modos de derivação de MV po- dem incluir um intermodo normal, um modo de mistura, um modo FRUC, etc. que serão descritos posteriormente. Os modos nos quais a informação de movimento é codificada, dentre os modos, incluem o intermodo normal, o modo de mistura, o modo afim (especificamente, um intermodo afim, e um modo de mistura afim), etc. Deve-se notar que a informação de movimento pode incluir não apenas um MV, mas também a informação de seleção de previsor de vetor de movimento que será descrita posteriormente. Os modos nos quais nenhuma in- formação de movimento é codificada incluem o modo FRUC, etc. O interprevisor 126 seleciona um modo para derivar um MV do bloco atual a partir dos modos, e deriva o MV do bloco atual utilizando o mo- do selecionado.
[00251] A figura 17 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento.
[00252] O interprevisor 126 deriva um MV de um bloco atual em um modo no qual uma diferença de MV é codificada. Nesse caso, por exemplo, a diferença de MV é codificada como um parâmetro de pre- visão, e é sinalizada. Em outras palavras, a diferença de MV codifica- da é incluída em um sinal codificado. A diferença de MV é a diferença entre o MV do bloco atual e o previsor de MV.
[00253] Alternativamente, o interprevisor 126 deriva um MV em um modo no qual nenhuma diferença de MV é codificada. Nesse caso, nenhuma diferença de MV codificada é incluída em um sinal codifica- do.
[00254] No presente documento, como descrito acima, os modos de derivação de MV incluem o intermodo normal, o modo de mistura, o modo FRUC, o modo afim, etc. que serão descritos posteriormente. Os modos nos quais uma diferença de MV é codificada, dentre os modos, incluem o intermodo normal, o modo afim (especificamente, o intermo- do afim), etc. Os modos nos quais nenhuma diferença de MV é codifi- cada incluem o modo FRUC, o modo de mistura, o modo afim (especi- ficamente, o modo de mistura afim), etc. O interprevisor 126 seleciona um modo para derivar um MV do bloco atual a partir da pluralidade de modos, e deriva o MV do bloco atual utilizando o modo selecionado. Fluxo de Derivação de Vetor de Movimento
[00255] A figura 18 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento. Os modos de derivação de MV que são modos de interprevisão inclui uma pluralidade de modos e são aproximadamente divididos em modos nos quais uma diferença de MV é codificada e os modos nos quais nenhuma diferença de vetor de movimento é codificada. Os modos nos quais nenhuma diferença de MV é codificada incluem o modo de mistura, o modo FRUC, o modo afim (especificamente, o modo de mistura afim), etc. Esses modos são descritos em maiores detalhes. De forma simples, o modo de mistura é um modo para derivar um MV de um bloco atual pela seleção de um vetor de movimento a partir de um bloco circundante codificado, e o modo FRUC é um modo para derivar um MV de um bloco atual pela realização da estimativa entre as regiões codificadas. O modo afim é um modo para derivar, como um MV de um bloco atual, um vetor de movimento de cada um dentre uma pluralidade de sub-blocos incluí- dos no bloco atual, assumindo a transformação afim.
[00256] Mais especificamente, como ilustrado quando a informação de modo de interprevisão indica 0 (0 em Sf_1), o interprevisor 126 de- riva um vetor de movimento utilizando o modo de mistura (Sf_2). Quando a informação de modo de interprevisão indica 1 (1 em Sf_1), a interprevisão 126 deriva um vetor de movimento utilizando o modo FRUC (Sf_3). Quando a informação de modo de interprevisão indica 2 (2 em Sf_1), o interprevisor 126 deriva um vetor de movimento utili- zando o modo afim (especificamente, o modo de mistura afim) (Sf_4). Quando a informação do modo de interprevisão indica 3 (3 em Sf_1), o interprevisor 126 deriva um vetor de movimento utilizando um modo no qual uma diferença de MV é codificada (por exemplo, um intermodo normal (Sf_5). Derivação de MV > Intermodo Normal
[00257] O intermodo normal é um modo de interprevisão para deri- var um MV de um bloco atual com base em um bloco similar à imagem do bloco atual a partir de uma região de imagem de referência especi- ficada por um candidato a MV. Nesse intermodo normal, uma diferen- ça de MV é codificada.
[00258] A figura 19 é um fluxograma ilustrando um exemplo de in-
terprevisão no intermodo normal.
[00259] Primeiro, o interprevisor 126 obtém uma pluralidade de candidatos a MV para um bloco atual com base na informação, tal co- mo MVs de uma pluralidade de blocos codificados cercando, de forma temporal ou espacial, o bloco atual (Etapa Sg_1). Em outras palavras, o interprevisor 126 gera uma lista de candidatos a MV.
[00260] A seguir, a interprevisão 126 extrai N (um inteiro de 2 ou mais) candidatos a MV a partir da pluralidade de candidatos a MV ob- tidos na Etapa Sg_1, como os candidatos a previsor de vetor de mo- vimento (também referidos como candidatos de previsor de MV) de acordo com uma ordem de prioridade determinada (Etapa Sg_2). De- ve-se notar que a ordem de prioridade pode ser determinada anteci- padamente para cada um dos N candidatos a MV.
[00261] A seguir, o interprevisor 126 seleciona um candidato a pre- visor de vetor de movimento a partir dos N candidatos a previsor de vetor de movimento, como o previsor de vetor de movimento (também referido como um previsor de MV) do bloco atual (Etapa Sg_3). Nesse momento, o interprevisor 126 codifica, em uma sequência, a informa- ção de seleção de previsor de vetor de movimento para identificar o previsor de vetor de movimento selecionado. Deve-se notar que a se- quência é um sinal codificado ou uma sequência de bits codificados como descrito acima.
[00262] A seguir, o interprevisor 126 deriva um MV de um bloco atual por referência a uma imagem de referência codificada (Etapa Sg_4). Nesse momento, o interprevisor 126 codifica adicionalmente, na sequência, o valor de diferença entre o MV derivado e o previsor de vetor de movimento como uma diferença de MV. Deve-se notar que a imagem de referência codificada é uma imagem que inclui uma plurali- dade de blocos que foram reconstruídos depois de terem sido codifi- cados.
[00263] Por fim, o interprevisor 126 gera uma imagem de predição para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência codifi- cada (Etapa Sg_5). Deve-se notar que a imagem de predição é um sinal de interprevisão como descrito acima.
[00264] Adicionalmente, a informação que indica o modo de inter- previsão (intermodo normal no exemplo acima) utilizada para gerar a imagem de previsão, por exemplo, é codificada como um parâmetro de previsão.
[00265] Deve-se notar que a lista de candidatos a MV também pode ser utilizada como uma lista para uso em outro modo. Adicionalmente, os processos relacionados à lista de candidatos a MV podem ser apli- cados a processos relacionados à lista para uso no outro modo. Os processos relacionados à lista de candidatos a MV incluem, por exem- plo, a extração ou seleção de um candidato a MV a partir da lista de candidatos a MV, reordenação dos candidatos a MV, ou eliminação de um candidato a MV. Derivação de MV > Modo de Mistura
[00266] O modo de mistura é um modo de interprevisão para sele- cionar um candidato a MV a partir de uma lista de candidatos a MV como um MV de um bloco atual, derivando, assim, o MV.
[00267] A figura 20 é um fluxograma ilustrando um exemplo de in- terprevisão no modo de mistura.
[00268] Primeiro, o interprevisor 126 obtém uma pluralidade de candidatos a MV para um bloco atual com base na informação, tal co- mo MVs, de uma pluralidade de blocos codificados que cercam, de forma temporal ou espacial, o bloco atual (Etapa Sh_1). Em outras pa- lavras, o interprevisor 126 gera uma lista de candidatos a MV.
[00269] A seguir, o interprevisor 126 seleciona um candidato a MV a partir da pluralidade de candidatos a MV obtida na Etapa Sh_1, deri-
vando, assim, um MV do bloco atual (Etapa Sh_2). Nesse momento, o interprevisor 126 codifica, em uma sequência, a informação de seleção de MV para identificar o candidato a MV selecionado.
[00270] Por fim, o interprevisor 126 gera uma imagem de predição para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência codifi- cada (Etapa Sh_3).
[00271] Adicionalmente, a informação que indica o modo de inter- previsão (modo de mistura no exemplo acima) utilizado para gerar a imagem de predição e incluída no sinal codificado é, por exemplo, co- dificada como um parâmetro de previsão.
[00272] A figura 21 é um diagrama conceitual, para ilustrar um exemplo de um processo de derivação de vetor de movimento de uma imagem atual no modo de mistura.
[00273] Primeiro, uma lista de candidatos a MV, na qual os candida- tos a previsor de MV são registrados, é gerada. Exemplos de candida- tos a previsor de MV incluem previsores de MV espacialmente vizinhos que são MVs dentre uma pluralidade de blocos codificados localizados cercando, de forma espacial, um bloco atual; previsores de MV tempo- ralmente vizinhos que são MVs de blocos circundantes nos quais a posição de um bloco atual em uma imagem de referência codificada é projetada; previsores de MV combinados, que são MVs gerados pela combinação do valor de MV de um previsor de MV espacialmente vizi- nho, e o MV de um previsor de MV temporalmente vizinho; e um previ- sor de MV zero que é um MV possuindo um valor igual a zero.
[00274] A seguir, um previsor de MV é selecionado a partir de uma pluralidade de previsores de MV registrados em uma lista de previso- res de MV, e o previsor de MV selecionado é determinado como o MV de um bloco atual.
[00275] Adicionalmente, o codificador de comprimento variável des-
creve e codifica, em uma sequência, merge_idx que é um sinal indi- cando qual previsor de MV foi selecionado.
[00276] Deve-se notar que os previsores de MV registrados na lista de previsores de MV descrita na figura 21 são exemplos. O número de previsores de MV pode ser diferente do número de previsores de MV no diagrama, a lista de previsores de MV pode ser configurada de tal forma que alguns dos tipos de previsores de MV no diagrama possam não ser incluídos, ou que um ou mais previsores de MV, além dos ti- pos de previsores de MV no diagrama, sejam incluídos.
[00277] Um MV final pode ser determinado pela realização de um processo de refinamento de vetor de movimento de decodificador (DMVR) a ser descrito posteriormente utilizando o MV do bloco atual derivado no modo de mistura.
[00278] Deve-se notar que os candidatos a previsor de MV são candidatos a MV descritos acima, e a lista de previsor de MV é a lista de candidatos a MV descrita acima. Deve-se notar que a lista de can- didatos a MV pode ser referida como uma lista de candidatos. Adicio- nalmente, merge_idx é a informação de seleção de MV. Derivação MV > Modo FRUC
[00279] A informação de movimento pode ser derivada no lado do decodificador sem ser sinalizada a partir do lado do codificador. Deve- se notar que, como descrito acima, o modo de mistura definido no pa- drão H.265/HEVC pode ser utilizado. Adicionalmente, por exemplo, a informação de movimento pode ser derivada pela realização da esti- mativa de movimento no lado do decodificador. Em uma modalidade, no lado do decodificador, a estimativa de movimento é realizada sem utilizar qualquer valor de pixel em um bloco atual.
[00280] No presente documento, um modo para realizar a estimati- va de movimento no lado do decodificador é descrito. O modo para realizar a estimativa de movimento no lado do decodificador pode ser referido como um modo de derivação de vetor de movimento de pa- drão combinado (PMMVD), ou um modo de conversão ascendente de taxa de quadro (FRUC).
[00281] Um exemplo de um processo FRUC, na forma de um fluxo- grama, é ilustrado na figura 22. Primeiro, uma lista de uma pluralidade de candidatos, cada um possuindo um previsor de vetor de movimento (MV) (isso é, uma lista de candidatos a MV que também pode ser utili- zada como uma lista de mistura) é gerada por referência a um vetor de movimento em um bloco codificado, que é espacialmente ou tempo- ralmente vizinho de um bloco atual (Etapa Si_1). A seguir, um melhor candidato a MV é selecionado a partir da pluralidade de candidatos a MV registrados na lista de candidatos a MV (Etapa Si_2). Por exemplo, os valores de avaliação dos candidatos a MV respectivos, incluídos na lista de candidatos a MV, são calculados e um candidato a MV é sele- cionado com base nos valores de avaliação. Com base nos candidatos a vetor de movimento selecionados, um vetor de movimento para o bloco atual é, então, derivado (Etapa Si_4). Mais especificamente, por exemplo, o candidato a vetor de movimento selecionado (melhor can- didato a MV) é derivado diretamente como o vetor de movimento para o bloco atual. Adicionalmente, por exemplo, o vetor de movimento para o bloco atual pode ser derivado utilizando-se a combinação de padrão em uma região circundante de uma posição em uma imagem de refe- rência, onde a posição na imagem de referência corresponde ao can- didato de vetor de movimento selecionado. Em outras palavras, a es- timativa, utilizando a combinação de padrão e os valores de avaliação, pode ser realizada na região circundante do melhor candidato a MV, e quando existe um MV que resulta em um melhor valor de avaliação, o melhor candidato a MV pode ser atualizado para o MV que resulta no melhor valor de avaliação, e o MV atualizado pode ser determinado como o MV final para o bloco atual. Uma configuração na qual nenhum processo desses para atualização do melhor candidato a MV para o MV, que possui um melhor valor de avaliação é realizado, também é possível.
[00282] Por fim, o interprevisor 126 gera uma imagem de predição para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência codifi- cada (Etapa Si_5).
[00283] Um processo similar pode ser realizado em unidades de um sub-bloco.
[00284] Os valores de avaliação podem ser calculados de acordo com vários tipos de métodos. Por exemplo, uma comparação é feita entre uma imagem reconstruída em uma região em uma imagem de referência que corresponde a um vetor de movimento e uma imagem reconstruída em uma região determinada (a região pode ser, por exemplo, uma região em outra imagem de referência ou uma região em um bloco vizinho de uma imagem atual, como indicado abaixo). A região determinada pode ser predeterminada.
[00285] A diferença entre os valores de pixel de duas imagens re- construídas pode ser utilizada para um valor de avaliação dos vetores de movimento. Deve-se notar que um valor de avaliação pode ser cal- culado utilizando-se a informação além do valor de diferença.
[00286] A seguir, um exemplo da combinação de padrão é descrito em detalhes. Primeiro, um candidato a MV, incluído em uma lista de candidatos a MV (por exemplo, uma lista de mistura), é selecionado como um ponto de partida da estimativa pela combinação de padrão. Por exemplo, como a combinação de padrão, uma primeira combina- ção de padrão e uma segunda combinação de padrão podem ser utili- zadas. A primeira combinação de padrão e a segunda combinação de padrão também são referidas como a combinação bilateral e a combi- nação de gabarito, respectivamente.
Derivação de MV > FRUC > Combinação Bilateral
[00287] Na primeira combinação de padrão, a combinação de pa- drão é realizada entre dois blocos ao longo de uma trajetória de movi- mento de um bloco atual que são dois blocos em duas imagens de re- ferência diferentes. De acordo, na primeira combinação de padrão, uma região em outra imagem de referência, ao longo da trajetória de movimento do bloco atual, é utilizada como uma região determinada para calcular o valor de avaliação do candidato descrito acima. A regi- ão determinada pode ser predeterminada.
[00288] A figura 23 é um diagrama conceitual para ilustrar um exemplo da primeira combinação de padrão (combinação bilateral) en- tre os dois blocos nas duas imagens de referência ao longo da trajetó- ria de movimento. Como ilustrado na figura 23, na primeira combina- ção de padrão, dois vetores de movimento (MV0, MV1) são derivados pela estimativa de um par que melhor combina, dentre os pares nos dois blocos, nas duas imagens de referência diferentes (Ref0, Ref1), que são os dois blocos ao longo da trajetória de movimento do bloco atual (Cur block). Mais especificamente, uma diferença entre a ima- gem reconstruída em um local especificado na primeira imagem de referência codificada (Ref0), especificada por um candidato a MV, e a imagem reconstruída em um local especificado na segunda imagem de referência codificada (Ref1), especificada por um MV simétrico ob- tido pelo escalonamento do candidato a MV em um intervalo de tempo de exibição, é derivada para o bloco atual, e um valor de avaliação é calculado utilizando-se o valor da diferença obtida. É possível se sele- cionar, como o MV final, o candidato a MV que resulte no melhor valor de avaliação dentre a pluralidade de candidatos a MV, e que tem chances de produzir bons resultados.
[00289] Considerando-se uma trajetória de movimento contínua, os vetores de movimento (MV0, MV1), que especificam 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á localizada de forma temporal entre duas imagens de referência e as distâncias temporais da imagem atual para as respectivas duas imagens de referência são iguais uma à outra, os vetores de movimento bidirecionais simétricos e espelhados são derivados na primeira combinação de padrão. Derivação de MV > FRUC > Combinação de Gabarito
[00290] Na segunda combinação de padrão (combinação de gabari- to), a combinação de padrão é realizada entre um bloco em uma ima- gem de referência e um gabarito na imagem atual (o gabarito é um bloco vizinho do bloco atual na imagem atual (o bloco vizinho é, por exemplo, um bloco vizinho superior e/ou esquerdo)). De acordo, na segunda combinação de padrão, o bloco vizinho do bloco atual na imagem atual é utilizado como a região determinada para se calcular o valor de avaliação do candidato descrito acima.
[00291] A figura 24 é um diagrama conceitual para ilustrar um exemplo de combinação de padrão (combinação de gabarito) entre um gabarito e uma imagem atual e um bloco em uma imagem de referên- cia. Como ilustrado na figura 24, na segunda combinação de padrão, o vetor de movimento do bloco atual (Cur block) é derivado por estimati- va, na imagem de referência (Ref0), do bloco que melhor encaixa no bloco vizinho do bloco atual na imagem atual (Cur Pic). Mais especifi- camente, é possível que a diferença entre uma imagem reconstruída em uma região codificada, que é vizinha pelo lado esquerdo e por ci- ma, ou pelo lado esquerdo ou por cima, e uma imagem reconstruída, que está em uma região correspondente na imagem de referência co- dificada (Ref0) e especificada por um candidato a MV, seja derivada, um valor de avaliação seja calculado utilizando-se o valor da diferença obtida, e o candidato a MV que resulte no melhor valor de avaliação dentre uma pluralidade de candidatos a MV seja selecionado como o melhor candidato a MV.
[00292] Tal informação que indica se aplica o modo FRUC (referido, por exemplo, como um indicador FRUC) pode ser sinalizado no nível de CU. Adicionalmente, quando o modo FRUC é aplicado (por exem- plo, quando um indicador FRUC é verdadeiro), a informação que indi- ca um método de combinação de padrão aplicável (a primeira combi- nação de padrão ou a segunda combinação de padrão) pode ser sina- lizada no nível de CU. Deve-se notar que a sinalização de tal informa- ção não precisa, necessariamente, ser realizada no nível de CU, e po- de ser realizada em outro nível (por exemplo, no nível de sequência, no nível de imagem, no nível de fatia, no nível de tile, no nível de CTU ou no nível de sub-bloco). Derivação de MV > Modo Afim
[00293] A seguir, o modo afim para derivar um vetor de movimento em unidades de um sub-bloco, com base em vetores de movimento dentre uma pluralidade de blocos vizinhos, é descrito. Esse modo também é referido como um modo de previsão de compensação de movimento afim.
[00294] A figura 25A é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco com base nos vetores de movimento de uma pluralidade de blocos vi- zinhos. Na figura 25A, o bloco atual inclui dezesseis sub-blocos de 4 x
4. No presente documento, o vetor de movimento V0 em um ponto de controle do canto superior esquerdo no bloco atual é derivado com ba- se em um vetor de movimento de um bloco vizinho, e, da mesma for- ma, o vetor de movimento V1 em um ponto de controle de canto supe- rior direito no bloco atual é derivado com base em um vetor de movi- mento de um sub-bloco vizinho. Dois vetores de movimento v0 e v1 po- dem ser projetados de acordo com uma expressão (1A) indicada abai-
xo, e os vetores de movimento (vx, vy) para os sub-blocos respectivos no bloco atual podem ser derivados. Matemática 1
[00295] No presente documento, x e y indicam a posição horizontal e a posição vertical do sub-bloco, respectivamente, e w indica um coe- ficiente de ponderação determinada. O coeficiente de ponderação de- terminada pode ser predeterminado.
[00296] Tal informação indicando o modo afim (por exemplo, referi- do como um indicador afim) pode ser sinalizada no nível de CU. Deve- se notar que a sinalização da informação que indica o modo afim não precisa, necessariamente, ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, no nível de imagem, no nível de fatia, no nível de tile, no nível de CTU ou no nível de sub-bloco).
[00297] Adicionalmente, o modo afim pode incluir vários modos pa- ra métodos diferentes para a derivação de vetores de movimento nos pontos de controle do canto superior esquerdo e no canto superior di- reito. Por exemplo, o modo afim inclui dois modos que são o intermodo afim (também referido como um intermodo normal afim) e o modo de mistura afim. Derivação de MV > Modo Afim
[00298] A figura 25B é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco no modo afim no qual três pontos de controle são utilizados. Na figura 25B, o bloco atual inclui dezesseis blocos de 4 x 4. No presente docu- mento, o vetor de movimento V0 no ponto de controle do canto superi- or esquerdo para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho, e, da mesma forma, o vetor de movi-
mento V1 no ponto de controle do canto superior direito para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho, e o vetor de movimento V2 no ponto de controle de canto infe- rior esquerdo para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho. Três vetores de movimento v0, v1 e v2 podem ser projetados de acordo com uma expressão (1B) indicada abaixo, e os vetores de movimento (vx, vy) para os sub-blocos respec- tivos no bloco atual podem ser derivados. Matemática 2
[00299] No presente documento, x e y indicam a posição horizontal e a posição vertical do centro do sub-bloco, respectivamente, w indica a largura do bloco atual, e h indica a altura do bloco atual.
[00300] Os modos afim, nos quais números diferentes de pontos de controle (por exemplo, dois e três pontos de controle) são utilizados, podem ser comutados e sinalizados no nível de CU. Deve-se notar que a informação, que indica o número de pontos de controle no modo afim utilizado no nível de CU, pode ser sinalizada em outro nível (por exemplo, no nível de sequência, no nível de imagem, no nível de fatia, no nível de tile, no nível de CTU ou no nível de sub-bloco).
[00301] Adicionalmente, tal modo afim, no qual três pontos de con- trole são utilizados, pode incluir diferentes métodos de derivação de vetores de movimento nos pontos de controle de canto superior es- querdo, superior direito e inferior esquerdo. Por exemplo, os modos afim incluem dois modos que são o intermodo afim (também referido como o intermodo normal afim) e o modo de mistura afim. Derivação de MV > Modo de Mistura Afim
[00302] As figuras 26A, 26B e 26C são diagramas conceituais para ilustrar o modo de mistura afim.
[00303] Como ilustrado na figura 26A, no modo de mistura afim, por exemplo, os previsores de vetor de movimento nos pontos de controle respectivos de um bloco atual são calculados com base em uma plura- lidade de vetores de movimento que corresponde aos blocos codifica- dos de acordo com o modo afim dentre o bloco A (esquerdo), o bloco B (superior), o bloco C (superior direito), o bloco D (inferior esquerdo) e o bloco E (superior esquerdo) codificados, que são vizinhos do bloco atual. Mais especificamente, o bloco A (esquerdo), o bloco B (superi- or), o bloco C (superior direito), o bloco D (inferior esquerdo) e o bloco E (superior esquerdo) codificados são verificados na ordem listada, e o primeiro bloco efetivo codificado de acordo com o modo afim é identifi- cado. Os previsores de vetor de movimento nos pontos de controle do bloco atual são calculados com base em uma pluralidade de vetores de movimento correspondentes ao bloco identificado.
[00304] Por exemplo, como ilustrado na figura 26B, quando o bloco A, que é vizinho pelo lado esquerdo do bloco atual, tiver sido codifica- do de acordo com um modo afim, no qual dois pontos de controle são utilizados, os vetores de movimento v3 e v4 projetados na posição de canto superior esquerdo e posição de canto superior direito do bloco codificado, incluindo o bloco A, são derivados. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do blo- co atual e o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual são, então, calculados a partir dos vetores de movimento derivados v3 e v4.
[00305] Por exemplo, como ilustrado na figura 26C, quando o bloco A, que é vizinho pelo lado esquerdo do bloco atual, foi codificado de acordo com um modo afim no qual três pontos de controle são utiliza- dos, os vetores de movimento v3, v4 e v5, projetados na posição de canto superior esquerdo, na posição de canto superior direito e na po- sição de canto inferior esquerdo do bloco codificado, incluindo o bloco
A, são derivados. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o previsor de vetor de movimento v1 no ponto de controle de canto superior direito do blo- co atual, e o previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual são, então, calculados a par- tir de vetores de movimento derivados v3, v4 e v5.
[00306] É notado que esse método de derivação de previsores de vetor de movimento pode ser utilizado para derivar os previsores de vetor de movimento dos pontos de controle respectivos do bloco atual na Etapa Sj_1 na figura 29 descrita posteriormente.
[00307] A figura 27 é um fluxograma ilustrando um exemplo do mo- do de mistura afim.
[00308] No modo de mistura afim, como ilustrado, o interprevisor 126 deriva os previsores de MV dos pontos de controle respectivos de um bloco atual (Etapa Sk_1). Os pontos de controle são um ponto de canto superior esquerdo do bloco atual e um ponto de canto superior direito do bloco atual como ilustrado na figura 25A, ou um ponto de canto superior esquerdo do bloco atual, um ponto de canto superior direito do bloco atual, e um ponto de canto inferior esquerdo do bloco atual, como ilustrado na figura 25B.
[00309] Em outras palavras, como ilustrado na figura 26A, o inter- previsor 126 verifica o bloco A (esquerdo), bloco B (superior), bloco C (superior direito), bloco D (inferior esquerdo) e bloco E (superior es- querdo) codificados na ordem listada, e identifica o primeiro bloco efe- tivo codificado de acordo com o modo afim.
[00310] Quando o bloco A é identificado e o bloco A possui dois pontos de controle, como ilustrado na figura 26B, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e o vetor de movimento v1 no ponto de contro- le do canto superior direito do bloco atual para os vetores de movimen-
to v3 e v4 no canto superior esquerdo e no canto superior direito do bloco codificado, incluindo o bloco A. Por exemplo, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e o vetor de movimento v1 no ponto de contro- le do canto superior direito do bloco atual pela projeção dos vetores de movimento v3 e v4 no canto superior esquerdo e no canto superior di- reito do bloco codificado no bloco atual.
[00311] Alternativamente, quando o bloco A é identificado e o bloco A possui três pontos de controle, como ilustrado na figura 26C, o inter- previsor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual, e o vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual a partir dos vetores de movimento v3, v4 e v5 no canto superior esquerdo, no canto superior direito e no canto inferior esquerdo do bloco codificado incluindo o bloco A. Por exemplo, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle de canto superior esquerdo do bloco atual, o vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual, e o vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual pela proje- ção de vetores de movimento v3, v4 e v5 no canto superior esquerdo, no canto superior direito, e no canto inferior esquerdo do bloco codifi- cado no bloco atual.
[00312] A seguir, o interprevisor 126 realiza a compensação de mo- vimento de cada um dentre uma pluralidade de sub-blocos incluídos no bloco atual. Em outras palavras, o interprevisor 126 calcula, para cada um dentre a pluralidade de sub-blocos, um vetor de movimento do sub-bloco como um MV afim, pela utilização de (i) dois previsores de vetor de movimento v0 e v1 e a expressão (1A) descrita acima ou (ii) três previsores de vetor de movimento v0, v1 e v2 e a expressão (1B)
descrita acima (Etapa Sk_2). O interprevisor 126, então, realiza a compensação de movimento dos sub-blocos utilizando esses MVs afim e as imagens de referência codificadas (Etapa Sk_3). Como re- sultado disso, a compensação de movimento do bloco atual é realiza- da para gerar uma imagem de predição do bloco atual. Derivação de MV > Intermodo Afim
[00313] A figura 28A é um diagrama conceitual para ilustrar um in- termodo afim no qual dois pontos de controle são utilizados.
[00314] No intermodo afim, como ilustrado na figura 28A, um vetor de movimento selecionado a partir de vetores de movimento do bloco A, bloco B, e bloco C, codificados, que são vizinhos do bloco atual é utilizado como o previsor de vetor de movimento v0 no ponto de contro- le do canto superior esquerdo do bloco atual. Da mesma forma, um vetor de movimento selecionado a partir dos vetores de movimento do bloco D e bloco E codificados, que são vizinhos do bloco atual, é utili- zado como o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual.
[00315] A figura 28B é um diagrama conceitual para ilustrar um in- termodo afim no qual três pontos de controle são utilizados.
[00316] No intermodo afim, como ilustrado na figura 28B, um vetor de movimento selecionado a partir dos vetores de movimento do bloco A, bloco B e bloco C codificados, que são vizinhos do bloco atual, é utilizado como o previsor de vetor de movimento v0 no ponto de contro- le do canto superior esquerdo do bloco atual. Da mesma forma, um vetor de movimento selecionado a partir dos vetores de movimento do bloco D e bloco E codificados, que são vizinhos do bloco atual, é utili- zado como o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual. Adicionalmente, um vetor de movimento selecionado a partir dos vetores de movimento dos blocos F e G codificados, que são vizinhos do bloco atual, é utilizado como o previsor de vetor de movimento v2 no ponto de controle do canto infe- rior esquerdo do bloco atual.
[00317] A figura 29 é um fluxograma ilustrando um exemplo de um intermodo afim.
[00318] No intermodo afim, como ilustrado, primeiro, o interprevisor 126 deriva os previsores de MV (v0, v1) ou (v0, v1, v2) dos respectivos dois ou três pontos de controle de um bloco atual (Etapa Sj_1). Os pontos de controle são um ponto de canto superior esquerdo do bloco atual e um ponto de canto superior direito do bloco atual, como ilustra- do na figura 25A, ou um ponto de canto superior esquerdo do bloco atual, um ponto de canto superior direito do bloco atual e um ponto de canto inferior esquerdo do bloco atual, como ilustrado na figura 25B.
[00319] Em outras palavras, o interprevisor 126 deriva os previsores de vetor de movimento (v0, v1) ou (v0, v1, v2) dos respectivos dois ou três pontos de controle do bloco atual pela seleção de vetores de mo- vimento de qualquer um dos blocos, dentre os blocos codificados nas proximidades dos pontos de controle respectivos do bloco atual ilus- trado na figura 28A ou 28B. Nesse momento, o interprevisor 126 codi- fica, em uma sequência, a informação de seleção de previsor de vetor de movimento para identificar os dois vetores de movimento selecio- nados.
[00320] Por exemplo, o interprevisor 126 pode determinar, utilizan- do uma avaliação de custo ou similar, o bloco a partir do qual um vetor de movimento, como um previsor de vetor de movimento em um ponto de controle, é selecionado dentre os blocos codificados, vizinhos do bloco atual, e pode descrever, em uma sequência de bits, um indica- dor que indica qual previsor de vetor de movimento foi selecionado.
[00321] A seguir, o interprevisor 126 realiza a estimativa de movi- mento (Etapa Sj_3 e Sj_4), enquanto atualiza um previsor de vetor de movimento selecionado ou derivado na Etapa Sj_1 (Etapa Sj_2). Em outras palavras, o interprevisor 126 calcula, como um MV afim, um ve- tor de movimento de cada um dos sub-blocos, que corresponde a um previsor de vetor de movimento atualizado, utilizando a expressão (1A) ou a expressão (1B) descritas acima (Etapa Sj_3). O interprevisor 126, então, realiza a compensação de movimento dos sub-blocos utilizando esses MVs afim, e as imagens de referência codificadas (Etapa Sj_4). Como resultado disso, por exemplo, o interprevisor 126 determina o previsor de vetor de movimento que resulta no menor custo como o vetor de movimento em um ponto de controle em um circuito de esti- mativa de movimento (Etapa Sj_5). Nesse momento, o interprevisor 126 codifica adicionalmente, na sequência, o valor de diferença entre o MV determinado e o previsor de vetor de movimento como uma dife- rença de MV.
[00322] Por fim, o interprevisor 126 gera uma imagem de predição para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV determinado e a imagem de referência co- dificada (Etapa Sj_6). Derivação de MV > Intermodo Afim
[00323] Quando os modos afim, nos quais números diferentes de pontos de controle (por exemplo, dois e três pontos de controle) são utilizados, podem ser comutados e sinalizados no nível de CU, o nú- mero de pontos de controle em um bloco codificado e o número de pontos de controle em um bloco atual podem ser diferentes um do ou- tro. As figuras 30A e 30B são diagramas conceituais para ilustrar os métodos para derivar os previsores de vetor de movimento nos pontos de controle quando o número de pontos de controle em um bloco codi- ficado e o número de pontos de controle em um bloco atual são dife- rentes um do outro.
[00324] Por exemplo, como ilustrado na figura 30A, quando um blo- co atual possui três pontos de controle no canto superior esquerdo, no canto superior direito, e no canto inferior esquerdo, e o bloco A, que é vizinho pelo lado esquerdo do bloco atual, foi codificado de acordo com um modo afim, no qual dois pontos de controle são utilizados, os vetores de movimento v3 e v4, projetados na posição de canto superior esquerdo e na posição de canto superior direito no bloco codificado, incluindo o bloco A, são derivados. O previsor de vetor de movimento v0 no ponto de controle de canto superior esquerdo do bloco atual e o previsor de vetor de movimento v1 no ponto de controle do canto supe- rior direito do bloco atual são, então, calculados a partir de vetores de movimento derivados v3 e v4. Adicionalmente, o previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo é calcu- lado a partir de vetores de movimento derivados v0 e v1.
[00325] Por exemplo, como ilustrado na figura 30B, quando um blo- co atual possui dois pontos de controle no canto superior esquerdo e no canto superior direito, e o bloco A, que é vizinho pelo lado esquerdo do bloco atual, foi codificado de acordo com o modo afim, no qual três pontos de controle são utilizados, os vetores de movimento v3, v4 e v5, projetados na posição do canto superior esquerdo, na posição de can- to superior direito e na posição de canto inferior esquerdo no bloco co- dificado, incluindo o bloco A, são derivados. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do blo- co atual e o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual são, então, calculados a partir dos vetores de movimento derivado v3, v4 e v5.
[00326] Deve-se notar que esse método de derivação de previsores de vetor de movimento pode ser utilizado para derivar os previsores de vetor de movimento dos pontos de controle respectivos do bloco atual na Etapa Sj_1 na figura 29. Derivação de MV > DMVR
[00327] A figura 31A é um fluxograma ilustrando uma relação entre o modo de mistura e o DMVR.
[00328] O interprevisor 126 deriva um vetor de movimento de um bloco atual de acordo com o modo de mistura (Etapa Sl_1). A seguir, o interprevisor 126 determina se realiza a estimativa de um vetor de mo- vimento, isso é, a estimativa de movimento (Etapa Sl_2). No presente documento, quando se determina a não realização da estimativa de movimento (Não na Etapa Sl_2), o interprevisor 126 determina o vetor de movimento derivado na Etapa Sl_1 como o vetor de movimento fi- nal para o bloco atual (Etapa Sl_4). Em outras palavras, nesse caso, o vetor de movimento do bloco atual é determinado de acordo com o modo de mistura.
[00329] Quando da determinação da realização da estimativa de movimento na Etapa Sl_1 (Sim na Etapa Sl_2), o interprevisor 126 de- riva o vetor de movimento final para o bloco atual pela estimativa de uma região circundante da imagem de referência especificada pelo vetor de movimento derivado na Etapa Sl_1 (Etapa Sl_3). Em outras palavras, nesse caso, o vetor de movimento do bloco atual é determi- nado de acordo com DMVR.
[00330] A figura 31B é um diagrama conceitual para ilustrar um exemplo de um processo DMVR para determinar um MV.
[00331] Primeiro, (por exemplo, no modo de mistura), o melhor MVP, que foi configurado para o bloco atual, é determinado como sen- do um candidato a MV. Um pixel de referência é identificado a partir de uma primeira imagem de referência (L0) que é uma imagem codificada na direção L0 de acordo com um candidato a MV (L0). Da mesma for- ma, um pixel de referência é identificado a partir de uma segunda ima- gem de referência (L1) que é uma imagem codificada na direção de L1 de acordo com um candidato a MV (L1). Um gabarito é gerado pelo cálculo de uma média desses pixels de referência.
[00332] A seguir, cada uma das regiões circundantes dos candida-
tos a MV da primeira imagem de referência (L0) e da segunda imagem de referência (L1) é estimada, e o MV que resultar no menor custo é considerado o MV final. Deve-se notar que o valor de custo pode ser calculado, por exemplo, utilizando-se um valor de diferença entre cada um dos valores de pixel no gabarito e um valor correspondente dentre os valores de pixel na região de estimativa, os valores de candidatos a MV, etc.
[00333] Deve-se notar que os processos, configurações e opera- ções descritos no presente documento são tipicamente e basicamente comuns entre o codificador e um decodificador a serem descritos pos- teriormente.
[00334] Processos exatamente iguais aos processos ilustrativos descritos no presente documento nem sempre precisam ser realiza- dos. Qualquer processo que permita a derivação do MV final pela es- timativa nas regiões circundantes dos candidatos a MV pode ser utili- zado. Compensação de Movimento > BIO/OBMC
[00335] A compensação de movimento envolve um modo de gera- ção de uma imagem de previsão, e correção da imagem de previsão. O modo é, por exemplo, BIO e OBMC a serem descritos posteriormen- te.
[00336] A figura 32 é um fluxograma ilustrando um exemplo de ge- ração de uma imagem de previsão.
[00337] O interprevisor 126 gera uma imagem de predição (Etapa Sm_1), e corrige a imagem de previsão, por exemplo, de acordo com qualquer um dos modos descritos acima (Etapa Sm_2).
[00338] A figura 33 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão.
[00339] O interprevisor 126 determina um vetor de movimento de um bloco atual (Etapa Sn_1). A seguir, o interprevisor 126 gera uma imagem de predição (Etapa Sn_2), e determina se realiza um proces- so de correção (Etapa Sn_3) ou não. No presente documento, quando da determinação da realização de um processo de correção (Sim, na Etapa Sn_3), o interprevisor 126 gera a imagem de predição final pela correção da imagem de predição (Etapa Sn_4). Quando da determina- ção da não realização de um processo de correção (Não, na Etapa Sn_3), o interprevisor 126 envia a imagem de predição como a ima- gem de predição final sem corrigir a imagem de predição (Etapa Sn_5).
[00340] Adicionalmente, a compensação de movimento envolve um modo de correção de uma luminescência de uma imagem de predição quando da geração da imagem de previsão. O modo é, por exemplo, LIC a ser descrito posteriormente.
[00341] A figura 34 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão.
[00342] O interprevisor 126 deriva um vetor de movimento de um bloco atual (Etapa So_1). A seguir, o interprevisor 126 determina se realiza um processo de correção de luminescência (Etapa So_2). No presente documento, quando da determinação da realização de um processo de correção de luminescência (Sim, na Etapa So_2), o inter- previsor 126 gera a imagem de predição enquanto realiza um proces- so de correção de luminescência (Etapa So_3). Em outras palavras, a imagem de predição é gerada utilizando-se LIC. Quando da determi- nação da não realização de um processo de correção de luminescên- cia (Não, na Etapa So_2), o interprevisor 126 gera uma imagem de predição pela realização da compensação de movimento normal sem realizar um processo de correção de luminescência (Etapa So_4). Compensação de Movimento > OBMC
[00343] Deve-se notar que um sinal de interprevisão pode ser gera- do utilizando-se a informação de movimento para um bloco vizinho em adição à informação de movimento para o bloco atual obtida a partir da estimativa de movimento. Mais especificamente, o sinal de interprevi- são pode ser gerado em unidades de um sub-bloco, no bloco atual, pela realização de uma adição ponderada de um sinal de previsão, com base na informação de movimento obtida a partir da estimativa de movimento (na imagem de referência) e um sinal de previsão com ba- se na informação de movimento para um bloco vizinho (na imagem atual). Tal interprevisão (compensação de movimento) também é refe- rida como compensação de movimento de bloco sobreposto (OBMC).
[00344] No modo OBMC, a informação indicando um tamanho de sub-bloco para OBMC (referido, por exemplo, como um tamanho de bloco OBMC) pode ser sinalizada no nível de sequência. Ademais, a informação que indica se aplica o modo OBMC (referido, por exemplo, como indicador OBMC) pode ser sinalizada no nível de CU. Deve-se notar que a sinalização de tal informação não precisa, necessariamen- te, ser realizada no nível de sequência e nível de CU, e pode ser reali- zada em outro nível (por exemplo, no nível de imagem, no nível de fa- tia, no nível de tile, no nível de CTU ou no nível de sub-bloco).
[00345] Exemplos do modo OBMC serão descritos em maiores de- talhes. As figuras 35 e 36 são um fluxograma e um diagrama conceitu- al para ilustrar uma visão geral de um processo de correção de ima- gem de predição realizado por um processo OBMC.
[00346] Primeiro, como ilustrado na figura 36, uma imagem de pre- dição (Pred) é obtida através da compensação de movimento normal utilizando um vetor de movimento (MV) designado para o bloco alvo de processamento (atual). Na figura 36, a seta "MV" aponta uma imagem de referência e indica a que bloco atual da imagem atual se refere a fim de obter uma imagem de previsão.
[00347] A seguir, uma imagem de predição (Pred_L) é obtida pela aplicação de um vetor de movimento (MV_L) que já foi derivado para o bloco codificado, vizinho pelo lado esquerdo do bloco atual, para o bloco atual (reutilizando o vetor de movimento para o bloco atual). O vetor de movimento (MV_L) é indicado por uma seta "MV_L" que indi- ca uma imagem de referência a partir de um bloco atual. Uma primeira correção de uma imagem de predição é realizada pela sobreposição de duas imagens de previsão Pred e Pred_L. Isso fornece um efeito de mistura do limite entre blocos vizinhos.
[00348] Da mesma forma, uma imagem de predição (Pred_U) é ob- tida pela aplicação de um vetor de movimento (MV_U) que já foi deri- vado para o bloco codificado, vizinho por cima do bloco atual, para o bloco atual (reutilizando o vetor de movimento para o bloco atual). O vetor de movimento (MV_U) é indicado por uma seta "MV_U" indican- do uma imagem de referência a partir de um bloco atual. Uma segun- da correção de uma imagem de predição é realizada pela sobreposi- ção da imagem de predição Pred_U às imagens de previsão (por exemplo, Pred e Pred_L) onde a primeira correção foi realizada. Isso fornece um efeito de mistura do limite entre blocos vizinhos. A imagem de predição obtida pela segunda correção é uma dentre as quais o li- mite entre os blocos vizinhos foi misturado (suavizado), e, dessa for- ma, é a imagem de predição final do bloco atual.
[00349] Apesar de o exemplo acima ser um método de correção de dois percursos, utilizando os blocos vizinhos esquerdo e superior, de- ve-se notar que o método de correção pode ser o método de correção de três ou mais percursos utilizando também o bloco vizinho direito e/ou o bloco vizinho inferior.
[00350] Deve-se notar que a região na qual tal sobreposição é rea- lizada pode ser apenas parte de uma região perto de um limite de blo- co em vez da região de pixel de todo o bloco.
[00351] Deve-se notar que o processo de correção de imagem de previsão, de acordo com OBMC, para obtenção de uma imagem de predição Pred de uma imagem de referência pela sobreposição da imagem de predição adicional Pred_L e Pred_U, foram descritos aci- ma. No entanto, quando uma imagem de predição é corrigida com ba- se em uma pluralidade de imagens de referência, um processo similar pode ser aplicado a cada uma dentre a pluralidade de imagens de re- ferência. Em tal caso, depois que as imagens de previsão corrigidas são obtidas a partir das imagens de referência respectivas, pela reali- zação da correção de imagem OBMC, com base na pluralidade de imagens de referência, as imagens de previsão corrigidas obtidas são adicionalmente sobrepostas para se obter a imagem de predição final.
[00352] Deve-se notar que, em OBMC, a unidade de um bloco atual pode ser a unidade de um bloco de previsão ou a unidade de um sub- bloco obtido pela divisão adicional do bloco de previsão.
[00353] Um exemplo de um método para se determinar a aplicação, ou não, de um processo OBMC é um método para utilizar um obmc_flag, que é um sinal que indica se aplica, ou não, um processo OBMC. Como um exemplo específico, um codificador determina se o bloco atual pertence a uma região possuindo movimento complicado. O codificador configura o obmc_flag para um valor igual a "1", quando o bloco pertencer a uma região possuindo movimento complicado e aplica um processo OBMC quando da codificação, e configura o obmc_flag para um valor igual a "0" quando o bloco não pertencer a uma região que possui movimento complicado e codifica o bloco sem aplicar um processo OBMC. O decodificador comuta entre a aplicação e não aplicação de um processo OBMC pela decodificação de obmc_flag escrito na sequência (por exemplo, uma sequência com- primida) e decodificação do bloco pela comutação entre a aplicação e não aplicação do processo OBMC, de acordo com o valor de indica- dor.
[00354] O interprevisor 126 gera uma imagem de predição retangu-
lar para um bloco atual retangular no exemplo acima. No entanto, o interprevisor 126 pode gerar uma pluralidade de imagens de previsão, cada uma possuindo um formato diferente de um retângulo para o blo- co atual retangular, e pode combinar a pluralidade de imagens de pre- visão para gerar a imagem de predição retangular final. O formato dife- rente de um retângulo pode ser, por exemplo, um triângulo.
[00355] A figura 37 é um diagrama conceitual para ilustrar a gera- ção de duas imagens de previsão triangulares.
[00356] O interprevisor 126 gera uma imagem de predição triangu- lar pela realização da compensação de movimento de uma primeira partição possuindo um formato triangular em um bloco atual, pela utili- zação de um primeiro MV da primeira partição para gerar uma imagem de predição triangular. Da mesma forma, o interprevisor 126 gera uma imagem de predição triangular pela realização da compensação de movimento de uma segunda partição, possuindo um formato triangu- lar, em um bloco atual, pela utilização de um segundo MV da segunda partição, para gerar uma imagem de predição triangular. O interprevi- sor 126, então, gera uma imagem de previsão, possuindo um mesmo formato retangular que o formato retangular do bloco atual, pela com- binação dessas imagens de previsão.
[00357] Deve-se notar que, apesar de a primeira partição e de a segunda partição serem triângulos no exemplo ilustrado na figura 37, a primeira partição e a segunda partição podem ser trapezoides, ou po- dem ter outros formatos diferentes um do outro. Adicionalmente, ape- sar de o bloco atual incluir duas partições no exemplo ilustrado na figu- ra 37, o bloco atual pode incluir três ou mais partições.
[00358] Adicionalmente, a primeira partição e a segunda partição podem ser sobrepor uma à outra. Em outras palavras, a primeira parti- ção e a segunda partição podem incluir a mesma região de pixel. Nes- se caso, uma imagem de predição para um bloco atual pode ser gera-
da utilizando-se uma imagem de predição na primeira partição e uma imagem de predição na segunda partição.
[00359] Adicionalmente, apesar de um exemplo, no qual uma ima- gem de predição é gerada para cada uma das duas partições utilizan- do a interprevisão, uma imagem de predição pode ser gerada para pe- lo menos uma partição utilizando a intraprevisão. Compensação de Movimento > BIO
[00360] A seguir, um método de derivação de um vetor de movi- mento é descrito. Primeiro, um modo para derivar um vetor de movi- mento com base em um modelo que assume o movimento linear uni- forme será descrito. Esse modo também é referido como um modo de fluxo óptico bidirecional (BIO).
[00361] A figura 38 é um diagrama conceitual para ilustrar um mo- delo que assume o movimento linear uniforme. Na figura 38, (vx, vy) indica um vetor de velocidade e 0 e 1 indicam as distâncias temporais entre uma imagem atual (Cur Pic) e duas imagens de referência (Ref0, Ref1). (MVx0, MVy0) indica os vetores de movimento correspondentes à imagem de referência Ref0, e (MVx1, MVy1) indica os vetores de movimento correspondentes à imagem de referência Ref1.
[00362] No presente documento, considerando-se o movimento li- near uniforme exibido pelos vetores de velocidade (vx, vy), (MVx0, MVy0) e (MVx1, MVy1) são representados como (vx0, vy0) e (-vx1, - vy1), respectivamente, e a equação de fluxo óptico a seguir (2) podem ser usados. Matemática 3 I(k)/t + vxI(k)/x + vyI(k)/y = 0 (2)
[00363] No presente documento, I(k) indica um valor de lumines- cência de movimento compensado da imagem de referência k (k = 0, 1). Essa equação de fluxo óptico ilustra que a soma de (i) do tempo derivado do valor de luminescência, (ii) o produto da velocidade hori-
zontal e do componente horizontal do gradiente espacial de uma ima- gem de referência, e (iii) o produto da velocidade vertical e o compo- nente vertical do gradiente espacial de uma imagem de referência é igual a zero. Um vetor de movimento de cada bloco obtido a partir, por exemplo, de uma lista de mistura pode ser corrigido em unidades de um pixel, com base em uma combinação da equação de fluxo óptico e interpolação Hermite.
[00364] Deve-se notar que um vetor de movimento pode ser deriva- do no lado do decodificador utilizando um método, além de derivar um vetor de movimento com base em um modelo que assume o movimen- to linear uniforme. Por exemplo, um vetor de movimento pode ser deri- vado em unidades de um sub-bloco com base em vetores de movi- mento de blocos vizinhos. Compensação de Movimento > LIC
[00365] A seguir, um exemplo de um modo no qual uma imagem de predição (“prediction”) é gerada pela utilização de um processo de compensação de iluminação local (LIC) será processado.
[00366] A figura 39 é um diagrama conceitual para ilustrar um exemplo de um método de geração de imagem de predição utilizando um processo de correção de luminescência realizado por um processo LIC.
[00367] Primeiro, um MV é derivado a partir de uma imagem de re- ferência codificada, e uma imagem de referência correspondente ao bloco atual é obtida.
[00368] A seguir, a informação que indica como o valor de lumines- cência mudou entre a imagem de referência e a imagem atual é extra- ída para o bloco atual. Essa extração é realizada com base nos valo- res de pixel de luminescência para a região de referência vizinha pelo lado esquerdo (região de referência circundante) e a região de refe- rência vizinha pelo lado de cima, codificada (região de referência cir-
cundante), e o valor de pixel de luminescência na posição correspon- dente na imagem de referência especificada pelo MV derivado. Um parâmetro de correção de luminescência é calculado pela utilização da informação que indica como o valor de luminescência mudou.
[00369] A imagem de predição para o bloco atual é gerada pela rea- lização de um processo de correção de luminescência no qual o parâ- metro de correção de luminescência é aplicado à imagem de referên- cia na imagem de referência especificada pelo MV.
[00370] Deve-se notar que o formato da região de referência cir- cundante ilustrado na figura 39 é apenas um exemplo; a região de re- ferência circundante pode ter um formato diferente.
[00371] Ademais, apesar de o processo, no qual uma imagem de predição é gerada a partir de uma imagem de referência singular, ter sido descrita no presente documento, casos nos quais uma imagem de predição é gerada a partir de uma pluralidade de imagens de referên- cia podem ser descritos da mesma forma. A imagem de predição pode ser gerada depois da realização de um processo de correção de lumi- nescência das imagens de referência obtidas a partir das imagens de referência da mesma forma que a descrita acima.
[00372] Um exemplo de um método de determinação de se aplica, ou não, um processo LIC é um método para utilizar um lic_flag, que é um sinal que indica se aplica, ou não, o processo LIC. Como um exemplo específico, o codificador determina se o bloco atual pertence a uma região possuindo uma mudança de luminescência. O codifica- dor codifica lic_flag para um valor de "1" quando o bloco pertencer a uma região possuindo uma mudança de luminescência, e aplica um processo LIC quando da codificação, e configura lic_flag para um valor de "0" quando o bloco não pertencer a uma região possuindo uma mudança de luminescência, e codifica o bloco atual sem aplicação de um processo LIC. O decodificador pode decodificar lic_flag escrito na sequência e decodificar o bloco atual pela comutação entre a aplica- ção e a não aplicação de um processo LIC, de acordo com o valor do indicador.
[00373] Um exemplo de um método diferente de determinação da aplicação, ou não, do processo LIC é um método de determinação, de acordo com o fato de se um processo LIC foi aplicado a um bloco cir- cundante. Em um exemplo específico, quando o modo de mistura é utilizado no bloco atual, se um processo LIC tiver sido aplicado na co- dificação do bloco codificado circundante, selecionado mediante a de- rivação do MV no processo de modo de mistura, é determinado. De acordo com o resultado, a codificação é realizada pela comutação en- tre a aplicação e a não aplicação de um processo LIC. Deve-se notar que, também nesse exemplo, os mesmos processos são aplicados aos processos no lado do decodificador.
[00374] Uma modalidade do processo de correção de luminescên- cia (LIC), descrito com referência à figura 39, é descrita em detalhes abaixo.
[00375] Primeiro, o interprevisor 126 deriva um vetor de movimento para obter uma imagem de referência que corresponde a um bloco atual a ser codificado a partir de uma imagem de referência, que é uma imagem codificada.
[00376] A seguir, a interprevisão 126 extrai informação indicando como o valor de luminescência da imagem de referência foi alterado para o valor de luminescência da imagem atual, utilizando o valor de pixel de luminescência de uma região de referência circundante codifi- cada, que é vizinha pelo lado esquerdo ou por cima do bloco atual, e o valor de luminescência na posição correspondente na imagem de refe- rência especificada por um vetor de movimento, e calcula um parâme- tro de correção de luminescência. Por exemplo, é assumido que o va- lor de pixel de luminescência de um determinado pixel na região de referência circundante na imagem atual seja p0, e que o valor de pixel de luminescência do pixel correspondente ao pixel determinado na re- gião de referência circundante na imagem de referência seja p1. O in- terprevisor 126 calcula os coeficientes A e B para otimizar A x p1 + B = p0 como o parâmetro de correção de luminescência para uma plurali- dade de pixels na região de referência circundante.
[00377] A seguir, o interprevisor 126 realiza um processo de corre- ção de luminescência utilizando o parâmetro de correção de lumines- cência para a imagem de referência, na imagem de referência especi- ficada pelo vetor de movimento, para gerar uma imagem de predição para o bloco atual. Por exemplo, assume-se que o valor de pixel de luminescência na imagem de referência seja p2, e que o valor de pixel de luminescência, com luminescência corrigida, da imagem de predi- ção seja p3. O interprevisor 126 gera a imagem de predição depois de ser submetido ao processo de correção de luminescência pelo cálculo A x p2 + B = p3 para cada um dos pixels na imagem de referência.
[00378] Deve-se notar que o formato da região de referência cir- cundante ilustrado na figura 39 é um exemplo, um formato diferente, além do formato da região de referência circundante, ilustrado na figu- ra 39, pode ser utilizado. Por exemplo, uma região possuindo um nú- mero determinado de pixels extraídos de cada um dentre um pixel vi- zinho superior e um pixel vizinho esquerdo pode ser utilizada como uma região de referência circundante. O número determinado de pixels pode ser predeterminado.
[00379] Adicionalmente, a região de referência circundante não está limitada a uma região que é vizinha do bloco atual, e pode ser uma região que não é vizinha do bloco atual. No exemplo ilustrado na figura 39, a região de referência circundante na imagem de referência é uma região especificada por um vetor de movimento em uma imagem atual, a partir de uma região de referência circundante na imagem atual. No entanto, uma região especificada por outro vetor de movimento tam- bém é possível. Por exemplo, o outro vetor de movimento pode ser um vetor de movimento em uma região de referência circundante na ima- gem atual.
[00380] Apesar de operações realizadas pelo codificador 100 terem sido descritas no presente documento, deve-se notar que o decodifi- cador 200 realiza, tipicamente, operações similares.
[00381] Deve-se notar que o processo LIC pode ser aplicado não apenas à luminescência, mas também à crominância. Nesse momen- to, um parâmetro de correção pode ser derivado, individualmente, para cada um dentre Y, Cb e Cr, ou um parâmetro de correção comum po- de ser utilizado para qualquer um dentre Y, Cb e Cr.
[00382] Adicionalmente, o processo LIC pode ser aplicado em uni- dades de um sub-bloco. Por exemplo, um parâmetro de correção pode ser derivado utilizando-se uma região de referência circundante em um sub-bloco atual e uma região de referência circundante em um sub- bloco de referência em uma imagem de referência especificada por um MV do sub-bloco atual. Controlador de Previsão
[00383] O interprevisor 128 seleciona um dentre um sinal de intra- previsão (um sinal enviado a partir do intraprevisor 124) e um sinal de interprevisão (um sinal enviado a partir do interprevisor 126), e envia o sinal selecionado para o subtraidor 104 e para o somador 116 como um sinal de previsão.
[00384] Como ilustrado na figura 1, em vários tipos de exemplos de codificador, o controlador de previsão 128 pode enviar um parâmetro de previsão que é enviado para o codificador por entropia 110. O codi- ficador por entropia 110 pode gerar uma sequência de bits codificados (ou uma sequência), com base no parâmetro de previsão que é regis- trado a partir do controlador de previsão 128, e coeficientes quantiza-
dos que são registrados a partir do quantizador 108. O parâmetro de previsão pode ser utilizado em um decodificador. O decodificador pode receber e decodificar a sequência de bits codificados, e realizar os mesmos processos que os processos de previsão realizados pelo in- traprevisor 124, o interprevisor 126 e o controlador de previsão 128. O parâmetro de previsão pode incluir (i) um sinal de previsão de seleção (por exemplo, um vetor de movimento, um tipo de previsão, ou um modo de previsão utilizado pelo intraprevisor 124 ou interprevisor 126), ou (ii) um índice opcional, um indicador, ou um valor, que é baseado em um processo de previsão realizado em cada um dentre o intrapre- visor 124, o interprevisor 126 e o controlador de previsão 128, ou que indica o processo de previsão. Exemplo de Montagem de Codificador
[00385] A figura 40 é um diagrama em bloco ilustrando um exemplo de montagem do codificador 100. O codificador 10 inclui o processador a1 e a memória a2. Por exemplo, a pluralidade de elementos consti- tuintes do codificador 100 ilustrado na figura 1 é montada no proces- sador a1 e na memória a2 ilustrados na figura 40.
[00386] O processador a1 é um conjunto de circuitos que realiza o processamento de informação e é acessível à memória a2. Por exem- plo, o processador a1 é um conjunto de circuitos eletrônicos dedicado ou geral que codifica um vídeo. O processador a1 pode ser um pro- cessador, tal como uma CPU. Adicionalmente, o processador a1 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Adicio- nalmente, por exemplo, o processador a1 pode assumir os papeis de dois ou mais elementos constituintes a partir da pluralidade de elemen- tos constituintes do codificador 100 ilustrado na figura 1, etc.
[00387] A memória a2 é uma memória dedicada ou geral para ar- mazenar a informação que é utilizada pelo processador a1 para codifi- car um vídeo. A memória a2 pode ser o conjunto de circuitos eletrôni-
cos, e pode ser conectada ao processador a1. Adicionalmente, a me- mória a2 pode ser incluída no processador a1. Adicionalmente, a me- mória a2 pode ser um agregado de uma pluralidade de circuitos ele- trônicos. Adicionalmente, a memória a2 pode ser um disco magnético, um disco óptico ou similares ou pode ser representada como um ar- mazenador, um meio de gravação, ou similar. Adicionalmente, a me- mória a2 pode ser uma memória não volátil ou uma memória volátil.
[00388] Por exemplo, a memória a2 pode armazenar um vídeo a ser codificado ou uma sequência de bits correspondendo a um vídeo codificado. Adicionalmente, a memória a2 pode armazenar um pro- grama para fazer com que o processador a1 codifique um vídeo.
[00389] Adicionalmente, por exemplo, a memória a2 pode assumir os papeis de dois ou mais elementos constituintes para armazenar a informação a partir da pluralidade de elementos constituintes do codifi- cador 100 ilustrado na figura 1, etc. Por exemplo, a memória a2 pode assumir os papeis de memória de bloco 118 e memória de quadro 122 ilustrados na figura 1. Mais especificamente, a memória a2 pode ar- mazenar um bloco reconstruído, uma imagem reconstruída, etc.
[00390] Deve-se notar que, no codificador 100, toda a pluralidade de elementos constituintes indicada na figura 1, etc. pode não ser im- plementada, e nem todos os processos descritos acima podem ser re- alizadas. Parte dos elementos constituintes indicados na figura 1, etc. pode ser incluída em outro dispositivo, ou parte dos processos descri- tos acima pode ser realizada por outro dispositivo. Decodificador
[00391] A seguir, um decodificador capaz de decodificar um sinal codificado (sequência de bits codificados) envia, por exemplo, a partir do codificador 100 descrito acima, será descrito. A figura 41 é um dia- grama em bloco ilustrando uma configuração funcional do decodifica- dor 200 de acordo com uma modalidade. O decodificador 200 é um decodificador de vídeo que decodifica um vídeo em unidades de um bloco.
[00392] Como ilustrado na figura 41, o decodificador 200 inclui o decodificador por entropia 202, o quantizador inverso 204, o transfor- mador inverso 206, o somador 208, a memória de bloco 210, o filtro de circuito 212, a memória de quadro 214, o intraprevisor 216, o interpre- visor 218, e o controlador de previsão 220.
[00393] O decodificador 200 é implementado, por exemplo, como um processador genérico e memória. Nesse caso, quando um pro- grama de software, armazenado na memória, é executado pelo pro- cessador, o processador funciona como o decodificador por entropia 202, o quantizador inverso 204, o transformador inverso 206, o soma- dor 208, o filtro de circuito 212, o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220. Alternativamente, o decodificador 200 pode ser implementado como um ou mais circuitos eletrônicos dedica- dos que correspondem ao decodificador por entropia 202, o quantiza- dor inverso 204, o transformador inverso 206, o somador 208, o filtro de circuito 212, o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220.
[00394] Doravante, um fluxo geral de processos realizado pelo de- codificador 200 é descrito e, então, cada um dos elementos constituin- tes incluídos no decodificador 200 será descrito. Fluxo Geral do Processo de Decodificação
[00395] A figura 42 é um fluxograma ilustrando um exemplo de um processo de decodificação geral realizado pelo decodificador 200.
[00396] Primeiro, o decodificador por entropia 202 do decodificador 200 identifica um padrão de divisão de um bloco possuindo um tama- nho fixo (por exemplo, 128 x 128 pixels) (Etapa Sp_1). Esse padrão de divisão é um padrão de divisão selecionado pelo codificador 100. O decodificador 200, então, realiza os processos da Etapa Sp_2 a Sp_6 para cada um dentre uma pluralidade de blocos do padrão de divisão.
[00397] Em outras palavras, o decodificador por entropia 202 deco- difica (especificamente, decodifica por entropia) os coeficientes quanti- zados codificados e um parâmetro de previsão de um bloco atual a ser decodificado (também referido como um bloco atual) (Etapa Sp_2).
[00398] A seguir, o quantizador inverso 204 realiza a quantização inversa da pluralidade de coeficientes quantizados e o transformador inverso 206 realiza a transformação inversa do resultado, para restau- rar uma pluralidade de residuais de previsão (isso é, um bloco de dife- rença) (Etapa Sp_3).
[00399] A seguir, o processador de previsão, incluindo todos ou par- te do intraprevisor 216, interprevisor 218, e controlador de previsão 220, gera um sinal de previsão (também referido como um bloco de previsão) do bloco atual (Etapa Sp_4).
[00400] A seguir, o somador 208 adiciona o bloco de previsão ao bloco de diferença para gerar uma imagem reconstruída (também refe- rida como um bloco de imagem decodificada) do bloco atual (Etapa Sp_5).
[00401] Quando a imagem reconstruída é gerada, o filtro de circuito 212 realiza a filtragem da imagem reconstruída (Etapa Sp_6).
[00402] O decodificador 200, então, determina se a decodificação de toda a imagem foi encerrada (Etapa Sp_7). Quando da determina- ção de que a decodificação ainda não foi encerrada (Não na Etapa Sp_7), o decodificador 200 executa, repetidamente, os processos co- meçando com a Etapa Sp_1.
[00403] Como ilustrado, os processos das Etapas Sp_1 a Sp_7 são realizados sequencialmente pelo decodificador 200. Alternativamente, dois ou mais dos processos podem ser realizados em paralelo, a or- dem de processamento dos dois ou mais dos processos pode ser mo- dificada, etc.
Decodificador por Entropia
[00404] O decodificador por entropia 202 decodifica por entropia uma sequência de bits codificados. Mais especificamente, por exem- plo, o decodificador por entropia 202 decodifica de forma aritmética uma sequência de bits codificados em um sinal binário. O decodifica- dor por entropia 202, então, desbinariza o sinal binário. Com isso, o decodificador por entropia 202 envia os coeficientes quantizados de cada bloco para o quantizador inverso 204. O decodificador por entro- pia 202 pode enviar um parâmetro de previsão incluído em uma se- quência de bits codificados (ver figura 1) para o intraprevisor 216, in- terprevisor 218, e controlador de previsão 220. O intraprevisor 216, o interprevisor 218 e o controlador de previsão 220, em uma modalida- de, podem executar os mesmos processos de previsão que os realiza- dos pelo intraprevisor 124, o interprevisor 126, e o controlador de pre- visão 128 no lado do codificador. Quantizador Inverso
[00405] O quantizador inverso 204 quantiza de forma inversa os coeficientes quantizados de um bloco a ser decodificado (doravante referido como um bloco atual) que são registrados a partir do decodifi- cador por entropia 202. Mais especificamente, o quantizador inverso 204 quantiza de forma inversa os coeficientes quantizados do bloco atual, com base nos parâmetros de quantização correspondentes aos coeficientes quantizados. O quantizador inverso 204, então, envia os coeficientes de transformação quantizados inversos do bloco atual pa- ra o transformador inverso 206. Transformador Inverso
[00406] O transformador inverso 206 restaura os erros de previsão pela transformação inversa dos coeficientes de transformação que são registrados a partir do quantizador inverso 204.
[00407] Por exemplo, quando a informação analisada a partir de uma sequência de bits codificados indicar que EMT ou AMT deve ser aplicada (por exemplo, quando um indicador AMT for verdadeiro), o transformador inverso 206 transforma de maneira inversa os coeficien- tes de transformação do bloco atual com base na informação que indi- ca o tipo de transformação analisado.
[00408] Ademais, por exemplo, quando a informação analisada a partir de uma sequência de bits codificados indicar que NSST deve ser aplicada, o transformador inverso 206 aplica uma transformação inver- sa secundária aos coeficientes de transformação. Somador
[00409] O somador 208 reconstrói o bloco atual pela adição de er- ros de previsão que são registrados a partir do transformador inverso 206 e amostras de previsão que são registradas a partir do controlador de previsão 220. O somador 208, então, envia o bloco reconstruído para a memória de bloco 210 e o filtro de circuito 212. Memória de Bloco
[00410] A memória de bloco 210 é o armazenador para armazenar os blocos em uma imagem a ser decodificada (doravante referida co- mo uma imagem atual) e a ser referida na intraprevisão. Mais especifi- camente, a memória de bloco 210 armazena os blocos reconstruídos enviados a partir do somador 208. Filtro de Circuito
[00411] O filtro de circuito 212 aplica um filtro de circuito aos blocos reconstruídos pelo somador 208, e envia os blocos reconstruídos fil- trados para a memória de quadro 214, dispositivo de exibição, etc.
[00412] Quando a informação que indica o LIGAR ou o DESLIGAR de um ALF, analisada a partir de uma sequência de bits codificados, indicar que um ALF está LIGADO, um filtro dentre uma pluralidade de filtros é selecionado com base na direção e atividade de gradientes locais e o filtro selecionado é aplicado ao bloco reconstruído.
Memória de Quadro
[00413] A memória de quadro 214 é, por exemplo, o armazenador para armazenar imagens de referência para uso na interprevisão, e também é referida como um armazenador de quadro. Mais especifi- camente, a memória de quadro 214 armazena um bloco reconstruído filtrado pelo filtro de circuito 212. Processador de Previsão (Intraprevisor, Interprevisor, Controlador de Previsão)
[00414] A figura 43 é um fluxograma ilustrando um exemplo de um processo realizado por um processador de previsão do decodificador
200. Deve-se notar que o processador de previsão inclui todos ou par- te dos seguintes elementos constituintes: intraprevisor 216, interprevi- sor 218 e controlador de previsão 220.
[00415] O processador de previsão gera uma imagem de predição de um bloco atual (Etapa Sq_1). Essa imagem de predição também é referida como um sinal de previsão ou um bloco de previsão. Deve-se notar que o sinal de previsão, por exemplo, é um sinal de intraprevisão ou um sinal de interprevisão. Especificamente, o processador de pre- visão gera a imagem de predição do bloco atual utilizando uma ima- gem reconstruída que já foi obtida através da geração de um bloco de previsão, geração de um bloco de diferença, geração de um bloco de coeficiente, restauração de um bloco de diferença e geração de um bloco de imagem decodificada.
[00416] A imagem reconstruída pode ser, por exemplo, uma ima- gem em uma imagem de referência, ou uma imagem de um bloco de- codificado em uma imagem atual que é a imagem incluindo o bloco atual. O bloco decodificado na imagem atual é, por exemplo, um bloco vizinho do bloco atual.
[00417] A figura 44 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do decodificador
200.
[00418] O processador de previsão determina um método ou um modo para gerar uma imagem de predição (Etapa Sr_1). Por exemplo, o método ou modo pode ser determinado com base, por exemplo, em um parâmetro de previsão, etc.
[00419] Quando da determinação de um primeiro método como um modo de geração de uma imagem de previsão, o processador de pre- visão gera uma imagem de previsão, de acordo com o primeiro méto- do (Etapa Sr_2a). Quando da determinação de um segundo método como um modo para geração de uma imagem de previsão, o proces- sador de previsão gera uma imagem de previsão, de acordo com o segundo método (Etapa Sr_2b). Quando da determinação de um ter- ceiro método como um modo de geração de uma imagem de previsão, o processador de previsão gera uma imagem de previsão, de acordo com o terceiro método (Etapa Sr_2c).
[00420] O primeiro método, o segundo método, e o terceiro método podem ser métodos mutuamente diferentes para gerar uma imagem de previsão. Cada um dos primeiro a terceiro métodos pode ser um método de interprevisão, um método de intraprevisão ou outro método de previsão. A imagem reconstruída descrita acima pode ser utilizada nesses métodos de previsão. Intraprevisor
[00421] O intraprevisor 216 gera um sinal de previsão (sinal de in- traprevisão) pela realização da intraprevisão por referência a um bloco ou blocos na imagem atual armazenados na memória de bloco 210, com base no modo de intraprevisão analisado a partir da sequência de bits codificados. Mais especificamente, o intraprevisor 216 gera um sinal de intraprevisão pela realização da intraprevisão por referência às amostras (por exemplo, valores de luminescência e/ou crominância) de um bloco ou blocos vizinhos do bloco atual e, então, envia o sinal de intraprevisão para o controlador de previsão 220.
[00422] Deve-se notar que quando um modo de intraprevisão, no qual um bloco de luminescência é referido na intraprevisão de um blo- co de crominância, é selecionado, o intraprevisor 216 pode prever o componente de crominância do bloco atual com base no componente de luminescência do bloco atual.
[00423] Ademais, quando a informação analisada a partir de uma sequência de bits codificados indica que PDPC deve ser aplicado, o intraprevisor 216 corrige os valores de pixel intraprevistos com base nos gradientes de pixel de referência horizontal/vertical. Interprevisor
[00424] O interprevisor 218 prevê o bloco atual por referência a uma imagem de referência armazenada na memória de quadro 214. A interprevisão é realizada em unidades de um bloco atual ou de um sub-bloco (por exemplo, um bloco de 4 x 4) no bloco atual. Por exem- plo, o interprevisor 218 gera um sinal de interprevisão do bloco atual ou do sub-bloco pela realização da compensação de movimento pela utilização da informação de movimento (por exemplo, um vetor de mo- vimento) analisada a partir de uma sequência de bits codificados (por exemplo, um parâmetro de previsão enviado a partir do decodificador por entropia 202), e envia o sinal de interprevisão para o controlador de previsão 220.
[00425] Deve-se notar que quando a informação analisada a partir da sequência de bits codificados indicar que o modo OBMC deve ser aplicado, o interprevisor 218 gera o sinal de interprevisão utilizando a informação de movimento de um bloco vizinho em adição à informação de movimento do bloco atual obtida a partir da estimativa de movimen- to.
[00426] Ademais, quando a informação analisada a partir da se- quência de bits codificados indicar que o modo FRUC deva ser aplica-
do, o interprevisor 218 deriva a informação de movimento pela realiza- ção da estimativa de movimento de acordo com o método de combi- nação de padrão (combinação bilateral ou combinação de gabarito) analisada a partir da sequência de bits codificados. O interprevisor 218, então, realiza a compensação de movimento (previsão) utilizando a informação de movimento derivado.
[00427] Ademais, quando o modo BIO deve ser aplicado, o inter- previsor 218 deriva um vetor de movimento com base em um modelo que assume um movimento linear uniforme. Ademais, quando a infor- mação analisada a partir da sequência de bits codificados indicar que o modo de previsão de compensação de movimento afim deve ser aplicado, o interprevisor 218 deriva um vetor de movimento de cada sub-bloco com base nos vetores de movimento dos blocos vizinhos. Derivação de MV > Intermodo Normal
[00428] Quando a informação analisada a partir de uma sequência de bits codificados indicar que o intermodo normal deve ser aplicado, o interprevisor 218 deriva um MV com base na informação analisada a partir da sequência de bits codificados e realiza a compensação de movimento (previsão) utilizando o MV.
[00429] A figura 45 é um fluxograma ilustrando um exemplo de in- terprevisão no intermodo normal no decodificador 200.
[00430] O interprevisor 218 do decodificador 200 realiza a compen- sação de movimento para cada bloco. O interprevisor 218 obtém uma pluralidade de candidatos a MV para um bloco atual com base na in- formação, tal como MVs dentre uma pluralidade de blocos decodifica- dos, cercando de forma temporal ou espacial, o bloco atual (Etapa Ss_1). Em outras palavras, o interprevisor 218 gera uma lista de can- didatos a MV.
[00431] A seguir, o interprevisor 218 extrai N (um inteiro igual a 2 ou maior) candidatos a MV a partir da pluralidade de candidatos a MV ob-
tidos na Etapa Ss_1, como os candidatos a previsor de vetor de movi- mento (também referidos como candidatos a previsor de MV) de acor- do com uma ordem de prioridade determinada (Etapa Ss_2). Deve-se notar que a ordem de prioridade pode ser determinada antecipada- mente para cada um dos N candidatos a previsor de MV.
[00432] A seguir, o interprevisor 218 decodifica a informação de se- leção de previsor de vetor de movimento a partir de uma sequência de entrada (isso é, uma sequência de bits codificados), e seleciona, um candidato a previsor de MV a partir de N candidatos a previsor de MV utilizando a informação de seleção de previsor de vetor de movimento decodificada, como um vetor de movimento (também referido como um previsor de MV) do bloco atual (Etapa Ss_3).
[00433] A seguir, o interprevisor 218 decodifica uma diferença de MV a partir da sequência de entrada, e deriva um MV para um bloco atual pela adição de um valor de diferença, que é a diferença de MV decodificada, e um previsor de vetor de movimento selecionado (Etapa Ss_4).
[00434] Por fim, o interprevisor 218 gera uma imagem de predição para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência decodi- ficada (Etapa Ss_5). Controlador de Previsão
[00435] O controlador de previsão 220 seleciona o sinal de intrapre- visão ou o sinal de interprevisão, e envia o sinal de previsão selecio- nado para o somador 208. Como um todo, as configurações, funções e processos do controlador de previsão 220, do intraprevisor 216 e do interprevisor 218 no lado do decodificador, podem corresponder às configurações, funções e processos do controlador de previsão 128, intraprevisor 124 e interprevisor 126 no lado do codificador. Exemplo de Montagem do Decodificador
[00436] A figura 46 é um diagrama em bloco ilustrando um exemplo de montagem do decodificador 200. O decodificador 200 inclui o pro- cessador b1 e a memória b2. Por exemplo, a pluralidade de elementos constituintes do decodificador 200 ilustrado na figura 41 é montada no processador b1 e na memória b2 ilustrados na figura 46.
[00437] O processador b1 é o conjunto de circuitos que realiza o processamento de informação e é acessível à memória b2. Por exem- plo, o processador b1 é um conjunto de circuitos eletrônicos dedicado ou geral que decodifica um vídeo (isso é, uma sequência de bits codi- ficados). O processador b1 pode ser um processador, tal como uma CPU. Adicionalmente, o processador b1 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Adicionalmente, por exemplo, o processador b1 pode assumir os papeis de dois ou mais elementos constituintes a partir da pluralidade de elementos constituintes do de- codificador 200 ilustrado na figura 41, etc.
[00438] A memória b2 é uma memória dedicada ou geral para ar- mazenar informação que é utilizada pelo processador b1 para decodi- ficar uma sequência de bits codificados. A memória b2 pode ser um conjunto de circuitos eletrônicos, e pode ser conectada ao processador b1. Adicionalmente, a memória b2 pode ser incluída no processador b1. Adicionalmente, a memória b2 pode ser um agregado dentre uma pluralidade de circuitos eletrônicos. Adicionalmente, a memória b2 po- de ser um disco magnético, um disco óptico, ou similares, ou pode ser representada como um armazenador, um meio de gravação, ou simila- res. Adicionalmente, a memória b2 pode ser uma memória não volátil, ou uma memória volátil.
[00439] Por exemplo, a memória b2 pode armazenar um vídeo ou uma sequência de bits. Adicionalmente, a memória b2 pode armaze- nar um programa para fazer com que o processador b1 decodifique uma sequência de bits codificados.
[00440] Adicionalmente, por exemplo, a memória b2 pode assumir os papeis de dois ou mais elementos constituintes para armazenar a informação a partir da pluralidade de elementos constituintes do deco- dificador 200 ilustrado na figura 41, etc. Especificamente, a memória b2 pode assumir os papeis da memória de bloco 210 e memória de quadro 214 ilustrados na figura 41. Mais especificamente, a memória b2 pode armazenar um bloco reconstruído, uma imagem reconstruída, etc.
[00441] Deve-se notar que, no decodificador 200, todos dentre a pluralidade de elementos constituintes ilustrados na figura 41, etc. po- dem não ser implementados, e todos os processos descritos acima podem não ser realizados. Parte dos elementos constituintes indicados na figura 41, etc., pode ser incluída em outro dispositivo, ou parte dos processos descritos acima pode ser realizada por outro dispositivo. Definições dos Termos
[00442] Os termos respectivos podem ser definidos como indicado abaixo como exemplos.
[00443] Uma imagem é um conjunto de amostras de luminescência no formato monocromático ou um conjunto de amostras de lumines- cência e dois conjuntos correspondentes de amostras de crominância no formato de cores 4:2:0, 4:2:2 e 4:4:4. Uma imagem pode ser um quadro ou um campo.
[00444] Um quadro é a composição de um campo superior e um campo inferior, onde as fileiras de amostra 0, 2, 4,... originam do cam- po superior e as fileiras de amostras 1, 3, 5,... originam do campo infe- rior.
[00445] Uma fatia é um número inteiro de unidades de árvore de codificação contidas em um segmento de fatia independente e todos os segmentos de fatia dependentes subsequentes (se algum) que pre- cedem o próximo segmento de fatia independente (se algum) dentro da mesma unidade de acesso.
[00446] Um tile é uma região retangular dos blocos de árvore de codificação dentro de uma coluna de tiles em particular e uma fileira de tiles em particular em uma imagem. Um tile pode ser uma região re- tangular do quadro que deve poder ser decodificada e codificada inde- pendentemente, apesar de a filtragem em circuito através das bordas de tile ainda poder ser aplicada.
[00447] Um bloco é um conjunto de amostras M x N (M colunas por N fileiras), ou um conjunto de M x N de coeficientes de transformação. Um bloco pode ser uma região quadrada ou retangular de pixels inclu- indo uma matriz de Luminescência e duas matrizes de Crominância.
[00448] Uma unidade de árvore de codificação (CTU) pode ser um bloco de árvore de codificação de amostras de luminescência de uma imagem que possui três conjuntos de amostras, ou dois blocos de ár- vores de codificação correspondentes das amostras de crominância. Alternativamente, uma CTU pode ser um bloco de árvore de codifica- ção de amostras de uma dentre uma imagem monocromática e uma imagem que é codificada utilizando-se três planos de cores separados e estruturas de sintaxe utilizadas para codificar as amostras.
[00449] Um superbloco pode ser um bloco quadrado de 64 x 64 pixels que consiste de 1 ou 2 blocos de informação de modo ou é divi- dido de forma recursiva em quatro blocos de 32 x 32, que podem ser adicionalmente divididos. Primeiro Exemplo Específico de BIO
[00450] A seguir, um primeiro exemplo específico de um processo de decodificação com base em BIO é descrito com referência às figu- ras 47, 48 e 49. Por exemplo, o decodificador 200 calcula um parâme- tro BIO a partir de dois blocos de referência que foram compensados em movimento, e decodifica um bloco atual utilizando o parâmetro BIO calculado.
[00451] A figura 47 é um fluxograma indicando o primeiro exemplo específico do processo de decodificação com base em BIO. A figura 48 é um diagrama conceitual ilustrando um exemplo de cálculo de va- lores de gradiente horizontal. A figura 49 é um diagrama conceitual ilustrando um exemplo de cálculo de valores de gradiente vertical.
[00452] Primeiro, o decodificador 200 calcula uma primeira soma para o bloco atual, utilizando o valor de gradiente horizontal de um primeiro bloco de referência e o valor de gradiente horizontal de um segundo bloco de referência (S1001). O bloco atual pode ser um sub- bloco de uma unidade de codificação atual (CU atual) como ilustrado nas figuras 48 e 49.
[00453] O primeiro bloco de referência é um bloco que deve ser re- ferido na codificação do bloco atual e é definido na imagem de refe- rência L0 pelo bloco atual ou um primeiro vetor de movimento de uma CU atual. O segundo bloco de referência é um bloco que deve ser re- ferido na codificação do bloco atual e é definido na imagem de refe- rência L1 pelo bloco atual ou um segundo vetor de movimento da CU atual.
[00454] Basicamente, a imagem de referência L0 e a imagem de referência L1 são duas imagens de referência diferentes, e o primeiro bloco de referência e o segundo bloco de referência são dois blocos de referência diferentes. Adicionalmente, no presente documento, o primeiro bloco de referência e o segundo bloco de referência utilizados no presente documento foram ajustados, respectivamente, em uma precisão de sub-pixel utilizando um filtro de compensação de movi- mento, e possuem o mesmo tamanho que o tamanho do bloco atual.
[00455] Quando o bloco atual é um sub-bloco em uma unidade de codificação atual, cada um dos primeiro bloco de referência e segundo bloco de referência pode ser um sub-bloco do bloco de referência na unidade de codificação atual.
[00456] Em outras palavras, uma pluralidade de valores de pixel na imagem de referência L0 nas figuras 48 e 49 pode ser uma pluralidade de valores de pixel em um bloco definido como um bloco de referência na unidade de codificação atual, para a imagem de referência L0. Da mesma forma, uma pluralidade de valores de pixel na imagem de refe- rência L1 nas figuras 48 e 49 pode ser uma pluralidade de valores de pixel em um bloco definido como um bloco de referência na unidade de codificação atual, para a imagem de referência L1.
[00457] O decodificador 200 calcula uma primeira soma utilizando um valor de gradiente horizontal do primeiro bloco de referência men- cionado acima e o valor de gradiente horizontal do segundo bloco de referência mencionado acima. O decodificador 200 pode calcular uma primeira soma utilizando não apenas o valor de gradiente horizontal do primeiro bloco de referência e o valor de gradiente horizontal do se- gundo bloco de referência, mas também um valor de gradiente hori- zontal de uma área vizinha, que é vizinha do primeiro bloco de refe- rência, e um valor de gradiente horizontal de uma área vizinha, que é vizinha do segundo bloco de referência. As expressões (3.1) e (3.2) indicadas abaixo indicam um exemplo de um método para um proces- so de cálculo de uma primeira soma. Matemática 4 Gx = Ix0 + Ix1 (3.1) Matemática 5 sGx = [i, j] sinal(Gx[i, j]) x Gx[i, j] (3.2)
[00458] No presente documento, x denota a multiplicação, e + de- nota adição. Adicionalmente, o sinal denota um sinal de mais ou me- nos. Por exemplo, o apresentado a seguir é indicado pelo sinal. Matemática 6 sinal(x) =
[00459] Como resultado disso, sinal(Gx[i, j]) x Gx[i, j] se torna Gx[i, j]
sem mudança de sinal quando Gx[i, j] é um valor de mais, e se torna - Gx [i, j] quando Gx [i, j] é um valor de menos. Dessa forma, o cálculo é equivalente à derivação de um valor absoluto (abs) de Gx [i, j]).
[00460] Na expressão (3.1), Ix0 denota um valor de gradiente hori- zontal no primeiro bloco de referência na imagem de referência L0, e Ix1 denota um valor de gradiente horizontal no segundo bloco de refe- rência na imagem de referência L1.
[00461] Um exemplo de um filtro de gradiente horizontal para ob- tenção de valores de gradiente horizontal é um filtro de três saídas possuindo um conjunto de coeficientes de filtro de [-1, 0, 1]. O valor de gradiente horizontal no primeiro bloco de referência é calculado pela aplicação de um filtro de gradiente horizontal a uma pluralidade de pixels de referência no primeiro bloco de referência. O valor de gradi- ente horizontal no segundo bloco de referência é calculado pela apli- cação de um filtro de gradiente horizontal a uma pluralidade de pixels de referência no segundo bloco de referência.
[00462] No exemplo ilustrado na figura 48, o valor de gradiente ho- rizontal Ix0 do pixel localizado na posição [3, 2] no primeiro bloco de referência é calculado como um produto de matriz [-1, 0, 1]T[2, 3, 5], e o valor resultante é igual a 3. O valor de gradiente horizontal Ix1 do pixel localizado na posição [3, 2] no segundo bloco de referência é cal- culado como um produto de matriz [-1, 0, 1]T[5, 3, 2], e o valor resul- tante é -3. Deve-se notar que [a, b, c] denota uma matriz possuindo três fileiras e uma coluna.
[00463] Na Expressão (3, 2), sGx denota a primeira soma, e é cal- culado como uma soma de valores absolutos de Gx através de uma janela denotada como . O tamanho da janela  pode ser igual ao tamanho de um bloco atual. Alternativamente, o tamanho da janela  pode ser maior do que o tamanho de um bloco atual. No último caso, o valor de Gx em uma posição vizinha ao bloco atual é incluído em um processo de cálculo de uma primeira soma.
[00464] Como no caso da primeira soma, que é a soma dos valores de gradiente horizontal, o decodificador 200 calcula uma segunda so- ma para o bloco atual, utilizando um valor de gradiente vertical do pri- meiro bloco de referência e um valor de gradiente vertical do segundo bloco de referência (S1002). As expressões (3.3) e (3.4) indicadas abaixo indicam um exemplo de um método para um processo de cál- culo de uma segunda soma. Matemática 7 Gy = Iy0 + Iy1 (3.3) Matemática 8 sGy = [i, j]sinal(Gy[I, j]) x Gy [I, j] (3.4)
[00465] Na expressão (3.3), Iy0 denota um valor de gradiente verti- cal no primeiro bloco de referência na imagem de referência L0, e Iy1 denota um valor de gradiente vertical no segundo bloco de referência na imagem de referência L1.
[00466] Um exemplo de um filtro de gradiente vertical para obter os valores de gradiente vertical é um filtro de três saídas possuindo um conjunto de coeficientes de filtro de [-1, 0, 1]. O valor de gradiente ver- tical no primeiro bloco de referência é calculado pela aplicação de um filtro de gradiente vertical a uma pluralidade de pixels de referência no primeiro bloco de referência. O valor de gradiente vertical no segundo bloco de referência é calculado pela aplicação de um filtro de gradiente vertical a uma pluralidade de pixels de referência no segundo bloco de referência.
[00467] No exemplo ilustrado na figura 49, o valor de gradiente ver- tical Iy0 do pixel localizado na posição [3, 2] no primeiro bloco de refe- rência é calculado como um produto de matriz [-1, 0, 1]T[2, 3, 5], e o valor resultante é igual a 3. O valor de gradiente vertical Iy1 do pixel localizado na posição [3, 2] no segundo bloco de referência é calcula-
do como um produto de matriz [-1, 0, 1]T[5, 3, 2] e o valor resultante é -
3.
[00468] Na expressão (3.4), sGy denota a segunda soma, e é calcu- lada como uma soma dos valores absolutos de Gy através da janela denotada como . Quando o tamanho da janela  é maior do que o valor do bloco atual, o valor Gy em uma posição vizinha do bloco atual é incluída em um processo de cálculo de uma segunda soma.
[00469] A seguir, o decodificador 200 julga se a primeira soma é maior do que a segunda soma (S1003). Quando se julga que a primei- ra soma é maior do que a segunda soma (Sim em S1003), o decodifi- cador 200 determina um parâmetro BIO para o bloco atual sem utilizar qualquer valor de gradiente vertical (S1004). As expressões (3.5) a (3.9) indicam um exemplo de um processo de computação para de- terminar o parâmetro BIO nesse caso. De acordo com essas expres- sões, o parâmetro BIO denotado como um é calculado utilizando-se os valores de gradientes horizontais. Matemática 9 sGxdI = [i, j]-sinal(Gx[i, j]) x (Ii,j0 – Ii,j1) (3.5) Matemática 10 denominador = sGx (3.6) Matemática 11 numerador = sGxdI (3.7) Matemática 12 shift = Bits(denominador) – 6 (3.8) Matemática 13 u = Clip(((numerador >> (shift – 12)) x BioShift [denominador >> shift]) >> 27 (3.9)
[00470] No presente documento, - denota subtração, e >> denota computação de mudança. Adicionalmente, Bits, BIOShift e Clip indi- cam, respectivamente, o seguinte. Deve-se notar que, na descrição abaixo, teto e piso, denotam o arredondamento decimal para cima e o arredondamento decimal para baixo, respectivamente. Matemática 14 Bits(x) = [log2x] BIOShift[i] = ((1 << 15) + i/2)/i; i [1, 63] [x] = teto (x) [x] = piso (x)
[00471] De acordo com a Expressão (3.5), sGxdI é calculado como uma soma de produtos de diferenças entre I0i, j e I1i, j e o sinal de me- nos (Gx[i, j]) através da janela . No presente documento, I0i,j denota o valor de pixel na posição [i, j] no primeiro bloco de referência na ima- gem de referência L0, e I1i, j denota o valor de pixel na posição [i, j] no segundo bloco de referência na imagem de referência L1. I0i,j e I1i,j po- dem ser simplesmente representados como I0 e I1. O parâmetro BIO u é calculado utilizando sGxdI e sGx de acordo com as Expressões (3.6) a (3.9).
[00472] Quando se julga que a primeira soma não é maior do que a segunda soma (Não, em S1003), o decodificador 200 determina o pa- râmetro BIO u para o bloco atual sem utilizar qualquer valor de gradi- ente horizontal (S1005). As Expressões (3.10) a (3.14) indicam um exemplo de um processo de computação para determinar o parâmetro BIO u nesse caso. As Expressões (3.10) a (3.14) são basicamente as mesmas das Expressões (3.5) a (3.9) exceto pelo fato de o parâmetro BIO u ser calculado utilizando-se os valores de gradiente vertical na Expressão (3.10) a (3.14). Matemática 15 sGydI = [i, j]-sinal(Gy[i, j]) x (I0i,j – I1i,j) (3.10) Matemática 16 denominador = sGy (3.11) Matemática 17 numerador = sGydI (3.12) Matemática 18 shift = Bits(denominador) – 6 (3.13) Matemática 19 u = Clip(((numerador >> (shift – 12)) x BIOShift[denominador >> shift]) >> 27) (3.14)
[00473] O decodificador 200, então, decodifica o bloco atual utili- zando o parâmetro BIO u (S1006). Especificamente, o decodificador 200 gera uma amostra de previsão utilizando o parâmetro BIO u, e de- codifica o bloco atual utilizando a amostra de previsão. As Expressões (3.15) e (3.16) indicam um exemplo de um processo de computação para gerar uma amostra de previsão. Matemática 20 Amostra de previsão = (I0 + I1 + u x (Ix0 – Ix1)) >> 1 (3.15) Matemática 21 Amostra de previsão = (I0 + I1 + u x (Iy0 – Iy1) >> 1 (3.16)
[00474] Quando for julgado que a primeira soma é maior do que a segunda soma (Sim em S1003), a Expressão (3.15) é utilizada. Quan- do for julgado que a primeira soma não é maior do que a segunda so- ma (Não em S1003), a Expressão (3.16) é utilizada.
[00475] Quando for julgado que a primeira soma é maior do que a segunda soma (Sim em S1003), a Expressão (3.15) é utilizada. Quan- do for julgado que a primeira soma não é maior do que a segunda so- ma (Não, em S1003), a Expressão (3.16) é utilizada.
[00476] O decodificador 200 pode repetir os processos (S1001 a S1006) para todos os sub-blocos em cada uma das CUs atuais.
[00477] O decodificador 200 pode aumentar a precisão da amostra de previsão no bloco atual utilizando BIO. O decodificador 200 é ca-
paz, adicionalmente, de reduzir o aumento na quantidade de computa- ção visto que o decodificador 200 utiliza apenas um dos valores de gradiente horizontal e dos valores de gradiente vertical quando do cál- culo de um parâmetro BIO.
[00478] As expressões acima são exemplos, e expressões para calcular um parâmetro BIO não estão limitadas às expressões acima. Por exemplo, as expressões equivalentes às expressões acima podem ser utilizadas. Os sinais de mais e menos, incluídos nas expressões acima, podem ser alterados como adequado. Especificamente, como uma expressão que corresponde às Expressões (3.1) e (3.2) descritas abaixo, a Expressão (4.1) a seguir pode ser utilizada. Matemática 22 sGx = [i, j]abs(Ix1 + Ix0) (4.1)
[00479] Por exemplo, como uma expressão correspondente à Ex- pressão (3.5) descrita acima, a Expressão(4.2) a seguir pode ser utili- zada. Matemática 23 sGxdI = [i, j](-sinal(Ix1 + Ix0) x (I0 – I1)) (4.2)
[00480] Por exemplo, como uma expressão correspondente à Ex- pressão (3.15) descrita acima, a Expressão (4.3) a seguir pode ser uti- lizada. Matemática 24 Amostra de previsão = (I1 + I0 – u x (Ix1 – Ix0)) >> 1 (4.3)
[00481] As expressões (3.6) a (3.9) indicam, substancialmente, a divisão, e, dessa forma, podem ser representadas como a Expressão (4.4). Matemática 25
[00482] As Expressões (4.1) a (4.4) são substancialmente iguais às Expressões (3.1), (3.2), (3.5) a (3.9) e (3.15) descritas acima.
[00483] Da mesma forma, como uma expressão correspondendo às Expressões (3.3) e (3.4) descritas acima, a Expressão (4.5) a seguir pode ser utilizada. Matemática 26 sGy = [i, j]abs(Iy1 + Iy0) (4.5)
[00484] Por exemplo, como uma expressão correspondente à Ex- pressão (3.10) descrita acima, a Expressão (4.6) a seguir pode ser uti- lizada. Matemática 27 sGydI = [i, j](-sinal (Iy1 + Iy0) x (I0 – I1) (4.6)
[00485] Por exemplo, como uma expressão correspondente à Ex- pressão (3.16) descrita acima, a Expressão (4.7) a seguir pode ser uti- lizada. Matemática 28 Amostra de previsão = (I1 + I0 – u x (Iy1 – Iy0)) >> 1 (4.7)
[00486] As Expressões (3.11) a (3.14) indicam, substancialmente, a divisão, e, dessa forma, podem ser representadas como a Expressão (4.8). Matemática 29
[00487] As Expressões (4.5) a (4.8) são substancialmente iguais às Expressões (3.3), (3.4), (3.10) a (3.14) e (3.16) descritas acima.
[00488] No fluxo acima, o valor de gradiente horizontal, ou o valor de gradiente vertical, é utilizado com base na comparação entre a pri- meira soma e a segunda soma. No entanto, os fluxos de processo de decodificação não estão limitados ao fluxo descrito acima. Se o uso de um valor de gradiente horizontal, ou de um valor de gradiente vertical, é aconselhável, ou não, pode ser determinado antecipadamente por outro parâmetro de codificação ou similar. Um parâmetro BIO pode ser derivado utilizando-se valores de gradiente horizontal e um parâmetro
BIO pode ser derivado utilizando-se valores de gradiente vertical, sem comparar uma primeira soma com uma segunda soma. Alternativa- mente, apenas uma dentre a primeira soma e a segunda soma pode ser calculada.
[00489] Mesmo sem comparar a primeira soma com a segunda so- ma, o decodificador 200 pode reduzir a multiplicação substancial que exige uma grande quantidade de computação nas computações reali- zadas para as posições de pixel respectivas, e derivar uma pluralidade de parâmetros para gerar a imagem de predição com uma pequena quantidade de computação. Especificamente, o decodificador 200 po- de calcular sGx, sGxdI, sGy e sGydI com uma pequena quantidade de computação. De acordo, o decodificador 200 pode reduzir a quantida- de de processamento na decodificação.
[00490] Apesar de o processo de decodificação ter sido descrito na descrição acima, os mesmos processos incluídos no processo de de- codificação podem ser aplicados também a um processo de codifica- ção. Em outras palavras, a decodificação na descrição acima pode ser lida como codificação. Segundo Exemplo Específico de BIO
[00491] A seguir, um segundo exemplo específico de um processo de decodificação com base em BIO é descrito. Por exemplo, como no primeiro exemplo, o decodificador 200 calcula um parâmetro BIO a partir de dois blocos de referência que sofreram compensação de mo- vimento, e decodifica um bloco atual utilizando o parâmetro BIO calcu- lado.
[00492] Nesse exemplo específico, uma amostra de previsão para decodificação de um bloco atual é gerada de acordo com as Expres- sões (5.1) a (5.8) indicadas abaixo. Matemática 30 s1 = [i, j](Ix1 + Ix0) x (Ix1 + Ix0) (5.1)
Matemática 31 s2 = [i, j](Iy1 + Iy0) x (Iy1 + Iy0) (5.2) Matemática 32 s3 = [i, j](-(Ix1 + Ix0) x (I0 – I1) (5.3) Matemática 33 s4 = [i, j](-(Iy1 + Iy0) x (I0 – I1) (5.4) Matemática 34 Matemática 35 Matemática 36 Matemática 37
[00493] S1 na Expressão (5.1), nesse exemplo específico, corres- ponde a sGx na Expressão (3.2) no primeiro exemplo específico. Adi- cionalmente, S2 na Expressão (5.2), nesse exemplo específico, cor- responde a sGxdI na Expressão (5.3) no primeiro exemplo específico. Adicionalmente, S3 na Expressão(5.3), nesse exemplo específico, cor- responde a sGy na Expressão (3.4), no primeiro exemplo específico. Adicionalmente, S4 na Expressão (5.4), nesse exemplo específico, cor- responde a sGydI na Expressão (3.10), no exemplo específico.
[00494] Adicionalmente, vx e vy nas Expressões (5.5) a (5.7), nesse exemplo específico, correspondem, cada um, a um parâmetro BIO e correspondem a u nas Expressões (3.9) e (3.14), no primeiro exemplo específico.
[00495] No primeiro exemplo específico, nenhuma mudança é reali- zada em um sinal de mais ou menos e nenhuma multiplicação subs-
tancial é realizada no cálculo de sGx, sGxdI, sGy e sGydI. Nesse exem- plo específico, a multiplicação substancial é realizada no cálculo de S1, S2, S3 e S4. Dessa forma, apesar de a quantidade de computação au- mentar, uma amostra de previsão é gerada com uma precisão mais alta. Por outro lado, a quantidade de computação é reduzida no primei- ro exemplo específico. Exemplos Representativos de Configurações e Processos
[00496] As descrições dos exemplos representativos das configura- ções e dos processos realizados pelo codificador 100 e decodificador 200 descritos acima são fornecidas. Esses exemplos representativos correspondem, basicamente, ao primeiro exemplo específico descrito acima.
[00497] A figura 50 é um fluxograma indicando uma operação reali- zada pelo codificador 100. Por exemplo, o codificador 100 inclui um conjunto de circuitos e uma memória conectada ao conjunto de circui- tos. O conjunto de circuitos e a memória, incluídos no codificador 100, podem corresponder ao processador a1 e à memória a2 ilustrados na figura 40. O conjunto de circuitos do codificador 100 realiza as seguin- tes etapas na operação.
[00498] Por exemplo, o conjunto de circuitos do codificador 100 de- riva, para cada um dentre uma pluralidade de pares de posições relati- vas de pixel, o valor absoluto da soma dos valores de gradiente, que indica o valor absoluto da soma do valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e o valor de gradiente em uma posição relativa de pixel em uma segunda faixa (S1101). No presente documento, a primeira faixa inclui um primeiro bloco de referência em um bloco atual, e a segunda faixa inclui um segundo bloco de referên- cia no bloco atual. Cada um dentre a pluralidade de pares de posições relativas de pixel é determinado de forma comum e com relação a am- bas a primeira faixa e a segunda faixa, e cada par de posições relati-
vas de pixel é composto de uma posição de pixel na primeira faixa e uma posição de pixel na segunda faixa. Ser determinado de forma comum e relativa, no presente documento, significa que a posição de pixel na primeira faixa e a posição de pixel na segunda faixa, a serem utilizadas durante a derivação do valor absoluto da soma de valores de gradiente, são posições relativamente iguais. Por exemplo, o conjunto de circuitos do codificador 100 deriva o valor absoluto da soma de va- lores de gradiente, utilizando o valor de gradiente para o pixel localiza- do na posição superior mais para a esquerda na primeira faixa, e o va- lor de gradiente para o pixel localizado na posição superior mais para a esquerda na segunda faixa.
[00499] O conjunto de circuitos do codificador 100, então, deriva, como um primeiro parâmetro, a soma total dentre uma pluralidade de valores absolutos das somas de valores de gradiente derivados, res- pectivamente, para a pluralidade de pares de posições relativas (S1102).
[00500] Adicionalmente, o conjunto de circuitos do codificador 100 deriva um valor de diferença de pixel que indica a diferença entre o valor de pixel na posição relativa de pixel na primeira faixa, e o valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel (S1103). Por exemplo, nesse momento, o conjunto de circuitos do codificador 100 deriva o valor de diferença de pixel com um sinal de mais ou me- nos pela subtração de um dentre o valor de pixel na posição relativa de pixel na primeira faixa, e o valor de pixel na posição relativa de pixel na segunda faixa, em cada um dentre a pluralidade de pares de posi- ções relativas de pixel, um do outro.
[00501] O conjunto de circuitos do codificador 100, então, inverte ou mantém o sinal de mais ou menos do valor de diferença de pixel deri- vado para o par de posições relativas de pixel, de acordo com o sinal de mais ou menos da soma de valores de gradiente (S1104). No pre- sente documento, a soma dos valores de gradiente no par de posições relativas de pixel indica a soma do valor de gradiente na posição rela- tiva de pixel na primeira faixa, e o valor de gradiente na posição relati- va de pixel na segunda faixa.
[00502] O conjunto de circuitos do codificador 100, então, deriva, como um segundo parâmetro, a soma total dentre uma pluralidade de valores de diferença de pixel que foram derivados respectivamente para a pluralidade de pares de posições relativas de pixel e cada um dos quais possui o sinal de mais ou menos invertido ou mantido (S1105).
[00503] O conjunto de circuitos do codificador 100, então, gera uma imagem de predição a ser utilizada para codificar o bloco atual utili- zando o primeiro parâmetro e o segundo parâmetro (S1106).
[00504] Dessa forma, o codificador 100 pode reduzir a multiplicação substancial que exige uma grande quantidade de computação nas computações realizadas para as posições respectivas de pixel, e deri- var a pluralidade de parâmetros para gerar a imagem de predição com uma quantidade reduzida de computação. De acordo, o codificador 100 é capaz de reduzir a quantidade de processamento na codifica- ção.
[00505] Adicionalmente, por exemplo, o valor de gradiente na posi- ção relativa de pixel na primeira faixa, dentre cada par de posições re- lativas de pixel, pode ser o valor de gradiente horizontal na posição relativa de pixel na primeira faixa. Adicionalmente, o valor de gradiente na posição relativa de pixel na segunda faixa, dentre cada par de posi- ções relativas de pixel, pode ser o valor de gradiente horizontal na po- sição relativa de pixel na segunda faixa. Dessa forma, o codificador 100 pode derivar a pluralidade de parâmetros utilizando os valores de gradiente horizontal com uma quantidade reduzida de computação.
[00506] Adicionalmente, por exemplo, o conjunto de circuitos do co- dificador 100 pode derivar um primeiro parâmetro, de acordo com a Expressão (4.1) descrita acima. O conjunto de circuitos do codificador 100 pode, então, derivar um segundo parâmetro de acordo com a Ex- pressão (4.2) descrita acima.
[00507] No presente documento,  denota um conjunto de posições relativas de pixel, e [i, j] denota cada uma das posições relativas de pixel. Ix0 denota o valor de gradiente horizontal em cada posição relati- va de pixel na primeira faixa, Ix1 denota o valor de gradiente horizontal em cada posição relativa de pixel na segunda faixa, I0 denota o valor de pixel em cada posição relativa de pixel na primeira faixa, e I1 denota o valor de pixel em cada posição relativa de pixel na segunda faixa. Adicionalmente, abs (Ix1 + Ix0) denota o valor absoluto de Ix1 + Ix0, e o sinal (Ix1 + IX0) denota o sinal de mais ou menos de Ix1 + Ix0.
[00508] Dessa forma, o codificador 100 pode derivar de forma ade- quada uma pluralidade de parâmetros utilizando os valores de pixel e os valores de gradiente horizontal.
[00509] Adicionalmente, por exemplo, o valor de gradiente na posi- ção relativa de pixel na primeira faixa, dentre cada par de posições re- lativas de pixel, pode ser o valor de gradiente vertical na posição rela- tiva de pixel na primeira faixa. Adicionalmente, o valor de gradiente na posição relativa de pixel na segunda faixa, dentre cada par de posi- ções relativas de pixel, pode ser o valor de gradiente vertical na posi- ção relativa de pixel na segunda faixa. Dessa forma, o codificador 100 pode derivar a pluralidade de parâmetros utilizando os valores de gra- diente vertical com uma quantidade reduzida de computação.
[00510] Adicionalmente, por exemplo, o conjunto de circuitos do co- dificador 100 pode derivar um primeiro parâmetro de acordo com a Expressão (4.5) descrita acima. O conjunto de circuitos do codificador 100 pode, então, derivar um segundo parâmetro de acordo com a Ex-
pressão (4.6) descrita acima.
[00511] No presente documento,  denota um conjunto de posições relativas de pixel, e [i, j] denota cada uma das posições relativas de pixel. Iy0 denota o valor de gradiente vertical em cada posição relativa de pixel na primeira faixa, Iy1 denota o valor de gradiente vertical em cada posição relativa de pixel na segunda faixa, I0 denota o valor de pixel em cada posição relativa de pixel na primeira faixa e I1 denota o valor de pixel em cada posição relativa de pixel na segunda faixa. Adi- cionalmente, abs(Iy1 + Iy0) denota o valor absoluto de Iy1 + Iy0, e o sinal (Iy1 + Iy0) denota o sinal de mais ou menos de Iy1 + Iy0.
[00512] Dessa forma, o codificador 100 pode derivar adequadamen- te a pluralidade de parâmetros utilizando os valores de pixel e os valo- res de gradiente vertical.
[00513] Adicionalmente, por exemplo, o conjunto de circuitos de co- dificador 100 pode derivar, para cada um dentre uma pluralidade de pares de posições relativas de pixel, o valor absolto da soma dos valo- res de gradiente horizontal, que indica o valor absoluto da soma do valor de gradiente horizontal na posição relativa de pixel na primeira faixa, e o valor de gradiente horizontal na posição relativa de pixel na segunda faixa. O conjunto de circuitos do codificador 100 pode, então, derivar uma soma total de uma pluralidade de valores absolutos das somas dos valores de gradiente horizontal derivados respectivamente para a pluralidade de pares de posições relativas de pixel.
[00514] Adicionalmente, o conjunto de circuitos do codificados 100 pode derivar, para cada um dentre uma pluralidade de pares de posi- ções relativas de pixel, o valor absoluto da soma dos valores de gradi- ente vertical que indicam o valor absoluto da soma do valor de gradi- ente vertical na posição relativa de pixel na primeira faixa, e o valor de gradiente vertical na posição relativa de pixel na segunda faixa. O con- junto de circuitos do codificador 100 pode, então, derivar a soma total de uma pluralidade de valores absolutos das somas dos valores de gradiente vertical derivada, respectivamente, para a pluralidade de pa- res de posições relativas de pixel.
[00515] No presente documento, no caso no qual a soma total da pluralidade de valores absolutos das somas dos valores de gradiente horizontal é maior do que a soma total da pluralidade de valores abso- lutos das somas dos valores de gradiente vertical, o conjunto de circui- tos do codificador 100 pode aplicar valores de gradiente horizontal aos valores de gradiente. Mais especificamente, nesse caso, o conjunto de circuitos do codificador 100 pode aplicar o valor de gradiente horizontal na posição relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa. Da mesma forma, nesse caso, o conjunto de circuitos do codificador 100 pode aplicar o valor de gradiente horizontal na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na segunda faixa.
[00516] No caso oposto, no qual a soma total da pluralidade de va- lores absolutos das somas dos valores de gradiente horizontal não é maior do que a soma total da pluralidade de valores absolutos das somas dos valores de gradiente vertical, o conjunto de circuitos do co- dificador 100 pode aplicar os valores de gradiente vertical aos valores de gradiente. Mais especificamente, nesse caso, o conjunto de circui- tos do codificador 100 pode aplicar o valor de gradiente vertical na po- sição relativa de pixel na primeira faixa ao valor de gradiente na posi- ção relativa de pixel na primeira faixa. Da mesma forma, nesse caso, o conjunto de circuitos de codificador 100 pode aplicar o valor de gradi- ente vertical na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na segunda faixa.
[00517] Dessa forma, o codificador 100 pode aplicar os valores de gradiente horizontal ou os valores de gradiente vertical à derivação da pluralidade de parâmetros, com base na comparação entre a soma total relacionada com os valores de gradiente horizontal e a soma total relacionada com os valores de gradiente vertical. Em outras palavras, o codificador 100 pode aplicar os valores de gradiente possuindo uma grande influência à derivação da pluralidade de parâmetros.
[00518] Adicionalmente, por exemplo, o conjunto de circuitos do co- dificador 100 pode derivar um terceiro parâmetro utilizando o primeiro parâmetro como um denominador e o segundo parâmetro como um numerador, e gerar uma imagem de predição utilizando o terceiro pa- râmetro. Dessa forma, o codificador 100 pode gerar, de forma ade- quada, a imagem de previsão, utilizando os parâmetros derivados com base nas relações entre a pluralidade de parâmetros.
[00519] Adicionalmente, por exemplo, o conjunto de circuitos do co- dificador 100 pode derivar, para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa utilizando um filtro de três saídas possuindo um conjunto de coeficientes de filtro de [-1, 0, 1]. Dessa forma, o codifica- dor 100 pode derivar o valor de gradiente em cada posição de pixel de forma simples e adequada.
[00520] Adicionalmente, por exemplo, o bloco atual pode ser um sub-bloco definido como possuindo um tamanho de 4 x 4 pixels em uma unidade de codificação. O conjunto de circuitos do codificador 100 pode, então, derivar o primeiro parâmetro e o segundo parâmetro com base em sub-bloco. Dessa forma, o codificador 100 pode gerar, de forma adequada, a imagem de previsão, utilizando a pluralidade de parâmetros definidos pelo tamanho de 4 x 4 pixels.
[00521] Adicionalmente, por exemplo, o conjunto de circuitos do co- dificador 100 pode derivar um parâmetro em um fluxo óptico bidirecio- nal utilizando o primeiro parâmetro e o segundo parâmetro, e gerar uma imagem de predição utilizando o parâmetro no fluxo óptico bidire-
cional e o fluxo óptico bidirecional. Dessa forma, o codificador 100 po- de gerar, de forma adequada, a imagem de previsão. O parâmetro no fluxo óptico bidirecional pode ser o terceiro parâmetro descrito acima.
[00522] Deve-se notar que o interprevisor 126 do codificador 100 pode realizar a operação descrita acima como o conjunto de circuitos do codificador 100.
[00523] A figura 51 é um fluxograma indicando uma operação reali- zada pelo decodificador 200. Por exemplo, o decodificador 200 inclui o conjunto de circuitos e a memória conectada ao conjunto de circuitos. O conjunto de circuitos e a memória incluídos no decodificador 200 podem corresponder ao processador b1 e à memória b2 ilustrados na figura 46. O conjunto de circuitos do decodificador 200 realiza o se- guinte na operação.
[00524] Por exemplo, o conjunto de circuitos do decodificador 200 deriva, para cada um dos pares de posições relativas de pixel, o valor absoluto da soma dos valores de gradiente que indica o valor absolto da soma do valor de gradiente em uma posição relativa de pixel em uma primeira faixa e o valor de gradiente em uma posição relativa de pixel em uma segunda faixa (S1201). No presente documento, a pri- meira faixa inclui um primeiro bloco de referência em um bloco atual, e a segunda faixa inclui um segundo bloco de referência no bloco atual. Cada um dentre a pluralidade de pares de posições relativas de pixel é determinado de forma comum e com relação a ambas a primeira faixa e a segunda faixa, e cada par de posições relativas de pixel é compos- to de uma posição de pixel na primeira faixa e uma posição de pixel na segunda faixa.
[00525] O conjunto de circuitos do decodificador 200, então, deriva, como um primeiro parâmetro, a soma total de uma pluralidade de valo- res absolutos das somas dos valores de gradiente derivados, respecti- vamente, para a pluralidade de pares de posições relativas (S1202).
[00526] Adicionalmente, o conjunto de circuitos de decodificador 200 deriva um valor de diferença de pixel que indica a diferença entre o valor de pixel na posição relativa de pixel na primeira faixa e o valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel (S1203). Por exemplo, nesse momento, o conjunto de circuitos do decodificador 200 deriva o valor de diferença de pixel com um sinal de mais ou me- nos pela subtração de um dentre o valor de pixel, na posição relativa de pixel na primeira faixa, e o valor de pixel, na posição relativa de pixel na segunda faixa, em cada um dentre a pluralidade de pares de posições relativas de pixel, um do outro.
[00527] O conjunto de circuitos do decodificador 200, então, inverte ou mantém o sinal de mais ou menos do valor de diferença de pixel derivado para o par de posições relativas de pixel, de acordo com o sinal de mais ou menos da soma de valores de gradiente (S1204). No presente documento, a soma de valores de gradiente no par de posi- ções relativas de pixel indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa.
[00528] O conjunto de circuitos do decodificador 200, então, deriva, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, que foram derivados, respectivamente, para a pluralidade de pares de posições relativas de pixel e cada um dos quais possui o sinal de mais ou menos invertido ou mantido (S1205).
[00529] O conjunto de circuitos 200, então, gera uma imagem de predição a ser utilizada para decodificar o bloco atual utilizando o pri- meiro parâmetro e o segundo parâmetro (S1206).
[00530] Dessa forma, o decodificador 200 pode reduzir a multiplica- ção substancial que exige uma grande quantidade de computação nas computações realizadas para as posições respectivas de pixel, e deri- var a pluralidade de parâmetros para gerar a imagem de predição com uma quantidade reduzida de computação. De acordo, o decodificador 200 pode reduzir a quantidade de processamento na decodificação.
[00531] Adicionalmente, por exemplo, o valor de gradiente na posi- ção relativa de pixel na primeira faixa, dentre cada par de posições re- lativas de pixel, pode ser o valor de gradiente horizontal na posição relativa de pixel na primeira faixa. Adicionalmente, o valor de gradiente na posição relativa de pixel na segunda faixa, dentre cada par de posi- ções relativas de pixel, pode ser o valor de gradiente horizontal na po- sição relativa de pixel na segunda faixa. Dessa forma, o decodificador 200 é capaz de derivar a pluralidade de parâmetros utilizando os valo- res de gradiente horizontal com uma pequena quantidade de compu- tação.
[00532] Adicionalmente, por exemplo, o conjunto de circuitos do de- codificador 200 pode derivar um primeiro parâmetro, de acordo com a Expressão (4.1) descrita acima. Adicionalmente, o conjunto de circui- tos do decodificador 200 pode derivar um segundo parâmetro, de acordo com a Expressão (4.2) descrita acima.
[00533] No presente documento,  denota um conjunto de posições relativas de pixel, e [i, j] denota cada uma das posições relativas de pixel. Ix0 denota o valor gradiente horizontal em cada posição relativa de pixel na primeira faixa, Ix1 denota o valor de gradiente horizontal em cada posição relativa de pixel na segunda faixa, I0 denota o valor de pixel em cada posições relativa de pixel na primeira faixa, e I1 denota o valor de pixel em cada posição relativa de pixel na segunda faixa. Adi- cionalmente, abs (Ix1 + Ix0) denota o valor absoluto de Ix1 + Ix0, e o sinal (Ix1 + Ix0) denota o sinal de mais ou menos de Ix1 + Ix0.
[00534] Dessa forma, o decodificador 200 pode derivar, de forma adequada, a pluralidade de parâmetros utilizando os valores de pixel e os valores de gradiente horizontal.
[00535] Adicionalmente, por exemplo, o valor de gradiente na posi- ção relativa de pixel na primeira faixa, dentre cada par de posições re- lativas de pixel, pode ser o valor de gradiente vertical na posição rela- tiva de pixel na primeira faixa. Adicionalmente, por exemplo, o valor de gradiente na posição relativa de pixel na segunda faixa, dentre cada par de posições relativas de pixel, pode ser o valor de gradiente verti- cal na posição relativa de pixel na segunda faixa. Dessa forma, o de- codificador 200 pode derivar a pluralidade de parâmetros utilizando os valores de gradiente vertical com uma pequena quantidade de compu- tação.
[00536] Adicionalmente, por exemplo, o conjunto de circuitos do de- codificador 200 pode derivar um primeiro parâmetro, de acordo com a Expressão (4.5) descrita acima. Adicionalmente, o conjunto de circui- tos do decodificador 200 pode derivar um segundo parâmetro de acor- do com a Expressão (4.6) descrita acima.
[00537] No presente documento,  denota um conjunto de posições relativas de pixel, e [i, j] denota cada uma das posições relativas de pixel. Iy1 denota o valor de gradiente vertical em cada posição relativa de pixel na segunda faixa, I0 denota o valor de pixel em cada posição relativa de pixel na primeira faixa, e I1 denota o valor de pixel em cada posição relativa de pixel na segunda faixa. Adicionalmente, abs(Iy1 + Iy0) denota o valor absoluto de Iy1 + Iy0, e o sinal (Iy1 + Iy0) denota o sinal de mais ou menos de Iy1 + Iy0. Iy0 denota o valor de gradiente vertical em cada posição relativa de pixel na primeira faixa.
[00538] Dessa forma, o decodificador 200 pode derivar, de forma adequada, a pluralidade de parâmetros utilizando os valores de pixel e os valores de gradiente vertical.
[00539] Adicionalmente, por exemplo, o conjunto de circuitos do de- codificador 200 pode derivar, para cada um dentre uma pluralidade de pares de posições relativas de pixel, o valor absoluto da soma dos va- lores de gradiente horizontal, que indica o valor absoluto da soma do valor de gradiente horizontal na posição relativa de pixel na primeira faixa, e o valor de gradiente horizontal na posição relativa de pixel na segunda faixa. O conjunto de circuitos do decodificador 200 pode, en- tão, derivar a soma total de uma pluralidade de valores absolutos dos valores de gradiente horizontal derivados, respectivamente, para a plu- ralidade de pares de posições relativas de pixel.
[00540] Adicionalmente, o conjunto de circuitos do decodificador 200 pode derivar, para cada um dentre uma pluralidade de pares de posições relativas de pixel, o valor absoluto da soma dos valores de gradiente vertical, que indica o valor absolto da soma do valor de gra- diente vertical na posição relativa de pixel na primeira faixa, e o valor de gradiente vertical na posição relativa de pixel na segunda faixa. O conjunto de circuitos do decodificador 200 pode, então, derivar a soma total de uma pluralidade de valores absolutos das somas dos valores de gradiente vertical derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel.
[00541] No presente documento, no caso no qual a soma total den- tre a pluralidade de valores absolutos das somas dos valores de gradi- ente horizontal é maior do que a soma total da pluralidade de valores absolutos das somas dos valores de gradiente vertical, o conjunto de circuitos do decodificador 200 pode aplicar os valores horizontais aos valores de gradiente. Mais especificamente, nesse caso, o conjunto de circuitos do decodificador 200 pode aplicar o valor de gradiente hori- zontal na posição relativa de pixel na primeira faixa ao valor de gradi- ente na posição relativa de pixel na primeira faixa. Mais especifica- mente, nesse caso, o conjunto de circuitos do decodificador 200 pode aplicar o valor de gradiente horizontal na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na se-
gunda faixa.
[00542] No caso oposto, no qual a soma total da pluralidade de va- lores absolutos das somas dos valores de gradiente horizontal não é maior do que a soma total dentre a pluralidade de valores absolutos das somas dos valores de gradiente vertical, o conjunto de circuitos do decodificador 200 pode aplicar valores de gradiente vertical aos valo- res de gradiente. Mais especificamente, nesse caso, o conjunto de cir- cuitos do decodificador 200 pode aplicar o valor de gradiente vertical na posição relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa. Da mesma forma, nesse caso, o conjunto de circuitos do decodificador 200 pode aplicar o valor de gradiente vertical na posição relativa de pixel na segunda faixa ao valor de gradiente na posição relativa de pixel na segunda faixa.
[00543] Dessa forma, o decodificador 200 pode aplicar os valores de gradiente horizontal ou os valores de gradiente vertical à derivação da pluralidade de parâmetros, com base na comparação entre a soma total relacionada com os valores de gradiente horizontal e a soma total relacionada com os valores de gradiente vertical. Em outras palavras, o decodificador 200 pode aplicar os valores de gradiente possuindo uma grande influência à derivação da pluralidade de parâmetros.
[00544] Adicionalmente, por exemplo, o conjunto de circuitos do de- codificador 200 pode derivar um terceiro parâmetro utilizando o primei- ro parâmetro como um denominador e o segundo parâmetro como um numerador, e gerar uma imagem de predição utilizando o terceiro pa- râmetro. Dessa forma, o decodificador 200 pode gerar, de forma ade- quada, a imagem de previsão, utilizando os parâmetros derivados com base nas relações entre a pluralidade de parâmetros.
[00545] Adicionalmente, por exemplo, o conjunto de circuitos do de- codificador 200 pode derivar, para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição re- lativa de pixel na segunda faixa utilizando um filtro de três saídas que possui um conjunto de coeficientes de filtro de [-1, 0, 1]. Dessa forma, o decodificador 200 pode derivar o valor de gradiente em cada posição de pixel de forma simples e adequada.
[00546] Adicionalmente, por exemplo, o bloco atual pode ser um sub-bloco definido como possuindo um tamanho de 4 x 4 pixels em uma unidade de codificação. O conjunto de circuitos do decodificador 200 pode, então, derivar o primeiro parâmetro e o segundo parâmetro com base em sub-bloco. Dessa forma, o decodificador 200 pode gerar de forma adequada a imagem de previsão, utilizando a pluralidade de parâmetros definida pelo tamanho de 4 x 4 pixels.
[00547] Adicionalmente, por exemplo, o conjunto de circuitos do de- codificador 200 pode derivar um parâmetro em um fluxo óptico bidire- cional utilizando o primeiro parâmetro e o segundo parâmetro, e gerar uma imagem de predição utilizando o parâmetro no fluxo óptico bidire- cional e o fluxo óptico bidirecional. Dessa forma, o decodificador 200 pode gerar, de forma adequada, a imagem de previsão. O parâmetro no fluxo óptico bidirecional pode ser o terceiro parâmetro descrito aci- ma.
[00548] Deve-se notar que o interprevisor 218 do decodificador 200 pode realizar a operação descrita acima como o conjunto de circuitos do decodificador 200. Outros Exemplos
[00549] O codificador 100 e o decodificador 200 em cada um dos exemplos descritos acima podem ser utilizados como um codificador de imagem e um decodificador de imagem, respectivamente, ou po- dem ser utilizados como um codificador de vídeo e um decodificador de vídeo, respectivamente.
[00550] Alternativamente, cada um dentre o codificador 100 e o de-
codificador 200 pode ser utilizado como um dispositivo de previsão. Em outras palavras, o codificador 100 e o decodificador 200 podem corresponder apenas ao interprevisor 126 e interprevisor 218, respec- tivamente. Os outros elementos constituintes podem ser incluídos em outros dispositivos.
[00551] Adicionalmente, pelo menos uma parte de cada exemplo descrito acima pode ser utilizada como um método de codificação ou um método de decodificação, pode ser utilizada como um método de previsão ou pode ser utilizada como outro método.
[00552] Adicionalmente, cada elemento constituinte pode ser confi- gurado com hardware dedicado, ou pode ser implementado pela exe- cução de um programa de software adequado para o elemento consti- tuinte. Cada elemento constituinte pode ser implementado por um executor de programa, tal como uma CPU, ou um processador que lê e executa um programa de software gravado em um meio de grava- ção, tal como um disco rígido ou uma memória semicondutora.
[00553] Mais especificamente, cada um dentre o codificador 100 e o decodificador 200 pode incluir um conjunto de circuitos de processa- mento e armazenador que é eletricamente conectado ao conjunto de circuitos de processamento, e é acessível a partir do conjunto de cir- cuitos de processamento. Por exemplo, o conjunto de circuitos de pro- cessamento corresponde ao processador a1 ou b1, e o armazenador corresponde à memória a2 ou b2.
[00554] O conjunto de circuitos de processamento inclui pelo menos um dentre hardware dedicado e executor de programa, e executa o processamento utilizando o armazenador. Adicionalmente, o armaze- nador armazena um programa de software que é executado pelo exe- cutor de programa quando o conjunto de circuitos de processamento inclui o executor de programa.
[00555] No presente documento, o software que implementa o codi-
ficador 100, o decodificador 200, ou similar, descrito acima, é um pro- grama indicado abaixo.
[00556] Por exemplo, o programa faz com que um computador exe- cute um método de codificação incluindo a derivação de um valor ab- soluto de uma soma de valores de gradiente, que indica um valor ab- soluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posi- ção relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa e uma posição relativa de pixel na segunda faixa, dentre uma plurali- dade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa incluindo um segundo bloco de referência para o bloco atual, a plurali- dade de pares das posições relativas de pixel sendo determinada de forma comum e com relação à primeira faixa e à segunda faixa; a deri- vação, como um primeiro parâmetro, de uma soma total dentre uma pluralidade de valores absolutos das somas dos valores de gradiente derivadas, respectivamente, para a pluralidade de pares de posições relativas de pixel; a derivação de um valor de diferença de pixel, que indica uma diferença entre um valor de pixel na posição relativa de pixel na primeira faixa e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel; a inversão ou manutenção de um sinal de mais ou menos do valor de diferença de pixel, derivado para cada um den- tre a pluralidade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma dos valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; a derivação, como um segundo parâmetro, de uma soma total dentre uma pluralidade de valores de diferença de pixel,
cada um possuindo um sinal de mais ou menos, invertido ou mantido, a pluralidade dos valores de diferença de pixel derivada, respectiva- mente, para a pluralidade de pares de posições relativas de pixel; e a geração de uma imagem de predição a ser utilizada para codificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
[00557] Por exemplo, o programa faz com que um computador exe- cute um método de decodificação incluindo derivar um valor absoluto de uma soma de valores de gradiente, que indica um valor absoluto de uma soma de um valor de gradiente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relati- va de pixel em uma segunda faixa, para cada um dentre uma plurali- dade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência para um bloco atual, a segunda faixa in- cluindo um segundo bloco de referência para o bloco atual, a plurali- dade de pares das posições relativas de pixel sendo determinada de forma comum e com relação à primeira faixa e à segunda faixa; deri- var, como um primeiro parâmetro, uma soma total dentre uma plurali- dade de valores absolutos das somas dos valores de gradiente deriva- dos, respectivamente, para a pluralidade de pares de posições relati- vas de pixel; derivar um valor de diferença de pixel, que indica uma diferença entre um valor de pixel na posição relativa de pixel na primei- ra faixa, e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posições relati- vas de pixel; inverter ou manter um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pares de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do va- lor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa; derivar, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos, invertido ou mantido, a pluralidade de valores de diferença de pixel derivada, respectivamente, para a pluralidade de pares de posi- ções relativas de pixel; e gerar uma imagem de predição a ser utilizada para decodificar o bloco atual utilizando o primeiro parâmetro e o se- gundo parâmetro.
[00558] Adicionalmente, cada elemento constituinte pode ser o con- junto de circuitos, como descrito acima. Circuitos podem compor o conjunto de circuitos, como um todo, ou podem ser circuitos separa- dos. Alternativamente, cada elemento constituinte pode ser implemen- tado como um processador geral, ou pode ser implementado como um processador exclusivo.
[00559] Adicionalmente, o processo que é executado por um ele- mento constituinte particular pode ser executado por outro elemento constituinte. Adicionalmente, a ordem de execução do processamento pode ser modificada, ou uma pluralidade de processos pode ser exe- cutada em paralelo. Adicionalmente, um codificador e um decodifica- dor podem incluir o codificador 100 e o decodificador 200.
[00560] Adicionalmente, os números ordinais tal como "primeiro" e "segundo", utilizados para fins de explicação, podem ser alterados de forma adequada. Um novo número ordinal pode ser anexado a um elemento constituinte, ou o número ordinal anexado a um elemento constituinte pode ser removido.
[00561] Apesar de aspectos do codificador 100 e do decodificador 200 terem sido descritos com base em uma pluralidade de exemplos, aspectos do codificador 100 e do decodificador 200 não estão limita- dos a esses exemplos. O escopo dos aspectos do codificador 100 e do decodificador 200 pode englobar as modalidades obteníveis por adi-
ção, a qualquer uma dessas modalidades, vários tipos de modifica- ções às quais os versados na técnica chegariam sem se desviar do escopo da presente descrição e modalidades configuráveis pela com- binação dos elementos constituintes nas diferentes modalidades.
[00562] Um ou mais dos aspectos descritos no presente documento podem ser realizados pela combinação de pelo menos parte de outros aspectos da presente descrição. Adicionalmente, um ou mais dos as- pectos descritos no presente documento podem ser realizados pela combinação, com outros aspectos, de parte dos processos indicados em qualquer um dos fluxogramas, de acordo com os aspectos, parte da configuração de qualquer um dos dispositivos, parte da sintaxe, etc. Implementações e Aplicações
[00563] Como descrito em cada uma das modalidades acima, cada bloco funcional ou operacional pode ser tipicamente realizado como uma MPU (unidade de microprocessamento) e memória, por exemplo. Ademais, os processos realizados por cada um dos blocos funcionais podem ser realizados como uma unidade de execução de programa, tal como um processador que lê e executa software (um programa) gravado em um meio de gravação, tal como a ROM. O software pode ser distribuído. O software pode ser gravado em uma variedade de meios de gravação, tal como a memória semicondutora. Note-se que cada bloco funcional também pode ser realizado como hardware (cir- cuito dedicado). Várias combinações de hardware e software podem ser usadas.
[00564] O processamento descrito em cada uma das modalidades pode ser realizado através do processamento integrado utilizando um aparelho singular (sistema) e, alternativamente, pode ser realizado através do processamento descentralizado utilizando uma pluralidade de aparelhos. Ademais, o processador que executa o programa des- crito acima pode ser um processador singular ou uma pluralidade de processadores. Em outras palavras, o processamento integrado pode ser realizado e, alternativamente, o processamento descentralizado pode ser realizado.
[00565] As modalidades da presente descrição não estão limitadas às modalidades ilustrativas acima; várias modificações podem ser rea- lizadas às modalidades ilustrativas, os resultados das quais também estão incluídos no escopo das modalidades da presente descrição.
[00566] A seguir, exemplos de aplicação do método de codificação de imagem em movimento (método de codificação de imagem) e do método de decodificação de imagem em movimento (método de deco- dificação de imagem), descritos em cada uma das modalidades acima, serão descritos, além de vários sistemas que implementam os exem- plos de aplicação. Tal sistema pode ser caracterizado como incluindo um codificador de imagem que usa o método de codificação de ima- gem, um decodificador de imagem que usa o método de decodificação de imagem, ou um codificador-decodificador de imagem que inclui ambos o codificador de imagem e o decodificador de imagem. Outras configurações de tal sistema podem ser modificadas caso a caso. Exemplos de Utilização
[00567] A figura 52 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 de tamanhos desejados, e as estações base ex106, ex107, ex108, ex109, e ex110, que são as esta- ções sem fio fixas no exemplo ilustrado, são localizadas nas células respectivas.
[00568] No sistema de fornecimento de conteúdo ex100, os disposi- tivos incluindo o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, e o smartphone ex115 são conectados à Internet ex101 através do provedor de serviços de Inter-
net ex102 ou a rede de comunicações ex104 e as estações base ex106 a ex110. O sistema de fornecimento de conteúdo ex110 pode combinar e conectar qualquer combinação dos dispositivos acima. Em várias implementações, os dispositivos podem ser conectados, direta ou indiretamente, através de uma rede de telefonia ou comunicação de campo próximo, em vez de através das estações base de ex106 a ex110. Adicionalmente, o servidor de transmissão ex103 pode ser co- nectado a dispositivos, incluindo o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114 e o smartpho- ne ex115 através, por exemplo, a Internet ex101. O servidor de trans- missão ex103 também pode ser conectado, por exemplo, a um termi- nal em um hotspot na aeronave ex117 através de satélite ex116.
[00569] Note-se que em vez das estações base ex106 a ex110, os pontos de acesso sem fio ou hotspots podem ser utilizados. O servidor de transmissão ex103 pode ser conectado à rede de comunicações ex104 diretamente em vez de através da Internet ex101 ou do prove- dor de serviços de Internet ex102, e pode ser conectado à aeronave ex117 diretamente em vez de através do satélite ex116.
[00570] A câmera ex113 é um dispositivo capaz de capturar ima- gens estáticas e vídeo, tal como uma câmera digital. O smartphone ex115 é um dispositivo smartphone, telefone celular, ou telefone do sistema pessoal de handyphone (PHS) que pode operar sob os pa- drões do sistema de comunicações móveis dos sistemas 2G, 3G, 3.9G e 4G, além do sistema de próxima geração 5G.
[00571] O eletrodoméstico ex114 é, por exemplo, um refrigerador ou um dispositivo incluído em um sistema de geração conjunta de cé- lula de combustível doméstica.
[00572] No sistema de fornecimento de conteúdo ex100, um termi- nal, incluindo uma função de captura de imagem e/ou de vídeo pode, por exemplo, transmitir ao vivo pela conexão do servidor de transmis-
são ex103 através, por exemplo, da estação base ex106. Quando da transmissão ao vivo, um terminal (por exemplo, computador ex111, dispositivo de jogos ex112, câmera ex113, eletrodoméstico ex114, smartphone ex115, ou um terminal na aeronave ex117) pode realizar o processamento de codificação descrito nas modalidades acima no conteúdo de imagem estática ou de vídeo capturado por um usuário através do terminal, pode multiplexar os dados de vídeo obtidos atra- vés da codificação e os dados de áudio obtidos pela codificação de áudio correspondente ao vídeo, e pode transmitir os dados obtidos pa- ra o servidor de transmissão ex103. Em outras palavras, o terminal funciona como o codificador de imagem de acordo com um aspecto da presente descrição.
[00573] O servidor de transmissão ex103 transmite os dados de conteúdo transmitidos para os clientes que solicitaram a transmissão. Exemplos de cliente incluem o computador ex111, o dispositivo de jo- gos ex112, a câmera ex113, o eletrodoméstico ex114, o smartphone ex115, e terminais dentro da aeronave ex117, que podem decodificar os dados codificados descritos acima. Os dispositivos que recebem os dados transmitidos podem decodificar e reproduzir os dados recebi- dos. Em outras palavras, os dispositivos podem funcionar, cada um, como um decodificador de imagem, de acordo com um aspecto da presente descrição. Processamento Descentralizado
[00574] O servidor de transmissão ex103 pode ser realizado como uma pluralidade de servidores ou computadores entre os quais as ta- refas, tal como processamento, gravação e transmissão de dados, são divididas. Por exemplo, o servidor de transmissão ex103 pode ser rea- lizado como uma rede de distribuição de conteúdo (CDN) que transmi- te o conteúdo através de uma rede conectando múltiplos servidores de borda localizados por todo o mundo. Em uma CDN, um servidor de borda, fisicamente próximo do cliente, pode ser designado dinamica- mente para o cliente. O conteúdo é armazenado temporariamente e transmitido para o servidor de borda para reduzir os tempos de carga. No caso, por exemplo, de algum tipo de erro ou mudança na conecti- vidade devido, por exemplo, a um pico no tráfego, é possível se transmitir os dados de forma estável em altas velocidades, visto que é possível se evitar as partes afetadas da rede, por exemplo, pela divi- são do processamento entre uma pluralidade de servidores de borda, ou comutar as tarefas de transmissão para um servidor de borda dife- rente e seguir com a transmissão.
[00575] A descentralização não está limitada apenas à divisão do processamento para transmissão; a codificação de dados capturados pode ser dividida entre e realizada pelos terminais, no lado do servi- dor, ou ambos. Em um exemplo, na codificação típica, o processamen- to é realizado em dois circuitos. O primeiro circuito serve para detectar o quão complicada a imagem é, quadro a quadro, ou cena a cena, ou detectar a carga de codificação. O segundo circuito serve para realizar o processamento que mantém a qualidade de imagem e aperfeiçoa a eficiência de codificação. Por exemplo, e possível se reduzir a carga de processamento dos terminais e se aperfeiçoar a qualidade e efici- ência de codificação do conteúdo, fazendo que os terminais realizem o primeiro circuito de codificação e fazendo com que o lado de servidor, que recebeu o conteúdo, realize o segundo circuito de codificação. Em tal caso, depois do recebimento de uma solicitação de decodificação, é possível que os dados codificados resultantes do primeiro circuito rea- lizado por um terminal sejam recebidos e reproduzidos em outro termi- nal quase que em tempo real. Isso possibilita a realização de uma transmissão suave em tempo real.
[00576] Em outro exemplo, a câmera ex113 ou similar extrai uma quantidade de características (uma quantidade de características) de uma imagem, comprime os dados relacionados com a quantidade de características como metadados, e transmite os metadados comprimi- dos para um servidor. Por exemplo, o servidor determina a significân- cia de um objeto com base na quantidade de características e muda a precisão de quantização de acordo para realizar a compressão ade- quada para o significado (ou significância de conteúdo) da imagem. Os dados de quantidade de características são particularmente eficientes no aperfeiçoamento da previsão e eficiência de previsão de vetor de movimento durante a segunda passagem de compressão realizada pelo servidor. Ademais, a codificação que possui uma carga de pro- cessamento relativamente baixa, tal como a codificação de compri- mento variável (VLC), pode ser manuseada pelo terminal, e a codifica- ção que possui uma carga de processamento relativamente alta, tal como a codificação aritmética binária adaptativa de contexto (CABAC), pode ser manuseada pelo servidor.
[00577] Em outro exemplo, existem casos nos quais uma pluralida- de de vídeos, aproximadamente da mesma cena, é capturada por uma pluralidade de terminais, por exemplo, em um estádio, shopping cen- ter, ou fábrica. Em tal caso, por exemplo, a codificação pode ser des- centralizada pela divisão de tarefas de processamento entre a plurali- dade de terminais que capturaram os vídeos e, se necessário, outros terminais que não capturaram os vídeos, e o servidor, com base em unidade. As unidades podem ser, por exemplo, grupos de imagens (GOP), imagens ou tiles resultando da divisão de uma imagem. Isso possibilita a redução dos tempos de carga e alcança a transmissão que mais se aproxima do tempo real.
[00578] Visto que os vídeos são aproximadamente da mesma cena, o gerenciamento e/ou instruções podem ser realizados pelo servidor, de modo que os vídeos capturados pelos terminais possam sofrer refe- rência cruzada. Ademais, o servidor pode receber dados codificados dos terminais, alterar a relação de referência entre os itens de dados, ou corrigir ou substituir imagens propriamente ditas, e, então, realizar a codificação. Isso possibilita a geração de uma transmissão com quali- dade e eficiência aumentadas para itens individuais de dados.
[00579] Adicionalmente, o servidor pode transmitir dados de vídeo depois de realizar a transcodificação para converter o formato de codi- ficação dos dados de vídeo. Por exemplo, o servidor pode converter o formato de codificação de MPEG para VP (por exemplo, VP9), pode converter H.264 em H.265, etc.
[00580] Dessa forma, a codificação pode ser realizada por um ter- minal ou um ou mais servidores. De acordo, apesar de o dispositivo que realiza a codificação ser referido como um "servidor" ou "terminal" na descrição a seguir, alguns ou todos os processos realizados pelo servidor podem ser realizados pelo terminal, e, da mesma forma, al- guns ou todos os processos realizados pelo terminal podem ser reali- zados pelo servidor. Isso também se aplica aos processos de decodifi- cação. 3D, Múltiplos Ângulos
[00581] Tem havido um aumento na utilização de imagens e vídeos combinados a partir de imagens ou vídeos de cenas diferentes captu- radas simultaneamente, ou da mesma cena capturada a partir de dife- rentes ângulos, por uma pluralidade de terminais, tal como a câmera ex113 e/ou smartphone ex115. Os vídeos capturados pelos terminais podem ser combinados com base, por exemplo, na relação de posição relativa obtida separadamente entre os terminais, ou regiões, em um vídeo possuindo pontos de características coincidentes.
[00582] Em adição à codificação das imagens em movimento bidi- mensional, 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 um terminal de recepção. Adicionalmente, quando o servidor pode obter a relação de posição relativa entre os terminais de captura de vídeo, em adição às imagens em movimento bidimensionais, o servidor pode gerar a geometria tridimensional de uma cena com base no vídeo da mesma cena capturada a partir de ângulos diferentes. O servidor pode codificar, separadamente, os da- dos tridimensionais gerados a partir, por exemplo, de uma nuvem de pontos e, com base em um resultado do reconhecimento ou rastrea- mento de uma pessoa ou objeto, utilizando os dados tridimensionais, pode selecionar ou reconstruir e gerar um vídeo a ser transmitido para um terminal de recepção, a partir dos vídeos capturados por uma plu- ralidade de terminais.
[00583] Isso permite que o usuário aproveite uma cena pela livre seleção de vídeos que correspondem aos terminais de captura de ví- deo, e permite que o usuário aproveite o conteúdo obtido pela extra- ção de um vídeo em um ponto de vista selecionado a partir dos dados tridimensionais, reconstruídos a partir de uma pluralidade de imagens ou vídeos. Adicionalmente, como com o vídeo, o som pode ser grava- do a partir de ângulos relativamente diferentes, e o servidor pode mul- tiplexar o áudio a partir de um ângulo específico ou espaço com o ví- deo correspondente, e transmitir o vídeo e áudio multiplexados.
[00584] Recentemente, o conteúdo, que é um composto do mundo real e um mundo virtual, tal como o conteúdo de realidade virtual (VR) e realidade aumentada (AR), também tem se tornado popular. No caso de imagens VR, o servidor pode criar imagens a partir de pontos de vistas de ambos os olhos esquerdo e direito, e realizar a codificação que tolera a referência entre as imagens de dois pontos de vista, tal como a codificação de múltiplas visualizações (MVC), e, alternativa- mente, pode codificar as imagens como sequências separadas sem referência. Quando as imagens são decodificadas como sequências separadas, as sequências podem ser sincronizadas quando reprodu- zidas, de modo a recriar um espaço tridimensional virtual de acordo com o ponto de vista do usuário.
[00585] No caso de imagens AR, o servidor pode sobrepor a infor- mação de objeto virtual existente em um espaço virtual na informação de câmera representando um espaço de mundo real, com base em uma posição tridimensional ou movimento a partir da perspectiva do usuário. O decodificador pode obter ou armazenar a informação de objeto virtual e dados tridimensionais, gerar imagens bidimensionais com base no movimento a partir da perspectiva do usuário, e, então, gerar dados sobrepostos pela conexão contínua de imagens. Alternati- vamente, o decodificador pode transmitir, para o servidor, o movimento da perspectiva do usuário em adição a uma solicitação por informação de objeto virtual. O servidor pode gerar dados sobrepostos com base nos dados tridimensionais armazenados no servidor de acordo com o movimento recebido, e codificar e transmitir os dados sobrepostos ge- rados para o decodificador. Note-se que os dados sobrepostos inclu- em, tipicamente, em adição aos valores RGB, um valor  que indica transparência, e o servidor configura o valor  para seções além do objeto gerado a partir de dados tridimensionais para, por exemplo, 0, e pode realizar a codificação enquanto essas seções estão transparen- tes. Alternativamente, o servidor pode configurar o fundo para um valor RGB determinado, tal como uma chave de crominância, e gerar dados nos quais as áreas, além do objeto, são configuradas como fundo. O valor RGB determinado pode ser predeterminado.
[00586] A decodificação de dados transmitidos de forma similar po- de ser realizada pelo cliente (por exemplo, os terminais), no lado do servidor, ou dividida entre os mesmos. Em um exemplo, um terminal pode transmitir uma solicitação de recepção para um servidor, o con- teúdo solicitado pode ser recebido e decodificado por outro terminal, e um sinal decodificado pode ser transmitido para um dispositivo pos- suindo um monitor. É possível se reproduzir dados com alta qualidade de imagem pelo processamento de descentralização e selecionando, adequadamente, o conteúdo independentemente da capacidade do processamento do terminal de comunicações propriamente dito. Em outro exemplo, enquanto uma TV, por exemplo, está recebendo dados de imagem que são grandes em tamanho, uma região de uma ima- gem, tal como um tile obtido pela divisão da imagem, pode ser decodi- ficada e exibida em um terminal ou terminais pessoais de um especta- dor ou espectadores da TV. Isso possibilita que os espectadores com- partilhem uma visão de imagem grande, além de possibilitar que cada espectador verifique sua área designada, ou inspecione uma região em maiores detalhes.
[00587] Em situações nas quais uma pluralidade de conexões sem fio é possível através de distâncias curtas, intermediárias e longas, in- ternamente ou externamente, pode ser possível se receber conteúdo de forma contínua utilizando-se um padrão de sistema de transmissão, tal como MPEG-DASH. O usuário pode comutar entre dados em tem- po real enquanto seleciona livremente um decodificador ou exige o aparelho incluindo o terminal de usuário, monitores dispostos interna- mente ou externamente, etc. Ademais, utilizando-se, por exemplo, a informação sobre a posição do usuário, a decodificação pode ser reali- zada enquanto se decide qual terminal manuseia a decodificação e qual terminal manuseia a exibição do conteúdo. Isso pode possibilitar o mapeamento e a exibição de informação, enquanto o usuário está em movimento a caminho de um destino, na parede de um edifício próximo no qual um dispositivo, capaz de exibir conteúdo é embutido, ou em parte do chão. Ademais, também é possível se comutar a taxa de bit dos dados recebidos com base na capacidade de acesso aos dados codificados em uma rede, tal como quando os dados codifica-
dos são armazenados temporariamente em um servidor rapidamente acessível a partir do terminal de recepção, ou quando dados codifica- dos são copiados para um servidor de borda em um serviço de distri- buição de conteúdo. Codificação Escalonável
[00588] A comutação de conteúdo será descrita com referência a uma sequência escalonável, ilustrada na figura 53, que é codificada por compressão através da implementação do método de codificação de imagem em movimento descrito nas modalidades acima. O servidor pode possuir uma configuração na qual o conteúdo é comutado en- quanto faz uso da capacidade de escalonamento temporal e/ou espa- cial de uma sequência, que é alcançada pela divisão e codificação de camadas, como ilustrado na figura 53. Note-se que pode haver uma pluralidade de sequências individuais que são do mesmo conteúdo, mas de qualidade diferente. Em outras palavras, pela determinação de qual camada decodificar, com base em fatores internos, tal como a capacidade de processamento no lado do decodificador, e fatores ex- ternos, tal como largura de banda de comunicação, o lado do decodifi- cador pode comutar livremente entre o conteúdo de baixa resolução e o conteúdo de alta resolução, durante a codificação. Por exemplo, em um caso no qual o usuário deseja continuar a assistir, por exemplo, em casa, em um dispositivo tal como uma TV conectada à Internet, a um vídeo que o usuário esteve assistindo previamente no smartphone ex115 enquanto esteve em movimento, o dispositivo pode simples- mente decodificar a mesma transmissão até uma camada diferente, o que reduz a carga do lado do servidor.
[00589] Adicionalmente, em adição à configuração descrita acima, na qual a capacidade de escalonamento é alcançada como o resultado das imagens sendo codificadas por camada, com a camada de aper- feiçoamento estando acima da camada de base, a camada de aperfei-
çoamento pode incluir metadados com base, por exemplo, em infor- mação estatística na imagem. O lado do decodificador pode gerar con- teúdo com alta qualidade de imagem pela realização da criação de imagem de super resolução em uma imagem na camada de base, com base nos metadados. A criação de imagem com super resolução pode aperfeiçoar a razão de SN enquanto mantém a resolução e/ou aumen- ta a resolução. Os metadados incluem informação para identificar um coeficiente de filtro linear ou não linear, como utilizado no processa- mento de super resolução, ou informação que identifica um valor de parâmetro no processamento de filtro, aprendizado de máquina, ou um método de quadrados médios utilizado no processamento de super resolução.
[00590] Alternativamente, uma configuração pode ser fornecida, na qual uma imagem é dividida, por exemplo, em tiles de acordo com, por exemplo, o significado de um objeto na imagem. No lado do decodifi- cador, apenas uma região parcial é decodificada pela seleção de um tile a ser decodificado. Adicionalmente, pelo armazenamento de um atributo do objeto (pessoa, carro, bola, etc.) e uma posição do objeto no vídeo (coordenadas nas imagens verticais) como metadados, o la- do do decodificador pode identificar a posição de um objeto desejado com base nos metadados e determinar qual tile ou tiles incluem esse objeto. Por exemplo, como ilustrado na figura 54, os metadados po- dem ser armazenados utilizando-se uma estrutura de armazenamento de dados diferente dos dados de pixel, tal como uma mensagem SEI (informação de aperfeiçoamento suplementar) em HEVC. Esses meta- dados indicam, por exemplo, a posição, o tamanho, ou a cor do objeto principal.
[00591] Os metadados podem ser armazenados em unidades den- tre uma pluralidade de imagens, tal como transmissão, sequência ou unidades de acesso randômico. O lado do decodificador pode obter,
por exemplo, a hora na qual uma pessoa específica aparece no vídeo, e pelo encaixe da informação sobre a hora com a informação da uni- dade de imagem, pode identificar uma imagem na qual o objeto está presente, e pode determinar a posição do objeto na imagem. Otimização de Página da Rede
[00592] A figura 55 ilustra um exemplo de uma tela de exibição de uma página da rede no computador ex111, por exemplo. A figura 56 ilustra um exemplo de uma tela de exibição de uma página de rede em smartphone ex115, por exemplo. Como ilustrado na figura 55 e na fi- gura 56, uma página de rede pode incluir uma pluralidade de links de imagem que são links para o conteúdo de imagem, e a aparência da página de rede pode diferir dependendo do dispositivo utilizado para visualizar a página de rede. Quando uma pluralidade de links de ima- gem é visualizável na tela, até que o usuário selecione explicitamente um link de imagem, ou até que o link de imagem esteja no centro aproximado da tela, ou que todo o link de imagem encaixe na tela, o aparelho de exibição (decodificador) pode exibir, como links de ima- gem, imagens estáticas incluídas no conteúdo ou imagens I; pode exi- bir vídeo, tal como um gif animado utilizando uma pluralidade de ima- gens estáticas ou imagens I; ou pode receber apenas a camada de base, e decodificar e exibir o vídeo.
[00593] Quando um link de imagem é selecionado pelo usuário, o aparelho de exibição realiza a decodificação enquanto, por exemplo, fornece a maior prioridade para a camada de base. Note-se que se houver informação no código HTML da página de rede indicando que o conteúdo é escalonável, o aparelho de exibição pode decodificar até a camada de aperfeiçoamento. Adicionalmente, a fim de se garantir a reprodução em tempo real, antes de uma seleção ser feita ou quando a largura de banda é seriamente limitada, o aparelho de exibição pode reduzir o retardo entre o momento no qual a imagem dianteira é deco-
dificada e o momento no qual a imagem decodificada é exibida (isso é, o retardo entre o início da decodificação de conteúdo até a exibição do conteúdo) pela decodificação e exibição apenas de imagens de refe- rência de avanço (imagem I, imagem P, imagem B de referência de avanço). Adicionalmente ainda, o aparelho de exibição pode ignorar propositalmente a relação de referência entre as imagens, e decodifi- car de forma aproximada todas as imagens B e P como imagens de referência de avanço, e, então, realizar a decodificação normal à me- dida que o número de imagens recebidas aumenta com o tempo. Direção Autônoma
[00594] Quando da transmissão e recebimento de imagens estáti- cas ou dados de vídeo, tal como a informação de mapa bi ou tridimen- sional para a direção autônoma ou direção assistida de um automóvel, o terminal de recepção pode receber, em adição aos dados de ima- gem pertencentes a uma ou mais camadas, a informação, por exem- plo, sobre o clima ou condições nas estradas como metadados, e as- sociar os metadados com os dados de imagem depois da decodifica- ção. Note-se que os metadados podem ser designados por camada e, alternativamente, podem ser simplesmente multiplexados com os da- dos de imagem.
[00595] Em tal caso, visto que o automóvel, o drone, a aeronave, etc., contendo o terminal de recepção, é móvel, o terminal de recepção pode receber de forma contínua e realizar a decodificação enquanto comuta entre as estações base dentre as estações base ex106 a ex110, pela transmissão da informação que indica a posição do termi- nal de recepção. Ademais, de acordo com a seleção realizada pelo usuário, a situação do usuário e/ou a largura de banda da conexão, o terminal de recepção pode selecionar dinamicamente até que ponto os metadados são recebidos, ou até que ponto a informação de mapa, por exemplo, está atualizada.
[00596] No sistema de fornecimento de conteúdo ex100, o cliente pode receber, decodificar e reproduzir, em tempo real, a informação codificada transmitida pelo usuário. Transmissão de Conteúdo Individual
[00597] No sistema de fornecimento de conteúdo ex100, em adição à alta qualidade da imagem, conteúdo longo distribuído por uma enti- dade de distribuição de vídeo, transmissão em unidifusão ou multidifu- são de imagem de baixa qualidade, e conteúdo curto a partir de um indivíduo também são possíveis. Tal conteúdo de indivíduos tem chances de aumentar ainda mais em termos de popularidade. O servi- dor pode realizar, primeiramente, o processamento de edição no con- teúdo antes do processamento de codificação, a fim de refinar o con- teúdo individual. Isso pode ser alcançado utilizando-se a configuração a seguir, por exemplo.
[00598] Em tempo real, enquanto captura conteúdo de vídeo ou imagem, ou depois que o conteúdo foi capturado e acumulado, o ser- vidor realiza o processamento de reconhecimento com base nos da- dos brutos ou dados codificados, tal como processamento de erro de captura, processamento de busca por cena, análise de significado e/ou processamento de detecção de objeto. Então, com base no resultado do processamento de reconhecimento, o servidor – quando avisado, ou automaticamente – edita o conteúdo, exemplos do qual inclui a cor- reção, tal como correção de foco e/ou manchas de movimento; remo- ção de cenas de baixa prioridade, tal como cenas que apresentam baixo brilho em comparação com outras imagens, ou imagens fora de foco; ajuste de borda de objeto; e ajuste de tom de cor. O servidor co- difica os dados editados com base no resultado da edição. É sabido que vídeos excessivamente longos tendem a receber menos visualiza- ções. De acordo, a fim de manter o conteúdo dentro de um compri- mento específico que escalone com o comprimento do vídeo original, o servidor pode, em adição às cenas de baixa prioridade descritas aci- ma, remover automaticamente as cenas com baixo movimento, com base em um resultado de processamento de imagem. Alternativamen- te, o servidor pode gerar e codificar um resumo do vídeo com base em um resultado de uma análise do significado de uma cena.
[00599] Pode haver casos nos quais o conteúdo individual pode in- cluir conteúdo que infringe um direito autoral, um direito moral, um di- reito de imagem, etc. Tal caso pode resultar em uma situação desfavo- rável para o criador, tal como quando o conteúdo é compartilhado além do escopo pretendido pelo criador. De acordo, antes da codifica- ção, o servidor pode, por exemplo, editar as imagens de modo a des- focar os rostos das pessoas na periferia da tela ou desfocar o interior de uma casa, por exemplo. Adicionalmente, o servidor pode ser confi- gurado para reconhecer os rostos das pessoas, além de uma pessoa registrada nas imagens a serem codificadas, e quando tais rostos apa- recem em uma imagem, pode aplicar um filtro tipo mosaico, por exem- plo, ao rosto da pessoa. Alternativamente, como o pré ou pós- processamento para codificação, o usuário pode especificar, por moti- vos de direitos autorais, uma região de uma imagem incluindo uma pessoa ou uma região do fundo a ser processado. O servidor pode processar a região especificada, por exemplo, pela substituição da re- gião por uma imagem diferente, ou desfocando a região. Se a região incluir uma pessoa, a pessoa pode ser rastreada na imagem em mo- vimento e a região da cabeça da pessoa pode ser substituída por outra imagem à medida que a pessoa se move.
[00600] Visto que existe uma demanda por observação em tempo real de conteúdo produzido por indivíduos, que tende a ser pequeno em tamanho de dados, o decodificador pode primeiro receber a cama- da de base como a prioridade mais alta, e realizar a decodificação e a reprodução, apesar de isso poder diferir dependendo da largura de banda. Quando o conteúdo é reproduzido duas ou mais vezes, tal co- mo quando o decodificador recebe a camada de aperfeiçoamento du- rante a decodificação e reprodução da camada de base, e cria um cir- cuito de reprodução, o decodificador pode reproduzir um vídeo com alta qualidade de imagem incluindo a camada de aperfeiçoamento. Se a transmissão for codificada utilizando-se tal codificação escalonável, o vídeo pode ter baixa qualidade quando em um estado não selecio- nado ou no começo do vídeo, mas pode oferecer uma experiência na qual a qualidade da imagem da transmissão aumenta progressivamen- te de uma forma inteligente. Isso não está limitado apenas à codifica- ção escalonável; a mesma experiência pode ser oferecida pela confi- guração de uma única transmissão codificada utilizando-se a primeira transmissão como uma referência. Outros Exemplos de Implementações e Aplicação
[00601] A codificação e a decodificação podem ser realizadas por LSI (conjunto de circuitos de integração em grande escala) ex500 (ver figura 52), que é tipicamente incluída em cada terminal. LSI ex500 po- de ser configurada a partir de um único chip ou uma pluralidade de chips. O software para se codificar e decodificar imagens em movi- mento pode ser integrado a algum tipo de meio de gravação (tal como um CD-ROM, um disco flexível, ou um disco rígido) que é legível, por exemplo, pelo computador ex111, e a codificação e decodificação po- dem ser realizadas utilizando-se o software. Adicionalmente, quando o smartphone ex115 é equipado com uma câmera, os dados de vídeo obtidos pela câmera podem ser transmitidos. Nesse caso, os dados de vídeo podem ser codificados por LSI ex500 incluída no smartphone ex115.
[00602] Note-se que LSI ex500 pode ser configurada para descar- regar e ativar um aplicativo. Em tal caso, o terminal primeiro determina se é compatível com o esquema utilizado para codificar conteúdo, ou se pode 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 pode executar um serviço específico, o terminal pode primeiro descarregar um codec ou software de aplicativo e, então, ob- ter e reproduzir o conteúdo.
[00603] Além do exemplo de sistema de fornecimento de conteúdo ex100, que utiliza a Internet ex101, pelo menos o codificador de ima- gem em movimento (codificador de imagem) ou o decodificador de imagem em movimento (decodificador de imagem), descritos nas mo- dalidades acima, pode ser implementado em um sistema de difusão digital. O mesmo processamento de codificação e processamento de decodificação podem ser aplicados para transmitir e receber ondas de rádio de difusão sobrepostas com dados de áudio e vídeo multiplexa- dos utilizando, por exemplo, um satélite, apesar de isso ser direciona- do para multidifusão, ao passo que a unidifusão é mais fácil com o sis- tema de fornecimento de conteúdo ex100. Configuração de Hardware
[00604] A figura 57 ilustra detalhes adicionais do smartphone ex115 ilustrado na figura 52. A figura 48 ilustra um exemplo de configuração de smartphone ex115. O smartphone ex115 inclui a antena ex450 para transmitir e receber ondas de rádio para e da estação base ex110, da câmera ex465 capaz de capturar vídeo e imagens estáticas, e monitor ex458 que exibe os dados decodificados, tal como o vídeo capturado pela câmera ex465 e o vídeo recebido pela antena ex450. O smar- tphone ex115 inclui, adicionalmente, a interface de usuário ex466, tal como um painel de toque, unidade de saída de áudio ex457, tal como um alto falante para enviar fala ou outro áudio, unidade de entrada de áudio ex456, tal como um microfone para entrada de áudio, memória ex467, capaz de armazenar os dados decodificados, tal como o vídeo ou imagens estáticas capturados, áudio gravado, vídeo ou imagens estáticas recebidas, e correio eletrônico, além de dados decodificados, e a partição ex464, que é uma interface para SIM ex468, para autori- zar o acesso a uma rede e vários dados. Note-se que a memória ex- terna pode ser utilizada no lugar da memória ex467.
[00605] O controlador principal ex460, que pode controlar de forma profunda a exibição ex458 e a interface de usuário ex466, o circuito de suprimento de energia ex461, o controlador de entrada de interface de usuário ex462, o processador de sinal de vídeo ex455, a interface de câmera ex463, o controlador de exibição ex459, o modula- dor/demodulador ex452, o multiplexador/desmultiplexador ex453, o processador de sinal de áudio ex454, a partição ex464, e a memória ex467 são conectados através do barramento ex470.
[00606] Quando o usuário liga o botão de energia do circuito de su- primento de energia ex461, o smartphone ex115 é energizado para um estado operacional, e cada componente é suprido com energia a partir de um pacote de bateria.
[00607] O smartphone ex115 realiza o processamento, por exem- plo, da chamada e transmissão de dados, com base no controle reali- zado pelo controlador principal ex460, que inclui uma CPU, uma ROM e uma RAM. Quando da realização de chamadas, um sinal de áudio gravado pela unidade de entrada de áudio ex456 é convertido em um sinal de áudio digital pelo processador de sinal de áudio ex454, ao qual o processamento de espectro de espalhamento é aplicado pelo modulador/demodulador ex452 e a conversão de digital para analógi- co, e processamento de conversão de frequência é aplicado pelo transmissor/receptor ex451, e o sinal resultante é transmitido através da antena ex450. Os dados recebidos são amplificados, convertidos em frequência, e convertidos de analógico para digital, o espectro de espalhamento inverso processado pelo modulador/demodulador ex452, convertidos em um sinal de áudio analógico pelo processador de sinal de áudio ex454 e, então, enviados a partir da unidade de saí- da de áudio ex457. No modo de transmissão de dados, dados de tex- to, imagem estática ou vídeo podem ser transmitidos sob o controle de um controlador principal ex460 através do controlador de entrada de interface de usuário ex462 com base na operação da interface de usu- ário ex466 do corpo principal, por exemplo. O processamento de transmissão e recepção similar é realizado. No modo de transmissão de dados, quando do envio de um vídeo, imagem estática ou vídeo e áudio, o processador de sinal de vídeo ex455 codifica por compressão, através do método de codificação de imagem em movimento descrito nas modalidades acima, um sinal de vídeo armazenado na memória ex467 ou um sinal de vídeo registrado a partir da câmera ex465, e transmite os dados de vídeo codificados para o 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 utilizando um esquema determinado, modula e converte os dados utilizando o modulador/demodulador (circuito de modula- dor/demodulador) ex452 e transmissor/receptor ex451, e transmite o resultado através da antena ex450. O esquema determinado pode ser predeterminado.
[00608] Quando o vídeo anexado a um e-mail ou chat, ou um vídeo com link para uma página de rede, é recebido, por exemplo, a fim de decodificar os dados multiplexados recebidos através da antena ex450, o multiplexador/desmultiplexador ex453 desmultiplexa os da- dos multiplexados para dividir os dados multiplexados em uma se- quência de bits de dados de vídeo e uma sequência de bits de dados de áudio, supre os dados de vídeo codificados para o processador de sinal de vídeo ex455 através do barramento sincronizado ex470, e su- pre os dados de áudio codificados para o processador de sinal de áu- dio ex454 através do barramento sincronizado ex470. O processador de sinal de vídeo ex455 decodifica o sinal de vídeo utilizando um mé- todo de decodificação de imagem em movimento que corresponde ao método de codificação de imagem em movimento descrito nas modali- dades acima, e o vídeo, ou uma imagem estática, incluído no arquivo de imagem em movimento com link é exibido no monitor ex458 através do controlador de exibição ex459. O processador de sinal de áudio ex454 decodifica o sinal de áudio e envia o áudio a partir da unidade de saída de áudio ex457. Visto que a transmissão em tempo real está se tornando cada vez mais popular, pode haver casos nos quais a re- produção do áudio pode ser socialmente inadequada, dependendo do ambiente do usuário. De acordo, como um valor inicial, uma configura- ção na qual apenas os dados de vídeo são reproduzidos, isso é, o si- nal de áudio não é reproduzido, pode ser preferível; o áudio pode ser sincronizado e reproduzido apenas quando um registro, tal como quando o usuário clica nos dados de vídeo, é recebido.
[00609] Apesar de o smartphone ex115 ter sido utilizado no exem- plo acima, outras implementações são concebíveis: um terminal trans- ceptor incluindo ambos um codificador e um decodificador; um terminal transmissor incluindo apenas um codificador; e um terminal receptor incluindo apenas um decodificador. Na descrição do sistema de difu- são digital, um exemplo é fornecido, no qual os dados multiplexados obtidos como um resultado da multiplexação dos dados de vídeo com os dados de áudio, são recebidos ou transmitidos. Os dados multiple- xados, no entanto, podem ser dados de vídeo multiplexados com da- dos além dos dados de áudio, tal como dados de texto relacionados com o vídeo. Adicionalmente, os dados de vídeo propriamente ditos,
em vez dos dados multiplexados, podem ser recebidos ou transmiti- dos.
[00610] Apesar de o controlador principal ex460, incluindo uma CPU, ser descrito como controlando os processos de codificação ou decodificação, vários terminais frequentemente incluem GPUs. De acordo, uma configuração é aceitável, na qual uma grande área é pro- cessada de uma vez fazendo-se uso da capacidade de desempenho da GPU através da memória compartilhada pela CPU e GPU, ou a memória incluindo um endereço que é gerenciado de modo a permitir a utilização comum pela CPU e GPU. Isso possibilita o encurtamento do tempo de codificação, a manutenção da natureza de tempo real da transmissão, e a redução do retardo. Em particular, o processamento relacionado com a estimativa de movimento, filtragem de desbloqueio, desvio adaptativo de amostra (SAO), e transformação/quantização po- de ser efetivamente realizado pela GPU em vez de pela CPU em uni- dades de imagens, por exemplo, tudo de uma só vez. Aplicabilidade Industrial
[00611] A presente descrição é aplicável, por exemplo, a receptores de televisão, gravadores de vídeo digital, sistemas de navegação de automóveis, telefones móveis, câmeras digitais, câmeras de vídeo di- gital, sistemas de teleconferência, espelhos eletrônicos, etc. Referências Numéricas nos Desenhos 100 codificador 102 divisor 104 subtraidor 106 transformador 108 quantizador 110 codificador por entropia 112,204 quantizador inverso 114,206 transformador inverso
116,208 somador 118,210 memória de bloco 120,212 filtro de circuito 122,214 memória de quadro 124,216 intraprevisor 126,218 interprevisor 128,220 controlador de previsão 200 decodificador 202 decodificador por entropia 1201 determinador delimite 1202, 1204 1206 comutador 1023 determinador de filtro 1205 executor de filtragem 1207 determinador de características de filtro 1208 determinador de processo a1, b1 processador a2, b2 memória

Claims (20)

REIVINDICAÇÕES
1. Codificador (dispositivo), caracterizado pelo fato de com- preender: um conjunto de circuitos; e uma memória conectada ao conjunto de circuitos; onde, durante a operação, o conjunto de circuitos: deriva um valor absoluto de uma soma de valores de gradi- ente, que indica um valor absoluto de uma soma de um valor de gradi- ente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência pa- ra um bloco atual, a segunda faixa incluindo um segundo bloco de re- ferência para o bloco atual, a pluralidade de pares de posições relati- vas de pixel sendo determinada de forma comum e relativa para a pri- meira faixa e segunda faixa; deriva, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos de somas de valores de gradien- te derivados, respectivamente, para a pluralidade de pares de posi- ções relativas de pixel; deriva um valor de diferença de pixel, que indica uma dife- rença entre um valor de pixel na posição relativa de pixel na primeira faixa, e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre uma pluralidade de pares de posições relativas de pixel; inverte, ou mantém, um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pa- res de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa; deriva, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo um sinal de mais ou menos invertido, ou mantido, a pluralidade de va- lores de diferença de pixel derivada, respectivamente, para a plurali- dade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para codificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
2. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de: para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa ser um valor de gradiente horizontal na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa ser um valor de gradiente horizontal na posição relativa de pixel na segunda faixa.
3. Codificador, de acordo com a reivindicação 2, caracteri- zado pelo fato de o conjunto de circuitos derivar: o primeiro parâmetro de acordo com a seguinte expressão: [Matemática 1] [i, j]abs(Ix1 + Ix0); e o segundo parâmetro de acordo com a seguinte expressão: [Matemática 2] [i, j](- sinal(Ix1 + Ix0) x (I0 – I1)), onde:  denota um conjunto dentre a pluralidade de pares de po- sições relativas de pixel;
[i, j] denota cada uma das posições relativas de pixel incluí- das na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralidade de pares de posições relativas de pixel, Ix0 denota um valor de gradiente horizontal em uma posição relativa de pixel na primeira faixa, e Ix1 denota um valor de gradiente horizontal em uma posição relativa de pixel na segunda fai- xa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda faixa; abs (Ix1 + Ix0) denota um valor absoluto de Ix1 + Ix0; e sinal (Ix1 + Ix0) denota um sinal de mais ou menos de Ix1 + Ix0.
4. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de: para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa ser um valor de gradiente vertical na posição relativa de pixel na primeira faixa; e o valor de gradiente na posição relativa de pixel na segunda faixa ser um valor de gradiente vertical na posição relativa de pixel na segunda faixa.
5. Codificador, de acordo com a reivindicação 4, caracteri- zado pelo fato de o conjunto de circuitos derivar: o primeiro parâmetro de acordo com a seguinte expressão: [Matemática 3] [i, j]abs(Iy1 + Iy0); e o segundo parâmetro de acordo com a seguinte expressão: [Matemática 4]
[i, j](-sinal(Iy1 + Iy0) x (I0 – I1)), onde  denota um conjunto da pluralidade de pares de posições relativas de pixel; [i, j] denota cada uma das posições relativas de pixel incluí- das na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralidade de pares de posições relativas de pixel, Iy0 denota um valor de gradiente vertical em uma po- sição relativa de pixel na primeira faixa, e Iy1 denota um valor de gradi- ente vertical em uma posição relativa de pixel na segunda faixa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda faixa; abs (Iy1 + Iy0) denota um valor absoluto de Iy1 + Iy0; e sinal (Iy1 + Iy0) denota um sinal de mais ou menos de Iy1 + Iy0.
6. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de: o conjunto de circuitos: derivar, para cada um dentre a pluralidade de pares de po- sições relativas de pixel, um valor absoluto de uma soma de gradien- tes verticais que indica um valor absoluto de uma soma de um valor de gradiente vertical na posição relativa de pixel na primeira faixa e um valor de gradiente vertical na posição relativa pixel na segunda faixa, e derivar uma soma total dentre uma pluralidade de valores absolutos das somas de valores de gradiente vertical derivados, respectivamen- te, para a pluralidade de pares de posições relativas de pixel; quando a soma total da pluralidade de valores absolutos das somas dos valores de gradiente horizontal é maior do que a soma total da pluralidade de valores absolutos das somas dos valores de gradiente vertical, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel; aplicar o valor de gradiente horizontal na posi- ção relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa; e aplicar o valor de gradiente hori- zontal na posição relativa de pixel na segunda faixa ao valor de gradi- ente na posição relativa de pixel na segunda faixa; e quando a soma total da pluralidade de valores absolutos das somas de valores de gradiente horizontal não for maior do que a soma total da pluralidade de valores absolutos das somas dos valores de gradiente vertical, para cada um dentre a pluralidade de pares de posições relativas de pixel; aplicar o valor de gradiente vertical na po- sição relativa de pixel na primeira faixa ao valor de gradiente na posi- ção relativa de pixel na primeira faixa; e aplicar o valor de gradiente vertical na posição relativa de pixel na segunda faixa ao valor de gra- diente na posição relativa de pixel na segunda faixa.
7. Codificador, de acordo com qualquer uma das reivindica- ções 1 a 6, caracterizado pelo fato de: o conjunto de circuitos derivar um terceiro parâmetro utili- zando o primeiro parâmetro como um denominador e o segundo pa- râmetro como um numerador; e gerar a imagem de predição utilizando o terceiro parâmetro.
8. Codificador, de acordo com qualquer uma das reivindica- ções 1 a 7, caracterizado pelo fato de o conjunto de circuitos derivar, para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa utilizando um filtro de três saídas que possui um coeficiente de filtro de [-1, 0, 1].
9. Codificador, de acordo com qualquer uma das reivindica-
ções 1 a 8, caracterizado pelo fato de o bloco atual ser um sub-bloco definido como possuindo um tamanho de 4 x 4 pixels em uma unidade de codificação; e o conjunto de circuitos derivar o primeiro parâmetro e o se- gundo parâmetro com base em sub-bloco.
10. Decodificador, caracterizado pelo fato de compreender: um conjunto de circuitos; e memória conectada ao conjunto de circuitos; onde, em operação, o conjunto de circuitos: deriva um valor absoluto de uma soma de valores de gradi- ente, que indica um valor absoluto de uma soma de um valor de gradi- ente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência pa- ra um bloco atual, a segunda faixa incluindo um segundo bloco de re- ferência para o bloco atual, a pluralidade de pares de posições relati- vas de pixel sendo determinada de forma comum e relativa para a pri- meira faixa e a segunda faixa; deriva, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas de valores de gradi- ente derivados, respectivamente, para a pluralidade de pares de posi- ções relativas de pixel; deriva um valor de diferença de pixel que indica uma dife- rença entre um valor de pixel na posição relativa de pixel na primeira faixa e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel;
inverte ou mantém um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pa- res das posições relativas de pixel, de acordo com um sinal de mais ou menos da soma de valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa; deriva, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos invertido, ou mantido, a pluralidade de valores de diferença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gera uma imagem de predição a ser utilizada para decodifi- car o bloco atual utilizando o primeiro parâmetro e o segundo parâme- tro.
11. Decodificador, de acordo com a reivindicação 10, carac- terizado pelo fato de, para cada um dentre a pluralidade de pares das posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa ser um valor de gradiente horizontal na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa ser um valor de gradiente horizontal na posição relativa de pixel na segunda faixa.
12. Decodificador, de acordo com a reivindicação 11, carac- terizado pelo fato de o conjunto de circuitos derivar: o primeiro parâmetro de acordo com a expressão a seguir [Matemática 5] [i,j]abs(Ix1 + Ix0); e o segundo parâmetro de acordo com a expressão a seguir: [Matemática 6] [i,j](-sinal(Ix1 + Ix0) x (I0 – I1);
onde  denota um conjunto dentre a pluralidade de pares de po- sições relativas de pixel; [i, j] denota cada uma das posições relativas de pixel incluí- das na pluralidade de pares de posições relativas de pixel; para cada um dentre a pluralidade de pares de posições relativas de pixel, Ix0 denota um valor de gradiente horizontal em uma posição relativa de pixel na primeira faixa, e Ix1 denota um valor de gradiente horizontal em uma posição relativa de pixel na segunda fai- xa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda faixa; abs(Ix1 + Ix0) denota um valor absoluto de Ix1 + Ix0; e sinal(Ix1 + Ix0) denota um sinal de mais ou menos de Ix1 + Ix0.
13. Decodificador, de acordo com a reivindicação 10, carac- terizado pelo fato de para cada um dentre a pluralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa é um valor de gradiente vertical na posição rela- tiva de pixel na primeira faixa; e o valor de gradiente na posição relativa de pixel na segunda faixa é um valor de gradiente vertical na posição relativa de pixel na segunda faixa.
14. Decodificador, de acordo com a reivindicação 13, carac- terizado pelo fato de o conjunto de circuitos derivar: o primeiro parâmetro de acordo com a seguinte expressão: Matemática 7 [i, j]abs(Iy1 + Iy0); e o segundo parâmetro de acordo com a seguinte expressão:
Matemática 8 [i, j](-sinal(Iy1 + Iy0) x I0 – I1), onde  denota um conjunto dentre a pluralidade de pares de po- sições relativas de pixel; [i, j] denota cada uma das posições relativas de pixel incluí- das na pluralidade de pares de posições relativas de pixel; para cada um dentre os pares de posições relativas de pixel, Iy0 denota um valor de gradiente vertical em uma posição relativa de pixel na primeira faixa, e Iy1 denota um valor de gradiente vertical em uma posição relativa de pixel na segunda faixa; I0 denota um valor de pixel na posição relativa de pixel na primeira faixa; I1 denota um valor de pixel na posição relativa de pixel na segunda faixa; abs(Iy1 + Iy0) denota um valor absoluto de Iy1 + Iy0; e sinal (Iy1 + Iy0) denota um sinal de mais ou menos de Iy1 + Iy0.
15. Decodificador, de acordo com a reivindicação 10, carac- terizado pelo fato de o conjunto de circuitos: derivar, para cada um dentre a pluralidade de pares de po- sições relativas de pixel, um valor absoluto de uma soma de gradien- tes horizontais, que indica um valor absoluto de uma soma de um valor de gradiente horizontal na posição relativa de pixel na primeira faixa e um valor de gradiente horizontal na posição relativa de pixel na segun- da faixa, e deriva uma soma total de uma pluralidade de valores abso- lutos de somas de valores de gradiente horizontal derivados, respecti- vamente, para a pluralidade de pares de posições relativas de pixel; derivar, para cada uma dentre a pluralidade de pares de posições relativas de pixel, um valor absoluto de uma soma de gradi-
entes verticais, que indica um valor absoluto de uma soma de um valor de gradiente vertical na posição relativa de pixel na primeira faixa e um valor de gradiente vertical na posição relativa de pixel na segunda fai- xa, e derivar uma soma total dentre uma pluralidade de valores absolu- tos das somas de valores de gradiente vertical derivados, respectiva- mente, para a pluralidade de pares de posições relativas de pixel; quando a soma total da pluralidade de valores absolutos das somas de valores de gradiente horizontal for maior do que a soma total da pluralidade de valores absolutos das somas de valores de gra- diente vertical, para cada um dentre a pluralidade de pares de posi- ções relativas de pixel: aplicar o valor de gradiente horizontal na posi- ção relativa de pixel na primeira faixa ao valor de gradiente na posição relativa de pixel na primeira faixa; e aplicar o valor de gradiente hori- zontal na posição relativa de pixel na segunda faixa ao valor de gradi- ente na posição de pixel relativa na segunda faixa; e quando a soma total da pluralidade de valores absolutos das somas dos valores de gradiente horizontal não for maior do que a soma total da pluralidade de valores absolutos das somas dos valores de gradiente vertical, para cada um dentre a pluralidade de pares de posições relativas de pixel: aplicar o valor de gradiente vertical na po- sição relativa de pixel na primeira faixa ao valor de gradiente na posi- ção relativa de pixel na primeira faixa; e aplicar o valor de gradiente vertical na posição relativa de pixel na segunda faixa ao valor de gra- diente na posição relativa de pixel na segunda faixa.
16. Decodificador, de acordo com qualquer uma das reivin- dicações 10 a 15, caracterizado pelo fato de o conjunto de circuitos: derivar um terceiro parâmetro utilizando o primeiro parâme- tro como um denominador e o segundo parâmetro como um numera- dor; e gerar a imagem de predição utilizando o terceiro parâmetro.
17. Decodificador, de acordo com qualquer uma das reivin- dicações 10 a 16, caracterizado pelo fato de: o conjunto de circuitos derivar, para cada um dentre a plu- ralidade de pares de posições relativas de pixel, o valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa utilizando um filtro de três saídas possuindo um conjunto de coeficiente de filtro de [-1, 0, 1].
18. Decodificador, de acordo com qualquer uma dentre as reivindicações 10 a 17, caracterizado pelo fato de: o bloco atual ser um sub-bloco definido como possuindo um tamanho de 4 x 4 pixels em uma unidade de codificação; e o conjunto de circuitos derivar o primeiro parâmetro e o se- gundo parâmetro com base em sub-bloco.
19. Método de codificação, caracterizado pelo fato de com- preender: derivar um valor absoluto de uma soma de valores de gra- diente, que indica um valor absoluto de uma soma de um valor de gra- diente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência pa- ra um bloco atual, a segunda faixa incluindo um segundo bloco de re- ferência para o bloco atual, a pluralidade de pares de posições relati- vas de pixel sendo determinada de forma comum e relativa para a pri- meira faixa e a segunda faixa; derivar, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas de valores de gradi- ente derivados, respectivamente, para a pluralidade de pares de posi-
ções relativas de pixel; derivar um valor de diferença de pixel que indica uma dife- rença entre um valor de pixel na posição relativa de pixel na primeira faixa e um valor de pixel na posição relativa de pixel na segunda faixa, para cada um dentre a pluralidade de pares de posições relativas de pixel; inverter, ou manter, um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pa- res de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma dos valores de gradiente que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; derivar, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo o sinal de mais ou menos, invertido, ou mantido, a pluralidade de valores de diferença de pixel derivada, respectivamente, para a pluralidade de pares de posições relativas de pixel; e gerar uma imagem de predição a ser utilizada para codificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro.
20. Método de decodificação, caracterizado pelo fato de compreender: derivar um valor absoluto de uma soma de valores de gra- diente, que indica um valor absoluto de uma soma de um valor de gra- diente em uma posição relativa de pixel em uma primeira faixa, e um valor de gradiente em uma posição relativa de pixel em uma segunda faixa, para cada um dentre uma pluralidade de pares de uma posição relativa de pixel na primeira faixa, e uma posição relativa de pixel na segunda faixa, dentre uma pluralidade de pares de posições relativas de pixel, a primeira faixa incluindo um primeiro bloco de referência pa- ra um bloco atual, a segunda faixa incluindo um segundo bloco de re-
ferência para o bloco atual, a pluralidade de pares de posições relati- vas de pixel sendo determinada de forma comum e relativa para a pri- meira faixa e a segunda faixa; derivar, como um primeiro parâmetro, uma soma total de uma pluralidade de valores absolutos das somas dos valores de gradi- ente derivados, respectivamente, para a pluralidade de pares de posi- ções relativas de pixel; derivar um valor de diferença de pixel, que indica uma dife- rença entre um valor de pixel na posição relativa de pixel na primeira faixa e um valor de pixel na posição relativa de pixel na segunda faixa para cada um dentre a pluralidade de pares de posições relativas de pixel; inverter, ou manter, um sinal de mais ou menos do valor de diferença de pixel derivado para cada um dentre a pluralidade de pa- res de posições relativas de pixel, de acordo com um sinal de mais ou menos da soma dos valores de gradiente, que indica a soma do valor de gradiente na posição relativa de pixel na primeira faixa, e o valor de gradiente na posição relativa de pixel na segunda faixa; derivar, como um segundo parâmetro, uma soma total de uma pluralidade de valores de diferença de pixel, cada um possuindo um sinal de mais ou menos, invertido ou mantido, a pluralidade de va- lores de diferença de pixel derivada, respectivamente, para a plurali- dade de pares de posições relativas de pixel; e gerar uma imagem de predição a ser utilizada para decodi- ficar o bloco atual utilizando o primeiro parâmetro e o segundo parâ- metro.
Petição 870210010821, de 01/02/2021, pág. 188/243 Codificador Divisor Transformador Quantizador por entropia
Quantizador inverso 1/56
Transformador inverso
Controlador de previsão Memória Intraprevisor de bloco
Memória Filtro de Interprevisor de quadro circuito
Parâmetro de previsão
Iniciar processo de codificação
Dividir imagem em blocos
Selecionar padrão de divisão
Gerar bloco de previsão
Gerar bloco de diferença
Gerar bloco de coeficiente
Codificar coeficiente/parâmetro de previsão
Restaurar bloco de diferença
Gerar bloco de imagem decodificada
Filtragem
Codificação de toda a imagem está Não terminada?
Sim Encerrar processo de codificação
Ordem de codificação/ordem de decodificação
Fatia 1
Fatia 2
Fatia 3
Fatia 4
Ordem de codificação/ordem de decodificação
Fatia 1 Fatia 2
Fatia 3 Fatia 4
Tipo de transformação Função básica
Onde
Onde
Direção: vertical Direção: vertical Localização: 0 Localização: 1
Direção: horizontal Direção: horizontal Localização: 0 Localização: 1
Petição 870210010821, de 01/02/2021, pág. 195/243 Imagem a ser filtrada Determinador de limite Não Determinação
DESLIGADA 8/56 Sim Executor Determinador Determinação de filtragem de filtro LIGADA Determinador de processo Determinador de característica de filtro Imagem filtrada
Bloco P Bloco Q
Bloco Q
Condições para os blocos P e Q localizados através Valores do limite para o qual o valor Bs deve ser determinado Bs
Pelo menos um dos blocos é bloco de intraprevisão Pelo menos um dos blocos inclui coeficiente de transformação diferente de zero e possui um lado que coincide com o limite TU O valor absoluto da diferença entre vetores de movimento dos dois blocos através do limite corresponde a um ou mais pixels
As imagens de referência para compensação de movimento dos dois blocos através do limite ou os números de vetores de movimento dos dois blocos são diferentes
Outros
Início
Gerar imagem de previsão
Fim
Início
Gerar imagem Gerar imagem Gerar imagem de previsão utilizando de previsão utilizando de previsão utilizando primeiro método segundo método terceiro método
Selecionar imagem de previsão
Fim
Início
Gerar imagem Gerar imagem de previsão de previsão utilizando utilizando interprevisão intraprevisão
Avaliação
Selecionar imagem de previsão
Fim
0: plano
Início
Selecionar candidato a MV Determinar vetor de movimento Derivar MV Gerar imagem de previsão Compensação de Gerar imagem movimento (previsão de previsão de movimento compensado)
Gerar residual de previsão Gerar residual de previsão
Fim
Início
Derivar MV Derivar MV no modo no modo no qual no qual a informação a informação de de movimento não movimento é codificada é codificada
Inter normal, mistura, afim Fim
Início
Derivar MV no modo Derivar MV no modo no qual a diferença no qual a diferença de MV é codificada de MV não é codificada
Inter normal, inter afim FRUC, mistura, Fim mistura afim
Petição 870210010821, de 01/02/2021, pág. 203/243 Início
Informação de modo de interprevisão Método no qual Método no qual a diferença de MV a diferença de 16/56 não é codificada MV é codificada
Derivar MV Derivar MV Derivar MV Derivar MV utilizando o no modo no modo no modo método de codificação de mistura FRUC afim de diferença de MV
Fim
<Informação Início <Saída de transmissão> de referência> Iniciar circuito para cada bloco
MV Obter candidato a MV do bloco (gerar lista de candidatos a MV) codificado Extrair candidatos a previsor de MV Informação Selecionar previsor de MV de seleção de previsor de MV Imagem de referência Derivar MV codificada Diferença de MV Processo de compensação de movimento Encerrar circuito para cada bloco Fim
<Informação Início <Saída de transmissão> de referência>
Iniciar circuito para cada bloco
MV do Obter candidato a MV (gerar bloco lista de candidatos a MV) codificado
Selecionar MV Informação de seleção de MV Imagem de referência Processo de compensação codificada de movimento
Encerrar circuito para cada bloco
Fim
Imagem de Imagem atual referência codificada
Petição 870210010821, de 01/02/2021, pág. 206/243 19/56
Misturar lista de Previsor de MV Previsor de MV Previsor de MV Previsor de MV Previsor Previsor Previsor candidatos espacialmente espacialmente espacialmente espacialmente de MV de MV de MV a previsor vizinho 1 vizinho 2 vizinho 3 vizinho 4 combinado 5 combinado 6 zero 7 de MV
Selecionar um previsor de MV a partir da lista de previsores de MV e designar como MV para o bloco atual
<Informação Início <Saída de transmissão> de referência>
Iniciar circuito para cada bloco
MV do Obter candidato a MV bloco (gerar lista de candidatos a MV) codificado
Selecionar melhor candidato a MV
Imagem Estimativa na região que cerca de referência o melhor candidato a MV codificada
Processo de compensação de movimento
Encerrar circuito para cada bloco
Fim de movimento Trajetória
Imagem atual Bloco atual
Gabarito
Bloco atual Imagem atual
Bloco codificado
Bloco atual
Bloco codificado Bloco atual
Bloco codificado Bloco atual
<Informação <Saída de transmissão> de referência> Início
Iniciar circuito para cada bloco
MV Informação de bloco Derivar previsor de MV no ponto de controle de seleção de codificado previsor de MV
Realizar o circuito para cada sub-bloco
Imagem de referência Calcular MV afim codificada
Compensação de movimento afim
Realizar circuito para cada sub-bloco
Encerrar circuito para cada bloco
Fim
Bloco codificado
Bloco atual
Bloco codificado
Bloco atual
<Informação <Saída de transmissão> de referência> Início
Iniciar o circuito para cada bloco
MV Informação Derivar o previsor de MV do bloco de seleção de no ponto de controle codificado previsor de MV
Circuito de estimativa de movimento
Atualizar previsor de MV
Realizar circuito para cada sub-bloco
Imagem de referência Calcular MV afim codificada
Compensação de movimento afim
Realizar circuito para cada sub-bloco
Circuito de estimativa de movimento
Determinar MV no ponto de controle Diferença de MV Processo de compensação de movimento
Encerrar circuito para cada bloco
Fim
Bloco codificado Bloco atual
Bloco codificado Bloco atual
Início Derivar MV no modo de mistura
A estimativa de MV Não foi realizada? Sim Derivar MV final pela Determinar MV estimativa da região circundante do MV derivado como derivado MV final Fim
Petição 870210010821, de 01/02/2021, pág. 218/243 Gabarito gerado com base no pixel de referência do candidato a MV (L0) e pixel de referência do candidato a MV (L1) 31/56
Candidato a MV (L0) Candidato a MV (L1)
Bloco atual
Primeira imagem Imagem atual Segunda imagem de referência de referência (L1)
Início Gerar imagem de previsão Corrigir imagem de previsão Fim Início Derivar MV Gerar imagem de previsão
O processo Não de correção é realizado? Sim Enviar imagem Corrigir a imagem de previsão não de previsão para gerar corrigida como imagem de previsão final imagem de previsão final Fim
Início Derivar MV
O processo de correção Não de luminescência é realizado? Sim Gerar imagem Gerar imagem de previsão pela de previsão sem realizar realização da correção a correção de luminescência de luminescência Fim
Início
Obter MV a partir do bloco vizinho esquerdo
Obter imagem de previsão por MV_L
Corrigir imagem de previsão pela sobreposição ponderada de Pred_L
Obter MV do bloco superior vizinho
Obter imagem de previsão por MV_U
Corrigir imagem de previsão pela sobreposição ponderada de Pred_U
Fim
Petição 870210010821, de 01/02/2021, pág. 222/243 Imagem de referência Imagem atual
Bloco vizinho superior
Bloco atual 35/56
Bloco vizinho esquerdo
Imagem de previsão final
Primeira partição Primeiro MV
Segundo MV
Segunda partição
Bloco atual
Imagem atual (imagem B)
Imagem de referência Imagem atual
Bloco atual
Regiões de referência circundantes para correção de luminescência
Calcular parâmetro de correção de luminescência
Processamento de correção de luminescência
Imagem de referência Imagem de previsão
Codificador
Processador
Memória
Petição 870210010821, de 01/02/2021, pág. 227/243 Decodificador Quantizador Transformador Filtro de por entropia inverso inverso circuito 40/56
Controlador de previsão Memória Intraprevisor de bloco
Memória Interprevisor de quadro
Parâmetro de previsão
Iniciar processo de decodificação Identificar divisão de padrão Decodificar coeficiente/parâmetro de previsão Restaurar bloco de diferença Gerar bloco de previsão Gerar bloco de imagem decodificada Filtragem
A Não decodificação de toda a imagem foi encerrada? Sim Encerrar o processo de decodificação
Início
Gerar imagem de previsão
Fim
Início
Que Primeiro método modo é Terceiro método determinado?
Segundo método
Gerar imagem de Gerar imagem Gerar a imagem previsão utilizando de previsão utilizando de previsão utilizando o primeiro método o segundo método o terceiro método
Fim
<Informação > <Entrada de transmissão> de referência Início
Iniciar circuito para cada bloco
MV Obter candidato a MV do bloco (gerar lista de candidatos a MV) decodificado
Extrair candidatos a previsor de MV
Selecionar candidato Informação a previsor de MV de seleção de previsor de MV
Derivar MV Diferença de MV
Imagem de referência Processo de compensação de movimento decodificada
Encerrar circuito para cada bloco
Fim
Decodificador
Processador
Memória
Início
Calcular primeira soma para o bloco atual utilizando valores de gradiente horizontal no primeiro bloco de referência e segundo bloco de referência
Calcular segunda soma para o bloco atual, utilizando valores de gradiente vertical no primeiro bloco de referência e segundo bloco de referência
A primeira soma é maior do que a Não segunda?
Sim
Determinar bioparâmetro sem utilizar Determinar bioparâmetro sem utilizar valor de gradiente vertical para valor de gradiente horizontal para o bloco atual o bloco atual
Decodificar o bloco atual utilizando o bioparâmetro
Fim
Petição 870210010821, de 01/02/2021, pág. 233/243 Referência 5 Referência 5 46/56
Valores de pixel na CU atual na Valores de pixel na imagem de referência imagem de referência L1 L0 imagem atual Valor de gradiente Bloco Pixel horizontal de [3,2] atual Valor de gradiente Primeiro no bloco é -5 + 2 = -3 Segundo bloco de atual quando o filtro horizontal de [3,2] bloco de referência de gradiente é -2 + 5 = 3 referência quando o filtro horizontal é de gradiente [-1, 0, 1] horizontal é [-1, 0, 1]
Petição 870210010821, de 01/02/2021, pág. 234/243 Referência 5 Referência 5 47/56
Valores de pixel na CU atual na Valores de pixel na imagem de referência imagem de referência L1 L0 imagem atual Valor de gradiente Bloco atual Pixel horizontal de [3,2] Primeiro no bloco é -5 + 2 = -3 Valor de gradiente Segundo bloco de atual quando o filtro horizontal de [3,2] referência bloco de referência de gradiente é -2 + 5 = 3 horizontal é quando o filtro [-1, 0, 1] de gradiente horizontal é [-1, 0, 1]
Início
Derivar, para cada par de posições relativas de pixel, o valor absoluto da soma dos valores de gradiente que indica o valor absoluto da soma do valor gradiente na posição relativa de pixel na primeira faixa e o valor de gradiente na posição relativa de pixel na segunda faixa
Derivar, como um primeiro parâmetro, a soma total dos valores absolutos das somas dos valores de gradiente derivados para as posições relativas de pixel
Derivar, para cada par de posições relativas de pixel, o valor de diferença de pixel que indica a diferença entre o valor de pixel na posição relativa de pixel na primeira faixa e valor de pixel na posição relativa de pixel na segunda faixa
Inverter ou manter o sinal de valor de diferença de pixel para cada par de posições relativas de pixel, utilizando o sinal da soma dos valores de gradiente que indica a soma do valor de gradiente na posição relativa na primeira faixa e o valor de gradiente na posição relativa na segunda faixa
Derivar, como um segundo parâmetro, a soma total dos valores de diferença de pixel derivados para as posições relativas de pixel e cada um possuindo sinal invertido ou mantido
Gerar imagem de previsão a ser utilizada para codificar o bloco atual, utilizando o primeiro parâmetro e o segundo parâmetro
Fim
Início
Derivar, para cada par de posições relativas de pixel, o valor absoluto da soma dos valores de gradiente que indica o valor absoluto da soma do valor de gradiente na posição relativa de pixel na primeira faixa e valor de gradiente na posição relativa de pixel na segunda faixa
Derivar, como o primeiro parâmetro, a soma total de valores absolutos das somas de valores de gradiente derivados para as posições relativas de pixel
Derivar, para cada par de posições relativas de pixel, o valor de diferença de pixel que indica a diferença entre o valor de pixel na posição relativa de pixel na primeira faixa e o valor de pixel na posição relativa de pixel na segunda faixa
Inverter ou manter o sinal do valor de diferença de pixel para cada par de posições relativas de pixel, utilizando o sinal da soma de valores de gradiente que indica a soma do valor de gradiente na posição relativa na primeira faixa e o valor de gradiente na posição relativa na segunda faixa
Derivar, como o segundo parâmetro, a soma total dos valores de diferença de pixel derivados para as posições relativas de pixel e cada um possuindo um sinal invertido ou mantido
Gerar a imagem de previsão a ser utilizada para decodificar o bloco atual utilizando o primeiro parâmetro e o segundo parâmetro
Fim
Aeronave
Petição 870210010821, de 01/02/2021, pág. 237/243 Satélite
Servidor de transmissão
Computador 50/56
Dispositivo de jogos
Rede Internet de comu- nicações Câmera
Eletrodoméstico
Provedor de serviços Smartphone de Internet
Camada de base aperfeiçoamento Camada de Camada temporal
Petição 870210010821, de 01/02/2021, pág. 239/243 Camada Unidade de acesso temporal Fatia Camada de aperfeiçoamento 52/56
Camada de base
Petição 870210010821, de 01/02/2021, pág. 243/243 Controlador Monitor Circuito de suprimento Para cada de exibição de energia componente
Controlador Transmissor/ Modulador/ receptor demodulador principal 56/56
Memória Partição
Multiplexador/ desmultiplexador Interface Câmera Processador de câmera de sinal de vídeo Unidade de entrada de áudio Controlador Processador de entrada Interface de sinal de interface de usuário Unidade de saída de áudio de usuário de áudio
BR112021001890-5A 2018-09-14 2019-09-06 codificador, decodificador, método de codificação e método de decodificação BR112021001890A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862731283P 2018-09-14 2018-09-14
US62/731,283 2018-09-14
PCT/JP2019/035125 WO2020054591A1 (ja) 2018-09-14 2019-09-06 符号化装置、復号装置、符号化方法、および復号方法

Publications (1)

Publication Number Publication Date
BR112021001890A2 true BR112021001890A2 (pt) 2021-04-27

Family

ID=69777626

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021001890-5A BR112021001890A2 (pt) 2018-09-14 2019-09-06 codificador, decodificador, método de codificação e método de decodificação

Country Status (8)

Country Link
US (3) US11350111B2 (pt)
EP (2) EP4054191A1 (pt)
JP (4) JP7004835B2 (pt)
KR (1) KR20210052464A (pt)
CN (1) CN112840659A (pt)
BR (1) BR112021001890A2 (pt)
MX (1) MX2021002510A (pt)
WO (1) WO2020054591A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4054191A1 (en) * 2018-09-14 2022-09-07 Panasonic Intellectual Property Corporation of America Encoding device, decoding device, encoding method, and decoding method
MX2021010504A (es) 2019-03-08 2021-10-01 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes para interprediccion.

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2375751A1 (en) * 2010-04-12 2011-10-12 Panasonic Corporation Complexity reduction of edge-detection based spatial interpolation
JP2013236358A (ja) * 2012-03-14 2013-11-21 Sharp Corp 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造
CN115037929A (zh) * 2016-02-03 2022-09-09 Oppo广东移动通信有限公司 运动图像解码装置、编码装置、以及预测图像生成装置
US10986367B2 (en) * 2016-11-04 2021-04-20 Lg Electronics Inc. Inter prediction mode-based image processing method and apparatus therefor
US10523964B2 (en) * 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
KR20240044549A (ko) * 2017-07-03 2024-04-04 브이아이디 스케일, 인크. 양방향 광학 흐름에 기반한 모션 보상 예측
CN116761001A (zh) * 2017-08-29 2023-09-15 Sk电信有限公司 视频编码装置、视频解码装置和存储比特流的方法
US11575933B2 (en) * 2018-04-06 2023-02-07 Vid Scale, Inc. Bi-directional optical flow method with simplified gradient derivation
KR20210016581A (ko) * 2018-06-05 2021-02-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Ibc 및 atmvp 간의 상호 작용
EP4054191A1 (en) * 2018-09-14 2022-09-07 Panasonic Intellectual Property Corporation of America Encoding device, decoding device, encoding method, and decoding method
US11089328B2 (en) * 2019-05-22 2021-08-10 Qualcomm Incorporated Bi-directional optical flow in video coding
AU2020332224C1 (en) * 2019-08-22 2024-05-30 Lg Electronics Inc. Image encoding/decoding method and device for performing weighted prediction, and method for transmitting bitstream

Also Published As

Publication number Publication date
JP2023029589A (ja) 2023-03-03
JP2022058478A (ja) 2022-04-12
JP2024036476A (ja) 2024-03-15
EP3852372A4 (en) 2021-11-10
EP4054191A1 (en) 2022-09-07
JP7432022B2 (ja) 2024-02-15
EP3852372A1 (en) 2021-07-21
KR20210052464A (ko) 2021-05-10
US20210218970A1 (en) 2021-07-15
JPWO2020054591A1 (ja) 2021-09-09
US20220248033A1 (en) 2022-08-04
CN112840659A (zh) 2021-05-25
US11778203B2 (en) 2023-10-03
US20230396776A1 (en) 2023-12-07
MX2021002510A (es) 2021-04-28
JP7004835B2 (ja) 2022-01-21
US11350111B2 (en) 2022-05-31
JP7212181B2 (ja) 2023-01-24
WO2020054591A1 (ja) 2020-03-19

Similar Documents

Publication Publication Date Title
US11856217B2 (en) Image encoder and related non-transitory computer readable medium for image decoding
US20210058636A1 (en) Image decoder and image decoding method capable of blending operation between partitions
US20210409743A1 (en) Image encoder, image decoder, image encoding method, and image decoding method
US11876992B2 (en) Image decoder and decoding method
BR112020026686A2 (pt) Sistema e método para codificação de vídeo
US20230010849A1 (en) Encoder, decoder, encoding method, and decoding method
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
BR112021004822A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112020025664A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação e método de decodificação
BR112021014711A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020000876A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação, e método de decodificação
US20200404272A1 (en) Encoder, decoder, encoding method, and decoding method
US20210037243A1 (en) Encoder, decoder, encoding method, and decoding method
BR112020001579A2 (pt) codificador, decodificador, método de codificação, método de decodificação
BR112020000219A2 (pt) codificação, método de codificação, decodificador e método de decodificação
BR112020021718A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112021009596A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112021001245A2 (pt) codificador, decodificador, método de codificação e método de decodificação
US11350111B2 (en) Encoder, decoder, encoding method, and decoding method using horizontal and vertical gradients for prediction
US20240073441A1 (en) Encoder, decoder, encoding method, and decoding method
BR112021011019A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021012769A2 (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