BR112021004800A2 - aparelho e método para refinamento de vetor de movimento de lado de decodificador condicional em condificação de vídeo - Google Patents
aparelho e método para refinamento de vetor de movimento de lado de decodificador condicional em condificação de vídeo Download PDFInfo
- Publication number
- BR112021004800A2 BR112021004800A2 BR112021004800-6A BR112021004800A BR112021004800A2 BR 112021004800 A2 BR112021004800 A2 BR 112021004800A2 BR 112021004800 A BR112021004800 A BR 112021004800A BR 112021004800 A2 BR112021004800 A2 BR 112021004800A2
- Authority
- BR
- Brazil
- Prior art keywords
- image
- block
- temporal distance
- motion vector
- current
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 434
- 239000013598 vector Substances 0.000 title claims abstract description 313
- 238000000034 method Methods 0.000 title claims abstract description 290
- 238000007670 refining Methods 0.000 title description 2
- 230000002123 temporal effect Effects 0.000 claims abstract description 248
- 230000015654 memory Effects 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 49
- 208000013135 GNE myopathy Diseases 0.000 abstract 2
- 208000035508 distal with rimmed vacuoles myopathy Diseases 0.000 abstract 2
- 238000003860 storage Methods 0.000 description 26
- 230000002146 bilateral effect Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 16
- 238000013139 quantization Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 13
- 239000000203 mixture Substances 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 12
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 241000023320 Luma <angiosperm> Species 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 7
- 238000009795 derivation Methods 0.000 description 6
- 238000002513 implantation Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100537098 Mus musculus Alyref gene Proteins 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 101150095908 apex1 gene Proteins 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000002592 echocardiography Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Um método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo é fornecido. O método inclui determinar se uma primeira distância temporal (tal como TD0) é igual a uma segunda distância temporal (tal como TD1), em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem da imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e realizar nenhum procedimento de refinamento de vetor de movimento (DMRV) quando for determinado que a primeira distância temporal (TD0) não é igual à segunda distância temporal (TD1). Assim, o procedimento de DMRV é restrito apenas ao bloco de imagem com referências de distância igual.
Description
[0001] Esse pedido de patente reivindica prioridade ao Pedido de Patente Provisório da Índia IN201831034607, depositado em 13 de setembro de
2018. O pedido de patente mencionado é aqui incorporado a título de referência em sua totalidade.
[0002] Modalidades da presente revelação são de modo geral relacionadas a técnicas de codificação e decodificação de dados de vídeo, e são especialmente relacionadas a refinamento de vetor de movimento de lado de decodificador (DMVR) em codificação de vídeo.
[0003] O montante de dados de vídeo necessário para retratar mesmo um vídeo relativamente curto pode ser substancial, o que pode resultar em dificuldades quando os dados devem ser transmitidos por streaming ou comunicados de outra maneira através de uma rede de comunicações com capacidade de largura de banda limitada. Desse modo, dados de vídeo são de modo geral comprimidos antes de serem comunicados através de redes de telecomunicações atuais. O tamanho de um vídeo poderia também ser um problema quando o vídeo é armazenado em um dispositivo de armazenamento porque os recursos de memória podem ser limitados. Dispositivos de compressão de vídeo frequentemente usam software e/ou hardware na fonte para codificar os dados de vídeo antes da transmissão ou armazenamento, diminuendo assim a quantidade de dados necessária para representar imagens de vídeo digitais. Os dados comprimidos são então recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com recursos de rede limitados e demandas cada vez maiores por qualidade de vídeo mais alta, técnicas de compressão e descompressão aperfeiçoadas que aperfeiçoam a razão de compressão com pouco ou nenhum sacrifício de qualidade de imagem são desejáveis.
[0004] Modalidades do presente pedido fornecem aparelho e método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, um codificador e um decodificador que pode realizar refinamento de vetor de movimento de lado de decodificador (DMVR) condicionalmente, e desse modo a eficiência de codificação pode ser aperfeiçoada.
[0005] Modalidades da invenção são definidas pelas características das reivindicações independentes, e implantações vantajosas adicionais das modalidades pelas características das reivindicações dependentes.
[0006] Modalidades particulares são delineadas nas reivindicações independentes anexas, com outras modalidades nas reivindicações dependentes.
[0007] De acordo com um primeiro aspecto, a revelação se refere a um método para predição inter (bipredição) de um bloco de imagem atual em uma imagem atual de um vídeo, o método compreendendo: determinar se a imagem atual está temporalmente (com relação ao tempo) entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e se uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) são a mesma distância, em que a primeira distância temporal (TD0) é entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) é entre a imagem atual e a segunda imagem de referência (RefPic1); e realizar procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado e determinar um bloco de predição (valores de amostra preditos) do bloco de imagem atual com base na posição do primeiro bloco de referência refinado e a posição do segundo bloco de referência refinado, quando é determinado que a imagem atual está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1) e que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são a mesma distância.
[0008] É notado que “quando é determinado que a imagem atual está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1) e que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são a mesma distância” não deve ser entendido como “somente quando é determinado que a imagem atual está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1) e que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são a mesma distância”. Outras condições podem ser também consideradas ao determinar se realiza procedimento de refinamento de vetor de movimento (DMVR).
[0009] Quanto a “uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado”, a posição pode ser uma posição absoluta, que é a posição na imagem de referência, ou uma posição relativa que é um deslocamento de posição com base na posição do bloco de referência inicial.
[0010] É notado que DMVR é aplicado para o modo de mesclagem de bipredição com um vetor de movimento (MV) a partir de uma imagem de referência no passado e um outro MV a partir de uma outra imagem de referência no futuro. As imagens de referência podem ser duas imagens em direções diferentes temporalmente com relação à imagem atual que contém o bloco de imagem atual. A presente revelação não é aplicável ao cenário no qual ambas as predições vêm da mesma direção de tempo (ou ambas do passado ou ambas do futuro).
[0011] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto, a determinação de se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e que uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) é a mesma distância, em que a primeira distância temporal (TD0) é entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) é entre a imagem atual e a segunda imagem de referência (RefPic1), compreende: |TD0| == |TD1|
E TD0*TD1 < 0 Para cada candidato de mesclagem que indica direção dupla, computar TD0 e TD1 como distâncias temporais de imagem de referência L0 e L1 da imagem atual. A TD0 e TD1 podem ser calculadas usando-se uma contagem de ordem de imagem (POC). Por exemplo: TD0 = POCc -POC0 TD1 = POCc -POC1
Aqui, POCc, POC0, e POC1 representam POC da imagem atual, POC da primeira imagem de referência, e POC da segunda imagem de referência, respectivamente.
[0012] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, o método adicionalmente compreende: realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando é determinado que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1); em um exemplo, realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1) quando |TD0| ≠ |TD1| ou TD0*TD1>=0 no caso em que TD0 = POCc -POC0, e TD1 = POCc -POC1. Alternativamente, em um outro exemplo, realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando TD0 ≠ TD1 no caso em que TD0 = POCc -POC0, e TD1 = POC1 –POCc.
[0013] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, o método adicionalmente compreendendo: obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
[0014] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR), compreende: determinar um primeiro bloco de referência inicial em uma primeira imagem de referência com base no primeiro vetor de movimento inicial; determinar um segundo bloco de referência inicial em uma segunda imagem de referência com base no segundo vetor de movimento inicial; gerar um bloco de referência bilateral com base no primeiro bloco de referência inicial e no segundo bloco de referência inicial; por exemplo, o bloco de referência bilateral pode ser referido como gabarito bilateral, e o gabarito tem o formato e tamanho do bloco de predição de imagem; comparar um custo entre o bloco de referência bilateral e cada um dentre uma pluralidade de primeiros blocos de referência na primeira imagem de referência para determinar uma posição de um primeiro bloco de referência refinado ou um primeiro vetor de movimento refinado; e comparar um custo entre o bloco de referência bilateral e cada um dentre uma pluralidade de segundos blocos de referência na segunda imagem de referência para determinar uma posição de um segundo bloco de referência refinado ou um segundo vetor de movimento refinado.
[0015] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR), compreende: obter um gabarito para o bloco de imagem atual com base em um primeiro bloco de referência inicial apontado pelo primeiro vetor de movimento inicial na primeira imagem de referência (tal como RefPic0) e um segundo bloco de referência inicial apontado pelo segundo vetor de movimento inicial na segunda imagem de referência (tal como RefPic1); e determinar o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado por correspondência de gabarito com dito gabarito em um primeiro espaço de busca e um segundo espaço de busca respectivamente, o primeiro espaço de busca contendo uma posição dada pelo primeiro vetor de movimento inicial e o segundo espaço de busca contendo uma posição dada pelo segundo vetor de movimento inicial.
[0016] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR), compreende: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência com base no critério de custo de correspondência (por exemplo, com base no custo de correspondência de cada par de blocos de referência), em que dito par de blocos de referência inclui um primeiro bloco de referência em uma região de amostra que é da primeira imagem de referência e que é determinada com base no primeiro vetor de movimento inicial e um segundo bloco de referência em uma região de amostra que é da segunda imagem de referência e que é determinada com base no segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado.
[0017] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado, compreende: determinar posições de N primeiros blocos de referência e posições de N segundos blocos de referência com base no primeiro vetor de movimento inicial, no segundo vetor de movimento inicial e em uma posição do bloco de imagem atual, em que os N primeiros blocos de referência estão incluídos na primeira imagem de referência, e os N segundos blocos de referência estão incluídos na segunda imagem de referência, e N é um número inteiro maior que 1; e determinar posições de um par de blocos de referência a partir das posições dos M pares de blocos de referência como uma posição do primeiro bloco de referência refinado e uma posição do segundo bloco de referência refinado com base no critério de custo de correspondência, em que posições de cada par de blocos de referência incluem uma posição de um primeiro bloco de referência e uma posição de um segundo bloco de referência, e para cada par de blocos de referência, o primeiro deslocamento de posição (delta0x, delta0y) e o segundo deslocamento de posição (delta1x, delta1y) são espelhados, e o primeiro deslocamento de posição (delta0x, delta0y) representa um deslocamento da posição do primeiro bloco de referência com relação à posição do primeiro bloco de referência inicial, e o segundo deslocamento de posição (delta1x, delta1y) representa um deslocamento da posição do segundo bloco de referência com relação à posição do segundo bloco de referência inicial, em que M é um número inteiro maior ou igual a 1, e M é menor ou igual a N.
[0018] Em um exemplo, a expressão de que o primeiro deslocamento de posição (delta0x, delta0y) e o segundo deslocamento de posição (delta1x, delta1y) são espelhados, pode ser entendida como: a direção do primeiro deslocamento de posição é oposta à direção do segundo deslocamento de posição, e a magnitude do primeiro deslocamento de posição é a mesma magnitude do segundo deslocamento de posição.
[0019] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, em que a etapa de determinar um bloco de predição do bloco de imagem atual com base na posição do primeiro bloco de referência refinado e a posição do segundo bloco de referência refinado, compreende: determinar um bloco de predição com base no primeiro bloco de referência refinado e no segundo bloco de referência refinado, em que o primeiro bloco de referência refinado é determinado na primeira imagem de referência com base na posição do primeiro bloco de referência refinado e o segundo bloco de referência refinado é determinado na segunda imagem de referência com base na posição do segundo bloco de referência refinado; ou determinar um bloco de predição com base no primeiro bloco de referência refinado e um segundo bloco de referência refinado, em que o primeiro bloco de referência refinado e o segundo bloco de referência refinado são determinados realizando-se compensação de movimento usando o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado.
[0020] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, em que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou em que a primeira imagem de referência é uma imagem de referência no passado e a segunda imagem de referência é uma imagem de referência no futuro; ou a primeira imagem de referência é uma imagem de referência no futuro e a segunda imagem de referência é uma imagem de referência no passado. Em outras palavras, uma imagem anterior da imagem atual é a primeira imagem de referência, e uma próxima imagem da imagem atual é a segunda imagem de referência; ou uma imagem anterior da imagem atual é a segunda imagem de referência, e uma próxima imagem da imagem atual é a primeira imagem de referência.
[0021] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, em que a primeira distância temporal (TD0) indica a distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal (TD1) indica a distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
[0022] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao primeiro aspecto ou com o primeiro aspecto propriamente dito, em que a etapa de determinar se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1), compreende: determinar se o valor de contagem de ordem de imagem (POCc) da imagem atual é maior que o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência e o valor de contagem de ordem de imagem (POCc) da imagem atual é menor que o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência, ou se o valor de contagem de ordem de imagem (POCc) da imagem atual é menor que o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência e o valor de contagem de ordem de imagem (POCc) da imagem atual é maior que o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
[0023] De acordo com um segundo aspecto, a revelação se refere a um método para predição inter (bipredição) de um bloco de imagem atual em uma imagem atual de um vídeo, o método compreendendo: determinar se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e se uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) são a mesma distância, em que a primeira distância temporal (TD0) é entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) é entre a imagem atual e a segunda imagem de referência (RefPic1); e realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando é determinado que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1).
[0024] Em uma possível forma de implantação do método de acordo com o segundo aspecto propriamente dito, em que informações de movimento inicial do bloco de imagem atual compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
[0025] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao segundo aspecto ou com o segundo aspecto propriamente dito, em que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
[0026] De acordo com um terceiro aspecto, a revelação se refere a um método para predição inter (bipredição) de um bloco de imagem atual em uma imagem atual de um vídeo, o método compreendendo: determinar se uma primeira distância temporal (tal como TD0) é igual a uma segunda distância temporal (tal como TD1), em que a primeira distância temporal (TD0) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência e o valor de contagem de ordem de imagem (POCc) da imagem atual; e realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando é determinado que a primeira distância temporal (TD0) é igual à segunda distância temporal (TD1).
[0027] Em uma possível forma de implantação do método de acordo com o terceiro aspecto propriamente dito, o método adicionalmente compreende: realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando é determinado que a primeira distância temporal não é igual à segunda distância temporal.
[0028] De acordo com um quarto aspecto, a revelação se refere a um método para predição inter (bipredição) de um bloco de imagem atual em uma imagem atual de um vídeo, o método compreendendo: determinar se uma primeira distância temporal (tal como TD0) é igual a uma segunda distância temporal (tal como TD1), em que a primeira distância temporal (TD0) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência e o valor de contagem de ordem de imagem (POCc) da imagem atual; e realizar no procedimento de refinamento de vetor de movimento (DMVR) (ou desabilitar procedimento de refinamento de vetor de movimento (DMVR)), quando é determinado que a primeira distância temporal (TD0) não é igual à segunda distância temporal (TD1).
[0029] Para cada candidato de mesclagem que indica direção dupla, a TD0 e TD1 podem ser calculadas usando-se uma contagem de ordem de imagem (POC). Por exemplo: TD0 = POCc -POC0 TD1 = POC1 -POCc Aqui, POCc, POC0, e POC1 representar POC da imagem atual, POC da primeira imagem de referência, e POC da segunda imagem de referência respectivamente.
[0030] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao segundo ou terceiro ou quarto aspecto ou com o segundo ou terceiro ou quarto aspecto propriamente ditos, em que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou em que a primeira imagem de referência é uma imagem de referência no passado e a segunda imagem de referência é uma imagem de referência no futuro; ou a primeira imagem de referência é uma imagem de referência no futuro e a segunda imagem de referência é uma imagem de referência no passado. Em outras palavras, uma imagem anterior da imagem atual é a primeira imagem de referência, e uma próxima imagem da imagem atual é a segunda imagem de referência; ou uma imagem anterior da imagem atual é a segunda imagem de referência, e uma próxima imagem da imagem atual é a primeira imagem de referência.
[0031] De acordo com um quinto aspecto, a revelação se refere a um método para codificação uma imagem de vídeo compreendendo: realizar predição inter de um bloco de imagem atual em uma imagem atual do vídeo para obter um bloco de predição do bloco de imagem atual de acordo com o método acima; e codificar a diferença (por exemplo, resíduo ou bloco residual) entre o bloco de imagem atual e o bloco de predição e gerar um fluxo de bits incluindo uma diferença codificada e um índice (tal como um índice candidato de mesclagem) para indicar informações de movimento inicial, em que as informações de movimento inicial compreendem um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial.
[0032] De acordo com um sexto aspecto, a revelação se refere a um método para decodificar uma imagem de vídeo a partir de um fluxo de bits compreendendo: analisar a partir do fluxo de bits um índice (tal como um índice candidato de mesclagem) para indicar informações de movimento inicial e uma diferença codificada (por exemplo, resíduo ou bloco residual) entre um bloco de imagem atual e um bloco de predição do bloco de imagem atual, em que as informações de movimento inicial compreendem um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial; realizar predição inter de um bloco de imagem atual em uma imagem atual do vídeo para obter um bloco de predição do bloco de imagem atual de acordo com o método anteriormente descrito acima; e reconstruir o bloco de imagem atual como uma soma da diferença analisada e do bloco de predição.
[0033] De acordo com um sétimo aspecto, a revelação se refere a um método de codificação implantado por um dispositivo de codificação, compreendendo: determinar o valor de um elemento de sintaxe indicando se o método acima é habilitado ou não; e gerar um fluxo de bits incluindo o elemento de sintaxe.
[0034] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao sétimo aspecto ou com o sétimo aspecto propriamente dito, em que o elemento de sintaxe é sinalizado em qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
[0035] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao sétimo aspecto ou com o sétimo aspecto propriamente dito, em que o elemento de sintaxe compreende uma primeira flag
(tal como sps_conditional_dmvr_flag) e/ou uma segunda flag (tal como pps_conditional_dmvr_flag); Se a primeira flag (sps_conditional_dmvr_flag) é igual a 0, o método anteriormente descrito acima não é realizado para o bloco de imagens da sequência; Se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 0, o método anteriormente descrito acima não é realizado para o bloco de imagens da imagem da sequência; ou Se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 1, o método anteriormente descrito acima é realizado para o bloco de imagens da imagem da sequência.
[0036] De acordo com um oitavo aspecto, a revelação se refere a um método de decodificação implantado por um dispositivo de decodificação, compreendendo: analisar a partir de um fluxo de bits um elemento de sintaxe indicando se o método anteriormente descrito acima é habilitado ou não; e adaptavelmente habilitar ou desabilitar procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR) de acordo com o elemento de sintaxe indicando se o método acima é habilitado ou não.
[0037] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao oitavo aspecto ou com o oitavo aspecto propriamente dito, em que o elemento de sintaxe é obtido a partir de qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS) de um fluxo de bits, um nível de conjunto de parâmetros de imagem (PPS) do fluxo de bits, um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
[0038] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao oitavo aspecto ou com o oitavo aspecto propriamente dito, em que o elemento de sintaxe compreende a primeira flag (sps_conditional_dmvr_flag) e a segunda flag (pps_conditional_dmvr_flag); Se a primeira flag (sps_conditional_dmvr_flag) é igual a 0, o método anteriormente descrito acima não é realizado para o bloco de imagens da sequência; Se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 0, o método anteriormente descrito acima não é realizado para o bloco de imagens da imagem da sequência; ou Se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 1, o método anteriormente descrito acima é realizado para o bloco de imagens da imagem da sequência.
[0039] De acordo com um nono aspecto, a revelação se refere a um dispositivo de codificação, compreendendo: uma memória que armazena instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para levar o processador a realizar o método anteriormente mostrado.
[0040] De acordo com um décimo aspecto, a revelação se refere a um aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, compreendendo: uma unidade de determinação configurada para determinar se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e se uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) são a mesma distância, em que a primeira distância temporal (TD0) é entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) é entre a imagem atual e a segunda imagem de referência (RefPic1); e uma unidade de processamento de predição inter configurada para realizar procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado e para determinar um bloco de predição do bloco de imagem atual com base na posição do primeiro bloco de referência refinado e na posição do segundo bloco de referência refinado, quando é determinado que a imagem atual está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1) e que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são a mesma distância.
[0041] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto, a unidade de determinação é configurada para determinar se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e se uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) são a mesma distância através da seguinte equação: |TD0| == |TD1|
E TD0*TD1 < 0 Para cada candidato de mesclagem que indica direção dupla, computar TD0 e TD1 como distâncias temporais de imagem de referência L0 e L1 a partir da imagem atual. A TD0 e a TD1 podem ser calculadas usando-se uma contagem de ordem de imagem (POC). Por exemplo: TD0 = POCc -POC0 TD1 = POCc -POC1 Aqui, POCc, POC0, e POC1 representam POC da imagem atual, POC da primeira imagem de referência, e POC da segunda imagem de referência, respectivamente.
[0042] Em uma possível forma de implantação do método de acordo com o décimo aspecto propriamente dito, em que a unidade de processamento de predição inter é adicionalmente configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando é determinado que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1). Em um exemplo, a unidade de processamento de predição inter é adicionalmente configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando |TD0| ≠ |TD1| ou TD0*TD1>=0 no caso em que TD0 = POCc - POC0, e TD1 = POCc -POC1. Alternativamente, em um outro exemplo, a unidade de processamento de predição inter é adicionalmente configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando TD0 ≠ TD1 no caso em que TD0 = POCc -POC0, e TD1 = POC1 –POCc.
[0043] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto ou com o décimo aspecto propriamente dito, em que a unidade de processamento de predição inter é adicionalmente configurada para obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
[0044] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto ou com o décimo aspecto propriamente dito, para a realização de procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado, em que a unidade de processamento de predição inter é especificamente configurada para: determinar um primeiro bloco de referência inicial em uma primeira imagem de referência com base no primeiro vetor de movimento inicial; determinar um segundo bloco de referência inicial em uma segunda imagem de referência com base no segundo vetor de movimento inicial; gerar um bloco de referência bilateral com base no primeiro bloco de referência inicial e no segundo bloco de referência inicial; comparar um custo entre o bloco de referência bilateral e cada um dentre uma pluralidade de primeiros blocos de referência na primeira imagem de referência para determinar uma posição de um primeiro bloco de referência refinado ou um primeiro vetor de movimento refinado; comparar um custo entre o bloco de referência bilateral e cada um dentre uma pluralidade de segundos blocos de referência na segunda imagem de referência para determinar uma posição de um segundo bloco de referência refinado ou um segundo vetor de movimento refinado.
[0045] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do décimo aspecto ou com o décimo aspecto propriamente dito, para realizar procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado, em que a unidade de processamento de predição inter é especificamente configurada para: obter um gabarito para o bloco de imagem atual com base em um primeiro bloco de referência inicial apontado pelo primeiro vetor de movimento inicial na primeira imagem de referência (tal como RefPic0) e um segundo bloco de referência inicial apontado pelo segundo vetor de movimento inicial na segunda imagem de referência (tal como RefPic1); e determinar o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado por correspondência de gabarito com dito gabarito em um primeiro espaço de busca e um segundo espaço de busca respectivamente, em que o primeiro espaço de busca está localizado em uma posição dada pelo primeiro vetor de movimento inicial e o segundo espaço de busca está localizado em uma posição dada pelo segundo vetor de movimento inicial.
[0046] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto ou com o décimo aspecto propriamente dito, para a realização de procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado, em que a unidade de processamento de predição inter é especificamente configurada para: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência com base no critério de custo de correspondência (por exemplo, com base no custo de correspondência de cada par de blocos de referência), em que dito par de blocos de referência inclui um primeiro bloco de referência em uma região de amostra que é da primeira imagem de referência e que é determinada com base no primeiro vetor de movimento inicial e um segundo bloco de referência em uma região de amostra que é da segunda imagem de referência e que é determinada com base no segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado.
[0047] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto ou com o décimo aspecto propriamente dito, para a realização de procedimento de refinamento de vetor de movimento (DMVR) para obter uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado, em que a unidade de processamento de predição inter é especificamente configurada para: determinar posições de N primeiros blocos de referência e posições de N segundos blocos de referência com base no primeiro vetor de movimento inicial, no segundo vetor de movimento inicial e em uma posição do bloco de imagem atual, em que os N primeiros blocos de referência estão incluídos na primeira imagem de referência, e os N segundos blocos de referência estão incluídos na segunda imagem de referência, e N é um número inteiro maior que 1; e determinar posições de um par de blocos de referência a partir das posições dos M pares de blocos de referência como uma posição do primeiro bloco de referência refinado e uma posição do segundo bloco de referência refinado com base no critério de custo de correspondência, em que posições de cada par de blocos de referência incluem uma posição de um primeiro bloco de referência e uma posição de um segundo bloco de referência, e para cada par de blocos de referência, o primeiro deslocamento de posição (delta0x, delta0y) e o segundo deslocamento de posição (delta1x, delta1y) são espelhados, e o primeiro deslocamento de posição (delta0x, delta0y) representa um deslocamento da posição do primeiro bloco de referência com relação à posição do primeiro bloco de referência inicial, e o segundo deslocamento de posição (delta1x, delta1y) representa um deslocamento da posição do segundo bloco de referência com relação à posição do segundo bloco de referência inicial, em que M é um número inteiro maior ou igual a 1, e M é menor ou igual a N.
[0048] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto ou com o décimo aspecto propriamente dito, em que para determinação de um bloco de predição do bloco de imagem atual com base na posição do primeiro bloco de referência refinado e na posição do segundo bloco de referência refinado, em que a unidade de processamento de predição inter é especificamente configurada para: determinar um bloco de predição com base no primeiro bloco de referência refinado e no segundo bloco de referência refinado, em que o primeiro bloco de referência refinado é determinado na primeira imagem de referência com base na posição do primeiro bloco de referência refinado e o segundo bloco de referência refinado é determinado na segunda imagem de referência com base na posição do segundo bloco de referência refinado; ou determinar um bloco de predição com base no primeiro bloco de referência refinado e um segundo bloco de referência refinado, em que o primeiro bloco de referência refinado e o segundo bloco de referência refinado são determinados realizando-se compensação de movimento usando o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado.
[0049] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente ao décimo aspecto ou com o décimo aspecto propriamente dito, em que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou
[0050] em que a primeira imagem de referência é uma imagem de referência no passado e a segunda imagem de referência é uma imagem de referência no futuro; ou a primeira imagem de referência é uma imagem de referência no futuro e a segunda imagem de referência é uma imagem de referência no passado.
[0051] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente o décimo aspecto ou com o décimo aspecto propriamente dito, em que a primeira distância temporal (TD0) indica a distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal (TD1) indica a distância de POC entre a imagem atual e a segunda imagem de referência; ou
[0052] em que a primeira distância temporal (TD0) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
[0053] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente o décimo aspecto ou com o décimo aspecto propriamente dito, em que para a determinação de se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1), em que a unidade de processamento de predição inter é especificamente configurada para:
[0054] determinar se o valor de contagem de ordem de imagem (POCc) da imagem atual é maior que o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência e o valor de contagem de ordem de imagem (POCc) da imagem atual é menor que o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência, ou se o valor de contagem de ordem de imagem (POCc) da imagem atual é menor que o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência e o valor de contagem de ordem de imagem (POCc) da imagem atual é maior que o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
[0055] De acordo com um décimo primeiro aspecto, a revelação se refere a um aparelho de codificação para codificação de uma imagem de vídeo, o aparelho de codificação compreendendo: uma unidade de determinação configurada para determinar se a imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal é entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal é entre a imagem atual e a segunda imagem de referência; e uma unidade de processamento de predição inter configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando é determinado que a primeira distância temporal e a segunda distância temporal são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
[0056] Em uma possível forma de implantação do método de acordo com o décimo primeiro aspecto propriamente dito, em que informações de movimento inicial do bloco de imagem atual compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
[0057] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente o décimo primeiro aspecto ou com o décimo primeiro aspecto propriamente dito, em que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
[0058] De acordo com um décimo segundo aspecto, a revelação se refere a um aparelho de codificação para codificar uma imagem de vídeo, o aparelho de codificação compreendendo: o aparelho anteriormente mostrado para obter um bloco de predição de um bloco de imagem atual, uma unidade de codificação de entropia configurada para codificar a diferença (tal como resíduo) entre o bloco de imagem atual e o bloco de predição do bloco de imagem atual e gerar um fluxo de bits incluindo a diferença codificada e um índice (tal como índice candidato de mesclagem) para indicar informações de movimento inicial, em que as informações de movimento inicial compreendem um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial.
[0059] De acordo com um décimo terceiro aspecto, a revelação se refere a um aparelho de decodificação para decodificar uma imagem de vídeo a partir de um fluxo de bits, o aparelho compreendendo: uma unidade de decodificação de entropia configurada para analisar a partir do fluxo de bits um índice para indicar informações de movimento inicial e uma diferença codificada (tal como resíduo) entre um bloco de imagem atual e um bloco de predição do bloco de imagem atual, em que as informações de movimento inicial compreendem um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial; o aparelho anteriormente mostrado para obter o bloco de predição do bloco de imagem atual, e uma unidade de reconstrução de imagem configurada para reconstruir o bloco de imagem atual como uma soma da diferença analisada (tal como resíduo) e o bloco de predição.
[0060] De acordo com um décimo quarto aspecto, a revelação se refere a um dispositivo de codificação, compreendendo um ou mais circuitos de processamento configurados para: determinar um valor de um elemento de sintaxe indicando se o método anteriormente mostrado é de habilitar ou não; e gerar um fluxo de bits incluindo o elemento de sintaxe.
[0061] Em uma possível forma de implantação do método de acordo com o décimo quarto aspecto propriamente dito, em que o elemento de sintaxe é sinalizado em qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
[0062] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente o décimo quarto aspecto ou com o décimo quarto aspecto propriamente dito, em que o elemento de sintaxe compreende a primeira flag (sps_conditional_dmvr_flag) e a segunda flag (pps_conditional_dmvr_flag); se a primeira flag (sps_conditional_dmvr_flag) é igual a 0, o método anteriormente mostrado não é realizado para o bloco de imagens da sequência; se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 0, o método anteriormente mostrado não é realizado para o bloco de imagens da imagem da sequência; ou se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 1, o método anteriormente mostrado 1 é realizado para o bloco de imagens da imagem da sequência.
[0063] De acordo com um décimo quinto aspecto, a revelação se refere a um dispositivo de decodificação, compreendendo um ou mais circuitos de processamento configurados para:
[0064] analisar a partir de um fluxo de bits um elemento de sintaxe para indicar se o método anteriormente mostrado é de habilitar ou não; e adaptavelmente habilitar ou desabilitar um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR) de acordo com o elemento de sintaxe.
[0065] Em uma possível forma de implantação do método de acordo com o décimo quinto aspecto propriamente dito, em que o elemento de sintaxe é obtido a partir de qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS) de um fluxo de bits, um nível de conjunto de parâmetros de imagem (PPS) do fluxo de bits, um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
[0066] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente o décimo quinto aspecto ou com o décimo quinto aspecto propriamente dito, em que o elemento de sintaxe compreende a primeira flag (sps_conditional_dmvr_flag) e a segunda flag (pps_conditional_dmvr_flag); se a primeira flag (sps_conditional_dmvr_flag) é igual a 0, o método anteriormente mostrado não é realizado para o bloco de imagens da sequência; se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 0, o método anteriormente mostrado não é realizado para o bloco de imagens da imagem da sequência; ou se a primeira flag (sps_conditional_dmvr_flag) é igual a 1 e a segunda flag (pps_conditional_dmvr_flag) é igual a 1, o método anteriormente mostrado é realizado para o bloco de imagens da imagem da sequência.
[0067] De acordo com um décimo sexto aspecto, a revelação se refere a uma mídia legível por computador que armazena instruções legíveis por computador as quais quando executadas em um processador realizam as etapas de acordo com o método anteriormente mostrado.
[0068] De acordo com um décimo sétimo aspecto, a revelação se refere a um método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, o método compreendendo: determinar, se pelo menos uma condição é satisfeita, em que a pelo menos uma condição compreende: uma primeira distância temporal (tal como TD0) é igual a uma segunda distância temporal (tal como TD1), em que a primeira distância temporal é representada em termos de diferença entre o valor de contagem de ordem de imagem da imagem atual e o valor de contagem de ordem de imagem da primeira imagem de referência; e a segunda distância temporal é representada em termos de diferença entre o valor de contagem de ordem de imagem da segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e realizar, quando a pelo menos uma condição é satisfeita, procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR) para determinar um bloco de predição do bloco de imagem atual.
[0069] De acordo com um décimo oitavo aspecto, a revelação se refere a um método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, o método compreendendo: realizar, quando uma ou mais condições são satisfeitas, procedimento de refinamento de vetor de movimento (DMVR) para obter um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado para um sub- bloco do bloco de imagem atual, em que o primeiro vetor de movimento refinado corresponde a uma primeira imagem de referência e o segundo vetor de movimento refinado corresponde a uma segunda imagem de referência; e determinar um bloco de predição (tal como valores de amostra preditos) do bloco de imagem atual, em que o bloco de predição do bloco de imagem atual compreende um bloco de predição do sub-bloco, em que o bloco de predição do sub-bloco é determinado com base pelo menos em parte mediante o primeiro vetor de movimento refinado e o segundo vetor de movimento refinado; em que a uma ou mais condições pelo menos compreendem: uma primeira distância temporal (tal como TD0) é igual a uma segunda distância temporal (tal como TD1), em que a primeira distância temporal (TD0) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da segunda imagem de referência e o valor de contagem de ordem de imagem (POC1) da imagem atual.
[0070] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente o décimo quinto, décimo sexto, décimo sétimo e décimo oitavo aspecto ou com o décimo quinto, décimo sexto, décimo sétimo e décimo oitavo aspecto propriamente ditos, em que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou em que a primeira imagem de referência é uma imagem de referência no passado e a segunda imagem de referência é uma imagem de referência no futuro; ou a primeira imagem de referência é uma imagem de referência no futuro e a segunda imagem de referência é uma imagem de referência no passado.
[0071] O método de acordo com um determinado aspecto da invenção pode ser realizado pelo aparelho de acordo com o determinado aspecto da invenção. Outras características e formas de implantação do método de acordo com o determinado aspecto da invenção resultam diretamente da funcionalidade do aparelho de acordo com o determinado aspecto da invenção e suas diferentes formas de implantação.
[0072] É notado que um dispositivo de codificação pode ser dispositivo de codificação ou dispositivo de decodificação.
[0073] De acordo com um outro aspecto a invenção se refere a um aparelho para decodificar um fluxo de vídeo inclui um processador e uma memória. A memória está armazenando instruções que fazem o processador realizar o método anteriormente mostrado.
[0074] De acordo com um outro aspecto a invenção se refere a um aparelho para codificar um fluxo de vídeo inclui um processador e uma memória. A memória está armazenando instruções que fazem o processador realizar o método anteriormente mostrado.
[0075] De acordo com um outro aspecto, uma mídia de armazenamento legível por computador tendo armazenadas na mesma instruções que quando executadas fazem um ou mais processadores configurados codificar dados de vídeo é proposto. As instruções fazem o um ou mais processadores realizar um método anteriormente mostrado.
[0076] De acordo com um outro aspecto, um produto de programa de computador com um código de programa para realizar o método anteriormente mostrado quando o programa de computador roda em um computador, é fornecido.
[0077] Detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos, e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[0078] Com o propósito de clareza, qualquer uma das supracitadas modalidades pode ser combinada com qualquer uma ou mais das outras modalidades supracitadas para criar uma nova modalidade dentro do escopo da presente revelação.
[0079] Essas e outras características serão entendidas mais claramente a partir da descrição detalhada a seguir tomada em conjunto com os desenhos anexos e reivindicações.
[0080] Para um entendimento mais completo dessa revelação, referência é feita agora à breve descrição a seguir, tomada em conjunto com os desenhos anexos e a descrição detalhada, em que números de referência iguais representam partes iguais.
[0081] A Figura 1 é um diagrama de blocos ilustrando um exemplo de sistema de codificação que pode utilizar técnicas de refinamento de vetor de movimento de lado de decodificador condicional.
[0082] A Figura 2 é um diagrama de blocos ilustrando um exemplo de codificador de vídeo que pode implantar técnicas de refinamento de vetor de movimento de lado de decodificador condicional.
[0083] Figura 3 é um diagrama de blocos ilustrando um exemplo de um decodificador de vídeo que pode implantar técnicas de refinamento de vetor de movimento de lado de decodificador condicional.
[0084] A Figura 4 é um diagrama esquemático de um dispositivo de codificação.
[0085] A Figura 5 é um diagrama de blocos ilustrando um exemplo de um aparelho de codificação ou um aparelho de decodificação.
[0086] A Figura 6A é uma ilustração gráfica das distâncias temporais para refinamento de vetor de movimento de lado de decodificador condicional em codificação de vídeo.
[0087] A Figura 6B é uma ilustração gráfica de um exemplo de um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR).
[0088] A Figura 6C é um fluxograma ilustrando um exemplo de um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR) com referência à Figura 6B.
[0089] A Figura 6D é um fluxograma ilustrando um outro exemplo de um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR).
[0090] A Figura 7 é um fluxograma ilustrando um exemplo de um método de codificação.
[0091] A Figura 8 é um fluxograma ilustrando um exemplo de um método de decodificação.
[0092] A Figura 9 é um fluxograma ilustrando um exemplo de um método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo.
[0093] A Figura 10 é um diagrama de blocos mostrando um exemplo de estrutura de um aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo.
[0094] A Figura 11 é um diagrama de blocos mostrando um exemplo de estrutura de um sistema de suprimento de conteúdo o qual fornece um serviço de entrega de conteúdo.
[0095] A Figura 12 é um diagrama de blocos mostrando uma estrutura de um exemplo de um dispositivo terminal.
[0096] Deve ser entendido de princípio que embora uma implantação ilustrativa de uma ou mais modalidades sejam fornecidas abaixo, os sistemas e/ou métodos revelados podem ser implantados usando um número qualquer de técnicas, sejam atualmente conhecidas ou em vigor. A revelação não deve absolutamente ser limitada às implantações, desenhos, e técnicas ilustrativas ilustradas abaixo, incluindo os projetos exemplificativos e implantações ilustradas e descritas no presente documento, mas pode ser modificada dentro do escopo das reivindicações anexas juntamente com todo seu escopo de equivalentes.
[0097] DEFINIÇÕES DE ACRÔNIMOS E GLOSSÁRIOS
[0098] DMVR Refinamento de Vetor de Movimento de Lado de Decodificador
[0099] SAD Soma de Diferenças Absolutas
[0100] MV Vetor de Movimento
[0101] MCP Predição Compensada por Movimento
[0102] HEVC Codificação de Vídeo de Alta Eficiência
[0103] A Figura 1 é um diagrama de blocos ilustrando um exemplo de sistema de codificação 10 que pode utilizar técnicas de predição bidirecionais. Conforme mostrado na Figura 1, o sistema de codificação 10 inclui um dispositivo de origem 12 que fornece dados de vídeo codificados para serem decodificados um tempo depois por um dispositivo de destino 14. Em particular, o dispositivo de origem 12 pode fornecer os dados de vídeo para o dispositivo de destino 14 por uma mídia legível por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer de uma ampla faixa de dispositivos, incluindo computadores de mesa, computadores tipo notebook (isto é, laptop), computadores tipo tablet, set top boxes, fones para telefone tais como os chamados telefones “inteligentes”, os chamados pads “inteligentes”, televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de mídia digital, consoles para videogames, dispositivo de streaming de vídeo, ou semelhantes. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0104] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificados por uma mídia legível por computador 16. A mídia legível por computador 16 pode compreender qualquer tipo de mídia ou dispositivo com capacidade de mover os dados de vídeo codificados a partir do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, a mídia legível por computador 16 pode compreender uma mídia de comunicação para habilitar o dispositivo de origem 12 para transmitir dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. A mídia de comunicação pode compreender qualquer mídia de comunicação sem fio ou com fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. A mídia de comunicação pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de longa distância, ou uma rede global tal como a Internet. A mídia de comunicação pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que possa ser útil para facilitar comunicação do dispositivo de origem 12 para o dispositivo de destino 14.
[0105] Em alguns exemplos, dados codificados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento. Similarmente, dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer uma dentre uma variedade de mídias de armazenamento de dados distribuídas ou acessadas localmente tais como um disco rígido, discos Blu- ray, discos de vídeo digitais (DVD)s, Memórias Apenas Leitura de Disco Compacto (CD-ROMs), memória flash, memória volátil ou não volátil, ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou um outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por streaming ou download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade de armazenar dados de vídeo codificados e transmitir aqueles dados de vídeo codificados para o dispositivo de destino 14. Exemplos de servidores de arquivos incluem um servidor da rede (por exemplo, para um site da rede), um servidor de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento conectados à rede (NAS), ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão à Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, linha de assinante digital (DSL), modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode ser uma transmissão por streaming, uma transmissão por download, ou uma combinação das mesmas.
[0106] As técnicas dessa revelação não são necessariamente limitadas a aplicativos ou instalações sem fio. As técnicas podem ser aplicadas para codificação de vídeo no suporte de qualquer um de uma variedade de aplicativos multimídia, tais como broadcasts aéreas para televisão, transmissões para televisão a cabo, broadcasts para televisão por satélite, transmissões de vídeo por streaming pela Internet, tais como streaming adaptável dinâmico por HTTP (DASH), vídeo digital que é codificado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados, ou outros aplicativos. Em alguns exemplos, o sistema de codificação 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar pedidos tais como streaming de vídeo, reprodução de vídeo, broadcast de vídeo, e/ou telefonia por vídeo.
[0107] No exemplo da Figura 1, o dispositivo de origem 12 inclui fonte de vídeo 18, codificador de vídeo 20, e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, decodificador de vídeo 30, e dispositivo de exibição 32. De acordo com essa revelação, o codificador de vídeo 20 de dispositivo de origem 12 e/ou o decodificador de vídeo 30 do dispositivo de destino 14 podem ser configurados para aplicar as técnicas para predição bidirecional. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo a partir de uma fonte de vídeo externa, tal como uma câmera externa. Da mesma forma, o dispositivo de destino 14 pode fazer face a um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0108] O sistema de codificação ilustrado 10 da Figura 1 é meramente um exemplo. Técnicas para predição bidirecional podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Embora as técnicas dessa revelação de modo geral sejam realizadas por um dispositivo de codificação de vídeo, as técnicas podem também ser realizadas por um codificador/decodificador de vídeo, tipicamente referido como um “CODEC”. Além disso, as técnicas dessa revelação podem também ser realizadas por um pré- processador de vídeo. O codificador e/ou o decodificador de vídeo pode(m) ser uma unidade de processamento gráfico (GPU) ou um dispositivo similar.
[0109] O dispositivo de origem 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo de origem 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem operar em uma maneira substancialmente simétrica de modo que cada um dos dispositivos de fonte e destino 12, 14 inclua componentes de codificação e decodificação de vídeo. Sendo assim, o sistema de codificação 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre dispositivos de vídeo 12, 14, por exemplo, para streaming de vídeo, reprodução de vídeo, broadcast de vídeo, ou telefonia por vídeo.
[0110] A fonte de vídeo 18 de dispositivo de origem 12 pode incluir um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo anteriormente capturado, e/ou uma interface de alimentação de vídeo para receber vídeo a partir de um fornecedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados com base em computação gráfica como o vídeo de fonte, ou uma combinação de vídeo ao vivo, vídeo arquivado, e vídeo gerado por computador.
[0111] Em alguns casos, quando a fonte de vídeo 18 é uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os chamados telefones com câmera ou videofones. Como mencionado acima, no entanto, as técnicas descritas nessa revelação podem ser aplicáveis para codificação de vídeo em geral, e podem ser aplicadas para aplicativos sem fio e/ou com fio. Em cada caso, o vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado pelo codificador de vídeo 20. As informações do vídeo codificado podem então ser emitidas pela interface de saída 22 em uma mídia legível por computador 16.
[0112] A mídia legível por computador 16 pode incluir mídia transiente, tal como um broadcast sem fio ou transmissão em rede com fio, ou mídia de armazenamento (isto é, mídia de armazenamento não transitória), tal como um disco rígido, pen drive, disco compacto, disco digital de vídeo, disco Blu-ray, ou outra mídia legível por computador. Em alguns exemplos, um servidor da rede (não mostrado) pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e fornecer os dados de vídeo codificados para o dispositivo de destino
14, por exemplo, por transmissão em rede. Similarmente, um dispositivo de computação de uma instalação de produção média, tal como uma instalação de carimbo de disco, pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e produzir um disco contendo os dados de vídeo codificados. Portanto, pode ser entendido que a mídia legível por computador 16 inclui uma ou mais mídias legíveis por computador de várias formas, em vários exemplos.
[0113] A interface de entrada 28 do dispositivo de destino 14 recebe informações a partir da mídia legível por computador 16. As informações da mídia legível por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, o qual é também usado pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupo de imagens (GOPs). O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer um de uma variedade de dispositivos de exibição tais como a tubo de raio catódico (CRT), um visor de cristal líquido exibição (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED), ou um outro tipo de dispositivo de exibição.
[0114] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode se conformar ao Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões próprios ou da indústria, tais como o padrão H.264 do Setor de Normatização de Telecomunicaões da União Internacional de Telecomunicações (ITU-T), alternativamente referido como Grupo de Especialistas de Imagens em Movimento (MPEG)-4, parte 10, Codificação de Vídeo Avançada (AVC), H.265/HEVC, ou extensões de tais padrões. As técnicas dessa revelação, no entanto, não são limitadas a qualquer padrão de codificação em particular. Outros exemplos de padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não mostrado na Figura 1, em determinados aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um deles ser integrado com um codificador e decodificador de áudio, e pode incluir unidades de múltiplxador-demultiplxador (MUX-DEMUX) apropriadas, ou outro hardware e software, para tratar de codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, unidades MUX-DEMUX podem se conformar ao protocolo de multiplexador ITU H.223, ou outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0115] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um deles, implantado como qualquer um de uma variedade de circuitos de codificador adequados, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia não transitória legível por computador adequada, e executar as instruções em hardware usando um ou mais processadores para realizar as técnicas dessa revelação. O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um deles, ser incluído em um ou mais codificadores ou decodificadores, ambos os quais podem ser integrados como parte de um codificador/decodificador (CODEC) combinados em um respectivo dispositivo. Um dispositivo incluindo codificador de vídeo 20 e/ou decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador, e/ou um dispositivo de comunicação sem fio, tal como um telefone celular.
[0116] A Figura 2 é um diagrama de blocos ilustrando um exemplo de codificador de vídeo 20 que pode implantar técnicas de predição bidirecionais. O codificador de vídeo 20 pode realizar codificação inter e intra de blocos de vídeo dentro de fatias de vídeo. A codificação intra se baseia em predição espacial para reduzir ou remover redundância espacial em vídeo dentro de um dado quadro ou imagem de vídeo. Codificação inter se baseia em predição temporal para reduzir ou remover redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um de diversos modos de codificação com base espacial. Modos inter, tais como predição unidirecional (modo P) ou bipredição (modo B), podem se referir a qualquer de diversos modos de codificação com base temporal.
[0117] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo para ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui unidade de seleção de modo 40, memória de quadro de referência 64, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, e unidade de codificação de entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de movimento 44, a unidade de estimação de movimento 42, a unidade de predição intra 46, e a unidade de partição 48. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantização inversa 58, unidade de transformada inversa 60, e somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) pode também ser incluído para filtrar os limites de bloco para remover artefatos que provocam bloqueio do vídeo reconstruído. Se desejado, o filtro de desbloqueio iria tipicamente filtrar a saída de somador 62. Filtros adicionais (in loop ou post-loop) podem também ser usados além do filtro de desbloqueio. Tais filtros não são mostrados para abreviar, mas se desejado, podem filtrar a saída do somador 50 (como um filtro in-loop).
[0118] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo para ser codificado(a). O quadro ou fatia pode ser dividido(a) em múltiplos blocos de vídeo. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 realizam codificação preditiva inter do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer predição temporal. A unidade de predição intra 46 pode alternativamente realizar codificação preditiva intra do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer predição espacial. O codificador de vídeo 20 pode realizar múltiplos passos de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[0119] Além disso, a unidade de partição 48 pode partir blocos de dados de vídeo em sub-blocos, com base em avaliação de esquemas de partição anteriores em passos de codificação anteriores. Por exemplo, a unidade de partição 48 pode inicialmente partir um quadro ou fatia em unidades de codificação maiores (LCUs), e partir cada uma das LCUs em subunidades de codificação (sub- CUs) com base em análise de distorção de taxa (por exemplo, otimização de distorção de taxa). A unidade de seleção de modo 40 pode adicionalmente produzir uma estrutura de dados de árvore quaternária indicativa de partição de uma LCU em sub-CUs. CUs de nó folha da árvore quaternária podem incluir uma ou mais unidades de predição (PUs) e uma ou mais unidades de transformada (TUs).
[0120] A presente revelação usa o termo “bloco” para se referir a qualquer uma dentre uma CU, PU, ou TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macroblocos e sub- blocos das mesmas em H.264/AVC). A CU inclui um nó de codificação, PUs, e TUs associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e é quadrado em formato. O tamanho da CU pode estar na faixa de 8×8 pixels até o tamanho do bloco de árvore com um máximo de 64×64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Dados de sintaxe associados à CU podem descrever, por exemplo, partição da CU em uma ou mais PUs. Os modos de partição podem diferir entre se a CU é codificada no modo pulo ou direto, modo de predição intra codificado, ou modo de predição inter codificado. PUs podem ser partidas para não serem quadradas em formato. Dados de sintaxe associados à CU podem também descrever, por exemplo, partição da CU em uma ou mais TUs de acordo com uma árvore quaternária. Em uma modalidade, uma CU, PU, ou TU pode ser quadrada ou não quadrada (por exemplo, retangular) em formato.
[0121] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, inter ou intra, por exemplo, com base em resultados de erro, e fornece o bloco codificado de modo inter ou intra resultante para o somador 50 para gerar dados de bloco residual e para o somador 62 reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, tais como vetores de movimento, indicadores de modo intra, informações de partição, e outras informações de sintaxe como essas, para a unidade de codificação de entropia 56.
[0122] A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para propósitos conceituais. Estimação de movimento, realizada pela unidade de estimação de movimento 42, é o processo de gerar vetores de movimento, os quais estimam movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo ou de uma imagem atual relativo(a) a um bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) relativo ao bloco atual sendo codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que é encontrado para corresponder rigorosamente o bloco a ser codificado, em termos de diferença de pixel, a qual pode ser determinada por soma de diferença absoluta (SAD), soma de diferença quadrada (SSD), ou outra métrica de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições abaixo de número inteiro de pixel de imagens de referência armazenadas na memória de quadro de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições fracionárias de pixel da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode realizar a busca de movimento relativa às posições inteiras de pixel e posições fracionárias de pixel e emitir um vetor de movimento com precisão fracionária de pixel.
[0123] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia codificada de modo inter por comparar a posição da PU à posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de quadro de referência 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e a unidade de compensação de movimento 44.
[0124] Compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver obter ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimação de movimento 42. Mais uma vez, a unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Mediante recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de imagens de referências. O somador 50 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel,
como discutido abaixo. Em geral, a unidade de estimação de movimento 42 realiza estimação de movimento relativa a componentes de luma, e a unidade de compensação de movimento 44 usa vetores de movimento calculados com base nos componentes de luma para tanto para componentes de croma quanto para componentes de luma. A unidade de seleção de modo 40 pode também gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0125] A unidade de predição intra 46 pode predizer de modo intra um bloco atual, como uma alternativa à predição inter realizada pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de predição intra 46 pode determinar um modo de predição intra para usar para codificar um bloco atual. Em alguns exemplos, a unidade de predição intra 46 pode codificar um bloco atual usando vários modos de predição intra, por exemplo, durante passos de codificação separados, e a unidade de predição intra 46 (ou a unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de predição intra apropriado para uso a partir dos modos testados.
[0126] Por exemplo, a unidade de predição intra 46 pode calcular valores de distorção de taxa usando uma análise de distorção de taxa para os vários modos testados de predição intra, e selecionar o modo de predição intra tendo as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa de modo geral determina um montante de distorção (ou erro) entre um bloco codificado e um bloco original, não codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (isto é, um número de bits) usada para produzir o bloco codificado. A unidade de predição intra 46 pode calcular razões a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de predição intra exibe o melhor valor de distorção de taxa para o bloco.
[0127] Além disso, a unidade de predição intra 46 pode ser configurada para codificar blocos de profundidade de um mapa de profundidade usando um modo de modelar profundidade (DMM). A unidade de seleção de modo 40 pode determinar se um modo DMM disponível produz melhores resultados de codificação que um modo de predição intra e os outros modos DMM, por exemplo,
usando otimização de distorção de taxa (RDO). Os dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 64. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem também ser configuradas para predizer de modo inter blocos de profundidade de um mapa de profundidade.
[0128] Depois de selecionar um modo de predição intra para um bloco (por exemplo, um modo de predição intra convencional ou um dos modos DMM), a unidade de predição intra 46 pode fornecer informações indicativas do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia
56. A unidade de codificação de entropia 56 pode codificar as informações indicando o modo de predição intra selecionado. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido dados de configuração, os quais podem incluir uma pluralidade de tabelas de índice de modo de predição intra e uma pluralidade de tabelas de índice de modo de predição intra modificadas (também referidas como tabelas de mapeamento de palavra código), definições de contextos de codificação para vários blocos, e indicações de um modo de predição intra mais provável, uma tabela de índice de modo de predição intra, e uma tabela de índice de modo de predição intra modificada para uso em cada um dos contextos.
[0129] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original sendo codificado. O somador 50 representa o componente ou componentes que realizam essa operação de subtração.
[0130] A unidade de processamento de transformada 52 aplica uma transformada, tal como uma transformada discreta de cosseno (DCT) ou uma transformada conceitualmente similar, ao bloco residual, produzindo um bloco de vídeo compreendendo valores de coeficiente de transformada residual. A unidade de processamento de transformada 52 pode realizar outras transformadas as quais são conceitualmente similares a DCT. Transformadas wavelet, transformadas de número inteiro, transformadas de sub-banda ou outros tipos de transformadas poderiam também ser usadas.
[0131] A unidade de processamento de transformada 52 aplica a transformada no bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais a partir de um domínio de valor de pixel para um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada a alguns dos ou a todos os coeficientes. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0132] Em seguida à quantização, unidade de codificação de entropia 56 codifica de entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável adaptável a contexto (CAVLC), codificação aritmética binária adaptável a contexto (CABAC), codificação aritmética binária adaptável a contexto com base em sintaxe (SBAC), codificação de entropia de partição de intervalo de probabilidade (PIPE) ou uma outra técnica de codificação de entropia. No caso de codificação de entropia com base em contexto, o contexto pode ser com base em blocos vizinhos. Em seguida à codificação de entropia por unidade de codificação de entropia 56, o fluxo de bits codificados pode ser transmitido para um outro dispositivo (por exemplo, o decodificador de vídeo 30) ou arquivado para transmissão ou recuperação posterior.
[0133] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco preditivo de um dos quadros de memória de quadro de referência 64. A unidade de compensação de movimento 44 pode também aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel abaixo de número inteiro para uso em estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado por movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de quadro de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para codificar de modo inter um bloco em um quadro de vídeo subsequente.
[0134] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador com base em não transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 52 para determinados blocos ou quadros. Em uma outra implantação, um codificador 20 pode ter a unidade de quantização 54 e a unidade de quantização inversa 58 combinadas em uma única unidade.
[0135] A Figura 3 é um diagrama de blocos ilustrando um exemplo de decodificador de vídeo 30 que pode implantar técnicas de predição bidirecionais. No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, uma unidade de compensação de movimento 72, uma unidade de predição intra 74, uma unidade de quantização inversa 76, unidade de transformação inversa 78, uma memória de quadro de referência 82, e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar um passo de decodificação de modo geral recíproco ao passo de codificação descrito com relação ao codificador de vídeo 20 (Figura 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos a partir da unidade de decodificação de entropia 70, enquanto a unidade de predição intra 74 pode gerar dados de predição com base em indicadores de modo de predição intra recebidos a partir da unidade de decodificação de entropia 70.
[0136] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de vídeo de bits codificados que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados do codificador de vídeo 20. A unidade de decodificação de entropia 70 de decodificador de vídeo 30 decodifica de entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de predição intra, e outros elementos de sintaxe. A unidade de decodificação de entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe a nível de fatia de vídeo e/ou a nível de bloco de vídeo.
[0137] Quando a fatia de vídeo é codificada como uma fatia codificada de modo intra (I), a unidade de predição intra 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados a partir de blocos anteriormente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada de modo inter (isto é, B, P ou GPB), a unidade de compensação de movimento 72 produz bloco preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referências. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas na memória de quadro de referência 82.
[0138] A unidade de compensação de movimento 72 determina informações de predição para um bloco de vídeo da fatia de vídeo atual por análise dos vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 72 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado de modo inter da fatia, status de predição inter para cada bloco de vídeo codificado de modo inter da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0139] A unidade de compensação de movimento 72 pode também realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode usar filtros de interpolação como usados pelo codificador de vídeo 20 durante codificação dos blocos de vídeo para calcular valores interpolados para pixels abaixo de número inteiro de blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0140] Dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência
82. A unidade de compensação de movimento 72 pode também ser configurada para predizer de modo inter blocos de profundidade de um mapa de profundidade.
[0141] Como será observado pelos versados na técnica, o sistema de codificação 10 da Figura 1 é adequado para implantar várias técnicas de codificação ou compressão de vídeo. Algumas técnicas de compressão de vídeo, tais como predição inter, predição intra, e filtros loop, têm demonstrado para ser eficazes. Portanto, as técnicas de compressão de vídeo foram adotadas em vários padrões de codificação de vídeo, tais como H.264/AVC e H.265/HEVC.
[0142] Várias ferramentas de codificação tais como predição de vetor de movimento adaptável (AMVP) e modo de mesclagem (MERGE) são usadas para predizer vetores de movimento (MVs) e melhorar a eficiência da predição inter e, portanto, a eficiência de compressão de vídeo como um todo.
[0143] Os MVs indicados acima são utilizados em bipredição. Em uma operação de bipredição, dois blocos de predição são formados. Um bloco de predição é formado usando um MV da list0 (referido no presente documento como MV0). Um outro bloco de predição é formado usando um MV da list1 (referido no presente documento como MV1). Os dois blocos de predição são então combinados (por exemplo, divididos proporcionalmente) a fim de formar um único sinal de predição (por exemplo, um bloco de predição ou um bloco preditor).
[0144] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits comprimido. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo emitido sem a unidade de filtragem loop. Por exemplo, um decodificador com base em não transformada 30 pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 78 para determinados blocos ou quadros. Em uma outra implantação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 76 e a unidade de processamento de transformada inversa 78 combinadas em uma única unidade.
[0145] A Figura 5 é um diagrama esquemático de um dispositivo de codificação 500 de acordo com uma modalidade da revelação. O dispositivo de codificação 500 é adequado para implantar as modalidades reveladas conforme descrito no presente documento. Em uma modalidade, o dispositivo de codificação 500 pode ser um decodificador tal como o decodificador de vídeo 30 da Figura 1 ou um codificador tal como o codificador de vídeo 20 da Figura 1. Em uma modalidade, o dispositivo de codificação 500 pode ser um ou mais componentes do decodificador de vídeo 30 da Figura 1 ou o codificador de vídeo 20 da Figura 1 conforme descrito acima.
[0146] O dispositivo de codificação 500 compreende portas de ingresso 510 e unidades de recebimento (Rx) 520 para receber dados; um processador, unidade lógica, ou unidade de processamento central (CPU) 530 para processar os dados; unidades transmissoras (Tx) 540 e portas de egresso 550 para transmitir os dados; e uma memória 560 para armazenar os dados. O dispositivo de codificação 500 pode também compreender componentes óptico para elétrico (OE) e componentes de elétrico para óptico (EO) acoplados às portas de ingresso 510, às unidades de recebimento 520, às unidades transmissoras 540, e às portas de egresso 550 para egresso ou ingresso de sinais ópticos ou elétricos.
[0147] O processador 530 é implantado por hardware e software. O processador 530 pode ser implantado como um ou mais CPU chips, cores (por exemplo, as um processador de múltiplas cores), FPGAs, ASICs e DSPs. O processador 530 está em comunicação com as portas de ingresso 510, as unidades de recebimento 520, as unidades transmissoras 540, as portas de egresso 550, e a memória 560. O processador 530 compreende um módulo de codificação 570. O módulo de codificação 570 implanta as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 570 implanta, processa, prepara, ou fornece as várias operações de codificação. A inclusão do módulo de codificação 570, portanto, fornece um aperfeiçoamento substancial para a funcionalidade do dispositivo de codificação 500 e efetua a transformação do dispositivo de codificação 500 para um estado diferente. Alternativamente, o módulo de codificação 570 é implantado como instruções armazenadas na memória 560 e executado pelo processador 530.
[0148] A memória 560 compreende um ou mais discos, unidades de fita, e unidades de estado sólido e pode ser usada como um dos dispositivos de armazenamento de dados de estouro de capacidade, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante execução de programa. A memória 560 pode ser volátil e/ou não volátil e pode ser memória somente leitura (ROM), memória de acesso aleatório (RAM), memória de conteúdo endereçável ternária (TCAM), e/ou memória de acesso aleatório estática (SRAM).
[0149] A Figura 4 é um diagrama de blocos simplificado de um aparelho 1000 que pode ser usado como dispositivo de origem 12 ou dispositivo de destino 14 da Figura 1A ou como ambos de acordo com uma modalidade exemplificativa. O aparelho 1000 pode implantar técnicas do presente pedido. O aparelho 1000 pode ser na forma de um sistema de computação incluindo múltiplos dispositivos de computação, ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um computador tipo tablet, um computador tipo laptop, um computador tipo notebook, um computador de mesa, e semelhantes.
[0150] Um processador 1002 no aparelho 1000 pode ser uma unidade de processamento central. Alternativamente, o processador 1002 pode ser qualquer outro tipo de dispositivo, ou múltiplos dispositivos, com capacidade de manipular ou processar informações existentes no momento ou a serem desenvolvidas posteriormente. Embora as implantações reveladas possam ser praticadas com um único processador, conforme mostrado, por exemplo, o processador 1002, vantagens em velocidade e eficiência podem ser alcançadas usando mais que um processador.
[0151] Uma memória 1004 no aparelho 1000 pode ser um dispositivo de memória somente leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implantação. Qualquer outro tipo de dispositivo de armazenamento adequado pode ser usado como a memória 1004. A memória 1004 pode incluir códigos e dados 1006 que são acessados pelo processador 1002 usando um barramento 1012. A memória 1004 pode adicionalmente incluir um sistema operacional 1008 e programas para aplicativo 1010, os programas para aplicativo 1010 incluindo pelo menos um programa que permite ao processador 1002 realizar os métodos descritos aqui. Por exemplo, os programas para aplicativo 1010 podem incluir pedidos 1 a N, os quais adicionalmente incluem um aplicativo de codificação de vídeo que realiza os métodos descritos aqui. O aparelho 1000 pode também incluir memória adicional na forma de um armazenamento secundário 1014, o qual pode, por exemplo, ser um cartão de memória usado com um dispositivo de computação móvel. Como as sessões de comunicação por vídeo podem conter um montante de informações significativas, elas podem ser armazenadas no todo ou em parte no armazenamento secundário 1014 e carregadas na memória 1004 conforme necessário para processamento.
[0152] O aparelho 1000 pode também incluir um ou mais dispositivos de saída, tais como o visor 1018. O visor 1018 pode ser, em um exemplo, um visor sensível ao toque que combine um visor com um elemento sensível ao toque que é operável para captar entradas por toque. O visor 1018 pode ser acoplado ao processador 1002 pelo barramento 1012. Outros dispositivos de saída que permitem a um usuário programar ou usar de outra maneira o aparelho 1000 podem ser fornecidos além do ou como uma alternativa ao visor 1018. Quando o dispositivo de saída é ou inclui um visor, o visor pode ser implantado de várias maneiras, incluindo por um visor de cristal líquido (LCD), um visor de tubo de raio catódico (CRT), um visor de plasma ou visor de diodo emissor de luz (LED), tal como um visor de LED orgânico (OLED).
[0153] O aparelho 1000 pode também incluir ou estar em comunicação com um dispositivo de detecção de imagem 1020, por exemplo, uma câmera, ou qualquer outro dispositivo de detecção de imagem 1020 existente agora ou a ser desenvolvido que possa captar uma imagem tal como a imagem de um usuário que opera o aparelho 1000. O dispositivo de detecção de imagem 1020 pode ser posicionado de modo que seja direcionado para o usuário que opera o aparelho
1000. Em um exemplo, a posição e o eixo geométrico óptico do dispositivo de detecção de imagem 1020 podem ser configurados de modo que o campo de visão inclua uma área que é diretamente adjacente ao visor 1018 e a partir da qual o visor 1018 é visível.
[0154] O aparelho 1000 pode também incluir ou estar em comunicação com um dispositivo de detecção de imagem 1022, por exemplo, um microfone, ou qualquer outro dispositivo de detecção de som existente agora ou a ser desenvolvido que possa captar sons perto do aparelho 1000. O dispositivo de detecção de som 1022 pode ser posicionado de modo que seja direcionado para o usuário que opera o aparelho 1000 e pode ser configurado para receber sons, por exemplo, fala ou outras emissões vocais, feitas pelo usuário enquanto o usuário opera o aparelho 1000.
[0155] Embora a Figura 4 retrate o processador 1002 e a memória 1004 do aparelho 1000 como sendo integrados em uma única unidade, outras configurações podem ser utilizadas. As operações do processador 1002 podem ser distribuídas através de múltiplas máquinas (cada máquina tendo um ou mais dos processadores) que podem ser acopladas diretamente ou através de uma rede de área local ou outra rede. A memória 1004 pode ser distribuída através de múltiplas máquinas tais como uma memória com base em rede ou memória em múltiplas máquinas realizar as operações do aparelho 1000. Embora retratado aqui as um único barramento, o barramento 1012 do aparelho 1000 pode ser composto de múltiplos barramentos. Além disso, o armazenamento secundário 1014 pode ser diretamente acoplado aos outros componentes do aparelho 1000 ou pode ser acessado por uma rede e pode compreender uma única unidade integrada tal como um cartão de memória ou múltiplas unidades tais como múltiplos cartões de memória. O aparelho 1000 pode desse modo ser implantado em uma ampla variedade de configurações.
[0156] Em compressão de vídeo, predição inter é um processo de usar amostras reconstruídas de imagens de referência anteriormente decodificadas especificando-se vetores de movimento relativos a um bloco atual. Esses vetores de movimento podem ser codificados como uma predição residual usando-se preditores de vetor de movimento espacial ou temporal. Os vetores de movimento podem estar a uma precisão de subpixel. A fim de derivar os valores de pixel com precisão de subpixel nos quadros de referência a partir dos valores de posição de número inteiro reconstruídos, um filtro de interpolação é aplicado. Bipredição se refere a um processo onde a predição para o bloco atual é derivada como uma combinação ponderada de dois blocos de predição derivados usando dois vetores de movimento a partir de duas áreas de imagem de referência. Nesse caso, além dos vetores de movimento, os índices de referência para as imagens de referência a partir das quais os dois blocos de predição são derivados também precisam ser codificadas. Os vetores de movimento para o bloco atual podem também ser derivados através de um processo de mesclagem onde os vetores de movimento e índices de referência de um vizinho espacial são herdados sem codificar quaisquer residuais de vetor de movimento. Além de vizinhos espaciais, vetores de movimento de quadros de referência codificados anteriormente são também armazenados e usados como opções de mesclagem temporal com escalonamento apropriado dos vetores de movimento para levar em conta a distância até os quadros de referência com relação à distância até os quadros de referência para o bloco atual.
[0157] Diversos métodos têm sido propostos para realizar um refinamento de vetor de movimento de lado de decodificador ou derivação de modo que os bits de codificação residuais de vetor de movimento possam ser reduzidos adicionalmente.
[0158] Em uma classe de métodos, chamados métodos de correspondência bilateral (BM), as informações de movimento da CU atual são derivadas encontrando-se o correspondência mais próximo entre dois blocos ao longo da trajetória de movimento da CU atual em duas imagens de referência diferentes. Isso é mostrado na Figura 6A. Assumindo-se trajetória de movimento contínuo, os vetores de movimento MV0 e MV1 que apontam para os dois blocos de referência serão proporcionais às distâncias temporais, isto é, TD0 e TD1, entre a imagem atual e as duas imagens de referência.
[0159] No modo de mesclagem de correspondência bilateral, bipredição é sempre aplicada uma vez que as informações de movimento de uma CU são derivadas com base no correspondência mais próximo entre dois blocos ao longo da trajetória de movimento da CU atual em duas imagens de referência diferentes.
[0160] Modo de mesclagem explícito para indicar mesclagem de correspondência de gabarito ou mesclagem de correspondência bilateral pode ser sinalizado para diferenciar esses modos a partir de um modo de mesclagem padrão que não exige qualquer derivação de vetor de movimento de lado de decodificador.
[0161] Em alguns exemplos, as distâncias temporais são ignoradas e correspondência bilateral é realizado usando vetores de movimento que têm a magnitude igual e sinais opostos nos quadros de referência passados e futuros.
[0162] Em alguns exemplos, nenhum índice de mesclagem é sinalizado enquanto em outros exemplos, para simplificar a complexidade para o decodificador de realizar múltiplas compensações de movimento, um índice de mesclagem explícito é sinalizado.
[0163] A Figura 6B é uma ilustração gráfica de um exemplo de um método DMVR 400. Em um exemplo, o método DMVR 400 começa com um bloco atual 402 em uma imagem atual 404. Em um exemplo, o bloco atual 402 pode ser ou não em formato quadrado. A imagem atual 404 pode também ser referida como uma região, imagem, telha, atual e assim por diante. Conforme mostrado na Figura 6B, MV0 aponta para um primeiro bloco de referência (também se referir a um primeiro bloco de referência inicial) 406 em uma primeira imagem de referência 408 e MV1 aponta para um segundo bloco de referência (também se referir a um segundo bloco de referência inicial) 410 em uma segunda imagem de referência
412. Em um exemplo, o primeiro bloco de referência 406 está à frente do bloco atual 402 em tempo, sequência, decodificação ordem, ou algum outro parâmetro. Em um exemplo, o segundo bloco de referência 410 está à frente do bloco atual 402 em tempo, sequência, decodificação ordem, ou algum outro parâmetro. O primeiro bloco de referência 406 e o segundo bloco de referência 410 podem ser referidos no presente documento como blocos de referência iniciais.
[0164] O primeiro bloco de referência 406 e o segundo bloco de referência 410 são combinados para formar o bloco de gabarito bilateral 414. Em um exemplo, o primeiro bloco de referência 406 e o segundo bloco de referência 410 são divididos proporcionalmente juntos para gerar o bloco de gabarito bilateral
414. Em um exemplo, o bloco de gabarito bilateral 414 é gerado como a combinação ponderada do primeiro bloco de referência 406 com o segundo bloco de referência 410.
[0165] Uma vez que o bloco de gabarito bilateral 414 tenha sido gerado, uma operação de correspondência de gabarito é realizada. A operação de correspondência de gabarito envolve calcular um primeiro custo entre o bloco de gabarito bilateral 414 e cada candidato bloco de referência na região de amostra ao redor do primeiro bloco de referência 406 e um segundo custo entre o bloco de gabarito bilateral 414 e cada candidato bloco de referência na região de amostra ao redor do segundo bloco de referência 410. Em um exemplo, o bloco de referência potencial que ocasiona o custo mais baixo correspondente (por exemplo, custo de gabarito mínimo) determina qual bloco de referência em cada região de amostra irá servir como um bloco de referência refinado (também conhecido como um bloco de referência revisado). Em um exemplo, o primeiro e segundo custos são determinados usando uma SAD. Outras medidas quanto a custo podem ser utilizadas em aplicações práticas.
[0166] No exemplo da Figura 6B, o primeiro bloco de referência refinado 416 na primeira imagem de referência 408, o qual é apontado pelo MV0’,
resultou no primeiro custo mais baixo, e o segundo bloco de referência refinado 418 na segunda imagem de referência 412, o qual é apontado pelo MV1’, ofereceu o segundo custo mais baixo. Em um exemplo, o primeiro bloco de referência refinado 416 e o segundo bloco de referência refinado 418 substituem o primeiro bloco de referência 406 e o segundo bloco de referência 410, respectivamente.
[0167] Posteriormente, um bloco de predição 420 é gerado usando o primeiro bloco de referência refinado 416 e o segundo bloco de referência refinado
418. O bloco de predição 420 pode ser referido como um bloco preditor ou os resultados finais da bipredição. Uma vez gerado, o bloco de predição 420 pode ser usado para gerar uma imagem para exibição no visor de um dispositivo eletrônico (por exemplo, telefone inteligente, dispositivo tipo tablet, computador tipo laptop, etc.)
[0168] O método DMVR 400 pode ser aplicado ao modo de mesclagem de bipredição com um MV a partir de uma imagem de referência no passado e um outro a partir de uma imagem de referência no futuro sem ter de transmitir elementos de sintaxe adicionais. O método DMVR 400 não é aplicado quando compensação de iluminação local (LIC), movimento de afinação, conversão para cima de taxa de quadro (FRCU), ou o candidato de mesclagem de CU é habilitado para a CU no software de referência de Modelo de Exploração Conjunta (JEM).
[0169] No software de referência de JEM, nove candidatos a MV (os quais irão apontar para nove blocos de referência candidatos) são buscados para cada bloco de referência em uma imagem de referência (por exemplo, para cada lista, por exemplo, lista 0 ou lista 1). Os nove candidatos a MV incluem um MV original (a saber, um MV inicial, por exemplo, MV0 inicial ou MV1 inicial) que apontam para o bloco de referência (a saber, um bloco de referência inicial, por exemplo, bloco de referência 406 ou bloco de referência 410) e os oito MVs que apontam para blocos de referência ao redor do bloco de referência com um deslocamento de amostra de luma com relação ao MV original ou em uma direção horizontal, uma vertical direção, ou ambas. No entanto, usar candidatos a MV tendo um deslocamento de amostra de um luma com relação ao MV original pode não fornecer o melhor candidato de MV.
[0170] Em um exemplo de método, correspondência bilateral de gabarito com base em método de refinamento de vetor de movimento de lado de decodificador (DMVR) é fornecido, um gabarito dividido bilateralmente de modo proporcional é primeiro criado usando os blocos de referência na referência L0 e L1 obtida a partir de índice candidato de mesclagem explicitamente sinalizado e correspondência bilateral é realizado em contraste com esse gabarito. Isso é ilustrado na Figura 6B e 6C. O gabarito é atualizado se existe qualquer movimento entre um bloco de referência inicial (406, 410) referido pelo vetor de movimento inicial e um bloco de referência (416, 418) referido como o mais recente melhor vetor de movimento. Além disso, em alguns exemplos, o refinamento é realizado em uma referência e o vetor de movimento na outra referência é obtido através de espelhamento desse vetor de movimento refinado. O refinamento alterna entre as duas referências até que ou uma posição de centro tenha o menor erro de correspondência ou o número máximo de iterações seja atingido.
[0171] A Figura 6C é um fluxograma ilustrando um exemplo de um método de codificação 600. Em um exemplo, o método de codificação 600 é implantado em um decodificador tal como o decodificador de vídeo 30 na Figura
1. O método de codificação 600 pode ser implantado quando, por exemplo, um fluxo de bits recebido a partir de um codificador, tal como o codificador de vídeo 20 da Figura 1, deve ser decodificado a fim de gerar uma imagem para ser exibida no visor de um dispositivo eletrônico. O método de codificação 600 pode também ser implantado em um codificador tal como o codificador de vídeo 20 na Figura 1. O método de codificação 600 será descrito com referência aos elementos identificados na Figura 6B.
[0172] No bloco 602, um primeiro bloco de referência (por exemplo, bloco de referência 406) em uma primeira imagem de referência (por exemplo, imagem de referência 408) é determinado com base em um primeiro vetor de movimento (por exemplo, MV0) correspondente a um bloco atual (por exemplo, bloco atual 402) em uma imagem atual (por exemplo, imagem atual 404).
[0173] No bloco 604, um segundo bloco de referência (por exemplo, bloco de referência 410) em uma segunda imagem de referência (por exemplo, imagem de referência 412) é determinado com base em um segundo vetor de movimento (por exemplo, MV1) correspondente ao bloco atual (por exemplo, bloco atual 402) na imagem atual (por exemplo, imagem atual 604).
[0174] No bloco 606, um bloco de referência bilateral (por exemplo, bloco de referência bilateral 414) é gerado com base no primeiro bloco de referência e no segundo bloco de referência. Em um exemplo, o bloco de referência bilateral é obtido usando uma média ponderada entre o primeiro bloco de referência e o segundo bloco de referência.
[0175] No bloco 608, é realizada uma comparação de custo entre o bloco de referência bilateral e cada um de uma pluralidade de primeiros candidatos a bloco de referência na primeira imagem de referência. Os primeiros candidatos a bloco de referência podem ser, por exemplo, os vários blocos de referência que circundam o primeiro bloco de referência 406 na primeira imagem de referência
408. A comparação de custo é usada para determinar um primeiro vetor de movimento refinado (por exemplo, MV0’). Em um exemplo, os primeiros candidatos a bloco de referência são determinados com base em um tamanho de etapa que foi selecionado a partir de uma pluralidade de tamanhos de etapa disponíveis (por exemplo, 1/8, 1/4, 1/2, 1, e assim por diante).
[0176] No bloco 610, uma comparação de custo entre o bloco de referência bilateral e cada um de uma pluralidade de segundos candidatos a bloco de referência na segunda imagem de referência é realizada. Os segundos candidatos a bloco de referência podem ser, por exemplo, os vários blocos de referência que circundam o segundo bloco de referência 410 na segunda imagem de referência 412. A comparação de custo é usada para determinar um segundo vetor de movimento refinado (por exemplo, MV1’). Em um exemplo, os segundos candidatos a bloco de referência são determinados com base em um tamanho de etapa que foi selecionado a partir da pluralidade de tamanhos de etapa disponíveis (por exemplo, 1/8, 1/4, 1/2, 1, e assim por diante).
[0177] No bloco 612, um primeiro bloco de referência refinado (por exemplo, bloco de referência refinado 416) na primeira imagem de referência é selecionado com base no primeiro vetor de movimento refinado e um segundo bloco de referência refinado (por exemplo, bloco de referência refinado 418) na segunda imagem de referência é selecionado com base no segundo vetor de movimento refinado.
[0178] No bloco 614, um bloco de predição (por exemplo, bloco de predição 420) é determinado com base no primeiro bloco de referência refinado e no segundo bloco de referência refinado.
[0179] No bloco 616, uma imagem gerada usando o bloco de predição é exibida no visor de um dispositivo eletrônico.
[0180] Em alguns exemplos dos métodos de refinamento, um refinamento a nível de CU é realizado primeiramente. Então uma avaliação de múltiplos candidatos a nível de sub-CU (a saber, sub-bloco) é realizada usando os MVs refinados a nível de CU como múltiplos candidatos. Opcionalmente, cada sub-CU pode realizar seu próprio refinamento com relação ao melhor candidato de correspondência. Em um outro exemplo, um refinamento a nível de CU não é realizado e cada sub-CU pode realizar seu próprio refinamento.
[0181] Algumas funções de custo usam uma distância de refinamento de vetor de movimento como um termo preferido.
[0182] Dada o processo implícito de derivação ou refinamento de lado de decodificador, o codificador precisa realizar essas etapas exatamente da mesma maneira que o decodificador a fim de que a reconstrução de lado de codificador pareie com a reconstrução de lado de decodificador.
[0183] Tipicamente, somente amostras de luma são usadas durante o processo de refinamento ou derivação de vetor de movimento de lado de decodificador. No entanto, em alguns casos, a crominância também é compensada por movimento usando os vetores de movimento de refinamento finais (adequadamente escalonados para responder por qualquer subamostragem de croma) conforme usados para compensação de movimento de luma.
[0184] Uma outra técnica para refinamento de vetor de movimento no lado de decodificador é chamada técnica de fluxo óptico bidirecional (BIO). Nesse método, interpolação compensada por movimento é realizada para uma dada unidade de codificação usando um método de compensação de movimento normativo que usa as amostras a partir dos dois quadros de referência indicados pelos índices de referência e vetores de movimento associados com a unidade de codificação. Além disso, gradientes horizontais e verticais nas posições de precisão de subpixel são avaliados a partir das amostras de referência usadas para compensação de movimento ou usando as próprias amostras compensadas por movimento. Uma unidade de codificação é partida em sub-blocos dimensionados uniformemente onde os tamanhos de sub-bloco podem ser 1x1 pixel, 2x2 pixels, 4x4 pixels, etc. Uma equação com base em fluxo óptico que relaciona vários valores associou os quadros de referência para gerar uma estimação dos valores de amostra 𝑝𝑟𝑒𝑑𝐵𝐼𝑂 do sub-bloco no quadro atual é fornecida abaixo na Eq. (1). Na Eq. (1), (𝑣𝑥, 𝑣𝑦) representa o fluxo do sub-bloco a partir do quadro de referência L0 para o quadro atual e então para o quadro de referência L1. Gx0 e Gy0 representam os gradientes nas direções horizontal e vertical em L0, respectivamente. Gx1 e Gy1 representam os gradientes nas direções horizontal e vertical em L1, respectivamente. I0 e I1 representam os valores de intensidade dos dois patches de referência em L0 e L1, respectivamente. 𝜏1 𝑒 𝜏0 denotam as distâncias do quadro atual para os quadros de referência L0 e L1, respectivamente. 0=POC(current) − POC(Ref0), 1= POC(Ref1) − POC(current). 𝑝𝑟𝑒𝑑𝐵𝐼𝑂 = 1/2(𝐼0 + 𝐼1 + 𝑣𝑥/2(𝜏1𝐺𝑥1 − 𝜏0𝐺𝑥0) + 𝑣𝑦/2 ∗ (𝜏1𝐺𝑦1 − 𝜏0𝐺𝑦0)) (1
[0185] Usando as equações de fluxo individuais em cada intervalo de tempo, a diferença entre o preditor (isto é, os valores de amostra preditos do sub- bloco) usando amostras L0 e o preditor usando amostras L1 pode ser escrita como: ∆ = (𝐼0 − 𝐼1) + 𝑣𝑥(𝜏1𝐺𝑥1 + 𝜏0𝐺𝑥0) + 𝑣𝑦(𝜏1𝐺𝑦1 + 𝜏0𝐺𝑦0)
[0186] Minimizando-se a diferença ∆, estimações de vx e vy podem ser obtidas. Por exemplo, tomando-se diferenciais parciais do quadrado da diferença ∆ com relação a vx e vy e estabelecendo os diferenciais em zero, equações com vx e vy como incógnitas para as amostras dentro do sub-bloco e para amostras que se juntam ao sub-bloco são obtidas. Este conjunto de equações excessivamente restritas pode ser resolvido por meio de mínimos quadrados para obter estimações vx e vy. Usando a equação Eq. (1) mencionada acima, as estimações calculadas de vx, vy e os gradientes Gx0 e Gy0, um termo de correção é adicionado à compensação de movimento de bipredição usual. Em alguns métodos, 0 e 1 são considerados iguais nessas equações.
[0187] Como descrito acima, os métodos de derivação/refinamento de vetor de movimento de lado de decodificador com base em correspondência bilateral computam vetores de movimento delta (isto é, muda para os vetores de movimento iniciais MV0 e MV1) ao redor dos vetores de movimento de modo de mesclagem (isto é, o candidato de mesclagem que inclui vetores de movimento iniciais MV0 e MV1) nas duas referências (usadas para bipredição). Os vetores de movimento delta computados dependem das distâncias temporais TD0 e TD1 da imagem atual para as duas referências. No entanto, como um movimento de distância em número inteiro em uma referência pode ser um movimento de distância em número não inteiro na outra referência devido à razão entre TD1 e TD0, avaliar o refinamento exige avaliação de precisão de posições de subpixel de uma fase diferente quando comparada à fase dos vetores de movimento de modo de mesclagem que constituem as posições de partida para o refinamento (por exemplo, quando TD1 e TD0 não são iguais, se a imagem L0 está a uma distância de 2 e L1 está a uma distância de 1, o movimento de refinamento de 1 pixel em L0 leva a movimento de pixel de 0,5 em L1). Desse modo isso leva à alta complexidade computacional do procedimento de refinamento. A fim de simplificar o procedimento de refinamento, o procedimento de refinamento pode ignorar TD0 e TD1 e usa vetores de movimento delta que são iguais em magnitude e opostos em direções nas duas referências de modo que movimento de distância em número inteiro em uma referência permaneça como um movimento de distância em número inteiro na outra referência. Múltiplas iterações de refinamento são aplicadas até que ou uma contagem de iteração máxima predefinida seja atingida ou a posição de centro de uma dada iteração revele ser a posição com o mais baixo custo. Esse método também funciona bem em casos onde imagens de uma hierarquia B em uma configuração diádica são empregadas como usadas nas condições de teste comuns adotadas em Codificação de Vídeo Versátil. Em tal configuração diádica, o número de imagens na próxima camada temporal é duas vezes o número de imagens na camada temporal de atual. Sendo assim, as imagens B têm uma referência do passado e uma referência do futuro que são equidistantes da imagem atual.
[0188] No entanto, devido a oclusões em uma das referências, o candidato vetor de movimento de mesclagem pode ser aplicável para uni-predição ou os vetores de movimento de mesclagem candidatos podem se referir a dois quadros de referência que têm distância desigual da imagem atual. Além disso, em codificadores comerciais, imagens de uma hierarquia B diádica estritas podem não ser usadas pois elas tendem a adaptar os tipos de imagem com base em correlação temporal. Por exemplo, alguns codificadores usam duas imagens que não são de referência entre cada duas imagens de referência. Outros codificadores determinados têm distâncias variáveis entre imagens que pertencem à mesma camada temporal devido às características de movimento subjacentes. Em tais casos, o uso de refinamento com base em vetores de movimento delta iguais e opostos falha em produzir qualquer ganho de codificação significativo e pode também impactar o ganho de codificação sempre que uma flag explícito não é usado para indicar a necessidade de refinamento. No entanto, sinalizar uma flag para cada CU para indicar o uso de refinamento desvia alguns dos ganhos de codificação oferecidos pelo refinamento.
[0189] Sendo assim, existe uma necessidade de fornecer seletivamente ou adaptavelmente a capacidade de restringir ou habilitar o refinamento de lado de decodificador para unidades de codificação com referências equidistantes, por exemplo, sempre que refinamento com base em correspondência bilateral com vetores de movimento delta iguais e opostos é usado.
[0190] Além disso, sempre que o método BIO assume igual 0 e 1, existe uma necessidade de fornecer a capacidade para restringir ou habilitar o método BIO para ser aplicado somente quando as distâncias temporais são realmente iguais.
[0191] A presente revelação trata dos problemas acima fornecendo um método para seletivamente restringir ou habilitar uma unidade de codificação de modo de mesclagem de bipredição codificada em pelo menos uma unidade de acesso em um grupo de quadros a empregar refinamento de vetor de movimento de lado de decodificador com base nas distâncias temporais da unidade de codificação para suas duas referências. Tal restrição pode ser realizada através do estabelecimento de uma flag a nível de conjunto de parâmetros de sequência no lado de codificação para permitir refinamento de MV de lado de decodificador somente quando as distâncias temporais da unidade de codificação até suas duas referências são substancialmente iguais. Esse método é empregado em ambos os lados de codificação e decodificação quando o refinamento de MV de lado de decodificador é habilitado.
[0192] Exemplos detalhados do método apresentado
[0193] A modalidade da presente revelação fornece um método para restringir derivação/refinamento de vetor de movimento de lado de decodificador somente para Unidades de Codificação com referências de distância igual. A modalidade pode ser usada em casos quando o refinamento de MV de lado de decodificador é usado. Por exemplo, o método pode ser usado quando o refinamento de MV de lado de decodificador com base em correspondência bilateral é empregado com vetores de movimento delta que são iguais em magnitude e opostos em sinal nas duas referências usadas para bipredição (independente de se gabarito bilateral é usado ou não). Como explicado antes, tais métodos ignoram as distâncias temporais até os quadros de referência a partir da imagem atual de modo que refinamentos com distância de número inteiro começando a partir dos centros de vetor de movimento de mesclagem com precisão de subpixel possam ser realizados usando interpolação de amostras em uma única fase de subpixel em cada uma das referências. Vetor de movimento de mesclagem obtido a partir de uma lista de candidato de mesclagem pode ser em qualquer localização de subpixel. Por exemplo, a precisão de subpixel pode ser de 1/16. O método pode também ser usado quando o refinamento fluxo óptico bidirecional (BDOF) com base de vetor de movimento de lado de decodificador não conta com as distâncias temporais ou assume que elas sejam iguais.
[0194] Nessa modalidade, o refinamento de MV de lado de decodificador é empregado para uma dada unidade de codificação ou bloco de codificação somente quando a distância temporal do bloco de codificação até as imagens de referência usadas para bipredição são substancialmente iguais em magnitude e opostas em sinal ou direção. A Figura 7 é um fluxograma ilustrando uma modalidade de um método de codificação 700. Em uma modalidade, o método de codificação 700 é implantado em um codificador tal como o codificador de vídeo 20 na Figura 1. No bloco 701, uma vez que a lista de candidatos a mesclagem que inclui um ou mais candidatos a mesclagem é construída de acordo com o processo normativo no lado de codificação ou decodificação, os vetores de movimento de mesclagem e seus índices de referência se tornam disponíveis. No bloco 703, para cada candidato de mesclagem que indica bipredição, os dois quadros de referência, referidos no presente documento como referências L0 e L1, correspondentes aos dois índices de referência exigidos para bipredição são identificados e suas distâncias temporais para a imagem atual, a saber, TD0 e TD1 são obtidas. No bloco 705, é determinado se a distância temporal para as imagens de referência usadas para bipredição são substancialmente iguais em magnitude e opostas em sinal. No bloco 707, no caso em que as distâncias temporais são substancialmente iguais em magnitude e opostas em sinal, o codificador ou decodificador realiza o processo de refinamento de MV de lado de decodificador normativo para o candidato de mesclagem. Os vetores de movimento refinados são usados para realizar bipredição compensada por movimento usando os quadros de referência L0 e L1. Se é determinado no bloco 705 que a distância temporal para as imagens de referência usadas para bipredição são substancialmente iguais em magnitude e opostas em sinal, no bloco 709, o refinamento de MV de lado de decodificador é pulado, e os vetores de movimento de mesclagem são usados para bipredição. No bloco 711, se o melhor modo de candidato de mesclagem tem um custo mais baixo que qualquer outro modo avaliado, então o codificador irá sinalizar uma flag de mesclagem como 1 para a unidade de codificação. Além disso, o codificador pode também sinalizar explicitamente o índice candidato de mesclagem para o candidato de mesclagem vencedor na lista de mesclagem. Em alguns casos, isso pode ser implicitamente derivado no lado de decodificação.
[0195] A Figura 8 é um fluxograma ilustrando uma modalidade de um método de decodificação 800. Em uma modalidade, o método de decodificação 800 é implantado em um decodificador tal como decodificador de vídeo 30 na Figura 1. No bloco 801, para uma unidade de codificação, uma flag de mesclagem é analisado a partir de um fluxo de bits recebido, se a flag de mesclagem é estabelecido em verdadeiro (tal como 1), o candidato de mesclagem é obtido ou por decodificação do índice de mesclagem explicitamente sinalizado ou por derivando-se implicitamente o mesmo no lado de decodificação. No bloco 803, o processo de construção de lista de mesclagem normativa é usado para chegar ao(s) vetor(es) de movimento e índice de referência (ou índices) associado(s) ao índice de mesclagem. No bloco 805, se o candidato de mesclagem indica bipredição, então os dois quadros de referência correspondentes aos dois índices de referência são identificados e suas distâncias temporais para as imagens atuals, a saber, TD0 e TD1, são obtidos. No bloco 807, é determinado se a distância temporal para as imagens de referência usadas para bipredição são substancialmente iguais em magnitude e opostas em sinal. No bloco 809, no caso em que as distâncias temporais são substancialmente iguais em magnitude e opostas em sinal, o decodificador realiza o processo de refinamento de MV de lado de decodificador normativo para o candidato de mesclagem. Em particular, se adoção de refinamento de vetor de movimento de lado de decodificador é habilitada no nível de sequência, então o refinamento de MV de lado de decodificador é realizado somente quando TD0 e TD1 são substancialmente iguais em magnitude e opostas em sinal. Os vetores de movimento refinados são usados para realizar bipredição compensada por movimento usando os quadros de referência L0 e L1. De outra maneira, no bloco 811, o refinamento de MV de lado de decodificador é pulado e os vetores de movimento para o índice de mesclagem são usados para realizar bipredição compensada por movimento. No bloco 813, o bloco de codificação é reconstruído com base nos dados compensados de movimento, por exemplo, uma soma dos dados residuais analisados e dos dados preditos.
[0196] Em uma outra modalidade, as mesmas verificações em TD0 e TD1 também podem ser usadas para método com base em fluxo óptico bidirecional (BIO) (onde TD0 corresponde a 0 e TD1 corresponde a -1 descritos acima) para habilitar método com base em BIO para uma dada unidade de codificação somente quando TD0 e TD1 são substancialmente iguais e têm sinais opostos.
[0197] A Figura 9 é um fluxograma de um método para predição inter (bipredição) de um bloco de imagem atual em uma imagem atual de um vídeo. O método se inicia na etapa 901.
[0198] Na etapa 903, é determinado se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) são a mesma distância, em que a primeira distância temporal (TD0) é entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) é entre a imagem atual e a segunda imagem de referência (RefPic1).
[0199] Na etapa 905, procedimento de refinamento de vetor de movimento (DMVR) é realizado para determinar um bloco de predição do bloco de imagem atual, quando é determinado que a imagem atual está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1) e a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são a mesma distância. O procedimento de refinamento de vetor de movimento (DMVR) pode ser realizado conforme descrito acima com relação aos blocos 602 a 610 da Figura 6C ou blocos 632 a 640 da Figura 6D. Outras maneiras de realizar o refinamento de vetor de movimento podem também ser utilizadas.
[0200] Na etapa 907, compensação de movimento é realizada para obter um bloco de predição do bloco de imagem atual usando um primeiro vetor de movimento inicial (MV0) e um segundo vetor de movimento inicial (MV1), quando é determinado que a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são distâncias diferentes ou a imagem atual não está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1).
[0201] A Figura 10 é um diagrama de blocos mostrando um exemplo de estrutura de um aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo. O aparelho pode incluir: uma unidade de determinação 101 configurada para determinar se a imagem atual está temporalmente entre uma primeira imagem de referência (tal como RefPic0) e uma segunda imagem de referência (tal como RefPic1) e uma primeira distância temporal (tal como TD0) e uma segunda distância temporal (tal como TD1) são a mesma distância, em que a primeira distância temporal (TD0) é entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) é entre a imagem atual e a segunda imagem de referência (RefPic1); e uma unidade de processamento de predição inter 103 configurada para realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando é determinado que a imagem atual está temporalmente entre a primeira imagem de referência (tal como RefPic0) e a segunda imagem de referência (tal como RefPic1) e a primeira distância temporal (TD0) e a segunda distância temporal (TD1) são a mesma distância.
[0202] Em algumas modalidades, em vez de sempre aplicar as verificações com base em distância temporal acima mencionadas a fim de condicionalmente realizar refinamento de vetor de movimento de lado de decodificador a nível de unidade de codificação ou bloco de codificação, as verificações podem ser condicionalmente realizadas somente quando uma flag específica é sinalizada no nível de conjunto de parâmetros de sequência e/ou nível de imagem.
[0203] Em uma modalidade, uma flag, tal como sps_conditional_dmvr_flag, é sinalizado ao nível de conjunto de parâmetros de sequência sempre que refinamento de vetor de movimento de lado de decodificador é habilitado ao nível de conjunto de parâmetros de sequência. Quando essa flag é estabelecida em zero, o refinamento de MV de lado de decodificador pode ser realizado independente das distâncias temporais para os quadros de referência a partir da imagem atual em todas as unidades de acesso. Quando essa flag é estabelecido em um, uma flag adicional, tal como pps_conditional_dmvr_flag, é sinalizado no conjunto de parâmetros de nível de imagem. Quando o pps_conditional_dmvr_flag é estabelecido em zero, refinamento de MV de lado de decodificador pode ser realizado independente das distâncias temporais para os quadros de referência a partir da imagem atual. Quando o pps_conditional_dmvr_flag é estabelecido em um, refinamento de MV de lado de decodificador pode ser realizado somente quando as distâncias temporais para os quadros de referência a partir da imagem atual para uma dada CU são substancialmente iguais em magnitude e opostos em sinal.
[0204] Um codificador pode estabelecer sps_conditional_dmvr_flag em zero quando uma estrutura de grupo de imagens (GOP) de imagem de hierarquia B diádicas regulares é usada, o número máximo de quadros de referência em uma imagem B é estabelecido em dois, e a seleção de imagem de referência sempre seleciona quadros de referência tendo igual distância temporal para a imagem atual e caindo em lados opostos da imagem atual. Um exemplo de uma estrutura de GOP diádica em ordem de exibição é I00 B14 B23 B34 B42 B54 B63 B74 B81 B94 B103 B114 B122 B134 B143 B154 P160, onde o subscrito indica a camada temporal e os números próximos do tipo de imagem indicam a contagem de quadro de ordem de exibição.
[0205] Um codificador pode estabelecer sps_conditional_dmvr_flag em um quando (a) estrutura de GOP de imagem de hierarquia B diádica regular é usada, mas o máximo número de quadros de referência para a imagem B é estabelecido ser maior que dois, ou (b) se é provável que a imagem de referência seleção selecione imagens de referência que não têm distância temporal substancialmente igual para a imagem atual ou que não caem em lados opostos da imagem atual em ordem de exibição, ou (c) quando uma estrutura de GOP de camada de imagens de uma hierarquia B não diádicas ou imagem B única não diádica é usada. Um exemplo de uma estrutura de GOP não diádica é I00 B11 B21 P30 B41 B51 P60 a qual tem somente uma camada de imagens B. Um exemplo de imagens de hierarquia B adaptáveis é I00 B12 B22 B31 B42 P50 onde o espaçamento entre duas imagens no mesmo nível de camada temporal é decidido adaptavelmente com base em propriedades de conteúdo.
[0206] Alternativamente, sps_conditional_dmvr_flag pode ser configurado manualmente como um parâmetro de codificador por um usuário com base nas condições acima indicadas.
[0207] Quando sps_conditional_dmvr_flag é estabelecido em 1, um codificador pode estabelecer pps_conditional_dmvr_flag em zero em quadros que têm seu número de quadros de referência máximo estabelecido em 2, e cujos quadros de referência são substancialmente iguais em distância temporal a partir da imagem atual e caem em lados opostos da imagem atual em ordem de exibição.
[0208] Quando sps_conditional_dmvr_flag é estabelecido em 1, um codificador pode estabelecer pps_conditional_dmvr_flag em um em quadros que têm seu número de quadros de referência máximo estabelecidos em um valor maior que 2 ou em casos onde os dois quadros de referência usados para bipredição para uma CU não precisam estar a uma distância temporal substancialmente igual a partir da imagem atual ou ambas as imagens de referência não caem em lados opostos da imagem atual em ordem de exibição. Em um exemplo em que a sequência de ordem de codificação/decodificação é I00 P10, P60, B41, B22, B32, B52, e a ordem de exibição é I00 P10 B22 B32 B41 B52 P60, a imagem B22 pode ter I00 P10, P60, B41, como suas imagens de referência. Entre essas imagens de referência, as imagens de referência I0 e B4 são de distância igual e direção oposta. Sendo assim, quando I0 e B4 são usados como referências para B2, as distâncias temporais são iguais e opostas enquanto esse não é o caso quando P1 e B4 são usados como referências. Quando pps_conditional_dmvr_flag é estabelecido em um, uma unidade de codificação em B2 com I0 e B4 como referências irá usar refinamento de MV de lado de decodificador, enquanto uma unidade de codificação em B2 com P1 e B4 como referências não usam refinamento de MV de lado de decodificador (dependendo do limiar de razão predeterminado, por exemplo, uma razão de uma distância entre uma imagem atual e uma primeira referência (refL0) para uma distância entre uma segunda referência (refL1) e a imagem atual).
[0209] Uma vez que o movimento de um objeto não é necessariamente linear de L0 até a imagem atual e a partir de imagem atual até
L1, é possível que pressuposto de movimento igual e oposto pode algumas vezes funcionar mesmo quando as imagens de referência não estão a distâncias temporais substancialmente iguais. Em determinadas modalidades, o codificador pode realizar a codificação para um quadro com pps_conditional_dmvr_flag estabelecida em zero e uma outra codificação para o mesmo quadro com pps_conditional_dmvr_flag estabelecido em um e selecionar a configuração que fornece um custo otimizado de distorção de taxa mais baixo. O custo otimizado de distorção de taxa é computado como uma soma de uma medida de distorção do quadro reconstruído com relação ao quadro fonte e aos bits consumidos multiplicados por um multiplicador lagrangiano adequado que depende do parâmetro de quantização médio usado para o quadro.
[0210] Em outras modalidades, o custo otimizado de distorção de taxa pode ser acumulado tanto para o caso com refinamento de MV de lado de decodificador quanto o caso sem refinamento de MV de lado de decodificador para as unidades de codificação com distâncias temporais não substancialmente iguais e a flag pode ser estabelecida em uma para uma imagem subsequente se sem refinamento ocasiona um custo acumulado mais baixo que com refinamento.
[0211] Quando distâncias temporais substancialmente iguais para quadros de referência não é possível para qualquer unidade de codificação com base na estrutura de GOP determinada no codificador, é também possível para desabilitar o próprio refinamento de vetor de movimento de lado de decodificador ao nível de conjunto de parâmetros de sequência (SPS) ou ao nível de conjunto de parâmetros de imagem. A flag condicional ao nível de SPS, se presente, é sinalizado somente quando o refinamento de vetor de movimento de lado de decodificador é habilitado ao nível de SPS. A flag condicional ao nível de PPS, se presente, é sinalizado somente quando o refinamento de vetor de movimento de lado de decodificador é habilitado ao nível de PPS (explicitamente ou implicitamente). Qualquer método alternativo de sinalizar refinamento de MV de lado de decodificador ao nível SPS/PPS, a capacidade para refinamento de sinal não condicionado nas distâncias temporais para a referência, e refinamento condicionado nas distâncias temporais para a referência é antecipado por essa invenção. Por exemplo, em vez de duas flags, é possível codificar um elemento de sintaxe que toma um dos três possíveis valores (por exemplo, 0, 1, e 2) concatenando-se as duas flags juntas.
[0212] A Figura 6D é um fluxograma ilustrando um outro exemplo para realizar um procedimento ou processo de refinamento de vetor de movimento de lado de decodificador (DMVR). Em uma modalidade, o processo é implantado em um decodificador tal como o decodificador de vídeo 30 na Figura 1. O processo pode ser implantado quando, por exemplo, um fluxo de bits recebido a partir de um codificador, tal como o codificador de vídeo 20 da Figura 1, deve ser decodificado a fim de gerar uma imagem no visor de um dispositivo eletrônico. O processo é também implantado em um codificador tal como o codificador de vídeo 20 na Figura 1. O processo será descrito com referência aos elementos identificados na Figura 6B.
[0213] No bloco 632, uma posição de um primeiro bloco de referência inicial (por exemplo, bloco de referência 406) em uma primeira imagem de referência (por exemplo, imagem de referência 408) é determinado com base em um primeiro vetor de movimento (por exemplo, MV0) correspondente a um bloco atual (por exemplo, bloco atual 402) em uma imagem atual (por exemplo, imagem atual 404).
[0214] No bloco 634, uma posição de um segundo bloco de referência inicial (por exemplo, bloco de referência 410) em uma segunda imagem de referência (por exemplo, imagem de referência 412) é determinada com base em um segundo vetor de movimento (por exemplo, MV1) correspondente ao bloco atual (por exemplo, bloco atual 402) na imagem atual (por exemplo, imagem atual 404).
[0215] No bloco 636, posições de uma pluralidade de primeiros blocos de referência (por exemplo, N-1 primeiros blocos de referência) na primeira imagem de referência são determinadas.
[0216] No bloco 638, posições de uma pluralidade de segundos blocos de referência (por exemplo, N-1 segundos blocos de referência) na segunda imagem de referência são determinadas. No blocos 636 e 638, posições de cada par de blocos de referência incluem uma posição de um primeiro bloco de referência e uma posição de um segundo bloco de referência, e para cada par de blocos de referência, o primeiro deslocamento de posição (delta0x, delta0y) e o segundo deslocamento de posição (delta1x, delta1y) são espelhados (isto é, iguais em magnitude e opostos em sinal), e o primeiro deslocamento de posição (delta0x, delta0y) representa um deslocamento da posição do primeiro bloco de referência com relação à posição do primeiro bloco de referência inicial, e o segundo deslocamento de posição (delta1x, delta1y) representa um deslocamento da posição do segundo bloco de referência com relação à posição do segundo bloco de referência inicial. Em particular, para posições de cada par de primeiro e segundo blocos de referência, a direção do primeiro deslocamento é oposta à direção do segundo deslocamento, e a magnitude do primeiro deslocamento é a mesma magnitude do segundo deslocamento, e o primeiro deslocamento e o segundo deslocamento são respectivamente associados ao respectivo primeiro bloco de referência e ao respectivo segundo bloco de referência do par.
[0217] No bloco 640, uma comparação de custo entre cada par do primeiro e segundos blocos de referência entre uma pluralidade de primeiros blocos de referência na primeira imagem de referência e uma pluralidade de segundos blocos de referência na segunda imagem de referência é realizada. Uma comparação de custo entre o primeiro e o segundo bloco de referência iniciais pode ser também realizada. Os primeiros blocos de referência podem ser, por exemplo, os vários blocos de referência que circundam o primeiro bloco de referência inicial 406 na primeira imagem de referência 408. A comparação de custo é usada para determinar um primeiro vetor de movimento refinado (por exemplo, MV0’) e um segundo vetor de movimento refinado (por exemplo, MV1’). Os segundos blocos de referência podem ser, por exemplo, os vários blocos de referência que circundam o segundo bloco de referência inicial 410 na segunda imagem de referência 412. Alternativamente, posições de um par de blocos de referência a partir das posições dos N pares de blocos de referência são determinadas como uma posição do primeiro bloco de referência refinado e uma posição do segundo bloco de referência refinado com base no critério de custo de correspondência. Pode ser entendido que os N pares de blocos de referência podem incluir um par do primeiro e segundo blocos de referência iniciais.
[0218] No bloco 642, um primeiro bloco de referência refinado (por exemplo, bloco de referência refinado 416) na primeira imagem de referência é selecionado com base no primeiro vetor de movimento refinado e um segundo bloco de referência refinado (por exemplo, o bloco de referência refinado 418) na segunda imagem de referência é selecionado com base no segundo vetor de movimento refinado. Alternativamente, o primeiro bloco de referência refinado é determinado na primeira imagem de referência com base na posição do primeiro bloco de referência refinado e o segundo bloco de referência refinado é determinado na segunda imagem de referência com base na posição do segundo bloco de referência refinado.
[0219] No bloco 644, um bloco de predição (por exemplo, bloco de predição 420) é determinado com base no primeiro bloco de referência refinado e no segundo bloco de referência refinado.
[0220] No bloco 646, uma imagem gerada usando o bloco de predição é exibida no visor de um dispositivo eletrônico.
[0221] As pessoas habilitadas na técnica irão reconhecer que muitas soluções podem ser aplicadas para realizar um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR), e a presente invenção não é limitada aos processos exemplificativos anteriormente mostrados.
[0222] Com base no que foi visto acima, a presente revelação permite restringir condicionalmente (tal como habilitar ou desabilitar) refinamento de vetor de movimento de lado de decodificador com base nas distâncias temporais para as duas referências usadas por cada CU, desse modo ela aperfeiçoa a eficiência de codificação por não aplicar o refinamento quando o pressuposto subjacente de vetores de movimento delta iguais e opostos que o refinamento assume é improvável de ser verdadeiro.
[0223] Com base no que foi visto acima, a presente revelação também fornece a granularidade para desabilitar refinamento para todas as unidades de acesso incondicionalmente, desabilitar refinamento para determinadas unidades de acesso condicionalmente, habilitar refinamento incondicional em um nível de unidade de acesso, ou habilitar refinamento condicional em uma unidade de acesso com base nas distâncias temporais para as referências a partir da imagem atual usada por uma unidade de codificação dentro desta unidade de acesso.
[0224] Com base no que foi visto acima, a presente revelação também oferece a vantagem de desabilitar os refinamentos realizados no lado de decodificador para mesclar índices que provavelmente não vão aperfeiçoar os ganhos de compressão.
[0225] Além disso, com base no que foi visto acima, a presente revelação restringe os refinamentos a somente duas referências de distância igual pode ter vantagem de menos poluição de cache pelas outras referências no lado de decodificador.
[0226] Com base no que foi visto acima, a presente revelação permite descapacitação normativa de refinamento de vetor de movimento de lado de decodificador com base em correspondência bilateral a nível de CU sempre que as distâncias temporais para as duas referências não forem substancialmente iguais em magnitude e opostas em direção. Em particular, essa descapacitação é aplicada quando o processo de refinamento não usa distâncias temporais para escalonar os vetores de movimento delta.
[0227] Com base no que foi visto acima, a presente revelação adiciona flags nos níveis de sequência e conjunto de parâmetros de imagem para permitir que a verificação com base em distância temporal ao nível de CU seja realizada somente quando indicada por essas flags de modo que o codificador tenha a opção de sinalizar os valores de flag apropriados com base em fatores tais como estrutura de GOP e ganhos de codificação vistos.
[0228] A seguir se encontra uma explicação das aplicações do método de codificação bem como do método de decodificação conforme mostrados nas modalidades acima mencionadas, e um sistema usando os mesmos.
[0229] A Figura 11 é um diagrama de blocos mostrando um sistema de suprimento de conteúdo 3100 para realizar conteúdo serviço de distribuição. Esse sistema de suprimento de conteúdo 3100 inclui dispositivo de captura 3102, dispositivo terminal 3106, e opcionalmente inclui o visor 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 por enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, porém, sem limitação, WIFI, Ethernet, Cabo, sem fio (3G/4G/5G), USB, ou qualquer tipo de combinação dos mesmos, ou semelhantes.
[0230] O dispositivo de captura 3102 gera dados, e pode codificar os dados pelo método de codificação conforme mostrado nas modalidades acima. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de streaming (não mostrado nas Figuras), e o servidor ecodifica os dados e transmite os dados codificados para o dispositivo terminal 3106. O dispositivo de captura 3102 inclui, porém, sem limitação, câmera, telefone inteligente ou Pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo, ou uma combinação de qualquer destes, ou semelhantes. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12 conforme descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode realmente realizar processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode realmente realizar processamento de codificação de áudio. Para alguns cenários, na prática, o dispositivo de captura 3102 distribui os dados de vídeo e áudio codificados multiplexando-se os mesmos em conjunto. Para outros cenários, na prática, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.
[0231] No sistema de suprimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 poderia ser um dispositivo com capacidade de receber e recuperar dados, tais como telefone inteligente ou Pad 3108, computador ou laptop 3110, gravador de vídeo de rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, set top box (STB) 3116, sistema de videoconferência 3118, sistema de vigilância por vídeo 3120, assistente digital pessoal (PDA) 3122, dispositivo montado em veículo 3124, ou uma combinação de qualquer deles, ou semelhantes com capacidade de decodificar os dados codificados acima mencionados. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14 conforme descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar processamento de decodificação de áudio.
[0232] Para um dispositivo terminal com seu visor, por exemplo, telefone inteligente ou Pad 3108, computador ou laptop 3110, gravador de vídeo de rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122, ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados para o seu visor. Para um dispositivo terminal equipado sem visor, por exemplo, STB 3116, o sistema de videoconferência 3118,
ou sistema de vigilância por vídeo 3120, um visor externo 3126 é contatado no mesmo para receber e mostrar os dados decodificados.
[0233] Quando cada dispositivo nesse sistema realiza codificação ou decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, conforme mostrado nas modalidades acima mencionadas, pode ser usado.
[0234] A Figura 12 é um diagrama mostrando uma estrutura de um exemplo do dispositivo terminal 3106. Depois que o dispositivo terminal 3106 recebe fluxo a partir de o dispositivo de captura 3102, a unidade de prosseguimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, porém, sem limitação, Protocolo de Streaming em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), protocolo de streaming ao vivo HTTP (HLS), MPEG-DASH, protocolo de Transporte em Tempo real (RTP), Protocolo de Mensagem em Tempo Real (RTMP), ou qualquer tipo de combinação dos mesmos, ou semelhantes.
[0235] Depois que a unidade de prosseguimento de protocolo 3202 processa o fluxo, arquivo de fluxo é gerado. O arquivo é emitido para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados nos dados de áudio codificados e nos dados de vídeo codificados. Conforme descrito acima, para alguns cenários, na prática, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nessa situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e o decodificador de áudio 3208 do lado de fora através da unidade de demultiplexação 3204.
[0236] Por meio do processamento de demultiplexação, fluxo elementar (ES) de vídeo, ES de áudio, e opcionalmente legenda são gerados. O decodificador de vídeo 3206, o qual inclui o decodificador de vídeo 30 conforme explicado nas modalidades acima mencionadas, decodifica o ES de vídeo pelo método de decodificação conforme mostrado nas modalidades acima mencionadas para gerar quadro de vídeo, e alimenta esses dados para a unidade síncrona 3212. O decodificador de áudio 3208, decodifica o ES de áudio para gerar quadro de áudio, e alimenta esses dados para a unidade síncrona 3212. Alternativamente, o quadro de vídeo pode armazenar em um buffer (buffer) (não mostrado na Figura Y) antes de alimentar o mesmo para a unidade síncrona 3212.
Similarmente, o quadro de áudio pode armazenar em um armazenador (não mostrado na Figura Y) antes de alimentar o mesmo para a unidade síncrona 3212.
[0237] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio, e supre o vídeo/áudio para um visor de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação das informações de vídeo e áudio. Informações podem codificar na sintaxe usando marcas de tempo referentes à apresentação de dados de áudio e visuais codificados e marcas de tempo referentes à entrega do próprio fluxo de dados.
[0238] Se legenda é incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e sincroniza a mesma com o quadro de vídeo e o quadro de áudio, e supre vídeo/áudio/legenda para um visor de vídeo/áudio/legenda 3216.
[0239] A presente invenção não é limitada ao sistema acima mencionado, e ou o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem nas modalidades acima mencionadas pode ser incorporado em outro sistema, por exemplo, um sistema para carros.
[0240] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implantadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. Mídia legível por computador pode incluir mídia de armazenamento legível por computador, a qual corresponde a uma mídia tangível tal como mídia de armazenamento de dados, ou mídia de comunicação incluindo qualquer mídia que facilite transferência de um programa de computador de um lugar para um outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, mídia legível por computador de modo geral pode corresponder a (1) mídia de armazenamento tangível legível por computador a qual é não transitória ou (2) uma mídia de comunicação tal como um sinal ou onda portadora. Mídia de armazenamento de dados pode ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estrutura de dados para implantação das técnicas descrita nessa revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0241] A título de de exemplo, e não limitação, essa mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que pode ser usada para armazenar código de programa desejado na forma de instruções ou estrutura de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é apropriadamente denominada uma mídia legível por computador. Por exemplo, se instruções são transmitidas a partir de um site da rede, servidor, ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tais como infravermelho, rádio, e micro-onda, então o cabo coaxial, cabo de fibra óptica, par trançado, DSL, ou tecnologias sem fio tais como infravermelho, rádio, e micro-onda são incluídas na definição de mídia. Deve ser entendido, no entanto, que mídia de armazenamento legível por computador e mídia de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outra mídia transitória, mas são em vez disso direcionadas a mídia de armazenamento tangível, não transitória. Disco magnético e disco ótico, conforme usado no presente documento, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde discos magnéticos normalmente reproduzem dados magneticamente, enquanto discos ópticos reproduzem dados opticamente com lasers. Combinações destes acima devem também ser incluídas dentro do escopo de mídia legível por computador.
[0242] Instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis por campo (FPGAs), ou outros circuitos equivalentes integrados ou de lógica discreta. Consequentemente, o termo “processador”, conforme usado no presente documento pode se referir a qualquer das estruturas supracitadas ou qualquer outra estrutura adequada para implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporada em um codec combinado. Além disso, as técnicas poderiam ser inteiramente implantadas em um ou mais circuitos ou elementos lógicos.
[0243] As técnicas dessa revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos, ou unidades são descritos nessa revelação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente exigem a realização por diferentes unidades de hardware. Ao contrário, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por um conjunto de unidades de hardware interoperantes, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado(s).
[0244] Embora diversas modalidades tenham sido fornecidas na presente revelação, deve ser entendido que os sistemas e métodos revelados possam ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados como ilustrativos e não restritivos, e a intenção não é serem limitados aos detalhes dados no presente documento. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em um outro sistema ou determinadas características podem ser omitidas, ou não implantadas.
[0245] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados com outros sistemas, módulos, técnicas ou métodos sem se afastar do escopo da presente revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou comunicando-se uns com os outros podem ser indiretamente acoplados ou se comunicar através de alguma interface, dispositivo, ou componente intermediário, seja eletricamente, mecanicamente, ou de outra forma. Outros exemplos de mudanças, substituições e alterações são verificáveis por uma pessoa versada na técnica e podem ser feitas sem que haja um afastamento do espírito e do escopo revelados neste documento.
[0246] Embora diversas modalidades tenham sido fornecidas na presente revelação, deve ser entendido que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem que haja um afastamento do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não deve ser limitada aos detalhes aqui fornecidos. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em um outro sistema ou determinadas características podem ser omitidas ou não implementadas.
[0247] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados com outros sistemas, módulos, técnicas ou métodos sem que haja um afastamento do escopo da presente revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou comunicando-se uns com os outros podem ser indiretamente acoplados ou se comunicar através de alguma interface, dispositivo, ou componente intermediário, seja eletricamente, mecanicamente ou de outra forma. Outros exemplos de mudanças, substituições e alterações são verificáveis por uma pessoa versada na técnica e podem ser feitos sem que haja um afastamento do espírito e escopo revelados neste documento.
Claims (61)
1. Método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, o método CARACTERIZADO pelo fato de que compreende: determinar se a imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal está entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal está entre a imagem atual e a segunda imagem de referência; e realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a imagem atual está temporalmente entre a primeira imagem de referência e a segunda imagem de referência e que a primeira distância temporal e a segunda distância temporal são a mesma distância.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente: realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar o bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR) compreende: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência, em que cada um dentre a dita pluralidade de pares de blocos de referência inclui um primeiro bloco de referência que está na primeira imagem de referência e que é determinado com base em um primeiro vetor de movimento inicial e um segundo bloco de referência que está na segunda imagem de referência e que é determinado com base em um segundo vetor de movimento inicial;
em que os melhores vetores de movimento incluem um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR) compreende: determinar posições de um par de blocos de referência a partir de posições de M pares de blocos de referência como uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado com base em um critério de custo de correspondência, em que as posições dos M pares de blocos de referência são determinadas com base em um primeiro vetor de movimento inicial, em um segundo vetor de movimento inicial e em uma posição do bloco de imagem atual, em que posições de cada par de blocos de referência incluem uma posição de um primeiro bloco de referência e uma posição de um segundo bloco de referência, em que o primeiro bloco de referência está incluído na primeira imagem de referência, e o segundo bloco de referência está incluído na segunda imagem de referência, e em que para cada par de blocos de referência, um primeiro deslocamento de posição (delta0x, delta0y) e um segundo deslocamento de posição (delta1x, delta1y) são iguais em magnitude e opostos em sinal, e o primeiro deslocamento de posição (delta0x, delta0y) representa um deslocamento da posição do primeiro bloco de referência relativo a uma posição de um primeiro bloco de referência inicial, e o segundo deslocamento de posição (delta1x, delta1y) representa um deslocamento da posição do segundo bloco de referência relativo a uma posição de um segundo bloco de referência inicial, em que M é um número inteiro maior que ou igual a 1.
5. Método, de acordo com qualquer uma das reivindicações 2 a 4, CARACTERIZADO pelo fato de que informações de movimento inicial do bloco de imagem atual compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
6. Método, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou em que a primeira imagem de referência é uma imagem de referência em um tempo passado e a segunda imagem de referência é uma imagem de referência em um tempo futuro; ou a primeira imagem de referência é uma imagem de referência no tempo futuro e a segunda imagem de referência é uma imagem de referência no tempo passado.
7. Método, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
8. Método, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a determinação de se a imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, compreende: determinar se a primeira distância temporal e a segunda distância temporal são iguais em magnitude e opostas em sinal, em que a primeira distância temporal é representada em termos de uma diferença entre o valor de contagem de ordem de imagem da imagem atual e o valor de contagem de ordem de imagem da primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre o valor de contagem de ordem de imagem da imagem atual e o valor de contagem de ordem de imagem da segunda imagem de referência; em que a realização de procedimento de refinamento de vetor de movimento (DMVR) compreende: realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são iguais em magnitude e opostas em sinal.
9. Método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, o método CARACTERIZADO pelo fato de que compreende: determinar se a imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal está entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal está entre a imagem atual e a segunda imagem de referência; e realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que informações de movimento inicial do bloco de imagem atual compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
11. Método, de acordo com a reivindicação 9 ou 10, CARACTERIZADO pelo fato de que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
12. Método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, o método CARACTERIZADO pelo fato de que compreende: determinar se uma primeira distância temporal é igual a uma segunda distância temporal, em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem da imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando uma pluralidade de condições forem satisfeitas, em que uma dentre a pluralidade de condições é que é determinado que a primeira distância temporal seja igual à segunda distância temporal.
13. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que compreende adicionalmente: realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal não é igual à segunda distância temporal.
14. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que a etapa de realizar procedimento de refinamento de vetor de movimento (DMVR) compreende: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência, em que o dito par de blocos de referência inclui um primeiro bloco de referência que é da primeira imagem de referência e que é determinado com base em um primeiro vetor de movimento inicial e um segundo bloco de referência que é da segunda imagem de referência e que é determinado com base em um segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado.
15. Método, de acordo com a reivindicação 13 ou 14, CARACTERIZADO pelo fato de que informações de movimento inicial do bloco de imagem atual compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
16. Método para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, o método CARACTERIZADO pelo fato de que compreende: determinar se uma primeira distância temporal é igual a uma segunda distância temporal, em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem da imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; realizar nenhum procedimento de refinamento de vetor de movimento (DMVR) no bloco de imagem atual, quando for determinado que a primeira distância temporal não é igual à segunda distância temporal.
17. Método para codificar uma imagem de vídeo, CARACTERIZADO pelo fato de que compreende: realizar predição inter de um bloco de imagem atual em uma imagem atual do vídeo para obter um bloco de predição do bloco de imagem atual de acordo com o método conforme definido em qualquer uma das reivindicações 1 a 15; gerar um fluxo de bits incluindo um resíduo entre o bloco de imagem atual e o bloco de predição e um índice para indicar informações de movimento inicial.
18. Método para decodificar uma imagem de vídeo a partir de um fluxo de bits, CARACTERIZADO pelo fato de que compreende: analisar a partir do fluxo de bits um índice para indicar informações de movimento inicial e um resíduo entre um bloco de imagem atual e um bloco de predição do bloco de imagem atual; realizar predição inter de um bloco de imagem atual em uma imagem atual de um vídeo para obter um bloco de predição do bloco de imagem atual de acordo com o método conforme definido em qualquer uma das reivindicações 1 a 15; e reconstruir o bloco de imagem atual com base no resíduo e no bloco de predição.
19. Método de codificação implantado por um dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: determinar valor de um elemento de sintaxe indicando se o método conforme definido em qualquer uma das reivindicações 1, 3 a 8 e 12 a 15 está habilitado ou não; e gerar um fluxo de bits incluindo o elemento de sintaxe.
20. Método, de acordo com a reivindicação 19, CARACTERIZADO pelo fato de que o elemento de sintaxe é sinalizado em qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
21. Método de decodificação implantado por um dispositivo de decodificação, CARACTERIZADO pelo fato de que compreende: analisar a partir de um fluxo de bits um elemento de sintaxe indicando se o método conforme definido em qualquer uma das reivindicações 1, 3 a 8 e 12 a 15 está habilitado ou não; e habilitar ou desabilitar adaptavelmente um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR) de acordo com o elemento de sintaxe.
22. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que o elemento de sintaxe é obtido a partir de qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS) de um fluxo de bits, um nível de conjunto de parâmetros de imagem (PPS) do fluxo de bits, um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
23. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: uma memória que armazena instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para levar o processador a: determinar se uma imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal (TD0) está entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) está entre a imagem atual e a segunda imagem de referência (RefPic1); e realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição de um bloco de imagem atual na imagem atual, quando for determinado que a imagem atual está temporalmente entre a primeira imagem de referência e a segunda imagem de referência e que a primeira distância temporal e a segunda distância temporal são a mesma distância.
24. Dispositivo de codificação, de acordo com a reivindicação 23, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
25. Dispositivo, de acordo com a reivindicação 23,
CARACTERIZADO pelo fato de que é para realizar procedimento de refinamento de vetor de movimento (DMVR), em que o processador é configurado para: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência, em que o dito par de blocos de referência inclui um primeiro bloco de referência que está na primeira imagem de referência e que é determinado com base em um primeiro vetor de movimento inicial e um segundo bloco de referência que está na segunda imagem de referência e que é determinado com base em um segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado.
26. Dispositivo, de acordo com a reivindicação 23, CARACTERIZADO pelo fato de que é para realizar procedimento de refinamento de vetor de movimento (DMVR), em que o processador é especificamente configurado para: determinar posições de um par de blocos de referência a partir de posições de M pares de blocos de referência como uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado com base em um critério de custo de correspondência, em que as posições dos M pares de blocos de referência são determinadas com base no primeiro vetor de movimento inicial, no segundo vetor de movimento inicial e em uma posição do bloco de imagem atual; e posições de cada par de blocos de referência incluem uma posição de um primeiro bloco de referência e uma posição de um segundo bloco de referência, em que o primeiro bloco de referência está incluído na primeira imagem de referência, e o segundo bloco de referência está incluído na segunda imagem de referência, e para cada par de blocos de referência, um primeiro deslocamento de posição e um segundo deslocamento de posição são iguais em magnitude e opostos em sinal, e o primeiro deslocamento de posição representa um deslocamento da posição do primeiro bloco de referência relativo a uma posição de um primeiro bloco de referência inicial, e o segundo deslocamento de posição representa um deslocamento da posição do segundo bloco de referência relativo a uma posição de um segundo bloco de referência inicial, em que M é um número inteiro maior que ou igual a 1.
27. Dispositivo, de acordo com qualquer uma das reivindicações 24 a 26, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
28. Dispositivo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou em que a primeira imagem de referência é uma imagem de referência em um tempo passado e a segunda imagem de referência é uma imagem de referência em um tempo futuro; ou a primeira imagem de referência é uma imagem de referência no tempo futuro e a segunda imagem de referência é uma imagem de referência no tempo passado.
29. Dispositivo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e o valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
30. Dispositivo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que o processador é configurado para determinar se a primeira distância temporal e a segunda distância temporal são iguais em magnitude e opostas em sinal, em que a primeira distância temporal é representada em termos de diferença entre o valor de contagem de ordem de imagem da imagem atual e o valor de contagem de ordem de imagem da primeira imagem de referência; e a segunda distância temporal é representada em termos de diferença entre o valor de contagem de ordem de imagem da segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são iguais em magnitude e opostas em sinal.
31. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: uma memória que armazena instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para levar o processador a: determinar se uma imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal está entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal está entre a imagem atual e a segunda imagem de referência; e realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição de um bloco de imagem atual na imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
32. Dispositivo de codificação, de acordo com a reivindicação 31, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
33. Dispositivo de codificação, de acordo com a reivindicação 31 ou 32, CARACTERIZADO pelo fato de que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
34. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: uma memória que armazena instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para levar o processador a: determinar se uma primeira distância temporal é igual a uma segunda distância temporal, em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando uma pluralidade de condições forem satisfeitas, em que uma dentre a pluralidade de condições é que é determinado que a primeira distância temporal seja igual à segunda distância temporal.
35. Dispositivo, de acordo com a reivindicação 34, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para: realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal não é igual à segunda distância temporal.
36. Dispositivo, de acordo com a reivindicação 34, CARACTERIZADO pelo fato de que para a realização de procedimento de refinamento de vetor de movimento (DMVR), o processador é configurado para: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência, em que o dito par de blocos de referência inclui um primeiro bloco de referência que é da primeira imagem de referência e que é determinado com base em um primeiro vetor de movimento inicial e um segundo bloco de referência que é da segunda imagem de referência e que é determinado com base em um segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado.
37. Dispositivo, de acordo com a reivindicação 35 ou 36, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para: obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
38. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: uma memória que armazena instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para levar o processador a: determinar se uma primeira distância temporal é igual a uma segunda distância temporal, em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e realizar nenhum procedimento de refinamento de vetor de movimento (DMVR) no bloco de imagem atual, quando for determinado que a primeira distância temporal não é igual à segunda distância temporal.
39. Aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, CARACTERIZADO pelo fato de que compreende: uma unidade de determinação configurada para determinar se a imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal (TD0) está entre a imagem atual e a primeira imagem de referência (RefPic0), e a segunda distância temporal (TD1) está entre a imagem atual e a segunda imagem de referência (RefPic1); e uma unidade de processamento de predição inter configurada para realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a imagem atual está temporalmente entre a primeira imagem de referência e a segunda imagem de referência e que a primeira distância temporal e a segunda distância temporal são a mesma distância.
40. Aparelho, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de que a unidade de processamento de predição inter é adicionalmente configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal é diferente ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
41. Aparelho, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de que é para a realização de procedimento de refinamento de vetor de movimento (DMVR), em que a unidade de processamento de predição inter é especificamente configurada para: determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência, em que o dito par de blocos de referência inclui um primeiro bloco de referência que está na primeira imagem de referência e que é determinado com base em um primeiro vetor de movimento inicial e um segundo bloco de referência que está na segunda imagem de referência e que é determinado com base em um segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado.
42. Aparelho, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de que é para a realização de procedimento de refinamento de vetor de movimento (DMVR), em que a unidade de processamento de predição inter é especificamente configurada para: determinar posições de um par de blocos de referência a partir de posições de M pares de blocos de referência como uma posição de um primeiro bloco de referência refinado e uma posição de um segundo bloco de referência refinado com base em um critério de custo de correspondência, em que as posições dos M pares de blocos de referência são determinadas com base em um primeiro vetor de movimento inicial, um segundo vetor de movimento inicial e uma posição do bloco de imagem atual; e posições de cada par de blocos de referência incluem uma posição de um primeiro bloco de referência e uma posição de um segundo bloco de referência, em que o primeiro bloco de referência está incluído na primeira imagem de referência, e o segundo bloco de referência está incluído na segunda imagem de referência, e para cada par de blocos de referência, o primeiro deslocamento de posição e o segundo deslocamento de posição são iguais em magnitude e opostos em sinal, e o primeiro deslocamento de posição representa um deslocamento da posição do primeiro bloco de referência relativo à posição de um primeiro bloco de referência inicial, e o segundo deslocamento de posição representa um deslocamento da posição do segundo bloco de referência relativo à posição de um segundo bloco de referência inicial, em que M é um número inteiro maior que ou igual a 1.
43. Aparelho, de acordo com qualquer uma das reivindicações 40 a 42, CARACTERIZADO pelo fato de que a unidade de processamento de predição inter é adicionalmente configurada para obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
44. Aparelho, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a primeira imagem de referência é uma imagem de referência que precede temporalmente à imagem atual e a segunda imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual; ou a primeira imagem de referência é uma imagem de referência precedida temporalmente pela imagem atual e a segunda imagem de referência é uma imagem de referência que precede temporalmente à imagem atual; ou em que a primeira imagem de referência é uma imagem de referência em um tempo passado e a segunda imagem de referência é uma imagem de referência em um tempo futuro; ou a primeira imagem de referência é uma imagem de referência no tempo futuro e a segunda imagem de referência é uma imagem de referência no tempo passado.
45. Aparelho, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
46. Aparelho, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a unidade de determinação é configurada para determinar se a primeira distância temporal e a segunda distância temporal são iguais em magnitude e opostas em sinal, em que a primeira distância temporal é representada em termos de uma diferença entre o valor de contagem de ordem de imagem da imagem atual e o valor de contagem de ordem de imagem da primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre o valor de contagem de ordem de imagem da imagem atual e o valor de contagem de ordem de imagem da segunda imagem de referência; e em que a unidade de processamento de predição inter é configurada para realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são iguais em magnitude e opostas em sinal.
47. Aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, CARACTERIZADO pelo fato de que compreende: uma unidade de determinação configurada para determinar se a imagem atual está temporalmente entre uma primeira imagem de referência e uma segunda imagem de referência e se uma primeira distância temporal e uma segunda distância temporal são a mesma distância, em que a primeira distância temporal está entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal está entre a imagem atual e a segunda imagem de referência; e uma unidade de processamento de predição inter configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal e a segunda distância temporal são distâncias diferentes ou que a imagem atual não está temporalmente entre a primeira imagem de referência e a segunda imagem de referência.
48. Aparelho, de acordo com a reivindicação 47, CARACTERIZADO pelo fato de que informações de movimento inicial do bloco de imagem atual compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
49. Aparelho, de acordo com a reivindicação 47 ou 48, CARACTERIZADO pelo fato de que a primeira distância temporal indica uma distância de contagem de ordem de imagem (POC) entre a imagem atual e a primeira imagem de referência, e a segunda distância temporal indica uma distância de POC entre a imagem atual e a segunda imagem de referência; ou em que a primeira distância temporal (TD0) é representada em termos de diferença entre um valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC0) da primeira imagem de referência; e a segunda distância temporal (TD1) é representada em termos de diferença entre o valor de contagem de ordem de imagem (POCc) da imagem atual e um valor de contagem de ordem de imagem (POC1) da segunda imagem de referência.
50. Aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, CARACTERIZADO pelo fato de que compreende: uma unidade de determinação configurada para determinar se uma primeira distância temporal é igual a uma segunda distância temporal, em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem da imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e uma unidade de processamento de predição inter configurada para realizar procedimento de refinamento de vetor de movimento (DMVR) para determinar um bloco de predição do bloco de imagem atual, quando uma pluralidade de condições forem satisfeitas, em que uma dentre a pluralidade de condições é que é determinado que a primeira distância temporal seja igual à segunda distância temporal.
51. Aparelho, de acordo com a reivindicação 50, CARACTERIZADO pelo fato de que a unidade de processamento de predição inter é adicionalmente configurada para realizar compensação de movimento usando um primeiro vetor de movimento inicial e um segundo vetor de movimento inicial para determinar um bloco de predição do bloco de imagem atual, quando for determinado que a primeira distância temporal não é igual à segunda distância temporal.
52. Aparelho, de acordo com a reivindicação 50, CARACTERIZADO pelo fato de que para a realização de procedimento de refinamento de vetor de movimento (DMVR), a unidade de processamento de predição inter é configurada para determinar um par de blocos de melhor correspondência apontados pelos melhores vetores de movimento a partir de uma pluralidade de pares de blocos de referência, em que o dito par de blocos de referência inclui um primeiro bloco de referência que é da primeira imagem de referência e que é determinado com base em um primeiro vetor de movimento inicial e um segundo bloco de referência que é da segunda imagem de referência e que é determinado com base em um segundo vetor de movimento inicial; em que os melhores vetores de movimento incluem um primeiro vetor de movimento refinado e um segundo vetor de movimento refinado.
53. Aparelho, de acordo com a reivindicação 51 ou 52, CARACTERIZADO pelo fato de que a unidade de processamento de predição inter é adicionalmente configurada para obter informações de movimento inicial do bloco de imagem atual na imagem atual, em que as informações de movimento inicial compreendem o primeiro vetor de movimento inicial, um primeiro índice de referência, o segundo vetor de movimento inicial e um segundo índice de referência, em que o primeiro índice de referência indica a primeira imagem de referência, e o segundo índice de referência indica a segunda imagem de referência.
54. Aparelho para predição inter de um bloco de imagem atual em uma imagem atual de um vídeo, CARACTERIZADO pelo fato de que compreende: uma unidade de determinação configurada para determinar se uma primeira distância temporal é igual a uma segunda distância temporal, em que a primeira distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem da imagem atual e um valor de contagem de ordem de imagem de uma primeira imagem de referência; e a segunda distância temporal é representada em termos de uma diferença entre um valor de contagem de ordem de imagem de uma segunda imagem de referência e o valor de contagem de ordem de imagem da imagem atual; e uma unidade de processamento de predição inter configurada para realizar nenhum procedimento de refinamento de vetor de movimento (DMVR) no bloco de imagem atual, quando for determinado que a primeira distância temporal não é igual à segunda distância temporal.
55. Aparelho de codificação para codificar uma imagem de vídeo, o aparelho de codificação CARACTERIZADO pelo fato de que compreende: o aparelho conforme definido em qualquer uma das reivindicações 39 a 53 para obter um bloco de predição de um bloco de imagem atual, uma unidade de codificação de entropia configurada para gerar um fluxo de bits incluindo um resíduo entre o bloco de imagem atual e o bloco de predição e um índice para indicar informações de movimento inicial.
56. Aparelho de decodificação para decodificar uma imagem de vídeo a partir de um fluxo de bits, o aparelho CARACTERIZADO pelo fato de que compreende: uma unidade de decodificação de entropia configurada para analisar a partir do fluxo de bits um índice para indicar informações de movimento inicial e um resíduo entre um bloco de imagem atual e um bloco de predição do bloco de imagem atual; o aparelho conforme definido em qualquer das reivindicações 39 a 53 para obter o bloco de predição do bloco de imagem atual, uma unidade de reconstrução de imagem configurada para reconstruir o bloco de imagem atual com base no resíduo e no bloco de predição.
57. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende um ou mais circuitos de processamento configurados para: determinar valor de um elemento de sintaxe para habilitar ou desabilitar o método conforme definido em qualquer uma das reivindicações 1, 3 a 8 e 12 a 15; e gerar um fluxo de bits incluindo o elemento de sintaxe.
58. Dispositivo de codificação, de acordo com a reivindicação 57, CARACTERIZADO pelo fato de que o elemento de sintaxe é sinalizado em qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
59. Dispositivo de decodificação, CARACTERIZADO pelo fato de que compreende um ou mais circuitos de processamento configurados para: analisar a partir de um fluxo de bits um elemento de sintaxe para indicar se o método conforme definido em qualquer uma das reivindicações 1, 3 a 8 e 12 a 15 está habilitado ou não; e habilitar ou desabilitar adaptavelmente um procedimento de refinamento de vetor de movimento de lado de decodificador (DMVR) de acordo com o elemento de sintaxe.
60. Dispositivo de decodificação, de acordo com a reivindicação 59, CARACTERIZADO pelo fato de que o elemento de sintaxe é obtido a partir de qualquer um dentre um nível de conjunto de parâmetros de sequência (SPS) de um fluxo de bits, um nível de conjunto de parâmetros de imagem (PPS) do fluxo de bits, um cabeçalho de fatia, sintaxe de unidade de árvore de codificação (CTU), ou sintaxe de unidade de codificação (CU).
61. Mídia legível por computador, CARACTERIZADA pelo fato de que armazena instruções legíveis por computador as quais quando executadas em um processador realizam as etapas conforme definidas em qualquer das reivindicações 1 a 22.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201831034607 | 2018-09-13 | ||
IN201831034607 | 2018-09-13 | ||
PCT/CN2019/105717 WO2020052654A1 (en) | 2018-09-13 | 2019-09-12 | Apparatus and method for conditional decoder-side motion vector refinement in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112021004800A2 true BR112021004800A2 (pt) | 2021-06-08 |
BR112021004800A8 BR112021004800A8 (pt) | 2021-06-22 |
Family
ID=69778183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112021004800A BR112021004800A8 (pt) | 2018-09-13 | 2019-09-12 | aparelho e método para refinamento de vetor de movimento de lado de decodificador condicional em codificação de vídeo |
Country Status (10)
Country | Link |
---|---|
US (2) | US11563948B2 (pt) |
EP (2) | EP4415364A3 (pt) |
JP (2) | JP7297874B2 (pt) |
KR (2) | KR102653856B1 (pt) |
CN (8) | CN117241015A (pt) |
BR (1) | BR112021004800A8 (pt) |
MX (1) | MX2021003048A (pt) |
PL (1) | PL3847807T3 (pt) |
SG (1) | SG11202102569QA (pt) |
WO (1) | WO2020052654A1 (pt) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020084509A1 (en) | 2018-10-23 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Harmonized local illumination compensation and modified inter coding tools |
CN112913247B (zh) | 2018-10-23 | 2023-04-28 | 北京字节跳动网络技术有限公司 | 使用局部照明补偿的视频处理 |
WO2020130710A1 (ko) * | 2018-12-21 | 2020-06-25 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
WO2020147747A1 (en) | 2019-01-15 | 2020-07-23 | Beijing Bytedance Network Technology Co., Ltd. | Weighted prediction in video coding |
CN113316933B (zh) | 2019-01-17 | 2024-10-11 | 北京字节跳动网络技术有限公司 | 使用运动预测进行去方块滤波 |
CN118612456A (zh) * | 2019-02-14 | 2024-09-06 | Lg 电子株式会社 | 基于dmvr的帧间预测方法和设备 |
US20210092427A1 (en) * | 2019-09-23 | 2021-03-25 | Qualcomm Incorporated | Harmonized early termination in bdof and dmvr in video coding |
CN118765498A (zh) * | 2021-12-07 | 2024-10-11 | 抖音视界有限公司 | 用于视频处理的方法、装置和介质 |
CN118575478A (zh) * | 2022-01-18 | 2024-08-30 | 北京达佳互联信息技术有限公司 | 视频编解码中考虑边界外条件的运动补偿 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123283B (zh) * | 2011-03-11 | 2013-10-30 | 杭州海康威视数字技术股份有限公司 | 视频帧率转换中的插值帧获取方法及其装置 |
US11330284B2 (en) * | 2015-03-27 | 2022-05-10 | Qualcomm Incorporated | Deriving motion information for sub-blocks in video coding |
US10944963B2 (en) * | 2016-05-25 | 2021-03-09 | Arris Enterprises Llc | Coding weighted angular prediction for intra coding |
JPWO2018092870A1 (ja) * | 2016-11-21 | 2019-10-17 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法 |
WO2018105582A1 (ja) * | 2016-12-09 | 2018-06-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
WO2018113658A1 (en) * | 2016-12-22 | 2018-06-28 | Mediatek Inc. | Method and apparatus of motion refinement for video coding |
US10750203B2 (en) * | 2016-12-22 | 2020-08-18 | Mediatek Inc. | Method and apparatus of adaptive bi-prediction for video coding |
US10911761B2 (en) * | 2016-12-27 | 2021-02-02 | Mediatek Inc. | Method and apparatus of bilateral template MV refinement for video coding |
CN107360433B (zh) * | 2017-07-20 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 一种帧间预测编码方法和装置 |
WO2019234578A1 (en) * | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Asymmetric weighted bi-predictive merges |
CN118612456A (zh) * | 2019-02-14 | 2024-09-06 | Lg 电子株式会社 | 基于dmvr的帧间预测方法和设备 |
-
2019
- 2019-09-12 KR KR1020217010891A patent/KR102653856B1/ko active IP Right Grant
- 2019-09-12 CN CN202310330051.XA patent/CN117241015A/zh active Pending
- 2019-09-12 CN CN202310336590.4A patent/CN116489345A/zh active Pending
- 2019-09-12 CN CN202310330049.2A patent/CN116405666A/zh active Pending
- 2019-09-12 EP EP24178165.7A patent/EP4415364A3/en active Pending
- 2019-09-12 CN CN201980060419.7A patent/CN112740679B/zh active Active
- 2019-09-12 CN CN202310331624.0A patent/CN116405667A/zh active Pending
- 2019-09-12 PL PL19860067.8T patent/PL3847807T3/pl unknown
- 2019-09-12 KR KR1020247010542A patent/KR20240046631A/ko active Application Filing
- 2019-09-12 CN CN202310344670.4A patent/CN116437076A/zh active Pending
- 2019-09-12 SG SG11202102569QA patent/SG11202102569QA/en unknown
- 2019-09-12 WO PCT/CN2019/105717 patent/WO2020052654A1/en unknown
- 2019-09-12 EP EP19860067.8A patent/EP3847807B1/en active Active
- 2019-09-12 CN CN202310353986.XA patent/CN116743992A/zh active Pending
- 2019-09-12 JP JP2021514368A patent/JP7297874B2/ja active Active
- 2019-09-12 BR BR112021004800A patent/BR112021004800A8/pt unknown
- 2019-09-12 MX MX2021003048A patent/MX2021003048A/es unknown
- 2019-09-12 CN CN202310331603.9A patent/CN117478873A/zh active Pending
-
2021
- 2021-03-12 US US17/249,771 patent/US11563948B2/en active Active
-
2022
- 2022-12-16 US US18/067,458 patent/US20230188722A1/en active Pending
-
2023
- 2023-06-14 JP JP2023098026A patent/JP2023126226A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN112740679A (zh) | 2021-04-30 |
PL3847807T3 (pl) | 2024-09-09 |
CN116405666A (zh) | 2023-07-07 |
KR20210057146A (ko) | 2021-05-20 |
EP4415364A2 (en) | 2024-08-14 |
JP2023126226A (ja) | 2023-09-07 |
EP4415364A3 (en) | 2024-10-23 |
US20220368921A9 (en) | 2022-11-17 |
EP3847807A1 (en) | 2021-07-14 |
KR20240046631A (ko) | 2024-04-09 |
MX2021003048A (es) | 2021-08-11 |
JP7297874B2 (ja) | 2023-06-26 |
CN112740679B (zh) | 2023-03-24 |
BR112021004800A8 (pt) | 2021-06-22 |
US20210203946A1 (en) | 2021-07-01 |
SG11202102569QA (en) | 2021-04-29 |
CN117478873A (zh) | 2024-01-30 |
CN116743992A (zh) | 2023-09-12 |
EP3847807B1 (en) | 2024-06-19 |
US20230188722A1 (en) | 2023-06-15 |
CN116489345A (zh) | 2023-07-25 |
CN117241015A (zh) | 2023-12-15 |
CN116437076A (zh) | 2023-07-14 |
US11563948B2 (en) | 2023-01-24 |
WO2020052654A1 (en) | 2020-03-19 |
KR102653856B1 (ko) | 2024-04-01 |
EP3847807A4 (en) | 2021-11-03 |
JP2022500930A (ja) | 2022-01-04 |
CN116405667A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI696384B (zh) | 在視頻寫碼中用於仿射運動模型之運動向量預測 | |
BR112021004800A2 (pt) | aparelho e método para refinamento de vetor de movimento de lado de decodificador condicional em condificação de vídeo | |
TW201924344A (zh) | 用於訊框速率上升轉換(fruc)之低複雜度設計 | |
TW201907724A (zh) | 用於運動向量推導之基於部份重建構之模板匹配 | |
BR112021000694A2 (pt) | Codificador de vídeo, decodificador de vídeo, e métodos de codificação e decodificação correspondentes | |
CN110730353B (zh) | 视频解码方法和装置、计算机设备、存储介质 | |
CN110876282B (zh) | 运动矢量预测方法以及相关装置 | |
WO2020048502A1 (zh) | 一种双向帧间预测方法及装置 | |
AU2019240981B2 (en) | Bidirectional inter-frame prediction method and device | |
CN111355958B (zh) | 视频解码方法及装置 | |
RU2795934C2 (ru) | Способ и устройство двунаправленного интер-предсказания | |
KR20240099324A (ko) | 기준 픽처 리샘플링을 사용한 비디오 인코딩 및 디코딩 | |
BR112021009686A2 (pt) | Método e dispositivo de intrapredição | |
CN118339832A (zh) | 解码器侧运动信息推导 | |
BR112017020635B1 (pt) | Método para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo, e memória legível por computador | |
BR112017020632B1 (pt) | Métodos e dispositivo para processar dados de vídeo e memória legível por computador | |
BR112017020627B1 (pt) | Derivação de vetor de movimento em codificação de vídeo |