BR112020024520A2 - projeto e sinalização de filtro de malha adaptativo (alf) baseado em bloco - Google Patents

projeto e sinalização de filtro de malha adaptativo (alf) baseado em bloco Download PDF

Info

Publication number
BR112020024520A2
BR112020024520A2 BR112020024520-8A BR112020024520A BR112020024520A2 BR 112020024520 A2 BR112020024520 A2 BR 112020024520A2 BR 112020024520 A BR112020024520 A BR 112020024520A BR 112020024520 A2 BR112020024520 A2 BR 112020024520A2
Authority
BR
Brazil
Prior art keywords
adaptive mesh
block
filters
filter
current
Prior art date
Application number
BR112020024520-8A
Other languages
English (en)
Inventor
Marta Karczewicz
Akshay Gadde
Vadim SEREGIN
Wei-Jung Chien
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112020024520A2 publication Critical patent/BR112020024520A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

PROJETO E SINALIZAÇÃO DE FILTRO DE MALHA ADAPTATIVO (ALF) BASEADO EM BLOCO. Trata-se de um codificador de vídeo e decodificador de vídeo que podem determinar um conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, em uma base por bloco. Cada conjunto de filtros de malha adaptativos pode incluir filtros de uma figuração anterior, filtros sinalizados para a figuração atual, e/ou filtro pré-treinado. Variando-se o conjunto de filtros de malha adaptativos em uma base por bloco, os filtros de malha adaptativos disponíveis para cada bloco de dados de vídeo podem ser mais adaptados às estatísticas locais dos dados de vídeo.

Description

“PROJETO E SINALIZAÇÃO DE FILTRO DE MALHA ADAPTATIVO (ALF) BASEADO EM BLOCO”
[0001] Este pedido reivindica a prioridade ao Pedido de patente US nº 16/427.017, depositado em 30 de maio de 2019, que reivindica o benefício do Pedido provisório de patente US nº 62/679.685, depositado em 1 de junho de 2018, cujo conteúdo integral é incorporado ao presente documento a título de referência.
CAMPO DA TÉCNICA
[0002] Esta revelação a codificação de vídeo e decodificação de vídeo.
ANTECEDENTES
[0003] As capacidades do vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, que incluem televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores do tipo laptop ou desktop, computadores do tipo tablet, leitores de livro eletrônico, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos de vídeo, consoles de videogame, telefones celulares ou de rádio via satélite, os denominados “telefones inteligentes”, dispositivos de teleconferência por vídeo, dispositivos de fluxo contínuo de vídeo, e semelhantes. As técnicas de compactação de vídeo de implantação de dispositivos de vídeo digitais, como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HVEC) recentemente finalizado e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de modo mais eficiente ao implantar tais técnicas de compactação de vídeo.
[0004] As técnicas de compactação de vídeo realizam predição espacial (intrafiguração) e/ou predição temporal (interfiguração) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a criptografia de vídeo baseada em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos de árvore, unidades de codificação (CUs) e/ou nós de criptografia. Os blocos de vídeo em uma fatia intracriptografada (1) de uma figuração são codificados com o uso de predição espacial em relação às amostras de referência em blocos vizinhos na mesma figuração. os blocos de vídeo em uma fatia intercriptografada (P ou B) de uma figuração podem usar predição espacial em relação às amostras de referência em blocos vizinhos na mesma figuração ou predição temporal em relação às amostras de referência em outras figurações de referência. As figurações podem ser referidas como os quadros, e as figurações de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser criptografado. Os dados residuais representam diferenças de pixel entre o bloco original a ser criptografado e o bloco preditivo. Um bloco intercriptografado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que forma o bloco preditivo, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracriptografado é codificado de acordo com um modo intracriptografia e com os dados residuais. Para a compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel em um domínio de transformada, resultando em coeficientes de transformada residuais, que podem, então, ser quantizados. os coeficientes de transformada quantizados, inicialmente dispostos em uma matriz bidirecional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada, e a criptografia por entropia pode ser aplicada para obter ainda mais compactação.
SUMÁRIO
[0006] Esta revelação descreve técnicas relacionadas às técnicas de filtração referidas como “Filtro de Malha Adaptativo (ALF)”. Um ALF pode ser usado em um estágio de pós-processamento, para criptografia de malha, ou em um processo de predição. A filtração por deslocamento adaptativo de amostra (SAO) e/ou filtração adaptativa de malha pode ser aplicada a qualquer uma dentre várias tecnologias de codec de vídeo existentes, como tecnologia de codec compatível com HEVC, ou ser uma ferramenta de criptografia eficaz em qualquer um dos padrões de criptografia de vídeo futuros. As técnicas descritas podem, portanto, se aplicar a uma variedade de técnicas de criptografia de vídeo baseada em bloco em que o vídeo é reconstruído em uma base de bloco por bloco. Os blocos de pixels podem ser variavelmente referidos como unidades de árvore de criptografia (CTUs), maiores unidades de codificação (LCU), unidade de predição (PU) ou outra terminologia que depende da criptografia de vídeo baseada em bloco usada, conforme descrito posteriormente.
[0007] Conforme será explicado em mais detalhes abaixo, de acordo com as técnicas desta revelação, um codificador de vídeo e um decodificador de vídeo podem ser configurados para determinar conjuntos de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, em uma base por bloco (por exemplo, para blocos para os quais a filtração adaptativa de malha é habilitada). Desse modo, o conjunto de filtros de malha adaptativos disponível para o uso com um bloco específico pode ser mais adaptado às características locais dos dados de vídeo perto do bloco específico, aprimorando, desse modo, a eficiência em criptografia e/ou qualidade da figuração.
[0008] Em um exemplo, um método inclui determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco de uma figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores, e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos
[0009] Em um outro exemplo, um aparelho configurado para criptografar dados de vídeo inclui uma memória configurada para armazenar uma figuração atual de dados de vídeo, e um ou mais processadores em comunicação com a memória, o um ou mais processadores configurados para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores (ou figurações anteriores, fatias ou outra granularidade de blocos), e filtrar de modo adaptativo de malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos.
[0010] Em um outro exemplo, um aparelho configurado para criptografar dados de vídeo inclui meios para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco de uma figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores, e meios para filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos
[0011] Em um outro exemplo, esta revelação descreve um meio de armazenamento legível por computador não transitório que armazena instruções que, quando executadas, fazem com que um ou mais processadores determine um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores, e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos.
[0012] Os detalhes da um ou mais exemplos são estabelecidos nos desenhos anexos e na descrição abaixo. Outros recursos, objetos e vantagens serão evidentes a partir da descrição, dos desenhos e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0013] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo que pode utilizar as técnicas descritas nesta revelação.
[0014] A Figura 2 mostra um diagrama de blocos exemplificativo de um decodificador de HEVC.
[0015] As Figuras 3A-3D mostram quatro padrões direcionais 1-D para a classificação de amostra de deslocamento de borda (EO).
[0016] A Figura 4 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo que pode implantar as técnicas descritas nesta revelação.
[0017] A Figura 5 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo que pode implantar as técnicas descritas nesta revelação.
[0018] A Figura 6 mostra uma implantação exemplificativa de uma unidade de filtro para realizar as técnicas desta revelação.
[0019] A Figura 7 é um fluxograma que ilustra um método exemplificativo da revelação.
[0020] A Figura 8 é um fluxograma que ilustra um outro método exemplificativo da revelação.
DESCRIÇÃO DETALHADA
[0021] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo que pode utilizar as técnicas para filtração de malha adaptativa descritas nesta revelação. Conforme mostrado na Figura l, o sistema 10 inclui um dispositivo de fonte 12 que gera dados de vídeo codificados a serem decodificados em um tempo posterior por meio de um dispositivo de destino 14. O dispositivo de fonte 12 e o dispositivo de destino 14 podem ser qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (isto é, computadores do tipo laptop), computadores do tipo tablet, decodificadores de sinais, fones de telefones como os denominados telefones “inteligentes”, os denominados pads “inteligentes”, televisões, câmeras, “dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivo de fluxo de vídeo ou semelhantes. Em alguns casos, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para a comunicação sem fio.
[0022] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem codificados por meio de um enlace 16. O enlace 16 pode ser qualquer tipo de meio ou dispositivo com capacidade de mover os dados de vídeo codificados do digitar de fonte 12 para o dispositivo de destino 14. Em um exemplo, o enlace 16 pode ser um meio de comunicação para possibilitar que o dispositivo de fonte 12 transmita dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode incluir qualquer meio de comunicação sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode formar parte de uma rede baseada em pacote, como uma rede de área local, uma rede de área ampla ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações-base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de fonte 12 para o dispositivo de destino
14.
[0023] Em um outro exemplo, os dados de vídeo codificados podem ser emitidos da interface de saída 22 para um dispositivo de armazenamento 26. Semelhantemente, os dados de vídeo codificados podem ser acessados a partir do dispositivo de armazenamento 26 pela interface de entrada 28. O dispositivo de armazenamento 26 pode incluir qualquer uma dentre uma variedade de mídia de armazenamento de dados distribuída ou localmente acessada como um disco rígido, discos de Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 26 pode corresponder a um servidor de arquivos ou um outro dispositivo de armazenamento intermediário que possa reter o vídeo codificado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados do dispositivo de armazenamento 26 por meio de fluxo ou download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivos exemplificativos incluem um servidor web (por exemplo, para um site da web), um servidor de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento fixado em rede (NAS) ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Esse pode incluir uma conexão sem fio (por exemplo, uma conexão de Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento 26 pode ser uma transmissão por fluxo, uma transmissão por download ou uma combinação de ambos.
[0024] As técnicas desta revelação não se limitam necessariamente às aplicações ou configurações sem fio. As técnicas podem ser aplicadas à criptografia de vídeo em relação à qualquer uma dentre uma variedade de aplicações de multimídia, como difusões por televisão aberta, transmissões por televisão a cabo, transmissões por televisão via satélite, transmissões de vídeo por fluxo contínuo, por exemplo, por meio da Internet, criptografia de vídeo digital para armazenamento em um meio de armazenamento de dados, decriptografia de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar a transmissão de vídeo unidirecional ou bidirecional para suportar aplicações como fluxo de vídeo, reprodução de vídeo, difusão de vídeo, e/ou telefonia por vídeo.
[0025] No exemplo da Figura 1l, dispositivo de fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20 e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de fonte 12, a fonte de vídeo 18 pode incluir uma fonte como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo previamente capturado, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo, e/ou um sistema gráfico de computador para gerar dados gráficos de computador como a fonte vídeo, ou uma combinação de tais fontes. Em geral, a captura de dados de vídeo pode incluir qualquer técnica para gravar, gerar e/ou detectar dados de vídeo. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destino 14 podem formar os denominados telefones com câmera ou telefones com vídeo. No entanto, as técnicas descritas “nesta revelação podem ser aplicáveis à criptografia de vídeo em geral, e podem ser aplicadas às aplicações sem fio e/ou com fio.
[0026] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 por meio da interface de saída 22 do dispositivo de fonte
12. Os dados de vídeo codificados também podem (ou alternativamente) ser armazenados no dispositivo de armazenamento 26 para o acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decriptografia e/ou reprodução.
[0027] O dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destino 14 recebe os dados de vídeo codificados através de enlace 16. Os dados de vídeo codificados comunicados através do enlace 16, ou fornecidos no dispositivo de armazenamento 26, podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, como o decodificador de vídeo 30, na decriptografia dos dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivos.
[0028] O dispositivo de exibição 32 pode ser integrado com o dispositivo de destino 14 ou ser externo ao mesmo. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também pode ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode ser qualquer um dentre uma variedade de dispositivos de exibição como um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo emissor de luz orgânico (OLED) ou um outro tipo de dispositivo de exibição.
[0029] o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) recentemente finalizado, e podem se adequar ao Modelo de Teste de HEVC (HM). O codificador de vídeo 20 e decodificador de vídeo 30 podem adicionalmente operar de acordo com uma extensão de HEVC, como a extensão de alcance, a extensão de múltiplas visões (MV-HEVC), ou a extensão escalonável (SHVC) que foi desenvolvida pelo Time de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) assim como Time de Colaboração Conjunta em Desenvolvimento de Extensão de Codificação de Vídeo em 3D (JCT-3V) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas de Filme ISO/IEC (MPEG). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou industriais, como o padrão ITU-T H.264, alternativamente referido como ISO/IEC MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ou extensões de tais padrões, como extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Visões (MVC). As técnicas desta revelação, no entanto, não se limitam a qualquer padrão de criptografia específico. Outros exemplos de padrões de compactação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-l Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263 e ISO/IEC MPEG-4 Visual. HEVC (ITU-T H.265), incluindo sua extensão de alcance, extensão de múltiplas visões (MV-HEVC) e extensão escalonável (SHVC), foram desenvolvidos pelo Time de Colaboração em Codificação de Vídeo (JCT-VC) assim como o Time de Colaboração em Desenvolvimento de Extensão de Codificação de Vídeo em 3D (JCT-3V) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas de Filme ISO/IEC (MPEG). O esboço de HEVC finalizado, referido como HEVC WD doravante, está disponível em http://phenix.int- evry.fr/ject/doc end user/documents/14 Vienna/wgll/JCTVC- N1003-vl.zip.
[0030] ITU-T VCEG (06/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão desenvolvendo, agora, a tecnologia de criptografia de vídeo futura com uma capacidade de compactação que excede potencialmente aquela do padrão HEVC atual (incluindo suas extensões atuais e extensões a curto prazo para a criptografia de conteúdo de tela e criptografia de alcance dinâmico alto). O novo padrão é chamado de H.266/VVC (Codificação de Vídeo Versátil). Os grupos estão trabalhando juntos nessa atividade de exploração em um esforço de colaboração conjunta conhecido como o Time de Exploração de Vídeo Conjunto (JVET) para avaliar os projetos de tecnologia de compactação propostos por seus especialistas nessa área. O JVET, primeiro, se encontrou entre 19 e 21 de outubro de 2015. Uma versão do software de referência, isto é, Joint Exploration Model 7 (JEM7) pode ser baixada do site: https://jvet.hhi.fraunhofer.de/svn/svn HMIEMSoftware/tags/H M-16.6-JEM-7.0/. A descrição de algoritmo para JEM7 é descrita em J. Chen, E. Alshina, G. J. Sullivan, J.R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 7 (JEM7)”, JIVET-G1I001, Torino, julho de 2017. Um esboço recente do padrão VVC é descrito em Bross, et al. “Versatile Video Coding (Draft 5)”, Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 14" Meeting: Genebra, CH, 19 a 27 de março de 2019, JVET-N1001-v3 (doravante “VVC Draft 5"). As técnicas desta revelação, no entanto, não se limitam a qualquer padrão de criptografia específico.
[0031] Embora não mostrado na Figura l, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e pode incluir unidades de MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação tanto de áudio quanto de vídeo em um fluxo de bits comum ou fluxos de dados separados. Caso se aplique, em alguns exemplos, as unidades de MUX-DEMUX podem se adequar ao protocolo de multiplexador ITU H.223, ou outros protocolos como o protocolo de datagrama de usuário (UDP).
[0032] o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implantados como qualquer um dentre uma variedade de conjunto de circuitos de codificador ou conjunto de circuitos de decodificador adequados, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados para aplicação específica (ASICsS), matrizes de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas forem implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e pode executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode estar incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo.
[0033] Esta revelação descreve técnicas relacionadas a operações de filtração que poderiam ser usadas em um estágio pós-processamento, como parte da criptografia em malha, ou no estágio de predição de criptografia de vídeo. As técnicas desta revelação podem ser implantadas em codecs de vídeo existentes, como HEVC, ou ser uma ferramenta de criptografia eficiente para um padrão de criptografia de vídeo futuro, como o padrão H.266/VVC presentemente sob desenvolvimento.
[0034] A criptografia de vídeo envolve tipicamente predizer um bloco de dados de vídeo de um bloco de dados de vídeo já criptografado na mesma figuração (por exemplo, intrapredição) ou um bloco de dados de vídeo já criptografado em uma figuração diferente (por exemplo, interpredição). Em alguns casos, o codificador de vídeo 20 também calcula dados residuais comparando-se o bloco preditivo ao bloco original. Então, os dados residuais representam uma diferença entre o bloco preditivo e o bloco original.
[0035] O codificador de vídeo 20 transforma e quantiza os dados residuais e sinaliza os dados residuais transformados e quantizados no fluxo de bits codificado. O decodificador de vídeo 30 adiciona os dados residuais ao bloco preditivo para produzir um bloco de vídeo reconstruído que se equipara ao bloco de vídeo original de modo mais próximo do que o bloco preditivo por si só. Para aprimorar adicionalmente a qualidade do vídeo decodificado, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar uma ou mais operações de filtragem nos blocos de vídeo reconstruídos. Exemplos dessas operações de filtragem incluem filtração de desbloqueio, filtração de deslocamento adaptativo de amostra (SAO) e filtração adaptativa de malha. Os parâmetros para essas operações de filtragem podem ser determinados pelo codificador de vídeo e explicitamente sinalizados no fluxo de bits de vídeo codificado ou podem ser implicitamente determinados pelo decodificador de vídeo 30 sem precisar que os parâmetros sejam explicitamente sinalizados no fluxo de bits de vídeo codificado.
[0036] Esta revelação descreve técnicas relacionadas ao método (ou métodos) de filtração referido como “Filtro de Malha Adaptativo (ALF)”. Um ALF pode ser usado em um estágio de pós-processamento, para criptografia de malha, ou em um processo de predição. A filtração por SAO e/ou filtração adaptativa de malha pode ser aplicada a qualquer uma dentre várias tecnologias de codec de vídeo existentes, como tecnologia de codec compatível com HEVC, ou ser uma ferramenta de criptografia eficaz em qualquer um dos padrões de criptografia de vídeo futuros.
[0037] Conforme usado nesta revelação, o termo criptografia de vídeo se refere geralmente a codificação de vídeo ou decodificação de vídeo. Semelhantemente, o termo critógrafo de vídeo pode se referir geralmente a um codificador de vídeo ou um decodificador de vídeo. Além do mais, determinadas técnicas descritas nesta revelação em relação à decodificação de vídeo também podem se aplicar à codificação de vídeo e vice-versa. Por exemplo, muitas vezes os codificadores de vídeo e decodificadores de vídeo são configurados para realizar o mesmo processo Ou processos recíprocos. Também, o codificador de vídeo 20 tipicamente realiza a decodificação de vídeo como parte dos processos de determinar como codificar dados de vídeo.
[0038] Conforme será explicado em mais detalhes abaixo, de acordo com as técnicas desta revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar conjuntos de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, em uma base por bloco (por exemplo, para blocos par aos quais a filtração adaptativa de malha é habilitada). Desse modo, o conjunto de filtros de malha adaptativos disponível para o uso com um bloco específico pode ser mais adaptado às características locais dos dados de vídeo perto do bloco específico, aprimorando, desse modo, a eficiência em criptografia e/ou qualidade da figuração.
[0039] Em HEVC, VVC e outras especificações de criptografia de vídeo, uma sequência de vídeo inclui tipicamente uma série de figurações. As figurações também podem ser referidas como “quadros”. Em uma abordagem exemplificativa, uma figuração pode incluir três arranjos simples, denotados Sr, So & Scr. Em uma tal abordagem exemplificativa, S', é um arranjo bidimensional (isto é, um bloco) de amostras luma. Sw é um arranjo bidirecional de amostras de crominância Cb. Scr, é um arranjo bidirecional de amostras de crominância Cr. As amostras de crominância também podem ser referidas no presente documento como amostras de “croma”. Em outras ocasiões, uma figuração pode ser monocromática e pode incluir apenas um arranjo de amostras de luma.
[0040] Para gerar uma representação codificada de uma figuração, o codificador de vídeo 20 pode gerar um conjunto de unidades de árvore de criptografia (CTUs). Cada uma das CTUSsS pode incluir um bloco de árvore de criptografia de amostras de luma, dois blocos de árvore de criptografia correspondentes de amostra de croma, e estruturas de sintaxe usadas para criptografar as amostras dos blocos de árvore de criptografia. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma CTU pode incluir um único bloco de árvore de criptografia e as estruturas de sintaxe usadas para criptografar as amostras do bloco de árvore de criptografia. Um bloco de árvore de criptografia pode ser um bloco de amostras NxN. Uma CTU também pode ser referido como um “bloco de árvore” ou uma “maior unidade de criptografia” (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões, como H.264/AVC. No entanto, uma CTU não é necessariamente limitada a um tamanho específico e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenadas consecutivamente em uma ordem de varredura de rastreamento.
[0041] No exemplo de HEVC, para gerar uma CTU criptografada, o codificador de vídeo 20 pode realizar, recursivamente, a árvore quaternária nos blocos de árvore de criptografia de uma CTU para dividir os blocos de árvore de criptografia em blocos de criptografia, por isso, o nome “unidades de árvore de criptografia”. Um bloco de criptografia pode ser um bloco de amostras NxN. Uma CU pode incluir um bloco de criptografia de amostras de luma e dois blocos de criptografia correspondentes de amostra de croma de uma figuração que tem um arranjo de amostra de luma, um arranjo de amostra Cb e um arranjo de amostra Cr, e as estruturas de sintaxe usadas para criptografar as amostras dos blocos de criptografia. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma CU pode incluir um único bloco de criptografia e as estruturas de sintaxe usadas para criptografar as amostras do bloco de criptografia.
[0042] o codificador de vídeo 20 pode particionar um bloco de criptografia de uma CU em um ou mais blocos de predição. Um bloco de predição é um bloco de amostras retangular (isto é, quadrado ou não quadrado) no qual a mesma predição é aplicada. Uma unidade de predição (PU) de uma CU pode incluir um bloco de predição de amostras de luma, dois blocos de predição de amostra de croma correspondentes, e estruturas de sintaxe usadas para predizer os blocos de predição. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma PU pode incluir um único bloco de predição e as estruturas de sintaxe usadas para predizer as amostras do bloco de predição. O codificador de vídeo 20 pode gerar blocos de luma, Cb e Cr preditivos para blocos de predição luma, Cb e Cr de cada PU da CU.
[0043] Como um outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para operar de acordo com JEM ou VVC. De acordo com JEM ou VVC, um critógrafo de vídeo (como codificador de vídeo 20) particiona uma figuração em uma pluralidade de unidades de árvore de criptografia (CTUs). O codificador de vídeo 20 pode particionar uma CTU de acordo com uma estrutura de árvore, como uma estrutura de árvore quaternária-árvore binária (QTBT) ou estrutura de Árvore de Múltiplos Tipos (MTT). A estrutura de QTBT remove o conceito de múltiplos tipos de partição, como a separação entre CUs, PUs e TUs (unidades de transformada) de HEVC. Uma estrutura de QTBT inclui dois níveis: um primeiro nível particionado de acordo com a partição de árvore quaternária, e um segundo nível particionado de acordo com a partição de árvore binária. Um nó raiz da estrutura de QOTBT corresponde a uma CTU. Os nós folha das árvores binárias correspondem a unidades de criptografia (CUs).
[0044] Em uma estrutura de partição de MTT, os blocos podem ser particionados com o uso de uma partição de árvore quaternária (OT), uma partição de árvore binária (BT) e um ou mais tipos de partições de árvore tripla (TT). Uma partição de árvore tripla é uma partição em que um bloco é dividido em três sub-blocos. Em alguns exemplos, uma partição de árvore tripla divide um bloco em três sub- blocos sem dividir o bloco original através do centro. Os tipos de partição em MTT (por exemplo, QT, BT e TT), podem ser simétricos ou assimétricos.
[0045] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar uma única estrutura de OQTBT ou MTT para representar cada componente de luminância e crominância, enquanto em outros exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar duas ou mais estruturas de QTBT ou MTT, como uma estrutura de QOTBT/MTT para o componente de luminância e uma outra estrutura de QTBT/MIT para ambos os componentes de crominância (ou duas estruturas de QTBT/MIT para os respectivos componentes de crominância).
[0046] o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para usar partição de árvore quaternária, partição de QTBT, partição de MTT ou outras estruturas de partição.
[0047] O codificador de vídeo 20 pode usar a intrapredição ou a interpredição para gerar os blocos preditivos para um bloco (por exemplo, uma PU). Se o codificador de vídeo 20 usar a intrapredição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base nas amostras decodificadas da figuração associada à PU. Quando o codificador de vídeo 20 usar a interpredição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base nas amostras decodificadas de uma ou mais figurações além daquelas figurações associadas à PU.
[0048] Alguns exemplos de JEM e VVC também fornecem um modo de compensação de movimento afim, que pode ser considerado um modo interpredição. No modo de compensação de movimento afim, o codificador de vídeo 20 pode determinar dois ou mais vetores de movimento que representam o movimento não translacional, como aproximação ou afastamento, rotação, movimento em perspectiva ou outros tipos de movimento irregulares.
[0049] Para realizar a intrapredição, o codificador de vídeo 20 pode selecionar um modo de intrapredição para gerar o bloco de predição. Alguns exemplos de JEM e VVC fornecem sessenta e sete modos de intrapredição, incluindo vários modos direcionais, assim como modo plano e modo de CC. Em geral, o codificador de vídeo 20 seleciona um modo de intrapredição que descreve as amostras vizinhas para um bloco atual (por exemplo, um bloco de uma CU) da qual se prediz amostras do bloco atual. Tais amostras podem estar geralmente acima, acima e para a esquerda, ou para a esquerda do bloco atual na mesma figuração que o bloco atual, supondo-se que o codificador de vídeo 20 criptografa as CTUs e CUs na ordem de vídeo de varredura (esquerda para a direita, de cima para baixo).
[0050] Após o codificador de vídeo 20 gerar blocos de luma, Cb e Cr preditivos para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um bloco residual de luma para a CU. Cada amostra no bloco residual de luma da CU indica uma diferença entre uma amostra de luma em um dos blocos de luma preditivos da CU e uma amostra correspondente no bloco de criptografia de luma original da CU. Além disso, o codificador de vídeo 20 pode gerar um bloco residual Cb para a CU. Cada amostra no bloco residual Cb da CU pode indicar uma diferença entre uma amostra Cb em um dos blocos Cb preditivos da CU e uma amostra correspondente no bloco de criptografia Cb original da CU. O codificador de vídeo 20 pode gerar também um bloco residual Cr para a CU. Cada amostra no bloco residual Cr da CU pode indicar uma diferença entre uma amostra Cr em um dos blocos Cr preditivos da CU e uma amostra correspondente no bloco de criptografia Cr original da CU.
[0051] Em alguns exemplos, o codificador de vídeo 20 pode usar a partição de árvore quaternária para decompor os blocos residuais luma, Cb e Cr de uma CU em um ou mais blocos de transformada luma, Cb e Cr. Em outros exemplos, o bloco de transformada tem o mesmo tamanho que o bloco de predição. Um bloco de transformada é um bloco de amostras retangular (por exemplo, quadrado ou não quadrado) no qual a mesma transformada é aplicada. Uma unidade de transformada (TU) de uma CU pode incluir um bloco de transformada de amostras de luma, dois blocos de transformada correspondentes de amostras de croma e estruturas de sintaxe usadas para transformar as amostras de bloco de transformada. Assim, cada TU de uma CU pode ser associada a um bloco de transformada de luma, um bloco de transformada de Cb e um bloco de transformada de Cr. O bloco de transformada de luma associado à TU pode ser um sub-bloco do bloco residual de luma da CU. O bloco de transformada de Cb pode ser um sub-bloco do bloco residual Cb da CU. O bloco de transformada de Cr pode ser um sub- bloco do bloco residual cr da cu. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma TU pode incluir um único bloco de transformada e as estruturas de sintaxe usadas para transformar as amostras do bloco de transformada.
[0052] O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de luma de uma TU para gerar um bloco de coeficiente de luma para a TU. Um bloco de coeficiente de transformada pode ser um arranjo bidimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar. O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de Cb de uma TU para gerar um bloco de coeficiente de Cb para a TU. O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de Cr de uma TU para gerar um bloco de coeficiente de Cr para a TU.
[0053] A estrutura de bloco acima com CTUs, CUs, PUs, e TUs descreve geralmente a estrutura de bloco usada em HEVC. Outros padrões de criptografia de vídeo, no entanto, podem usar diferentes estruturas de bloco. Como um exemplo, embora HEVC permita que PUs e TUs tenham tamanhos diferentes, outros padrões de criptografia de vídeo podem precisar de blocos preditivos e blocos de transformada tenham um mesmo tamanho. As técnicas desta revelação não se limitam à estrutura de bloco de HEVC e podem ser compatíveis com outras estruturas de bloco.
[0054] Após a geração de um bloco de coeficiente (por exemplo, um bloco de coeficiente de luma, um bloco de coeficiente de Cb ou um bloco de coeficiente de Cr), o codificador de vídeo 20 pode quantizar o bloco de coeficiente. A quantização se refere, em geral, a um processo no qual os coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes de transformada, fornecendo mais compactação. Após o codificador de vídeo 20 quantizar um bloco de coeficiente, o codificador de vídeo 20 pode codificar por entropia os elementos de sintaxe que indicam os coeficientes de transformada quantizados. Por exemplo, o codificador de vídeo 20 pode realizar a Codificação Aritmética Binária Adaptativa a Contexto (CABAC) nos elementos de sintaxe que indicam os coeficientes de transformada quantizados.
[0055] O codificador de vídeo 20 pode produzir um fluxo de bits que inclui uma sequência de bits que forma uma representação de figurações criptografadas e dados associados. O fluxo de bits pode incluir uma sequência de unidades de Camada de Abstração de Rede (NAL). Uma unidade de NAL é uma estrutura de sintaxe que contém uma indicação do tipo de dados na unidade de NAL e bytes que contêm esses dados na forma de uma carga útil de sequência de bytes bruta (RBSP) intercalada conforme necessário com bits de prevenção de emulação. Cada uma das unidades de NAL inclui um cabeçalho de unidade de NAL e encapsula uma RBSP. O cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código tipo unidade de NAL. O código tipo unidade de NAL especificado pelo cabeçalho de unidade de NAL de uma unidade de NAL indica o tipo da unidade de NAL. Uma RBSP pode ser uma estrutura de sintaxe que contém um número inteiro de bytes que é encapsulado em uma unidade de NAL. Em algumas ocorrências, um RBSP inclui zero bit.
[0056] Diferentes tipos de unidades de NAL pode encapsular diferentes tipos de RBSPs. Por exemplo, um primeiro tipo de unidade de NAL pode encapsular um RBSP para um conjunto de parâmetro de figuração (PPS), um segundo tipo de unidade de NAL pode encapsular um RBSP para uma fatia criptografada, um terceiro tipo de unidade de NAL pode encapsular um RBSP para mensagens de informações de intensificação complementar (SEI), e assim por diante. As unidades de NAL que encapsulam as RBSPs para os dados de criptografia de vídeo (em oposição às RBSPs para conjuntos de parâmetros e mensagens de SEI) podem ser referidas como unidades de NAL de camada de criptografia de vídeo (VCL).
[0057] O decodificador de vídeo 30 pode receber um fluxo de bits gerado pelo codificador de vídeo
20. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para obter elementos de sintaxe a partir do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as figurações dos dados de vídeo com base pelo menos em parte nos elementos de sintaxe obtidos do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser recíproco, em geral, para o processo realizado pelo codificador de vídeo 20. Além disso, o decodificador de vídeo 30 pode inverter os blocos de coeficiente de quantização associados às TUs da CU. O decodificador de vídeo 30 pode realizar transformadas inversas nos blocos de coeficiente para reconstruir blocos de transformada associados às TUs da CU atual. O decodificador de vídeo 30 pode reconstruir os blocos de criptografia da CU atual ao adicionar as amostras dos blocos preditivos para PUs da CU atual às amostras dos blocos de transformada correspondentes das TUs da CU atual. Ao reconstruir os blocos de criptografia para cada CU de uma figuração, o decodificador de vídeo 30 pode reconstruir a figuração.
[0058] Aspectos das técnicas de HEVC e JEM serão discutidos agora. A Figura 2 mostra um diagrama de blocos exemplificativo de decodificador de HEVC 31. O decodificador de vídeo 31 mostrado na Figura 2 geralmente corresponde ao decodificador de vídeo 30, mas ao contrário do decodificador de vídeo 30, não inclui um filtro de malha adaptativo entre reconstrução e o armazenamento temporário de figuração de referência. O decodificador de vídeo 30 é ilustrado em mais detalhes na Figura 5. HEVC emprega dois filtros em malha, incluindo um filtro de desbloqueio (DBF) e um filtro de deslocamento adaptativo de amostra (SAO). Detalhes adicionais relacionados à decodificação HEVC e SAO são descritos em C. Fu, E. Alshina, A. Alshin, Y. Huang, C. Chen, Chia. Tsai, C. Hsu, S. Lei, J. Park, W. Han, “Sample adaptive offset in the HEVC standard,” IEEE Trans. Circuits Syst. Video Technol., 22(12): 1755 a 1764 (2012).
[0059] Conforme ilustrado na Figura 2, a entrada em um DBF pode ser a imagem reconstruída após intra ou interpredição, conforme mostrado com a saída do bloco de reconstrução. O DBF realiza a detecção dos artefatos nas delimitações de bloco criptografado e atenua os artefatos aplicando-se um filtro selecionado. Em comparação com o filtro de desbloqueio H.264/AVC, o filtro de desbloqueio HEVC tem menor complexidade computacional e melhores capacidades de processamento paralelo enquanto ainda alcançam a redução significativa dos artefatos visuais. Para exemplos adicionais, vide A. Norkin, G. Bjontegaard, A. Fuldseth, M. Narroschke, M. Ikeda, K. Andersson, Minhua Zhou, G. Van der Auwera, “HEVC Deblocking Filter”, IEEE Trans. Circuits Syst. Video Technol., 22(12): 1746 a 1754 (2012).
[0060] Em HEVC, as decisões de filtro de desbloqueio são tomadas separadamente para cada delimitação de um comprimento de quatro amostras que se estende na grade que divide a figuração em blocos de 8 x 8 amostras. O desbloqueio é realizado em uma delimitação de bloco se as seguintes condições forem verdadeiras: (1) a delimitação de bloco é uma delimitação de unidade de predição (PET) ou unidade de transformada (TLT); (2) a resistência de delimitação (Bs), conforme definido na Tabela 1 abaixo, é maior que zero; (3) a variação de sinal, conforme definido na Equação (1) abaixo, em ambos os lados de uma delimitação de bloco está abaixo de um limite especificado.
TABELA 1. VALORES DE RESISTÊNCIA DE DELIMITAÇÃO (BS) PARA DELIMITAÇÕES ENTRE DOIS BLOCOS LUMA VIZINHOS
E Pelo menos um dos blocos é Intracriptografado 2 Pelo menos um dos blocos tem um coeficiente residual criptografado diferente de zero e a delimitação é uma delimitação de unidade de ' transformada
Diferenças absolutas entre componentes de vetor de movimento espacial correspondentes dos dois|1 blocos são >= 1 em unidades de pixels inteiros A predição compensada por movimento para os dois blocos se refere a diferentes figurações de referência ou o número de vetores de movimento é ' diferente para os dois blocos o E
[0061] Se Bs > O for uma delimitação de bloco luma, então, a filtração de desbloqueio é aplicada àquela delimitação se a seguinte condição se mantiver: lp2o — 2P10 + Pool + |Pz3 2P13 + Poz| + 920 — 2910 + Fool + 923 2913 + Aos <B O)
[0062] em que p e q são valores de amostra luma na delimitação e b é um limite.
[0063] HEVC permite dois tipos de filtros de desbloqueio luma, ou seja: (1) filtro normal, e (ii) filtro forte. A escolha de filtro de desbloqueio depende da possibilidade de os termos de variação de sinal específica serem menores que os determinados limites (vide “HEVC Deblocking Filter” por Norkin et al (2012) citado acima para detalhes). Embora as decisões de filtragem sejam baseadas apenas nas duas fileiras (ou colunas) de uma delimitação de quatro pixels de comprimento vertical (ou horizontal, como pode ser o caso), o filtro é aplicado a cada fileira (ou coluna, como pode ser o caso) na delimitação. O número de pixels usado no processo de filtração e o número de pixels que pode ser modificado com cada tipo de filtração é resumido na Tabela 2 abaixo.
TABELA 2. NÚMERO DE PIXELS USADO/MODIFICADO POR
DELIMITAÇÃO NO DESBLOQUEIO DE HEVC Pixels usados Pixels modificados (no outro lado daj(em qualquer lado da delimitação) delimitação)
[0064] O desbloqueio croma (isto é, filtração de desbloqueio realizada em componentes croma) é realizado apenas quando Bs é igual a dois (2). Em HEVC, apenas um tipo de filtro de desbloqueio croma é usado. O filtro de desbloqueio croma usa pixels Po, Pi, do, 91 é pode modificar pixels p, e qo em cada fileira (o segundo subscrito que indica o índice de fileira é omitido na descrição acima por questão de brevidade, devido ao fato de que o filtro é aplicado a cada fileira). Em JEM, o desbloqueio é realizado no nível da CU. O tamanho de CETs em qualquer lado de uma delimitação pode ser maior que 8 x 8. O tamanho de CU mínimo em JEM é 4 x 4. Portanto, o filtro de desbloqueio também pode ser aplicado às delimitações de blocos de 4 x 4,
[0065] A entrada em um filtro SAO pode ser o bloco reconstruído após aplicar o filtro de desbloqueio, conforme mostrado com a saída do filtro de desbloqueio na Figura 2. Um critógrafo de vídeo pode aplicar um filtro SAO para reduzir a distorção de amostra média de uma região primeiro classificando-se as amostras da região em múltiplas categorias com um classificador selecionado, obtendo-se um deslocamento para cada categoria e, então, adicionando-se o deslocamento a cada amostra da categoria, em que o índice classificador e os deslocamentos da região são criptografados no fluxo de bits. Em HEVC, a região (a unidade para sinalização de parâmetros SAO) é definida para ser uma CTU.
[0066] Dois tipos SAO que podem satisfazer o requisito de ser de baixa complexidade foram adotados em HEVC. Esses dois tipos são SAO de deslocamento de borda (EO) e deslocamento de banda (BO), que são discutidos em mais detalhes abaixo. O codificador de vídeo 20 e o decodificador de vídeo 30 podem criptografar um índice de um tipo de SAO. Para EO, a classificação de amostra se baseia na comparação entre amostras atuais e amostras vizinhas de acordo com padrões direcionais 1-D: horizontal, vertical, 135º em diagonal e 45º em diagonal.
[0067] As Figuras 3A-3D mostram quatro padrões direcionais 1-D para a classificação de amostra de EO: horizontal (Figura 3A, classe de EO = 0), vertical (Figura 3B, classe de EO = 1), 135º em diagonal (Figura 3C, classe de EO = 2), e 45º em diagonal (Figura 3D, classe de EO = 3). Detalhes adicionais relacionados a SAO são descritos em C. Fu, E. Alshina, A. Alshin, Y. Huang, C. Chen, Chia. Tsai, C. Hsu, S. Lei, J. Park, W. Han, “Sample adaptive offset in the HEVC standard”, IEEE Trans. Circuits Syst. Video Technol., 22(12): 1755 a 1764 (2012). Nas Figuras 3A- 3D, o bloco C é o bloco atual, e os blocos A e B são blocos vizinhos.
[0068] De acordo com o padrão EO selecionado,
cinco categorias denotadas pelo edgeIldx na Tabela 3 são adicionalmente definidas. Para edgeIldx igual a 0-3, a grandeza de um deslocamento pode ser sinalizada enquanto o sinalizador de sinal é implicitamente criptografado, isto é, o deslocamento negativo para edgeIdx é igual a 0 ou l e o deslocamento positivo para edgeIdx é igual a 2 ou 3. Para edgeIdx igual a 4, o deslocamento é sempre definido em 0, o que significa que nenhuma operação é necessária para esse caso.
TABELA 3: CLASSIFICAÇÃO PARA EO Categoria Condição (edgeIdx) o C<AL&&C<B 1 (C < A && C==B) || (C==A && C<B) 2 (C > A && C==B) || (C == A && C > B) 3 C>Ak&&C>B 4 Nenhuma das expostas acima
[0069] Para BO, a classificação de amostra se baseia nos valores de amostra. Cada componente de cor pode ter seus próprios parâmetros de SAO para classificação para filtração SAO do tipo BO. BO implica que um deslocamento é adicionado a todas as amostras da mesma banda. A faixa de valores de amostra é igualmente dividida em 32 bandas. Para amostras de 8 bits que variam de O a 255, a largura de uma banda é 8, e os valores de amostra de 8k para 8k + 7 pertencem à banda k, em que k está na faixa de O a 31. Um deslocamento é adicionado a todas as amostras da mesma banda. A diferença média entre as amostras originais e as amostras reconstruídas em uma banda (isto é, deslocamento de uma banda) é sinalizada para o decodificador (por exemplo, decodificador de vídeo 30). Não há restrição quanto aos sinais de deslocamento. Apenas deslocamentos de quatro (4) bandas consecutivas e a posição de banda de partida são sinalizadas para o decodificador (por exemplo, decodificador de vídeo 30).
[0070] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para implantar várias técnicas de filtração adaptativa de malha definidas em JEM e/ou esboços em trabalho de VVC. Aspectos de algumas técnicas de filtração JEM exemplificativas (por exemplo, ALF) serão descritos agora. Além dos métodos de desbloqueio modificado (DB) e HEVC SAO, JEM inclui um outro método de filtração chamado Filtração Adaptativa de Malha baseada em Transformação de Geometria (GALF). A entrada em um ALF/GALF pode ser a imagem reconstruída após a aplicação de SAO (por exemplo, saída de deslocamento adaptativo de amostra na Figura 2). Aspectos de CGALF são descritos em Tsai, C.Y., Chen, C.Y., Yamakage, T., Chong, I.S., Huang, Y.W., Fu, C.M., Itoh, T., Watanabe, T., Chujoh, T., Karczewicz, M. e Lei, S.M., “Adaptive loop filtering for video coding”, IEEE Journal of Selected Topics in Signal Processing, 7(6), páginas 934 a 945, 2013 e em M. Karczewicz, L. Zhang, W.-J. Chien, e X. Li, “Geometry transformation-based adaptive in-loop filter”, Picture Coding Symposium (PCS), 2016.
[0071] As técnicas de ALF tentam minimizar o erro quadrático médio entre as amostras originais e amostras decodificadas/reconstruídas com o uso de um filtro de Wiener adaptativo. Denota-se a imagem de entrada como p, a imagem fonte como S, e o filtro de resposta de impulso finito (FIR) como h. Então, a expressão a seguir da soma de erros quadrados (SSE) deve ser minimizada, em que (x, y) denota qualquer posição de pixel em p ou S. SSE = YZ. (Ei hi, Dp(x = i,y =D) = SGx,y))?
[0072] O h ideal, denotado como h..:t, pode ser obtido definindo-se o derivado parcial de SSE em relação a h(i,j) igual a O conforme segue:
OSSE ana
[0073] Isso leva à equação de MWiener-Hopf mostrada abaixo, o que dá o filtro ideal hopt: Zu hope.) (Exy PG = hy = Pp = my —n)) = XZxy S(x y)D(x — m,y—n)
[0074] Em alguns exemplos de JEM ou VVC, ao invés de usar um filtro para toda a figuração, oO codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para classificar amostras em uma figuração em vinte e cinco (25) classes com base nos gradientes locais. O codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem derivar de filtros de Wiener ideais para os pixels em cada classe. Diversas técnicas foram empregadas para aumentar a eficácia da filtração adaptativa de malha reduzindo-se a sobrecarga de sinalização e complexidade computacional. Algumas das técnicas que podem ser usadas para aumentar a eficácia do ALF reduzindo-se a sobrecarga de sinalização e/ou complexidade computacional são listadas abaixo:
[0075] 1. Predição de filtros fixos: os coeficientes de filtro ideais para cada classe são preditos com o uso de um agrupamento de predição de filtros fixos que incluem 16 filtros candidatos para cada classe. O melhor candidato de predição é selecionado para cada classe e apenas os erros de predição são transmitidos.
[0076] 2. Fusão de classe: Ao invés de usar vinte e cinco (25) filtros diferentes (um para cada classe), pixels em múltiplas classes podem compartilhar um filtro a fim de reduzir o número de parâmetros de filtro a ser criptografado. A fusão de duas classes pode levar SSE mais cumulativo, mas custo de Distorção de Taxa (RD) menor.
[0077] 3. Número variável de derivações: O número de derivações de filtro é adaptativo no nível de quadro. Teoricamente, os filtros com mais derivações podem chegar a SSE menores, mas podem não ser uma boa escolha em termos de custo de RD, por causa da sobrecarga de bit associada a mais coeficientes de filtro.
[0078] 4, Controle ligado/desligado de nível de bloco: ALF pode ser ligado e desligado (habilitado ou desabilitado) com base em bloco. O tamanho de bloco no qual o sinalizador de controle ligado/desligado é sinalizado é adaptativamente "selecionado no nível de quadro. os coeficientes de filtro podem ser recomputados com o uso de pixels apenas desses blocos para os quais um ALF é habilitado (isto é, um ALF é usado).
[0079] 5. Predição temporal: os filtros derivados para quadros anteriormente criptografados são armazenados em um armazenamento temporário. Se o quadro atual for um quadro P ou B, então, um dentre o conjunto de filtros armazenado pode ser usado para filtrar esse quadro se o mesmo levar ao melhor custo de RD. Um sinalizador é sinalizado para indicar o uso de predição temporal. Se a predição temporal for usada, então, um índice que indica qual conjunto de filtros armazenados é usado é sinalizado. Nenhuma sinalização adicional de coeficientes de ALF é necessária. Os sinalizadores de controle de ligar/desligar de ALF de nível de bloco também podem ser sinalizados para um quadro com o uso de predição temporal.
[0080] Os detalhes de alguns aspectos de ALF são resumidos nesses parágrafos e nos seguintes. Alguns aspectos de ALF são relacionados à classificação de pixel e transformação de geometria. Em um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para computar somas de valores absolutos de Laplacians vertical, horizontal e diagonal em todos os pixels dentro de uma janela de 6x6 que cobre cada pixel em um quadro reconstruído (antes de ALF). O codificador de vídeo 20 e o decodificador de vídeo 30 dividem o quadro reconstruído nos blocos de 2x2 não sobrepostos. o codificador de vídeo 20 e o decodificador de vídeo 30 classificam quatro pixels nesses blocos em um dentre vinte e cinco (25) categorias, denotadas como Cx (k= O, 1, ..., 24), com base na atividade de Laplacian total e direcionalmente daquele bloco. Adicionalmente, o codificador de vídeo 20 e o decodificador de vídeo 30 aplicam uma de quatro transformações de geometria (sem transformação, inversão diagonal, inversão vertical ou rotação) para os filtros com base no gradiente direcionalmente desse bloco. Detalhes adicionais podem ser encontrados em M. Karczewicz, L. Zhang, W.-J. Chien, e X. Li, “Geometry transformation-based adaptive in-loop filter”, Picture Coding Symposium (PCS), 2016.
[0081] Alguns aspectos de filtração adaptativa de malha estão relacionados à derivação de filtro e predição de filtros fixados. Para cada classe Cx, O codificador de vídeo 20 e o decodificador de vídeo 30 determinam, primeiro, um melhor filtro de predição do agrupamento para Cx, denotado como hprea,k, Com base no SSE dado pelos filtros. O SSE de Cx, que deve ser minimizado, pode ser escrito conforme abaixo, SSEx = Ens (Eu (tpreax(6 D+ has(6 D) pix = ty =D =5GY)', k= O0,...,24, (1) E Cx,
[0082] em que h.,.x é a diferença entre o filtro ideal para Cx € hprea,x. Deixa-se p(x,y) = Eu hpreax(i DP Ly) ser o resultado do pixel de filtração p(x, y) por hpredjk. Então, a expressão para SSE, pode ser reescrita como
E SSE, = DP (z hax(i, Dp( =i,y =P) = (SCy) e») k=0,..,24,(x,7) E Cx
[0083] Fazendo-se o derivado parcial de SSEk em relação a h.x(i,j) igual a O, a equação de Wiener-Hopf modificada é obtida conforme segue: Erin (Freio mama no) x =D SG&y) -D'GYWpE my nm) x k=0,..,24 — (xy)EC,
[0084] Para a simplicidade da expressão, denotar ExyPl&X-iy-Dpla=my-m Ex(S&y)-p&yYNPOX—=Mmy-n) com (NY) ECby Rypalizmi-n) Rps,x(M'), respectivamente. Então, a equação acima pode ser escrita como: Eushax(6DRppali-mj=n =Ry (Mn) k=0,..,24 (1)
[0085] Para cada Ck, a matriz de autocorrelação PmrlioMiom 2 vetor de correlação cruzada Rpse(MM) 559 computados no geral (PEC
[0086] Em um exemplo de filtração adaptativa de malha, o codificador de vídeo 20 calcula e transmite apenas a diferença entre o filtro ideal e o filtro de predição fixado. Se nenhum dos filtros candidatos disponíveis no agrupamento for um bom preditor, então, o codificador de vídeo 20 e o decodificador de vídeo 30 usam o filtro de identidade (isto é, o filtro com apenas um coeficiente diferente de zero igual a 1 no centro que torna a entrada e a saída idênticas) como o preditor.
[0087] Alguns aspectos da filtração adaptativa de malha se referem à fusão de classes de pixel. As classes são fundidas para reduzir a sobrecarga de sinalização de coeficientes de filtro. O custo da fusão de duas classes é aumentado em relação a SSE. Considera-se duas classes Cr, e Cn com SSEs dados por SSEr, e SSEn, respectivamente. Deixa- se Chin denotar a classe obtida fundindo-se Cr, e C, com SSE, denotado como SSEnmn. SSEm:n É Sempre maior ou igual a SSE, + SSErn. Deixa-se ASSE“m, denotar o aumento em SSE causado fundindo-se C, e Cn, que é igual a SSErwm - (SSE, + SSEn). Para calcular SSEmn, O codificador de vídeo 20 pode derivar ha,mmn, O erro de predição de filtro para Cr, com o uso da seguinte expressão semelhante a (1): Eu hamen(E PD) (Rppmi = Uj =D) + Roppnli-Uuj—v))=RpemlU,V)+ Rbsn(, V) O
[0088] o codificador de vídeo 20 pode calcular o SSE para a categoria fundida Chin como: SSEmen = = Fux homen UI(Rosm (0, 7) + Rosn(U 1) + (Rssm + Rssn)
[0089] Para reduzir o número de classes de N para N-l, duas classes, C, e Cn, podem precisar ser encontradas, de modo que a fusão das mesmas leva ao menor ASSEmn em comparação com quaisquer outras combinações. Em alguns projetos de ALF, o codificador de vídeo 20 é configurado para verificar cada par de classes disponíveis para fusão para encontrar o par do menor custo de fusão.
[0090] Se C, e Ch (con m < n) forem fundidos, então, o codificador de vídeo 20 e o decodificador de vídeo podem marcar Cn como indisponível para fundir adicionalmente e a autocorrelação e correlação cruzada para Cn São alteradas para a autocorrelação e correlação cruzada combinadas conforme segue: Rppm = Rppm + Rppn Rpsm = Rpsm + Rpsn Rssm = Rssm + Rosn-
[0091] o codificador de vídeo 20 pode determinar um número de classes de ALF ideal após fusão para cada quadro com base no custo de RD. Em um exemplo, isso é feito começando-se com vinte e cinco (25) classes e fundindo-se um par de classes (do conjunto de classes disponíveis) sucessivamente até que haja apenas uma classe faltando. Para cada número de classes possível (1, 2, ..., 25) deixado após a fusão, o codificador de vídeo 20 pode armazenar um mapa que indica quais classes são fundidas juntas. O codificador de vídeo 20 então seleciona o número de classes ideal de modo que o custo de RD seja minimizado conforme segue: Nope = argmin Gly = Dly + ARIy),
[0092] em que D V ny é o SSE total de uso de N classes Oly = EEz6SSEx), Rlw é o número total de bits usado para criptografar os N filtros, e A é o fator de ponderação determinado pelo parâmetro de quantização (9P). o codificador de vídeo 20 pode transmitir o mapa de fusão para N.: número de classes, indicando quais classes são fundidas juntas, para o decodificador de vídeo 30.
[0093] Os aspectos de parâmetros de ALF sinalização são descritos abaixo. Uma breve descrição de etapa por etapa de um parâmetro de ALF exemplificativo que criptografa o processo realizado pelo codificador de vídeo é dada abaixo. O decodificador de vídeo 30 pode ser configurado para realizar um processo recíproco (por exemplo, o sinal da perspectiva de decodificador de vídeo é o recebimento de elementos de sintaxe).
[0094] 1. Sinalizar o sinalizador de ligado/desligado de ALF de nível de quadro.
[0095] 2. Se ALF estiver ligado, então, sinalizar o sinalizador de predição temporal que indica o uso dos filtros das figurações anteriores.
[0096] 3. Se a predição temporal for usada, então, sinalizar o índice do quadro do qual os parâmetros de ALF correspondentes são usados para filtrar o quadro atual.
[0097] 4, Se a predição temporal não for usada, então, sinalizar as informações de ALF auxiliar e coeficientes de filtro conforme segue:
[0098] a. As informações de ALF auxiliar seguintes podem ser sinalizadas antes de sinalizar os coeficientes de filtro. As informações de ALF auxiliar podem incluir:
[0099] i. O número de filtros únicos usados após fusão de classe.
[0100] ii. Número de derivações de filtro.
[0101] iii. Informações de fusão de classe que indicam quais classes compartilham os erros de predição de filtro.
[0102] iv. Índice do preditor de filtro fixo para cada classe.
[0103] b. Após sinalização das informações de ALF auxiliar, os erros de predição de coeficiente de filtro podem ser sinalizados conforme segue:
[0104] i. Um sinalizador é sinalizado para indicar se os erros de predição de filtro são forçados a zero (0) para algumas das classes restantes após fusão.
[0105] ii. Um sinalizador é sinalizado para indicar se a criptografia diferencial é usada para sinalizar erros de predição de filtro (se o número de classes deixado após a fusão for maior que um (1)).
[0106] iii. os erros de predição de coeficiente de filtro são, então, sinalizados com o uso de código de Exp-Golomb da k-ésima ordem, em que o valor k para diferentes posições de coeficiente é selecionado empiricamente.
[0107] ec. Coeficientes de filtro para componentes — croma, se disponíveis, são diretamente criptografados sem quaisquer métodos de predição.
[0108] 5. Por fim, os sinalizadores de controle de ligado/desligado de ALF de nível de bloco são sinalizados.
[0109] O projeto da filtração adaptativa de malha em alguns casos de JEM pode apresentar um ou mais problemas potenciais. Como um exemplo, alguns projetos de filtração adaptativa de malha exemplificativos realizam múltiplos passos em cada quadro para projetar um conjunto de filtros (por exemplo, um filtro para cada classe de pixels ou um filtro compartilhado dentre múltiplas classes no quadro) para todo o quadro. Tais técnicas introduzem a alta latência de codificador. A alta latência de codificador pode ser especialmente problemática em aplicações de pouco atraso, como vídeo conferência, em que pode ser importante enviar até mesmo um quadro parcialmente codificado para o canal assim que possível.
[0110] Como um outro exemplo, de acordo com alguns projetos de filtração adaptativa de malha, um conjunto de filtros é usado para toda a figuração. As estatísticas locais em um pequeno bloco da figuração original e figuração reconstruída podem ser diferentes das estatísticas cumulativas obtidas com o uso de toda a figuração. Portanto, um ALF que é ideal para toda a figuração pode não ser ideal para um dado bloco.
[0111] Como um outro exemplo, um problema potencial com a projeção de um novo conjunto de filtros de Wiener que usam um pequeno bloco de a figuração a fim de obter melhor adaptabilidade local é que o número de pixels disponível em um pequeno bloco pode não ser suficiente para o codificador de vídeo 20 determinar uma boa estimativa das matrizes e dos vetores de correlação. Isso pode levar a equações de Wiener-Hopf bem-postas, que, por sua vez, podem emitir coeficientes de ALF menos que ideais.
[0112] Como um outro exemplo, alguns projetos de filtração adaptativa de malha definem dezesseis (16) filtros fixos para cada uma das vinte e cinco (25) classes produzindo, desse modo, um total de quatrocentos (400) filtros. Esses filtros podem ser usados como filtros preditores para os coeficientes de filtro finais para cada classe. O índice do filtro preditor usado é sinalizado para cada classe. Isso pode causar alta sobrecarga de sinalização e reduzir o ganho de criptografia geral.
[0113] Uma outra desvantagem potencial de uso de um conjunto de filtros fixo como preditores é que o preditor definido não é modificado com base nos novos filtros projetados para vários quadros. Devido ao fato de que os quadros temporariamente vizinhos provavelmente tenham estatísticas semelhantes, o uso dos filtros ideais para os quadros anteriores pode levar à predição eficaz de filtros ideais para o quadro atual.
[0114] Como um outro exemplo, alguns projetos de filtração adaptativa de malha exemplificativos precisam de dois passos no quadro atual para tomar decisões para ligar/desligar o filtro de nível de bloco. Isso introduz latência de codificador adicional. Os blocos para os quais os sinalizadores de ligar/desligar de ALF são sinalizados não se alinham com as unidades de criptografia (CUs). Portanto, as informações de CU como modo, sinalizador de bloco criptografado, etc. não podem ser consideradas em uma decisão de controle de ligar/desligar de ALF. O uso dessas informações pode reduzir a sobrecarga de sinalização de ligar/desligar.
[0115] Para tratar um ou mais dos problemas discutidos acima, esta revelação descreve técnicas para aprimorar adicionalmente os ganhos de criptografia e qualidade visual obtidos pelo uso de filtração adaptativa de malha. O codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem aplicar qualquer uma das técnicas listadas individualmente. Alternativamente, o codificador de vídeo e/ou o decodificador de vídeo 30 podem aplicar qualquer combinação das técnicas listadas discutidas acima.
[0116] De acordo com uma técnica exemplificativa desta revelação, o codificador de vídeo 20 pode sinalizar um conjunto de filtros de malha adaptativos por bloco em uma figuração/fatia/peça. Por exemplo, para cada bloco de dados de vídeo em uma figuração, fatia ou peça de dados de vídeo, o codificador de vídeo 20 pode ser configurado para codificar um ou mais elementos de sintaxe que indicam um conjunto de filtros de malha adaptativos para uso para o bloco. O decodificador de vídeo 30 pode ser configurado para decodificar o um ou mais elementos de sintaxe para cada bloco para determinar o conjunto de filtros de malha adaptativos para usar para o bloco.
[0117] Em um exemplo, o codificador de vídeo 20 pode ser configurado para indicar o conjunto de ALF (por exemplo, o conjunto de filtros de malha adaptativos mencionado acima) codificando-se um índice definido para uma lista de conjuntos de filtros (por exemplo, a pluralidade de conjuntos de filtros de malha adaptativos). Nesta revelação, o termo “conjunto de filtros” pode se referir a um único conjunto de filtros de malha adaptativos, o termo “conjuntos de filtros” pode se referir a uma pluralidade de conjuntos de filtros de malha adaptativos, e o termo “lista de conjunto de filtros” pode se referir a uma lista da pluralidade de conjuntos de filtros de malha adaptativos.
Em um exemplo, a lista de conjunto de filtros pode incluir uma pluralidade de conjuntos de filtros de malha adaptativos.
Ou seja, a lista de conjunto de filtros pode incluir todos os conjuntos de filtros determinados possíveis (isto é, a pluralidade de conjuntos de filtros de malha adaptativos) para a figuração/fatia/peça.
O índice, em alguns casos, identifica um conjunto de filtros de malha adaptativos específico dentre a pluralidade de conjuntos de filtros de malha adaptativos incluída na lista.
O decodificador de vídeo 30 pode ser configurado para armazenar e/ou determinar a pluralidade de conjuntos de filtros de malha adaptativos de acordo com as regras predeterminadas.
Conforme será discutido abaixo, a pluralidade de conjuntos de filtros de malha adaptativos pode incluir filtros pré-treinados, filtros de malha adaptativos que são sinalizados para uma figuração atual, e filtros de malha adaptativos que são reutilizados a partir das figurações anteriores.
Em um exemplo, para um conjunto de filtros de malha adaptativos específico, cada respectivo conjunto do conjunto de filtros de malha adaptativos específico inclui um ou mais de um filtro de malha adaptativo atual sinalizado para uma figuração atual ou um filtro de malha adaptativo pré- treinado. O decodificador de vídeo 30 pode ser configurado para decodificar o índice enviado pelo codificador de vídeo e determinar o conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, para usar para um bloco de dados de vídeo específico.
[0118] Desse modo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada. Em um exemplo da revelação, cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar um respectivo conjunto de filtros de malha adaptativos para um respectivo bloco da figuração atual no caso em que a filtração adaptativa de malha é possibilitada para o bloco (por exemplo, conforme indicado por um sinalizador de ligado/desligado de ALF).
[0119] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser adicionalmente configurados para filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos. Por exemplo,
conforme descrito acima, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para classificar as amostras do bloco e, então, usar o filtro de malha adaptativo no respectivo conjunto de filtros de malha adaptativos que é associado à classificação. Em um outro exemplo, o codificador de vídeo 20 pode ser configurado para sinalizar um elemento de sintaxe que indica qual filtro de malha adaptativo no respectivo conjunto de filtros de malha adaptativos usar para o bloco atual. Consequentemente, em um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para criptografar um respectivo sinalizador por bloco que indica se a filtração adaptativa de malha é usada para o respectivo bloco (por exemploy um sinalizador de ligado/desligado de ALF de nível de bloco), e criptografar, com base no respectivo sinalizador por bloco, um respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual. Em alguns exemplos, o codificador de vídeo e o decodificador de vídeo 30 não criptografariam o respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos no caso que a filtração adaptativa de malha não é usada para o bloco atual (por exemplo, o sinalizador de ALF de nível de bloco indica que a filtração adaptativa de malha está desligada e/ou não habilitada).
[0120] Nos exemplos acima, o “bloco” da figuração atual pode ser definido como qualquer tamanho de bloco. Em um exemplo, o bloco pode ser a unidade de árvore de criptografia (CTU) ou qualquer outro bloco. O bloco pode ser desacoplado da partição. No caso que o bloco é uma CTU, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para usar o conjunto de filtros de malha adaptativos sinalizado para a CTU para todos os blocos particionados da CTU.
[0121] Em um exemplo, o codificador de vídeo e o decodificador de vídeo 30 podem ser configurados para determinar uma lista da pluralidade de conjuntos de filtros de malha adaptativos. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar tal lista por figuração, por fatia ou por peça. Cada conjunto de filtros de malha adaptativos da Pluralidade de conjuntos de filtros de malha adaptativos pode ser configurado tal que cada classificação possível de amostras tem um filtro associado. Ou seja, cada conjunto pode conter um filtro associado por classe. Conforme descrito acima, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para criptografar um índice definido na lista da pluralidade de conjuntos de filtros de malha adaptativos por bloco. Em um exemplo, a lista da pluralidade de conjuntos de filtros de malha adaptativos pode ser uma tabela, em que cada entrada na tabela é um conjunto de filtros de malha adaptativos específico. Além disso, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para criptografar um sinalizador por bloco para indicar se um ALF é ou não usado (por exemplo, um sinalizador de ligado/desligado de ALF de nível de bloco). A lista da pluralidade de conjuntos de filtros de malha adaptativos pode incluir um ou mais filtros pré-treinados, um ou mais filtros derivados que usam filtros das figurações anteriores, e/ou filtros sinalizados no fluxo de bits para a figuração atual.
[0122] De acordo com alguns exemplos desta revelação, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem compartilhar a lista da pluralidade de conjuntos de filtros através de diferentes figurações (por exemplo, um filtro de malha adaptativo usado para uma figuração anterior está incluído em um conjunto da pluralidade de conjuntos de filtros usada para criptografar um bloco atual). Em um exemplo, a lista de conjunto de filtros pode ser inicializada com filtros pré-treinados. Após a criptografia de uma figuração, o codificador de vídeo 20 pode derivar um novo conjunto de filtros com base na figuração codificada e adicionar o novo conjunto de filtros à lista de conjunto de filtros. Alternativamente, o novo conjunto de filtros pode substituir um conjunto de filtros existente na lista. Após criptografar uma outra figuração, o codificador de vídeo 20 pode derivar um outro conjunto de filtros e incluir o conjunto de filtros derivado na lista de conjunto de filtros. Nesse exemplo, a lista de conjunto de filtros é comum para todas as figurações e pode ser atualizada após criptografar uma figuração. Do lado do decodificador, o decodificador de vídeo 30 pode detectar uma sinalização do novo conjunto de filtros após decodificar uma figuração ou antes de decodificar uma figuração.
[0123] De acordo com alguns exemplos desta revelação, o codificador de vídeo 20 pode ser configurado para sinalizar (por exemplo, codificar) elementos de sintaxe de um novo conjunto de filtros por figuração, por fatia e/ou por peça. O decodificador de vídeo 30 pode ser configurado para determinar o novo conjunto de filtros com base na sinalização do codificador de vídeo 20 e adicionar o novo conjunto de filtros à lista que inclui a pluralidade de conjuntos de filtros.
[0124] Em um exemplo, o codificador de vídeo e o decodificador de vídeo 30 podem ser configurados para adicionar o novo conjunto de filtros à lista de conjunto de filtros. A lista atualizada pode, então, ser usada para filtrar um bloco na próxima figuração ou figurações. Em um outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para usar a lista atualizada (por exemplo, que contém o novo conjunto de filtros derivado do uso da figuração atual/fatia/peça) para filtrar um bloco na figuração atual /fatia/peça.
[0125] De acordo com alguns exemplos desta revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem atualizar a lista de conjunto de filtros (por exemplo, a lista da pluralidade de conjuntos de filtros de malha adaptativos) com filtros derivados com o uso de figurações anteriores, fatias anteriores e/ou peças anteriores. A ordem em que o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para adicionar os conjuntos de filtros de malha adaptativos na lista de conjunto de filtros pode ser fixada, predefinida ou flexível. A lista pode ser reordenada por figuração com base nas informações relacionadas à figuração atual e informações relacionadas às figurações das quais os filtros correspondentes na lista são derivados. O codificador de vídeo 20 pode indicar um conjunto de filtros para o decodificador de vídeo 30 com o uso de um índice na lista de conjunto de filtros. Em alguns exemplos, o codificador de vídeo 20 pode atribuir um valor de índice menor aos filtros mais frequentemente usados ou filtros recém adicionados.
[0126] Em um exemplo, o codificador de vídeo e o decodificador de vídeo 30 podem ser configurados para adicionar ao conjunto de filtros recém adicionado ao começa da lista. Em um outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para adicionar os conjuntos de filtros derivados que usam quadros anteriores (por exemplo, filtros de malha adaptativos anteriores) na lista após os filtros atualmente sinalizados e antes dos conjuntos de filtros existentes na lista (por exemplo, os conjuntos de filtros fixos pré-treinados). Em um outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para adicionar filtros de malha adaptativos a cada respectivo conjunto de filtros de malha adaptativos para que os filtros de malha adaptativos atuais são adicionados primeiro, os filtros de malha adaptativos anteriores são adicionados em segundo lugar, e os filtros de malha adaptativos pré-treinados são adicionados por último.
[0127] Em um outro exemplo da revelação, a ordenação de conjuntos de filtros na lista pode depender das outras informações relacionadas à figuração. Por exemplo, os filtros derivados das figurações na mesma camada temporal que a figuração atual podem ser colocados na lista antes dos filtros derivados que usam as figurações em uma outra camada temporal. Em um outro exemplo, o índice de um conjunto de filtros na lista pode depender da possibilidade de a figuração correspondente da qual o mesmo é derivado ser uma figuração de referência usada para a predição da figuração atual. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para adicionar filtros que correspondem a uma figuração de referência mais frequentemente usada antes dos filtros derivados das outras figurações de referência. A ordenação de conjuntos de filtros dessa maneira pode resultar em elementos de sintaxe (por exemplo, índices na lista de conjunto de filtros) com menos bits para os conjuntos de filtros mais frequentemente usados na lista de conjunto de filtros. Consequentemente, menos bits podem ser usados para sinalizar o conjunto de filtros usado para o bloco aumentando, então, a eficiência de criptografia.
[0128] Em um outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para adicionar filtros derivados que usam figurações criptografadas com um parâmetro de quantização (QP) semelhante para a figuração atual antes dos filtros derivados das figurações anteriores criptografadas com um QP diferente.
[0129] Em um outro exemplo da revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para limitar o número máximo de conjuntos de filtros na lista de conjunto de filtros. Em um exemplo,
até trinta e dois (32) conjuntos de filtros podem ser mantidos na lista de conjunto de filtros. Em alguns exemplos, o codificador de vídeo 20 pode ser configurado para sinalizar o número máximo de conjuntos de filtros na lista no cabeçalho de fatia, conjunto de parâmetros de sequência, conjunto de parâmetros de figuração, em outras informações de sintaxe de alto nível, ou em qualquer outro lugar.
[0130] Em um outro exemplo da revelação, O codificador de vídeo 20 pode usar um número diferente de bits para sinalizar diferentes índices de conjunto de filtros. Menos bits podem ser usados para indicar uma posição de índice inferior na lista (devido ao fato de que os conjuntos de filtros próximos do topo de uma lista são mais prováveis de serem selecionados) em comparação com uma posição de índice superior. Novamente, isso pode resultar em menos bits que são usados para sinalizar o conjunto de filtros usado para o bloco com mais frequência aumentando, então, a eficiência de criptografia.
[0131] De acordo com alguns exemplos desta revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para compartilhar informações de ALF para alguns blocos (por exemplo, fusão das informações de ALF através de dois ou mais blocos). Em um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para compartilhar o índice do conjunto de filtros e/ou sinalizador de ligado/desligado de ALF (esse sinalizador indica se a filtração adaptativa de malha é aplicada a um bloco) através de múltiplos blocos. Um indicador de fusão de ALF pode indicar quais blocos são fundidos, e quais informações de ALF estão associadas ao indicador de fusão de ALF. O indicador de fusão pode ser um índice, um sinalizador ou qualquer outro elemento de sintaxe.
[0132] Em um exemplo, o codificador de vídeo e o decodificador de vídeo 30 podem ser configurados para fundir informações de ALF de um bloco com um bloco acima, ou com um bloco à esquerda. Em outros exemplos, as informações de ALF mais flexíveis que permitem a fusão de um bloco com qualquer outro bloco (isto é, não necessariamente um bloco vizinho) na figuração também podem ser usadas.
[0133] Em alguns exemplos desta revelação, o decodificador de vídeo 30 pode ser configurado para derivar o sinalizador de ligado/desligado de ALF com base nas outras informações de bloco existentes. Em um exemplo, oO decodificador de vídeo 30 pode derivar o sinalizador de ligado/desligado de ALF com base nas informações de bloco existentes, e desse modo, o codificador de vídeo 20 pode não sinalizar o sinalizador de ligado/desligado de ALF. O codificador de vídeo 20 pode sinalizar o sinalizador de ligado/desligado de ALF para um grupo de blocos, denotado como um bloco de ALF. O tamanho de um bloco de ALF pode ser predeterminado, ou pode ser sinalizado pelo codificador de vídeo 20. Em um exemplo, os blocos que compartilham o mesmo sinalizador de ligado/desligado de ALF podem representar um bloco de ALF. Em um outro exemplo, o bloco de ALF pode ser igual a um bloco.
[0134] a. Em um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para derivar o sinalizador de ligado/desligado de ALF com base no número de blocos em um bloco de ALF, que compartilha o mesmo sinalizador de ligado/desligado de ALF, que tem sinalizadores de bloco criptografados diferentes de zero (CBFs). Um CBF indica se um bloco inclui quaisquer significativos (por exemplo, coeficientes de transformada diferentes de zero). Um valor de “1” para o CBF indica que o bloco inclui coeficientes de transformada diferentes de zero. Se o número de CBFs diferentes de zero for menor que um determinado limite, então, o ALF pode ser desabilitado, ou um filtro de ALF padrão pode ser aplicado àqueles blocos no bloco de ALF.
[0135] b. No exemplo do subponto "a” acima, o número de coeficientes de transformada diferentes de zero pode ser contado ao invés de CBFs. Um limite pode ser introduzido para os coeficientes contados, e se o número de coeficientes de transformada diferentes de zero for menor que o limite, a filtração adaptativa de malha pode ser desabilitada para os blocos incluídos no bloco de ALF, ou um filtro de ALF padrão pode ser aplicado àqueles blocos.
[0136] c. Em um outro exemplo, se o número de blocos em um bloco de ALF criptografado com modo de pular for maior que um determinado limite, então, a filtração adaptativa de malha pode ser desabilitada para aqueles blocos no bloco de ALF. As técnicas do subponto “c” podem ser usadas juntamente com as técnicas dos subpontos “a” e “bp” em qualquer combinação.
[0137] d. No exemplo do subponto “c” acima, o modo de pular é usado como um exemplo, e outros modos de criptografia (por exemplo, um modo específico como uma direção de intrapredição específico, modo de interpredição específico, etc.) pode ser usado na derivação do sinalizador de ligado/desligado de ALF.
[0138] A Figura 4 é um diagrama de blocos que ilustra um codificador de vídeo 20 exemplificativo que pode implantar as técnicas descritas nesta revelação. o codificador de vídeo 20 pode realizar a intra e a intercriptografia de blocos de vídeo nas fatias de vídeo. A intracriptografia conta com uma predição espacial para reduzir ou remover a redundância espacial no vídeo em um dado quadro de vídeo ou figuração. A intercriptografia conta com a predição temporal para reduzir ou remover a redundância temporal em vídeo nos quadros ou figurações adjacentes de uma sequência de vídeo. O intramodo (modo T) pode se referir a qualquer um dentre diversos modos de compactação com base espacial. Os Intermodos, como predição unidirecional (modo P) ou bipredição (modo B), podem se referir a qualquer um dentre os diversos modos de compactação com base temporal.
[0139] No exemplo da Figura 4, o codificador de vídeo 20 inclui memória de dados de vídeo 33, unidade de partição 35, unidade de processamento de predição 41, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui unidade de estimativa de movimento (MEU) 42, unidade de compensação de movimento (MCU) 44, e unidade de intrapredição 46. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também “inclui unidade de quantização inversa 58, unidade de processamento de transformada inversa 60, somador 62, unidade de filtro 64 e armazenamento temporário de figuração decodificada (DPB) eo.
[0140] Conforme mostrado na Figura 4, o codificador de vídeo 20 recebe dados de vídeo e armazena os dados de vídeo recebidos na memória de dados de vídeo 33. A memória de dados de vídeo 33 pode armazenar dados de vídeo a serem codificados pelos componentes de codificador de vídeo 20. Os dados de vídeo armazenados na memória de dados de vídeo 33 podem ser obtidos, por exemplo, a partir da fonte de vídeo 18. O DPB 66 pode ser uma memória de figuração de referência que armazena dados de vídeo de referência para uso na codificação de dados de vídeo pelo codificador de vídeo 20, por exemplo, em modos intra ou intercriptografia. A memória de dados de vídeo 33 e DPB 66 pode ser formada por qualquer um dentre uma variedade de dispositivos de memória, como memória de acesso aleatório dinâmico (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM), ou outros tipos de dispositivos de memória. A memória de dados de vídeo 33 e DPB 66 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 33 pode estar no chip com outros componentes de codificador de vídeo 20, ou fora de chip em relação àqueles componentes.
[0141] A unidade de partição 35 recupera os dados de vídeo da memória de dados de vídeo 33 e partições dos dados de vídeo em blocos de vídeo. Essa partição pode incluir também a partição em fatias, peças ou outras unidades maiores, assim como a partição de bloco de vídeo, por exemplo, de acordo com uma estrutura de árvore quaternária de LCUs e CUs. O codificador de vídeo 20 ilustra, em geral, os componentes que codificam os blocos de vídeo em uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como peças). A unidade de processamento de predição 41 pode selecionar um dentre uma pluralidade de modos de criptografia possíveis, como um dentre uma pluralidade de modos de intracriptografia ou um dentre uma pluralidade de modos de intercriptografia, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, taxa de criptografia e o nível de distorção). A unidade de processamento de predição 41 pode fornecer o bloco intra ou intercriptografado resultante ao somador 50 para gerar dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso como uma figuração de referência.
[0142] A unidade de intrapredição 46 na unidade de processamento de predição 41 pode realizar a criptografia intrapreditiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco atual a ser criptografado para fornecer compactação espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 na unidade de processamento de predição 41 realizam a criptografia interpreditiva do bloco de vídeo atual em relação a um ou mais blocos preditivos em uma ou mais figurações de referência para fornecer compactação temporal.
[0143] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interpredição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar as fatias de vídeo na sequência como fatias P ou fatias B. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente —* para fins conceituais. A estimativa de movimento realizada pela unidade de estimativa de movimento 42 é o processo de gerar vetores de movimento, que estima o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo em um quadro de vídeo atual ou figuração em relação a um bloco preditivo em uma figuração de referência.
[0144] Um bloco preditivo é um bloco que é encontrado para ser muito compatível com a PU do bloco de vídeo a ser criptografado, em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de número subinteiro de figurações de referência armazenados no DPB
66. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de pixel de um quarto, posições de pixel de um oitavo ou outras posições de pixel fracional da figuração de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel total e posições de pixel fracional e emitir um vetor de movimento com precisão de pixel fracional.
[0145] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercriptografada ao comparar a posição da PU com a posição de um bloco preditivo de uma figuração de referência. A figuração de referência pode ser selecionada a partir de uma primeira lista de figuração de referência (Lista 0) ou uma segunda lista de figuração de referência (Lista 1), cada uma das quais identifica um ou mais figurações de referência armazenadas no DPB 66. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0146] A compensação de movimento, realizado pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento "determinado pela estimativa de movimento, possivelmente a realização de interpolação para precisão de subpixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de figuração de referência. O codificador de vídeo 20 forma um bloco de vídeo residual ao subtrair os valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que é criptografado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir componentes de diferença tanto de luma quanto de croma. O somador 50 representa o componente ou os componentes que realizam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0147] Após a unidade de processamento de predição 41 gerar o bloco preditivo para o bloco atual de vídeo seja por meio de interpredição ou intrapredição, o codificador de vídeo 20 forma um bloco de vídeo residual ao subtrair o bloco preditivo do bloco atual de vídeo. Os dados de vídeo residuais no bloco residual podem estar incluídos em uma ou mais TUs e aplicados à unidade de processamento de transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais com o uso de uma transformada, como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente similar. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel em um domínio de transformada, como um domínio de frequência.
[0148] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ao ajustar um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode, então,
realizar uma varredura da matriz que inclui os coeficientes de transformada quantizados. Em um outro exemplo, a unidade de codificação por entropia 56 pode realizar a varredura.
[0149] Em seguida à quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a criptografia de comprimento variável adaptativa ao contexto (CAVLC), criptografia aritmética binária adaptativa ao contexto (CABAC) , criptografia aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), criptografia por entropia de partição de intervalo de probabilidade (PIPE) ou uma outra técnica ou metodologia de codificação por entropia. Em seguida à codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para transmissão ou recuperação posterior pelo decodificador de vídeo 30. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que é criptografada fornecida pela unidade de processamento de predição 41.
[0150] A unidade de quantização inversa 58 e a unidade de processamento de transformada inversa 60 aplicam a quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para uso posterior como um bloco de referência de uma figuração de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência ao adicionar o bloco residual a um bloco preditivo de uma das figurações de referência em uma das listas de figuração de referência. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel subinteiros para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição com compensação de movimento “produzido pela unidade de compensação de movimento 44 para produzir um bloco reconstruído.
[0151] A unidade de filtro 64 filtra o bloco reconstruído (por exemplo, o produto do somador 62) e armazena o bloco reconstruído filtrado em DPB 66 para usos como um bloco de referência. O bloco de referência pode ser usado pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para interpredizer um bloco em um quadro de vídeo ou figuração subsequente. A unidade de filtro 64 pode realizar qualquer tipo de filtração como filtração de desbloqueio, filtração de SAO, filtração de SAO de pico, ALF, e/ou GALF, e/ou outros tipos de filtros de malha. Um filtro de desbloqueio pode, por exemplo, aplicar filtração de desbloqueio para filtrar as delimitações de bloco para remover os artefatos de bloqueio do vídeo reconstruído. Um filtro SAO de pico pode aplicar deslocamentos aos valores de pixel reconstruídos a fim de aprimorar a qualidade de criptografia geral. Os filtros de malha adicionais (em malha ou pós malha) também podem ser usados.
[0152] Além disso, a unidade de filtro 64 pode ser configurada para realizar quaisquer das técnicas nesta revelação relacionadas à filtração adaptativa de malha. Em particular, conforme descrito acima, a unidade de filtro 64 pode ser configurada para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores, e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos
[0153] A Figura 5 é um diagrama de blocos que ilustra um decodificador de vídeo 30 exemplificativo que pode implantar as técnicas descritas nesta revelação. O decodificador de vídeo 30 da Figura 5 pode, por exemplo, ser configurado para receber a sinalização descrita acima em relação ao codificador de vídeo 20 da Figura 4. No exemplo da Figura 5, o decodificador de vídeo 30 inclui memória de dados de vídeo 78, unidade de decodificação por entropia 80, unidade de processamento de predição 81, unidade de quantização inversa 86, unidade de processamento de transformada inversa 88, somador 90, DPB 94 e unidade de filtro 92. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de intrapredição 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar um passe de decodificação geralmente recíproco ao passe de codificação descrito em relação ao codificador de vídeo 20 da Figura 4.
[0154] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. O decodificador de vídeo 30 armazena o fluxo de bits de vídeo codificado recebido na memória de dados de vídeo 78. A memória de dados de vídeo 78 pode armazenar dados de vídeo, como um fluxo de bits de vídeo codificado, a ser decodificado pelos componentes do decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 78 podem ser obtidos, por exemplo, por meio de enlace 16, a partir do dispositivo de armazenamento 26, ou a partir de uma fonte de vídeo local, como uma câmera, ou ao acessar a mídia de armazenamento de dados físicos.
A memória de dados de vídeo 78 pode formar um armazenamento temporário de figuração criptografada (CPB) que armazena dados de vídeo codificados a partir de um fluxo de bits de vídeo codificado.
O DPB 94 pode ser uma memória de figuração de referência que armazena dados de vídeo de referência para uso na decodificação de dados de vídeo pelo decodificador de vídeo 30, por exemplo, em modos intra ou intercriptografia.
A memória de dados de vídeo 78 e DPB 94 pode ser formada por qualquer um dentre uma variedade de dispositivos de memória, como DRAM, SDRAM, MRAM, RRAM, ou outros tipos de dispositivos de memória.
A memória de dados de vídeo 78 e DPB 94 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados.
Em vários exemplos, a memória de dados de vídeo 78 pode estar no chip com outros componentes de decodificador de vídeo 30, ou fora de chip em relação àqueles componentes.
[0155] A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia os dados de vídeo armazenados na memória de dados de vídeo 78 para gerar coeficientes quantizados, vetores de movimento e outros elementos de sintaxe. A unidade de decodificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de processamento de predição 81. 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.
[0156] Quando a fatia de vídeo for criptografada como uma fatia intracriptografada (1), a unidade de intrapredição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados dos blocos previamente decodificados do quadro ou da figuração atual. Quando o quadro de vídeo for criptografado como uma fatia intercriptografada (por exemplo, fatia B ou fatia P), a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das figurações de referência em uma das listas de figuração de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista O e Lista 1, com o uso de técnicas de construção padrão com base nas figurações de referência armazenadas em DPB 94.
[0157] A unidade de compensação de movimento 82 determina as informações de predição para um bloco de vídeo da fatia de vídeo atual ao analisar os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco atual de vídeo que é decodificado. Por exemplo, a unidade de compensação de movimento 82 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou interpredição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B ou fatia P), informações de construção para uma ou mais das listas de figuração de referência para a fatia, vetores de movimento para cada bloco de vídeo intercriptografado da fatia, situação de interpredição para cada bloco de vídeo intercriptografado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0158] A unidade de compensação de movimento 82 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode usar os filtros de interpolação usados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores de interpolação para pixels subinteiros de blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e do uso de filtros de interpolação para produzir os blocos preditivos.
[0159] A unidade de quantização inversa 86 quantiza inversamente, isto é, desquantiza, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia
80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, igualmente, um grau de quantização inversa que deve ser aplicado. A unidade de processamento de transformada inversa 88 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada a fim de produzir os blocos residuais no domínio de pixel.
[0160] Após a unidade de processamento de predição 81 gerar o bloco preditivo para o bloco de vídeo atual que usa, por exemplo, intra ou interpredição, oO decodificador de vídeo 30 forma um bloco de vídeo reconstruído somando-se os blocos residuais da unidade de processamento de transformada inversa 88 com os blocos preditivos — correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou os componentes que realizam essa operação de soma.
[0161] A unidade de filtro 92 filtra o bloco reconstruído (por exemplo, o produto do somador 90) e armazena o bloco reconstruído filtrado em DPB 94 para usos como um bloco de referência. O bloco de referência pode ser usado pela unidade de compensação de movimento 82 como um bloco de referência para interpredizer um bloco em um quadro de vídeo ou figuração subsequente. A unidade de filtro 92 pode realizar qualquer tipo de filtração como filtração de desbloqueio, filtração de SAO, filtração de SAO de pico, ALF, e/ou GALF, e/ou outros tipos de filtros de malha. Um filtro de desbloqueio pode, por exemplo, aplicar filtração de desbloqueio para filtrar as delimitações de bloco para remover os artefatos de bloqueio do vídeo reconstruído. Um filtro SAO de pico pode aplicar deslocamentos aos valores de pixel reconstruídos a fim de aprimorar a qualidade de criptografia geral. Os filtros de malha adicionais (em malha ou pós malha) também podem ser usados.
[0162] Além disso, a unidade de filtro 92 pode ser configurada para realizar quaisquer das técnicas nesta revelação relacionadas à filtração adaptativa de malha. Em particular, conforme descrito acima, a unidade de filtro 92 pode ser configurada para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores, e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos
[0163] A Figura 6 mostra uma implantação exemplificativa da unidade de filtro 92. A unidade de filtro 64 pode ser implantada da mesma maneira. As unidades de filtro 64 e 92 podem realizar as técnicas desta revelação, possivelmente em conjunto com outros componentes do codificador de vídeo 20 ou decodificador de vídeo 30. No exemplo da Figura 6, a unidade de filtro 92 inclui filtro de desbloqueio 102, filtro SAO 104 e filtro ALF/GALF 106. O filtro SAO 104 pode, por exemplo, ser configurado para determinar valores de deslocamento para amostras de um bloco da maneira descrita nesta revelação. O filtro ALF/GALF 106 pode ser configurado para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores, e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos
[0164] A unidade de filtro 92 pode incluir menos filtros e/ou pode incluir filtros adicionais. Adicionalmente, os filtros específicos mostrados na Figura 6 podem ser implantados em uma ordem diferente. Outros filtros de loop (no loop de criptografia ou após o loop de criptografia) também podem ser usados para suavizar as transições de pixel, ou de outro modo aprimorar a qualidade do vídeo. Os blocos de vídeo decodificados em um dado quadro ou dada figuração são, então, armazenados em DPB 94, que armazena figurações de referência usadas para a subsequente compensação de movimento. DPB 94 pode ser parte da memória ou separada da memória adicional que armazena o vídeo decodificado para a última apresentação em um dispositivo de exibição, como o dispositivo de exibição 32 da Figura 1.
[0165] A Figura 7 é um fluxograma que ilustra um método exemplificativo da revelação. As técnicas da Figura 7 podem ser realizadas por uma ou mais unidades estruturais do codificador de vídeo 20 e decodificador de vídeo 30, incluindo unidade de filtro 64 e unidade de filtro 92. Conforme discutido acima, o termo “criptografia” se refere geralmente tanto à codificação quanto à decodificação. Igualmente, o termo “criptografar” geralmente se refere tanto a codificar quanto a decodificar.
[0166] Em um exemplo da revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores (700). Em um exemplo, para determinar os respectivos conjuntos de filtros de malha adaptativos, o codificador de vídeo 20 e o decodificador de vídeo 30 são adicionalmente configurados para criptografar um respectivo sinalizador por bloco que indica se a filtração adaptativa de malha é usada para o respectivo bloco, e criptografar, com base no respectivo sinalizador por bloco, um respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual. Em um exemplo, o respectivo elemento de sintaxe é um índice para uma lista que inclui a pluralidade de conjuntos de filtros de malha adaptativos. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser adicionalmente configurados para filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos (702).
[0167] A Figura 8 é um fluxograma que ilustra um outro método exemplificativo da revelação. A Figura 8 mostra um exemplo das técnicas da Figura 7 em mais detalhes. Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para criptografar um bloco de dados de vídeo em uma figuração atual para criar um bloco de dados de vídeo reconstruído (800). Ou seja, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para criptografar o primeiro bloco de dados de vídeo na figuração atual para criar um primeiro bloco de dados de vídeo reconstruído.
[0168] o codificador de vídeo 20 e decodificador de vídeo 30 podem, então, ser configurados para determinar se um sinalizador de ligar/desligar ALF de nível de bloco está ligado (802). Se não, o codificador de vídeo 20 e decodificador de vídeo 30 não se aplicam ao ALF e, ao invés disso, prosseguirem para criptografar o próximo bloco de dados de vídeo (810). Se sim, o codificador de vídeo 20 e o decodificador de vídeo 30 criptografam, para o bloco, um elemento de sintaxe que indica um conjunto de filtros de malha adaptativos (804). Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 criptografam, para o primeiro bloco de dados de vídeo, um primeiro elemento de sintaxe que indica um primeiro conjunto de filtros de malha adaptativos dentre a pluralidade de conjuntos de filtros de malha adaptativos.
[0169] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, então, determinar um filtro de malha adaptativo a partir do conjunto de filtros de malha adaptativos para o bloco atualmente criptografado (806). Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem determinar um primeiro filtro de malha adaptativo a partir do primeiro conjunto de filtros de malha adaptativos para o primeiro bloco de dados de vídeo reconstruído. O codificador de vídeo 20 e o decodificador de vídeo 30 podem, então, aplicar o filtro de malha adaptativo ao bloco reconstruído (808). O codificador de vídeo 20 e o decodificador de vídeo 30 podem, então, prosseguir para criptografar o próximo bloco de dados de vídeo (810). Por exemplo, o próximo bloco de dados de vídeo pode ser um segundo bloco de dados de vídeo. O processo da Figura 8 é, então, repetido. Deve-se notar que, quando se realiza as técnicas desta revelação, quando se determina o conjunto de filtros de malha adaptativos para um próximo bloco de dados de vídeo (por exemplo, um segundo bloco de dados de vídeo), o conjunto de filtros de malha adaptativos para o segundo bloco de dados de vídeo pode ser diferente do conjunto de filtros de malha adaptativos usado para outros blocos de dados de vídeo.
[0170] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implantadas em software, as funções podem ser armazenadas ou transmitidas, como uma ou mais instruções ou código, através de um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. A mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a mídia tangível como mídia de armazenamento de dados, ou mídia de comunicação que inclui qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, a mídia legível por computador pode, em geral, corresponder à (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) um meio de comunicação como um sinal ou uma onda de portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que possa ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para a implantação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0171] Por meio de exemplo, e sem limitação, tal mídia de armazenamento legível por computador pode ser qualquer um dentre uma RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser usado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Também, qualquer conexão é adequadamente denominada um meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um site da web, servidor ou outra fonte remota com o uso de um cabo coaxial, cabo de fibra óptica, par torcido, linha de assinante digital (DSL) ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então, o cabo coaxial, cabo de fibra óptica, par torcido, DSL ou tecnologias sem fio como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. Deve-se compreender, no entanto, que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, ondas de portadora, sinais, ou outra mídia transiente, mas, em vez disso, são direcionados à mídia de armazenamento tangível não transiente. O disco magnético e o disco óptico, conforme usados no presente documento, incluem disco compacto (CD), disco a laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu- ray, em que os discos magnéticos normalmente reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados — opticamente com lasers. As combinações dos supracitados também devem ser abrangidas pelo escopo de mídias legíveis por computador.
[0172] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores para fins gerais, circuitos integrados de aplicação específica (ASICS), matrizes lógicas programáveis em campo (FPGAs), ou outros conjuntos de circuitos lógicos discretos ou integrados equivalentes. Dessa maneira, o termo “processador”, como usado no presente documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida nos módulos de software e/ou hardware dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Também, as técnicas poderiam ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[0173] As técnicas desta revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um chipset). Vários componentes, módulos ou unidades são descritos nesta revelação — para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não exigem necessariamente a realização através de diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por um conjunto de unidades de hardware interoperativas, que incluem um ou mais processadores conforme descrito acima, em conjunto com o software e/ou o firmware adequado.
[0174] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (38)

REIVINDICAÇÕES
1. Método de criptografia de dados de vídeo, sendo que o método compreende: determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco de uma figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores; e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos.
2. Método, de acordo com a reivindicação 1, em que a determinação dos respectivos conjuntos de filtros de malha adaptativos compreende: criptografar um respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual em que o filtro de malha adaptativo é usado.
3. Método, de acordo com a reivindicação 2, em que o respectivo elemento de sintaxe é um índice para uma lista que inclui a pluralidade de conjuntos de filtros de malha adaptativos.
4, Método, de acordo com a reivindicação 1, que compreende adicionalmente: criptografar um respectivo sinalizador por bloco que indica se a filtração adaptativa de malha é usada para o respectivo bloco.
5. Método, de acordo com a reivindicação 1, que compreende adicionalmente: criptografar um respectivo sinalizador por grupo de blocos que indicam se a filtração adaptativa de malha é usada para cada bloco no respectivo grupo de blocos.
6. Método, de acordo com a reivindicação 1, que compreende adicionalmente: determinar se a filtração adaptativa de malha é usada para cada bloco, ou para cada bloco em um grupo de blocos com base em um ou mais dentre: um número de blocos em um grupo de blocos que tem sinalizadores de bloco criptografados diferentes de zero (CBFs), um número de coeficientes de transformada diferentes de zero, um número de blocos em um grupo de blocos criptografado em um modo específico, e um número de blocos em um grupo de blocos criptografado com modo de pular.
7. Método, de acordo com a reivindicação 1, em que os blocos da figuração atual são unidades de árvore de criptografia (CTUs) da figuração atual.
8. Método, de acordo com a reivindicação 1, que compreende adicionalmente: determinar a pluralidade de conjuntos de filtros de malha adaptativos para a figuração atual.
9. Método, de acordo com a reivindicação 1, em que cada respectivo conjunto de filtros de malha adaptativos inclui adicionalmente um ou mais dentre um filtro de malha adaptativo atual sinalizado para a figuração atual ou um filtro de malha adaptativo pré- treinado.
10. Método, de acordo com a reivindicação 9, que compreende adicionalmente: adicionar filtros de malha adaptativos a cada respectivo conjunto de filtros de malha adaptativos para que quaisquer filtros de malha adaptativos atuais sinalizados para a figuração atual são adicionados primeiro, quaisquer filtros de malha adaptativos anteriores são adicionados em segundo lugar, e quaisquer filtros de malha adaptativos pré-treinados são adicionados por último.
11. Método, de acordo com a reivindicação 10, em que os filtros de malha adaptativos atuais sinalizados para a figuração atual e têm um valor de índice inferior em uma lista de conjunto de filtros.
12. Método, de acordo com a reivindicação 9, que compreende adicionalmente: criptografar, para a figuração atual, um ou mais elementos de sintaxe que indicam um filtro de malha adaptativo atual para a figuração atual.
13. Método, de acordo com a reivindicação 1, em que os respectivos conjuntos de filtros de malha adaptativos incluem respectivos filtros de malha adaptativos atribuídos a cada classe de uma pluralidade de classes.
14. Método, de acordo com a reivindicação 1, em que a determinação do respectivo conjunto de filtros de malha adaptativos compreende criptografar, para um primeiro bloco de dados de vídeo, um primeiro elemento de sintaxe que indica um primeiro conjunto de filtros de malha adaptativos dentre a pluralidade de conjuntos de filtros de malha adaptativos, e criptografar, para um segundo bloco de dados de vídeo, um segundo elemento de sintaxe que indica um segundo conjunto de filtros de malha adaptativos dentre a pluralidade de conjuntos de filtros de malha adaptativos, em que o segundo conjunto de filtros de malha adaptativos é diferente do primeiro conjunto de filtros de malha adaptativos, sendo que o método compreende adicionalmente: criptografar o primeiro bloco de dados de vídeo na figuração atual para criar um primeiro bloco de dados de vídeo reconstruído; determinar um primeiro filtro de malha adaptativo a partir do primeiro conjunto de filtros de malha adaptativos para o primeiro bloco de dados de vídeo reconstruído; aplicar o primeiro filtro de malha adaptativo ao primeiro bloco de dados de vídeo reconstruído; criptografar o segundo bloco de dados de vídeo na figuração atual para criar um segundo bloco de dados de vídeo reconstruído; determinar um segundo filtro de malha adaptativo a partir do segundo conjunto de filtros de malha adaptativos para o segundo bloco de dados de vídeo reconstruído; e aplicar o segundo filtro de malha adaptativo ao segundo bloco de dados de vídeo reconstruído.
15. Método, de acordo com a reivindicação 1, em que a criptografia compreende codificação, sendo que o método compreende adicionalmente: capturar a figuração atual com uma câmera.
16. Método, de acordo com a reivindicação 1, em que a criptografia compreende decodificação, sendo que o método compreende adicionalmente: exibir a figuração atual.
17. Aparelho configurado para criptografar dados de vídeo, sendo que o aparelho compreende: uma memória configurada para armazenar uma figuração atual de dados de vídeo; e um ou mais processadores em comunicação com a memória, o um ou mais processadores configurados para: determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores; e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos.
18. Aparelho, de acordo com as reivindicações 17, em que para determinar os respectivos conjuntos de filtros de malha adaptativos, o um ou mais processadores são adicionalmente configurados para: criptografar um respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual em que o filtro de malha adaptativo é usado.
19. Aparelho, de acordo com a reivindicação 18,
em que o respectivo elemento de sintaxe é um índice para uma lista que inclui a pluralidade de conjuntos de filtros de malha adaptativos.
20. Aparelho, de acordo com a reivindicação 17, em que os um ou mais processadores são adicionalmente configurados para: criptografar um respectivo sinalizador por bloco que indica se a filtração adaptativa de malha é usada para o respectivo bloco.
21. Aparelho, de acordo com a reivindicação 17, em que os um ou mais processadores são adicionalmente configurados para: criptografar um respectivo sinalizador por grupo de blocos que indicam se a filtração adaptativa de malha é usada para cada bloco no respectivo grupo de blocos.
22. Aparelho, de acordo com a reivindicação 17, em que os um ou mais processadores são adicionalmente configurados para: determinar se a filtração adaptativa de malha é usada para cada bloco, ou para cada bloco em um grupo de blocos com base em um ou mais dentre: um número de blocos em um grupo de blocos que tem sinalizadores de bloco criptografados diferentes de zero (CBFs), um número de coeficientes de transformada diferentes de zero, um número de blocos em um grupo de blocos criptografado em um modo específico, e um número de blocos em um grupo de blocos criptografado com modo de pular.
23. Aparelho, de acordo com a reivindicação 17,
em que os blocos da figuração atual são unidades de árvore de criptografia (CTUs) da figuração atual.
24. Aparelho, de acordo com a reivindicação 17, em que os um ou mais processadores são adicionalmente configurados para: determinar a pluralidade de conjuntos de filtros de malha adaptativos para a figuração atual.
25. Aparelho, de acordo com a reivindicação 17, em que cada respectivo conjunto de filtros de malha adaptativos inclui adicionalmente um ou mais dentre um filtro de malha adaptativo atual sinalizado para a figuração atual ou um filtro de malha adaptativo pré- treinado.
26. Aparelho, de acordo com a reivindicação 25, em que os um ou mais processadores são adicionalmente configurados para: adicionar filtros de malha adaptativos a cada respectivo conjunto de filtros de malha adaptativos para que quaisquer filtros de malha adaptativos atuais sinalizados para a figuração atual são adicionados primeiro, quaisquer filtros de malha adaptativos anteriores são adicionados em segundo lugar, e quaisquer filtros de malha adaptativos pré-treinados são adicionados por último.
27. Aparelho, de acordo com a reivindicação 26, em que os filtros de malha adaptativos atuais sinalizados para a figuração atual e têm um valor de índice inferior em uma lista de conjunto de filtros.
28. Aparelho, de acordo com a reivindicação 25, em que os um ou mais processadores são adicionalmente configurados para:
criptografar, para a figuração atual, um ou mais elementos de sintaxe que indicam o filtro de malha adaptativo atual.
29. Aparelho, de acordo com a reivindicação 17, em que os respectivos conjuntos de filtros de malha adaptativos incluem respectivos filtros de malha adaptativos atribuídos a cada classe de uma pluralidade de classes.
30. Aparelho, de acordo com a reivindicação 17, em que para determinar o respectivo conjunto de filtros de malha adaptativos, o um ou mais processadores são adicionalmente configurados para criptografar, para um primeiro bloco de dados de vídeo, um primeiro elemento de sintaxe que indica um primeiro conjunto de filtros de malha adaptativos dentre a pluralidade de conjuntos de filtros de malha adaptativos, e criptografar, para um segundo bloco de dados de vídeo, um segundo elemento de sintaxe que indica um segundo conjunto de filtros de malha adaptativos dentre a pluralidade de conjuntos de filtros de malha adaptativos, em que o segundo conjunto de filtros de malha adaptativos é diferente do primeiro conjunto de filtros de malha adaptativos, e em que o um ou mais processadores são adicionalmente configurados para: criptografar o primeiro bloco de dados de vídeo na figuração atual para criar um primeiro bloco de dados de vídeo reconstruído; determinar um primeiro filtro de malha adaptativo a partir do primeiro conjunto de filtros de malha adaptativos para o primeiro bloco de dados de vídeo reconstruído;
aplicar o primeiro filtro de malha adaptativo ao primeiro bloco de dados de vídeo reconstruído; criptografar o segundo bloco de dados de vídeo na figuração atual para criar um segundo bloco de dados de vídeo reconstruído; determinar um segundo filtro de malha adaptativo a partir do segundo conjunto de filtros de malha adaptativos para o segundo bloco de dados de vídeo reconstruído; e aplicar o segundo filtro de malha adaptativo ao segundo bloco de dados de vídeo reconstruído.
31. Aparelho, de acordo com a reivindicação 17, em que para criptografar o um ou mais processadores são configurados para codificação, sendo que o aparelho compreende adicionalmente: uma câmera configurada para capturar a figuração atual.
32. Aparelho, de acordo com a reivindicação 17, em que para criptografar o um ou mais processadores são configurados para decodificação, sendo que o aparelho compreende adicionalmente: um visor configurado para exibir a figuração atual.
33. Aparelho configurado para criptografar dados de vídeo, sendo que o aparelho compreende: meios para determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco de uma figuração atual para blocos em que a filtração adaptativa de malha é usada, em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores; e meios para filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos.
34. Aparelho, de acordo com a reivindicação 33, em que os meios para determinar os respectivos conjuntos de filtros de malha adaptativos compreendem: meios para criptografar um respectivo sinalizador por bloco que indica se a filtração adaptativa de malha é usada para o respectivo bloco; e meios para criptografar, com base no respectivo sinalizador por bloco, um respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual.
35. Aparelho, de acordo com a reivindicação 33, em que cada respectivo conjunto de filtros de malha adaptativos inclui adicionalmente um ou mais dentre um filtro de malha adaptativo atual sinalizado para a figuração atual ou um filtro de malha adaptativo pré- treinado.
36. Meio de armazenamento legível por computador não transitório que armazena instruções que quando executadas fazem com que os um ou mais processadores: determinar um respectivo conjunto de filtros de malha adaptativos, dentre uma pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual para blocos em que a filtração adaptativa de malha é usada,
em que cada respectivo conjunto de filtros de malha adaptativos inclui um filtro de malha adaptativo anterior usado em uma ou mais figurações anteriores; e filtrar de modo adaptativo por malha os blocos da figuração atual de acordo com os respectivos conjuntos de filtros de malha adaptativos.
37. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 36, em que para determinar os respectivos conjuntos de filtros de malha adaptativos, as instruções fazem, adicionalmente, com que o um ou mais processadores: converta em código um respectivo sinalizador por bloco que indica se a filtração adaptativa de malha é usada para o respectivo bloco; e converta em código, com base no respectivo sinalizador por bloco, um respectivo elemento de sintaxe que indica o respectivo conjunto de filtros de malha adaptativos, dentre a pluralidade de conjuntos de filtros de malha adaptativos, por bloco da figuração atual.
38. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 36, em que cada respectivo conjunto de filtros de malha adaptativos inclui adicionalmente um ou mais dentre um filtro de malha adaptativo atual sinalizado para a figuração atual ou um filtro de malha adaptativo pré-treinado.
BR112020024520-8A 2018-06-01 2019-05-31 projeto e sinalização de filtro de malha adaptativo (alf) baseado em bloco BR112020024520A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862679685P 2018-06-01 2018-06-01
US62/679,685 2018-06-01
US16/427,017 2019-05-30
US16/427,017 US11451773B2 (en) 2018-06-01 2019-05-30 Block-based adaptive loop filter (ALF) design and signaling
PCT/US2019/034964 WO2019232412A1 (en) 2018-06-01 2019-05-31 Block-based adaptive loop filter (alf) design and signaling

Publications (1)

Publication Number Publication Date
BR112020024520A2 true BR112020024520A2 (pt) 2021-03-02

Family

ID=68693391

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020024520-8A BR112020024520A2 (pt) 2018-06-01 2019-05-31 projeto e sinalização de filtro de malha adaptativo (alf) baseado em bloco

Country Status (16)

Country Link
US (1) US11451773B2 (pt)
EP (1) EP3804337A1 (pt)
JP (1) JP7422684B2 (pt)
KR (1) KR20210015819A (pt)
CN (1) CN112243587B (pt)
AU (1) AU2019278991B2 (pt)
BR (1) BR112020024520A2 (pt)
CA (1) CA3099795A1 (pt)
CL (1) CL2020003085A1 (pt)
CO (1) CO2020014698A2 (pt)
IL (1) IL278482B1 (pt)
MX (1) MX2020012846A (pt)
PH (1) PH12020551866A1 (pt)
SG (1) SG11202010952XA (pt)
TW (1) TWI827609B (pt)
WO (1) WO2019232412A1 (pt)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102111917B1 (ko) * 2011-06-30 2020-05-18 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법 및 기억 매체
US11140418B2 (en) 2018-07-17 2021-10-05 Qualcomm Incorporated Block-based adaptive loop filter design and signaling
TWI692939B (zh) * 2018-08-14 2020-05-01 鈺創科技股份有限公司 過濾訊號的數位濾波器
US11284075B2 (en) 2018-09-12 2022-03-22 Qualcomm Incorporated Prediction of adaptive loop filter parameters with reduced memory consumption for video coding
US11051017B2 (en) 2018-12-20 2021-06-29 Qualcomm Incorporated Adaptive loop filter (ALF) index signaling
US11910024B2 (en) 2019-03-11 2024-02-20 Qualcomm Incorporated Boundary handling for adaptive loop filtering
US11159791B2 (en) * 2019-03-16 2021-10-26 Mediatek Inc. Method and apparatus for signaling adaptive loop filter parameters in video coding
US11683487B2 (en) 2019-03-26 2023-06-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding
US11284114B2 (en) 2019-04-23 2022-03-22 Qualcomm Incorporated Adaptive loop filter set index signaling
CN112449183B (zh) * 2019-09-03 2023-05-09 联咏科技股份有限公司 视频编码器、视频解码器以及视频系统
WO2021129690A1 (en) * 2019-12-23 2021-07-01 Huawei Technologies Co., Ltd. Cross-component adaptive loop filtering for video coding
US11303892B2 (en) * 2020-01-23 2022-04-12 Qualcomm Incorporated Adaptive rounding for loop filters
WO2021147981A1 (en) * 2020-01-24 2021-07-29 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for adaptive loop filtering
US11516514B2 (en) * 2020-03-27 2022-11-29 Tencent America LLC High level control for deblocking operations
US20230085391A1 (en) * 2021-09-13 2023-03-16 Apple Inc. Systems and Methods for Luma or Chroma Statistics Collection
CN116962688A (zh) * 2022-04-20 2023-10-27 腾讯科技(深圳)有限公司 环路滤波方法、视频编解码方法、装置、介质及电子设备
WO2024094071A1 (en) * 2022-11-01 2024-05-10 Douyin Vision Co., Ltd. Using side information for adaptive loop filter in video coding

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811484B2 (en) 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US8548041B2 (en) * 2008-09-25 2013-10-01 Mediatek Inc. Adaptive filter
JP2011151431A (ja) * 2009-12-25 2011-08-04 Sony Corp 画像処理装置および方法
EP2524504A1 (en) * 2010-01-14 2012-11-21 Dolby Laboratories Licensing Corporation Buffered adaptive filters
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US20120039383A1 (en) * 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags
US9819966B2 (en) 2010-09-01 2017-11-14 Qualcomm Incorporated Filter description signaling for multi-filter adaptive filtering
US9813738B2 (en) * 2010-10-05 2017-11-07 Hfi Innovation Inc. Method and apparatus of adaptive loop filtering
US9681132B2 (en) * 2010-11-24 2017-06-13 Thomson Licensing Dtv Methods and apparatus for adaptive loop filtering in video encoders and decoders
US9445126B2 (en) 2011-01-05 2016-09-13 Qualcomm Incorporated Video filtering using a combination of one-dimensional switched filter and one-dimensional adaptive filter
US20120177104A1 (en) * 2011-01-12 2012-07-12 Madhukar Budagavi Reduced Complexity Adaptive Loop Filter (ALF) for Video Coding
US8989261B2 (en) 2011-02-23 2015-03-24 Qualcomm Incorporated Multi-metric filtering
WO2012142966A1 (en) 2011-04-21 2012-10-26 Mediatek Inc. Method and apparatus for improved in-loop filtering
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US9277228B2 (en) * 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US9485521B2 (en) * 2011-09-19 2016-11-01 Lg Electronics Inc. Encoding and decoding image using sample adaptive offset with start band indicator
US9357235B2 (en) * 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
US20130114694A1 (en) * 2011-11-08 2013-05-09 Qualcomm Incorporated Parameter set groups for coded video data
EP2810443B1 (en) * 2012-02-01 2021-03-31 Nokia Technologies Oy Method and apparatus for video coding
US9596463B2 (en) * 2012-02-22 2017-03-14 Qualcomm Incorporated Coding of loop filter parameters using a codebook in video coding
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
EP3453174A1 (en) 2016-05-06 2019-03-13 VID SCALE, Inc. Method and system for decoder-side intra mode derivation for block-based video coding
US10419755B2 (en) * 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
WO2018122092A1 (en) 2016-12-30 2018-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus, and computer programs for decoding media
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
CN117336498A (zh) * 2017-10-06 2024-01-02 松下电器(美国)知识产权公司 编码装置、解码装置以及非暂时性计算机可读介质
US11284075B2 (en) 2018-09-12 2022-03-22 Qualcomm Incorporated Prediction of adaptive loop filter parameters with reduced memory consumption for video coding

Also Published As

Publication number Publication date
TWI827609B (zh) 2024-01-01
US20190373258A1 (en) 2019-12-05
CA3099795A1 (en) 2019-12-05
JP2021525981A (ja) 2021-09-27
SG11202010952XA (en) 2020-12-30
KR20210015819A (ko) 2021-02-10
US11451773B2 (en) 2022-09-20
MX2020012846A (es) 2021-02-18
EP3804337A1 (en) 2021-04-14
CO2020014698A2 (es) 2020-12-10
IL278482A (en) 2020-12-31
AU2019278991B2 (en) 2022-11-24
IL278482B1 (en) 2024-05-01
CN112243587A (zh) 2021-01-19
CL2020003085A1 (es) 2021-06-11
CN112243587B (zh) 2023-01-31
JP7422684B2 (ja) 2024-01-26
TW202005399A (zh) 2020-01-16
PH12020551866A1 (en) 2021-07-19
WO2019232412A1 (en) 2019-12-05
AU2019278991A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
BR112020024520A2 (pt) projeto e sinalização de filtro de malha adaptativo (alf) baseado em bloco
CN110073661B (zh) 用于编码和解码视频数据的方法和装置
CN113196752B (zh) 对视频数据进行解码的方法、装置及存储介质
TW201926995A (zh) 用於在視訊寫碼中自適應之迴路濾波之線路緩衝減少
BR112019015106A2 (pt) Filtros bilaterais em codificação de vídeo com complexidade reduzida
KR20200139163A (ko) 각도 모드들로 연장된 포지션 종속 인트라 예측 결합
BR112019010547A2 (pt) indicação de uso de filtro bilateral em codificação de vídeo
BR112021010416A2 (pt) Codificador, decodificador e métodos correspondentes para realizar desblocagem de croma para blocos que usam codificação de croma em conjunto
BR112021000694A2 (pt) Codificador de vídeo, decodificador de vídeo, e métodos de codificação e decodificação correspondentes
BR112016006607B1 (pt) Método e dispositivo para processamento de dados de vídeo, e memória legível por computador
BR112016027428B1 (pt) Inicialização de paleta de preditor em codificação de vídeo com base em paleta
BR112016022085B1 (pt) Determinação de tamanho de paleta, entradas de paleta e filtragem de blocos codificados por paleta em codificação de vídeo
BR112016029751B1 (pt) Método e dispositivo para codificar um fluxo de bits de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc, e método e dispositivo para decodificar dados de vídeo de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc
BR112019019423A2 (pt) propagação de modo de intrapredição
BR122023024004A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
CN110754091B (zh) 用于360度视频编码的解块滤波
US10623737B2 (en) Peak sample adaptive offset
BR112020011099A2 (pt) intra-predição com pixels vizinhos distantes
BR122021011813A2 (pt) Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória
BR112015023800B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
BR122021007351B1 (pt) Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo
WO2020132094A1 (en) Adaptive loop filter (alf) index signaling
BR112020025145A2 (pt) filtro de desbloqueio para fronteiras de subpartição causadas por ferramenta de codificação de subpartição intra

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]