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

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

Info

Publication number
BR112020001991A2
BR112020001991A2 BR112020001991-7A BR112020001991A BR112020001991A2 BR 112020001991 A2 BR112020001991 A2 BR 112020001991A2 BR 112020001991 A BR112020001991 A BR 112020001991A BR 112020001991 A2 BR112020001991 A2 BR 112020001991A2
Authority
BR
Brazil
Prior art keywords
partition
motion vector
image
block
prediction
Prior art date
Application number
BR112020001991-7A
Other languages
English (en)
Inventor
Kiyofumi Abe
Jing Ya LI
Takahiro Nishi
Tadamasa Toma
Ryuichi KANOH
Chong Soon Lim
Ru Ling LIAO
Hai Wei Sun
Sughosh Pavan SHASHIDHAR
Han Boon Teo
Original Assignee
Panasonic Intellectual Property Corporation Of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corporation Of America filed Critical Panasonic Intellectual Property Corporation Of America
Publication of BR112020001991A2 publication Critical patent/BR112020001991A2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

A presente invenção refere-se a um codificador de imagem, o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular (por exemplo, uma forma triangular) e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.

Description

Relatório Descritivo da Patente de Invenção para "CODIFI- CADOR DE IMAGEM, DECODIFICADOR DE IMAGEM, MÉTODO DE
CODIFICAÇÃO DE IMAGEM E MÉTODO DE DECODIFICAÇÃO DE IMAGEM". CAMPO TÉCNICO
[0001] Esta descrição refere-se à codificação de vídeo, e especifi- camente a sistemas, componentes, e métodos de codificação e deco- dificação de vídeo para executar uma função de interpredição para construir um bloco corrente com base em um quadro de referência ou uma função de intrapredição para construir um bloco corrente com ba- se em um bloco de referência codificado / decodificado em um quadro corrente.
TÉCNICA ANTERIOR
[0002] Com o avanço na tecnologia de codificação de vídeo, 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 Eficiência) e H.266/VVC (Codec de Vídeo Versátil), permanece uma necessidade constante de prover aperfeiçoamentos e otimizações na tecnologia de codificação de vídeo para processar uma quantidade sempre crescen- te de dados de vídeo digital em várias aplicações. Esta descrição refe- re-se a avanços, aperfeiçoamento e otimizações adicionais em codifi- cação de vídeo, especificamente, em conexão com uma função de in- terpredição ou uma função de intrapredição, dividindo um bloco de imagem em uma pluralidade de partições que inclui pelo menos uma primeira partição que tem uma forma não retangular (por exemplo, um triângulo) e uma segunda partição.
SUMÁRIO DA INVENÇÃO
[0003] De acordo com um aspecto, um codificador de imagem está provido que inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codificar a primeira partição uti- lizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[0004] Algumas implementações das modalidades da presente descrição podem aperfeiçoar uma eficiência de codificação, podem simplesmente ser um processo de codificação / decodificação, podem acelerar uma velocidade de processo de codificação / decodificação, podem eficientemente selecionar componentes / operações apropria- dos utilizados em codificação e decodificação tal como um filtro apro- priado, tamanho de bloco, vetor de movimento, imagem de referência, bloco de referência, etc.
[0005] Benefícios e vantagens adicionais das modalidades descri- tas ficarão aparentes do relatório descritivo e desenhos. Os benefícios e/ou vantagens podem ser individualmente obtidos pelas várias moda- lidades e características do relatório descritivo e desenhos, nem todos os quais precisam ser providos de modo a obter um ou mais de tais benefícios e/ou vantagens.
[0006] Deve ser notado que modalidades gerais ou específicas podem ser implementadas como um sistema, um método, um circuito integrado, um programa de computador, um meio de armazenamento, ou qualquer sua combinação seletiva.
BREVE DESCRIÇÃO DOS DESENHOS
[0007] Figura 1 é um diagrama de blocos que ilustra uma configu- ração funcional de um codificador de acordo com uma modalidade.
[0008] Figura 2 ilustra um exemplo de divisão de bloco.
[0009] Figura 3 é uma tabela que indica funções de base de trans- formada de vários tipos de transformada.
[0010] Figura 4A ilustra um exemplo de uma forma de filtro utiliza- do em ALF (filtro de loop adaptável).
[0011] Figura 4B ilustra outro exemplo de uma forma de filtro utili- zado em ALF.
[0012] Figura 4C ilustra outro exemplo de uma forma de filtro utili- zado em ALF.
[0013] Figura 5A ilustra 67 modos de intrapredição utilizados em um exemplo de intrapredição.
[0014] Figura 5B é um fluxograma que ilustra um exemplo de um processo de correção de imagem de predição executado em proces- samento de OBMC (compensação de movimento de bloco sobrepos- to).
[0015] Figura 5C é um diagrama conceitual que ilustra um exem- plo de um processo de correção de imagem de predição executado em processamento de OBMC.
[0016] Figura 5D é um fluxograma que ilustra um exemplo de pro- cessamento de FRUC (conversão ascendente de taxa de quadro).
[0017] Figura 6 ilustra um exemplo de coincidência de padrão (coincidência bilateral) entre dois blocos ao longo de uma trajetória de movimento.
[0018] Figura 7 ilustra um exemplo de coincidência de padrão (coincidência de modelo) entre um modelo na imagem corrente e um bloco em uma imagem de referência.
[0019] Figura 8 ilustra um modelo que assume um movimento |i- near uniforme.
[0020] Figura 9A ilustra um exemplo de derivar um vetor de movi- mento de cada sub-bloco com base em vetores de movimento de blo- cos vizinhos.
[0021] Figura 9B ilustra um exemplo de um processo para derivar um vetor de movimento no modo de mesclagem.
[0022] Figura 9€C é um diagrama conceitual que ilustra um exem- plo de processamento de DMVR (reiniciação de vetor de movimento dinâmica).
[0023] Figura 9D ilustra um exemplo de um método de geração de imagem de predição utilizando um processo de correção de luminância executado por processamento de LIC (compensação de iluminação local).
[0024] Figura 10 é um diagrama de blocos que ilustra uma configu- ração funcional do decodificador de acordo com uma modalidade.
[0025] Figura 11 é um fluxograma que ilustra um fluxo de processo geral de dividir um bloco de imagem em uma pluralidade de partições que inclui pelo menos uma primeira partição que tem uma forma não retangular (por exemplo, a triângulo) e uma segunda partição e que executa um processamento adicional de acordo com uma modalidade.
[0026] Figura 12 ilustra dois métodos exemplares de dividir um bloco de imagem em uma primeira partição que tem uma forma não retangular (por exemplo, um triângulo) e uma segunda partição (tam- bém tendo uma forma não retangular nos exemplos ilustrados).
[0027] Figura 13 ilustra um exemplo de um processo de suaviza- ção de limite que envolve ponderar primeiros valores de pixels limite preditos com base na primeira partição e segundos valores dos pixels limite preditos com base na segunda partição.
[0028] Figura 14 ilustra três amostras adicionais de um processo de suavização de limite que envolve ponderar primeiros valores de pixels limite preditos com base na primeira partição e segundos valo- res dos pixels limite preditos com base na segunda partição.
[0029] Figura 15 é uma tabela de parâmetros de amostra ("primei- ros valores de índice") e conjuntos de informações respectivamente codificadas pelos parâmetros.
[0030] Figura 16 é uma tabela que ilustra banalização de parâme-
tros (valores de índice).
[0031] Figura 17 é um fluxograma que ilustra um processo de divi- dir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma se- gunda partição.
[0032] Figura 18 ilustra exemplos de dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular, a qual é um triângulo nos exemplos ilustrados, e uma segunda partição.
[0033] Figura 19 ilustra exemplos adicionais de dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira par- tição que tem uma forma não retangular, a qual é um polígono com pelo menos cinco lados e ângulos nos exemplos ilustrados, e uma se- gunda partição.
[0034] Figura 20 é um fluxograma que ilustra um processo de sua- vização de limite que envolve ponderar primeiros valores de pixels limi- te preditos com base na primeira partição e segundos valores dos pixels limite preditos com base na segunda partição.
[0035] Figura 21A ilustra um exemplo de um processo de suaviza- ção de limite em que pixels limite para os quais primeiros valores a se- rem ponderados são preditos com base na primeira partição e segun- dos valores a serem ponderados são preditos com base na segunda partição.
[0036] Figura 21B ilustra um exemplo de um processo de suaviza- ção de limite em que pixels limite para os quais primeiros valores a se- rem ponderados são preditos com base na primeira partição e segun- dos valores a serem ponderados são preditos com base na segunda partição.
[0037] Figura 21C ilustra um exemplo de um processo de suaviza- ção de limite em que pixels limite para os quais primeiros valores a se-
rem ponderados são preditos com base na primeira partição e segun- dos valores a serem ponderados são preditos com base na segunda partição.
[0038] Figura 21D ilustra um exemplo de um processo de suaviza- ção de limite em que pixels limite para os quais primeiros valores a se- rem ponderados são preditos com base na primeira partição e segun- dos valores a serem ponderados são preditos com base na segunda partição.
[0039] Figura 22 é um fluxograma que ilustra um método executa- do no lado de codificador de dividir um bloco de imagem em uma plu- ralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição, com base em um pa- râmetro de partição indicativo da divisão, e escrever um ou mais pa- râmetros que incluem o parâmetro de partição em um fluxo de bits em codificação de entropia.
[0040] Figura 23 é um fluxograma que ilustra um método executa- do no lado de decodificador de analisar um ou mais parâmetros de um fluxo de bits, o qual inclui um parâmetro de partição indicativo de divi- são de um bloco de imagem em uma pluralidade de partições que in- clui uma primeira partição que tem uma forma não retangular e uma segunda partição, e dividir o bloco de imagem na pluralidade de parti- ções com base no parâmetro de partição, e decodificar a primeira par- tição e a segunda partição.
[0041] Figura 24 é uma tabela de parâmetros de partição de amos- tra ("primeiros valores de índice") os quais respectivamente indicam a divisão de um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição, e conjuntos de informações que podem ser junta- mente codificadas pelos parâmetros de partição, respectivamente.
[0042] Figura 25 é uma tabela de combinações de amostra de um primeiro parâmetro e um segundo parâmetro, um dos quais sendo um parâmetro de partição indicativo de divisão de um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição.
[0043] Figura 26 ilustra uma configuração geral de um sistema de provisão de conteúdo para implementar um serviço de distribuição de conteúdo.
[0044] Figura 27 ilustra um exemplo de uma estrutura de codifica- ção em codificação escalável.
[0045] Figura 28 ilustra um exemplo de uma estrutura de codifica- ção em codificação escalável.
[0046] Figura 29 ilustra um exemplo de uma tela de display de uma webpage.
[0047] Figura 30 ilustra um exemplo de uma tela de display de uma webpage.
[0048] Figura 31 ilustra um exemplo de um smartphone.
[0049] Figura 32 é um diagrama de blocos que ilustra um exemplo de configuração de um smartphone.
DESCRIÇÃO DE MODALIDADES
[0050] De acordo com um aspecto, um codificador de imagem está provido que inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codificar a primeira partição uti- lizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[0051] De acordo com um aspecto adicional, a segunda partição tem uma forma não retangular. De acordo com outro aspecto, a forma não retangular é um triângulo. De acordo com um aspecto adicional, a forma não retangular é selecionada de um grupo que consiste em um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
[0052] De acordo com outro aspecto, a predição inclui selecionar o primeiro vetor de movimento de um primeiro conjunto de candidatos de vetor de movimento e selecionar o segundo vetor de movimento de um segundo conjunto de candidatos de vetor de movimento. Por exemplo, o primeiro conjunto de candidatos de vetor de movimento pode incluir vetores de movimento de partições vizinhas à primeira partição, e o segundo conjunto de candidatos de vetor de movimento pode incluir vetores de movimento de partições vizinhas à segunda partição. As partições vizinhas à primeira partição e as partições vizinhas à segun- da partição podem estar fora do bloco de imagem do qual a primeira partição e a segunda partição são divididas. As partições vizinhas po- dem ser uma ou ambas de partições espacialmente vizinhas e parti- ções temporárias vizinhas. O primeiro conjunto de candidatos de vetor de movimento pode ser o mesmo que, ou diferente do, segundo con- junto de candidatos de vetor de movimento.
[0053] De acordo com outro aspecto, a predição inclui, selecionar um primeiro candidato vetor de movimento de um primeiro conjunto de candidatos de vetor de movimento e derivar o primeiro vetor de movi- mento somando uma primeira diferença de vetor de movimento ao primeiro candidato de vetor de movimento, e selecionar um segundo candidato vetor de movimento de um segundo conjunto de candidatos de vetor de movimento e derivar o segundo vetor de movimento so- mando uma segunda diferença de vetor de movimento ao segundo candidato de vetor de movimento.
[0054] De acordo com outro aspecto, um codificador de imagem está provido que inclui: um divisor o qual, em operação, recebe e divi-
de uma imagem original em blocos; um somador o qual, em operação, recebe os blocos do divisor e predições de um controlador de predi- ção, e subtrai cada predição de seu bloco correspondente para emitir um resíduo; um transformador o qual, em operação, executa uma transformada sobre os resíduos emitidos do somador para emitir coefi- cientes de transformada; um quantizador o qual, em operação, quanti- za os coeficientes de transformada para gerar coeficientes de trans- formada quantizados; um codificador de entropia o qual, em operação, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits; e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma memória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência codificada e o intrapreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência codificado em uma imagem corrente. O contro- lador de predição, em operação, divide os blocos em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; prediz um primeiro vetor de movi- mento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[0055] De acordo com outro aspecto, um método de codificação de imagem está provido, o qual inclui geralmente três etapas: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; predizer um primeiro vetor de movimento para a primeira par- tição e um segundo vetor de movimento para a segunda partição; e codificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[0056] De acordo com outro aspecto, um decodificador de imagem está provido o qual inclui um circuito e uma memória acoplada no cir- cuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e decodificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[0057] De acordo com um aspecto adicional, a segunda partição tem uma forma não retangular. De acordo com outro aspecto, a forma não retangular é um triângulo. De acordo com um aspecto adicional, a forma não retangular é selecionada de um grupo que consiste em um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
[0058] De acordo com outro aspecto, um decodificador de imagem está provido que inclui: um decodificador de entropia o qual, em ope- ração, recebe e decodifica um fluxo de bits codificado para obter coefi- cientes de transformada quantizados; um quantizador e transformador inverso o qual, em operação, quantiza inverso os coeficientes de trans- formada quantizados para obter coeficientes de transformada e trans- forma inverso os coeficientes de transformada para obter resíduos; um somador o qual, em operação, soma os resíduos emitidos do quanti- zador e transformador inverso e predições emitidas de um controlador de predição para reconstruir os blocos; e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma memória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência decodificada e o intrapreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente. O controlador de predição, em operação, divide um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; prediz um primeiro vetor de movimento para a primeira parti- ção e um segundo vetor de movimento para a segunda partição; e de- codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
[0059] De acordo com outro aspecto, um método de decodificação de imagem está provido, o qual inclui geralmente três etapas: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição; predizer um primeiro vetor de movimento para a primeira par- tição e um segundo vetor de movimento para a segunda partição; e decodificar a primeira partição utilizando o primeiro vetor de movimen- to e a segunda partição utilizando o segundo vetor de movimento.
[0060] De acordo com um aspecto, um codificador de imagem está provido que inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem. A operação de suavização de limite inclui: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição; segunda predição de segundos valores do conjunto de pixels da primeira parti- ção ao longo do limite, utilizando informações da segunda partição; ponderar os primeiros valores e os segundos valores; e codificar a primeira partição utilizando os primeiros valores ponderados e os se- gundos valores ponderados.
[0061] De acordo com um aspecto adicional, a forma não retangu- lar é um triângulo. De acordo com outro aspecto, a forma não retangu-
lar é selecionada de um grupo que consiste em um triângulo, um tra- pezoide, e um polígono com pelo menos cinco lados e ângulos. De acordo com ainda outro aspecto, a segunda partição tem uma forma não retangular.
[0062] De acordo com outro aspecto, pelo menos uma da primeira predição e da segunda predição é um processo de interpredição que prediz os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada. O processo de interpredição pode predizer primeiros valores de pixels da primeira partição que inclui o conjunto de pixels e pode predizer os se- gundos valores de somente o conjunto de pixels da primeira partição.
[0063] De acordo com outro aspecto, pelo menos uma da primeira predição e da segunda predição é um processo de intrapredição que prediz os primeiros valores e os segundos valores com base em uma partição de referência codificada em uma imagem corrente.
[0064] De acordo com outro aspecto, um método de predição utili- zado na primeira predição é diferente de um método de predição utili- zado na segunda predição.
[0065] De acordo com um aspecto adicional, um número do con- junto de pixels de cada fila ou cada coluna, para o qual os primeiros valores e os segundos valores são preditos, é um inteiro. Por exemplo, quando o número do conjunto de pixels de cada fila ou cada coluna é quatro, ponderações de 1/8, 1/4, 3/4, e 7/8 podem ser aplicadas nos primeiros valores dos quatro pixels no conjunto, respectivamente, e ponderações de 7/8, 3/4, 1/4, e 1/8 podem ser aplicadas nos segundos valores dos quatro pixels no conjunto, respectivamente. Como outro exemplo, quando o número do conjunto de pixels de cada fila ou cada coluna é dois, ponderações de 1/3 e 2/3 podem ser aplicadas nos pri- meiros valores dos dois pixels no conjunto, respectivamente, e ponde- rações de 2/3 e 1/3 podem ser aplicadas nos segundos valores dos dois pixels no conjunto, respectivamente.
[0066] De acordo com outro aspecto, as ponderações podem ser valores inteiros ou podem ser valores fracionários.
[0067] De acordo com outro aspecto, um codificador de imagem está provido que inclui: um divisor o qual, em operação, recebe e divi- de uma imagem original em blocos; um somador o qual, em operação, recebe os blocos do divisor e predições de um controlador de predi- ção, e subtrai cada predição de seu bloco correspondente para emitir um resíduo; um transformador o qual, em operação, executa uma transformada sobre os resíduos emitidos do somador para emitir coefi- cientes de transformada; um quantizador o qual, em operação, quanti- za os coeficientes de transformada para gerar coeficientes de trans- formada quantizados; um codificador de entropia o qual, em operação, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits; e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma memória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência codificada e o intrapreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência codificado em uma imagem corrente. O contro- lador de predição, em operação, executa operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem. A operação de suavização de limite inclui: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição; segunda predição de segundos valores do conjunto de pixels da pri- meira partição ao longo do limite, utilizando informações da segunda partição; ponderar os primeiros valores e os segundos valores; e codi- ficar a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[0068] De acordo com outro aspecto, um método de codificação de imagem está provido para executar uma operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem. O método inclui geralmente quatro etapas: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição; segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da se- gunda partição; ponderar os primeiros valores e os segundos valores; e codificar a primeira partição utilizando os primeiros valores pondera- dos e os segundos valores ponderados.
[0069] De acordo com um aspecto adicional, um decodificador de imagem está provido o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e a segunda partição que são divididas de um bloco de imagem. A operação de suavização de limite inclui: pri- meira predição de primeiros valores de um conjunto de pixels da pri- meira partição ao longo do limite, utilizando informações da primeira partição; segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da se- gunda partição; ponderar os primeiros valores e os segundos valores; e decodificar a primeira partição utilizando os primeiros valores ponde- rados e os segundos valores ponderados.
[0070] De acordo com outro aspecto, a forma não retangular é um triângulo. De acordo com um aspecto adicional, a forma não retangular é selecionada de um grupo que consiste em um triângulo, um trape- zoide, e um polígono com pelo menos cinco lados e ângulos. De acor-
do com outro aspecto, a segunda partição tem uma forma não retan- gular.
[0071] De acordo com outro aspecto, pelo menos uma da primeira predição e da segunda predição é um processo de interpredição que prediz os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codificada. O processo de interpredição pode predizer primeiros valores de pixels da primeira partição que incluem o conjunto de pixels e pode predizer os segundos valores de somente o conjunto de pixels da primeira parti- ção.
[0072] De acordo com outro aspecto, pelo menos uma da primeira predição e da segunda predição é um processo de intrapredição que prediz os primeiros valores e os segundos valores com base em uma partição de referência codificada em uma imagem corrente.
[0073] De acordo com outro aspecto, um decodificador de imagem está provido que inclui: um decodificador de entropia o qual, em ope- ração, recebe e decodifica um fluxo de bits codificado para obter coefi- cientes de transformada quantizados; um quantizador e transformador inverso o qual, em operação, quantiza inverso os coeficientes de trans- formada quantizados para obter coeficientes de transformada e trans- forma inverso os coeficientes de transformada para obter resíduos; um somador o qual, em operação, soma os resíduos emitidos do quanti- zador e transformador inverso e predições emitidas de um controlador de predição para reconstruir os blocos; e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma memória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência decodificada e o intrapreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente. O controlador de predição, em operação, exe-
cuta operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem. A operação de su- avização de limite inclui: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição; segunda predição de segundos valo- res do conjunto de pixels da primeira partição ao longo do limite, utili- zando informações da segunda partição; ponderar os primeiros valores e os segundos valores; e decodificar a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados.
[0074] De acordo com outro aspecto, um método de decodificação de imagem está provido para executar uma operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem. O método inclui geralmente quatro etapas: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição; segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da se- gunda partição; ponderar os primeiros valores e os segundos valores; e decodificar a primeira partição utilizando os primeiros valores ponde- rados e os segundos valores ponderados.
[0075] De acordo com um aspecto, um codificador de imagem está provido que inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa uma operação de sintaxe de partição que inclui: dividir um bloco de imagem em uma pluralidade de parti- ções que inclui uma primeira partição que tem uma forma não retangu- lar e uma segunda partição com base em um parâmetro de partição indicativo da divisão; codificar a primeira partição e a segunda parti- ção; e escrever um ou mais parâmetros que incluem o parâmetro de partição em um fluxo de bits.
[0076] De acordo com um aspecto adicional, o parâmetro de parti- ção indica que a primeira partição tem uma forma de triângulo.
[0077] De acordo com outro aspecto, o parâmetro de partição indi- ca que a segunda partição tem uma forma não retangular.
[0078] De acordo com outro aspecto, o parâmetro de partição indi- ca que a forma não retangular é uma de um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
[0079] De acordo com outro aspecto, o parâmetro de partição jun- tamente codifica uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de partições. Por exemplo, a direção de di- visão pode incluir: de um canto superior esquerdo do bloco de imagem para um seu canto inferior direito, e de um canto superior direito do bloco de imagem para um seu canto inferior esquerdo. O parâmetro de partição pode juntamente codificar pelo menos um primeiro vetor de movimento da primeira partição.
[0080] De acordo com outro aspecto, os um ou mais parâmetros outros que o parâmetro de partição codificam uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de partições. O parâmetro que codifica a direção de divisão pode juntamente codificar pelo menos um primeiro vetor de movimento da primeira partição.
[0081] De acordo com outro aspecto, o parâmetro de partição po- de juntamente codificar pelo menos um primeiro vetor de movimento da primeira partição. O parâmetro de partição pode juntamente codifi- car um segundo vetor de movimento da segunda partição.
[0082] De acordo com outro aspecto, os um ou mais parâmetros outros que o parâmetro de partição podem codificar pelo menos um primeiro vetor de movimento da primeira partição.
[0083] De acordo com outro aspecto, os um ou mais parâmetros são binarizados em conformidade com um esquema de binarização o qual é selecionado dependendo de um valor de pelo menos um dos um ou mais parâmetros.
[0084] De acordo com um aspecto adicional, um codificador de imagem está provido que inclui: um divisor o qual, em operação, rece- be e divide uma imagem original em blocos; um somador o qual, em operação, recebe os blocos do divisor e predições de um controlador de predição, e subtrai cada predição de seu bloco correspondente pa- ra emitir um resíduo; um transformador o qual, em operação, executa uma transformada sobre os resíduos emitidos do somador para emitir coeficientes de transformada; um quantizador o qual, em operação, quantiza os coeficientes de transformada para gerar coeficientes de transformada quantizados; um codificador de entropia o qual, em ope- ração, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits; e o controlador de predição acoplado a um interpredi- tor, um intrapreditor, e uma memória, em que o interpreditor, em ope- ração, gera uma predição de um bloco corrente com base em um blo- co de referência em uma imagem de referência codificada e o intra- preditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência codificado em uma imagem corrente. O controlador de predição, em operação, divide um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão, e codifica a primeira partição e a segunda partição. O codificador de entropia, em operação, escreve um ou mais parâmetros que incluem o parâmetro de partição em um fluxo de bits.
[0085] De acordo com outro aspecto, um método de codificação de imagem que inclui uma operação de sintaxe de partição está provi- do. O método inclui geralmente três etapas: dividir um bloco de ima- gem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão; codificar a primeira partição e a segunda partição; e escrever um ou mais parâmetros que incluem o parâmetro de partição em um fluxo de bits.
[0086] De acordo com outro aspecto, um decodificador de imagem está provido que inclui um circuito e uma memória acoplada no circui- to. O circuito, em operação, executa uma operação de sintaxe de par- tição que inclui: analisar um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de partição indicativo de divisão de um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não re- tangular e uma segunda partição; dividir o bloco de imagem na plurali- dade de partições com base no parâmetro de partição; e decodificar a primeira partição e a segunda partição.
[0087] De acordo com um aspecto adicional, o parâmetro de parti- ção indica que a primeira partição tem uma forma de triângulo.
[0088] De acordo com outro aspecto, o parâmetro de partição indi- ca que a segunda partição tem uma forma não retangular.
[0089] De acordo com outro aspecto, o parâmetro de partição indi- ca que a forma não retangular é uma de um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
[0090] De acordo com outro aspecto, o parâmetro de partição jun- tamente codifica uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de partições. Por exemplo, a direção de di- visão inclui: de um canto superior esquerdo do bloco de imagem para um seu canto inferior direito, e de um canto superior direito do bloco de imagem para um seu canto inferior esquerdo. O parâmetro de partição pode juntamente codificar pelo menos um primeiro vetor de movimento da primeira partição.
[0091] De acordo com outro aspecto, os um ou mais parâmetros outros que o parâmetro de partição codificam uma direção de divisão aplicada para dividir o bloco de imagem na pluralidade de partições. O parâmetro que codifica a direção de divisão pode juntamente codificar pelo menos um primeiro vetor de movimento da primeira partição.
[0092] De acordo com outro aspecto, o parâmetro de partição po- de juntamente codificar pelo menos um primeiro vetor de movimento da primeira partição. O parâmetro de partição pode juntamente codifi- car um segundo vetor de movimento da segunda partição.
[0093] De acordo com outro aspecto, os um ou mais parâmetros outros que o parâmetro de partição podem codificar pelo menos um primeiro vetor de movimento da primeira partição.
[0094] De acordo com outro aspecto, os um ou mais parâmetros são binarizados em conformidade com um esquema de binarização o qual é selecionado dependendo de um valor de pelo menos um dos um ou mais parâmetros.
[0095] De acordo com um aspecto adicional, um decodificador de imagem está provido que inclui: um decodificador de entropia o qual, em operação, recebe e decodifica um fluxo de bits codificado para ob- ter coeficientes de transformada quantizados; um quantizador e trans- formador inverso o qual, em operação, quantiza inverso os coeficien- tes de transformada quantizados para obter coeficientes de transfor- mada e transforma inverso os coeficientes de transformada para obter resíduos; um somador o qual, em operação, soma os resíduos emiti- dos do quantizador e transformador inverso e predições emitidas de um controlador de predição para reconstruir os blocos; e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma me- mória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência decodificada e o intrapreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente. O decodificador de entropia, em operação: analisa um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de partição indi- cativo de divisão de um bloco de imagem em uma pluralidade de parti- ções que inclui uma primeira partição que tem uma forma não retangu- lar e uma segunda partição; divide o bloco de imagem na pluralidade de partições com base no parâmetro de partição; e decodifica a primei- ra partição e a segunda partição.
[0096] De acordo com outro aspecto, um método de decodificação de imagem que inclui uma operação de sintaxe de partição está provi- do. O método inclui geralmente três etapas: analisar um ou mais pa- râmetros de um fluxo de bits, em que os um ou mais parâmetros inclu- em um parâmetro de partição indicativo de divisão de um bloco de imagem em uma pluralidade de partições que inclui uma primeira par- tição que tem uma forma não retangular e uma segunda partição; divi- dir o bloco de imagem na pluralidade de partições com base no parâà- metro de partição; e decodificar a primeira partição e a segunda parti- ção.
[0097] Nos desenhos, números de referência idênticos identificam elementos similares. Os tamanhos e posições relativas de elementos nos desenhos não estão necessariamente desenhados em escala.
[0098] Daqui em diante, modalidade(s) serão descritas com refe- rência aos desenhos. Note que a(s) modalidade(s) abaixo descritas cada uma mostra um exemplo geral ou específico. Os valores numéri- cos, formas, materiais, componentes, a disposição e conexão dos componentes, etapas, a relação e ordem das etapas, etc., indicados na(s) modalidade(s) seguintes são meramente exemplos e não se pre- tendem limitar o escopo das reivindicações. Portanto, aqueles compo- nentes descritos na(s) seguinte(s) modalidade(s) mas não recitados em qualquer das reivindicações independentes que definem os concei-
tos inventivos mais amplos podem ser compreendidos como compo- nentes opcionais.
[0099] As modalidades de um codificador e um decodificador se- rão baixas descritas. As modalidades são exemplos de um codificador e um decodificador aos quais os processos e/ou configurações apre- sentados na descrição de aspectos da presente descrição são aplicá- veis. Os processos e/ou configurações podem também ser implemen- tados em um codificador e um decodificador diferentes daqueles de acordo com as modalidades. Por exemplo, referindo aos processos e/ou configurações como aplicados nas modalidades, qualquer um dos seguintes pode ser implementado:
[00100] (1) Quaisquer um dos componentes do codificador ou do decodificador de acordo com as modalidades apresentadas na descri- ção e aspectos da presente descrição podem ser substituídos ou com- binados com outro componente apresentados em qualquer local na descrição de aspectos da presente descrição.
[00101] (2) No codificador ou no decodificador de acordo com as modalidades, mudanças arbitrárias podem ser feitas a funções ou pro- cessos executados por um ou mais componentes do codificador ou do decodificador, tal como adição, substituição, remoção, etc., das fun- ções ou processos. Por exemplo, qualquer função ou processo pode ser substituído ou combinado com outra função ou processo apresen- tado em qualquer local na descrição de aspectos da presente descri- ção.
[00102] (3) No método implementado pelo codificador ou pelo de- codificador de acordo com as modalidades, mudanças arbitrárias po- dem ser feitas 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 qualquer local da descrição de aspectos da presente descrição.
[00103] (4) Um ou maiscomponentes incluídos no codificador ou no decodificador de acordo com as modalidades podem ser combinados com um componente apresentado em qualquer local na descrição de aspectos da presente descrição, podem ser combinados com um componente que inclui uma ou mais funções apresentadas em qual- quer local na descrição de aspectos da presente descrição, e podem ser combinados com um componente que implementa um ou mais processos implementados por um componente apresentado na descri- ção de aspectos da presente descrição.
[00104] (5) Um componente que inclui uma ou mais funções do co- dificador ou do decodificador de acordo com as modalidades, ou um componente que implementa um ou mais processos do codificador ou do decodificador de acordo com as modalidades, pode ser combinado ou substituído por um componente apresentado em qualquer local na descrição de aspectos da presente descrição, com um componente incluindo uma ou mais funções apresentadas em qualquer local na descrição de aspectos da presente descrição, ou com um componente que implementa um ou mais processos apresentados em qualquer lo- cal na descrição de aspectos da presente descrição.
[00105] (6) No método implementado pelo codificador ou pelo de- codificador de acordo com as modalidades, qualquer dos processos incluídos no método pode ser substituído ou combinado com um pro- cesso apresentado em qualquer local na descrição de aspectos da presente descrição ou com qualquer processo correspondente ou equivalente.
[00106] (7) Um ou mais processos incluídos no método implemen- tado pelo codificador ou pelo decodificador de acordo com as modali- dades podem ser combinados com um processo apresentado em qualquer local na descrição de aspectos da presente descrição.
[00107] (8) A implementação dos processos e/ou configurações apresentados na descrição de aspectos da presente descrição não está limitado ao codificador ou ao decodificador de acordo com as mo- dalidades. Por exemplo, os processos e/ou configurações podem ser implementados em um dispositivo utilizado para um propósito diferente do codificador de imagem móvel ou do decodificador de imagem móvel descritos nas modalidades. (Codificador)
[00108] Primeiro, o decodificador de acordo com uma modalidade será descrito. A Figura 1 é um diagrama de blocos que ilustra uma configuração funcional do codificador 100 de acordo com a modalida- de. O codificador 100 é um codificador de imagem móvel que codifica uma imagem móvel bloco por bloco.
[00109] Como ilustrado na Figura 1, o codificador 100 é um disposi- tivo que codifica uma imagem bloco por bloco, e inclui um divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de en- tropia 110, quantizador inverso 112, transformador inverso 114, soma- dor 116, memória de bloco 118, filtro de loop 120, memória de quadro 122, intrapreditor 124, interpreditor 126, e controlador de predição 128.
[00110] O codificador 100 é realizado como, por exemplo, um pro- cessador e memória genéricos. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o processador funciona como o divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro de loop 120, intra- preditor 124, interpreditor 126, e controlador de predição 128. Alterna- tivamente, o codificador 100 pode ser realizado como um ou mais cir- cuitos eletrônicos dedicados que correspondem ao divisor 102, subtra- tor 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador
116, filtro de loop 120, intrapreditor 124, interpreditor 126, e controla- dor de predição 128.
[00111] Daquiem diante, cada componente incluído no codificador 100 será descrito. (Divisor)
[00112] O divisor 102 divide cada imagem incluída em uma imagem móvel inserida em blocos, e emite cada bloco para o subtrator 104. Por exemplo, o divisor 102 primeiro divide uma imagem em blocos de um tamanho fixo (por exemplo, 128x128). O bloco de tamanho fixo é também referido como unidade de árvore de codificação (CTU). O di- visor 102 então divide cada bloco de tamanho fixo em blocos de tama- nhos variáveis (por exemplo, 64x64 ou menor), com base em divisão de bloco de quadtree recursivo e/ou árvore binária. O bloco de tama- nho variável é também referido como uma unidade de codificação (CU), uma unidade de predição (PU), ou uma unidade de transformada (TU). Em várias implementações pode não haver necessidade de dife- renciar entre CU, PU e TU; todos os alguns dos blocos em uma ima- gem podem ser processados por CU, PU ou TU.
[00113] A Figura2 ilustra um exemplo de divisão de bloco de acor- do com uma modalidade. Na Figura 2, as linhas cheias representam limites de bloco de blocos divididos por divisão de bloco de quadtree, e as linhas tracejadas representam limites de bloco de blocos divididos por divisão de bloco de árvore binária.
[00114] Aqui, o bloco 10 é um bloco de 128x128 pixels quadrado (bloco 128x128). Este bloco 128x128 10 é primeiro dividido em quatro blocos 64*64 quadrados (divisão de bloco quadtree).
[00115] O bloco 64x64 superior esquerdo é adicionalmente verti- calmente dividido em dois blocos 32x64 retangulares, e o bloco 32x64 esquerdo é adicionalmente verticalmente dividido em dois blocos 16*x64 retangulares (divisão de bloco de árvore binária). Como um re-
sultado, o bloco 64x64 superior esquerdo é dividido em dois blocos 16x64 11 e 12 e um bloco 32x64 13.
[00116] O bloco 64*64 superior direito é horizontalmente dividido em dois blocos 64*32 retangulares 14 e 15 (divisão de bloco de árvore binária).
[00117] O bloco 64*64 inferior esquerdo é primeiro dividido em qua- tro blocos 32x32 quadrados (divisão de bloco quadtree). O bloco supe- rior esquerdo e o bloco inferior direito entre os quatro blocos 32x32 são adicionalmente divididos. O bloco 32x32 superior esquerdo é ver- ticalmente dividido em dois blocos 16x32 retangulares, e o bloco 16x32 direito é adicionalmente horizontalmente dividido em dois blo- cos 16x16 (divisão de bloco de árvore binária). O bloco 32x32 inferior direito é horizontalmente dividido em dois blocos 32x16 (divisão de bloco de árvore binária). Como um resultado, o bloco 64*64 inferior esquerdo é dividido no bloco 16x32 16, dois blocos 16x16 17 e 18, dois blocos 32x32 19 e 20, e dois blocos 32x16 21 e 22.
[00118] O bloco 64*64 inferior direito 23 não é dividido
[00119] “Como acima descrito, na Figura 2, o bloco 10 é dividido em 13 blocos de tamanho variável 11 até 23 com base em divisão de blo- co de quadtree recursivo e árvore binária. Este tipo de divisão é tam- bém referido como divisão quadtree mais árvore binária (QTBT).
[00120] Note que na Figura 2, um bloco é dividido em quatro ou dois blocos (divisão de bloco quadtree ou de árvore binária), a divisão não está limitada a estes exemplos. Por exemplo, um bloco pode ser dividido em três blocos (divisão de bloco ternária). A divisão que inclui tal divisão de bloco ternária é também referida como divisão de árvore de múltiplos tipos (MBT). (Subtrator)
[00121] O subtrator 104 subtrai um sinal de predição (amostra de predição, inserida do controlador de predição 128, a ser abaixo des-
crito) de um sinal original (amostra original) por bloco dividido pelo e inserido do divisor 102. Em outras palavras, o subtrator 104 calcula erros de predição (também referidos como "resíduos") de um bloco a ser codificado (daqui em diante referido como um "bloco corrente"). O subtrator 104 então emite os erros de predição calculados (resíduos) para o transformador 106.
[00122] O sinal original é um sinal inserido no codificador 100, e é um sinal que representa uma imagem para cada imagem incluída em uma imagem móvel (por exemplo, um sinal luma e dois sinais croma). Daqui em diante, um sinal que representa uma imagem é também re- ferido como uma amostra. (Transformador)
[00123] O transformador 106 transforma erros de predição de do- mínio espacial em coeficientes de transformada de domínio de fre- quência, e emite os coeficientes de transformada para o quantizador
108. Mais especificamente, o transformador 106 aplica, por exemplo, uma transformada de cosseno discreta (DCT) ou transformada de se- no discreta (DST) predefinidas a erros de predição de domínio espaci- al.
[00124] Note que o transformador 106 pode adaptavelmente seleci- onar um tipo de transformada dentre uma pluralidade de tipos de transformada, e transforma erros de predição em coeficientes de trans- formada utilizando uma função de base de transformada que corres- ponde ao tipo de transformada selecionado. Este tipo de transformada é também referido como transformada de núcleo múltipla (EMT) ou transformada múltipla adaptável (AMT) explícitas.
[00125] Os tipos de transformada incluem, por exemplo, DCT-II, DCT-V, DCT-VIII, DST-I, e DST-VII. A Figura 3 é um gráfico que indica funções de base de transformada para cada tipo de transformada. Na Figura 3, N indica o número de pixels de entrada. Por exemplo, a sele-
ção de um tipo de transformada dentre a pluralidade de tipos de trans- formada pode depender do tipo de predição (intrapredição e interpre- dição) assim como modo de intrapredição.
[00126] As informações que indicam se aplicar tal EMT ou AMT (re- feridas como, por exemplo, um sinalizador de AMT ou um sinalizador de AMT) e informações que indicam o tipo de transformada seleciona- do são tipicamente sinalizadas no nível de CU. Note que a sinalização de tais informações não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência de bits, nível de imagem, nível de fatia, nível lado a lado, ou nível de CTU).
[00127] Mais ainda, o transformador 106 pode aplicar uma trans- formada secundária nos coeficientes de transformada (resultado de transformada). Tal transformada secundária é também referida como transformada secundária adaptável (AST) ou transformada secundária não separável (NSST). Por exemplo, o transformador 106 aplica uma transformada secundária a cada sub-bloco (por exemplo, cada sub- bloco 4x4) incluído no bloco dos coeficientes de transformada que cor- respondem aos erros de intrapredição. As informações que indica se aplicar NSST e informações relativas à matriz de transformada utiliza- das em NSST são tipicamente sinalizadas no nível de CU. Note que a sinalização de tais informações não precisa ser executada no nível de CU, e podem ser executadas em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível lado a lado, ou nível de CTU).
[00128] Ou uma transformada separada ou uma transformada não separável pode ser aplicada no transformador 106. Uma transformada separada é um método no qual uma transformada é executada uma pluralidade de vezes separadamente executando uma transformada para cada direção de acordo com o número de dimensões inserido.
Uma transformada não separável é um método de executar uma trans- formada coletiva na qual duas ou mais dimensões em uma entrada multidimensional são coletivamente consideradas como uma única di- mensão.
[00129] Em um exemplo de uma transformada não separável, quando a entrada é um bloco 4*4, o bloco 4x4 é considerado como uma única rede que inclui 16 componentes, e a transformada aplica uma matriz de transformada 16x16 na rede.
[00130] Em um exemplo adicional de uma transformada não sepa- rável, após o bloco 4*4 inserido ser considerado como uma única rede que inclui 16 componentes, uma transformada que executa uma plura- lidade de rotações Givens (por exemplo, uma Transformada Hypercu- be-Givens) pode ser aplicada sobre a rede. (Quantizador)
[00131] O quantizador 108 quantiza os coeficientes de transforma- da emitidos do transformador 106. Mais especificamente, o quantiza- dor 108 escaneia, em uma ordem de escaneamento predeterminada, os coeficientes de transformada do bloco corrente, e quantiza os coefi- cientes de transformada escaneados com base em parâmetros de quantização (QP) que correspondem aos coeficientes de transforma- da. O quantizador 108 então emite os coeficientes de transformada quantizados (daqui em diante referidos como os coeficientes quantiza- dos) do bloco corrente para o codificador de entropia 110 e quantiza- dor inverso 112.
[00132] Uma ordem de escaneamento predeterminada é uma or- dem para quantização / quantização inversa de coeficientes de trans- formada. Por exemplo, uma ordem de escaneamento predeterminada é definida como ordem de frequência ascendente (de baixa para alta frequência) ou ordem de frequência descendente (de alta para baixa frequência).
[00133] Um parâmetro de quantização (QP) é um parâmetro que define um tamanho de etapa de quantização (largura de quantização). Por exemplo, se o valor do parâmetro de quantização aumenta, o ta- manho de etapa de quantização também aumenta. Em outras pala- vras, se o valor do parâmetro de quantização aumenta, o erro de quantização aumenta. (Codificador de Entropia)
[00134] O codificador de entropia 110 gera um sinal codificado (flu- xo de bits codificado) com base nos coeficientes quantizados, os quais são inseridos do quantizador 108. Mais especificamente, por exemplo, o codificador de entropia 110, binariza coeficientes quantizados e codi- fica em aritmética o sinal binário, para emitir um fluxo de bits ou se- quência comprimido. (Quantizador inverso)
[00135] O quantizador inverso 112 quantiza inverso coeficientes quantizados, os quais são inseridos do quantizador 108. Mais especifi- camente, o quantizador inverso 112 quantiza inverso, em uma ordem de escaneamento predeterminada, coeficientes quantizados do bloco corrente. O quantizador inverso 112 então emite os coeficientes de transformada quantizados inverso do bloco corrente para o transfor- mador inverso 114. (Transformador Inverso)
[00136] O transformador inverso 114 restaura erros de predição (resíduos) transformando inverso coeficientes de transformada, os quais são inseridos do quantizador inverso 112. Mais especificamente, o transformador inverso 114 restaura os erros de predição do bloco corrente aplicando uma transformada inversa que corresponde à trans- formada aplicada pelo transformador 106 sobre os coeficientes de transformada. O transformador inverso 114 então emite os erros de predição restaurados para o somador 116.
[00137] Note que, tipicamente, como informações são perdidas em quantização, os erros de predição restaurados não coincidem com os erros de predição calculados pelo subtrator 104. Em outras palavras, os erros de predição restaurados tipicamente incluem erros de quanti- zação. (Somador)
[00138] O somador 116 reconstrói o bloco corrente somando erros de predição, os quais são inseridas do transformador inverso 114, e amostras de predição, as quais são inseridas do controlador de predi- ção 128. O somador 116 então emite o bloco reconstruído para a me- mória de bloco 118 e filtro de loop 120. Um bloco reconstruído é tam- bém referido como um bloco decodificado local. (Memória de bloco)
[00139] A memória de bloco 118 é um armazenamento para arma- zenar blocos em uma imagem a ser codificada (daqui em diante referi- da como uma "imagem corrente") para referência em intrapredição, por exemplo. Mais especificamente, a memória de bloco 118 armazena os blocos reconstruídos emitidos do somador 116. (Filtro de loop)
[00140] O ffiltrode loop 120 aplica um filtro de loop a blocos recons- truídos pelo somador 116, e emite os blocos reconstruídos filtrados para a memória de quadro 122. Um filtro de loop é um filtro utilizado em um loop de codificação (filtro em loop), e inclui, por exemplo, um filtro de desbloqueio (DF), um deslocamento adaptável de amostra (SAO), e um filtro de loop adaptável (ALF).
[00141] Em ALF, um filtro de erro de menor quadrado para remover artefatos de compressão é aplicado. Por exemplo, um filtro dentre uma pluralidade de filtros é selecionado para cada sub-bloco 2x2 no bloco corrente com base em direção e atividade de gradientes locais, e é aplicado.
[00142] Mais especificamente, primeiro, cada sub-bloco (por exem- plo, cada sub-bloco 2x2) é categorizado em um dentre uma pluralida- de de classes (por exemplo, 15 ou 25 classes). A classificação do sub- bloco está baseada em direcionalidade e atividade de gradiente. Por exemplo, o índice de classificação C é derivado com base em direcio- nalidade de gradiente D (por exemplo, O a 2 ou 0 a 4) e atividade de gradiente A (por exemplo, O a 4) (por exemplo, C = 5D + A). Então, com base no índice de classificação C, cada sub-bloco é categorizado em uma dentre uma pluralidade de classes (por exemplo, 15 ou 25 classes).
[00143] Por exemplo, a direcionalidade de gradiente D é calculada comparando gradientes de uma pluralidade de direções (por exemplo, as direções horizontal, vertical, e duas diagonais). Mais ainda, por exemplo, a atividade de gradiente A é calculada somando gradientes de uma pluralidade de direções e quantizando a soma.
[00144] O ffilttoa ser utiizado para cada sub-bloco é determinado dentre a pluralidade de filtros com base no resultado de tal categoriza- ção.
[00145] A forma de filtro a ser utilizado em ALF é, por exemplo, uma forma de filtro simétrica circular. A Figura 4A, 4B, e 4C ilustram exem- plos de formas de filtro utilizadas em ALF. A Figura 4A ilustra um filtro de forma de diamante 5x5, a Figura 4B ilustra um filtro de forma de diamante 7x7, e a Figura 4C ilustra um filtro de forma de diamante 9x9. As informações que indicam a forma de filtro são tipicamente sinaliza- das no nível de imagem. Note que a sinalização de informações que indicam a forma de filtro não precisa ser executada no nível de ima- gem, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível lado a lado, nível de CTU, ou nível de CU).
[00146] A habilitação ou desabilitação de ALF pode ser determina-
da no nível de imagem ou nível de CU. Por exemplo, para luma, a de- cisão de aplicar ALF ou não pode ser tomada no nível de CU, e para croma, a decisão de aplicar ALF ou não pode ser tomada no nível de imagem. As informações que indicam se o ALF está habilitado ou de- sabilitado são tipicamente sinalizadas no nível de imagem ou nível de CU. Note que a sinalização de informações que indicam se ALF está habilitado ou desabilitado não precisa ser executada no nível de ima- gem ou nível de CU, e pode ser executada em outro nível (por exem- plo, no nível de sequência, nível de fatia, nível lado a lado, ou nível de CTU).
[00147] Os coeficientes ajustados para a pluralidade de filtros sele- cionáveis (por exemplo, 15 ou 25 filtros) são sinalizados no nível de imagem. Note que a sinalização dos coeficientes ajustados não preci- sa ser executada no nível de imagem, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível lado a lado, nível de CTU, nível de CU, ou nível de sub-bloco). (Memória de Quadro)
[00148] A memória de quadro 122 é um armazenamento para ar- mazenar imagens de referência utilizadas em interpredição, por exem- plo, e é também referida como um armazenamento temporário de quadro. Mais especificamente, a memória de quadro 122 armazena blocos reconstruídos filtrados pelo filtro de loop 120. (Intrapreditor)
[00149] O intrapreditor 124 gera um sinal de predição (sinal de in- trapredição) intrapredizendo o bloco corrente com referência a um blo- co ou blocos na imagem corrente e armazenado na memória de bloco 118 (também referido como predição intraquadro). Mais especifica- mente, o intrapreditor 124 gera um sinal de intrapredição por intrapre- dição com referência a amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos vizinhos ao bloco corrente, e então emi-
te o sinal de intrapredição para o controlador de predição 128.
[00150] — Por exemplo, o intrapreditor 124 executa intrapredição utili- zando um modo dentre uma pluralidade de modos de intrapredição predefinidos. Os modos de intrapredição tipicamente incluem um ou mais modos de predição não direcional e uma pluralidade de modos de predição direcional.
[00151] Os um ou mais modos de predição não direcional incluem, por exemplo, modo de predição plana e modo de predição DC defini- dos no padrão H.265/ HEVC.
[00152] A pluralidade de modos de predição direcional inclui, por exemplo, os 33 modos de predição direcional definidos no padrão H.265/HEVC. Note que a pluralidade de modos de predição direcional pode ainda incluir 32 modos de predição direcional além dos 33 modos de predição direcional (para um total de 65 modos de predição direcio- nal).
[00153] A Figura SA ilustra 67 modos de intrapredição utilizados em intrapredição (dois modos de predição não direcional e 65 modos de predição direcional). As setas cheias representam as 33 direções defi- nidas no padrão H.265/HEVC, e as setas tracejadas representam as 32 direções adicionais. (Os dois modos de predição "não direcional" não estão ilustrados na Figura 5A).
[00154] Em várias implementações, um bloco de luma pode ser re- ferido em intrapredição de bloco de croma. Isto é, um componente de croma do bloco corrente pode ser predito com base em um componen- te de luma do bloco corrente. Tal intrapredição é também referida co- mo uma predição de modelo linear de componente cruzado (CCLM). O modo de intrapredição de bloco de croma que referencia um bloco de luma (referido como, por exemplo, modo de CCLM) pode ser adiciona- do como um dos modos de intrapredição de bloco de croma.
[00155] O intrapreditor 124 pode corrigir valores de pixel de pós-
intrapredição com base em gradientes de pixel de referência horizon- tais / verticais. A intrapredição acompanhada por este tipo de correção é também referida como combinação de intrapredição dependente de posição (PDPC). As informações que indicam se aplicar PDPC ou não (referidas como, por exemplo, um sinalizador de PDPC) são tipicamen- te sinalizadas no nível de CU. Note que a sinalização destas informa- ções não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível lado a lado, ou nível de CTU). (Interpreditor)
[00156] O interpreditor 126 gera um sinal de predição (sinal de in- terpredição) interpredizendo o bloco corrente com referência a um blo- co ou blocos em uma imagem de referência, a qual é diferente da ima- gem corrente e é armazenada na memória de quadro 122 (também referida como predição de interquadros). A interpredição é executada por bloco corrente ou por sub-bloco corrente (por exemplo, por bloco 4x4) no bloco corrente. Por exemplo, o interpreditor 126 executa esti- mativa de movimento em uma imagem de referência para o bloco cor- rente ou o sub-bloco corrente, para encontrar um bloco ou sub-bloco de referência na imagem de referência que melhor coincide com o blo- co ou sub-bloco corrente, e para obter informações de movimento (por exemplo, um vetor de movimento) que compensa (ou prediz) o movi- mento ou mudança do bloco ou sub-bloco de referência para o bloco ou sub-bloco corrente. O interpreditor 126 então executa compensa- ção de movimento (ou predição de movimento) com base nas informa- ções de movimento, e gera um sinal de interpredição do bloco ou sub- bloco corrente com base nas informações de movimento. O interpredi- tor 126 então emite o sinal de interpredição gerado para o controlador de predição 128.
[00157] As informações de movimento utilizadas em compensação de movimento podem ser sinalizadas em uma variedade de formas como o sinal de interpredição. Por exemplo, um vetor de movimento pode ser sinalizado. Como outro exemplo, uma diferença entre um ve- tor de movimento e um preditor de vetor de movimento pode ser sinali- zada.
[00158] Note que o sinal de interpredição pode ser gerado utilizan- do informações de movimento para um bloco vizinho além de informa- ções de movimento para o bloco corrente obtidas de estimativa de movimento. Mais especificamente, o sinal de interpredição poder ser gerado por sub-bloco no bloco corrente calculando uma soma ponde- rada de um sinal de predição com base em informações de movimento obtidas de estimativa de movimento (na imagem de referência) e um sinal de predição com base em informações de movimento de um blo- co vizinho (na imagem corrente). Tal interpredição (compensação de movimento) é também referida como compensação de movimento de bloco sobreposto (OBMC).
[00159] No modo de OBMC, as informações que indicam o tama- nho de sub-bloco para OBMC (referido como, por exemplo, tamanho de bloco de OBMC) podem ser sinalizadas no nível de sequência. Ain- da, as informações que indicam se aplicar o modo de OBMC ou não (referido como, por exemplo, um sinalizador de OBMC) podem ser si- nalizadas no nível de CU. Note que a sinalização de tais informações não precisa ser executada no nível de sequência e nível de CU, e po- de ser executada em outro nível (por exemplo, no nível de imagem, nível de fatia, nível lado a lado, nível de CTU, ou nível de sub-bloco).
[00160] Daqui em diante, o modo de OBMC será descrito em mais detalhes. A Figura 5B é um fluxograma e a Figura 5C é um diagrama conceitual para ilustrar um processo de correção de imagem de predi- ção executado através de processamento de OBMC.
[00161] Referindo à Figura 5C, primeiro, uma imagem de predição
(Pred) é obtida através de compensação de movimento típica utilizan- do um vetor de movimento (MV) atribuído ao bloco alvo (corrente). Na Figura 5C, uma seta "MV" aponta para a imagem de referência, para indicar que o bloco corrente na imagem corrente está referenciando de modo a obter uma imagem de predição.
[00162] A seguir, uma imagem de predição (Pred L) é obtida apli- cando (reutilizando) um vetor de movimento (MV L), o qual já foi deri- vado para o bloco esquerdo vizinho codificado para o bloco alvo (cor- rente), como indicado por uma seta "MV-L" que origina do bloco cor- rente e apontando para a imagem de referência para obter a imagem de predição Pred L. Então, as duas imagens de predição Pred e Pred L são sobrepostas para executar um primeiro passo da correção da imagem de predição, o que em um aspecto tem um efeito de mistu- rar a borda entre os blocos vizinhos.
[00163] Similarmente, uma imagem de predição (Pred U) é obtida aplicando (reutilizando) um vetor de movimento (MV U) o qual já foi derivado do bloco superior vizinho codificado para o bloco alvo (cor- rente), como indicado por uma seta "MV U" que origina do bloco cor- rente e apontando para a imagem de referência para obter a imagem de predição Pred U. Então, a imagem de predição Pred U é sobre- posta com a imagem de predição que resultado primeiro passo (isto é, Pred e Pred L) para executar um segundo passo da correção da ima- gem de predição, o que em um aspecto tem um efeito de misturar a borda entre os blocos vizinhos. O resultado do segundo passo é a imagem de predição final para o bloco corrente, com bordas mistura- das (suavizadas) com seus blocos vizinhos.
[00164] Note que o exemplo acima é de um método de correção de dois passos utilizando blocos esquerdo e superior vizinhos, mas o mé- todo pode ser um método de correção de três passos ou mais alto que também utiliza o bloco direito e/ou inferior vizinho.
[00165] Note que a região sujeita a sobreposição pode ser a região de pixel inteira do bloco, e, alternativamente, pode ser uma região limi- te de bloco parcial.
[00166] Note que aqui, o processo de correção de imagem de pre- dição de OBMC está descrito como sendo baseado em uma única imagem de referência para derivar uma única imagem de predição Pred, à qual imagens de predição adicionais Pred L e Pred U são so- brepostas, mas o mesmo processo pode aplicar a cada uma de uma pluralidade de imagens de referência quando a imagem de predição é corrigida com base na pluralidade de imagens de referência. Em tal caso, após uma pluralidade de imagens de predição corrigidas ser ob- tida executando a correção de imagem de OBMC com base na plurali- dade de imagens de referências, respectivamente, a pluralidade de imagens corrigidas obtidas é adicionalmente sobreposta para obter a imagem de predição final.
[00167] Note que, em OBMC, a unidade do bloco alvo pode ser um bloco de predição e, alternativamente, pode ser um sub-bloco obtido adicionalmente dividindo o bloco de predição.
[00168] Um exemplo de um método para determinar se implemen- tar o processamento de OBMC é pela utilização de um obmc flag, o qual é um sinal que indica se implementar o processamento de OBMC. Como um exemplo específico, o codificador pode determinar se o blo- co alvo pertence a uma região que inclui um movimento complicado. O codificador ajusta o obmc flag para um valor de "1" quando o bloco pertence a uma região que inclui um movimento complicado e imple- menta um processamento de OBMC quando codificando, e ajusta o obmc flag para um valor de "0" quando o bloco não pertence a uma região que inclui um movimento de complicação e codifica o bloco sem implementar o processamento de OBMC. O decodificador comuta en- tre implementar o processamento de OBMC ou não decodificando o obmc flag escrito no fluxo isto é, a sequência comprimida) e execu- tando a decodificação de acordo com o valor de sinalizador.
[00169] Note que as informações de movimento podem ser deriva- das no lado de decodificador sem serem sinalizadas do lado de codifi- cador. Por exemplo, um modo de mesclagem definido no padrão H.265/HEVC pode ser utilizado. Mais ainda, por exemplo, as informa- ções de movimento podem ser derivadas executando estimativa de movimento no lado de decodificador. Neste caso, o lado de decodifi- cador pode executar a estimativa de movimento sem utilizar os valores de pixel do bloco corrente.
[00170] Aqui, um modo para executar estimativa de movimento no lado de decodificador será descrito. Um modo para executar estimativa de movimento no lado de decodificador é também referido como modo de derivação de vetor de movimento casado em padrão (PMMVD) ou modo de conversão ascendente de taxa de quadro (FRUC).
[00171] Um exemplo de processamento de FRUC está ilustrado na Figura 5D. Primeiro, uma lista de candidatos (uma lista de candidatos pode ser uma lista de mesclagem) de candidatos cada um incluindo um vetor de predição de movimento (MV), é gerada com referência a vetores de movimento de blocos codificados que espacialmente ou temporalmente avizinham o bloco corrente. A seguir, o melhor MV candidato é selecionado dentre a pluralidade de MVs candidatos regis- trados na lista de candidatos. Por exemplo, os valores de avaliação para os MVs candidatos incluídos na lista de candidatos são calcula- dos e um MV candidato é selecionado com base nos valores de avali- ação calculados.
[00172] A seguir, um vetor de movimento para o bloco corrente é derivado do vetor de movimento do candidato selecionado. Mais espe- cificamente, por exemplo, o vetor de movimento para o bloco corrente é calculado como o vetor de movimento do candidato selecionado
(melhor MV candidato), como está. Alternativamente, o vetor de movi- mento para o bloco corrente pode ser derivado por coincidência de padrão executada na vizinhança de uma posição em uma imagem de referência que corresponde ao vetor de movimento do candidato sele- cionado. Em outras palavras, quando a vizinhança do melhor MV can- didato é pesquisada utilizando coincidência de padrão em uma ima- gem de referência e valores de avaliação, e um MV que tem um me- lhor valor de avaliação é encontrado, o melhor MV candidato pode ser atualizado para o MV que tem o melhor valor de avaliação, e o MV que tem o melhor valor de avaliação pode ser utilizado como o MV final para o bloco corrente. Uma configuração na qual o processamento pa- ra atualizar o MV que tem um melhor valor de avaliação não é imple- mentado é também aceitável.
[00173] Os mesmos processos podem ser executados em casos nos quais o processamento é executado em unidades de sub-blocos.
[00174] Um valor de avaliação pode ser calculado em vários mo- dos. Por exemplo, uma imagem reconstruída de uma região em uma imagem de referência que corresponde a um vetor de movimento é comparada com uma imagem reconstruída de uma região predetermi- nada (a qual pode estar em outra imagem de referência ou em um blo- co vizinho na imagem corrente, por exemplo, como abaixo descrito), e uma diferença em valores de pixels entre as duas imagens reconstruí- das pode ser calculada e utilizada como um valor de avaliação do ve- tor de movimento. Note que o valor de avaliação pode ser calculado utilizando algumas outras informações além da diferença.
[00175] A seguir, a coincidência de padrão é descrita em detalhes. Primeiro, um MV candidato incluído em uma lista de candidatos (por exemplo, uma lista de mesclagem) é selecionado como o ponto de partida para a pesquisa por coincidência de padrão. A coincidência de padrão utilizada é ou a primeira coincidência de padrão ou a segunda coincidência de padrão. A primeira coincidência de padrão e a segun- da coincidência de padrão são também referidas como coincidência bilateral e coincidência de modelo, respectivamente.
[00176] Na primeira coincidência de padrão, a coincidência de pa- drão é executada entre dois blocos em duas diferentes imagens de referência que estão ambas ao longo da trajetória de movimento do bloco corrente. Portanto, na primeira coincidência de padrão, para uma região em uma imagem de referência, uma região em outra imagem de referência que está em conformidade com a trajetória de movimen- to do bloco corrente é utilizada como a região predeterminada para o cálculo acima descrito do valor de avaliação do candidato.
[00177] A Figura6 ilustra um exemplo de primeira coincidência de padrão (coincidência bilateral) entre dois blocos em duas imagens de referência ao longo de uma trajetória de movimento. Como ilustrado na Figura 6, na primeira coincidência de padrão, dois vetores de movi- mento (MVO, MV1) são derivados encontrando a melhor coincidência entre os dois blocos em duas imagens de referência diferentes (Ref0, Ref1) ao longo da trajetória de movimento do bloco corrente (Cur block). Mais especificamente, uma diferença pode ser obtida entre (i) uma imagem reconstruída em uma posição especificada por um MV candidato em uma primeira imagem de referência codificada (Ref0) e (ii) uma imagem reconstruída em uma posição especificada pelo MV candidato, a qual é simetricamente escalada por intervalos de tempo de exibição, em uma segunda imagem de referência codificada (Ref1). Então, a diferença pode ser utilizada para derivar um valor de avalia- ção para o bloco corrente. Um MV candidato que tem o melhor valor de avaliação entre uma pluralidade de MVs candidatos pode ser sele- cionado como o MV final.
[00178] Sob a suposição de uma trajetória de movimento contínua, os vetores de movimento (MVO, MV1) que apontam para os dois blo-
cos de referência são proporcionais às distâncias temporais (TDO, TD1) entre a imagem corrente (Cur Pic) e as duas imagens de refe- rência (RefO0, Ref1). Por exemplo, quando a imagem corrente está temporalmente entre as duas imagens de referência e a distância tem- poral da imagem corrente para as duas imagens de referência é a mesma, a primeira coincidência de padrão deriva dois vetores de mo- vimento bidirecional espelhados.
[00179] Na segunda coincidência de padrão (coincidência de mode- lo), a coincidência de padrão é executada entre um modelo na imagem corrente (blocos vizinhos ao bloco corrente na imagem corrente; por exemplo, os blocos vizinhos superior e/ou esquerdo) e um bloco em uma imagem de referência. Portanto, na segunda coincidência de pa- drão, um bloco vizinho ao bloco corrente na imagem corrente é utiliza- do como a região predeterminada para o cálculo acima descrito do va- lor de avaliação de candidato.
[00180] A Figura 7 ilustra um exemplo de coincidência de padrão (coincidência de modelo) entre um modelo em uma imagem corrente e um bloco em uma imagem de referência. Como ilustrado na Figura 7, na segunda coincidência de padrão, um vetor de movimento do bloco corrente é derivado pesquisando uma imagem de referência (Ref0O) para encontrar um bloco que melhor coincide com bloco(s) vizinho(s) do bloco corrente (Cur block) na imagem corrente (Cur Pic). Mais es- pecificamente, uma diferença pode ser obtida entre (i) uma imagem reconstruída de uma ou ambas as regiões superior e esquerda vizi- nhas codificadas em relação ao bloco corrente, e (ii) uma imagem re- construída das mesmas regiões relativas a uma posição de bloco es- pecificada por MV candidato em uma imagem de referência codificada (RefoO). Então a diferença pode ser utilizada para derivar um valor de avaliação para o bloco corrente. Um MV candidato que tem o melhor valor de avaliação entre uma pluralidade de MVs candidatos pode ser selecionado como o melhor MV candidato.
[00181] Informações que indicam se aplicar o modo de FRUC ou não (referido como, por exemplo, um sinalizador de FRUC) podem ser sinalizadas no nível de CU. Ainda, quando o modo de FRUC é aplica- do (por exemplo, quando o sinalizador de FRUC é ajustado para ver- dadeiro), informações que indicam o método de coincidência aplicável de padrão (primeira coincidência de padrão ou segunda coincidência de padrão) pode ser sinalizado no nível de CU. Note que a sinalização de tais informações não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, ní- vel de imagem, nível de fatia, nível lado a lado, nível de CTU, ou nível de sub-bloco).
[00182] A seguir, métodos de derivar um vetor de movimento estão descritos. Primeiro, uma descrição é dada de um modo para derivar um vetor de movimento com base em um modelo assumindo movi- mento linear uniforme. Este modo é também referido como um modo de fluxo ótico bidirecional (BIO).
[00183] A Figura8 ilustra um modelo que assume movimento linear uniforme. Na Figura 8, (vx, v,) denota um vetor de velocidade, e 10 e 11 denotam distâncias temporais entre a imagem corrente (Cur Pic) e du- as imagens de referência (Refo, Ref), respectivamente. (MVxo, MVyo) denota um vetor de movimento que corresponde à imagem de referên- cia Refo, e (MVx1, MVy1) denota um vetor de movimento que corres- ponde à imagem de referência Ref.
[00184] — Aqui, sob a suposição de movimento linear uniforme exibido pelo vetor de velocidade (vx, vy), (MVxo, MVyo) e (MVx1, MVy1) são re- presentados como (vxto, Vyto) E (“VxT1, -Vyt1), respectivamente, e a se- guinte equação de fluxo ótico (Equação 1) é dada. [MATH. 1] 61º /ar+v, or /ax+v, or /av=0. O)
[00185] — Aqui, 1º denota um valor de luma da imagem de referência k (k = 0, 1) após compensação de movimento. A equação de fluxo óti- co mostra que a soma de (i) a derivada de tempo do valor de luma, (ii) o produto da velocidade horizontal e o componente horizontal do gra- diente espacial de uma imagem de referência, e (iii) o produto da velo- cidade vertical e o componente vertical do gradiente espacial de uma imagem de referência é igual a zero. Um vetor de movimento de cada bloco obtido de, por exemplo, uma lista de mesclagem pode ser corri- gido pixel por pixel com base em uma combinação da equação de flu- xo ótico e interpolação Hermite.
[00186] Note que um vetor de movimento pode ser derivado no lado de decodificador utilizando um método outro que derivar um vetor de movimento com base em um modelo assumindo movimento linear uni- forme. Por exemplo, um vetor de movimento pode ser derivado para cada sub-bloco com base em vetores de movimento de blocos vizi- nhos.
[00187] A seguir uma descrição é dada de um modo no qual um vetor de movimento é derivado para cada sub-bloco com base em ve- tores de movimento de blocos vizinhos. Este modo é também referido como modo de predição de compensação de movimento afim.
[00188] A Figura 9A ilustra um exemplo de derivar um vetor de mo- vimento de cada sub-bloco com base em vetores de movimento de blocos vizinhos. Na Figura 9A, o bloco corrente inclui 16 sub-blocos 4x4. Aqui, o vetor de movimento vo do ponto de controle de canto su- perior esquerdo no bloco corrente é derivado com base em vetores de movimento de sub-blocos vizinhos. Similarmente o vetor de movimento v1 do ponto de controle de canto superior direito do bloco corrente é derivado com base em vetores de movimento de blocos vizinhos. En- tão, utilizando os dois vetores de movimento vo e v1, o vetor de movi- mento (vx, vy) de cada sub-bloco no bloco corrente é derivado utilizan-
do a Equação 2 abaixo. [MATH. 2] v,= Vu TV) Yo) Ma Yo) o) Y+Vo, v, = Mu) Sm) ME) JA, o w w
[00189] Aqui, xey são as posições horizontal e vertical do sub- bloco, respectivamente, e w é um coeficiente ponderado predetermi- nado.
[00190] “Um modo de predição de compensação de movimento afim pode inclui um número de modos de diferentes métodos de derivar os vetores de movimento dos pontos de controle de canto superior es- querdo e superior direito. Informações que indicam um modo de predi- ção de compensação de movimento afim (referidas como, por exem- plo, um sinalizador afim) são sinalizadas no nível de CU. Note que a sinalização de informações que indicam o modo de predição de com- pensação de movimento afim não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível lado a lado, nível de CTU, ou nível de sub-bloco). (Controlador de Predição)
[00191] O controlador de predição 128 seleciona ou o sinal de in- trapredição (emitido do intrapreditor 124) ou o sinal de interpredição (emitido do interpreditor 126), e emite o sinal de predição selecionado para o subtrator 104 e o somador 116.
[00192] “Como ilustrado na Figura 1, em várias implementações, o controlador de predição 128 pode emitir parâmetros de predição, os quais são inseridos no codificador de entropia 110. O codificador de entropia 110 pode gerar um fluxo de bits (ou sequência) codificado com base nos parâmetros de predição, inseridos do controlador de predição 128, e os coeficientes quantizados, inseridos do quantizador
108. Os parâmetros de predição podem ser utilizados pelo decodifica- dor, o qual recebe e decodifica a fluxo de bits codificado, para executar o mesmo processamento de predição como executado no intrapreditor 124, interpreditor 126, e controlador de predição 128. Os parâmetros de predição podem incluir o sinal de predição selecionado (por exem- plo, vetores de movimento, tipo de predição ou modo de predição em- pregado no in intrapreditor 124 ou interpreditor 126), ou qualquer índi- ce, sinalizador, ou valor que está baseado em, ou é indicativo de, o processamento de predição executado no intrapreditor 124, interpredi- tor 126, e controlador de predição 128.
[00193] A Figura 9B ilustra um exemplo de um processo para deri- var um vetor de movimento em uma imagem corrente no modo de mesclagem.
[00194] Primeiro, uma lista de MV de predição é gerada, na qual os candidatos de MV de predição são registrados. Exemplos de candida- tos de MV de predição incluem: MVs de predição espacialmente vizi- nhos, os quais são MVs de blocos codificados posicionados na vizi- nhança espacial do bloco alvo; MVs de predição temporalmente vizi- nhos, os quais são MVs de blocos em imagens de referência codifica- das que avizinham um bloco na mesma localização que o bloco alvo; um MV de predição acoplado, o qual é um MV gerado combinando os valores de MV do MV de predição espacialmente vizinho e do MV de predição temporalmente vizinho; e um MV de predição zero, o qual é um MV cujo valor é zero.
[00195] A seguir, o MV do bloco alvo é determinado selecionando um MV de predição dentre a pluralidade de MVs de predição registra- da na lista de MVs de predição.
[00196] Mais ainda, em um codificador de componente variável, um merge idx, o qual é um sinal que indica qual MV de predição é seleci- onado, é escrito no fluxo.
[00197] Note que os MVs de predição registrados na lista de MVs de predição ilustrada na Figura 9B constituem um exemplo. O número de MVs de predição registrados na lista de MVs de predição pode ser diferente do número ilustrado na Figura 9B, e os MVs de predição re- gistrados na lista de MVs de predição podem omitir um ou mais dos tipos de MVs de predição dados no exemplo na Figura 9B, e os MVs de predição registrados na lista de MVs de predição podem incluir um ou mais tipos de MVs de predição além e diferente dos tipos dados no exemplo na Figura 9B.
[00198] O MV final pode ser determinado executando um proces- samento de DMVR (reiniciação de vetor de movimento dinâmica) (a ser posteriormente descrito) utilizando o MV do bloco alvo derivado no modo de mesclagem.
[00199] A Figura 9€ é um diagrama conceitual que ilustra um exemplo de processamento de DMVR para determinar um MV.
[00200] — Primeiro, o MV mais apropriado o qual é ajustado para o bloco corrente (por exemplo, no modo de mesclagem) é considerado ser o MV candidato. Então, de acordo com MV candidato (LO), um pixel de referência é identificado em uma primeira imagem de referên- cia (LO), a qual é uma imagem codificada na direção LO. Similarmente, de acordo com o MV candidato (L1), um pixel de referência é identifi- cado em uma segunda imagem de referência (L1) a qual é uma ima- gem codificada na direção L1. Os pixels de referência têm a média calculada para formar um modelo.
[00201] A seguir, utilizando o modelo, as regiões circundantes dos MVs candidatos das primeira e segunda imagens de referência (LO e L1) são pesquisadas, e o MV com o custo mais baixo é determinado ser o MV final. O valor de custo pode ser calculado, por exemplo, utili- zando a diferença entre cada valor de pixel no modelo e cada valor de pixel nas regiões pesquisadas, utilizando os MVs candidatos, etc.
[00202] “Note que a configuração e operação dos processos aqui descritos são fundamentalmente as mesmas tanto no lado de codifica- dor quanto no lado de decodificador, a serem abaixo descritas.
[00203] “Qualquer processamento outro que o processamento acima descrito pode ser utilizado, desde que o processamento seja capaz de derivar o MV final pesquisando os arredores do MV candidato.
[00204] A seguir, uma descrição é dada de um exemplo de um mo- do que gera uma imagem de predição (uma predição) utilizando pro- cessamento de LIC (compensação de iluminação local).
[00205] A Figura 9D ilustra um exemplo de um método de geração de imagem de predição utilizando um processo de correção de lumi- nância executado por processamento de LIC.
[00206] Primeiro, de uma imagem de referência codificada, um MV é derivado para obter uma imagem de referência que corresponde ao bloco corrente.
[00207] A seguir, para o bloco corrente, informações que indicam como o valor de luminância mudou entre a imagem de referência e a imagem corrente são obtidas, com base nos valores de pixel de lumi- nância da região de referência esquerda vizinha codificada e a região de referência superior vizinha codificada na imagem corrente, e com base nos valores de pixel de luminância nas mesmas localizações na imagem de referência como especificado pelo MV. As informações que indicam como o valor de luminância mudou são utilizadas para calcular um parâmetro de correção de luminância.
[00208] Aimagem de predição para o bloco corrente é gerada exe- cutando um processo de correção de luminância, o qual aplica o pa- râmetro de correção de luminância sobre a imagem de referência na imagem de referência especificada pelo MV.
[00209] Note que a forma da(s) região(ões) de referência circundan- tes ilustradas na Figura 9D são apenas um exemplo; a região de refe-
rência circundante pode ter uma forma diferente.
[00210] Mais ainda, apesar de uma imagem de predição ser gerada de uma única imagem de referência neste exemplo, em casos nos quais uma imagem de predição é gerada de uma pluralidade de ima- gens de referência, a imagem de predição pode ser gerada após exe- cutar um processo de correção de luminância, como acima descrito, sobre as imagens de referência obtidas das imagens de referência.
[00211] Um exemplo de um método para determinar se implemen- tar um processamento de LIC é utilizando um lic flag, o qual é um si- nal que indica se implementar um processamento de LIC. Como um exemplo específico, o codificador determina se o bloco corrente per- tence a uma região de mudança de luminância. O codificador ajusta lic flag para um valor de "1" quando o bloco pertence a uma região de mudança de luminância e implementa um processamento de LIC quando codificando. O codificador ajusta o lic flag para um valor de "0" quando o bloco não pertence a uma região de mudança de luminância, e executa codificação implementando processamento de LIC. O deco- dificador pode comutar entre implementar o processamento de LIC ou não decodificando o lic flag escrito no fluxo e executando a decodifi- cação de acordo com o valor de sinalizador.
[00212] Um exemplo de um diferente método de determinar se im- plementar processamento de LIC inclui discernir se o processamento de LIC foi determinado ser implementado para um bloco circundante. Em um exemplo específico, quando o modo de mesclagem é utilizado sobre o bloco corrente, é determinado se o processamento de LIC foi aplicado na codificação do bloco codificado circundante, o qual foi se- lecionado quando derivando o MV no modo de mesclagem. Então, a determinação é utilizada para adicionalmente determinar se implemen- tar o processamento de LIC ou não para o bloco corrente. Note que neste exemplo também, o mesmo se aplica ao processamento execu-
tado no lado de decodificador. (Decodificador)
[00213] A seguir, um decodificador capaz de decodificar um sinal codificado (fluxo de bits codificado) emitido do codificador 100 será descrito. A Figura 10 é um diagrama de blocos que ilustra uma confi- guração funcional do decodificador 200 de acordo com uma modalida- de. O decodificador 200 é um decodificador de imagem móvel que de- codifica uma imagem móvel bloco por bloco.
[00214] Como ilustrado na Figura 10, o decodificador 200 inclui um decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, memória de bloco 210, filtro de loop 212, memória de quadro 214, intrapreditor 216, interpreditor 218, e contro- lador de predição 220.
[00215] O decodificador 200 é realizado como, por exemplo, um processador e memória genéricos. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o processador funciona como o decodificador de entropia 202, quantiza- dor inverso 204, transformador inverso 206, somador 208, filtro de loop 212, intrapreditor 216, interpreditor 218, e controlador de predição 220. Alternativamente, o decodificador 200 pode ser realizado como um ou mais circuitos eletrônicos dedicados que corresponde ao decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, filtro de loop 212, intrapreditor 216, interpreditor 218, e controlador de predição 220.
[00216] Daquiem diante, cada componente incluído no decodifica- dor 200 será descrito. (Decodificador de Entropia)
[00217] O decodificador de entropia 202 decodifica um fluxo de bits codificado. Mais especificamente, por exemplo, o decodificador de en- tropia 202 decodifica em aritmética fluxo de bits codificado em um sinal binário. O decodificador de entropia 202 então desbinariza o sinal bi- nário. O decodificador de entropia 202 emite coeficientes quantizados de cada bloco para o quantizador inverso 204. O decodificador de en- tropia 202 pode também emitir os parâmetros de predição, os quais podem ser incluídos no fluxo de bits codificado (ver Figura 1), para o intrapreditor 216, interpreditor 218, e controlador de predição 220 de modo que estes possam executar o mesmo processamento de predi- ção como executado no lado de codificador no intrapreditor 124, inter- preditor 126, e controlador de predição 128. (Quantizador Inverso)
[00218] O quantizador inverso 204 quantiza inverso coeficientes quantizados de um bloco a ser decodificado (daqui em diante referido como um bloco corrente), os quais são inseridos do decodificador de entropia 202. Mais especificamente, o quantizador inverso 204 quanti- za inverso os coeficientes quantizados do bloco corrente com base em parâmetros de quantização que correspondem aos coeficientes quan- tizados. O quantizador inverso 204 então emite os coeficientes quanti- zados inversos (isto é, coeficientes de transformada) do bloco corrente para o transformador inverso 206. (Transformador Inverso)
[00219] O transformador inverso 206 restaura os erros de predição (resíduos) transformando inverso coeficientes de transformada, os quais são inseridos do quantizador inverso 204.
[00220] Por exemplo, quando informações analisadas de um fluxo de bits codificado indica aplicação EMT ou AMT (por exemplo, quando o sinalizador de AMT é ajustado para verdadeiro), o transformador in- verso 206 transforma inverso os coeficientes de transformada do bloco corrente com base em informações que indica o tipo de transformada analisado.
[00221] Mais ainda, por exemplo, quando as informações analisa-
das de um fluxo de bits codificado indicam aplicação de NSST, o trans- formador inverso 206 aplica uma transformada inversa secundária nos coeficientes de transformada.
(Somador)
[00222] —Somador 208 reconstrói o bloco corrente somando erros de predição, os quais são inseridos do transformador inverso 206, e amostras de predição, as quais são uma entrada do controlador de predição 220. O somador 208 então emite o bloco reconstruído para a memória de bloco 210 e o filtro de loop 212.
(Memória de bloco)
[00223] A memória de bloco 210 é um armazenamento para arma- zenar blocos em uma imagem a ser decodificada (daqui em diante re- ferida como uma imagem corrente) para referência em intrapredição.
Mais especificamente, a memória de bloco 210 armazena blocos re- construídos emitidos do somador 208.
(Filtro de loop)
[00224] O filtro de loop 212 aplica um filtro de loop em blocos re- construídos pelo somador 208, e emite os blocos reconstruídos filtra- dos para a memória de quadro 214 e, por exemplo, para um dispositi- vo de display.
[00225] “Quando informações que indicam a habilitação ou desabili- tação de ALF analisadas de um fluxo de bits codificado indicam habili- tado, um filtro dentre uma pluralidade de filtros é selecionado com ba- se na direção e atividade de gradientes locais, e o filtro selecionado é aplicado no bloco reconstruído.
(Memória de quadro)
[00226] A memória de quadro 214 é um armazenamento para ar- mazenar imagens de referência utilizadas em interpredição, e é tam- bém referida como um armazenamento temporário de quadro. Mais especificamente, a memória de quadro 214 armazena blocos recons-
truídos filtrados pelo filtro de loop 212. (Intrapreditor)
[00227] O intrapreditor 216 gera um sinal de predição (sinal de in- trapredição) por intrapredição com referência a um bloco ou blocos na imagem corrente e armazenada na memória de bloco 210. Mais espe- cificamente, o intrapreditor 216 gera um sinal de intrapredição por in- trapredição com referência a amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos vizinhos ao bloco corrente, e então emite o sinal de intrapredição para o controlador de predição 220.
[00228] “Note que quando um modo de intrapredição no qual um bloco de croma é intrapredito de um bloco de luma é selecionado, o intrapreditor 216 pode predizer o componente de croma do bloco cor- rente com base no componente de luma do bloco corrente.
[00229] Mais ainda, quando informações que indicam a aplicação de PDPC são analisadas de um fluxo de bits codificado (os parâmetros de predição emitidos do decodificador de entropia 202, por exemplo), o intrapreditor 216 corrige valores de pixel de pós-intrapredição com ba- se em gradientes de pixel de referência horizontais / verticais. (Interpreditor)
[00230] O interpreditor 218 prediz o bloco corrente com referência a uma imagem de referência armazenada na memória de quadro 214. À interpredição é executada por bloco corrente ou por sub-bloco (por exemplo, por bloco 4x4) no bloco corrente. Por exemplo, o interpredi- tor 218 gera um sinal de interpredição do bloco corrente ou sub-bloco com base em compensação de movimento utilizando informações de movimento (por exemplo, um vetor de movimento) analisadas de um fluxo de bits codificado (nos parâmetros de predição emitidos do deco- dificador de entropia 202, por exemplo), e emite o sinal de interpredi- ção para o controlador de predição 220.
[00231] “Quando as informações analisadas do fluxo de bits codifi-
cado indicam a aplicação de modo de OBMC, o interpreditor 218 gera o sinal de interpredição utilizando informações de movimento de um bloco vizinho além de informações de movimento para o bloco corren- te obtidas de estimativa de movimento.
[00232] Mais ainda, quando as informações analisadas do fluxo de bits codificado indicam aplicação de modo de FRUC, o interpreditor 218 deriva informações de movimento executando estimativa de mo- vimento de acordo com o método de coincidência de padrão (coinci- dência bilateral ou coincidência de modelo) analisado do fluxo de bits codificado. O interpreditor 218 então executa compensação de movi- mento (predição) utilizando as informações de movimento derivadas.
[00233] Mais ainda, quando o modo de BIO deve ser aplicado, o interpreditor 218 deriva um vetor de movimento com base em um mo- delo que assume movimento linear uniforme. Ainda, quando as infor- mações analisadas do fluxo de bits codificado indicam que o modo de predição de compensação de movimento afim deve ser aplicado, o in- terpreditor 218 deriva um vetor de movimento de cada sub-bloco com base em vetores de movimento de blocos vizinhos. (Controlador de Predição)
[00234] O controlador de predição 220 seleciona ou o sinal de in- trapredição ou o sinal de interpredição, e emite o sinal de predição se- lecionado para o somador 208. Em geral, a configuração, funções e operações do controlador de predição 220, interpreditor 218 e intra- preditor 216 no lado de decodificador podem corresponder à configu- ração, funções e operações do controlador de predição 128, interpredi- tor 126 e intrapreditor 124 no lado de codificador. (Particionamento não Retangular)
[00235] No controlador de predição 128 acoplado no intrapreditor 124 e interpreditor 126 no lado de codificador (ver Figura 1) assim co- mo no controlador de predição 220 acoplado no intrapreditor 216 e in-
terpreditor 218 no lado de decodificador (ver Figura 10), até agora par- tições (ou blocos ou sub-blocos de tamanho variável) obtidas de divi- são de cada bloco, para as quais informações de movimento (por exemplo, vetores de movimento) são obtidas, são invariavelmente re- tangulares, como mostrado na Figura 2. Os inventores descobriram que gerando partições que têm uma forma não retangular, tal como uma forma triangular, leva a um aperfeiçoamento em qualidade da imagem e eficiência de codificação dependendo do conteúdo de uma imagem em uma imagem em várias implementações. Abaixo, várias modalidades serão descritas, nas quais pelo menos uma partição divi- dida de um bloco de imagem para o propósito de predição tem uma forma não retangular. Note que estas modalidades são igualmente aplicáveis no lado de codificador (controlador de predição 128 acopla- do no intrapreditor 124 e interpreditor 126) e no lado de codificador (controlador de predição 220 acoplado no intrapreditor 216 e interpre- ditor 218), e podem ser implementadas no codificador da Figura 1 ou similares, ou no decodificador da Figura 10 ou similares.
[00236] A Figura 11 é um fluxograma que ilustra um exemplo de um processo de dividir um bloco de imagem em partições que inclui pelo menos uma primeira partição que tem uma forma não retangular (por exemplo, um triângulo) e uma segunda partição, e executar um pro- cessamento adicional que inclui codificar (ou decodificar) o bloco de imagem como uma combinação reconstruída das primeira e segunda partições.
[00237] Na etapa S1001, um bloco de imagem é dividido em parti- ções que incluem uma primeira partição que tem uma forma não re- tangular e uma segunda partição, a qual pode ou não ter uma forma não retangular. Por exemplo, como mostrado na Figura 12, um bloco de imagem pode ser dividido de um canto superior esquerdo do bloco de imagem para um canto inferior direito do bloco de imagem para cri-
ar uma primeira partição e uma segunda partição ambas tendo uma forma não retangular (por exemplo, um triângulo), ou um bloco de imagem pode ser dividido de um canto superior direito do bloco de imagem para um canto inferior esquerdo do bloco de imagem para cri- ar uma primeira partição e uma segunda partição ambas tendo uma forma não retangular (por exemplo, um triângulo). Vários exemplos de particionamento não retangular serão abaixo descritos com referências às Figuras 12 e 17-19.
[00238] Na etapa S1002, o processo prediz um primeiro vetor de movimento para a primeira partição e prediz um segundo vetor de mo- vimento para a segunda partição. Por exemplo, a predição dos primei- ro e segundo vetores de movimento pode incluir selecionar o primeiro vetor de movimento de um primeiro conjunto de candidatos de vetor de movimento e selecionar o segundo vetor de movimento de um segun- do conjunto de candidatos de vetor de movimento.
[00239] Na etapa S1003, um processo de compensação de movi- mento é executado para obter a primeira partição utilizando o primeiro vetor de movimento, a qual é derivado na etapa S1002 acima, e para obter a segunda partição utilizando o segundo vetor de movimento, a qual é derivado na etapa S1002 acima.
[00240] Na etapa S1004, um processo de predição é executado pa- ra o bloco de imagem como uma combinação (reconstruída) da primei- ra partição e a segunda partição. O processo de predição pode incluir um processo de suavização de limite para suavizar o limite entre a primeira partição e a segunda partição. Por exemplo, o processo de suavização de limite pode envolver ponderar primeiros valores de pixels limite preditos com base na primeira partição e segundos valo- res de pixels limite preditos com base na segunda partição. Várias im- plementações do processo de suavização de limite serão abaixo des- critas em referência às Figuras 13, 14, 20 e 21A-21D.
[00241] Na etapa S1005, o processo codifica ou decodifica o bloco de imagem utilizando um ou mais parâmetros que incluem um parâme- tro de partição indicativo da divisão do bloco de imagem na primeira partição que tem uma forma não retangular e na segunda partição. Como resumido na tabela da Figura 15, por exemplo, o parâmetro de partição ("o primeiro valor de índice") pode juntamente codificar, por exemplo, uma direção de divisão aplicada na divisão (por exemplo, de superior esquerdo para inferior direito ou de superior direito para infe- rior esquerdo como mostrado na Figura 12) e os primeiro e segundo vetores de movimento derivados na etapa S1002 acima. Detalhes de tal operação de sintaxe de partição que envolve os um ou mais parâà- metros que incluem o parâmetro de partição serão abaixo descritos em detalhes em referência às Figuras 15, 16 e 22-25.
[00242] A Figura 17 é um fluxograma que ilustra um processo 2000 de dividir um bloco de imagem. Na etapa S2001, o processo divide uma imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição, a qual pode ou não ter uma forma não retangular. Como mostrado na Figura 12, um bloco de imagem pode ser dividido em uma primeira partição que tem uma forma de triângulo e uma segunda partição tam- bém tendo uma forma de triângulo. Existem numerosos outros exem- plos nos quais um bloco de imagem é dividido em uma pluralidade de partições que inclui uma primeira partição e uma segunda partição das quais pelo menos a primeira partição tem uma forma não retangular. À forma não retangular pode ser um triângulo, um trapezoide, e um polí- gono com pelo menos cinco lados e ângulos.
[00243] Por exemplo, como mostrado na Figura 18, um bloco de imagem pode ser dividido em duas partições de forma triangular; um bloco de imagem pode ser dividido em mais do que duas partições de forma triangular (por exemplo, três partições de forma triangular); um bloco de imagem pode ser dividido em uma combinação de parti- ção(ões) de forma triangular e partição(ões) de forma retangular; ou um bloco de imagem pode ser dividido em uma combinação de parti- ção(ões) de forma de triângulo e partição(ões) de forma de polígono.
[00244] “Como adicionalmente mostrado na Figura 19, um bloco de imagem pode ser dividido em uma partição em forma de L (forma de polígono) e uma partição em forma retangular; um bloco de imagem pode ser dividido em uma partição em forma de pentágono (polígono) e uma partição em forma triangular; um bloco de imagem pode ser di- vidido em uma partição em forma de hexágono (polígono) e uma parti- ção em forma de pentágono (polígono); ou um bloco de imagem pode ser dividido em múltiplas partições em forma de polígono.
[00245] —Referindo de volta à Figura 17, na etapa S2002, o processo prediz um primeiro vetor de movimento para a primeira partição, por exemplo selecionando a primeira partição de um primeiro conjunto de candidatos de vetor de movimento, e prediz um segundo vetor de mo- vimento para a segunda partição, por exemplo selecionando a segun- da partição de um segundo conjunto de candidatos de vetor de movi- mento. Por exemplo, o primeiro conjunto de candidatos de vetor de movimento pode incluir vetores de movimento de partições vizinhas à primeira partição, e o segundo conjunto de candidatos de vetor de mo- vimento pode incluir vetores de movimento de partições vizinhas à se- gunda partição. As partições vizinhas podem ser uma ou ambas de partições espacialmente vizinhas e partições temporárias vizinhas. Al- guns exemplos das partições espacialmente vizinhas incluem uma par- tição localizada à esquerda, inferior esquerda, inferior, inferior direita, direita, superior direita, superior, ou superior esquerda da partição que está sendo processada. Exemplos de partições temporárias vizinhas são partições colocalizadas nas imagens de referência do bloco de imagem.
[00246] Em várias implementações, as partições vizinhas à primeira partição e as partições vizinhas à segunda partição podem estar fora do bloco de imagem do qual a primeira partição e a segunda partição são divididas. O primeiro conjunto de candidatos de vetor de movimen- to pode ser o mesmo que, ou diferente do, segundo conjunto de can- didatos de vetor de movimento. Ainda, pelo menos um do primeiro conjunto de candidatos de vetor de movimento e do segundo conjunto de candidatos de vetor de movimento podem ser os mesmos que ou- tro, terceiro conjunto de candidatos de vetor de movimento preparado para o bloco de imagem.
[00247] Em algumas implementações, na etapa S2002, em respos- ta a determinar que a segunda partição, similar à primeira partição, também tem uma forma não retangular (por exemplo, um triângulo), o processo 2000 cria o segundo conjunto de candidatos de vetor de mo- vimento (para a segunda partição de forma não retangular) que inclui vetores de movimento de partições vizinhas à segunda partição exclu- sivos da primeira partição (isto é, exclusivos do vetor de movimento da primeira partição). Por outro lado, em resposta a determinar que a se- gunda partição, ao contrário da primeira partição, tem uma forma re- tangular, o processo 2000 cria o segundo conjunto de candidatos de vetor de movimento (para a segunda partição de forma retangular) que inclui vetores de movimento e partições vizinhas à segunda partição inclusivos da primeira partição.
[00248] “Na etapa S2003,o processo codifica ou decodifica a primei- ra partição utilizando o primeiro vetor de movimento derivado na etapa S2002 acima, e codifica ou decodifica a segunda partição utilizando o segundo vetor de movimento derivado na etapa S2002 acima.
[00249] “Um processo de divisão de bloco de imagem, como o pro- cesso 2000 da Figura 17, pode ser executado por um codificador de imagem, como mostrado na Figura 1 por exemplo, o qual inclui um cir-
cuito e uma memória acoplada no circuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição (etapa S2001); predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e codificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizan- do o segundo vetor de movimento (etapa S2003).
[00250] — De acordo com outra modalidade, como mostrado na Figu- ra 1, um codificador de imagem está provido que inclui: um divisor 102 o qual, em operação, recebe e divide uma imagem original em blocos; um somador 104 o qual, em operação, recebe os blocos do divisor e predições de um controlador de predição 128, e subtrai cada predição de seu bloco correspondente para emitir um resíduo; um transforma- dor 106 o qual, em operação, executa uma transformada sobre os re- síduos emitidos do somador 104 para emitir coeficientes de transfor- mada; um quantizador 108 o qual, em operação, quantiza os coeficien- tes de transformada para gerar coeficientes de transformada quantiza- dos; um codificador de entropia 110 o qual, em operação, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits; e o controlador de predição 128 acoplado a um interpreditor 126, um intrapreditor 124, e uma memória 118, 122, em que o interpreditor 126, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência codificada e o intrapreditor 124, em operação, gera uma predição de um bloco cor- rente com base em um bloco de referência codificado em uma imagem corrente. O controlador de predição 128, em operação, divide os blo- cos em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição (Figura 17, etapa S2001); prediz um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de mo- vimento (etapa S2003).
[00251] De acordo com outra modalidade, um decodificador de imagem, como mostrado na Figura 10 por exemplo, está provido o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa: dividir um bloco de imagem em uma pluralida- de de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição (Figura 17, etapa S2001); pre- dizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e decodificar a primeira partição utilizando o primeiro vetor de movi- mento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003).
[00252] De acordo com uma modalidade adicional, um decodifica- dor de imagem como mostrado na Figura 10 está provido que inclui: um decodificador de entropia 202 o qual, em operação, recebe e de- codifica um fluxo de bits codificado para obter coeficientes de trans- formada quantizados; um quantizador inverso 204 e transformador 206 o qual, em operação, quantiza inverso os coeficientes de transformada quantizados para obter coeficientes de transformada e transforma in- verso os coeficientes de transformada para obter resíduos; um soma- dor 208 o qual, em operação, soma os resíduos emitidos do quantiza- dor inverso 204 e transformador 206 e predições emitidas de um con- trolador de predição 220 para reconstruir os blocos; e o controlador de predição 220 acoplado a um interpreditor 218, um intrapreditor 216, e uma memória 210, 214, em que o interpreditor 218, em operação, gera uma predição de um bloco corrente com base em um bloco de refe- rência em uma imagem de referência decodificada e o intrapreditor
216, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente. O controlador de predição 220, em operação, divide um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição (Figura 17, etapa S2001); prediz um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e decodifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003). (Suavização de Limite)
[00253] “Como acima descrito na Figura 11, etapa S1004, de acordo com várias modalidades, executar um processo de predição para o bloco de imagem como uma combinação (reconstruída) da primeira partição que tem uma forma não retangular e da segunda partição po- de envolver a aplicação de um processo de suavização de limite ao longo do limite entre a primeira partição e a segunda partição.
[00254] Por exemplo, a Figura 21B ilustra um exemplo de um pro- cesso de suavização de limite que envolve ponderar primeiros valores de pixels limite, os quais são preditos primeiro com base na primeira partição, e segundos valores dos pixels limite, os quais são preditos segundo com base na segunda partição.
[00255] A Figura 20 é um fluxograma que ilustra um processo de suavização de limite total 3000 que envolve ponderar primeiros valores de pixels limite preditos primeiro com base na primeira partição e se- gundos valores dos pixels limite preditos segundo com base na se- gunda partição, de acordo com uma modalidade. Na etapa S3001, um bloco de imagem é dividido em uma primeira partição e uma segunda partição ao longo de um limite em que pelo menos a primeira partição tem uma forma não retangular, como mostrado na Figura 21A ou nas
Figuras 12, 18 e 19 acima descritas.
[00256] Na etapa S3002, primeiros valores (por exemplo, cor, lumi- nância, transparência, etc.) de um conjunto de pixels ("pixels limite" na Figura 21A) da primeira partição ao longo do limite são preditos primei- ro, em que os primeiros valores são preditos primeiro utilizando infor- mações da primeira partição. Na etapa S3003, segundos valores do (mesmo) conjunto de pixels da primeira partição ao longo do limite são preditos segundo, em que os segundos valores são preditos segundo utilizando informações da segunda partição. Em alguma implementa- ção, pelo menos uma da primeira predição e da segunda predição é um processo de interpredição que prediz os primeiros valores e os se- gundos valores com base em uma partição de referência em uma ima- gem de referência codificada. Referindo à Figura 21D, em algumas implementações, o processo de predição prediz primeiros valores de todos os pixels da primeira partição ("o primeiro conjunto de amos- tras") que incluem o conjunto de pixels sobre o qual a primeira partição e a segunda partição sobrepõem, e prediz segundos valores de so- mente o conjunto de pixels ("o segundo conjunto de amostras") sobre o qual as primeira e segunda partições sobrepõem. Em outra imple- mentação, pelo menos uma da primeira predição e da segunda predi- ção é um processo de intrapredição que prediz os primeiros valores e os segundos valores com base em uma partição de referência codifi- cada em uma imagem corrente. Em algumas implementações, um mé- todo de predição utilizado na primeira predição é diferente de um mé- todo de predição utilizado na segunda predição. Por exemplo, a pri- meira predição pode incluir um processo de interpredição e a segunda predição pode incluir um processo de intrapredição. As informações utilizadas para primeira predição dos primeiros valores ou para segun- da predição dos segundos valores podem ser vetores de movimento, direções de intrapredição, etc. da primeira ou segunda partição.
[00257] Na etapa S3004, os primeiros valores, preditos utilizando a primeira partição, e os segundos valores, preditos utilizando a segunda partição, são ponderados. Na etapa S3005, a primeira partição codifi- cada ou decodificada utilizando os primeiro e segundo valores ponde- rados.
[00258] “Figura 21B ilustra um exemplo de uma operação de suavi- zação de limite em que a primeira partição e a segunda partição so- brepõem sobre cindo pixels (em um máximo) de cada fila ou cada co- luna. Isto é, o número do conjunto de pixels de cada fila ou cada colu- na, para o qual os primeiros valores são preditos com base na primeira partição e os segundos valores são preditos com base na segunda partição, são cinco em um máximo. A Figura 21C ilustra outro exemplo de uma operação de suavização de limite em que a primeira partição e a segunda partição sobrepõem sobre três pixels (em um máximo) de cada fila ou cada coluna. Isto é, o número do conjunto de pixels de ca- da fila ou cada coluna, para o qual os primeiros valores são preditos com base na primeira partição e os segundos valores são preditos com base na segunda partição, são três em um máximo.
[00259] A Figura 13 ilustra outro exemplo de operação de suaviza- ção de limite em que a primeira partição e a segunda partição sobre- põem sobre quatro pixels (em um máximo) de cada fila ou cada colu- na. Isto é, o número do conjunto de pixels de cada fila ou cada coluna, para o qual os primeiros valores são preditos com base na primeira partição e os segundos valores são preditos com base na segunda partição, são quatro em um máximo. No exemplo ilustrado, pondera- ções de 1/8, 1/4, 3/4, e 7/8 podem ser aplicadas nos primeiros valores dos quatro pixels no conjunto, respectivamente, e ponderações de 7/8, 3/4, 1/4, e 1/8 podem ser aplicadas nos segundos valores dos quatro pixels no conjunto, respectivamente.
[00260] A Figura 14 ilustra exemplos adicionais de uma operação de suavização de limite em que a primeira partição e a segunda parti- ção sobrepõem sobre zero pixels de cada fila ou cada coluna (isto é, estas não sobrepõem), sobrepõem sobre um pixel (em um máximo) de cada fila ou cada coluna, e sobrepõem sobre dois pixels (em um má- ximo) de cada fila ou cada coluna, respectivamente. No exemplo em que as primeira e segunda partições não sobrepõem, ponderações zero são aplicadas. No exemplo em que as primeira e segunda parti- ções sobrepõem sobre um pixel de cada fila ou cada coluna, uma ponderação de 1/2 pode ser aplicada nos primeiros valores dos pixels no conjunto predito com base na primeira partição, e uma ponderação de 1/2 pode ser aplicada nos segundos valores dos pixels no conjunto predito com base na segunda partição. No exemplo em que as primei- ra e segunda partições sobrepõem sobre dois pixels de cada fila ou cada coluna, ponderações de 1/3 e 2/38 podem ser aplicadas nos pri- meiros valores dos dois pixels no conjunto predito com base na primei- ra partição, respectivamente, e ponderações de 2/3 e 1/3 podem ser aplicadas nos segundos valores dos dois pixels no conjunto predito com base na segunda partição, respectivamente.
[00261] De acordo com as modalidades acima descritas, o número de pixels no conjunto sobre o qual a primeira partição e a segunda par- tição sobrepõem é um inteiro. Em outras implementações, o número de pixels sobrepostos no conjunto pode ser não inteiro e pode ser fra- cionário, por exemplo. Também, as ponderações aplicadas no primeiro e segundos valores do conjunto de pixels podem ser fracionárias ou inteiras dependendo de cada aplicação.
[00262] Um processo de suavização de limite, como o processo 3000 da Figura 20, pode ser executado por um codificador de imagem, como mostrado na Figura 1 por exemplo, o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa uma operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma se- gunda partição que são divididas de um bloco de imagem (Figura 20, etapa S3001). A operação de suavização de limite inclui: primeira pre- dição de primeiros valores de um conjunto de pixels da primeira parti- ção ao longo do limite, utilizando informações da primeira partição (etapa S3002); segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da segunda partição (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e codificar a primeira partição uti- lizando os primeiros valores ponderados e os segundos valores pon- derados (etapa S3005).
[00263] De acordo com outra modalidade, como mostrado na Figu- ra 1, um codificador de imagem está provido que inclui: um divisor 102 o qual, em operação, recebe e divide uma imagem original em blocos; um somador 104 o qual, em operação, recebe os blocos do divisor e predições de um controlador de predição 128, e subtrai cada predição de seu bloco correspondente para emitir um resíduo; um transforma- dor 106 o qual, em operação, executa uma transformada sobre os re- síduos emitidos do somador 104 para emitir coeficientes de transfor- mada; um quantizador 108 o qual, em operação, quantiza os coeficien- tes de transformada para gerar coeficientes de transformada quantiza- dos; um codificador de entropia 110 o qual, em operação, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits; e o controlador de predição 128 acoplado a um interpreditor 126, um intrapreditor 124, e uma memória 118, 122, em que o interpreditor 126, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência codificada e o intrapreditor 124, em operação, gera uma predição de um bloco cor- rente com base em um bloco de referência codificado em uma imagem corrente. O controlador de predição 128, em operação, executa uma operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem (Figura 20, etapa S3001). A operação de suavização de limite inclui: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição (etapa S3002); segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da se- gunda partição (etapa S3003); ponderar os primeiros valores e os se- gundos valores (etapa S3004); e codificar a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[00264] De acordo com outra modalidade, um decodificador de imagem está provido, como mostrado na Figura 10 por exemplo, o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa uma operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não re- tangular e uma segunda partição que são divididas de um bloco de imagem (Figura 20, etapa S3001). A operação de suavização de limite inclui: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da pri- meira partição (etapa S3002); segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da segunda partição (etapa S3003); ponderar os primei- ros valores e os segundos valores (etapa S3004); e decodificar a pri- meira partição utilizando os primeiros valores ponderados e os segun- dos valores ponderados (etapa S3005).
[00265] De acordo com outra modalidade, um decodificador de imagem como mostrado na Figura 10 está provido que inclui: um de- codificador de entropia 202 o qual, em operação, recebe e decodifica um fluxo de bits codificado para obter coeficientes de transformada quantizados; um quantizador inverso 204 e transformador 206 o qual, em operação, quantiza inverso os coeficientes de transformada quan- tizados para obter coeficientes de transformada e transforma inverso os coeficientes de transformada para obter resíduos; um somador 208 o qual, em operação, soma os resíduos emitidos do quantizador inver- so 204 e transformador 206 e predições emitidas de um controlador de predição 220 para reconstruir os blocos; e o controlador de predição 220 acoplado a um interpreditor 218, um intrapreditor 216, e uma me- mória 210, 214, em que o interpreditor 218, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência decodificada e o intrapreditor 216, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente. O contro- lador de predição 220, em operação, executa operação de suavização de limite ao longo de um limite entre uma primeira partição que tem uma forma não retangular e uma segunda partição que são divididas de um bloco de imagem. (Figura 20, etapa S3001). A operação de su- avização de limite inclui: primeira predição de primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informações da primeira partição (etapa S3002); segunda predição de segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando informações da segunda partição (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e decodificar a primeira partição utilizando os primeiros valores ponde- rados e os segundos valores ponderados (etapa S3005).
(Codificação e Decodificação de Entropia Utilizando Sintaxe de Parâmetro de Partição)
[00266] “Como descrito na Figura 11, etapa S1005, de acordo com várias modalidades, o bloco de imagem dividido em uma primeira par-
tição que tem uma forma não retangular e uma segunda partição pode ser codificado ou decodificado utilizando um ou mais parâmetros que incluem um parâmetro de partição indicativo da divisão não retangular do bloco de imagem. Em várias modalidades, tal parâmetro de parti- ção pode juntamente codificar, por exemplo, uma direção de divisão aplicada na divisão (por exemplo, de superior esquerdo para inferior direito ou de superior direito para inferior esquerdo, ver Figura 12) e os primeiro e segundo vetores de movimento preditos na etapa S1002, como será mais totalmente abaixo descrito.
[00267] A Figura 15 é uma tabela de parâmetros de partição de amostra ("o primeiro valor de índice") e conjuntos de informações jun- tamente codificados pelos parâmetros de partição, respectivamente. Os parâmetros de partição ("os primeiros valores de índice") variam de O a 6 e juntamente codificam: a direção de dividir um bloco de imagem em uma primeira partição e uma segunda partição ambas as quais são triângulo (ver Figura 12), o primeiro vetor de movimento predito para a primeira partição (Figura 11, etapa S1002), e o segundo vetor de mo- vimento predito para a segunda partição (Figura 11, etapa S1002). Es- pecificamente, o parâmetro de partição O que codifica a direção de di- visão é de canto superior esquerdo para canto inferior direito, o primei- ro vetor de movimento é o "2º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira parti- ção, e o segundo vetor de movimento é o "1º" vetor de movimento lis- tado no segundo conjunto de candidatos de vetor de movimento para a segunda partição.
[00268] O parâmetro de partição 1 que codifica a direção de divisão é de canto superior direito para canto inferior esquerdo, o primeiro ve- tor de movimento é o "1º" vetor de movimento listado no primeiro con- junto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "2º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segun- da partição.
O parâmetro de partição 2 que codifica a direção de divi- são é de canto superior direito para canto inferior esquerdo, o primeiro vetor de movimento é o "2º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira parti- ção, e o segundo vetor de movimento é o "1º" vetor de movimento lis- tado no segundo conjunto de candidatos de vetor de movimento para a segunda partição.
O parâmetro de partição 3 que codifica a direção de divisão é de canto superior esquerdo para canto inferior direito, o pri- meiro vetor de movimento é o "2º" vetor de movimento listado no pri- meiro conjunto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "2º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento pa- ra a segunda partição.
O parâmetro de partição 4 que codifica a dire- ção de divisão é de canto superior direito para canto inferior esquerdo, o primeiro vetor de movimento é o "2º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primei- ra partição, e o segundo vetor de movimento é o "3º" vetor de movi- mento listado no segundo conjunto de candidatos de vetor de movi- mento para a segunda partição.
O parâmetro de partição 5 que codifi- ca a direção de divisão é de canto superior esquerdo para canto inferi- or direito, o primeiro vetor de movimento é o "3º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de mo- vimento para a segunda partição.
O parâmetro de partição 6 que codi- fica a direção de divisão é de canto superior esquerdo para canto infe- rior direito, o primeiro vetor de movimento é o "4º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de mo- vimento para a segunda partição.
[00269] A Figura 22 é um fluxograma que ilustra um método 4000 executado no lado de codificador. Na etapa S4001, o processo divide um bloco de imagem em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma segunda partição, com base em um parâmetro de partição indicativo da divisão. Por exemplo, como mostrado na Figura 15 acima descrita, o parâme- tro de partição pode indicar a direção de divisão de um bloco de ima- gem (por exemplo, de canto superior direito para canto inferior esquer- do ou de canto superior esquerdo para canto inferior direito). Na etapa S4002, o processo codifica a primeira partição e a segunda partição. Na etapa S4003, o processo escreve um ou mais parâmetros que in- cluem o parâmetro de partição em um fluxo de bits, o qual o lado de decodificador pode receber e decodificar para obter os um ou mais pa- râmetros para executar o mesmo processo de predição (como execu- tado no lado de codificador) para as primeira e segunda partições no lado de decodificador. Os um ou mais parâmetros que incluem o pa- râmetro de partição podem juntamente ou separadamente codificar várias porções de informações tais como a forma não retangular da primeira partição, a forma da segunda partição, a direção de divisão utilizada para dividir um bloco de imagem para obter as primeira e se- gunda partições, o primeiro vetor de movimento da primeira partição, o segundo vetor de movimento da segunda partição, etc.
[00270] A Figura 23 é um fluxograma que ilustra um método 5000 executado no lado de decodificador. Na etapa S5001, o processo ana- lisa um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de partição indicativo de divi- são de um bloco de imagem em uma pluralidade de partições que in- clui uma primeira partição que tem uma forma não retangular e uma segunda partição. Os um ou mais parâmetros que incluem o parâme- tro de partição analisado do fluxo de bits podem juntamente ou sepa- radamente codificar várias porções de informações necessárias para o lado de decodificador para executar o mesmo processo de predição como executado no lado de codificador, tal como a forma não retangu- lar da primeira partição, a forma da segunda partição, a direção de di- visão utilizada para dividir um bloco de imagem para obter as primeira e segunda partições, o primeiro vetor de movimento da primeira parti- ção, o segundo vetor de movimento da segunda partição, etc. Na eta- pa S5002, o processo 5000 divide o bloco de imagem na pluralidade de partições com base no parâmetro de partição analisado do fluxo de bits. Na etapa S5003, o processo decodifica a primeira partição e a segunda partição, como divididas do bloco de imagem.
[00271] A Figura 24 é uma tabela de parâmetros de partição de amostra ("o primeiro valor de índice") e conjuntos de informações jun- tamente codificadas pelos parâmetros de partição, respectivamente, similar em natureza à tabela de amostras acima descrita na Figura 15. Na Figura 24, os parâmetros de partição ("os primeiros valores de ín- dice") variam de O a 6 e juntamente codifica: a forma das primeira e segunda partições divididas de um bloco de imagem, a direção de di- visão de um bloco de imagem nas primeira e segunda partições, o primeiro vetor de movimento predito para a primeira partição (Figura 11, etapa S1002), e o segundo vetor de movimento predito para a se- gunda partição (Figura 11, etapa S1002). Especificamente, o parâme- tro de partição O codifica que nenhuma das primeira e segunda parti- ções tem uma forma triangular, e assim as informações de direção de divisão são "N/A", as primeiras informações de vetor de movimento são "N/A", e as segundas informações de vetor de movimento são "N/A".
[00272] O parâmetro de partição 1 codifica as primeira e segunda partições são triângulos, a direção de divisão é do canto superior es- querdo para canto inferior direito, o primeiro vetor de movimento é o "2º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda partição.
O pa- râmetro de partição 2 que codifica as primeira e segunda partições são triângulos, a direção de divisão é do canto superior direito para canto inferior esquerdo, o primeiro vetor de movimento é o "1º" vetor de mo- vimento listado no primeiro conjunto de candidatos de vetor de movi- mento para a primeira partição, e o segundo vetor de movimento é o "2º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda partição.
O parâmetro de partição 3 que codifica as primeira e segunda partições são triângulos, a dire- ção de divisão é do canto superior direito para canto inferior esquerdo, o primeiro vetor de movimento é o "2º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primei- ra partição, e o segundo vetor de movimento é o "1º" vetor de movi- mento listado no segundo conjunto de candidatos de vetor de movi- mento para a segunda partição.
O parâmetro de partição 4 que codifi- ca as primeira e segunda partições são triângulos, a direção de divisão é do canto superior esquerdo para canto inferior direito, o primeiro ve- tor de movimento é o "2º" vetor de movimento listado no primeiro con- junto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "2º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segun- da partição.
O parâmetro de partição 5 que codifica as primeira e se- gunda partições são triângulos, a direção de divisão é do canto superi- or direito para canto inferior esquerdo, o primeiro vetor de movimento é o "2º" vetor de movimento listado no primeiro conjunto de candidatos de vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "3º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda partição. O pa- râmetro de partição 6 que codifica as primeira e segunda partições são triângulos, a direção de divisão é do canto superior esquerdo para can- to inferior direito, o primeiro vetor de movimento é o "3º" vetor de mo- vimento listado no primeiro conjunto de candidatos de vetor de movi- mento para a primeira partição, e o segundo vetor de movimento é o "1º" vetor de movimento listado no segundo conjunto de candidatos de vetor de movimento para a segunda partição.
[00273] De acordo com algumas implementações, os parâmetros de partição (valores de índice) podem ser binarizados de acordo com um esquema de binarização, o qual é selecionado dependendo de um valor de pelo menos um ou os um ou mais parâmetros. A Figura 16 ilustra um esquema de binarização de amostras de binarizar os valo- res de índice (os valores de parâmetro de partição).
[00274] A Figura 25 é uma tabela de combinações de amostras de um primeiro parâmetro e um segundo parâmetro, em que um dos quais é um parâmetro de partição indicativo de divisão de um bloco de imagem em uma pluralidade de partições que inclui uma primeira par- tição que tem uma forma não retangular e uma segunda partição. Nes- te exemplo, o parâmetro de partição pode ser utilizado para indicar a divisão de um bloco de imagem sem juntamente codificar outras infor- mações, as quais são codificadas por um ou mais dos outros parâme- tros.
[00275] No primeiro exemplo na Figura 25, o primeiro parâmetro é utilizado para indicar um tamanho de bloco de imagem, e o segundo parâmetro é utilizado como o parâmetro de partição (um sinalizador) para indicar que pelo menos uma da pluralidade de partições dividida de um bloco de imagem tem uma forma triangular. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando o tamanho de bloco de imagem é maior do que 64x64, não existe partição em forma triangular, ou 2) quando a razão de largura e altura de um bloco de imagem é maior do que 4 (por exemplo, 64x4), não existe partição em forma triangular.
[00276] No segundo exemplo da Figura 25, o primeiro parâmetro é utilizado para indicar um modo de predição, e o segundo parâmetro é utilizado como o parâmetro de partição (um sinalizador) para indicar que pelo menos uma da pluralidade de partições dividida de um bloco de imagem tem uma forma triangular. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando um bloco de imagem é codificado em intramodo, não existe partição triangular.
[00277] No terceiro exemplo da Figura 25, o primeiro parâmetro é utilizado como o parâmetro de partição (um sinalizador) para indicar que pelo menos uma da pluralidade de partições dividida de um bloco de imagem tem uma forma triangular, e o segundo parâmetro é utiliza- do para indicar um modo de predição. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando pelo menos uma da pluralidade de partições dividida de um bloco de imagem tem uma forma triangular, o bloco de imagem deve ser intercodificado.
[00278] No quarto exemplo da Figura 25, o primeiro parâmetro indi- ca que o vetor de movimento de um bloco vizinho, e o segundo parâ- metro é utilizado como o parâmetro de partição o qual indica a direção de divisão de um bloco de imagem em dois triângulos. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando o vetor de movimento de um bloco vizinho está em uma direção diagonal, a direção de divisão do bloco de imagem em dois triângulos é do canto superior esquerdo para canto inferior direito.
[00279] — No quinto exemplo da Figura 25, o primeiro parâmetro indi- ca a direção de intrapredição de um bloco vizinho, e o segundo parâ- metro é utilizado como o parâmetro de partição o qual indica a direção de divisão de um bloco de imagem em dois triângulos. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, 1) quando a direção de intrapredição de um bloco vizinho for uma direção diagonal inversa, a direção de divisão o bloco de imagem em dois triângulos é do canto superior direito para canto inferior es- querdo.
[00280] Deve ser compreendido que as tabelas de um ou mais pa- râmetros que incluem o parâmetro de partição e qual informação é jun- tamente ou separadamente codificada, como mostrado na Figuras 15, 24, e 25, são apresentadas como exemplos somente e numerosos ou- tros modos de codificar, juntamente ou separadamente, várias infor- mações como parte da operação de sintaxe de partição acima descrita estão dentro do escopo da presente descrição. Por exemplo, o parâ- metro de partição pode indicar que a primeira partição é um triângulo, um trapezoide, ou um polígono com pelo menos cinco lados e ângulos. O parâmetro de partição pode indicar que a segunda partição tem uma forma não retangular, tal como um triângulo, um trapezoide, e um polí- gono com pelo menos cinco lados e ângulos. O parâmetro de partição pode indicar uma ou mais porções de informações sobre a divisão, tal como a forma não retangular da primeira partição, a forma da segunda partição (a qual pode ser não retangular ou retangular), a direção de divisão aplicada para dividir um bloco de imagem em uma pluralidade de partições (por exemplo, de um canto superior esquerdo do bloco de imagem para um seu canto inferior direito, e de um canto superior di- reito do bloco de imagem para um seu canto inferior esquerdo). O pa- râmetro de partição pode juntamente codificar informações adicionais tais como o primeiro vetor de movimento da primeira partição, o se- gundo vetor de movimento da segunda partição, tamanho de bloco de imagem, modo de predição, o vetor de movimento de um bloco vizi- nho, a direção de intrapredição de um bloco vizinho, etc. Alternativa- mente, quaisquer das informações adicionais podem ser separada- mente codificadas por um ou mais parâmetros outros que o parâmetro de partição.
[00281] Uma operação de sintaxe de partição, como o processo 4000 da Figura 22, pode ser executada por um codificador de imagem, como mostrado na Figura 1 por exemplo, o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa uma operação de sintaxe de partição que inclui: dividir um bloco de imagem em uma pluralidade de partições que inclui uma primeira par- tição que tem uma forma não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão (Figura 22, etapa S4001); codificar a primeira partição e a segunda partição (S4002); e escrever um ou mais parâmetros que incluem o parâmetro de partição em um fluxo de bits (S4003).
[00282] “De acordo com outra modalidade, como mostrado na Figu- ra 1, um codificador de imagem está provido que inclui: um divisor 102 o qual, em operação, recebe e divide uma imagem original em blocos; um somador 104 o qual, em operação, recebe os blocos do divisor e predições de um controlador de predição 128, e subtrai cada predição de seu bloco correspondente para emitir um resíduo; um transforma- dor 106 o qual, em operação, executa uma transformada sobre os re- síduos emitidos do somador 104 para emitir coeficientes de transfor- mada; um quantizador 108 o qual, em operação, quantiza os coeficien- tes de transformada para gerar coeficientes de transformada quantiza- dos; um codificador de entropia 110 o qual, em operação, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits;
e o controlador de predição 128 acoplado a um interpreditor 126, um intrapreditor 124, e uma memória 118, 122, em que o interpreditor 126, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência codificada e o intrapreditor 124, em operação, gera uma predição de um bloco cor- rente com base em um bloco de referência codificado em uma imagem corrente. O controlador de predição 128, em operação, divide um blo- co de imagem em uma pluralidade de partições que inclui uma primei- ra partição que tem uma forma não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão (Figura 22, etapa S4001), e codifica a primeira partição e a segunda partição (etapa S4002). O codificador de entropia 110, em operação, escreve um ou mais parâmetros que incluem o parâmetro de partição em um fluxo de bits (etapa S4003).
[00283] De acordo com outra modalidade, um decodificador de imagem está provido, como mostrado na Figura 10 por exemplo, o qual inclui um circuito e uma memória acoplada no circuito. O circuito, em operação, executa uma operação de sintaxe de partição que inclui: analisar um ou mais parâmetros de um fluxo de bits, em que os um ou mais parâmetros incluem um parâmetro de partição indicativo de divi- são de um bloco de imagem em uma pluralidade de partições que in- clui uma primeira partição que tem uma forma não retangular e uma segunda partição (Figura 23, etapa S5001); dividir o bloco de imagem na pluralidade de partições com base no parâmetro de partição (S5002); e decodificar a primeira partição e a segunda partição (S5003).
[00284] De acordo com uma modalidade adicional, um decodifica- dor de imagem como mostrado na Figura 10 está provido que inclui: um decodificador de entropia 202 o qual, em operação, recebe e de- codifica um fluxo de bits codificado para obter coeficientes de trans-
formada quantizados; um quantizador inverso 204 e transformador 206 o qual, em operação, quantiza inverso os coeficientes de transformada quantizados para obter coeficientes de transformada e transforma in- verso os coeficientes de transformada para obter resíduos; um soma- dor 208 o qual, em operação, soma os resíduos emitidos do quantiza- dor inverso 204 e transformador 206 e predições emitidas de um con- trolador de predição 220 para reconstruir os blocos; e o controlador de predição 220 acoplado a um interpreditor 218, um intrapreditor 216, e uma memória 210, 214, em que o interpreditor 218, em operação, gera uma predição de um bloco corrente com base em um bloco de refe- rência em uma imagem de referência decodificada e o intrapreditor 216, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente. O decodificador de entropia 202, em operação: analisa um ou mais pa- râmetros de um fluxo de bits, em que os um ou mais parâmetros inclu- em um parâmetro de partição indicativo de divisão de um bloco de imagem em uma pluralidade de partições que inclui uma primeira par- tição que tem uma forma não retangular e uma segunda partição (Fi- gura 23, etapa S5001); divide o bloco de imagem na pluralidade de partições com base no parâmetro de partição (S5002); e decodifica a primeira partição e a segunda partição (S5003) em cooperação com o controlador de predição 220 em algumas implementações.
[00285] De acordo com outros exemplos, um interpreditor pode executar o seguinte processo.
[00286] Todos os candidatos de vetor de movimento incluído no primeiro conjunto de candidatos de vetor de movimento podem ser ve- tores de movimento de unipredição. Isto é, o interpreditor pode deter- minar somente vetores de movimento de unipredição como candidatos de vetor de movimento no primeiro conjunto de candidatos de vetor de movimento.
[00287] O interpreditor pode selecionar somente candidatos de ve- tor de movimento de unipredição do primeiro conjunto de candidatos de vetor de movimento.
[00288] “Somente um vetor de movimento de unipredição pode ser utilizado para predizer um pequeno bloco. O vetor de movimento de bipredição pode ser utilizado para predizer um grande bloco. Como um exemplo, o processo de predição pode incluir julgar um tamanho do bloco de imagem. Quando o tamanho do bloco de imagem é julgado ser maior do que um limite, a predição pode incluir selecionar o primei- ro vetor de movimento de um primeiro conjunto de candidatos de vetor de movimento, e o primeiro conjunto de candidatos de vetor de movi- mento pode conter vetores de movimento de unipredição e/ou bipredi- ção. Quando o tamanho do bloco de imagem é julgado não ser maior do que o limite, a predição pode incluir selecionar o primeiro vetor de movimento de um primeiro conjunto de candidatos de vetor de movi- mento, e o primeiro conjunto de candidatos de vetor de movimento po- de conter somente vetores de movimento de unipredição. (Implementações e Aplicações)
[00289] Como descrito em cada uma das modalidades acima, cada bloco funcional ou operacional pode tipicamente ser realizado como uma MPU (unidade de microprocessamento) e uma memória, por exemplo. Mais ainda, os processos executados por cada um dos blo- cos funcionais podem ser realizados como uma unidade de execução de programas, tal como um processador o qual lê e executa um sof- tware (um programa) gravado em um meio de gravação tal como uma ROM. O software pode ser distribuído. O software pode ser gravado em uma variedade de meios de gravação tal como memória de semi- condutor. Note que cada bloco funcional pode também ser realizado como hardware (circuito dedicado).
[00290] O processamento descrito em cada uma das modalidades pode ser realizado através de processamento integrado utilizando um único aparelho (sistema) e, alternativamente, pode ser realizado atra- vés de processamento descentralizado utilizando uma pluralidade de aparelhos. Mais ainda, o processador que executa o programa acima descrito pode ser um único processador ou uma pluralidade de pro- cessadores. Em outras palavras, um processamento integrado pode ser executado, e, alternativamente, um processamento descentraliza- do pode ser executado.
[00291] As modalidades da presente descrição não estão limitadas às modalidades exemplares acima; várias modificações podem ser feitas nas modalidades exemplares, os resultados das quais estão também incluídos dentro do escopo das modalidades da presente descrição.
[00292] A seguir, exemplos de aplicação do método de codificação de imagem móvel (método de codificação de imagem) e do método de decodificação de imagem móvel (método de decodificação de imagem) descritos em cada uma das modalidades acima serão descritos, assim como vários sistemas que implementam os exemplos de aplicação. Tal sistema pode ser caracterizado como incluindo um codificador de ima- gem que emprega o método de codificação de imagem, um decodifi- cador de imagem que emprega o método de decodificação de ima- gem, ou um codificador - decodificador de imagem que inclui tanto o codificador de imagem quanto o decodificador de imagem. Outras con- figurações de tal sistema podem ser modificadas em uma base de ca- SO a caso (Exemplos de Utilização)
[00293] A Figura 26 ilustra uma configuração geral do sistema de provisão de conteúdo ex100 adequado para implementar um serviço de distribuição de conteúdo. A área na qual o serviço de comunicação está provido está dividida em células de tamanhos desejados, e esta-
ções de base ex106, ex107, ex108, ex109, e ex110, as quais são es- tações sem fio fixas no exemplo ilustrado, estão localizadas dentro de respectivas células.
[00294] No sistema de provisão de conteúdo ex100, dispositivos que incluem um computador ex111, dispositivo de jogos ex112, câme- ra ex113, utensílio doméstico ex114, e smartphone ex115 estão co- nectados na internet ex101 através do provedor de serviço de internet ex102 ou rede de comunicações ex104 e estações de base ex106 até ex110. O sistema de provisão de conteúdo ex100 pode combinar e conectar qualquer combinação dos dispositivos acima. Em várias im- plementações, os dispositivos podem ser diretamente ou indiretamente conectados juntos através de uma rede telefônica ou comunicação de campo próximo ao invés de através de estações de base ex106 até ex110. Ainda, um servidor de fluxo ex103 pode estar conectado a dis- positivos que incluem o computador ex111, dispositivo de jogos ex112, câmera ex113, utensílio doméstico ex114, e smartphone ex115 atra- vés de, por exemplo, internet ex101. O servidor de fluxo ex103 pode também estar conectado a, por exemplo, um terminal em um hotspot em avião ex117 através de satélite ex116.
[00295] “Note que ao invés de estações de base ex106 até ex110, pontos de acesso sem fio ou hotspots podem ser utilizados. O servidor de fluxo ex103 pode estar conectado na rede de comunicações ex104 diretamente ao invés de através de internet ex101 ou provedor de ser- viço de internet ex102, e pode estar conectado no avião ex117 direta- mente ao invés de através de satélite ex116.
[00296] A câmera ex113 é um dispositivo capaz de capturar ima- gens imóveis e vídeo, tal como uma câmera digital. O smartphone ex115 é um dispositivo de smartphone, telefone celular, ou telefone de sistema de fone portátil pessoal (PHS) que podem operar sob os pa- drões de sistema de comunicações móveis de típicos sistemas 2G,
3G, 3.9G, e 4G, assim como o sistema de geração 5G futuro.
[00297] O utensílio doméstico ex118 é, por exemplo, um refrigera- dor ou um dispositivo incluído em um sistema de cogeração de célula de combustível doméstico.
[00298] No sistema de provisão de conteúdo ex100, um terminal que inclui uma função de captura de imagem e/ou vídeo é capaz de, por exemplo, fluxo ao vivo conectando a um servidor de fluxo ex103 através da, por exemplo, estação de base ex106. Quando em fluxo ao vivo, um terminal (por exemplo, computador ex111, dispositivo de jo- gos ex112, câmera ex113, utensílio doméstico ex114, smartphone ex115, ou avião ex117) pode executar o processamento de codifica- ção descritos nas modalidades acima sobre um conteúdo de imagem imóvel ou vídeo capturado por um usuário através do terminal, pode multiplexar os dados de vídeo obtidos através da codificação e dados de áudio obtidos por codificação de áudio que corresponde ao vídeo, e pode transmitir os dados obtidos para o servidor de fluxo ex103. Em outras palavras, o terminal funciona como o codificador de imagem de acordo com um aspecto da presente descrição.
[00299] O servidor de fluxo ex103 coloca em fluxo dados de conte- údo transmitidos para clientes que solicitam o fluxo. Exemplos de cli- entes incluem computador ex111, dispositivo de jogos ex112, câmera ex113, utensílio doméstico ex114, smartphone ex115 e terminais den- tro do avião ex117 os quais são capazes de decodificar os dados codi- ficados acima descritos. Os dispositivos que recebem os dados em fluxo decodificam e reproduzem os dados recebidos. Em outras pala- vras, o dispositivo pode cada um funcionar como o decodificador de imagem de acordo com um aspecto de presente descrição. (Processamento Descentralizado)
[00300] O servidor de fluxo ex103 pode ser realizado como uma pluralidade de servidores ou computadores entre os quais tarefas tais como o processamento, gravação e fluxo de dados são divididas. Por exemplo, o servidor de fluxo ex103 pode ser realizado como uma rede de fornecimento de conteúdo (CDN) que coloca em fluxo um conteúdo através de uma rede que conecta múltiplos servidores de borda locali- zados através do mundo. Em uma CDN, um servidor de borda fisica- mente próximo do cliente é dinamicamente designado para o cliente. O conteúdo é colocado em cache e colocado em fluxo para o servidor de borda para reduzir tempos de carga. No caso de, por exemplo, algum tipo de um erro ou uma mudança em conectividade devido a, por exemplo, um pico em tráfego, é possível colocar em fluxo dados esta- velmente em altas velocidades já que é possível evitar as partes afe- tadas da rede, por exemplo, dividindo o processamento entre uma plu- ralidade de servidores de borda ou comutando as tarefas de fluxo para um diferente servidor de borda, e continuar o fluxo.
[00301] A descentralização não está limitada a apenas a divisão do processamento para fluxo; a codificação dos dados capturados pode ser dividida entre e executada pelos terminais, no lado de servidor, ou ambos. Em um exemplo, em codificação típica, o processamento é executado em dois loops. O primeiro loop é para detectar quão com- plicada a imagem é em uma base quadro por quadro ou cena por ce- na, ou detectando a carga de codificação. O segundo loop é para pro- cessamento que mantém a qualidade de imagem e aperfeiçoa a efici- ência de codificação. Por exemplo, é possível reduzir a carga de pro- cessamento dos terminais e aperfeiçoar a qualidade e eficiência de codificação do conteúdo fazendo os terminais executarem o primeiro loop da codificação e tendo o lado de servidor que recebeu o conteúdo executando o segundo loop da codificação. Em tal caso, quando do recebimento de uma solicitação de decodificação, é possível que os dados codificados resultantes do primeiro loop executado por um ter- minal sejam recebidos e reproduzidos sobre outro terminal em aproxi-
madamente tempo real. Isto possibilita realizar um fluxo suave em tempo real.
[00302] Em outro exemplo, a câmera ex113 ou similares extrai uma quantidade de característica de uma imagem, comprime os dados re- lacionados à quantidade de características como metadados e trans- mite os metadados comprimidos para um servidor. Por exemplo, o servidor determina a significância de um objeto com base na quantida- de de características e muda a precisão de quantização consequen- temente para executar compressão adequada para o significado (ou significância de conteúdo) da imagem. Os dados de quantidade de ca- racterísticas são especificamente efetivos em aperfeiçoar a precisão e eficiência de predição de vetor de movimento durante o segundo pas- so de compressão executado pelo servidor. Mais ainda, uma codifica- ção que tem uma carga de processamento relativamente baixa, tal como codificação de comprimento variável (VLC), pode ser manipula- da pelo terminal e codificação que tem uma carga de processamento relativamente alta, tal como codificação aritmética binária adaptável em contexto (CABAC) pode ser manipulada pelo servidor.
[00303] Em ainda outro exemplo, existem casos nos quais uma plu- ralidade de vídeos de aproximadamente a mesma cena é capturada por uma pluralidade de terminais em, por exemplo, um estádio, shop- ping center ou fábrica. Em tal caso, por exemplo, a codificação pode ser descentralizada dividindo as tarefas de processamento entre a plu- ralidade de terminais que capturaram os vídeos e, se necessário, ou- tros terminais que não capturaram os vídeos e o servidor, em uma ba- se por unidade. As unidades podem ser, por exemplo, grupos de ima- gens (GOP), imagens ou blocos que resultam da divisão de uma ima- gem. Isto torna possível reduzir os tempos de carga e conseguir um fluxo que é mais próximo do tempo real.
[00304] Como os vídeos são de aproximadamente a mesma cena,
o gerenciamento e/ou instruções podem ser executados pelo servidor de modo que os vídeos capturados pelos terminais possam ser refe- renciados cruzados. Mais ainda, o servidor pode receber dados codifi- cados dos terminais, mudar a relação de referência entre itens de da- dos ou corrigir ou substituir as próprias imagens, e então executar a codificação. Isto torna possível gerar um fluxo com qualidade e efici- ência aumentadas para os itens de dados individuais.
[00305] Mais ainda, o servidor pode colocar em fluxo dados de ví- deo após executar transcodificação para converter o formato de codifi- cação dos dados de vídeo. Por exemplo, o servidor pode converter o formato de codificação de MPEG para VP (por exemplo, VP9), e pode converter H.264 para H.265.
[00306] “Neste modo, a codificação pode ser executada por um ter- minal ou um ou mais servidores. Consequentemente, apesar do dispo- sitivo que executa a codificação ser referido como um "servidor" ou "terminal" na descrição seguinte, alguns ou todos os processos execu- tados pelo servidor podem ser executados pelo terminal, e do mesmo modo alguns ou todos os processos executados pelo terminal podem ser executados pelo servidor. Isto também se aplica a processos de decodificação. (3D, Múltiplos Ângulos)
[00307] Tem havido um aumento na utilização de imagens ou ví- deos combinados de imagens ou vídeos de diferentes cenas concor- rentemente capturadas, ou da mesma cena capturada de diferentes ângulos, por uma pluralidade de terminais tal como a câmera ex113 e/ou smartphone ex115. Os vídeos capturados pelos terminais são combinados com base em, por exemplo, a relação posicional relativa separadamente obtida entre os terminais, ou regiões em um vídeo que têm pontos de características coincidentes.
[00308] Além da codificação de imagens móveis bidimensionais, o servidor pode codificar uma imagem imóvel com base em análise de cena de uma imagem móvel, ou automaticamente ou em um ponto no tempo especificado pelo usuário, e transmitir a imagem imóvel codifi- cada para um terminal de recepção. Mais ainda, quando o servidor pode obter a relação posicional relativa entre os terminais de captura de vídeo, além de imagens móveis bidimensionais, o servidor pode gerar uma geometria tridimensional de uma cena com base em vídeo da mesma cena capturada de diferentes ângulos. Note que o servidor pode separadamente codificar dados tridimensionais gerados de, por exemplo, uma nuvem de pontos, e pode, com base em um resultado de reconhecer ou rastrear uma pessoa ou objeto utilizando dados tri- dimensionais, pode selecionar ou reconstruir e gerar um vídeo para ser transmitido para um terminal de recepção de vídeos capturados por uma pluralidade de terminais.
[00309] Isto permite o usuário desfrutar uma cena livremente sele- cionando vídeos que correspondem aos terminais de captura de vídeo, e permite o usuário desfrutar o conteúdo obtido extraindo um vídeo em um ponto de visão selecionado de dados tridimensionais reconstruídos de uma pluralidade de imagens ou vídeos. Mais ainda, como com o vídeo, o som pode ser gravado de ângulos relativamente diferentes, e o servidor pode multiplexar o áudio de um ângulo ou espaço específico com o vídeo correspondente, e transmitir o vídeo e áudio multiplexa- dos.
[00310] Em anos recentes, um conteúdo que é um composto do mundo real e um mundo virtual, tal como um conteúdo de realidade virtual (VR) e realidade aumentada (AR), também tornou-se popular. No caso de imagens VR, o servidor pode criar imagens dos pontos de vista de ambos os olhos esquerdo e direito e executar uma codificação que tolera referência entre as imagens de dois pontos de vista, tal co- mo codificação de múltiplas vistas (MVC), e, alternativamente, pode codificar as imagens como fluxos separados sem referenciamento. Quando as imagens são decodificadas como fluxos separados, os flu- xos podem ser sincronizados quando reproduzidos de modo a recriar um espaço tridimensional virtual de acordo com o ponto de vista do usuário.
[00311] No caso de imagens de AR, o servidor sobrepõe informa- ções de objeto virtual existentes em um espaço virtual sobre informa- ções de câmera que representam um espaço de mundo real com base em uma posição tridimensional ou movimento da perspectiva do usuá- rio. O decodificador pode obter ou armazenar informações de objeto virtual e dados tridimensionais, gerar imagens bidimensionais com ba- se em movimento da perspectiva do usuário e então gerar dados so- brepostos ininterruptamente conectando as imagens. Alternativamen- te, o decodificador pode transmitir, para o servidor, o movimento da perspectiva do usuário além de uma solicitação de informações sobre objeto virtual, e o servidor pode gerar dados sobrepostos com base em dados tridimensionais armazenados no servidor de acordo com o mo- vimento recebido, e codificar e colocar em fluxo os dados sobrepostos gerados para o decodificador. Note que os dados sobrepostos inclu- em, além de valores RGB, um valor a que indica transparência, e o servidor ajusta o valor a para seções outras que o objeto gerado dos dados tridimensionais para, por exemplo, 0, e pode executar a codifi- cação enquanto estas seções são transparentes. Alternativamente, o servidor pode ajustar o fundo para um valor RGB predeterminado, tal como uma chave de croma, e gerar dados nos quais áreas outras que o objeto são ajustadas como o fundo.
[00312] A decodificação de dados similarmente em fluxo pode ser executada pelo cliente (isto é, os terminais), no lado de servidor, ou dividida entre estes. Em um exemplo, um terminal pode transmitir uma solicitação de recepção para um servidor, o conteúdo solicitado pode ser recebido e decodificado por outro terminal, e um sinal decodificado pode ser transmitido para um dispositivo que tem um display. É possí- vel reproduzir dados de alta qualidade de imagem descentralizando o processamento e apropriadamente selecionando o conteúdo indepen- dentemente da capacidade de processamento do próprio terminal de comunicações. Em ainda em outro exemplo, enquanto uma TV, por exemplo, está recebendo dados de imagem que são grandes em ta- manho, uma região de uma imagem, tal como um bloco obtido dividin- do a imagem, pode ser decodificada e exibida em um terminal pessoal ou terminais de um espectador ou espectadores da TV. Isto torna pos- sível para os espectadores compartilharem uma visão de imagem grande assim como para cada espectador verificar sua área designada ou inspecionar uma região em detalhes adicionais mais próximo.
[00313] Em situações nas quais uma pluralidade de conexões sem fio é possível sobre distâncias próximas, médias e longas, internas ou externas, pode ser possível ininterruptamente receber um conteúdo utilizando um padrão de sistema de fluxo tal como MPEG-DASH. O usuário pode comutar entre dados em tempo real enquanto livremente selecionando um decodificador ou aparelho de display que inclui o terminal do usuário, displays dispostos em ambientes internos ou ex- ternos, etc. Mais ainda, utilizando, por exemplo, informações sobre a posição do usuário, a decodificação pode ser executada enquanto co- mutando qual terminal manipula a decodificação e qual terminal mani- pula a exibição de conteúdo. Isto torna possível mapear e exibir infor- mações, enquanto o usuário está em movimento em uma rota para um destino, sobre a parede de um prédio próximo no qual um dispositivo capaz de exibir conteúdo está embutido, ou sobre parte do solo. Mais ainda, é também possível comutar a taxa de bits dos dados recebidos com base na acessibilidade para os dados codificados sobre uma re- de, tal como quando dados codificados são colocados em cache sobre um servidor rapidamente acessíveis do terminal de recepção ou quan- do dados codificados são copiados para um servidor de borda em um serviço de fornecimento de conteúdo. (Codificação Escalável)
[00314] A comutação de conteúdo será descrita com referência a um fluxo escalável, ilustrado na Figura 27, que está codificado por compressão através de implementação do método de codificação de imagem móvel descrito nas modalidades acima. O servidor pode ter uma configuração na qual o conteúdo é comutado enquanto fazendo uso da escalabilidade temporal e/ou espacial de um fluxo, o que é conseguido por divisão em e codificação de camadas, como ilustrado na Figura 27. Note que que pode existir uma pluralidade de fluxos indi- viduais que são do mesmo conteúdo mas diferente qualidade. Em ou- tras palavras, determinando qual camada decodificar com base em fatores internos, tal como a capacidade de processamento no lado de decodificador e fatores externos, tal como largura de banda de comu- nicação, o lado de decodificador pode livremente comutar entre um conteúdo de baixa resolução e conteúdo de alta resolução enquanto decodificando. Por exemplo, em um caso no qual o usuário deseja continuar assistindo, por exemplo em casa em um dispositivo tal como uma TV conectada na internet, um vídeo que o usuário estava previa- mente assistindo no smartphone ex115 enquanto em movimento, o dispositivo pode simplesmente decodificar o mesmo fluxo para uma camada diferente, o que reduz a carga de lado de servidor.
[00315] Mais ainda, além da configuração acima descrita na qual a escalabilidade é conseguida como um resultado das imagens sendo codificadas por camada, com a camada de melhoramento estando acima da camada de base, a camada de melhoramento pode incluir metadados com base em, por exemplo, informações estatísticas sobre a imagem. O lado de decodificador pode gerar um conteúdo de alta qualidade de imagem executando formação de imagens de super- resolução em uma imagem na camada de base com base nos meta- dados. A formação de imagens de super-resolução pode aperfeiçoar a razão SN enquanto mantendo a resolução e/ou aumentando a resolu- ção. Os metadados incluem informações para identificar um coeficien- te de filtro linear ou um não linear como utilizado em processamento de super-resolução, ou informações que identificam um valor de parà- metro em processamento de filtro, aprendizado de máquina, ou um método dos mínimos quadrados utilizados em processamento de su- per-resolução.
[00316] Alternativamente, uma configuração pode ser provida na qual uma imagem é dividida em, por exemplo, blocos de acordo com, por exemplo, o significado de um objeto na imagem. No lado de deco- dificador, somente uma região parcial é decodificada selecionando um bloco para decodificar. Ainda, armazenando um atributo do objeto (pessoa, carro, bola etc.) e uma posição do objeto no vídeo (coorde- nadas em imagens idênticas) como metadados, o lado de decodifica- dor pode identificar a posição de um objeto desejado com base nos metadados e determinar qual bloco ou blocos incluem aquele objeto. Por exemplo, como ilustrado na Figura 28, os metadados podem ser armazenados utilizando uma estrutura de armazenamento de dados diferente de dados de pixel, tal como uma mensagem de SEI (informa- ções de melhoramento suplementares) em HEVC. Estes metadados indicam, por exemplo, a posição, tamanho, ou cor do objeto principal.
[00317] Os metadados podem ser armazenados em unidades de uma pluralidade de imagens, tal como fluxo, sequência, ou unidades de acesso randômico. O lado de decodificador pode obter, por exem- plo, o tempo no qual uma pessoa específica aparece no vídeo, e ajus- tando as informações de tempo com informações de unidade de ima- gem, pode identificar uma imagem na qual o objeto está presente, e pode determinar a posição do objeto na imagem. (Otimização de Webpage)
[00318] A Figura 29 ilustra um exemplo de uma tela de display de uma webpage no computador ex111, por exemplo. A Figura 30 ilustra um exemplo de uma tela de display de uma webpage no smartphone ex115, por exemplo. Como ilustrado na Figura 29 e Figura 30, uma webpage pode incluir uma pluralidade de conexões de imagem que são conexões para conteúdo de imagem, e a aparência da webpage difere dependendo do dispositivo utilizado para ver a webpage. Quan- do uma pluralidade de conexões de imagem é visível sobre a tela, até que o usuário explicitamente seleciona uma conexão de imagens, ou até que a conexão de imagem esteja no centro aproximado da tela ou a conexão de imagem inteira cabe na tela, o aparelho de display (de- codificador) pode exibir, como as conexões de imagem, imagens imó- veis incluídas no conteúdo de imagens |; pode exibir um vídeo tal co- mo um gif animado utilizando uma pluralidade de imagens imóveis ou imagens |; ou pode receber somente a camada de base e decodificar e exibir o vídeo.
[00319] “Quando uma conexão de imagem é selecionada pelo usuá- rio, o aparelho de display executa decodificação enquanto dando a mais alta prioridade para a camada de base. Note que se existirem informações no código HTML da webpage que indicam que o conteú- do é escalável, o aparelho de display pode decodificar até a camada de melhoramento. Ainda, de modo a garantir reprodução em tempo real, antes de uma seleção ser feita ou quando a largura de banda é severamente limitada, o aparelho de display pode reduzir o retardo en- tre o ponto no tempo no qual a imagem principal é decodificada e o ponto no tempo no qual a imagem decodificada é exibida (isto é, o re- tardo entre o início da decodificação do conteúdo até a exibição do conteúdo), decodificando e exibindo somente imagens de referência avançadas (imagem |, imagem P, imagem B de referência avançada). Mais ainda, o aparelho de display pode propositalmente ignorar a rela- ção de referência entre imagens e grosseiramente decodificar todas as imagens B e P como imagens de referência avançadas, e então exe- cutar decodificação normal conforme o número de imagens recebidas ao longo do tempo aumenta. (Direção Autônoma)
[00320] “Quando transmitindo e recebendo dados de imagens imó- veis ou vídeo, tal como informações de mapa bi ou tridimensional para direção autônoma ou direção assistida em um automóvel, o terminal de recepção pode receber, além de dados de imagens que pertencem a uma ou mais camadas, informações sobre, por exemplo, o clima ou construção de estradas como metadados, e associar os metadados com os dados de imagem quando decodificando. Note que os meta- dados podem ser designados por camada e, alternativamente, podem simplesmente ser multiplexados com os dados de imagem.
[00321] Em tal caso, como o automóvel, drone, avião, etc., que con- tém o terminal de recepção é móvel, o terminal de recepção pode inin- terruptamente receber e executar decodificação enquanto comutando entre estações de base entre as estações de base ex106 até ex110 transmitindo informações que indicam a posição do terminal de recep- ção. Mais ainda, de acordo com a seleção feita pelo usuário, a situa- ção do usuário, e/ou a largura de banda da conexão, o terminal de re- cepção pode dinamicamente selecionar em que grau os metadados são recebidos ou em que grau as informações de mapa, por exemplo, são atualizadas.
[00322] No sistema de provisão de conteúdo ex100, o cliente pode receber, decodificar e reproduzir, em tempo real, informações codifica- das transmitidas pelo usuário. (Fluxo de Conteúdo Individual)
[00323] No sistema de provisão de conteúdo ex100, além de alta qualidade de imagem, longo conteúdo distribuído por uma entidade de distribuição de vídeo, um fluxo de unidifusão ou multidifusão de baixa qualidade de imagem, curto conteúdo de um indivíduo são também possíveis. Tal conteúdo de indivíduos é provável adicionalmente au- mentar em popularidade. O servidor pode primeiro executar um pro- cessamento de edição sobre o conteúdo antes do processamento de codificação de modo a refinar o conteúdo individual. Isto pode ser con- seguido utilizando a seguinte configuração, por exemplo.
[00324] Em tempo real enquanto capturando um conteúdo de vídeo ou imagem ou após o conteúdo ter sido capturado e acumulado, o ser- vidor executa processamento de reconhecimento com base nos dados brutos ou dados codificados, tal como processamento de erros de cap- tura, processamento de pesquisa de cena, análise de significado, e/ou processamento de detecção de objetos. Então, com base no resultado do processamento de reconhecimento, o servidor - ou quando avisado ou automaticamente - edita o conteúdo, exemplos dos quais incluem: correção tal como foco e/ou correção de turvamento de movimento; remover cenas de baixa prioridade tal como cenas que são baixas em brilho comparadas com outras imagens ou fora de foco; ajuste de bor- da de objeto; e ajuste do tom de cor. O servidor codifica os dados edi- tados com base no resultado da edição. É sabido que vídeos excessi- vamente longos tendem a receber menos visualizações. Consequen- temente, de modo a manter o conteúdo dentro de um comprimento específico que escala com o comprimento do vídeo original, o servidor pode, além das cenas de baixa prioridade acima descritas, automati- camente cortar cenas com baixo movimento com base em um resulta- do de processamento de imagem. Alternativamente, o servidor pode gerar e codificar um resumo de vídeo com base em um resultado de uma análise do significado de uma cena.
[00325] “Podem existir casos nos quais o conteúdo individual pode incluir um conteúdo que infringe um direito autoral, direito moral, direi- tos de retrato, etc. Tal caso pode levar a uma situação desfavorável para o criador, tal como quando o conteúdo é compartilhado além do escopo pretendido pelo criador. Consequentemente, antes da codifica- ção, o servidor pode, por exemplo, editar imagens de modo a desfocar faces de pessoas na periferia da tela ou desfocar o interior de uma ca- sa, por exemplo. Ainda, o servidor pode ser configurado para reconhe- cer as faces de pessoas outras que uma pessoa registrada em ima- gens a serem codificadas, e quando tais faces aparecerem em uma imagem, pode aplicar um filtro de mosaico, por exemplo, na face da pessoa. Alternativamente, como pré ou pós-processamento para codi- ficação, o usuário pode especificar, por razões de direitos autorais, uma região de uma imagem que inclui uma pessoa ou uma região do fundo a ser processada, e o servidor pode processar a região especifi- cada, por exemplo, substituindo a região por uma imagem diferente, ou desfocando a região. Se a região incluir uma pessoa, a pessoa po- de ser rastreada na imagem móvel, e a região de cabeça da pessoa pode ser substituída por outra imagem conforme a pessoa move.
[00326] Como existe uma demanda para visualização em tempo real de conteúdo produzido por indivíduos, o qual tende a ser pequeno em tamanho de dados, o decodificador primeiro recebe a camada de base como a prioridade mais alta e executa decodificação e reprodu- ção, apesar disto poder diferir dependendo de largura de banda. Quando o conteúdo é reproduzido duas ou mais vezes, tal como quando o decodificador recebe a camada de melhoramento durante a decodificação e a reprodução da camada de base e faz um loop da reprodução, o decodificador pode reproduzir um vídeo de alta qualida- de de imagem, incluindo a camada de melhoramento. Se o fluxo for codificado utilizando tal codificação escalável, o vídeo pode ser de bai-
xa qualidade quando em um estado não selecionado ou no início do vídeo, mas este pode oferecer uma experiência na qual a qualidade de imagem do fluxo progressivamente aumenta em um modo inteligente. Isto não está limitado a apenas codificação escalável; a mesma expe- riência pode ser oferecida configurando um único fluxo de um fluxo de baixa qualidade reproduzido pela primeira vez e um segundo fluxo co- dificado utilizando o primeiro fluxo como uma referência. (Outros Exemplos de Implementação e Aplicação)
[00327] A codificação e decodificação pode ser executada pela LSI (circuito de integração de grande escala) ex500 (ver Figura 26), a qual está tipicamente incluída em cada terminal. A LSI ex500 pode estar configurada em um único chip ou uma pluralidade de chips. Um sof- tware para codificar e decodificar de imagens móveis pode ser inte- grado em algum tipo de meio de gravação (tal como CD-ROM, um dis- co flexível ou um disco rígido) que é legível por, por exemplo, compu- tador ex111 e a codificação e a decodificação podem ser executadas utilizando o software. Mais ainda, quando o smartphone ex115 está equipado com uma câmera, os dados de vídeo obtidos pela câmera podem ser transmitidos. Neste caso, os dados de vídeo são codifica- dos pela LSI ex500 incluída no smartphone ex115.
[00328] “Note que a LSI ex500 pode estar configurada para baixar e ativar uma aplicação. Em tal caso, o terminal primeiro determina se esta é compatível com o esquema utilizado para codificar o conteúdo Ou se esta é capaz de executar um serviço específico. Quando o ter- minal não é compatível com o esquema de codificação do conteúdo ou quando o terminal não é capaz de executar um serviço específico, o terminal primeiro baixa um codec ou software de aplicação então ob- tém e reproduz o conteúdo.
[00329] Além do exemplo de sistema de provisão de conteúdo ex100 que utiliza internet ex101, pelo menos o codificador de imagem móvel (codificador de imagem) ou o decodificador de imagem móvel (decodificador de imagem) descrito nas modalidades acima, pode ser implementado em um sistema de transmissão digital. O mesmo pro- cessamento de codificação e processamento de decodificação pode ser aplicado para transmitir e receber ondas de rádio de transmissão sobrepostas com dados de áudio e vídeo multiplexados utilizando, por exemplo, um satélite, apesar disto estar direcionado para multidifusão enquanto que unidifusão é mais fácil com o sistema de provisão de conteúdo ex100. (Configuração Hardware)
[00330] A Figura 31 ilustra detalhes adicionais do smartphone ex115 mostrado na Figura 26. A Figura 32 ilustra um exemplo de con- figuração do smartphone ex115. O smartphone ex115 inclui uma ante- na ex450 para transmitir e receber ondas de rádio para a e da estação de base ex110, uma câmera ex465 capaz de capturar vídeo e imagens imóveis, e um display ex458 que exibe dados decodificados, tal como o vídeo capturado pela câmera ex465 e vídeo recebido pela antena ex450. O smartphone ex115 ainda inclui uma interface de usuário ex466, tal como um painel de toque, unidade de saída de áudio ex457 tal como um alto-falante para emitir voz ou outro áudio, uma unidade de entrada de áudio ex456 tal como um microfone para entrada de áu- dio, uma memória ex467 capaz de armazenar dados decodificados tais como vídeo ou imagens móveis capturados, áudio gravado, vídeo recebido ou imagens imóveis, correio, assim como dados decodifica- dos, e uma fenda ex464 a qual é uma interface para SIM ex468 para autorizar acesso a uma rede e vários dados. Note que uma memória externa pode ser utilizada ao invés da memória ex467.
[00331] O controlador principal ex460 o qual abrangentemente con- trola o display ex458 e a interface de usuário ex466, circuito de fonte de alimentação ex461, controlador de entrada de interface de usuário ex462, processador de sinal de vídeo ex455, interface de câmera ex463, controlador de display ex459, modulador / demodulador ex452, multiplexador / demultiplexador ex453, processador de sinal de áudio ex454, fenda ex464 e memória ex467 estão conectados através de um barramento ex470.
[00332] Quando o usuário liga o botão de energia do circuito de fon- te de alimentação ex461, o smartphone ex115 é ligado em um estado operável, e cada componente é suprido com energia de uma bateria.
[00333] O smartphone ex115 executa processamento para, por exemplo, chamada e transmissão de dados, com base em controle executado pelo controlador principal ex460, o qual inclui uma CPU, ROM, e RAM. Quando fazendo chamadas, um sinal de áudio gravado por uma unidade de entrada de áudio ex456 é convertido em um sinal de áudio digital pelo processador de sinal de áudio ex454, ao qual um processamento de espectro expandido é aplicado pelo modulador / demodulador ex452 e conversão digital-analógica, 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 con- vertidos analógico-digital, espectro expandido inverso processado pelo modulador / demodulador ex452, convertido em um sinal de áudio analógico pelo processador de sinal de áudio ex454, e então emitido da unidade de saída de áudio ex457. No modo de transmissão de da- dos, texto, imagem imóvel, ou dados de vídeo são transmitidos pelo controlador principal ex460 através do controlador de entrada de inter- face de usuário ex462 com base na operação da interface de usuário ex466 do corpo principal, por exemplo. Um processamento de trans- missão e recepção similar é executado. No modo de transmissão de dados, quando enviando um vídeo, imagem imóvel 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 móvel descrito nas modalidades acima, um sinal de vídeo armazenado na memória ex467 ou um sinal de vídeo inserido da câmera ex465, e transmite os dados de vídeo co- dificados para o multiplexador / demultiplexador ex453. O processador de sinal de áudio ex454 codifica um sinal de áudio gravado por uma unidade de entrada de áudio ex456 enquanto a câmera ex465 está capturando um vídeo ou imagem imóvel, e transmite os dados de áu- dio codificados para o multiplexador / demultiplexador ex453. O multi- plexador / demultiplexador ex453 multiplexa os dados de vídeo codifi- cados e dados de áudio codificados utilizando um esquema predeter- minado, modula e converte os dados utilizando o modulador / demodu- lador (circuito modulador / demodulador) ex452 e o transmissor / re- ceptor ex451, e transmite o resultado através da antena ex450.
[00334] “Quando um vídeo anexado em um e-mail ou um bate-papo ou um vídeo conectado de uma webpage, é recebido, por exemplo, de modo a decodificar os dados multiplexados recebidos através de uma antena ex450, o multiplexador / demultiplexador ex453 demultiplexa os dados multiplexados para dividir os dados multiplexados em um fluxo de bits de dados de vídeo e um fluxo de bits de dados de áudio, supre os dados de vídeo codificados para o processador de sinal de vídeo ex455 através do barramento síncrono ex470, e supre os dados de áudio codificados para o processador de sinal de áudio ex454 através do barramento síncrono ex470. O processador de sinal de vídeo ex455 decodifica o sinal de vídeo utilizando um método de decodificação de imagem móvel que corresponde ao método de codificação de imagem móvel descrito nas modalidades acima, e vídeo ou uma imagem imó- vel incluído no arquivo de imagem móvel conectado é exibido no dis- play ex458 através do controlador de display ex459. O processador de sinal de áudio ex454 decodifica o sinal de áudio e emite áudio da uni- dade de saída de áudio ex457. Como o fluxo em tempo real está tor-
nando-se crescentemente popular, podem existir casos nos quais a reprodução do áudio pode ser socialmente inapropriada, dependendo do ambiente do usuário. Consequentemente, como um valor inicial, uma configuração na qual somente os dados de vídeo são reproduzi- dos, isto é, o sinal de áudio não é reproduzido, é preferível; o áudio pode ser sincronizado e reproduzido somente quando uma entrada, tal como quando o usuário clica em dados do vídeo, é recebida.
[00335] Apesar do smartphone ex115 ter sido utilizado no exemplo acima, três outras implementações são concebíveis: um terminal de transceptor que inclui tanto um codificador quanto um decodificador; um terminal de transmissor que inclui somente um codificador; e um terminal de receptor que inclui somente um decodificador. Na descri- ção do sistema de transmissão digital, um exemplo é dado no qual da- dos multiplexados obtidos como um resultado de dados de vídeo sen- do multiplexados com dados de áudio são recebidos ou transmitidos. Os dados multiplexados, no entanto, podem ser dados de vídeo multi- plexados com dados outros que dados de áudio, tal como dados de texto relativos ao vídeo. Ainda, os próprios dados de vídeo ao invés de dados multiplexados podem ser recebidos ou transmitidos.
[00336] Apesar do controlador principal ex460 que inclui uma CPU, ser descrito como controlando os processos de codificação ou decodi- ficação, vários terminais frequentemente incluem GPUs. Consequen- temente, uma configuração é aceitável na qual uma grande área é processada de uma vez fazendo uso da capacidade de desempenho da GPU através da memória compartilhada pela CPU e GPU ou me- mória que inclui um endereço que é gerenciado de modo a permitir uma utilização comum pela CPU e GPU. Isto torna possível encurtar o tempo de codificação, manter a natureza de tempo real do fluxo, e re- duzir o retardo. Especificamente, o processamento relativo à estimati- va de movimento, filtragem de desbloqueio, deslocamento adaptável de amostra (SAO), e transformação / quantização pode ser efetiva- mente executado pela GPU ao invés da CPU em unidades de ima- gens, por exemplo, todas de uma vez.

Claims (35)

REIVINDICAÇÕES
1. Codificador de imagem caracterizado pelo fato de com- preender: um circuito; e uma memória acoplada no circuito; em que o circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de parti- ções que inclui uma primeira partição que tem uma forma não retangu- lar e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movi- mento.
2. Codificador de acordo com a reivindicação 1, caracteri- zado pelo fato de que a segunda partição tem uma forma não retangu- lar.
3. Codificador de acordo com a reivindicação 1, caracteri- zado pelo fato de que a forma não retangular é um triângulo.
4. Codificador de acordo com a reivindicação 1, caracteri- zado pelo fato de que a forma não retangular é selecionada de um grupo que consiste em um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
5. Codificador de acordo com a reivindicação 1, caracteri- zado pelo fato de que a predição inclui selecionar o primeiro vetor de movimento de um primeiro conjunto de candidatos de vetor de movi- mento e selecionar o segundo vetor de movimento de um segundo conjunto de candidatos de vetor de movimento.
6. Codificador de acordo com a reivindicação 5, caracteri- zado pelo fato de que o primeiro conjunto de candidatos de vetor de movimento inclui vetores de movimento de partições vizinhas à primei- ra partição, e o segundo conjunto de candidatos de vetor de movimen- to inclui vetores de movimento de partições vizinhas à segunda parti- ção.
7. Codificador de acordo com a reivindicação 6, caracteri- zado pelo fato de que as partições vizinhas à primeira partição e as partições vizinhas à segunda partição estão fora do bloco de imagem do qual a primeira partição e a segunda partição são divididas.
8. Codificador de acordo com a reivindicação 6, caracteri- zado pelo fato de que as partições vizinhas são uma ou ambas de par- tições espacialmente vizinhas e partições temporárias vizinhas.
9. Codificador de acordo com a reivindicação 5, caracteri- zado pelo fato de que o primeiro conjunto de candidatos de vetor de movimento é o mesmo que o segundo conjunto de candidatos de vetor de movimento.
10. Codificador de acordo com a reivindicação 5, caracteri- zado pelo fato de que pelo menos um do primeiro conjunto de candida- tos de vetor de movimento e do segundo conjunto de candidatos de vetor de movimento é o mesmo que um terceiro conjunto de candida- tos de vetor de movimento para o bloco de imagem.
11. Codificador de acordo com a reivindicação 5, caracteri- zado pelo fato de que o circuito, em resposta a determinar que a segunda partição tem uma forma não retangular, criar o segundo conjunto de candidatos de vetor de movimento que inclui vetores de movimento de partições vizinhas à segunda partição exclusivos da primeira partição; e em resposta a determinar que a segunda partição tem uma forma retangular, criar o segundo conjunto de candidatos de vetor de movimento que inclui vetores de movimento de partições vizinhas à segunda partição inclusivos da primeira partição.
12. Codificador de acordo com a reivindicação 1, caracteri- zado pelo fato de que a predição inclui, selecionar um primeiro candidato vetor de movimento de um primeiro conjunto de candidatos de vetor de movimento e derivar o primeiro vetor de movimento somando uma primeira diferença de vetor de movimento ao primeiro candidato de vetor de movimento, e selecionar um segundo candidato vetor de movimento de um segundo conjunto de candidatos de vetor de movimento e derivar o segundo vetor de movimento somando uma segunda diferença de ve- tor de movimento ao segundo candidato de vetor de movimento.
13. Codificador de imagem caracterizado pelo fato de com- preender: um divisor o qual, em operação, recebe e divide uma ima- gem original em blocos, um somador o qual, em operação, recebe os blocos do di- visor e predições de um controlador de predição, e subtrai cada predi- ção de seu bloco correspondente para emitir um resíduo, um transformador o qual, em operação, executa uma trans- formada sobre os resíduos emitidos do somador para emitir coeficien- tes de transformada, um quantizador o qual, em operação, quantiza os coeficien- tes de transformada para gerar coeficientes de transformada quantiza- dos, um codificador de entropia o qual, em operação, codifica os coeficientes de transformada quantizados para gerar um fluxo de bits, e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma memória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência codificada e o intrapreditor,
em operação, gera uma predição de um bloco corrente com base em um bloco de referência codificado em uma imagem corrente, em que, o controlador de predição, em operação, divide os blocos em uma pluralidade de partições que inclui uma primeira partição que tem uma forma não retangular e uma se- gunda partição, prediz um primeiro vetor de movimento para a primeira par- tição e um segundo vetor de movimento para a segunda partição, e codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movi- mento.
14. Codificador de acordo com a reivindicação 13, caracte- rizado pelo fato de que a segunda partição tem uma forma não retan- gular.
15. Codificador de acordo com a reivindicação 13, caracte- rizado pelo fato de que a forma não retangular é um triângulo.
16. Método de codificação de imagem caracterizado pelo fato de compreender: dividir um bloco de imagem em uma pluralidade de parti- ções que inclui uma primeira partição que tem uma forma não retangu- lar e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e codificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movi- mento.
17. Método de acordo com a reivindicação 16, caracteriza- do pelo fato de que a segunda partição tem uma forma não retangular.
18. Método de acordo com a reivindicação 16, caracteriza-
do pelo fato de que a forma não retangular é um triângulo.
19. Decodificador de imagem caracterizado pelo fato de compreender: um circuito; uma memória acoplada no circuito; em que o circuito, em operação, executa: dividir um bloco de imagem em uma pluralidade de parti- ções que inclui uma primeira partição que tem uma forma não retangu- lar e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e decodificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movi- mento.
20. Decodificador de acordo com a reivindicação 19, carac- terizado pelo fato de que a segunda partição tem uma forma não re- tangular.
21. Decodificador de acordo com a reivindicação 19, carac- terizado pelo fato de que a forma não retangular é um triângulo.
22. Decodificador de acordo com a reivindicação 19, carac- terizado pelo fato de que a forma não retangular é selecionada de um grupo que consiste em um triângulo, um trapezoide, e um polígono com pelo menos cinco lados e ângulos.
23. Decodificador de acordo com a reivindicação 19, carac- terizado pelo fato de que a predição inclui selecionar o primeiro vetor de movimento de um primeiro conjunto de candidatos de vetor de mo- vimento e selecionar o segundo vetor de movimento de um segundo conjunto de candidatos de vetor de movimento.
24. Decodificador de acordo com a reivindicação 23, carac- terizado pelo fato de que o primeiro conjunto de candidatos de vetor de movimento inclui vetores de movimento de partições vizinhas à primei- ra partição, e o segundo conjunto de candidatos de vetor de movimen- to inclui vetores de movimento de partições vizinhas à segunda parti- ção.
25. Decodificador de acordo com a reivindicação 24, carac- terizado pelo fato de que as partições vizinhas à primeira partição e as partições vizinhas à segunda partição estão fora do bloco de imagem do qual a primeira partição e a segunda partição são divididas.
26. Decodificador de acordo com a reivindicação 24, carac- terizado pelo fato de que as partições vizinhas são uma ou ambas de partições espacialmente vizinhas e partições temporárias vizinhas.
27. Decodificador de acordo com a reivindicação 23, carac- terizado pelo fato de que o primeiro conjunto de candidatos de vetor de movimento é o mesmo que o segundo conjunto de candidatos de vetor de movimento.
28. Decodificador de acordo com a reivindicação 23, carac- terizado pelo fato de que pelo menos um do primeiro conjunto de can- didatos de vetor de movimento e do segundo conjunto de candidatos de vetor de movimento é o mesmo que um terceiro conjunto de candi- datos de vetor de movimento para o bloco de imagem.
29. Decodificador de acordo com a reivindicação 23, carac- terizado pelo fato de que o circuito, em resposta a determinar que a segunda partição tem uma forma não retangular, criar o segundo conjunto de candidatos de vetor de movimento que inclui vetores de movimento de partições vizinhas à segunda partição exclusivos da primeira partição; e em resposta a determinar que a segunda partição tem uma forma retangular, criar o segundo conjunto de candidatos de vetor de movimento que inclui vetores de movimento de partições vizinhas à segunda partição inclusivos da primeira partição.
30. Decodificador de imagem caracterizado pelo fato de compreender: um decodificador de entropia o qual, em operação, recebe e decodifica um fluxo de bits codificado para obter coeficientes de transformada quantizados, um quantizador e transformador inverso o qual, em opera- ção, quantiza inverso os coeficientes de transformada quantizados pa- ra obter coeficientes de transformada e transforma inverso os coefici- entes de transformada para obter resíduos, um somador o qual, em operação, soma os resíduos emiti- dos do quantizador e transformador inverso e predições emitidas de um controlador de predição para reconstruir os blocos, e o controlador de predição acoplado a um interpreditor, um intrapreditor, e uma memória, em que o interpreditor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência em uma imagem de referência decodificada e o intrapredi- tor, em operação, gera uma predição de um bloco corrente com base em um bloco de referência decodificado em uma imagem corrente, em que, o controlador de predição, em operação, divide um bloco de imagem em uma pluralidade de partições que inclui uma primeira par- tição que tem uma forma não retangular e uma segunda partição; pre- diz um primeiro vetor de movimento para a primeira partição e um se- gundo vetor de movimento para a segunda partição; e decodifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento.
31. Decodificador de acordo com a reivindicação 30, carac- terizado pelo fato de que a segunda partição tem uma forma não re- tangular.
32. Decodificador de acordo com a reivindicação 30, carac-
terizado pelo fato de que a forma não retangular é um triângulo.
33. Método de decodificação de imagem caracterizado pelo fato de compreender: dividir um bloco de imagem em uma pluralidade de parti- ções que inclui uma primeira partição que tem uma forma não retangu- lar e uma segunda partição; predizer um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição; e decodificar a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movi- mento.
34. Método de acordo com a reivindicação 33, caracteriza- do pelo fato de que a segunda partição tem uma forma não retangular.
35. Método de acordo com a reivindicação 33, caracteriza- do pelo fato de que a forma não retangular é um triângulo.
BR112020001991-7A 2017-08-22 2018-08-10 codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem BR112020001991A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762548631P 2017-08-22 2017-08-22
US62/548,631 2017-08-22
US201862698785P 2018-07-16 2018-07-16
US62/698,785 2018-07-16
PCT/JP2018/030059 WO2019039322A1 (en) 2017-08-22 2018-08-10 IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD

Publications (1)

Publication Number Publication Date
BR112020001991A2 true BR112020001991A2 (pt) 2020-08-18

Family

ID=65438980

Family Applications (1)

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

Country Status (9)

Country Link
US (7) US11223844B2 (pt)
EP (1) EP3673656A1 (pt)
JP (3) JP7179832B2 (pt)
KR (1) KR20200038943A (pt)
CN (7) CN116567265A (pt)
BR (1) BR112020001991A2 (pt)
MX (1) MX2020001886A (pt)
TW (2) TWI836681B (pt)
WO (1) WO2019039322A1 (pt)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117478880A (zh) * 2017-10-16 2024-01-30 数字洞察力有限公司 用于将图像编码/解码的方法和存储比特流的记录介质
CN108198145B (zh) * 2017-12-29 2020-08-28 百度在线网络技术(北京)有限公司 用于点云数据修复的方法和装置
EP3804331A4 (en) * 2018-06-15 2021-08-11 Huawei Technologies Co., Ltd. INTRA PREDICTION PROCESS AND APPARATUS
CN112602324A (zh) * 2018-06-22 2021-04-02 Op方案有限责任公司 块水平几何划分
CA3105461C (en) * 2018-07-04 2024-01-09 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
WO2020084502A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Video processing using local illumination compensation
CN112868239B (zh) 2018-10-23 2023-05-30 北京字节跳动网络技术有限公司 并置的局部照明补偿和帧内块复制编解码
US10778977B2 (en) 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
US20200213595A1 (en) * 2018-12-31 2020-07-02 Comcast Cable Communications, Llc Methods, Systems, And Apparatuses For Adaptive Processing Of Non-Rectangular Regions Within Coding Units
WO2020147747A1 (en) 2019-01-15 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Weighted prediction in video coding
CN113316933A (zh) 2019-01-17 2021-08-27 北京字节跳动网络技术有限公司 使用运动预测进行去方块滤波
CN118118654A (zh) * 2019-03-13 2024-05-31 Lg 电子株式会社 基于dmvr的帧间预测方法和设备
EP3745725A4 (en) * 2019-03-22 2020-12-02 LG Electronics Inc. -1- METHOD AND DEVICE FOR INTERPRDICTION BASED ON DMVR AND BDOF
US11140409B2 (en) 2019-03-22 2021-10-05 Lg Electronics Inc. DMVR and BDOF based inter prediction method and apparatus thereof
EP3944623A4 (en) 2019-03-22 2022-06-08 LG Electronics Inc. METHOD AND DEVICE FOR DMVR-BASED INTERPREDICTION
CN113055684B (zh) * 2019-06-24 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
WO2020260766A1 (en) * 2019-06-26 2020-12-30 Nokia Technologies Oy Method, apparatus, computer program product for storing motion vectors for video encoding
WO2021003126A1 (en) * 2019-07-02 2021-01-07 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatuses for video coding using triangle partition
WO2021040037A1 (ja) * 2019-08-29 2021-03-04 日本放送協会 符号化装置、復号装置、及びプログラム
WO2021054805A1 (ko) * 2019-09-20 2021-03-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021060830A1 (ko) * 2019-09-23 2021-04-01 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2021061026A1 (en) * 2019-09-25 2021-04-01 Huawei Technologies Co., Ltd. Method and apparatus of simplified geometric merge mode for inter prediction
WO2021134393A1 (en) * 2019-12-31 2021-07-08 Huawei Technologies Co., Ltd. Method and apparatus of deblocking filtering between boundaries of blocks predicted using weighted prediction and non-rectangular merge modes
EP4091324A1 (en) * 2020-04-30 2022-11-23 Huawei Technologies Co., Ltd. Triangulation-based adaptive subsampling of dense motion vector fields
TWI749676B (zh) * 2020-08-03 2021-12-11 緯創資通股份有限公司 影像品質評估裝置及其影像品質評估方法
TWI743919B (zh) 2020-08-03 2021-10-21 緯創資通股份有限公司 視訊處理裝置及視訊串流的處理方法
WO2022047117A1 (en) * 2020-08-28 2022-03-03 Op Solutions, Llc Methods and systems of adaptive geometric partitioning
CN114982228A (zh) * 2020-10-16 2022-08-30 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
TWI786497B (zh) 2020-12-22 2022-12-11 宏正自動科技股份有限公司 影像輸出裝置、影像接收裝置及影像傳輸方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1274252A3 (en) * 1995-08-29 2005-10-05 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
US7756348B2 (en) * 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
JP4448167B2 (ja) * 2007-12-28 2010-04-07 フェリカネットワークス株式会社 通信デバイス、リモートサーバおよび端末装置
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
JP2012023597A (ja) * 2010-07-15 2012-02-02 Sony Corp 画像処理装置及び画像処理方法
CA2903530C (en) * 2010-07-20 2018-08-28 Ntt Docomo, Inc. Video prediction encoding and decoding for partitioned regions while determining whether or not to use motion information from neighboring regions
CN102884794B (zh) * 2011-03-07 2016-08-10 松下知识产权经营株式会社 运动补偿装置、运动图像编码装置、运动图像解码装置、运动补偿方法、以及集成电路
JP5972888B2 (ja) 2011-09-29 2016-08-17 シャープ株式会社 画像復号装置、画像復号方法および画像符号化装置
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
WO2014107074A1 (ko) * 2013-01-04 2014-07-10 삼성전자 주식회사 스케일러블 비디오의 부호화 및 복호화를 위한 움직임 보상 방법 및 장치
WO2015006884A1 (en) * 2013-07-19 2015-01-22 Qualcomm Incorporated 3d video coding with partition-based depth inter coding
KR20160070815A (ko) * 2013-10-16 2016-06-20 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩 블록의 파티션의 코너 비디오 부분을 결정하기 위한 방법
US10110916B2 (en) 2014-04-22 2018-10-23 Sony Corporation Encoding device and encoding method
WO2015200822A1 (en) * 2014-06-26 2015-12-30 Huawei Technologies Co., Ltd Method and device for reducing a computational load in high efficiency video coding
EP3293975A4 (en) * 2015-09-08 2018-10-10 Samsung Electronics Co., Ltd. Device and method for entropy encoding and decoding
CN111418205B (zh) * 2018-11-06 2024-06-21 北京字节跳动网络技术有限公司 用于帧间预测的运动候选
KR20210087450A (ko) * 2018-11-06 2021-07-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 기하학적 파티션을 이용한 인터 예측을 위한 사이드 정보 시그널링
US10893298B2 (en) 2018-12-12 2021-01-12 Tencent America LLC Method and apparatus for video coding
US11463693B2 (en) * 2019-08-30 2022-10-04 Qualcomm Incorporated Geometric partition mode with harmonized motion field storage and motion compensation

Also Published As

Publication number Publication date
CN116527933A (zh) 2023-08-01
CN110999303B (zh) 2023-07-07
EP3673656A4 (en) 2020-07-01
CN116567266A (zh) 2023-08-08
CN116582682A (zh) 2023-08-11
US11856217B2 (en) 2023-12-26
US11223844B2 (en) 2022-01-11
JP2020532225A (ja) 2020-11-05
US20230110758A1 (en) 2023-04-13
US11812049B2 (en) 2023-11-07
US20220046266A1 (en) 2022-02-10
WO2019039322A1 (en) 2019-02-28
US20200014950A1 (en) 2020-01-09
US11924456B2 (en) 2024-03-05
US11563969B2 (en) 2023-01-24
CN116527935A (zh) 2023-08-01
TW201921943A (zh) 2019-06-01
TW202312734A (zh) 2023-03-16
CN116567265A (zh) 2023-08-08
US20230107832A1 (en) 2023-04-06
EP3673656A1 (en) 2020-07-01
CN110999303A (zh) 2020-04-10
US20230118198A1 (en) 2023-04-20
JP2023009233A (ja) 2023-01-19
US20230156214A1 (en) 2023-05-18
CN116527934A (zh) 2023-08-01
MX2020001886A (es) 2020-03-24
US20230145558A1 (en) 2023-05-11
JP7446393B2 (ja) 2024-03-08
TWI782073B (zh) 2022-11-01
JP7179832B2 (ja) 2022-11-29
KR20200038943A (ko) 2020-04-14
JP2024054401A (ja) 2024-04-16
TWI836681B (zh) 2024-03-21

Similar Documents

Publication Publication Date Title
BR112020001991A2 (pt) codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
AU2018320382B2 (en) Image encoder, image decoder, image encoding method, and image decoding method
CN110999306B (zh) 图像编码器和图像解码器
JP7086240B2 (ja) 画像復号装置及び復号方法
BR112020026686A2 (pt) Sistema e método para codificação de vídeo
BR112020010935A2 (pt) dispositivo de codificação de imagem, dispositivo de decodificação de imagem, método de codificação de imagem, e método de decodificação de imagem
BR112021001156A2 (pt) sistema e método para codificação de vídeo
BR112020000876A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação, e método de decodificação
BR112020001579A2 (pt) codificador, decodificador, método de codificação, método de decodificação
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
BR112021011019A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020016755A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020019800A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020019922A2 (pt) Codificador, decodificador, método de codificação, método de decodificação, e programa de compressão de imagem

Legal Events

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