[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

BR112019018866A2 - derivação de informações de movimento afim - Google Patents

derivação de informações de movimento afim Download PDF

Info

Publication number
BR112019018866A2
BR112019018866A2 BR112019018866A BR112019018866A BR112019018866A2 BR 112019018866 A2 BR112019018866 A2 BR 112019018866A2 BR 112019018866 A BR112019018866 A BR 112019018866A BR 112019018866 A BR112019018866 A BR 112019018866A BR 112019018866 A2 BR112019018866 A2 BR 112019018866A2
Authority
BR
Brazil
Prior art keywords
current
model
block
current block
motion parameters
Prior art date
Application number
BR112019018866A
Other languages
English (en)
Inventor
Chuang Hsiao-Chiang
Chen Jianle
Karczewicz Marta
Chien Wei-Jung
Li Xiang
Chen Yi-Wen
Sun Yu-Chen
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BR112019018866A2 publication Critical patent/BR112019018866A2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

as técnicas e os sistemas são fornecidos para derivar um ou mais conjuntos de parâmetros de movimento afim em um decodificador. por exemplo, o decodificador pode obter dados de vídeo a partir de um fluxo de dados de vídeo codificados. os dados de vídeo incluem pelo menos uma figuração atual e uma figuração de referência. o decodificador pode determinar a conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. o conjunto de parâmetros de movimento afim pode ser usado para realizar a predição de compensação de movimento para o bloco atual. o conjunto de parâmetros de movimento afim pode ser determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência. em alguns casos, um codificador pode determinar um conjunto de parâmetros de movimento afim para um bloco atual com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência, e pode gerar um fluxo de dados de vídeo codificados que inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual. o fluxo de dados de vídeo codificados pode não incluir quaisquer parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim.

Description

DERIVAÇÃO DE INFORMAÇÕES DE MOVIMENTO AFIM
CAMPO [0001] Este pedido refere-se a criptografia e compactação de video. Por exemplo, sistemas e métodos são descritos para derivação de movimento afim.
ANTECEDENTES [0002] Muitos dispositivos e sistemas permitem que dados de video sejam processados e emitidos para consumo. Os dados de video digital incluem grandes quantidades de dados para satisfazer as demandas de consumidores e provedores de video. Por exemplo, os consumidores de dados de video desejam o video com máxima qualidade, com alta fidelidade, resoluções, taxas de quadros, e semelhantes. Como resultado, a grande quantidade de dados de video que é necessária para satisfazer essas demandas coloca um fardo nas redes de comunicação e dispositivos que processam e armazenam os dados de video.
[0003] Várias técnicas de criptografia de video podem ser usadas para compactar dados de video. A criptografia de video é realizada de acordo com um ou mais padrões de criptografia de video. Por exemplo, os padrões de criptografia de video incluem criptografia de video de alta eficiência (HEVC), criptografia de video avançada (AVC), criptografia de grupo de especialistas de filme (MPEG), ou semelhante. A criptografia de video geralmente utiliza métodos de predição (por exemplo, interpredição, intrapredição, ou semelhantes) que levam vantagem da redundância presente em imagens ou sequências de video. Um objetivo importante das técnicas de criptografia de video é compactar dados de video em uma forma que usa uma taxa de
Petição 870190090180, de 11/09/2019, pág. 8/167
2/121 bits baixa, enquanto evita ou minimiza degradações à qualidade do video. Com serviços de vídeo em constante evolução se tornando disponíveis, as técnicas de codificação com melhor eficiência de criptografia são necessárias.
BREVE SUMÁRIO [0004] As técnicas e sistemas são descritos no presente documento para realizar derivação de movimento afim do lado do decodificador. A predição baseada em movimento afim permite que movimentos complexos sejam estimados, como rotação, aproximação, translação, ou qualquer combinação dos mesmos, dentre outros. Em alguns casos, com o uso das técnicas descritas no presente documento, os parâmetros de movimento afim podem ser determinados por um dispositivo de decodificação de vídeo (também referido como um decodif icador) para um ou mais blocos de figurações de vídeo sem se referir a informações de movimento afim a serem enviadas para o dispositivo de decodificação. Por exemplo, nenhum parâmetro de movimento afim (ou as diferenças entre parâmetros de movimento afim e os preditores de parâmetros de movimento afim) são sinalizados para tal um modo de derivação de movimento afim.
[0005] A derivação de movimento afim do lado do decodificador para um bloco atual pode se basear no uso de modelos. Por exemplo, um modelo afim atual que inclui amostras espacialmente vizinhas de um bloco atual pode ser usado, juntamente com um modelo afim de referência de uma figuração de referência, para determinar parâmetros de movimento afim para o bloco atual. Por exemplo, os
Petição 870190090180, de 11/09/2019, pág. 9/167
3/121 parâmetros de movimento afim de pontos de controle do modelo afim atual podem ser derivados ao minimizar o erro (ou distorção) entre a predição afim (associada aos pixels no modelo afim de referência) e pixels reconstruídos do modelo afim atual do bloco atual. Os parâmetros de movimento afim definem os vetores de movimento afim para os pontos de controle do modelo afim atual. Os vetores de movimento afim dos pontos de controle podem, então, ser usados para determinar vetores de movimento para pixels ou sub-blocos do bloco atual.
[0006] De acordo com pelo menos um exemplo, um método de derivação de um ou mais conjuntos de parâmetros de movimento afim em um decodificador é fornecido O método compreende obter, através do decodificador, dados de video a partir de um fluxo de dados de video codificados. Os dados de video incluem pelo menos uma figuração atual e uma figuração de referência. O método compreende adicionalmente determinar, através do decodificador, um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. O conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. O conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
[0007] Em um outro exemplo, estabelece-se que um decodif icador para derivar um ou mais conjuntos de parâmetros de movimento afim inclua uma memória configurado para armazenar dados de video de um fluxo de dados de video codificados e um processador. O processador é configurado e
Petição 870190090180, de 11/09/2019, pág. 10/167
4/121 pode obter os dados de video do fluxo de dados de video codificados. Os dados de video incluem pelo menos uma figuração atual e uma figuração de referência. 0 processador é adicionalmente configurado e pode determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. 0 conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. 0 conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
[0008] Em um outro exemplo de derivação de um ou mais conjuntos de parâmetros de movimento afim em um decodificador, um meio legível por computador não transitório é fornecido tendo armazenado no mesmo instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processador: obtenha, através do decodificador, dados de vídeo a partir de um fluxo de dados de vídeo codificados, sendo que os dados de vídeo incluem pelo menos uma figuração atual e uma figuração de referência; e determine, através do decodificador, um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual, sendo que o conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual, em que o conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
[0009] Em um outro exemplo, um decodificador
Petição 870190090180, de 11/09/2019, pág. 11/167
5/121 para derivar um ou mais conjuntos de parâmetros de movimento afim é fornecido. 0 decodificador inclui meios para obter dados de video a partir de um fluxo de dados de video codificados. Os dados de video incluem pelo menos uma figuração atual e uma figuração de referência. 0 decodificador inclui adicionalmente meios para determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. 0 conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. 0 conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
[0010] Em alguns aspectos, o método,
decodificadores e meio legível por computador descritos
acima para derivar um ou mais conjuntos de parâmetros de
movimento afim em um decodificador podem compreender adicionalmente: determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
[0011] Em alguns aspectos, o método,
decodificadores e meio legível por computador descritos
acima para derivar um ou mais conjuntos de parâmetros de
movimento afim em um decodificador podem compreender adicionalmente: determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
[0012] Em alguns aspectos, a determinação do
Petição 870190090180, de 11/09/2019, pág. 12/167
6/121 conjunto de parâmetros de movimento afim para o bloco atual inclui: obter, através do decodificador, um conjunto de parâmetros de movimento afim inicial; derivar, através do decodificador, um ou mais vetores de movimento afim para um ou mais pixels no modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial, sendo que o modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual; determinar, através do decodif icador, um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual; minimizar, através do decodificador, um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinado com o uso do um ou mais vetores de movimento afim; e determinar, através do decodificador, o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência.
[0013] Em alguns aspectos, a determinação do conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual inclui: determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinado com o uso do um ou mais vetores de movimento afim; determinar uma métrica de qualidade para
Petição 870190090180, de 11/09/2019, pág. 13/167
7/121 cada conjunto de parâmetros de movimento afim a partir da pluralidade de conjuntos de parâmetros de movimento afim; e selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim a partir da pluralidade de conjuntos de parâmetros de movimento afim que tem uma menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim. Em alguns exemplos, a métrica de qualidade inclui uma soma de diferenças absolutas (SAD).
[0014] Em alguns aspectos, o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento translacional determinado para o bloco atual. Em alguns casos, o vetor de movimento translacional é determinado com o uso de compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC).
[0015] Em alguns aspectos, o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento afim a partir de um bloco vizinho do bloco atual.
[0016] Em alguns aspectos, nenhum parâmetro de movimento afim é decodificado a partir do fluxo de dados de vídeo codificados para determinar o conjunto de parâmetros de movimento afim.
[0017] Em alguns aspectos, o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual. Em alguns casos, as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo.
[0018] Em alguns aspectos, o modelo afim atual
Petição 870190090180, de 11/09/2019, pág. 14/167
8/121 inclui um bloco com formato em L. 0 bloco com formato em L inclui amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual.
[0019] Em alguns casos, o decodificador é parte de um dispositivo móvel com um visor para exibir dados de vídeo decodificados. Em alguns casos, o decodificador é parte de um dispositivo móvel com uma câmera para capturar figurações.
[0020] De acordo com pelo menos um outro exemplo, um método de codificação de dados de vídeo é fornecido. O método compreende obter dados de vídeo. Os dados de vídeo incluem pelo menos uma figuração atual e uma figuração de referência. O método compreende adicionalmente determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. O conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. O conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência. O método compreende adicionalmente gerar um fluxo de dados de vídeo codificados. O fluxo de dados de vídeo codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual. O fluxo de dados de vídeo codificados não inclui quaisquer parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim.
[0021] Em um outro exemplo, estabelece-se que um codificador para codificar dados de vídeo inclui uma
Petição 870190090180, de 11/09/2019, pág. 15/167
9/121 memória configurada para armazenar dados de video e um processador. 0 processador é configurado para e pode obter os dados de video. Os dados de video incluem pelo menos uma figuração atual e uma figuração de referência. 0 processador é adicionalmente configurado e pode determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. 0 conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. 0 conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência. 0 processador é adicionalmente configurado e pode gerar um fluxo de dados de video codificados, sendo que o fluxo de dados de video codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual, em que o fluxo de dados de video codificados não inclui quaisquer parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim.
[0022] Em um outro exemplo de codificação de dados de video, um meio legível por computador não transitório é fornecido tendo armazenadas nele instruções que, quando executadas por um ou mais processadores, faz com que o um ou mais processadores: obtenha os dados de video, sendo que os dados de video incluem pelo menos uma figuração atual e uma figuração de referência; determine um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual, sendo que o conjunto de parâmetros de movimento afim é usado para realizar a
Petição 870190090180, de 11/09/2019, pág. 16/167
10/121 predição de compensação de movimento para o bloco atual, em que o conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência; e gere um fluxo de dados de video codificados, sendo gue o fluxo de dados de video codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual, em que o fluxo de dados de video codificados não inclui quaisquer parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim.
[0023] Em um outro exemplo, um codificador para codificar os dados de video é fornecido. O codificador inclui meios para obter dados de video. Os dados de video incluem pelo menos uma figuração atual e uma figuração de referência. O codificador inclui adicionalmente meios para determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. O conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. O conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência. O codificador inclui adicionalmente meios para gerar um fluxo de dados de video codificados. O fluxo de dados de video codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual. O fluxo de dados de video codificados não inclui quaisquer
Petição 870190090180, de 11/09/2019, pág. 17/167
11/121 parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim.
[0024] Em alguns aspectos, o método, codificadores e meio legível por computador descritos acima para codificar dados de vídeo podem compreender adicionalmente: determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
[0025] Em alguns aspectos, o método, codificadores e meio legível por computador descritos acima para codificar dados de vídeo pode compreender adicionalmente: determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
[0026] Em alguns aspectos, a determinação do conjunto de parâmetros de movimento afim para o bloco atual inclui: obter um conjunto de parâmetros de movimento afim inicial; derivar um ou mais vetores de movimento afim para um ou mais pixels no modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial, sendo gue o modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual; determinar um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivado para o um ou mais pixels no modelo afim atual; minimizar um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinado com o uso do um ou mais
Petição 870190090180, de 11/09/2019, pág. 18/167
12/121 vetores de movimento afim; e determinar o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência.
[0027] Em alguns aspectos, a determinação do conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual inclui: determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinado com o uso do um ou mais vetores de movimento afim; determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim; e selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem uma métrica menor dentre a pluralidade de conjuntos de parâmetros de movimento afim. Em alguns exemplos, a métrica de qualidade inclui uma soma de diferenças absolutas (SAD).
[0028] Em alguns aspectos, o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento translacional determinado para o bloco atual. Em alguns casos, o vetor de movimento translacional é determinado com o uso de compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC).
[0029] Em alguns aspectos, o conjunto de
Petição 870190090180, de 11/09/2019, pág. 19/167
13/121 parâmetros de movimento afim inicial é determinado com base em um vetor de movimento afim a partir de um bloco vizinho do bloco atual.
[0030] Em alguns aspectos, o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual. Em alguns exemplos, as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo.
[0031] Em alguns aspectos, o modelo afim atual inclui um bloco com formato em L. O bloco com formato em L inclui amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual.
[0032] Em alguns aspectos, o método, codificadores e meio legível por computador descritos acima para codificar dados de vídeo pode compreender adicionalmente: armazenar o fluxo de dados de vídeo codificados. Em alguns casos, o processador do codificador ou um aparelho que compreende o codificador é configurado para armazenar o fluxo de dados de vídeo codificados na memória do codificador ou uma memória de um aparelho que compreende o codificador.
[0033] Em alguns aspectos, o método, codificadores e o meio legível por computador descritos acima para codificar dados de vídeo pode compreender adicionalmente: transmitir o fluxo de dados de vídeo codificados. Em alguns casos, o codificador inclui um transmissor configurado para transmitir o fluxo de dados de vídeo codificados. Em alguns casos, o codificador é parte de um dispositivo com um transmissor configurado para
Petição 870190090180, de 11/09/2019, pág. 20/167
14/121 transmitir o codificador.
[0034] Em alguns aspectos, o codificador é parte de um dispositivo móvel com um visor para exibir dados de video decodificados. Em alguns aspectos, o codificador é parte de um dispositivo móvel com uma câmera para capturar figurações.
[0035] Esse sumário não se destina a identificar recursos chaves ou essenciais da matéria reivindicada, nem se destina a ser usada em isolamento para determinar o escopo da matéria reivindicada. A matéria deve ser compreendida a título de referência para porções adequadas de todo o relatório descritivo desta patente, qualquer ou todos os desenhos e cada reivindicação.
[0036] O anteriormente mencionado, juntamente com outros recursos e modalidades, se tornará evidente com referência ao relatório descritivo, às reivindicações e desenhos anexos a seguir.
BREVE DESCRIÇÃO DOS DESENHOS [0037] Exemplos de várias implantações são descritos em detalhes abaixo com referência às Figuras dos desenhos a seguir:
[0038] A Figura 1 é um diagrama de blocos que ilustra um exemplo de um dispositivo de codificação e um dispositivo de decodificação, de acordo com alguns exemplos;
[0039] A Figura 2 é um diagrama que ilustra um exemplo de uma estrutura de unidade de criptografia (CU) em HEVC, de acordo com alguns exemplos;
[0040] A Figura 3 é um diagrama que ilustra um exemplo de modos de partição para um modo interpredição, de
Petição 870190090180, de 11/09/2019, pág. 21/167
15/121 acordo com alguns exemplos;
[0041] A Figura 4A é um diagrama que ilustra um exemplo de um método para derivar os candidatos de vetor de movimento (MV) vizinho espacial para fundir o modo interpredição, de acordo com alguns exemplos;
[0042] A Figura 4B é um diagrama que ilustra um exemplo de um método para derivar candidatos de MV vizinho espacial para modo interpredição de predição de vetor de movimento avançada (AMVP), de acordo com alguns exemplos;
[0043] A Figura 5A é um diagrama que ilustra um exemplo de partição de bloco que usa uma estrutura de árvore quaternária-árvore binária (QTBT), de acordo com alguns exemplos;
[0044] A Figura 5B é um diagrama que ilustra uma estrutura de árvore correspondente à partição de bloco mostrada na Figura 5A, de acordo com alguns exemplos;
[0045] A Figura 6 é um diagrama que ilustra um exemplo de um conjunto de modos de divisão de unidade de criptografia (CU) disponível em QTBT, de acordo com alguns exemplos ;
[0046] A Figura 7 é um diagrama que ilustra um exemplo de um modelo de movimento afim simplificado para um bloco atual, de acordo com alguns exemplos;
[0047] A Figura 8 é um diagrama que ilustra um exemplo de um campo de vetor de movimento de sub-blocos de um bloco, de acordo com alguns exemplos;
[0048] A Figura 9 é um diagrama que ilustra um exemplo de predição de vetor de movimento em modo interafim (AF_INTER), de acordo com alguns exemplos;
Petição 870190090180, de 11/09/2019, pág. 22/167
16/121 [0049] A Figura 10A e a Figura 10B são diagramas que ilustram um exemplo de predição de vetor de movimento em modo de fusão afim (AF_MERGE) , de acordo com alguns exemplos;
[0050] A Figura 11A é um diagrama que ilustra um exemplo de um bloco atual e um modelo afim atual do bloco atual, de acordo com alguns exemplos, [0051] A Figura 11B é um diagrama que ilustra um bloco atual com um modelo afim atual e um bloco de referência de uma figuração de referência com um modelo afim de referência, de acordo com alguns exemplos;
[0052] A Figura 11C é um diagrama que ilustra um exemplo de um campo de vetor de movimento de sub-blocos de um bloco, de acordo com alguns exemplos;
[0053] A Figura 12 é um diagrama que ilustra um exemplo de estimativa de movimento baseada em compatibilidade de modelo para FRUC, de acordo com alguns exemplos;
[0054] A Figura 13 é um diagrama que ilustra um exemplo de estimativa de movimento baseada em compatibilidade bilateral para conversão ascendente de taxa de quadro (FRUC), de acordo com alguns exemplos;
[0055] A Figura 14 é um fluxograma que ilustra um exemplo de um processo para derivar um ou mais conjuntos de parâmetros de movimento afim em um decodificador, de acordo com alguns exemplos;
[0056] A Figura 15 é um fluxograma que ilustra um exemplo de um processo para codificar dados de video, de acordo com alguns exemplos;
[0057] A Figura 16 é um diagrama de blocos que
Petição 870190090180, de 11/09/2019, pág. 23/167
17/121 ilustra um dispositivo de codificação exemplificativo, de acordo com alguns exemplos; e [0058] A Figura 17 é um diagrama de blocos que ilustra um dispositivo de decodificação de vídeo exemplificativo, de acordo com alguns exemplos.
DESCRIÇÃO DETALHADA [0059] Determinados aspectos e implantações são fornecidos abaixo. Alguns desses aspectos e implantações podem ser aplicados independentemente e alguns dos mesmos podem ser aplicados em combinação conforme seriam evidentes àqueles versados na técnica. Na descrição a seguir, para os fins de explicação, os detalhes específicos são estabelecidos a fim de fornecer uma compreensão mais completa de várias implantações. No entanto, será evidente que várias implantações podem ser praticadas sem esses detalhes específicos. As Figuras e a descrição não se destinam a ser restritivas.
[0060] A descrição emitida fornece implantações exemplificativas apenas, e não se destina a limitar o escopo, aplicabilidade ou configuração da revelação. Em vez disso, a descrição emitida das implantações exemplificativa fornecerá àqueles versados na técnica uma descrição habilitada para implantar um exemplo. Deve-se compreender que várias alterações podem ser feitas na função e disposição de elementos sem que se afaste do espírito e escopo de aplicação conforme estabelecido nas reivindicações anexas.
[0061] Os detalhes específicos são dados na descrição a seguir para fornecer uma compreensão mais completa de diferentes implantações. No entanto, será
Petição 870190090180, de 11/09/2019, pág. 24/167
18/121 compreendido por um indivíduo com habilidade comum na técnica que as implantações podem ser praticadas sem esses detalhes específicos. Por exemplo, circuitos, sistemas, redes, processos e outros componentes podem ser mostrados como componentes na forma de diagrama de blocos a fim de não obscurecer os exemplos em detalhes desnecessários. Em outros casos, circuitos, processos, algoritmos, estruturas e técnicas bem conhecidos podem ser mostrados sem detalhes desnecessários a fim de evitar obscurecer os exemplos.
[0062] Também, nota-se que implantações individuais como um processo que é retratado como um fluxograma, um diagrama de fluxo, um diagrama de fluxo de dados, um diagrama de estrutura, ou um diagrama de blocos. Embora um fluxograma possa descrever as operações como um processamento sequencial, muitas das operações podem ser realizadas em paralelo ou concorrentemente. Além disso, a ordem das operações pode ser rearranjada. Um processo é terminado quando suas operações são concluídas, mas podería ter etapas adicionais não incluídas em uma Figura. Um processo pode corresponder a um método, uma função, um procedimento, uma sub-rotina, um subprograma, etc. Quando um processo corresponder a uma função, sua terminação pode corresponder a um retorno da função para a função de chamada ou a função principal.
[0063] O termo meio legível por computador inclui, mas sem limitação, dispositivos de armazenamento portáteis ou não portáteis, dispositivos de armazenamento ópticos, e vários outros meios com capacidade de armazenar, conter ou carregar instrução (ou instruções) e/ou dados. Um meio legível por computador pode incluir um meio não
Petição 870190090180, de 11/09/2019, pág. 25/167
19/121 transitório em que os dados podem ser armazenados e que não inclui ondas de portadora e/ou sinais eletrônicos transitórios que se propagam de modo sem fio ou através de conexões com fio. Exemplos de um meio não transitório pode incluir, mas sem limitação, um disco ou fita magnética, mídia de armazenamento óptico como disco compacto (CD) ou disco versátil digital (DVD), memória flash, memória ou dispositivos de memória. Um meio legível por computador pode ter armazenados no mesmo código e/ou instruções executáveis por máquina que podem representar um procedimento, uma função, um subprograma, um programa, uma rotina, uma subrotina, um módulo, um pacote de software, uma classe, ou qualquer combinação de instruções, estruturas de dados, ou declarações de programa. Um segmento de código pode ser acoplado a um outro segmento de código ou um circuito de hardware ao passar e/ou receber informações, dados, argumentos, parâmetros ou conteúdo de memória. As informações, os argumentos, parâmetros, dados, etc. podem ser passados, encaminhados ou transmitidos por meio de quaisquer meios adequados que incluem compartilhamento de memória, passada de mensagem, passada de token, transmissão de rede, ou semelhantes.
[0064] Ademais, vários exemplos podem ser implantados por meio de hardware, software, firmware, middleware, microcódigo, linguagem de descrição de hardware ou qualquer combinação dos mesmos. Quando implantado em software, firmware, middleware ou microcódigo, o código de programa ou segmentos de código para realizar as tarefas necessárias (por exemplo, um produto de programa de computador) pode ser armazenado em um meio legível por
Petição 870190090180, de 11/09/2019, pág. 26/167
20/121 computador ou legível por máquina. O processador (ou processadores) pode realizar as tarefas necessárias.
[0065] Conforme mais dispositivos e sistemas fornecem consumidores com a habilidade de consumir dados de video digitais, a necessidade por técnicas de criptografia de video eficaz se torna mais importante. A criptografia de video é necessária para reduzir os requisitos de armazenamento e transmissão necessários para lidar com grandes quantidades de dados presentes em dados de video digitais. Várias técnicas de criptografia de video podem ser usadas para compactar dados de video numa forma que usa uma taxa de bits baixa enquanto mantém a alta qualidade do video.
[0066] A Figura 1 é um diagrama de blocos que ilustra um exemplo de um sistema de criptografia de video 100 que inclui um dispositivo de codificação 104 e um dispositivo de decodificação 112. O dispositivo de codificação 104 pode ser parte de um dispositivo de fonte, e o dispositivo de decodificação 112 pode ser parte de um dispositivo de recebimento. O dispositivo de fonte e/ou o dispositivo de recebimento podem incluir um dispositivo eletrônico, como um fone de telefone móvel ou estacionário (por exemplo, telefone inteligente, telefone celular ou semelhante), um computador do tipo desktop, um computador do tipo laptop ou notebook, um computador do tipo tablet, um decodificador de sinais, uma televisão, uma câmera, um dispositivo de exibição, um reprodutor de mídia digital, um console de videogame, um dispositivo de fluxo continuo de video, uma câmera de Protocolo de Internet (IP) ou qualquer outro dispositivo eletrônico adequado. Em alguns exemplos,
Petição 870190090180, de 11/09/2019, pág. 27/167
21/121 o dispositivo de fonte e o dispositivo de recebimento podem incluir um ou mais transceptores sem fio para comunicações sem fio. As técnicas de criptografia descritas no presente documento são aplicáveis à criptografia de vídeo em várias aplicações de multimídia, incluindo transmissões de vídeo em fluxo contínuo (por exemplo, na Internet), difusões ou transmissões de televisão, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 100 pode suportar a transmissão de vídeo unidirecional ou bidirecional para suportar aplicações como conferência de vídeo, fluxo contínuo de vídeo, reprodução de vídeo, difusão de vídeo, jogos e/ou telefonia de vídeo.
[0067] O dispositivo de codificação 104 (ou codificador) pode ser usado para codificar dados de vídeo com o uso de um padrão ou protocolo de criptografia de vídeo para gerar um fluxo de bits de vídeo codificado. Exemplos de padrões de criptografia de vídeo standards incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC) , incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Multivisão (MVC), e Codificação de Vídeo de Alta Eficácia (HEVC) ou ITU-T H.265. Várias extensões para HEVC lidar com criptografia de vídeo de múltiplas camadas existem, incluindo as extensões de conteúdo de tela alcance, criptografia de vídeo de 3D (3D-HEVC) e extensões de
Petição 870190090180, de 11/09/2019, pág. 28/167
22/121 múltiplas visões (MV-HEVC) e extensão escalonável (SHVC). A HEVC e suas extensões foram desenvolvidas pelo Time de Colaboração Conjunta em Codificação de Video (JCT-VC) assim como o Time de Colaboração Conjunta em Desenvolvimento de Extensão de Codificação de Video em 3D (JCT-3V) do Grupos de Especialistas em Codificação de Video ITU-T (VCEG) e Grupo de Especialistas de Filme ISO/IEC (MPEG). MPEG e ITUT VCEG também formaram um time de exploração de video conjunta (JVET) para explorar novas ferramentas de criptografia para a próxima geração de padrão de criptografia de video. 0 software de referência é chamado JEM (modelo de exploração conjunta).
[0068] Muitos exemplos descritos no presente documento fornecem exemplos que usam o modelo JEM, o padrão HEVC, e/ou extensões dos mesmos. No entanto, as técnicas e os sistemas descritos no presente documento também podem ser aplicáveis a outros padrões de criptografia, como AVC, MPEG, extensões dos mesmos, ou outros padrões de criptografia adequados que existem atualmente ou padrões de criptografia futuros. Consequentemente, embora as técnicas e sistemas descritos no presente documento possam ser descritos com referência a um padrão de criptografia de video especifico, um indivíduo com habilidade comum na técnica observará que a descrição não deve ser interpretada para se aplicar apenas àquele padrão especifico.
[0069] Com referência à Figura 1, uma fonte de video 102 pode fornecer os dados de video ao dispositivo de codificação 104. A fonte de video 102 pode ser parte do dispositivo de fonte, ou pode ser parte de um dispositivo além do dispositivo de fonte. A fonte de video 102 pode
Petição 870190090180, de 11/09/2019, pág. 29/167
23/121 incluir um dispositivo de captura de vídeo (por exemplo, uma câmera de vídeo, um telefone com câmera, um telefone com vídeo, ou semelhante), um arquivo de vídeo que contém vídeo armazenado, um servidor de vídeo ou provedor de conteúdo que fornece dados de vídeo, uma interface de fornecimento de vídeo que recebe vídeo de um servidor de vídeo ou provedor de conteúdo, um sistema de gráficos de computador para gerar dados de vídeo de gráficos de computador, uma combinação de tais fontes, ou qualquer outra fonte de vídeo adequada.
[0070] Os dados de vídeo da fonte de vídeo 102 podem incluir uma ou mais figurações ou quadros de entrada. Uma figuração ou quadro de um vídeo é uma imagem parada de uma cena. O mecanismo codificador 106 (ou codificador) do dispositivo de codificação 104 codifica os dados de vídeo para gerar um fluxo de bits de vídeo codificado. Em alguns exemplos, um fluxo de bits de vídeo codificado (ou fluxo de bits de vídeo ou fluxo de bits) é uma série de uma ou mais sequências de vídeo criptografadas. Uma sequência de vídeo criptografada (CVS) inclui uma série de unidades de acesso (AUs) que começam com uma AU que tem uma figuração de ponto de acesso aleatório na camada de base e com determinadas propriedades até e não incluindo uma próxima AU que tem uma figuração de ponto de acesso aleatório na camada de base e com determinadas propriedades. Por exemplo, as determinadas propriedades de uma figuração de ponto de acesso aleatório que começa uma CVS podem incluir um sinalizador de RASL (por exemplo, NoRaslOutputFlag) igual a 1. De outro modo, uma figuração de ponto de acesso aleatório (com sinalizador de RASL igual a 0) não começa
Petição 870190090180, de 11/09/2019, pág. 30/167
24/121 uma CVS. Uma unidade de acesso (AU) inclui uma ou mais figurações criptografadas e informações de controle que correspondem às figurações criptografadas que compartilham o mesmo tempo de saida. As fatias criptografadas de figurações são encapsuladas no nível de fluxo de bits em unidades de dados chamadas de unidades de camada de abstração de rede (NAL) . Por exemplo, um fluxo de bits de video de HEVC pode incluir um ou mais CVSs que incluem unidades de NAL. Cada uma das unidades de NAL tem um cabeçalho de unidade de NAL. Em um exemplo, o cabeçalho é um byte para H.264/AVC (exceto para extensões de múltiplas camadas) e dois bytes para HEVC. Os elementos de sintaxe no cabeçalho de unidade de NAL captam os bits designados e, portanto, são visíveis para todos os tipos de sistemas e camadas de transporte, como Fluxo de Transporte, Protocolo de Transporte em Tempo Real (RTP), Formato de Arquivo, dentre outros.
[0071] Duas classes de unidades de NAL existem no padrão HEVC, incluindo unidades de NAL de camada de criptografia de video (VCL) e unidades de NAL não VCL. Uma unidade de NAL de VCL inclui uma fatia ou segmento de fatia (descrito abaixo) de dados de figuração criptografados, e uma unidade de NAL não VCL inclui informações de controle que se refere a uma ou mais figurações criptografadas. Em alguns casos, uma unidade de NAL pode se referir a um pacote. Um FIEVC AU inclui unidades de VCL NAL que contêm dados de figuração criptografados e unidades de não VCL NAL (caso haja) que correspondem aos dados de figuração criptografados.
[0072] As unidades de NAL podem conter uma
Petição 870190090180, de 11/09/2019, pág. 31/167
25/121 sequência de bits que forma uma representação criptografada dos dados de video (por exemplo, um fluxo de bits de video codificado, uma CVS de um fluxo de bits, ou semelhante) , como representações criptografadas de figurações em um video. 0 mecanismo codificador 106 gera representações criptografadas de figurações particionando-se cada figuração em múltiplas fatias. Uma fatia é independente das outras fatias para que as informações na fatia sejam criptografadas sem dependência dos dados de outras fatias na mesma figuração. Uma fatia inclui um ou mais segmentos de fatia que incluem um segmento de fatia independente e, caso presente, um ou mais segmentos de fatias dependentes que dependem de segmentos de fatia anteriores. As fatias são, então, particionadas em blocos de árvore de criptografia (CTBs) de amostras luma e amostras croma. Um CTB de amostras luma e um ou mais CTBs de amostras croma, juntamente com sintaxe para as amostras, são referidos como uma unidade de árvore de criptografia (CTU) . Uma CTU é a unidade de processamento básico para codificação HEVC. Uma CTU pode ser dividida em múltiplas unidades de criptografia (CUs) de tamanhos variantes. Uma CU contém arranjos de amostra luma e croma que são referidos como blocos de criptografia (CBs).
[0073] Os CBs luma e croma podem ser adicionalmente divididos em blocos de predição (PBs). Um PB é um bloco de amostras do componente luma ou um componente croma que usa os mesmos parâmetros de movimento para interpredição ou predição de cópia intrabloco (quando disponível ou habilitado para uso) . O PB luma e um ou mais PBs croma, juntamente com a sintaxe associada, formam uma
Petição 870190090180, de 11/09/2019, pág. 32/167
26/121 unidade de predição (PU) . Para interpredição, um conjunto de parâmetros de movimento (por exemplo, um ou mais vetores de movimento, índices de referência, ou semelhante) é sinalizado no fluxo de bits para cada PU e é usado para interpredição do PB luma e do um ou mais PBs croma. Os parâmetros de movimento também podem ser referidos como informações de movimento. Um CB também pode ser particionado em um ou mais blocos de transformada (TBs). Um TB representa um bloco quadrado de amostras de um componente de cor em que a mesma transformada bidimensional é aplicada para criptografar um sinal residual de predição. Uma unidade de transformada (TU) representa os TBs de amostras luma e croma, e que correspondem a elementos de sintaxe.
[0074] Um tamanho de uma CU corresponde a um tamanho do modo de criptografia e pode ser quadrado em formato. Por exemplo, um tamanho de uma CU pode ser amostras de 8 x 8, amostras de 16 x 16, amostras de 32 x 32, amostras de 64 x 64, ou qualquer outro tamanho adequado até o tamanho da CTU correspondente. A frase Ν x N é usada no presente documento para se referir às dimensões em pixel de um bloco de vídeo em termos de dimensões vertical e horizontal (por exemplo, 8 pixels x 8 pixels). Os pixels em um bloco podem ser dispostos em fileiras e colunas. Em alguns exemplos, os blocos não têm o mesmo número de pixels em uma direção horizontal como em uma direção vertical. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, partição da CU em uma ou mais PUs. Os modos de partição podem diferir entre a possibilidade de a CU ser codificada em modo intrapredição ou codificada em modo
Petição 870190090180, de 11/09/2019, pág. 33/167
27/121 interpredição. As PUs podem ser particionadas para serem não quadradas em formato. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, partição da CU em uma ou mais TUs de acordo com uma CTU. Uma TU pode ser quadrada ou não quadrada em formato.
[0075] De acordo com o padrão HEVC, as transformações podem ser realizadas com o uso de unidades de transformada (TUs). As TUs podem variar para diferentes CUs. As TUs podem ser dimensionadas com base no tamanho de PUs dentro de uma dada CU. As TUs podem ter o mesmo tamanho ou podem ser menores que as PUs. Em alguns exemplos, as amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores com o uso de uma estrutura de árvore quadrática conhecida como árvore quadrática residual (RQT) . Os nós folhas do RQT podem corresponder às TUs. Os valores de diferença de pixel associados às TUs podem ser transformados para produzir coeficientes de transformada. Os coeficientes de transformada pode, então, ser quantizados pelo mecanismo codificador 106.
[007 6] Uma vez que as figurações dos dados de video são particionadas nas CUs, o mecanismo codificador 106 prediz cada PU com o uso de um modo de predição. A unidade de predição ou bloco de predição é, então, subtraído dos dados de video originais para obter residuais (descritos abaixo). Para cada CU, um modo de predição pode ser sinalizado dentro do fluxo de bits com o uso de dados de sintaxe. Um modo de predição pode incluir intrapredição (ou predição intrafiguração) ou interpredição (ou predição interfiguração). A intrapredição utiliza a correlação entre amostras espacialmente vizinhas dentro de uma figuração.
Petição 870190090180, de 11/09/2019, pág. 34/167
28/121
Por exemplo, com o uso da intrapredição, cada PU é predita a partir de dados de imagem vizinhos na mesma figuração com o uso, por exemplo, a predição DC para encontrar um valor médio para a PU, predição plana para se ajustar a uma superfície plana à PU, predição direta para extrapolar a partir dos dados vizinhos, ou quaisquer outros tipos adequados de predição. A interpredição usa a correlação temporal entre figurações a fim de derivar uma predição compensada por movimento para um bloco de amostras de imagem. Por exemplo, com o uso de interpredição, cada PU é predita com o uso de predição de compensação de movimento de dados de imagem em uma ou mais figurações de referência (antes ou depois da figuração atual na ordem de saída). A decisão quanto a possibilidade de criptografar uma área de figuração com o uso de predição interfiguração ou intrafiguração pode ser tomada, por exemplo, no nível da CU.
[0077] Em alguns exemplos, a um ou mais fatias de uma figuração são atribuídas a um tipo de fatia. Os tipos de fatia incluem uma fatia I, uma fatia P e uma fatia B. Uma fatia I (intraquadros, independentemente decodificável) é uma fatia de uma figuração que só é criptografada por meio de intrapredição e, portanto, é independentemente decodificável uma vez que a fatia I requer que apenas os dados dentro do quadro predigam qualquer unidade de predição ou bloco de predição da fatia. Uma fatia P (quadros preditos unidirecionais) é uma fatia de uma figuração que pode ser criptografada com intrapredição e com interpredição unidirecional. Cada unidade de predição ou bloco de predição dentro de uma
Petição 870190090180, de 11/09/2019, pág. 35/167
29/121 fatia P é criptografada com Intrapredição ou interpredição. Quando a interpredição se aplica, a unidade de predição ou o bloco de predição só é predito por uma figuração de referência e, portanto, as amostras de referência só de uma região de referência de um quadro. Uma fatia B (quadro preditivos bidirecionais) é uma fatia de uma figuração que pode ser criptografada com intrapredição e com interpredição (por exemplo, seja bipredição ou unipredição). Uma unidade de predição ou bloco de predição de uma fatia B pode ser bidirecionalmente predita a partir de duas figurações de referência, em que cada figuração contribui com uma região de referência e conjuntos de amostra das duas regiões de referência são ponderadas (por exemplo, com pesos iguais ou com pesos diferentes) para produzir o sinal de predição do bloco predito bidirecional. Conforme explicado acima, as fatias de uma figuração são independentemente criptografadas. Em alguns casos, uma figuração pode ser criptografada como apenas uma fatia.
[0078] Uma PU pode incluir os dados (por exemplo, parâmetros de movimento ou outros ados adequados) relacionados ao processo de predição. Por exemplo, quando a PU for codificada com o uso de intrapredição, a PU pode incluir dados que descrevem um modo de intrapredição para a PU. Como um outro exemplo, quando a PU for codificada com o uso de interpredição, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento (Δχ) , um componente vertical do vetor de movimento (Δγ) , uma resolução para o vetor de movimento (por exemplo,
Petição 870190090180, de 11/09/2019, pág. 36/167
30/121 precisão de número inteiro, precisão de um quarto de pixel, ou precisão de um oitavo de pixel), uma figuração de referência à qual o vetor de movimento aponta, um índice de referência, uma lista de figuração de referência (por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de movimento, ou qualquer combinação dos mesmos.
[0079] O dispositivo de codificação 104 pode, então, realizar a transformação e quantização. Por exemplo, após a predição, o mecanismo codificador 106 pode calcular valores residuais que correspondem à PU. Os valores residuais podem compreender valores de diferença de pixel entre o bloco atual de pixels que é criptografado (a PU) e o bloco de predição usado para predizer o bloco atual (por exemplo, a versão predita do bloco atual). Por exemplo, após gerar um bloco de predição (por exemplo, que emite a interpredição ou intrapredição), o mecanismo codificador 106 pode gerar um bloco residual subtraindo-se o bloco de predição produzido por uma unidade de predição do bloco atual. O bloco residual inclui um conjunto de valores de diferença de pixel que quantifica as diferenças entre valores de pixel do bloco atual e valores de pixel do bloco de predição. Em alguns exemplos, o bloco residual pode ser representado em um formato de bloco bidimensional (por exemplo, uma matriz bidimensional ou arranjo de valores de pixel) . Em tais exemplos, o bloco residual é uma representação bidimensional dos valores de pixel.
[0080] Quaisquer dados residuais que podem ser restantes após predição são transformados com o uso de uma transformada de bloco, que pode se basear em transformada de cosseno discreta, transformada de seno discreta, uma
Petição 870190090180, de 11/09/2019, pág. 37/167
31/121 transformada de número inteiro, uma transformada de ondeleta, outra função de transforma adequada ou qualquer combinação das mesmas. Em alguns casos, uma ou mais transformadas de bloco (por exemplo, tamanhos 32 x 32, 16 x 16, 8x8, 4x4, ou semelhantes) podem ser aplicadas aos dados residuais em cada CU. Em alguns exemplos, uma TU pode ser usada para os processos de transformada e quantização implantados pelo mecanismo codificador 106. Uma dada CU que tem uma ou mais PUs pode incluir também uma ou mais TUs. Conforme descrito em mais detalhes abaixo, os valores residuais podem ser transformados em coeficientes de transformada com o uso das transformadas de bloco e, então, podem ser quantizados e varridos com o uso de TUs para produzir coeficientes de transformada serializados para criptografia por entropia.
[0081] Em alguns exemplos, após criptografia infrapreditiva ou interpreditiva que usa PUs de uma CU, o mecanismo codificador 106 pode calcular os dados residuais para os TUs da CU. As PUs podem compreender dados de pixel no domínio espacial (ou domínio de pixel) . As TUs podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada de bloco. Conforme notado anteriormente, os dados residuais podem corresponder aos valores de diferença de pixel entre pixels da figuração não codificada e os valores de predição que correspondem às PUs. O mecanismo codificador 106 pode formar as TUs que incluem os dados residuais para a CU e pode, então, transformar as TUs para produzir coeficientes de transformada para a CU.
[0082] O mecanismo codificador 106 pode
Petição 870190090180, de 11/09/2019, pág. 38/167
32/121 realizar a quantização dos coeficientes de transformada. A quantização fornece mais compactação ao quantizar os coeficientes de transformada para reduzir a quantidade de dados usada para representar os coeficientes. Por exemplo, a quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. Em um exemplo, um coeficiente com um valor de n-bit pode ser arredondado para um valor de m-bit durante a quantização, sendo que n é maior que m.
[0083] Uma vez que a quantização é realizada, o fluxo de bits de vídeo criptografado inclui coeficientes de transformada quantizados, informações de predição (por exemplo, modos de predição, vetores de movimento, vetores de bloco, ou semelhante), informações de partição, e quaisquer outros dados adequados, como outros dados de sintaxe. Os elementos diferentes do fluxo de bits de vídeo criptografado pode, então, ser codificado por entropia pelo mecanismo codificador 106. Em alguns exemplos, o mecanismo codificador 106 pode utilizar uma ordem de varredura predefinida para varrer os coeficientes de transformada quantizados para produzir um vetor serializado que pode ser codificado por entropia. Em alguns exemplos, o mecanismo codificador 106 pode realizar uma varredura adaptativa. Após varrer os coeficientes de transformada quantizados para formar um vetor (por exemplo, um vetor unidirecional), o mecanismo codificador 106 pode codificar por entropia o vetor. Por exemplo, o mecanismo codificador 106 pode usar a criptografia de comprimento variável adaptativo a contexto, criptografia aritmética binária adaptativa a contexto, criptografia aritmética binária adaptativa a contexto
Petição 870190090180, de 11/09/2019, pág. 39/167
33/121 baseada em sintaxe, criptografia por entropia de partição de intervalo de probabilidade ou uma outra técnica de codificação por entropia adequada.
[0084] Conforme anteriormente descrito, um fluxo de bits HEVC inclui um grupo de unidades de NAL que incluem unidades de VCL NAL e unidades de não VCL NAL. As unidades de NAL de VCL incluem dados de figuração criptografados que formam um fluxo de bits de vídeo criptografado. Por exemplo, uma sequência de bits que forma o fluxo de bits de vídeo criptografados é reenviada nas unidades de VCL NAL. As unidades de NAL não VCL podem conter conjuntos de parâmetro com informações de alto nível relacionadas ao fluxo de bits de vídeo codificado, além de outras informações. Por exemplo, um conjunto de parâmetro pode incluir um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS) e um conjunto de parâmetros de figuração (PPS). Exemplos de objetivos dos conjuntos de parâmetros incluem eficiência de taxa de bit, resiliência de erro e fornecer interfaces de camada de sistemas. Cada fatia faz referência a um PPS, SPS e VPS ativo único para avaliar informações que o dispositivo de decodif icação 112 pode usar para decodificar a fatia. Um identificador (ID) pode ser criptografado para cada conjunto de parâmetros, incluindo um ID de VPS, um ID de SPS e um ID de PPS. Um SPS inclui um ID de SPS e um ID de VPS. Um PPS inclui um ID de PPS e um ID de SPS. Cada cabeçalho de fatia inclui um ID de PPS. Usando os IDs, os conjuntos de parâmetros ativos podem ser identificado para uma dada fatia.
[0085] Um PPS inclui informações gue se
Petição 870190090180, de 11/09/2019, pág. 40/167
34/121 aplicam a todas as em uma dada figuração. Devido a isso, todas as fatias em uma figuração se referem ao mesmo PDS. As fatias em diferentes figurações também podem se referir ao mesmo PPS. Um SPS inclui informações que se aplicam a todas as figurações em uma mesma sequência de video criptografada (CVS) ou fluxo de bits. Conforme descrito anteriormente, uma sequência de video criptografada é uma série de unidades de acesso (AUs) que começa com uma figuração de ponto de acesso aleatório (por exemplo, uma figuração de referência de decodificação instantânea (IDR) ou figuração de acesso de enlace quebrado (BLA), ou outra figuração de ponto de acesso aleatório adequada) na camada de base e com determinadas propriedades (descritas acima) até e não incluindo, uma próxima AU que tem uma figuração de ponto de acesso aleatório na camada de base e com determinadas propriedades (ou o fim do fluxo de bits) . As informações em uma SPS podem não mudar de figuração para figuração dentro de uma sequência de video criptografada. As figurações em uma sequência de video criptografada podem usar o mesmo SPS. 0 VPS inclui informações que se aplicam a todas as camadas dentro de uma sequência de video criptografada ou fluxo de bits. 0 VPS inclui uma estrutura de sintaxe com elementos de sintaxe que se aplicam a todas as sequências de video criptografadas. Em alguns exemplos, o VPS, SPS ou PPS podem ser transmitidos em banda com o fluxo de bits codificados. Em alguns exemplos, o VPS, SPS ou PPS podem ser transmitidos fora de banda em uma transmissão separada das unidades de NAL que contêm dados de video criptografados.
[0086] Um fluxo de bits de video também pode
Petição 870190090180, de 11/09/2019, pág. 41/167
35/121 incluir mensagens de Informações de Intensificação Complementar (SEI). Por exemplo, uma unidade de NAL de SEI pode ser parte do fluxo de bits de video. Em alguns exemplos, uma mensagem de SEI podem estar fora do fluxo de bits de video. Em alguns casos, uma mensagem de SEI pode conter informações que não são necessárias pelo processo de decodificação. Por exemplo, as informações em uma mensagem de SEI podem não ser essenciais para o decodificador decodificar as figurações de video do fluxo de bits, mas o decodificador pode usar as informações para aprimorar a exibição ou o processamento das figurações (por exemplo, a salda decodificada). As informações em uma mensagem de SEI podem ser metadados embutidos. Em um exemplo ilustrativo, as informações em uma mensagem de SEI poderíam ser usadas pelas entidades do lado de decodificador para aprimorar a visualização do conteúdo. Em alguns casos, determinados padrões de aplicação podem obrigar a presença de tais mensagens de SEI no fluxo de bits para que o aprimoramento na qualidade possa ser levada para todos os dispositivos que se adequam ao padrão de aplicação (por exemplo, a condução da mensagem de SEI de empacotamento de quadro para formato de video 3DTB esteroscópico pano compatível com quadro, em que a mensagem de SEI é carregada para cada quadro do video, manuseio de uma mensagem de SEI de ponto de recuperação, uso de mensagem de SEI de retângulo de varredura do tipo pan-scan em DVB, além de muitos outros exemplos).
[0087] A saída 110 do dispositivo de codificação 104 pode enviar as unidades de NAL que constituem os dados de video codificados através do enlace
Petição 870190090180, de 11/09/2019, pág. 42/167
36/121 de comunicações 120 para o dispositivo de decodificação 112 do dispositivo de recebimento. A entrada 114 do dispositivo de decodif icação 112 pode receber as unidades de NAL. O enlace de comunicação 120 pode incluir um canal fornecido por uma rede sem fio, uma rede com fio ou uma combinação de uma rede com fio e sem fio. Uma rede sem fio pode incluir qualquer interface sem fio ou combinação de interfaces sem fio e pode incluir qualquer rede sem fio adequada (por exemplo, a Internet ou outra rede de área ampla, uma rede baseada em pacote, WiFiTM, radiofrequência (RF), UWB, WiFiDirect, celular, Evolução a Longo Prazo (LTE), WiMaxTM, ou semelhante) . Uma rede com fio pode incluir qualquer interface com fio (por exemplo, fibra, Ethernet, Ethernet de linha de energia elétrica, Ethernet em cabo coaxial, linha de sinal digital (DSL) ou semelhante) . As redes com fio e/ou sem fio podem ser implantadas com o uso de vários equipamentos, como estações-base, roteadores, pontos de acesso, pontes, portas de comunicação, comutadores, ou semelhante. Os dados de video codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de recebimento.
[0088] Em alguns exemplos, o dispositivo de codificação 104 pode armazenar dados de video codificados no armazenamento 108. A saída 110 pode recuperar os dados de video codificados do mecanismo codificador 106 ou do armazenamento 108. O armazenamento 108 pode incluir qualquer um dentre uma variedade de mídias de armazenamento de dados distribuídas ou localmente acessadas. Por exemplo, o armazenamento 108 pode incluir um disco rígido, um disco
Petição 870190090180, de 11/09/2019, pág. 43/167
37/121 de armazenamento, memória flash, memória volátil ou não volátil, ou quaisquer outras mídias de armazenamento digital para armazenar dados de video codificados.
[0089] A entrada 114 do dispositivo de decodificação 112 recebe os dados de fluxo de dados de video codificados e pode fornecer os dados de fluxo de bits de video ao mecanismo decodificador 116 ou para o armazenamento 118 para uso posterior através do mecanismo decodificador 116. O mecanismo decodificador 116 pode decodificar os dados de fluxo de dados de video codificados por meio de decodificação por entropia (por exemplo, com o uso de um decodificador por entropia) e extrair os elementos da uma ou mais sequências de video criptografadas que constituem os dados de video codificados. O mecanismo decodificador 116 pode, então, reescalonar e realizar uma transformada inversa nos dados de fluxo de bits de video codificados. Os dados residuais são, então, passados para um estágio de predição do mecanismo decodificador 116. O mecanismo decodificador 116 prediz, então, um bloco de pixels (por exemplo, uma PU). Em alguns exemplos, a predição é adicionada à saida da transformada inversa (os dados residuais).
[0090] O dispositivo de decodificação 112 pode emitir o video decodificado para um dispositivo de destino de video 122, que pode incluir um visor ou outro dispositivo de saida para exibir os dados de video decodificados para um consumidor do conteúdo. Em alguns aspectos, o dispositivo de destino de video 122 pode ser parte do dispositivo de recebimento que inclui o dispositivo de decodificação 112. Em alguns aspectos, o
Petição 870190090180, de 11/09/2019, pág. 44/167
38/121 dispositivo de destino de vídeo 122 pode ser parte de um dispositivo separado do dispositivo de recebimento.
[0091] Em alguns exemplos, o dispositivo de codificação de vídeo 104 e/ou o dispositivo de decodificação de vídeo 112 podem ser integrados com um dispositivo de codificação de áudio e dispositivo de decodificação de áudio, respectivamente. O dispositivo de codificação de vídeo 104 e/ou o dispositivo de decodificação de vídeo 112 também podem incluir outro hardware ou software que seja necessário para implantar as técnicas de criptografia descritas acima, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programável em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. O dispositivo de codificação de vídeo 104 e o dispositivo de decodif icação de vídeo 112 podem ser integrados como parte de um codificador/decodificador (codec) combinado em um respectivo dispositivo. Um exemplo de detalhes específicos do dispositivo de codificação 104 é descrito abaixo com referência à Figura 16. Um exemplo de detalhes específicos do dispositivo de decodificação 112 é descrito abaixo com referência à Figura 17.
[0092] Extensões para o padrão HECV incluem a extensão de Codificação de Vídeo de Múltiplas Vistas, referida como MV-HEVC, e a extensão de Codificação de Vídeo Escalonável, referida como SHVC. As extensões MV-HEVC e SHVC compartilham o conceito de criptografia em camadas, sendo gue diferentes camadas estão incluídas no fluxo de
Petição 870190090180, de 11/09/2019, pág. 45/167
39/121 bits de vídeo codificado. Cada camada em uma sequência de vídeo criptografada é tratada por um único identificador de camada (ED) . Um ID de camada pode estar presente em um cabeçalho de uma unidade de NAL para identificar uma camada com a qual a unidade de NAL está associada. Em MV-HEVC, diferentes camadas normalmente representam vistas diferentes da mesma cena no fluxo de bits de vídeo. Em SHVC, diferentes camadas escalonáveis são fornecidas, as quais representam o fluxo de bits de vídeo em diferentes resoluções espaciais (ou resolução de figuração) ou em diferentes fidelidades de reconstrução. As camadas escalonáveis podem incluir uma camada de base (com ID de camada = 0) e uma ou mais camadas de intensificação (com ID de camadas = 1, 2, . . . n) . A camada de base pode se adequar a um perfil da primeira versão de HEVC, e representa a mais baixa camada disponível em um fluxo de bits. As camadas de intensificação aumentaram a resolução espacial, resolução temporal ou taxa de quadro e/ou fidelidade de reconstrução (ou qualidade) em comparação com a camada de base. As camadas de intensificação são hierarquicamente organizadas e podem (ou não) depender das camadas inferiores. Em alguns exemplos, as diferentes camadas podem ser criptografadas com o uso de um único codec padrão (por exemplo, todas as camadas são codificadas usando HEVC, SHVC, ou outro padrão de criptografia). Em alguns exemplos, diferentes camadas podem ser criptografadas com o uso de um codec de múltiplos padrões. Por exemplo, uma camada de base pode ser criptografada com o uso de AVC, enquanto uma ou mais camadas de intensificação pode ser criptografada com o uso de extensões de SHVC e/ou MV-HEVC para o padrão HECV.
Petição 870190090180, de 11/09/2019, pág. 46/167
40/121 [0093] Conforme descrito acima, para cada bloco, um conjunto de informações de movimento (também referido no presente documento como parâmetros de movimento) pode estar disponível. Um conjunto de informações de movimento pode conter informações de movimento para direções de predição para frente e para trás. No presente, as direções de predição para frente e para trás são duas direções de predição de um modo de predição bidirecional e os termos para frente e para trás não têm, necessariamente um significado de geometria. Em vez disso, para frente e para trás pode corresponder a uma lista de figuração de referência 0 (RefPicListO) e uma lista de figuração de referência 1 (RefPicList1) de uma figuração atual, fatia ou bloco. Em alguns exemplos, quando apenas uma lista de figuração de referência estiver disponível para uma figuração, fatia, ou bloco, apenas RefPicListO está disponível e as informações de movimento de cada bloco de uma fatia está sempre para frente. Em alguns exemplos, RefPicListO inclui figurações de referência que precedem uma figuração atual em tempo, e RefPicListl inclui figurações de referência que seguem a figuração atual em tempo. Em alguns casos, um vetor de movimento juntamente com um índice de referência associado pode ser usado nos processos de decodificação. Tal vetor de movimento com o índice de referência associado é denotado como um conjunto de informações de movimento unipreditivo.
[0094] Para cada direção de predição, as informações de movimento podem conter um índice de referência e um vetor de movimento. Em alguns casos, por questão de simplicidade, um vetor de movimento pode ter
Petição 870190090180, de 11/09/2019, pág. 47/167
41/121 informações associadas, do qual pode-se supor um modo que o vetor de movimento tenha um índice de referência associado. Um índice de referência pode ser usado para identificar uma figuração de referência na lista de figuração de referência atual (RefPicListO ou RefPicListl). Um vetor de movimento pode ter um componente horizontal e um vertical que fornece um deslocamento da posição coordenada na figuração atual para as coordenadas na figuração de referência identificadas pelo índice de referência. Por exemplo, um índice de referência pode indicar uma figuração de referência específica que deve ser usada para um bloco em uma figuração atual, e o vetor de movimento pode indicar onde na figuração de referência o bloco mais compatível (o bloco que corresponde melhor ao bloco atual) está na figuração de referência.
[0095] Uma contagem de ordem de figuração (POC) pode ser usada nos padrões de criptografia de vídeo para identificar uma ordem de exibição de uma figuração. Embora haja casos para os quais duas figurações dentro de uma seguência de vídeo criptografada possam ter o mesmo valor de POC, dentro de uma sequência de vídeo criptografada duas figurações com o mesmo valor de POC não ocorrem com frequência. Quando múltiplas sequências de vídeo criptografadas estão presentes em um fluxo de bits, as figurações com um mesmo valor de POC podem estar mais próximas entre si em termos de ordem de decodificação. Os valores de POC das figurações podem ser usados para a construção de lista de figuração de referência, derivação de figuração de referência definida como em HEVC, e/ou escalonamento de vetor de movimento, dentre outras coisas.
Petição 870190090180, de 11/09/2019, pág. 48/167
42/121
Em H.264/AVC, cada intermacrobloco (MB) pode ser particionado em quatro modos diferentes, incluindo: uma partições de macrobloco de 16x16; duas partições de macrobloco de 16x8; duas partições de macrobloco de 8x16; e quatro partições de macrobloco de 8x8, dentre outras coisas. Diferentes partições de macrobloco em um macrobloco podem ter diferentes valores de índice de referência para cada direção de predição (por exemplo, diferentes valores de índice de referência para RefPicListO e RefPicListl).
[0097]
Em alguns casos, quando um macrobloco não for particionado em quatro partições de macrobloco de 8x8, o macrobloco pode ter apenas um vetor de movimento para cada partição de macrobloco em cada direção de predição. Em alguns casos, quando um macrobloco é particionado em quatro partições de macrobloco de 8x8, cada partição de macrobloco de 8x8 pode ser adicionalmente particionado em sub-blocos, cada um dos quais pode ter um vetor de movimento diferente em cada direção de predição. Uma partição de macrobloco de 8x8 pode ser dividida em subblocos de diferentes modos, incluindo: um sub-bloco de 8x8; dois sub-blocos de 8x4; dois sub-blocos 4x8; e quatro subblocos de 4x4, dentre outros. Cada sub-bloco pode ter um vetor de movimento diferente em cada direção de predição. Portanto, um vetor de movimento pode estar presente em um nível igual ou maior que um sub-bloco.
[0098]
Em HEVC maior unidade de criptografia em uma fatia é chamada de um bloco de árvore de criptografia (CTB) . Um CTB contém uma árvore quaternária, os nós dos quais são unidades de criptografia.
Petição 870190090180, de 11/09/2019, pág. 49/167
43/121 tamanho de um CTB pode variar de 16x16 pixels a 64x64 pixels no perfil principal de HEVC. Em alguns casos, tamanhos de CRB de 8x8 pixels podem ser suportados. Um CTB pode ser recursivamente dividido em unidades de criptografia (CU) de uma maneira relacionada a árvore quaternária, conforme mostrado na Figura 2. Uma CU podería ser do mesmo tamanho de um CTB e tão pequena quanto 8x8 pixels. Em alguns casos, cada unidade de criptografia é criptografada com modo de intrapredição ou modo interpredição. Quando uma CU for intercriptografada com o uso de um modo interpredição, a CU pode ser adicionalmente particionada em duas ou quatro unidades de predição (PUs), ou pode ser tratada como uma PU quando a partição adicional não se aplicar. Quando duas PUs estiverem presentes em uma CU, as duas PUs podem ser retângulos pela metade ou dois retângulos que são 1/4 ou 3/4 do tamanho da CU.
[0099] A Figura 3 é um diagrama que ilustra oito modos de partição para um CU criptografada com o modo interpredição. Conforme mostrado, os modos de partição incluem PART_2Nx2N, PART_2NxN, PART_Nx2N, PART_NxN, PART_2NxnU, PART_2NxnD, PART_nLx2N, e PART_nRx2N. Uma CU pode ser particionada em PUs de acordo com os diferentes modos de partição. Consequentemente, uma CU pode ser predita com o uso de um ou mais dos modos de partição.
[0100] Quando o CU for intercriptografado, um conjunto de informações de movimento pode estar presente para cada PU. Além disso, cada PU pode ser criptografada com um modo interpredição para derivar o conjunto de informações de movimento. Em alguns casos, quando uma CU for intracriptografada com o uso do modo de intrapredição,
Petição 870190090180, de 11/09/2019, pág. 50/167
44/121 os formatos da PU podem ser 2Nx2N e NxN. Dentro de cada PU, um único modo de intrapredição é criptografado (enquanto o modo de predição croma é sinalizado no nível de CU) . Em alguns casos, os formatos NxN infra PU são permitidos quando o tamanho de CU atual for igual ao menor tamanho de CU definido em SPS.
[0101] Para a predição de movimento em HEVC, pode haver dois modos interpredição para uma CU ou PU, incluindo um modo de fusão e um modo de predição de vetor de movimento avançada (AMVP). Um modo intermitente é considerado como um caso especial do modo de fusão. No modo de AMVP ou de fusão, uma lista de candidatos de vetor de movimento (MV) pode ser mantida para múltiplos preditores de vetor de movimento (MV). O vetor (ou vetores) de movimento, assim como índices de referência no modo de fusão, da PU atual pode ser gerado tomando-se um candidato da lista de candidatos de MV.
[0102] Em alguns exemplos, a lista de candidatos de MV pode conter até cinco candidatos de MV para o modo de fusão e dois candidatos de MV para o modo de AMVP. Em outros exemplos, diferentes números de candidatos podem estar incluídos em uma lista de candidatos de MV para o modo de fusão e/ou modo de AMVP. Um candidato de fusão pode conter um conjunto de informações de movimento (por exemplo, vetores de movimento que correspondem a uma ou ambas as listas de figuração de referência (lista 0 e lista 1)) e aos índices de referência. Se um candidato de fusão for identificado por um índice de fusão, as figurações de referência podem ser usadas para a predição do bloco atual. A figuração de referência também pode ser usada para
Petição 870190090180, de 11/09/2019, pág. 51/167
45/121 determinar vetores de movimento associados. Um candidato de AVMP contém apenas um vetor de movimento; então, no modo de AVMP, um índice de referência pode precisar ser explicitamente sinalizado, juntamente com um índice de MVP para a lista de candidatos de MV, para cada direção de predição potencial da lista 0 ou lista 1. No modo de AMVP, os vetores de movimento preditos podem ser adicionalmente refinados.
[0103] Conforme pode ser visto acima, um candidato de fusão corresponde a um conjunto de informações de movimento total, enquanto um candidato de AMVP contém apenas um vetor de movimento para uma direção de predição e índice de referência específicos. Os candidatos tanto para o modo de fusão quanto para o AMVP podem ser derivados semelhantemente dos mesmos blocos vizinhos espaciais e/ou temporais.
[0104] A Figura 4A e a Figura 4B são diagramas que ilustram derivações exemplificativas de candidatos de MV vizinho espacial. Os candidatos de MV espacial para uma PU específica (PUO 402) podem ser derivados de blocos vizinhos, incluindo em relação a uma PU1 vizinha 404, localizada para a direita da PUO 402.
[0105] O diagrama na Figura 4A ilustra a derivação de candidatos de MV espacial para modo de fusão. No modo de fusão, até cinco candidatos de MV espacial (e, em alguns casos, até quatro) podem ser derivados, por exemplo, na seguinte ordem: um candidato à esquerda 410 (bloco 0), um candidato acima 412 (bloco 1), um candidato à direita acima 414 (bloco 2), um candidato à esquerda abaixo 416 (bloco 3), e um candidato à esquerda acima 418 (bloco
Petição 870190090180, de 11/09/2019, pág. 52/167
46/121
4) . Os locais dos candidatos de MV espacial em relação à PUO 402 são ilustrados na Figura 4A. Especificamente, o candidato à esquerda 410 está localizado adjacente e à esquerda do canto esquerdo inferior da PUO 402; o candidato acima 412 está localizado adjacente e acima do canto direito superior da PUO 402; o candidato à direita acima 414 está localizado adjacente e acima do canto esquerdo superior da PU1 vizinha 404; o candidato à esquerda abaixo 416 está localizado abaixo do candidato à esquerda 410; e o candidato à esquerda acima 418 está localizado acima e à esquerda do canto esquerdo superior da PUO 402.
[0106] O diagrama na Figura 4B ilustra a derivação de candidatos de MV vizinho espacial para o modo de AVMP. No modo de AVMP, os blocos vizinhos são divididos em, por exemplo, dois grupos. O primeiro grupo, que pode ser referido como um grupo à esquerda, pode incluir um primeiro bloco 420 (bloco 0), localizado abaixo e à esquerda da PUO 402, e um segundo bloco 422 (bloco 1), localizado à esquerda e adjacente ao canto esquerdo inferior da PUO 402. O segundo grupo, que pode ser referido como o grupo acima, pode incluir um terceiro bloco 424 (bloco 2), localizado acima e adjacente ao canto esquerdo superior da PU1 vizinha 404, um quarto bloco 426 (bloco 3) localizado acima e adjacente ao canto direito superior da PUO 402, e um quinto bloco 428 (bloco 4), localizado acima e para a esquerda do canto esquerdo superior da PUO 402. Para cada grupo, um candidato MV potencial em um bloco vizinho que se refere à mesma figuração de referência que aquela indicada pelo índice de referência sinalizado pode ter a mais alta prioridade dentre os blocos a serem
Petição 870190090180, de 11/09/2019, pág. 53/167
47/121 escolhidos para formar um candidato final do grupo. Em alguns casos, é possível que todos os blocos vizinhos não contenham um vetor de movimento apontando para a mesma figuração de referência. Portanto, se tal candidato não puder ser encontrado, o primeiro candidato disponível pode ser escalonado para formar o candidato final, para que as diferenças de distância temporal possam ser compensadas.
[0107] Em alguns casos, os modos de fusão e AMVP podem incluir outros aspectos, como escalonamento de vetor de movimento, geração de candidato de vetor de movimento artificial, e um processo de poda para a inserção de candidato.
[0108] Uma árvore quaternária-árvore binária (QTBT) foi proposta para o padrão de criptografia de vídeo futuro além de HEVC. As simulações mostraram que a estrutura QTBT proposta pode ser mais eficaz do que a estrutura de árvore quaternária na HEVC usada. Na estrutura QTBT proposta, um CTB é primeiramente particionado com o uso de uma estrutura de árvore quaternária, em que a separação de árvore quaternária de um nó pode ser iterada até que o nó chegue ao tamanho de nó folha de árvore quaternária mínimo permitido (MinQTSize). Se o tamanho de nó folha de árvore quaternária não for maior que o tamanho de nó de raiz de árvore binária máximo permitido (MaxBTSize), o mesmo pode ser adicionalmente particionado por uma árvore binária. A separação de árvore binária de um nó pode ser iterada até que o nó chegue ao tamanho de nó folha de árvore binária mínimo permitido (MinBTSize) ou a profundidade de árvore binária máxima permitida (MaxBTDepth). O nó folha de árvore binária é chamado de uma
Petição 870190090180, de 11/09/2019, pág. 54/167
48/121
CU, que pode ser usado para predição (por exemplo, intrapredição ou interpredição) e transformada sem qualquer partição adicional. Em alguns casos, há dois tipos de separação na separação de árvore binária - separação horizontal simétrica e separação vertical simétrica.
[0109] Em um exemplo ilustrativo da estrutura de partição de QTBT, o tamanho de CTU pode ser definido como 128 x 128 (amostras luma e duas amostras croma de 64 x 64 correspondentes), o MinQTSize pode ser definido como 16 x 16, o MaxBTSize pode ser definido como 64 x 64, o MinBTSize (tanto para a largura quanto para a altura) pode ser definido como 4, e o MaxBTDepth pode ser definido como 4. A partição de árvore quaternária é aplicada à CTU primeiro para gerar nós folha de árvore quaternária. Em alguns exemplos, os nós folha de árvore quaternária podem ter um tamanho de 16 x 16 (nesse caso, o MinQTSize) a 128 x 128 (nesse caso, o tamanho da CTU) . Se o nó de árvore quaternária folha for 128 x 128, o mesmo não será mais dividido pela árvore binária uma vez que o tamanho excede o MaxBTSize (nesse caso, 64 x 64) . De outro modo, o nó de árvore quaternária folha será adicionalmente particionado pela árvore binária. Nesse exemplo, o nó folha de árvore quaternária também é o nó raiz para a árvore binária e tem a profundidade de árvore binária como 0. Quando a profundidade de árvore binária chegar a MaxBTDepth (4 nesse exemplo), isso implica que não há nenhuma separação adicional. Quando o nó de árvore binária tiver largura igual a MinBTSize (4 nesse exemplo), isso implica em não mais separação horizontal. Semelhantemente, quando o nó de árvore binária tiver altura igual a MinBTSize (4, nesse
Petição 870190090180, de 11/09/2019, pág. 55/167
49/121 exemplo), isso implica nenhuma separação vertical adicional. Os nós folha da árvore binária são chamados de CUs, e podem ser adicionalmente processados pela predição e transformada sem qualquer partição adicional.
[0110] A Figura 5A ilustra um exemplo de partição de bloco com o uso de QTBT, e a Figura 5B ilustra a estrutura de árvore correspondente. As linhas contínuas mostradas na Figura 5A indicam a separação de árvore quaternária, e as linhas pontilhadas indicam a separação de árvore binária. Em cada nó de separação (referida como um nó não folha) da árvore binária, um marcador pode ser sinalizado para indicar qual tipo de separação (por exemplo, separação horizontal ou vertical) é usado. Em um exemplo ilustrativo, um valor 0 para o marcador pode indicar separação horizontal e o valor 1 pode indicar separação vertical. Em alguns casos, para a separação de árvore quaternária, pode não haver necessidade de indicar o tipo de separação uma vez que um bloco pode ser sempre separado horizontal e verticalmente em quatro sub-blocos com um tamanho igual.
[0111] Em alguns exemplos, uma estrutura de árvore de múltiplos tipos pode ser usada. Por exemplo, um nó de árvore pode ser adicionalmente separado com múltiplos tipos de árvore, como árvore binária, uma árvore tripla do lado de centro simétrico, e uma árvore quaternária. As simulações mostraram que a estrutura de árvore de múltiplos tipos pode ser muito mais eficaz que a estrutura QTBT.
[0112] Em alguns casos, as unidades de
criptografia assimétri cas podem ser usadas no topo da
estrutura QTBT. Por exemplo, quatro novos modos de
Petição 870190090180, de 11/09/2019, pág. 56/167
50/121 separação de árvore binária podem ser introduzidos na armação de QTBT, permitindo novas configurações de separação. A Figura 6 é um diagrama que ilustra modos de separação assimétrica que podem ser usados além dos modos de separação já disponíveis em QTBT. De acordo com os modos de separação assimétrica adicionais, uma unidade de criptografia com tamanho 5 é dividida em duas sub-CU com tamanhos 5/4 e 3,5/4, seja na direção horizontal ou na vertical. Em JVET-D0064, a largura ou altura de CU recentemente adicionada pode ser apenas 12 ou 24.
[0113] Em HEVC e padrões de criptografia de video precoces, apenas um modelo de movimento translacional é aplicado para a predição de compensação de movimento (MCP). Por exemplo, um vetor de movimento translacional pode ser determinado para cada bloco (por exemplo, cada CU ou cada PU) de uma figuração. No entanto, no mundo real, há mais tipos de movimentos além do movimento translacional, incluindo aproximação (por exemplo, aproximação e/ou afastamento), rotação, movimentos em perspectiva, dentre outros movimentos irregulares. No Modelo de exploração conjunta (JEM) por ITU-T VCEG e MPEG, uma predição de compensação de movimento de transformada afim simplificada pode ser aplicada para aprimorar a eficiência de criptografia. Conforme mostrado na Figura 7, o campo de movimento afim de um bloco atual 702 é descrito por dois vetores de movimento ^0 e de dois pontos de controle 710 e 712. Com o uso do vetor de movimento do ponto de controle 710 e do vetor de movimento 1 do ponto de controle 712, o campo de vetor de movimento (MVF) do bloco
Petição 870190090180, de 11/09/2019, pág. 57/167
51/121 atual 702 pode ser descrito pela seguinte equação:
S Λ J flr w Equação (1) [0114] em que Vx e Vy é o vetor de movimento para cada pixel no bloco atual 702, x e y é a posição de cada pixel no bloco atual 702 (por exemplo, o pixel esquerdo de topo em um bloco pode ter coordenada ou índice (x, y) = (0,0)), (vOx, vOy) é o vetor de movimento do ponto de controle de canto esquerdo de topo 710, w é a largura do bloco atual 7 02, e (Vlx, vly) é o vetor de movimento do ponto de controle de canto direito de topo 712. Os valores vOx e vlx são valores horizontais para os respectivos vetores de movimento, e valores vOy e vly são os valores verticais para os respectivos vetores de movimento. Os pontos de controle adicionais (por exemplo, quatro pontos de controle, seis pontos de controle, oito pontos de controle, ou algum outro número de pontos de controle) podem ser definidos ao adicionais mais vetores de ponto de controle, por exemplo, nos cantos inferiores do bloco atual 702, no centro do bloco atual 702, ou outra posição no bloco atual 702.
[0115] A equação (1) acima ilustra um modelo de movimento de 4 parâmetros, em que quatro parâmetros afim a, b, c, e d são definidos como:
tí· £í ί*· i4í tv ; e d = vOy. Com o uso da equação (1), dado o vetor de movimento (vOx, vOy) do ponto de controle de canto esquerdo de topo 710 e o vetor de
Petição 870190090180, de 11/09/2019, pág. 58/167
52/121 movimento (vlx, vly) do ponto de controle de canto direito de topo 712, o vetor de movimento para cada pixel do bloco atual pode ser calculado com o uso da coordenada (x, y) de cada local de pixel. Por exemplo, para a posição de pixel esquerdo de topo do bloco atual 702, o valor de (x, y) pode ser igual a (0, 0), em cujo caso o vetor de movimento para o pixel esquerdo de topo se torna Vx = vOx e Vy = vOy.
[0116] A fim de simplificar adicionalmente a MCP, a predição de transformada afim baseada em bloco pode ser aplicada. Por exemplo, conforme mostrado na Figura 8, um bloco atual 802 pode ser dividido em sub-blocos. O exemplo mostrado na Figura 8 inclui uma partição de 4 x 4, com dezesseis sub-blocos totais. Qualquer partição adequada e número correspondente de sub-blocos pode ser usada. Um vetor de movimento pode, então, ser derivado para cada subbloco com o uso da equação (1) . Por exemplo, para derivar um vetor de movimento de cada um dos sub-blocos de 4 x 4, o vetor de movimento da amostra central de cada sub-bloco (conforme mostrado na Figura 8) é calculado de acordo com a equação (1) . O vetor de movimento resultante pode ser arredondado, por exemplo, para uma precisão de fração de 1/16 ou outra precisão adequada (por exemplo, 1/4, 1/8, ou semelhante). A compensação de movimento pode, então, ser aplicada com o uso dos vetores de movimento derivados dos sub-blocos para gerar a predição de cada sub-bloco. Por exemplo, um dispositivo de decodificação pode receber os quatro parâmetros afim (a, b, c, d) que descrevem os vetores de movimento do ponto de controle 810 e o vetor
Vi de movimento 1 do ponto de controle 812, e pode calcular
Petição 870190090180, de 11/09/2019, pág. 59/167
53/121 o vetor de movimento por sub-bloco de acordo com o índice de coordenada de pixel que descreve o local da amostra central de cada sub-bloco. Após a MCP, o vetor de movimento de alta precisão de cada sub-bloco pode ser arredondado, conforme notado acima, e pode ser salvo como a mesma precisão que o vetor de movimento translacional.
[0117] Em JEM, há dois modos de movimento afim: modo interafim (AF_INTER) e modo de fusão afim (AF_MERGE). A Figura 9 é um diagrama que ilustra um exemplo de predição de vetor de movimento em modo AF_INTER. Em alguns exemplos, quando uma CU tem uma largura e altura maior gue 8 pixels, o modo AF_INTER pode ser aplicado. Um marcador afim pode ser colocado (ou sinalizado) no fluxo de bits em relação a um bloco (por exemplo, no nível de CU) , para indicar se o modo AF_INTER foi aplicado ao bloco. Conforme ilustrado no exemplo da Figura 9, em modo AF_INTER, uma lista de candidatos de pares de vetor de movimento pode ser construída com o uso de blocos vizinhos. Por exemplo, para um sub-bloco 910, localizado no canto esquerdo superior de um bloco atual 902, um vetor de movimento v0 pode ser selecionado a partir de um bloco vizinho A 920 acima e à esquerda do sub-bloco 910, do bloco vizinho B 922 acima do sub-bloco 910, e bloco vizinho C 924 à esquerda do sub-bloco 910. Como um exemplo adicional, para um sub-bloco 912, localizado no canto direito superior do bloco atual 902, um vetor de movimento Vi pode ser selecionado a partir do bloco vizinho D 926 e bloco vizinho E 928 nas direções acima e à direita acima, respectivamente. Uma lista de candidatos de pares de vetores de movimento pode ser construída com o uso dos
Petição 870190090180, de 11/09/2019, pág. 60/167
54/121 blocos vizinhos. Por exemplo, dados vetores de movimento
VA, VB, VC, VD, e VE que correspondem aos blocos A 920 , B
922, C 924, D 92 6, e E 928, respectivamente, a lista de
candidatos de pares de vetores de movimento pode ser
expressa como { (vOr v±) | v0 = {VA, VB, Vc}, = {VD, VE}} .
[0118] Conforme notado acima e conforme mostrado na Figura 9, em modo AF_INTER, o vetor de movimento vq pode ser selecionado dentre os vetores de movimento dos blocos A 920, B 922, ou C 924. O vetor de movimento do bloco vizinho (bloco A, B, ou C) pode ser escalonado de acordo com a lista de referência e a relação dentre a POC da referência para o bloco vizinho, a POC da referência para a CU atual (por exemplo, o bloco atual 902), e a POC da CU atual. Nesses exemplos, algumas ou todas as POCs podem ser determinadas a partir de uma lista de referência. A seleção de vi dos blocos vizinhos D ou E é semelhante à seleção de v0.
[0119] Em alguns casos, se o número de listas de candidatos for menor que dois, a lista de candidatos pode ser cheia com pares de vetores de movimento ao duplicar cada um dos candidatos de AMVP. Quando a lista de candidatos for maior que dois, em alguns exemplos, os candidatos na lista de candidatos podem ser, primeiro, classificados de acordo com a consistência dos vetores de movimento vizinhos (por exemplo, a consistência pode se basear na semelhança entre os dois vetores de movimento em um candidato de par de vetores de movimento) . Em tais exemplos, os dois primeiros candidatos são mantidos e o resto pode ser descartado.
[0120] Em alguns exemplos, uma verificação de
Petição 870190090180, de 11/09/2019, pág. 61/167
55/121 custo de distorção de taxa (RD) pode ser usada para determinar qual candidato de par de vetores de movimento é selecionado como a predição de vetor de movimento de ponto de controle (CPMVP) da CU atual (por exemplo, o bloco atual 902) . Em alguns casos, um índice que indica a posição da CPMVP na lista de candidatos pode ser sinalizado (ou, de outro modo, indicado) no fluxo de bits. Uma vez que a CPMVP da CU afim atual for determinada (com base no candidato de par de vetores de movimento), a estimativa de movimento afim pode ser aplicada, e o vetor de movimento de ponto de controle (CPMV) pode ser determinado. Em alguns casos, a diferença da CPMV e da CPMVP pode ser sinalizada no fluxo de bits. Tanto CPMV e CPMVP incluem dois conjuntos de vetores de movimento translacional, em cujo caso o custo de sinalização de informações de movimento afim é maior que aquele do movimento translacional.
[0121] A Figura 10A e a Figura 10B ilustram um exemplo de predição de vetor de movimento em modo de AF_MERGE. Quando um bloco atual 1002 (por exemplo, uma CU) for criptografada com o uso de modo de AF_MERGE, um vetor de movimento pode ser obtido a partir de um bloco reconstruído vizinho válido. Por exemplo, o primeiro bloco dos blocos reconstruídos vizinhos válidos que é criptografado com modo afim pode ser selecionado como o bloco candidato. Conforme mostrado na Figura 10A, o bloco vizinho pode ser selecionado dentre um conjunto de blocos vizinhos A 1020, B 1022, C 1024, D 1026, e E 1028. Os blocos vizinhos podem ser considerados em uma ordem de seleção específica para ser selecionado como o bloco candidato. Um exemplo de uma ordem de seleção é o vizinho à
Petição 870190090180, de 11/09/2019, pág. 62/167
56/121 esquerda (bloco A 1020), seguido pelo vizinho acima (bloco B 1022), então, o vizinho à direita acima (bloco C 1024), então, o vizinho inferior à esquerda (bloco D 1026) e, então, o vizinho à esquerda acima (bloco E 1028) .
[0122] Conforme notado acima, o bloco vizinho que é selecionado pode ser o primeiro bloco (por exemplo, na ordem de seleção) que foi criptografado com o modo afim. Por exemplo, o bloco A 1020 pode ter sido criptografado em modo afim. Conforme ilustrado na Figura 10B, o bloco A 1020 pode estar incluído em uma CU vizinha 1004. Para a CU vizinha 1004, os vetores de movimento para o canto esquerdo de topo (V2 1030), canto direito acima (V3 1032), e canto inferior esquerdo (V4 1034) da CU vizinha 1004 podem ter sido derivados. Nesse exemplo, um vetor de movimento de ponto de controle, vq 1040, para o canto esquerdo de topo do bloco atual 1002 é calculado de acordo com V2 1030, V3 1032, e V4 1034. O vetor de movimento de ponto de controle, Vi 1042, para o canto direito de topo do bloco atual 1002 pode ser, então, determinado.
[0123] Uma vez que os vetores de movimento de ponto de controle (CPMV), v0 1040 e Vi 1042, do bloco atual 1002 foram derivados, a equação (1) pode ser aplicada para determinar um campo de vetor de movimento para o bloco atual 1002. A fim de identificar se o bloco atual 1002 é criptografado com modo de AF_MERGE, um marcador afim pode estar incluído no fluxo de bits quando há pelo menos um bloco vizinho criptografado em modo afim.
[0124] Em muitos casos, o processo de estimativa de movimento afim inclui determinar o movimento afim para um bloco no lado do codificador ao minimizar a
Petição 870190090180, de 11/09/2019, pág. 63/167
57/121 distorção entre o bloco original e o bloco predito de movimento afim. À medida que o movimento afim tem mais parâmetros que o movimento translacional, a estimativa de movimento afim pode ser mais complicada que a estimativa de movimento translacional. Em alguns casos, um método de estimativa de movimento afim rápida baseado na expansão de sinal de Taylor pode ser realizado para determinar os parâmetros de movimento afim (por exemplo, parâmetros de movimento afim a, b, c, d em um modelo de 4 parâmetros).
[0125] A estimativa de movimento afim rápida pode incluir uma busca de movimento afim baseada em gradiente. Por exemplo, dado um valor de pixel It no tempo t (sendo que tO é o tempo da figuração de referência), a expansão de Taylor de primeira ordem para o valor de pixel It pode ser determinada como:
Equação (2) [0126] Em que e são o gradiente de pixel Gox, GOy nas direções x e y, respectivamente, enquanto e indicam os componentes de vetor de movimento Vx e Vy para o valor de pixel It. O vetor de movimento para o pixel It nos pontos de bloco atual para um pixel ito na figuração de referência.
[0127] A equação (2) pode ser reescrita como equação (3) conforme segue:
- 4ί> + 6χίΤ Equação (3 [0128] O movimento afim Vx e Vy para o valor de
Petição 870190090180, de 11/09/2019, pág. 64/167
58/121 pixel It pode, então, ser solucionado ao minimizar a distorção entre a predição e o sinal original. Tomando-se o modelo afim de 4 parâmetro como um exemplo,
K — «* x - b * y 4 c ~
Equaçao (4)
K ssr è · x + α > y 4- d ,
Equação (5) [0129] em que x e y indicam a posição de um pixel ou sub-bloco. Tomando-se as equações (4) e (5) na equação (3) e, então, minimizando-se a distorção entre o sinal original e a predição que usa equação (3), a solução de parâmetros afim a, b, c, d podem ser determinados:
(a, à 4} - arg afií(Sj (Jf ~ $$ ~ (¾)»(a - x + b ♦ y 4 c) * (b ·χ-α «yf d))x'}
Equação (6) [0130] Qualquer número de parâmetros pode ser usado. Por exemplo, um movimento afim de 6 parâmetros ou outro movimento afim pode ser solucionado do mesmo modo que aquele descrito acima para o modelo de movimento afim de 4 parâmetros.
[0131] Uma vez que os parâmetros de movimento afim são determinados, que definem os vetores de movimento afim para os pontos de controle, os vetores de movimento por pixel ou por sub-bloco podem ser determinados com o uso dos parâmetros de movimento afim (por exemplo, com o uso de equações (4) e (5), que também são representados na equação (1)) . A equação (3) pode ser realizada para cada pixel de um bloco atual (por exemplo, uma CU) . Por exemplo, se um bloco atual tiver 16 pixels x 16 pixels, a solução de
Petição 870190090180, de 11/09/2019, pág. 65/167
59/121 quadrados mínimos na equação (6) pode, então, ser usada para derivar os parâmetros de movimento afim (a, b, c, d) para o bloco atual ao minimizar o valor geral nos 256 pixels.
[0132] Surgem vários problemas quando as técnicas de modelagem de movimento afim descrito acima são usadas. Um problema inclui o alto custo de sinalização de usar o modelo de movimento afim. Por exemplo, o alto custo de sinalização se deve, pelo menos em parte, à necessidade de os parâmetros de movimento afim serem sinalizados no fluxo de bits a fim de o decodificador derivar os vetores de movimento para os pixels ou sub-blocos dos blocos nas figurações. Ademais, as funções de derivação de movimento afim baseada em compatibilidade bilateral pode ser muito complicada de solucionar, levando ao uso de grandes quantidades de recursos de processamento.
[0133] Os métodos e sistemas são descritos no presente documento para realizar a derivação de movimento afim do lado do decodificador, que trata pelo menos os problemas notados acima. Qualquer uma das técnicas descritas no presente documento podem ser aplicadas individualmente, ou qualquer combinação adequada das técnicas pode ser aplicada. Com o uso das técnicas descritas no presente documento, um dispositivo de decodificação (também referido como um decodificador de vídeo ou um decodificador) pode determinar parâmetros de movimento afim para um ou mais blocos de figurações de vídeo. As técnicas podem ser realizadas sem se referir às informações de movimento afim a serem enviadas para o dispositivo de decodificação. Por exemplo, parâmetros de
Petição 870190090180, de 11/09/2019, pág. 66/167
60/121 movimento afim (ou as diferenças entre os parâmetros de movimento afim e os preditores de parâmetros de movimento afim) não precisam ser sinalizados no fluxo de bits para tal modo de derivação de movimento afim ser realizado por um dispositivo de decodificação. Em alguns casos, o movimento translacional pode ser referido como movimento afim especial.
[0134] Os modelos podem ser usados para realizar a derivação de movimento afim do lado do decodificador para um bloco atual. A derivação de movimento afim que usa modelos pode ser referida como derivação de movimento afim baseada em compatibilidade de modelo. A derivação de movimento afim baseada em compatibilidade de modelo pode ser usada para derivar informações de movimento afim (por exemplo, vetores de movimento afim) no lado do decodificador. Por exemplo, um modelo afim atual pode incluir amostras reconstruídas espacialmente vizinhas (por exemplo, pixels) de um bloco atual, e um modelo afim de referência de uma figuração de referência pode incluir amostras (por exemplo, pixels) em uma figuração de referência que corresponde às amostras no modelo afim atual. O modelo afim atual e o modelo afim de referência podem ser usados para determinar parâmetros de movimento afim para o bloco atual. Os parâmetros de movimento afim definem os vetores de movimento afim para os pontos de controle do modelo afim atual. Por exemplo, os parâmetros de movimento afim (por exemplo, os parâmetros a, b, c, d, que definem os vetores de movimento) de pontos de controle do modelo afim atual podem ser derivados ao minimizar o erro (ou distorção) entre a predição afim (associada às
Petição 870190090180, de 11/09/2019, pág. 67/167
61/121 amostras no modelo afim de referência) e amostras reconstruídas do modelo afim atual do bloco atual. Os parâmetros de movimento afim derivados definem os vetores de movimento afim para os pontos de controle. Os vetores de movimento afim dos pontos de controle podem, então, ser usados para determinar vetores de movimento para pixels ou sub-blocos do bloco atual.
[0135] Em alguns exemplos, o modelo afim atual de um bloco atual (para o qual o movimento afim deve ser derivado) é um bloco ou uma região de amostras de um ou mais blocos vizinhos, com as delimitações do modelo afim atual gue compartilha uma ou mais delimitações com o bloco atual. Em alguns exemplos, o modelo afim atual pode ser a delimitação de topo ou a delimitação esquerda do bloco para o qual o movimento afim deve ser derivado. Em alguns casos, o modelo afim atual está em um formato em L. Por exemplo, o modelo afim atual pode compartilhar a delimitação de topo e a delimitação esquerda do bloco atual. Em outros casos, o modelo afim pode ter qualquer outro formato adequado. Em alguns exemplos, o modelo afim pode incluir pixels reconstruídos em uma ou mais figurações de referência do bloco atual (por exemplo, a figuração colocalizada para a predição de MV temporal em HEVC) . Em tais exemplos, os vetores de movimento afim derivados podem ser escalonados de acordo com a distância de POC de figuração atual, a figuração de referência alvo de bloco atual, e a figuração de referência em que o modelo afim está localizado.
[0136] A Figura 11A é um diagrama que ilustra um bloco atual 1102 e um exemplo de um modelo afim atual
1104 do bloco atual 1102. O bloco atual 1102 pode ser uma
Petição 870190090180, de 11/09/2019, pág. 68/167
62/121 unidade de criptografia (CU), uma unidade de predição (PU), ou qualquer outro bloco adequado de uma figuração. Os pixels no modelo afim atual 1104 incluem pixels anteriormente reconstruídos a partir de blocos gue são vizinhos ao bloco atual 1102. No exemplo da Figura 11A, o modelo afim atual 1104 está em um padrão com formato em L, que pode ser útil para determinar pontos de controle que podem ser posicionados no canto esquerdo de topo e o canto direito de topo do modelo afim atual 1104.
[0137] A Figura 11B é um diagrama que ilustra o bloco atual 1102 com o modelo afim atual 1104 e um bloco de referência 1110 de uma figuração de referência com um modelo afim de referência 1112. Embora o modelo afim de referência 1112 seja mostrado na Figura 11B como tendo o mesmo formato que o modelo afim atual 1104, o modelo afim de referência 1112 pode não ter o mesmo formato que o modelo afim atual 1104, dependendo de onde os pixels de referência estão para os pixels do modelo afim atual 1104, dado um determinado conjunto de parâmetros de movimento afim. Os pontos de controle 1106 e 1108 são definidos para o bloco atual 1102. O ponto de controle 1106 está localizado no canto esquerdo de topo do modelo afim atual 1104, e o ponto de controle 1108 está localizado no canto direito de topo do modelo afim atual 1104. Conforme notado acima, os vetores de movimento afim v0 e v para os pontos de controle 1106 e 1108 do bloco atual 1102 podem ser derivados ao minimizar a distorção entre a predição afim (que corresponde aos pixels do modelo afim de referência 1112) e pixels reconstruídos do modelo afim atual 1104 do bloco atual 1102. Por exemplo, com o uso dos pixels do
Petição 870190090180, de 11/09/2019, pág. 69/167
63/121 modelo afim atual 1104 e pixels colocalizados no modelo afim de referência 1112, as equações acima (2)-(6) podem ser usadas para solucionar iterativamente os parâmetros de movimento afim (por exemplo, a, b, c, d) até que um conjunto de parâmetros de movimento afim ideal seja determinado para os pontos de controle 1106 e 1108 do bloco atual 1102.
[0138] Um vetor de movimento inicial (também referido como uma semente de vetor de movimento inicial ou uma semente) é necessário para determinar a primeira iteração de parâmetros de movimento afim. O vetor de movimento inicial é necessário pelo dispositivo de decodificação para identificar o modelo afim de referência 1112. Por exemplo, o vetor de movimento inicial aponta para o modelo afim de referência 1112 e, então, pode ser usado para identificar qual figuração de referência, e onde nessa figuração de referência (que corresponde ao modelo afim de referência 1112), buscar por informações necessárias para derivar os parâmetros de movimento afim para o bloco atual 1102. A busca pelos parâmetros de movimento afim no bloco de referência 1110 da figuração de referência é realizada ao redor do pixel referido pelo vetor de movimento inicial.
[0139] O vetor de movimento inicial pode ser determinado com o uso de qualquer técnica adequada. Por exemplo, um melhor vetor de movimento translacional pode ser determinado para o bloco atual 1102, e pode ser usado como o vetor de movimento inicial para derivar o movimento afim para o bloco atual 1102. Nota-se que um vetor de movimento translacional é determinado para todo um bloco (por exemplo, o bloco atual 1102), enquanto os vetores de
Petição 870190090180, de 11/09/2019, pág. 70/167
64/121 movimento afim são determinados para todos os pixels ou para determinados sub-blocos de um bloco. Em alguns casos, a compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC) pode ser realizada para determinar um vetor de movimento translacional para todo o bloco atual 1102. Por exemplo, a compatibilidade de modelo pode ser usada para derivar informações de movimento translacional do bloco atual 1102 ao encontrar a melhor compatibilidade entre um modelo (blocos vizinhos de topo e/ou esquerdos do bloco atual) na figuração atual e um bloco (por exemplo, mesmo tamanho que o modelo) em uma figuração de referência. O modelo usado para a compatibilidade de modelo de FRUC pode ser o mesmo modelo ou pode ser um modelo diferente do modelo afim atual 1104. Em um exemplo ilustrativo, o modelo afim atual 1104 é um formato em L (conforme mostrado na Figura 11A-Figura 11C), enquanto o modelo de compatibilidade de modelo de FRUC pode ter um formato como o modelo 1216 mostrado na Figura 12, que é discutido em mais detalhes abaixo.
[0140] O modo de FRUC pode ser considerado como um tipo especial de modo de fusão, com o qual as informações de movimento de um bloco não são sinalizadas, mas derivadas no lado do decodificador. Dois tipos de modo de FRUC incluem compatibilidade bilateral e compatibilidade de modelo. Em alguns casos, um marcador de FRUC pode ser sinalizado para um bloco (por exemplo, uma CU ou semelhante) quando um marcador de fusão for verdadeiro para o bloco. Quando o marcador de FRUC for falso, um índice de fusão pode ser sinalizado e o modo de fusão regular pode ser usado. Quando o marcador de FRUC for verdadeiro, um
Petição 870190090180, de 11/09/2019, pág. 71/167
65/121 modo de marcador de FRUC adicional pode ser sinalizado para indicar qual modo de FRUC (por exemplo, compatibilidade bilateral ou compatibilidade de modelo) deve ser usado para derivar as informações de movimento translacional para o bloco.
[0141] Durante o processo de derivação de movimento translacional, um vetor de movimento inicial translacional pode ser derivado para todo o bloco (por exemplo, CU ou semelhante) com o uso de compatibilidade bilateral ou compatibilidade de modelo. O lista de candidatos de vetor de movimento (MV) de fusão do bloco pode ser verificada, e o vetor de movimento de candidato da lista de candidatos de MV de fusão que leva ao custo de compatibilidade mínimo pode ser selecionada como o vetor de movimento inicial translacional, e o pixel na figuração de referência pode ser usado como um ponto de partida para uma busca local. Por exemplo, uma busca local baseada em compatibilidade bilateral ou compatibilidade de modelo pode ser realizada ao redor do ponto de partida, e o vetor de movimento que resulta no custo de compatibilidade mínimo pode ser tomado como o vetor de movimento para toda a CU. Subsequentemente, as informações de movimento podem ser adicionalmente refinadas no nível do sub-bloco com os vetores de movimento de CU derivados como os pontos de partida.
[0142] Conforme notado acima, a compatibilidade de modelo de modo de FRUC pode ser realizada para determinar um vetor de movimento translacional para o bloco atual 1102. A Figura 12 ilustra um exemplo de compatibilidade de modelo. Na compatibilidade
Petição 870190090180, de 11/09/2019, pág. 72/167
66/121 de modelo, um modelo 1216 pode ser usado para derivar as informações de movimento de um Quadro de Referência 0 1204. Por exemplo, o modelo 1216 pode incluir blocos vizinhos de topo e/ou esquerdos de um bloco atual 1212 em um quadro atual 1202. Nesse exemplo, um conjunto de blocos pode ser encontrado no Quadro de Referência 0 1204 que é mais compatível com o modelo 1216, em que o conjunto de blocos tem o mesmo tamanho e/ou configuração que o modelo 1216. Um vetor de movimento 1220 pode, então, ser determinado, com o uso do local do conjunto de blocos e um local relativo do bloco atual 1212 no Quadro de Referência 0 1204. 0 local relativo do bloco atual 1212 pode ser determinado a partir de um eixo geométrico ortogonal 1230 através, por exemplo, do centro do bloco atual 1212.
[0143] A compatibilidade de modelo de FRUC pode ser realizada para blocos bipreditos ou unipreditos. Por exemplo, a compatibilidade de modelo pode ser realizada para cada lista de figuração de referência independentemente. O modelo 1216 inclui pixels anteriormente reconstruídos na figuração atual. O movimento do bloco atual 1212 é determinado com o uso dos pixels vizinhos no modelo 1216. No lado do decodificador, o melhor movimento translacional para o modelo 1216 é determinado, e é usado como o vetor de movimento translacional do bloco atual 1212. O processo de busca pode incluir buscar pela SAD mínima entre o modelo do bloco atual 1212 e o modelo na figuração de referência.
[0144] Um outro modo de FRUC inclui compatibilidade bilateral. A Figura 13 ilustra um exemplo de compatibilidade bilateral. Na compatibilidade bilateral,
Petição 870190090180, de 11/09/2019, pág. 73/167
67/121 as informações de movimento para um bloco atual 1312 em um quadro atual 1302 podem ser derivadas, em que o quadro atual 1302 está sendo gerado para a conversão ascendente de taxa de quadro. Especificamente, uma trajetória de movimento contínua 1310 pode ser suposta entre um primeiro bloco 1314 em um primeiro quadro de referência (Quadro de Referência 0 1304) e um segundo bloco 1316 em um segundo quadro de referência (Quadro de Referência 11306). Um vetor de movimento MV0 1320 em relação ao Quadro de Referência 0 1304 pode ser determinado para o bloco atual 1312. Por exemplo, a posição do bloco atual no Quadro de Referência 0 1304, conforme determinado por um eixo geométrico ortogonal 1330 centralizado no bloco atual 1312, pode ser usado para determinar MV0 1320. Semelhantemente, um vetor de movimento MV1 1322 em relação ao Quadro de Referência 11306 pode ser determinado com o uso da posição do bloco atual em Quadro de Referência 11306, conforme dado pelo eixo geométrico ortogonal 1330. Devido ao fato de que a trajetória de movimento 1310 é supostamente contínua, MVO 1320 e MV1 1322 podem ser proporcionais às distâncias temporais (TD0 1332 e TD11334, respectivamente) entre o quadro atual 1302 e os dois quadros de referência 1304 e 1306. Por exemplo, MVO 1320 pode ser escalonado em TD0 1332, e MV1 pode ser escalonado com base em TD11334.
[0145] Em alguns casos, TD0 1332 e TD1 1334 podem ser iguais. Nesses casos, os resultados da compatibilidade bilateral podem ser iguais aos resultados da derivação de vetor de movimento bidirecional baseado em espelho. Em alguns casos, a compatibilidade bilateral pode ser usada para determinar o vetor de movimento inicial (o
Petição 870190090180, de 11/09/2019, pág. 74/167
68/121 vetor de movimento translacional) para a primeira iteração da derivação de movimento afim baseada em compatibilidade de modelo.
[0146] Em um codificador, independentemente do uso do modo de FRUC para uma CU pode-se basear em uma seleção de custo de distorção de taxa, conforme é feito, por exemplo, para um candidato de fusão normal. Ou seja, um custo de otimização de distorção de taxa (RDO) pode ser determinado para cada um dos dois modos de compatibilidade (por exemplo, compatibilidade bilateral e compatibilidade de modelo) para uma dada CU. O modo de compatibilidade que tem o menor custo pode ser adicionalmente comparado a outros modos de CU. Quando um modo de compatibilidade de FRUC tiver o menor custo, um marcador de FRUC pode ser definido para indicar a um dispositivo de decodificação que o modo de fusão de FRUC deve ser usado para uma CU. Adicionalmente, o modo de compatibilidade a ser usado também pode ser indicado no fluxo de bits (por exemplo, no PPS, SPS, VPS, em uma mensagem de SEI, ou semelhante). Por exemplo, o mesmo pode ser indicado no fluxo de bits que a compatibilidade de modelo de FRUC deve ser usada para determinar o vetor de movimento inicial afim para a primeira iteração da derivação de movimento afim baseada em compatibilidade de modelo. O dispositivo de decodificação pode, então, determinar, com base na indicação no fluxo de
bits (por exemplo, uma variável, marcador, ou < outro item de
sintaxe no PPS, SPS, VPS, em uma mensagem de SEI, ou
semelhante) .
[0147] Em alguns exemplos, um refino de
movimento baseado em fluxo óptico pode seguir a
Petição 870190090180, de 11/09/2019, pág. 75/167
69/121 compatibilidade de modelo de FRUC para obter um vetor de movimento translacional com uma precisão maior. Em alguns exemplos, o melhor vetor de movimento translacional pode ser diretamente usado como a semente de vetor de movimento inicial para a derivação de movimento afim.
[0148] Em alguns exemplos, se houver quaisquer blocos vizinhos que tenham um vetor de movimento afim, o vetor de movimento afim de um bloco vizinho pode ser usado como a semente de vetor de movimento inicial para a derivação de movimento afim. Por exemplo, o modo de fusão afim (AF_MERGE) descrito acima pode ser usado para determinar um vetor de movimento inicial para a derivação de movimento afim baseada em compatibilidade de modelo. Em alguns casos, uma distância (por exemplo, a SAD ou semelhante) pode ser determinada para o vetor de movimento translacional de compatibilidade de modelo (derivado pela compatibilidade de modelo de FRUC) e para o vetor de movimento afim (de bloco vizinho), e o vetor de movimento que tem a menor distância pode ser usado. Em alguns casos, o vetor de movimento afim do bloco vizinho pode ser diretamente usado como a semente de vetor de movimento inicial.
[0149] Em alguns casos, quando um operador invariante para rotação e/ou um invariante para escala estiver disponível (por exemplo, a partir de um subsistema de visão de computador a montante, a partir de um sub-bloco de pré-processamento a montante no mesmo pipeline de processamento de video, ou semelhante), as correspondências dos pontos-chave podem ser usada separa derivar os parâmetros afim. Em um exemplo ilustrativo, em um modelo
Petição 870190090180, de 11/09/2019, pág. 76/167
70/121 afim de 4 parâmetros ou um de 6 parâmetros, dois (por exemplo, para um de 4 parâmetros), três (por exemplo, para um de 6 parâmetros), ou mais pontos-chave correspondentes podem ser encontrados como os pontos característicos de Transformada de Característica Invariante a Escala (SIFT) na vizinhança local ou área de busca, e os parâmetros afim associados podem ser derivados com menos números de iterações quando toma-se o conjunto de parâmetros como um ponto inicial. O parâmetro de escala pode ser derivado com o uso da correspondência de dois pontos-chave.
[0150] Em algumas implantações, um modelo afim (por exemplo, um modelo afim de 4 parâmetros ou um modelo afim de 6 parâmetros) pode ser determinado com base nas informações codificadas anteriormente, como tamanho de bloco e tipo de quadro.
[0151] O vetor de movimento (por exemplo, um vetor de movimento translacional determinado com o uso de compatibilidade de modelo ou um vetor de movimento afim de um bloco vizinho) pode, então, ser usado como o vetor de movimento inicial para a busca de movimento afim. Voltandose para a Figura 11B, a semente de vetor de movimento inicial aponta para um determinado pixel na figuração de referência, que define onde no bloco de referência 1110 o modelo de referência 1112 estará localizado para uso por um dispositivo de decodificação. O dispositivo de decodificação pode, então, usar o modelo atual 1104 e o modelo de referência 1112 para realizar a derivação de movimento afim para o bloco atual 1102. Uma vez que a semente de vetor de movimento inicial for determinada, um método baseado em expansão de Taylor (como o método baseado
Petição 870190090180, de 11/09/2019, pág. 77/167
71/121 em expansão de Taylor descrito acima em relação às equações (2)-(6)) pode ser usado para solucionar o movimento afim com base no modelo afim atual 1104 e sua predição afim (representada pelo modelo afim de referência 1112). Em alguns casos, o movimento afim pode ser derivado iterativamente, conforme descrito mais abaixo. O número máximo de iterações pode ser predefinido ou sinalizado. Alternativa ou adicionalmente, o número de iterações pode depender do contexto, como o tamanho de modelo afim atual 1104 (ou bloco atual), da direção de predição (bipredição ou unipredição), ou qualquer outro fator adequado. Em alguns casos, um filtro de interpolação além daquele usado em processos de interpolação inter regular, como filtro de interpolação bilinear, pode ser usado para solucionar o movimento afim.
[0152] Conforme notado acima, uma vez que o vetor de movimento inicial é determinado, as equações (2) (6) descritas acima podem ser usadas para solucionar uma primeira iteração de parâmetros de movimento afim iteração inicial que usa a semente de vetor de movimento
Conforme descrito anteriormente, os parâmetros de movimento afim podem incluir os parâmetros a, b, c, d definidos como:
e d = vOy.
Após a primeira iteração ser realizada com um conjunto de parâmetros de movimento afim inicial (um conjunto inicial de valores a, b, c, d de um modelo de movimento inicial) um novo conjunto de parâmetros de movimento afim é determinado pela equação (6). Por exemplo, os valores conhecidos Vx illiC e da semente de vetor de movimento
Petição 870190090180, de 11/09/2019, pág. 78/167
72/121 inicial e a posição conhecida (x, y) do pixel ou sub-bloco (no bloco atual 1102) que se refere à semente de vetor de movimento inicial podem ser usados para determinar o conjunto de parâmetros de movimento afim inicial a, b, c, d com o uso de equações (4)-(6). Quando se deriva os parâmetros de movimento afim na primeira iteração, o modelo de movimento afim inicial pode ser usado para derivar o movimento por pixel para cada pixel (ou, em alguns casos, menos gue todos os pixels) no modelo afim atual 1104. Por exemplo, os valores a, b, c, d iniciais do modelo de movimento afim inicial podem ser inseridos nas equações (4) e (5), ou na equação equivalente (1), para determinar o vetor de movimento (definido por Vx e Vy) para cada pixel (no local (x, y) ) do modelo afim atual 1104. Um pixel de modelo de referência pode, então, estar localizado pelo vetor de movimento determinado para cada pixel no modelo atual 1104. Por exemplo, o dispositivo de decodificação pode localizar o pixel de referência para cada pixel f no modelo atual 1104 com o uso dos parâmetros de movimento afim determinados, em que; é o índice de pixel. Aqueles ji pixels de referência correspondentes U3 no bloco de referência 1110 formam o modelo de referência 1112. O dispositivo de decodificação terá, então, os pixels £ no it modelo atual 1104 e os pixels no modelo de referência
1112, e pode calcular o gradiente horizontal e o gradiente vertical ? para cada pixel no modelo de referência 1112. Conforme notado acima, i é o índice para
Petição 870190090180, de 11/09/2019, pág. 79/167
73/121 os pixels no modelo afim atual 1104 e o modelo afim de referência 1112. A equação (6) pode, então, ser usada para solucionar os parâmetros de movimento afim (a, b, c, d) para o bloco atual 1102. Por exemplo, o dispositivo de decodificação pode derivar os novos parâmetros de movimento afim com o uso da equação (6) e os valores conhecidos, incluindo os valores de pixel e locais (x, y) para os pixels e o gradiente vertical () , θ o gradiente /’í
Líii horizontal ( - ) (em que os gradientes vertical e horizontal representam o gradiente ao redor do pixel de referência ) .
[0153]
Cada iteração inclui realizar as equações (4)-(6). Por exemplo, as equações (4) e (5) podem ser usadas para localizar novos pixels de referência no modelo afim de referência 1112. Cada pixel dentro do modelo atual 1104 pode determinar seu pixel de referência /£ com o uso do modelo de movimento afim nessa iteração.
Todos os pixels de referência dos pixels no modelo atual 1104 formam o modelo de referência 1112, em cujo caso o modelo afim de referência 1112 pode não ter o mesmo formato (por exemplo, um formato em L) como o modelo afim atual 1104. Os pixels 'ε do modelo afim atual 1104 e os pixels έΰ do novo modelo afim de referência 1112 podem ser, então, usados para derivar novos parâmetros de movimento afim ao realizar a equação (6).
[0154]
Em um exemplo ilustrativo, para cada
Petição 870190090180, de 11/09/2019, pág. 80/167
74/121 iteração, o vetor de movimento por pixel (Vx, Vy) de cada pixel no modelo afim atual 1104 aponta para um pixel de jtreferência associado no modelo afim de referência 1112 (determinado com o uso de equações (4) e (5) e dos parâmetros de movimento afim de uma iteração anterior). Por exemplo, um pixel k no modelo afim atual 1104 e um pixel
L* de referencia associado k Q no modelo afim de referencia 1112 são referidos no presente documento como um par de pixels colocalizados. Para cada iteração, os pares de pixels colocalizados e o vetor de movimento correspondente estão relacionados com o uso das equações (4) e (5) juntamente com os parâmetros afim atualizados a partir de uma iteração anterior. Os pares atualizados de pixels /í colocalizados (após os novos pixels referenciados serem encontrados com o uso das equações (4) e (5)) podem, então, ser usados para solucionar novamente a equação (6) . Por exemplo, com o uso de um par de pixels colocalizados (um pixel do modelo afim atual 1104 e um pixel correspondente do modelo de referência 1112 localizado com o uso do modelo de movimento afim com os parâmetros derivados em uma iteração anterior), um outro conjunto de parâmetros de movimento afim (por exemplo, um outro conjunto de parâmetros a, b, c, d) pode ser derivado. Tal processo iterativo pode ser realizado um determinado número de vezes até que um limite máximo (por exemplo, um máximo de cinco iterações) é alcançado, ou até que todos os pixels no modelo afim atual 1104 tenham sido processados. Cada iteração da equação (6) resulta em um modelo de movimento
Petição 870190090180, de 11/09/2019, pág. 81/167
75/121 afim diferente que tem um conjunto diferente de parâmetros de movimento afim (valores de a, b, c, d diferentes para o bloco atual 1102) que podería ser usado como o modelo de movimento afim para o bloco atual 1102.
[0155] O melhor conjunto de parâmetros de movimento afim das iterações que foram realizadas (por exemplo, as cinco iterações ou outro número) pode ser selecionado como o modelo de movimento afim para o bloco atual 1102. Por exemplo, o melhor conjunto de parâmetros de movimento afim pode se basear em uma métrica de qualidade. Um exemplo ilustrativo de uma métrica de qualidade é uma soma da diferença absoluta (SAD) . SAD é uma medida da semelhança entre blocos de imagem, e pode ser calculada tomando-se a diferença absoluta entre cada pixel em um bloco original (por exemplo, os pixels no modelo afim atual 1104) e sendo que o pixel correspondente no bloco é usado para comparação (por exemplo, os pixels no modelo de referência 1112) . As diferenças podem ser somadas para criar uma métrica de semelhança de bloco. Em tal exemplo, o conjunto de parâmetros de movimento afim que resulta na métrica de SAD mínima pode ser selecionada como o modelo de movimento afim para o bloco atual 1102. Qualquer outra métrica de qualidade adequada pode ser usada, incluindo, mas sem limitação, uma soma de diferença transformada absoluta (SATD), um Erro Quadrático Médio (MSE), Erro Absoluto Médio (MAE), uma média de diferenças absolutas (MAD), Razão de Sinais de Pico para Ruído (PSNR), dentre outros.
[0156] A métrica de SAD pode ser definida como:
Petição 870190090180, de 11/09/2019, pág. 82/167
76/121 [0157] /?íf ~ . η , em que ν θ sao os pixels (com i, j sendo o local de coordenada de pixel) que são comparados no bloco atual (por exemplo, modelo afim atual 1104) e no bloco de referência (modelo afim de referência 1112), respectivamente, e N é o tamanho de um bloco Ν x N.
[0158]
Conforme mostrado na Figura 11B, ponto de controle 1106 é o ponto à esquerda de topo do modelo afim atual 1104, e o ponto de controle 1108 é o ponto à direita de topo do modelo afim atual 1104. Em alguns casos, os pontos à esquerda de topo e à direita de topo podem ser localizados nos pontos no modelo afim atual 1104 em que os pixels não estão localizados (por exemplo, em um canto esquerdo de topo distante e em um canto direito de topo distante do modelo 1104) . Em outros casos, os pontos à esquerda de topo e à direita de topo podem estar localizados em locais de pixel do modelo afim atual 1104 (por exemplo, um pixel esquerdo de topo e um pixel direito de topo do modelo 1104) . O conjunto de parâmetros de movimento do modelo de movimento afim que é determinado como ideal pelo dispositivo de decodificação (por exemplo, com base em uma métrica de SAD) define os vetores de movimento v0 e Vi para os pontos de controle 1106 e 1108. Os vetores de movimento v0 e vi dos dois pontos de controle 1106 e 1108 podem, então, ser usados para derivar o movimento de cada pixel ou de cada sub-bloco dentro do bloco atual 1102.
[0159]
A Figura 11C é um diagrama que ilustra
Petição 870190090180, de 11/09/2019, pág. 83/167
77/121 um movimento por sub-bloco determinado com base nos vetores de movimento v0 e vi dos dois pontos de controle 1106 e 1108. Conforme mostrado, o bloco atual 1102 é quebrado em um conjunto de 4 x 4 sub-blocos, com dezesseis sub-blocos totais (por exemplo, sub-bloco 1122) . Os vetores de movimento v0 e Vi dos pontos de controle 1106 e 1108 do modelo afim atual 1104 são usados para determinar o movimento de cada sub-bloco no bloco atual 1102. Em um exemplo ilustrativo, dados os vetores de movimento vq e v2 dos pontos de controle 1106 e 1108, a largura (w) do bloco atual 1102, e a posição (x, y) que representa um sub-bloco, a equação (1) pode ser usada para determinar o vetor de movimento (representado por Vx, Vy) do sub-bloco. Em um outro exemplo, dado os valores de a, b, c, d conhecidos do modelo de movimento afim selecionado e a posição (x, y) que representa o sub-bloco, as equações (4) e (5) podem ser usadas para determinar o vetor de movimento Vx, Vy do subbloco. Em alguns casos, a posição (x, y) no centro do subbloco, a posição (x, y) em um canto do sub-bloco, ou a posição (x, y) em algum outro local no sub-bloco podem ser usadas para representar o sub-bloco na equação (1) ou nas equações (4) e (5).
[0160] O deslocamento do bloco atual 1102 do modelo afim atual 1104 (conforme mostrado como 1120 na Figura 11A) pode ser levado em consideração quando se determina as coordenadas da posição (x, y) usadas para os pixels ou sub-blocos do bloco atual 1102. Por exemplo, se o bloco atual 1102 tem 16 pixels x 16 pixels, e o modelo atual 1104 tem quatro pixels em cada direção (por exemplo, quatro fileiras de pixels na porção de topo do modelo e
Petição 870190090180, de 11/09/2019, pág. 84/167
78/121 quatro colunas de pixels na porção à esquerda) , o pixel esquerdo de topo no sub-bloco esquerdo de topo do bloco atual 1102 pode ser em um local (4, 4) . Em um tal exemplo, o valor de (4, 4) pode ser usado como a posição (x, y) na equação (1) ou nas equações (4) e (5) quando se determina o vetor de movimento para o primeiro sub-bloco (no canto esquerdo de topo) do bloco atual 1102.
[0161] Conforme mostrado na Figura 11C, após o movimento afim (representado pelos vetores de movimento de ponto de controle v0 e vi) é derivado para o bloco atual 1102 baseado no modelo afim, o movimento afim pode ser mapeado para o movimento translacional para cada sub-bloco do bloco atual 1102 de acordo com a posição de cada subbloco. Por exemplo, após o vetor de movimento para cada sub-bloco ser derivado, esse vetor de movimento pode ser considerado como um vetor de movimento translacional. Em um exemplo ilustrativo, o mapeamento para um modelo afim de 4 parâmetros é Vx = a · x + b •y+ceVy = b · x— a · y + d, em que x e y indicam a posição de um sub-bloco (no centro ou no canto do sub-bloco). O movimento translacional pode ser considerado como o mesmo para todos os pixels dentro de um sub-bloco.
[0162] Em alguns exemplos, o tamanho de um sub-bloco e/ou o número de sub-blocos em um bloco atual pode ser predefinido. Por exemplo, o tamanho dos sub-blocos no bloco atual 1102 pode ser predefinido como 4 pixels x 4 pixels, ou um outro tamanho adequado. Em alguns exemplos, o tamanho dos sub-blocos e/ou o número de sub-blocos em um bloco atual pode ser sinalizado ou incluído de outro modo no fluxo de bits (por exemplo, no PPS, SPS, VPS, em uma
Petição 870190090180, de 11/09/2019, pág. 85/167
79/121 mensagem de SEI, ou semelhante). Em alguns exemplos, o tamanho de um sub-bloco pode ser adaptativamente alterado com base no tamanho do bloco atual. Em alguns exemplos, o tamanho de um sub-bloco pode ser o mesmo que aquele definido no modo de FRUC.
[0163] Em algumas implantações, para reduzir a complexidade, apenas conjuntos parciais dos pixels no modelo afim atual 1104 são usados para derivar o movimento afim para um bloco atual. O tamanho (por exemplo, número de fileiras de delimitação de topo e número de colunas de delimitação à esquerda) do modelo afim atual pode ser sinalizado no fluxo de bits (por exemplo, em um ou mais conjuntos de parâmetros, como o PPS, SPS, ou VPS) ou podem ser predefinidos. Qualquer número de pixels predefinido pode estar incluído no modelo afim atual (e no modelo afim de referência) . Em um exemplo ilustrativo, um modelo afim de 4 pixels pode ser usado, em cujo caso para um modelo com formato em L (por exemplo, o modelo afim atual 1104), o modelo afim pode incluir quatro fileiras de pixels na porção superior do modelo e quatro colunas de pixels na porção esquerda do modelo.
[0164] Em alguns exemplos, os vetores de movimento afim podem ser derivados ao minimizar o erro ponderado (ou distorção) entre a predição afim e pixels reconstruídos do modelo afim atual do bloco atual. Por exemplo, valores atípicos de predição afim e pixels reconstruídos do modelo afim podem ser removidos ou multiplicados por diferentes pesos durante a derivação. Tal remoção de valor atípico pode aprimorar a estabilidade de vetor de movimento derivação. Em um exemplo ilustrativo, o
Petição 870190090180, de 11/09/2019, pág. 86/167
80/121 dispositivo de decodificação pode derivar os vetores de movimento afim ao minimizar a distorção entre predição afim e pixels reconstruídos do modelo afim atual do bloco atual. Com base nos vetores de movimento derivados, o dispositivo de decodificação pode calcular o valor de distorção de cada pixel. De acordo com o valor de distorção, o decodificador pode atribuir diferentes pesos aos pixels e pode, então, derivar vetores de movimento novamente ao minimizar a distorção ponderada entre a predição afim e pixels reconstruídos do modelo afim do bloco atual.
[0165] Em alguns exemplos, um processo de filtração (por exemplo, um filtro passa-baixa, ou outro filtro adequado) pode ser aplicado ao modelo afim atual e/ou sua predição afim (incluindo o modelo afim de referência) para aprimorar a estabilidade de derivação.
[0166] Em alguns exemplos, para a bipredição ou predição de múltiplas hipóteses, o movimento afim pode ser derivado para cada hipótese separadamente ou em conjunto. Em alguns casos, quando se deriva o movimento afim separadamente, um modelo independente pode ser usado para cada hipótese. Por exemplo, no caso de duas hipóteses, dois modelos independentes TO e TI podem ser usados. Com base nos dois modelos TO e Tl, MVO e MV1 podem ser derivados. Em alguns casos, quando se deriva o movimento afim em conjunto, o modelo pode ser atualizado com base em um MV que já é derivado. Por exemplo, no caso de duas hipóteses, quando se deriva o segundo MV, o modelo Tl pode ser atualizado como T, de modo que Tl' = (2 * Tl Pred(MVO)), em que Pred(MVO) representa a predição com movimento MVO. Uma derivação de movimento afim iterativa
Petição 870190090180, de 11/09/2019, pág. 87/167
81/121 também pode ser permitida na derivação em conjunto.
[0167] 0 modo de derivação de movimento afim baseado em compatibilidade de modelo pode ser sinalizado (por exemplo, no PPS, SPS, VPS, em uma mensagem de SEI, ou semelhante) como um modo interpredição independente com um marcador ou outro item de sintaxe. Um item de sintaxe pode incluir uma variável, um marcador, um elemento de sintaxe, uma estrutura de sintaxe, ou outra parte adequada de um sintaxe incluída em um PPS, um SPS, um VPS, uma mensagem de SEI, ou semelhante. Em alguns casos, o modo de derivação de movimento afim baseado em compatibilidade de modelo pode ser sinalizado como modo especial de FRUC. Em alguns exemplos, o modo de derivação de movimento afim baseado em compatibilidade de modelo pode ser sinalizado e/ou usado apenas quando o modelo afim do bloco atual estiver disponível. Por exemplo, em alguns casos, o modelo com formato em L (ou outro modelo adequadamente conformado) pode ser considerado como disponível apenas quando tanto os blocos reconstruídos de topo e esquerdo estiverem disponíveis. Em alguns casos, quando sinalizado como um modo especial de FRUC, a binarização ilustrada na Tabela 1 abaixo pode ser usada quando todos os modos de FRUC estiverem disponíveis para seleção:
Binarização
0 FRUC inativa
11 compatibilidade bilateral de FRUC
101 modelo afim de FRUC (derivação de movimento afim baseada em compatibilidade de modelo)
100 compatibilidade de modelo de FRUC
TABELA 1
Petição 870190090180, de 11/09/2019, pág. 88/167
82/121 [0168] Em um exemplo ilustrativo, o contexto do terceiro bin (em relação à derivação de movimento afim baseada em compatibilidade de modelo) da Tabela 1 acima pode ser definido como 0 se nenhum dos vizinhos acima ou à esquerda em um modo afim (modo de AF_MERGE, modo de AF_INTER, modo FRUC TEMPLATE AFFINE) , 1 se os vizinhos acima ou à esquerda estiverem em um modo afim, e 2 se tanto os vizinhos acima e à esquerda estiverem em um modo afim. O modo afim, no presente documento, inclui, mas sem limitação, modo interafim regular, modo de fusão afim, e modelo afim (derivação de movimento afim baseada em compatibilidade de modelo).
[0169] Em alguns exemplos, o movimento afim (v0 e vi) derivado com o uso das técnicas descritas acima pode ser usado como o preditor de vetor de movimento (MVP) para modos interafim convencionais (por exemplo, modo AF_INTER ou modo de AF_MERGE) . Por exemplo, para os modos afins convencionais, pelo menos um preditor de movimento afim pode ser derivado no lado do decodificador do mesmo modo que o descrito acima. Em alguns casos, um modelo afim de 4 parâmetros é usado para derivar o preditor de movimento afim quando o bloco for sinalizado para usar o modelo afim de 4 parâmetros. Por exemplo, no modo interafim (AF_INTER) , uma diferença de vetor de movimento (MVD) pode ser sinalizada para o dispositivo de decodificação (por
exemplo, em um PPS, SPS, VPS, mensagem de SEI, ou
semelhante). A MVD pode incluir uma diferença entre um
preditor (por exemplo, um vetor de movimento de blocos A,
B, ou C usado como um preditor para sub-bloco 910 na Figura
9) e um vetor de movimento de ponto de controle (por
Petição 870190090180, de 11/09/2019, pág. 89/167
83/121 exemplo, o vetor de movimento do sub-bloco 910) . A MVD pode, então, ser adicionada a um preditor de vetor de movimento (MVP) por um dispositivo de decodificação para determinar os vetores de movimento de ponto de controle v0 e Vi. 0 modelo afim pode ser usado para gerar o MVP. Por exemplo, o dispositivo de decodificação pode derivar a, b, c, d com o uso do modelo afim atual e o modelo afim de referência, conforme descrito acima (por exemplo, com o uso do conjunto de parâmetros de movimento afim ideal). Os parâmetros de movimento a, b, c, d definem o vetor de movimento dos pontos de controle vo e vi. Esses vetores de movimento derivados podem ser usados como o MVP para subblocos 10 e 12. Por exemplo, o vetor de movimento Vo pode ser usado como o MVP para o sub-bloco 910, e o vetor de movimento Vi pode ser usado como o MVP para o sub-bloco 12. Os MVPs podem, então, ser adicionados à MVD correspondente.
[0170] Em alguns exemplos, a derivação de informações de movimento afim no lado do decodificador pode ser diretamente realizado nos blocos de pixels reconstruídos. Em um exemplo, após a figuração ser reconstruída (por exemplo, após um filtro em laço), a figuração é dividida em blocos e a derivação de movimento afim baseada em compatibilidade de modelo, conforme descrito acima, é, então, aplicada a cada bloco para derivar o movimento afim. As informações de movimento derivadas podem, então, ser usadas para a predição de vetor de movimento.
[0171] Em alguns exemplos, para reduzir a complexidade, algumas ferramentas de criptografia podem ser restringidas quando o modelo modo afim for usado. Tais
Petição 870190090180, de 11/09/2019, pág. 90/167
84/121 restrições podem ser predefinidas ou sinalizadas em fluxos de bits. Em um exemplo ilustrativo, BIO pode não ser aplicado para um bloco quando a derivação de movimento afim de compatibilidade de modelo for usada para o bloco. Em um outro exemplo ilustrativo, a compensação de iluminação (IC) pode não ser aplicada para um bloco quando a derivação de movimento afim baseada em compatibilidade de modelo for usada para o bloco.
[0172] A Figura 14 é um fluxograma que ilustra um exemplo de um processo 1400 para derivar um ou mais conjuntos de parâmetros de movimento afim em um decodificador que usa as técnicas descritas no presente documento. No bloco 1402, o processo 1400 inclui obter, através do decodificador, dados de vídeo de um fluxo de dados de vídeo codificados. Os dados de vídeo incluem pelo menos uma figuração atual e uma figuração de referência. A figuração atual inclui uma figuração que está sendo atualmente decodificada. Em alguns exemplos, a figuração de referência pode ser identificada com o uso de uma lista ou índice de figuração de referência (por exemplo, uma lista de figuração de referência 0 (RefPicList0)) . Em alguns casos, múltiplas figurações de referência podem ser acessadas para a figuração atual, em cujo caso o processo 1400 pode ser realizado com o uso de mais de uma figuração de referência. Por exemplo, uma lista de figuração de
referência 0 ( RefPicList0) e uma lista de figuração de
referência 1 (RefPicList1 ) podem indicar que duas
figurações de referência < sstão associadas à figuração
atual.
;0173 ] No bloco 1404, o processo 1400 inclui
Petição 870190090180, de 11/09/2019, pág. 91/167
85/121 determinar, através do decodificador, um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. 0 conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. 0 conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência. Com o uso da abordagem baseada em modelo, o conjunto de parâmetros afim pode ser determinado através do decodificador com o uso do processo do lado do decodificador sem usar qualquer movimento afim sinalizado no fluxo de bits. Por exemplo, nenhum parâmetro de movimento afim é decodificado a partir do fluxo de dados de video codificados para determinar o conjunto de parâmetros de movimento afim. Em alguns casos, os parâmetros de movimento afim não estão incluídos no fluxo de bits.
[0174] Em alguns casos, o processo 1400 pode determinar o conjunto de parâmetros de movimento afim ao obter, através do decodificador, um conjunto de parâmetros de movimento afim inicial. O conjunto de parâmetros de movimento afim inicial pode ser determinado com o uso de qualquer técnica adequada. Em um exemplo ilustrativo, o conjunto de parâmetros de movimento afim inicial pode ser determinado com base em um vetor de movimento translacional determinado para o bloco atual. Em alguns casos, o vetor de movimento translacional pode ser determinado com o uso de qualquer técnica adequada, como um modo de compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC) ou outra técnica adequada. Em um outro exemplo ilustrativo, o conjunto de parâmetros de movimento afim inicial pode ser
Petição 870190090180, de 11/09/2019, pág. 92/167
86/121 determinado com base em um vetor de movimento afim de um bloco vizinho do bloco atual. Por exemplo, o vetor de movimento afim de um bloco vizinho pode ser usado como a semente de vetor de movimento inicial para a derivação de movimento afim do bloco atual. Em um exemplo ilustrativo, o modo de fusão afim (AF_MERGE) descrito acima pode ser usado para determinar o vetor de movimento afim que pode ser usado como o vetor de movimento inicial.
[0175] O processo 1400 pode determinar o conjunto de parâmetros de movimento afim ao derivar adicionalmente, através do decodificador, um ou mais vetores de movimento afim para um ou mais pixels no modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial. O modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual. Um exemplo do modelo afim atual é mostrado na Figura 11A, na Figura 11B e na Figura 11C. O processo 1400 pode, então, determinar, através do decodificador, um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual. O processo 1400 pode minimizar adicionalmente, através do decodificador, um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim. O processo 1400 pode, então, determinar, através do decodificador, o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e
Petição 870190090180, de 11/09/2019, pág. 93/167
87/121 o um ou mais pixels no modelo afim de referência. Tal processo para determinar o conjunto de parâmetros de movimento afim pode ser realizado, por exemplo, com o uso das equações (3)-(6).
[0176] Em alguns exemplos, o processo 1400 pode determinar o conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual ao determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim. Por exemplo, as equações (4)-(6) podem ser realizadas iterativamente, conforme descrito acima, para determinar múltiplos conjuntos de parâmetros de movimento afim. O processo 1400 pode determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim. Em alguns exemplos, a métrica de qualidade inclui uma soma de diferenças absolutas (SAD) . O processo 1400 pode, então, selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem a menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim. Conforme mostrado na Figura 11 A, na Figura 11B, e na Figura 11C, dois pontos de controle podem ser definidos para o bloco atual.
[0177] O processo 1400 pode determinar vetores de movimento para uma ou mais amostras do bloco atual com
Petição 870190090180, de 11/09/2019, pág. 94/167
88/121 base no conjunto de parâmetros de movimento determinados para o um ou mais pontos de controle do modelo afim atual. Por exemplo, o processo 1400 pode determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinados para o bloco atual. Um exemplo de sub-blocos de um bloco atual são mostrados na Figura 11C. Em alguns exemplos, em vez de determinar vetores de movimento para sub-blocos, o processo 1400 pode determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinados para o bloco atual.
[0178] Em alguns exemplos, o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual. Em alguns casos, as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo. Por exemplo, o exemplo mostrado na Figura 11A inclui um modelo afim atual 1104 que inclui amostras de um bloco vizinho de topo (um bloco vizinho para o topo do bloco atual) e amostras de um bloco vizinho esquerdo (um bloco vizinho para a esquerda do bloco atual). Em alguns exemplos, o modelo afim atual inclui um bloco com formato em L. 0 bloco com formato em L pode incluir amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual (conforme mostrado na Figura 11A) . Em outros exemplos, o modelo afim atual pode incluir amostras de um bloco vizinho direito e/ou um bloco vizinho direito.
[0179] A Figura 15 é um fluxograma que ilustra
Petição 870190090180, de 11/09/2019, pág. 95/167
89/121 um exemplo de um processo 1500 para codificar dados de video que usam as técnicas descritas no presente documento. No bloco 1502, o processo 1500 inclui obter dados de video. Os dados de video incluem pelo menos uma figuração atual e uma figuração de referência. A figuração atual inclui uma figuração que está sendo atualmente codificada (ou decodificada em um circuito inverso do codificador). Em alguns exemplos, a figuração de referência pode ser identificada com o uso de uma lista ou índice de figuração de referência (por exemplo, uma lista de figuração de referência 0 (RefPicList0)) . Em alguns casos, múltiplas figurações de referência podem ser usadas para criptografar a figuração atual, em cujo caso o processo 1500 pode ser
realizado com o uso de mais de uma figuração de referência.
Por exemplo, uma lista de figuração de referência 0
(RefPicList0) e uma lista de figuração de referência 1
(RefPicList1) podem indicar que duas figurações de
referência estão associadas à figuração atual.
[0180] No bloco 1504, o processo 1500 inclui determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual. O conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual. O conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
[0181] No bloco 1506, o processo 1500 inclui gerar um fluxo de dados de vídeo codificados. O fluxo de dados de vídeo codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em
Petição 870190090180, de 11/09/2019, pág. 96/167
90/121 compatibilidade de modelo deve ser usado por um decodificador para o bloco atual. O item de sintaxe pode incluir um elemento de sintaxe, uma estrutura de sintaxe, uma variável, um marcador, ou semelhante, e pode estar incluído em um PPS, um SPS, um VPS, uma mensagem de SEI, ou outra parte do fluxo de dados de vídeo codificados. O fluxo de dados de vídeo codificados não inclui quaisquer parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim. Por exemplo, com o uso da abordagem baseada em modelo, o conjunto de parâmetros afim pode ser determinado através do decodificador com o uso de um processo do lado do decodif icador sem usar qualquer movimento afim sinalizado no fluxo de dados de vídeo codificados. Por exemplo, nenhum parâmetro de movimento afim é decodificado a partir do fluxo de dados de vídeo codificados para determinar o conjunto de parâmetros de movimento afim.
[0182] Em alguns casos, o processo 1500 pode determinar o conjunto de parâmetros de movimento afim ao obter uma conjunto de parâmetros de movimento afim inicial. O conjunto de parâmetros de movimento afim inicial pode ser determinado com o uso de qualquer técnica adequada. Em um exemplo ilustrativo, o conjunto de parâmetros de movimento afim inicial pode ser determinado com base em um vetor de movimento translacional determinado para o bloco atual. Em alguns casos, o vetor de movimento translacional pode ser determinado com o uso de qualquer técnica adequada, como um modo de compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC) ou outra técnica adequada. Em um outro exemplo ilustrativo, o conjunto de parâmetros de
Petição 870190090180, de 11/09/2019, pág. 97/167
91/121 movimento afim inicial pode ser determinado com base em um vetor de movimento afim de um bloco vizinho do bloco atual. Por exemplo, o vetor de movimento afim de um bloco vizinho pode ser usado como a semente de vetor de movimento inicial para a derivação de movimento afim do bloco atual. Em um exemplo ilustrativo, o modo de fusão afim (AF_MERGE) descrito acima pode ser usado para determinar o vetor de movimento afim que pode ser usado como o vetor de movimento inicial.
[0183] O processo 1500 pode determinar o conjunto de parâmetros de movimento afim ao derivar adicionalmente um ou mais vetores de movimento afim para um ou mais pixels no modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial. O modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual. Um exemplo do modelo afim atual é mostrado na Figura 11 A, na Figura 11B e na Figura 11C. O processo 1500 pode, então, determinar um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual. O processo 1500 pode minimizar adicionalmente um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim. 0 processo 1500 pode, então, determinar o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim atual baseado no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência. Tal
Petição 870190090180, de 11/09/2019, pág. 98/167
92/121 processo para determinar o conjunto de parâmetros de movimento afim pode ser realizado, por exemplo, com o uso das equações (3)-(6).
[0184] Em alguns exemplos, o processo 1500 pode determinar o conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual ao determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim. Por exemplo, as equações (4)-(6) podem ser realizadas iterativamente, conforme descrito acima, para determinar múltiplos conjuntos de parâmetros de movimento afim. O processo 1500 pode determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim. Em alguns exemplos, a métrica de qualidade inclui uma soma de diferenças absolutas (SAD) . O processo 1500 pode, então, selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem a menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim. Conforme mostrado na Figura 11 A, na Figura 11B e na Figura 11C, dois pontos de controle podem ser definidos para o bloco atual.
[0185] O processo 1500 pode determinar vetores de movimento para uma ou mais amostras do bloco atual com base no conjunto de parâmetros de movimento determinados
Petição 870190090180, de 11/09/2019, pág. 99/167
93/121 para o um ou mais pontos de controle do modelo afim atual. Por exemplo, o processo 1500 pode determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinados para o bloco atual. Um exemplo de sub-blocos de um bloco atual são mostrados na Figura 11C. Em alguns exemplos, em vez de determinar vetores de movimento para sub-blocos, o processo 1500 pode determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinados para o bloco atual.
[0186] Em alguns exemplos, o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual. Em alguns casos, as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo. Por exemplo, o exemplo mostrado na Figura 11A inclui um modelo afim atual 1104 que inclui amostras de um bloco vizinho de topo (um bloco vizinho para o topo do bloco atual) e amostras de um bloco vizinho esquerdo (um bloco vizinho para a esquerda do bloco atual). Em alguns exemplos, o modelo afim atual inclui um bloco com formato em L. 0 bloco com formato em L pode incluir amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual (conforme mostrado na Figura 11A) . Em outros exemplos, o modelo afim atual pode incluir amostras de um bloco vizinho direito e/ou um bloco vizinho direito.
[0187] Em alguns exemplos, o processo 1500 pode armazenar o fluxo de dados de video codificados. Em
Petição 870190090180, de 11/09/2019, pág. 100/167
94/121 alguns casos, um processador de um codificador que realiza o processo 1500 ou um aparelho (por exemplo, um dispositivo móvel, ou outro dispositivo adequado) que compreende o codificador pode armazenar o fluxo de dados de video codificados em uma memória do codificador ou em uma memória do aparelho que compreende o codificador. Em alguns exemplos, o processo 1500 pode transmitir o fluxo de dados de video codificados.
[0188] Em alguns exemplos, os processos 1400 e 1500 podem ser realizados por um dispositivo ou um aparelho de computação, como o dispositivo de codificação 104, o dispositivo de decodificação 112, ou qualquer outro dispositivo de computação. Por exemplo, o processo 1400 pode ser realizado pelo dispositivo de decodificação 112, e o processo 1500 pode ser realizado pelo dispositivo de codificação 104. Em alguns casos, o dispositivo ou aparelho de computação pode incluir um processador, microprocessador, microcomputador, ou outros componentes de um dispositivo que é configurado para realizar as etapas dos processos 1400 e 1500. Em alguns exemplos, o dispositivo de computação ou aparelho pode incluir uma câmera configurado para capturar dados de video (por exemplo, uma sequência de video) incluindo quadros de video. Por exemplo, o dispositivo de computação pode incluir um dispositivo de câmera, que pode ou não incluir um codec de video. Como um outro exemplo, o dispositivo de computação pode incluir um dispositivo móvel com uma câmera (por exemplo, um dispositivo de câmera como uma câmera digital, uma câmera de IP ou semelhante, um telefone móvel ou computador do tipo tablet que inclui uma câmera, ou
Petição 870190090180, de 11/09/2019, pág. 101/167
95/121 outro tipo de dispositivo com uma câmera). Em alguns casos, o dispositivo de computação pode incluir um visor para exibir imagens. Em alguns exemplos, uma câmera ou outro dispositivo de captura que captura os dados de vídeo é separada do dispositivo de computação, em cujo caso o dispositivo de computação recebe os dados de vídeo capturados. 0 dispositivo de computação pode incluir adicionalmente uma interface de rede, transceptor, e/ou transmissor configurado para comunicar os dados de vídeo. A interface de rede, transceptor, e/ou transmissor pode ser configurado para comunicar dados baseados de Protocolo de Internet (IP) ou outros dados de rede.
[0189] Os processos 1400 e 1500 são ilustrados como um diagrama de fluxo lógico, cuja operação representa uma sequência de operações que pode ser implantada em hardware, instruções de computador ou uma combinação dos mesmos. No contexto de instruções de computador, as operações representam instruções executáveis por computador armazenadas em uma ou mais mídias de armazenamento legível por computador que, quando executadas por um ou mais processadores, realizam as operações citadas. Em geral, as instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e semelhantes que realizam funções ou implantar tipos de dados específicos. A ordem em que as operações são descritas não se destina a ser construída como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo para implantar os processos.
[0190] Adicionalmente, os processos 1400 e
Petição 870190090180, de 11/09/2019, pág. 102/167
96/121
1500 podem ser realizados sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e podem ser implantados como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou um ou mais aplicativos) que executam coletivamente em um ou mais processadores, por hardware, ou combinações dos mesmos. Conforme notado acima, o código pode ser armazenado em um meio de armazenamento legível por computador ou legível por máquina, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0191] As técnicas de criptografia discutidas no presente documento podem ser implantadas em um sistema de codificação e decodificação de vídeo exemplificativo (por exemplo, sistema 100) . Em alguns exemplos, um sistema inclui um dispositivo de fonte que fornece dados de vídeo codificados a serem decodificados em um momento posterior por um dispositivo de destino. Em particular, o dispositivo de fonte fornece os dados de vídeo para o dispositivo de destino por meio de um meio legível por computador. O dispositivo de fonte e o dispositivo de destino podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (isto é, laptop), computadores do tipo tablet, decodificadores de sinais, fones de telefones como os denominados telefones inteligentes, os denominados pads inteligentes, televisões, câmeras, dispositivos de exibição, reprodutores
Petição 870190090180, de 11/09/2019, pág. 103/167
97/121 de mídia digital, consoles de videogame, dispositivo de fluxo de vídeo ou semelhantes. Em alguns casos, ο dispositivo de fonte e o dispositivo de destino podem ser equipados para comunicação sem fio.
[0192] O dispositivo de destino pode receber os dados de vídeo codificados para serem decodificados por meio do meio legível por computador. O meio legível por computador pode compreender qualquer tipo de meio ou dispositivo com capacidade de mover os dados de vídeo codificados do digitar de fonte para o dispositivo de destino. Em um exemplo, o meio legível por computador pode compreender um meio de comunicação para possibilitar que o dispositivo de fonte transmita dados de vídeo codificados diretamente para o dispositivo de destino em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode formar parte de uma rede baseada em pacote, como uma rede de área local, uma rede de área ampla ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estaçõesbase ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de fonte para o dispositivo de destino.
[0193] Em alguns exemplos, os dados codificados podem ser emitidos da interface de saída para um dispositivo de armazenamento. Semelhantemente, os dados
Petição 870190090180, de 11/09/2019, pág. 104/167
98/121 codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. 0 dispositivo de armazenamento pode incluir qualquer uma dentre uma variedade de mídia de armazenamento de dados distribuída ou localmente acessada como um disco rígido, discos de Bluray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou um outro dispositivo de armazenamento intermediário que possa armazenar o vídeo codificado gerado pelo dispositivo de fonte. 0 dispositivo de destino pode acessar dados de vídeo armazenados do dispositivo de armazenamento por meio de fluxo ou download. 0 servidor de arquivos pode ser qualquer tipo de servidor com capacidade de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino. Os servidores de arquivos exemplificativos incluem um servidor web (por exemplo, para um site da web) , um servidor FTP, dispositivos de armazenamento fixado em rede (NAS) ou uma unidade de disco local. 0 dispositivo de destino pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Esse pode incluir um canal sem fio (por exemplo, uma conexão de WiFi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode
Petição 870190090180, de 11/09/2019, pág. 105/167
99/121 ser uma transmissão por fluxo, uma transmissão por download ou uma combinação dos mesmos.
[0194] As técnicas desta revelação não se limitam necessariamente às aplicações ou configurações sem fio. As técnicas podem ser aplicadas à criptografia de video em relação à qualquer uma dentre uma variedade de aplicações de multimídia, como difusões por televisão aberta, transmissões por televisão a cabo, transmissões por televisão via satélite, transmissões de video por fluxo continuo pela Internet, como fluxo continuo adaptativo dinâmico (DASH), video digital que é codificado em um meio de armazenamento de dados, decodificação de video digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema pode ser configurado para suportar a transmissão de video unidirecional ou bidirecional para suportar aplicações como fluxo de video, reprodução de video, difusão de video, e/ou telefonia por video.
[0195] Em um exemplo, o dispositivo de fonte inclui uma fonte de video, um codificador de video e uma interface de saida. O dispositivo de destino pode incluir uma Qnterface de entrada, um decodificador de video e um dispositivo de exibição. O codificador de video do dispositivo de fonte pode ser configurado para aplicar as técnicas reveladas no presente documento. Em outros exemplos, um dispositivo de fonte e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de fonte pode receber dados de video de uma fonte de video externa, como uma câmera externa. Igualmente, o dispositivo de destino pode fazer
Petição 870190090180, de 11/09/2019, pág. 106/167
100/121 interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0196] 0 sistema exemplificativo acima é meramente um exemplo. As técnicas para processar dados de vídeo em paralelo podem ser realizadas por meio de qualquer dispositivo de codificação e/ou de decodificação de vídeo digital. Embora, em geral, as técnicas desta revelação sejam realizadas por um dispositivo de codificação de vídeo, as técnicas também podem ser realizadas por um codificador/decodificador de vídeo, tipicamente referido como um CODEC. Além do mais, as técnicas desta revelação também podem ser realizadas por meio de um processador de vídeo. O dispositivo de fonte e o dispositivo de destino são meramente exemplos de tais dispositivos de criptografia nos quais o dispositivo de fonte gera dados de vídeo criptografados para transmissão para o dispositivo de destino. Em alguns exemplos, os dispositivos de fonte e destino podem operar de uma maneira substancialmente simétrica de modo que cada um dos dispositivos inclua componentes de codificação e decodificação de vídeo. Por isso, os sistemas exemplificativos podem suportar a transmissão de vídeo de uma via ou de duas vias entre dispositivos de vídeos, por exemplo, para a transmissão por fluxo contínuo de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia por vídeo.
[0197] A fonte de vídeo pode incluir um dispositivo de captura de vídeo, como uma câmera de vídeo, um arquivo de vídeo que contém vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como uma
Petição 870190090180, de 11/09/2019, pág. 107/167
101/121 alternativa adicional, a fonte de vídeo pode gerar dados baseados em gráficos de computador como o vídeo de fonte, ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado em computador. Em alguns casos, se a fonte de vídeo for uma câmera de vídeo, o dispositivo de fonte e o dispositivo de destino podem formar os denominados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, as técnicas descritas nesta revelação podem ser aplicáveis à criptografia de vídeo em geral, e podem ser aplicadas às aplicações sem fio e/ou com fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo. As informações de vídeo codificadas pode, então, ser emitidas pela interface de saída para o meio legível por computador.
[0198] Conforme notado, o meio legível por computador pode incluir mídia transiente, como uma difusão sem fio ou transmissão de rede com fio, ou mídia de armazenamento (ou seja, mídia de armazenamento não transitória), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco do tipo Blu-ray ou outra mídia legível por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados do dispositivo de fonte e fornecer os dados de vídeo codificados para o dispositivo de destino, por exemplo, por meio de transmissão de rede. Semelhantemente, um dispositivo de computação de uma instalação de produção de meio, como uma instalação de estamparia de disco, pode receber dados de vídeo codificados do dispositivo de fonte e produzir um disco que contém os dados de vídeo
Petição 870190090180, de 11/09/2019, pág. 108/167
102/121 codificados. Portanto, o meio legível por computador pode ser compreendido para incluir uma ou mais mídias legível por computador de várias formas, em vários exemplos.
[0199] A Qnterface de entrada do dispositivo de destino recebe informações do meio legível por computador. As informações de meio legível por computador podem incluir informações de sintaxe definidas pelo codificador de vídeo, que também é usado pelo decodificador de vídeo, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupo de figurações (GOP) . Um dispositivo de exibição exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição como um tubo de raio de catodo (CRT), um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo emissor de luz orgânico (OLED) ou um outro tipo de dispositivo de exibição. Várias modalidades do pedido foram descritas.
[0200] Detalhes específicos do dispositivo de codificação 104 e do dispositivo de decodificação 112 são mostrados na Figura 16 e a Figura 17, respectivamente. A Figura 16 é um diagrama em blocos que ilustra um dispositivo de codificação 104 exemplificative que pode implantar uma ou mais das técnicas descritas nesta revelação. O dispositivo de codificação 104 pode, por exemplo, gerar as estruturas de sintaxe descritas no presente documento (por exemplo, as estruturas de sintaxe de um VPS, SPS, PPS, ou outros elementos de sintaxe) . O dispositivo de codificação 104 pode realizar a criptografia intrapredição e interpredição de blocos de vídeo dentro das
Petição 870190090180, de 11/09/2019, pág. 109/167
103/121 fatias de video. Conforme descrito anteriormente, a intracriptografia conta, pelo menos em parte, com a predição espacial para reduzir ou remover a redundância espacial dentro de um dado quadro de video ou figuração. A intercriptografia conta, pelo menos em parte, com a predição temporal para reduzir ou remover a redundância temporal dentro de quadros adjacentes ou circundantes de uma sequência de video. O intramodo (modo I) pode se referir a qualquer um dentre diversos modos de compactação com base espacial. Os Intermodos, como predição unidirecional (modo P) ou bipredição (modo B) , podem se referir a qualquer um dentre os diversos modos de compactação com base temporal.
[0201] O dispositivo de codificação 104 inclui uma unidade de partição 35, unidade de processamento de predição 41, unidade de filtro 63, memória de figuração 64, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, e unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui unidade de estimativa de movimento 42, unidade de compensação de movimento 44, e unidade de processamento de intrapredição 46. Para a reconstrução de bloco de video, o dispositivo de codificação 104 também inclui unidade de quantização inversa 58, unidade de processamento de transformada inversa 60 e somador 62. A unidade de filtro 63 é destinada a representar um ou mais filtros de loop como um filtro de desbloqueio, um filtro de loop adaptativo (ALF), e um filtro de deslocamento adaptativo de amostra (SAO) . Embora a unidade de filtro 63 seja mostrada na Figura 16 como sendo um filtro de loop, em outras
Petição 870190090180, de 11/09/2019, pág. 110/167
104/121 configurações, a unidade de filtro 63 pode ser implantada como um filtro de pós-loop. Um dispositivo de pósprocessamento 57 pode realizar processamento adicional em dados de vídeo codificados gerados pelo dispositivo de codificação 104. As técnicas desta revelação, em alguns casos, podem ser implantadas pelo dispositivo de codificação 104. Em outros casos, no entanto, uma ou mais das técnicas desta revelação podem ser implantadas pelo
dispositivo de pós-processamento 57.
[0202 ] Conforme mostrado na Figura 16, o
dispositivo de codificação 104 recebe dados de vídeo, e a
unidade de partição 35 particiona os dados em blocos de
vídeo. A partição pode incluir também a partição em fatias, segmentos de fatia, peças ou outras unidades maiores, assim como a partição de bloco de vídeo, por exemplo, de acordo com uma estrutura de árvore quaternária de LCUs e CUs. O dispositivo de codificação 104 ilustra, em geral, os componentes que codificam os blocos de vídeo em uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como peças). A unidade de processamento de predição 41 pode selecionar um dentre uma pluralidade de modos de criptografia possíveis, como um dentre uma pluralidade de modos de criptografia intrapredição ou um dentre uma pluralidade de modos de criptografia interpredição, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, taxa de criptografia e o nível de distorção ou semelhantes). A unidade de processamento de predição 41 pode fornecer o bloco infra ou intercriptografado resultante ao somador 50
Petição 870190090180, de 11/09/2019, pág. 111/167
105/121 para gerar dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso como uma figuração de referência.
[0203] A unidade de processamento de intrapredição 46 na unidade de processamento de predição 41 pode realizar a criptografia intrapredição do bloco de video atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco atual a ser criptografado para fornecer compactação espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 na unidade de processamento de predição 41 realizam a criptografia interpreditiva do bloco de video atual em relação a um ou mais blocos preditivos em uma ou mais figurações de referência para fornecer compactação temporal.
[0204] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interpredição para uma fatia de video de acordo com um padrão predeterminado para uma sequência de video. 0 padrão predeterminado pode designar as fatias de video na sequência como fatias P, fatias B ou fatias GPB. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento realizada pela unidade de estimativa de movimento 42 é o processo de gerar vetores de movimento, que estima o movimento para blocos de video. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma unidade de predição (PU) de um bloco de video em um quadro de video atual ou figuração em relação a
Petição 870190090180, de 11/09/2019, pág. 112/167
106/121 um bloco preditivo em uma figuração de referência.
[0205] Um bloco preditivo é um bloco que é encontrado para ser muito compatível com a PU do bloco de vídeo a ser criptografado, em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. Em alguns exemplos, o dispositivo de codificação 104 pode calcular valores para posições de pixel de número subinteiro de figurações de referência armazenados na memória de figuração 64. Por exemplo, o dispositivo de codificação 104 pode interpolar valores de posições de pixel de um quarto, posições de pixel de um oitavo ou outras posições de pixel fracional da figuração de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel total e posições de pixel fracional e emitir um vetor de movimento com precisão de pixel fracional.
[0206] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercriptografada ao comparar a posição da PU com a posição de um bloco preditivo de uma figuração de referência. A figuração de referência pode ser selecionada a partir de uma primeira lista de figuração de referência (Lista 0) ou uma segunda lista de figuração de referência (Lista 1), cada uma das quais identifica uma ou mais figurações de referência armazenadas na memória de figuração 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de
Petição 870190090180, de 11/09/2019, pág. 113/167
107/121 movimento 44.
[0207] A compensação de movimento, realizado pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimativa de movimento, possivelmente a realização de interpolação para precisão de subpixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de figuração de referência. O dispositivo de codificação 104 forma um bloco de vídeo residual ao subtrair os valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que é criptografado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir tanto componentes de diferença de luma quanto de croma. O somador 50 representa o componente ou os componentes que realizam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo dispositivo de decodificação 112 na decodificação dos blocos de vídeo da fatia de vídeo.
[0208] A unidade de processamento de intrapredição 46 pode intrapredizer um bloco atual, como uma alternativa para a interpredição realizada pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de processamento de intrapredição 46 pode determinar um modo intrapredição para usar para codificar um bloco atual. Em alguns exemplos, a unidade de
Petição 870190090180, de 11/09/2019, pág. 114/167
108/121 processamento de intrapredição 46 pode codificar um bloco atual com o uso de vários modos de intrapredição, por exemplo, durante os passes de codificação separados, e a unidade de processamento de intrapredição 46 pode selecionar um modo de intrapredição adequado para o uso a partir dos modos testados. Por exemplo, a unidade de processamento de intrapredição 46 pode calcular os valores de taxa-distorção com o uso de uma análise de taxa e distorção para os vários modos de intrapredição testados, e pode selecionar o modo de intrapredição que tem as melhores características de taxa e distorção dentre os modos testados. A análise de distorção de taxa determina, em geral, uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificado original gue foi codificado para produzir o bloco codificado, assim como uma taxa de bits (ou seja, um número de bits) usada para produzir o bloco codificado. A unidade de processamento de intrapredição 46 pode calcular razões a partir das distorções e das taxas para os vários blocos codificados para determinar qual modo de intrapredição exibe o melhor valor de taxa e para o bloco.
[0209] Em qualquer caso, após selecionar um modo de intrapredição para um bloco, a unidade de processamento de intrapredição 46 pode fornecer informações indicativas do modo de intrapredição selecionado para o bloco para a unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo intrapredição selecionado. O dispositivo de codificação 104 pode incluir na configuração de fluxo de bits transmitida definições de dados de
Petição 870190090180, de 11/09/2019, pág. 115/167
109/121 contextos de codificação para vários blocos assim como indicações de um modo de intrapredição mais provável, uma tabela de índice de modo de intrapredição, e uma tabela de índice de modo de intrapredição modificada para uso para cada um dos contextos. Os dados de configuração de fluxo de bits podem incluir uma pluralidade de tabelas de índice de modo de intrapredição e uma pluralidade de tabelas de índice de modo de intrapredição modificadas (também referidas como tabelas de mapeamento de palavra-código).
[0210] Após a unidade de processamento de predição 41 gerar o bloco preditivo para o bloco atual de vídeo por meio de interpredição ou intrapredição, o dispositivo de codificação 104 forma um bloco de vídeo residual ao subtrair o bloco preditivo do bloco atual de vídeo. Os dados de vídeo residuais no bloco residual podem estar incluídos em uma ou mais TUs e aplicados à unidade de processamento de transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais com o uso de uma transformada, como uma transformada de cosseno discreta (DOT) ou uma transformada conceitualmente semelhante. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel em um domínio de transformada, como um domínio de frequência.
[0211] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de
Petição 870190090180, de 11/09/2019, pág. 116/167
110/121 quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ao ajustar um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode, então, realizar uma varredura da matriz que inclui os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a varredura.
[0212] Em seguida à quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a criptografia de comprimento variável adaptativa ao contexto (CAVLC), criptografia aritmética binária adaptativa ao contexto (CABAC), criptografia aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), criptografia por entropia de partição de intervalo de probabilidade (PIPE) ou uma outra técnica de codificação por entropia. Em seguida à codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o dispositivo de decodificação 112, ou arquivado para transmissão ou recuperação posterior pelo dispositivo de decodificação 112. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de video atual que é codificada.
[0213] A unidade de quantização inversa 58 e a unidade de processamento de transformada inversa 60 aplicam a quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no
Petição 870190090180, de 11/09/2019, pág. 117/167
111/121 domínio de pixel para uso posterior como um bloco de referência de uma figuração de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência ao adicionar o bloco residual a um bloco preditivo de uma das figurações de referência em uma lista de figuração de referência. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpelação ao bloco residual reconstruído para calcular
os valores de pixel subinteiros para uso na estimativa de
movimento. 0 somador 62 adiciona o bloco residual
reconstruído ao bloco de predição com compensação de
movimento produzido pela unidade de compensação de
movimento 44 para produzir um bloco de referência para
armazenamento na memória de figuração 64. 0 bloco de
referência pode ser usado pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para interpredizer um bloco em um quadro de vídeo ou figuração subsequente.
[0214] O dispositivo de codificação 104 pode realizar qualquer uma das técnicas descritas no presente documento. Algumas técnicas desta revelação foram geralmente descritos em relação ao dispositivo de codificação 104, mas, conforme mencionado acima, algumas das técnicas desta revelação também podem ser implantadas pelo dispositivo de pós-processamento 57.
[0215] O dispositivo de codificação 104 da Figura 16 representa um exemplo de um decodificador de vídeo configurado para realizar a derivação de movimento afim baseada em compatibilidade de modelo descrita no presente documento. O dispositivo de codificação 104 pode,
Petição 870190090180, de 11/09/2019, pág. 118/167
112/121 por exemplo, determinar parâmetros de movimento afim, usar os parâmetros de movimento afim para determinar movimento afim para um ou mais blocos de uma ou mais figurações, e gerar um fluxo de dados de video codificados com um item de sintaxe (por exemplo, elemento de sintaxe, estrutura de sintaxe, variável, marcador, ou semelhante) que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado para o um ou mais blocos. 0 dispositivo de codificação 104 pode realizar qualquer uma das técnicas descritas no presente documento, incluindo o processo descrito acima em relação à Figura 15.
[0216]
A Figura 17 é um diagrama em blocos que ilustra um dispositivo de decodificação
112 exemplificativo. O dispositivo de decodificação 112 inclui uma unidade de decodificação por entropia 80, unidade de processamento de predição 81, unidade de quantização inversa 86, unidade de processamento de transformada 88, somador 91 e memória de figuração 92. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de processamento de intrapredição 84. O dispositivo de decodificação 112 pode, em alguns exemplos, realizar um passe de decodificação geralmente reciproco ao passe de codificação descrito em relação ao dispositivo de codificação 104 da Figura 16.
[0217]
Durante o processo de decodificação, o dispositivo de decodificação 112 recebe um fluxo de bits de video codificado que representa blocos de video de uma fatia de video codificada e elementos de sintaxe associados enviados pelo dispositivo de codificação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode
Petição 870190090180, de 11/09/2019, pág. 119/167
113/121 receber o fluxo de bits de vídeo codificado do dispositivo de codificação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode receber o fluxo de dados de vídeo codificados de uma entidade de rede 7 9, como um servidor, um elemento de rede ciente de mídia (MANE) , um editor/separador de vídeo, ou outro tal dispositivo configurado para implantar uma ou mais das técnicas descritas acima. A entidade de rede 79 pode ou não incluir o dispositivo de codificação 104. Algumas das técnicas descritas nesta revelação podem ser implantadas pela entidade de rede 7 9 antes da entidade de rede 7 9 que transmite o fluxo de bits de vídeo codificado para o dispositivo de decodificação 112. Em alguns sistemas de decodificação de vídeo, a entidade de rede 79 e o dispositivo de decodificação 112 podem ser partes dos dispositivos separados, enquanto em outras ocasiões, a funcionalidade descrita em relação à entidade de rede 79 pode ser realizada pelo mesmo dispositivo que compreende o dispositivo de decodificação 112.
[0218] A unidade de decodificação por entropia
80 do dispositivo de decodificação 112 decodifica por
entropia o fluxo de bits para gerar coeficientes
quantizados, vetores de movimento e outros elementos de
sintaxe. A unidade de decodificação por entropia 80
encaminha os vetores de movimento e outros elementos de
sintaxe para a unidade de processamento de predição 81 . 0
dispositivo de decodificação 112 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo. A unidade de decodificação por entropia 80 pode processar e analisar tanto os elementos de sintaxe de
Petição 870190090180, de 11/09/2019, pág. 120/167
114/121
comprimento fixo quanto os elementos de sintaxe de
comprimento variável em ou mais conjuntos de parâmetros,
como um VPS, SPS e PPS .
[0219] Quando a fatia de vídeo for
criptografada como uma fatia intracriptografada (I), a unidade de processamento de intrapredição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados dos blocos previamente decodificados do quadro ou da figuração atual. Quando o quadro de vídeo for criptografado como uma fatia intercriptografada (isto é, B, P ou GPB) , a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das figurações de referência em uma lista de figuração de referência. O dispositivo de decodificação 112 pode construir as listas de quadro de referência, Lista 0 e Lista 1, com o uso de técnicas de construção padrão com base nas figurações de referência armazenadas na memória de figuração 92.
[0220] A unidade de compensação de movimento 82 determina as informações de predição para um bloco de vídeo da fatia de vídeo atual ao analisar os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco atual de vídeo que é decodificado. Por exemplo, a unidade de compensação de movimento 82 pode usar
Petição 870190090180, de 11/09/2019, pág. 121/167
115/121 um ou mais elementos de sintaxe em um conjunto de parâmetros para determinar um modo de predição (por exemplo, intra ou interpredição) usado para codificar os blocos de video da fatia de video, um tipo de fatia de interpredição (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais listas de figuração de referência para a fatia, vetores de movimento para cada bloco de video intercodifiçado da fatia, situação de interpredição para cada bloco de video intercriptografado da fatia, e outras informações para decodificar os blocos de video na fatia de video atual.
[0221] A unidade de compensação de movimento 82 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode usar os filtros de interpolação usados pelo dispositivo de codificação 104 durante a codificação dos blocos de video para calcular os valores de interpolação para pixels subinteiros de blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os Filtros de interpolação usados pelo dispositivo de codificação 104 dos elementos de sintaxe recebidos, e pode usar os filtros de interpolação para produzir blocos preditivos.
[0222] A unidade de quantização inversa 86 quantiza inversamente ou desquantiza, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo dispositivo de codificação 104 para cada bloco de video na fatia de video
Petição 870190090180, de 11/09/2019, pág. 122/167
116/121 para determinar um grau de quantização e, igualmente, um grau de quantização inversa que deve ser aplicado. A unidade de processamento de transformada inversa 88 aplica uma transformada inversa (por exemplo, uma DCT inversa ou outra transformada inversa adequada) uma transformada de número inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada a fim de produzir os blocos residuais no domínio de pixel.
[0223] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco atual de vídeo com base nos vetores de movimento e outros elementos de sintaxe, o dispositivo de decodificação 112 forma um bloco de vídeo decodificado ao somar os blocos residuais da unidade de processamento de transformada inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou os componentes que realizam essa operação de soma. Caso desejado, os filtros de loop (no loop de criptografia ou após o loop de criptografia) também podem ser usados para suavizar as transições de pixel, ou de outro modo aprimorar a qualidade do vídeo. A unidade de filtro 91 é destinada a representar um ou mais filtros de loop como um filtro de desbloqueio, um filtro de loop adaptativo (ALF), e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 1 seja mostrada na Figura 17 como sendo um filtro de loop, em outras configurações, a unidade de filtro 91 pode ser implantada como um filtro de pós-loop. Os blocos de vídeo decodificados em um dado quadro ou dada figuração são,
Petição 870190090180, de 11/09/2019, pág. 123/167
117/121 então, armazenados na memória de figuração 92, que armazena figurações de referência usadas para a subsequente compensação de movimento. A memória de figuração 92 também armazena o vídeo decodificado para apresentação posterior em um dispositivo de exibição, como o dispositivo de destino de vídeo 122 mostrado na Figura 1.
[0224] O dispositivo de decodificação 112 da Figura 17 representa um exemplo de um decodificador de vídeo configurado para realizar a derivação de movimento afim baseada em compatibilidade de modelo descrita no presente documento. O dispositivo de decodificação 112 pode, por exemplo, determinar parâmetros de movimento afim e usar os parâmetros de movimento afim para determinar o movimento afim para um ou mais blocos de uma ou mais figurações. O dispositivo de decodificação 112 pode realizar qualquer uma das técnicas descritas no presente documento, incluindo o processo descrito acima em relação à Figura 14.
[0225] Na descrição anterior, os aspectos do
pedido são descritos com referência às modalidades
específicas do mesmo, mas aqueles que são versados na
técnica reconhecerão que a matéria deste pedido não se limita a isso. Desse modo, embora as modalidades ilustrativas do pedido foram descritas em detalhes no presente documento, deve-se compreender que os conceitos inventivos podem ser, de outro modo, incorporados e empregados de modo variado, e que as reivindicações anexas se destinam a serem interpretadas para incluir tais variações, exceto conforme limitado pela técnica anterior. Vários recursos e aspectos da matéria descrita acima podem
Petição 870190090180, de 11/09/2019, pág. 124/167
118/121 ser usados individual ou conjuntamente. Ademais, as modalidades podem ser utilizadas em qualquer número de ambientes e aplicações além daquelas descritas no presente documento sem que se afaste do mais amplo espirito e escopo do relatório descritivo. 0 relatório descritivo e os desenhos devem, consequentemente, ser considerados como ilustrativos em vez de restritivos. Para fins de ilustração, os métodos foram descritos em uma ordem especifica. Deve-se observar que em modalidades alternativas, os métodos podem ser realizados em uma ordem diferente daquela descrita.
[0226] Quando os componentes forem descritos como sendo configurados para realizar determinadas operações, tal configuração pode ser obtida, por exemplo, projetando-se circuitos eletrônicos ou outro hardware para realizar a operação, programando-se os circuitos eletrônicos programáveis (por exemplo, microprocessadores, ou outros circuitos eletrônicos adequados) para realizar a operação, ou qualquer combinação dos mesmos.
[0227] Os vários blocos lógicos, modelos, circuitos e etapas de algoritmo ilustrativos descritos em conjunto com as modalidades reveladas no presente documento podem ser implantados como hardware eletrônico, software de computador, firmware ou combinações de ambos. Para ilustrar claramente essa intercambialidade de hardware e software, vários componentes, blocos, modelos, circuitos e etapas ilustrativos foram descritos acima em termos gerais de sua funcionalidade. Se tal funcionalidade for implantada como hardware ou software, depende das restrições de projeto e pedido particular impostas no sistema geral. Os versados
Petição 870190090180, de 11/09/2019, pág. 125/167
119/121 podem implantar a funcionalidade descrita em modos variantes para cada aplicação específica, mas tais decisões de implantação não devem ser interpretadas como causando uma separação d escopo do presente pedido.
[0228] As técnicas descritas no presente documento também podem ser implantadas em hardware eletrônico, software de computador, firmware ou qualquer combinação dos mesmos. Tais técnicas podem ser implantadas em qualquer um dentre uma variedade de dispositivos como computadores para fins gerais, dispositivo de comunicação sem fio fones, ou dispositivos de circuito integrado que tem múltiplos usos incluindo a aplicação em fones de dispositivo de comunicação sem e outros dispositivos. Quaisquer recursos descritos como módulos ou componentes podem ser implantados em um dispositivo lógico integrado ou separadamente como dispositivos lógicos discretos, mas interoperáveis. Se implantadas em software, as técnicas podem ser realizadas, pelo menos em parte, por um meio de armazenamento de dados legível por computador que compreende código de programa que inclui instruções que, quando executadas, realiza um ou mais dos métodos descritos acima. O meio de armazenamento de dados legível por computador pode formar parte de um produto de programa de computador, que pode incluir materiais de embalagem. O meio legível por computador pode compreender memória ou mídia de armazenamento de dados, como memória de acesso aleatório (RAM) como memória de acesso aleatório dinâmica síncrona (SDRAM), memória apenas de leitura (ROM), memória de acesso aleatório não volátil (NVRAM), memória apenas de leitura eletricamente programável e apagável (EEPROM), memória
Petição 870190090180, de 11/09/2019, pág. 126/167
120/121
FLASH, mídia de armazenamento de dados magnética ou óptica, e semelhantes. As técnicas podem, adicional ou alternativamente, ser realizadas, pelo menos em parte, por um meio de comunicação legível por computador que transporta ou comunica código de programa na forma de instruções ou estruturas de dados e que pode ser acessado, lido e/ou executado por um computador, como sinais ou ondas propagados.
[0229] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores para fins gerais, circuitos integrados específicos de aplicação (ASICs), matrizes lógicas programáveis em campo (FPGAs) ou outro conjunto de circuitos lógicos discretos ou integrados equivalente. Tal processador pode ser configurado para realizar qualquer uma dentre as técnicas descritas nesta revelação. Um processador para fins gerais pode ser um microprocessador, mas alternativamente, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina de estado convencional. Um processador também pode ser implantado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo de DSP, ou qualquer outra tal configuração. Dessa maneira, o termo processador, conforme usado no presente documento pode se referir a qualquer uma dentre a estrutura anterior, qualquer combinação da estrutura anterior, ou qualquer outra estrutura ou aparelho adequado para a implantação das
Petição 870190090180, de 11/09/2019, pág. 127/167
121/121 técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida nos módulos de software ou módulos de hardware dedicado configurado para codificar e decodificar, ou incorporado em um codificador-decodificador de video combinado (CODEC).

Claims (56)

  1. REIVINDICAÇÕES
    1. Método de derivação de um ou mais conjuntos de parâmetros de movimento afim em um decodificador que compreende:
    obter, através do decodificador, dados de video de um fluxo de dados de video codificados, sendo que os dados de video incluem pelo menos uma figuração atual e uma figuração de referência; e determinar, através do decodificador, um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual, sendo que o conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual, em que o conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
  2. 2. Método, de acordo com a reivindicação 1, que compreende adicionalmente:
    determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
  3. 3. Método, de acordo com a reivindicação 1, que compreende adicionalmente:
    determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
  4. 4. Método, de acordo com a reivindicação 1, em que a determinação do conjunto de parâmetros de movimento
    Petição 870190090180, de 11/09/2019, pág. 129/167
    2/15 afim para o bloco atual inclui:
    obter, através do decodificador, um conjunto de parâmetros de movimento afim inicial, derivar, através do decodificador, um ou mais vetores de movimento afim para um ou mais pixels no modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial, sendo que o modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual;
    determinar, através do decodificador, um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual;
    minimizar, através do decodificador, um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim; e determinar, através do decodificador, o conjunto de parâmetros de movimento afim do um ou mais pontos de controle do modelo afim atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência.
  5. 5. Método, de acordo com a reivindicação 4, em que a determinação do conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual inclui: determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um
    Petição 870190090180, de 11/09/2019, pág. 130/167
    3/15 ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim;
    determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim; e selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem uma menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim.
  6. 6. Método, de acordo com a reivindicação 5, em que a métrica de qualidade inclui uma soma de diferenças absolutas (SAD).
  7. 7. Método, de acordo com a reivindicação 4, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento translacional determinado para o bloco atual.
  8. 8. Método, de acordo com a reivindicação 7, em que o vetor de movimento translacional é determinado com o uso da compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC).
  9. 9. Método, de acordo com a reivindicação 4, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento afim de um bloco vizinho do bloco atual.
  10. 10. Método, de acordo com a reivindicação 1, em que nenhum parâmetro de movimento afim é decodificado a partir do fluxo de dados de video codificados para determinar o conjunto de parâmetros de movimento afim.
    Petição 870190090180, de 11/09/2019, pág. 131/167
    4/15
  11. 11. Método, de acordo com a reivindicação 1, em que o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual.
  12. 12. Método, de acordo com a reivindicação 11, em que as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo.
  13. 13. Método, de acordo com a reivindicação 1, em que o modelo afim atual inclui um bloco com formato em L, sendo que o bloco com formato em L inclui amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual.
  14. 14. Decodif icador para derivar um ou mais conjuntos de parâmetros de movimento afim que compreende:
    uma memória configurada para armazenar dados de vídeo de um fluxo de dados de vídeo codificados; e um processador configurado para:
    obter os dados de vídeo do fluxo de dados de vídeo codificados, sendo que os dados de vídeo obtidos incluem pelo menos uma figuração atual e uma figuração de referência; e determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual, sendo que o conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual, em que o conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência.
  15. 15. Decodificador, de acordo com a reivindicação
    Petição 870190090180, de 11/09/2019, pág. 132/167
    5/15
    14, em que o processador é adicionalmente configurado para: determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
  16. 16. Decodificador, de acordo com a reivindicação
    14, em que o processador é adicionalmente configurado para: determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
  17. 17. Decodificador, de acordo com a reivindicação
    14, em que a determinação do conjunto de parâmetros de movimento afim para o bloco atual inclui:
    obter um conjunto de parâmetros de movimento afim inicial;
    derivar um ou mais vetores de movimento afim para um ou mais pixels em um modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial, sendo que o modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual;
    determinar um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual;
    minimizar um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim; e determinar o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim
    Petição 870190090180, de 11/09/2019, pág. 133/167
    6/15 atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência.
  18. 18. Decodificador, de acordo com a reivindicação
    17, em que a determinação do conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual inclui: determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso do pelo menos o um ou mais pixels no modelo afim atual e do um ou mais pixels no modelo afim de referência determinado com o uso do um ou mais vetores de movimento afim;
    determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim; e selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem uma menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim.
  19. 19. Decodificador, de acordo com a reivindicação
    18, em que a métrica de qualidade inclui uma soma de diferenças absolutas (SAD).
  20. 20. Decodificador, de acordo com a reivindicação
    17, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento translacional determinado para o bloco atual.
  21. 21. Decodificador, de acordo com a reivindicação
    20, em que o vetor de movimento translacional é determinado com o uso de compatibilidade de modelo de conversão
    Petição 870190090180, de 11/09/2019, pág. 134/167
    7/15 ascendente de taxa de quadro (FRUC).
  22. 22. Decodificador, de acordo com a reivindicação
    17, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento afim a partir de um bloco vizinho do bloco atual.
  23. 23. Decodificador, de acordo com a reivindicação
    14, em que nenhum parâmetro de movimento afim é decodificado a partir do fluxo de dados de video codificados para determinar o conjunto de parâmetros de movimento afim.
  24. 24. Decodificador, de acordo com a reivindicação
    14, em que o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual.
  25. 25. Decodificador, de acordo com a reivindicação
    24, em que as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo.
  26. 26. Decodificador, de acordo com a reivindicação
    14, em que o modelo afim atual inclui um bloco com formato em L, sendo que o bloco com formato em L inclui amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual.
  27. 27. Decodificador, de acordo com a reivindicação
    14, em que o decodificador é parte de um dispositivo móvel com um visor para exibir dados de video decodificados.
  28. 28. Decodificador, de acordo com a reivindicação
    14, em que o decodificador é parte de um dispositivo móvel com uma câmera para capturar figurações.
  29. 29. Método de codificação de dados de video que compreende:
    Petição 870190090180, de 11/09/2019, pág. 135/167
    8/15 obter dados de video, sendo que os dados de vídeo incluem pelo menos uma figuração atual e uma figuração de referência;
    determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual, sendo que o conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual, em que o conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência; e gerar um fluxo de dados de vídeo codificados, sendo gue o fluxo de dados de vídeo codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual, em que o fluxo de dados de vídeo codificados não inclui quaisquer parâmetros de movimento afim para determinar o conjunto de
    parâmetros de movimento afim. 30. Método, de acordo com a reivindicação 29, que compreende adicionalmente: determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do
    conjunto de parâmetros de movimento afim determinado para o bloco atual.
  30. 31. Método, de acordo com a reivindicação 29, que compreende adicionalmente:
    determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco
    Petição 870190090180, de 11/09/2019, pág. 136/167
    9/15 atual.
  31. 32. Método, de acordo com a reivindicação 29, em que a determinação do conjunto de parâmetros de movimento afim para o bloco atual inclui:
    obter um conjunto de parâmetros de movimento afim inicial;
    derivar um ou mais vetores de movimento afim para um ou mais pixels em um modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial, sendo que o modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual;
    determinar um ou mais pixels no modelo afim de referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual;
    minimizar um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim; e determinar o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência.
  32. 33. Método, de acordo com a reivindicação 32, em que a determinação do conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual inclui: determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um
    Petição 870190090180, de 11/09/2019, pág. 137/167
    10/15 ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim;
    determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim; e selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem uma menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim.
  33. 34. Método, de acordo com a reivindicação 33, em que a métrica de qualidade inclui uma soma de diferenças absolutas (SAD).
  34. 35. Método, de acordo com a reivindicação 32, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento translacional determinado para o bloco atual.
  35. 36. Método, de acordo com a reivindicação 35, em que o vetor de movimento translacional é determinado com o uso da compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC).
  36. 37. Método, de acordo com a reivindicação 32, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento afim de um bloco vizinho do bloco atual.
  37. 38. Método, de acordo com a reivindicação 29, em que o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual.
  38. 39. Método, de acordo com a reivindicação 38, em
    Petição 870190090180, de 11/09/2019, pág. 138/167
    11/15 que as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo.
  39. 40. Método, de acordo com a reivindicação 29, em que o modelo afim atual inclui um bloco com formato em L, sendo que o bloco com formato em L inclui amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual.
  40. 41. Método, de acordo com a reivindicação 29, que compreende adicionalmente armazenar o fluxo de dados de vídeo codificados.
  41. 42. Método, de acordo com a reivindicação 29, que compreende adicionalmente transmitir o fluxo de dados de vídeo codificados.
  42. 43. Codificador para codificar dados de vídeo que compreende:
    uma memória configurada para armazenar dados de vídeo; e um processador configurado para:
    obter os dados de vídeo, sendo que os dados de vídeo incluem pelo menos uma figuração atual e uma figuração de referência;
    determinar um conjunto de parâmetros de movimento afim para um bloco atual da figuração atual, sendo que o conjunto de parâmetros de movimento afim é usado para realizar a predição de compensação de movimento para o bloco atual, em que o conjunto de parâmetros de movimento afim é determinado com o uso de um modelo afim atual do bloco atual e um modelo afim de referência da figuração de referência; e
    Petição 870190090180, de 11/09/2019, pág. 139/167
    12/15 gerar um fluxo de dados de video codificados, sendo gue o fluxo de dados de vídeo codificados inclui um item de sintaxe que indica que o modo de derivação de movimento afim baseado em compatibilidade de modelo deve ser usado por um decodificador para o bloco atual, em que o fluxo de dados de vídeo codificados não inclui quaisquer parâmetros de movimento afim para determinar o conjunto de parâmetros de movimento afim.
  43. 44. Codificador, de acordo com a reivindicação
    43, em que o processador é adicionalmente configurado para: determinar vetores de movimento para uma pluralidade de sub-blocos do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
  44. 45. Codificador, de acordo com a reivindicação
    43, em que o processador é adicionalmente configurado para: determinar vetores de movimento para uma pluralidade de pixels do bloco atual com o uso do conjunto de parâmetros de movimento afim determinado para o bloco atual.
  45. 46. Codificador, de acordo com a reivindicação 43, em que a determinação do conjunto de parâmetros de movimento afim para o bloco atual inclui:
    obter um conjunto de parâmetros de movimento afim inicial;
    derivar um ou mais vetores de movimento afim para um ou mais pixels em um modelo afim atual do bloco atual com o uso do conjunto de parâmetros de movimento afim inicial, sendo que o modelo afim atual do bloco atual inclui pixels reconstruídos vizinhos ao bloco atual;
    determinar um ou mais pixels no modelo afim de
    Petição 870190090180, de 11/09/2019, pág. 140/167
    13/15 referência da figuração de referência com o uso do um ou mais vetores de movimento afim derivados para o um ou mais pixels no modelo afim atual;
    minimizar um erro entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinados com o uso do um ou mais vetores de movimento afim; e determinar o conjunto de parâmetros de movimento afim para um ou mais pontos de controle do modelo afim atual com base no erro minimizado entre pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência.
  46. 47. Codificador, de acordo com a reivindicação
    46, em que a determinação do conjunto de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual inclui: determinar uma pluralidade de conjuntos de parâmetros de movimento afim para o um ou mais pontos de controle do modelo afim atual com o uso de pelo menos o um ou mais pixels no modelo afim atual e o um ou mais pixels no modelo afim de referência determinado com o uso do um ou mais vetores de movimento afim;
    determinar uma métrica de qualidade para cada conjunto de parâmetros de movimento afim a partir da pluralidade de conjuntos de parâmetros de movimento afim, e selecionar, para o um ou mais pontos de controle do modelo afim atual, o conjunto de parâmetros de movimento afim da pluralidade de conjuntos de parâmetros de movimento afim que tem uma menor métrica dentre a pluralidade de conjuntos de parâmetros de movimento afim.
  47. 48. Codificador, de acordo com a reivindicação
    Petição 870190090180, de 11/09/2019, pág. 141/167
    14/15
    47, em que a métrica de qualidade inclui uma soma de diferenças absolutas (SAD).
  48. 49. Codificador, de acordo com a reivindicação
    46, em que o conjunto de parâmetros de movimento afim inicial é determinado com base em um vetor de movimento translacional determinado para o bloco atual.
    Codificador, de acordo com a reivindicação
    49, em que o vetor de movimento translacional é determinado com o uso de compatibilidade de modelo de conversão ascendente de taxa de quadro (FRUC).
    4 6, em afim de
  49. 51. Codificador de acordo com a reivindicação que o conjunto de é determinado com um bloco vizinho do
  50. 52. Codificador parâmetros de movimento afim base em um vetor de movimento bloco atual.
    de acordo com a reivindicação
    43, em que o modelo afim atual do bloco atual inclui uma ou mais amostras espacialmente vizinhas do bloco atual.
  51. 53. Codificador, de acordo com a reivindicação
    52, em que as amostras espacialmente vizinhas incluem amostras de um ou mais dentre um bloco vizinho de topo ou um bloco vizinho esquerdo.
  52. 54. Codificador, de acordo com a reivindicação
    43, em que o modelo afim atual inclui um bloco com formato em L, sendo que o bloco com formato em L inclui amostras de um bloco vizinho de topo do bloco atual e amostras de um bloco vizinho esquerdo do bloco atual.
  53. 55. Codificador, de acordo com a reivindicação
    43, em que o processador é configurado para armazenar o fluxo de dados de vídeo codificados na memória.
  54. 56. Codificador, de acordo com a reivindicação
    Petição 870190090180, de 11/09/2019, pág. 142/167
    15/15
    43, que compreende adicionalmente um transmissor configurado para transmitir o fluxo de dados de video codificados.
  55. 57. Codificador, de acordo com a reivindicação
    43, em que o codificador é parte de um dispositivo móvel com um visor para exibir dados de video decodificados.
  56. 58. Codificador, de acordo com a reivindicação
    43, em que o codificador é parte de um dispositivo móvel com uma câmera para capturar figurações.
BR112019018866A 2017-03-14 2018-03-13 derivação de informações de movimento afim BR112019018866A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762471099P 2017-03-14 2017-03-14
US15/918,789 US10701390B2 (en) 2017-03-14 2018-03-12 Affine motion information derivation
PCT/US2018/022129 WO2018169923A1 (en) 2017-03-14 2018-03-13 Affine motion information derivation

Publications (1)

Publication Number Publication Date
BR112019018866A2 true BR112019018866A2 (pt) 2020-04-14

Family

ID=63519801

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019018866A BR112019018866A2 (pt) 2017-03-14 2018-03-13 derivação de informações de movimento afim

Country Status (8)

Country Link
US (1) US10701390B2 (pt)
EP (1) EP3596925B1 (pt)
KR (1) KR20190120389A (pt)
CN (1) CN110383839B (pt)
AU (1) AU2018234607A1 (pt)
BR (1) BR112019018866A2 (pt)
SG (1) SG11201907090WA (pt)
WO (1) WO2018169923A1 (pt)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020084511A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Simplified entropy coding for sub-block based motion information list
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
WO2018221368A1 (ja) * 2017-05-31 2018-12-06 シャープ株式会社 動画像復号装置、及び動画像符号化装置
WO2019004283A1 (ja) * 2017-06-28 2019-01-03 シャープ株式会社 動画像符号化装置及び動画像復号装置
CN109391814B (zh) 2017-08-11 2023-06-06 华为技术有限公司 视频图像编码和解码的方法、装置及设备
US10785494B2 (en) 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
CN109922336B (zh) * 2017-12-12 2023-07-18 华为技术有限公司 视频数据的帧间预测方法和装置
WO2020065520A2 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Extended merge prediction
EP3518543A1 (en) * 2018-01-26 2019-07-31 Thomson Licensing Illumination compensation flag in frame rate up-conversion with template matching
CN112088533B (zh) 2018-03-21 2024-06-14 Lx半导体科技有限公司 图像编码/解码方法和装置以及存储比特流的记录介质
TWI721396B (zh) * 2018-03-29 2021-03-11 弗勞恩霍夫爾協會 視訊解碼器、視訊編碼器、用以解碼視訊內容之方法、用以編碼視訊內容之方法、電腦程式及視訊位元串流
WO2019199127A1 (ko) * 2018-04-12 2019-10-17 삼성전자 주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
FI3780617T3 (fi) * 2018-04-24 2023-10-16 Lg Electronics Inc Menetelmä ja laite inter-ennustusta varten videonkoodausjärjestelmässä
CN112385211B (zh) * 2018-05-09 2024-10-22 交互数字Vc控股公司 用于视频编码和解码的运动补偿
US20190364295A1 (en) * 2018-05-25 2019-11-28 Tencent America LLC Method and apparatus for video coding
KR102738271B1 (ko) 2018-06-05 2024-12-04 두인 비전 컴퍼니 리미티드 Ibc 및 atmvp 간의 상호 작용
US11012703B2 (en) 2018-06-13 2021-05-18 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
GB2589223B (en) 2018-06-21 2023-01-25 Beijing Bytedance Network Tech Co Ltd Component-dependent sub-block dividing
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
US11070813B2 (en) * 2018-06-29 2021-07-20 Intel Corporation Global motion estimation and modeling for accurate global motion compensation for efficient video processing or coding
KR20240007298A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
JP7137008B2 (ja) 2018-06-29 2022-09-13 北京字節跳動網絡技術有限公司 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念
CA3105330C (en) 2018-06-29 2023-12-05 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
CN115695791A (zh) * 2018-07-02 2023-02-03 华为技术有限公司 视频图像编码方法以及用于对视频数据进行编码的设备
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
US10462488B1 (en) 2018-07-13 2019-10-29 Tencent America LLC Method and apparatus for video coding
US11057617B2 (en) * 2018-08-03 2021-07-06 Tencent America LLC Method and apparatus for video coding
CN116980591B (zh) * 2018-08-29 2024-03-15 北京达佳互联信息技术有限公司 视频编码的方法、计算设备和存储介质
CN116647696A (zh) * 2018-09-06 2023-08-25 Lg电子株式会社 图像解码方法、图像编码方法、存储介质和发送方法
GB2579763B (en) 2018-09-21 2021-06-09 Canon Kk Video coding and decoding
ES2955040T3 (es) * 2018-09-21 2023-11-28 Guangdong Oppo Mobile Telecommunications Corp Ltd Método de codificación/descodificación de señales de imagen y dispositivo para el mismo
CN113016186B (zh) * 2018-09-21 2024-11-29 交互数字Vc控股公司 用于基于仿射模型的视频译码的仿射运动估计
GB2577318B (en) * 2018-09-21 2021-03-10 Canon Kk Video coding and decoding
CN110944204B (zh) * 2018-09-23 2023-06-09 北京字节跳动网络技术有限公司 简化的空时运动矢量预测
WO2020058957A1 (en) * 2018-09-23 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. General applications related to affine motion
WO2020070729A1 (en) * 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Size restriction based on motion information
WO2020073928A1 (en) * 2018-10-09 2020-04-16 Huawei Technologies Co., Ltd. Inter prediction method and apparatus
CN112840645B (zh) * 2018-10-10 2023-12-12 寰发股份有限公司 视频编码系统中组合多个预测子用于块预测的方法及装置
GB2595054B (en) 2018-10-18 2022-07-06 Canon Kk Video coding and decoding
GB2595053B (en) 2018-10-18 2022-07-06 Canon Kk Video coding and decoding
WO2020084461A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on coding information
WO2020084472A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Affine mode parameter inheritance or prediction
WO2020084464A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Decoder side motion vector derivation based on reference pictures
WO2020094074A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position-depending ordering of motion candidate list for geometric partitioning mode
US11212521B2 (en) * 2018-11-07 2021-12-28 Avago Technologies International Sales Pte. Limited Control of memory bandwidth consumption of affine mode in versatile video coding
WO2020094151A1 (en) 2018-11-10 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Rounding in pairwise average candidate calculations
CN117880493A (zh) * 2018-11-13 2024-04-12 北京字节跳动网络技术有限公司 用于空域运动候选列表的构建方法
CN112997496B (zh) * 2018-11-14 2024-05-14 北京字节跳动网络技术有限公司 仿射预测模式的改进
CN113039800B (zh) * 2018-11-16 2024-05-10 北京字节跳动网络技术有限公司 用于基于历史的仿射参数的修剪方法
CN113039796B (zh) 2018-11-17 2023-09-19 北京字节跳动网络技术有限公司 视频处理中的广义双向预测模式
WO2020103944A1 (en) * 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Sub-block based motion candidate selection and signaling
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
CN113196772B (zh) 2018-11-29 2024-08-02 北京字节跳动网络技术有限公司 块内拷贝模式和基于子块的运动矢量预测模式之间的交互
CN113170150B (zh) 2018-12-03 2024-02-27 北京字节跳动网络技术有限公司 基于历史的运动矢量预测(hmvp)模式的部分修剪方法
CN113170111B (zh) * 2018-12-08 2024-03-08 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读存储介质
EP3895430A4 (en) * 2018-12-13 2022-10-12 Beijing Dajia Internet Information Technology Co., Ltd. METHOD FOR DRIVING CONSTRUCTED AFFINE FUSION CANDIDATES
CN117499668A (zh) * 2018-12-21 2024-02-02 北京字节跳动网络技术有限公司 具有运动矢量差的Merge模式中的运动矢量精度
US11102476B2 (en) * 2018-12-28 2021-08-24 Qualcomm Incorporated Subblock based affine motion model
WO2020140949A1 (en) * 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Usage of interweaved prediction
CN113454999B (zh) 2019-01-02 2024-07-02 北京字节跳动网络技术有限公司 划分模式之间的运动矢量推导
US11025951B2 (en) * 2019-01-13 2021-06-01 Tencent America LLC Method and apparatus for video coding
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
US11202089B2 (en) * 2019-01-28 2021-12-14 Tencent America LLC Method and apparatus for determining an inherited affine parameter from an affine model
WO2020156517A1 (en) 2019-01-31 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Fast algorithms for symmetric motion vector difference coding mode
CN113412623A (zh) * 2019-01-31 2021-09-17 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
EP3910955A4 (en) * 2019-02-01 2022-05-18 Huawei Technologies Co., Ltd. INTERFRAME PREDICTION METHOD AND APPARATUS
CN111526362B (zh) * 2019-02-01 2023-12-29 华为技术有限公司 帧间预测方法和装置
CN113439444A (zh) 2019-02-02 2021-09-24 北京字节跳动网络技术有限公司 用于仿射的多hmvp
WO2020156538A1 (en) 2019-02-03 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Interaction between mv precisions and mv difference coding
CN113475075B (zh) * 2019-02-13 2023-09-08 北京字节跳动网络技术有限公司 基于共享Merge列表的运动预测
CN113424533B (zh) 2019-02-14 2024-09-10 北京字节跳动网络技术有限公司 复杂度降低的解码器侧运动推导
AU2019201649A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
US11979595B2 (en) * 2019-03-11 2024-05-07 Vid Scale, Inc. Symmetric merge mode motion vector coding
US11394999B2 (en) * 2019-03-11 2022-07-19 Alibaba Group Holding Limited Method, device, and system for determining prediction weight for merge mode
WO2020185876A1 (en) 2019-03-12 2020-09-17 Tencent America LLC Method and apparatus for video encoding or decoding
US11394993B2 (en) * 2019-03-13 2022-07-19 Tencent America LLC Method and apparatus for affine inter prediction with small subblocks
CN116248891A (zh) * 2019-03-14 2023-06-09 华为技术有限公司 帧间预测的方法及相关装置
JP7100772B2 (ja) * 2019-03-15 2022-07-13 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド 双方向オプティカル・フローに対するビット幅制御方法およびデバイス
CN117478876A (zh) * 2019-03-17 2024-01-30 北京字节跳动网络技术有限公司 基于光流的预测细化的计算
SG11202109031TA (en) 2019-03-18 2021-09-29 Tencent America LLC Method and apparatus for video coding
WO2020200277A1 (en) 2019-04-02 2020-10-08 Beijing Bytedance Network Technology Co., Ltd. Adaptive loop filtering in video processing
WO2020211865A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Gradient calculation in different motion vector refinements
WO2020211867A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Delta motion vector in prediction refinement with optical flow process
CN113711608B (zh) * 2019-04-19 2023-09-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程的适用性
MX2021013069A (es) * 2019-04-25 2021-11-17 Op Solutions Llc Candidatos a la prediccion selectiva de vectores de movimiento en tramas con movimiento global.
KR20220063312A (ko) 2019-04-25 2022-05-17 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 광학 흐름에 의한 예측 미세화 방법 및 장치
MX2021013057A (es) * 2019-04-25 2021-12-10 Op Solutions Llc Se?alizacion del vector de movimiento global en la cabecera de la imagen.
US11523109B2 (en) * 2019-05-02 2022-12-06 Tencent America LLC Method and apparatus for improvements of affine prof
WO2020233662A1 (en) * 2019-05-21 2020-11-26 Beijing Bytedance Network Technology Co., Ltd. Syntax signaling for optical-flow based inter coding
US11240499B2 (en) 2019-05-24 2022-02-01 Tencent America LLC Method and apparatus for video coding
WO2020251325A1 (ko) * 2019-06-14 2020-12-17 현대자동차주식회사 인터 예측을 이용하여 비디오를 부호화 및 복호화하는 방법 및 장치
CN114128285B (zh) 2019-06-14 2024-07-19 现代自动车株式会社 用于利用帧间预测来编码和解码视频的方法和装置
JP7414856B2 (ja) * 2019-06-21 2024-01-16 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオコーディングレイヤアップスイッチング指示
KR20220140047A (ko) * 2019-07-10 2022-10-17 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 광 흐름을 이용한 예측 개선 방법 및 장치
JP7322277B2 (ja) 2019-07-27 2023-08-07 北京字節跳動網絡技術有限公司 参照ピクチャタイプに従ったツールの使用制限
EP4011082A4 (en) 2019-08-08 2023-10-25 Fg Innovation Company Limited DEVICE AND METHOD FOR ENCODING VIDEO DATA
CN114208166B (zh) 2019-08-10 2024-04-09 北京字节跳动网络技术有限公司 视频比特流中的子图片相关信令通知
CN114208184B (zh) 2019-08-13 2025-01-07 北京字节跳动网络技术有限公司 基于子块的帧间预测中的运动精度
CN110636301B (zh) * 2019-09-18 2021-08-03 浙江大华技术股份有限公司 仿射预测方法、计算机设备和计算机可读存储介质
WO2021052506A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Transform unit based combined inter intra prediction
CN113784136B (zh) * 2019-09-23 2022-08-26 杭州海康威视数字技术股份有限公司 解码方法、设备及存储介质
CN112204973A (zh) * 2019-09-24 2021-01-08 北京大学 视频编解码的方法与装置
KR20220078600A (ko) 2019-10-18 2022-06-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브픽처들의 파라미터 세트 시그널링에서의 신택스 제약들
KR20220046656A (ko) * 2019-10-31 2022-04-14 삼성전자주식회사 어파인 모델에 따른 인터 예측을 수행하는 비디오 복호화 방법 및 그 장치, 비디오 부호화 방법 및 그 장치
CN111327901B (zh) * 2020-03-10 2023-05-30 北京达佳互联信息技术有限公司 视频编码方法、装置、存储介质及编码设备
US11729424B2 (en) * 2020-12-04 2023-08-15 Ofinno, Llc Visual quality assessment-based affine transformation
EP4324206A1 (en) * 2021-04-12 2024-02-21 Qualcomm Incorporated Template matching based affine prediction for video coding
US11936877B2 (en) 2021-04-12 2024-03-19 Qualcomm Incorporated Template matching based affine prediction for video coding
CN113630601B (zh) * 2021-06-29 2024-04-02 杭州未名信科科技有限公司 一种仿射运动估计方法、装置、设备及存储介质
EP4388735A1 (en) * 2021-08-16 2024-06-26 MediaTek Inc Candidate reordering for merge mode with motion vector difference
CN117837145A (zh) * 2021-08-19 2024-04-05 联发科技(新加坡)私人有限公司 使用模板匹配细化候选选择
WO2023051641A1 (en) * 2021-09-28 2023-04-06 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
US20230104476A1 (en) * 2021-10-05 2023-04-06 Tencent America LLC Grouping based adaptive reordering of merge candidate
US20230134017A1 (en) * 2021-11-01 2023-05-04 Tencent America LLC Template-matching based adaptive motion vector resolution (amvr) for bi-prediction and an affine mode
CN114157868B (zh) * 2022-02-07 2022-07-19 杭州未名信科科技有限公司 视频帧的编码模式筛选方法、装置及电子设备
US20230344984A1 (en) * 2022-04-25 2023-10-26 Tencent America LLC Affine models use in affine bilateral matching
WO2024017224A1 (en) * 2022-07-22 2024-01-25 Mediatek Inc. Affine candidate refinement
US20240121399A1 (en) * 2022-09-30 2024-04-11 Qualcomm Incorporated Decoder-side control point motion vector refinement for affine inter-prediction in video coding
US20240137539A1 (en) * 2022-10-18 2024-04-25 Tencent America LLC Method and apparatus for affine motion refinement
US20240195978A1 (en) * 2022-12-13 2024-06-13 Apple Inc. Joint motion vector coding
US20240244182A1 (en) * 2023-01-18 2024-07-18 Tencent America LLC Multi-template based intra-frame template matching prediction
KR20240173786A (ko) * 2023-06-07 2024-12-16 삼성전자주식회사 영상 처리 장치 및 영상의 움직임 추정 방법

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1193620C (zh) * 2000-01-21 2005-03-16 诺基亚有限公司 视频编码器的运动估计方法及系统
US7558320B2 (en) 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
JP2008510347A (ja) 2004-08-13 2008-04-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 色順次式表示システムの複雑さを低減するシステムおよび方法
JP4489033B2 (ja) 2005-03-25 2010-06-23 三洋電機株式会社 フレームレート変換装置、パン・チルト判定装置および映像装置
JP4722936B2 (ja) 2005-09-30 2011-07-13 シャープ株式会社 画像表示装置及び方法
US20090122188A1 (en) 2005-11-07 2009-05-14 Toshiharu Hanaoka Image display device and method
JP4181592B2 (ja) 2006-09-20 2008-11-19 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
JP4615508B2 (ja) 2006-12-27 2011-01-19 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
KR101366242B1 (ko) * 2007-03-29 2014-02-20 삼성전자주식회사 움직임 모델 파라메터의 부호화, 복호화 방법 및 움직임모델 파라메터를 이용한 영상의 부호화, 복호화 방법 및장치
CN102301713B (zh) * 2009-01-28 2014-10-29 法国电信公司 使用预测掩膜对图像进行编码的方法和装置、对应的解码方法和装置
US8718142B2 (en) 2009-03-04 2014-05-06 Entropic Communications, Inc. System and method for frame rate conversion that utilizes motion estimation and motion compensated temporal interpolation employing embedded video compression
US8363721B2 (en) 2009-03-26 2013-01-29 Cisco Technology, Inc. Reference picture prediction for video coding
US20100246675A1 (en) 2009-03-30 2010-09-30 Sony Corporation Method and apparatus for intra-prediction in a video encoder
US20100289944A1 (en) 2009-05-12 2010-11-18 Shing-Chia Chen Frame Rate Up-Conversion Based Dynamic Backlight Control System and Method
US8675736B2 (en) * 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing
US8345070B2 (en) 2009-06-10 2013-01-01 Himax Media Solutions, Inc. Apparatus and method for frame rate up conversion
CN101931803B (zh) * 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
JP5566133B2 (ja) 2010-03-05 2014-08-06 キヤノン株式会社 フレームレート変換処理装置
CN105915918B (zh) * 2010-04-13 2019-09-06 Ge视频压缩有限责任公司 跨平面预测的方法和装置
CN102907092B (zh) 2010-05-26 2017-02-15 高通股份有限公司 相机参数辅助式视频帧速率上转换
US8666120B2 (en) 2010-12-14 2014-03-04 The United States Of America, As Represented By The Secretary Of The Navy Method and apparatus for conservative motion estimation from multi-image sequences with optimized motion compensation
ES2907510T3 (es) * 2012-05-14 2022-04-25 V Nova Int Ltd Descomposición de datos residuales durante la codificación, decodificación y reconstrucción de señales en una jerarquía escalonada
JP2014138242A (ja) 2013-01-16 2014-07-28 Sony Corp 画像処理装置および画像処理方法
US9860529B2 (en) 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
CN116320394A (zh) 2014-02-25 2023-06-23 苹果公司 用于视频编码和解码的自适应传递函数
US9438910B1 (en) * 2014-03-11 2016-09-06 Google Inc. Affine motion prediction in video coding
KR102329126B1 (ko) 2014-03-14 2021-11-19 삼성전자주식회사 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치
US10158884B2 (en) 2014-03-19 2018-12-18 Qualcomm Incorporated Simplified merge list construction process for 3D-HEVC
CN104539966B (zh) * 2014-09-30 2017-12-22 华为技术有限公司 图像预测方法及相关装置
US10249263B2 (en) 2015-06-05 2019-04-02 Apple Inc. Rendering and displaying high dynamic range content
CN108600749B (zh) 2015-08-29 2021-12-28 华为技术有限公司 图像预测的方法及设备
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode

Also Published As

Publication number Publication date
EP3596925B1 (en) 2021-03-03
AU2018234607A1 (en) 2019-08-22
EP3596925A1 (en) 2020-01-22
WO2018169923A1 (en) 2018-09-20
CN110383839A (zh) 2019-10-25
KR20190120389A (ko) 2019-10-23
US20180270500A1 (en) 2018-09-20
CN110383839B (zh) 2022-04-05
SG11201907090WA (en) 2019-09-27
US10701390B2 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
BR112019018866A2 (pt) derivação de informações de movimento afim
CN112956190B (zh) 仿射运动预测
TWI826546B (zh) 對以歷史為基礎之運動向量預測器之改良
CN109792527B (zh) 处理视频数据的方法和设备
ES2750176T3 (es) Método y aparato para el tratamiento eficaz de cabeceras de fragmentos
CN103650505B (zh) 视频译码中的运动向量预测
BR112021004492A2 (pt) codificação por transformada múltipla adaptativa
CN113196775A (zh) 用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区
BR112020006232A2 (pt) codificação de informação de movimento de predição afim para codificação de vídeo
BR112016000866B1 (pt) Processamento de compensação de iluminação para codificação de vídeo
BR112016006607B1 (pt) Método e dispositivo para processamento de dados de vídeo, e memória legível por computador
BR112016008235B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
BR112016007760B1 (pt) Método e aparelho de decodificação de dados de vídeo e método de codificação de dados de vídeo
BR112016006574B1 (pt) Predição de vetor de movimento temporal com base em unidade de subpredição (pu) em hevc e projeto de sub-pu em 3d-hevc
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
ES2780686T3 (es) Tipo de dependencia entre vistas en MV-HEVC
TW202126042A (zh) 基於歷史的運動向量預測
BR112016008337B1 (pt) Aparelho configurado para codificar informações de vídeo, método para codificar informações de vídeo e memória legível por computador
TW202042552A (zh) 用於照明補償之區塊大小限制
TW202031052A (zh) 用於照明補償模式之刪剪
BR122024010020A2 (pt) Operações de buffer de imagens decodificadas (dpb) e delimitador de unidade de acesso (aud)
BR112017020632B1 (pt) Métodos e dispositivo para processar dados de vídeo e memória legível por computador
BR112017020627B1 (pt) Derivação de vetor de movimento em codificação de vídeo
BR112017020635B1 (pt) Método para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo, e memória legível por computador
BR112016029762B1 (pt) Método e aparelho de decodificação de dados de vídeo, e, memória legível por computador

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]