BR112021015598A2 - Métodos de decodificação e codificação, para decodificar um conteúdo de vídeo e para codificar um conteúdo de vídeo, decodificador, e, codificador - Google Patents

Métodos de decodificação e codificação, para decodificar um conteúdo de vídeo e para codificar um conteúdo de vídeo, decodificador, e, codificador Download PDF

Info

Publication number
BR112021015598A2
BR112021015598A2 BR112021015598-8A BR112021015598A BR112021015598A2 BR 112021015598 A2 BR112021015598 A2 BR 112021015598A2 BR 112021015598 A BR112021015598 A BR 112021015598A BR 112021015598 A2 BR112021015598 A2 BR 112021015598A2
Authority
BR
Brazil
Prior art keywords
block
sub
motion
motion prediction
signal
Prior art date
Application number
BR112021015598-8A
Other languages
English (en)
Inventor
Jiancong Luo
Yuwen He
Original Assignee
Vid Scale, 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 Vid Scale, Inc. filed Critical Vid Scale, Inc.
Publication of BR112021015598A2 publication Critical patent/BR112021015598A2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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/55Motion estimation with spatial constraints, e.g. at image or region borders

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Measuring Volume Flow (AREA)

Abstract

método de decodificação, codificador ou decodificador configurado para codificar ou decodificar um vídeo, mídia não transitória legível por computador, e, sinal que compreende informações de vídeo. a presente invenção revela métodos, aparelhos e sistemas. em uma modalidade, um método de decodificação inclui a obtenção de um sinal de predição de movimento baseado em sub-bloco para um bloco atual do vídeo; obter um ou mais gradientes espaciais do sinal de predição de movimento baseado em sub-bloco ou um ou mais valores de diferença de vetor de movimento; obter um sinal de refinamento para o bloco atual com base em um ou mais gradientes espaciais obtidos ou em um ou mais valores de diferença de vetor de movimento obtidos; obter um sinal de predição de movimento refinado para o bloco atual com base no sinal de predição de movimento baseado em sub-bloco e o sinal de refinamento; e decodificar o bloco atual com base no sinal de predição de movimento refinado.

Description

1 / 116 MÉTODO DE DECODIFICAÇÃO, CODIFICADOR OU
DECODIFICADOR CONFIGURADO PARA CODIFICAR OU DECODIFICAR UM VÍDEO, MÍDIA NÃO TRANSITÓRIA LEGÍVEL POR COMPUTADOR, E, SINAL QUE COMPREENDE INFORMAÇÕES DE VÍDEO REFERÊNCIA CRUZADA
[001] Este pedido reivindica o benefício dos pedidos de patente provisórios US n° 62/802.428, depositado em 7 de fevereiro de 2019, n° 62/814.611, depositado em 6 de março de 2019 e n° 62/883.999, depositado em 15 de abril de 2019, cujos conteúdos estão incorporados à presente invenção a título de referência.
CAMPO DA REVELAÇÃO
[002] Este pedido se refere a codificação de vídeos e, em particular, a sistemas, aparelhos e métodos que usam refinamento de interprevisão com fluxo óptico.
TÉCNICA RELACIONADA
[003] Sistemas de codificação de vídeo são amplamente usados para comprimir sinais de vídeo digital para reduzir o armazenamento e/ou a largura de banda de transmissão de tais sinais. Atualmente, entre os vários tipos de sistemas de codificação de vídeo, como sistemas baseados em blocos, baseados em ondeletas e baseados em objetos, os sistemas de codificação de vídeo híbrida baseados em blocos são amplamente usados e implantados. Exemplos de sistemas de codificação de vídeo com base em bloco incluem normas internacionais de codificação de vídeo como a MPEG1/2/4 parte 2, H.264/MPEG-4 parte 10 AVC, VC-1 e a norma de codificação de vídeo mais recente chamada HEVC (High Efficiency Video Coding), que foi desenvolvida pela JCT-VC (Joint Collaborative Team on Video Coding) de ITU-T/SG16/Q.6/VCEG e ISO/IEC/MPEG.
SUMÁRIO DA MODALIDADE
[004] Em uma modalidade representativa, um método de decodificação inclui: obter um sinal de previsão de movimento baseado em
2 / 116 sub-bloco para um bloco atual do vídeo; obter um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco ou um ou mais valores de diferença de vetor de movimento; obter um sinal de refinamento para o bloco atual com base no um ou mais gradientes espaciais obtidos ou no um ou mais valores de diferença de vetor de movimento obtidos; obter um sinal de previsão de movimento refinado para o bloco atual com base no sinal de previsão de movimento baseado em sub-bloco e no sinal de refinamento; e decodificar o bloco atual com base no sinal de previsão de movimento refinado. Várias outras modalidades também são reveladas na presente invenção.
BREVE DESCRIÇÃO DOS DESENHOS
[005] Uma melhor compreensão pode ser obtida a partir da descrição detalhada a seguir, dada a título de exemplo em conjunto com os desenhos anexos. As figuras na descrição são exemplos. Dessa forma, as Figuras e a descrição detalhada não devem ser consideradas limitadoras, e outros exemplos igualmente eficazes são possíveis e prováveis. Além disso, números de referência similares nas Figuras indicam elementos similares, e sendo que: A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo baseado em bloco representativo; A Figura 2 é um diagrama de blocos que ilustra um decodificador de vídeo representativo baseado em bloco; A Figura 3 é um diagrama de blocos que ilustra um codificador de vídeo baseado em bloco representativo com suporte de biprevisão generalizada (GBi); A Figura 4 é um diagrama que ilustra um módulo de GBi representativo para um codificador; A Figura 5 é um diagrama que ilustra um decodificador de vídeo representativo baseado em bloco com suporte de GBi; A Figura 6 é um diagrama que ilustra um módulo de GBi
3 / 116 representativo para um codificador; A Figura 7 é um diagrama que ilustra um fluxo óptico bidirecional representativo; As Figuras 8A e 8B são diagramas que ilustram um modo afim representativo de quatro parâmetros; A Figura 9 é um diagrama que ilustra um modo afim representativo de seis parâmetros; A Figura 10 é um diagrama que ilustra um procedimento de previsão entrelaçada representativo; A Figura 11 é um diagrama que ilustra valores de peso representativos (por exemplo, associados a pixels) em um sub-bloco; A Figura 12 é um diagrama que ilustra regiões nas quais a previsão entrelaçada é aplicada e outras regiões nas quais a previsão entrelaçada não é aplicada; As Figuras 13A e 13B são diagramas que ilustram um processo de SbTMVP; A Figura 14 é um diagrama que ilustra blocos de movimento vizinhos (por exemplo, blocos de movimento 4 × 4) que podem ser usados para derivação de parâmetro de movimento; A Figura 15 é um diagrama que ilustra blocos de movimento vizinhos que podem ser usados para derivação de parâmetro de movimento; A Figura 16 é um diagrama que ilustra um MV de sub-bloco e uma diferença de MV de nível de pixel após uma previsão com compensação de movimento afim baseada em sub-bloco; A Figura 17A é um diagrama que ilustra um procedimento representativo para determinar um MV correspondente a um centro real de um sub-bloco; A Figura 17B é um diagrama que ilustra os locais de amostras de saturação em um formato de saturação 4:2:0;
4 / 116
A Figura 17C é um diagrama que ilustra um sub-bloco de previsão estendido; A Figura 18A é um fluxograma que ilustra um primeiro método representativo de codificação/decodificação; A Figura 18B é um fluxograma que ilustra um segundo método representativo de codificação/decodificação; A Figura 19 é um fluxograma que ilustra um terceiro método representativo de codificação/decodificação; A Figura 20 é um fluxograma que ilustra um quarto método representativo de codificação/decodificação; A Figura 21 é um fluxograma que ilustra um quinto método representativo de codificação/decodificação; A Figura 22 é um fluxograma que ilustra um sexto método representativo de codificação/decodificação; A Figura 23 é um fluxograma que ilustra um sétimo método representativo de codificação/decodificação; A Figura 24 é um fluxograma que ilustra um oitavo método representativo de codificação/decodificação; A Figura 25 é um fluxograma que ilustra um método de cálculo de gradiente representativo; A Figura 26 é um fluxograma que ilustra um nono método representativo de codificação/decodificação; A Figura 27 é um fluxograma que ilustra um décimo método representativo de codificação/decodificação; A Figura 28 é um fluxograma que ilustra um décimo primeiro método representativo de codificação/decodificação; A Figura 29 é um fluxograma que ilustra um método de codificação representativo; A Figura 30 é um fluxograma que ilustra outro método de
5 / 116 codificação representativo; A Figura 31 é um fluxograma que ilustra um décimo segundo método representativo de codificação/decodificação; A Figura 32 é um fluxograma que ilustra um décimo terceiro método de codificação/decodificação representativo; A Figura 33 é um fluxograma que ilustra um décimo quarto método representativo de codificação/decodificação; A Figura 34A é um diagrama de sistema que ilustra um sistema de comunicações exemplificador, no qual uma ou mais modalidades reveladas podem ser implementadas; A Figura 34B é um diagrama de sistema que ilustra uma unidade de transmissão/recepção sem fio (WTRU) exemplificadora que pode ser usada no sistema de comunicações ilustrado na Figura 34A de acordo com uma modalidade; A Figura 34C é um diagrama de sistema que ilustra uma rede de acesso por rádio (“RAN” - Radio Access Network) exemplificadora e uma rede principal (“CN” - Core Network) exemplificadora que podem ser usadas no sistema de comunicações ilustrado na Figura 34A de acordo com uma modalidade; e A Figura 34D é um diagrama de sistema que ilustra uma RAN adicional exemplificadora e uma CN adicional exemplificadora que podem ser usadas no sistema de comunicações ilustrado na Figura 34A de acordo com uma modalidade.
DESCRIÇÃO DETALHADA Procedimentos de codificação de vídeo híbrida baseados em bloco
[006] Como a HEVC, a VVC é construída sobre a estrutura de codificação de vídeo híbrida baseada em bloco.
[007] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo híbrida baseado em bloco genérico.
6 / 116
[008] Com referência à Figura 1, o codificador 100 pode ser dotado de um sinal de vídeo de entrada 102 que é processado bloco a bloco (chamado de unidades de codificação (UC)) e pode ser usado para comprimir eficientemente sinais de vídeo de alta resolução (1080 p ou mais). Em HEVC, uma UC pode ser de até 64 x 64 pixels. Uma UC pode ser adicionalmente particionada em unidades de previsão (UP), para as quais podem ser aplicados procedimentos de previsão separados. Para cada bloco de vídeo de entrada (MB e/ou UC), é possível realizar previsão espacial 160 e/ou previsão temporal 162. A previsão espacial (ou intraprevisão) pode usar pixels de blocos vizinhos já codificados na mesma imagem/fatia de vídeo para predizer um bloco de vídeo atual.
[009] A previsão espacial pode reduzir a redundância espacial inerente no sinal de vídeo. A previsão temporal (também chamada de “interprevisão” ou “previsão com compensação de movimento”) usa pixels de imagens de vídeo já codificadas para prever o bloco de vídeo atual. A previsão temporal pode reduzir a redundância temporal inerente no sinal de vídeo. O sinal de previsão temporal para um dado bloco de vídeo pode ser (por exemplo, pode ser geralmente) sinalizado por um ou mais vetores de movimento (MVs - “Motion Vectors”) que indicam a quantidade e/ou a direção de movimento entre o bloco atual e seu bloco de referência.
[0010] Se múltiplas imagens de referência forem suportadas (como é o caso dos recentes padrões de codificação de vídeo, como H.264/AVC ou HEVC) para cada bloco de vídeo, seu índice de imagem de referência poderá ser enviado (por exemplo, poderá ser adicionalmente enviado); e/ou o índice de referência pode ser usado para identificar de qual imagem de referência no armazenamento de imagem de referência 164 vem o sinal de previsão temporal. Após a previsão espacial e/ou temporal, o bloco de decisão do modo 180 no codificador 100 pode escolher o melhor modo de previsão, por exemplo, com base no método/procedimento de otimização de distorção da
7 / 116 taxa. O bloco de previsão da previsão espacial 160 ou da previsão temporal 162 pode ser subtraído do bloco de vídeo atual 116; e/ou o residual de previsão pode ser descorrelacionado com o uso da transformada 104 e quantificado 106 para obtenção da taxa de bits intencionada. Os coeficientes residuais quantificados podem ser quantificados de forma inversa 110 e transformados de forma inversa 112 para formar o residual reconstruído, que pode ser adicionado de volta ao bloco de previsão em 126 para formar o bloco de vídeo reconstruído. Outra filtragem em circuito 166, como filtro de desbloqueio e filtros em circuito adaptativo, pode ser aplicada ao bloco de vídeo reconstruído antes de ele ser colocado no armazenamento de imagem de referência 164 e pode usada para codificar blocos de vídeo futuros. Para formar o fluxo de bits de vídeo de saída 120, o modo de codificação (inter e/ou intra), as informações do modo de previsão, as informações de movimento e os coeficientes residuais quantificados podem ser enviados (por exemplo, todos enviados) para a unidade de codificação de entropia 108 para serem adicionalmente comprimidos e/ou embalados para formar o fluxo de bits.
[0011] O codificador 100 pode ser implementado com o uso de um processador, uma memória e um transmissor que fornecem os vários elementos/módulos/unidades revelados acima. Por exemplo, o versado na técnica compreende que: o transmissor pode transmitir um fluxo de bits 120 para um decodificador; e que (2) o processador pode ser configurado para executar um software para permitir a recepção do vídeo de entrada 102 e a execução de funções associadas aos vários blocos do codificador 100.
[0012] A Figura 2 é um diagrama de blocos que ilustra um decodificador de vídeo baseado em bloco.
[0013] Com referência à Figura 2, o decodificador de vídeo 200 pode ser dotado do fluxo de bits de vídeo 202 que pode ser desembalado e decodificado por entropia na unidade de decodificação de entropia 208. O
8 / 116 modo de codificação e as informações de previsão podem ser enviados para a unidade de previsão espacial 260 (para o modo intracodificação) e/ou para a unidade de previsão temporal 262 (para o modo intercodificação) para a unidade adequada das mesmas a fim de formar o bloco de previsão. Os coeficientes de transformada residual podem ser enviados a uma unidade de quantificação inversa 210 e a uma unidade de transformada inversa 212 para reconstruir o bloco residual. O bloco reconstruído pode adicionalmente passar pela filtragem em circuito 266 antes de ser armazenado em um armazenamento de imagem de referência 264. O vídeo reconstruído 220 pode ser enviado, por exemplo, para acionar um dispositivo de exibição, além de ser salvo no armazenamento de imagem de referência 264 para uso na previsão de blocos de vídeo futuros.
[0014] O decodificador 200 pode ser implementado com o uso de um processador, uma memória e um receptor que podem fornecer os vários elementos/módulos/unidades revelados acima. Por exemplo, o versado na técnica compreende que: (1) o receptor pode ser configurado para receber um fluxo de bits 202; e (2) o processador pode ser configurado para executar um software para possibilitar a recepção do fluxo de bits 202 e a saída do vídeo reconstruído 220 e a execução de funções associadas aos vários blocos de decodificador 200.
[0015] O versado na técnica compreende que muitas das funções/operações/processos de um codificador baseado em bloco e de um decodificador baseado em bloco são iguais.
[0016] Nos codecs de vídeo modernos, a previsão com compensação de movimento bidirecional (PCM) pode ser usada para alta eficiência na remoção de redundância temporal explorando correlações temporais entre imagens. O sinal de biprevisão pode ser formado pela combinação de dois sinais de uniprevisão com o uso de um valor de peso igual a 0,5, que pode não ser ideal para combinar os sinais de uniprevisão, especialmente em alguma
9 / 116 condição em que a iluminância muda rapidamente de uma imagem de referência para outra. Certas técnicas/operações e/ou procedimentos de previsão podem ser implementados para compensar a variação de iluminância ao longo do tempo por meio da aplicação de alguns pesos e/ou valores de deslocamento globais/locais a valores de amostra em imagens de referência (por exemplo, alguns ou cada um dos valores de amostra em imagens de referência).
[0017] O uso de previsão com compensação de movimento bidirecional (PCM) em codecs de vídeo possibilita a remoção de redundâncias temporais por meio da exploração de correlações temporais entre imagens. Um sinal de biprevisão pode ser formado mediante a combinação de dois sinais de uniprevisão com o uso de um valor de peso (por exemplo, 0,5). Em certos vídeos, as características de iluminância podem mudar rapidamente de uma imagem de referência para outra. Dessa forma, as técnicas de previsão podem compensar variações na iluminância ao longo do tempo (por exemplo, transições de desvanecimento) aplicando-se pesos globais ou locais e/ou valores de deslocamento a um ou mais valores de amostra nas imagens de referência.
[0018] A biprevisão generalizada (GBi) pode otimizar a PCM para o modo de biprevisão. No modo de biprevisão, o sinal de previsão na amostra x conforme dado pode ser calculado pela Equação 1 a seguir: P[x] = (1)
[0019] Na equação anteriormente mencionada, P[x] pode denotar o sinal de previsão resultante de uma amostra x localizada em uma posição de imagem x. Pi[x+vi] pode ser o sinal de previsão com compensação de movimento de x com o uso do vetor de movimento (MV) vi para a i-ésima lista (por exemplo, lista 0, lista 1, etc.). Os valores w0 e w1 podem ser os dois valores de peso compartilhados através das amostras (por exemplo, todas elas) em um bloco. Com base nessa equação, uma variedade de sinais de
10 / 116 previsão pode ser obtida ajustando-se o valor de peso, w0 e w1. Algumas configurações de w0 e w1 podem indicar a mesma previsão que a uniprevisão e a biprevisão. Por exemplo, (w0, w1) = (1, 0) pode ser usado para uniprevisão com a lista de referência L0. A indicação de (w0, w1) = (0, 1) pode ser usada para uniprevisão com a lista de referência L1. O uso de (w0, w1) = (0,5, 0,5) pode ser para a biprevisão com duas listas de referência. O peso pode ser sinalizado por UC. Para reduzir a sobrecarga de sinalização, pode ser aplicada uma restrição, como w0+ w1=1, de modo que um peso possa ser sinalizado. Dessa forma, a Equação 1 pode ser adicionalmente simplificada conforme estabelecido na Equação 2 a seguir: P[x] = (2)
[0020] Para reduzir ainda mais a sobrecarga de sinalização ponderal, w1 pode ser discretizado (por exemplo, -2/8, 2/8, 3/8, 4/8, 5/8, 6/8, 10/8, etc.). Cada valor de peso pode, então, ser indicado por um valor de índice dentro de uma faixa limitada (por exemplo, pequena).
[0021] A Figura 3 é um diagrama de blocos que ilustra um codificador de vídeo com base em bloco representativo com suporte de GBi.
[0022] O codificador 300 pode incluir um módulo de decisão de modo 304, um módulo de previsão espacial 306, um módulo de previsão de movimento 308, um módulo de transformada 310, um módulo de quantificação 312, um módulo de quantificação inversa 316, um módulo de transformada inversa 318, um filtro de laço 320, um armazenamento de imagem de referência 322 e um módulo de codificação de entropia 314. Alguns ou todos os módulos ou componentes do codificador (por exemplo, o módulo de previsão espacial 306) podem ser iguais ou similares àqueles descritos em conexão com a Figura 1. Além disso, o módulo de previsão espacial 306 e o módulo de previsão de movimento 308 podem ser módulos de previsão de domínio de pixel. Dessa forma, um fluxo de bits de vídeo de entrada 302 pode ser processado de maneira similar ao fluxo de bits de vídeo
11 / 116 de entrada 102, embora o módulo de previsão de movimento 308 possa incluir adicionalmente o suporte de GBi. Dessa forma, o módulo de previsão de movimento 308 pode combinar dois sinais de previsão separados de modo a obter uma média ponderada. Adicionalmente, o índice de peso selecionado pode ser sinalizado no fluxo de bits de vídeo de saída 324.
[0023] O codificador 300 pode ser implementado com o uso de um processador, uma memória e um transmissor que fornecem os vários elementos/módulos/unidades revelados acima. Por exemplo, o versado na técnica compreende que: o transmissor pode transmitir um fluxo de bits 324 para um decodificador; e que (2) o processador pode ser configurado para executar um software para permitir a recepção do vídeo de entrada 302 e a execução de funções associadas aos vários blocos do codificador 300.
[0024] A Figura 4 é um diagrama que ilustra um módulo de estimativa de GBi representativo 400 que pode ser empregado em um módulo de previsão de movimento de um codificador, como o módulo de previsão de movimento 308. O módulo de estimativa de GBi 400 pode incluir um módulo de estimativa de valor de peso 402 e um módulo de estimativa de movimento
404. Dessa forma, o módulo de estimativa de GBi 400 pode usar um processo (por exemplo, uma operação/processo de duas etapas) para gerar um sinal de interprevisão, como um sinal de interprevisão final. O módulo de estimativa de movimento 404 pode executar uma estimativa de movimento usando um bloco de vídeo de entrada 401 e uma ou mais imagens de referência recebidas de um armazenamento de imagem de referência 406 e buscando dois vetores de movimento (MVs) ideais que apontam para (por exemplo, dois) blocos de referência. O módulo de estimativa de valor de peso 402 pode receber: (1) uma saída do módulo de estimativa de movimento 404 (por exemplo, vetores de movimento v0 e v1), uma ou mais imagens de referência provenientes do armazenamento de imagem de referência 406 e informações de peso W, e pode buscar o índice de peso ideal para minimizar o erro de biprevisão
12 / 116 ponderado entre o bloco de vídeo e a biprevisão atual. Contempla-se que as informações sobre o peso W podem descrever uma lista de valores de peso disponíveis ou conjuntos de pesos de modo que o índice de peso determinado e as informações sobre o peso W possam ser usados para especificar os pesos w0 e w1 a serem usados em GBi. O sinal de previsão da biprevisão generalizada pode ser calculado como uma média ponderada dos dois blocos de previsão. A saída do módulo de estimativa de GBi 400 pode incluir um sinal de interprevisão, vetores de movimento v0 e v1 e/ou o índice de peso weight_idx, entre outros).
[0025] A Figura 5 é um diagrama que ilustra um decodificador de vídeo representativo baseado em bloco com suporte de GBi que pode decodificar um fluxo de bits 502 (por exemplo, a partir de um codificador) que suporta GBi, como o fluxo de bits 324 produzido pelo codificador 300 descrito em conexão com a Figura 3. Conforme mostrado na Figura 5, o decodificador de vídeo 500 pode incluir um decodificador de entropia 504, um módulo de previsão espacial 506, um módulo de previsão de movimento 508, uma memória de imagem de referência 510, um módulo de quantificação inversa 512, um módulo de transformada inversa 514 e/ou um módulo de filtro em circuito 518. Alguns ou todos os módulos do decodificador podem ser iguais, ou similares, àqueles descritos em conexão com a Figura 2, embora o módulo de previsão de movimento 508 possa incluir adicionalmente o suporte de GBi. Dessa forma, o modo de codificação e as informações de previsão podem ser usados para derivar um sinal de previsão com o uso de previsão espacial ou PCM com suporte de GBi. Para GBi, as informações de movimento do bloco e o valor de peso (por exemplo, sob a forma de um índice que indica um valor de peso) podem ser recebidos e decodificados para gerar o bloco de previsão.
[0026] O decodificador 500 pode ser implementado com o uso de um processador, uma memória e um receptor que pode fornecer os vários
13 / 116 elementos/módulos/unidades revelados acima. Por exemplo, o versado na técnica compreende que: (1) o receptor pode ser configurado para receber um fluxo de bits 502; e (2) o processador pode ser configurado para executar software para possibilitar a recepção do fluxo de bits 502 e a saída do vídeo reconstruído 520, bem como a execução de funções associadas aos vários blocos de decodificador 500.
[0027] A Figura 6 é um diagrama que ilustra um módulo de previsão de GBi representativo que pode ser empregado em um módulo de previsão de movimento de um decodificador, como o módulo de previsão de movimento
508.
[0028] Com referência à Figura 6, o módulo de previsão de GBi pode incluir um módulo de cálculo de média ponderada 602 e um módulo de compensação de movimento 604, que pode receber uma ou mais imagens de referência provenientes de um armazenamento de imagem de referência 606. O módulo de cálculo de média ponderada 602 pode receber a saída do módulo de compensação de movimento 604, informações de peso W e um índice de peso (por exemplo, weight_idx). A saída do módulo de compensação de movimento 604 pode incluir informações de movimento, que podem corresponder a blocos da imagem. O módulo de previsão de GBi 600 pode usar as informações de movimento de bloco e o valor de peso para computar um sinal de previsão de GBi (por exemplo, um sinal interprevisão 608) como uma média ponderada de (por exemplo, dois) blocos de previsão com compensação de movimento. Previsão bipreditiva representativa baseada no modelo de fluxo óptico
[0029] A Figura 7 é um diagrama que ilustra um fluxo óptico bidirecional representativo.
[0030] Com referência à Figura 7, uma previsão bipreditiva pode ser baseada em um modelo de fluxo óptico. Por exemplo, uma previsão associada a um bloco atual (por exemplo, curblk 700) pode ser baseada no fluxo óptico
14 / 116 associado a um primeiro bloco de previsão 702 (por exemplo, bloco de previsão temporalmente anterior, por exemplo, deslocado no tempo por )e um segundo bloco de previsão 704 (por exemplo, bloco temporalmente futuro, por exemplo, deslocado no tempo por ). A biprevisão na codificação de vídeo pode ser uma combinação de dois blocos de previsão temporal 702 e 704 obtidos a partir das imagens de referência que já estão reconstruídas. Devido à limitação da compensação de movimento baseada em bloco (CM), poderia haver um pequeno movimento remanescente que pode ser observado entre as amostras de dois blocos de previsão, reduzindo, dessa forma, a eficiência da previsão com compensação de movimento. O fluxo óptico bidirecional (BIO - “Bi-directional Optical”, ou chamado de BDOF - “Bi- directional Optical Flow”) pode ser aplicado para reduzir os impactos de tal movimento para cada amostra dentro de um bloco. O BIO pode fornecer um refinamento de movimento em relação à amostra que pode ser feito após as previsões com compensação de movimento baseado em bloco quando a biprevisão é usada. Para o BIO, a derivação do vetor de movimento refinado para cada amostra em um bloco pode ser baseada no modelo de fluxo óptico clássico. Por exemplo, quando é o valor de amostra na coordenada (x, y) do bloco de previsão derivado da lista de imagem de referência k (k = 0, 1), e e são os gradientes horizontal e vertical da amostra, dado o modelo de fluxo óptico, o refinamento de movimento em (x, y) pode ser derivado pela Equação 3 a seguir: (3)
[0031] Na Figura 7, (MVx0, MVy0) associado ao primeiro bloco de previsão 702 e (MVx1, MVy1) associado ao segundo bloco de previsão 704 indicam os vetores de movimento no nível do bloco que podem ser usados para gerar os dois blocos de previsão e . O refinamento de movimento no local da amostra (x, y) pode ser calculado minimizando-se a
15 / 116 diferença ∆ entre os valores das amostras após a compensação de refinamento de movimento (por exemplo, A e B na Figura 7), conforme apresentado na Equação 4 a seguir: (4)
[0032] Por exemplo, para assegurar a regularidade do refinamento de movimento derivado, contempla-se que o refinamento de movimento é consistente para as amostras dentro de uma pequena unidade (por exemplo, um bloco 4 x 4 ou outras pequenas unidades). No conjunto de valores típicos (BMS)-2,0, o valor de é derivado minimizando-se ∆ dentro da janela 6 x 6 Ω em torno de cada bloco 4 x 4 conforme apresentado na Equação 5 a seguir: (5)
[0033] Para resolver a otimização especificada na Equação 5, o BIO pode usar um método/operação/procedimento progressivo que pode otimizar o refinamento do movimento na direção horizontal e na direção vertical (por exemplo, então na direção vertical). Isso pode resultar nas Equações/Inequalidades 6 e 7 a seguir: (6) (7)
[0034] em que pode ser uma função piso que pode emitir o maior valor que é menor que ou igual à entrada, e pode ser o limite de refinamento de movimento, por exemplo, para evitar a propagação de erro devido ao ruído de codificação e/ou movimento local irregular, que é igual a . Os valores de , , , e podem ser adicionalmente calculados conforme apresentado nas Equações 8 a 12 a seguir: (8) (9) (10)
16 / 116 (11) (12) em que os vários gradientes podem ser apresentados nas Equações 13 a 15 a seguir: (13) (14) (15)
[0035] Por exemplo, em BMS-2.0, os gradientes do BIO nas Equações 13 a 15 em ambas as direções horizontal e vertical podem ser obtidos diretamente calculando-se a diferença entre duas amostras vizinhas (por exemplo, horizontal ou verticalmente dependendo da direção do gradiente que é derivado) em uma posição de amostra de cada bloco de previsão L0/L1, conforme apresentado nas Equações 16 e 17 a seguir: (16) (17)
[0036] Nas Equações 8 a 12, L pode ser o aumento de profundidade de bits para o processo/procedimento do BIO interno a fim de manter a precisão dos dados, por exemplo, que pode ser ajustada para 5 em BMS-2.0. Para evitar a divisão por um valor menor, os parâmetros de regulação r e m nas Equações 6 e 7 podem ser definidos conforme apresentado nas Equações 18 e 19 a seguir: (18) (19) em que BD pode ser a profundidade de bits do vídeo de entrada. Com base no refinamento de movimento derivado pelas Equações 4 e 5, o sinal de biprevisão final da UC atual pode ser calculado mediante a interpolação das amostras de previsão L0/L1 ao longo da trajetória de
17 / 116 movimento com base na Equação 3 de fluxo óptico, conforme especificado nas Equações 20 e 21 a seguir: (20) (21) em que e podem ser a passagem e o deslocamento para a direita que podem ser aplicados para combinar os sinais de previsão L0 e L1 para biprevisão, por exemplo, que podem ser definidos iguais a e , respectivamente. A designação é uma função de arredondamento que pode arredondar o valor de entrada para o valor inteiro mais próximo. Modo afim representativo
[0037] Em HEVC, um modelo de movimento de translação (apenas um movimento translacional) é aplicado para a previsão com compensação de movimento. No mundo real, há muitos tipos de movimento (por exemplo, aproximação/afastamento, rotação, movimentos em perspectiva e outros movimentos irregulares). No modelo de teste de VVC (VTM)-2.0, é aplicada uma previsão com compensação de movimento afim. O modelo de movimento afim é de 4 parâmetros ou 6 parâmetros. O primeiro sinalizador para cada UC intercodificada é sinalizado para indicar se o modelo de movimento de translação ou o modelo de movimento afim é aplicado para interprevisão. Se o modelo de movimento afim for aplicado, um segundo sinalizador é enviado para indicar se o modelo é um modelo de 4 parâmetros ou de 6 parâmetros.
[0038] O modelo de movimento afim de 4 parâmetros tem os seguintes parâmetros: dois parâmetros para movimento de translação nas direções horizontal e vertical, um parâmetro para movimento de ampliação
18 / 116 em ambas as direções e um parâmetro para movimento de rotação em ambas as direções. Um parâmetro de ampliação (zoom) horizontal é igual a um parâmetro de ampliação vertical. Um parâmetro de rotação horizontal é igual a um parâmetro de rotação vertical. O modelo de movimento afim de quatro parâmetros é codificado em VTM com o uso de dois vetores de movimento em duas posições de ponto de controle definidas em um canto superior esquerdo 810 e um canto superior direito 820 da UC atual. Outras posições de ponto de controle também são possíveis, como em outros cantos e/ou bordas da UC atual.
[0039] Embora um modelo de movimento afim seja descrito acima, outros modelos afins são igualmente possíveis e podem ser usados em várias modalidades da presente invenção.
[0040] As Figuras 8A e 8B são diagramas que ilustram um modelo afim representativo de quatro parâmetros e uma derivação de movimento de nível de sub-bloco para blocos afins. Com referência às Figuras 8A e 8B, o campo de movimento afim do bloco é descrito por dois vetores de movimento de ponto de controle em um primeiro ponto de controle 810 (em um canto esquerdo superior do bloco atual) e em um segundo ponto de controle 820 (em um canto direito superior do bloco de corrente), respectivamente. Com base no movimento de ponto de controle, o campo de movimento (vx, vy) de um bloco codificado afim é descrito conforme apresentado nas Equações 22 e 23 a seguir: (22) (23) em que (v0x, v0y) pode ser um vetor de movimento do ponto de controle do canto superior esquerdo 810, (v1x, v1y) pode ser um vetor de movimento do ponto de controle do canto superior direito 820, conforme mostrado na Figura 8A, e w pode ser a largura da UC. Por exemplo, em VTM-2.0, o campo de movimento de uma UC codificada afim é derivado no
19 / 116 nível do bloco 4 x 4; ou seja, (vx, vy) é derivado para cada um dos blocos 4 x 4 dentro da UC atual e aplicado ao bloco 4 x 4 correspondente.
[0041] Os quatro parâmetros de modelo afim de 4 parâmetros podem ser estimados iterativamente. Os pares de MV na etapa k podem ser estipulados como { , , o sinal original (por exemplo, sinal de luminância) como , e o sinal de previsão (por exemplo, sinal de luminância) como . Os gradientes espaciais e podem ser derivados com um filtro Sobel aplicado no sinal de previsão na direção horizontal e/ou vertical, por exemplo, respectivamente. O derivado da Equação 3 pode ser representado conforme apresentado nas Equações 24 e 25 a seguir: (24) (25) em que (a, b) podem ser parâmetros de translação delta e (c, d) podem ser parâmetros de ampliação e rotação delta na etapa k. O MV delta em pontos de controle pode ser derivado com suas coordenadas conforme estabelecido nas Equações 26 a 29 da seguinte forma. Por exemplo, (0, 0), (w, 0) podem ser coordenadas para os pontos de controle superior esquerdo e superior direito 810 e 820, respectivamente. (26) (27) (28) (29)
[0042] Com base na equação de fluxo óptico, a relação entre a alteração de intensidade (por exemplo, luminância) e o gradiente espacial e o movimento temporal é formulada na Equação 30 a seguir: (30)
[0043] Mediante a substituição de e pelas Equações
20 / 116 24 e 25, a Equação 31 para o parâmetro (a, b, c, d) é obtida da seguinte forma: (31)
[0044] Uma vez que as amostras (por exemplo, todas as amostras) na UC satisfazem a Equação 31, o conjunto de parâmetros (por exemplo, a, b, c, d) pode ser resolvido com o uso, por exemplo, de um método de erro dos mínimos quadrados. Os MVs em dois pontos de controle { , na etapa (k+1) podem ser resolvidos com as Equações 26 a 29 e podem ser arredondados para uma precisão específica (por exemplo, 1/4 de precisão de pixel (pel) ou outra precisão de subpixel, entre outras). Com o uso da iteração, os MVs em dois pontos de controle podem ser refinados, por exemplo, até a convergência (por exemplo, quando os parâmetros (a, b, c, d) são todos zeros ou o tempo de iteração atinge um limite predefinido).
[0045] A Figura 9 é um diagrama que ilustra um modo afim representativo de seis parâmetros no qual, por exemplo: V0, V1 e V2 são vetores de movimento nos pontos de controle 910, 920 e 930, respectivamente, e (MVx, MVy) é o vetor de movimento de um sub-bloco centralizado na posição (x, y).
[0046] Com referência à Figura 9, um modelo de movimento afim (por exemplo, com 6 parâmetros) pode ter qualquer um dos seguintes parâmetros: (1) um parâmetro para movimento de translação na direção horizontal; (2) um parâmetro para movimento de translação na direção vertical, (3) um parâmetro para o movimento de ampliação (zoom) na direção horizontal; (4) um parâmetro para movimento de rotação na direção horizontal, (5) um parâmetro para movimento de ampliação (zoom) na direção vertical e/ou (6) um parâmetro para movimento de rotação na direção vertical. O modelo de movimento afim de 6 parâmetros pode ser codificado com três MVs em três pontos de controle 910, 920 e 930. Conforme mostrado na Figura 9, três pontos de controle 910, 920 e 930 para uma UC codificada
21 / 116 afim de 6 parâmetros são definidos nos cantos esquerdo superior, direito superior e esquerdo inferior da UC, respectivamente. O movimento no ponto de controle superior esquerdo 910 pode estar relacionado a um movimento de translação, e o movimento no ponto de controle superior direito 920 pode estar relacionado a um movimento de rotação na direção horizontal e/ou um movimento de ampliação (zoom) na direção horizontal, e o movimento no ponto de controle inferior esquerdo 930 pode estar relacionado a uma rotação na direção vertical e/ou a um movimento de ampliação (zoom) na direção vertical. Para um modelo de movimento afim de 6 parâmetros, o movimento de rotação e/ou o movimento de ampliação (zoom) na direção horizontal podem não ser iguais aos mesmos movimentos na direção vertical. O vetor de movimento de cada sub-bloco (vx, vy) pode ser derivado com o uso de três MVs nos pontos de controle 910, 920 e 930, conforme apresentado nas Equações 32 e 33 a seguir: (32) (33) em que (v2x, v2y) pode ser o vetor de movimento V2 do ponto de controle inferior esquerdo 930, (x, y) pode ser a posição central do sub- bloco, w pode ser a largura da UC e h pode ser a altura da UC.
[0047] Os seis parâmetros do modelo afim de 6 parâmetros podem ser estimados de maneira similar. As Equações 24 e 25 podem ser alteradas conforme apresentado nas Equações 34 e 35 a seguir: (34) (35) em que (a, b) podem ser parâmetros de translação delta, (c, d) podem ser parâmetros de ampliação e rotação delta para direção horizontal e (e, f) podem ser parâmetros de ampliação e rotação delta para direção vertical, na etapa k. A Equação 31 pode ser alterada conforme apresentado na Equação 36 a seguir:
22 / 116 (36)
[0048] O conjunto de parâmetros (a, b, c, d, e, f) pode ser resolvido, por exemplo, com o uso do método/procedimento/operação dos mínimos quadrados considerando as amostras (por exemplo, todas as amostras) dentro da UC. O MV do ponto de controle esquerdo superior pode ser calculado com as Equações 26 a 29. O MV do ponto de controle superior direito pode ser calculado com as Equações 37 e 38 conforme apresentado a seguir. O MV do ponto de controle inferior esquerdo pode ser calculado com as Equações 39 e 40 conforme apresentado abaixo. (37) (38) (39) (40)
[0049] Embora os modelos afins de 4 e 6 parâmetros sejam mostrados nas Figuras 8A, 8B e 9, o versado na técnica compreende que o modelo afim com diferentes números de parâmetros e/ou diferentes pontos de controle são igualmente possíveis.
[0050] Embora os modelos afins sejam aqui descritos em conjunto com o refinamento de fluxo óptico, o versado na técnica entende que outros modelos de movimento em conjunto com o refinamento de fluxo óptico são igualmente possíveis. Previsão entrelaçada representativa para compensação de movimento afim
[0051] Com a compensação de movimento afim (CMA), por exemplo, em VTM, um bloco de codificação é dividido em sub-blocos tão pequenos quanto 4 × 4, cada um dos quais podendo ser atribuído com um vetor de movimento individual (MV) derivado pelo modelo afim, por exemplo, conforme mostrado nas Figuras 8A e 8B ou na Figura 9. Com um
23 / 116 modelo afim de 4 parâmetros ou 6 parâmetros, o MV pode ser derivado de MVs dos dois ou três pontos de controle.
[0052] A CMA pode enfrentar um dilema associado ao tamanho dos sub-blocos. Com sub-blocos menores, a CMA pode alcançar um melhor desempenho de codificação, mas pode sofrer com uma carga maior de complexidade.
[0053] A Figura 10 é um diagrama que ilustra um procedimento de previsão entrelaçada representativo que pode alcançar uma granularidade mais fina de MVs, por exemplo, em troca de um aumento moderado na complexidade.
[0054] Na Figura 10, um bloco de codificação 1010 pode ser dividido em sub-blocos com dois padrões de divisão diferentes (por exemplo, o primeiro e o segundo padrões 0 e 1). O primeiro padrão de divisão 0 (por exemplo, um primeiro padrão de sub-bloco, por exemplo, um padrão de sub- bloco 4 x 4) pode ser igual àquele em VTM, e o segundo padrão de divisão 1 (por exemplo, um segundo padrão de sub-bloco sobreposto e/ou entrelaçado) pode dividir o bloco de codificação 1010 em sub-blocos 4 × 4 com um deslocamento de 2 × 2 do primeiro padrão de divisão 0, conforme ilustrado na Figura 10. Várias previsões auxiliares (por exemplo, duas previsões auxiliares P0 e P1) podem ser geradas pela CMA com os dois padrões de divisão (por exemplo, o primeiro e o segundo padrões de divisão 0 e 1). O MV para cada sub-bloco em cada um dos padrões de divisão 0 e 1 pode ser derivado dos vetores de movimento de ponto de controle (CPMVs) pelo modelo afim.
[0055] A previsão final P pode ser calculada como uma soma ponderada das previsões auxiliares (por exemplo, duas previsões auxiliares P0 e P1), formuladas conforme apresentado nas Equações 41 e 42 a seguir: (41) (42)
[0056] A Figura 11 é um diagrama que ilustra valores de peso
24 / 116 representativos (por exemplo, associados a pixels) em um sub-bloco. Com referência à Figura 11, uma amostra de previsão auxiliar situada no centro (por exemplo, pixels centrais) do sub-bloco 1100 pode ser associada a um valor de peso 3 e uma amostra de previsão auxiliar situada em um limite do sub-bloco 1100 pode ser associada a um valor de peso 1.
[0057] A Figura 12 é um diagrama que ilustra regiões nas quais a previsão entrelaçada é aplicada e outras regiões nas quais a previsão entrelaçada não é aplicada. Com referência à Figura 12, uma região 1200 pode incluir uma primeira região 1210 (mostrada na Figura 12 como não hachurada de modo entrelaçado), por exemplo, tendo sub-blocos 4 x 4 nos quais a previsão entrelaçada é aplicada e uma segunda região 1220 (mostrada na Figura 12 como hachurada de modo entrelaçado), por exemplo, na qual a previsão entrelaçada não é aplicada. Para evitar uma pequena compensação de movimento de bloco, a previsão entrelaçada pode ser aplicada apenas a regiões em que o tamanho dos sub-blocos atinge um tamanho limite (por exemplo, é 4 × 4), por exemplo, tanto para o primeiro como para o segundo padrões de divisão.
[0058] Em VTM-3.0, o tamanho dos sub-blocos pode ser 4 × 4 nos componentes de saturação, e a previsão entrelaçada pode ser aplicada aos componentes de saturação e/ou ao componente luma. A largura de banda pode não ser aumentada por previsão entrelaçada, visto que a região usada para fazer a compensação de movimento (CM) para os sub-blocos (por exemplo, todos os sub-blocos) pode ser buscada em conjunto como um todo na CMA. Por uma questão de flexibilidade, um sinalizador pode ser sinalizado em um cabeçalho de fatia para indicar se a previsão entrelaçada é usada ou não. Para previsão entrelaçada, o sinalizador pode ser sinalizado como um sinalizador de 1 bit (por exemplo, um primeiro nível lógico que pode sempre ser sinalizado como 0 ou 1). Procedimentos representativos para previsão de vetor de movimento temporal
25 / 116 baseada em sub-bloco (SbTMVP - “Sub-block-based temporal Motion Vector Prediction”)
[0059] A SbTMVP é suportada por VTM. Similar à previsão de vetor de movimento temporal (TMVP - “Temporal Motion Vector Prediction”) em HEVC, a SbTMVP pode usar um campo de movimento na imagem colocalizada, por exemplo, para melhorar a previsão de vetor de movimento e o modo de integração para as UCs na imagem atual. A mesma imagem colocalizada usada pela TMVP pode ser usada para SbTMVP. A SbTMVP pode diferir da TMVP no seguinte: (1) A TMVP pode prever o movimento em um nível de UC, e a SbTMVP pode prever o movimento em um nível de sub-UC; e/ou (2) a TMVP pode buscar os vetores de movimento temporal a partir do bloco colocalizado na imagem colocalizada (por exemplo, o bloco colocalizado pode ser o bloco da direita inferior ou do centro em relação à UC atual), e a SbTMVP pode aplicar um deslocamento de movimento antes de buscar as informações de movimento temporal na imagem colocalizada (por exemplo, o deslocamento de movimento pode ser obtido a partir do vetor de movimento de um dos blocos vizinhos espaciais da UC atual), entre outros.
[0060] As Figuras 13A e 13B são diagramas que ilustram um processo de SbTMVP. A Figura 13A mostra os blocos vizinhos espaciais usados pela ATMVP, e a Figura 13B mostra uma derivação de um campo de movimento de sub-UC aplicando-se um deslocamento de movimento a partir do vizinho espacial e escalonando-se as informações de movimento das sub- UCs colocalizadas correspondentes.
[0061] Com referência às Figuras 13A e 13B, a SbTMVP pode prever vetores de movimento das sub-UCs nas operações de UC atuais (por exemplo, em duas operações). Na primeira operação, os blocos vizinhos espaciais A1, B1, B0 e A0 podem ser examinados em uma ordem de A1, B1, B0 e A0. Assim que e/ou após o primeiro bloco vizinho espacial, que tem um vetor de movimento que usa a imagem colocalizada conforme sua imagem de
26 / 116 referência é identificada, esse vetor de movimento pode ser selecionado para ser o deslocamento de movimento a ser aplicado. Se tal movimento não for identificado a partir dos blocos vizinhos espaciais, então o deslocamento de movimento pode ser ajustado em (0, 0). Na segunda operação, o deslocamento de movimento identificado na primeira operação pode ser aplicado (por exemplo, adicionado às coordenadas do bloco atual) para obter informações de movimento no nível de sub-UC (por exemplo, vetores de movimento e índices de referência) a partir da imagem colocalizada, conforme ilustrado na Figura 13B. O exemplo na Figura 13B ilustra o deslocamento de movimento ajustado para bloquear o movimento do A1. Para cada sub-UC, as informações de movimento de seu bloco correspondente (por exemplo, a menor grade de movimento que cobre a amostra central) na imagem colocalizada podem ser usadas para derivar as informações de movimento para a sub-UC. Após as informações de movimento da sub-UC colocalizada serem identificadas, elas podem ser convertidas nos vetores de movimento e índices de referência da sub-UC atual de maneira similar ao processo de TMVP de HEVC. Por exemplo, a alteração de escala do movimento temporal pode ser aplicada para alinhar as imagens de referência dos vetores de movimento temporal com as da UC atual.
[0062] Uma lista de integrações combinadas baseadas em sub-bloco pode ser usada em VTM-3 e pode conter ou incluir ambos os candidatos à integração SbTMVP e afim, por exemplo, para ser usada para a sinalização de um modo de integração baseada em sub-bloco. O modo SbTMVP pode ser habilitado/desabilitado por um sinalizador de conjunto de parâmetros de sequência (SPS - “Sequence Parameter Set”). Se o modo SbTMVP estiver habilitado, o previsor de SbTMVP pode ser adicionado como a primeira entrada da lista de candidatos à integração baseada em sub-bloco e seguido pelos candidatos à integração afim. O tamanho da lista de integrações baseadas em sub-bloco pode ser sinalizado em SPS, e o tamanho máximo
27 / 116 permitido da lista de integrações baseadas em sub-bloco pode ser um número inteiro, por exemplo, 5 em VTM3.
[0063] O tamanho do sub-UC usado em SbTMVP pode ser fixado, por exemplo, em 8 x 8 ou outro tamanho do sub-UC e, conforme feito para o modo de integração afim, o modo SbTMVP pode ser aplicável (por exemplo, pode ser aplicável apenas) à UC com largura e altura que possam ser maiores ou iguais a 8. A lógica de codificação do candidato à integração de SbTMVP adicional pode ser a mesma usada para os outros candidatos à integração. Por exemplo, para cada UC na fatia P ou B, uma verificação de distorção de taxa adicional (RD - “Rate Distortion”) pode ser feita para decidir se o candidato SbTMVP deve ser usado. Campo de vetor de movimento baseado em regressão representativo
[0064] Para fornecer uma granularidade fina de vetores de movimento dentro de um bloco, uma ferramenta de campo de vetor de movimento baseada em regressão (RMVF - “Regression based Motion Vector Field”) pode ser implementada (por exemplo, em JVET-M0302), a qual pode tentar modelar os vetores de movimento de cada bloco em um nível de sub-bloco com base nos vetores de movimento espacialmente vizinhos.
[0065] A Figura 14 é um diagrama que ilustra blocos de movimento vizinhos (por exemplo, blocos de movimento 4 × 4) que podem ser usados para derivação de parâmetro de movimento. Uma fileira 1410 e uma coluna 1420 de vetores de movimento vizinhos imediatos baseadas em um sub-bloco 4 × 4 (e em seus locais centrais) de cada lado do bloco podem ser usadas em um processo de regressão. Por exemplo, os vetores de movimento vizinhos podem ser usados na derivação do parâmetro de movimento de RMVF.
[0066] A Figura 15 é um diagrama que ilustra blocos de movimento vizinhos que podem ser usados para derivação de parâmetro de movimento para reduzir informações de movimento de vizinhos (por exemplo, o número de blocos de movimento vizinhos a serem usados no processo de regressão
28 / 116 relativo à Figura 14 pode ser reduzido). Pode ser usada uma quantidade reduzida de informações de movimento de vizinhos para a derivação de parâmetro de RMVF dos blocos de movimento 4 × 4 vizinhos para a derivação de parâmetro de movimento (por exemplo, cerca de metade, por exemplo, os outros blocos de movimento vizinhos alternados podem ser usados para a derivação de parâmetro de movimento). Certos blocos de movimento vizinhos da fileira 1410 e da coluna 1420 podem ser selecionados, determinados ou predeterminados para reduzir as informações de movimentos vizinhos.
[0067] Embora cerca de metade dos blocos de movimento vizinhos da fileira 1410 e da coluna 1420 sejam mostrados como selecionados, outras porcentagens (com outros locais de bloco de movimento) podem ser selecionadas, por exemplo, para reduzir o número de blocos de movimento vizinhos a serem usados no processo de regressão.
[0068] Cinco regiões (por exemplo, esquerda inferior, esquerda, esquerda superior, superior, direita superior) conforme mostrado nas figuras podem ser usadas durante a coleta das informações de movimento para derivação de parâmetro de movimento. As regiões de movimento de referência direita superior e esquerda inferior podem ser limitadas à metade (por exemplo, apenas metade) da largura ou altura correspondente do bloco atual.
[0069] No modo RMVF, o movimento do bloco pode ser definido por um modelo de movimento de 6 parâmetros. Esses parâmetros , , , , e podem ser calculados resolvendo-se um modelo de regressão linear no sentido de erro quadrático médio (MSE - “mean square error”). A entrada para o modelo de regressão pode consistir em ou pode incluir os locais centrais (x, y) e/ou vetores de movimento ( e ) dos sub-blocos vizinhos 4 × 4 disponíveis conforme definido acima.
[0070] O vetor de movimento ( , ) para um sub-
29 / 116 bloco 8 × 8 com localização central em ( , ) pode ser calculado conforme apresentado na Equação 43 a seguir: (43)
[0071] Os vetores de movimento podem ser calculados para sub- blocos 8 × 8 em relação ao local central dos sub-blocos (por exemplo, cada sub-bloco). Por exemplo, a compensação de movimento pode ser aplicada em precisão de um sub-bloco 8 × 8 no modo RMVF. A fim de ter uma modelagem eficiente para o campo de vetor de movimento, a ferramenta RMVF é aplicada apenas nos casos em que pelo menos um vetor de movimento de pelo menos três das regiões candidatas está disponível.
[0072] Os parâmetros do modelo de movimento afim podem ser usados para derivar o vetor de movimento de certos pixels (por exemplo, cada pixel) em uma UC. Embora a complexidade de geração de previsão com compensação de movimento afim baseada em pixel possa ser alta (por exemplo, muito alta) e também porque um requisito de largura de banda de acesso de memória para esse tipo de CM baseada em amostra pode ser alto, um procedimento/método de compensação de movimento afim baseado em sub-bloco pode ser implementado (por exemplo, por VVC). Por exemplo, uma UC pode ser dividida em sub-blocos (por exemplo, sub-blocos 4 x 4, sub-blocos quadrados e/ou sub-blocos em formato não quadrado). Cada um dos sub-blocos pode ser atribuído com um MV que pode ser derivado de parâmetros de modelo afim. O MV pode ser um MV em um centro do sub- bloco (ou em outro local no sub-bloco). Os pixels no sub-bloco (por exemplo, todos os pixels no sub-bloco) podem compartilhar o MV do sub-bloco. A compensação de movimento afim baseada em sub-bloco pode ser uma compensação entre eficiência e complexidade de codificação. Para se obter uma granularidade mais fina de compensação de movimento, a previsão entrelaçada para compensação de movimento afim pode ser implementada e pode ser gerada pela média ponderada de duas previsões compensadas de
30 / 116 movimento de sub-bloco. A previsão entrelaçada pode exigir e/ou usar duas ou mais previsões compensadas de movimento por sub-bloco e, dessa forma, pode aumentar a largura de banda e a complexidade da memória.
[0073] Em certas modalidades representativas, métodos, aparelhos, procedimentos e/ou operações podem ser implementados para refinar a previsão com compensação de movimento afim baseada em sub-bloco com fluxo óptico (por exemplo, com o uso de e/ou com base no fluxo óptico). Por exemplo, após a compensação de movimento afim baseada em sub-bloco ser executada, a intensidade de pixel pode ser refinada pela adição de um valor de diferença derivado pela equação de fluxo óptico, que é chamado de refinamento de previsão com fluxo óptico (PROF). O PROF pode alcançar granularidade de nível de pixel sem aumentar significativamente a complexidade e pode manter a largura de banda de acesso à memória de pior caso comparável à compensação de movimento afim baseada em sub-bloco. O PROF pode ser aplicado em qualquer cenário em que o campo de vetor de movimento de nível de pixel esteja disponível (por exemplo, pode ser computado) em adição a um sinal de previsão (por exemplo, um sinal de previsão de movimento não refinado e/ou sinal de previsão de movimento baseado em sub-bloco). Em adição a ou além do modo afim, os procedimentos de PROF de previsão podem ser usados em outros modos de previsão de sub-bloco. A aplicação de PROF em modos de sub-blocos, como SbTMVP e/ou RMVF, pode ser implementada. A aplicação de PROF na biprevisão é descrita na presente invenção. Procedimentos de PROF representativos para modo afim
[0074] Em certas modalidades representativas, métodos, aparelhos e/ou procedimentos podem ser implementados para melhorar a granularidade da previsão com compensação de movimento afim baseada em sub-bloco, por exemplo, aplicando-se uma alteração na intensidade de pixel derivada do fluxo óptico (por exemplo, a equação de fluxo óptico) e podem usar e/ou
31 / 116 exigir uma operação de compensação de movimento por sub-bloco (por exemplo, apenas uma operação de compensação de movimento por sub- bloco), que é igual à compensação de movimento afim existente, por exemplo, em VVC.
[0075] A Figura 16 é um diagrama que ilustra um MV de sub-bloco e uma diferença de vetor de movimento de nível de pixel (por exemplo, também às vezes chamada de MV de refinamento para um pixel) após uma previsão com compensação de movimento afim baseada em sub-bloco.
[0076] Com referência à Figura 16, uma UC 1600 pode incluir os sub- blocos 1610, 1620, 1630 e 1640. Cada sub-bloco 1610, 1620, 1630 e 1640 pode incluir uma pluralidade de pixels (por exemplo, 16 pixels no sub-bloco 1610). O MV do sub-bloco 1650 (por exemplo, como um MV de sub-bloco aproximado ou médio) associado a cada pixel 1660 (i,j) do sub-bloco 1610 é ilustrado. Para cada respectivo pixel (i,j) no sub-bloco 1610, um MV de refinamento 1670 (i,j), que pode ser indicativo da diferença entre o MV real do pixel 1660 (i,j) e o MV do sub-bloco 1650 (em que (i,j) define a posição de pixel no sub-bloco 1610), pode ser determinado. Para fins de clareza referente à Figura 16, apenas o MV de refinamento 1670 (1,1) é identificado, embora outros movimentos individuais a nível de pixel sejam mostrados. Em certas modalidades representativas, o MV de refinamento 1670 (i,j) pode ser determinado como uma diferença de vetor de movimento de nível de pixel (às vezes chamada de diferença de vetor de movimento).
[0077] Em certas modalidades representativas, podem ser implementados métodos, aparelhos, procedimentos e/ou operações que incluem qualquer uma das seguintes operações: (1) na primeira operação: uma CMA baseada em sub-bloco pode ser executada conforme aqui revelado para gerar uma previsão de movimento baseada em sub-bloco I(i,j); (2) na segunda operação: os gradientes espaciais e
32 / 116 da previsão de movimento baseada em sub-bloco I(i,j) em cada local de amostra podem ser calculados (em um exemplo, os gradientes espaciais podem ser gerados com o uso do mesmo processo que a geração de gradiente usada em BDOF. Por exemplo, o gradiente horizontal em um local de amostra pode ser calculado como a diferença entre sua amostra vizinha direita e sua amostra vizinha esquerda, e/ou o gradiente vertical em um local de amostra pode ser calculado como a diferença entre sua amostra vizinha inferior e sua amostra vizinha superior. Em outro exemplo, os gradientes espaciais podem ser gerados usando um filtro Sobel); (3) na terceira operação: uma alteração de intensidade de luminância por pixel em uma UC com o uso e/ou pela equação de fluxo óptico pode ser calculada, por exemplo, conforme apresentado na Equação 44 a seguir: (44) em que um valor da diferença de vetor de movimento é a diferença 1670 entre um MV de nível de pixel computado para a localização da amostra , denotada por , e o MV de nível de sub-bloco 1650 do sub-bloco que cobre o pixel 1660 , conforme mostrado na Figura 16. O MV de nível de pixel pode ser derivado dos MVs de ponto de controle pelas Equações 22 e 23 para um modelo afim de 4 parâmetros ou pelas Equações 32 e 33 para um modelo afim de 6 parâmetros.
[0078] Em certas modalidades representativas, o valor de diferença de vetor de movimento pode ser derivado pelo parâmetro de modelo afim por ou com o uso das Equações 24 e 25, em que x e y podem ser o deslocamento do local de pixel para um centro do sub-bloco. Uma vez que os parâmetros de modelo afim e os deslocamentos de pixels não são alterados de sub-bloco para sub-bloco, o valor de diferença de vetor de movimento pode ser calculado para um primeiro sub-bloco e reutilizado em outros sub-
33 / 116 blocos na mesma UC. Por exemplo, a diferença entre um MV de nível de pixel e um MV de nível de sub-bloco pode ser calculada com o uso das Equações 45 e 46 da forma a seguir, uma vez que os parâmetros afins translacionais (a, b) podem ser iguais para o MV de nível de pixel e o MV do sub-bloco. Os pontos (c, d, e, f) podem ser quatro parâmetros afins adicionais (por exemplo, quatro parâmetros afins diferentes dos parâmetros afins translacionais) (45) (46) em que (i, j) pode ser o local de pixel em relação a uma posição superior esquerda de um sub-bloco, ( , ) pode ser a posição central do sub-bloco em relação à posição superior esquerda do sub-bloco.
[0079] A Figura 17A é um diagrama que ilustra um procedimento representativo para determinar um MV correspondente a um centro real de um sub-bloco.
[0080] Com referência à Figura 17A, dois sub-blocos SB0 e SB1 são mostrados como sub-blocos 4 x 4. Se a largura de um sub-bloco for SW e a altura de um sub-bloco for SH, a posição central do sub-bloco pode ser apresentada como ((SW-1)/2, (SH-1)/2). Em outros exemplos, a posição central do sub-bloco pode ser estimada com base na posição apresentada como (SW/2, SH/2). O ponto central real para o primeiro sub-bloco SB0 é P0, e para o segundo sub-bloco, SB1 é P1' com o uso de ((SW-1)/2, (SH-1)/2). O ponto central estimado para o primeiro sub-bloco SB0 é P0, e para o segundo sub-bloco, SB1 é P1 usando, por exemplo, (SW/2, SH/2) (por exemplo, em VVC). Em certas modalidades representativas, o MV de um sub-bloco pode ser baseado com maior precisão na posição central real do que na posição central estimada (que é usada em VVC).
[0081] A Figura 17B é um diagrama que ilustra os locais de amostras de saturação em um formato de saturação 4:2:0. Com referência à Figura 17B,
34 / 116 o MV do sub-bloco de saturação pode ser derivado pelos MVs dos sub-blocos do componente luma. Por exemplo, no formato de saturação 4:2:0, um sub- bloco de saturação 4 x 4 pode corresponder a uma área do componente luma 8 x 8. Embora modalidades representativas sejam mostradas em conjunto com um formato de saturação 4:2:0, o versado na técnica entende que outros formatos de saturação podem ser igualmente usados, como um formato de saturação 4:2:2.
[0082] O MV do sub-bloco de saturação pode ser derivado calculando-se a média de um MV de sub-bloco de componente luma 4 x 4 esquerdo superior e um MV de sub-bloco de componente luma direito inferior. O MV do sub-bloco de saturação derivado pode estar ou não localizado em um centro do sub-bloco de saturação para o local de amostra de saturação tipos 0, 2 e/ou 3. Para o local de amostra de saturação tipos 0, 2 e 3, a localização central do sub-bloco de saturação pode ser ou pode precisar ser ajustada por um deslocamento. Por exemplo, para um local de amostra de saturação 4:2:0 tipos 0, 2 e 3, podem ser aplicados ajustes conforme apresentado nas Equações 47 a 49 a seguir: ; se o tipo de localização de saturação for 0; (47) ; se o tipo de localização de saturação for 2; (48) ; se o tipo de localização de saturação for 3. (49)
[0083] A previsão de movimento baseada em sub-bloco I(i,j) pode ser refinada pela adição de uma alteração de intensidade (por exemplo, uma alteração de intensidade de luminância, por exemplo, conforme fornecida na Equação 44). A previsão final (isto é, refinada) I'(i,j) pode ser gerada por ou com o uso da Equação 50 a seguir. (50)
[0084] Quando o refinamento é aplicado, a compensação de movimento afim baseada em sub-bloco pode alcançar uma granularidade de nível de pixel sem aumentar a largura de banda de pior caso e/ou a largura de
35 / 116 banda de memória.
[0085] Para manter a precisão da previsão e/ou do cálculo de gradiente, a profundidade de bits no desempenho relacionado à operação da CMA baseada em sub-bloco pode ser uma profundidade de bits intermediária que pode ser maior que uma profundidade de bits de codificação.
[0086] O processo descrito acima pode ser usado para refinar a intensidade de saturação (por exemplo, em adição a ou em lugar do refinamento da intensidade do componente luma). Em um exemplo, a diferença de intensidade usada na Equação 50 pode ser multiplicada por um fator de peso w antes de ser adicionada à previsão, conforme ilustrado na Equação 51 a seguir: (51) em que w pode ser ajustado para um valor entre 0 e 1 inclusive. O valor de w pode ser sinalizado em um nível de UC ou em um nível de imagem. Por exemplo, w pode ser sinalizado por um índice de peso. Por exemplo, a Tabela de índice 1 pode ser usada para sinalizar w. Índice 0 1 2 3 4 Peso ½ 3/4 1/4 1 0 Tabela de índice 1
[0087] O algoritmo codificador pode escolher o valor de w que resulta no menor custo de distorção de taxa.
[0088] Gradientes de amostras de previsão, por exemplo, e/ou , podem ser calculados de diferentes maneiras. Em certas modalidades representativas, as amostras de previsão e podem ser calculadas aplicando-se um filtro Sobel bidimensional. Um exemplo de filtros Sobel 3 x 3 para os gradientes horizontal e vertical é apresentado abaixo: Filtro Sobel horizontal: Filtro Sobel vertical:
36 / 116
[0089] Em outras modalidades representativas, os gradientes podem ser calculados com um filtro unidimensional de 3 derivações. Um exemplo pode incluir , que pode ser mais simples (por exemplo, muito mais simples) que um filtro Sobel.
[0090] A Figura 17C é um diagrama que ilustra uma previsão de sub- bloco estendida. Os círculos sombreados 1710 são amostras de acolchoamento em torno de um sub-bloco 4 x 4 (por exemplo, os círculos não sombreados 1720). Com o uso de um filtro Sobel, como um exemplo, as amostras na caixa 1730 podem ser usadas para calcular os gradientes da amostra 1740 no centro. Embora os gradientes possam ser calculados com o uso de um filtro Sobel, outros filtros, como um filtro de 3 derivações, são possíveis.
[0091] Para os filtros de gradiente exemplificadores acima, por exemplo, o filtro Sobel 3 x 3 e o filtro unidimensional, uma previsão de sub- bloco estendida pode ser usada e/ou necessária para o cálculo de gradiente de sub-bloco. Uma fileira nos limites superior e inferior e uma coluna nos limites esquerdo e direito do sub-bloco podem ser preenchidas, por exemplo, para calcular o gradiente dessas amostras nos limites de sub-bloco.
[0092] Pode haver diferentes métodos/procedimentos e/ou operações para se obter a previsão de sub-bloco estendida. Em uma modalidade representativa, considerando como o tamanho do sub-bloco, uma previsão de sub-bloco estendida pode ser obtida executando-se uma compensação de movimento de bloco com o uso do MV do sub-bloco. Com essa modalidade, a largura de banda da memória pode ser aumentada. Para evitar o aumento da largura de banda da memória em certas modalidades representativas, as amostras de referência de número inteiro antes da interpolação podem ser buscadas para a interpolação do sub-bloco , considerando um filtro de
37 / 116 interpolação de toque K em ambas as direções horizontal e vertical, as amostras de borda do bloco podem ser copiadas de uma amostra adjacente do sub-bloco de modo que a região estendida possa ser . A região estendida pode ser usada para a interpolação do sub-bloco . Essas modalidades representativas podem ainda usar e/ou exigir operações de interpolação adicionais para gerar a previsão se o MV do sub-bloco apontar para uma posição fracionada.
[0093] Por exemplo, para reduzir a complexidade de computação, em outras modalidades representativas, a previsão do sub-bloco pode ser obtida por uma compensação de movimento de bloco com o MV do sub- bloco. O limite da previsão pode ser obtido sem interpolação por qualquer um dentre os seguintes: (1) compensação de movimento de número inteiro com MV sendo a parte de número inteiro do MV do sub-bloco; (2) compensação de movimento de número inteiro com MV sendo o número inteiro MV mais próximo do MV do sub-bloco; e/ou (3) cópia das amostras adjacentes mais próximas na previsão de sub-bloco .
[0094] A precisão e/ou a faixa do refinamento de MV de nível de pixel, por exemplo, e , podem impactar a precisão do PROF. Em certas modalidades representativas, uma combinação de um componente fracionário de múltiplos bits e outro componente de número inteiro de múltiplos bits pode ser implementada. Por exemplo, um componente fracionário de 5 bits e um componente de número inteiro de 11 bits podem ser usados. A combinação do componente fracionário de 5 bits e do componente de número inteiro de 11 bits pode representar uma faixa de MV de -1024 a 1023 em precisão de 1/32 pel com um número total de 16 bits.
[0095] A precisão dos gradientes, por exemplo, e e da alteração de intensidade pode afetar o desempenho do PROF. Em certas
38 / 116 modalidades representativas, a precisão da amostra de previsão pode ser mantida ou conservada em um número predeterminado ou número sinalizado de bits (por exemplo, a precisão de amostra interna definida no rascunho VVC atual, que é de 14 bits). Em certas modalidades representativas, os gradientes e/ou a alteração de intensidade podem ser mantidos na mesma precisão que a amostra de previsão.
[0096] A faixa da alteração de intensidade pode impactar o desempenho do PROF. A alteração de intensidade pode ser cortada para uma faixa menor para evitar um valor falso gerado por um modelo afim impreciso. Em um exemplo, a alteração de intensidade pode ser cortada para .
[0097] A combinação do número de bits do componente de fração de e , o número de bits do componente fracionário de gradiente e o número de bits da alteração de intensidade juntos podem impactar a complexidade em certas implementações de hardware ou software. Em uma modalidade representativa, 5 bits podem ser usados para representar o componente fracionado de e , 2 bits podem ser usados para representar o componente fracionário do gradiente e 12 bits podem ser usados para representar , mas eles podem ser qualquer número de bits.
[0098] Para reduzir a complexidade computacional, o PROF pode ser ignorado em certas situações. Por exemplo, se a magnitude de todo o MV delta (por exemplo, de refinamento) baseado em pixel ( ) dentro de um sub-bloco 4 x 4 for menor que um limite, o PROF pode ser ignorado para uma UC afim inteira. Se o gradiente de todas as amostras dentro do sub-bloco 4 x 4 for menor que um limite, o PROF pode ser ignorado.
[0099] O PROF pode ser aplicado a componentes de saturação, como componentes Cb e/ou Cr. O MV delta de componentes Cb e/ou Cr do sub- bloco pode reutilizar o MV delta do sub-bloco (por exemplo, pode reutilizar o
39 / 116 MV delta calculado para um sub-bloco diferente na mesma UC).
[00100] Embora o procedimento de gradiente (por exemplo, uma extensão de um sub-bloco para cálculo de gradiente com o uso de amostras de referência copiadas) aqui revelado seja ilustrado como sendo usado com uma operação de PROF, o procedimento de gradiente pode ser usado com outras operações, como operações de BDOF e/ou operações de estimativa de movimento afim, entre outras. Procedimentos de PROF representativos para outros modos de sub-bloco
[00101] O PROF pode ser aplicado em qualquer cenário em que o campo de vetor de movimento de nível de pixel esteja disponível (por exemplo, possa ser computado) em adição a um sinal de previsão (por exemplo, um sinal de previsão não refinado). Por exemplo, além do modo afim, o refinamento de previsão com fluxo óptico pode ser usado em outros modos de previsão de sub-bloco, por exemplo, o modo SbTMVP (por exemplo, modo ATMVP em VVC) ou o campo de vetor de movimento baseado em regressão (RMVF).
[00102] Em certas modalidades representativas, um método pode ser implementado para aplicar o PROF à SbTMVP. Por exemplo, tal método pode incluir qualquer um dentre: (1) na primeira operação, MVs de nível de sub-bloco e previsões de sub-bloco podem ser gerados com base no processo de SbTMVP existente aqui descrito; (2) na segunda operação, os parâmetros de modelo afim podem ser estimados pelo campo de MV do sub-bloco com o uso de um método/procedimento de regressão linear; (3) na terceira operação, os MVs de nível de pixel podem ser derivados pelos parâmetros de modelo afim obtidos na segunda operação, e os vetores de refinamento de movimento de nível de pixel associados em relação aos MVs de sub-bloco podem ser calculados; e/ou
40 / 116 (4) na quarta operação, o refinamento de previsão com o processo de fluxo óptico pode ser aplicado para gerar a previsão final, entre outros.
[00103] Em certas modalidades representativas, um método pode ser implementado para aplicar o PROF ao RMVF. Por exemplo, tal método pode incluir qualquer um dentre: (1) na primeira operação, o campo de MV do nível de sub- bloco, as previsões de sub-bloco e/ou os parâmetros de modelo afim , , , , e podem ser gerados com base no processo RMVF aqui descrito; (2) na segunda operação, os deslocamentos de MV de nível de pixel a partir dos MVs de nível de sub-bloco ( ) podem ser derivados pelos parâmetros de modelo afim , , , , e pela Equação 52 a seguir: (52) em que é o deslocamento de pixel a partir do centro do sub-bloco. Uma vez que os parâmetros afins e/ou os deslocamentos de pixel a partir do centro de sub-bloco não são alterados de sub-bloco para sub-bloco, os deslocamentos de MV de pixel podem ser calculados (por exemplo, precisam ou devem ser calculados apenas) para o primeiro sub-bloco e podem ser reutilizados para outros sub-blocos na UC; e/ou (3) na terceira operação, o processo de PROF pode ser aplicado para gerar a previsão final, por exemplo, aplicando-se as Equações 44 e 50. Procedimentos de PROF representativos para biprevisão
[00104] Em adição a ou em vez de usar o PROF em uniprevisão, conforme descrito aqui, a técnica de PROF pode ser usada em biprevisão. Quando usado em biprevisão, o PROF pode ser usado para gerar a previsão
41 / 116 L0 e/ou a previsão L1, por exemplo, antes de serem combinadas com pesos. Para reduzir a complexidade computacional, o PROF pode ser aplicado (por exemplo, pode ser aplicado apenas) a uma previsão, como L0 ou L1. Em certas modalidades representativas, o PROF pode ser aplicado (por exemplo, pode ser aplicado apenas) a uma lista (por exemplo, associada a ou à qual imagem de referência a imagem atual está próxima (por exemplo, dentro de um limite de) e/ou mais próxima). Procedimentos representativos para habilitação de PROF
[00105] A habilitação de PROF pode ser sinalizada em ou dentro de um cabeçalho de conjunto de parâmetros de sequência (SPS), de um cabeçalho de conjunto de parâmetros de imagem (PPS - “Picture Parameter Set”) e/ou um cabeçalho de grupo de ladrilhos (“tile”). Em certas modalidades, um sinalizador pode ser sinalizado para indicar se o PROF está ou não habilitado para um modo afim. Se o sinalizador estiver definido em um primeiro nível lógico (por exemplo, “verdadeiro”), o PROF pode ser usado tanto para a uniprevisão quanto para a biprevisão. Em certas modalidades, um segundo sinalizador pode ser usado se o primeiro sinalizador estiver definido como “verdadeiro” para indicar se o PROF está habilitado ou não para o modo afim de biprevisão. Se o primeiro sinalizador estiver definido em um segundo nível lógico (por exemplo, “falso”), pode-se inferir que o segundo sinalizador está definido como “falso”. Se o PROF deve ser aplicado para o componente de saturação pode ser sinalizado com um sinalizador no cabeçalho SPS ou dentro do cabeçalho SPS, do cabeçalho PPS e/ou do cabeçalho do grupo de ladrilhos (“tile”) se o primeiro sinalizador estiver definido como “verdadeiro”, de modo que o controle do PROF nos componentes luma e de saturação possa ser separado. Procedimentos representativos para PROF condicionalmente habilitado
[00106] Por exemplo, para reduzir a complexidade, o PROF pode ser aplicado quando (por exemplo, apenas quando) certas condições forem
42 / 116 satisfeitas. Por exemplo, para um tamanho pequeno de UC (por exemplo, abaixo de um nível limite), o movimento afim pode ser relativamente pequeno de modo que o benefício da aplicação do PROF possa ser limitado. Em certas modalidades representativas, quando ou na condição em que o tamanho de UC é pequeno (por exemplo, para um tamanho de UC que não é maior que 16 x 16, como 8 x 8, 8 x 16, 16 x 8), o PROF pode ser desabilitado na compensação de movimento afim para reduzir a complexidade tanto para o codificador como para o decodificador. Em certas modalidades representativas, quando o tamanho de UC é pequeno (abaixo do mesmo ou de um nível-limite diferente), o PROF pode ser ignorado na estimativa de movimento afim (por exemplo, apenas na estimativa de movimento afim), por exemplo, para reduzir a complexidade do codificador, e o PROF pode ser executado no decodificador independentemente do tamanho da UC. Por exemplo, no lado do codificador, após a estimativa de movimento que procura os parâmetros de modelo afim (por exemplo, os MVs de ponto de controle), um procedimento de compensação de movimento (CM) pode ser invocado e o PROF pode ser realizado. Para cada iteração durante a estimativa de movimento, o procedimento de CM pode também ser invocado. Na CM durante a estimativa de movimento, o PROF pode ser ignorado para economizar complexidade sem que haja uma disparidade de previsão entre o codificador e o decodificador porque a CM final no codificador deve executar o PROF. Ou seja, o refinamento por PROF pode não ser aplicado pelo codificador enquanto ele busca pelos parâmetros de modelo afim (por exemplo, os MVs afins) para que seja usado na previsão de uma UC, e quando ou após o codificador completar a busca, o codificador pode, então, aplicar o PROF para refinar a previsão para a UC com o uso dos parâmetros de modelo afim determinados a partir da busca.
[00107] Em algumas modalidades representativas, uma diferença entre os CPMVs pode ser usada como critério para determinar se o PROF deve ser
43 / 116 habilitado. Quando uma diferença entre os CPMVs é pequena (por exemplo, abaixo de um nível-limite) de modo que o movimento afim seja pequeno, o benefício da aplicação do PROF pode ser limitado, e o PROF pode ser desabilitado para compensação de movimento afim e/ou estimativa de movimento afim. Por exemplo, para o modo afim de 4 parâmetros, se as seguintes condições forem satisfeitas (por exemplo, todas as seguintes condições forem satisfeitas), o PROF poderá ser desabilitado:
[00108] Para um modo afim de 6 parâmetros, em adição a ou em lugar da condição acima, se as seguintes condições forem satisfeitas (por exemplo, todas as seguintes condições também forem satisfeitas), o PROF poderá ser desabilitado: em que T é um limite predefinido, por exemplo, 4. Esse procedimento de omissão de PROF ou CPMV baseado em parâmetro afim pode ser aplicado (por exemplo, também ser aplicado apenas) ao codificador, e o decodificador pode ou não ignorar o PROF. Procedimentos representativos para o PROF combinados com ou ao invés de desbloqueio de filtro
[00109] Uma vez que o PROF pode ser um refinamento em pixels capaz de compensar a CM baseada em bloco, a diferença de movimento entre o limite de bloco pode ser reduzida (por exemplo, pode ser amplamente reduzida). Um codificador e/ou um decodificador podem ignorar a aplicação de um filtro de desbloqueio e/ou podem aplicar filtros mais fracos nos limites do sub-bloco quando o PROF é aplicado. Para uma UC que é dividida em múltiplas unidades de transformada (UT), o artefato de bloqueio pode
44 / 116 aparecer no limite do bloco de transformada.
[00110] Em certas modalidades representativas, um codificador e/ou um decodificador podem ignorar a aplicação de um filtro de desbloqueio ou podem aplicar um ou mais filtros mais fracos nos limites do sub-bloco, a menos que o limite do sub-bloco coincida com um limite da UT.
[00111] Quando ou na condição em que o PROF é aplicado ao componente luma (por exemplo, apenas aplicado ao componente luma), um codificador e/ou um decodificador podem ignorar a aplicação de um filtro de desbloqueio e/ou podem aplicar um ou mais filtros mais fracos em limites do sub-bloco para o componente luma (por exemplo, apenas o componente luma). Por exemplo, o parâmetro de resistência de limite Bs pode ser usado para aplicar um filtro de desbloqueio mais fraco.
[00112] Por exemplo, um codificador e/ou um decodificador podem ignorar a aplicação de um filtro de desbloqueio nos limites do sub-bloco quando o PROF é aplicado, a menos que o limite do sub-bloco coincida com um limite da UT. Nesse caso, um filtro de desbloqueio pode ser aplicado para reduzir ou remover artefatos de bloqueio que podem aparecer ao longo do limite de UT.
[00113] Como outro exemplo, um codificador e/ou um decodificador podem aplicar um filtro de desbloqueio fraco nos limites de sub-bloco quando o PROF é aplicado, a menos que o limite do sub-bloco coincida com um limite da UT. Contempla-se que um filtro de desbloqueio “fraco” pode ser um filtro de desbloqueio mais fraco do que aquele que pode ser normalmente aplicado aos limites do sub-bloco quando o PROF não está sendo aplicado. Quando o limite de sub-bloco coincide com um limite de UT, um filtro de desbloqueio mais forte pode ser aplicado para reduzir ou remover os artefatos de bloqueio que se espera que estejam mais visíveis ao longo dos limites do sub-bloco que coincidem com os limites da UT.
[00114] Em certas modalidades representativas, quando ou na condição
45 / 116 em que o PROF é aplicado (por exemplo, aplicado apenas) ao componente luma, um codificador e/ou um decodificador podem alinhar a aplicação de filtro de desbloqueio para saturação ao componente luma, por exemplo, apesar da falta de aplicação do PROF à saturação, para fins de unificação do design. Por exemplo, se o PROF for aplicado apenas ao componente luma, a aplicação normal do filtro de desbloqueio para o componente luma poderá ser alterada com base em se o PROF foi aplicado (e possivelmente com base em se houve um limite da UT no limite do sub-bloco). Em certas modalidades representativas, em vez de ter uma lógica separada/diferente para aplicar o filtro de desbloqueio aos pixels de saturação correspondentes, um filtro de desbloqueio pode ser aplicado aos limites do sub-bloco para a saturação corresponder (e/ou espelhar) o procedimento para o desbloqueio do componente luma.
[00115] A Figura 18A é um fluxograma que ilustra um primeiro método de codificação e/ou decodificação representativo.
[00116] Com referência à Figura 18A, o método representativo 1800 para codificar e/ou decodificar pode incluir, no bloco 1805, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que obtém um sinal de previsão de movimento baseado em sub-bloco para um bloco atual, por exemplo, de um vídeo. No bloco 1810, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem obter um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco para o bloco atual ou um ou mais valores de diferença de vetor de movimento associados a um sub- bloco do bloco atual. No bloco 1815, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem obter um sinal de refinamento para o bloco atual com base no um ou mais gradientes espaciais obtidos ou no um ou mais valores de diferença de vetor de movimento obtidos associados ao sub-bloco do bloco atual. No bloco 1820, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem obter um sinal de previsão de movimento refinado para o
46 / 116 bloco atual com base no sinal de previsão de movimento baseado no sub- bloco e no sinal de refinamento. Em certas modalidades, o codificador 100 ou 300 pode codificar o bloco atual com base no sinal de previsão de movimento refinado, ou o decodificador 200 ou 500 pode decodificar o bloco atual com base no sinal de previsão de movimento refinado. O sinal de previsão de movimento refinado pode ser um sinal de interprevisão de movimento refinado gerado (por exemplo, por um codificador com GBi 300 e/ou um decodificador com GBi 500) e pode usar uma ou mais operações do PROF.
[00117] Em certas modalidades representativas, por exemplo, relacionadas a outros métodos aqui descritos, incluindo os métodos 1850 e 1900, a obtenção de um sinal de previsão de movimento baseado em sub- bloco para um bloco atual do vídeo pode incluir gerar o sinal de previsão de movimento baseado em sub-bloco.
[00118] Em certas modalidades representativas, por exemplo, relacionadas a outros métodos aqui descritos incluindo os métodos 1850 e 1900, entre outros, a obtenção do um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco para o bloco atual ou do um ou mais valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual pode incluir a determinação do um ou mais gradientes espaciais (por exemplo, associados a um filtro de gradiente) do sinal de previsão de movimento baseado em sub-bloco.
[00119] Em certas modalidades representativas, por exemplo, relacionadas a outros métodos aqui descritos incluindo os métodos 1850 e 1900, entre outros, a obtenção do um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco para o bloco atual ou do um ou mais valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual pode incluir a determinação do um ou mais valores de diferença de vetor de movimento associados ao sub-bloco do bloco atual.
[00120] Em certas modalidades representativas, por exemplo,
47 / 116 relacionadas a outros métodos aqui descritos incluindo os métodos 1850 e 1900, entre outros, a obtenção do sinal de refinamento para o bloco atual com base no um ou mais gradientes espaciais determinados ou no um ou mais valores de diferença de vetor de movimento determinados pode incluir determinar um sinal de refinamento de previsão de movimento, como o sinal de refinamento, para o bloco atual com base nos gradientes espaciais determinados.
[00121] Em certas modalidades representativas, por exemplo, relacionadas a outros métodos aqui descritos incluindo os métodos 1850 e 1900, entre outros, a obtenção do sinal de refinamento para o bloco atual com base no um ou mais gradientes espaciais determinados ou no um ou mais valores de diferença de vetor de movimento determinados pode incluir determinar um sinal de refinamento de previsão de movimento, como o sinal de refinamento, para o bloco atual com base nos valores de diferença de vetor de movimento determinados.
[00122] Os termos “determinar” ou “determinação” à medida que se referem a algo, como informações, geralmente podem incluir um ou mais dentre: estimar, calcular, prever, obter e/ou recuperar as informações. Por exemplo, a determinação pode se referir à recuperação de algo da memória ou de um fluxo de bits, entre outros.
[00123] Em certas modalidades representativas, por exemplo, relacionadas a outros métodos aqui descritos incluindo os métodos 1850 e 1900 entre outros, a obtenção do sinal de previsão de movimento refinado para o bloco atual com base no sinal de previsão de movimento baseado em sub-bloco e no sinal de refinamento pode incluir combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir o sinal de previsão de movimento refinado para o bloco atual.
[00124] Em certas modalidades representativas, por exemplo,
48 / 116 relacionadas a outros métodos aqui descritos incluindo os métodos 1850 e 1900, entre outros, a codificação e/ou decodificação do bloco atual com base no sinal de previsão de movimento refinado pode incluir codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual e/ou a decodificação do vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual.
[00125] A Figura 18B é um fluxograma que ilustra um segundo método de codificação e/ou decodificação representativo.
[00126] Com referência à Figura 18B, o método representativo 1850 para codificar e/ou decodificar um vídeo pode incluir, no bloco 1855, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que gera um sinal de previsão de movimento baseado em sub-bloco. No bloco 1860, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um ou mais gradientes espaciais (por exemplo, associados a um filtro de gradiente) do sinal de previsão de movimento baseado em sub-bloco. No bloco 1865, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de refinamento de previsão de movimento para o bloco atual com base nos gradientes espaciais determinados. No bloco 1870, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual. No bloco 1875, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, e/ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual. Em certas modalidades, as operações nos blocos 1810, 1820, 1830 e 1840 podem ser executadas para um bloco atual que se refere genericamente ao bloco que está atualmente sendo codificado ou
49 / 116 decodificado. O sinal de previsão de movimento refinado pode ser um sinal de interprevisão de movimento refinado gerado (por exemplo, por um codificador com GBi 300 e/ou um decodificador com GBi 500) e pode usar uma ou mais operações do PROF.
[00127] Por exemplo, a determinação de um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, pode incluir uma determinação de um primeiro conjunto de gradientes espaciais associado a uma primeira imagem de referência e um segundo conjunto de gradientes espaciais associado a uma segunda imagem de referência. A determinação do sinal de refinamento de previsão de movimento para o bloco atual, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, pode ser baseada nos gradientes espaciais determinados e pode incluir uma determinação de um sinal de refinamento de interprevisão de movimento (por exemplo, um sinal de biprevisão) para o bloco atual com base no primeiro e no segundo conjuntos de gradientes espaciais e pode também ser baseada em informações de peso W (por exemplo, indicando ou incluindo um ou mais valores de peso que estão associados a uma ou mais imagens de referência).
[00128] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o codificador 100 ou 300 pode gerar, usar e/ou enviar as informações de peso W para o decodificador 200 ou 500, e/ou o decodificador 200 ou 500 pode receber ou obter as informações de peso W. Por exemplo, o sinal de refinamento de interprevisão de movimento para o bloco atual pode ser baseado em: (1) um primeiro valor de gradiente derivado do primeiro conjunto de gradientes espaciais e ponderado de acordo com um primeiro fator de peso indicado pelas informações de peso W, e/ou (2) um segundo valor de gradiente derivado do segundo conjunto de gradientes espaciais e ponderado de acordo com um segundo fator de peso indicado pelas
50 / 116 informações de peso W.
[00129] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem compreender adicionalmente o codificador 100 ou 300 e/ou o decodificador 200 ou 500 determinando parâmetros de modelo de movimento afim para o bloco atual do vídeo, de modo que o sinal de previsão de movimento baseado em sub-bloco pode ser gerado com o uso dos parâmetros determinados de modelo de movimento afim.
[00130] Em certas modalidades representativas que incluem os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir uma determinação, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, dentre o um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco que podem incluir um cálculo de pelo menos um valor de gradiente para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou cada respectivo local de amostra em pelo menos um sub-bloco do sinal de previsão de movimento baseado em sub-bloco. Por exemplo, o cálculo do pelo menos um valor de gradiente para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou cada respectivo local de amostra em pelo menos um sub-bloco do sinal de previsão de movimento baseado em sub- bloco pode incluir, para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou cada respectivo local de amostra, aplicando um filtro de gradiente ao respectivo local de amostra no pelo menos um sub- bloco do sinal de previsão de movimento baseado em sub-bloco.
[00131] Em certas modalidades representativas que incluem os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem compreender adicionalmente o codificador 100 ou 300 e/ou o decodificador 200 ou 500 que determinam um conjunto de valores de diferença de vetor de movimento associados aos locais de amostra de um
51 / 116 primeiro sub-bloco do bloco atual do sinal de previsão de movimento baseado em sub-bloco. Em alguns exemplos, os valores de diferença podem ser determinados para um sub-bloco (por exemplo, um primeiro sub-bloco) e podem ser reutilizados para alguns ou para todos os outros sub-blocos no bloco atual. Em certos exemplos, o sinal de previsão de movimento baseado em sub-bloco pode ser gerado e o conjunto de valores de diferença de vetor de movimento pode ser determinado com o uso de um modelo de movimento afim ou de um modelo de movimento diferente (por exemplo, um outro modelo de movimento baseado em sub-bloco, como um modelo SbTMVP). Como um exemplo, o conjunto de valores de diferença de vetor de movimento pode ser determinado para um primeiro sub-bloco do bloco atual e pode ser usado para determinar o sinal de refinamento de previsão de movimento para um ou mais sub-blocos adicionais do bloco atual.
[00132] Em certas modalidades representativas que incluem os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub- bloco e o conjunto de valores de diferença de vetor de movimento podem ser usados para determinar o sinal de refinamento de previsão de movimento para o bloco atual.
[00133] Em certas modalidades representativas que incluem os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o sinal de previsão de movimento baseado em sub-bloco é gerado e o conjunto de valores de diferença de vetor de movimento é determinado com o uso de um modelo de movimento afim para o bloco atual.
[00134] Em certas modalidades representativas que incluem os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, a determinação de um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco pode incluir: para um ou mais respectivos sub-blocos do bloco atual: uma determinação de um sub-bloco estendido, com
52 / 116 o uso do sinal de previsão de movimento baseado em sub-bloco e amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco; e uma determinação, com o uso do sub-bloco estendido determinado, de gradientes espaciais do respectivo sub-bloco para determinar o sinal de refinamento de previsão de movimento.
[00135] A Figura 19 é um fluxograma que ilustra um terceiro método de codificação e/ou decodificação representativo.
[00136] Com referência à Figura 19, o método representativo 1900 para codificar e/ou decodificar um vídeo pode incluir, no bloco 1910, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que gera um sinal de previsão de movimento baseado em sub-bloco. No bloco 1920, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um conjunto de valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual (por exemplo, o conjunto de valores de diferença de vetor de movimento pode estar associado, por exemplo, a todos os sub-blocos do bloco atual). No bloco 1930, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de refinamento de previsão de movimento para o bloco atual com base no conjunto determinado de valores de diferença de vetor de movimento. No bloco 1940, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir ou gerar um sinal de previsão de movimento refinado para o bloco atual. No bloco 1950, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, e/ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual. Em certas modalidades, as operações nos blocos 1910, 1920, 1930 e 1940 podem ser executadas para um bloco atual que, de modo geral, se
53 / 116 refere ao bloco que está sendo atualmente codificado ou decodificado. Em certas modalidades representativas, o sinal de previsão de movimento refinado pode ser um sinal de interprevisão de movimento refinado gerado (por exemplo, por um codificador com GBi 300 ou um decodificador com GBi 500) e pode usar uma ou mais operações de PROF.
[00137] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir uma determinação, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, de parâmetros do modelo de movimento (por exemplo, um ou mais parâmetros do modelo de movimento afim) para o bloco atual do vídeo de modo que o sinal de previsão de movimento baseado em sub-bloco pode ser gerado com o uso dos parâmetros do modelo de movimento determinados (por exemplo, parâmetros do modelo de movimento afim).
[00138] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir uma determinação, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, de um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco. Por exemplo, a determinação do um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco pode incluir um cálculo de pelo menos um valor de gradiente para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou cada respectivo local de amostra em pelo menos um sub-bloco do sinal de previsão de movimento baseado em sub-bloco. Por exemplo, o cálculo do pelo menos um valor de gradiente para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou cada respectivo local de amostra em pelo menos um sub-bloco do sinal de previsão de movimento baseado em sub-bloco pode incluir, para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou
54 / 116 cada respectivo local de amostra, aplicando um filtro de gradiente ao respectivo local de amostra no pelo menos um sub-bloco do sinal de previsão de movimento baseado em sub-bloco.
[00139] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir uma determinação, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, do sinal de refinamento de previsão de movimento para o bloco atual com o uso de valores de gradiente associados aos gradientes espaciais para um respectivo local de amostra, uma porção dos respectivos locais de amostra ou cada respectivo local de amostra do bloco atual e o conjunto determinado de valores de diferença de vetor de movimento associados aos locais de amostra de um sub-bloco (por exemplo, qualquer sub-bloco) do bloco atual do sinal de previsão de movimento de sub- bloco.
[00140] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, a determinação do sinal de refinamento de previsão de movimento para o bloco atual pode usar valores de gradiente associados aos gradientes espaciais para um ou mais respectivos locais de amostra ou para cada local de amostra de um ou mais sub-blocos do bloco atual e o conjunto determinado de valores de diferença de vetor de movimento.
[00141] A Figura 20 é um fluxograma que ilustra um quarto método de codificação e/ou decodificação representativo.
[00142] Com referência à Figura 20, o método representativo 2000 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2010, um codificador 100 ou 300 e/ou um decodificador 200 ou 500, gerar um sinal de previsão de movimento baseado em sub-bloco com o uso de pelo menos um primeiro vetor de movimento para um primeiro sub-bloco do bloco atual e um vetor de movimento adicional para um segundo sub-bloco do bloco atual. No
55 / 116 bloco 2020, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem calcular um primeiro conjunto de valores de gradiente para um primeiro local de amostra no primeiro sub-bloco do sinal de previsão de movimento baseado em sub-bloco e um segundo conjunto diferente de valores de gradiente para um segundo local de amostra no primeiro sub-bloco do sinal de previsão de movimento baseado em sub-bloco.
No bloco 2030, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um primeiro conjunto de valores de diferença de vetor de movimento para o primeiro local de amostra e um segundo conjunto diferente de valores de diferença de vetor de movimento para o segundo local de amostra.
Por exemplo, o primeiro conjunto de valores de diferença de vetor de movimento para um primeiro local de amostra pode ser indicativo de uma diferença entre um vetor de movimento no primeiro local de amostra e o vetor de movimento do primeiro sub-bloco, e o segundo conjunto de valores de diferença de vetor de movimento para um segundo local de amostra pode ser indicativo de uma diferença entre um vetor de movimento no segundo local de amostra e o vetor de movimento do primeiro sub-bloco.
No bloco 2040, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de refinamento de previsão com o uso do primeiro e do segundo conjuntos de valores de gradiente e do primeiro e do segundo conjuntos de valores de diferença de vetor de movimento.
No bloco 2050, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub- bloco com o sinal de refinamento de previsão para produzir um sinal de previsão de movimento refinado.
No bloco 2060, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, e/ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual.
Em certas modalidades, as operações nos
56 / 116 blocos 2010, 2020, 2030, 2040 e 2050 podem ser executadas para um bloco atual que inclui uma pluralidade de sub-blocos.
[00143] A Figura 21 é um fluxograma que ilustra um quinto método de codificação e/ou decodificação representativo.
[00144] Com referência à Figura 21, o método representativo 2100 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2110, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que geram um sinal de previsão de movimento baseado em sub-bloco para um bloco atual. No bloco 2120, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de refinamento de previsão com o uso de informações de fluxo óptico indicativas de um movimento refinado de uma pluralidade de locais de amostra no bloco atual do sinal de previsão de movimento baseado em sub-bloco. No bloco 2130, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub- bloco com o sinal de refinamento de previsão para produzir um sinal de previsão de movimento refinado. No bloco 2140, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, e/ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual. Por exemplo, o bloco atual pode incluir uma pluralidade de sub-blocos, e o sinal de previsão de movimento baseado em sub-bloco pode ser gerado com o uso de pelo menos um primeiro vetor de movimento para um primeiro sub-bloco do bloco atual e um vetor de movimento adicional para um segundo sub-bloco do bloco atual.
[00145] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir uma determinação, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, do sinal de refinamento de
57 / 116 previsão que pode usar informações de fluxo óptico. Essa determinação pode incluir calcular, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, um primeiro conjunto de valores de gradiente para um primeiro local de amostra no primeiro sub-bloco do sinal de previsão de movimento baseado em sub-bloco e um segundo conjunto diferente de valores de gradiente para um segundo local de amostra no primeiro sub-bloco do sinal de previsão de movimento baseado em sub-bloco. Um primeiro conjunto de valores de diferença de vetor de movimento para o primeiro local de amostra e um segundo conjunto diferente de valores de diferença de vetor de movimento para o segundo local de amostra podem ser determinados. Por exemplo, o primeiro conjunto de valores de diferença de vetor de movimento para um primeiro local de amostra pode ser indicativo de uma diferença entre um vetor de movimento no primeiro local de amostra e o vetor de movimento do primeiro sub-bloco, e o segundo conjunto de valores de diferença de vetor de movimento para um segundo local de amostra pode ser indicativo de uma diferença entre um vetor de movimento no segundo local de amostra e o vetor de movimento do primeiro sub-bloco. O codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar o sinal de refinamento de previsão com o uso do primeiro e do segundo conjuntos de valores de gradiente e do primeiro e do segundo conjuntos de valores de diferença de vetor de movimento.
[00146] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir uma determinação, pelo codificador 100 ou 300 e/ou pelo decodificador 200 ou 500, do sinal de refinamento de previsão que pode usar informações de fluxo óptico. Essa determinação pode incluir calcular um terceiro conjunto de valores de gradiente para o primeiro local de amostra no segundo sub-bloco do sinal de previsão de movimento baseado em sub-bloco e um quarto conjunto de valores de gradiente para o
58 / 116 segundo local de amostra no segundo sub-bloco do sinal de previsão de movimento baseado em sub-bloco. O codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar o sinal de refinamento de previsão para o segundo sub-bloco com o uso do terceiro e do quarto conjuntos de valores de gradiente e do primeiro e do segundo conjuntos de valores de diferença de vetor de movimento.
[00147] A Figura 22 é um fluxograma que ilustra um sexto método de codificação e/ou decodificação representativo.
[00148] Com referência à Figura 22, o método representativo 2200 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2210, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que determinam um modelo de movimento para um bloco atual do vídeo. O bloco atual pode incluir uma pluralidade de sub-blocos. Por exemplo, o modelo de movimento pode gerar vetores de movimento individuais (por exemplo, por amostra) para uma pluralidade de locais de amostra no bloco atual. No bloco 2220, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem gerar, com o uso do modelo de movimento determinado, um sinal de previsão de movimento baseado em sub-bloco para o bloco atual. O sinal de previsão de movimento baseado em sub-bloco gerado pode usar um vetor de movimento para cada sub-bloco do bloco atual. No bloco 2230, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem calcular os valores de gradiente mediante a aplicação de um filtro de gradiente a uma porção da pluralidade de locais de amostra do sinal de previsão de movimento baseado em sub-bloco. No bloco 2240, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar valores de diferença de vetor de movimento para a porção dos locais de amostra, sendo que cada um dos valores de diferença de vetor de movimento pode ser indicativo de uma diferença entre um vetor de movimento (por exemplo, um vetor de movimento individual) gerado para um respectivo local de amostra, de acordo com o modelo de movimento, e o vetor
59 / 116 de movimento usado para produzir o sinal de previsão de movimento baseado em sub-bloco para o sub-bloco que inclui o respectivo local de amostra. No bloco 2250, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de refinamento de previsão com o uso dos valores de gradiente e dos valores de diferença de vetor de movimento. No bloco 2260, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub-bloco com o sinal de refinamento de previsão para produzir um sinal de previsão de movimento refinado para o bloco atual. No bloco 2270, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, e/ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual.
[00149] A Figura 23 é um fluxograma que ilustra um sétimo método de codificação e/ou decodificação representativo.
[00150] Com referência à Figura 23, o método representativo 2300 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2310, um codificador 100 ou 300 e/ou um decodificador 200 ou 500, executar uma compensação de movimento baseada em sub-bloco para gerar um sinal de previsão de movimento baseado em sub-bloco, como um sinal de previsão de movimento aproximado. No bloco 2320, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem calcular um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco em locais de amostra. No bloco 2330, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem calcular uma alteração de intensidade por pixel no bloco atual com base nos gradientes espaciais calculados. No bloco 2340, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de previsão de movimento baseado em pixel com base na alteração de intensidade calculada por pixel, como um sinal de previsão de movimento refinado. No
60 / 116 bloco 2350, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem prever o bloco atual com o uso do sinal de previsão de movimento aproximado de cada sub-bloco do bloco atual e com o uso do sinal de previsão de movimento refinado de cada pixel do bloco atual. Em certas modalidades, as operações nos blocos 2310, 2320, 2330, 2340 e 2350 podem ser executadas para pelo menos um bloco (por exemplo, o bloco atual) no vídeo. Por exemplo, o cálculo da alteração de intensidade por pixel no bloco atual pode incluir determinar uma alteração de intensidade de luminância para cada pixel no bloco atual de acordo com uma equação de fluxo óptico. A previsão do bloco atual pode incluir prever um vetor de movimento para cada respectivo pixel no bloco atual mediante a combinação de um vetor de previsão de movimento aproximado para um sub-bloco que inclui o respectivo pixel com um vetor de previsão de movimento refinado que é relativo ao vetor de previsão de movimento aproximado e associado ao respectivo pixel.
[00151] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300 e 2600, o um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco podem incluir qualquer um dentre: um gradiente horizontal e/ou um gradiente vertical, e, por exemplo, o gradiente horizontal pode ser calculado como uma diferença do componente luma ou uma diferença de saturação entre uma amostra vizinha à direita de uma amostra de um sub-bloco e uma amostra vizinha à esquerda da amostra do sub-bloco, e/ou o gradiente vertical pode ser calculado como a diferença do componente luma ou a diferença de saturação entre uma amostra vizinha inferior da amostra do sub-bloco e uma amostra vizinha superior da amostra do sub- bloco.
[00152] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300
61 / 116 e 2600, o um ou mais gradientes espaciais da previsão de sub-bloco podem ser gerados com o uso de um filtro Sobel.
[00153] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300 e 2600, o sinal de previsão de movimento aproximado pode usar um dentre: um modelo afim de 4 parâmetros ou um modelo afim de 6 parâmetros. Por exemplo, a compensação de movimento baseada em sub-bloco pode ser uma dentre: (1) uma compensação de movimento baseada em sub-bloco afim; ou (2) uma outra compensação (por exemplo, uma compensação de movimento de vetor de movimento temporal baseada em sub-bloco (SbTMVP); e/ou uma compensação baseada em modo de campo de vetor de movimento (RMVF) baseada em regressão. Na condição em que a compensação de movimento baseada no modo SbTMVP é executada, o método pode incluir: estimar, por meio de uma operação de regressão linear, parâmetros de modelo afim com o uso de um campo de vetor de movimento de sub-bloco; e derivar vetores de movimento de nível de pixel com o uso dos parâmetros de modelo afim estimados. Na condição em que a compensação de movimento baseada no modo RMVF é executada, o método pode incluir: estimar parâmetros de modelo afim; e derivar deslocamentos de vetores de movimento de nível de pixel a partir de vetores de movimento de nível de sub-bloco com o uso dos parâmetros de modelo afim estimados. Por exemplo, os deslocamentos de vetores de movimento de pixel podem ser relativos a um centro (por exemplo, centro real ou um local de amostra mais próximo ao centro real) do sub-bloco. Por exemplo, o vetor de previsão de movimento aproximado para o sub-bloco pode ser baseado em uma posição central real do sub-bloco.
[00154] Em certas modalidades representativas que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300 e 2600, esses métodos podem incluir o codificador 100 ou 300 ou o decodificador 200 ou 500 selecionando um dentre: (1) um centro real de cada
62 / 116 sub-bloco, ou (2) um dos locais de pixel (por exemplo, amostra) mais próximo ao centro do sub-bloco, como uma posição central associada ao vetor de previsão de movimento aproximado (por exemplo, vetor de previsão de movimento baseado em sub-bloco) para cada sub-bloco. Por exemplo, a previsão do bloco atual com o uso do sinal de previsão de movimento aproximado (por exemplo, sinal de previsão de movimento baseado em sub- bloco) do bloco atual e com o uso do sinal de previsão de movimento refinado de cada pixel (por exemplo, amostra) do bloco atual pode ser baseada na posição central selecionada de cada sub-bloco. Por exemplo, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar uma posição central associada aos pixels de saturação do sub-bloco; e podem determinar um deslocamento para a posição central dos pixels de saturação do sub-bloco com base em um tipo de amostra de localização de saturação associado aos pixels de saturação. O sinal de previsão de movimento aproximado (por exemplo, o sinal de previsão de movimento baseado em sub-bloco) para o sub-bloco pode ser baseado na posição real do sub-bloco que corresponde à posição central determinada dos pixels de saturação ajustados pelo deslocamento.
[00155] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300 e 2600, esses métodos podem incluir a geração do codificador 100 ou 300 ou do decodificador 200 ou 500 recebendo informações que indicam se o refinamento de previsão com fluxo óptico (PROF - “Prediction Refinement With Optical Flow”) está habilitado em um dentre: (1) um cabeçalho de conjunto de parâmetros de sequência (SPS), (2) um cabeçalho de conjunto de parâmetros de imagem (PPS), ou (3) um cabeçalho de grupo de ladrilhos (“tile”). Por exemplo, na condição em que o PROF está habilitado, uma operação de previsão de movimento refinada pode ser executada de modo que o sinal de previsão de movimento aproximado (por exemplo, sinal de previsão
63 / 116 de movimento baseado em sub-bloco) e o sinal de previsão de movimento refinado podem ser usados para prever o bloco atual. Como outro exemplo, na condição em que o PROF não está habilitado, a operação de previsão de movimento refinada não é executada, de modo que apenas o sinal de previsão de movimento aproximado (por exemplo, sinal de previsão de movimento baseado em sub-bloco) pode ser usado para prever o bloco atual.
[00156] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 determinando se se executa uma operação de previsão de movimento refinada no bloco atual ou em uma estimativa de movimento afim com base em atributos do bloco atual e/ou atributos da estimativa de movimento afim.
[00157] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 determinando se se executa uma operação de previsão de movimento refinada no bloco atual ou em uma estimativa de movimento afim com base em atributos do bloco atual e/ou atributos da estimativa de movimento afim. Por exemplo, a determinação de se executar ou não a operação de previsão de movimento refinada no bloco atual com base nos atributos do bloco atual pode incluir determinar se a operação de previsão de movimento refinada deve ou não ser executada no bloco atual com base em se - qualquer um dentre: (1) um tamanho do bloco atual excede um tamanho específico; e/ou (2) uma diferença de vetor de movimento de ponto de controle (CPMV - “Control Point Motion Vector”) excede um valor- limite.
[00158] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300
64 / 116 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 aplicando um primeiro filtro de desbloqueio a um ou mais limites de um sub-bloco do bloco atual que coincidem com um limite da unidade de transformada e um segundo filtro de desbloqueio diferente de outros limites do sub-bloco do bloco atual que não coincidem com nenhum limite da unidade de transformada. Por exemplo, o primeiro filtro de desbloqueio pode ser um filtro de desbloqueio mais forte do que o segundo filtro de desbloqueio.
[00159] A Figura 24 é um fluxograma que ilustra um oitavo método de codificação e/ou decodificação representativo.
[00160] Com referência à Figura 24, o método representativo 2400 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2410, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que executam uma compensação de movimento baseada em sub-bloco para gerar um sinal de previsão de movimento baseado em sub-bloco, como um sinal de previsão de movimento aproximado. No bloco 2420, o codificador 100 ou 300 e/ou o decodificador 200 ou 500, para cada respectiva amostra de borda de um sub- bloco do bloco atual, podem determinar uma ou mais amostras de referência correspondentes a amostras adjacentes à respectiva amostra de borda e que circundam o sub-bloco, como amostras de referência circundantes, e podem determinar, com o uso das amostras de referência circundantes e das amostras do sub-bloco adjacentes à respectiva amostra de borda, um ou mais gradientes espaciais associados à respectiva amostra de borda. No bloco 2430, o codificador 100 ou 300 e/ou o decodificador 200 ou 500, para cada respectiva amostra sem borda no sub-bloco, podem determinar, com o uso de amostras do sub-bloco adjacentes à respectiva amostra sem borda, um ou mais gradientes espaciais associados à respectiva amostra sem borda. No bloco 2440, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem calcular uma alteração de intensidade por pixel no bloco atual com o uso dos
65 / 116 gradientes espaciais determinados do sub-bloco. No bloco 2450, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de previsão de movimento baseado em pixel com base na alteração de intensidade calculada por pixel, como um sinal de previsão de movimento refinado. No bloco 2460, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem prever o bloco atual com o uso do sinal de previsão de movimento aproximado associado a cada sub-bloco do bloco atual e com o uso do sinal de previsão de movimento refinado associado a cada pixel do bloco atual. Em certas modalidades, as operações nos blocos 2410, 2420, 2430, 2440, 2450 e 2460 podem ser executadas para pelo menos um bloco (por exemplo, o bloco atual) no vídeo.
[00161] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400 e 2600, a determinação do um ou mais gradientes espaciais das amostras de borda e das amostras sem borda pode incluir o cálculo do um ou mais gradientes espaciais com o uso de qualquer um dentre: (1) um filtro Sobel vertical; (2) um filtro Sobel horizontal; ou (3) um filtro de 3 derivações.
[00162] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 copiando as amostras de referência circundantes de um armazenamento de referência sem qualquer manipulação adicional, e a determinação do um ou mais gradientes espaciais associados à respectiva amostra de borda pode usar as amostras de referência circundantes copiadas para determinar o um ou mais gradientes espaciais associados à respectiva amostra de borda.
[00163] A Figura 25 é um fluxograma que ilustra um método de cálculo de gradiente representativo.
[00164] Com referência à Figura 25, o método representativo 2500 de
66 / 116 cálculo de um gradiente de um sub-bloco com o uso de amostras de referência correspondentes a amostras adjacentes a uma borda do sub-bloco (por exemplo, usadas na codificação e/ou decodificação de um vídeo) pode incluir, no bloco 2510, um codificador 100 ou 300 e/ou um decodificador 200 ou 500, para cada respectiva amostra de borda do sub-bloco do bloco atual, determinar uma ou mais amostras de referência correspondentes a amostras adjacentes à respectiva amostra de borda e ao sub-bloco circundante, como amostras de referência circundantes, e determinar, com o uso das amostras de referência circundantes e das amostras do sub-bloco adjacente à respectiva amostra de borda, um ou mais gradientes espaciais associados à respectiva amostra de borda. No bloco 2520, o codificador 100 ou 300 e/ou o decodificador 200 ou 500, para cada respectiva amostra sem borda no sub- bloco, podem determinar, com o uso de amostras do sub-bloco adjacente à respectiva amostra sem borda, um ou mais gradientes espaciais associados à respectiva amostra sem borda. Em certas modalidades, as operações nos blocos 2510 e 2520 podem ser executadas para pelo menos um bloco (por exemplo, o bloco atual) no vídeo.
[00165] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400, 2500 e 2600, o um ou mais gradientes espaciais determinados podem ser usados na previsão do bloco atual por qualquer uma dentre: (1) uma operação de refinamento de previsão com fluxo óptico (PROF), (2) uma operação de fluxo óptico bidirecional, ou (3) uma operação de estimativa de movimento afim.
[00166] A Figura 26 é um fluxograma que ilustra um nono método de codificação e/ou decodificação representativo.
[00167] Com referência à Figura 26, o método representativo 2600 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2610, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 que geram um
67 / 116 sinal de previsão de movimento baseado em sub-bloco para um bloco atual do vídeo. Por exemplo, o bloco atual pode incluir uma pluralidade de sub-blocos. No bloco 2620, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem, para um ou mais ou cada respectivo sub-bloco do bloco atual, determinar um sub-bloco estendido, usar o sinal de previsão de movimento baseado em sub-bloco e amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco, e determinar, com o uso do sub-bloco estendido determinado, gradientes espaciais do respectivo sub-bloco. No bloco 2630, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar um sinal de refinamento de previsão de movimento para o bloco atual com base nos gradientes espaciais determinados. No bloco 2640, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem combinar (por exemplo, adicionar ou subtrair, entre outros) o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual. No bloco 2650, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, e/ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual. Em certas modalidades, as operações nos blocos 2610, 2620, 2630, 2640 e 2650 podem ser executadas para pelo menos um bloco (por exemplo, o bloco atual) no vídeo.
[00168] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 copiando as amostras de referência adjacentes de um armazenamento de referência sem qualquer manipulação adicional. Por exemplo, a determinação dos gradientes espaciais do respectivo sub-bloco pode usar as amostras de referência adjacentes copiadas para determinar
68 / 116 valores de gradiente associados a locais de amostra em uma borda do respectivo sub-bloco. As amostras de referência adjacentes do bloco estendido podem ser copiadas das posições de números inteiros mais próximas em uma imagem de referência que inclui o bloco atual. Em certos exemplos, as amostras de referência adjacentes do bloco estendido têm um vetor de movimento inteiro mais próximo arredondado a partir de uma precisão original.
[00169] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 determinando parâmetros de modelo de movimento afim para o bloco atual do vídeo, de modo que o sinal de previsão de movimento baseado em sub-bloco pode ser gerado com o uso dos parâmetros determinados de modelo de movimento afim.
[00170] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2500 e 2600, a determinação de gradientes espaciais do respectivo sub-bloco pode incluir calcular pelo menos um valor gradiente para cada respectivo local de amostra no respectivo sub-bloco. Por exemplo, o cálculo do pelo menos um valor de gradiente para cada respectivo local de amostra no respectivo sub-bloco pode incluir, para cada respectivo local de amostra, aplicar um filtro de gradiente ao respectivo local de amostra no respectivo sub-bloco. Como outro exemplo, o cálculo do pelo menos um valor de gradiente para cada respectivo local de amostra no respectivo sub-bloco pode incluir determinar uma alteração de intensidade para cada respectivo local de amostra no respectivo sub-bloco de acordo com equações de fluxo óptico.
[00171] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o
69 / 116 decodificador 200 ou 500 determinando um conjunto de valores de diferença de vetor de movimento associados aos locais de amostra do respectivo sub- bloco. Por exemplo, o sinal de previsão de movimento baseado em sub-bloco pode ser gerado e o conjunto de valores de diferença de vetor de movimento pode ser determinado com o uso de um modelo de movimento afim para o bloco atual.
[00172] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o conjunto de valores de diferença de vetor de movimento pode ser determinado para o respectivo sub-bloco do bloco atual e pode ser usado para determinar o sinal de refinamento de previsão de movimento para outros sub- blocos restantes do bloco atual.
[00173] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, a determinação dos gradientes espaciais do respectivo sub-bloco pode incluir o cálculo dos gradientes espaciais com o uso de qualquer um dentre: (1) um filtro Sobel vertical; (2) um filtro Sobel horizontal; e/ou (3) um filtro de 3 derivações.
[00174] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco podem usar compensação de movimento de número inteiro.
[00175] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, os gradientes espaciais do respectivo sub-bloco podem incluir qualquer um dentre: um gradiente horizontal ou um gradiente vertical. Por exemplo, o gradiente horizontal pode ser calculado como uma diferença do componente luma ou uma diferença de saturação entre uma amostra vizinha à direita de
70 / 116 uma respectiva amostra e uma amostra vizinha à esquerda da respectiva amostra; e/ou o gradiente vertical pode ser calculado como a diferença do componente luma ou a diferença de saturação entre uma amostra vizinha inferior da respectiva amostra e uma amostra vizinha superior da respectiva amostra.
[00176] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o sinal de previsão de movimento baseado em sub-bloco pode ser gerado com o uso de qualquer um dentre: (1) um modelo afim de 4 parâmetros; (2) um modelo afim de 6 parâmetros; (3) uma compensação de movimento de modo de previsão de vetor de movimento temporal baseado em sub-bloco (SbTMVP); ou (3) uma compensação de movimento baseada em regressão. Por exemplo, na condição em que uma compensação de movimento de modo SbTMVP é executada, o método pode incluir: estimar, por meio de uma operação de regressão linear, parâmetros de modelo afim com o uso de um campo de vetor de movimento de sub-bloco; e/ou derivar vetores de movimento de nível de pixel com o uso dos parâmetros de modelo afim estimados. Como outro exemplo, na condição em que uma compensação de movimento baseada no modo RMVF é executada, o método pode incluir: estimar parâmetros de modelo afim; e/ou derivar deslocamentos de vetores de movimento de nível de pixel a partir de vetores de movimento de nível de sub-bloco com o uso dos parâmetros de modelo afim estimados. Os deslocamentos de vetores de movimento de pixel podem ser relativos a um centro do respectivo sub-bloco.
[00177] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o sinal de previsão de movimento refinado para o respectivo sub-bloco pode ser baseado em uma posição central real do respectivo sub-bloco ou pode ser baseado em um local de amostra mais próximo ao centro real do
71 / 116 respectivo sub-bloco.
[00178] Por exemplo, esses métodos podem incluir a seleção do codificador 100 ou 300 e/ou do decodificador 200 ou 500, como uma posição central associada a um vetor de previsão de movimento para cada respectivo sub-bloco, de um dentre: (1) um centro real de cada respectivo sub-bloco, ou (2) um local de amostra mais próximo ao centro real do respectivo sub-bloco. O sinal de previsão de movimento refinado pode ser baseado na posição central selecionada de cada sub-bloco.
[00179] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, esses métodos podem incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 determinando uma posição central associada aos pixels de saturação do respectivo sub-bloco; e um deslocamento para a posição central dos pixels de saturação do respectivo sub-bloco com base em um tipo de amostra de localização de saturação associado aos pixels de saturação. O sinal de previsão de movimento refinado para o respectivo sub- bloco pode ser baseado na posição real do sub-bloco correspondente à posição central determinada dos pixels de saturação ajustados pelo deslocamento.
[00180] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200 e 2600, o codificador 100 ou 300 pode gerar e transmitir informações indicando se o refinamento de previsão com fluxo óptico (PROF) está habilitado em um dentre: (1) um cabeçalho de conjunto de parâmetros de sequência (SPS), (2) um cabeçalho de conjunto de parâmetros de imagem (PPS), ou (3) um cabeçalho de grupo de ladrilhos (“tile”), e/ou o decodificador 200 ou 500 pode receber as informações que indicam se o PROF está habilitado em um dentre: (1) o cabeçalho de SPS, (2) o cabeçalho de PPS, ou (3) um cabeçalho de grupo de ladrilhos (“tile”).
[00181] A Figura 27 é um fluxograma que ilustra um décimo método
72 / 116 de codificação e/ou decodificação representativo.
[00182] Com referência à Figura 27, o método representativo 2700 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2710, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 determinando uma posição central real de cada respectivo sub-bloco do bloco atual. No bloco 2720, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem gerar um sinal de previsão de movimento baseado em sub-bloco ou um sinal de previsão de movimento refinado com o uso da posição central real de cada respectivo sub-bloco do bloco atual. No bloco 2730, (1) o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento baseado em sub-bloco ou do sinal de previsão de movimento refinado gerado, como a previsão para o bloco atual, ou (2) o decodificador 200 ou 500 podem decodificar o vídeo com o uso do sinal de previsão de movimento baseado em sub-bloco ou do sinal de previsão de movimento refinado gerado, como a previsão para o bloco atual. Em certas modalidades, as operações nos blocos 2710, 2720 e 2730 podem ser executadas para pelo menos um bloco (por exemplo, o bloco atual) no vídeo. Por exemplo, a determinação da posição central real de cada respectivo sub-bloco do bloco atual pode incluir determinar uma posição central de saturação associada aos pixels de saturação de um respectivo sub-bloco e um deslocamento da posição central de saturação em relação à posição central do respectivo sub-bloco com base em um tipo de amostra de localização de saturação dos pixels de saturação. O sinal de previsão de movimento baseado em sub-bloco ou o sinal de previsão de movimento refinado para o respectivo sub-bloco pode ser baseado na posição central real do respectivo sub-bloco, que corresponde à posição central de saturação determinada ajustada pelo deslocamento. Embora o centro real de cada respectivo sub-bloco do bloco atual seja descrito como determinado/usado para as várias operações, contempla-se que uma, uma porção das ou todas as posições centrais de tais sub-blocos podem ser
73 / 116 determinadas/usadas.
[00183] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 e 2800, a geração do sinal de previsão de movimento refinado pode usar o sinal de previsão de movimento baseado em sub-bloco, para cada respectivo sub-bloco do bloco atual, determinando um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco, determinando um sinal de refinamento de previsão de movimento para o bloco atual com base nos gradientes espaciais determinados e/ou combinando o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir o sinal de previsão de movimento refinado para o bloco atual. Por exemplo, a determinação de um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco pode incluir: determinar um sub-bloco estendido, usar o sinal de previsão de movimento baseado em sub-bloco e amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco, e/ou determinar, com o uso do sub-bloco estendido determinado, o um ou mais gradientes espaciais do respectivo sub- bloco.
[00184] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 e 2800, a determinação de gradientes espaciais do respectivo sub-bloco pode incluir calcular pelo menos um valor gradiente para cada respectivo local de amostra no respectivo sub-bloco. Por exemplo, o cálculo do pelo menos um valor de gradiente para cada respectivo local de amostra no respectivo sub-bloco pode incluir, para cada respectivo local de amostra, aplicar um filtro de gradiente ao respectivo local de amostra no respectivo sub-bloco.
[00185] Como outro exemplo, o cálculo do pelo menos um valor de gradiente para cada respectivo local de amostra no respectivo sub-bloco pode
74 / 116 incluir determinar uma alteração de intensidade para um ou mais respectivos locais de amostra no respectivo sub-bloco de acordo com equações de fluxo óptico.
[00186] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 e 2800, esse método pode incluir o codificador 100 ou 300 e/ou o decodificador 200 ou 500 determinando um conjunto de valores de diferença de vetor de movimento associados aos locais de amostra do respectivo sub- bloco. O sinal de previsão de movimento baseado em sub-bloco pode ser gerado, e o conjunto de valores de diferença de vetor de movimento pode ser determinado com o uso de um modelo de movimento afim para o bloco atual. Em certos exemplos, o conjunto de valores de diferença de vetor de movimento pode ser determinado para o respectivo sub-bloco do bloco atual e pode ser usado (por exemplo, reutilizado) para determinar o sinal de refinamento de previsão de movimento desse sub-bloco e de outros sub- blocos restantes do bloco atual. Por exemplo, a determinação dos gradientes espaciais do respectivo sub-bloco pode incluir o cálculo dos gradientes espaciais com o uso de qualquer um dentre: (1) um filtro Sobel vertical; (2) um filtro Sobel horizontal; e/ou (3) um filtro de 3 derivações. As amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco podem usar compensação de movimento de número inteiro.
[00187] Em algumas modalidades, os gradientes espaciais do respectivo sub-bloco podem incluir qualquer um dentre: um gradiente horizontal ou um gradiente vertical. Por exemplo, o gradiente horizontal pode ser calculado como uma diferença componente luma ou uma diferença de saturação entre uma amostra vizinha à direita da respectiva amostra e uma amostra vizinha à esquerda da respectiva amostra. Como outro exemplo, o gradiente vertical pode ser calculado como a diferença de componente luma ou a diferença de saturação entre uma amostra vizinha inferior da respectiva
75 / 116 amostra e uma amostra vizinha superior da respectiva amostra.
[00188] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 e 2800, o sinal de previsão de movimento baseado em sub-bloco pode ser gerado com o uso de qualquer um dentre: (1) um modelo afim de 4 parâmetros; (2) um modelo afim de 6 parâmetros; (3) uma compensação de movimento de modo de previsão de vetor de movimento temporal baseado em sub-bloco (SbTMVP); e/ou (3) uma compensação de movimento baseada em regressão. Por exemplo, na condição em que uma compensação de movimento de modo SbTMVP é executada, o método pode incluir: estimar, por meio de uma operação de regressão linear, parâmetros de modelo afim com o uso de um campo de vetor de movimento de sub-bloco; e/ou derivar vetores de movimento de nível de pixel com o uso dos parâmetros de modelo afim estimados. Como outro exemplo, na condição em que uma compensação de movimento baseada no modo de campo de vetor de movimento de regressão (RMVF) é executada, o método pode incluir: estimar parâmetros de modelo afim; e/ou derivar deslocamentos de vetores de movimento de nível de pixel a partir de vetores de movimento de nível de sub-bloco com o uso dos parâmetros de modelo afim estimados, sendo que os deslocamentos de vetores de movimento de pixel são relativos a um centro do respectivo sub- bloco.
[00189] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 e 2800, o sinal de previsão de movimento refinado pode ser gerado com o uso de uma pluralidade de vetores de movimento associados a pontos de controle do bloco atual.
[00190] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 e 2800, o codificador 100 ou 300 pode gerar, codificar e transmitir e o
76 / 116 decodificador 200 ou 500 pode receber e decodificar informações indicando se o refinamento de previsão com fluxo óptico (PROF) está habilitado em um dentre: (1) um cabeçalho de conjunto de parâmetros de sequência (SPS), (2) um cabeçalho de conjunto de parâmetros de imagem (PPS), ou (3) um cabeçalho de grupo de ladrilhos (“tile”).
[00191] A Figura 28 é um fluxograma que ilustra um décimo primeiro método de codificação e/ou decodificação representativo.
[00192] Com referência à Figura 28, o método representativo 2800 para codificar e/ou decodificar um vídeo pode incluir, no bloco 2810, um codificador 100 ou 300 e/ou um decodificador 200 ou 500 selecionando, como uma posição central associada com um vetor de previsão de movimento para cada respectivo sub-bloco, um dentre: (1) um centro real de cada respectivo sub-bloco, ou (2) um local de amostra mais próximo ao centro real do respectivo sub-bloco. No bloco 2820, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem determinar a posição central selecionada de cada respectivo sub-bloco do bloco atual. No bloco 2830, o codificador 100 ou 300 e/ou o decodificador 200 ou 500 podem gerar um sinal de previsão de movimento baseado em sub-bloco ou um sinal de previsão de movimento refinado com o uso da posição central selecionada de cada respectivo sub- bloco do bloco atual. No bloco 2840, (1) o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento baseado em sub-bloco ou do sinal de previsão de movimento refinado gerado, como a previsão para o bloco atual, ou (2) o decodificador 200 ou 500 podem decodificar o vídeo com o uso do sinal de previsão de movimento baseado em sub-bloco ou do sinal de previsão de movimento refinado gerado, como a previsão para o bloco atual. Em certas modalidades, as operações nos blocos 2810, 2820, 2830 e 2840 podem ser executadas para pelo menos um bloco (por exemplo, o bloco atual) no vídeo. Embora a seleção da posição central seja descrita em relação a cada respectivo sub-bloco do bloco atual,
77 / 116 contempla-se que uma, uma porção das ou todas as posições centrais de tais sub-blocos podem ser selecionadas/usadas nas várias operações.
[00193] A Figura 29 é um fluxograma que ilustra um método de codificação representativo.
[00194] Com referência à Figura 29, o método representativo 2900 para codificar um vídeo pode incluir, no bloco 2910, um codificador 100 ou 300, executar uma estimativa de movimento para o bloco atual do vídeo, incluindo determinar parâmetros de modelo de movimento afim para o bloco atual com o uso de uma operação de compensação de movimento iterativa, e gerar um sinal de previsão de movimento baseado em sub-bloco para o bloco atual com o uso dos parâmetros determinados de modelo de movimento afim. No bloco 2920, o codificador 100 ou 300, após executar a estimativa de movimento para o bloco atual, pode executar uma operação de refinamento de previsão com fluxo óptico (PROF) para gerar um sinal de previsão de movimento refinado. No bloco 2930, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual. Por exemplo, a operação PROF pode incluir: determinar um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco; determinar um sinal de refinamento de previsão de movimento para o bloco atual com base nos gradientes espaciais determinados; e/ou combinar o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual.
[00195] Em certas modalidades representativas, que incluem pelo menos os métodos representativos 1800, 1850, 1900, 2000, 2100, 2200, 2600 e 2900, a operação de PROF pode ser executada após (por exemplo, apenas após) a operação de compensação de movimento iterativa ser concluída. Por exemplo, durante a estimativa de movimento para o bloco atual, a operação de PROF não é executada.
78 / 116
[00196] A Figura 30 é um fluxograma que ilustra outro método de codificação representativo.
[00197] Com referência à Figura 30, o método representativo 3000 para codificar um vídeo pode incluir, no bloco 3010, um codificador 100 ou 300 durante a estimativa de movimento para o bloco atual, determinar parâmetros de modelo de movimento afim com o uso de uma operação de compensação de movimento iterativa e gerar um sinal de previsão de movimento baseado em sub-bloco com o uso dos parâmetros determinados de modelo de movimento afim. No bloco 3020, o codificador 100 ou 300 pode, após a estimativa de movimento para o bloco atual, na condição em que um tamanho de um bloco atual é igual ou excede um tamanho limite, executar uma operação de refinamento de previsão com fluxo óptico (PROF) para gerar um sinal de previsão de movimento refinado. No bloco 3030, o codificador 100 ou 300 pode codificar o vídeo: (1) usar o sinal de previsão de movimento refinado, como a previsão para o bloco atual, na condição em que o bloco atual atinge ou excede o tamanho limite, ou (2) usar o sinal de previsão de movimento baseado em sub-bloco, como a previsão para o bloco atual, na condição em que o bloco atual não atinge o tamanho limite.
[00198] A Figura 31 é um fluxograma que ilustra um décimo segundo método representativo de codificação/decodificação.
[00199] Com referência à Figura 31, o método representativo 3100 para codificar e/ou decodificar um vídeo pode incluir, no bloco 3110, um codificador 100 ou 300 determinando ou obtendo informações que indicam um tamanho de um bloco atual ou um decodificador 200 ou 500 recebendo informações que indicam o tamanho do bloco atual. No bloco 3120, o codificador 100 ou 300 ou o decodificador 200 ou 500 pode gerar um sinal de previsão de movimento baseado em sub-bloco. No bloco 3130, o codificador 100 ou 300 ou o decodificador 200 ou 500, na condição em que um tamanho de um bloco atual é igual ou excede um tamanho limite, pode executar uma
79 / 116 operação de Refinamento de Previsão com Fluxo Óptico (PROF) para gerar um sinal de previsão de movimento refinado. No bloco 3140, o codificador 100 ou 300 pode codificar o vídeo: (1) usar o sinal de previsão de movimento refinado, como a previsão para o bloco atual, na condição em que o bloco atual atinge ou excede o tamanho limite, ou (2) usar o sinal de previsão de movimento baseado em sub-bloco, como a previsão para o bloco atual, na condição em que o bloco atual não atinge o tamanho limite ou o decodificador 200 ou 500 pode decodificar o vídeo: (1) usar o sinal de previsão de movimento refinado, como a previsão para o bloco atual, na condição em que o bloco atual atinge ou excede o tamanho limite, ou (2) usar o sinal de previsão de movimento baseado em sub-bloco, como a previsão para o bloco atual, na condição em que o bloco atual não atinge o tamanho limite.
[00200] A Figura 32 é um fluxograma que ilustra um décimo terceiro método de codificação/decodificação representativo.
[00201] Com referência à Figura 32, o método representativo 3200 para codificar e/ou decodificar um vídeo pode incluir, no bloco 3210, um codificador 100 ou 300 determinando se uma compensação de movimento de nível de pixel deve ser executada ou um decodificador 200 ou 500 recebendo um sinalizador que indica se uma compensação de movimento de nível de pixel deve ser executada. No bloco 3220, o codificador 100 ou 300 ou o decodificador 200 ou 500 pode gerar um sinal de previsão de movimento baseado em sub-bloco. No bloco 3230, na condição em que a compensação de movimento em nível de pixel é executada, o codificador 100 ou 300 ou decodificador 200 ou 500 pode: determinar um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco, determinar um sinal de refinamento de previsão de movimento para o bloco atual com base nos gradientes espaciais determinados e combinar o sinal de previsão de movimento baseado em sub-bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o
80 / 116 bloco atual. No bloco 3240, de acordo com a determinação de se a compensação de movimento em nível de pixel deve ser executada, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de previsão de movimento baseado em sub-bloco ou do sinal de previsão de movimento refinado, como a previsão para o bloco atual, ou o decodificador 200 ou 500, de acordo com uma indicação do sinalizador, pode decodificar o vídeo com o uso do sinal de previsão de movimento baseado em sub-bloco ou do sinal de previsão de movimento refinado, como a previsão para o bloco atual. Em certas modalidades, as operações nos blocos 3220 e 3230 podem ser executadas para um bloco (por exemplo, o bloco atual) no vídeo.
[00202] A Figura 33 é um fluxograma que ilustra um décimo quarto método representativo de codificação/decodificação.
[00203] Com referência à Figura 33, o método representativo 3300 para codificar e/ou decodificar um vídeo pode incluir, no bloco 3310, um codificador 100 ou 300 determinando ou obtendo ou um decodificador 200 ou 500 recebendo informações de peso de interprevisão que indicam um ou mais pesos associados à primeira e à segunda imagens de referência. No bloco 3320, o codificador 100 ou 300 ou o decodificador 200 ou 500, para um bloco atual do vídeo, podem gerar um sinal de interprevisão de movimento baseado em sub-bloco, podem determinar um primeiro conjunto de gradientes espaciais associados a uma primeira imagem de referência e um segundo conjunto de gradientes espaciais associados a uma segunda imagem de referência, podem determinar um sinal de refinamento de interprevisão de movimento para o bloco atual com base no primeiro e no segundo conjuntos de gradientes espaciais e nas informações de peso de interprevisão e podem combinar o sinal de interprevisão de movimento com base no sub-bloco e no sinal de refinamento de interprevisão de movimento para produzir um sinal de interprevisão de movimento refinado para o bloco atual. No bloco 3330, o codificador 100 ou 300 pode codificar o vídeo com o uso do sinal de
81 / 116 interprevisão de movimento refinado, como a previsão para o bloco atual, ou o decodificador 200 ou 500 pode decodificar o vídeo com o uso do sinal de interprevisão de movimento refinado, como a previsão para o bloco atual. Por exemplo, as informações de peso de interprevisão são qualquer um dentre: (1) um indicador que indica um primeiro fator ponderal a ser aplicado para a primeira imagem de referência e/ou um segundo fator ponderal a ser aplicado para a segunda imagem de referência; ou (2) um índice de peso. Em certas modalidades, o sinal de refinamento de interprevisão de movimento para o bloco atual pode ser baseado em: (1) um primeiro valor de gradiente derivado do primeiro conjunto de gradientes espaciais e ponderado de acordo com um primeiro fator de peso indicado pelas informações de peso de interprevisão, e (2) um segundo valor de gradiente derivado do segundo conjunto de gradientes espaciais e ponderado de acordo com um segundo fator de peso indicado pelas informações de peso de interprevisão. Exemplos de redes para implementação das modalidades
[00204] A Figura 34A é um diagrama que ilustra um sistema de comunicações exemplificador 3400 no qual uma ou mais modalidades reveladas podem ser implementadas. O sistema de comunicações 3400 pode ser um sistema de acesso múltiplo que fornece conteúdo, como voz, dados, vídeo, mensagens, radiodifusão etc. para múltiplos usuários sem fio. O sistema de comunicações 3400 pode possibilitar que múltiplos usuários sem fio acessem esse conteúdo através do compartilhamento de recursos de sistema, inclusive largura de banda sem fio. Por exemplo, os sistemas de comunicações 3400 podem empregar um ou mais métodos de acesso de canal, como acesso múltiplo por divisão de código (CDMA - “Code Division Multiple Access”), acesso múltiplo por divisão de tempo (TDMA - “Time Division Multiple Access”), acesso múltiplo por divisão de frequência (FDMA - “Frequency Division Multiple Access”), FDMA ortogonal (OFDMA - “Orthogonal Frequency Division Multiple Access”), FDMA de
82 / 116 portadora única (SC-FDMA - “Single-Carrier Frequency Division Multiple Access”), OFDM de espalhamento de transformada discreta de Fourier (DFT - “DISCRETE FOURIER TRANSFORM”) de palavra única “zero tail” (ZT UW DTS-s OFDM - “Zero-Tail Unique-Word Discrete Single Transform Spread Orthogonal Frequency Division Multiplexing”), OFDM filtrada por palavra única (UW-OFDM - “Unique Word Orthogonal Frequency Division Multiplexing”), OFDM filtrada por bloco de recurso, multiportadora de banco de filtro (FBMC - “Filter Bank Multicarrier”) e similares.
[00205] Conforme mostrado na Figura 34A, o sistema de comunicação 3400 pode incluir unidades de transmissão/recepção sem fio (WTRUs) 3402a, 3402b, 3402c, 3402d, uma RAN 3404/3413, uma CN 3406/3415, uma rede telefônica pública comutada (PSTN - “Public Switched Telephone Network”) 3408, a Internet 3410 e outras redes 3412, embora deva-se considerar que as modalidades reveladas contemplam qualquer número de WTRUs, estações- base, redes e/ou elementos de rede. Cada uma das WTRUs 3402a, 3402b, 3402c, 3402d pode ser qualquer tipo de dispositivo configurado para operar e/ou se comunicar em um ambiente sem fio. A título de exemplo, as WTRUs 3402a, 3402b, 3402c, 3402d, sendo que qualquer uma destas pode ser chamada de uma “estação” e/ou uma “STA”, podem ser configuradas para transmitir e/ou receber sinais sem fio e podem incluir um equipamento de usuário (UE - “User Equipment”), uma estação móvel, uma unidade assinante fixa ou móvel, uma unidade baseada em assinatura, um pager, um telefone celular, um assistente digital pessoal (PDA - “Personal Digital Assistant”), um telefone inteligente, um computador do tipo laptop, um computador do tipo netbook, um computador pessoal, um sensor sem fio, um dispositivo de ponto de acesso ou Mi-Fi, um dispositivo de Internet das coisas (IoT - “Internet of Things”), um relógio de pulso ou outro dispositivo para ser usado junto ao corpo, um capacete de realidade virtual (HMD - “Head-Mounted Display”), uma portadora, um drone, um dispositivo e aplicações médicas (por exemplo,
83 / 116 cirurgia remota), um dispositivo e aplicações industriais (por exemplo, um robô e/ou outros dispositivos sem fio operando em um contexto de cadeia de processamento industrial e/ou automatizado), um dispositivo eletrônico de consumo, um dispositivo que opera em redes sem fio comerciais e/ou industriais e similares. Qualquer uma das WTRUs 3402a, 3402b, 3402c e 3402d pode ser chamada de forma intercambiável de UE.
[00206] Os sistemas de comunicação 3400 podem incluir também uma estação-base 3414a e/ou uma estação-base 3414b. Cada uma das estações- base 3414a, 3414b pode ser qualquer tipo de dispositivo configurado para fazer interface sem fio com pelo menos uma das WTRUs 3402a, 3402b, 3402c, 3402d para facilitar o acesso a uma ou mais redes de comunicação, como a CN 3406/3415, a Internet 3410 e/ou as outras redes 3412. A título de exemplo, as estações-base 3414a, 3414b podem ser uma estação-base transceptora (BTS - “Base Transceiver Station”), um nó B (Node-B), um nó B evoluído final (eNodeB (end)), um nó B de origem (HNB - “Home Node B”), um eNodeB de origem (HeNB - “Home eNode B”), um gNB, um nó B de novo rádio (NR - “New Radio”), um controlador de local, um ponto de conexão (AP - “Access Point”), um roteador sem fio e similares. Embora cada uma das estações-base 3414a e 3414b seja mostrada como um elemento único, deve-se considerar que as estações-base 3414a e 3414b podem incluir qualquer número de estações-base e/ou elementos de rede interconectados.
[00207] A estação-base 3414a pode ser parte da RAN 3404/3413, que pode também incluir outras estações-base e/ou elementos de rede (não mostrados), como um controlador de estação-base (BSC - “Base Station Controller”), um controlador de rede de rádio (RNC - “Radio Network Controller”), nós de retransmissão etc. A estação-base 3414a e/ou a estação- base 3414b pode ser configurada para transmitir e/ou receber sinais sem fio em uma ou mais frequências de portadora, que podem ser chamadas de célula (não mostrada). Essas frequências podem estar em espectro licenciado,
84 / 116 espectro não licenciado ou uma combinação de espectro licenciado e não licenciado. Uma célula pode proporcionar cobertura para um serviço sem fio a uma área geográfica específica que pode ser relativamente fixa ou que pode mudar ao longo do tempo. A célula pode, ainda, ser dividida em setores de célula. Por exemplo, a célula associada à estação-base 3414a pode ser dividida em três setores. Dessa forma, em uma modalidade, a estação-base 3414a pode incluir três transceptores, isto é, um para cada setor da célula. Em uma modalidade, a estação-base 3414a pode empregar tecnologia de múltiplas entradas e múltiplas saídas (MIMO - “Multiple Input Multiple Output”) e pode usar múltiplos transceptores para cada setor da célula. Por exemplo, a formação de feixes pode ser usada para transmitir e/ou receber sinais em direções espaciais desejadas.
[00208] As estações-base 3414a, 3414b podem se comunicar com uma ou mais das WTRUs 3402a, 3402b, 3402c, 3402d através de uma interface aérea 3416, que pode ser qualquer link de comunicação sem fio adequado (por exemplo, radiofrequência (RF - “Radio Frequency”), micro-ondas, onda centimétrica, onda micrométrica, infravermelho (IR - “Infrared”), ultravioleta (UV - “Ultraviolet”), luz visível, etc.). A interface aérea 3416 pode ser estabelecida com o uso de qualquer tecnologia adequada de acesso por rádio (“RAT” - Radio Access Technology).
[00209] Mais especificamente, conforme indicado acima, o sistema de comunicações 3400 pode ser um sistema de acesso múltiplo e pode empregar um ou mais esquemas de acesso ao canal, como CDMA, TDMA, FDMA, OFDMA, SC-FDMA e similares. Por exemplo, a estação-base 3414a na RAN 3404/3413 e as WTRUs 3402a, 3402b, 3402c podem implementar uma tecnologia de rádio, como o acesso terrestre universal por rádio (UTRA - “Universal Terrestrial Radio Access”) do sistema universal de telecomunicações móveis (UMTS - “Universal Mobile Telecommunications System”), que pode estabelecer a interface aérea 3415/3416/3417 com o uso
85 / 116 de CDMA de banda larga (WCDMA - “Wideband Code Division Multiple Access”). O WCDMA pode incluir protocolos de comunicação, como acesso de pacote de alta velocidade (“HSPA” - high-speed packet access) e/ou HSPA evoluído (HSPA+). O HSPA pode incluir acesso de pacote de enlace descendente (DL - “downlink”) de alta velocidade (HSDPA - “high-speed downlink packet access”) e/ou acesso de pacote de enlace ascendente (UL - “uplink”) de alta velocidade (HSUPA - “high-speed uplink packet access”).
[00210] Em uma modalidade, a estação-base 3414a e as WTRUs 3402a, 3402b, 3402c podem implementar uma tecnologia de rádio, como o acesso terrestre por rádio de UMTS evoluído (E-UTRA), que pode estabelecer a interface aérea 3416 com o uso de evolução de longo prazo (LTE - “Long Term Evolution”) e/ou LTE avançada (LTE-A) e/ou LTE Avançada Pro (LTE-A Pro).
[00211] Em uma modalidade, a estação-base 3414a e as WTRUs 3402a, 3402b, 3402c podem implementar uma tecnologia de rádio, como acesso por rádio NR, que pode estabelecer a interface aérea 3416 com o uso da tecnologia Novo Rádio (NR- “New Radio”).
[00212] Em uma modalidade, a estação-base 3414a e as WTRUs 3402a, 3402b, 3402c podem implementar múltiplas tecnologias de acesso por rádio. Por exemplo, a estação-base 3414a e as WTRUs 3402a, 3402b, 3402c podem implementar acesso por rádio LTE e acesso por rádio NR em conjunto, por exemplo, com o uso de princípios de conectividade dupla (DC - “Dual Connectivity”). Dessa forma, a interface aérea utilizada pelas WTRUs 3402a, 3402b, 3402c pode ser caracterizada por múltiplos tipos de tecnologias de acesso por rádio e/ou transmissões enviadas para/a parir de múltiplos tipos de estações-base (por exemplo, um eNB e um gNB).
[00213] Em outras modalidades, a estação-base 3414a e as WTRUs 3402a, 3402b, 3402c podem implementar tecnologias de rádio, como IEEE
802.11 (isto é, fidelidade sem fio (Wi-Fi - “Wireless Fidelity”)), IEEE 802.16
86 / 116 (isto é, interoperabilidade mundial para acesso de micro-ondas (WiMAX - “Worldwide Interoperability for Microwave Access”)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, padrão provisório 2000 (IS-2000), padrão provisório 95 (IS-95), padrão provisório 856 (IS-856), sistema global para comunicações móveis (GSM - “Global System for Mobile Communications”), taxas de dados aprimoradas para evolução GSM (EDGE - “Enhanced Data Rates for Gsm Evolution”), EDGE de GSM (GERAN) e similares.
[00214] A estação-base 3414b na Figura 34A pode ser um roteador sem fio, um nó B de origem, um eNodeB de origem ou um ponto de conexão, por exemplo, e pode usar qualquer RAT adequada para facilitar a conectividade sem fio em uma área localizada, como um local de trabalho, uma residência, uma portadora, um campus, uma instalação industrial, um corredor de ar (por exemplo, para uso por drones), uma rodovia e similares. Em uma modalidade, a estação-base 3414b e as WTRUs 3402c, 3402d podem implementar uma tecnologia de rádio, como IEEE 802.11, para estabelecer uma rede de área local sem fio (WLAN - “Wireless Local Area Network”). Em uma modalidade, a estação-base 3414b e as WTRUs 3402c, 3402d podem implementar uma tecnologia de rádio, como IEEE 802.15, para estabelecer uma rede de área pessoal sem fio (WPAN - “Wireless Personal Area Network”). Em ainda outra modalidade, a estação-base 3414b e as WTRUs 3402c, 3402d podem usar uma RAT com base em celular (por exemplo, WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) para estabelecer uma picocélula ou femtocélula. Conforme mostrado na Figura 34A, a estação-base 3414b pode ter uma conexão direta com a Internet 3410. Dessa forma, a estação-base 3414b pode não ser necessária para acessar a Internet 3410 através da CN 3406/3415.
[00215] A RAN 3404/3413 pode estar em comunicação com a CN 3406/3415, que pode ser qualquer tipo de rede configurada para fornecer voz,
87 / 116 dados, aplicativos e/ou serviços de voz sobre protocolo de Internet (VoIP - “Voice Over Internet Protocol”) para uma ou mais das WTRUs 3402a, 3402b, 3402c, 3402d. Os dados podem ter requisitos de qualidade de serviço (QoS - “Quality of Service”) variados, como diferentes requisitos de capacidade de processamento, requisitos de latência, requisitos de tolerância a erros, requisitos de confiabilidade, os requisitos de capacidade de processamento de dados, requisitos de mobilidade e similares. A CN 3406/3415 pode fornecer controle de chamada, serviços de cobrança, serviços móveis com base em localização, chamada pré-paga, conectividade de Internet, distribuição de vídeo etc. e/ou executar funções de segurança de alto nível, como autenticação de usuário. Embora não mostrado na Figura 34A, deve-se considerar que a RAN 1084/3413 e/ou a CN 3406/3415 podem estar em comunicação direta ou indireta com outras RANs que empregam a mesma RAT, como a RAN 3404/3413, ou uma RAT diferente. Por exemplo, além de ser conectada à RAN 3404/3413, que pode usar uma tecnologia de rádio NR, a CN 3406/3415 também pode estar em comunicação com outra RAN (não mostrada) que emprega uma tecnologia de rádio GSM, UMTS, CDMA 2000, WiMAX, E-UTRA ou Wi-Fi.
[00216] A CN 3406/3415 também pode servir como uma porta de comunicação (“gateway”) para as WTRUs 3402a, 3402b, 3402c, 3402d acessarem a PSTN 3408, a Internet 3410 e/ou as outras redes 3412. A PSTN 3408 pode incluir redes telefônicas de circuito comutado que fornecem serviço telefônico convencional (POTS - “Plain Old Telephone Service”). A Internet 3410 pode incluir um sistema global de redes de computador e dispositivos interconectados que usam protocolos de comunicação comuns, como o protocolo de controle de transmissão (TCP - “Transmission Control Protocol”), o protocolo de datagrama de usuário (UDP - “User Datagram Protocol”) e o protocolo de Internet (IP - “Internet Protocol”) no conjunto de protocolos de Internet TCP/IP. As redes 3412 podem incluir redes de
88 / 116 comunicações com fio e/ou sem fio pertencentes a e/ou operadas por outros fornecedores de serviços. Por exemplo, as redes 3412 podem incluir outra CN conectada a uma ou mais RANs, que podem empregar a mesma RAT, como a RAN 3404/3413 ou uma RAT diferente.
[00217] Algumas ou todas as WTRUs 3402a, 3402b, 3402c, 3402d no sistema de comunicações 3400 podem incluir capacidades de modo múltiplo (por exemplo, as WTRUs 3402a, 3402b, 3402c, 3402d podem incluir múltiplos transceptores para comunicação com redes sem fio diferentes através de links sem fio diferentes). Por exemplo, a WTRU 3402c mostrada na Figura 34A pode ser configurada para se comunicar com a estação-base 3414a, que pode empregar uma tecnologia de rádio baseada em celular, e com a estação-base 3414b, que pode empregar uma tecnologia de rádio IEEE 802.
[00218] A Figura 34B é um diagrama de sistema que ilustra um exemplo de WTRU 3402. Conforme mostrado na Figura 34B, a WTRU 3402 pode incluir um processador 3418, um transceptor 3420, um elemento de transmissão/recepção 3422, um alto-falante/microfone 3424, um teclado 3426, uma tela/touchpad 3428, uma memória não removível 3430, uma memória removível 3432, uma fonte de energia 3434, um chipset de sistema de posicionamento global (GPS - “Global Positioning System”) 3436 e/ou outros periféricos 3438, entre outros. Será reconhecido que a WTRU 3402 pode incluir qualquer subcombinação dos elementos supracitados enquanto permanece consistente com uma modalidade.
[00219] O processador 3418 pode ser um processador de propósito geral, um processador de propósito especial, um processador convencional, um processador de sinal digital (“DSP” - Digital Signal Processor), uma pluralidade de microprocessadores, um ou mais microprocessadores em associação com um núcleo de DSP, um controlador, um microcontrolador, circuitos integrados de aplicação específica (ASICs - “Application Specific Integrated Circuits”), circuitos de matriz de portas programáveis em campo
89 / 116 (FPGAs - “Field Programmable Gate Arrays”), qualquer outro tipo de circuito integrado (IC - “Integrated Circuit”), uma máquina de estado e similares. O processador 3418 pode executar codificação de sinais, processamento de dados, controle de potência, processamento de entrada/saída e/ou qualquer outra funcionalidade que possibilite que a WTRU 3402 opere em um ambiente sem fio. O processador 3418 pode ser acoplado ao transceptor 3420, que pode ser acoplado ao elemento de transmissão/recepção 3422. Embora a Figura 34B represente o processador 3418 e o transceptor 3420 como componentes separados, será reconhecido que o processador 3418 e o transceptor 3420 podem ser integrados juntos em um pacote ou chip eletrônico. O processador 3418 pode ser configurado para codificar ou decodificar vídeo (por exemplo, quadros de vídeo).
[00220] O elemento de transmissão/recepção 3422 pode ser configurado para transmitir sinais a, ou receber sinais de, uma estação-base (por exemplo, a estação-base 3414a) através da interface aérea 3416. Por exemplo, em uma modalidade, o elemento de transmissão/recepção 3422 pode ser uma antena configurada para transmitir e/ou receber sinais de RF. Em uma modalidade, o elemento de transmissão/recepção 3422 pode ser um emissor/detector configurado para transmitir e/ou receber sinais de IR, UV ou luz visível, por exemplo. Em ainda outra modalidade, o elemento de transmissão/recepção 3422 pode ser configurado para transmitir e/ou receber tanto sinais de RF como de luz. Será reconhecido que o elemento de transmissão/recepção 3422 pode ser configurado para transmitir e/ou receber qualquer combinação de sinais sem fio.
[00221] Embora o elemento de transmissão/recepção 3422 seja representado na Figura 34B como um elemento único, a WTRU 3402 pode incluir qualquer número de elementos de transmissão/recepção 3422. Mais especificamente, a WTRU 3402 pode empregar a tecnologia MIMO. Dessa forma, em uma modalidade, a WTRU 3402 pode incluir dois ou mais
90 / 116 elementos de transmissão/recepção 3422 (por exemplo, múltiplas antenas) para transmitir e receber sinais sem fio através da interface aérea 3416.
[00222] O transceptor 3420 pode ser configurado para modular os sinais que devem ser transmitidos pelo elemento de transmissão/recepção 3422 e para demodular os sinais que são recebidos pelo elemento de transmissão/recepção 3422. Conforme indicado acima, a WTRU 3402 pode ter capacidades de modo múltiplo. Dessa forma, o transceptor 3420 pode incluir múltiplos transceptores para possibilitar que a WTRU 3402 se comunique por meio de múltiplas RATs, como NR e IEEE 802.11, por exemplo.
[00223] O processador 3418 da WTRU 3402 pode ser acoplado ao alto-falante/microfone 3424, ao teclado 3426 e/ou ao monitor/touchpad 3428 (por exemplo, uma unidade de exibição de tela de cristal líquido (“LCD” - liquid crystal display) ou a uma unidade de exibição de diodo orgânico emissor de luz (“OLED” - organic light-emitting diode). O processador 3418 pode emitir também dados de usuário para o alto-falante/microfone 3424, o teclado 3426 e/ou o monitor/touchpad 3428. Além disso, o processador 3418 pode acessar informações de, e armazenar dados em, qualquer tipo de memória adequada, como a memória não removível 3430 e/ou a memória removível 3432. A memória não removível 3430 pode incluir uma memória de acesso aleatório (“RAM” - Random Access Memory), uma memória só de leitura (“ROM” - Read-Only Memory), um disco rígido ou qualquer outro tipo de dispositivo de armazenamento de memória. A memória removível 3432 pode incluir um cartão de módulo de identidade de assinante (“SIM” - Subscriber Identity Module), um cartão de memória, um cartão de memória digital segura (“SD” - Secure Digital) e similares. Em outras modalidades, o processador 3418 pode acessar informações da, e armazenar dados na, memória que não está fisicamente localizada na WTRU 3402, como em um servidor ou um computador de uso doméstico (não mostrado).
91 / 116
[00224] O processador 3418 pode receber energia da fonte de energia 3434 e pode ser configurado para distribuir e/ou controlar a energia para os outros componentes na WTRU 3402. A fonte de energia 3434 pode ser qualquer dispositivo adequado para alimentar a WTRU 3402. Por exemplo, a fonte de energia 3434 pode incluir uma ou mais baterias de célula seca (por exemplo, níquel-cádmio (NiCd), níquel-zinco (NiZn), níquel-hidreto metálico (NiMH), íon de lítio (Li-Íon), etc.), células solares, células de combustível e similares.
[00225] O processador 3418 pode ser também acoplado ao chipset de GPS 3436, o qual pode ser configurado para fornecer informações de localização (por exemplo, longitude e latitude) referentes à localização atual da WTRU 3402. Em adição às, ou em vez das, informações do conjunto de circuitos eletrônicos do GPS 3436, a WTRU 3402 pode receber informações de localização através da interface aérea 3416 de uma estação-base (por exemplo, estações-base 3414a, 3414b) e/ou determinar sua localização com base na temporização dos sinais recebidos de duas ou mais estações-base próximas. Deve-se considerar que a WTRU 3402 pode capturar informações de localização por meio de qualquer método de determinação de localização adequado, e ainda permanecer compatível com uma modalidade.
[00226] O processador 3418 pode adicionalmente ser acoplado a outros periféricos 3438, os quais podem incluir um ou mais módulos de software e/ou hardware que fornecem recursos, funcionalidade e/ou conectividade sem fio ou com fio adicionais. Por exemplo, os periféricos 3438 podem incluir um acelerômetro, uma bússola eletrônica, um transceptor de satélite, uma câmera digital (para fotografias e/ou vídeo), uma porta de barramento serial universal (“USB” - Universal Serial Bus), um dispositivo de vibração, um transceptor de televisão, um headset de mãos livres, um módulo Bluetooth®, uma unidade de rádio em frequência modulada (“FM” - Frequency Modulated), um reprodutor de música digital, um reprodutor de mídia, um módulo
92 / 116 reprodutor de videogame, um navegador de Internet, um dispositivo de realidade virtual e/ou realidade aumentada (“VR/AR” - Virtual Reality/Augmented Reality), um rastreador de atividade e similares. Os periféricos 3438 podem incluir um ou mais sensores, os quais podem ser um ou mais dentre um giroscópio, um acelerômetro, um sensor de efeito Hall, um magnetômetro, um sensor de orientação, um sensor de proximidade, um sensor de temperatura, um sensor de tempo; um sensor de geolocalização; um altímetro, um sensor de luz, um sensor de toque, um magnetômetro, um barômetro, um sensor de gestos, um sensor biométrico e/ou um sensor de umidade.
[00227] O processador 3418 da WTRU 3402 pode se comunicar de modo operacional com vários periféricos 3438, incluindo, por exemplo, qualquer um dentre: o um ou mais acelerômetros, o um ou mais giroscópios, a porta USB, outras interfaces/portas de comunicação, a tela e/ou outros indicadores visuais/de áudio para implementar modalidades representativas aqui reveladas.
[00228] A WTRU 3402 pode incluir um rádio bidirecional completo para o qual a transmissão e recepção de alguns ou de todos os sinais (por exemplo, associados a subquadros específicos para ambos dentre UL (por exemplo, para a transmissão) e enlace descendente (por exemplo, para recepção) podem ser concomitantes e/ou simultâneos. O rádio bidirecional completo pode incluir uma unidade de gerenciamento de interferência e reduzir ou eliminar substancialmente a autointerferência através de hardware (por exemplo, um obturador) ou processamento de sinal por meio de um processador (por exemplo, um processador separado (não mostrado) ou por meio do processador 3418). Em uma modalidade, a WTRU 3402 pode incluir um rádio semiduplex para transmissão e recepção de alguns ou todos os sinais (por exemplo, associados a subquadros específicos para o UL (por exemplo, para transmissão) ou para o enlace descendente (por exemplo, para
93 / 116 recepção)).
[00229] A Figura 34C é um diagrama de sistema que ilustra a RAN 104 e a CN 3406 de acordo com uma modalidade. Conforme observado acima, a RAN 3404 pode empregar uma tecnologia de rádio E-UTRA para se comunicar com as WTRUs 3402a, 3402b, 3402c através da interface aérea
3416. A RAN 3404 pode também estar em comunicação com a CN 3406.
[00230] A RAN 3404 pode incluir os eNodeBs 3460a, 3460b, 3460c, embora deva-se considerar que a RAN 3404 pode incluir qualquer número de eNodeBs e ainda permanecer consistente com uma modalidade. Cada um dos eNodeBs 3460a, 3460b, 3460c pode incluir um ou mais transceptores para comunicação com as WTRUs 3402a, 3402b, 3402c através da interface aérea
3416. Em uma modalidade, os eNodeBs 3460a, 3460b, 3460c podem implementar a tecnologia MIMO. Assim, o eNodeB 3460a, por exemplo, pode usar múltiplas antenas para transmitir e/ou receber sinais sem fio da WTRU 3402a.
[00231] Cada um dos eNodeBs 3460a, 3460b, 3460c pode estar associado a uma célula específica (não mostrada) e pode ser configurado para lidar com decisões de gerenciamento de recurso de rádio, decisões de mudança automática, agendamento de usuários no UL e/ou DL e similares. Conforme mostrado na Figura 34C, os eNodeBs 3460a, 3460b, 3460c podem se comunicar uns com os outros através de uma interface X2.
[00232] A CN 3406 mostrada na Figura 34C pode incluir uma entidade de gerenciamento de mobilidade (MME - “Mobility Management Entity”) 3462, uma porta de comunicação servidora (SGW - “Serving Gateway”) 3464 e uma porta de comunicação de rede de dados de pacote (PDN - “Packet Data Network”) (ou PGW) 3466. Embora cada um dos elementos supracitados seja mostrado como parte da CN 3406, deve-se considerar que qualquer um desses elementos pode pertencer e/ou ser operado por uma entidade diferente do operador da CN.
94 / 116
[00233] A MME 3462 pode ser conectada a cada um dos eNodeBs 3460a, 3460b, 3460c na RAN 3404 por meio de uma interface S1 e pode servir como um nó de controle. Por exemplo, a MME 3462 pode ser responsável pela autenticação de usuários das WTRUs 3402a, 3402b, 3402c, pela ativação/desativação da portadora, pela seleção de uma porta de comunicação servidora específica durante uma conexão inicial das WTRUs 3402a, 3402b, 3402c e similares. A MME 3462 pode fornecer uma função de plano de controle para a comutação entre a RAN 3404 e outras RANs (não mostradas) que empregam outras tecnologias de rádio, como GSM ou WCDMA.
[00234] A SGW 3464 pode ser conectada a cada um dos eNodeBs 3460a, 3460b, 3460c na RAN 104 através da interface S1. A SWH 3464 pode, de modo geral, rotear e encaminhar pacotes de dados de usuário destinados às/provenientes das WTRUs 3402a, 3402b, 3402c. A SGW 3464 pode executar outras funções, como ancoragem de planos de usuário durante as mudanças automáticas entre eNodeBs, disparar paginação quando dados de DL estiverem disponíveis para as WTRUs 3402a, 3402b, 3402c, gerenciar e armazenar os contextos das WTRUs 3402a, 3402b, 3402c e similares.
[00235] A SGW 3464 pode ser conectada à PGW 3466, a qual pode fornecer às WTRUs 3402a, 3402b, 3402c acesso a redes de comutação de pacotes, como a Internet 3410, para facilitar as comunicações entre as WTRUs 3402a, 3402b, 3402c e dispositivos habilitados para IP.
[00236] A CN 3406 pode facilitar as comunicações com outras redes. Por exemplo, a CN 106 pode fornecer às WTRUs 3402a, 3402b, 3402c acesso a redes comutadas por circuito, como a PSTN 3408, para facilitar as comunicações entre as WTRUs 3402a, 3402b, 3402c e dispositivos de comunicações terrestres tradicionais. Por exemplo, a CN 3406 pode incluir ou pode se comunicar com uma porta de comunicação de IP (por exemplo, um servidor de subsistema multimídia de IP (IMS)) que serve como uma interface
95 / 116 entre a CN 3406 e a PSTN 3408. Além disso, a CN 3406 pode fornecer às WTRUs 3402a, 3402b, 3402c acesso a outras redes 3412, que podem incluir outras redes com fio e/ou sem fio que pertencem a e/ou são operadas por outros fornecedores de serviço.
[00237] Embora a WTRU seja descrita nas Figuras 12A a 12D como um terminal sem fio, é contemplado que, em certas modalidades representativas, tal terminal pode usar (por exemplo, temporária ou permanentemente) interfaces de comunicação com fio com a rede de comunicação.
[00238] Em modalidades representativas, a outra rede 3412 pode ser uma WLAN.
[00239] Uma WLAN no modo de conjunto de serviços básicos (“BSS” - basic service set) pode ter um ponto de conexão (“AP” - access point) para o BSS e uma ou mais estações (“STAs” - stations) associadas ao AP. O AP pode ter acesso ou uma interface com um sistema de distribuição (DS - “distribution system”) ou outro tipo de rede com fio/sem fio que transporta tráfego para dentro e/ou para fora do BSS. O tráfego para as STAs que se originam do lado de fora de um BSS pode chegar através do AP e pode ser entregue para as STAs. O tráfego proveniente de STAs para destinos fora do BSS pode ser enviado para o AP para ser entregue aos respectivos destinos. O tráfego entre STAs dentro do BSS pode ser enviado através do AP, por exemplo, onde a STA de origem pode enviar tráfego para o AP e o AP pode entregar o tráfego para a STA de destino. O tráfego entre STAs dentro de um BSS pode ser considerado e/ou chamado como tráfego ponto a ponto. O tráfego ponto a ponto pode ser enviado entre (por exemplo, diretamente entre) as STAs de origem e destino com uma configuração de enlace direto (“DLS” - direct link setup). Em certas modalidades representativas, a DLS pode usar uma DLS 802.11e ou uma DLS em túnel 802.11z (TDLS - “tunneled direct link setup”). Uma WLAN que usa um modo BSS independente (“IBSS” -
96 / 116 independent basic service set) pode não ter um AP, e as STAs (por exemplo, todas as STAs) dentro ou que usam o IBSS podem se comunicar diretamente entre si. O modo de comunicação IBSS pode ser chamado algumas vezes no presente documento de um modo de comunicação “ad hoc”.
[00240] Quando se usa o modo de operação ou um modo de operações similar de infraestrutura 802.11ac, o AP pode transmitir um sinalizador em um canal fixo, como um canal primário. O canal primário pode ter uma largura fixa (por exemplo, 20 MHz de largura de largura de banda) ou uma largura dinamicamente definida por meio de sinalização. O canal primário pode ser o canal operacional do BSS e pode ser usado pelas STAs para estabelecer uma conexão com o AP. Em certas modalidades representativas, o acesso múltiplo com detecção de portadora com prevenção de colisão (CSMA/CA - “carrier sense multiple access with collision avoidance”) pode ser implementado, por exemplo, em sistemas 802.11. Para CSMA/CA, as STAs (por exemplo, a cada STA), incluindo o AP, pode detectar o canal primário. Se o canal primário é detectado e/ou determinado/detectado como estando ocupado por uma determinada STA, a STA específica pode recuar. Uma STA (por exemplo, apenas uma estação) pode transmitir em qualquer dado momento em um dado BSS.
[00241] STAs de alta capacidade de processamento (“HT” - high throughput) podem usar um canal de 40 MHz de largura para comunicação, por exemplo, por meio de uma combinação do canal primário de 20 MHz com um canal de 20 MHz adjacente ou não adjacente para formar um canal de 40 MHz de largura.
[00242] As STAs de capacidade de processamento muito alta (“VHT” - very high throughput) podem suportar canais de 20 MHz, 40 MHz, 80 MHz e/ou 160 MHz de largura. Os canais de 40 MHz e/ou 80 MHz podem ser formados, por exemplo, pela combinação de canais contíguos de 20 MHz. Um canal de 160 MHz pode ser formado, por exemplo, pela combinação de oito
97 / 116 canais de 20 MHz contíguos ou pela combinação de dois canais não contíguos de 80 MHz, que pode ser chamada de uma configuração 80+80. Para a configuração 80 + 80, os dados, após a codificação do canal, podem ser passados por um analisador de segmento que pode dividir os dados em dois fluxos. O processamento da transformada inversa rápida de Fourier (“IFFT” - inverse fast Fourier transform) e o processamento de domínio de tempo podem ser realizados, por exemplo, em cada fluxo separadamente. Os fluxos podem ser mapeados para os dois canais de 80 MHz, e os dados podem ser transmitidos por uma STA de transmissão. No receptor da STA de recepção, a operação descrita acima para a configuração 80 + 80 pode ser revertida, e os dados combinados podem ser enviados para o controle de acesso a mídias (“MAC” - medium access control).
[00243] Os modos de operação de sub 1 GHz são suportados por
802.11af e 802.11ah. As larguras de banda de operação do canal, e as portadoras, são reduzidas em 802.11af e 802.11ah em relação àquelas usadas em 802.11n e 802.11ac. 802.11af suporta larguras de banda de 5 MHz, 10 MHz e 20 MHz no espectro de espaço branco de TV (TVWS - “TV white space”) e 802.11ah suporta larguras de banda de 1 MHz, 2 MHz, 4 MHz, 8 MHz e 16 MHz que usam o espectro que não o TVWS. De acordo com uma modalidade representativa, 802.11ah pode suportar controle do tipo medidor/comunicações do tipo máquina, como dispositivos MTC (MTC - “machine-type communications”) em uma área de cobertura macro. Os dispositivos MTC podem ter certas capacidades, por exemplo, recursos limitados que incluem o suporte (por exemplo, suporte apenas para) e/ou larguras de banda limitada determinadas. Os dispositivos MTC podem incluir uma bateria com uma vida útil da bateria acima de um limite (por exemplo, para manter uma longa vida útil da bateria).
[00244] Os sistemas WLAN, que podem suportar vários canais e larguras de banda de canal, como 802.11n, 802.11ac, 802.11af e 802.11ah,
98 / 116 incluem um canal que pode ser designado como o canal primário. O canal primário pode ter, por exemplo, uma largura de banda igual a maior largura de banda operacional comum suportada por todas as STAs no BSS. A largura de banda do canal primário pode ser definida e/ou limitada por uma STA, dentre todas as STAs em operação em um BSS, que suporta o menor modo de operação de largura de banda. No exemplo de 802.11ah, o canal primário pode ser de 1 MHz de largura para STAs (por exemplo, dispositivos do tipo MTC) que suportam (por exemplo, apenas suportam) um modo de 1 MHz, mesmo se o AP, e outras STAs no modo BSS suportam os modos operacionais de largura de banda de 2 MHz, 4 MHz, 8 MHz, 16 MHz e/ou outros canais. As configurações de detecção de portadora e/ou de Vetor de Alocação de Rede (“NAV” - network allocation vector) podem depender do estado do canal primário. Se o canal primário estiver ocupado, por exemplo, devido a uma STA (que suporta apenas um modo de funcionamento de 1 MHz), transmitindo para o AP, todas as bandas de frequência disponíveis podem ser consideradas ocupadas mesmo que a maioria das bandas de frequência permaneça ociosa e possa estar disponível.
[00245] Nos Estados Unidos, as bandas de frequência disponíveis, que podem ser usadas por 802.11ah, são de 902 MHz a 928 MHz. Na Coreia, as bandas de frequência disponíveis são de 917,5 MHz a 923,5 MHz. No Japão, as bandas de frequência disponíveis são de 916,5 MHz a 927,5 MHz. Por exemplo, a largura de banda total disponível para 802.11ah é 6 MHz a 26 MHz, dependendo do código do país.
[00246] A Figura 34D é um diagrama de sistema que ilustra a RAN 3413 e a CN 3415 de acordo com uma modalidade. Conforme observado acima, a RAN 3413 pode empregar uma tecnologia de rádio NR para se comunicar com as WTRUs 3402a, 3402b, 3402c através da interface aérea
3416. A RAN 3413 pode também estar em comunicação com a CN 3415.
[00247] A RAN 3413 pode incluir os gNBs 3480a, 3480b, 3480c,
99 / 116 embora se deva reconhecer que a RAN 3413 pode incluir qualquer número de gNBs e ainda permanecer consistente com uma modalidade. Os gNBs 3480a, 3480b, 3480c podem incluir um ou mais transceptores para comunicação com as WTRUs 3402a, 3402b, 3402c através da interface aérea 3416. Em algumas modalidades, os gNBs 3480a, 3480b, 3480c podem implementar a tecnologia MIMO. Por exemplo, os gNBs 3480a, 3480b podem usar formação de feixes para transmitir sinais para e/ou receber sinais dos gNBs 3480a, 3480b. Dessa forma, os gNBs 3480a, por exemplo, podem usar múltiplas antenas para transmitir sinais sem fio e/ou receber sinais sem fio a partir da WTRU 3402a. Em uma modalidade, os gNBs 3480a, 3480b e 3480c podem implementar a tecnologia de agregação de portadora. Por exemplo, o gNB 3480a pode transmitir portadoras de múltiplos componentes para a WTRU 3402a (não mostrada). Um subconjunto dessas portadoras componentes pode estar no espectro não licenciado enquanto as portadoras de componentes restantes podem estar no espectro licenciado. Em uma modalidade, os gNBs 3480a, 3480b e 3480c podem implementar a tecnologia multiponto coordenada (“CoMP” - Coordinated Multi-Point). Por exemplo, a WTRU 102a pode receber transmissões coordenadas do gNB 3480a e do gNB 3480b (e/ou do gNB 3480c).
[00248] As WTRUs 3402a, 3402b, 3402c podem se comunicar com os gNBs 3480a, 3480b, 3480c com o uso de transmissões associadas a uma numerologia escalável. Por exemplo, o espaçamento de símbolo OFDM e/ou espaçamento de subportadora OFDM pode variar para diferentes transmissões, células diferentes, e/ou diferentes porções do espectro de transmissão sem fio. As WTRUs 3402a, 3402b, 3402c podem se comunicar com os gNBs 3480a, 3480b, 3480c com o uso de intervalos de tempo de subquadro ou de transmissão (TTIs - “Transmission Time Intervals”) de vários comprimentos escaláveis (por exemplo, contendo um número variável de símbolos OFDM e/ou comprimentos variáveis duradouros de tempo
100 / 116 absoluto).
[00249] Os gNBs 3480a, 3480b e 3480c podem ser configurados para se comunicar com as WTRUs 3402a, 3402b, 3402c em uma configuração autônoma e/ou uma configuração não autônoma. Na configuração autônoma, as WTRUs 3402a, 3402b, 3402c podem se comunicar com os gNBs 3480a, 3480b, 3480c sem também acessar outras RANs (por exemplo, como eNodeBs 3460a, 3460b, 3460c). Na configuração autônoma, as WTRUs 3402a, 3402b, 3402c podem usar um ou mais dos gNBs 3480a, 3480b, 3480c como um ponto de ancoragem de mobilidade. Na configuração autônoma, as WTRUs 3402a, 3402b, 3402c podem se comunicar com os gNBs 3480a, 3480b, 3480c com o uso de sinais em uma banda não licenciada. Em uma configuração não autônoma, as WTRUs 3402a, 3402b, 3402c podem se comunicar com/se conectar com os gNBs 3480a, 3480b, 3480c enquanto também se comunicam com/se conectam a outra RAN, como eNodeBs 3460a, 3460b, 3460c. Por exemplo, as WTRUs 3402a, 3402b, 3402c podem implementar princípios DC para se comunicar com um ou mais gNBs 3480a, 3480b, 3480c e um ou mais eNodeBs 3460a, 3460b, 3460c de maneira substancialmente simultânea. Na configuração não autônoma, os eNodeBs 3460a, 3460b, 3460c podem servir como uma âncora de mobilidade para as WTRUs 3402a, 3402b, 3402c e os gNBs 3480a, 3480b, 3480c podem fornecer cobertura e/ou capacidade de processamento adicionais para manutenção das WTRUs 3402a, 3402b, 3402c.
[00250] Cada um dos gNBs 3480a, 3480b, 3480c pode estar associado a uma célula particular (não mostrada) e pode ser configurado para lidar com decisões de gerenciamento de recurso de rádio, decisões de mudança automática, agendamento de usuários em UL e/ou DL, suporte de fatiamento de rede, ligações duplas, interconexão de número e E-UTRA, roteamento de dados de plano de usuário para a função de plano de usuário (UPF - “User Plane Function”) 3484a, 3484b, roteamento de informações de plano de
101 / 116 controle para a função de gerenciamento de acesso e mobilidade (AMF - “Access And Mobility Management Function”) 3482a, 3482b e similares. Conforme mostrado na Figura 34D, os gNBs 3480a, 3480b, 3480c podem se comunicar uns com os outros através de uma interface Xn.
[00251] A CN 3415 mostrada na Figura 34D pode incluir pelo menos uma AMF 3482a, 3482b, pelo menos uma UPF 3484a, 3484b, pelo menos uma função de gerenciamento de sessão (SMF - “Session Management Function”) 3483a, 3483b e possivelmente uma rede de dados (DN - “Data Network”) 3485a, 3485b. Embora cada um dos elementos supracitados seja mostrado como parte da CN 3415, deve-se considerar que qualquer um desses elementos pode pertencer e/ou ser operado por uma entidade além do operador da CN.
[00252] A AMF 3482a, 3482b pode ser conectada a um ou mais dos gNBs 3480a, 3480b, 3480c na RAN 3413 por meio de uma interface N2 e pode servir como um nó de controle. Por exemplo, a AMF 3482a, 3482b pode ser responsável pela autenticação dos usuários das WTRUs 3402a, 3402b, 3402c, pelo suporte ao fatiamento de rede (por exemplo, manuseio de diferentes sessões de unidade de dados de protocolo (PDU - “Protocol Data Unit”) com diferentes requisitos), selecionando uma SMF 3483a, 3483b, pelo gerenciamento da área de registro, término da sinalização de estrato (camada) de não acesso (NAS - “Non-Access Stratum”), gerenciamento de mobilidade e similares. O fatiamento de rede pode ser usado pela AMF 3482a, 3482b para personalizar o suporte de CN para WTRUs 3402a, 3402b, 3402c com base nos tipos de serviços que são usados pelas WTRUs 3402a, 3402b, 3402c. Por exemplo, fatias de rede diferentes podem ser estabelecidas para diferentes casos de uso, como serviços que dependem do acesso de comunicação de baixa latência ultraconfiável (URLLC - “Ultra Reliable Low Latency Communications”), serviços que dependem do acesso de banda larga móvel aprimorada (eMBB - “Enhanced Massive Mobile Broadband”), serviços para
102 / 116 acesso de comunicação do tipo máquina (MTC - “machine type communication”) e/ou similares. A AMF 3462 pode fornecer uma função de plano de controle para comutar entre a RAN 3413 e outras RANs (não mostradas) que empregam outras tecnologias de rádio, como LTE, LTE-A, LTE-A Pro e/ou tecnologias de acesso não 3GPP, como Wi-Fi.
[00253] A SMF 3483a, 3483b pode ser conectada a uma AMF 3482a, 3482b na CN 3415 através de uma interface N11. A SMF 3483a, 3483b pode também ser conectada a uma UPF 3484a, 3484b na CN 3415 através de uma interface N4. A SMF 3483a, 3483b pode selecionar e controlar a UPF 3484a, 3484b e configurar o roteamento de tráfego através da UPF 3484a, 3484b. A SMF 3483a e 3483b pode executar outras funções, como gerenciar e alocar o endereço IP de UE, gerenciar sessões de PDU, controlar a aplicação de políticas e QoS, fornecer notificações de dados de enlace descendente e similares. Um tipo de sessão PDU pode ser baseado em IP, baseado em não IP, baseado em Ethernet e similares.
[00254] A UPF 3484a, 3484b pode ser conectada a um ou mais dos gNBs 3480a, 3480b, 3480c na RAN 3413 através de uma interface N3, que pode fornecer às WTRUs 3402a, 3402b, 3402c acesso a redes comutadas por pacote, como a Internet 3410, para facilitar as comunicações entre as WTRUs 3402a, 3402b, 3402c e os dispositivos habilitados para IP. A UPF 3484 e 3484b pode executar outras funções, como roteamento e encaminhamento de pacotes, aplicação de políticas de plano de usuário, suporte a sessões PDU com múltiplas bases, manipulação de QoS de plano de usuário, armazenamento temporário de pacotes de enlace descendente, fornecimento de ancoramento de mobilidade e similares.
[00255] A CN 3415 pode facilitar as comunicações com outras redes. Por exemplo, a CN 3415 pode incluir, ou pode se comunicar com uma porta de comunicação de IP (por exemplo, um servidor de subsistema multimídia de IP (IMS)) que serve como uma interface entre a CN 3415 e a PSTN 3408.
103 / 116 Além disso, a CN 3415 pode fornecer às WTRUs 3402a, 3402b, 3402c acesso a outras redes 3412, que podem incluir outras redes com fio e/ou sem fio que pertencem a e/ou são operadas por outros fornecedores de serviço. Em uma modalidade, as WTRUs 3402a, 3402b, 3402c podem ser conectadas a uma rede de dados local (DN - “Data Network”) 3485a, 3485b através da UPF 3484a, 3484b através da interface N3 à UPF 3484a, 3484b e uma interface N6 entre a UPF 3484a, 3484b e a DN 3485a, 3485b.
[00256] Em vista das Figuras 34A a 34D e da descrição correspondente das Figuras 34A a 34D, uma ou mais, ou todas as, funções descritas na presente invenção em relação uma ou mais dentre: WTRU 3402a-d, estação- base 3414a-b, eNode B 3460a-c, MME 3462, SGW 3464, PGW 3466, gNB 3480a-c, AMF 3482a-ab, UPF 3484a-b, SMF 3483a-b, DN 3485a-b e/ou quaisquer outros dispositivos aqui descritos podem ser executadas por um ou mais dispositivos de emulação (não mostrados). Os dispositivos de emulação podem ser um ou mais dispositivos configurados para emular uma ou mais, ou todas, as funções aqui descritas. Por exemplo, os dispositivos de emulação podem ser usados para testar outros dispositivos e/ou para simular funções de rede e/ou WTRU.
[00257] Os dispositivos de emulação podem ser projetados para implementar um ou mais testes de outros dispositivos em um ambiente de laboratório e/ou em um ambiente de rede de operador. Por exemplo, os um ou mais dispositivos de emulação podem executar a uma ou mais, ou todas, as funções ao mesmo tempo em que são total ou parcialmente implementadas/implantadas como parte de uma rede de comunicação com fio e/ou sem fio a fim de testar outros dispositivos dentro da rede de comunicação. Os um ou mais dispositivos de emulação podem executar a uma ou mais, ou todas, dentre as funções enquanto são temporariamente implementadas/implantadas como parte de uma rede de comunicação com fio e/ou sem fio. O dispositivo de emulação pode ser diretamente acoplado a
104 / 116 outro dispositivo para fins de teste e/ou pode realizar testes com o uso de comunicações sem fio pelo ar.
[00258] Os um ou mais dispositivos de emulação podem executar a uma ou mais, incluindo todas, as funções enquanto não são implementadas/implantadas como parte de uma rede de comunicação com fio e/ou sem fio. Por exemplo, os dispositivos de emulação podem ser usados em um cenário de teste em um laboratório de testes e/ou em uma rede de comunicação sem fio (por exemplo, teste) com fio e/ou sem fio para implementar o teste de um ou mais componentes. Os um ou mais dispositivos de emulação podem ser equipamentos de teste. O acoplamento de RF direto e/ou comunicações sem fio através de circuitos de RF (por exemplo, que podem incluir uma ou mais antenas) podem ser usadas pelos dispositivos de emulação para transmitir e/ou receber dados.
[00259] O padrão HEVC oferece economia de aproximadamente 50% de taxa de bits para qualidade perceptual equivalente em comparação com o padrão de codificação de vídeo de geração anterior H.264/MPEG AVC. Embora o padrão HEVC forneça aprimoramentos significativos de codificação em comparação com seu predecessor, aprimoramentos adicionais de eficiência de codificação podem ser alcançados com ferramentas adicionais de codificação. A equipe conjunta de exploração de vídeo (JVET - “Joint Video Exploration Team”) iniciou um projeto para desenvolver o padrão de codificação de vídeo de nova geração, chamado de codificação de vídeo versátil (VVC - “Versatile Video Coding”), por exemplo, para fornecer tais aprimoramentos de eficiência de codificação, e uma base de código de software de referência, chamada de modelo de teste de VVC (VTM - “VVC test model “) foi estabelecida para demonstrar uma implementação de referência do padrão VVC. Para facilitar a avaliação de novas ferramentas de codificação, outra base de software de referência chamada de conjunto de valores típicos (BMS - “Benchmark Set”) também foi gerada. Na base de
105 / 116 código de BMS, uma lista de ferramentas de codificação adicionais, que fornecem maior eficiência de codificação e complexidade de implementação moderada, são incluídas no topo da VTM e usadas como valores típicos ao avaliar tecnologias de codificação similares durante o processo de padronização de VVC. Além das ferramentas de codificação JEM (por exemplo, transformada secundária não separável 4 x 4 (NSST), biprevisão generalizada (GBi), fluxo óptico bidirecional (BIO), refinamento de vetor de movimento no lado do decodificador (DMVR) e referência de imagem atual (CPR)) integrada no BMS-2.0, ela inclui a ferramenta de quantificação codificada treliça.
[00260] Sistemas e métodos para processar dados de acordo com modalidades representativas podem ser executados por um ou mais processadores que executam sequências de instruções contidas em um dispositivo de memória. Tais instruções podem ser lidas no dispositivo de memória a partir de outros meios legíveis por computador, como dispositivo(s) de armazenamento de dados secundário(s). A execução das sequências de instruções contidas no dispositivo de memória faz com que o processador opere, por exemplo, conforme descrito acima. Em modalidades alternativas, circuitos de fio rígido podem ser usados em lugar de ou em combinação com instruções de software para implementar uma ou mais modalidades. Tal software pode ser executado em um processador que está alojado remotamente dentro de uma assistência/aparelho robótico (RAA - “robotic assistance/apparatus”) e/ou outro dispositivo móvel. No último caso, os dados podem ser transferidos via conexão com fio ou sem fio entre o RAA ou outro dispositivo móvel contendo os sensores e o dispositivo remoto contendo o processador que roda o software que executa a estimativa e a compensação de escala, conforme descrito acima. De acordo com outras modalidades representativas, alguns dos processamentos descritos acima em relação à localização podem ser executados no dispositivo contendo os
106 / 116 sensores/câmeras, enquanto o restante do processamento pode ser executado em um segundo dispositivo após o recebimento dos dados parcialmente processados do dispositivo contendo os sensores/câmeras.
[00261] Embora os recursos e elementos sejam descritos acima em combinações específicas, um versado na técnica deve considerar que cada recurso ou elemento pode ser usado sozinho ou em qualquer combinação com os outros recursos e elementos. Além disso, os métodos aqui descritos podem ser implementados em um programa de computador, software ou firmware incorporados em uma mídia legível por computador para execução por um computador ou processador. Exemplos de mídias de armazenamento legíveis por computador não transitórias incluem, mas não se limitam a, memória somente de leitura (ROM), memória de acesso aleatório (RAM), um registrador, memória cache, dispositivos de memória semicondutores, mídia magnética, como discos rígidos internos e discos removíveis, mídias magneto-ópticas e mídias ópticas, como discos CD-ROM e/ou discos versáteis digitais (DVDs). Um processador em associação com um software pode ser usado para implementar um transceptor de radiofrequência para uso em uma WTRU 3402, um UE, um terminal, uma estação-base, um RNC e/ou qualquer computador hospedeiro.
[00262] Além disso, nas modalidades descritas acima, as plataformas de processamento, sistemas de computação, controladores e outros dispositivos contendo processadores são observados. Esses dispositivos podem conter pelo menos uma Unidade de Processamento Central (“CPU”) e memória. De acordo com as práticas dos versados na técnica de programação de computador, referência aos atos e representações simbólicas das operações ou instruções pode ser realizada pelas várias CPUs e memórias. Esses atos e operações ou instruções podem ser referidos como sendo “executados,” “executados por computador” ou “executados por CPU”.
[00263] Uma pessoa versada na técnica entenderá que as ações e
107 / 116 operações simbolicamente representadas incluem a manipulação ou instruções de sinais elétricos pela CPU. Um sistema elétrico representa bits de dados que podem causar uma transformação resultante ou redução dos sinais elétricos e a manutenção de bits de dados em locais de memória em um sistema de memória para assim reconfigurar ou de outro modo alterar a operação das CPUs, bem como outro processamento de sinais. Os locais de memória onde os bits de dados são mantidos são locais físicos que têm propriedades elétricas, magnéticas, ópticas ou orgânicas específicas correspondentes a ou representativas dos bits de dados. Deve-se compreender que as modalidades representativas não estão limitadas às plataformas mencionadas acima ou CPUs e que outras plataformas e CPUs podem suportar os métodos fornecidos.
[00264] Os bits de dados também podem ser mantidos em uma mídia legível por computador incluindo discos magnéticos, discos ópticos e qualquer outro sistema de armazenamento em massa volátil (por exemplo, memória de acesso aleatório (“RAM”)) ou não volátil (por exemplo, Memória só de leitura (“ROM”)) legível pela CPU. A mídia legível por computador pode incluir meios legíveis por computador cooperativos ou interconectados, que existem exclusivamente no sistema de processamento ou são distribuídos entre múltiplos sistemas de processamento interconectados que podem ser locais ou remotos para o sistema de processamento. Compreende-se que as modalidades representativas não estão limitadas às memórias mencionadas acima e que outras plataformas e memórias podem suportar os métodos descritos. Deve-se compreender que as modalidades representativas não estão limitadas às plataformas mencionadas acima ou CPUs e que outras plataformas e CPUs podem suportar os métodos fornecidos.
[00265] Em uma modalidade ilustrativa, qualquer uma das operações, processos, etc. aqui descritos pode ser implementada como instruções legíveis por computador armazenadas em uma mídia legível por computador. As
108 / 116 instruções legíveis por computador podem ser executadas por um processador de uma unidade móvel, um elemento de rede e/ou qualquer outro dispositivo de computação.
[00266] Há pouca diferença entre implementações de hardware e software de aspectos de sistemas. O uso de hardware ou software é geralmente (mas nem sempre, em que em certos contextos a escolha entre hardware e software pode tornar-se significativa) uma opção de design que representa custos versus compensações de eficiência. Pode haver vários veículos por meio dos quais processos e/ou sistemas e/ou outras tecnologias aqui descritos podem ser executados (por exemplo, hardware, software e/ou firmware), e o veículo preferencial pode variar com o contexto em que os processos e/ou sistemas e/ou outras tecnologias são implantados. Por exemplo, se um implementador determina que a velocidade e precisão são fundamentais, o implementador pode optar por um veículo principalmente de hardware e/ou firmware. Se a flexibilidade é fundamental, o implementador pode optar por uma implementação principalmente de software. Alternativamente, o implementador pode optar por alguma combinação de hardware, software e/ou firmware.
[00267] A descrição detalhada anteriormente mencionada apresenta várias modalidades dos dispositivos e/ou processos através do uso de diagramas de blocos, fluxogramas e/ou exemplos. Na medida em que esses diagramas de blocos, fluxogramas, e/ou exemplos contêm uma ou mais funções e/ou operações, será compreendido pelos versados na técnica que cada função e/ou operação dentro desses diagramas de blocos, fluxogramas, ou exemplos podem ser implementados, individual e/ou coletivamente, por uma ampla gama de hardware, software, firmware, ou virtualmente qualquer combinação dos mesmos. Processadores adequados incluem, a título de exemplo, um processador de propósito geral, um processador de propósito especial, um processador convencional, um processador de sinal digital (DSP
109 / 116 - “Digital Signal Processor”), uma pluralidade de microprocessadores, um ou mais microprocessadores em associação com em núcleo de DSP, um controlador, um microcontrolador, circuitos integrados de aplicação específica (ASICs - “Application Specific Integrated Circuits”), Produtos Padrão Específicos de Aplicativo (ASSPs - “Application Specific Standard Products”). Circuitos de Matrizes de Portas Programáveis em Campo (FPGAs), qualquer outro tipo de circuito integrado (IC) e/ou uma máquina de estado.
[00268] Embora os recursos e elementos sejam fornecidos acima em combinações específicas, um versado na técnica deve considerar que cada recurso ou elemento pode ser usado sozinho ou em qualquer combinação com os outros recursos e elementos. A presente descrição não deve ser limitada em termos das modalidades específicas descritas neste pedido, que se destinam a ser ilustrações de vários aspectos. Muitas modificações e variações podem ser feitas sem que se desvie do espírito e escopo, conforme ficará evidente aos versados na técnica. Nenhum elemento, ação ou instrução usada na descrição do presente pedido deve ser interpretado como crítico ou essencial para a invenção, exceto quando for explicitamente fornecido dessa forma. Métodos e aparelhos funcionalmente equivalentes dentro do escopo da revelação, além daqueles enumerados aqui, serão evidentes para os versados na técnica a partir das descrições anteriores. Essas modificações e variações se destinam a estar dentro do escopo das reivindicações em anexo. A presente descrição deve ser limitada apenas pelos termos das reivindicações anexas, juntamente com o escopo completo de equivalentes aos quais essas reivindicações são intituladas. Deve-se compreender que esta descrição não se limita a métodos ou sistemas específicos.
[00269] Também deve ser compreendido que a terminologia aqui utilizada seja para o propósito de descrever apenas modalidades particulares e não se destina a ser limitativa. Para uso na presente invenção, quando
110 / 116 chamado na presente invenção, dos termos “estação” e sua abreviação “STA”, “equipamento de usuário” e sua abreviação “UE” podem significar (i) uma unidade de transmissão e/ou recepção sem fio (WTRU), conforme descrito abaixo; (ii) qualquer um de um número de modalidades de uma WTRU, como descrito abaixo; (iii) um dispositivo com capacidade sem fio e/ou com fio (por exemplo, ancorado) configurado com, entre outros, algumas ou todas as estruturas e funcionalidade de uma WTRU, conforme descrito abaixo; (iii) um dispositivo com capacidade sem fio e/ou com fio configurado com menos que todas as estruturas e funcionalidade de uma WTRU, conforme descrito abaixo; ou (vi) similares. Detalhes de uma WTRU exemplificadora, que podem ser representativos de qualquer UE aqui mencionado, são fornecidos abaixo com relação às Figuras 34A a 34D.
[00270] Em certas modalidades representativas, várias porções do assunto aqui descrito podem ser implementadas através de Circuitos Integrados para Aplicação Específica (ASICs), Matrizes de Portas Programáveis em Campo (FPGAs), processadores de sinal digital (DSPs) e/ou outros formatos integrados. Entretanto, os versados na técnica reconhecerão que alguns aspectos das modalidades apresentadas na presente invenção, no todo ou em parte, podem ser implementados de maneira equivalente em circuitos integrados, como um ou mais programas de computador em execução em um ou mais computadores (por exemplo, como um ou mais programas em execução em um ou mais sistemas de computador), como um ou mais programas em execução em um ou mais processadores (por exemplo, um ou mais programas em execução em um ou mais microprocessadores), como firmware, ou como virtualmente qualquer combinação dos mesmos, e que projetam o circuito e/ou gravação do código para o software ou firmware estariam bem dentro do âmbito da prática de uma pessoa versado na técnica à luz desta revelação. Além disso, os versados na técnica compreenderão que os mecanismos do assunto aqui descrito podem ser distribuídos como um
111 / 116 produto de programa em uma variedade de formas, e que uma modalidade ilustrativa do assunto aqui descrito se aplica independentemente do tipo específico de meio de suporte de sinal usado para efetivamente executar a distribuição. Exemplos de um meio de suporte de sinal incluem, mas não se limitam ao seguinte: um meio do tipo gravável como um disquete, uma unidade de disco rígido, um CD, um DVD, uma fita digital, uma memória de computador etc., e um meio de tipo de transmissão, como um meio de comunicação digital e/ou analógico (por exemplo, cabo de fibra ótica, um guia de ondas, um enlace de comunicação com fio, um enlace de comunicação sem fio, etc.).
[00271] O assunto aqui descrito ilustra, às vezes, diferentes componentes contidos dentro ou conectados a outros componentes diferentes. Deve-se compreender que essas arquiteturas representadas são meramente exemplos, e que, de fato, muitas outras arquiteturas podem ser implementadas que alcançam a mesma funcionalidade. Em um sentido conceitual, qualquer disposição de componentes para alcançar a mesma funcionalidade é efetivamente “associada”, de modo que a funcionalidade desejada possa ser alcançada. Portanto, quaisquer dois componentes da presente invenção combinados para alcançar uma funcionalidade específica podem ser vistos como “associados” um ao outro de modo que a funcionalidade desejada seja alcançada, independentemente das arquiteturas ou componentes intermediários. Da mesma forma, quaisquer dois componentes assim associados também podem ser vistos como sendo “operacionalmente conectados”, ou “operacionalmente acoplados”, um ao outro para alcançar a funcionalidade desejada, e quaisquer dois componentes capazes de serem assim associados também podem ser vistos como sendo “operacionalmente acopláveis” um ao outro para alcançar a funcionalidade desejada. Exemplos específicos de operacionalmente acopláveis incluem, mas não se limitam a, componentes fisicamente compatíveis e/ou fisicamente interativos e/ou
112 / 116 componentes que podem interagir sem fio e/ou que interagem sem fio e/ou interagem logicamente e/ou que podem interagir logicamente.
[00272] Em relação ao uso de substancialmente quaisquer termos plurais e/ou singulares da presente invenção, os versados na técnica podem traduzir do plural para o singular e/ou do singular para o plural, como é adequado ao contexto e/ou à aplicação. As várias permutações singular/plural podem ser expressamente aqui apresentadas por razões de clareza.
[00273] Será compreendido pelos versados na técnica que, em geral, os termos usados na presente invenção, e especialmente nas reivindicações anexas (por exemplo, corpos das reivindicações em anexo) são geralmente interpretados como termos “incluindo, mas não se limitando a”, o termo “tendo” deve ser interpretado como “tendo pelo menos”, o termo “inclui” deve ser interpretado como “inclui, mas não se limita a”, etc.). Será adicionalmente entendido pelos versados na técnica que se um número específico de uma menção de reivindicações introduzida for pretendido, essa intenção será explicitamente mencionada na reivindicação, e na ausência dessa menção, tal intenção não está presente. Por exemplo, onde apenas um item é destinado, o termo “único” ou linguagem similar pode ser usado. Como um auxílio ao entendimento, as seguintes reivindicações em anexo e/ou as descrições da presente invenção podem conter o uso das frases introdutórias “pelo menos um” e “um ou mais” para introduzir menções de reivindicação. Entretanto, o uso dessas frases não deve ser interpretado como significando que a introdução de uma menção da reivindicação pelos artigos indefinidos “um” ou “uma” limita qualquer reivindicação específica contendo essa menção, mesmo quando a mesma reivindicação inclui as frases introdutórias “um ou mais” ou “pelo menos um” e artigos indefinidos como “um” ou “uma” (por exemplo, “um” e/ou “uma” deve ser interpretada como significando “pelo menos um” ou “um ou mais”). O mesmo se aplica ao uso de artigos definidos usados para introduzir menções da reivindicação. Além
113 / 116 disso, mesmo se um número específico de uma menção de reivindicação introduzida for explicitamente mencionado, os versados na técnica reconhecerão que essa menção deve ser interpretada para significar pelo menos o número mencionado (por exemplo, a simples menção de “duas menções,” sem outros modificadores, significa pelo menos duas menções, ou duas ou mais menções). Além disso, nos casos em que uma convenção análoga a “pelo menos um de A, B e C, etc.” é usada, em geral essa construção é destinada no sentido de alguém versado na técnica entender a convenção (por exemplo, “um sistema tendo pelo menos um de A, B e C” incluiria, mas não se limitaria a sistemas que ter A sozinho, B sozinho, C sozinho, A e B juntos, A e C juntos, B e C juntos, e/ou A, B e C juntos, etc.). Nos casos em que uma convenção análoga a “pelo menos um de A, B ou C, etc.” é usada, em geral essa construção é destinada no sentido de alguém versado na técnica entender a convenção (por exemplo, “um sistema tendo pelo menos um de A, B ou C” incluiria, mas não se limitaria a sistemas que ter A sozinho, B sozinho, C sozinho, A e B juntos, A e C juntos, B e C juntos, e/ou A, B e C juntos, etc.). Será adicionalmente entendido pelos versados na técnica que virtualmente qualquer palavra e/ou frase disjuntiva que apresente dois ou mais termos alternativos, seja na descrição, reivindicações ou desenhos, deve ser entendida como contemplando as possibilidades de incluir um dos termos, qualquer um dos termos, ou ambos os termos.
Por exemplo, a frase “A ou B” será entendida como incluindo as possibilidades de “A” ou “B” ou “A e B”. Adicionalmente, os termos “qualquer de” seguido por uma lista de uma pluralidade de itens e/ou uma pluralidade de categorias de itens, para uso na presente invenção, destinam-se a incluir “qualquer de”, “qualquer combinação de”, “qualquer múltiplo de”, e/ou “qualquer combinação de múltiplos de” dos itens e/ou categorias de itens, individualmente ou em conjunto com outros itens e/ou outras categorias de itens.
Além disso, para uso na presente invenção, o termo “conjunto” ou “grupo” destina-se a incluir
114 / 116 qualquer número de itens, incluindo zero. Adicionalmente, para uso na presente invenção, o termo “número” destina-se a incluir qualquer número, incluindo zero.
[00274] Além disso, onde características ou aspectos da revelação são descritos em termos de grupos Markush, os versados na técnica reconhecerão que a revelação também é descrita, dessa forma, em termos de qualquer membro individual ou subgrupo de membros do grupo Markush.
[00275] Conforme será compreendido pelo versado na técnica, para qualquer um e todos os propósitos, como em termos de fornecer uma descrição escrita, todas as faixas reveladas na presente invenção também abrangem qualquer e todas as subfaixas e combinações possíveis de subfaixas dos mesmos. Qualquer faixa listada pode ser facilmente reconhecida como descrevendo suficientemente e permitindo que a mesma faixa sendo decomposta em pelo menos metades, terços, quartos, quintos, décimos iguais, etc. Como um exemplo não limitador, cada faixa aqui discutida pode ser prontamente decomposta em um terço inferior, terço médio e terço superior, etc. Como também será compreendido pelo versado na técnica todas as expressões como “até”, “pelo menos”, “maior que”, “inferior”, e similares inclui o número citado e refere-se às faixas que podem ser subsequentemente decompostas em subfaixas conforme discutido acima. Finalmente, conforme será compreendido pelo versado na técnica, uma faixa inclui cada elemento individual. Dessa forma, por exemplo, um grupo tendo 1 a 3 células refere-se a grupos tendo 1, 2 ou 3 células. De modo similar, um grupo tendo 1 a 5 células refere-se a grupos tendo 1, 2, 3, 4 ou 5 células, e assim por diante.
[00276] Além disso, as reivindicações não devem ser lidas como limitadas à ordem ou elementos desde que seja estabelecido para esse efeito. Além disso, o uso dos termos “meios para” em qualquer reivindicação tem por objetivo invocar 35 U.S.C.§ 112, ¶ 6 ou formato de reivindicação meios- mais-função, e qualquer reivindicação sem os termos “meios para” não tem
115 / 116 esse objetivo.
[00277] Um processador em associação com um software pode ser usado para implementar um transceptor de radiofrequência para uso em uma unidade de recepção de transmissão sem fio (WTRU), um equipamento de usuário (UE), um terminal, uma estação-base, uma entidade de gerenciamento de mobilidade (MME) ou núcleo de pacote evoluído (EPC) ou qualquer computador hospedeiro. A WTRU pode ser usada em conjunto com os módulos, implementada em hardware e/ou software incluindo um Rádio Definido por Software (SDR), e outros componentes como uma câmera, um módulo de câmera de vídeo, um videofone, um microfone, um dispositivo de vibração, um alto-falante, um microfone, um transceptor de televisão, um headset sem o uso das mãos, um teclado, um módulo de Bluetooth®, uma unidade de rádio de frequência modulada (FM), um Módulo de Comunicação de Campo Próximo (NFC), uma unidade de exibição de tela de cristal líquido (LCD), uma unidade de exibição de diodo emissor de luz orgânico (OLED), um reprodutor de música digital, um reprodutor de mídia, um módulo reprodutor de vídeo game, um navegador de Internet, e/ou qualquer Rede de Área Local Sem Fio (WLAN) ou módulo de Banda Ultralarga (UWB).
[00278] Ao longo da descrição, o versado na técnica compreende que certas modalidades representativas podem ser usadas em alternativa ou em combinação com outras modalidades representativas.
[00279] Além disso, os métodos aqui descritos podem ser implementados em um programa de computador, software ou firmware incorporados em uma mídia legível por computador para execução por um computador ou processador. Exemplos de mídias de armazenamento legíveis por computador não transitórias incluem, mas não se limitam a, memória somente de leitura (ROM), memória de acesso aleatório (RAM), um registrador, memória cache, dispositivos de memória semicondutores, mídia magnética, como discos rígidos internos e discos removíveis, mídias
116 / 116 magneto-ópticas e mídias ópticas, como discos CD-ROM e/ou discos versáteis digitais (DVDs). Um processador em associação com um software pode ser usado para implementar um transceptor de radiofrequência para uso em uma WTRU, um EU, um terminal, uma estação-base, um RNC e/ou qualquer computador hospedeiro.

Claims (15)

REIVINDICAÇÕES
1. Método de decodificação de um vídeo, sendo o método caracterizado pelo fato de que compreende: para um bloco atual do vídeo: gerar um sinal de previsão de movimento com base em sub- bloco, determinar um conjunto de valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual, determinar um sinal de refinamento de previsão de movimento para o bloco atual com base no conjunto determinado de valores de diferença de vetor de movimento, e combinar o sinal de previsão de movimento baseado em sub- bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual; e decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, sendo que o sinal de previsão de movimento baseado em sub- bloco é gerado e o conjunto de valores de diferença de vetor de movimento é determinado com o uso de um modelo de movimento afim para o bloco atual.
2. Método de decodificação de um vídeo, sendo o método caracterizado pelo fato de que compreende: para um bloco atual do vídeo: gerar um sinal de previsão de movimento com base em sub- bloco, determinar um conjunto de valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual, determinar um sinal de refinamento de previsão de movimento para o bloco atual com base no conjunto determinado de valores de diferença de vetor de movimento, e combinar o sinal de previsão de movimento baseado em sub- bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual; e codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, sendo que o sinal de previsão de movimento baseado em sub- bloco é gerado e o conjunto de valores de diferença de vetor de movimento é determinado com o uso de um modelo de movimento afim para o bloco atual.
3. Método de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que compreende adicionalmente determinar um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub- bloco, sendo que o um ou mais gradientes espaciais determinados do sinal de previsão de movimento baseado em sub-bloco e o conjunto determinado de valores de diferença de vetor de movimento são usados para determinar o sinal de refinamento de previsão de movimento para o bloco atual.
4. Método de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que compreende adicionalmente determinar um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub- bloco, sendo que a determinação de um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco inclui: para um ou mais respectivos sub-blocos do bloco atual: determinar um sub-bloco estendido, com o uso do sinal de previsão de movimento baseado em sub-bloco e das amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco; e determinar, com o uso do sub-bloco estendido determinado, gradientes espaciais do respectivo sub-bloco para determinar o sinal de refinamento de previsão de movimento.
5. Método de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que o conjunto de valores de diferença de vetor de movimento ser determinado para um sub-bloco do bloco atual e ser usado para determinar o sinal de refinamento de previsão de movimento para um ou mais sub-blocos adicionais do bloco atual.
6. Método de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que compreende adicionalmente determinar parâmetros de modelo de movimento afim para o bloco atual do vídeo de modo que o sinal de previsão de movimento baseado em sub-bloco seja gerado com o uso dos parâmetros de modelo de movimento afim determinados.
7. Decodificador configurado para decodificar um vídeo, caracterizado pelo fato de que compreende: um processador configurado para: para um bloco atual do vídeo: gerar um sinal de previsão de movimento com base em sub- bloco, determinar um conjunto de valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual, determinar um sinal de refinamento de previsão de movimento para o bloco atual com base no conjunto de valores de diferença de vetor de movimento, e combinar o sinal de previsão de movimento baseado em sub- bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual; e decodificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, sendo que o processador é configurado para usar um modelo de movimento afim para o bloco atual gerar o sinal de previsão de movimento com base em sub-bloco e determinar o conjunto de valores de diferença de vetor de movimento.
8. Codificador configurado para codificar um vídeo, caracterizado pelo fato de que compreende: um processador configurado para: para um bloco atual do vídeo: gerar um sinal de previsão de movimento com base em sub- bloco, determinar um conjunto de valores de diferença de vetor de movimento associados a um sub-bloco do bloco atual, determinar um sinal de refinamento de previsão de movimento para o bloco atual com base no conjunto de valores de diferença de vetor de movimento, e combinar o sinal de previsão de movimento baseado em sub- bloco e o sinal de refinamento de previsão de movimento para produzir um sinal de previsão de movimento refinado para o bloco atual; e codificar o vídeo com o uso do sinal de previsão de movimento refinado, como a previsão para o bloco atual, sendo que o processador é configurado para usar um modelo de movimento afim para o bloco atual gerar o sinal de previsão de movimento com base em sub-bloco e determinar o conjunto de valores de diferença de vetor de movimento.
9. Decodificador de acordo com a reivindicação 7, ou codificador de acordo com a reivindicação 8, caracterizados por o processador ser configurado para: determinar um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco, e usar o um ou mais gradientes espaciais do sinal de previsão de movimento baseado em sub-bloco e o conjunto de valores de diferença de vetor de movimento para determinar o sinal de refinamento de previsão de movimento para o bloco atual.
10. Decodificador de acordo com a reivindicação 7 ou 9, ou codificador de acordo com a reivindicação 8 ou 9, caracterizados por o processador ser configurado para: para um ou mais respectivos sub-blocos do bloco atual: determinar um sub-bloco estendido, com o uso do sinal de previsão de movimento baseado em sub-bloco e das amostras de referência adjacentes que delimitam e circundam o respectivo sub-bloco; e determinar, com o uso do sub-bloco estendido determinado, gradientes espaciais do respectivo sub-bloco para determinar o sinal de refinamento de previsão de movimento.
11. Decodificador de acordo com a reivindicação 7, 9 ou 10, ou codificador de acordo com a reivindicação 8, 9 ou 10, caracterizados por o processador ser configurado para determinar o conjunto de valores de diferença de vetor de movimento para o sub-bloco do bloco atual, que é usado para determinar o sinal de refinamento de previsão de movimento para um ou mais sub-blocos adicionais do bloco atual.
12. Decodificador de acordo com a reivindicação 7, 9, 10 ou 11, ou codificador de acordo com a reivindicação 8, 9, 10 ou 11, caracterizados por o processador ser configurado para determinar parâmetros de modelo de movimento afim para o bloco atual do vídeo de modo que o sinal de previsão de movimento baseado em sub-bloco seja gerado com o uso dos parâmetros de modelo de movimento afim determinados.
13. Mídia não transitória legível por computador, caracterizada pelo fato de que ter instruções que, quando executadas por um computador, possibilitam o método como definido em qualquer uma das reivindicações 1 a
6.
14. Sinal que compreende informações de vídeo, caracterizado pelo fato de que incluir um cabeçalho de conjunto de parâmetros de sequência que inclui um primeiro indicador que indica se a compensação de movimento de sub-bloco refinada com o uso de fluxo opcional está habilitada.
15. Sinal de acordo com a reivindicação 14, caracterizado pelo fato de que o cabeçalho de conjunto de parâmetros de sequência incluir adicionalmente, na condição em que o primeiro indicador indica que a compensação de movimento de sub-bloco refinado com o uso de fluxo opcional está habilitada, um segundo indicador que indica se a compensação de movimento de sub-bloco refinada com o uso de fluxo opcional está habilitada para compensação de movimento de sub-bloco bidirecional.
BR112021015598-8A 2019-02-07 2020-02-04 Métodos de decodificação e codificação, para decodificar um conteúdo de vídeo e para codificar um conteúdo de vídeo, decodificador, e, codificador BR112021015598A2 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962802428P 2019-02-07 2019-02-07
US62/802,428 2019-02-07
US201962814611P 2019-03-06 2019-03-06
US62/814,611 2019-03-06
US201962833999P 2019-04-15 2019-04-15
US62/833,999 2019-04-15
PCT/US2020/016564 WO2020163319A1 (en) 2019-02-07 2020-02-04 Systems, apparatus and methods for inter prediction refinement with optical flow

Publications (1)

Publication Number Publication Date
BR112021015598A2 true BR112021015598A2 (pt) 2021-10-05

Family

ID=69740830

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021015598-8A BR112021015598A2 (pt) 2019-02-07 2020-02-04 Métodos de decodificação e codificação, para decodificar um conteúdo de vídeo e para codificar um conteúdo de vídeo, decodificador, e, codificador

Country Status (19)

Country Link
US (2) US11695950B2 (pt)
EP (2) EP4221223A1 (pt)
JP (2) JP7307184B2 (pt)
KR (2) KR20230170987A (pt)
CN (2) CN114666582A (pt)
AU (1) AU2020219836A1 (pt)
BR (1) BR112021015598A2 (pt)
CA (1) CA3129080A1 (pt)
DK (1) DK3922025T3 (pt)
ES (1) ES2950165T3 (pt)
FI (1) FI3922025T3 (pt)
HU (1) HUE062450T2 (pt)
IL (2) IL309973A (pt)
MX (1) MX2021009333A (pt)
PL (1) PL3922025T3 (pt)
SG (1) SG11202108295YA (pt)
TW (1) TW202046736A (pt)
WO (1) WO2020163319A1 (pt)
ZA (1) ZA202105444B (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020187198A1 (en) * 2019-03-17 2020-09-24 Beijing Bytedance Network Technology Co., Ltd. Prediction refinement based on optical flow
KR20210125578A (ko) 2019-03-18 2021-10-18 텐센트 아메리카 엘엘씨 비디오 코딩을 위한 방법 및 장치
US11523109B2 (en) * 2019-05-02 2022-12-06 Tencent America LLC Method and apparatus for improvements of affine prof
US20220264146A1 (en) * 2019-07-01 2022-08-18 Interdigital Vc Holdings France, Sas Bi-prediction refinement in affine with optical flow
WO2021050234A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for signaling video coding information
WO2021050226A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
CN114079784A (zh) * 2020-08-20 2022-02-22 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022061680A1 (zh) * 2020-09-24 2022-03-31 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
EP4222962A4 (en) * 2020-10-15 2024-03-20 Beijing Dajia Internet Information Tech Co Ltd IMPROVED MOTION ESTIMATION FOR INTERCODING

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104378637B (zh) * 2011-10-18 2017-11-21 株式会社Kt 视频信号解码方法
WO2016008157A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
US10785475B2 (en) * 2014-11-05 2020-09-22 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding with prediction offset
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
CA3065492C (en) * 2017-05-17 2022-06-14 Kt Corporation Method and device for video signal processing
CN117478884A (zh) * 2017-07-03 2024-01-30 Vid拓展公司 用于视频编解码的设备、方法
CN118018755A (zh) * 2018-02-06 2024-05-10 松下电器(美国)知识产权公司 编码方法、解码方法和处理比特流的方法
JP7181039B2 (ja) 2018-09-28 2022-11-30 能美防災株式会社 防災システム
US20200296405A1 (en) * 2019-03-14 2020-09-17 Qualcomm Incorporated Affine motion compensation refinement using optical flow

Also Published As

Publication number Publication date
ZA202105444B (en) 2023-12-20
WO2020163319A1 (en) 2020-08-13
EP3922025B1 (en) 2023-05-24
IL285212A (en) 2021-09-30
KR20210133956A (ko) 2021-11-08
CA3129080A1 (en) 2020-08-13
US20220210462A1 (en) 2022-06-30
TW202046736A (zh) 2020-12-16
JP7307184B2 (ja) 2023-07-11
US11695950B2 (en) 2023-07-04
ES2950165T3 (es) 2023-10-05
CN113383551A (zh) 2021-09-10
AU2020219836A1 (en) 2021-08-26
US20230291927A1 (en) 2023-09-14
MX2021009333A (es) 2021-10-13
SG11202108295YA (en) 2021-08-30
CN114666582A (zh) 2022-06-24
IL285212B1 (en) 2024-02-01
KR20230170987A (ko) 2023-12-19
EP3922025A1 (en) 2021-12-15
JP2022519358A (ja) 2022-03-23
PL3922025T3 (pl) 2023-09-11
EP4221223A1 (en) 2023-08-02
HUE062450T2 (hu) 2023-11-28
DK3922025T3 (da) 2023-07-24
FI3922025T3 (fi) 2023-07-07
IL309973A (en) 2024-03-01
JP2023130415A (ja) 2023-09-20
KR102612975B1 (ko) 2023-12-11

Similar Documents

Publication Publication Date Title
KR102653715B1 (ko) 양방향 광학 흐름에 기반한 모션 보상 예측
US11570470B2 (en) Complexity reduction of overlapped block motion compensation
US11553206B2 (en) Bl-prediction for video coding
BR112021015598A2 (pt) Métodos de decodificação e codificação, para decodificar um conteúdo de vídeo e para codificar um conteúdo de vídeo, decodificador, e, codificador
US20230188748A1 (en) Bi-directional optical flow method with simplified gradient derivation
US11546604B2 (en) Symmetric motion vector difference coding
CA3105072A1 (en) Adaptive control point selection for affine motion model based video coding
US20220191502A1 (en) Methods and apparatus for prediction refinement for decoder side motion vector refinement with optical flow
KR20210142610A (ko) Affine 모션 모델 유도 방법
US11943467B2 (en) Affine motion estimation for affine model-based video coding
RU2811563C2 (ru) Системы, устройства и способы для уточнения интерпрогнозирования с помощью оптического потока
TWI835958B (zh) 對稱運動向量差寫碼的裝置及方法