BR112020025364A2 - Método e aparelho para predição intra - Google Patents
Método e aparelho para predição intra Download PDFInfo
- Publication number
- BR112020025364A2 BR112020025364A2 BR112020025364-2A BR112020025364A BR112020025364A2 BR 112020025364 A2 BR112020025364 A2 BR 112020025364A2 BR 112020025364 A BR112020025364 A BR 112020025364A BR 112020025364 A2 BR112020025364 A2 BR 112020025364A2
- Authority
- BR
- Brazil
- Prior art keywords
- value
- current block
- height
- width
- denotes
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 239000013074 reference sample Substances 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 5
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer 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/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/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- 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/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/182—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 a pixel
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
- H04N19/615—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding using motion compensated temporal filtering [MCTF]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
método e aparelho para predição intra. um método para predição intra de um bloco atual de uma imagem é fornecido. o método inclui obter uma proporção de tela do bloco atual de acordo com uma largura e uma altura do bloco atual; obter um fator de ponderação com base na proporção de tela, e determinar um valor de predição intra do bloco atual com base no fator de ponderação. valor de predição intra de um bloco atual pode ser obtido com alta acurácia ou de forma menos complicada, de modo a aperfeiçoar eficiência de codificação.
Description
[0001] A presente revelação refere-se ao campo técnico de codificação e decodificação de imagem e/ou vídeo e, em particular, ao método e aparelho para predição intra.
[0002] O vídeo digital tem sido amplamente usado desde a introdução dos discos DVD. Antes da transmissão, o vídeo é codificado e transmitido usando uma mídia de transmissão. O visualizador recebe o vídeo e usa um dispositivo de visualização para decodificar e exibir o vídeo. Com o passar dos anos a qualidade de vídeo se aperfeiçoou, por exemplo, por causa de resoluções, profundidades de cores e taxas de quadros. Isto levou a maiores fluxos de dados que hoje em dia são comumente transportados pela internet e redes de comunicações móveis.
[0003] Os vídeos de maior resolução, entretanto, tipicamente exigem maior largura de banda, pois eles têm mais informações. De modo a reduzir os requisitos de largura de banda, foram introduzidos os padrões de codificação de vídeo que envolvem a compressão do vídeo. Quando o vídeo é codificado, os requisitos de largura de banda (ou requisitos de memória correspondentes em caso de armazenamento) são reduzidos. Frequentemente, esta redução vem com o custo da qualidade. Assim, os padrões de codificação de vídeo tentam encontrar um equilíbrio entre os requisitos de largura de banda e a qualidade.
[0004] A Codificação de Vídeo de Alta Eficácia (HEVC) é um exemplo de um padrão de codificação de vídeo que é comumente conhecido por vários técnicos no assunto. Em HEVC, para dividir uma unidade de codificação (CU) em unidades de predição (PU) ou unidades de transformada (TUs). O padrão de próxima geração da Codificação de Vídeo Versátil (VVC) é o projeto de vídeo conjunto mais recente do Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG) e o Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG), trabalhando juntos em uma parceria conhecida como a Equipe Conjunta de Exploração de Vídeo (JVET). A VVC também é referida como ITU-T H.266/padrão de Codificação de Vídeo da Próxima Geração (NGVC). Em VVC, ele remove os conceitos de vários tipos de partição, isto é, remove a separação dos conceitos de CU, PU e TU, exceto conforme necessário para CUs que têm um tamanho muito grande para o comprimento máximo de transformada e oferece mais flexibilidade para formatos de partição de CU.
[0005] O processamento dessas unidades de codificação (CUs) (também referidas como blocos) dependem de seu tamanho, posição especial e um modo de codificação especificado por um codificador. Os modos de codificação podem ser classificados em dois grupos, de acordo com o tipo de predição: modos de predição intra e inter. Os modos de predição intra usam amostras da mesma imagem (também referida como quadro ou imagem) para gerar amostras de referência para calcular os valores de predição para as amostras do bloco sendo reconstruído. A predição intra também é referida como predição espacial. Os modos de predição inter são projetados para predição temporal e usam amostras de referência de imagens anteriores ou seguintes para prever amostras do bloco da imagem atual.
[0006] Para um bloco retangular, um valor médio de pixels adjacentes em um determinado modo de predição intra é de menor acurácia ou muito complicado, o que leva a uma menor eficiência de codificação.
[0007] O aparelho e método para predição intra são revelados para obter o valor de predição intra de um bloco atual com alta acurácia ou de forma menos complicada, de modo a aperfeiçoar eficiência de codificação.
[0008] Um primeiro aspecto das modalidades do presente pedido revela um método para predição intra de um bloco atual implementado em um codificador ou um decodificador. O método inclui a obtenção de uma largura e uma altura do bloco atual, e comparar a largura com a altura. O método inclui adicionalmente a determinação de um valor DC do bloco atual com base no maior dentre a largura e a altura. Por exemplo, quando a largura for maior que a altura, um valor DC do bloco atual é determinado com base na largura. Quando a altura for maior que a largura, um valor DC do bloco atual é determinado com base na altura. Isso permite manter o projeto da determinação do modo DC computacionalmente simples.
[0009] Opcionalmente, uma implementação do primeiro aspecto fornece, quando a largura for maior que a altura, o valor DC é calculado por:
W −1 DC = pi + (W 1) w i =0 , w = log 2 (W ) , em que DC denota o valor DC, W denota a largura do bloco atual e p i denota amostra de referência do bloco atual.
[0010] Opcionalmente, outra implementação do primeiro aspecto fornece, quando a altura for maior que a largura, o valor DC é calculado por: H −1 DC = pi + (H 1) h i =0 , h = log 2(H ), em que DC denota o valor DC, H denota a altura do bloco atual e p i denota uma amostra de referência do bloco atual.
[0011] Um segundo aspecto das modalidades do presente pedido revela um método para predição intra de um bloco atual implementado em um codificador ou um decodificador. O método inclui a obtenção de uma largura e uma altura do bloco atual. O método inclui adicionalmente a determinação de um valor DC do bloco atual com base na largura quando a largura for maior que um produto da altura por um primeiro valor de limiar. O método inclui adicionalmente a determinação de um valor DC do bloco atual com base na altura quando a altura for maior que um produto da largura por um segundo valor de limiar. Isso permite manter o projeto de determinação do modo DC computacionalmente simples.
[0012] Opcionalmente, uma implementação do segundo aspecto fornece que o primeiro valor de limiar pode ser o mesmo que o segundo valor de limiar. Por exemplo, o primeiro valor de limiar pode ser igual a 1.
[0013] Opcionalmente, no segundo aspecto, outra implementação do aspecto fornece, quando W fTHR H , o valor DC é determinado como: W −1 DC = pi + (W 1) w i =0 , w = log 2 (W ) ,
em que DC denota o valor DC, fTHR denota o primeiro valor de limiar, W denota a largura do bloco atual, H denota a altura do bloco atual e p i denota uma amostra de referência do bloco atual.
[0014] Opcionalmente, outra implementação do segundo aspecto fornece, quando H fTHR W , o valor DC é determinado como: H −1 DC = pi + (H 1) h i =0 , h = log 2(H ), em que DC denota o valor DC, fTHR denota o segundo valor de limiar, W denota a largura do bloco atual, H denota a altura do bloco atual e p i denota amostra de referência do bloco atual.
[0015] Um terceiro aspecto das modalidades do presente pedido revela um aparelho configurado para realizar o método, de acordo com o primeiro aspecto deste pedido. Outras características e formas de implementação do aparelho, de acordo com o terceiro aspecto da invenção correspondem às características e formas de implementação do método, de acordo com o primeiro aspecto da invenção.
[0016] Um quarto aspecto das modalidades do presente pedido revela um aparelho configurado para realizar o método, de acordo com o segundo aspecto da invenção. Outras características e formas de implementação do aparelho, de acordo com o quarto aspecto da invenção correspondem às características e formas de implementação do método, de acordo com o segundo aspecto da invenção.
[0017] De acordo com um quinto aspecto, uma modalidade da invenção refere-se a um aparelho para decodificar a predição intra de um bloco atual, em que o aparelho inclui um processador e uma memória. A memória armazena instruções que fazem com que o processador realize o método, de acordo com o primeiro aspecto ou o segundo aspecto ou qualquer possível modalidade do primeiro ou segundo aspecto.
[0018] De acordo com um sexto aspecto, uma modalidade da invenção refere-se a um aparelho para codificar a predição intra de um bloco atual, em que o aparelho inclui um processador e uma memória. A memória armazena instruções que fazem com que o processador realize o método, de acordo com o primeiro aspecto ou o segundo aspecto ou qualquer possível modalidade do primeiro ou segundo aspecto.
[0019] De acordo com um sétimo aspecto, é proposta uma mídia de armazenamento legível por computador armazena instruções que quando executadas fazem com que um ou mais processadores configurados para codificar ou decodificar a predição intra de um bloco atual. As instruções fazem com que um ou mais processadores realizem um método, de acordo com o primeiro ou segundo aspecto ou qualquer possível modalidade do primeiro ou segundo aspecto.
[0020] De acordo com um oitavo aspecto, uma modalidade da invenção refere-se a um programa de computador compreendendo o código de programa para realizar o método, de acordo com o primeiro ou segundo aspecto ou qualquer possível modalidade do primeiro ou segundo aspecto quando executada em um computador.
[0021] Para fins de clareza, qualquer uma das modalidades anteriores pode ser combinada com qualquer uma ou mais das outras modalidades anteriores para criar uma nova modalidade dentro do escopo da presente revelação.
[0022] Estas e outras características serão mais claramente compreendidas a partir da seguinte descrição detalhada tomada em conjunto com os desenhos anexos e reivindicações.
[0023] As seguintes modalidades exemplares são descritas em mais detalhes com referência às figuras e desenhos anexos, em que:
[0024] A FIG. 1 mostra um diagrama esquemático ilustrando um exemplo de um sistema de codificação e decodificação de vídeo 100.
[0025] A FIG. 2 mostra um diagrama esquemático ilustrando um exemplo de um codificador de vídeo 200.
[0026] A FIG. 3 mostra um diagrama esquemático ilustrando um exemplo de um decodificador de vídeo 300.
[0027] A FIG. 4 mostra um diagrama esquemático ilustrando 67 modos de predição intra propostos.
[0028] A FIG. 5(a) mostra um modo de predição intra DC exemplar para blocos retangulares.
[0029] A FIG. 5(b) mostra outro modo de predição intra DC exemplar para blocos retangulares.
[0030] A FIG. 5(c) mostra outro modo de predição intra DC exemplar para blocos retangulares.
[0031] A FIG. 6 mostra a modalidade exemplar do cálculo do valor DC.
[0032] A FIG. 7 é um diagrama esquemático ilustrando uma estrutura exemplar de um aparelho.
[0033] Na descrição seguinte, é feita referência aos desenhos anexos, que formam parte da revelação e em que são mostrados, à título de ilustração, os aspectos específicos em que a invenção pode ser colocada.
[0034] Por exemplo, é entendido que uma revelação em relação a um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma etapa do método específica for descrita, um dispositivo correspondente pode incluir uma unidade para realizar a etapa do método descrita, mesmo se tal unidade não for explicitamente descrita ou ilustrada nas figuras. Além disso, é entendido que as características dos vários aspectos exemplares descritos neste relatório podem ser combinadas entre si, a menos que especificamente indicado de outro modo.
[0035] A codificação de vídeo tipicamente refere-se ao processamento de uma sequência de imagens, que formam o vídeo ou a sequência de vídeo. O termo foto, imagem ou quadro pode ser usado/são usados como sinônimo no campo de codificação de vídeo, bem como nesta aplicação. Cada imagem é tipicamente particionada em um conjunto de blocos não sobrepostos. A codificação/decodificação da imagem é tipicamente realizada em um nível de bloco onde, por exemplo, a predição inter de quadro ou a predição intra quadro é usada para gerar um bloco de predição, para subtrair o bloco de predição do bloco atual (o bloco atualmente processado/a ser processado) para obter um bloco residual, que é transformado adicionalmente e quantizado para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no lado do decodificador o processamento inverso é aplicado ao bloco codificado/comprimido para reconstruir o bloco (bloco de vídeo) para representação.
[0036] A predição intra é um mecanismo usado em muitas estruturas de codificação de vídeo para aumentar a eficácia de compressão nos casos onde apenas um determinado quadro pode estar envolvido. O modo DC é um dos modos de predição intra mais frequentemente selecionados. A ideia básica por trás desse modo é calcular o valor médio DC de pixels adjacentes pi que são tipicamente colocados nos lados superior e inferior de um bloco. Em métodos convencionais, uma operação de divisão é usada para calcular o valor DC, o que leva a cálculos mais complicados. Para evitar a operação de divisão, os valores DC de dois componentes para as amostras de referência pi são calculados para obter o valor DC. Os valores DC de ambos os componentes contribuem igualmente para o valor DC, o que leva a menor acurácia. A presente invenção fornece um mecanismo para obter o valor médio de pixels adjacentes com alta acurácia ou de forma menos complicada, de modo a aperfeiçoar eficiência de codificação. A seguir, modalidades de um sistema, um codificador, um decodificador e métodos correspondentes são descritos, o que pode simplificar o cálculo do valor de predição intra. O termo “amostra” nesta revelação é usado para incluir, mas não é limitado à amostra, pixel, sub-pixel e etc.
[0037] A FIG. 1 é um diagrama de bloco ilustrando um sistema de codificação e decodificação de vídeo de exemplo 100 que pode utilizar as técnicas descritas nesta revelação, incluindo técnicas para codificação e decodificação. O sistema 100 não é apenas aplicado à codificação e decodificação de vídeo, mas também aplicado à codificação e decodificação de imagens. Como mostrado na FIG. 1, o sistema 100 inclui um dispositivo de origem 102 que gera os dados de vídeo codificados para serem decodificados posteriormente por um dispositivo de destino 104. O codificador de vídeo 200 como mostrado na FIG. 2, é um exemplo de um codificador de vídeo 108 do dispositivo de origem 102. O decodificador de vídeo 300 como mostrado na FIG. 3, é um exemplo de um decodificador de vídeo 116 do dispositivo de destino 104. O dispositivo de origem 102 e o dispositivo de destino 104 podem compreendem qualquer um de uma ampla faixa de dispositivos, incluindo computadores de mesa, computadores notebooks (isto é, laptop), computadores tablet, receptores de televisão, aparelhos de telefone, tais como assim chamados telefones “inteligentes”, assim chamados pads “inteligentes”, televisões, câmeras, dispositivos de exibição, jogos de mídia digital, consoles de videogame, dispositivo de transmissão de vídeo ou semelhantes. Em alguns casos, o dispositivo de origem 102 e o dispositivo de destino 104 podem ser equipados para comunicação sem fio.
[0038] O dispositivo de destino 104 pode receber os dados de vídeo codificados para serem decodificados por meio de um enlace 112. O enlace 112 pode incluir qualquer tipo de mídia ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 102 para o dispositivo de destino
104. Em um exemplo, o enlace 112 pode compreender uma mídia de comunicação para permitir que o dispositivo de origem 102 transmita dados de vídeo codificados diretamente para o dispositivo de destino 104 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 104. A mídia de comunicação pode compreender qualquer mídia de comunicação sem fio ou com fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. A mídia de comunicação pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área ampla 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 pode ser útil para facilitar a comunicação do dispositivo de origem 102 para o dispositivo de destino 104.
[0039] Alternativamente, os dados codificados podem ser emitidos da interface de saída 110 para um dispositivo de armazenamento (não mostrado na FIG. 1). Similarmente, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada 114. O dispositivo de destino 104 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por meio de transmissão ou carregamento. As técnicas desta revelação não são necessariamente limitadas a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo no suporte de qualquer uma de uma variedade de aplicações multimídia,
tais como transmissões de televisão sem fio, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de transmissão de vídeo, por exemplo, através de Internet, codificação de vídeo digital para armazenamento em uma mídia de armazenamento digital, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 100 pode ser configurado para suportar transmissão de vídeo unilateral ou bilateral para suportar aplicações, tais como transmissão de vídeo, reprodução de vídeo, dispersão de vídeo e/ou telefonia de vídeo.
[0040] No exemplo da FIG. 1, o dispositivo de origem 102 inclui uma fonte de vídeo 106, um codificador de vídeo 108 e uma interface de saída 110. Em alguns casos, a interface de saída 110 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de origem 102, a fonte de vídeo 106 pode incluir uma fonte, tal como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado anteriormente, uma interface de alimentações de vídeo para receber vídeo de um provedor de conteúdo de vídeo e/ou um sistema de computação gráfica para gerar dados de computação gráfica como a fonte de vídeo ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 106 for uma câmera de vídeo, o dispositivo de origem 102 e o dispositivo de destino 104 podem formar os assim chamados telefones com câmera ou telefones com vídeo. Entretanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas às aplicações sem fio e/ou com fio.
[0041] O vídeo capturado, pré-capturado ou vídeo gerado por computador pode ser codificado pelo codificador de vídeo 108. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 104 através da interface de saída 110 do dispositivo de origem 102. Os dados de vídeo codificados também podem (ou alternativamente) ser armazenados no dispositivo de armazenamento para acesso posterior pelo dispositivo de destino 104 ou outros dispositivos, para decodificação e/ou reprodução.
[0042] O dispositivo de destino 104 inclui uma interface de entrada 114, um decodificador de vídeo 116 e um dispositivo de exibição 118. Em alguns casos, a interface de entrada 114 pode incluir um receptor e/ou um modem. A interface de entrada 114 do dispositivo de destino 104 recebe os dados de vídeo codificados através do enlace 112. Os dados de vídeo codificados comunicados através do enlace 112 ou fornecidos no dispositivo de armazenamento, podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 108 para o uso por um decodificador de vídeo, tal como o decodificador de vídeo 116, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em uma mídia de comunicação, armazenados em uma mídia de armazenamento ou armazenados em um servidor de arquivos.
[0043] O dispositivo de exibição 118 pode ser integrado ou externo ao dispositivo de destino 104. Em alguns exemplos, o dispositivo de destino 104 pode incluir um dispositivo de exibição integrado e também ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 104 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 118 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 uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo orgânico emissor de luz (OLED) ou outro tipo de dispositivo de exibição.
[0044] O codificador de vídeo 108 e o decodificador de vídeo 116 podem operar, de acordo com qualquer tipo de padrão de compressão de vídeo incluindo, mas não limitado a MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), a Codificação de Vídeo de Alta Eficácia (HEVC), ITU-T H.266/padrão de Codificação de Vídeo da Próxima Geração (NGVC).
[0045] É geralmente considerado que o codificador de vídeo 108 do dispositivo de origem 102 pode ser configurado para codificar dados de vídeo, de acordo com qualquer um desses padrões atuais ou futuros. Similarmente, também é geralmente considerado que o decodificador de vídeo 116 do dispositivo de destino 104 pode ser configurado para decodificar dados de vídeo, de acordo com qualquer um desses padrões atuais ou futuros.
[0046] O codificador de vídeo 108 e o decodificador de vídeo 116, cada um, podem ser implementados como qualquer um de uma variedade de circuitos codificadores adequados, tais como um ou mais microprocessadores, processadores sinal digital (DSPs), circuitos integrados específicos da aplicação (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia legível por computador não transitória adequada e executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Cada um dos codificadores de vídeo 108 e dos decodificadores de vídeo 116 podem ser incluídos em um ou mais codificadores ou decodificadores, qualquer um dos quais podem ser integrados como parte de um codificador/decodificador combinados (CODEC) em um respectivo dispositivo.
[0047] Nas especificações de codificação de vídeo, uma sequência de vídeo tipicamente inclui uma série de imagens. Entretanto, é observado que a presente revelação também é aplicável aos campos no caso de o entrelaçamento ser aplicado. O codificador de vídeo 108 pode emitir um fluxo de bits que inclui uma sequência de bits que forma uma representação de imagens codificadas e dados associados. O decodificador de vídeo 116 pode receber um fluxo de bits gerado pelo codificador de vídeo 108. Além disso, o decodificador de vídeo 116 pode analisar o fluxo de bits para obter elementos de sintaxe do fluxo de bits. O decodificador de vídeo 116 pode reconstruir as imagens dos dados de vídeo com base pelo menos em parte nos elementos de sintaxe obtidos do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser geralmente recíproco ao processo realizado pelo codificador de vídeo
108.
[0048] A FIG. 2 mostra um diagrama esquemático ilustrando um exemplo de um codificador de vídeo 200. O codificador de vídeo 200 não é apenas aplicado à codificação de vídeo, mas também aplicado à codificação de imagem. O codificador de vídeo 200 compreende uma entrada para receber blocos de entrada de quadros ou imagens de um vídeo atual e uma saída para gerar um bit de vídeo codificado atual. O codificador de vídeo 200 é adaptado para aplicar predição, transformada, quantização e codificação de entropia ao vídeo atual. A transformada, quantização e codificação de entropia são realizadas, respectivamente, por uma unidade de transformada 201, uma unidade de quantização 202 e uma unidade de codificação 203 de como a gerar como uma saída o bit de vídeo codificado atual.
[0049] O vídeo atual corresponde a uma pluralidade de quadros, em que cada quadro é dividido em blocos de um certo tamanho que são codificados intra ou inter. Os blocos, por exemplo, do primeiro quadro do vídeo atual são codificados intra por meio de uma unidade de predição intra 209. Um quadro é codificado intra usando apenas as informações dentro do mesmo quadro, de modo que possa ser decodificado independentemente e possa fornecer um ponto de entrada no bit atual para acesso aleatório. Os blocos de outros quadros do vídeo atual são codificados inter por meio de uma unidade de predição inter 210: informações de quadros codificados, que são chamados quadros de referência, são usadas para reduzir a redundância temporal, de modo que cada bloco de um quadro codificado inter é predito de um bloco do mesmo tamanho em um quadro de referência. Uma unidade de seleção de modo 208 é adaptada para selecionar se um bloco de um quadro deve ser processado pela unidade de predição intra 209 ou pela unidade de predição inter 210.
[0050] Para realizar a predição inter, os quadros de referência codificados são processados por uma unidade de quantização inversa 204, uma unidade de transformada inversa 205, uma unidade de filtragem inversa 206 (opcional) de modo a obter os quadros de referência que são, em seguida, armazenados em um buffer de quadro 207. Particularmente, os blocos de referência do quadro de referência podem ser processados por estas unidades para obter blocos de referência reconstruídos. Os blocos de referência reconstruídos são, em seguida, recombinados no quadro de referência.
[0051] A unidade de predição inter 210 compreende como entrada um quadro ou imagem atual a ser codificado inter e um ou vários quadros de referência ou imagens do buffer de quadro 207. A estimativa de movimento e compensação de movimento são aplicadas pela unidade de predição inter 210. A estimativa de movimento é usada para obter um vetor de movimento e um quadro de referência com base em certa função de curto. A compensação de movimento, em seguida, descreve um bloco atual do quadro atual em termos da transformada de um bloco de referência do quadro de referência para o quadro atual. A unidade de predição inter 210 emite um bloco de predição para o bloco atual, em que o referido bloco de predição minimiza a diferença entre o bloco atual a ser codificado e seu bloco de predição, isto é, minimiza o bloco residual. A minimização do bloco residual é com base, por exemplo, em um procedimento de otimização de taxa de distorção.
[0052] A diferença entre o bloco atual e sua predição, isto é, o bloco residual são, em seguida, transformadas pela unidade de transformada 201. Os coeficientes de transformada são quantizados e a entropia codificada pela unidade de quantização 202 e pela unidade de codificação 203. O bit de vídeo codificado atual compreende blocos codificados intra e blocos codificados inter.
[0053] A FIG. 3 mostra um diagrama esquemático ilustrando um exemplo de um decodificador de vídeo 300. O decodificador de vídeo 300 não é apenas aplicado à decodificação de vídeo, mas também aplicado à decodificação de imagem. O decodificador de vídeo 300 compreende particularmente um buffer de quadro 307, uma unidade de predição inter 310. O buffer de quadro 307 é adaptado para armazenar pelo menos um quadro de referência obtido a partir do bit de vídeo codificado atual. A unidade de predição inter 310 é adaptada para gerar um bloco de predição de um bloco atual de um quadro atual de um bloco de referência do quadro de referência.
[0054] O decodificador 300 é adaptado para decodificar o bit de vídeo codificado atual gerado pelo codificador de vídeo 200 e tanto o decodificador 300 quanto o codificador 200 geram predições idênticas. As características do buffer de quadro 307, a unidade de predição inter 310 são similares às características do buffer de quadro 207, a unidade de predição inter 210, da FIG. 2.
[0055] Particularmente, o decodificador de vídeo 300 compreende unidades que também estão presentes no codificador de vídeo 200 como, por exemplo, uma unidade de quantização inversa 304, uma unidade de transformada inversa 305, uma unidade de filtragem 306 (opcional) e uma unidade de predição intra 309 que, respectivamente, correspondem à unidade de quantização inversa 204, à unidade de transformada inversa 205, à unidade de filtragem 206 e à unidade de predição intra 209 do codificador de vídeo 200. Uma unidade de decodificação 303 é adaptada para decodificar o bit de vídeo codificado atual recebido e para obter correspondentemente coeficientes de transformada residuais quantizados. Os coeficientes de transformada residuais quantizados são alimentados para a unidade de quantização inversa 304 e uma unidade de transformada inversa 305 para gerar um bloco residual. O bloco residual é adicionado a um bloco de predição e a adição é alimentada para a unidade de filtragem 306 para obter o vídeo decodificado. Os quadros do vídeo decodificado pode ser armazenado no buffer de quadro 307 e serve como um quadro de referência para predição inter.
[0056] O codificador de vídeo 200 pode dividir o quadro de vídeo de entrada em blocos antes da codificação. O termo “bloco” nesta revelação é usado para qualquer tipo bloco ou para qualquer bloco de profundidade, por exemplo, o termo “bloco” é incluído, mas não limitado ao bloco raiz, bloco, sub- bloco, nó folha e etc. Os blocos a serem codificados não têm necessariamente o mesmo tamanho. Uma imagem pode incluir blocos de diferentes tamanhos e os rasters de bloco de diferentes imagens de sequência de vídeo também podem ser diferentes.
[0057] De acordo com o padrão HEVC/H.265, os modos de predição intra 35 estão disponíveis. Como mostrado na FIG. 4, este conjunto contém os seguintes modos: modo planar (o índice de modo de predição intra é 0), modo DC (o índice de modo de predição intra é 1), e modos direcionais (angulares) que cobrem a faixa de 180° e têm a faixa de valor de índice de modo de predição intra de 2 a 34 mostrada por setas pretas na FIG. 4. Para capturar as direções de borda arbitrárias presentes no vídeo natural, o número de modos direcionais intra é estendido de 33, como usado em HEVC, para 65. Os modos direcionais adicionais são representados como setas pontilhadas na FIG. 4, e os modos planar e DC permanecem os mesmos. É importante notar que a faixa que é coberta pelos modos de predição intra pode ser maior que 180°. Em particular, 62 modos direcionais com valores de índice de 3 a 64 cobrem a faixa de aproximadamente 230°, isto é, vários pares de modos têm direcionalidade oposta. No caso do Modelo de Referência HEVC (HM) e plataformas JEM, apenas um par de modos angulares (isto é, modos 2 e 66) tem direcionalidade oposta como mostrado na FIG. 4. Para construir um preditor, modos angulares convencionais obtém amostras de referência e (se necessário) filtra-as para obter um preditor de amostra. O número de amostras de referência necessárias para construir um preditor depende do comprimento do filtro usado para interpolação (por exemplo, filtros bilineares e cúbicos têm comprimentos de 2 e 4, respectivamente).
[0058] A revelação propõe um mecanismo para evitar uma operação de divisão com alta acurácia enquanto calcula um valor de predição intra, tal como um valor DC. A revelação leva em conta comprimentos reais de lados adjacentes, o que requer 1 multiplicação por bloco, algumas outras operações aritméticas elementares e uma tabela de consulta (Look up table, LUT). O tamanho da LUT é reduzido em comparação com uma implementação direta deste método. A operação de multiplicação e a LUT não são necessários para blocos quadrados que podem ser importantes para os blocos menores (4x4 para luma e 2x2 para croma) para evitar tais operações como multiplicação para o pior caso, quando uma imagem ou sua parte é subdividida nos menores blocos. Além disso, o mecanismo proposto pode ser combinado com os métodos convencionais e/ou outras simplificações. Neste caso, o método proposto é usado para blocos maiores e/ou blocos alongados. A técnica com base em métodos convencionais é aplicada aos blocos de tamanhos menores e com o formato próximo ao quadrado. Além disso, o valor DC pode ser estimado tomando amostras de referência apenas junto com um lado mais longo para blocos muito alongados (por exemplo, 64x4). Os detalhes no processo de cálculo são descritos abaixo.
[0059] A FIG. 5(a) é uma modalidade de um determinado modo de predição intra para blocos retangulares, por exemplo, o modo de predição intra DC. Como mostrado na FIG. 5(a), W≠H, o bloco atual é um bloco retangular, onde W e H denotam a largura e a altura de um bloco, respectivamente.
Levando em consideração que W = 2 e H = 2 (isto é, os comprimentos dos w h lados de um bloco são potências de 2), a soma da largura e da altura pode ser escrita como a seguir: W + H = 2 w + 2 h = 2 w + 2 w = 2 w+1 (1) Quando W > H, ( ) W + H = 2 h 2 w−h + 1 . (2-1) Quando H > W, ( ) W + H = 2 w 2 h −w + 1 . (2-2)
[0060] Quando W > H, as proporções de tela RA de blocos orientados horizontal e verticalmente são: RA = 2 w− h (3 - 1)
[0061] Quando H > W, as proporções de tela RA de blocos orientados horizontalmente e verticalmente são: RA = 2 h− w (3 -2)
[0062] Vamos m = min (w, h), em seguida, às fórmulas (2 - 1) e (2 - 2) podem ser escritas novamente como a seguir: W + H = 2m (RA + 1) . (4)
[0063] O valor médio DC de pixels adjacentes pi é calculado como a fórmula (5): W + H −1 p i DC = i =0 W +H , (5)
[0064] Substituindo a fórmula (4) na fórmula (5), W + H −1 p i DC = i =0 2 m (RA + 1) . (6)
[0065] A fórmula (6) pode ser escrita novamente como a seguir: 1 W + H −1 DC = pi + (1 (m − 1)) m RA + 1 i =0 . (7) onde << e >> são operações de deslocamento à esquerda e direita, respectivamente.
[0066] Visto que a profundidade de particionamento é tipicamente limitada e conhecida tanto nos lados do codificador quanto nos lados do 1 decodificador a priori, em geral, valores de RA + 1 podem ser tabulados usando uma LUT onde a quantidade de registros é calculada como a seguir: Lmax N LUT = log 2 Lmax − log 2 Lmin = log 2 Lmin , (8) onde Lmin e Lmax são comprimentos mínimos e máximos de um lado do bloco, respectivamente., de acordo com as configurações padrão de QuadTree mais Árvore Ternária (QTBT), Lmin = 4 e Lmax = 128 , isto é 128 N LUT = log 2 = log 2 32 = 5 4 . Para blocos quadrados, o método convencional pode ser aplicado ou mais um registro deve ser adicionado a LUT. 1 1 1 =
[0067] A expressão RA + 1 leva os seguintes valores: 2 + 1 3 , 1 1 1 1 1 1 1 1 1 = = = = 2 + 1 5 , 2 + 1 9 , 2 + 1 17 , 2 + 1 33 . Para manter os cálculos do valor 2 3 4 5 1 W + H −1 pi DC com acurácia durante o cálculo R A + 1 i =0 , reformular como a seguir: (1 q ) W + H −1 R +1 pi + (1 (q − 1)) q A i =0 , (9) onde q é um parâmetro de número inteiro que assume o valor máximo possível que não causa um transbordamento do tipo de dados usado. A fórmula (9) pode fornecer uma maneira para calcular o valor DC sem operação de divisão usando multiplicações de pontos fixos e operação de deslocamento de bits. Substituindo a expressão (9) na fórmula (7): (1 q ) W + H −1 DC = pi + (1 (q − 1)) q + (1 (m − 1)) m RA + 1 i =0 . (10). A fórmula (10) pode ser simplificada como a seguir: (1 q ) W + H −1 DC = pi + (1 (m + q − 1)) (m + q ) RA + 1 i = 0 . (11). A fórmula (10) pode afetar a acurácia do cálculo, mas pode reduzir (1 q ) a complexidade computacional da fórmula (10). Em cada caso, RA + 1 pode ser tabulado e armazenado na LUT. É importante notar que o valor de q pode ser diferente para diferentes valores de RA para maximizar a acurácia dos cálculos.
[0068] Como mostrado acima, uma operação de multiplicação é necessária se as fórmulas (10) ou (11) forem usadas. Por um lado, pode ser crítico se uma imagem ou uma de suas regiões for dividida em blocos muito pequenos (tais como 4x4 para luma e 2x2 para croma). Nesta situação (por exemplo, o bloco quadrado ou próximo ao bloco quadrado), o método convencional pode ser usado. Por outro lado, o método de cálculo DC convencional pode afetar adversamente a eficácia de codificação do modo DC se um bloco for muito assimétrico (por exemplo, 32x4). Assim, a técnica proposta com base nas fórmulas (10) e (11) pode ser combinada com o método com base no método de cálculo DC convencional, por exemplo, fórmulas (12) a (14). H −1 DCleft = p j + (H 1) h j =0 , (12) W −1 DC up = pi + (W 1) w i =0 , (13) DC = (DC up + DC left ) 1 . (14) onde as amostras de referência pi acima do bloco DCup e as pj amostras de referência à esquerda do bloco DCleft.
[0069] Outro mecanismo que mantém o projeto do modo DC computacionalmente simples para blocos alongados (por exemplo, 64x4) é fundamentado na suposição: W + H −1 W −1 pi + ((W + H ) 1) pi + (W 1) W −1 DC = i =0 i =0 = pi + (W 1) w W +H W i =0 se W fTHR H . (15) W + H −1 H −1 pi + ((W + H ) 1) pi + (H 1) H −1 DC = i =0 i =0 = pi + (H 1) h W +H H i =0 se H fTHR W . (16) fTHR é um valor de limiar (por exemplo, f THR = 8 ). As fórmulas (15) e (16) podem ter um valor de limiar diferente ou igual. Assim, apenas as amostras de referência do lado do bloco mais longo são usadas para calcular o valor DC.
[0070] Outra modalidade em que apenas o componente do lado mais longo é considerado ao calcular o valor DC é mostrada abaixo: W −1 DC = pi + (W 1) w i =0 , (17) se W ≥ H , H −1 DC = pi + (H 1) h i =0 , (18) se H ≥ W , w = log 2 (W ) , h = log 2 ( H ) onde , W,H são a largura e a altura (respectivamente) do bloco predito. Nesses exemplos, o valor de limiar fTHR é
1. o exemplo para equação (17) é mostrado na Fig. 5(b), e o exemplo para a equação (18) é mostrado na Fig. 5(c). (1 q )
[0071] Diferentes valores exemplares de RA + 1 e q são mostrados nas tabelas 1 e 2. (1 q ) Tabela 1. Os valores de RA + 1 para diferentes valores de q se não dependerem de RA Proporção de tela (RA) 1 2 4 8 16 32 q (bloco quadrado) 5 32 11 6 4 2 1 6 64 21 13 7 4 2 7 128 43 26 14 8 4 8 256 85 51 28 15 8 9 512 171 102 57 30 16 10 1024 341 205 114 60 31 11 2048 683 410 228 120 62 12 4096 1365 819 455 241 124
(1 q ) e RA + 1 para diferentes valores de qRA Tabela 2. Os valores de qconst q = qconst + q RA se depender de RA Proporção de tela (RA) 1 2 4 8 16 32 (bloco qcon quadrado) st qRA (1 q ) qRA (1 q ) qRA (1 q ) qRA (1 q ) qRA (1 q ) qRA (1 q ) RA + 1 RA + 1 RA + 1 RA + 1 RA + 1 RA + 1 5 1 32 1 21 2 23 3 28 4 30 3 31 6 1 64 1 43 2 51 3 57 4 60 3 62 7 1 128 1 85 2 102 3 114 4 120 3 124 8 1 256 1 171 2 205 3 228 4 241 3 248 9 1 512 1 341 2 410 3 455 4 482 3 496 10 1 1024 1 683 2 819 3 910 4 964 3 993 11 1 2048 1 1365 2 1638 3 1820 4 1928 3 1986 12 1 4096 1 2731 2 3277 3 3641 4 3855 3 3972
[0072] A FIG 6. mostra uma modalidade exemplar do cálculo do valor DC usando a invenção proposta. A entrada do processo é a largura e a altura de um bloco e os logaritmos correspondentes de largura e altura.
[0073] Na modalidade, três casos de formato de bloco são considerados. Especificamente, um caso é um formato quadrado quando a largura e a altura forem iguais, e dois casos de formato retangular quando a largura for maior que a altura e vice-versa.
[0074] A primeira etapa 601 é distinguir um caso de um formato quadrado comparando os valores de largura e altura. Para o caso de formato quadrado, valor DC é calculado convencionalmente na etapa 620 e o resto das etapas são ignoradas.
[0075] A segunda etapa 602, que inclui a etapa 6021 e a etapa 6022, é para distinguir entre os outros dois casos de formato retangular na etapa 6021 e armazenar o resulto na variável “isHor” na etapa 6022. Para ambos os casos, os valores da proporção de tela RA e os índices laterais maiores s são atribuídos correspondentemente.
[0076] A terceira etapa 603 é definir se o bloco é pequeno comparando s com um limiar pré-definido, por exemplo, 3, e o bloco não é alongado. A última condição é verificada pelo limiar de RA por outro valor de limiar (por exemplo, 2). Se ambas as condições forem satisfeitas, na etapa 630, o valor DC é calculado usando as fórmulas (12) a (14) descritas acima e o resto das etapas são ignoradas.
[0077] A quarta etapa 604 é definir se o bloco é alongado e grande o suficiente usando as condições mostradas na figura 6, por exemplo, comparando s com um limiar pré-definido, por exemplo, 4, e o bloco não é alongado. A última condição é verificada pelo limiar 2RA por outro valor de limiar fTHR . As denotações de variáveis são reveladas na descrição acima. Se estas condições forem atendidas, a próxima etapa 605 é dividir se a variável “isHor” é verdadeira ou falsa. O valor DC é calculado a partir das amostras de referência do lado esquerdo (se “isHor” for falso) na etapa 607, ou do lado superior (se “isHor” for verdadeiro) na etapa 606.
[0078] A última etapa 608 da FIG. 6 é calcular o valor DC por padrão, usando as fórmulas (10) a (11).
[0079] Outra modalidade desta invenção considera o plano de cor para o qual a predição é realizada. Especificamente, a condição “W==H?” na FIG. 6 pode ser alterada para “W==H ou isChroma?”. A variável “isChroma” é definida como verdadeira se o bloco sendo predito pertencer ao plano de cor croma (por exemplo, Cb ou Cr) e é definida como falsa se o bloco pertencer ao plano de cor luma.
[0080] A FIG. 7 é um diagrama de bloco de um aparelho 700 que pode ser usado para implementar várias modalidades. O aparelho 700 pode ser o dispositivo de origem 102 como mostrado na FIG. 1, ou o codificador de vídeo 200 como mostrado na FIG. 2, ou o dispositivo de destino 104 como mostrado na FIG. 1 ou o decodificador de vídeo 300 como mostrado na FIG. 3. Adicionalmente, o aparelho 700 pode hospedar um ou mais dos elementos descritos. Em algumas modalidades, o aparelho 700 é equipado com um ou mais dispositivos de entrada/saída, tais como um alto-falante, microfone, mouse, tela sensível ao toque, teclado numérico, teclado, impressora, monitor e semelhantes. O aparelho 700 pode incluir uma ou mais unidades de processamento central (CPUs) 710, uma memória 720, um armazenamento em massa 730, um adaptador de vídeo 740 e uma interface I/O 760 conectados a um barramento. O barramento é um ou mais de qualquer tipo de várias arquiteturas de barramento incluindo um barramento de memória ou controlador de memória, um barramento periférico, um barramento de vídeo ou semelhantes.
[0081] A CPU 710 pode ter qualquer tipo de processador de dados eletrônicos. A memória 720 pode ter, ou ser, qualquer tipo de memória de sistema, tal como memória de acesso aleatório estática (SRAM), memória de acesso aleatório dinâmica (DRAM), DRAM síncrona (SDRAM), memória somente de leitura (ROM), uma combinação das mesmas ou semelhantes. Em uma modalidade, a memória 720 pode incluir ROM para o uso na inicialização e DRAM para programa e armazenamento de dados para o uso durante a execução de programas. Nas modalidades, a memória 720 não é transitória. O armazenamento em massa 730 inclui qualquer tipo de dispositivo de armazenamento que armazena dados, programas e outras informações e para tornar os dados, programas e outras informações acessíveis através do barramento. O armazenamento em massa 730 inclui, por exemplo, uma ou mais de uma unidade de estado sólido, unidade de disco rígido, uma unidade de disco magnético, uma unidade de disco óptico ou semelhantes.
[0082] O adaptador de vídeo 740 e a interface I/O 760 fornecem interfaces para acoplar dispositivos de entrada e saída externos ao aparelho
700. Por exemplo, o aparelho 700 pode fornecer interface de comando SQL para clientes. Como ilustrado, os exemplos de dispositivos de entrada e saída incluem um monitor 790 acoplado ao adaptador de vídeo 740 e qualquer combinação de mouse/teclado/impressora 770 acoplada à interface I/O 760. Outros dispositivos podem ser acoplados ao aparelho 700, e adicionais ou menos placas de interface podem ser utilizadas. Por exemplo, uma placa de interface de série (não mostrada) pode ser usada para fornecer uma interface de série para uma impressora.
[0083] O aparelho 700 também inclui uma ou mais interfaces de rede 750, que incluem enlaces com fio, tais como um cabo de Ethernet ou semelhantes, e/ou enlaces sem fio para acessar nós ou uma ou mais redes
780. A interface de rede 750 permite que o aparelho 700 se comunique com unidades remotas através de redes 780. Por exemplo, a interface de rede 750 pode fornecer comunicação com o banco de dados. Em uma modalidade, o aparelho 700 é acoplado a uma rede de área local ou uma rede de área ampla para processamento de dados e comunicações com dispositivos remotos, tais como outras unidades de processamento, a Internet, instalações de armazenamento remoto ou semelhantes.
[0084] As vantagens da presente revelação são como a seguir:
[0085] A multiplicação é usada com alta acurácia, por exemplo, fórmulas (7), (10) e (11), para substituir uma operação de divisão no método convencional;
[0086] O tamanho da LUT necessária é mantido pequeno;
[0087] A técnica proposta pode ser combinada com outras abordagens para reduzir a complexidade computacional do pior caso para o modo DC, por exemplo, combinada com as fórmulas (12) a (14). Os blocos diferentes podem usar técnicas iguais ou diferentes, tais como, o bloco 1 pode usar a fórmula (7), o bloco 2 pode usar a fórmula (10), o bloco 3 pode usar a fórmula (11), o bloco 4 pode usar as fórmulas (12) a (14), etc.; ou os blocos usam as mesmas fórmulas (7) ou (10), ou (11), ou (15) ou (16); ou quaisquer combinações entre as técnicas propostas; ou quaisquer combinações entre as técnicas propostas e os métodos convencionais; e/ou
[0088] Para blocos muito alongados (por exemplo, 64x4), o lado mais curto pode ser ignorado para simplificar os cálculos, por exemplo, as fórmulas (15) e (16).
[0089] As modalidades podem ser aplicadas, por exemplo, a outras técnicas de predição intra, tais como DWDIP (Distance-Weighted Directional Intra-Prediction) ou LIP (Linear Intra-Prediction), respectivamente. A etapa para o componente gradual de amostras de referência secundárias para DWDIP usa o mesmo mecanismo.
[0090] As implementações do objeto de matéria e das operações descritas nesta revelação podem ser implementadas nos circuitos eletrônicos digitais ou em software, firmware, ou hardware de computador, incluindo as estruturas reveladas nesta revelação e suas equivalentes estruturas, ou em combinações de um ou mais deles. As implementações do objeto de matéria descrito nesta revelação podem ser implementadas como um ou mais programas de computador, isto é, um ou mais módulos das instruções de programa de computador, codificados na mídia de armazenamento de computador para execução por, ou para controlar a operação do aparelho de processamento de dados. Alternativamente ou além disso, as instruções de programa podem ser codificadas em um sinal propagado gerado artificialmente, por exemplo, um sinal eletromagnético, óptico ou elétrico gerado por máquina, que é gerado para codificar informações para transmissão para um aparelho receptor adequado para ser executado por um aparelho de processamento de dados. Uma mídia de armazenamento de computador, por exemplo, a mídia legível por computador, pode ser, ou ser incluída em um dispositivo de armazenamento legível por computador, um substrato de armazenamento legível por computador, um dispositivo ou arranjo de memórias de acesso aleatório ou em série, ou uma combinação de um ou mais deles. Além disso, enquanto uma mídia de armazenamento de computador não é um sinal propagado, uma mídia de armazenamento de computador pode ser uma fonte ou destino das instruções de programa de computador codificadas em um sinal propagado gerado artificialmente. A mídia de armazenamento de computador também pode ser, ou ser incluída em um ou mais componentes físicos e/ou não transitórios separados ou mídia (por exemplo, CDs múltiplos, discos ou outros dispositivos de armazenamento).
[0091] Em algumas implementações, as operações descritas nesta revelação podem ser implementadas como um serviço hospedado fornecido em um servidor em uma rede de computação na nuvem. Por exemplo, a mídia de armazenamento legível por computador pode ser agrupada logicamente e acessível dentro de uma rede de computação em nuvem. Os servidores dentro da rede de computação na nuvem podem incluir uma plataforma de computação na nuvem para fornecer serviços baseados em nuvem. Os termos “nuvem”, “computação na nuvem” e “baseado em nuvem” podem ser usados permutavelmente, como apropriado, sem se afastar do escopo desta revelação. Os serviços baseados em nuvem podem ser serviços hospedados que são fornecidos pelos servidores e fornecidos através de uma rede para uma plataforma de cliente para aprimorar, complementar ou substituir aplicações executadas localmente em um computador do cliente. O circuito pode usar serviços baseados em nuvem para receber rapidamente atualizações de software, aplicações e outros recursos que, de outro modo, exigiriam um longo período de tempo antes que os recursos pudessem ser entregues ao circuito.
[0092] Um programa de computador (também conhecido como um programa, software, aplicação de software, script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, linguagens declarativas ou procedurais, e pode ser implantado em qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, sub-rotina objeto, ou outra unidade adequada para o uso em um ambiente de computação. Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em questão ou em múltiplos arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou porções de código). Um programa de computador pode ser implantado para ser executado em um computador ou em múltiplos computadores que são localizados em um local ou distribuídos em múltiplos locais e interconectados por uma rede de comunicação.
[0093] Os processos e fluxos lógicos descritos nesta revelação podem ser realizados por um ou mais processadores programáveis executando um ou mais programas de computador para realizar ações operando em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser realizados por, e o aparelho também pode ser implementado como, circuitos lógicos para fins especiais, por exemplo, um FPGA (arranjos de portas programáveis em campo) ou um ASIC (circuito integrado específico da aplicação).
[0094] Os processadores adequados para a execução de um programa de computador incluem, à título do exemplo, microprocessadores de uso geral e especial, e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador irá receber instruções e dados a partir de uma memória somente de leitura ou uma memória de acesso aleatório ou ambas. Os elementos essenciais de um computador são um processador para realizar ações, de acordo com as instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou será operativamente acoplado para receber dados ou transferir dados para ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, magneto-ópticos ou discos ópticos. Entretanto, um computador não precisa ter tais dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone móvel, um assistente digital pessoal (PDA), um reprodutor de áudio ou vídeo móvel, um console de jogos, um receptor de Sistema de Posicionamento Global (GPS), ou um dispositivo de armazenamento portátil (por exemplo, uma unidade flash (USB) de barramento em série universal), para citar apenas alguns. Os dispositivos adequados para o armazenamento de instruções de programa de computador e dados incluem todas as formas de memória não-volátil, mídia e dispositivos de memória, incluindo, à título de exemplo, dispositivo de memória semicondutora, por exemplo, EPROM, EEPROM e dispositivos de memória flash; discos magnéticos, por exemplo, discos rígidos internos ou discos removíveis; discos magneto-ópticos; e discos CD-ROM e DVD-ROM. O processador e a memória podem ser complementados por, ou incorporados em, circuitos lógicos de propósito especial.
[0095] Embora esta revelação contenha muitos detalhes de implementação específicos, estes não devem ser interpretados como limitações no escopo de quaisquer implementações ou do que pode ser reivindicado, mas como descrições de características específicas para implementações particulares. Certas características que são descritas nesta revelação no contexto de implementações separadas também podem ser implementadas em combinação em uma única implementação. Reciprocamente, várias características que são descritas no contexto de uma única implementação também podem ser implementadas em múltiplas implementações separadamente ou em qualquer subcombinação adequada. Além disso, embora as características possam ser descritas acima como aquelas que atuam em certas combinações e mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem, em alguns casos, ser excisadas da combinação, e a combinação reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[0096] Similarmente, embora as operações sejam representadas nos desenhos em uma ordem particular, isso não deve ser entendido como exigência de que tais operações sejam realizadas na ordem particular mostrada ou na ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para obter os resultados desejáveis. Em certas circunstâncias, o processamento de múltiplas tarefas e paralelo pode ser vantajoso. Além disso, a separação de vários componentes de sistema nas implementações descritas acima não deve ser entendida como exigência de tal separação em todas as implementações, e deve ser entendido que os componentes e sistemas do programa descritos podem geralmente ser integrados juntos em um único produto de software ou empacotados em múltiplos produtos de software.
[0097] Assim, as implementações particulares do objeto de matéria foram descritas. Outras implementações estão dentro do escopo das seguintes reivindicações. Em alguns casos, as ações recitadas nas reivindicações podem ser realizadas em uma ordem diferente e ainda obter resultados desejáveis. Além disso, os processos descritos nas figuras anexas não exigem necessariamente a ordem particular ou ordem sequencial mostrada, para obter os resultados desejáveis. Em certas implementações, o processamento de múltiplas tarefas e paralelo pode ser vantajoso.
Claims (28)
1. Método para predição intra de um bloco atual de uma imagem, o método compreendendo: obter uma proporção de tela do bloco atual de acordo com uma largura e uma altura do bloco atual; obter um fator de ponderação com base na proporção de tela, e determinar um valor de predição intra do bloco atual com base no fator de ponderação.
2. Método, de acordo com a reivindicação 1, em que o bloco atual é um bloco retangular, e o valor de predição intra é um valor DC.
3. Método, de acordo com a reivindicação 1 ou 2, em que determinar o valor de predição intra do bloco atual com base em uma multiplicação entre o fator de ponderação e pixels adjacentes do bloco atual.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, em que o fator de ponderação corresponde a um inverso de uma soma da proporção de tela do bloco atual e 1.
5. Método, de acordo com a reivindicação 4, em que o fator de 1 ponderação é igual a RA + 1 , em que RA é a proporção de tela.
6. Método, de acordo com a reivindicação 4, em que o fator de (1 << q ) ponderação é igual a RA + 1 , em que RA é a proporção de tela.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, em que um valor do fator de ponderação é tabulado e armazenado em uma tabela de consulta (LUT).
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, em w h que a largura W do bloco atual W = 2 e uma altura H do bloco atual H = 2 , quando W > H, a proporção de tela RA = 2 ; w− h quando H > W, a proporção de tela RA = 2 . h− w
9. Método, de acordo com a reivindicação 8, quando o valor de predição intra for um valor DC, o valor DC é determinado como:
W + H −1 ∑p i DC = i =0 2m (RA + 1) , 1 em que m = min(w, h ) , pi é um pixel adjacente do bloco atual, RA + 1 é o fator de ponderação.
10. Método, de acordo com a reivindicação 8 ou 9, quando o valor de predição intra for um valor DC, o valor DC é determinado como: 1 W + H −1 DC = ⋅ ∑ pi + (1 << (m − 1)) >> m RA + 1 i =0 1 em que m = min(w, h ) , pi é um pixel adjacente do bloco atual, RA + 1 é o fator de ponderação, << e >> são operações de deslocamento à esquerda e à direita, respectivamente.
11. Método, de acordo com a reivindicação 8, quando o valor de predição intra for um valor DC, o valor DC é determinado como: (1 << q ) W + H −1 DC = ⋅ ∑ pi + (1 << (q − 1)) >> q + (1 << (m − 1)) >> m RA + 1 i =0 (1 << q ) em que m = min(w, h ) , pi é um pixel adjacente do bloco atual, RA + 1 é o fator de ponderação, q é um parâmetro de número inteiro que assume um valor máximo possível que não causa um transbordamento de um tipo de dados.
12. Método, de acordo com a reivindicação 8 ou 11, quando o valor de predição intra for um valor DC, o valor DC é determinado como: (1 << q ) W + H −1 DC = ⋅ ∑ pi + (1 << (m + q − 1)) >> (m + q ) RA + 1 i =0 (1 << q ) em que m = min(w, h ) , pi é um pixel adjacente do bloco atual, RA + 1 é o fator de ponderação, q é um parâmetro de número inteiro que assume um valor máximo possível que não causa um transbordamento de um tipo de dados.
13. Método, de acordo com qualquer uma das reivindicações 1 a 12, quando W > f THR ⋅ H , f THR é um valor de limiar, a largura W do bloco atual W = 2 w h e uma altura H do bloco atual H = 2 , o valor de predição intra é um valor DC, o valor DC é determinado como: W + H −1 W −1 ∑ pi + ((W + H ) >> 1) ∑ pi + (W >> 1) W −1 DC = i =0 ≈ i =0 = ∑ pi + (W >> 1) >> w W +H W i =0 .
14. Método, de acordo com qualquer uma das reivindicações 1 a 13, quando H > f THR ⋅ W , f THR é um valor de limiar, a largura W do bloco atual W = 2 w h e uma altura H do bloco atual H = 2 , o valor de predição intra é um valor DC, o valor DC é determinado como: W + H −1 H −1 ∑ pi + ((W + H ) >> 1) ∑ pi + (H >> 1) H −1 DC = i =0 ≈ i =0 = ∑ pi + (H >> 1) >> h W +H H i =0 .
15. Método, de acordo com qualquer uma das reivindicações 1 a 14, em que o método é aplicado a blocos apenas de um plano de cor de uma imagem.
16. Método para predição intra de um bloco atual de uma imagem, o método compreendendo: obter uma largura e uma altura do bloco atual; comparar a largura com a altura; quando a largura for maior que a altura, determinar um valor DC do bloco atual com base na largura; e quando a altura for maior que a largura, determinar um valor DC do bloco atual com base na altura.
17. Método, de acordo com a reivindicação 16, em que quando a largura for maior que a altura, o valor DC é calculado por: W −1 DC = ∑ pi + (W >> 1) >> w i =0 , w = log 2 (W ) em que DC denota o valor DC, W denota a largura do bloco atual, e p i denota uma amostra de referência do bloco atual.
18. Método, de acordo com a reivindicação 16, em que quando a altura for maior que a largura, o valor DC é calculado por:
H −1 DC = ∑ pi + (H >> 1) >> h i =0 , h = log 2(H ), em que DC denota o valor DC, H denota a altura do bloco atual, e p i denota uma amostra de referência do bloco atual.
19. Método para predição intra de um bloco atual de uma imagem, o método compreendendo: obter uma largura e uma altura do bloco atual; quando a largura for maior que um produto da altura por um primeiro valor de limiar, determinar um valor DC do bloco atual com base na largura; e quando a altura for maior que um produto da largura por um segundo valor de limiar, determinar um valor DC do bloco atual com base na altura.
20. Método, de acordo com a reivindicação 19, em que o primeiro valor de limiar é o mesmo que o segundo valor de limiar.
21. Método, de acordo a reivindicação 19 ou 20, em que o primeiro valor de limiar é igual a 1.
22. Método, de acordo com qualquer uma das reivindicações 19 a 21, em que quando W > f THR ⋅ H , o valor DC é determinado como: W −1 DC = ∑ p i + (W >> 1) >> w i =0 , w = log 2 (W ) em que DC denota o valor DC, f THR denota o primeiro valor de limiar, W denota a largura do bloco atual, H denota a altura do bloco atual, e p i denota uma amostra de referência do bloco atual.
23. Método, de acordo com qualquer uma das reivindicações 19 a 21, em que quando H > f THR ⋅ W , o valor DC é determinado como: H −1 DC = ∑ pi + (H >> 1) >> h i =0 , h = log 2(H ), em que DC denota o valor DC, f THR denota o segundo valor de limiar,
W denota a largura do bloco atual, H denota a altura do bloco atual, e p i denota uma amostra de referência do bloco atual.
24. Codificador (108; 200), compreendendo circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 23.
25. Decodificador (116; 300), compreendendo circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 23.
26. Produto de programa de computador, compreendendo um código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 23.
27. Decodificador para predição intra de um bloco atual de uma imagem, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 23.
28. Codificador para predição intra de um bloco atual de uma imagem, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 23.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862685297P | 2018-06-15 | 2018-06-15 | |
US62/685,297 | 2018-06-15 | ||
US201962792363P | 2019-01-14 | 2019-01-14 | |
US62/792,363 | 2019-01-14 | ||
PCT/RU2019/050084 WO2019240631A1 (en) | 2018-06-15 | 2019-06-13 | Method and apparatus for intra prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020025364A2 true BR112020025364A2 (pt) | 2021-03-09 |
Family
ID=68843334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020025364-2A BR112020025364A2 (pt) | 2018-06-15 | 2019-06-13 | Método e aparelho para predição intra |
Country Status (13)
Country | Link |
---|---|
US (2) | US11546631B2 (pt) |
EP (1) | EP3804331A4 (pt) |
JP (1) | JP7279084B2 (pt) |
KR (1) | KR102542276B1 (pt) |
CN (2) | CN115988205B (pt) |
AU (1) | AU2019286133B2 (pt) |
BR (1) | BR112020025364A2 (pt) |
CA (1) | CA3103654C (pt) |
IL (1) | IL279471B1 (pt) |
MX (1) | MX2020013782A (pt) |
SG (1) | SG11202012474SA (pt) |
WO (1) | WO2019240631A1 (pt) |
ZA (1) | ZA202007985B (pt) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115623197A (zh) * | 2018-05-12 | 2023-01-17 | 数码士有限公司 | 使用参考样本的视频信号处理方法及设备 |
IL279471B1 (en) * | 2018-06-15 | 2024-09-01 | Huawei Tech Co Ltd | A method and device for intra-image prediction |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO319007B1 (no) * | 2003-05-22 | 2005-06-06 | Tandberg Telecom As | Fremgangsmate og apparat for videokomprimering |
KR100679031B1 (ko) * | 2004-12-03 | 2007-02-05 | 삼성전자주식회사 | 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치 |
KR20130105870A (ko) * | 2010-10-27 | 2013-09-26 | 브이아이디 스케일, 인크. | 적응적 비디오 코딩을 위한 시스템 및 방법 |
MX337647B (es) | 2011-06-28 | 2016-03-14 | Samsung Electronics Co Ltd | Metodo y aparato para codificar y decodificar imagenes utilizando intra-prediccion. |
CN102857764B (zh) | 2011-07-01 | 2016-03-09 | 华为技术有限公司 | 帧内预测模式处理的方法和装置 |
AU2016269520B2 (en) | 2011-10-28 | 2017-11-02 | Samsung Electronics Co., Ltd. | Method and apparatus for intra prediction of video |
KR20150090057A (ko) * | 2012-10-08 | 2015-08-05 | 엘지전자 주식회사 | 다시점 비디오 신호의 인코딩 방법, 디코딩 방법 및 이에 대한 장치 |
US20140286413A1 (en) * | 2013-03-25 | 2014-09-25 | Qualcomm Incorporated | Disabling sign data hiding in video coding |
US10455228B2 (en) * | 2016-03-21 | 2019-10-22 | Qualcomm Incorporated | Determining prediction parameters for non-square blocks in video coding |
WO2017205703A1 (en) * | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Improved weighted angular prediction coding for intra coding |
CN117061737A (zh) | 2016-06-22 | 2023-11-14 | Lx 半导体科技有限公司 | 图像编码/解码方法以及图像数据的传输方法 |
WO2019039322A1 (en) * | 2017-08-22 | 2019-02-28 | Panasonic Intellectual Property Corporation Of America | IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD |
US11184606B2 (en) * | 2017-09-08 | 2021-11-23 | Kt Corporation | Method and device for processing video signal |
CN117201801A (zh) * | 2017-09-21 | 2023-12-08 | 株式会社Kt | 视频信号处理方法及装置 |
MX2020009968A (es) * | 2018-03-25 | 2021-01-08 | B1 Institute Image Technology Inc | Metodo y dispositivo de codificacion/decodificacion de imagen. |
IL279471B1 (en) * | 2018-06-15 | 2024-09-01 | Huawei Tech Co Ltd | A method and device for intra-image prediction |
-
2019
- 2019-06-13 IL IL279471A patent/IL279471B1/en unknown
- 2019-06-13 MX MX2020013782A patent/MX2020013782A/es unknown
- 2019-06-13 BR BR112020025364-2A patent/BR112020025364A2/pt unknown
- 2019-06-13 WO PCT/RU2019/050084 patent/WO2019240631A1/en unknown
- 2019-06-13 CA CA3103654A patent/CA3103654C/en active Active
- 2019-06-13 EP EP19818688.4A patent/EP3804331A4/en active Pending
- 2019-06-13 SG SG11202012474SA patent/SG11202012474SA/en unknown
- 2019-06-13 JP JP2020569869A patent/JP7279084B2/ja active Active
- 2019-06-13 CN CN202211555473.9A patent/CN115988205B/zh active Active
- 2019-06-13 KR KR1020217000490A patent/KR102542276B1/ko active IP Right Grant
- 2019-06-13 CN CN201980033799.5A patent/CN112534823A/zh active Pending
- 2019-06-13 AU AU2019286133A patent/AU2019286133B2/en active Active
-
2020
- 2020-12-15 US US17/121,773 patent/US11546631B2/en active Active
- 2020-12-21 ZA ZA2020/07985A patent/ZA202007985B/en unknown
-
2022
- 2022-12-23 US US18/146,299 patent/US20230128206A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2023202986A1 (en) | 2023-06-01 |
CA3103654C (en) | 2023-09-26 |
KR20210018462A (ko) | 2021-02-17 |
US20230128206A1 (en) | 2023-04-27 |
CA3103654A1 (en) | 2019-12-19 |
US20210099730A1 (en) | 2021-04-01 |
US11546631B2 (en) | 2023-01-03 |
CN112534823A (zh) | 2021-03-19 |
JP2021527362A (ja) | 2021-10-11 |
SG11202012474SA (en) | 2021-01-28 |
CN115988205A (zh) | 2023-04-18 |
EP3804331A4 (en) | 2021-08-11 |
ZA202007985B (en) | 2022-10-26 |
JP7279084B2 (ja) | 2023-05-22 |
KR102542276B1 (ko) | 2023-06-13 |
IL279471B1 (en) | 2024-09-01 |
EP3804331A1 (en) | 2021-04-14 |
WO2019240631A1 (en) | 2019-12-19 |
CN115988205B (zh) | 2024-03-01 |
MX2020013782A (es) | 2021-04-13 |
AU2019286133B2 (en) | 2023-02-16 |
IL279471A (en) | 2021-01-31 |
AU2019286133A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112020006568A2 (pt) | combinações de predição de dependentes de posição em codificação de vídeo | |
BR112020027043A2 (pt) | Método e decodificador para interpredição | |
CA3121219A1 (en) | Method of intra predicting a block of a picture | |
BR112021003679A2 (pt) | método, codificador e decodificador para predição intra | |
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 | |
BR112021013444A2 (pt) | Método, aparelho e sistema de predição de imagem, dispositivo, e mídia de armazernamento | |
US20230128206A1 (en) | Method and apparatus for dc intra prediction | |
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 | |
CN111416977B (zh) | 视频编码器、视频解码器及相应方法 | |
BR112021007509A2 (pt) | lista de mesclagem separada para candidatos de mesclagem de sub-bloco e harmonização de técnicas intra-inter para codificação de vídeo | |
WO2019204672A1 (en) | Interpolation filter for an intra prediction apparatus and method for video coding | |
CN112352434B (zh) | 用于帧内预测的基于宽高比滤波的方法和装置 | |
BR112020024331A2 (pt) | decodificador, e métodos correspondentes que são usados para processo de transformada | |
BR112021003946A2 (pt) | codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
US11805250B2 (en) | Performing intra-prediction using intra reference sample filter switching | |
US11539953B2 (en) | Apparatus and method for boundary partition | |
AU2023202986B2 (en) | Method and apparatus for intra prediction | |
BR112021000657A2 (pt) | Método e aparelho de filtragem de interpolação para codificação preditiva, codificador, decodificador e produto de programa de computador | |
WO2020256599A1 (en) | Method and apparatus of quantizing coefficients for matrix-based intra prediction technique | |
BR122023005383B1 (pt) | Codificador, decodificador e métodos correspondentes para predição intra | |
BR112021018535B1 (pt) | Codificador, decodificador e métodos correspondentes para predição intra | |
BR112021018447B1 (pt) | Predição inter de vídeo baseada em fluxo óptico |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B350 | Update of information on the portal [chapter 15.35 patent gazette] |