BR112020025155A2 - método e aparelho para predição intra - Google Patents
método e aparelho para predição intra Download PDFInfo
- Publication number
- BR112020025155A2 BR112020025155A2 BR112020025155-0A BR112020025155A BR112020025155A2 BR 112020025155 A2 BR112020025155 A2 BR 112020025155A2 BR 112020025155 A BR112020025155 A BR 112020025155A BR 112020025155 A2 BR112020025155 A2 BR 112020025155A2
- Authority
- BR
- Brazil
- Prior art keywords
- intra
- block
- prediction
- mode
- video
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000012545 processing Methods 0.000 claims description 65
- 239000013074 reference sample Substances 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 description 40
- IESVDEZGAHUQJU-ZLBXKVHBSA-N 1-hexadecanoyl-2-(4Z,7Z,10Z,13Z,16Z,19Z-docosahexaenoyl)-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CC\C=C/C\C=C/C\C=C/C\C=C/C\C=C/C\C=C/CC IESVDEZGAHUQJU-ZLBXKVHBSA-N 0.000 description 35
- 230000008569 process Effects 0.000 description 31
- 239000000523 sample Substances 0.000 description 31
- 238000004891 communication Methods 0.000 description 26
- 230000006854 communication Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 15
- 238000013139 quantization Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000009499 grossing Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 9
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000002513 implantation Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002146 bilateral 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
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 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
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000004148 unit process Methods 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/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/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
-
- 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/117—Filters, e.g. for pre-processing or post-processing
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/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/46—Embedding additional information in the video signal during the compression process
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
MÉTODO E APARELHO PARA PREDIÇÃO INTRA
Um método de predição intra de um bloco, o método compreende obter um modo de predição intra do bloco; e obter amostras preditas do bloco com base em amostras de referência filtradas quando o modo de predição intra do bloco é um modo de ângulo amplo.
Description
[0001] Este pedido reivindica o benefício do Pedido Provisório no U.S. 62/767.496, depositado em 14 de novembro de 2018, intitulado “Method and Apparatus for Prediction”, cujo pedido está incorporado ao presente documento a título de referência.
[0002] A presente revelação refere-se ao campo da técnica de codificação e decodificação de imagem e/ou vídeo e, em particular, a método e aparelho para predição intra/inter.
[0003] Vídeo digital tem sido amplamente usado desde a introdução de discos DVD. Antes da transmissão, o vídeo é codificado e transmitido com o uso de 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. Ao longo dos anos, a qualidade de vídeo tem aperfeiçoado, por exemplo, devido a resoluções mais altas, profundidades de cor e taxas de quadro. Isso levou a fluxos de dados maiores que são, agora, comumente transportados pela internet e redes de comunicação móveis.
[0004] Os vídeos de resolução mais alta, entretanto, tipicamente exigem mais largura de banda, visto que têm mais informações. A fim de reduzir exigências de largura de banda, padrões de codificação de vídeo que envolvem compressão do vídeo têm sido introduzidos. Quando o vídeo é codificado, as exigências de largura de banda (ou exigências de memória correspondentes em caso de armazenamento) são reduzidas. Frequentemente, essa redução ocorre ao custo de qualidade. Desse modo, os padrões de codificação de vídeo tentam encontrar um equilíbrio entre exigências de largura de banda e qualidade.
[0005] A Codificação de Vídeo de Alta Eficiência (HEVC) é um exemplo de um padrão de codificação de vídeo que é comumente conhecido pelas pessoas versadas na técnica. Em HEVC, dividir uma unidade de codificação (CU) em unidades de predição (PU) ou unidades de transformada (TUs). O padrão para a próxima geração Codificação de Vídeo Versátil (VVC) é o projeto de vídeo conjunto mais recente das organizações de padronização do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e do Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG), trabalhando em conjunto em uma parceria conhecida como a Equipe de Exploração de Vídeo Conjunta (JVET). VVC também é denominado padrão ITU-T H.266/Codificação de Vídeo para a Próxima Geração (NGVC). Em VVC, os conceitos de múltiplos tipos de partição devem ser removidos, isto é, a separação dos conceitos de CU, PU e TU exceto quando necessário para CUs que têm um tamanho muito grande para o comprimento máximo de transformada, e suporta mais flexibilidade para formatos de partição de CU.
[0006] O processamento dessas unidades de codificação (CUs) (também denominadas blocos) depende de seu tamanho, posição espacial 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 predição intra e inter. Os modos de predição intra usam amostras da mesma imagem (também denominada quadro ou foto) 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 é denominada predição espacial. Os modos de predição inter são projetados para predição temporal e usa amostras de referência de imagens prévias ou posteriores para predizer amostras do bloco da imagem atual.
[0007] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão estudando a necessidade potencial por padronização de tecnologia de codificação de vídeo futura com uma capacidade de compressão que excede significativamente aquela do padrão HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação dinâmica de alto alcance). Os grupos estão trabalhando em conjunto nesta atividade de exploração em um esforço de colaboração conjunto conhecido como a Equipe de Exploração de Vídeo Conjunta (JVET) para avaliar projetos de tecnologia de compressão propostos por seus especialistas nessa área.
[0008] O padrão VTM (Modelo de Teste Versátil) usa 35 modos Intra enquanto o BMS (Benchmark Set) usa 67 modos Intra.
[0009] O esquema de predição intra é considerado complexo.
[0010] O aparelho e o método para predição intra são revelados.
[0011] De acordo com um primeiro aspecto, a revelação se refere a um método para predição intra de um bloco de imagem atual em uma imagem atual de um vídeo, o método inclui: obter um modo de predição intra do bloco; e obter amostras preditas do bloco com base em amostras de referência filtradas quando o modo de predição intra do bloco for um modo de ângulo amplo.
[0012] Em uma possível forma de implantação do método, de acordo com o primeiro aspecto, o modo de predição intra para o bloco é um modo de ângulo amplo de inclinação de número inteiro. O modo de ângulo amplo de inclinação de número inteiro é pelo menos um dentre: -14, -12, -10, -6, 72, 76, 78,
80.
[0013] O primeiro aspecto visa a unificação de processamento de amostra de referência com a combinação de uma saída de sinal de predição adicional e predição direcional usada para aperfeiçoar a qualidade visual de bloco predito. O resultado dessa unificação é que amostras de referência são processadas apenas uma vez, e o resultado desse processamento é reutilizado tanto por processo de predição intra direcional quanto geração de predição adicional. Por exemplo, amostras de referência filtradas são usadas para modo de ângulo amplo, desse modo, apenas um buffer de amostras de referência filtradas é necessário.
[0014] As seguintes etapas podem ser realizadas para implantar o método de predição intra:
[0015] Etapa 1: Realizar filtragem de amostra de referência com base em amostras de referência, modo de predição intra intraPredMode e/ou dimensões de bloco (largura e altura).
[0016] Etapa 2: Realizar predição intra direcional com base nas amostras de referência processadas (amostras de referência filtradas ou não filtradas) (resultados da etapa 1) em conformidade com intraPredAngle.
[0017] Etapa 3: Atualizar o resultado obtido na etapa 2 com combinação de predição, que pode ser PDPC, ou PDPC Simplificada, em que amostras de referência de entrada usadas na etapa 3 são iguais às amostras de referência obtidas na etapa 1 e usadas na etapa 2 para modos de ângulo amplo de inclinação de número inteiro (por exemplo, -14, -12, -10, -6, 72, 76, 78, 80, conforme especificado nas Tabelas X e Y abaixo).
[0018] De modo opcional, com base em predModeIntra, determinar se buffer de amostra de referência filtrada ou não filtrada deve ser usado. Isso pode ser realizado aplicando-se um dentre os filtros listados na Tabela 5 abaixo. Em VVC, filtros com índices 0 e 1 são usados.
[0019] As amostras de referência são filtradas (índice de filtro “1” na Tabela 5 é usado) no caso em que predMode é igual a 2, 34 ou 66 e quando nTbS>2.
[0020] A modalidade alternativa do método descrito acima é usar o parâmetro de ângulo (denotado mais adiante como intraPredAngle) nesta etapa em vez de modo de predição intra predModeIntra. Nesse caso, as amostras de referência são filtradas (índice de filtro “1” da Tabela 5 é usado) se o valor de intraPredAngle for um múltiplo de 32 e quando nTbS>2.
[0021] O método, de acordo com o primeiro aspecto da invenção, pode ser realizado pelo aparelho, de acordo com o segundo aspecto da invenção. Por exemplo, o aparelho pode incluir uma unidade de obtenção e uma unidade de predição de ângulo amplo. A unidade de obtenção, configurada para obter um modo de predição intra do bloco; e a unidade de predição de ângulo amplo, configurada para obter amostras preditas do bloco com base em amostras de referência filtradas quando o modo de predição intra do bloco for um modo de ângulo amplo.
[0022] Os recursos e formas de implantação adicionais do método, de acordo com o segundo aspecto da invenção, correspondem aos recursos e formas de implantação do aparelho, de acordo com o primeiro aspecto da invenção.
[0023] As vantagens do aparelho, de acordo com o segundo aspecto, são iguais àquelas para as formas de implantação correspondentes do método, de acordo com o primeiro aspecto.
[0024] De acordo com um terceiro aspecto, a invenção se refere a um aparelho para decodificar um fluxo de vídeo inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método, de acordo com o primeiro aspecto.
[0025] De acordo com um quarto aspecto, a invenção se refere a um aparelho para codificar um fluxo de vídeo inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método, de acordo com o primeiro aspecto.
[0026] De acordo com um quinto aspecto, uma mídia de armazenamento legível por computador é proposta que tem instruções armazenadas na mesma que, quando executadas, fazem com que um ou mais processadores configurados para codificar dados de vídeo. As instruções fazem com que o um ou mais processadores realizem um método, de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto.
[0027] De acordo com um sexto aspecto, a invenção se refere a um programa de computador que compreende código de programa para realizar o método, de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto, quando executado em um computador.
[0028] Os detalhes de uma ou mais modalidades são estabelecidos nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[0029] As modalidades a seguir são descritas em mais detalhes com referência às figuras e desenhos anexos, em que:
[0030] A Figura 1 é um diagrama de blocos que mostra um exemplo de um sistema de codificação de vídeo configurado para implantar as modalidades da invenção.
[0031] A Figura 2 é um diagrama em blocos que mostra um exemplo de um codificador de vídeo configurado para implantar as modalidades da invenção.
[0032] A Figura 3 é um diagrama em blocos que mostra uma estrutura exemplificativa de um decodificador de vídeo configurado para implantar as modalidades da invenção.
[0033] A Figura 4A mostra um diagrama esquemático que ilustra 67 modos de predição intra propostos.
[0034] A Figura 4B mostra um diagrama esquemático que ilustra 93 modos de predição intra propostos, em que as direções tracejadas são associadas aos modos de ângulo amplo que são aplicados apenas a blocos não quadrangulares.
[0035] As Figuras 5 a 11 mostram diferentes exemplos de filtros de interpolação.
[0036] A Figura 12 mostra um exemplo de reutilização de filtro de interpolação 4-tap em predição intra e inter.
[0037] A Figura 13 ilustra uma implantação exemplificativa do pedido proposto.
[0038] A Figura 14 ilustra uma implantação exemplificativa do pedido proposto com base em reutilização de coeficientes de LUT.
[0039] A Figura 15 ilustra um exemplo de seleção de filtro de interpolação.
[0040] A Figura 16 ilustra um exemplo de QTBT.
[0041] A Figura 17 ilustra um exemplo de orientação de blocos retangulares.
[0042] A Figura 18 mostra um exemplo de seleção de filtro de referência dependente de comprimento lateral.
[0043] A Figura 19 mostra um exemplo de direção alternativa para limitar um modo de predição intra durante processo de seleção de filtro de interpolação.
[0044] A Figura 20 mostra o uso de diferentes filtros de interpolação dependendo de qual lado pertencem as amostras de referência sendo usadas.
[0045] A Figura 21 mostra pesos de PDPC de modo DC para posições (0, 0) e (1, 0) dentro de um bloco 4x4.
[0046] A Figura 22 mostra definição de amostras usadas por extensão de PDPC para modos intra angulares diagonal e adjacente.
[0047] A Figura 23 mostra uma implantação exemplificativa de PDPC simplificada.
[0048] A Figura 24 mostra uma implantação de unificação exemplificativa.
[0049] A Figura 25 é um diagrama em blocos que mostra uma estrutura exemplificativa de um aparelho para predição intra de um bloco de imagem atual em uma imagem atual de um vídeo.
[0050] A Figura 26 é um diagrama em blocos de um aparelho 1500 que pode ser usado para implantar várias modalidades.
[0051] A Figura 27 é um diagrama em blocos que mostra uma estrutura exemplificativa de um sistema de fornecimento de conteúdo que fornece um serviço de entrega de conteúdo.
[0052] A Figura 28 é um diagrama em blocos que mostra uma estrutura de um exemplo de um dispositivo terminal.
[0053] Definições de Acrônimos & Glossário
[0054] JEM Modelo de Exploração Conjunta (a base de código de software para exploração de codificação de vídeo futura)
[0055] JVET Equipe Conjunta de Especialistas em Vídeo
[0056] LUT Tabela de Consulta
[0057] PDPC Combinação de Predição Dependente de Posição
[0058] QT Árvore quaternária
[0059] QTBT Árvore quaternária mais Árvore Binária
[0060] RDO Otimização de distorção de Taxa
[0061] ROM Memória Somente Leitura
[0062] VTM Modelo de Teste de VVC
[0063] VVC Codificação de Vídeo Versátil, o projeto de padronização desenvolvido por JVET.
[0064] CTU / CTB – Unidade de Árvore de Codificação / Bloco de Árvore de Codificação
[0065] CU / CB – Unidade de Codificação / Bloco de Codificação
[0066] PU / PB – Unidade de Predição / Bloco de Predição
[0067] TU/TB – Unidade de Transformada / Bloco de Transformada
[0068] HEVC – Codificação de Vídeo de Alta Eficiência
[0069] Os esquemas de codificação de vídeo, tais como H.264/AVC e HEVC são projetados em conjunto com o princípio bem-sucedido de codificação de vídeo híbrido com base em bloco. Com o uso desse princípio, uma imagem é primeiro particionada em blocos e, então, cada bloco é predito usando-se predição imagem intra ou imagem inter.
[0070] Diversos padrões de codificação de vídeo desde H.261 pertencem ao grupo de “codecs de vídeo híbrido com perda de dados” (isto é, combinam predição espacial e temporal no domínio de amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). Cada imagem de uma sequência de vídeo é tipicamente particionada em um conjunto de blocos não sobrepostos e a codificação é tipicamente realizada em um nível de bloco. Em outras palavras, no codificador, o vídeo é tipicamente processado, isto é, codificado, em um nível de bloco (bloco de imagem), por exemplo, usando-se predição espacial (imagem intra) e predição temporal (imagem inter) para gerar um bloco de predição, subtraindo o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformada para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no decodificador, o processamento inverso, quando comparado ao codificador, é parcialmente aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o laço de processamento de decodificador de modo que ambos gerarão predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processar, isto é, codificar os blocos subsequentes.
[0071] Conforme usado no presente documento, o termo “bloco” pode ser uma porção de uma imagem ou um quadro. Por questão de conveniência de descrição, as modalidades da invenção são descritas no presente documento em referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou a software de referência de Codificação de vídeo versátil (VVC), desenvolvido junto a Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T Grupo de Especialistas em Codificação de Vídeo (VCEG) e ISO/IEC Grupo de Especialistas em Imagem em Movimento (MPEG). Uma pessoa versada na técnica entenderá que as modalidades da invenção não são limitadas a HEVC ou VVC. Pode se referir a uma CU, PU e TU. Em HEVC, uma CTU é dividida em CUs usando-se uma estrutura de árvore quaternária denotada como árvore de codificação. A decisão de codificar ou não uma área de imagem com o uso de predição imagem inter (temporal) ou imagem intra (espacial) é feita no nível de CU. Cada CU pode ser dividida, de modo adicional, em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base em PU. Após obter o bloco residual aplicando-se o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura de árvore quaternária similar à árvore de codificação para a CU. No desenvolvimento mais recente da técnica de compressão de vídeo, particionamento de árvore de árvore quaternária e árvore binária (QTBT) é usado para particionar um bloco de codificação. Na estrutura de bloco de QTBT, uma CU pode ter um formato quadrangular ou retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é primeiro particionada por uma estrutura de árvore quaternária. Os nós-folha de árvore quaternária são particionados, de modo adicional, por uma estrutura de árvore binária. Os nós-folha de árvore binária são denominados unidades de codificação (CUs), e essa segmentação é usada para processamento de predição e transformada sem qualquer particionamento adicional. Isso significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de QTBT. Em paralelo, múltipla partição, por exemplo, partição de árvore tripla também foi proposta para ser usada em conjunto com a estrutura de bloco de QTBT.
[0072] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão estudando a necessidade potencial por padronização de tecnologia de codificação de vídeo futura com uma capacidade de compressão que excede significativamente aquela do padrão HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação dinâmica de alto alcance). Os grupos estão trabalhando em conjunto nesta atividade de exploração em um esforço de colaboração conjunto conhecido como a Equipe de Exploração de Vídeo Conjunta (JVET) para avaliar projetos de tecnologia de compressão propostos por seus especialistas nessa área.
[0073] O VTM (Modelo de Teste Versátil) usa 35 modos Intra enquanto o BMS (Benchmark Set) usa 67 modos Intra. A predição intra é um mecanismo usado em muitas estruturas de codificação de vídeo para aumentar a eficiência de compressão nos casos em que apenas um determinado quadro pode estar envolvido.
[0074] A Figura 1 é um diagrama em blocos conceitual ou esquemático que ilustra um sistema de codificação exemplificativo 10, por exemplo, um sistema de codificação de vídeo 10 que pode utilizar técnicas deste presente pedido (presente revelação). O codificador 20 (por exemplo, codificador de vídeo 20) e o decodificador 30 (por exemplo, decodificador de vídeo 30) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas em conformidade com vários exemplos descritos no presente pedido. Conforme mostrado na Figura 1, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer dados codificados 13, por exemplo, uma imagem codificada 13, por exemplo, a um dispositivo de destino 14 para decodificar os dados codificados 13.
[0075] O dispositivo de origem 12 compreende um codificador 20, e pode compreender de modo adicional, isto é, de modo opcional, uma fonte de imagem 16, uma unidade de pré-processamento 18, por exemplo, uma unidade de pré-processamento de imagem 18 e uma interface de comunicação ou unidade de comunicação 22.
[0076] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, para capturar uma imagem do mundo real, e/ou qualquer tipo de um dispositivo de geração de imagem ou comentário (para codificação de conteúdo de tela, alguns textos na tela também são considerados uma parte de uma imagem ou foto a ser codificada), por exemplo, um processador de computação gráfica para gerar uma imagem animada em computador, ou qualquer tipo de dispositivo para obter e/ou fornecer uma imagem do mundo real, uma imagem animada em computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (AR)).
[0077] Uma imagem (digital) é ou pode ser considerada uma matriz ou arranjo bidimensional de amostras com valores de intensidade. Uma amostra no arranjo também pode ser denominada pixel (forma abreviada de elemento de imagem) ou um pel. O número de amostras na direção horizontal e vertical (ou eixo geométrico) do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para representação de cor, tipicamente três componentes de cor são empregados, isto é, a imagem pode ser representada ou incluir três arranjos de amostra. Em formato RBG ou espaço de cor, uma imagem compreende um arranjo de amostra de vermelho, verde e azul correspondente. Entretanto, em codificação de vídeo, cada pixel é tipicamente representado em um formato de luminância/crominância ou espaço de cor, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (por vezes L também é usado no lugar de Y) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma, a título de concisão) Y representa o brilho ou intensidade de nível de cinza (por exemplo, assim como em uma imagem de escala de cinza), enquanto os dois componentes de crominância (ou croma, a título de concisão) Cb e Cr representam os componentes de informações de cor ou cromaticidade. Assim, uma imagem em formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As imagens em formato RGB podem ser convertidas ou transformadas em formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cor. Se uma imagem for monocromática, a imagem pode compreender apenas um arranjo de amostra de luminância.
[0078] A fonte de imagem 16 (por exemplo, fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma imagem, uma memória, por exemplo, uma memória de imagem, que compreende ou que armazena uma imagem previamente capturada ou gerada e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera pode ser, por exemplo, uma câmera local ou integrada, integrada ao dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrada ao dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma fonte de vídeo externa, por exemplo, um dispositivo de captura de imagem externo, tal como uma câmera, uma memória externa ou um dispositivo de geração de imagem externo, por exemplo, um servidor, computador ou processador de computação gráfica externo. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com ou sem fio, uma interface óptica, de acordo com qualquer protocolo de interface proprietário ou padronizado. A interface para obter os dados de imagem 17 pode ser a mesma interface ou uma parte da interface de comunicação 22.
[0079] Realizando-se distinção entre a unidade de pré- processamento 18 e o processamento realizado pela unidade de pré- processamento 18, a imagem ou dados de imagem 17 (por exemplo, dados de vídeo 16) também podem ser denominados imagem crua ou dados de imagem crus 17.
[0080] A unidade de pré-processamento 18 é configurada para receber os dados de imagem (crus) 17 e realizar pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré-processados 19. O pré-processamento realizado pela unidade de pré- processamento 18 pode compreender, por exemplo, corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor ou redução de ruído. Pode-se entender que a unidade de pré-processamento 18 pode ser componente opcional.
[0081] O codificador 20 (por exemplo, codificador de vídeo 20) é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 2).
[0082] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e transmitir os mesmos para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta, ou para processar os dados de imagem codificados 21 para respectivamente antes armazenar os dados codificados 13 e/ou transmitir os dados codificados 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo para decodificação ou armazenamento.
[0083] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30), e pode compreender, de modo adicional, isto é, de modo opcional, uma interface de comunicação ou unidade de comunicação 28, uma unidade de pós-processamento 32 e um dispositivo de exibição 34.
[0084] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 ou os dados codificados 13, por exemplo, diretamente do dispositivo de origem 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.
[0085] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou dados codificados 13 por meio de um enlace de comunicação direto entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com ou sem fio, ou por meio de qualquer tipo de rede, por exemplo, uma rede com ou sem fio ou qualquer combinação das mesmas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[0086] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes, para transmissão por meio de um enlace de comunicação ou rede de comunicação.
[0087] A interface de comunicação 28, que forma a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para desempacotar os dados codificados 13 para obter os dados de imagem codificados 21.
[0088] Tanto a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais, conforme indicado pela seta para os dados de imagem codificados 13 na Figura 1A que aponta do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para preparar uma conexão, para confirmar e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.
[0089] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 3).
[0090] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também denominados dados de imagem reconstruída), por exemplo, a imagem decodificada 31, para obter dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte ou reamostragem ou qualquer outro processamento, por exemplo, para preparar os dados de imagem decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.
[0091] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, a um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de visor para representar a imagem reconstruída, por exemplo, um visor ou monitor integrado ou externo. Os visores podem compreender, por exemplo, visores de cristal líquido (LCD), visores de diodos emissores de luz orgânicos (OLED), visores de plasma, projetores, visores de micro LED, cristal líquido em silício (LCoS), processador digital de luz (DLP) ou qualquer tipo de outro visor.
[0092] Embora a Figura 1 retrate o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, as modalidades de dispositivos também podem compreender uma ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implantados com o uso do mesmo hardware e/ou software ou por hardware e/ou software separados ou qualquer combinação dos mesmos.
[0093] Conforme será evidente aos versados na técnica com base na descrição, a existência e divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou dispositivo de destino 14, conforme mostrado na Figura 1, podem variar dependendo do dispositivo real e aplicação.
[0094] O codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30) podem ser implantados, cada um, como qualquer um dentre uma variedade de conjuntos de circuitos adequados, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, hardware ou quaisquer combinações dos mesmos. Se as técnicas forem implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação. Qualquer um dentre os que foram mencionados acima (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como um ou mais processadores. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, em que qualquer um dos mesmos pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo.
[0095] A Figura 2 mostra um diagrama em blocos esquemático/conceitual de um codificador de vídeo exemplificativo 20 que é configurado para implantar as técnicas do presente pedido. No exemplo da Figura 2, o codificador de vídeo 20 compreende uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210 e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro loop 220, um buffer de imagem decodificada (DPB) 230, uma unidade de processamento de predição 260 e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e uma unidade de seleção de modo 262. A unidade de predição inter 244 pode incluir uma unidade de estimação de movimento e uma unidade de compensação de movimento (não mostrada). Um codificador de vídeo 20, conforme mostrado na Figura 2, também pode ser denominado codificador de vídeo híbrido ou um codificador de vídeo, de acordo com um codec de vídeo híbrido.
[0096] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam uma trajetória de sinal frontal do codificador 20, enquanto, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, unidade de processamento de predição 260 formam uma trajetória de sinal traseira do codificador, em que a trajetória de sinal traseira do codificador corresponde à trajetória de sinal do decodificador (consulte o decodificador 30 na Figura 3).
[0097] O codificador 20 é configurado para receber, por exemplo, por meio de entrada 202, uma imagem 201 ou um bloco 203 da imagem 201, por exemplo, imagem de uma sequência de imagens que forma um vídeo ou sequência de vídeo. O bloco de imagem 203 também pode ser denominado bloco de imagem atual ou bloco de imagem a ser codificado, e a imagem 201 denominada imagem atual ou imagem a ser codificada (em particular, em codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens previamente codificadas e/ou decodificadas da mesma sequência de vídeo, isto é, a sequência de vídeo que também compreende a imagem atual).
[0098] A unidade de processamento de predição 260, também denominada unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (bloco atual 203 da imagem atual 201) e dados de imagem reconstruída, por exemplo, amostras de referência da mesma imagem (atual) a partir do buffer 216 e/ou dados de imagem de referência 231 a partir de uma ou uma pluralidade de imagens previamente decodificadas a partir de buffer de imagem decodificada 230, e para processar tais dados para predição, isto é, fornecer um bloco de predição 265, que pode ser um bloco predito inter 245 ou um bloco predito intra 255.
[0099] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de predição intra ou inter) e/ou um bloco de predição correspondente 245 ou 255 a ser usado como bloco de predição 265 para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[0100] As modalidades da unidade de seleção de modo 262 podem ser configuradas para selecionar o modo de predição (por exemplo, daqueles suportados pela unidade de processamento de predição 260), que fornece a melhor compatibilidade ou, em outras palavras, o resíduo mínimo (resíduo mínimo significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga mínima de sinalização (sobrecarga mínima de sinalização significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base em otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou que distorção de taxa associada pelo menos satisfaz um critério de seleção de modo de predição.
[0101] A unidade de predição intra 254 é configurada, ainda, para determinar, com base em parâmetro de predição intra, por exemplo, o modo de predição intra selecionado, o bloco de predição intra 255. Em qualquer caso, após selecionar um modo de predição intra para um bloco, a unidade de predição intra 254 também é configurada para fornecer parâmetro de predição intra, isto é, informações indicativas do modo de predição intra selecionado para o bloco à unidade de codificação de entropia 270. Em um exemplo, a unidade de predição intra 254 pode ser configurada para realizar qualquer combinação das técnicas de predição intra descritas posteriormente.
[0102] A Figura 3 é um decodificador de vídeo exemplificativo 30 que é configurado para implantar as técnicas deste presente pedido. O decodificador de vídeo 30 é configurado para receber dados de imagem codificados (por exemplo, fluxo de bits codificado) 21, por exemplo, codificados pelo codificador 100, para obter uma imagem decodificada 131. Durante o processo de decodificação, o decodificador de vídeo 30 recebe dados de vídeo, por exemplo, um fluxo de bits de vídeo codificado que representa blocos de imagem de uma fatia de vídeo codificado e elementos de sintaxe associados, a partir do codificador de vídeo 100.
[0103] No exemplo da Figura 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um buffer 316, um filtro loop 320, um buffer de imagem decodificada 330 e uma unidade de processamento de predição 360. A unidade de processamento de predição 360 pode incluir uma unidade de predição inter 344, uma unidade de predição intra 354 e uma unidade de seleção de modo 362. O decodificador de vídeo 30 pode realizar, em alguns exemplos, uma passa de decodificação geralmente recíproco para a passa de codificação descrita em relação ao codificador de vídeo 100 da Figura 2.
[0104] A unidade de decodificação de entropia 304 é configurada para realizar decodificação de entropia nos dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Figura 3), por exemplo, qualquer um ou todos (decodificado) dentre parâmetros de predição inter, parâmetro de predição intra, parâmetros de filtro loop e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 é configurada, ainda, para encaminhar parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe à unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0105] A unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 112, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 114, o buffer 316 pode ser idêntico em função ao buffer 116, o filtro loop 320 pode ser idêntico em função ao filtro loop 120, e o buffer de imagem decodificada 330 pode ser idêntico em função ao buffer de imagem decodificada 130.
[0106] A unidade de processamento de predição 360 pode compreender uma unidade de predição inter 344 e uma unidade de predição intra 354, em que a unidade de predição inter 344 pode se assemelhar à unidade de predição inter 144 em função, e a unidade de predição intra 354 pode se assemelhar à unidade de predição intra 154 in função. A unidade de processamento de predição 360 é tipicamente configurada para realizar a predição de bloco e/ou obter o bloco de predição 365 dos dados codificados 21 e para receber ou obter (de modo explícito ou implícito) os parâmetros relacionados à predição e/ou as informações sobre o modo de predição selecionado, por exemplo, da unidade de decodificação de entropia 304.
[0107] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 354 da unidade de processamento de predição 360 é configurada para gerar bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e em dados de blocos previamente decodificados da imagem ou quadro atual. Quando a imagem de vídeo é codificada como uma fatia codificada inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebidos da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma dentre as imagens de referência dentro de uma dentre as listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, com o uso de técnicas de construção padrão com base em imagens de referência armazenadas no DPB 330.
[0108] A unidade de processamento de predição 360 é configurada para determinar informações de predição para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de processamento de predição 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais dentre as listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de predição inter para cada bloco de vídeo codificado inter da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0109] A unidade de quantização inversa 310 é configurada para quantizar de modo inverso, isto é, desquantizar, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 304. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 100 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, de modo similar, um grau de quantização inversa que devem ser aplicados.
[0110] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0111] A unidade de reconstrução 314 (por exemplo, Somador 314) é configurada para adicionar o bloco de transformada inversa 313 (isto é, bloco residual reconstruído 313) ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando-se os valores de amostra do bloco residual reconstruído 313 e os valores de amostra do bloco de predição 365.
[0112] A unidade de filtro loop 320 (tanto no laço de codificação ou após o laço de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, suavizar transições de pixel ou, de outro modo, aperfeiçoar a qualidade de vídeo. Em um exemplo, a unidade de filtro loop
320 pode ser configurada para realizar qualquer combinação das técnicas de filtragem descritas posteriormente. A unidade de filtro loop 320 se destina a representar um ou mais filtros de laço, tais como um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro loop adaptativo (ALF) ou filtros de suavização ou nitidez ou filtros colaborativos. Embora a unidade de filtro loop 320 seja mostrada na Figura 3 como sendo um filtro em laço, em outras configurações, a unidade de filtro loop 320 pode ser implantada como um filtro pós laço.
[0113] Os blocos de vídeo decodificados 321 em um determinado quadro ou imagem são, então, armazenados em buffer de imagem decodificada 330, que armazena imagens de referência usadas para compensação de movimento subsequente.
[0114] O decodificador 30 é configurado para emitir a imagem decodificada 331, por exemplo, por meio da saída 332, para apresentação ou visualização por um usuário.
[0115] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits comprimido. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem de laço 320. Por exemplo, um decodificador com base em não transformada 30 pode quantizar de modo inverso o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para determinados blocos ou quadros. Em outra implantação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[0116] Conforme mostrado nas Figuras 4A e 4B, a versão mais recente de JEM tem alguns modos que correspondem a direções de predição intra oblíquas. Para qualquer um dentre esses modos, predição de amostras dentro de uma interpolação de bloco de um conjunto de amostras de referência vizinhas deve ser realizada, se uma posição correspondente dentro de um lado de bloco for fracionada. HEVC e VVC usam interpolação linear entre duas amostras de referência adjacentes. JEM usa filtros de interpolação 4-tap mais sofisticados. Os coeficientes de filtro são selecionados para ser Gaussiano ou Cúbico dependendo do valor de largura ou altura. A decisão sobre usar largura ou altura é harmonizada com a decisão sobre seleção de lado de referência principal: quando o modo de predição intra é maior ou igual ao modo diagonal, o lado de topo de amostras de referência é selecionado para ser o lado de referência principal e o valor de largura é selecionado para determinar filtro de interpolação em uso. De outro modo, a referência de lado principal é selecionada a partir do lado esquerdo do bloco e altura controla o processo de seleção de filtro. Especificamente, se o comprimento de lado selecionado for menor do que ou igual a 8 amostras, a interpolação Cúbica 4 tap é aplicada. De outro modo, o filtro de interpolação é um filtro Gaussiano 4- tap.
[0117] A Figura 4A mostra um exemplo de 67 modos de predição intra, por exemplo, conforme proposto para VVC, a pluralidade de predição intra de 67 modos de predição intra compreende: modo plano (índice 0), modo dc (índice 1) e modos angulares com índices 2 a 66, em que o modo angular esquerda inferior na Figura 4A se refere ao índice 2 e a numeração dos índices sendo incrementada até o índice 66 ser o modo mais angular topo direita da Figura 4A. Conforme mostrado na Figura 4B, a versão mais recente de VVC tem alguns modos que correspondem a direções de predição intra oblíquas, incluindo direção de ângulo amplo (mostrada em linhas tracejadas). Para qualquer um dentre esses modos, a predição de amostras dentro de uma interpolação de bloco de um conjunto de amostras de referência vizinhas deve ser realizada, se uma posição correspondente dentro de um lado de bloco for fracionada.
[0118] Coeficientes de filtro específicos usados em JEM são fornecidos na Tabela 1. A amostra predita é calculada convolucionando-se com coeficientes selecionados na Tabela 1 de acordo com deslocamento de subpixel e tipo de filtro da seguinte forma: 𝑖𝑖<4
[0119] 𝑠𝑠(𝑥𝑥) = (∑𝑖𝑖=0 (ref𝑖𝑖+𝑥𝑥 ∙ 𝑐𝑐𝑖𝑖 ) + 128) ≫ 8
[0120] Nessa equação, “≫” indica uma operação de desvio-direita de bitwise.
[0121] Se o filtro Cúbico for selecionado, a amostra predita é anexada, de modo adicional, à faixa permitida de valores, que é definida em SPS ou derivada da profundidade de bit do componente selecionado. Tabela 1. Filtros de interpolação de predição intra Deslocamento Filtro cúbico Filtro Gauss de subpixel c0 c1 c2 c3 c0 c1 c2 c3
0 (número 0 256 0 0 47 161 47 1 inteiro) 1 -3 252 8 -1 43 161 51 1 2 -5 247 17 -3 40 160 54 2 3 -7 242 25 -4 37 159 58 2 4 -9 236 34 -5 34 158 62 2 5 -10 230 43 -7 31 156 67 2 6 -12 224 52 -8 28 154 71 3 7 -13 217 61 -9 26 151 76 3 8 -14 210 70 -10 23 149 80 4 9 -15 203 79 -11 21 146 85 4 10 -16 195 89 -12 19 142 90 5 11 -16 187 98 -13 17 139 94 6 12 -16 179 107 -14 16 135 99 6 13 -16 170 116 -14 14 131 104 7 14 -17 162 126 -15 13 127 108 8 15 -16 153 135 -16 11 123 113 9 16 (meio-pel) -16 144 144 -16 10 118 118 10 17 -16 135 153 -16 9 113 123 11 18 -15 126 162 -17 8 108 127 13 19 -14 116 170 -16 7 104 131 14 20 -14 107 179 -16 6 99 135 16 21 -13 98 187 -16 6 94 139 17 22 -12 89 195 -16 5 90 142 19 23 -11 79 203 -15 4 85 146 21 24 -10 70 210 -14 4 80 149 23 25 -9 61 217 -13 3 76 151 26 26 -8 52 224 -12 3 71 154 28 27 -7 43 230 -10 2 67 156 31 28 -5 34 236 -9 2 62 158 34 29 -4 25 242 -7 2 58 159 37 30 -3 17 247 -5 2 54 160 40
31 -1 8 252 -3 1 51 161 43
[0122] O processo de compensação de movimento também utiliza filtragem para predizer valores de amostra quando deslocamentos dos pixels do bloco de referência são fracionados. Em JEM, filtragem 8-tap é usada para componente de luminância e filtragem de comprimento 4-tap é usada para componente de crominância. O filtro de interpolação de movimento é primeiramente aplicado de modo horizontal, e a saída de filtragem horizontal é filtrada, adicionalmente, de modo vertical. Os coeficientes de filtro de crominância 4-tap são fornecidos na Tabela 2. Tabela 2 Coeficientes de filtro de interpolação de movimento de crominância Deslocamento c0 c1 c2 c3 de subpixel 0 (número inteiro) 0 64 0 0 1 -1 63 2 0 2 -2 62 4 0 3 -2 60 7 -1 4 -2 58 10 -2 5 -3 57 12 -2 6 -4 56 14 -2 7 -4 55 15 -2 8 -4 54 16 -2 9 -5 53 18 -2 10 -6 52 20 -2 11 -6 49 24 -3 12 -6 46 28 -4 13 -5 44 29 -4 14 -4 42 30 -4 15 -4 39 33 -4 16 (meio-pel) -4 36 36 -4 17 -4 33 39 -4 18 -4 30 42 -4 19 -4 29 44 -5
20 -4 28 46 -6 21 -3 24 49 -6 22 -2 20 52 -6 23 -2 18 53 -5 24 -2 16 54 -4 25 -2 15 55 -4 26 -2 14 56 -4 27 -2 12 57 -3 28 -2 10 58 -2 29 -1 7 60 -2 30 0 4 62 -2 31 0 2 63 -1
[0123] As soluções de codificação de vídeo do estado da técnica usam diferentes filtros de interpolação em predição intra e inter. Particularmente, as Figuras 5 a 11 mostram diferentes exemplos de filtros de interpolação. Por exemplo, a Figura 5 mostra filtro de interpolação usado em JEM; a Figura 6 mostra filtro de interpolação proposto para Core Experiment CE3-3.1.3 (JVET-K1023).
[0124] As Tabelas de consulta e módulos de hardware de filtro de sub-pel de compensação de movimento croma para valores de pixel de interpolação podem ser reutilizadas dentro de um preditor intra se as mesmas estiverem em posições fracionadas entre amostras de referência. Visto que o mesmo hardware se destina a estar em uso para predição intra e inter, a precisão de coeficientes de filtro deve ser consistente, isto é, o número de bits para representar coeficientes de filtro para interpolação de amostra de referência intra deve estar alinhado com a precisão de coeficiente de filtragem de interpolação de compensação de movimento de sub-pel de movimento.
[0125] A Figura 12 ilustra uma modalidade da invenção proposta. O “filtro de interpolação 4-tap com coeficientes de 6 bits para croma” tracejado (denominado mais adiante “Filtro intra/inter unificado”) pode ser usado para ambos os processos: interpolação de amostras preditas intra e inter.
[0126] Uma modalidade particular que utiliza esse projeto é mostrada na Figura 13. Nessa implantação, um módulo de filtragem está sendo implantado como uma unidade separada que está sendo envolvida em: predição de amostras de crominância em compensação de movimento e predição de amostras de luminância e crominância ao realizar predição intra. Nessa implantação, parte de filtragem de hardware está sendo usada em ambos os processos de predição intra e inter.
[0127] Outra modalidade mostra implantação quando apenas LUTs de coeficientes de filtro são reutilizadas (consulte a Figura 14). Nesta implantação, módulos de filtragem de hardware carregam coeficientes de LUTs armazenadas em ROM. Um comutador mostrado em processo de predição intra determina o tipo de filtro sendo usado dependendo do comprimento do lado principal selecionado para processo de predição intra.
[0128] Uma modalidade prática do pedido proposto pode usar os coeficientes a seguir (consulte a Tabela 3a e a Tabela 3b). Tabela 3a: Filtros de interpolação Intra e Inter Deslocamento Filtro intra/inter Filtro Gauss de subpixel unificado c0 c1 c2 c3 c0 c1 c2 c3 0 (número inteiro) 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 14 29 18 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 14 28 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 12 28 20 4 7 -4 55 15 -2 12 27 20 5 8 -4 54 16 -2 11 27 21 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 26 22 6 11 -6 49 24 -3 10 26 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7
16 (meio-pel) -4 36 36 -4 7 25 25 7 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 26 10 22 -2 20 52 -6 6 22 26 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 21 27 11 25 -2 15 55 -4 5 20 27 12 26 -2 14 56 -4 4 20 28 12 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 28 14 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 18 29 14 31 0 2 63 -1 3 17 29 15 Tabela 3b: Filtros de interpolação Intra e Inter Deslocamento DCT-IF Filtro de de subpixel suavização c0 c1 c2 c3 c0 c1 c2 c3 0 (número 0 64 0 0 16 32 16 0 inteiro) 1 -1 63 2 0 16 32 16 0 2 -2 62 4 0 15 31 17 1 3 -2 60 7 -1 15 31 17 1 4 -2 58 10 -2 14 30 18 2 5 -3 57 12 -2 14 30 18 2 6 -4 56 14 -2 13 29 19 3 7 -4 55 15 -2 13 29 19 3 8 -4 54 16 -2 12 28 20 4 9 -5 53 18 -2 12 28 20 4 10 -6 52 20 -2 11 27 21 5
11 -6 49 24 -3 11 27 21 5 12 -6 46 28 -4 10 26 22 6 13 -5 44 29 -4 10 26 22 6 14 -4 42 30 -4 9 25 23 7 15 -4 39 33 -4 9 25 23 7 16 (meio-pel) -4 36 36 -4 8 24 24 8 17 -4 33 39 -4 8 24 24 8 18 -4 30 42 -4 7 23 25 9 19 -4 29 44 -5 7 23 25 9 20 -4 28 46 -6 6 22 26 10 21 -3 24 49 -6 6 22 26 10 22 -2 20 52 -6 5 21 27 11 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 4 20 28 12 25 -2 15 55 -4 4 20 28 12 26 -2 14 56 -4 3 19 29 13 27 -2 12 57 -3 3 19 29 13 28 -2 10 58 -2 2 18 30 14 29 -1 7 60 -2 2 18 30 14 30 0 4 62 -2 1 17 31 15 31 0 2 63 -1 1 17 31 15
[0129] A amostra predita intra é calculada convolucionando-se com coeficientes selecionados da Tabela 3a ou da Tabela 3b de acordo com deslocamento de subpixel e tipo de filtro da seguinte forma: 𝑖𝑖<4 𝑠𝑠(𝑥𝑥) = (�(ref𝑖𝑖+𝑥𝑥 ∙ 𝑐𝑐𝑖𝑖 ) + 32) ≫ 6 𝑖𝑖=0
[0130] Nessa equação, “≫” indica uma operação de desvio-direita de bitwise.
[0131] Se filtro “Filtro intra/inter unificado” for selecionado, a amostra predita é anexada, de modo adicional, à faixa permitida de valores, que é definida em SPS ou derivada da profundidade de bit do componente selecionado.
[0132] Para interpolação de amostra de referência intra e interpolação de compensação de movimento de sub-pel, o mesmo filtro pode ser usado para reutilizar módulos de hardware e reduzir o tamanho total de memória necessária.
[0133] A precisão de coeficientes de filtro usados para interpolação de amostra de referência intra além do filtro reutilizado deve estar alinhada com a precisão de coeficientes do filtro reutilizado mencionado acima.
[0134] O processamento luma em compensação de movimento não usa, necessariamente, filtragem 8-tap, mas também pode operar em filtragem 4- tap. Nesse caso, o filtro 4-tap pode ser selecionado para ser unificado.
[0135] As modalidades podem ser aplicadas em diferentes partes de processo de predição intra que pode envolver interpolação. Particularmente, ao estender amostras de referência principais, amostras de referência laterais também podem ser filtradas com o uso de filtro de interpolação unificado (consulte JVET-K0211 para detalhes).
[0136] As operações de cópia de bloco intra também envolvem etapa de interpolação que pode usar a invenção proposta (consulte [Xiaozhong Xu, Shan Liu, Tzu-Der Chuang, Yu-Wen Huang, Shawmin Lei, Krishnakanth Rapaka, Chao Pang, Vadim Seregin, Ye-Kui Wang, Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6(4): 409-419 (2016)] for Intra block copy description).
[0137] Um método para filtragem dependente de razão de aspecto para predição intra é revelado, o método compreende: selecionar um filtro de interpolação para um bloco a ser predito dependendo de uma razão de aspecto do bloco.
[0138] Em um exemplo, em que selecionar o filtro de interpolação dependendo de uma direção para limitar um modo de predição intra do bloco a ser predito.
[0139] Em um exemplo, em que a direção corresponde a um ângulo de diagonal principal do bloco a ser predito.
[0140] Em um exemplo, um ângulo da direção é calculado como:
H α T = arctan( )
[0141] W ,
[0142] em que W , H são largura e altura do bloco a ser predito, respectivamente.
[0143] Em um exemplo, em que razão de aspecto
[0144] RA = log 2 (W ) − log 2 ( H ) , em que W , H são largura e altura do bloco a ser predito, respectivamente.
[0145] Em um exemplo, o ângulo de diagonal principal do bloco a ser predito são determinados com base na razão de aspecto.
[0146] Em um exemplo, um limiar de um modo de predição intra do bloco é determinado com base no ângulo de diagonal principal do bloco a ser predito.
[0147] Em um exemplo, em que selecionar o filtro de interpolação dependendo de qual lado pertencem amostras de referência sendo usadas.
[0148] Em um exemplo, em que uma linha reta com um ângulo que corresponde a uma direção intra divide o bloco em duas áreas.
[0149] Em um exemplo, em que as amostras de referência que pertencem a diferentes áreas são preditas com o uso de diferentes filtros de interpolação.
[0150] Em um exemplo, em que o filtro inclui um filtro de interpolação cúbica ou um filtro de interpolação de Gauss.
[0151] Em uma forma de implantação do presente pedido, um quadro é o mesmo que uma imagem.
[0152] Em uma forma de implantação do presente pedido, um valor que corresponde ao VER_IDX é 50; um valor que corresponde ao HOR_IDX é 18; um valor que corresponde ao VDIA_IDX é 66, e esse valor pode ser o maior valor nos valores que correspondem aos modos angulares; o valor 2 que corresponde ao modo intra 2 pode ser o menor valor nos valores que correspondem aos modos angulares; um valor que corresponde ao DIA_IDX é 34.
[0153] A presente revelação tem como objetivo o aperfeiçoamento no esquema de sinalização de modo intra. Na presente revelação, um método de decodificação de vídeo e um decodificador de vídeo são propostos.
[0154] Em outro aspecto do presente pedido, um decodificador que compreende conjunto de circuitos de processamento é revelado configurado para realizar os métodos de decodificação acima.
[0155] Em outro aspecto do presente pedido, um produto de programa de computador é revelado que compreende um código de programa para realizar os métodos de decodificação acima.
[0156] Em outro aspecto do presente pedido, um decodificador para decodificar dados de vídeo é revelado, o decodificador compreende: um ou mais processadores; e uma mídia de armazenamento não transitória legível por computador acoplada aos processadores e que armazena programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar os métodos de decodificação acima.
[0157] O conjunto de circuitos de processamento pode ser implantado em hardware ou em uma combinação de hardware e software, por exemplo, por um processador programável de software ou similares.
[0158] O conjunto de circuitos de processamento pode ser implantado em hardware ou em uma combinação de hardware e software, por exemplo, por um processador programável de software ou similares.
[0159] H.264/AVC e HEVC especificam que um filtro passa-baixa pode ser aplicado a amostras de referência antes de serem usadas em processo de predição intra. Uma decisão sobre usar ou não filtro de amostra de referência é determinada por modo de predição intra e tamanho de bloco. Esses mecanismos podem ser denominados Intra Suavização Dependente de Modo (MDIS). Também existe uma pluralidade de métodos relacionados a MDIS. Por exemplo, o método de Suavização de Amostra de Referência Adaptativa (ARSS) pode sinalizar de modo explícito (isto é um sinalizador é incluído em um fluxo de bits) ou implícito (isto é, por exemplo, ocultação de dados é usada para evitar que um sinalizador seja colocado em um fluxo de bits para reduzir a sobrecarga de sinalização) se as amostras de predição são filtradas. Nesse caso, o codificador pode tomar a decisão sobre suavização testando-se o custo de Distorção de Taxa (RD) para todos os modos de predição intra potenciais.
[0160] Conforme mostrado nas Figuras 4A e 4B, a versão mais recente de JEM (JEM-7.2) tem alguns modos que correspondem a direções de predição intra oblíquas. Para qualquer um dentre esses modos, predição de amostras dentro de uma interpolação de bloco de um conjunto de amostras de referência vizinhas deve ser realizada, se uma posição correspondente dentro de um lado de bloco for fracionada. HEVC e VVC usam interpolação linear entre duas amostras de referência adjacentes. JEM usa filtros de interpolação 4-tap mais sofisticados. Os coeficientes de filtro são selecionados para ser Gaussiano ou Cúbico dependendo do valor de largura ou altura. Uma decisão sobre usar largura ou altura é harmonizada com a decisão sobre seleção de lado de referência principal: quando o modo de predição intra é maior ou igual ao modo diagonal, o lado de topo de amostras de referência é selecionado para ser o lado de referência principal e o valor de largura é selecionado para determinar filtro de interpolação em uso. De outro modo, a referência de lado principal é selecionada a partir do lado esquerdo do bloco e a altura controla o processo de seleção de filtro. Especificamente, se o comprimento de lado selecionado for menor do que ou igual a 8 amostras, a interpolação Cúbica 4 tap é aplicada. De outro modo, o filtro de interpolação é um filtro Gaussiano 4-tap.
[0161] Um exemplo de seleção de filtro de interpolação para modos menores e maiores do que diagonal (denotado como 45°) no caso de bloco 32x4 ser mostrado na Figura 15.
[0162] Em VVC, um mecanismo de particionamento com base tanto em árvore quaternária quanto em árvore binária e conhecido como QTBT é usado. Conforme retratado na Figura 16, o particionamento de QTBT pode fornecer não só blocos quadrangulares, mas retangulares também. Evidentemente, alguma sobrecarga de sinalização e complexidade computacional aumentada no lado de codificador são o preço do particionamento de QTBT quando comparado ao particionamento com base em árvore quaternária convencional usado no padrão HEVC/H.265. Contudo, o particionamento com base em QTBT é dotado das melhores propriedades de segmentação e, portanto, demonstra eficiência de codificação significativamente maior do que o árvore quaternária convencional.
[0163] Entretanto, VVC em seu estado atual aplica o mesmo filtro aos dois lados de amostras de referência (esquerdo e topo). Independentemente de um bloco ser orientado de modo vertical ou horizontal, um filtro de amostra de referência será o mesmo para ambos os lados de amostra de referência.
[0164] Neste documento, os termos “bloco verticalmente orientado” (“orientação vertical de um bloco”) e “bloco horizontalmente orientado” (“orientação horizontal de um bloco”) são aplicados a blocos retangulares gerados pela estrutura de QTBT. Esses termos têm o mesmo significado, conforme mostrado na Figura 17.
[0165] A presente revelação propõe um mecanismo para selecionar diferentes filtros de amostra de referência a fim de considerar a orientação de um bloco. Especificamente, a largura e a altura de um bloco são verificadas de maneira independente de modo que diferentes filtros de amostra de referência sejam aplicados à amostra de referência localizada em diferentes lados de um bloco a ser predito.
[0166] Na análise da técnica anterior, foi descrito que seleção de filtro de interpolação é harmonizada com a decisão sobre seleção de lado de referência principal. Essas duas decisões atualmente dependem da comparação de modo de predição intra com a direção diagonal (45 graus).
[0167] Entretanto, pode-se observar que esse projeto tem uma falha grave para os blocos alongados. Na Figura 18, pode-se observar que até mesmo se o lado mais curto for selecionado como a referência principal com o uso de critérios de comparação de modo, a maior parte dos pixels preditos ainda pode ser derivada das amostras de referência do lado mais longo (mostrado como área tracejada).
[0168] A presente revelação propõe usar uma direção alternativa para limitar um modo de predição intra durante processo de seleção de filtro de interpolação. Especificamente, as direções correspondem ao ângulo de diagonal principal do bloco a ser predito. Por exemplo, para blocos de tamanho 32x4 e 4x32, modo limítrofe mT usado para determinar filtro de amostra de referência é definido conforme é mostrado na Figura 19.
[0169] O valor específico do ângulo de predição intra limítrofe pode ser calculado com o uso da seguinte fórmula:
H α T = arctan( ) W , Em que W e H são a largura e a altura do bloco, respectivamente.
[0170] Outra modalidade da presente revelação é usar diferentes filtros de interpolação dependendo de qual lado pertencem as amostras de referência sendo usadas. Um exemplo dessa determinação é mostrado na Figura
20.
[0171] Uma linha reta com um ângulo que corresponde a direção intra m divide um bloco predito em duas áreas. As amostras que pertencem a diferentes áreas são preditas com o uso de diferentes filtros de interpolação. Valores exemplificativos de mT (para o conjunto de modos de predição intra definido em BMS1.0) e ângulos correspondentes são fornecidos na Tabela
4. Os ângulos α são fornecidos conforme mostrado nas Figuras 19 e 20.
Tabela 4. Valores exemplificativos de mT (para o conjunto de modos de predição intra definido em BMS1.0) Razão de aspecto Ângulo de diagonal Modo de predição intra RA = log 2 (W ) − log 2 ( H ) principal α , graus limítrofe mT -5 81,78 19 -4 93,57 19 -3 97,13 21 -2 104,04 23 -1 116,57 27 0 135,00 DIA_IDX (34) 1 153,44 41 2 165,96 45 3 172,88 47 4 176,42 49 5 178,21 49
[0172] Em comparação à tecnologia e soluções existentes, a presente revelação usa amostras dentro de um bloco que são preditas com o uso de diferentes filtros de interpolação, em que o filtro de interpolação usado para predizer uma amostra é selecionado de acordo com formato de bloco, orientação sendo horizontal ou vertical e ângulo de modo de predição intra.
[0173] A presente revelação pode ser aplicada no estágio de filtragem de amostra de referência. Em particular, é possível determinar filtro de suavização de amostra de referência com o uso de regras similares descritas acima para processo de seleção de filtro de interpolação.
[0174] Além de filtragem de interpolação, filtragem de amostra de referência também pode ser aplicada a amostras de referência imediatamente antes de predizer amostras dentro de um preditor intra. As amostras de referência filtradas obtidas após filtragem de amostra de referência podem ser usadas para copiar as mesmas em amostras correspondentes dentro de um preditor intra de acordo com uma direção selecionada do modo de predição intra ou para filtragem de interpolação adicional. Os filtros a seguir podem ser aplicados a amostras de referência desse modo: Tabela 5. Filtros de amostra de referência exemplificativos Índice Comprimento de Coeficientes de filtro filtro 0 1 [1], isto é, modo de desvio é aplicado visto que nenhuma filtragem é realizada nesse caso 1 3 [1, 2, 1] 2 5 [2, 3, 6, 3, 2] 3 5 [1, 4, 6, 4, 1]
[0175] O resultado da predição direcional pode ser combinado com o resultado de predição obtida por meios diferentes, incluindo o seguinte: Suavização de contorno, PDPC e PDPC simplificada
[0176] No caso de suavização de contorno e PDPC, diversas primeiras colunas ou diversas primeiras linhas de bloco predito são combinadas com o sinal de predição adicional gerado a partir das amostras vizinhas.
[0177] Implantação particular de PDPC simplificada pode ser realizada de maneira diferente, dependendo do modo de predição intra:
[0178] Para modos de predição intra plano, DC, HOR/VER (denotados como 0, 1, 18, 50, respectivamente, na Figura 4A e na Figura 4B), as seguintes etapas são realizadas: A amostra de predição 𝑃𝑃(𝑥𝑥, 𝑦𝑦) localizada em (x, y) é calculada da seguinte forma: 𝑃𝑃(𝑥𝑥, 𝑦𝑦) = �𝑤𝑤𝑤𝑤 × 𝑅𝑅−1,𝑦𝑦 + 𝑤𝑤𝑤𝑤 × 𝑅𝑅𝑥𝑥,−1 + 𝑤𝑤𝑤𝑤𝑤𝑤 × 𝑅𝑅−1,−1 + (64 − 𝑤𝑤𝑤𝑤 − 𝑤𝑤𝑤𝑤 − 𝑤𝑤𝑤𝑤𝑤𝑤) × 𝑃𝑃(𝑥𝑥, 𝑦𝑦) + 32� ≫ 6 em que Rx,-1, R-1,y representam as amostras de referência localizadas no topo e à esquerda da amostra atual (x, y), e R-1,-1 representa a amostra de referência localizada no canto de topo-esquerdo do bloco atual. Os pesos de modo DC são calculados da seguinte forma: 𝑤𝑤𝑇𝑇 = 32 ≫ �(𝑦𝑦 ≪ 1) ≫ 𝑠𝑠ℎ𝑖𝑖𝑖𝑖𝑖𝑖�, 𝑤𝑤𝑤𝑤 = 32 ≫ �(𝑥𝑥 ≪ 1) ≫ 𝑠𝑠ℎ𝑖𝑖𝑖𝑖𝑖𝑖�, 𝑤𝑤𝑤𝑤𝑤𝑤 = −(𝑤𝑤𝑤𝑤 ≫ 4) − (𝑤𝑤𝑤𝑤 ≫ 4), em que 𝑠𝑠ℎ𝑖𝑖𝑖𝑖𝑖𝑖 = (log 2 (𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤ℎ) + log 2 (ℎ𝑒𝑒𝑒𝑒𝑒𝑒ℎ𝑡𝑡) + 2) ≫ 2.
[0179] Para o modo plano, wTL = 0, enquanto para o modo horizontal, wTL = wT e para o modo vertical, wTL = wL. Os pesos de PDPC de modo DC (wL, wT, wTL) para posições (0, 0) e (1, 0) dentro de um bloco 4x4 são mostrados.
[0180] Para modos diagonal (denotado como 2 e 66 na Figura4A e na Figura 4B) e adjacente (modos direcionais não menores do que 58 e não maiores do que 10 na Figura4A ou na Figura 4B), o processamento é realizado conforme descrito abaixo:
[0181] A Figura 22(a) ilustra a definição de amostras de referência Rx,-1, R-1,y e R-1,-1 para a extensão de PDPC para o modo diagonal topo-direita. A amostra de predição pred(x’, y’) está localizada em (x’, y’) dentro do bloco de predição. A coordenada x da amostra de referência Rx,-1 é fornecida por: x = x’ + y’ + 1, e a coordenada y da amostra de referência R-1,y é fornecida, de modo similar, por: y = x’ + y’ + 1. Os pesos de PDPC para o modo diagonal topo-direita são: wT = 16 >> ( ( y’<<1 ) >> shift ), wL = 16 >> ( ( x’<<1 ) >> shift ), wTL =
0.
[0182] De modo similar, a Figura 22(b) ilustra a definição de amostras de referência Rx,-1, R-1,y e R-1,-1 para a extensão de PDPC para o modo diagonal inferior-esquerda. A coordenada x da amostra de referência Rx,-1 é fornecida por: x = x’ + y’ + 1, e a coordenada y da amostra de referência R-1,y é: y = x’ + y’ + 1. Os pesos de PDPC para o modo diagonal topo-direita são: wT = 16 >> ( ( y’<<1 ) >> shift ), wL = 16 >> ( ( x’<<1 ) >> shift ), wTL = 0. O caso de um modo diagonal topo-direita adjacente é ilustrado na Figura 22(c). Os pesos de PDPC para um modo diagonal topo-direita adjacente são: wT = 32 >> ( ( y’<<1 ) >> shift ), wL = 0, wTL = 0. De modo similar, o caso de um modo diagonal inferior-esquerda adjacente é ilustrado na Figura 22 d). Os pesos de PDPC para um modo diagonal inferior-esquerda adjacente são: wL = 32 >> ( ( x’<<1 ) >> shift ), wT =0, wTL = 0. As coordenadas de amostra de referência para os últimos dois casos são computadas com o uso das Tabelas que já são usadas para predição intra de modo angular. A interpolação linear das amostras de referência é usada se coordenadas de amostra de referência fracionadas forem calculadas.
[0183] Entretanto, o processamento (por exemplo, filtragem) das amostras vizinhas usadas como um processo de entrada para predição intra direcional pode ser diferente daquelas que são passadas para a entrada de PDPC ou PDPC simplificada. Por exemplo, predição intra direcional pode usar amostras de referência filtradas enquanto PDPC ou PDPC simplificada usam amostras não filtradas. Particularmente, quando modo de predição intra direcional é um modo de ângulo amplo que tem um deslocamento de subpixel de amostra de número inteiro (intraPredAngle, fornecido na Tabela X e descrito mais adiante), as amostras de referência podem ser filtradas, enquanto PDPC usa amostras de referência não filtradas.
[0184] No caso de PDPC simplificada, a implantação atual é mostrada na Figura 23.
[0185] Na Figura 23, caixa tracejada pode especificar um dentre o seguinte: um processo de PDPC simplificada; processo de PDPC (por exemplo, conforme especificado em JEM); Suavização de contorno (por exemplo, especificada em HEVC). Outros métodos que usam combinação linear para atualizar os resultados de predição intra
[0186] Em todos esses casos, esse processo inclui a etapa de atualização, isto é, uma combinação linear das saídas de etapas de predição intra e de geração de parte adicional.
[0187] Em implantação particular, a etapa de “filtragem de amostras de referência #1” e predição intra podem ser agrupadas convolucionando-se coeficientes de filtro de interpolação de subpixel com os coeficientes do filtro de amostras de referência. Entretanto, para modos de predição intra com deslocamentos não fracionados (casos em que intraPredAngle é um múltiplo de 32) esse agrupamento é redundante, visto que a operação de filtragem, nesse caso, será realizada por cada amostra predita, mas não por cada amostra de referência, conforme é mostrado na Figura 23.
[0188] Na Figura 23, pode-se observar que amostras de referência podem ser filtradas de maneira diferente dependendo de intraPredMode especificado.
Por exemplo, a decisão sobre o filtro aplicado a amostras de referência pode ser tomada de acordo com a Tabela X.
A Tabela X usa as seguintes denotações: - “S” significa que a decisão depende do tamanho de bloco.
Essa dependência de tamanho é realizada da seguinte forma: parâmetro de tamanho de bloco nTbS definido igual a (log2( nTbW) + Log2(nTbH) ) >> 1 é comparado a um limiar predeterminado TS.
No caso em que nTbS>TS, o mesmo processamento é aplicado, conforme descrito mais adiante para o valor de “1”. De outro modo, se nTbS≤TS, o mesmo processamento é aplicado, conforme descrito mais adiante para o valor de “0”. No presente documento, nTbW e nTbH denotam largura e altura do bloco predito, respectivamente, e “>>” denota uma operação de desvio para direita.
O valor de TS pode ser definido, por exemplo, para 2, ou ser definido dependendo de modo de predição intra (por exemplo, conforme é feito no caso de MDIS para HEVC); - “1” significa que o processamento é habilitado.
No caso de filtragem de amostra de referência, o valor de “1” significa que amostras de referência são processadas por filtro [1 2 1]; - “0” significa que o processamento é desabilitado.
No caso de filtragem de amostra de referência, o valor de “1” significa que amostras de referência são processadas por um filtro [1], isto é, que nenhuma filtragem é aplicada às amostras de referência.
Tabela X.
Decisões sobre filtragem de amostra de referência dependendo de intraPredMode direcional (conforme mostrado na Figura 4B) intraPredMode Modos Modo Modos de HOR_IDX Modos de diagonais diagonal ângulo (18) e inclinação positivos: 2 negativo: amplo de VER_IDX fracionad e VDIA_IDX DIA_IDX (34) inclinação (50) os: outros (66) de número modos inteiro: direcionai -14, -12, -10, s -6, 72, 76, 78, 80 Filtragem de S S 0 0 0 amostra de referência #1 Filtragem de interpolação 0 0 1 0 1 direcional S (acoplado Filtragem de com filtragem amostra de de amostra 0 0 0 0 referência #2 de referência #1) 0 ou 1 (diferente PDPC para 1 0 1 1 simplificada modalidad es diferentes)
[0189] As modalidades da invenção visam a unificação de processamento de amostra de referência com a combinação de uma saída de sinal de predição adicional e predição direcional usado para aperfeiçoar a qualidade visual de bloco predito. O resultado dessa unificação é que amostras de referência são processadas apenas uma vez, e o resultado desse processamento é reutilizado tanto por processo de predição intra direcional quanto geração de predição adicional (consulte a Figura 24).
[0190] Pode-se observar, no caso mostrado na Figura 24, que apenas uma etapa de filtragem de amostra de referência é necessária. Portanto, a decisão de filtragem é feita em conformidade com a Tabela Y. Tabela Y. Decisões sobre filtragem de amostra de referência dependendo de intraPredMode direcional (conforme mostrado na Figura 4B) intraPredMode Modos Modo Modos de HOR_IDX Modos de diagonais diagonal ângulo (18) e inclinação positivos: 2 negativo: amplo de VER_IDX fracionad e VDIA_IDX DIA_IDX (34) inclinação (50) os: outros (66) de número modos inteiro: direcionai -14, -12, -10, s -6, 72, 76, 78, 80 Filtragem de amostra de S S 1 0 0 referência Filtragem de interpolação 0 0 0 0 1 direcional 0 ou 1 (diferente PDPC para 1 0 1 1 simplificada modalidad es diferentes)
[0191] Parte adicional no caso de PDPC simplificada pode ser realizada conforme especificado na especificação de VVC. Adicionalmente, as seguintes denotações são usadas: 256∗32 invAngle = Round�intraPredAngle�, é o valor de ângulo inverso Round( x ) = Sign( x ) * Floor( Abs( x ) + 0,5 ), 1 ; x>0 Sign( x ) = � 0 ; x == 0 −1 ; x < 0 Floor( x ) é o maior número inteiro menor do que ou igual a x, Log2( x ) é o logaritmo de base 2 de x. intraPredAngle é o parâmetro de ângulo especificado na Tabela X ou na Tabela Y, A = C ? B : D é uma operação de atribuição ternária, em que A é definido igual a B se a condição C for verdadeira. De outro modo, se a condição C for falsa, A é definido igual a D. INTRA_PLANAR é um modo de predição intra plano (), INTRA_DC é um modo de predição intra DC, INTRA_ANGULARXX é um dentre modos de predição intra direcionais,
em que XX denota seu número e direção correspondente mostrados na Figura 4B.
[0192] Em relação às denotações acima, as etapas de PDPC simplificada podem ser definidas da seguinte forma: Entradas para esse processo são: – o modo de predição intra predModeIntra, – uma variável nTbW que especifica a largura de bloco de transformada, – uma variável nTbH que especifica a altura de bloco de transformada, – uma variável refW que especifica a largura de amostras de referência, – uma variável refH que especifica a altura de amostras de referência, – as amostras preditas predSamples[ x ][ y ], com x = 0..nTbW − 1, y = 0..nTbH − 1, – as amostras vizinhas p[ x ][ y ], com x = −1, y = −1..refH − 1 e x = 0..refW − 1, y = −1, – uma variável cIdx que especifica o componente de cor do bloco atual. Saídas desse processo são as amostras preditas modificadas predSamples[ x ][ y ] com x = 0..nTbW − 1, y = 0..nTbH − 1. Dependendo do valor de cIdx, a função clip1Cmp é definida da seguinte forma: – Se cIdx for igual a 0, clip1Cmp é definido igual a Clip1Y. – De outro modo, clip1Cmp é definido igual a Clip1C. A variável nScale é definida para ( ( Log2( nTbW ) + Log2( nTbH ) − 2 ) >> 2 ). Os arranjos de amostra de referência mainRef[ x ] e sideRef[ y ], com x = 0..refW − 1 e y = 0..refH − 1 são derivados da seguinte forma: mainRef[ x ] = p[ x ][ −1 ] sideRef[ y ] = p[ −1 ][ y ] As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] com x = 0..nTbW − 1, y =0..nTbH − 1 são derivadas da seguinte forma: – Se predModeIntra for igual a INTRA_PLANAR, INTRA_DC, INTRA_ANGULAR18 ou INTRA_ANGULAR50, o seguinte se aplica:
refL[ x ][ y ] = p[ −1 ][ y ] refT[ x ][ y ] = p[ x ][ −1 ] wT[ y ] = 32 >> ( ( y << 1 ) >> nScale ) wL[ x ] = 32 >> ( ( x << 1 ) >> nScale ) wTL[ x ][ y ] = ( predModeIntra = = INTRA_DC ) ? ( ( wL[ x ] >> 4 ) + ( wT[ y ] >> 4 ) ) : 0 – De outro modo, se predModeIntra for igual a INTRA_ANGULAR2 ou INTRA_ANGULAR66, o seguinte se aplica: refL[ x ][ y ] = p[ −1 ][ x + y + 1 ] refT[ x ][ y ] = p[ x + y + 1 ][ −1 ] wT[ y ] = ( 32 >> 1 ) >> ( ( y << 1 ) >> nScale ) wL[ x ] = ( 32 >> 1 ) >> ( ( x << 1 ) >> nScale ) wTL[ x ][ y ] = 0 – De outro modo, se predModeIntra for menor do que ou igual a INTRA_ANGULAR10, as seguintes etapas ordenadas se aplicam:
1. As variáveis dXPos[ y ], dXFrac[ y ], dXInt[ y ] e dX[ x ][ y ] são derivadas conforme a seguir com o uso de invAngle: dXPos[ y ] = ( ( y + 1 ) * invAngle + 2 ) >> 2 dXFrac[ y ] = dXPos[ y ] & 63 dXInt[ y ] = dXPos [ y ] >> 6 dX[ x ][ y ] = x + dXInt[ y ]
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são derivadas da seguinte forma: refL[ x ][ y ] = 0 refT[ x ][ y ] = ( dX[ x ][ y ] < refW − 1 ) ? ( ( 64 − dXFrac[ y ] ) * mainRef[ dX[ x ][ y ] ] + dXFrac[ y ] * mainRef[ dX[ x ][ y ] + 1 ] + 32 ) >> 6 : 0 (Eq. 1) wT[ y ] = ( dX[ x ][ y ] < refW − 1 ) ? 32 >> ( ( y << 1 ) >> nScale ) : 0 wL[ x ] = 0 wTL[ x ][ y ] = 0 – De outro modo, se predModeIntra for maior do que ou igual a INTRA_ANGULAR58 (consulte a Figura 4B), as seguintes etapas ordenadas se aplicam:
1. As variáveis dYPos[ x ], dYFrac[ x ], dYInt[ x ] e dY[ x ][ y ] são derivadas do modo a seguir com o uso de invAngle, conforme especificado abaixo dependendo de intraPredMode: dYPos[ x ] = ( ( x + 1 ) * invAngle + 2 ) >> 2 dYFrac[ x ] = dYPos[ x ] & 63 dYInt[ x ] = dYPos[ x ] >> 6 dY[ x ][ y ] = y + dYInt[ x ]
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são derivadas da seguinte forma: refL[ x ][ y ] = ( dY[ x ][ y ] < refH − 1 ) ? ( ( 64 − dYFrac[ x ] ) * sideRef[ dY[ x ][ y ] ] + dYFrac[ x ] * sideRef[ dY[ x ][ y ] + 1 ] + 32 ) >> 6 (Eq. 2) : 0 refT[ x ][ y ] = 0 wT[ y ] = 0 wL[ x ] = ( dY[ x ][ y ] < refH − 1 ) ? 32 >> ( ( x << 1 ) >> nScale ) : 0 wTL[ x ][ y ] = 0 – De outro modo, refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são todos definidos para serem iguais a 0. Os valores das amostras preditas modificadas predSamples[ x ][ y ], com x = 0..nTbW − 1, y =0..nTbH − 1 são derivados da seguinte forma: predSamples[ x ][ y ] = clip1Cmp( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] − p[ −1 ][ −1 ] * wTL[ x ][ y ] + ( 64 − wL[ x ] − wT[ y ] + wTL[ x ][ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6 ) Na Equação de atribuição 1 acima, PDPC simplificada pode usar interpolação de vizinho mais próximo em vez de linear:
refT[ x ][ y ] = ( dX[ x ][ y ] < refW − 1 ) ? mainRef[ dX[ x ][ y ] ] : 0 De modo similar, a Equação de atribuição 2 também pode usar interpolação de vizinho mais próximo: refL[ x ][ y ] = ( dY[ x ][ y ] < refH − 1 ) ? sideRef[ dY[ x ][ y ] ] : 0
[0193] Desse modo, em ambos os lados de codificador e decodificador, o método proposto usa o seguinte como os dados de entrada: modo de predição intra direcional (denotado mais adiante como predModeIntra, que é mostrado na Figura 4A e na Figura 4B) parâmetro de tamanho de bloco nTbS, que é definido igual a (log2( nTbW) + Log2(nTbH) ) >> 1, em que nTbW e nTbH denotam largura e altura do bloco predito, respectivamente, e “>>” denota uma operação de desvio para direita.
[0194] As seguintes etapas podem ser realizadas para implantar o método de predição intra: Etapa 1: Realizar filtragem de amostra de referência com base em amostras de referência, modo de predição intra intraPredMode e/ou dimensões de bloco (largura e altura). Etapa 2: Realizar predição intra direcional com base nas amostras de referência processadas (amostras de referência filtradas ou não filtradas) (resultados da etapa 1) em conformidade com intraPredAngle. Etapa 3: Atualizar o resultado obtido na etapa 2 com combinação de predição, que pode ser PDPC; PDPC simplificada
[0195] em que amostras de referência de entrada usadas na etapa 3 são iguais às amostras de referência obtidas na etapa 1 e usadas na etapa 2 para modos de ângulo amplo de inclinação de número inteiro (por exemplo, -14, -12, - 10, -6, 72, 76, 78, 80, conforme especificado nas Tabelas 6 e 7)
[0196] A filtragem de amostra de referência pode incluir: com base em predModeIntra, determinar se buffer de amostra de referência filtrada ou não filtrada deve ser usado. Isso pode ser realizado aplicando-se um dentre os filtros listados na Tabela 5. Em VVC, filtros com índices 0 e 1 são usados. Por exemplo, as amostras de referência são filtradas (índice de filtro “1” na Tabela 5 é usado) no caso em que predMode é igual a 2, 34 ou 66 e quando nTbS>2.
[0197] A modalidade alternativa do método descrito acima é usar o parâmetro de ângulo (denotado mais adiante como intraPredAngle) nesta etapa em vez de modo de predição intra predModeIntra (também denominado IntraPredMode). Nesse caso, as amostras de referência são filtradas (índice de filtro “1” da Tabela 5 é usado) se o valor de intraPredAngle for um múltiplo de 32 e quando nTbS>2.
[0198] A modificação da especificação de VVC que possibilita uso do método proposto pode compreender substituir “as amostras vizinhas p[ x ][ y ]” por “as amostras de referência p[ x ][ y ]” na seção que descreve PDPC simplificada.
[0199] O parâmetro de ângulo intraPredAngle denota o deslocamento de subpixel entre duas linhas adjacentes de amostras preditas em representação de ponto fixo que tem comprimento de parte fracionada igual a 5 bits. Esse parâmetro pode ser derivado do modo de predição intra é derivado de predModeIntra e. Uma derivação exemplificativa de intraPredAngle a partir de predModeIntra pode ser definida com uma LUT, por exemplo, conforme é mostrado na Tabela 8. Tabela 8. Uma LUT exemplificativa para derivar intraPredAngle a partir de predModeIntra. predMod - - - - eIntra 1 1 1 1 4 3 2 1 intraPred 5 3 2 1 Angle 1 4 5 7 2 1 6 1 predMod − − − − − − − − − − 2 3 4 5 6 7 8 eIntra 1 9 8 7 6 5 4 3 2 1 0 intraPred 1 1 8 7 6 5 5 4 3 3 3 2 2 2 2 1 1 Angle 2 0 6 3 4 7 1 5 9 5 2 9 6 3 0 8 6 8 2 predMod 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 eIntra 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 intraPred 1 1 1 8 6 4 3 2 1 0 - - - -4 -6 -8 - Angle 4 2 0 1 2 3 1 0 predMod 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 eIntra 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 intraPred - - - - - - - - - - - - - - - - - Angle 1 1 1 1 2 2 2 2 3 2 2 2 2 1 1 1 1 2 4 6 8 0 3 6 9 2 9 6 3 0 8 6 4 2 predMod 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 eIntra 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 intraPred - -8 -6 -4 - - - 0 1 2 3 4 6 8 1 1 1 Angle 1 3 2 1 0 2 4 0 predMod 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 eIntra 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 intraPred 1 1 2 2 2 2 3 3 3 4 5 5 6 7 8 1 1 Angle 6 8 0 3 6 9 2 5 9 5 1 7 4 3 6 0 2 2 8 predMod 7 7 7 8 eIntra 7 8 9 0 intraPred 1 2 3 5 Angle 7 5 4 1 1 6 1 2
[0200] Por exemplo, entende-se que uma revelação, em conexão com 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 de método específica for descrita, um dispositivo correspondente pode incluir uma unidade para realizar a etapa de método descrita, até mesmo se tal unidade não for descrita ou ilustrada explicitamente nas figuras. Adicionalmente, entende-se que os recursos dos vários aspectos exemplificativos, descritos no presente documento, podem ser combinados uns com os outros, a menos que estabelecido especificamente de outro modo.
[0201] A codificação de vídeo tipicamente se refere ao processamento de uma sequência de imagens, que forma o vídeo ou sequência de vídeo. Os termos imagem, foto ou quadro podem ser usados/são usados como sinônimos no campo de codificação de vídeo bem como neste pedido. 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 em que, por exemplo, predição inter de quadro ou predição intra de quadro são usados para gerar um bloco de predição, para subtrair o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, que é transformado, de modo adicional, e quantizado para reduzir a quantidade de dados a ser transmitida (compressão) enquanto no lado de decodificador, o processamento inverso é aplicado ao bloco codificado/comprimido para reconstruir o bloco para representação.
[0202] O presente pedido fornece, ainda, as seguintes modalidades: Modalidade 1. Um método de uma predição intra, o método compreende: processar amostras de referência; realizar predição intra direcional com base nas amostras de referência processadas em conformidade com uma predição intra; e realizar uma predição adicional com base nas amostras de referência processadas. Modalidade 2. O método, de acordo com a modalidade 1, em que o processamento de amostras de referência compreende filtragem de amostra de referência ou filtragem de interpolação de subpixel. Modalidade 3. O método, de acordo com a modalidade 1, em que o modo de predição intra direcional está em pelo menos um grupo de: A. modos vertical ou horizontal, B. modos diagonais que representam ângulos que são múltiplos de 45 graus, C. modos direcionais remanescentes. Modalidade 4. O método, de acordo com a modalidade 3, quando o modo de predição intra direcional é classificado como pertencendo ao grupo A, nenhum filtro é aplicado a amostras de referência para gerar um preditor intra. Modalidade 5. O método, de acordo com a modalidade 3, quando o modo direcional está no grupo B, t um filtro de amostra de referência é aplicado a amostras de referência para copiar valores filtrados em um preditor intra de acordo com a direção selecionada (nenhum filtro de interpolação é aplicado). Modalidade 6. O método, de acordo com a modalidade 3, quando o modo direcional é classificado como pertencendo ao grupo C, apenas um filtro de interpolação de amostra de referência intra é aplicado a amostras de referência para gerar uma amostra predita que está em uma posição fracionada ou de número inteiro entre amostras de referência, de acordo com uma direção selecionada (nenhuma filtragem de amostra de referência é realizada). Modalidade 7. O método, de acordo com qualquer uma das modalidades 1 a 6, em que realizar filtragem de amostra de referência com base em pelo menos um dentre: amostras de referência, modo de predição intra (IntraPredMode) ou um parâmetro de tamanho de bloco.
Modalidade 8. O método, de acordo com a modalidade 7, em que as amostras de referência processadas incluem amostras de referência filtradas ou amostras de referência não filtradas.
Modalidade 9. O método, de acordo com a modalidade 7, em que o método compreende, ainda: determinar se buffer de amostra de referência filtrada ou não filtrada é usado com base no predModeIntra.
Modalidade 10. O método, de acordo com a modalidade 9, um filtro com índices 0 ou 1 é usado.
Modalidade 11. O método, de acordo com a modalidade 9, amostras de referência são filtradas (índice de filtro “1” na Tabela 5 é usado) no caso em que predMode é igual a 2, 34 ou 66 e quando nTbS>2. Modalidade 12. O método, de acordo com a modalidade 7, em que o método compreende, ainda: determinar se buffer de amostra de referência filtrada ou não filtrada é usado com base no parâmetro de tamanho de bloco, em que o parâmetro de tamanho de bloco é um parâmetro de ângulo (intraPredAngle). Modalidade 13. O método, de acordo com a modalidade 12, amostras de referência são filtradas (índice de filtro “1” da Tabela 5 é usado) se o valor de intraPredAngle for um múltiplo de 32 e quando nTbS>2. Modalidade 14. O método, de acordo com qualquer uma das modalidades 1 a 13, em que a predição adicional é Combinação de Predição
Dependente de Posição (PDPC) ou PDPC simplificada. Modalidade 15. O método, de acordo com qualquer uma das modalidades 1 a 14, em que a predição intra e a predição adicional são realizadas paralelamente. Modalidade 16. O método, de acordo com qualquer uma das modalidades 1 a 15, em que a predição intra direcional inclui modos de ângulo amplo de inclinação de número inteiro (por exemplo, -14, -12, -10, -6, 72, 76, 78, 80, conforme especificado nas Tabelas X e Y).
[0203] Um decodificador ou codificador que compreende conjunto de circuitos de processamento configurado para realizar os métodos acima.
[0204] Na presente revelação, um produto de programa de computador que compreende um código de programa é revelado para realizar os métodos acima. Na presente revelação, um decodificador para decodificar dados de vídeo é revelado, o decodificador compreende: um ou mais processadores; e uma mídia de armazenamento não transitória legível por computador acoplada aos processadores e que armazena programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar os métodos acima.
[0205] A Figura 25 é um diagrama em blocos que mostra uma estrutura exemplificativa de um aparelho 2500 para predição intra de um bloco de imagem atual em uma imagem atual de um vídeo. Em um exemplo, o aparelho 2500 pode corresponder à unidade de predição intra 254 na Figura 2. Em outro exemplo, o aparelho 2500 pode corresponder à unidade de predição intra 354 na Figura 3. O aparelho 2500 é configurado para realizar os métodos acima, e pode incluir: uma unidade de obtenção 2502, configurada para obter um modo de predição intra do bloco; e uma unidade de predição de ângulo amplo 2504, configurada para obter amostras preditas do bloco com base em amostras de referência filtradas quando o modo de predição intra do bloco for um modo de ângulo amplo.
[0206] O aparelho 2500 pode incluir, ainda, uma unidade de determinação (não mostrada na Figura 25), configurada para determinar se o modo de predição intra do bloco é um modo de ângulo amplo.
[0207] A Figura 26 é um diagrama em blocos de um aparelho 1500 que pode ser usado para implantar várias modalidades. O aparelho 1500 pode ser o dispositivo de origem 102, conforme mostrado na Figura 1, ou o codificador de vídeo 200, conforme mostrado na Figura 2, ou o dispositivo de destino 104, conforme mostrado na Figura 1, ou o decodificador de vídeo 300, conforme mostrado na Figura 3. Adicionalmente, o aparelho 1500 pode hospedar um ou mais dentre os elementos descritos. Em algumas modalidades, o aparelho 1500 é equipado com um ou mais dispositivos de entrada/saída, tais como um alto- falante, microfone, mouse, tela sensível ao toque, teclado alfanumérico, teclado, impressora, visor e similares. O aparelho 1500 pode incluir uma ou mais unidades centrais de processamento (CPUs) 1510, uma memória 1520, um armazenamento em massa 1530, um adaptador de vídeo 1540 e uma interface de I/O 1560 conectada a um barramento. O barramento é um ou mais dentre qualquer tipo de diversas arquiteturas de barramento incluindo um barramento de memória ou controlador de memória, um barramento periférico, um barramento de vídeo ou similares.
[0208] A CPU 1510 pode ter qualquer tipo de processador de dados eletrônico. A memória 1520 pode ter ou ser qualquer tipo de memória de sistema, tal como memória estática de acesso aleatório (SRAM), memória dinâmica de acesso aleatório (DRAM), DRAM síncrona (SDRAM), memória somente leitura (ROM), uma combinação das mesmas ou similares. Em uma modalidade, a memória 1520 pode incluir ROM para uso na inicialização, e DRAM para armazenamento de programa e dados para uso enquanto executa programas. Em modalidades, a memória 1520 é não transitória. O armazenamento em massa 1530 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 por meio do barramento. O armazenamento em massa 1530 inclui, por exemplo, uma ou mais dentre uma unidade de estado sólido, unidade de disco rígido, uma unidade de disco magnético, uma unidade de disco óptico ou similares.
[0209] O adaptador de vídeo 1540 e a interface de I/O 1560 fornecem interfaces para acoplar dispositivos externos de entrada e saída ao aparelho 1500. Por exemplo, o aparelho 1500 pode fornecer interface de comando de SQL a clientes. Conforme ilustrado, exemplos de dispositivos de entrada e saída incluem um visor 1590 acoplado ao adaptador de vídeo 1540 e qualquer combinação de mouse/teclado/impressora 1570 acoplado à interface de I/O 1560. Outros dispositivos podem ser acoplados ao aparelho 1500, e mais ou menos placas de interface podem ser utilizadas. Por exemplo, uma placa de interface serial (não mostrado) pode ser usada para fornecer uma interface serial para uma impressora.
[0210] O aparelho 1500 também inclui uma ou mais interfaces de rede 1550, que inclui enlaces com fio, tais como um cabo de Ethernet ou similares, e/ou enlaces sem fio para acessar nós ou uma ou mais redes 1580. A interface de rede 1550 permite que o aparelho 1500 se comunique com as unidades remotas por meio das redes 1580. Por exemplo, a interface de rede 1550 pode fornecer comunicação a banco de dados. Em uma modalidade, o aparelho 1500 é acoplado a uma rede de área local ou a 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 remotas ou similares.
[0211] A seguir, há uma explicação das aplicações do método de codificação bem como do método de decodificação, conforme mostrado nas modalidades mencionadas acima, e um sistema que usa os mesmos.
[0212] A Figura 27 é um diagrama de blocos que mostra um sistema de fornecimento de conteúdo 3100 para realizar serviço de distribuição de conteúdo. Esse sistema de fornecimento de conteúdo 3100 inclui dispositivo de captura 3102, dispositivo terminal 3106 e inclui, opcionalmente, visor 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 por meio de enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, mas sem limitação, WIFI, Ethernet, Cabo, sem fio (3G/4G/5G), USB ou qualquer tipo de combinação dos mesmos, ou similares.
[0213] O dispositivo de captura 3102 gera dados, e pode codificar os dados pelo método de codificação, conforme mostrado nas modalidades acima. De modo alternativo, o dispositivo de captura 3102 pode distribuir os dados a um servidor de transmissão (não mostrado nas Figuras), e o servidor codifica os dados e transmite os dados codificados ao dispositivo terminal 3106. O dispositivo de captura 3102 inclui, mas sem limitação, câmera, smartphone ou Pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo ou uma combinação de qualquer um dos mesmos, ou similares. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12, conforme descrito acima. Quando os dados incluírem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode, de fato, realizar processamento de codificação de vídeo. Quando os dados incluírem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode, de fato, realizar processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de áudio e vídeo codificados multiplexando-se os mesmos em conjunto. Para outros cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados ao dispositivo terminal 3106 separadamente.
[0214] No sistema de fornecimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 pode ser um dispositivo com capacidade de recepção e recuperação de dados, tal como smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/ gravador de vídeo digital (DVR) 3112, TV 3114, decodificador de sinal (STB) 3116, sistema de videoconferência 3118, sistema de vigilância por vídeo 3120, assistente digital pessoal (PDA) 3122, dispositivo montado em veículo 3124 ou uma combinação de qualquer um dos mesmos ou similares com a capacidade de decodificar os dados codificados mencionados acima. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14, conforme descrito acima. Quando os dados codificados incluírem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar decodificação de vídeo. Quando os dados codificados incluírem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar processamento de decodificação de áudio.
[0215] Para um dispositivo terminal com seu visor, por exemplo, smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/ gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122 ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados decodificados em seu visor. Para um dispositivo terminal não equipado com visor, por exemplo, STB 3116, sistema de videoconferência 3118 ou sistema de vigilância por vídeo 3120, um visor externo 3126 é conectado ao mesmo para receber e mostrar os dados decodificados.
[0216] Quando cada dispositivo neste sistema realizar codificação ou decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, conforme mostrado nas modalidades mencionadas acima, pode ser usado.
[0217] A Figura 28 é um diagrama que mostra uma estrutura de um exemplo do dispositivo terminal 3106. Após o dispositivo terminal 3106 receber fluxo do dispositivo de captura 3102, a unidade de prosseguimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, mas sem limitação, Protocolo de Transmissão em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), protocolo de transmissão ao vivo de HTTP (HLS), MPEG-DASH, protocolo de Transporte em Tempo Real (RTP), Protocolo de Envio de Mensagem em Tempo Real (RTMP) ou qualquer tipo de combinação dos mesmos ou similares.
[0218] Após a unidade de prosseguimento de protocolo 3202 processar o fluxo, o arquivo de fluxo é gerado. O arquivo é emitido para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados nos dados de áudio codificados e nos dados de vídeo codificados. Conforme descrito acima, para alguns cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nesta situação, os dados codificados são transmitidos ao decodificador de vídeo 3206 e ao decodificador de áudio 3208 sem intermédio da unidade de demultiplexação 3204.
[0219] Por meio do processamento de demultiplexação, fluxo elementar de vídeo (ES), ES de áudio e, opcionalmente, legenda são gerados. O decodificador de vídeo 3206, que inclui o decodificador de vídeo 30, conforme explicado nas modalidades mencionadas acima, decodifica o ES de vídeo pelo método de decodificação, conforme mostrado nas modalidades mencionadas acima para gerar quadro de vídeo, e alimenta esses dados na unidade síncrona
3212. O decodificador de áudio 3208, decodifica o ES de áudio para gerar quadro de áudio, e alimenta esses dados na unidade síncrona 3212. De modo alternativo, o quadro de vídeo pode ser armazenado em um buffer (não mostrado na Figura Y) antes de ser alimentado à unidade síncrona 3212. De modo similar, o quadro de áudio pode ser armazenado em um buffer (não mostrado na Figura Y) antes de ser alimentado à unidade síncrona 3212.
[0220] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio, e fornece o vídeo/áudio a um visor de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação das informações de vídeo e áudio. As informações podem ser codificadas na sintaxe com o uso de carimbos de data e hora relacionados à apresentação de dados de áudio e visual codificados e carimbos de data e hora relacionados à entrega do fluxo de dados em si.
[0221] Se legenda estiver incluída no fluxo, o decodificador de legendas 3210 decodifica a legenda, e sincroniza a mesma com o quadro de vídeo e o quadro de áudio, e fornece o vídeo/áudio/legenda a um visor de vídeo/áudio/legenda 3216.
[0222] A presente invenção não é limitada ao sistema mencionado acima, e o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, nas modalidades mencionadas acima, pode ser incorporado em outro sistema, por exemplo, um sistema de carro.
[0223] As implantações da matéria e as operações descritas nesta revelação podem ser implantadas em conjunto de circuitos eletrônicos digitais ou em software, firmware ou hardware de computador, incluindo as estruturas reveladas nesta revelação e seus equivalentes estruturais, ou em combinações de um ou mais dos mesmos. As implantações da matéria descrita nesta revelação podem ser implantadas como um ou mais programas de computador, isto é, um ou mais módulos de instruções de programa de computador, codificados em mídia de armazenamento em computador para execução pelo aparelho de processamento de dados ou para controlar a operação do mesmo. De modo alternativo ou adicional, as instruções de programa podem ser codificadas em um sinal propagado gerado artificialmente-, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina que é gerado para codificar informações para transmissão para aparelho receptor adequado para execução por meio de um aparelho de processamento de dados. Uma mídia de armazenamento em computador, por exemplo, a mídia legível por computador, pode ser ou estar incluída em um dispositivo de armazenamento legível por computador, um substrato de armazenamento legível por computador, um arranjo ou dispositivo de memória de acesso aleatório ou serial ou uma combinação de um ou mais dos mesmos. Além disso, embora uma mídia de armazenamento em computador não seja um sinal propagado, uma mídia de armazenamento em computador pode ser uma origem ou destino de instruções de programa de computador codificadas em um sinal propagado gerado artificialmente. A mídia de armazenamento em computador também pode ser ou estar incluída em um ou mais componentes ou mídias não transitórias e/ou físicas separadas (por exemplo, múltiplos CDs, discos ou outros dispositivos de armazenamento).
[0224] Em algumas implantações, as operações descritas nesta revelação podem ser implantadas como um serviço hospedado fornecido em um servidor em uma rede de computação em nuvem. Por exemplo, as mídias de armazenamento legíveis em computador podem ser agrupadas logicamente e acessíveis dentro de uma rede de computação em nuvem. Os servidores dentro da rede de computação em nuvem podem incluir uma plataforma de computação em nuvem para fornecer serviços com base em nuvem. Os termos “nuvem”, “computação em nuvem” e “com base em nuvem” podem ser usados de maneira alternada conforme apropriado sem se afastar do escopo desta revelação. Os serviços com base em nuvem podem ser serviços hospedados que são fornecidos por servidores e entregues através de uma rede a uma plataforma de cliente para aprimorar, complementar ou substituir aplicações executadas localmente em um computador de cliente. O circuito pode usar serviços com base em nuvem para receber, de forma rápida, atualizações de software, aplicações e outros recursos que exigiriam, de outro modo, um período de tempo longo antes de os recursos poderem ser entregues ao circuito.
[0225] Um programa de computador (também conhecido como um programa, software, aplicativo de software, script ou código) pode ser registrado em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, linguagens declarativas ou procedurais, e pode ser implementado em qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, sub-rotina, objeto ou outra unidade adequada para 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 porção de um arquivo que manté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 implementado para ser executado em um computador ou em múltiplos computadores que estão localizados em um sítio ou distribuídos em múltiplos sítios e interconectados por uma rede de comunicação.
[0226] Os processos e fluxos lógicos descritos nesta revelação podem ser realizados por um ou mais processadores programáveis que executam um ou mais programas de computador para realizar ações operando-se em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser realizados por (e aparelho também pode ser implantado como) conjunto de circuitos lógicos de propósito especial, por exemplo, um FPGA (arranjo de porta programável em campo) ou um ASIC (circuito integrado de aplicação-específica).
[0227] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores tanto de propósito geral quanto especial, e qualquer um ou mais processadores de qualquer tipo de computador digital. De modo geral, um processador receberá instruções e dados a partir de uma memória somente-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 em conformidade com instruções e um ou mais dispositivos de memória para armazenar instruções e dados. De modo geral, um computador também incluirá ou será acoplado, de modo operativo, para receber dados a partir de 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 embutido em outro dispositivo, por exemplo, um telefone móvel, um assistente digital pessoal (PDA), um reprodutor móvel de áudio ou vídeo, um console de jogos, um receptor de Sistema de Posicionamento Global (GPS) ou um dispositivo de armazenamento portátil (por exemplo, uma unidade flash barramento serial universal (USB)), para citar alguns. Os dispositivos adequados para armazenar instruções de programa de computador e dados incluem todas as formas de memória não-volátil, mídias e dispositivos de memória, incluindo, a título de exemplo, dispositivos 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 conjunto de circuitos lógicos de propósito especial.
[0228] Embora esta revelação contenha muitos detalhes de implantação específicos, esses não devem ser interpretados como limitações no escopo de quaisquer implantações ou do que pode ser reivindicado, mas, em vez disso, como descrições de recursos específicos para implantações particulares de implantações particulares. Determinados recursos que são descritos nesta revelação no contexto de implantações separadas também podem ser implantados em combinação em uma única implantação. De modo contrário, vários recursos que são descritos no contexto de uma única implantação também podem ser implantados em múltiplas implantações separadamente ou em qualquer subcombinação adequada. Além disso, embora recursos possam ser descritos acima que atuam em determinadas combinações e até mesmo inicialmente reivindicados como tal, um ou mais recursos de uma combinação reivindicada podem ser excisados, em alguns casos, da combinação, e a combinação reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[0229] De modo similar, embora as operações sejam retratadas nos desenhos em uma ordem particular, isso não deve ser entendido como uma exigência para que tais operações sejam realizadas na ordem particular mostrada ou em ordem sequencial, ou para que todas as operações ilustradas sejam realizadas para alcançar resultados desejáveis. Em determinadas circunstâncias, múltiplas tarefas e processamento paralelo podem ser vantajosos. Além disso, a separação de vários componentes de sistema nas implantações descritas acima não deve ser entendida como uma exigência de tal separação em todas as implantações, e deve-se entender que os componentes de programa e sistemas descritos podem ser, de modo geral, integrados em conjunto em um único produto de software ou empacotados em múltiplos produtos de software.
[0230] Desse modo, implantações particulares da matéria foram descritas. Outras implantações estão incluídas no escopo das reivindicações a seguir. Em alguns casos, as ações citadas nas reivindicações podem ser realizadas em uma ordem diferente e ainda alcançar resultados desejáveis. Além disso, os processos retratados nas Figuras anexas não exigem, necessariamente, a ordem particular mostrada, ou ordem sequencial, para alcançar os resultados desejáveis. Em determinadas implantações, múltiplas tarefas e processamento paralelo podem ser vantajosos.
[0231] Embora diversas modalidades tenham sido fornecidas na presente revelação, deve-se entender que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados como ilustrativos e não restritivos, e a intenção não deve ser limitada aos detalhes fornecidos no presente documento. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em outro sistema ou determinados recursos podem ser omitidos, ou não implantados.
[0232] 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 a outros sistemas, módulos, técnicas ou métodos sem se afastar do escopo da presente revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou que se comunicam um com o outro podem ser acoplados indiretamente ou se comunicar através de alguma interface, dispositivo ou componente intermediário, seja elétrico, mecânico ou de outro modo. Outros exemplos de mudanças, substituições e alterações são verificados pelos versados na técnica e podem ser realizados sem se afastar do espírito e escopo revelados no presente documento.
Claims (17)
1. Método de predição intra de um bloco, o método compreendendo: obter um modo de predição intra do bloco; e obter amostras preditas do bloco com base em amostras de referência filtradas quando o modo de predição intra do bloco for um modo de ângulo amplo.
2. Método, de acordo com a reivindicação 1, em que o modo de predição intra do bloco é um modo de ângulo amplo de inclinação de número inteiro.
3. Método, de acordo com a reivindicação 2, em que o modo de ângulo amplo de inclinação de número inteiro é pelo menos um dentre: -14, -12, -10, -6, 72, 76, 78, ou 80.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, em que um filtro sendo usado para obter as amostras de referência filtradas é definido pelos seguintes coeficientes: [1, 2, 1]/4.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, em que o método compreende adicionalmente: determinar se um buffer de amostra de referência filtrada ou não filtrada é usado com base em se o modo de predição intra do bloco é um modo de ângulo amplo.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, em que Combinação de Predição Dependente de Posição (PDPC) é realizada para amostras de referência que são filtradas ou não filtradas com base em se o modo de predição intra do bloco é um modo de ângulo amplo e em amostras preditas do bloco que foram obtidas a partir das amostras de referência.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, em que o método compreende adicionalmente: determinar se o modo de predição intra do bloco é um modo de ângulo amplo.
8. Aparelho para predição intra de um bloco, o aparelho compreendendo: uma unidade de obtenção, configurada para obter um modo de predição intra do bloco; e uma unidade de predição de ângulo amplo, configurada para obter amostras preditas do bloco com base em amostras de referência filtradas quando o modo de predição intra do bloco for um modo de ângulo amplo.
9. Aparelho, de acordo com a reivindicação 8, em que o modo de predição intra do bloco é um modo de ângulo amplo de inclinação de número inteiro.
10. Aparelho, de acordo com a reivindicação 9, em que o modo de ângulo amplo de inclinação de número inteiro é pelo menos um dentre: -14, -12, -10, -6, 72, 76, 78, ou 80.
11. Aparelho, de acordo com qualquer uma das reivindicações 8 a 10, em que um filtro sendo usado para obter a amostra de referência filtrada é definido pelos seguintes coeficientes: [1, 2, 1]/4.
12. Aparelho, de acordo com qualquer uma das reivindicações 8 a 11, em que o aparelho compreende adicionalmente uma unidade de determinação, configurada para determinar se o modo de predição intra do bloco é um modo de ângulo amplo.
13. Aparelho, de acordo com a reivindicação 12, em que a unidade de determinação é configurada adicionalmente para determinar se um buffer de amostra de referência filtrada ou não filtrada é usado com base em se o modo de predição intra do bloco é um modo de ângulo amplo.
14. Aparelho, de acordo com qualquer uma das reivindicações 8 a 13, em que a Combinação de Predição Dependente de Posição (PDPC) é realizada para amostras de referência que são filtradas ou não filtradas com base em o modo de predição intra do bloco ser um modo de ângulo amplo e em amostras preditas do bloco que foram obtidas a partir das amostras de referência.
15. Codificador, compreendendo conjunto de circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7.
16. Decodificador, compreendendo conjunto de circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7.
17. 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 7.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862767496P | 2018-11-14 | 2018-11-14 | |
US62/767,496 | 2018-11-14 | ||
PCT/RU2019/050214 WO2020101545A1 (en) | 2018-11-14 | 2019-11-14 | Method and apparatus for intra prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020025155A2 true BR112020025155A2 (pt) | 2021-05-18 |
Family
ID=70731882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020025155-0A BR112020025155A2 (pt) | 2018-11-14 | 2019-11-14 | método e aparelho para predição intra |
Country Status (12)
Country | Link |
---|---|
US (2) | US11689729B2 (pt) |
EP (1) | EP3864847A4 (pt) |
JP (2) | JP7177242B2 (pt) |
KR (2) | KR20230127376A (pt) |
CN (1) | CN112997497A (pt) |
AU (2) | AU2019381145B2 (pt) |
BR (1) | BR112020025155A2 (pt) |
CA (1) | CA3119645C (pt) |
CL (1) | CL2021001265A1 (pt) |
MX (1) | MX2021001514A (pt) |
NZ (1) | NZ776204A (pt) |
WO (1) | WO2020101545A1 (pt) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220224938A1 (en) * | 2021-01-08 | 2022-07-14 | Offinno, LLC | Intra Prediction Signaling |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8619857B2 (en) * | 2010-04-09 | 2013-12-31 | Sharp Laboratories Of America, Inc. | Methods and systems for intra prediction |
US9451254B2 (en) * | 2013-07-19 | 2016-09-20 | Qualcomm Incorporated | Disabling intra prediction filtering |
US10362314B2 (en) * | 2015-11-27 | 2019-07-23 | Mediatek Inc. | Apparatus and method for video coding by intra-prediction |
FI20175006A1 (en) * | 2017-01-03 | 2019-02-15 | Nokia Technologies Oy | Video and image coding using wide-angle intra-prediction |
US10917660B2 (en) | 2017-01-13 | 2021-02-09 | Vid Scale, Inc. | Prediction approaches for intra planar coding |
CN117041537A (zh) * | 2017-06-21 | 2023-11-10 | Lg 电子株式会社 | 在图像编译系统中根据帧内预测用于解码图像的方法和设备 |
EP3496401A1 (en) * | 2017-12-05 | 2019-06-12 | Thomson Licensing | Method and apparatus for video encoding and decoding based on block shape |
US11128872B2 (en) * | 2018-07-16 | 2021-09-21 | Qualcomm Incorporated | Position dependent intra prediction combination with wide angle intra prediction |
US10834393B2 (en) * | 2018-09-10 | 2020-11-10 | Tencent America LLC | Intra interpolation filter for multi-line intra prediction |
US11303885B2 (en) * | 2018-10-25 | 2022-04-12 | Qualcomm Incorporated | Wide-angle intra prediction smoothing and interpolation |
-
2019
- 2019-11-14 CN CN201980072829.3A patent/CN112997497A/zh active Pending
- 2019-11-14 CA CA3119645A patent/CA3119645C/en active Active
- 2019-11-14 BR BR112020025155-0A patent/BR112020025155A2/pt unknown
- 2019-11-14 EP EP19883882.3A patent/EP3864847A4/en active Pending
- 2019-11-14 KR KR1020237028717A patent/KR20230127376A/ko not_active Application Discontinuation
- 2019-11-14 JP JP2021504520A patent/JP7177242B2/ja active Active
- 2019-11-14 WO PCT/RU2019/050214 patent/WO2020101545A1/en unknown
- 2019-11-14 NZ NZ776204A patent/NZ776204A/en unknown
- 2019-11-14 KR KR1020217000324A patent/KR102571856B1/ko active IP Right Grant
- 2019-11-14 AU AU2019381145A patent/AU2019381145B2/en active Active
- 2019-11-14 MX MX2021001514A patent/MX2021001514A/es unknown
-
2021
- 2021-01-05 US US17/142,185 patent/US11689729B2/en active Active
- 2021-05-14 CL CL2021001265A patent/CL2021001265A1/es unknown
-
2022
- 2022-11-10 JP JP2022180464A patent/JP2023022071A/ja active Pending
-
2023
- 2023-02-16 AU AU2023200908A patent/AU2023200908B2/en active Active
- 2023-05-19 US US18/320,199 patent/US20230421776A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210127122A1 (en) | 2021-04-29 |
CA3119645A1 (en) | 2020-05-22 |
CL2021001265A1 (es) | 2021-10-22 |
EP3864847A4 (en) | 2021-12-15 |
JP7177242B2 (ja) | 2022-11-22 |
KR102571856B1 (ko) | 2023-08-28 |
MX2021001514A (es) | 2021-04-13 |
AU2023200908B2 (en) | 2024-06-06 |
US11689729B2 (en) | 2023-06-27 |
NZ776204A (en) | 2023-02-24 |
WO2020101545A1 (en) | 2020-05-22 |
KR20210016615A (ko) | 2021-02-16 |
JP2021533618A (ja) | 2021-12-02 |
CN112997497A (zh) | 2021-06-18 |
KR20230127376A (ko) | 2023-08-31 |
AU2023200908A1 (en) | 2023-03-16 |
AU2019381145A1 (en) | 2021-06-10 |
US20230421776A1 (en) | 2023-12-28 |
JP2023022071A (ja) | 2023-02-14 |
AU2019381145B2 (en) | 2022-11-17 |
EP3864847A1 (en) | 2021-08-18 |
CA3119645C (en) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2023229601B2 (en) | Method and apparatus for intra prediction | |
ES2974160T3 (es) | Decodificador de video y métodos | |
BR112020026863A2 (pt) | método e aparelho para filtragem de interpolação para predição intra e inter em codificação de vídeo | |
BR112021003679A2 (pt) | método, codificador e decodificador para predição intra | |
BR112020026818A2 (pt) | codificador, decodificador e métodos correspondentes de derivação de resistência de limite de filtro de desbloqueio | |
BR112021004679A2 (pt) | método e aparelho para predição | |
BR112020025145A2 (pt) | filtro de desbloqueio para fronteiras de subpartição causadas por ferramenta de codificação de subpartição intra | |
BR112021006909A2 (pt) | aparelho e método para filtro de desblocagem em codificação de vídeo | |
BR112021014502A2 (pt) | Codificador, decodificador e métodos correspondentes de adaptação de filtro de desblocagem | |
BR112021012949A2 (pt) | Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória | |
US20210289203A1 (en) | Video encoder, video decoder, and corresponding method | |
AU2023200908B2 (en) | Method and apparatus for intra prediction | |
BR112021009099A2 (pt) | codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem | |
BR112021003946A2 (pt) | codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
US11297345B2 (en) | Intra prediction mode derivation based on neighboring blocks | |
WO2020061949A1 (en) | Encoding method, decoding method, encoder, and decoder | |
WO2021054868A1 (en) | Method and apparatus for intra prediction | |
WO2020106186A1 (en) | Method and apparatus for hierarchical signaling of enabling and disabling prediction mechanisms for video coding |