BR112019026266A2 - seleção e sinalização de precisões de vetor de movimento (mv) - Google Patents
seleção e sinalização de precisões de vetor de movimento (mv) Download PDFInfo
- Publication number
- BR112019026266A2 BR112019026266A2 BR112019026266-0A BR112019026266A BR112019026266A2 BR 112019026266 A2 BR112019026266 A2 BR 112019026266A2 BR 112019026266 A BR112019026266 A BR 112019026266A BR 112019026266 A2 BR112019026266 A2 BR 112019026266A2
- Authority
- BR
- Brazil
- Prior art keywords
- precision
- rounding
- candidate
- fact
- encoder
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims description 13
- 230000011664 signaling Effects 0.000 title description 18
- 238000012217 deletion Methods 0.000 claims abstract description 20
- 230000037430 deletion Effects 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 20
- 230000001629 suppression Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation 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/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/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- 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/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
-
- 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/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- 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
Abstract
Um aparelho compreende: uma memória; e um processador acoplado à memória e configurado para: obter um bloco atual de um quadro de vídeo, obter MVs candidatos correspondentes a blocos vizinhos do quadro de vídeo, os blocos vizinhos são vizinhos do bloco atual, obter precisões dos MVs candidatos, realizar primeiro arredondamento das precisões com base em um esquema de arredondamento, realizar segundo arredondamento dos MVs candidatos com base no primeiro arredondamento, realizar supressão dos MVs candidatos, e gerar uma lista de candidatos com base no segundo arredondamento e na supressão.
Description
[001] Este pedido reivindica prioridade ao pedido de patente não provisório dos Estados Unidos, número de série / 982.865 depositado em 17 de maio de 2018 e intitulado "Selection and Signaling of Motion Vector (MV) Precisions'", que por sua vez reivindica prioridade para pedido provisório de patente dos Estados Unidos número 62 / 518.402 depositado em 12 de junho de 2017 pela Futurewei Technologies, Inc. e intitulado “Motion Vector Prediction and Merge Candidate selection”, que é incorporado por referência.
[002] Não aplicável.
[003] Não aplicável.
[004] Os vídeos usam uma quantidade relativamente grande de dados; portanto, a comunicação de vídeos usa uma quantidade relativamente grande de largura de banda. No entanto, muitas redes operam em suas capacidades de largura de banda ou próximas a elas. Além disso, os clientes exigem altas qualidades de vídeo, o que exige o uso de ainda mais dados. Portanto, há um desejo de tanto reduzir a quantidade de dados que os vídeos usam quanto melhorar a qualidade do vídeo. Uma solução é comprimir vídeos durante um processo de codificação e descomprimir os vídeos durante um processo de decodificação. Melhorar as técnicas de compressão e descompressão é um foco de pesquisa e desenvolvimento.
[005] De acordo com um aspecto da presente divulgação, é fornecido um aparelho que compreende: uma memória; e um processador acoplado à memória e configurado para: obter um bloco atual de um quadro de vídeo, obter MVs candidatos correspondentes aos blocos vizinhos do quadro de vídeo, os blocos vizinhos são vizinhos do bloco atual, obter precisões dos MVs candidatos, realizar primeiro arredondamento das precisões com base em um esquema de arredondamento, realizar segundo arredondamento dos MVs candidatos com base no primeiro arredondamento, realizar supressão dos MVs candidatos e gerar uma lista de candidatos com base no segundo arredondamento e na supressão.
[006] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que os blocos vizinhos compreendem um primeiro bloco vizinho e um segundo bloco vizinho, e em que as precisões compreendem uma primeira precisão do primeiro bloco vizinho e uma segunda precisão do segundo bloco vizinho.
[007] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO esquema de arredondamento compreende: arredondar a primeira precisão para uma precisão alvo do bloco atual; e arredondar a segunda precisão para a precisão alvo.
[008] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO esquema de arredondamento compreende: determinar a menor precisão a partir de entre qualquer combinação da primeira precisão, a segunda precisão, e uma precisão alvo do bloco atual; e arredondar pelo menos uma da primeira precisão, a segunda precisão ou a precisão alvo para a menor precisão.
[009] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO esquema de arredondamento compreende: determinar uma precisão mediana entre qualquer combinação da primeira precisão, a segunda precisão, e uma precisão alvo do bloco atual; e arredondar pelo menos uma da primeira precisão, a segunda precisão, ou a precisão alvo para a precisão mediana.
[0010] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO esquema de arredondamento compreende: determinar uma maior precisão entre qualquer combinação da primeira precisão, a segunda precisão, e uma precisão alvo do bloco atual; e arredondar pelo menos uma da primeira precisão, a segunda precisão, ou a precisão alvo para a maior precisão.
[0011] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO esquema de arredondamento compreende: determinar uma precisão padrão; e arredondar pelo menos uma da primeira precisão, a segunda precisão, ou uma precisão alvo do bloco atual para a precisão padrão.
[0012] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a supressão compreende descartar MVs candidatos idênticos ou MVs candidatos subidênticos.
[0013] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a supressão compreende ainda a adição de MVs zero para preencher a lista de candidatos.
[0014] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO processador é ainda configurado para realizar ainda o primeiro arredondamento e o segundo arredondamento antes da supressão.
[0015] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO processador é ainda configurado para realizar ainda o primeiro arredondamento e o segundo arredondamento após a supressão.
[0016] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a lista de candidatos é uma lista de candidatos de AMVP.
[0017] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a lista de candidatos é uma lista de candidatos de mesclagem.
[0018] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO processador é ainda configurado para: selecionar um MV candidato final a partir da lista de candidatos; e sinalizar o MV candidato final em um vídeo codificado.
[0019] De acordo com outro aspecto da presente divulgação, é fornecido um método que compreende: obter um bloco atual de um quadro de vídeo; obter MVs candidatos correspondentes aos blocos vizinhos do quadro de vídeo, os blocos vizinhos são vizinhos do bloco atual; obter precisões dos MVs candidatos; realizar primeiro arredondamento das precisões com base em um esquema de arredondamento; realizar segundo arredondamento dos MVs candidatos com base no primeiro arredondamento; realizar supressão dos MVs candidatos; e gerar uma lista de candidatos com base no segundo arredondamento e na supressão.
[0020] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que os blocos vizinhos compreendem um primeiro bloco vizinho e um segundo bloco vizinho, em que as precisões compreendem uma primeira precisão do primeiro bloco vizinho e uma segunda precisão do segundo bloco vizinho e em que o esquema de arredondamento compreende: arredondar a primeira precisão para uma precisão alvo do bloco atual; e arredondar a segunda precisão para a precisão alvo.
[0021] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que oO método compreende ainda: selecionar um MV candidato final a partir da lista de candidatos; sinalizar o MV candidato final em um vídeo codificado; e transmitir o vídeo codificado.
[0022] De acordo com outro aspecto da presente divulgação, é fornecido um aparelho que compreende: um receptor configurado para receber um vídeo codificado compreendendo um cabeçalho para uma porção do vídeo codificado, o cabeçalho compreende uma precisão para todos os Mvs de um modo de codificação na porção; um processador acoplado ao receptor e configurado para decodificar o vídeo codificado para obter um vídeo decodificado com base na precisão; e um visor acoplada ao processador e configurada para exibir o vídeo decodificado.
[0023] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a porção seja uma fatia, uma região, uma CTU ou uma parte (“tile”).
[0024] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a precisão é uma de precisão de um quarto de pel, precisão de meio pel, precisão de pel inteiro, ou precisão de quatro pels.
[0025] Qualquer uma das modalidades acima pode ser combinada com qualquer uma das outras modalidades acima para criar uma nova modalidade. Essas e outras características serão compreendidas mais claramente a partir da descrição detalhada a seguir, tomada em conjunto com os desenhos e reivindicações anexos.
[0026] Para um entendimento mais completo desta divulgação, agora é feita referência à breve descrição a seguir, tomada em conexão com os desenhos anexos e a descrição detalhada, em que números de referência iguais representam partes iguais.
[0027] A Figura 1 é um diagrama esquemático de um sistema de codificação.
[0028] A Figura 2 é um diagrama de uma porção de um quadro de vídeo.
[0029] A Figura 3 é um fluxograma ilustrando um método de geração de lista de candidatos de acordo com uma modalidade da divulgação.
[0030] A Figura 4 é um diagrama esquemático de um aparelho de acordo com uma modalidade da divulgação.
[0031] Deve ser entendido desde já que, embora uma implementação ilustrativa de uma ou mais modalidades seja fornecida abaixo, os sistemas e / ou métodos divulgados podem ser implementados usando qualquer número de técnicas,
atualmente conhecidas ou existentes. A divulgação não deve de forma alguma se limitar às implementações, desenhos e técnicas ilustrativas ilustradas abaixo, incluindo os projetos e implementações exemplares ilustrados e descritos aqui, mas pode ser modificada dentro do escopo das reivindicações anexas, juntamente com seu escopo completo de equivalentes.
[0032] As seguintes abreviações e iniciais se aplicam: AMVP: predição de vetor de movimento avançada ASIC: circuito integrado de aplicação específica CPU: unidade de processamento central CTU: unidade de árvore de codificação DSP: processador de sinal digital EO: elétrico-para-ótico FPGA: arranjo de portas programáveis em campo ITU: União Internacional das Telecomunicações ITU-T: Setor de Padronização de Telecomunicações da ITU LCD: tela de cristal líquido MV: vetor de movimento OE: ótico-para-elétrico PPS: conjunto de parâmetros de imagem RAM: memória de acesso aleatório RF: frequência de rádio ROM: memória somente de leitura RX: unidade de recepção SPS: conjunto de parâmetros de sequência SRAM: RAM estática TCAM: memória de conteúdo endereçável ternária TX: unidade de transmissão.
[0033] A Figura 1 é um diagrama esquemático de um sistema de codificação 100. O sistema de codificação 100 compreende um dispositivo fonte 110, um meio 150 e um dispositivo destino 160. O dispositivo fonte 110 e o dispositivo destino 160 são telefones celulares, tablets, computadores de mesa, notebooks ou outros dispositivos adequados. O meio 150 é uma rede local, uma rede de rádio, a Internet ou outro meio adequado.
[0034] O dispositivo fonte 110 compreende um gerador de vídeo 120, um codificador 130 e uma interface de saída
140. O gerador de vídeo 120 é uma câmera ou outro dispositivo adequado para gerar vídeo. O codificador 130 pode ser referido como um codec. O codificador 130 executa a codificação de acordo com um conjunto de regras, por exemplo, como descrito em "High Efficiency Video Coding", ITU-T H.265, dezembro de 2016 ("H.265"), que é incorporado por referência. A interface de saída 140 é uma antena ou outro componente adequado para transmitir dados ao dispositivo destino 160. Alternativamente, o gerador de vídeo 120, o codificador 130 e a interface de saída 140 estão em qualquer combinação adequada de dispositivos.
[0035] O dispositivo destino 160 compreende uma interface de entrada 170, um decodificador 180 e um visor
190. A interface de entrada 170 é uma antena ou outro componente adequado para receber dados do dispositivo fonte
110. O decodificador 180 também pode ser referido como como um codec. O decodificador 180 realiza decodificação de acordo com um conjunto de regras, por exemplo, como descrito em H.265. O visor 190 é uma tela LCD ou outro componente adequado para a exibição de vídeos. Alternativamente, a interface de entrada 170, o decodificador 180 e o visor 190 estão em qualquer combinação adequada de dispositivos.
[0036] Em operação, no dispositivo fonte 110, o gerador de vídeo 120 captura um vídeo, o codificador 130 codifica o vídeo para criar um vídeo codificado, e a interface de saída 140 transmite o vídeo codificado pelo meio 150 e em direção ao dispositivo destino 160. O dispositivo fonte 110 pode armazenar localmente o vídeo ou o vídeo codificado, ou o dispositivo fonte 110 pode instruir o armazenamento do vídeo ou do vídeo codificado em outro dispositivo. O vídeo codificado compreende dados definidos em vários níveis, incluindo fatias e blocos. Uma fatia é uma região espacialmente distinta de um quadro de vídeo que o codificador 130 codifica separadamente de qualquer outra região no quadro de vídeo. Um bloco é um grupo de pixels dispostos em um retângulo, por exemplo, um quadrado de 8 x 8 pixels. Os blocos também podem ser chamados de unidades ou unidades de codificação. Outros níveis incluem regiões, CTUs e partes. No dispositivo destino 160, a interface de entrada 170 recebe o vídeo codificado do dispositivo fonte 110, o decodificador 180 decodifica o vídeo codificado para obter um vídeo decodificado, e o visor 190 exibe o vídeo decodificado. O decodificador 180 pode decodificar o vídeo codificado de maneira reversa em comparação com à forma como o codificador 130 codifica o vídeo. O dispositivo destino 160 armazena localmente o vídeo codificado ou o vídeo decodificado, ou o dispositivo destino 160 instrui o armazenamento do vídeo codificado ou do vídeo decodificado em outro dispositivo.
[0037] Juntas, codificação e decodificação são chamadas de codificação (“coding”). A codificação compreende intra-codificação e inter-codificação, que podem ser chamadas de intra-predição e inter-predição, respectivamente. A intra-predição implementa a predição espacial para reduzir a redundância espacial dentro de um quadro de vídeo. A inter-predição implementa a predição temporal para reduzir a redundância temporal entre os quadros de vídeo sucessivos.
[0038] A Figura 2 é um diagrama de uma porção 200 de um quadro de vídeo. A porção 200 compreende um bloco atual 210 e blocos vizinhos Ao 220, A; 230, B2 240, B1 250, e Bo 260. O bloco atual 210 é chamado um bloco atual porque o codificador 130 está atualmente codificando o mesmo. Os blocos vizinhos 220-260 são chamados de blocos vizinhos porque são vizinhos do bloco atual 210. O bloco vizinho Ao 220 está em uma posição no canto inferior-esquerdo, o bloco vizinho A; 230 está em uma posição no lado esquerdo-inferior, o bloco vizinho B2, 240 está na posição de canto superior- esquerdo, o bloco vizinho B, 250 está na posição de lado superior-direito, e o bloco vizinho Bo 260 está na posição de canto superior-direito. Na inter-predição, o codificador 130 determina um MV do bloco atual 210 com base nos MVs dos blocos vizinhos 220-260. Os MVs dos blocos vizinhos 220-260 já são conhecidos quando o codificador 130 está codificando o bloco atual 210.
[0039] AMVP e mesclagem são dois modos de codificação que o codificador 130 pode usar para determinar o MV do bloco atual 210. Na AMVP, o codificador 130 determina uma lista de candidatos de MV varrendo sequencialmente os blocos vizinhos 220-260 da seguinte maneira: Ao 220, A, 230, uma versão escalonada de Ao 220, uma versão escalonada de A; 230, Bo 260, B, 250, B>7 240, uma versão escalonada de Bo 260, uma versão escalonada de B;' 250, uma versão escalonada de B> 240, um candidato colocalizado inferior direito temporal, um candidato colocalizado central temporal, e um MV zero. A partir dessa lista de candidatos, o codificador 130 seleciona o melhor candidato e indica o melhor candidato em um sinal para o dispositivo destino 160. Na mesclagem, o codificador 130 determina uma lista de candidatos de MVs por varrer sequencialmente os blocos vizinhos da seguinte maneira: A: 230, B1 250, Bo 260, Ao 220, B2 240, candidato colocalizado inferior direito temporal, candidato colocalizado central temporal, e um MV zero. A partir dessa lista de candidatos, o codificador 130 seleciona o melhor candidato e indica o melhor candidato em um sinal para o dispositivo destino 160. Embora a AMVP e a mesclagem varram os blocos vizinhos 220- 260, outros modos de codificação podem varrer blocos vizinhos diferentes que não são mostrados.
[0040] AMVP e mesclagem ambas definem precisões para MVs. Precisões indicam uma distância entre pixels que servem como um multiplicador para definir um MV. No contexto das precisões, pixels podem ser chamados de pels. Assim, as precisões incluem precisão de um quarto de pel, precisão de meio pel, precisão de pel inteiro e precisão de quatro pels. A precisão de um quarto de pel define um MV em termos de um quarto de distância entre pixels, de modo que o MV possa ser 0,25, 0,5, 0,75, 1,0, 1,25 e assim por diante. O codificador 130 codifica precisões como bandeiras em cabeçalhos de fatia. Um cabeçalho de fatia é um cabeçalho no início de um sinal de fatia que indica dados aplicáveis a toda a fatia.
Alternativamente, o codificador 130 codifica precisões como bandeiras ou outros dados nos cabeçalhos dos blocos.
[0041] Tanto a AMVP quanto a mesclagem definem regras para determinar candidatos qualificados para suas listas de candidatos. Por exemplo, se dois MVs candidatos são iguais, o codificador 130 remove um desses MVs candidatos. O codificador 130 continua aplicando essas regras até preencher as listas de candidatos com um número máximo de candidatos permitidos. Essas regras são bem definidas quando os MVs candidatos têm a mesma precisão. No entanto, é desejável fornecer regras eficientes de codificação para MVs candidatos com diferentes precisões.
[0042] São divulgadas aqui modalidades para seleção e sinalização de precisões de MV. As modalidades fornecem obter MVs com diferentes precisões, arredondam essas precisões de maneira uniforme, arredondam MVs, e geram listas de candidatos. As modalidades ainda fornecem para precisões de sinalização no nível de fatia, região, CTU ou parte. As modalidades se aplicam a AMVP, mesclagem e outros modos de codificação adequados.
Geração de lista de candidatos de AMVP
[0043] Em uma primeira modalidade da geração de lista de candidatos de AMVP, o codificador 130 considera três precisões: uma primeira precisão de um primeiro bloco vizinho 220-260, uma segunda precisão de um segundo bloco vizinho 220-260 e uma terceira precisão do bloco atual 210. Por exemplo, o codificador 130 considera precisões do bloco vizinho 220, do bloco vizinho 230 e do bloco atual 210. A terceira precisão pode ser referida como uma precisão alvo, porque está associada ao bloco atual 210, que é um alvo de codificação. Utilizando as três precisões, o codificador 130 executa o seguinte pseudocódigo: i=0 if(availableFlagLXA) ( mvpListLX[ i++] = mvLXA if(availableFlagLXB && ( RoundMvPrecisionToTarget (mMvLXA) RoundMvPrecisionToTarget (mvLXB) mMVLXA! = mvLXB))) mvVvpListLX[ i++ ] = mvLXB |) else if(availableFlagLXB) mvpListLX[i++] = mvLXB if(i <2 && availableFlagLXCol) mvpListLX[ i++] = mvLXCol while(i < 2) ( mvpListLX[i1] [0] = O mvpListLX[1] [1] = O i++ )
[0044] O pseudocódigo implementa as seguintes regras: se a precisão alvo usa uma maior precisão, O codificador 130 arredonda para cima a primeira precisão e a segunda precisão para a precisão alvo. Se a precisão alvo usa uma menor precisão, então o codificador 130 arredonda para baixo a primeira precisão e a segunda precisão para a precisão alvo. Caso contrário, o codificador 130 arredonda para cima a primeira precisão ou a segunda precisão, o que for menor, para a precisão alvo, e o codificador 130 arredonda para baixo a primeira precisão ou a segunda precisão, o que for maior, para a precisão alvo. Menor significa numericamente menor, e maior significa numericamente maior. Assim, uma precisão de um quarto de pel de 0,25 é menor que uma precisão de pel inteiro de 1,0.
[0045] Após arredondar as precisões, o codificador 130 arredonda para cima ou arredonda para baixo os MVs candidatos com base nessas precisões. Por exemplo, se um MV candidato for 1,25 e tem uma precisão nativa de 0,25, e se a precisão alvo for 0,5, então o codificador 130 arredonda para cima o MV candidato para 1,5. Uma precisão nativa é a precisão de um MV antes do codificador 130 arredondar para cima ou para baixo essa precisão de acordo com o pseudocódigo acima. Finalmente, para cada MV candidato, o codificador 130 determina se um MV candidato idêntico ou um MV candidato subidêntico já está em uma lista de candidatos. Caso contrário, o codificador 130 adiciona o MV candidato à lista de candidatos. Nesse caso, o codificador 130 descarta o MV candidato. Subidêntico significa idêntico dentro de um limiar predefinido.
[0046] Em uma primeira alternativa, RoundMvPrecisionToLow () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determina a menor precisão entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para baixo a primeira precisão, a segunda precisão ou tanto a primeira precisão quanto a segunda precisão para essa precisão. Em uma segunda alternativa, RoundMvPrecisionToLow () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determina uma menor precisão entre a primeira precisão e a segunda precisão, então arredonda para baixo a primeira ou a segunda precisão, O que restar, a essa precisão. Em uma terceira alternativa, RoundMvPrecisionToHigh () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determina uma maior precisão entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para cima a primeira precisão, a segunda precisão, ou tanto a primeira precisão quanto a segunda precisão para essa precisão. Em uma quarta alternativa, RoundMvPrecisionToHigh () substitui RoundMvPrecisionToTarget () no pseudocódigo de modo que o codificador 130 determina uma maior precisão entre a primeira precisão e a segunda precisão, então arredonda para cima ou a primeira ou a segunda precisão, Oo que restar, a essa precisão.
[0047] Em uma quinta alternativa, RoundMvPrecisionToDefault () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 arredonda para cima ou arredonda para baixo a primeira precisão e a segunda precisão para uma precisão padrão. O codificador 130 pode primeiro receber a precisão padrão em um sinal de outro dispositivo. Em uma sexta alternativa, RoundMvPrecisionToMedian (O) substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determina uma precisão mediana entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para cima ou arredonda para baixo a primeira precisão, a segunda precisão, ou tanto a primeira precisão quanto a segunda precisão para essa precisão. Se o codificador 130 considerar um número par de precisões, então a precisão mediana pode ser uma média das duas precisões medianas.
[0048] Em uma segunda modalidade da geração de lista de candidatos de AMVP, o codificador 130 considera a precisão alvo do bloco atual 210. Usando a precisão alvo, oO codificador 130 executa o seguinte pseudocódigo: i=0O if(availableFlagLXA) ( mvpListLX[i++] = mvLXA if(availableFlagLXB && (MVLXA != mvLXB)) mvpListLX[it+t+] = mvLXB |) else if(availableFlagLXB) mvpListLX[i++] = mvLXB if(i <2 && availableFlagLXCol mvpListLX[i++] = mvLXCol if(i == 2) if(diffMotion (mMvLXM, mvLXN)) i-- while(i < 2) ( mvpListLX[i1] [0] = O mvpListLX i][1] = O i++ ) No pseudocódigo, mvLXM e mvLXN em diffMotion () podem ser mMVLXA, mvLXB ou mvLXCol.
[0049] O pseudocódigo implementa as seguintes regras para diffMotion (): para cada MV candidato, o codificador 130 determina se um MV candidato idêntico ou um MV candidato subidêntico já está em uma lista de candidatos. Caso contrário, o codificador adiciona o MV candidato à lista de candidatos. Nesse caso, o codificador 130 descarta o MV candidato. Assim, o codificador 130 considera primeiro os MVs candidatos em suas precisões nativas.
[0050] Após remover MVs candidatos idênticos ou MVs candidatos subidênticos, se uma precisão alvo usar uma maior precisão, o codificador 130 arredondará para cima as precisões candidatas para a precisão alvo. As precisões candidatas são precisões dos blocos vizinhos 2200-260. Se uma precisão alvo usa uma menor precisão, então o codificador 130 arredonda para baixo as precisões candidatas para a precisão alvo. Caso contrário, o codificador 130 arredonda para cima as precisões candidatas menores para a precisão alvo, e o codificador 130 arredonda para baixo as precisões candidatas maiores para a precisão alvo.
[0051] Após arredondar as precisões, o codificador 130 arredonda para cima ou arredonda para baixo os MVs candidatos com base nessas precisões. Para cada MV candidato, o codificador 130 determina se um MV candidato idêntico ou um MV candidato subidêntico já está em uma lista de candidatos. Caso contrário, o codificador 130 mantém o MV candidato na lista de candidatos. Nesse caso, o codificador 130 descarta o MV candidato da lista de candidatos. Se diffMotion () retornar 1, dois MVs candidatos não serão idênticos ou subidênticos. Se diffMotion () retornar O, dois MVs candidatos serão idênticos ou subidênticos. Finalmente, se a lista de candidatos não estiver cheia, então o codificador 130 insere MVs candidatos com um valor O para preencher os pontos ausentes. Por exemplo, se a lista de candidatos tiver 10 MVs, mas apenas 8 MVs forem deixados na lista de candidatos, o codificador insere 2 MVs com um valor o.
[0052] Em uma primeira alternativa, diffMotion () opera de modo que o codificador 130 determine a menor precisão a partir de entre uma primeira precisão de um primeiro bloco vizinho 220-260, uma segunda precisão de um segundo bloco vizinho 220-260 e a precisão alvo e, em seguida, arredonda para baixo todas as precisões candidatas restantes para essa precisão. Em uma segunda alternativa, diffMotion () opera de modo que o codificador 130 determine uma maior precisão entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para cima todas as precisões candidatas restantes para essa precisão. Em uma terceira alternativa, diffMotion () opera de modo que o codificador 130 arredonde para cima ou para baixo as precisões candidatas para uma precisão padrão. O codificador 130 pode primeiro receber a precisão padrão em um sinal de outro dispositivo. Em uma quarta alternativa, diffMotion () opera de modo que o codificador 130 determine uma precisão mediana entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para cima ou arredonda para baixo a primeira precisão, a segunda precisão ou ambas a primeira precisão e a segunda precisão para essa precisão. Se o codificador 130 considerar um número par de precisões, então a precisão mediana pode ser uma média das duas precisões medianas.
[0053] Nas modalidades acima, após o codificador 130 gera uma lista de candidatos de AMVP, ele pode selecionar um candidato de MV final. O codificador 130 pode fazê-lo com base em vários critérios que são conhecidos. Uma vez que oO codificador 130 o faça, o codificador 130 pode sinalizar Oo MV candidato final no vídeo codificado. Em vez de comparar uma primeira precisão e uma segunda precisão, o codificador 130 pode comparar todas as precisões candidatas. Geração de lista de candidatos de mesclagem
[0054] Em uma primeira modalidade da geração de lista de candidatos de mesclagem, o codificador 130 considera três precisões: uma primeira precisão de um primeiro bloco vizinho 220-260, uma segunda precisão de um segundo bloco vizinho 220-260 e uma precisão alvo do bloco atual 210. A primeira modalidade da geração de lista de candidatos de mesclagem é semelhante à primeira modalidade da geração de lista de candidatos de AMVP. Utilizando as três precisões, o codificador 130 executa o seguinte pseudocódigo: i=0O if(availableFlagAl) mergeCandList[i++] = RoundMvPrecisionToTarget (Al) if(availableFlagBl && diffMotions (RoundMvPrecisionToTarget (Bl))) mergeCandList[i++] = Bl if(availableFlagBO && diffMotions (RoundMvPrecisionToTarget (BO) )) mergeCandList[i++] = BO if(availableFlagAO && diffMotions (RoundMvPrecisionToTarget (AO) )) mergeCandList[i++] = AO if(availableFlagB2 && diffMotions (RoundMvPrecisionToTarget (B2))) mergeCandList[i++] = B2 if(availableFlagCol) mergeCandList [i++] = diffMotions (RoundMvPrecisionToTarget(Col)))
[0055] O pseudocódigo implementa as seguintes regras para diffMotions (): Se a precisão alvo usa uma maior precisão, então o codificador 130 arredonda a primeira precisão e a segunda precisão para a precisão alvo. Se a precisão alvo usa uma menor precisão, então o codificador 130 arredonda a primeira precisão e a segunda precisão para a precisão alvo. Caso contrário, o codificador 130 arredonda para cima a primeira precisão ou a segunda precisão, o que for menor, para a precisão alvo, e o codificador 130 arredonda para baixo a primeira precisão ou a segunda precisão, o que for maior, para a precisão alvo.
[0056] Após arredondar as precisões, o codificador 130 ou arredonda para cima ou arredonda para baixo os MVs candidatos com base nessas precisões. Finalmente, para cada MV candidato, o codificador 130 determina se um MV candidato idêntico ou um MV candidato subidêntico já está em uma lista de candidatos. Caso contrário, o codificador 130 adiciona o MV candidato à lista de candidatos. Nesse caso, o codificador 130 descarta o MV candidato. Se diffMotion () retornar 1, dois MVs candidatos não serão idênticos ou subidênticos. Se diffMotion () retornar O, dois MVs candidatos serão idênticos ou subidênticos.
[0057] Em uma primeira alternativa, RoundMvPrecisionToLow () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determine a menor precisão entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para baixo ou a primeira precisão, a segunda precisão ou tanto a primeira precisão quanto a segunda precisão para essa precisão. Em uma segunda alternativa, RoundMvPrecisionToLow () substitui
RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determine uma menor precisão entre a primeira precisão e a segunda precisão, em seguida, arredonda para baixo ou a primeira precisão ou a segunda precisão, o que restar, para essa precisão. Em uma terceira alternativa, RoundMvPrecisionToHigh () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determina uma maior precisão entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para cima a primeira precisão, a segunda precisão, ou tanto a primeira precisão quanto a segunda precisão para essa precisão. Em uma quarta alternativa, RoundMvPrecisionToHigh () substitui RoundMvPrecisionToTarget () no pseudocódigo para que oO codificador 130 determine uma maior precisão entre a primeira precisão e a segunda precisão, então arredonda a primeira ou a segunda precisão, Oo que ocorrer, com essa precisão.
[0058] Em uma quinta alternativa, RoundMvPrecisionToDefault () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 arredonda para cima ou arredonda para baixo a primeira precisão e a segunda precisão para uma precisão padrão. O codificador 130 pode primeiro receber a precisão padrão em um sinal a partir de outro dispositivo. Em uma sexta alternativa, RoundMvPrecisionToMedian () substitui RoundMvPrecisionToTarget () no pseudocódigo, de modo que o codificador 130 determina uma precisão mediana entre a primeira precisão, a segunda precisão e a precisão alvo, então arredonda para cima ou arredonda para baixo a primeira precisão, a segunda precisão, ou tanto a primeira precisão quanto a segunda precisão para essa precisão. se o codificador 130 considerar um número par de precisões, então a precisão mediana pode ser uma média das duas precisões medianas.
[0059] Em uma segunda modalidade de geração de lista de candidatos de mesclagem, o codificador 130 considera a precisão alvo do bloco atual 210. A segunda modalidade de geração de lista de candidatos de mesclagem é semelhante à segunda modalidade de geração de lista de candidatos de AMVP. Utilizando a precisão alvo, o codificador 130 executa o seguinte pseudocódigo: i=0O if(availableFlagAl) mergeCandList[i++] = Al if(availableFlagB1l) mergeCandList[i++] = Bl if(availableFlagB0O) mergeCandList[i++] = BO if(availableFlagAO) mergeCandList[i++] = AO if(availableFlagB2) mergeCandList[i++] = B2 PruneList(); if(availableFlagcol && i < max num candidates) mergeCandList[i++] = Col
[0060] O pseudocódigo implementa as seguintes regras para PruneList (): Se uma precisão alvo usa uma maior precisão, o codificador 130 arredonda para cima as precisões candidatas para a precisão alvo. As precisões candidatas são precisões dos blocos vizinhos 220-260. Se uma precisão alvo usa uma menor precisão, então o codificador 130 arredonda para baixo as precisões candidatas para a precisão alvo. Caso contrário, o codificador 130 arredonda para cima as precisões candidatas menores para a precisão alvo, e o codificador 130 arredonda para baixo as precisões candidatas maiores para a precisão alvo.
[0061] Após arredondar as precisões, o codificador 130 arredonda para cima ou arredonda para baixo os MVs candidatos com base nessas precisões. Para cada MV candidato, o codificador 130 determina se um MV candidato idêntico ou um MV candidato subidêntico já está em uma lista de candidatos. Se não, então o codificador 130 adiciona o MV candidato à lista de candidatos. Nesse caso, o codificador 130 descarta o MV candidato e diminui i em 1. Finalmente, se a lista de candidatos não estiver cheia, o codificador 130 insere MVs candidatos com um valor O para preencher os pontos ausentes. Por exemplo, se a lista de candidatos tiver 10 MVs, mas apenas 8 MVs forem deixados na lista de candidatos, o codificador 130 insere 2 MVs com um valor 0.
[0062] Em uma primeira alternativa, PruneList () opera para que o codificador 130 determine a menor precisão a partir de entre uma primeira precisão de um primeiro bloco vizinho 220-260, uma segunda precisão de um segundo bloco vizinho 220-260 e a precisão alvo e, em seguida, arredonda para baixo todas as precisões candidatas restantes para essa precisão. Em uma segunda alternativa, PruneList () opera de modo que o codificador 130 determine uma maior precisão a partir de entre a primeira precisão, a segunda precisão e a precisão alvo, e então arredonda para cima todas as precisões candidatas restantes para essa precisão. Em uma terceira alternativa, PruneList () opera para que o codificador 130 arredonde para cima ou para baixo as precisões candidatas para uma precisão padrão. O codificador 130 pode primeiro receber a precisão padrão em um sinal a partir de outro dispositivo. Em uma quarta alternativa, PruneList () opera de modo que o codificador 130 determine uma precisão mediana entre a primeira precisão, a segunda precisão e a precisão alvo, em seguida, arredonda para cima ou arredonda para baixo a primeira precisão, a segunda precisão ou tanto a primeira precisão quanto a segunda precisão para essa precisão. Se o codificador 130 considerar um número par de precisões, então a precisão mediana pode ser uma média das duas precisões medianas.
[0063] Em uma terceira modalidade de geração de lista de candidatos de mesclagem, o codificador 130 considera a precisão alvo do bloco atual 210. A terceira modalidade de geração de lista de candidatos de mesclagem é semelhante à segunda modalidade de geração de lista de candidatos de mesclagem. No entanto, diferentemente da segunda modalidade da geração de lista de candidatos de mesclagem, que executa PruneList () antes de verificar a lista de candidatos para MVs candidatas idênticas ou MVs candidatas subidênticas, a terceira modalidade de geração de lista de candidatos de mesclagem executa PruneList () após verificar uma lista de candidatos. Utilizando a precisão alvo, o codificador 130 executa o seguinte pseudocódigo: i=0O if(availableFlagAl) mergeCandList[i++] = Al if(availableFlagBl)
mergeCandList[i++] = Bl if(availableFlagB0O) mergeCandList[i++] = BO if(availableFlagAO) mergeCandList[i++] = AO if(availableFlagB2) mergeCandList[i++] = B2 if(availableFlagCol) mergeCandList[i++] = Col PruneList()
[0064] Nas modalidades acima, após o codificador 130 gerar uma lista de candidatos de mesclagem, ele pode selecionar um candidato de MV final. O codificador 130 pode fazê-lo com base em vários critérios que são conhecidos. Uma vez que o codificador 130 o faça, o codificador 130 pode sinalizar o MV candidato final no vídeo codificado.
Sinalização de precisão
[0065] Em uma primeira modalidade de sinalização de precisão, o codificador 130 codifica uma precisão para MVs em um cabeçalho de fatia da seguinte maneira: slice segment header() ( coding mode idx mv precision[ coding mode idx ) Como mostrado, o cabeçalho de fatia indica uma precisão para todos os MVs para um único modo de codificação, que pode ser ou AMVP ou mesclagem.
[0066] Em uma segunda modalidade de sinalização de precisão, o codificador 130 codifica uma precisão para MVs em um cabeçalho de fatia da seguinte maneira:
slice segment header() ( num coding mode for(i = O; i < num coding mode; i++) ( coding mode idx mv precision used by coding mode[coding mode idx] ) ) Como mostrado, o cabeçalho de fatia indica uma precisão para todos os Mvs para múltiplos modos de codificação, que podem incluir AMVP e mesclagem.
[0067] Em uma terceira modalidade de sinalização de precisão, o codificador 130 codifica uma precisão para MVs em um cabeçalho de fatia da seguinte maneira: slice segment header() ( if (motion vector resolution control ide = = 3) ( num mv precision for(i = O; i < num mv precision; i++) ( mv precision idx[i] ) ) ) Como mostrado, o cabeçalho de fatia indica uma precisão para todos os Mvs para múltiplos modos de codificação, que podem incluir AMVP e mesclagem. A terceira modalidade de sinalização é semelhante à segunda modalidade de sinalização, mas usa uma sintaxe diferente.
[0068] Em uma quarta modalidade de sinalização de precisão, o codificador 130 codifica uma precisão para MVs em um cabeçalho de unidade de codificação da seguinte maneira:
coding unit(x0, yO, log2CbSize) ( if (motion vector resolution control ide = = 3) ( mv precision idx used by coding mode ) ) Como mostrado, o cabeçalho de unidade de codificação indica uma precisão para todos os MVs para um único modo de codificação, que pode ser ou AMVP ou mesclagem.
[0069] Em uma quinta modalidade de sinalização de precisão, o codificador 130 codifica uma precisão para MVs em um cabeçalho de unidade de codificação da seguinte maneira: coding unit(x0, yO, log2CbSize) ( if (motion vector resolution control ide = = 3) ( num coding mode for(i = O; i < num coding mode; i++) ( coding mode idx mv precision idx used by coding mode[coding mode idx] ) ) ) Como mostrado, o cabeçalho de unidade de codificação indica uma precisão para todos os MVs para múltiplos modos de codificação, que podem incluir AMVP e mesclagem.
[0070] Em uma sexta modalidade de sinalização de precisão, o codificador 130 codifica todas as precisões permitidas em um SPS em uma forma como ímvrl, mvr2,..., mvrN). Para cada cabeçalho de fatia, o codificador 130 também codifica um índice de cabeçalho de fatia indicando uma daquelas precisões que devem ser aplicadas a todos os blocos na fatia correspondente. Por exemplo, o SPS é (fíquarto de pel, pel inteiro, quatro pels) e um índice de cabeçalho de fatia é 00 indicando quarto de pel, 01 indicando pel inteiro ou 11 indicando quatro pels.
[0071] Em uma sétima modalidade de sinalização de precisão, o codificador 130 codifica todas as precisões permitidas em um SPS em uma forma como (mvrl, mvr2,..., mMVrN). Para cada cabeçalho de fatia, o codificador 130 também codifica vários índices de cabeçalho de fatia, indicando quais dessas precisões devem ser aplicadas aos blocos na fatia correspondente. Por exemplo, o SPS é (quarto de pel pel inteiro, quatro pels) e os índices de cabeçalho de fatia são qualquer combinação de 00 indicando quarto de pel, O1 indicando pel inteiro e 11 indicando quatro pels.
[0072] Em uma oitava modalidade de sinalização de precisão, o codificador 130 codifica todas as precisões permitidas em um SPS em uma forma como (mvrl, mvr2,..., mvrN). Para cada cabeçalho de fatia, o codificador 130 também codifica um índice de cabeçalho de fatia indicando um subconjunto daquelas precisões que devem ser aplicadas aos blocos na fatia correspondente. Por exemplo, o SPS é (quarto de pel, pel inteiro, quatro pels) e o índice de cabeçalho de fatia é 00 indicando (quarto de pel, pel inteiro), O1 indicando (quarto de pel, quatro pels) ou 10 indicando (pel inteiro, quatro pels).
[0073] Em uma nona modalidade de sinalização de precisão, o codificador 130 codifica todas as precisões permitidas em um SPS em uma forma como (mvrl, mvr2,..., mvrN). Para cada cabeçalho de fatia, o codificador 130 também codifica um índice de cabeçalho de fatia indicando uma dessas precisões, além de sua precisão mais fina ou mais grossa, que devem ser aplicadas aos blocos na fatia correspondente. Por exemplo, o SPS é fíquarto de pel, pel inteiro, quatro pels) e o índice de cabeçalho de fatia é 00 indicando (quarto de pel), 01 indicando (quarto de pel, pel inteiro) ou 10 indicando (pel inteiro, quatro pels) quando o cabeçalho de fatia indica uma precisão mais fina ou o índice de cabeçalho de fatia é 00 indicando (quarto de pel, pel inteiro), O1l indicando (pel inteiro, quatro pels), ou 10 indicando (quatro pels) quando o cabeçalho de fatia indica uma precisão mais grosseira.
[0074] Em uma décima modalidade de sinalização de precisão, o codificador 130 codifica todas as precisões permitidas em um SPS em uma forma como (mvrl, mvr2,..., mvrN). Para cada cabeçalho de fatia, o codificador 130 também codifica um índice de cabeçalho de fatia indicando qual dessas precisões deve ser aplicada aos blocos na fatia correspondente. Para cada cabeçalho de bloco, o codificador 130 também codifica um índice de cabeçalho de bloco indicando uma daquelas precisões que devem ser aplicadas ao bloco correspondente. Por exemplo, o SPS é (quarto de pel, pel inteiro, quatro pels), um primeiro índice de cabeçalho de fatia igual a O indica (quarto de pel, pel inteiro), um primeiro índice de cabeçalho de bloco de O no primeiro cabeçalho de fatia indica quarto de pel, um segundo índice de cabeçalho de bloco de 1 no primeiro cabeçalho de fatia indica pel inteiro, um segundo índice de cabeçalho de fatia de 1 indica (pel inteiro, quatro pels), um terceiro índice de cabeçalho de bloco de O no segundo cabeçalho de fatia indica pel inteiro, e um quarto índice de cabeçalho de bloco de 1 no segundo cabeçalho de fatia indica quatro pels.
[0075] Nas modalidades acima, em vez de codificar índices de cabeçalho no nível de fatia, o codificador 130 pode codificar os índices de cabeçalho no nível de região, nível de CTU ou nível de parte. Embora os índices sejam expressos como números binários específicos, quaisquer números binários ou outros números podem ser usados. Em vez de indicar todas as precisões em um SPS, o codificador 130 pode indicar todas as precisões em um PPS. Em vez de comparar uma primeira precisão e uma segunda precisão, o codificador 130 pode comparar todas as precisões candidatas.
[0076] A Figura 3 é um fluxograma ilustrando um método 300 de geração de lista de candidatos de acordo com uma modalidade da divulgação. O codificador 130 realiza o método 300. No passo 310, é obtido um bloco atual de um vídeo. Por exemplo, o codificador 130 obtém o bloco atual
210. No passo 320, os MVs candidatos correspondentes aos blocos vizinhos do vídeo são obtidos. Os blocos vizinhos são vizinhos do bloco atual. Por exemplo, o codificador 130 obtém MVs candidatos correspondentes aos blocos vizinhos 220-260. No passo 330, precisões dos MVs candidatos são obtidas.
[0077] No passo 340, o primeiro arredondamento das precisões é realizado com base em um esquema de arredondamento. Por exemplo, o esquema de arredondamento é um dos esquemas de arredondamento descritos acima. Assim, o esquema de arredondamento pode compreender o arredondamento para uma precisão alvo; arredondamento para uma menor precisão, uma precisão mediana ou uma maior precisão entre as precisões dos blocos vizinhos 220-260; arredondamento para uma menor precisão, uma precisão mediana ou uma maior precisão entre as precisões dos blocos vizinhos 220-260 e do bloco alvo; ou arredondamento para uma precisão padrão. No passo 350, o segundo arredondamento dos MVs candidatos é realizado com base no primeiro arredondamento. Por exemplo, o codificador 130 determina uma precisão a partir do passo 340 e arredonda para cima ou arredonda para baixo os MVs candidatos com base nessa precisão.
[0078] No passo 360, é realizada a supressão dos MVs candidatos. Por exemplo, a supressão é concluída como descrito acima. Assim, a supressão pode compreender o descarte de MVs candidatos idênticos, o descarte de MVs candidatos subidênticos ou a adição de MVs zero para preencher uma lista de candidatos. Finalmente, no passo 370, uma lista de candidatos é gerada com base no segundo arredondamento e na supressão. A lista de candidatos pode ser uma lista de candidatos de AMVP ou uma lista de candidatos de mesclagem, conforme descrito acima.
[0079] A Figura 4 é um diagrama esquemático de um aparelho 400 de acordo com uma modalidade da divulgação. O aparelho 400 pode implementar as modalidades divulgadas. O aparelho 400 compreende as portas de entrada 410 e um RX 420 para receber dados; um processador, unidade lógica, unidade de banda base ou CPU 430 para processar os dados; um TX 440 e portas de saída 450 para transmitir os dados; e uma memória 460 para armazenar os dados. O aparelho 400 também pode compreender “componentes de OE, componentes de EO ou componentes de RF acoplados às portas de entrada 410, RX 420, TX 440 e as portas de saída 450 para entrada ou saída de sinais óticos, elétricos ou sinais de RF.
[0080] O processador 430 é qualquer combinação de hardware, middleware, firmware ou software. O processador 430 compreende qualquer combinação de um ou mais chips, núcleos, FPGAs, ASICs ou DSPs da CPU. O processador 430 se comunica com as portas de entrada 410, o RX 420, o TX 440 as portas de saída 450 e a memória 460. O processador 430 compreende um componente de codificação 470, que implementa as modalidades divulgadas. A inclusão do componente de codificação 470, portanto, fornece uma melhoria substancial para a funcionalidade do aparelho 400 e efetua uma transformação do aparelho 400 para um estado diferente. Alternativamente, a memória 460 armazena o componente de codificação 470 como instruções, e o processador 430 executa essas instruções.
[0081] A memória 460 compreende qualquer combinação de discos, unidades de fita ou unidades de estado sólido. O aparelho 400 pode usar a memória 460 como um dispositivo de armazenamento de dados com excesso de fluxo para armazenar programas quando o aparelho 400 seleciona esses programas para execução e para armazenar instruções e dados que o aparelho 400 1ê durante a execução desses programas. A memória 460 pode ser volátil ou não volátil e pode ser qualquer combinação de ROM, RAM, TCAM ou SRAM.
[0082] Em uma modalidade exemplar, um aparelho compreende: um elemento de memória; e um elemento de processador acoplado ao elemento de memória e configurado para: obter um bloco atual de um quadro de vídeo, obter MVs candidatos correspondentes aos blocos vizinhos do quadro de vídeo, os blocos vizinhos são vizinhos do bloco atual, obter precisões dos MVs candidatos, realizar primeiro arredondamento das precisões com base em um esquema de arredondamento, realizar segundo arredondamento dos MVs candidatos com base no primeiro arredondamento, realizar supressão dos MVs candidatos, e gerar uma lista de candidatos com base no segundo arredondamento e na supressão.
[0083] Embora várias modalidades tenham sido fornecidas na presente divulgação, pode ser entendido que os sistemas e métodos divulgados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente divulgaçã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 outro sistema ou certos recursos podem ser omitidos ou não implementados.
[0084] 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, componentes, técnicas ou métodos sem se afastar do escopo da presente divulgação. Outros itens mostrados ou discutidos como acoplados podem ser acoplados diretamente ou podem ser indiretamente acoplados ou comunicados 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 determináveis por um especialista na técnica e podem ser feitos sem se afastar do espírito e escopo aqui divulgados.
Claims (20)
- REIVINDICAÇÕES l. Aparelho, caracterizado pelo fato de que compreende: uma memória; e um processador acoplado à memória e configurado para: obter um bloco atual de um quadro de vídeo, obter vetores de movimento candidatos (MVs) correspondentes aos blocos vizinhos do quadro de vídeo, os blocos vizinhos são vizinhos do bloco atual, obter precisões dos MVs candidatos, realizar primeiro arredondamento das precisões com base em um esquema de arredondamento, realizar segundo arredondamento dos MVs candidatos com base no primeiro arredondamento, realizar supressão dos MVs candidatos e gerar uma lista de candidatos com base no segundo arredondamento e na supressão.
- 2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que os blocos vizinhos compreendem um primeiro bloco vizinho e um segundo bloco vizinho, e em que as precisões compreendem uma primeira precisão do primeiro bloco vizinho e uma segunda precisão do segundo bloco vizinho.
- 3. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o esquema de arredondamento compreende: arredondar a primeira precisão para uma precisão alvo do bloco atual; e arredondar a segunda precisão para a precisão alvo.
- 4. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o esquema de arredondamento compreende: determinar uma menor precisão a partir de entre qualquer combinação da primeira precisão, a segunda precisão, e uma precisão alvo do bloco atual; e arredondar pelo menos uma da primeira precisão, a segunda precisão ou a precisão alvo para a menor precisão.
- 5. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o esquema de arredondamento compreende: determinar uma precisão mediana a partir de entre qualquer combinação da primeira precisão, a segunda precisão, e uma precisão alvo do bloco atual; e arredondar pelo menos uma da primeira precisão, a segunda precisão, ou a precisão alvo para a precisão mediana.
- 6. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o esquema de arredondamento compreende: determinar uma maior precisão a partir de entre qualquer combinação da primeira precisão, a segunda precisão, e uma precisão alvo do bloco atual; e arredondar pelo menos uma da primeira precisão, a segunda precisão, ou a precisão alvo para a maior precisão.
- 7. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o esquema de arredondamento compreende: determinar uma precisão padrão; e arredondar pelo menos uma da primeira precisão, a segunda precisão, ou uma precisão alvo do bloco atual para a precisão padrão.
- 8. Aparelho, de acordo com a reivindicação 1,caracterizado pelo fato de que a supressão compreende descartar MVs candidatos idênticos ou MVs candidatos sub- idênticos.
- 9. Aparelho, de acordo com a reivindicação 8, caracterizado pelo fato de que a supressão compreende ainda adicionar MVs zero para preencher a lista de candidatos.
- 10. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o processador é ainda configurado para ainda realizar primeiro arredondamento e o segundo arredondamento antes da supressão.
- 11. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o processador é ainda configurado para ainda realizar primeiro arredondamento e o segundo arredondamento após a supressão.
- 12. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a lista de candidatos é uma lista de candidatos de predição de vetor de movimento avançada (AMVP).
- 13. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a lista de candidatos é uma lista de candidatos de mesclagem.
- 14. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o processador é ainda configurado para: selecionar um MV candidato final na lista de candidatos; e sinalizar o MV candidato final em um vídeo codificado.
- 15. Método, caracterizado pelo fato de que compreende: obter um bloco atual de um quadro de vídeo; obter vetores de movimento candidatos (MVs)correspondentes aos blocos vizinhos do quadro de vídeo, os blocos vizinhos são vizinhos do bloco atual; obter precisões dos MVs candidatos; realizar primeiro arredondamento das precisões com base em um esquema de arredondamento; realizar segundo arredondamento dos MVs candidatos com base no primeiro arredondamento; realizar supressão dos MVs candidatos; e gerar uma lista de candidatos com base no segundo arredondamento e na supressão.
- 16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que os blocos vizinhos compreendem um primeiro bloco vizinho e um segundo bloco vizinho, em que as precisões compreendem uma primeira precisão do primeiro bloco vizinho e uma segunda precisão do segundo bloco vizinho, e em que o esquema de arredondamento compreende: arredondar a primeira precisão para uma precisão alvo do bloco atual; e arredondar a segunda precisão para a precisão alvo.
- 17. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que compreende ainda: selecionar um MV candidato final a partir da lista de candidatos; sinalizar o MV candidato final em um vídeo codificado; e transmitir o vídeo codificado.
- 18. Aparelho caracterizado pelo fato de que compreende: um receptor configurado para receber um vídeo codificado compreendendo um cabeçalho para uma porção do vídeo codificado, o cabeçalho compreende uma precisão para todos os vetores de movimento (MVs) de um modo de codificação na porção; um processador acoplado ao receptor e configurado para decodificar o vídeo codificado para obter um vídeo decodificado com base na precisão; e uma exibição acoplada ao processador e configurada para exibir o vídeo decodificado.
- 19. Aparelho, de acordo com a reivindicação 18, caracterizado pelo fato de que a porção é uma fatia, uma região, uma unidade de árvore de codificação (CTU) ou uma parte.
- 20. Aparelho, de acordo com a reivindicação 18, caracterizado pelo fato de que a precisão é de precisão de um quarto de pel, precisão de meio pel, precisão de pel inteiro ou precisão de quatro pels.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762518402P | 2017-06-12 | 2017-06-12 | |
US62/518,402 | 2017-06-12 | ||
US15/982,865 US11272207B2 (en) | 2017-06-12 | 2018-05-17 | Selection and signaling of motion vector (MV) precisions |
US15/982,865 | 2018-05-17 | ||
PCT/CN2018/090181 WO2018228260A1 (en) | 2017-06-12 | 2018-06-07 | Selection and Signaling of Motion Vector (MV) Precisions |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112019026266A2 true BR112019026266A2 (pt) | 2020-06-30 |
Family
ID=64563841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112019026266-0A BR112019026266A2 (pt) | 2017-06-12 | 2018-06-07 | seleção e sinalização de precisões de vetor de movimento (mv) |
Country Status (13)
Country | Link |
---|---|
US (3) | US11272207B2 (pt) |
EP (1) | EP3639520B1 (pt) |
JP (1) | JP6915159B2 (pt) |
KR (1) | KR102331529B1 (pt) |
CN (1) | CN110710211B (pt) |
AU (1) | AU2018284733B2 (pt) |
BR (1) | BR112019026266A2 (pt) |
CA (1) | CA3066961C (pt) |
IL (1) | IL271382B2 (pt) |
MX (1) | MX2019014930A (pt) |
SG (1) | SG11201911975YA (pt) |
WO (1) | WO2018228260A1 (pt) |
ZA (1) | ZA201908548B (pt) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11272207B2 (en) | 2017-06-12 | 2022-03-08 | Futurewei Technologies, Inc. | Selection and signaling of motion vector (MV) precisions |
CN110620933B (zh) | 2018-06-19 | 2022-05-31 | 北京字节跳动网络技术有限公司 | 不同参考列表的不同精度 |
TWI815967B (zh) | 2018-09-19 | 2023-09-21 | 大陸商北京字節跳動網絡技術有限公司 | 仿射模式編解碼的模式相關自適應調整運動矢量分辨率 |
EP3895429A4 (en) * | 2019-01-31 | 2022-08-10 | Beijing Bytedance Network Technology Co., Ltd. | CONTEXT FOR CODE AN ADAPTIVE MOTION VECTOR RESOLUTION IN AFFINE MODE |
US11025948B2 (en) * | 2019-02-28 | 2021-06-01 | Tencent America LLC | Method and apparatus for motion prediction in video coding |
US20230132329A1 (en) * | 2021-10-21 | 2023-04-27 | Tencent America LLC | Interdependence Between Adaptive Resolution of Motion Vector Difference and Signaling/Derivation of Motion Vector-Related Parameters |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4401783B2 (ja) | 2002-01-24 | 2010-01-20 | 株式会社日立製作所 | 動画像の符号化方法 |
US7116831B2 (en) | 2002-04-10 | 2006-10-03 | Microsoft Corporation | Chrominance motion vector rounding |
JP4130783B2 (ja) * | 2002-04-23 | 2008-08-06 | 松下電器産業株式会社 | 動きベクトル符号化方法および動きベクトル復号化方法 |
DE10236694A1 (de) | 2002-08-09 | 2004-02-26 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren |
US7620106B2 (en) | 2003-09-07 | 2009-11-17 | Microsoft Corporation | Joint coding and decoding of a reference field selection and differential motion vector information |
US8098732B2 (en) * | 2007-10-10 | 2012-01-17 | Sony Corporation | System for and method of transcoding video sequences from a first format to a second format |
TW201041404A (en) | 2009-03-06 | 2010-11-16 | Sony Corp | Image processing device and method |
WO2011096770A2 (ko) * | 2010-02-02 | 2011-08-11 | (주)휴맥스 | 영상 부호화/복호화 장치 및 방법 |
EP2625858A4 (en) | 2010-10-06 | 2015-01-14 | Intel Corp | SYSTEM AND METHOD FOR MOVING VECTOR REMOVAL WITH LOW COMPLEXITY |
US8526495B2 (en) | 2010-11-22 | 2013-09-03 | Mediatek Singapore Pte. Ltd. | Apparatus and method of constrained partition size for high efficiency video coding |
CN102611887B (zh) | 2011-01-21 | 2015-08-05 | 华为技术有限公司 | 非整像素位置运动矢量的坐标值取整方法和装置 |
US9049452B2 (en) | 2011-01-25 | 2015-06-02 | Mediatek Singapore Pte. Ltd. | Method and apparatus for compressing coding unit in high efficiency video coding |
US9788019B2 (en) | 2011-03-09 | 2017-10-10 | Hfi Innovation Inc. | Method and apparatus of transform unit partition with reduced complexity |
JP5786478B2 (ja) * | 2011-06-15 | 2015-09-30 | 富士通株式会社 | 動画像復号装置、動画像復号方法、及び動画像復号プログラム |
US10123008B2 (en) | 2011-06-17 | 2018-11-06 | Hfi Innovation Inc. | Method and apparatus for coding of intra prediction mode |
CN103748877B (zh) | 2011-08-17 | 2017-05-10 | 联发科技(新加坡)私人有限公司 | 帧内预测方法和装置 |
EP3139596B1 (en) | 2011-09-13 | 2019-09-25 | HFI Innovation Inc. | Method and apparatus for intra mode coding in hevc |
EP2727366B1 (en) | 2011-10-11 | 2018-10-03 | MediaTek Inc. | Method and apparatus of motion and disparity vector derivation for 3d video coding and hevc |
CA2841058C (en) * | 2011-12-16 | 2021-03-23 | Panasonic Corporation | Video image coding method, video image coding device, video image decoding method, video image decoding device and video image coding/decoding device |
WO2013106986A1 (en) | 2012-01-16 | 2013-07-25 | Mediatek Singapore Pte. Ltd. | Methods and apparatuses of intra mode coding |
US9325991B2 (en) | 2012-04-11 | 2016-04-26 | Qualcomm Incorporated | Motion vector rounding |
US10085039B2 (en) * | 2012-09-21 | 2018-09-25 | Hfi Innovation Inc. | Method and apparatus of virtual depth values in 3D video coding |
US9819965B2 (en) * | 2012-11-13 | 2017-11-14 | Intel Corporation | Content adaptive transform coding for next generation video |
EP2936816B1 (en) | 2013-04-09 | 2020-04-29 | MediaTek Singapore Pte Ltd. | Method and apparatus for non-square intra mode coding |
US9749642B2 (en) * | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US10531116B2 (en) * | 2014-01-09 | 2020-01-07 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
CN105874789B (zh) | 2014-01-29 | 2019-10-29 | 联发科技股份有限公司 | 利用自适应运动向量精度的方法 |
US9918105B2 (en) | 2014-10-07 | 2018-03-13 | Qualcomm Incorporated | Intra BC and inter unification |
CN107113442B (zh) | 2014-10-31 | 2020-08-07 | 三星电子株式会社 | 用于对运动矢量进行编码/解码的方法和装置 |
WO2016078599A1 (en) * | 2014-11-20 | 2016-05-26 | Mediatek Inc. | Method of motion vector and block vector resolution control |
US10856001B2 (en) | 2015-02-24 | 2020-12-01 | Lg Electronics Inc. | Polygon unit-based image processing method, and device for same |
US10200713B2 (en) * | 2015-05-11 | 2019-02-05 | Qualcomm Incorporated | Search region determination for inter coding within a particular picture of video data |
CN106331703B (zh) | 2015-07-03 | 2020-09-08 | 华为技术有限公司 | 视频编码和解码方法、视频编码和解码装置 |
US10812822B2 (en) | 2015-10-02 | 2020-10-20 | Qualcomm Incorporated | Intra block copy merge mode and padding of unavailable IBC reference region |
US10368083B2 (en) * | 2016-02-15 | 2019-07-30 | Qualcomm Incorporated | Picture order count based motion vector pruning |
US10448011B2 (en) | 2016-03-18 | 2019-10-15 | Mediatek Inc. | Method and apparatus of intra prediction in image and video processing |
US10560718B2 (en) | 2016-05-13 | 2020-02-11 | Qualcomm Incorporated | Merge candidates for motion vector prediction for video coding |
CN109196864B (zh) * | 2016-05-24 | 2023-07-11 | 韩国电子通信研究院 | 图像编码/解码方法和用于所述方法的记录介质 |
US10230961B2 (en) | 2016-06-03 | 2019-03-12 | Mediatek Inc. | Method and apparatus for template-based intra prediction in image and video coding |
US20170374369A1 (en) | 2016-06-24 | 2017-12-28 | Mediatek Inc. | Methods and Apparatuses of Decoder Side Intra Mode Derivation |
US11356693B2 (en) * | 2016-09-29 | 2022-06-07 | Qualcomm Incorporated | Motion vector coding for video coding |
US10778999B2 (en) * | 2016-09-30 | 2020-09-15 | Qualcomm Incorporated | Frame rate up-conversion coding mode with affine motion model |
US10979732B2 (en) * | 2016-10-04 | 2021-04-13 | Qualcomm Incorporated | Adaptive motion vector precision for video coding |
US20200036967A1 (en) | 2017-02-24 | 2020-01-30 | Realnetworks, Inc. | Motion vector selection and prediction in video coding systems and methods |
US11272207B2 (en) | 2017-06-12 | 2022-03-08 | Futurewei Technologies, Inc. | Selection and signaling of motion vector (MV) precisions |
-
2018
- 2018-05-17 US US15/982,865 patent/US11272207B2/en active Active
- 2018-06-07 CN CN201880035997.0A patent/CN110710211B/zh active Active
- 2018-06-07 MX MX2019014930A patent/MX2019014930A/es unknown
- 2018-06-07 CA CA3066961A patent/CA3066961C/en active Active
- 2018-06-07 AU AU2018284733A patent/AU2018284733B2/en active Active
- 2018-06-07 EP EP18817711.7A patent/EP3639520B1/en active Active
- 2018-06-07 IL IL271382A patent/IL271382B2/en unknown
- 2018-06-07 SG SG11201911975YA patent/SG11201911975YA/en unknown
- 2018-06-07 JP JP2020518116A patent/JP6915159B2/ja active Active
- 2018-06-07 KR KR1020207000707A patent/KR102331529B1/ko active IP Right Grant
- 2018-06-07 BR BR112019026266-0A patent/BR112019026266A2/pt unknown
- 2018-06-07 WO PCT/CN2018/090181 patent/WO2018228260A1/en unknown
-
2019
- 2019-12-12 US US16/712,698 patent/US11223847B2/en active Active
- 2019-12-20 ZA ZA2019/08548A patent/ZA201908548B/en unknown
-
2021
- 2021-12-13 US US17/549,545 patent/US11843800B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3639520A1 (en) | 2020-04-22 |
SG11201911975YA (en) | 2020-01-30 |
IL271382A (en) | 2020-01-30 |
IL271382B2 (en) | 2024-02-01 |
AU2018284733A1 (en) | 2020-01-23 |
JP2020523954A (ja) | 2020-08-06 |
ZA201908548B (en) | 2021-06-30 |
EP3639520A4 (en) | 2020-05-27 |
CA3066961A1 (en) | 2018-12-20 |
IL271382B1 (en) | 2023-10-01 |
WO2018228260A1 (en) | 2018-12-20 |
CA3066961C (en) | 2023-10-03 |
MX2019014930A (es) | 2020-08-06 |
CN110710211A (zh) | 2020-01-17 |
US11272207B2 (en) | 2022-03-08 |
EP3639520B1 (en) | 2024-02-14 |
CN110710211B (zh) | 2022-06-10 |
US20220021901A9 (en) | 2022-01-20 |
US11843800B2 (en) | 2023-12-12 |
KR20200015737A (ko) | 2020-02-12 |
US11223847B2 (en) | 2022-01-11 |
KR102331529B1 (ko) | 2021-12-01 |
AU2018284733B2 (en) | 2022-07-28 |
US20220103861A1 (en) | 2022-03-31 |
US20200120356A1 (en) | 2020-04-16 |
JP6915159B2 (ja) | 2021-08-04 |
US20180359485A1 (en) | 2018-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112019026266A2 (pt) | seleção e sinalização de precisões de vetor de movimento (mv) | |
CN110291790B (zh) | 视频编码中的运动矢量(mv)约束和变换约束 | |
ES2845673T3 (es) | Copia intrabloque a nivel de fragmento | |
BR112020006568A2 (pt) | combinações de predição de dependentes de posição em codificação de vídeo | |
BR112019027821A2 (pt) | emparelhamento de gabarito com base em reconstrução parcial para derivação de vetor de movimento | |
BR112021009721A2 (pt) | informação de movimento triangular para codificação de vídeo | |
US20220191548A1 (en) | Picture prediction method, encoder, decoder and storage medium | |
BR112021001813A2 (pt) | método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador | |
BR112021013444A2 (pt) | Método, aparelho e sistema de predição de imagem, dispositivo, e mídia de armazernamento | |
BR112021000640A2 (pt) | Arredondamento de vetores de movimento para resolução de diferença de vetor de movimento adaptativa e precisão de armazenamento de vetor de movimento aumentada em codificação de vídeo | |
BR112021004858A2 (pt) | compensação de iluminação local para codificação e decodificação de vídeo usando parâmetros armazenados | |
BR112021010896A2 (pt) | Método e aparelho de codificação e decodificação de imagem de vídeo | |
BR122023021035A2 (pt) | Método de compactação do vetor de movimento, meio de armazenamento legível por computador não transitório, codificador, decodificador e meio de armazenamento | |
BR112021011723A2 (pt) | Método e aparelho de predição intra e codificador, decodificador, programa de computador, mídia de armazenamento não transitória, e fluxo de bits | |
BR112021013644A2 (pt) | Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem | |
BR112021011307A2 (pt) | Método e aparelho de predição inter, fluxo de bits e mídia de armazenamento não transitória | |
US20240040133A1 (en) | Video coding using multi-model linear model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B350 | Update of information on the portal [chapter 15.35 patent gazette] |